@humeai/audio-decisions 0.0.1 → 0.1.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/LICENSE +21 -0
- package/README.md +411 -2
- package/dist/cjs/BaseClient.d.ts +54 -0
- package/dist/cjs/BaseClient.js +77 -0
- package/dist/cjs/Client.d.ts +29 -0
- package/dist/cjs/Client.js +88 -0
- package/dist/cjs/api/errors/BadRequestError.d.ts +7 -0
- package/dist/cjs/api/errors/BadRequestError.js +54 -0
- package/dist/cjs/api/errors/ContentTooLargeError.d.ts +7 -0
- package/dist/cjs/api/errors/ContentTooLargeError.js +54 -0
- package/dist/cjs/api/errors/ForbiddenError.d.ts +7 -0
- package/dist/cjs/api/errors/ForbiddenError.js +54 -0
- package/dist/cjs/api/errors/InternalServerError.d.ts +7 -0
- package/dist/cjs/api/errors/InternalServerError.js +54 -0
- package/dist/cjs/api/errors/NotFoundError.d.ts +7 -0
- package/dist/cjs/api/errors/NotFoundError.js +54 -0
- package/dist/cjs/api/errors/PaymentRequiredError.d.ts +7 -0
- package/dist/cjs/api/errors/PaymentRequiredError.js +54 -0
- package/dist/cjs/api/errors/ServiceUnavailableError.d.ts +7 -0
- package/dist/cjs/api/errors/ServiceUnavailableError.js +54 -0
- package/dist/cjs/api/errors/TooManyRequestsError.d.ts +7 -0
- package/dist/cjs/api/errors/TooManyRequestsError.js +54 -0
- package/dist/cjs/api/errors/UnauthorizedError.d.ts +7 -0
- package/dist/cjs/api/errors/UnauthorizedError.js +54 -0
- package/dist/cjs/api/errors/UnsupportedMediaTypeError.d.ts +7 -0
- package/dist/cjs/api/errors/UnsupportedMediaTypeError.js +54 -0
- package/dist/cjs/api/errors/index.d.ts +10 -0
- package/dist/cjs/api/errors/index.js +26 -0
- package/dist/cjs/api/index.d.ts +3 -0
- package/dist/cjs/api/index.js +19 -0
- package/dist/cjs/api/resources/decisions/client/Client.d.ts +284 -0
- package/dist/cjs/api/resources/decisions/client/Client.js +564 -0
- package/dist/cjs/api/resources/decisions/client/index.d.ts +1 -0
- package/dist/cjs/api/resources/decisions/client/index.js +17 -0
- package/dist/cjs/api/resources/decisions/client/requests/DecisionsUpload.d.ts +118 -0
- package/dist/cjs/api/resources/decisions/client/requests/DecisionsUpload.js +3 -0
- package/dist/cjs/api/resources/decisions/client/requests/InputTokensRequest.d.ts +44 -0
- package/dist/cjs/api/resources/decisions/client/requests/InputTokensRequest.js +3 -0
- package/dist/cjs/api/resources/decisions/client/requests/index.d.ts +2 -0
- package/dist/cjs/api/resources/decisions/client/requests/index.js +2 -0
- package/dist/cjs/api/resources/decisions/exports.d.ts +2 -0
- package/dist/cjs/api/resources/decisions/exports.js +21 -0
- package/dist/cjs/api/resources/decisions/index.d.ts +1 -0
- package/dist/cjs/api/resources/decisions/index.js +17 -0
- package/dist/cjs/api/resources/index.d.ts +4 -0
- package/dist/cjs/api/resources/index.js +43 -0
- package/dist/cjs/api/resources/runs/client/Client.d.ts +60 -0
- package/dist/cjs/api/resources/runs/client/Client.js +306 -0
- package/dist/cjs/api/resources/runs/client/index.d.ts +1 -0
- package/dist/cjs/api/resources/runs/client/index.js +17 -0
- package/dist/cjs/api/resources/runs/client/requests/GetRunsRequest.d.ts +10 -0
- package/dist/cjs/api/resources/runs/client/requests/GetRunsRequest.js +3 -0
- package/dist/cjs/api/resources/runs/client/requests/ListRunsRequest.d.ts +19 -0
- package/dist/cjs/api/resources/runs/client/requests/ListRunsRequest.js +3 -0
- package/dist/cjs/api/resources/runs/client/requests/index.d.ts +2 -0
- package/dist/cjs/api/resources/runs/client/requests/index.js +2 -0
- package/dist/cjs/api/resources/runs/exports.d.ts +2 -0
- package/dist/cjs/api/resources/runs/exports.js +21 -0
- package/dist/cjs/api/resources/runs/index.d.ts +1 -0
- package/dist/cjs/api/resources/runs/index.js +17 -0
- package/dist/cjs/api/types/Answer.d.ts +19 -0
- package/dist/cjs/api/types/Answer.js +3 -0
- package/dist/cjs/api/types/Answers.d.ts +7 -0
- package/dist/cjs/api/types/Answers.js +3 -0
- package/dist/cjs/api/types/ChoiceAnswer.d.ts +11 -0
- package/dist/cjs/api/types/ChoiceAnswer.js +3 -0
- package/dist/cjs/api/types/ChoiceQuestion.d.ts +10 -0
- package/dist/cjs/api/types/ChoiceQuestion.js +3 -0
- package/dist/cjs/api/types/Criterion.d.ts +9 -0
- package/dist/cjs/api/types/Criterion.js +3 -0
- package/dist/cjs/api/types/DecisionsRequest.d.ts +9 -0
- package/dist/cjs/api/types/DecisionsRequest.js +3 -0
- package/dist/cjs/api/types/DecisionsResponse.d.ts +10 -0
- package/dist/cjs/api/types/DecisionsResponse.js +3 -0
- package/dist/cjs/api/types/ErrorCode.d.ts +58 -0
- package/dist/cjs/api/types/ErrorCode.js +61 -0
- package/dist/cjs/api/types/ErrorType.d.ts +5 -0
- package/dist/cjs/api/types/ErrorType.js +8 -0
- package/dist/cjs/api/types/Error_.d.ts +15 -0
- package/dist/cjs/api/types/Error_.js +3 -0
- package/dist/cjs/api/types/GatewayError.d.ts +9 -0
- package/dist/cjs/api/types/GatewayError.js +3 -0
- package/dist/cjs/api/types/InputTokensResponse.d.ts +7 -0
- package/dist/cjs/api/types/InputTokensResponse.js +3 -0
- package/dist/cjs/api/types/Moment.d.ts +11 -0
- package/dist/cjs/api/types/Moment.js +3 -0
- package/dist/cjs/api/types/MomentAnswer.d.ts +8 -0
- package/dist/cjs/api/types/MomentAnswer.js +3 -0
- package/dist/cjs/api/types/MomentQuestion.d.ts +7 -0
- package/dist/cjs/api/types/MomentQuestion.js +3 -0
- package/dist/cjs/api/types/NoulAnswer.d.ts +7 -0
- package/dist/cjs/api/types/NoulAnswer.js +3 -0
- package/dist/cjs/api/types/NoulCriteria.d.ts +9 -0
- package/dist/cjs/api/types/NoulCriteria.js +3 -0
- package/dist/cjs/api/types/NoulQuestion.d.ts +9 -0
- package/dist/cjs/api/types/NoulQuestion.js +3 -0
- package/dist/cjs/api/types/Question.d.ts +19 -0
- package/dist/cjs/api/types/Question.js +3 -0
- package/dist/cjs/api/types/Questions.d.ts +7 -0
- package/dist/cjs/api/types/Questions.js +3 -0
- package/dist/cjs/api/types/Received.d.ts +7 -0
- package/dist/cjs/api/types/Received.js +3 -0
- package/dist/cjs/api/types/Run.d.ts +18 -0
- package/dist/cjs/api/types/Run.js +3 -0
- package/dist/cjs/api/types/RunReceived.d.ts +9 -0
- package/dist/cjs/api/types/RunReceived.js +3 -0
- package/dist/cjs/api/types/RunStatus.d.ts +6 -0
- package/dist/cjs/api/types/RunStatus.js +9 -0
- package/dist/cjs/api/types/RunSummary.d.ts +16 -0
- package/dist/cjs/api/types/RunSummary.js +3 -0
- package/dist/cjs/api/types/RunsPage.d.ts +10 -0
- package/dist/cjs/api/types/RunsPage.js +3 -0
- package/dist/cjs/api/types/ScoreAnswer.d.ts +13 -0
- package/dist/cjs/api/types/ScoreAnswer.js +3 -0
- package/dist/cjs/api/types/ScoreQuestion.d.ts +9 -0
- package/dist/cjs/api/types/ScoreQuestion.js +3 -0
- package/dist/cjs/api/types/index.d.ts +28 -0
- package/dist/cjs/api/types/index.js +44 -0
- package/dist/cjs/audio-helpers/bytes.d.ts +6 -0
- package/dist/cjs/audio-helpers/bytes.js +38 -0
- package/dist/cjs/audio-helpers/checks.d.ts +2 -0
- package/dist/cjs/audio-helpers/checks.js +25 -0
- package/dist/cjs/audio-helpers/chunks.d.ts +160 -0
- package/dist/cjs/audio-helpers/chunks.js +350 -0
- package/dist/cjs/audio-helpers/downmix.d.ts +17 -0
- package/dist/cjs/audio-helpers/downmix.js +291 -0
- package/dist/cjs/audio-helpers/errors.d.ts +4 -0
- package/dist/cjs/audio-helpers/errors.js +12 -0
- package/dist/cjs/audio-helpers/files.d.ts +27 -0
- package/dist/cjs/audio-helpers/files.js +178 -0
- package/dist/cjs/audio-helpers/index.d.ts +4 -0
- package/dist/cjs/audio-helpers/index.js +11 -0
- package/dist/cjs/audio-helpers/integers.d.ts +3 -0
- package/dist/cjs/audio-helpers/integers.js +26 -0
- package/dist/cjs/audio-helpers/mp3.d.ts +24 -0
- package/dist/cjs/audio-helpers/mp3.js +245 -0
- package/dist/cjs/audio-helpers/results.d.ts +74 -0
- package/dist/cjs/audio-helpers/results.js +187 -0
- package/dist/cjs/audio-helpers/wav.d.ts +21 -0
- package/dist/cjs/audio-helpers/wav.js +167 -0
- package/dist/cjs/auth/HeaderAuthProvider.d.ts +20 -0
- package/dist/cjs/auth/HeaderAuthProvider.js +83 -0
- package/dist/cjs/auth/index.d.ts +1 -0
- package/dist/cjs/auth/index.js +5 -0
- package/dist/cjs/core/auth/AuthProvider.d.ts +8 -0
- package/dist/cjs/core/auth/AuthProvider.js +9 -0
- package/dist/cjs/core/auth/AuthRequest.d.ts +9 -0
- package/dist/cjs/core/auth/AuthRequest.js +2 -0
- package/dist/cjs/core/auth/BasicAuth.d.ts +8 -0
- package/dist/cjs/core/auth/BasicAuth.js +33 -0
- package/dist/cjs/core/auth/BearerToken.d.ts +7 -0
- package/dist/cjs/core/auth/BearerToken.js +16 -0
- package/dist/cjs/core/auth/NoOpAuthProvider.d.ts +5 -0
- package/dist/cjs/core/auth/NoOpAuthProvider.js +9 -0
- package/dist/cjs/core/auth/index.d.ts +5 -0
- package/dist/cjs/core/auth/index.js +11 -0
- package/dist/cjs/core/base64.d.ts +2 -0
- package/dist/cjs/core/base64.js +26 -0
- package/dist/cjs/core/exports.d.ts +2 -0
- package/dist/cjs/core/exports.js +18 -0
- package/dist/cjs/core/fetcher/APIResponse.d.ts +20 -0
- package/dist/cjs/core/fetcher/APIResponse.js +2 -0
- package/dist/cjs/core/fetcher/BinaryResponse.d.ts +19 -0
- package/dist/cjs/core/fetcher/BinaryResponse.js +17 -0
- package/dist/cjs/core/fetcher/EndpointMetadata.d.ts +13 -0
- package/dist/cjs/core/fetcher/EndpointMetadata.js +2 -0
- package/dist/cjs/core/fetcher/EndpointSupplier.d.ts +12 -0
- package/dist/cjs/core/fetcher/EndpointSupplier.js +22 -0
- package/dist/cjs/core/fetcher/Fetcher.d.ts +56 -0
- package/dist/cjs/core/fetcher/Fetcher.js +275 -0
- package/dist/cjs/core/fetcher/Headers.d.ts +2 -0
- package/dist/cjs/core/fetcher/Headers.js +84 -0
- package/dist/cjs/core/fetcher/HttpResponsePromise.d.ts +58 -0
- package/dist/cjs/core/fetcher/HttpResponsePromise.js +103 -0
- package/dist/cjs/core/fetcher/RawResponse.d.ts +29 -0
- package/dist/cjs/core/fetcher/RawResponse.js +44 -0
- package/dist/cjs/core/fetcher/Supplier.d.ts +4 -0
- package/dist/cjs/core/fetcher/Supplier.js +22 -0
- package/dist/cjs/core/fetcher/createRequestUrl.d.ts +1 -0
- package/dist/cjs/core/fetcher/createRequestUrl.js +8 -0
- package/dist/cjs/core/fetcher/getErrorResponseBody.d.ts +1 -0
- package/dist/cjs/core/fetcher/getErrorResponseBody.js +58 -0
- package/dist/cjs/core/fetcher/getFetchFn.d.ts +1 -0
- package/dist/cjs/core/fetcher/getFetchFn.js +17 -0
- package/dist/cjs/core/fetcher/getHeader.d.ts +1 -0
- package/dist/cjs/core/fetcher/getHeader.js +11 -0
- package/dist/cjs/core/fetcher/getRequestBody.d.ts +7 -0
- package/dist/cjs/core/fetcher/getRequestBody.js +27 -0
- package/dist/cjs/core/fetcher/getResponseBody.d.ts +17 -0
- package/dist/cjs/core/fetcher/getResponseBody.js +85 -0
- package/dist/cjs/core/fetcher/index.d.ts +13 -0
- package/dist/cjs/core/fetcher/index.js +19 -0
- package/dist/cjs/core/fetcher/makePassthroughRequest.d.ts +49 -0
- package/dist/cjs/core/fetcher/makePassthroughRequest.js +173 -0
- package/dist/cjs/core/fetcher/makeRequest.d.ts +11 -0
- package/dist/cjs/core/fetcher/makeRequest.js +94 -0
- package/dist/cjs/core/fetcher/redactUrl.d.ts +2 -0
- package/dist/cjs/core/fetcher/redactUrl.js +88 -0
- package/dist/cjs/core/fetcher/requestWithRetries.d.ts +1 -0
- package/dist/cjs/core/fetcher/requestWithRetries.js +91 -0
- package/dist/cjs/core/fetcher/signals.d.ts +6 -0
- package/dist/cjs/core/fetcher/signals.js +33 -0
- package/dist/cjs/core/file/exports.d.ts +1 -0
- package/dist/cjs/core/file/exports.js +2 -0
- package/dist/cjs/core/file/file.d.ts +10 -0
- package/dist/cjs/core/file/file.js +225 -0
- package/dist/cjs/core/file/index.d.ts +2 -0
- package/dist/cjs/core/file/index.js +18 -0
- package/dist/cjs/core/file/types.d.ts +66 -0
- package/dist/cjs/core/file/types.js +2 -0
- package/dist/cjs/core/form-data-utils/FormDataWrapper.d.ts +15 -0
- package/dist/cjs/core/form-data-utils/FormDataWrapper.js +192 -0
- package/dist/cjs/core/form-data-utils/encodeAsFormParameter.d.ts +1 -0
- package/dist/cjs/core/form-data-utils/encodeAsFormParameter.js +12 -0
- package/dist/cjs/core/form-data-utils/index.d.ts +2 -0
- package/dist/cjs/core/form-data-utils/index.js +20 -0
- package/dist/cjs/core/headers.d.ts +2 -0
- package/dist/cjs/core/headers.js +31 -0
- package/dist/cjs/core/index.d.ts +9 -0
- package/dist/cjs/core/index.js +48 -0
- package/dist/cjs/core/json.d.ts +15 -0
- package/dist/cjs/core/json.js +24 -0
- package/dist/cjs/core/logging/exports.d.ts +18 -0
- package/dist/cjs/core/logging/exports.js +45 -0
- package/dist/cjs/core/logging/index.d.ts +1 -0
- package/dist/cjs/core/logging/index.js +17 -0
- package/dist/cjs/core/logging/logger.d.ts +126 -0
- package/dist/cjs/core/logging/logger.js +144 -0
- package/dist/cjs/core/requestBody.d.ts +12 -0
- package/dist/cjs/core/requestBody.js +26 -0
- package/dist/cjs/core/runtime/index.d.ts +1 -0
- package/dist/cjs/core/runtime/index.js +6 -0
- package/dist/cjs/core/runtime/runtime.d.ts +28 -0
- package/dist/cjs/core/runtime/runtime.js +176 -0
- package/dist/cjs/core/schemas/Schema.d.ts +88 -0
- package/dist/cjs/core/schemas/Schema.js +25 -0
- package/dist/cjs/core/schemas/builders/bigint/bigint.d.ts +2 -0
- package/dist/cjs/core/schemas/builders/bigint/bigint.js +53 -0
- package/dist/cjs/core/schemas/builders/bigint/index.d.ts +1 -0
- package/dist/cjs/core/schemas/builders/bigint/index.js +5 -0
- package/dist/cjs/core/schemas/builders/date/date.d.ts +2 -0
- package/dist/cjs/core/schemas/builders/date/date.js +62 -0
- package/dist/cjs/core/schemas/builders/date/index.d.ts +1 -0
- package/dist/cjs/core/schemas/builders/date/index.js +5 -0
- package/dist/cjs/core/schemas/builders/enum/enum.d.ts +3 -0
- package/dist/cjs/core/schemas/builders/enum/enum.js +45 -0
- package/dist/cjs/core/schemas/builders/enum/index.d.ts +1 -0
- package/dist/cjs/core/schemas/builders/enum/index.js +6 -0
- package/dist/cjs/core/schemas/builders/index.d.ts +14 -0
- package/dist/cjs/core/schemas/builders/index.js +30 -0
- package/dist/cjs/core/schemas/builders/lazy/index.d.ts +3 -0
- package/dist/cjs/core/schemas/builders/lazy/index.js +7 -0
- package/dist/cjs/core/schemas/builders/lazy/lazy.d.ts +5 -0
- package/dist/cjs/core/schemas/builders/lazy/lazy.js +24 -0
- package/dist/cjs/core/schemas/builders/lazy/lazyObject.d.ts +3 -0
- package/dist/cjs/core/schemas/builders/lazy/lazyObject.js +11 -0
- package/dist/cjs/core/schemas/builders/list/index.d.ts +1 -0
- package/dist/cjs/core/schemas/builders/list/index.js +5 -0
- package/dist/cjs/core/schemas/builders/list/list.d.ts +2 -0
- package/dist/cjs/core/schemas/builders/list/list.js +49 -0
- package/dist/cjs/core/schemas/builders/literals/booleanLiteral.d.ts +2 -0
- package/dist/cjs/core/schemas/builders/literals/booleanLiteral.js +28 -0
- package/dist/cjs/core/schemas/builders/literals/index.d.ts +2 -0
- package/dist/cjs/core/schemas/builders/literals/index.js +7 -0
- package/dist/cjs/core/schemas/builders/literals/stringLiteral.d.ts +2 -0
- package/dist/cjs/core/schemas/builders/literals/stringLiteral.js +28 -0
- package/dist/cjs/core/schemas/builders/object/index.d.ts +6 -0
- package/dist/cjs/core/schemas/builders/object/index.js +11 -0
- package/dist/cjs/core/schemas/builders/object/object.d.ts +3 -0
- package/dist/cjs/core/schemas/builders/object/object.js +354 -0
- package/dist/cjs/core/schemas/builders/object/objectWithoutOptionalProperties.d.ts +6 -0
- package/dist/cjs/core/schemas/builders/object/objectWithoutOptionalProperties.js +7 -0
- package/dist/cjs/core/schemas/builders/object/property.d.ts +8 -0
- package/dist/cjs/core/schemas/builders/object/property.js +15 -0
- package/dist/cjs/core/schemas/builders/object/types.d.ts +31 -0
- package/dist/cjs/core/schemas/builders/object/types.js +2 -0
- package/dist/cjs/core/schemas/builders/object-like/getObjectLikeUtils.d.ts +9 -0
- package/dist/cjs/core/schemas/builders/object-like/getObjectLikeUtils.js +60 -0
- package/dist/cjs/core/schemas/builders/object-like/index.d.ts +2 -0
- package/dist/cjs/core/schemas/builders/object-like/index.js +6 -0
- package/dist/cjs/core/schemas/builders/object-like/types.d.ts +7 -0
- package/dist/cjs/core/schemas/builders/object-like/types.js +2 -0
- package/dist/cjs/core/schemas/builders/primitives/any.d.ts +2 -0
- package/dist/cjs/core/schemas/builders/primitives/any.js +9 -0
- package/dist/cjs/core/schemas/builders/primitives/boolean.d.ts +2 -0
- package/dist/cjs/core/schemas/builders/primitives/boolean.js +25 -0
- package/dist/cjs/core/schemas/builders/primitives/index.d.ts +6 -0
- package/dist/cjs/core/schemas/builders/primitives/index.js +15 -0
- package/dist/cjs/core/schemas/builders/primitives/never.d.ts +2 -0
- package/dist/cjs/core/schemas/builders/primitives/never.js +14 -0
- package/dist/cjs/core/schemas/builders/primitives/number.d.ts +2 -0
- package/dist/cjs/core/schemas/builders/primitives/number.js +25 -0
- package/dist/cjs/core/schemas/builders/primitives/string.d.ts +2 -0
- package/dist/cjs/core/schemas/builders/primitives/string.js +25 -0
- package/dist/cjs/core/schemas/builders/primitives/unknown.d.ts +2 -0
- package/dist/cjs/core/schemas/builders/primitives/unknown.js +6 -0
- package/dist/cjs/core/schemas/builders/record/index.d.ts +2 -0
- package/dist/cjs/core/schemas/builders/record/index.js +6 -0
- package/dist/cjs/core/schemas/builders/record/record.d.ts +4 -0
- package/dist/cjs/core/schemas/builders/record/record.js +131 -0
- package/dist/cjs/core/schemas/builders/record/types.d.ts +6 -0
- package/dist/cjs/core/schemas/builders/record/types.js +2 -0
- package/dist/cjs/core/schemas/builders/schema-utils/JsonError.d.ts +5 -0
- package/dist/cjs/core/schemas/builders/schema-utils/JsonError.js +13 -0
- package/dist/cjs/core/schemas/builders/schema-utils/ParseError.d.ts +5 -0
- package/dist/cjs/core/schemas/builders/schema-utils/ParseError.js +13 -0
- package/dist/cjs/core/schemas/builders/schema-utils/getSchemaUtils.d.ts +21 -0
- package/dist/cjs/core/schemas/builders/schema-utils/getSchemaUtils.js +145 -0
- package/dist/cjs/core/schemas/builders/schema-utils/index.d.ts +4 -0
- package/dist/cjs/core/schemas/builders/schema-utils/index.js +11 -0
- package/dist/cjs/core/schemas/builders/schema-utils/stringifyValidationErrors.d.ts +2 -0
- package/dist/cjs/core/schemas/builders/schema-utils/stringifyValidationErrors.js +9 -0
- package/dist/cjs/core/schemas/builders/set/index.d.ts +1 -0
- package/dist/cjs/core/schemas/builders/set/index.js +5 -0
- package/dist/cjs/core/schemas/builders/set/set.d.ts +2 -0
- package/dist/cjs/core/schemas/builders/set/set.js +43 -0
- package/dist/cjs/core/schemas/builders/undiscriminated-union/index.d.ts +2 -0
- package/dist/cjs/core/schemas/builders/undiscriminated-union/index.js +5 -0
- package/dist/cjs/core/schemas/builders/undiscriminated-union/types.d.ts +4 -0
- package/dist/cjs/core/schemas/builders/undiscriminated-union/types.js +2 -0
- package/dist/cjs/core/schemas/builders/undiscriminated-union/undiscriminatedUnion.d.ts +3 -0
- package/dist/cjs/core/schemas/builders/undiscriminated-union/undiscriminatedUnion.js +39 -0
- package/dist/cjs/core/schemas/builders/union/discriminant.d.ts +5 -0
- package/dist/cjs/core/schemas/builders/union/discriminant.js +9 -0
- package/dist/cjs/core/schemas/builders/union/index.d.ts +4 -0
- package/dist/cjs/core/schemas/builders/union/index.js +7 -0
- package/dist/cjs/core/schemas/builders/union/types.d.ts +13 -0
- package/dist/cjs/core/schemas/builders/union/types.js +2 -0
- package/dist/cjs/core/schemas/builders/union/union.d.ts +4 -0
- package/dist/cjs/core/schemas/builders/union/union.js +126 -0
- package/dist/cjs/core/schemas/index.d.ts +2 -0
- package/dist/cjs/core/schemas/index.js +17 -0
- package/dist/cjs/core/schemas/utils/MaybePromise.d.ts +1 -0
- package/dist/cjs/core/schemas/utils/MaybePromise.js +2 -0
- package/dist/cjs/core/schemas/utils/addQuestionMarksToNullableProperties.d.ts +7 -0
- package/dist/cjs/core/schemas/utils/addQuestionMarksToNullableProperties.js +2 -0
- package/dist/cjs/core/schemas/utils/createIdentitySchemaCreator.d.ts +2 -0
- package/dist/cjs/core/schemas/utils/createIdentitySchemaCreator.js +15 -0
- package/dist/cjs/core/schemas/utils/entries.d.ts +1 -0
- package/dist/cjs/core/schemas/utils/entries.js +6 -0
- package/dist/cjs/core/schemas/utils/filterObject.d.ts +1 -0
- package/dist/cjs/core/schemas/utils/filterObject.js +13 -0
- package/dist/cjs/core/schemas/utils/getErrorMessageForIncorrectType.d.ts +1 -0
- package/dist/cjs/core/schemas/utils/getErrorMessageForIncorrectType.js +27 -0
- package/dist/cjs/core/schemas/utils/isPlainObject.d.ts +1 -0
- package/dist/cjs/core/schemas/utils/isPlainObject.js +15 -0
- package/dist/cjs/core/schemas/utils/keys.d.ts +1 -0
- package/dist/cjs/core/schemas/utils/keys.js +6 -0
- package/dist/cjs/core/schemas/utils/maybeSkipValidation.d.ts +2 -0
- package/dist/cjs/core/schemas/utils/maybeSkipValidation.js +27 -0
- package/dist/cjs/core/schemas/utils/partition.d.ts +1 -0
- package/dist/cjs/core/schemas/utils/partition.js +15 -0
- package/dist/cjs/core/url/QueryStringBuilder.d.ts +47 -0
- package/dist/cjs/core/url/QueryStringBuilder.js +83 -0
- package/dist/cjs/core/url/encodePathParam.d.ts +3 -0
- package/dist/cjs/core/url/encodePathParam.js +27 -0
- package/dist/cjs/core/url/index.d.ts +4 -0
- package/dist/cjs/core/url/index.js +11 -0
- package/dist/cjs/core/url/join.d.ts +1 -0
- package/dist/cjs/core/url/join.js +68 -0
- package/dist/cjs/core/url/qs.d.ts +7 -0
- package/dist/cjs/core/url/qs.js +76 -0
- package/dist/cjs/environments.d.ts +4 -0
- package/dist/cjs/environments.js +7 -0
- package/dist/cjs/errors/DecisionsError.d.ts +15 -0
- package/dist/cjs/errors/DecisionsError.js +53 -0
- package/dist/cjs/errors/DecisionsTimeoutError.d.ts +6 -0
- package/dist/cjs/errors/DecisionsTimeoutError.js +52 -0
- package/dist/cjs/errors/handleNonStatusCodeError.d.ts +2 -0
- package/dist/cjs/errors/handleNonStatusCodeError.js +68 -0
- package/dist/cjs/errors/index.d.ts +2 -0
- package/dist/cjs/errors/index.js +7 -0
- package/dist/cjs/exports.d.ts +1 -0
- package/dist/cjs/exports.js +17 -0
- package/dist/cjs/index.d.ts +7 -0
- package/dist/cjs/index.js +49 -0
- package/dist/cjs/serialization/index.d.ts +2 -0
- package/dist/cjs/serialization/index.js +18 -0
- package/dist/cjs/serialization/resources/decisions/client/index.d.ts +1 -0
- package/dist/cjs/serialization/resources/decisions/client/index.js +17 -0
- package/dist/cjs/serialization/resources/decisions/client/requests/InputTokensRequest.d.ts +12 -0
- package/dist/cjs/serialization/resources/decisions/client/requests/InputTokensRequest.js +44 -0
- package/dist/cjs/serialization/resources/decisions/client/requests/index.d.ts +1 -0
- package/dist/cjs/serialization/resources/decisions/client/requests/index.js +5 -0
- package/dist/cjs/serialization/resources/decisions/index.d.ts +1 -0
- package/dist/cjs/serialization/resources/decisions/index.js +17 -0
- package/dist/cjs/serialization/resources/index.d.ts +2 -0
- package/dist/cjs/serialization/resources/index.js +41 -0
- package/dist/cjs/serialization/types/Answer.d.ts +23 -0
- package/dist/cjs/serialization/types/Answer.js +53 -0
- package/dist/cjs/serialization/types/Answers.d.ts +10 -0
- package/dist/cjs/serialization/types/Answers.js +40 -0
- package/dist/cjs/serialization/types/ChoiceAnswer.d.ts +11 -0
- package/dist/cjs/serialization/types/ChoiceAnswer.js +43 -0
- package/dist/cjs/serialization/types/ChoiceQuestion.d.ts +11 -0
- package/dist/cjs/serialization/types/ChoiceQuestion.js +43 -0
- package/dist/cjs/serialization/types/Criterion.d.ts +10 -0
- package/dist/cjs/serialization/types/Criterion.js +42 -0
- package/dist/cjs/serialization/types/DecisionsRequest.d.ts +11 -0
- package/dist/cjs/serialization/types/DecisionsRequest.js +43 -0
- package/dist/cjs/serialization/types/DecisionsResponse.d.ts +13 -0
- package/dist/cjs/serialization/types/DecisionsResponse.js +45 -0
- package/dist/cjs/serialization/types/ErrorCode.d.ts +7 -0
- package/dist/cjs/serialization/types/ErrorCode.js +54 -0
- package/dist/cjs/serialization/types/ErrorType.d.ts +7 -0
- package/dist/cjs/serialization/types/ErrorType.js +39 -0
- package/dist/cjs/serialization/types/Error_.d.ts +15 -0
- package/dist/cjs/serialization/types/Error_.js +47 -0
- package/dist/cjs/serialization/types/GatewayError.d.ts +10 -0
- package/dist/cjs/serialization/types/GatewayError.js +42 -0
- package/dist/cjs/serialization/types/InputTokensResponse.d.ts +9 -0
- package/dist/cjs/serialization/types/InputTokensResponse.js +41 -0
- package/dist/cjs/serialization/types/Moment.d.ts +11 -0
- package/dist/cjs/serialization/types/Moment.js +43 -0
- package/dist/cjs/serialization/types/MomentAnswer.d.ts +10 -0
- package/dist/cjs/serialization/types/MomentAnswer.js +42 -0
- package/dist/cjs/serialization/types/MomentQuestion.d.ts +9 -0
- package/dist/cjs/serialization/types/MomentQuestion.js +41 -0
- package/dist/cjs/serialization/types/NoulAnswer.d.ts +9 -0
- package/dist/cjs/serialization/types/NoulAnswer.js +41 -0
- package/dist/cjs/serialization/types/NoulCriteria.d.ts +10 -0
- package/dist/cjs/serialization/types/NoulCriteria.js +42 -0
- package/dist/cjs/serialization/types/NoulQuestion.d.ts +11 -0
- package/dist/cjs/serialization/types/NoulQuestion.js +43 -0
- package/dist/cjs/serialization/types/Question.d.ts +23 -0
- package/dist/cjs/serialization/types/Question.js +53 -0
- package/dist/cjs/serialization/types/Questions.d.ts +10 -0
- package/dist/cjs/serialization/types/Questions.js +40 -0
- package/dist/cjs/serialization/types/Received.d.ts +9 -0
- package/dist/cjs/serialization/types/Received.js +41 -0
- package/dist/cjs/serialization/types/Run.d.ts +18 -0
- package/dist/cjs/serialization/types/Run.js +50 -0
- package/dist/cjs/serialization/types/RunReceived.d.ts +10 -0
- package/dist/cjs/serialization/types/RunReceived.js +42 -0
- package/dist/cjs/serialization/types/RunStatus.d.ts +7 -0
- package/dist/cjs/serialization/types/RunStatus.js +39 -0
- package/dist/cjs/serialization/types/RunSummary.d.ts +16 -0
- package/dist/cjs/serialization/types/RunSummary.js +48 -0
- package/dist/cjs/serialization/types/RunsPage.d.ts +11 -0
- package/dist/cjs/serialization/types/RunsPage.js +43 -0
- package/dist/cjs/serialization/types/ScoreAnswer.d.ts +12 -0
- package/dist/cjs/serialization/types/ScoreAnswer.js +44 -0
- package/dist/cjs/serialization/types/ScoreQuestion.d.ts +10 -0
- package/dist/cjs/serialization/types/ScoreQuestion.js +42 -0
- package/dist/cjs/serialization/types/index.d.ts +28 -0
- package/dist/cjs/serialization/types/index.js +44 -0
- package/dist/cjs/version.d.ts +1 -0
- package/dist/cjs/version.js +4 -0
- package/dist/esm/BaseClient.d.mts +54 -0
- package/dist/esm/BaseClient.mjs +40 -0
- package/dist/esm/Client.d.mts +29 -0
- package/dist/esm/Client.mjs +51 -0
- package/dist/esm/api/errors/BadRequestError.d.mts +7 -0
- package/dist/esm/api/errors/BadRequestError.mjs +17 -0
- package/dist/esm/api/errors/ContentTooLargeError.d.mts +7 -0
- package/dist/esm/api/errors/ContentTooLargeError.mjs +17 -0
- package/dist/esm/api/errors/ForbiddenError.d.mts +7 -0
- package/dist/esm/api/errors/ForbiddenError.mjs +17 -0
- package/dist/esm/api/errors/InternalServerError.d.mts +7 -0
- package/dist/esm/api/errors/InternalServerError.mjs +17 -0
- package/dist/esm/api/errors/NotFoundError.d.mts +7 -0
- package/dist/esm/api/errors/NotFoundError.mjs +17 -0
- package/dist/esm/api/errors/PaymentRequiredError.d.mts +7 -0
- package/dist/esm/api/errors/PaymentRequiredError.mjs +17 -0
- package/dist/esm/api/errors/ServiceUnavailableError.d.mts +7 -0
- package/dist/esm/api/errors/ServiceUnavailableError.mjs +17 -0
- package/dist/esm/api/errors/TooManyRequestsError.d.mts +7 -0
- package/dist/esm/api/errors/TooManyRequestsError.mjs +17 -0
- package/dist/esm/api/errors/UnauthorizedError.d.mts +7 -0
- package/dist/esm/api/errors/UnauthorizedError.mjs +17 -0
- package/dist/esm/api/errors/UnsupportedMediaTypeError.d.mts +7 -0
- package/dist/esm/api/errors/UnsupportedMediaTypeError.mjs +17 -0
- package/dist/esm/api/errors/index.d.mts +10 -0
- package/dist/esm/api/errors/index.mjs +10 -0
- package/dist/esm/api/index.d.mts +3 -0
- package/dist/esm/api/index.mjs +3 -0
- package/dist/esm/api/resources/decisions/client/Client.d.mts +284 -0
- package/dist/esm/api/resources/decisions/client/Client.mjs +527 -0
- package/dist/esm/api/resources/decisions/client/index.d.mts +1 -0
- package/dist/esm/api/resources/decisions/client/index.mjs +1 -0
- package/dist/esm/api/resources/decisions/client/requests/DecisionsUpload.d.mts +118 -0
- package/dist/esm/api/resources/decisions/client/requests/DecisionsUpload.mjs +2 -0
- package/dist/esm/api/resources/decisions/client/requests/InputTokensRequest.d.mts +44 -0
- package/dist/esm/api/resources/decisions/client/requests/InputTokensRequest.mjs +2 -0
- package/dist/esm/api/resources/decisions/client/requests/index.d.mts +2 -0
- package/dist/esm/api/resources/decisions/client/requests/index.mjs +1 -0
- package/dist/esm/api/resources/decisions/exports.d.mts +2 -0
- package/dist/esm/api/resources/decisions/exports.mjs +3 -0
- package/dist/esm/api/resources/decisions/index.d.mts +1 -0
- package/dist/esm/api/resources/decisions/index.mjs +1 -0
- package/dist/esm/api/resources/index.d.mts +4 -0
- package/dist/esm/api/resources/index.mjs +4 -0
- package/dist/esm/api/resources/runs/client/Client.d.mts +60 -0
- package/dist/esm/api/resources/runs/client/Client.mjs +269 -0
- package/dist/esm/api/resources/runs/client/index.d.mts +1 -0
- package/dist/esm/api/resources/runs/client/index.mjs +1 -0
- package/dist/esm/api/resources/runs/client/requests/GetRunsRequest.d.mts +10 -0
- package/dist/esm/api/resources/runs/client/requests/GetRunsRequest.mjs +2 -0
- package/dist/esm/api/resources/runs/client/requests/ListRunsRequest.d.mts +19 -0
- package/dist/esm/api/resources/runs/client/requests/ListRunsRequest.mjs +2 -0
- package/dist/esm/api/resources/runs/client/requests/index.d.mts +2 -0
- package/dist/esm/api/resources/runs/client/requests/index.mjs +1 -0
- package/dist/esm/api/resources/runs/exports.d.mts +2 -0
- package/dist/esm/api/resources/runs/exports.mjs +3 -0
- package/dist/esm/api/resources/runs/index.d.mts +1 -0
- package/dist/esm/api/resources/runs/index.mjs +1 -0
- package/dist/esm/api/types/Answer.d.mts +19 -0
- package/dist/esm/api/types/Answer.mjs +2 -0
- package/dist/esm/api/types/Answers.d.mts +7 -0
- package/dist/esm/api/types/Answers.mjs +2 -0
- package/dist/esm/api/types/ChoiceAnswer.d.mts +11 -0
- package/dist/esm/api/types/ChoiceAnswer.mjs +2 -0
- package/dist/esm/api/types/ChoiceQuestion.d.mts +10 -0
- package/dist/esm/api/types/ChoiceQuestion.mjs +2 -0
- package/dist/esm/api/types/Criterion.d.mts +9 -0
- package/dist/esm/api/types/Criterion.mjs +2 -0
- package/dist/esm/api/types/DecisionsRequest.d.mts +9 -0
- package/dist/esm/api/types/DecisionsRequest.mjs +2 -0
- package/dist/esm/api/types/DecisionsResponse.d.mts +10 -0
- package/dist/esm/api/types/DecisionsResponse.mjs +2 -0
- package/dist/esm/api/types/ErrorCode.d.mts +58 -0
- package/dist/esm/api/types/ErrorCode.mjs +58 -0
- package/dist/esm/api/types/ErrorType.d.mts +5 -0
- package/dist/esm/api/types/ErrorType.mjs +5 -0
- package/dist/esm/api/types/Error_.d.mts +15 -0
- package/dist/esm/api/types/Error_.mjs +2 -0
- package/dist/esm/api/types/GatewayError.d.mts +9 -0
- package/dist/esm/api/types/GatewayError.mjs +2 -0
- package/dist/esm/api/types/InputTokensResponse.d.mts +7 -0
- package/dist/esm/api/types/InputTokensResponse.mjs +2 -0
- package/dist/esm/api/types/Moment.d.mts +11 -0
- package/dist/esm/api/types/Moment.mjs +2 -0
- package/dist/esm/api/types/MomentAnswer.d.mts +8 -0
- package/dist/esm/api/types/MomentAnswer.mjs +2 -0
- package/dist/esm/api/types/MomentQuestion.d.mts +7 -0
- package/dist/esm/api/types/MomentQuestion.mjs +2 -0
- package/dist/esm/api/types/NoulAnswer.d.mts +7 -0
- package/dist/esm/api/types/NoulAnswer.mjs +2 -0
- package/dist/esm/api/types/NoulCriteria.d.mts +9 -0
- package/dist/esm/api/types/NoulCriteria.mjs +2 -0
- package/dist/esm/api/types/NoulQuestion.d.mts +9 -0
- package/dist/esm/api/types/NoulQuestion.mjs +2 -0
- package/dist/esm/api/types/Question.d.mts +19 -0
- package/dist/esm/api/types/Question.mjs +2 -0
- package/dist/esm/api/types/Questions.d.mts +7 -0
- package/dist/esm/api/types/Questions.mjs +2 -0
- package/dist/esm/api/types/Received.d.mts +7 -0
- package/dist/esm/api/types/Received.mjs +2 -0
- package/dist/esm/api/types/Run.d.mts +18 -0
- package/dist/esm/api/types/Run.mjs +2 -0
- package/dist/esm/api/types/RunReceived.d.mts +9 -0
- package/dist/esm/api/types/RunReceived.mjs +2 -0
- package/dist/esm/api/types/RunStatus.d.mts +6 -0
- package/dist/esm/api/types/RunStatus.mjs +6 -0
- package/dist/esm/api/types/RunSummary.d.mts +16 -0
- package/dist/esm/api/types/RunSummary.mjs +2 -0
- package/dist/esm/api/types/RunsPage.d.mts +10 -0
- package/dist/esm/api/types/RunsPage.mjs +2 -0
- package/dist/esm/api/types/ScoreAnswer.d.mts +13 -0
- package/dist/esm/api/types/ScoreAnswer.mjs +2 -0
- package/dist/esm/api/types/ScoreQuestion.d.mts +9 -0
- package/dist/esm/api/types/ScoreQuestion.mjs +2 -0
- package/dist/esm/api/types/index.d.mts +28 -0
- package/dist/esm/api/types/index.mjs +28 -0
- package/dist/esm/audio-helpers/bytes.d.mts +6 -0
- package/dist/esm/audio-helpers/bytes.mjs +32 -0
- package/dist/esm/audio-helpers/checks.d.mts +2 -0
- package/dist/esm/audio-helpers/checks.mjs +21 -0
- package/dist/esm/audio-helpers/chunks.d.mts +160 -0
- package/dist/esm/audio-helpers/chunks.mjs +346 -0
- package/dist/esm/audio-helpers/downmix.d.mts +17 -0
- package/dist/esm/audio-helpers/downmix.mjs +287 -0
- package/dist/esm/audio-helpers/errors.d.mts +4 -0
- package/dist/esm/audio-helpers/errors.mjs +8 -0
- package/dist/esm/audio-helpers/files.d.mts +27 -0
- package/dist/esm/audio-helpers/files.mjs +173 -0
- package/dist/esm/audio-helpers/index.d.mts +4 -0
- package/dist/esm/audio-helpers/index.mjs +5 -0
- package/dist/esm/audio-helpers/integers.d.mts +3 -0
- package/dist/esm/audio-helpers/integers.mjs +21 -0
- package/dist/esm/audio-helpers/mp3.d.mts +24 -0
- package/dist/esm/audio-helpers/mp3.mjs +239 -0
- package/dist/esm/audio-helpers/results.d.mts +74 -0
- package/dist/esm/audio-helpers/results.mjs +181 -0
- package/dist/esm/audio-helpers/wav.d.mts +21 -0
- package/dist/esm/audio-helpers/wav.mjs +161 -0
- package/dist/esm/auth/HeaderAuthProvider.d.mts +20 -0
- package/dist/esm/auth/HeaderAuthProvider.mjs +46 -0
- package/dist/esm/auth/index.d.mts +1 -0
- package/dist/esm/auth/index.mjs +1 -0
- package/dist/esm/core/auth/AuthProvider.d.mts +8 -0
- package/dist/esm/core/auth/AuthProvider.mjs +6 -0
- package/dist/esm/core/auth/AuthRequest.d.mts +9 -0
- package/dist/esm/core/auth/AuthRequest.mjs +1 -0
- package/dist/esm/core/auth/BasicAuth.d.mts +8 -0
- package/dist/esm/core/auth/BasicAuth.mjs +30 -0
- package/dist/esm/core/auth/BearerToken.d.mts +7 -0
- package/dist/esm/core/auth/BearerToken.mjs +13 -0
- package/dist/esm/core/auth/NoOpAuthProvider.d.mts +5 -0
- package/dist/esm/core/auth/NoOpAuthProvider.mjs +5 -0
- package/dist/esm/core/auth/index.d.mts +5 -0
- package/dist/esm/core/auth/index.mjs +4 -0
- package/dist/esm/core/base64.d.mts +2 -0
- package/dist/esm/core/base64.mjs +22 -0
- package/dist/esm/core/exports.d.mts +2 -0
- package/dist/esm/core/exports.mjs +2 -0
- package/dist/esm/core/fetcher/APIResponse.d.mts +20 -0
- package/dist/esm/core/fetcher/APIResponse.mjs +1 -0
- package/dist/esm/core/fetcher/BinaryResponse.d.mts +19 -0
- package/dist/esm/core/fetcher/BinaryResponse.mjs +14 -0
- package/dist/esm/core/fetcher/EndpointMetadata.d.mts +13 -0
- package/dist/esm/core/fetcher/EndpointMetadata.mjs +1 -0
- package/dist/esm/core/fetcher/EndpointSupplier.d.mts +12 -0
- package/dist/esm/core/fetcher/EndpointSupplier.mjs +19 -0
- package/dist/esm/core/fetcher/Fetcher.d.mts +56 -0
- package/dist/esm/core/fetcher/Fetcher.mjs +271 -0
- package/dist/esm/core/fetcher/Headers.d.mts +2 -0
- package/dist/esm/core/fetcher/Headers.mjs +82 -0
- package/dist/esm/core/fetcher/HttpResponsePromise.d.mts +58 -0
- package/dist/esm/core/fetcher/HttpResponsePromise.mjs +99 -0
- package/dist/esm/core/fetcher/RawResponse.d.mts +29 -0
- package/dist/esm/core/fetcher/RawResponse.mjs +40 -0
- package/dist/esm/core/fetcher/Supplier.d.mts +4 -0
- package/dist/esm/core/fetcher/Supplier.mjs +19 -0
- package/dist/esm/core/fetcher/createRequestUrl.d.mts +1 -0
- package/dist/esm/core/fetcher/createRequestUrl.mjs +5 -0
- package/dist/esm/core/fetcher/getErrorResponseBody.d.mts +1 -0
- package/dist/esm/core/fetcher/getErrorResponseBody.mjs +55 -0
- package/dist/esm/core/fetcher/getFetchFn.d.mts +1 -0
- package/dist/esm/core/fetcher/getFetchFn.mjs +14 -0
- package/dist/esm/core/fetcher/getHeader.d.mts +1 -0
- package/dist/esm/core/fetcher/getHeader.mjs +8 -0
- package/dist/esm/core/fetcher/getRequestBody.d.mts +7 -0
- package/dist/esm/core/fetcher/getRequestBody.mjs +24 -0
- package/dist/esm/core/fetcher/getResponseBody.d.mts +17 -0
- package/dist/esm/core/fetcher/getResponseBody.mjs +81 -0
- package/dist/esm/core/fetcher/index.d.mts +13 -0
- package/dist/esm/core/fetcher/index.mjs +7 -0
- package/dist/esm/core/fetcher/makePassthroughRequest.d.mts +49 -0
- package/dist/esm/core/fetcher/makePassthroughRequest.mjs +170 -0
- package/dist/esm/core/fetcher/makeRequest.d.mts +11 -0
- package/dist/esm/core/fetcher/makeRequest.mjs +87 -0
- package/dist/esm/core/fetcher/redactUrl.d.mts +2 -0
- package/dist/esm/core/fetcher/redactUrl.mjs +84 -0
- package/dist/esm/core/fetcher/requestWithRetries.d.mts +1 -0
- package/dist/esm/core/fetcher/requestWithRetries.mjs +88 -0
- package/dist/esm/core/fetcher/signals.d.mts +6 -0
- package/dist/esm/core/fetcher/signals.mjs +28 -0
- package/dist/esm/core/file/exports.d.mts +1 -0
- package/dist/esm/core/file/exports.mjs +1 -0
- package/dist/esm/core/file/file.d.mts +10 -0
- package/dist/esm/core/file/file.mjs +188 -0
- package/dist/esm/core/file/index.d.mts +2 -0
- package/dist/esm/core/file/index.mjs +2 -0
- package/dist/esm/core/file/types.d.mts +66 -0
- package/dist/esm/core/file/types.mjs +1 -0
- package/dist/esm/core/form-data-utils/FormDataWrapper.d.mts +15 -0
- package/dist/esm/core/form-data-utils/FormDataWrapper.mjs +154 -0
- package/dist/esm/core/form-data-utils/encodeAsFormParameter.d.mts +1 -0
- package/dist/esm/core/form-data-utils/encodeAsFormParameter.mjs +9 -0
- package/dist/esm/core/form-data-utils/index.d.mts +2 -0
- package/dist/esm/core/form-data-utils/index.mjs +2 -0
- package/dist/esm/core/headers.d.mts +2 -0
- package/dist/esm/core/headers.mjs +27 -0
- package/dist/esm/core/index.d.mts +9 -0
- package/dist/esm/core/index.mjs +9 -0
- package/dist/esm/core/json.d.mts +15 -0
- package/dist/esm/core/json.mjs +19 -0
- package/dist/esm/core/logging/exports.d.mts +18 -0
- package/dist/esm/core/logging/exports.mjs +9 -0
- package/dist/esm/core/logging/index.d.mts +1 -0
- package/dist/esm/core/logging/index.mjs +1 -0
- package/dist/esm/core/logging/logger.d.mts +126 -0
- package/dist/esm/core/logging/logger.mjs +138 -0
- package/dist/esm/core/requestBody.d.mts +12 -0
- package/dist/esm/core/requestBody.mjs +23 -0
- package/dist/esm/core/runtime/index.d.mts +1 -0
- package/dist/esm/core/runtime/index.mjs +1 -0
- package/dist/esm/core/runtime/runtime.d.mts +28 -0
- package/dist/esm/core/runtime/runtime.mjs +172 -0
- package/dist/esm/core/schemas/Schema.d.mts +88 -0
- package/dist/esm/core/schemas/Schema.mjs +22 -0
- package/dist/esm/core/schemas/builders/bigint/bigint.d.mts +2 -0
- package/dist/esm/core/schemas/builders/bigint/bigint.mjs +50 -0
- package/dist/esm/core/schemas/builders/bigint/index.d.mts +1 -0
- package/dist/esm/core/schemas/builders/bigint/index.mjs +1 -0
- package/dist/esm/core/schemas/builders/date/date.d.mts +2 -0
- package/dist/esm/core/schemas/builders/date/date.mjs +59 -0
- package/dist/esm/core/schemas/builders/date/index.d.mts +1 -0
- package/dist/esm/core/schemas/builders/date/index.mjs +1 -0
- package/dist/esm/core/schemas/builders/enum/enum.d.mts +3 -0
- package/dist/esm/core/schemas/builders/enum/enum.mjs +41 -0
- package/dist/esm/core/schemas/builders/enum/index.d.mts +1 -0
- package/dist/esm/core/schemas/builders/enum/index.mjs +1 -0
- package/dist/esm/core/schemas/builders/index.d.mts +14 -0
- package/dist/esm/core/schemas/builders/index.mjs +14 -0
- package/dist/esm/core/schemas/builders/lazy/index.d.mts +3 -0
- package/dist/esm/core/schemas/builders/lazy/index.mjs +2 -0
- package/dist/esm/core/schemas/builders/lazy/lazy.d.mts +5 -0
- package/dist/esm/core/schemas/builders/lazy/lazy.mjs +19 -0
- package/dist/esm/core/schemas/builders/lazy/lazyObject.d.mts +3 -0
- package/dist/esm/core/schemas/builders/lazy/lazyObject.mjs +8 -0
- package/dist/esm/core/schemas/builders/list/index.d.mts +1 -0
- package/dist/esm/core/schemas/builders/list/index.mjs +1 -0
- package/dist/esm/core/schemas/builders/list/list.d.mts +2 -0
- package/dist/esm/core/schemas/builders/list/list.mjs +46 -0
- package/dist/esm/core/schemas/builders/literals/booleanLiteral.d.mts +2 -0
- package/dist/esm/core/schemas/builders/literals/booleanLiteral.mjs +25 -0
- package/dist/esm/core/schemas/builders/literals/index.d.mts +2 -0
- package/dist/esm/core/schemas/builders/literals/index.mjs +2 -0
- package/dist/esm/core/schemas/builders/literals/stringLiteral.d.mts +2 -0
- package/dist/esm/core/schemas/builders/literals/stringLiteral.mjs +25 -0
- package/dist/esm/core/schemas/builders/object/index.d.mts +6 -0
- package/dist/esm/core/schemas/builders/object/index.mjs +3 -0
- package/dist/esm/core/schemas/builders/object/object.d.mts +3 -0
- package/dist/esm/core/schemas/builders/object/object.mjs +350 -0
- package/dist/esm/core/schemas/builders/object/objectWithoutOptionalProperties.d.mts +6 -0
- package/dist/esm/core/schemas/builders/object/objectWithoutOptionalProperties.mjs +4 -0
- package/dist/esm/core/schemas/builders/object/property.d.mts +8 -0
- package/dist/esm/core/schemas/builders/object/property.mjs +11 -0
- package/dist/esm/core/schemas/builders/object/types.d.mts +31 -0
- package/dist/esm/core/schemas/builders/object/types.mjs +1 -0
- package/dist/esm/core/schemas/builders/object-like/getObjectLikeUtils.d.mts +9 -0
- package/dist/esm/core/schemas/builders/object-like/getObjectLikeUtils.mjs +56 -0
- package/dist/esm/core/schemas/builders/object-like/index.d.mts +2 -0
- package/dist/esm/core/schemas/builders/object-like/index.mjs +1 -0
- package/dist/esm/core/schemas/builders/object-like/types.d.mts +7 -0
- package/dist/esm/core/schemas/builders/object-like/types.mjs +1 -0
- package/dist/esm/core/schemas/builders/primitives/any.d.mts +2 -0
- package/dist/esm/core/schemas/builders/primitives/any.mjs +6 -0
- package/dist/esm/core/schemas/builders/primitives/boolean.d.mts +2 -0
- package/dist/esm/core/schemas/builders/primitives/boolean.mjs +22 -0
- package/dist/esm/core/schemas/builders/primitives/index.d.mts +6 -0
- package/dist/esm/core/schemas/builders/primitives/index.mjs +6 -0
- package/dist/esm/core/schemas/builders/primitives/never.d.mts +2 -0
- package/dist/esm/core/schemas/builders/primitives/never.mjs +11 -0
- package/dist/esm/core/schemas/builders/primitives/number.d.mts +2 -0
- package/dist/esm/core/schemas/builders/primitives/number.mjs +22 -0
- package/dist/esm/core/schemas/builders/primitives/string.d.mts +2 -0
- package/dist/esm/core/schemas/builders/primitives/string.mjs +22 -0
- package/dist/esm/core/schemas/builders/primitives/unknown.d.mts +2 -0
- package/dist/esm/core/schemas/builders/primitives/unknown.mjs +3 -0
- package/dist/esm/core/schemas/builders/record/index.d.mts +2 -0
- package/dist/esm/core/schemas/builders/record/index.mjs +1 -0
- package/dist/esm/core/schemas/builders/record/record.d.mts +4 -0
- package/dist/esm/core/schemas/builders/record/record.mjs +127 -0
- package/dist/esm/core/schemas/builders/record/types.d.mts +6 -0
- package/dist/esm/core/schemas/builders/record/types.mjs +1 -0
- package/dist/esm/core/schemas/builders/schema-utils/JsonError.d.mts +5 -0
- package/dist/esm/core/schemas/builders/schema-utils/JsonError.mjs +9 -0
- package/dist/esm/core/schemas/builders/schema-utils/ParseError.d.mts +5 -0
- package/dist/esm/core/schemas/builders/schema-utils/ParseError.mjs +9 -0
- package/dist/esm/core/schemas/builders/schema-utils/getSchemaUtils.d.mts +21 -0
- package/dist/esm/core/schemas/builders/schema-utils/getSchemaUtils.mjs +138 -0
- package/dist/esm/core/schemas/builders/schema-utils/index.d.mts +4 -0
- package/dist/esm/core/schemas/builders/schema-utils/index.mjs +3 -0
- package/dist/esm/core/schemas/builders/schema-utils/stringifyValidationErrors.d.mts +2 -0
- package/dist/esm/core/schemas/builders/schema-utils/stringifyValidationErrors.mjs +6 -0
- package/dist/esm/core/schemas/builders/set/index.d.mts +1 -0
- package/dist/esm/core/schemas/builders/set/index.mjs +1 -0
- package/dist/esm/core/schemas/builders/set/set.d.mts +2 -0
- package/dist/esm/core/schemas/builders/set/set.mjs +40 -0
- package/dist/esm/core/schemas/builders/undiscriminated-union/index.d.mts +2 -0
- package/dist/esm/core/schemas/builders/undiscriminated-union/index.mjs +1 -0
- package/dist/esm/core/schemas/builders/undiscriminated-union/types.d.mts +4 -0
- package/dist/esm/core/schemas/builders/undiscriminated-union/types.mjs +1 -0
- package/dist/esm/core/schemas/builders/undiscriminated-union/undiscriminatedUnion.d.mts +3 -0
- package/dist/esm/core/schemas/builders/undiscriminated-union/undiscriminatedUnion.mjs +36 -0
- package/dist/esm/core/schemas/builders/union/discriminant.d.mts +5 -0
- package/dist/esm/core/schemas/builders/union/discriminant.mjs +6 -0
- package/dist/esm/core/schemas/builders/union/index.d.mts +4 -0
- package/dist/esm/core/schemas/builders/union/index.mjs +2 -0
- package/dist/esm/core/schemas/builders/union/types.d.mts +13 -0
- package/dist/esm/core/schemas/builders/union/types.mjs +1 -0
- package/dist/esm/core/schemas/builders/union/union.d.mts +4 -0
- package/dist/esm/core/schemas/builders/union/union.mjs +123 -0
- package/dist/esm/core/schemas/index.d.mts +2 -0
- package/dist/esm/core/schemas/index.mjs +1 -0
- package/dist/esm/core/schemas/utils/MaybePromise.d.mts +1 -0
- package/dist/esm/core/schemas/utils/MaybePromise.mjs +1 -0
- package/dist/esm/core/schemas/utils/addQuestionMarksToNullableProperties.d.mts +7 -0
- package/dist/esm/core/schemas/utils/addQuestionMarksToNullableProperties.mjs +1 -0
- package/dist/esm/core/schemas/utils/createIdentitySchemaCreator.d.mts +2 -0
- package/dist/esm/core/schemas/utils/createIdentitySchemaCreator.mjs +12 -0
- package/dist/esm/core/schemas/utils/entries.d.mts +1 -0
- package/dist/esm/core/schemas/utils/entries.mjs +3 -0
- package/dist/esm/core/schemas/utils/filterObject.d.mts +1 -0
- package/dist/esm/core/schemas/utils/filterObject.mjs +10 -0
- package/dist/esm/core/schemas/utils/getErrorMessageForIncorrectType.d.mts +1 -0
- package/dist/esm/core/schemas/utils/getErrorMessageForIncorrectType.mjs +24 -0
- package/dist/esm/core/schemas/utils/isPlainObject.d.mts +1 -0
- package/dist/esm/core/schemas/utils/isPlainObject.mjs +12 -0
- package/dist/esm/core/schemas/utils/keys.d.mts +1 -0
- package/dist/esm/core/schemas/utils/keys.mjs +3 -0
- package/dist/esm/core/schemas/utils/maybeSkipValidation.d.mts +2 -0
- package/dist/esm/core/schemas/utils/maybeSkipValidation.mjs +24 -0
- package/dist/esm/core/schemas/utils/partition.d.mts +1 -0
- package/dist/esm/core/schemas/utils/partition.mjs +12 -0
- package/dist/esm/core/url/QueryStringBuilder.d.mts +47 -0
- package/dist/esm/core/url/QueryStringBuilder.mjs +80 -0
- package/dist/esm/core/url/encodePathParam.d.mts +3 -0
- package/dist/esm/core/url/encodePathParam.mjs +24 -0
- package/dist/esm/core/url/index.d.mts +4 -0
- package/dist/esm/core/url/index.mjs +4 -0
- package/dist/esm/core/url/join.d.mts +1 -0
- package/dist/esm/core/url/join.mjs +65 -0
- package/dist/esm/core/url/qs.d.mts +7 -0
- package/dist/esm/core/url/qs.mjs +73 -0
- package/dist/esm/environments.d.mts +4 -0
- package/dist/esm/environments.mjs +4 -0
- package/dist/esm/errors/DecisionsError.d.mts +15 -0
- package/dist/esm/errors/DecisionsError.mjs +49 -0
- package/dist/esm/errors/DecisionsTimeoutError.d.mts +6 -0
- package/dist/esm/errors/DecisionsTimeoutError.mjs +15 -0
- package/dist/esm/errors/handleNonStatusCodeError.d.mts +2 -0
- package/dist/esm/errors/handleNonStatusCodeError.mjs +32 -0
- package/dist/esm/errors/index.d.mts +2 -0
- package/dist/esm/errors/index.mjs +2 -0
- package/dist/esm/exports.d.mts +1 -0
- package/dist/esm/exports.mjs +1 -0
- package/dist/esm/index.d.mts +7 -0
- package/dist/esm/index.mjs +6 -0
- package/dist/esm/serialization/index.d.mts +2 -0
- package/dist/esm/serialization/index.mjs +2 -0
- package/dist/esm/serialization/resources/decisions/client/index.d.mts +1 -0
- package/dist/esm/serialization/resources/decisions/client/index.mjs +1 -0
- package/dist/esm/serialization/resources/decisions/client/requests/InputTokensRequest.d.mts +12 -0
- package/dist/esm/serialization/resources/decisions/client/requests/InputTokensRequest.mjs +8 -0
- package/dist/esm/serialization/resources/decisions/client/requests/index.d.mts +1 -0
- package/dist/esm/serialization/resources/decisions/client/requests/index.mjs +1 -0
- package/dist/esm/serialization/resources/decisions/index.d.mts +1 -0
- package/dist/esm/serialization/resources/decisions/index.mjs +1 -0
- package/dist/esm/serialization/resources/index.d.mts +2 -0
- package/dist/esm/serialization/resources/index.mjs +2 -0
- package/dist/esm/serialization/types/Answer.d.mts +23 -0
- package/dist/esm/serialization/types/Answer.mjs +17 -0
- package/dist/esm/serialization/types/Answers.d.mts +10 -0
- package/dist/esm/serialization/types/Answers.mjs +4 -0
- package/dist/esm/serialization/types/ChoiceAnswer.d.mts +11 -0
- package/dist/esm/serialization/types/ChoiceAnswer.mjs +7 -0
- package/dist/esm/serialization/types/ChoiceQuestion.d.mts +11 -0
- package/dist/esm/serialization/types/ChoiceQuestion.mjs +7 -0
- package/dist/esm/serialization/types/Criterion.d.mts +10 -0
- package/dist/esm/serialization/types/Criterion.mjs +6 -0
- package/dist/esm/serialization/types/DecisionsRequest.d.mts +11 -0
- package/dist/esm/serialization/types/DecisionsRequest.mjs +7 -0
- package/dist/esm/serialization/types/DecisionsResponse.d.mts +13 -0
- package/dist/esm/serialization/types/DecisionsResponse.mjs +9 -0
- package/dist/esm/serialization/types/ErrorCode.d.mts +7 -0
- package/dist/esm/serialization/types/ErrorCode.mjs +18 -0
- package/dist/esm/serialization/types/ErrorType.d.mts +7 -0
- package/dist/esm/serialization/types/ErrorType.mjs +3 -0
- package/dist/esm/serialization/types/Error_.d.mts +15 -0
- package/dist/esm/serialization/types/Error_.mjs +11 -0
- package/dist/esm/serialization/types/GatewayError.d.mts +10 -0
- package/dist/esm/serialization/types/GatewayError.mjs +6 -0
- package/dist/esm/serialization/types/InputTokensResponse.d.mts +9 -0
- package/dist/esm/serialization/types/InputTokensResponse.mjs +5 -0
- package/dist/esm/serialization/types/Moment.d.mts +11 -0
- package/dist/esm/serialization/types/Moment.mjs +7 -0
- package/dist/esm/serialization/types/MomentAnswer.d.mts +10 -0
- package/dist/esm/serialization/types/MomentAnswer.mjs +6 -0
- package/dist/esm/serialization/types/MomentQuestion.d.mts +9 -0
- package/dist/esm/serialization/types/MomentQuestion.mjs +5 -0
- package/dist/esm/serialization/types/NoulAnswer.d.mts +9 -0
- package/dist/esm/serialization/types/NoulAnswer.mjs +5 -0
- package/dist/esm/serialization/types/NoulCriteria.d.mts +10 -0
- package/dist/esm/serialization/types/NoulCriteria.mjs +6 -0
- package/dist/esm/serialization/types/NoulQuestion.d.mts +11 -0
- package/dist/esm/serialization/types/NoulQuestion.mjs +7 -0
- package/dist/esm/serialization/types/Question.d.mts +23 -0
- package/dist/esm/serialization/types/Question.mjs +17 -0
- package/dist/esm/serialization/types/Questions.d.mts +10 -0
- package/dist/esm/serialization/types/Questions.mjs +4 -0
- package/dist/esm/serialization/types/Received.d.mts +9 -0
- package/dist/esm/serialization/types/Received.mjs +5 -0
- package/dist/esm/serialization/types/Run.d.mts +18 -0
- package/dist/esm/serialization/types/Run.mjs +14 -0
- package/dist/esm/serialization/types/RunReceived.d.mts +10 -0
- package/dist/esm/serialization/types/RunReceived.mjs +6 -0
- package/dist/esm/serialization/types/RunStatus.d.mts +7 -0
- package/dist/esm/serialization/types/RunStatus.mjs +3 -0
- package/dist/esm/serialization/types/RunSummary.d.mts +16 -0
- package/dist/esm/serialization/types/RunSummary.mjs +12 -0
- package/dist/esm/serialization/types/RunsPage.d.mts +11 -0
- package/dist/esm/serialization/types/RunsPage.mjs +7 -0
- package/dist/esm/serialization/types/ScoreAnswer.d.mts +12 -0
- package/dist/esm/serialization/types/ScoreAnswer.mjs +8 -0
- package/dist/esm/serialization/types/ScoreQuestion.d.mts +10 -0
- package/dist/esm/serialization/types/ScoreQuestion.mjs +6 -0
- package/dist/esm/serialization/types/index.d.mts +28 -0
- package/dist/esm/serialization/types/index.mjs +28 -0
- package/dist/esm/version.d.mts +1 -0
- package/dist/esm/version.mjs +1 -0
- package/package.json +114 -8
- package/reference.md +327 -0
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
// Maintained by hand and listed in .fernignore, so SDK regeneration leaves it in place.
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
import { abortRawResponse } from "../core/fetcher/RawResponse.mjs";
|
|
12
|
+
import { DecisionsError } from "../errors/DecisionsError.mjs";
|
|
13
|
+
import { dataView } from "./bytes.mjs";
|
|
14
|
+
import { checkChoice } from "./checks.mjs";
|
|
15
|
+
import { ceilDiv, floorDiv } from "./integers.mjs";
|
|
16
|
+
import { samplesWav } from "./wav.mjs";
|
|
17
|
+
const STRATEGIES = ["mix", "first_channel", "none"];
|
|
18
|
+
// The model hears audio at this rate, in one channel.
|
|
19
|
+
const MODEL_SAMPLE_RATE = 16000;
|
|
20
|
+
// Front left and front right.
|
|
21
|
+
const STEREO_MASK = 0x3;
|
|
22
|
+
// The settings of ffmpeg's default resampler, which the API uses before the model hears the audio, so
|
|
23
|
+
// audio resampled here reaches the model as it would have without this step.
|
|
24
|
+
const FILTER_SIZE = 32;
|
|
25
|
+
const CUTOFF = 0.97;
|
|
26
|
+
const KAISER_BETA = 9;
|
|
27
|
+
// A ratio of rates that would need more phases than this gets this many instead, and an output
|
|
28
|
+
// between two phases is interpolated linearly between them.
|
|
29
|
+
const MAX_PHASES = 1024;
|
|
30
|
+
// Outputs computed together. Each needs a filter's length of input, so this bounds the memory used.
|
|
31
|
+
const BLOCK = 8192;
|
|
32
|
+
// The mixdown runs on the calling thread, so it lets other work run after about this long.
|
|
33
|
+
const YIELD_MS = 50;
|
|
34
|
+
export function checkDownmixStrategy(strategy = "mix") {
|
|
35
|
+
return checkChoice("downmixStrategy", strategy, STRATEGIES);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The samples of `wav` mixed down by `strategy` into one channel, with a description of them, or
|
|
39
|
+
* undefined when the file is best sent as it is: the API would mix it the same way and converting it
|
|
40
|
+
* would not make it smaller. Resampled audio is at most MODEL_SAMPLE_RATE, in 32-bit floating point.
|
|
41
|
+
* Rejects with a DecisionsError once `signal` aborts.
|
|
42
|
+
*/
|
|
43
|
+
export function downmixWav(data, wav, strategy, signal) {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
// ffmpeg weighs channels by the speakers in the header's channel mask and leaves out the LFE
|
|
46
|
+
// channel, and it refuses some two-channel masks, so only audio it mixes by adding the channels at
|
|
47
|
+
// equal weight is mixed here. Anything else is sent as it is for the API to mix.
|
|
48
|
+
if (strategy === "none" || (strategy === "mix" && !mixesEvenly(wav))) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
const sampleRate = Math.min(wav.sampleRate, MODEL_SAMPLE_RATE);
|
|
52
|
+
const count = ceilDiv(wav.sampleCount * sampleRate, wav.sampleRate);
|
|
53
|
+
// The API converts every sample to 32-bit floating point, so writing that loses nothing and cannot
|
|
54
|
+
// clip, but it is larger than some recordings that the API would convert just the same.
|
|
55
|
+
const converted = samplesWav({ channels: 1, sampleRate, sampleWidth: 4, isFloat: true, sampleCount: count });
|
|
56
|
+
const unchangedBytes = wav.sampleCount * wav.frameBytes;
|
|
57
|
+
const copyBytes = wav.sampleCount * wav.sampleWidth;
|
|
58
|
+
const convertedBytes = count * converted.frameBytes;
|
|
59
|
+
// The API would mix every channel, so the first is taken out even when that is not smaller.
|
|
60
|
+
const picksChannel = strategy === "first_channel" && wav.channels > 1;
|
|
61
|
+
if (!picksChannel && convertedBytes >= unchangedBytes) {
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
// A copy of the channel's samples is exact, so it is preferred whenever it is no larger.
|
|
65
|
+
if (picksChannel && copyBytes <= convertedBytes) {
|
|
66
|
+
const picked = new Uint8Array(copyBytes);
|
|
67
|
+
yield paced(copyFirstChannel(data, wav, picked), signal);
|
|
68
|
+
const { sampleWidth, isFloat, sampleCount } = wav;
|
|
69
|
+
return {
|
|
70
|
+
data: picked,
|
|
71
|
+
wav: samplesWav({ channels: 1, sampleRate: wav.sampleRate, sampleWidth, isFloat, sampleCount }),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
const read = monoReader(data, wav, strategy === "mix" && wav.channels === 2);
|
|
75
|
+
const out = new Uint8Array(convertedBytes);
|
|
76
|
+
const view = dataView(out);
|
|
77
|
+
// Integer samples are scaled to the range -1 to 1, as ffmpeg does.
|
|
78
|
+
const fullScale = wav.isFloat ? 1 : Math.pow(2, (wav.sampleWidth * 8 - 1));
|
|
79
|
+
const write = (output, value) => view.setFloat32(output * 4, value / fullScale, true);
|
|
80
|
+
yield paced(sampleRate === wav.sampleRate
|
|
81
|
+
? copySamples(read, write, count)
|
|
82
|
+
: resample(read, write, wav.sampleCount, wav.sampleRate, sampleRate, count), signal);
|
|
83
|
+
return { data: out, wav: converted };
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
function mixesEvenly({ channels, channelMask }) {
|
|
87
|
+
return channels === 1 || (channels === 2 && (channelMask === 0 || channelMask === STEREO_MASK));
|
|
88
|
+
}
|
|
89
|
+
function* copyFirstChannel(data, wav, picked) {
|
|
90
|
+
const { dataStart, frameBytes, sampleWidth, sampleCount } = wav;
|
|
91
|
+
for (let start = 0; start < sampleCount; start += BLOCK) {
|
|
92
|
+
const end = Math.min(start + BLOCK, sampleCount);
|
|
93
|
+
for (let sample = start; sample < end; sample++) {
|
|
94
|
+
const from = dataStart + sample * frameBytes;
|
|
95
|
+
const to = sample * sampleWidth;
|
|
96
|
+
for (let byte = 0; byte < sampleWidth; byte++) {
|
|
97
|
+
picked[to + byte] = data[from + byte];
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
yield;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
function* copySamples(read, write, count) {
|
|
104
|
+
for (let start = 0; start < count; start += BLOCK) {
|
|
105
|
+
const end = Math.min(start + BLOCK, count);
|
|
106
|
+
for (let output = start; output < end; output++) {
|
|
107
|
+
write(output, read(output));
|
|
108
|
+
}
|
|
109
|
+
yield;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
function* resample(read, write, length, fromRate, toRate, count) {
|
|
113
|
+
const phases = Math.min(toRate / gcd(fromRate, toRate), MAX_PHASES);
|
|
114
|
+
const interpolates = (phases * fromRate) % toRate !== 0;
|
|
115
|
+
const factor = (toRate * CUTOFF) / fromRate;
|
|
116
|
+
// ffmpeg rounds the filter length up to an even number.
|
|
117
|
+
let taps = Math.ceil(FILTER_SIZE / factor);
|
|
118
|
+
taps += taps % 2;
|
|
119
|
+
const center = (taps - 1) >> 1;
|
|
120
|
+
const bank = filterBank(phases, factor, taps, interpolates);
|
|
121
|
+
// Output k lies k * fromRate / toRate inputs in, which is `steps(k)` phases. With the ratio's exact
|
|
122
|
+
// phases, every output falls on a phase, and otherwise the remainder places it between two. k is
|
|
123
|
+
// split at toRate so that no product passes Number.MAX_SAFE_INTEGER.
|
|
124
|
+
const phaseStep = fromRate * phases;
|
|
125
|
+
const steps = (output) => floorDiv(output, toRate) * phaseStep + floorDiv((output % toRate) * phaseStep, toRate);
|
|
126
|
+
let segment = new Float64Array(0);
|
|
127
|
+
for (let start = 0; start < count; start += BLOCK) {
|
|
128
|
+
const end = Math.min(start + BLOCK, count);
|
|
129
|
+
const low = floorDiv(steps(start), phases) - center;
|
|
130
|
+
const inputs = floorDiv(steps(end - 1), phases) - center + taps - low;
|
|
131
|
+
if (segment.length < inputs) {
|
|
132
|
+
segment = new Float64Array(inputs);
|
|
133
|
+
}
|
|
134
|
+
for (let index = 0; index < inputs; index++) {
|
|
135
|
+
segment[index] = read(reflect(low + index, length));
|
|
136
|
+
}
|
|
137
|
+
for (let output = start; output < end; output++) {
|
|
138
|
+
const position = steps(output);
|
|
139
|
+
const first = floorDiv(position, phases);
|
|
140
|
+
const offset = first - center - low;
|
|
141
|
+
const row = (position - first * phases) * taps;
|
|
142
|
+
let sample = 0;
|
|
143
|
+
for (let tap = 0; tap < taps; tap++) {
|
|
144
|
+
sample += segment[offset + tap] * bank[row + tap];
|
|
145
|
+
}
|
|
146
|
+
if (interpolates) {
|
|
147
|
+
let following = 0;
|
|
148
|
+
for (let tap = 0; tap < taps; tap++) {
|
|
149
|
+
following += segment[offset + tap] * bank[row + taps + tap];
|
|
150
|
+
}
|
|
151
|
+
const remainder = ((output % toRate) * phaseStep) % toRate;
|
|
152
|
+
sample += (following - sample) * (remainder / toRate);
|
|
153
|
+
}
|
|
154
|
+
write(output, sample);
|
|
155
|
+
}
|
|
156
|
+
yield;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
function reflect(position, length) {
|
|
160
|
+
// ffmpeg reflects the audio at both ends, so the first and last outputs match its own.
|
|
161
|
+
let reflected = Math.abs(position);
|
|
162
|
+
if (reflected >= length) {
|
|
163
|
+
reflected = 2 * length - 1 - reflected;
|
|
164
|
+
}
|
|
165
|
+
return Math.min(Math.max(reflected, 0), length - 1);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* A Kaiser-windowed sinc low-pass filter for each phase, built the way swresample builds its own, one
|
|
169
|
+
* row of `taps` after another, followed by the phase that ends an interpolation when `interpolates`.
|
|
170
|
+
*/
|
|
171
|
+
function filterBank(phases, factor, taps, interpolates) {
|
|
172
|
+
const center = (taps - 1) >> 1;
|
|
173
|
+
const bank = new Float64Array((phases + (interpolates ? 1 : 0)) * taps);
|
|
174
|
+
for (let phase = 0; phase < phases; phase++) {
|
|
175
|
+
for (let tap = 0; tap < taps; tap++) {
|
|
176
|
+
const x = Math.PI * (tap - center - phase / phases) * factor;
|
|
177
|
+
const sinc = x === 0 ? 1 : Math.sin(x) / x;
|
|
178
|
+
const ratio = (2 * x) / (factor * taps * Math.PI);
|
|
179
|
+
bank[phase * taps + tap] = sinc * besselI0(KAISER_BETA * Math.sqrt(Math.max(1 - ratio * ratio, 0)));
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
// Every phase is scaled by the first phase's sum, as swresample does, so a constant level is kept.
|
|
183
|
+
let sum = 0;
|
|
184
|
+
for (let tap = 0; tap < taps; tap++) {
|
|
185
|
+
sum += bank[tap];
|
|
186
|
+
}
|
|
187
|
+
for (let index = 0; index < phases * taps; index++) {
|
|
188
|
+
bank[index] /= sum;
|
|
189
|
+
}
|
|
190
|
+
if (interpolates) {
|
|
191
|
+
// swresample builds the phase that ends an interpolation by moving the first phase one tap later
|
|
192
|
+
// in its buffer, whose length is padded to a multiple of 8. The tap that falls off the end, zero
|
|
193
|
+
// unless the filter needs no padding, wraps around to the start.
|
|
194
|
+
const last = phases * taps;
|
|
195
|
+
bank[last] = taps % 8 === 0 ? bank[taps - 1] : 0;
|
|
196
|
+
bank.set(bank.subarray(0, taps - 1), last + 1);
|
|
197
|
+
}
|
|
198
|
+
return bank;
|
|
199
|
+
}
|
|
200
|
+
function besselI0(x) {
|
|
201
|
+
// The power series converges within a few dozen terms for the window's arguments, which are at
|
|
202
|
+
// most KAISER_BETA.
|
|
203
|
+
const quarterSquare = (x * x) / 4;
|
|
204
|
+
let sum = 1;
|
|
205
|
+
let term = 1;
|
|
206
|
+
for (let k = 1; term > sum * Number.EPSILON; k++) {
|
|
207
|
+
term *= quarterSquare / (k * k);
|
|
208
|
+
sum += term;
|
|
209
|
+
}
|
|
210
|
+
return sum;
|
|
211
|
+
}
|
|
212
|
+
function monoReader(data, wav, mixes) {
|
|
213
|
+
const read = sampleReader(data, wav);
|
|
214
|
+
const { dataStart, frameBytes, sampleWidth } = wav;
|
|
215
|
+
if (mixes) {
|
|
216
|
+
// ffmpeg adds the two channels at -3 dB each when it writes floating point, as the API does.
|
|
217
|
+
return (sample) => {
|
|
218
|
+
const offset = dataStart + sample * frameBytes;
|
|
219
|
+
return (read(offset) + read(offset + sampleWidth)) * Math.SQRT1_2;
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
return (sample) => read(dataStart + sample * frameBytes);
|
|
223
|
+
}
|
|
224
|
+
function sampleReader(data, wav) {
|
|
225
|
+
const view = dataView(data);
|
|
226
|
+
if (wav.isFloat) {
|
|
227
|
+
return wav.sampleWidth === 4
|
|
228
|
+
? (offset) => view.getFloat32(offset, true)
|
|
229
|
+
: (offset) => view.getFloat64(offset, true);
|
|
230
|
+
}
|
|
231
|
+
switch (wav.sampleWidth) {
|
|
232
|
+
case 1:
|
|
233
|
+
// 8-bit WAV samples are unsigned, centered on 128.
|
|
234
|
+
return (offset) => data[offset] - 128;
|
|
235
|
+
case 2:
|
|
236
|
+
return (offset) => view.getInt16(offset, true);
|
|
237
|
+
case 3:
|
|
238
|
+
// Shifting the top byte into the sign bit and back sign-extends the sample.
|
|
239
|
+
return (offset) => ((data[offset] | (data[offset + 1] << 8) | (data[offset + 2] << 16)) << 8) >> 8;
|
|
240
|
+
default:
|
|
241
|
+
return (offset) => view.getInt32(offset, true);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
/** Runs `work` a block at a time, letting other work run about every YIELD_MS. */
|
|
245
|
+
function paced(work, signal) {
|
|
246
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
247
|
+
throwIfAborted(signal);
|
|
248
|
+
let resumed = Date.now();
|
|
249
|
+
while (!work.next().done) {
|
|
250
|
+
if (Date.now() - resumed >= YIELD_MS) {
|
|
251
|
+
yield nextTask();
|
|
252
|
+
throwIfAborted(signal);
|
|
253
|
+
resumed = Date.now();
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
function throwIfAborted(signal) {
|
|
259
|
+
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
260
|
+
// The error the client throws when it aborts a request, so that an abort is caught the same
|
|
261
|
+
// way wherever it lands.
|
|
262
|
+
throw new DecisionsError({
|
|
263
|
+
message: "The user aborted a request",
|
|
264
|
+
rawResponse: abortRawResponse,
|
|
265
|
+
cause: signal.reason,
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
function nextTask() {
|
|
270
|
+
// A promise alone would not let timers or I/O run, and browsers delay a nested setTimeout by at
|
|
271
|
+
// least 4 ms, which adds up over a long mixdown.
|
|
272
|
+
if (typeof setImmediate === "function") {
|
|
273
|
+
return new Promise((resolve) => setImmediate(() => resolve()));
|
|
274
|
+
}
|
|
275
|
+
return new Promise((resolve) => {
|
|
276
|
+
const channel = new MessageChannel();
|
|
277
|
+
channel.port1.onmessage = () => {
|
|
278
|
+
// A port with a message handler keeps Node's event loop alive until it is closed.
|
|
279
|
+
channel.port1.close();
|
|
280
|
+
resolve();
|
|
281
|
+
};
|
|
282
|
+
channel.port2.postMessage(undefined);
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
function gcd(a, b) {
|
|
286
|
+
return b === 0 ? a : gcd(b, a % b);
|
|
287
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Maintained by hand and listed in .fernignore, so SDK regeneration leaves it in place.
|
|
2
|
+
/** The recording cannot be split into chunks, because it is empty or not a file the helpers support. */
|
|
3
|
+
export class UnsupportedAudioError extends Error {
|
|
4
|
+
constructor(message) {
|
|
5
|
+
super(message);
|
|
6
|
+
this.name = "UnsupportedAudioError";
|
|
7
|
+
}
|
|
8
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { DecisionsUpload } from "../api/resources/decisions/client/requests/DecisionsUpload.mjs";
|
|
2
|
+
import { type Uploadable } from "../core/file/index.mjs";
|
|
3
|
+
import { type DownmixStrategy } from "./downmix.mjs";
|
|
4
|
+
interface ReadFile {
|
|
5
|
+
readonly data: Uint8Array;
|
|
6
|
+
readonly filename: string | undefined;
|
|
7
|
+
readonly contentType: string | undefined;
|
|
8
|
+
}
|
|
9
|
+
export interface DownmixOptions {
|
|
10
|
+
/**
|
|
11
|
+
* How a WAV file is mixed down before it is sent: "mix", the default, mixes it the way the API
|
|
12
|
+
* does, so the model hears the same audio; "first_channel" keeps only the first channel; and
|
|
13
|
+
* "none" sends it as it is. MP3 files, and WAV files the SDK cannot read, are sent as they are.
|
|
14
|
+
* Unless it is "none", `create` reads the whole file into memory before sending it, since it must
|
|
15
|
+
* read the file to tell whether it is a WAV file. `iterAudioChunks` in `@humeai/audio-decisions/audio-helpers` describes each.
|
|
16
|
+
*/
|
|
17
|
+
downmixStrategy?: DownmixStrategy;
|
|
18
|
+
}
|
|
19
|
+
export declare function checkFile(file: Uploadable): void;
|
|
20
|
+
/** The file's contents, with the filename and content type its upload would carry. */
|
|
21
|
+
export declare function readFile(file: Uploadable): Promise<ReadFile>;
|
|
22
|
+
/**
|
|
23
|
+
* `upload` with a WAV recording mixed down as `downmixStrategy` asks, to send with `create`. Rejects
|
|
24
|
+
* with a DecisionsError if `signal` aborts during the mixdown.
|
|
25
|
+
*/
|
|
26
|
+
export declare function downmixUpload({ downmixStrategy, ...upload }: DecisionsUpload & DownmixOptions, signal?: AbortSignal): Promise<DecisionsUpload>;
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
// Maintained by hand and listed in .fernignore, so SDK regeneration leaves it in place.
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
12
|
+
var t = {};
|
|
13
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
14
|
+
t[p] = s[p];
|
|
15
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
16
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
17
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
18
|
+
t[p[i]] = s[p[i]];
|
|
19
|
+
}
|
|
20
|
+
return t;
|
|
21
|
+
};
|
|
22
|
+
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
23
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
24
|
+
var m = o[Symbol.asyncIterator], i;
|
|
25
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
26
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
27
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
28
|
+
};
|
|
29
|
+
import { toMultipartDataPart } from "../core/file/index.mjs";
|
|
30
|
+
import { checkDownmixStrategy, downmixWav } from "./downmix.mjs";
|
|
31
|
+
import { isWav, parseWav, wavChunk } from "./wav.mjs";
|
|
32
|
+
export function checkFile(file) {
|
|
33
|
+
if (typeof file === "string") {
|
|
34
|
+
throw new TypeError(`file must be the audio's contents or { path }, got a string. To read a file from disk, pass { path: ${JSON.stringify(file)} }.`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/** The file's contents, with the filename and content type its upload would carry. */
|
|
38
|
+
export function readFile(file) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
// Resolved the way `create` resolves an upload, so chunks carry the same filename and content
|
|
41
|
+
// type, and a path is opened through the same file system access.
|
|
42
|
+
const { data, filename, contentType } = yield toMultipartDataPart(file);
|
|
43
|
+
return { data: yield readBytes(data), filename, contentType };
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* `upload` with a WAV recording mixed down as `downmixStrategy` asks, to send with `create`. Rejects
|
|
48
|
+
* with a DecisionsError if `signal` aborts during the mixdown.
|
|
49
|
+
*/
|
|
50
|
+
export function downmixUpload(_a, signal) {
|
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
var { downmixStrategy } = _a, upload = __rest(_a, ["downmixStrategy"]);
|
|
53
|
+
const strategy = checkDownmixStrategy(downmixStrategy);
|
|
54
|
+
if (strategy === "none") {
|
|
55
|
+
return upload;
|
|
56
|
+
}
|
|
57
|
+
checkFile(upload.file);
|
|
58
|
+
const { data, filename, contentType } = yield readFile(upload.file);
|
|
59
|
+
// A stream that has been read cannot always be read again, so what was read is sent instead.
|
|
60
|
+
return Object.assign(Object.assign({}, upload), { file: { data: yield downmixFile(data, strategy, signal), filename, contentType } });
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
function downmixFile(data, strategy, signal) {
|
|
64
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
+
if (!isWav(data)) {
|
|
66
|
+
return data;
|
|
67
|
+
}
|
|
68
|
+
let wav;
|
|
69
|
+
try {
|
|
70
|
+
wav = parseWav(data);
|
|
71
|
+
}
|
|
72
|
+
catch (_a) {
|
|
73
|
+
// A WAV file this parser cannot read may still be one the API can decode, so it is left to the API.
|
|
74
|
+
return data;
|
|
75
|
+
}
|
|
76
|
+
const mixed = yield downmixWav(data, wav, strategy, signal);
|
|
77
|
+
return mixed === undefined ? data : wavChunk(mixed.data, mixed.wav, 0, mixed.wav.sampleCount);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
function readBytes(data) {
|
|
81
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
+
var _a, data_1, data_1_1;
|
|
83
|
+
var _b, e_1, _c, _d;
|
|
84
|
+
if (ArrayBuffer.isView(data)) {
|
|
85
|
+
return asUint8Array(data);
|
|
86
|
+
}
|
|
87
|
+
if (data instanceof ArrayBuffer ||
|
|
88
|
+
(typeof SharedArrayBuffer !== "undefined" && data instanceof SharedArrayBuffer)) {
|
|
89
|
+
return new Uint8Array(data);
|
|
90
|
+
}
|
|
91
|
+
if (typeof Blob !== "undefined" && data instanceof Blob) {
|
|
92
|
+
return new Uint8Array(yield data.arrayBuffer());
|
|
93
|
+
}
|
|
94
|
+
if (isReadableStream(data)) {
|
|
95
|
+
return concat(yield readStream(data));
|
|
96
|
+
}
|
|
97
|
+
if (isAsyncIterable(data)) {
|
|
98
|
+
// Node's Readable streams, which are read without importing the stream module.
|
|
99
|
+
const pieces = [];
|
|
100
|
+
try {
|
|
101
|
+
for (_a = true, data_1 = __asyncValues(data); data_1_1 = yield data_1.next(), _b = data_1_1.done, !_b; _a = true) {
|
|
102
|
+
_d = data_1_1.value;
|
|
103
|
+
_a = false;
|
|
104
|
+
const piece = _d;
|
|
105
|
+
pieces.push(toBytes(piece));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
109
|
+
finally {
|
|
110
|
+
try {
|
|
111
|
+
if (!_a && !_b && (_c = data_1.return)) yield _c.call(data_1);
|
|
112
|
+
}
|
|
113
|
+
finally { if (e_1) throw e_1.error; }
|
|
114
|
+
}
|
|
115
|
+
return concat(pieces);
|
|
116
|
+
}
|
|
117
|
+
throw new TypeError("file must be a Blob, a stream, an ArrayBuffer or a typed array, { path } or { data } holding one of those.");
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
function readStream(stream) {
|
|
121
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
122
|
+
const reader = stream.getReader();
|
|
123
|
+
const pieces = [];
|
|
124
|
+
try {
|
|
125
|
+
for (;;) {
|
|
126
|
+
const { done, value } = yield reader.read();
|
|
127
|
+
if (done) {
|
|
128
|
+
return pieces;
|
|
129
|
+
}
|
|
130
|
+
pieces.push(toBytes(value));
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
finally {
|
|
134
|
+
reader.releaseLock();
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
function toBytes(piece) {
|
|
139
|
+
if (ArrayBuffer.isView(piece)) {
|
|
140
|
+
return asUint8Array(piece);
|
|
141
|
+
}
|
|
142
|
+
// A stream given an encoding has already decoded the audio as text, which cannot be turned back
|
|
143
|
+
// into the same bytes.
|
|
144
|
+
throw new TypeError(`file must be a stream of bytes, got a stream holding ${typeof piece} values.`);
|
|
145
|
+
}
|
|
146
|
+
function asUint8Array(view) {
|
|
147
|
+
// A plain Uint8Array even for Node's Buffer, whose slice returns a view rather than a copy.
|
|
148
|
+
return new Uint8Array(view.buffer, view.byteOffset, view.byteLength);
|
|
149
|
+
}
|
|
150
|
+
function concat(pieces) {
|
|
151
|
+
if (pieces.length === 1) {
|
|
152
|
+
return pieces[0];
|
|
153
|
+
}
|
|
154
|
+
let length = 0;
|
|
155
|
+
for (const piece of pieces) {
|
|
156
|
+
length += piece.length;
|
|
157
|
+
}
|
|
158
|
+
const data = new Uint8Array(length);
|
|
159
|
+
let offset = 0;
|
|
160
|
+
for (const piece of pieces) {
|
|
161
|
+
data.set(piece, offset);
|
|
162
|
+
offset += piece.length;
|
|
163
|
+
}
|
|
164
|
+
return data;
|
|
165
|
+
}
|
|
166
|
+
function isReadableStream(value) {
|
|
167
|
+
return typeof value === "object" && value !== null && typeof value.getReader === "function";
|
|
168
|
+
}
|
|
169
|
+
function isAsyncIterable(value) {
|
|
170
|
+
return (typeof value === "object" &&
|
|
171
|
+
value !== null &&
|
|
172
|
+
typeof value[Symbol.asyncIterator] === "function");
|
|
173
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { type AudioChunk, type ChunkSplit, iterAudioChunks } from "./chunks.mjs";
|
|
2
|
+
export type { DownmixStrategy } from "./downmix.mjs";
|
|
3
|
+
export { UnsupportedAudioError } from "./errors.mjs";
|
|
4
|
+
export { ChunkedDecisionsResult, type ChunkResult, type ChunkStatus } from "./results.mjs";
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// Maintained by hand and listed in .fernignore, so SDK regeneration leaves it in place.
|
|
2
|
+
// Helpers that split audio longer than the Decisions API accepts into chunks it does accept.
|
|
3
|
+
export { iterAudioChunks } from "./chunks.mjs";
|
|
4
|
+
export { UnsupportedAudioError } from "./errors.mjs";
|
|
5
|
+
export { ChunkedDecisionsResult } from "./results.mjs";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Maintained by hand and listed in .fernignore, so SDK regeneration leaves it in place.
|
|
2
|
+
// Callers keep every operand, and the quotient times the denominator, within Number.MAX_SAFE_INTEGER.
|
|
3
|
+
export function floorDiv(numerator, denominator) {
|
|
4
|
+
// Floating-point division can round a quotient that falls just short of an integer up to that
|
|
5
|
+
// integer, so the remainder corrects it.
|
|
6
|
+
let quotient = Math.floor(numerator / denominator);
|
|
7
|
+
const remainder = numerator - quotient * denominator;
|
|
8
|
+
if (remainder < 0) {
|
|
9
|
+
quotient -= 1;
|
|
10
|
+
}
|
|
11
|
+
else if (remainder >= denominator) {
|
|
12
|
+
quotient += 1;
|
|
13
|
+
}
|
|
14
|
+
return quotient;
|
|
15
|
+
}
|
|
16
|
+
export function roundDiv(numerator, denominator) {
|
|
17
|
+
return floorDiv(2 * numerator + denominator, 2 * denominator);
|
|
18
|
+
}
|
|
19
|
+
export function ceilDiv(numerator, denominator) {
|
|
20
|
+
return -floorDiv(-numerator, denominator);
|
|
21
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface Mp3Audio {
|
|
2
|
+
readonly sampleRate: number;
|
|
3
|
+
readonly samplesPerFrame: number;
|
|
4
|
+
/** Where each frame starts, followed by where the last one ends. Frames are contiguous. */
|
|
5
|
+
readonly offsets: readonly number[];
|
|
6
|
+
/** For each frame, how many bytes of its audio data are stored in the frames before it. */
|
|
7
|
+
readonly reservoirBytes: readonly number[];
|
|
8
|
+
/** For each frame, how many bytes of audio data, its own or later frames', it holds itself. */
|
|
9
|
+
readonly mainDataBytes: readonly number[];
|
|
10
|
+
/**
|
|
11
|
+
* Samples decoded from the frames before the recording starts, which players leave out when a
|
|
12
|
+
* LAME tag states them. 0 without one.
|
|
13
|
+
*/
|
|
14
|
+
readonly leadingSamples: number;
|
|
15
|
+
readonly frameCount: number;
|
|
16
|
+
/** The sample after the recording's last, counted from the start of the first frame. */
|
|
17
|
+
readonly endSample: number;
|
|
18
|
+
}
|
|
19
|
+
export declare function isMp3(data: Uint8Array): boolean;
|
|
20
|
+
export declare function parseMp3(data: Uint8Array): Mp3Audio;
|
|
21
|
+
/** Counts the frames that must come before `frame` in a chunk for it to decode exactly. */
|
|
22
|
+
export declare function framesNeededBefore(mp3: Mp3Audio, frame: number): number;
|
|
23
|
+
/** Builds an MP3 file holding frames `start` to `end` and none of the source's tags. */
|
|
24
|
+
export declare function mp3Chunk(data: Uint8Array, mp3: Mp3Audio, start: number, end: number): Uint8Array;
|