@humeai/audio-decisions 0.0.0-stage → 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 +115 -5
- package/reference.md +327 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Maintained by hand and listed in .fernignore, so SDK regeneration leaves it in place.
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.UnsupportedAudioError = void 0;
|
|
5
|
+
/** The recording cannot be split into chunks, because it is empty or not a file the helpers support. */
|
|
6
|
+
class UnsupportedAudioError extends Error {
|
|
7
|
+
constructor(message) {
|
|
8
|
+
super(message);
|
|
9
|
+
this.name = "UnsupportedAudioError";
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.UnsupportedAudioError = UnsupportedAudioError;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { DecisionsUpload } from "../api/resources/decisions/client/requests/DecisionsUpload.js";
|
|
2
|
+
import { type Uploadable } from "../core/file/index.js";
|
|
3
|
+
import { type DownmixStrategy } from "./downmix.js";
|
|
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,178 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Maintained by hand and listed in .fernignore, so SDK regeneration leaves it in place.
|
|
3
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
24
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
25
|
+
var m = o[Symbol.asyncIterator], i;
|
|
26
|
+
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);
|
|
27
|
+
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); }); }; }
|
|
28
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
29
|
+
};
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.checkFile = checkFile;
|
|
32
|
+
exports.readFile = readFile;
|
|
33
|
+
exports.downmixUpload = downmixUpload;
|
|
34
|
+
const index_js_1 = require("../core/file/index.js");
|
|
35
|
+
const downmix_js_1 = require("./downmix.js");
|
|
36
|
+
const wav_js_1 = require("./wav.js");
|
|
37
|
+
function checkFile(file) {
|
|
38
|
+
if (typeof file === "string") {
|
|
39
|
+
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)} }.`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/** The file's contents, with the filename and content type its upload would carry. */
|
|
43
|
+
function readFile(file) {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
// Resolved the way `create` resolves an upload, so chunks carry the same filename and content
|
|
46
|
+
// type, and a path is opened through the same file system access.
|
|
47
|
+
const { data, filename, contentType } = yield (0, index_js_1.toMultipartDataPart)(file);
|
|
48
|
+
return { data: yield readBytes(data), filename, contentType };
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* `upload` with a WAV recording mixed down as `downmixStrategy` asks, to send with `create`. Rejects
|
|
53
|
+
* with a DecisionsError if `signal` aborts during the mixdown.
|
|
54
|
+
*/
|
|
55
|
+
function downmixUpload(_a, signal) {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
var { downmixStrategy } = _a, upload = __rest(_a, ["downmixStrategy"]);
|
|
58
|
+
const strategy = (0, downmix_js_1.checkDownmixStrategy)(downmixStrategy);
|
|
59
|
+
if (strategy === "none") {
|
|
60
|
+
return upload;
|
|
61
|
+
}
|
|
62
|
+
checkFile(upload.file);
|
|
63
|
+
const { data, filename, contentType } = yield readFile(upload.file);
|
|
64
|
+
// A stream that has been read cannot always be read again, so what was read is sent instead.
|
|
65
|
+
return Object.assign(Object.assign({}, upload), { file: { data: yield downmixFile(data, strategy, signal), filename, contentType } });
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
function downmixFile(data, strategy, signal) {
|
|
69
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
if (!(0, wav_js_1.isWav)(data)) {
|
|
71
|
+
return data;
|
|
72
|
+
}
|
|
73
|
+
let wav;
|
|
74
|
+
try {
|
|
75
|
+
wav = (0, wav_js_1.parseWav)(data);
|
|
76
|
+
}
|
|
77
|
+
catch (_a) {
|
|
78
|
+
// A WAV file this parser cannot read may still be one the API can decode, so it is left to the API.
|
|
79
|
+
return data;
|
|
80
|
+
}
|
|
81
|
+
const mixed = yield (0, downmix_js_1.downmixWav)(data, wav, strategy, signal);
|
|
82
|
+
return mixed === undefined ? data : (0, wav_js_1.wavChunk)(mixed.data, mixed.wav, 0, mixed.wav.sampleCount);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function readBytes(data) {
|
|
86
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
87
|
+
var _a, data_1, data_1_1;
|
|
88
|
+
var _b, e_1, _c, _d;
|
|
89
|
+
if (ArrayBuffer.isView(data)) {
|
|
90
|
+
return asUint8Array(data);
|
|
91
|
+
}
|
|
92
|
+
if (data instanceof ArrayBuffer ||
|
|
93
|
+
(typeof SharedArrayBuffer !== "undefined" && data instanceof SharedArrayBuffer)) {
|
|
94
|
+
return new Uint8Array(data);
|
|
95
|
+
}
|
|
96
|
+
if (typeof Blob !== "undefined" && data instanceof Blob) {
|
|
97
|
+
return new Uint8Array(yield data.arrayBuffer());
|
|
98
|
+
}
|
|
99
|
+
if (isReadableStream(data)) {
|
|
100
|
+
return concat(yield readStream(data));
|
|
101
|
+
}
|
|
102
|
+
if (isAsyncIterable(data)) {
|
|
103
|
+
// Node's Readable streams, which are read without importing the stream module.
|
|
104
|
+
const pieces = [];
|
|
105
|
+
try {
|
|
106
|
+
for (_a = true, data_1 = __asyncValues(data); data_1_1 = yield data_1.next(), _b = data_1_1.done, !_b; _a = true) {
|
|
107
|
+
_d = data_1_1.value;
|
|
108
|
+
_a = false;
|
|
109
|
+
const piece = _d;
|
|
110
|
+
pieces.push(toBytes(piece));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
114
|
+
finally {
|
|
115
|
+
try {
|
|
116
|
+
if (!_a && !_b && (_c = data_1.return)) yield _c.call(data_1);
|
|
117
|
+
}
|
|
118
|
+
finally { if (e_1) throw e_1.error; }
|
|
119
|
+
}
|
|
120
|
+
return concat(pieces);
|
|
121
|
+
}
|
|
122
|
+
throw new TypeError("file must be a Blob, a stream, an ArrayBuffer or a typed array, { path } or { data } holding one of those.");
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
function readStream(stream) {
|
|
126
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
127
|
+
const reader = stream.getReader();
|
|
128
|
+
const pieces = [];
|
|
129
|
+
try {
|
|
130
|
+
for (;;) {
|
|
131
|
+
const { done, value } = yield reader.read();
|
|
132
|
+
if (done) {
|
|
133
|
+
return pieces;
|
|
134
|
+
}
|
|
135
|
+
pieces.push(toBytes(value));
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
finally {
|
|
139
|
+
reader.releaseLock();
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
function toBytes(piece) {
|
|
144
|
+
if (ArrayBuffer.isView(piece)) {
|
|
145
|
+
return asUint8Array(piece);
|
|
146
|
+
}
|
|
147
|
+
// A stream given an encoding has already decoded the audio as text, which cannot be turned back
|
|
148
|
+
// into the same bytes.
|
|
149
|
+
throw new TypeError(`file must be a stream of bytes, got a stream holding ${typeof piece} values.`);
|
|
150
|
+
}
|
|
151
|
+
function asUint8Array(view) {
|
|
152
|
+
// A plain Uint8Array even for Node's Buffer, whose slice returns a view rather than a copy.
|
|
153
|
+
return new Uint8Array(view.buffer, view.byteOffset, view.byteLength);
|
|
154
|
+
}
|
|
155
|
+
function concat(pieces) {
|
|
156
|
+
if (pieces.length === 1) {
|
|
157
|
+
return pieces[0];
|
|
158
|
+
}
|
|
159
|
+
let length = 0;
|
|
160
|
+
for (const piece of pieces) {
|
|
161
|
+
length += piece.length;
|
|
162
|
+
}
|
|
163
|
+
const data = new Uint8Array(length);
|
|
164
|
+
let offset = 0;
|
|
165
|
+
for (const piece of pieces) {
|
|
166
|
+
data.set(piece, offset);
|
|
167
|
+
offset += piece.length;
|
|
168
|
+
}
|
|
169
|
+
return data;
|
|
170
|
+
}
|
|
171
|
+
function isReadableStream(value) {
|
|
172
|
+
return typeof value === "object" && value !== null && typeof value.getReader === "function";
|
|
173
|
+
}
|
|
174
|
+
function isAsyncIterable(value) {
|
|
175
|
+
return (typeof value === "object" &&
|
|
176
|
+
value !== null &&
|
|
177
|
+
typeof value[Symbol.asyncIterator] === "function");
|
|
178
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { type AudioChunk, type ChunkSplit, iterAudioChunks } from "./chunks.js";
|
|
2
|
+
export type { DownmixStrategy } from "./downmix.js";
|
|
3
|
+
export { UnsupportedAudioError } from "./errors.js";
|
|
4
|
+
export { ChunkedDecisionsResult, type ChunkResult, type ChunkStatus } from "./results.js";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Maintained by hand and listed in .fernignore, so SDK regeneration leaves it in place.
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.ChunkedDecisionsResult = exports.UnsupportedAudioError = exports.iterAudioChunks = void 0;
|
|
5
|
+
// Helpers that split audio longer than the Decisions API accepts into chunks it does accept.
|
|
6
|
+
var chunks_js_1 = require("./chunks.js");
|
|
7
|
+
Object.defineProperty(exports, "iterAudioChunks", { enumerable: true, get: function () { return chunks_js_1.iterAudioChunks; } });
|
|
8
|
+
var errors_js_1 = require("./errors.js");
|
|
9
|
+
Object.defineProperty(exports, "UnsupportedAudioError", { enumerable: true, get: function () { return errors_js_1.UnsupportedAudioError; } });
|
|
10
|
+
var results_js_1 = require("./results.js");
|
|
11
|
+
Object.defineProperty(exports, "ChunkedDecisionsResult", { enumerable: true, get: function () { return results_js_1.ChunkedDecisionsResult; } });
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Maintained by hand and listed in .fernignore, so SDK regeneration leaves it in place.
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.floorDiv = floorDiv;
|
|
5
|
+
exports.roundDiv = roundDiv;
|
|
6
|
+
exports.ceilDiv = ceilDiv;
|
|
7
|
+
// Callers keep every operand, and the quotient times the denominator, within Number.MAX_SAFE_INTEGER.
|
|
8
|
+
function floorDiv(numerator, denominator) {
|
|
9
|
+
// Floating-point division can round a quotient that falls just short of an integer up to that
|
|
10
|
+
// integer, so the remainder corrects it.
|
|
11
|
+
let quotient = Math.floor(numerator / denominator);
|
|
12
|
+
const remainder = numerator - quotient * denominator;
|
|
13
|
+
if (remainder < 0) {
|
|
14
|
+
quotient -= 1;
|
|
15
|
+
}
|
|
16
|
+
else if (remainder >= denominator) {
|
|
17
|
+
quotient += 1;
|
|
18
|
+
}
|
|
19
|
+
return quotient;
|
|
20
|
+
}
|
|
21
|
+
function roundDiv(numerator, denominator) {
|
|
22
|
+
return floorDiv(2 * numerator + denominator, 2 * denominator);
|
|
23
|
+
}
|
|
24
|
+
function ceilDiv(numerator, denominator) {
|
|
25
|
+
return -floorDiv(-numerator, denominator);
|
|
26
|
+
}
|
|
@@ -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;
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Maintained by hand and listed in .fernignore, so SDK regeneration leaves it in place.
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.isMp3 = isMp3;
|
|
5
|
+
exports.parseMp3 = parseMp3;
|
|
6
|
+
exports.framesNeededBefore = framesNeededBefore;
|
|
7
|
+
exports.mp3Chunk = mp3Chunk;
|
|
8
|
+
const bytes_js_1 = require("./bytes.js");
|
|
9
|
+
const errors_js_1 = require("./errors.js");
|
|
10
|
+
const CONVERT_COMMAND = "ffmpeg -i input.mp3 -c:a libmp3lame -q:a 2 output.mp3";
|
|
11
|
+
// Keyed by the version bits of a frame header. Version 1 is reserved.
|
|
12
|
+
const SAMPLE_RATES = {
|
|
13
|
+
3: [44100, 48000, 32000],
|
|
14
|
+
2: [22050, 24000, 16000],
|
|
15
|
+
0: [11025, 12000, 8000],
|
|
16
|
+
};
|
|
17
|
+
const MPEG1 = 3;
|
|
18
|
+
// Layer III bitrates in kbit/s. Index 0 is free format.
|
|
19
|
+
const MPEG1_BITRATES = [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320];
|
|
20
|
+
const MPEG2_BITRATES = [0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160];
|
|
21
|
+
const LAYER_III = 1;
|
|
22
|
+
const MONO = 3;
|
|
23
|
+
// Samples a layer III decoder outputs before the first sample the encoder was given.
|
|
24
|
+
const DECODER_DELAY = 529;
|
|
25
|
+
// Encoders whose header frame carries a LAME tag, which states the samples added at each end.
|
|
26
|
+
const LAME_TAG_ENCODERS = ["LAME", "Lavf", "Lavc"];
|
|
27
|
+
// Tags that some writers append after the last frame. Nothing after one is audio.
|
|
28
|
+
const TRAILING_TAGS = ["TAG", "APETAGEX", "LYRICSBEGIN", "ID3"];
|
|
29
|
+
const NO_HEADER_FRAME = { leadingSamples: 0, trailingSamples: 0, statedFrames: undefined };
|
|
30
|
+
function isMp3(data) {
|
|
31
|
+
return (0, bytes_js_1.hasBytes)(data, 0, "ID3") || hasFrameSync(data, 0);
|
|
32
|
+
}
|
|
33
|
+
function parseMp3(data) {
|
|
34
|
+
let offset = skipId3v2(data);
|
|
35
|
+
const first = readHeader(data, offset);
|
|
36
|
+
// The first frame can be a Xing, Info or VBRI header, which holds the length of the whole file
|
|
37
|
+
// instead of audio. Left in a chunk, it would tell players the chunk is that long.
|
|
38
|
+
const headerFrame = offset + first.length <= data.length ? readHeaderFrame(data, offset, first) : undefined;
|
|
39
|
+
if (headerFrame !== undefined) {
|
|
40
|
+
offset += first.length;
|
|
41
|
+
}
|
|
42
|
+
const offsets = [];
|
|
43
|
+
const reservoirBytes = [];
|
|
44
|
+
const mainDataBytes = [];
|
|
45
|
+
while (offset + 4 <= data.length && !startsTrailingTag(data, offset)) {
|
|
46
|
+
const header = tryReadHeader(data, offset);
|
|
47
|
+
if (typeof header === "string") {
|
|
48
|
+
// Players skip bytes after the last frame that are neither a frame nor a tag, such as
|
|
49
|
+
// padding. When frames follow them, the bytes are damage instead.
|
|
50
|
+
if (framesFollow(data, offset + 1, first)) {
|
|
51
|
+
throw unsupported(header);
|
|
52
|
+
}
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
if (header.version !== first.version || header.sampleRate !== first.sampleRate) {
|
|
56
|
+
throw unsupported(`the sample rate changes at byte ${offset}`);
|
|
57
|
+
}
|
|
58
|
+
// A file cut short is read up to its last whole frame.
|
|
59
|
+
if (offset + header.length > data.length) {
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
offsets.push(offset);
|
|
63
|
+
reservoirBytes.push(readReservoirBytes(data, offset, header));
|
|
64
|
+
mainDataBytes.push(header.length - header.sideInfoStart - header.sideInfoSize);
|
|
65
|
+
offset += header.length;
|
|
66
|
+
}
|
|
67
|
+
offsets.push(offset);
|
|
68
|
+
const frameCount = offsets.length - 1;
|
|
69
|
+
const { leadingSamples, trailingSamples, statedFrames } = headerFrame !== null && headerFrame !== void 0 ? headerFrame : NO_HEADER_FRAME;
|
|
70
|
+
const samplesPerFrame = first.version === MPEG1 ? 1152 : 576;
|
|
71
|
+
return {
|
|
72
|
+
sampleRate: first.sampleRate,
|
|
73
|
+
samplesPerFrame,
|
|
74
|
+
offsets,
|
|
75
|
+
reservoirBytes,
|
|
76
|
+
mainDataBytes,
|
|
77
|
+
leadingSamples,
|
|
78
|
+
frameCount,
|
|
79
|
+
// The samples added at the end close the frames the header counts. A file cut short has lost
|
|
80
|
+
// them, and players then leave nothing out at the end.
|
|
81
|
+
endSample: frameCount * samplesPerFrame - (statedFrames === frameCount ? trailingSamples : 0),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/** Counts the frames that must come before `frame` in a chunk for it to decode exactly. */
|
|
85
|
+
function framesNeededBefore(mp3, frame) {
|
|
86
|
+
if (frame === 0) {
|
|
87
|
+
return 0;
|
|
88
|
+
}
|
|
89
|
+
// Each frame's output is blended with the end of the previous frame's, so the previous frame
|
|
90
|
+
// must decode exactly too, and so needs its own stored audio data.
|
|
91
|
+
return Math.max(framesHoldingDataOf(mp3, frame), 1 + framesHoldingDataOf(mp3, frame - 1));
|
|
92
|
+
}
|
|
93
|
+
/** Builds an MP3 file holding frames `start` to `end` and none of the source's tags. */
|
|
94
|
+
function mp3Chunk(data, mp3, start, end) {
|
|
95
|
+
// Copied rather than sliced, since a Buffer's slice is a view that would keep the whole recording.
|
|
96
|
+
return new Uint8Array(data.subarray(mp3.offsets[start], mp3.offsets[end]));
|
|
97
|
+
}
|
|
98
|
+
function framesHoldingDataOf(mp3, frame) {
|
|
99
|
+
let needed = mp3.reservoirBytes[frame];
|
|
100
|
+
if (needed === 0) {
|
|
101
|
+
return 0;
|
|
102
|
+
}
|
|
103
|
+
let count = 0;
|
|
104
|
+
while (needed > 0 && count < frame) {
|
|
105
|
+
count += 1;
|
|
106
|
+
needed -= mp3.mainDataBytes[frame - count];
|
|
107
|
+
}
|
|
108
|
+
// Decoders such as ffmpeg and mpg123 do not keep the audio data of the first frame they read
|
|
109
|
+
// when they cannot decode it, so the data must start after the chunk's first frame.
|
|
110
|
+
return Math.min(count + 1, frame);
|
|
111
|
+
}
|
|
112
|
+
function hasFrameSync(data, offset) {
|
|
113
|
+
return offset + 2 <= data.length && data[offset] === 0xff && (data[offset + 1] & 0xe0) === 0xe0;
|
|
114
|
+
}
|
|
115
|
+
function startsTrailingTag(data, offset) {
|
|
116
|
+
return TRAILING_TAGS.some((tag) => (0, bytes_js_1.hasBytes)(data, offset, tag));
|
|
117
|
+
}
|
|
118
|
+
function readReservoirBytes(data, offset, header) {
|
|
119
|
+
// Layer III frames may store audio data in the unused space of the frames before them. The side
|
|
120
|
+
// information starts with how far back that data begins: 9 bits in MPEG-1 and 8 bits otherwise.
|
|
121
|
+
const sideInfo = offset + header.sideInfoStart;
|
|
122
|
+
if (header.version === MPEG1) {
|
|
123
|
+
return (data[sideInfo] << 1) | (data[sideInfo + 1] >> 7);
|
|
124
|
+
}
|
|
125
|
+
return data[sideInfo];
|
|
126
|
+
}
|
|
127
|
+
function skipId3v2(data) {
|
|
128
|
+
let offset = 0;
|
|
129
|
+
while ((0, bytes_js_1.hasBytes)(data, offset, "ID3") && offset + 10 <= data.length) {
|
|
130
|
+
const flags = data[offset + 5];
|
|
131
|
+
// ID3v2 sizes store 7 bits in each byte.
|
|
132
|
+
let size = 0;
|
|
133
|
+
for (let index = offset + 6; index < offset + 10; index++) {
|
|
134
|
+
size = (size << 7) | (data[index] & 0x7f);
|
|
135
|
+
}
|
|
136
|
+
offset += 10 + size + (flags & 0x10 ? 10 : 0);
|
|
137
|
+
}
|
|
138
|
+
return offset;
|
|
139
|
+
}
|
|
140
|
+
function readHeader(data, offset) {
|
|
141
|
+
const header = tryReadHeader(data, offset);
|
|
142
|
+
if (typeof header === "string") {
|
|
143
|
+
throw unsupported(header);
|
|
144
|
+
}
|
|
145
|
+
return header;
|
|
146
|
+
}
|
|
147
|
+
/** The frame header at `offset`, or the reason there is none. */
|
|
148
|
+
function tryReadHeader(data, offset) {
|
|
149
|
+
if (offset + 4 > data.length) {
|
|
150
|
+
return "no MPEG audio frame";
|
|
151
|
+
}
|
|
152
|
+
if (!hasFrameSync(data, offset)) {
|
|
153
|
+
return `no MPEG audio frame at byte ${offset}`;
|
|
154
|
+
}
|
|
155
|
+
const b1 = data[offset + 1];
|
|
156
|
+
const b2 = data[offset + 2];
|
|
157
|
+
const b3 = data[offset + 3];
|
|
158
|
+
const version = (b1 >> 3) & 3;
|
|
159
|
+
const layer = (b1 >> 1) & 3;
|
|
160
|
+
const bitrateIndex = b2 >> 4;
|
|
161
|
+
const sampleRateIndex = (b2 >> 2) & 3;
|
|
162
|
+
const sampleRates = SAMPLE_RATES[version];
|
|
163
|
+
if (sampleRates === undefined || layer === 0 || bitrateIndex === 15 || sampleRateIndex === 3) {
|
|
164
|
+
return `invalid frame header at byte ${offset}`;
|
|
165
|
+
}
|
|
166
|
+
if (layer !== LAYER_III) {
|
|
167
|
+
return "MPEG layer I and II audio is not supported";
|
|
168
|
+
}
|
|
169
|
+
if (bitrateIndex === 0) {
|
|
170
|
+
return "free format MP3 files are not supported";
|
|
171
|
+
}
|
|
172
|
+
const mpeg1 = version === MPEG1;
|
|
173
|
+
const sampleRate = sampleRates[sampleRateIndex];
|
|
174
|
+
const bitrate = (mpeg1 ? MPEG1_BITRATES : MPEG2_BITRATES)[bitrateIndex];
|
|
175
|
+
const length = Math.floor(((mpeg1 ? 144000 : 72000) * bitrate) / sampleRate) + ((b2 >> 1) & 1);
|
|
176
|
+
const mono = b3 >> 6 === MONO;
|
|
177
|
+
const sideInfoSize = mpeg1 ? (mono ? 17 : 32) : mono ? 9 : 17;
|
|
178
|
+
// A protection bit of 0 means a 16-bit checksum follows the header.
|
|
179
|
+
const sideInfoStart = b1 & 1 ? 4 : 6;
|
|
180
|
+
if (length < sideInfoStart + sideInfoSize) {
|
|
181
|
+
return `invalid frame header at byte ${offset}`;
|
|
182
|
+
}
|
|
183
|
+
return { version, sampleRate, length, sideInfoStart, sideInfoSize };
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Reads a Xing, Info or VBRI header frame: the samples added before and after the recording, and
|
|
187
|
+
* the frame count it states. Undefined when the frame holds audio instead.
|
|
188
|
+
*/
|
|
189
|
+
function readHeaderFrame(data, offset, header) {
|
|
190
|
+
var _a;
|
|
191
|
+
// Fields that would run past the end of the frame are absent, not read from the next frame.
|
|
192
|
+
const frame = data.subarray(offset, offset + header.length);
|
|
193
|
+
// Encoders place the Xing tag after the side information as if the frame had no checksum.
|
|
194
|
+
const xing = 4 + header.sideInfoSize;
|
|
195
|
+
if (!(0, bytes_js_1.hasBytes)(frame, xing, "Xing") && !(0, bytes_js_1.hasBytes)(frame, xing, "Info")) {
|
|
196
|
+
return (0, bytes_js_1.hasBytes)(frame, 36, "VBRI") ? NO_HEADER_FRAME : undefined;
|
|
197
|
+
}
|
|
198
|
+
const flags = (_a = (0, bytes_js_1.uint32BE)(frame, xing + 4)) !== null && _a !== void 0 ? _a : 0;
|
|
199
|
+
let position = xing + 8;
|
|
200
|
+
let statedFrames;
|
|
201
|
+
if (flags & 1) {
|
|
202
|
+
statedFrames = (0, bytes_js_1.uint32BE)(frame, position);
|
|
203
|
+
position += 4;
|
|
204
|
+
}
|
|
205
|
+
// The byte count, table of contents and quality follow when their flags are set.
|
|
206
|
+
position += (flags & 2 ? 4 : 0) + (flags & 4 ? 100 : 0) + (flags & 8 ? 4 : 0);
|
|
207
|
+
if (position + 24 > frame.length || !LAME_TAG_ENCODERS.some((encoder) => (0, bytes_js_1.hasBytes)(frame, position, encoder))) {
|
|
208
|
+
return { leadingSamples: 0, trailingSamples: 0, statedFrames };
|
|
209
|
+
}
|
|
210
|
+
// Two 12-bit counts after the encoder's name and other settings: the samples the encoder added
|
|
211
|
+
// before the recording, and after it. The decoder's own delay precedes both.
|
|
212
|
+
const b0 = frame[position + 21];
|
|
213
|
+
const b1 = frame[position + 22];
|
|
214
|
+
const b2 = frame[position + 23];
|
|
215
|
+
const delay = (b0 << 4) | (b1 >> 4);
|
|
216
|
+
const padding = ((b1 & 0x0f) << 8) | b2;
|
|
217
|
+
return {
|
|
218
|
+
leadingSamples: delay + DECODER_DELAY,
|
|
219
|
+
trailingSamples: Math.max(0, padding - DECODER_DELAY),
|
|
220
|
+
statedFrames,
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
/** Whether two frames in a row, of the same version and sample rate as `first`, start at or after `offset`. */
|
|
224
|
+
function framesFollow(data, offset, first) {
|
|
225
|
+
// Requiring two frames in a row keeps bytes that happen to look like a frame header from counting.
|
|
226
|
+
let position = data.indexOf(0xff, offset);
|
|
227
|
+
while (position !== -1) {
|
|
228
|
+
const header = matchingHeader(data, position, first);
|
|
229
|
+
if (header !== undefined && matchingHeader(data, position + header.length, first) !== undefined) {
|
|
230
|
+
return true;
|
|
231
|
+
}
|
|
232
|
+
position = data.indexOf(0xff, position + 1);
|
|
233
|
+
}
|
|
234
|
+
return false;
|
|
235
|
+
}
|
|
236
|
+
function matchingHeader(data, offset, first) {
|
|
237
|
+
const header = tryReadHeader(data, offset);
|
|
238
|
+
if (typeof header === "string") {
|
|
239
|
+
return undefined;
|
|
240
|
+
}
|
|
241
|
+
return header.version === first.version && header.sampleRate === first.sampleRate ? header : undefined;
|
|
242
|
+
}
|
|
243
|
+
function unsupported(reason) {
|
|
244
|
+
return new errors_js_1.UnsupportedAudioError(`The audio is not a supported MP3 file (${reason}). Convert it first, for example with: ${CONVERT_COMMAND}`);
|
|
245
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { DecisionsUpload } from "../api/resources/decisions/client/requests/DecisionsUpload.js";
|
|
2
|
+
import type { DecisionsResponse } from "../api/types/DecisionsResponse.js";
|
|
3
|
+
import { DecisionsError } from "../errors/DecisionsError.js";
|
|
4
|
+
import { type iterAudioChunks } from "./chunks.js";
|
|
5
|
+
import type { DownmixOptions } from "./files.js";
|
|
6
|
+
interface ChunkPosition {
|
|
7
|
+
/** Position of the chunk in the recording, starting at 0. */
|
|
8
|
+
readonly index: number;
|
|
9
|
+
/**
|
|
10
|
+
* Where the chunk starts in the recording, in milliseconds. A moment's `audioStartMs` and
|
|
11
|
+
* `audioEndMs` are measured from the start of the chunk, so add this to place the moment in the
|
|
12
|
+
* recording. The first chunk of an MP3 file can start a few tens of milliseconds before 0.
|
|
13
|
+
*/
|
|
14
|
+
readonly startMs: number;
|
|
15
|
+
/** Where the chunk ends in the recording, in milliseconds. */
|
|
16
|
+
readonly endMs: number;
|
|
17
|
+
}
|
|
18
|
+
interface SucceededChunk extends ChunkPosition {
|
|
19
|
+
readonly status: "succeeded";
|
|
20
|
+
/** The API's response for the chunk, unchanged. */
|
|
21
|
+
readonly response: DecisionsResponse;
|
|
22
|
+
readonly error?: undefined;
|
|
23
|
+
}
|
|
24
|
+
interface FailedChunk extends ChunkPosition {
|
|
25
|
+
readonly status: "failed";
|
|
26
|
+
readonly response?: undefined;
|
|
27
|
+
/**
|
|
28
|
+
* The error the request threw. When the response's body could not be read, a DecisionsError with
|
|
29
|
+
* no status code whose `cause` holds the parse error.
|
|
30
|
+
*/
|
|
31
|
+
readonly error: DecisionsError;
|
|
32
|
+
}
|
|
33
|
+
interface NotAttemptedChunk extends ChunkPosition {
|
|
34
|
+
/** No request was sent for the chunk, so it was not billed. */
|
|
35
|
+
readonly status: "not_attempted";
|
|
36
|
+
readonly response?: undefined;
|
|
37
|
+
readonly error?: undefined;
|
|
38
|
+
}
|
|
39
|
+
/** The outcome of one chunk's request. Checking `status` narrows it to the chunk's response or error. */
|
|
40
|
+
export type ChunkResult = SucceededChunk | FailedChunk | NotAttemptedChunk;
|
|
41
|
+
export type ChunkStatus = ChunkResult["status"];
|
|
42
|
+
/** The outcome of every chunk's request, in the order of the chunks. */
|
|
43
|
+
export declare class ChunkedDecisionsResult {
|
|
44
|
+
/** One result for each chunk of the requested range. */
|
|
45
|
+
readonly chunks: readonly ChunkResult[];
|
|
46
|
+
/** The `startMs` the job was given, or 0 when it was given none. */
|
|
47
|
+
readonly startMs: number;
|
|
48
|
+
/**
|
|
49
|
+
* @param chunks The results of a job, such as those collected from `iterCreateChunked`, in order.
|
|
50
|
+
* @param startMs The `startMs` the job was given.
|
|
51
|
+
* @throws {TypeError} If `startMs` is not a safe integer.
|
|
52
|
+
*/
|
|
53
|
+
constructor(chunks: Iterable<ChunkResult>, startMs?: number);
|
|
54
|
+
/** Each chunk's response, or undefined for a chunk without one, in the order of the chunks. */
|
|
55
|
+
get responses(): (DecisionsResponse | undefined)[];
|
|
56
|
+
/** Whether every chunk's request succeeded. */
|
|
57
|
+
get complete(): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* The `startMs` to give a new job, with the same `endMs`, so that it sends again the audio from
|
|
60
|
+
* the chunk that stopped this job to the end. Earlier chunks that failed because their audio could
|
|
61
|
+
* not be decoded are not sent again. A WAV chunk's `endMs` is rounded to the millisecond, so the
|
|
62
|
+
* new job can skip or repeat a few samples where it starts. Undefined when no chunk stopped the job.
|
|
63
|
+
*/
|
|
64
|
+
get resumeMs(): number | undefined;
|
|
65
|
+
}
|
|
66
|
+
type Create = (upload: DecisionsUpload & DownmixOptions) => Promise<DecisionsResponse>;
|
|
67
|
+
/**
|
|
68
|
+
* Sends each chunk of `upload.file` with `create`, as `iterCreateChunked` describes. The options are
|
|
69
|
+
* checked by this call, and the file when iteration starts.
|
|
70
|
+
*/
|
|
71
|
+
export declare function sendChunks(create: Create, { request, file, ...options }: DecisionsUpload & iterAudioChunks.Options, signal: AbortSignal | undefined): AsyncGenerator<ChunkResult, void, undefined>;
|
|
72
|
+
/** Collects the results of `iterCreateChunked` for `createChunked`. */
|
|
73
|
+
export declare function collectResults(results: AsyncIterable<ChunkResult>, startMs: number | undefined): Promise<ChunkedDecisionsResult>;
|
|
74
|
+
export {};
|