@tapra/sdk 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/README.md +41 -3
- package/dist/lib/index.d.ts +3 -0
- package/dist/lib/index.js +5 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/realtime.d.ts +99 -0
- package/dist/lib/realtime.js +230 -0
- package/dist/lib/realtime.js.map +1 -0
- package/dist/src/BaseClient.d.ts +57 -0
- package/dist/src/BaseClient.js +37 -0
- package/dist/src/BaseClient.js.map +1 -0
- package/dist/src/Client.d.ts +41 -0
- package/dist/src/Client.js +61 -0
- package/dist/src/Client.js.map +1 -0
- package/dist/src/api/errors/BadRequestError.d.ts +7 -0
- package/dist/src/api/errors/BadRequestError.js +18 -0
- package/dist/src/api/errors/BadRequestError.js.map +1 -0
- package/dist/src/api/errors/ContentTooLargeError.d.ts +7 -0
- package/dist/src/api/errors/ContentTooLargeError.js +18 -0
- package/dist/src/api/errors/ContentTooLargeError.js.map +1 -0
- package/dist/src/api/errors/ForbiddenError.d.ts +7 -0
- package/dist/src/api/errors/ForbiddenError.js +18 -0
- package/dist/src/api/errors/ForbiddenError.js.map +1 -0
- package/dist/src/api/errors/InternalServerError.d.ts +7 -0
- package/dist/src/api/errors/InternalServerError.js +18 -0
- package/dist/src/api/errors/InternalServerError.js.map +1 -0
- package/dist/src/api/errors/PaymentRequiredError.d.ts +7 -0
- package/dist/src/api/errors/PaymentRequiredError.js +18 -0
- package/dist/src/api/errors/PaymentRequiredError.js.map +1 -0
- package/dist/src/api/errors/ServiceUnavailableError.d.ts +7 -0
- package/dist/src/api/errors/ServiceUnavailableError.js +18 -0
- package/dist/src/api/errors/ServiceUnavailableError.js.map +1 -0
- package/dist/src/api/errors/TooManyRequestsError.d.ts +7 -0
- package/dist/src/api/errors/TooManyRequestsError.js +18 -0
- package/dist/src/api/errors/TooManyRequestsError.js.map +1 -0
- package/dist/src/api/errors/UnauthorizedError.d.ts +7 -0
- package/dist/src/api/errors/UnauthorizedError.js +18 -0
- package/dist/src/api/errors/UnauthorizedError.js.map +1 -0
- package/dist/src/api/errors/index.d.ts +8 -0
- package/dist/src/api/errors/index.js +9 -0
- package/dist/src/api/errors/index.js.map +1 -0
- package/dist/src/api/index.d.ts +3 -0
- package/dist/src/api/index.js +4 -0
- package/dist/src/api/index.js.map +1 -0
- package/dist/src/api/resources/diarization/client/Client.d.ts +40 -0
- package/dist/src/api/resources/diarization/client/Client.js +97 -0
- package/dist/src/api/resources/diarization/client/Client.js.map +1 -0
- package/dist/src/api/resources/diarization/client/index.d.ts +1 -0
- package/dist/src/api/resources/diarization/client/index.js +2 -0
- package/dist/src/api/resources/diarization/client/index.js.map +1 -0
- package/dist/src/api/resources/diarization/client/requests/DiarizationRequest.d.ts +11 -0
- package/dist/src/api/resources/diarization/client/requests/DiarizationRequest.js +3 -0
- package/dist/src/api/resources/diarization/client/requests/DiarizationRequest.js.map +1 -0
- package/dist/src/api/resources/diarization/client/requests/index.d.ts +1 -0
- package/dist/src/api/resources/diarization/client/requests/index.js +2 -0
- package/dist/src/api/resources/diarization/client/requests/index.js.map +1 -0
- package/dist/src/api/resources/diarization/exports.d.ts +2 -0
- package/dist/src/api/resources/diarization/exports.js +4 -0
- package/dist/src/api/resources/diarization/exports.js.map +1 -0
- package/dist/src/api/resources/diarization/index.d.ts +1 -0
- package/dist/src/api/resources/diarization/index.js +2 -0
- package/dist/src/api/resources/diarization/index.js.map +1 -0
- package/dist/src/api/resources/index.d.ts +11 -0
- package/dist/src/api/resources/index.js +12 -0
- package/dist/src/api/resources/index.js.map +1 -0
- package/dist/src/api/resources/models/client/Client.d.ts +27 -0
- package/dist/src/api/resources/models/client/Client.js +56 -0
- package/dist/src/api/resources/models/client/Client.js.map +1 -0
- package/dist/src/api/resources/models/client/index.d.ts +1 -0
- package/dist/src/api/resources/models/client/index.js +2 -0
- package/dist/src/api/resources/models/client/index.js.map +1 -0
- package/dist/src/api/resources/models/exports.d.ts +2 -0
- package/dist/src/api/resources/models/exports.js +4 -0
- package/dist/src/api/resources/models/exports.js.map +1 -0
- package/dist/src/api/resources/models/index.d.ts +1 -0
- package/dist/src/api/resources/models/index.js +2 -0
- package/dist/src/api/resources/models/index.js.map +1 -0
- package/dist/src/api/resources/script/client/Client.d.ts +47 -0
- package/dist/src/api/resources/script/client/Client.js +99 -0
- package/dist/src/api/resources/script/client/Client.js.map +1 -0
- package/dist/src/api/resources/script/client/index.d.ts +1 -0
- package/dist/src/api/resources/script/client/index.js +2 -0
- package/dist/src/api/resources/script/client/index.js.map +1 -0
- package/dist/src/api/resources/script/client/requests/ConversionRequest.d.ts +26 -0
- package/dist/src/api/resources/script/client/requests/ConversionRequest.js +10 -0
- package/dist/src/api/resources/script/client/requests/ConversionRequest.js.map +1 -0
- package/dist/src/api/resources/script/client/requests/index.d.ts +1 -0
- package/dist/src/api/resources/script/client/requests/index.js +2 -0
- package/dist/src/api/resources/script/client/requests/index.js.map +1 -0
- package/dist/src/api/resources/script/exports.d.ts +2 -0
- package/dist/src/api/resources/script/exports.js +4 -0
- package/dist/src/api/resources/script/exports.js.map +1 -0
- package/dist/src/api/resources/script/index.d.ts +1 -0
- package/dist/src/api/resources/script/index.js +2 -0
- package/dist/src/api/resources/script/index.js.map +1 -0
- package/dist/src/api/resources/speech/client/Client.d.ts +43 -0
- package/dist/src/api/resources/speech/client/Client.js +145 -0
- package/dist/src/api/resources/speech/client/Client.js.map +1 -0
- package/dist/src/api/resources/speech/client/index.d.ts +1 -0
- package/dist/src/api/resources/speech/client/index.js +2 -0
- package/dist/src/api/resources/speech/client/index.js.map +1 -0
- package/dist/src/api/resources/speech/client/requests/SpeechRequest.d.ts +56 -0
- package/dist/src/api/resources/speech/client/requests/SpeechRequest.js +23 -0
- package/dist/src/api/resources/speech/client/requests/SpeechRequest.js.map +1 -0
- package/dist/src/api/resources/speech/client/requests/index.d.ts +1 -0
- package/dist/src/api/resources/speech/client/requests/index.js +2 -0
- package/dist/src/api/resources/speech/client/requests/index.js.map +1 -0
- package/dist/src/api/resources/speech/exports.d.ts +2 -0
- package/dist/src/api/resources/speech/exports.js +4 -0
- package/dist/src/api/resources/speech/exports.js.map +1 -0
- package/dist/src/api/resources/speech/index.d.ts +1 -0
- package/dist/src/api/resources/speech/index.js +2 -0
- package/dist/src/api/resources/speech/index.js.map +1 -0
- package/dist/src/api/resources/transcriptions/client/Client.d.ts +40 -0
- package/dist/src/api/resources/transcriptions/client/Client.js +118 -0
- package/dist/src/api/resources/transcriptions/client/Client.js.map +1 -0
- package/dist/src/api/resources/transcriptions/client/index.d.ts +1 -0
- package/dist/src/api/resources/transcriptions/client/index.js +2 -0
- package/dist/src/api/resources/transcriptions/client/index.js.map +1 -0
- package/dist/src/api/resources/transcriptions/client/requests/TranscriptionRequest.d.ts +32 -0
- package/dist/src/api/resources/transcriptions/client/requests/TranscriptionRequest.js +10 -0
- package/dist/src/api/resources/transcriptions/client/requests/TranscriptionRequest.js.map +1 -0
- package/dist/src/api/resources/transcriptions/client/requests/index.d.ts +1 -0
- package/dist/src/api/resources/transcriptions/client/requests/index.js +2 -0
- package/dist/src/api/resources/transcriptions/client/requests/index.js.map +1 -0
- package/dist/src/api/resources/transcriptions/exports.d.ts +2 -0
- package/dist/src/api/resources/transcriptions/exports.js +4 -0
- package/dist/src/api/resources/transcriptions/exports.js.map +1 -0
- package/dist/src/api/resources/transcriptions/index.d.ts +1 -0
- package/dist/src/api/resources/transcriptions/index.js +2 -0
- package/dist/src/api/resources/transcriptions/index.js.map +1 -0
- package/dist/src/api/resources/translations/client/Client.d.ts +57 -0
- package/dist/src/api/resources/translations/client/Client.js +208 -0
- package/dist/src/api/resources/translations/client/Client.js.map +1 -0
- package/dist/src/api/resources/translations/client/index.d.ts +1 -0
- package/dist/src/api/resources/translations/client/index.js +2 -0
- package/dist/src/api/resources/translations/client/index.js.map +1 -0
- package/dist/src/api/resources/translations/client/requests/CreateTranslationsRequest.d.ts +26 -0
- package/dist/src/api/resources/translations/client/requests/CreateTranslationsRequest.js +11 -0
- package/dist/src/api/resources/translations/client/requests/CreateTranslationsRequest.js.map +1 -0
- package/dist/src/api/resources/translations/client/requests/CreateTranslationsStreamRequest.d.ts +26 -0
- package/dist/src/api/resources/translations/client/requests/CreateTranslationsStreamRequest.js +11 -0
- package/dist/src/api/resources/translations/client/requests/CreateTranslationsStreamRequest.js.map +1 -0
- package/dist/src/api/resources/translations/client/requests/index.d.ts +2 -0
- package/dist/src/api/resources/translations/client/requests/index.js +3 -0
- package/dist/src/api/resources/translations/client/requests/index.js.map +1 -0
- package/dist/src/api/resources/translations/exports.d.ts +2 -0
- package/dist/src/api/resources/translations/exports.js +4 -0
- package/dist/src/api/resources/translations/exports.js.map +1 -0
- package/dist/src/api/resources/translations/index.d.ts +1 -0
- package/dist/src/api/resources/translations/index.js +2 -0
- package/dist/src/api/resources/translations/index.js.map +1 -0
- package/dist/src/api/types/Conversion.d.ts +18 -0
- package/dist/src/api/types/Conversion.js +9 -0
- package/dist/src/api/types/Conversion.js.map +1 -0
- package/dist/src/api/types/Diarization.d.ts +12 -0
- package/dist/src/api/types/Diarization.js +3 -0
- package/dist/src/api/types/Diarization.js.map +1 -0
- package/dist/src/api/types/ErrorObject.d.ts +18 -0
- package/dist/src/api/types/ErrorObject.js +16 -0
- package/dist/src/api/types/ErrorObject.js.map +1 -0
- package/dist/src/api/types/Error_.d.ts +6 -0
- package/dist/src/api/types/Error_.js +3 -0
- package/dist/src/api/types/Error_.js.map +1 -0
- package/dist/src/api/types/Model.d.ts +17 -0
- package/dist/src/api/types/Model.js +11 -0
- package/dist/src/api/types/Model.js.map +1 -0
- package/dist/src/api/types/ModelList.d.ts +13 -0
- package/dist/src/api/types/ModelList.js +8 -0
- package/dist/src/api/types/ModelList.js.map +1 -0
- package/dist/src/api/types/RealtimeClientMessage.d.ts +13 -0
- package/dist/src/api/types/RealtimeClientMessage.js +9 -0
- package/dist/src/api/types/RealtimeClientMessage.js.map +1 -0
- package/dist/src/api/types/RealtimeEvent.d.ts +39 -0
- package/dist/src/api/types/RealtimeEvent.js +13 -0
- package/dist/src/api/types/RealtimeEvent.js.map +1 -0
- package/dist/src/api/types/Segment.d.ts +10 -0
- package/dist/src/api/types/Segment.js +3 -0
- package/dist/src/api/types/Segment.js.map +1 -0
- package/dist/src/api/types/Speaker.d.ts +9 -0
- package/dist/src/api/types/Speaker.js +3 -0
- package/dist/src/api/types/Speaker.js.map +1 -0
- package/dist/src/api/types/SpeakerTurn.d.ts +7 -0
- package/dist/src/api/types/SpeakerTurn.js +3 -0
- package/dist/src/api/types/SpeakerTurn.js.map +1 -0
- package/dist/src/api/types/Speech.d.ts +25 -0
- package/dist/src/api/types/Speech.js +8 -0
- package/dist/src/api/types/Speech.js.map +1 -0
- package/dist/src/api/types/Transcription.d.ts +21 -0
- package/dist/src/api/types/Transcription.js +3 -0
- package/dist/src/api/types/Transcription.js.map +1 -0
- package/dist/src/api/types/Translation.d.ts +16 -0
- package/dist/src/api/types/Translation.js +3 -0
- package/dist/src/api/types/Translation.js.map +1 -0
- package/dist/src/api/types/TranslationLanguage.d.ts +8 -0
- package/dist/src/api/types/TranslationLanguage.js +3 -0
- package/dist/src/api/types/TranslationLanguage.js.map +1 -0
- package/dist/src/api/types/TranslationLanguageList.d.ts +14 -0
- package/dist/src/api/types/TranslationLanguageList.js +8 -0
- package/dist/src/api/types/TranslationLanguageList.js.map +1 -0
- package/dist/src/api/types/TranslationRequest.d.ts +22 -0
- package/dist/src/api/types/TranslationRequest.js +11 -0
- package/dist/src/api/types/TranslationRequest.js.map +1 -0
- package/dist/src/api/types/TranslationStreamEvent.d.ts +19 -0
- package/dist/src/api/types/TranslationStreamEvent.js +11 -0
- package/dist/src/api/types/TranslationStreamEvent.js.map +1 -0
- package/dist/src/api/types/Usage.d.ts +8 -0
- package/dist/src/api/types/Usage.js +3 -0
- package/dist/src/api/types/Usage.js.map +1 -0
- package/dist/src/api/types/Word.d.ts +9 -0
- package/dist/src/api/types/Word.js +3 -0
- package/dist/src/api/types/Word.js.map +1 -0
- package/dist/src/api/types/index.d.ts +20 -0
- package/dist/src/api/types/index.js +21 -0
- package/dist/src/api/types/index.js.map +1 -0
- package/dist/src/auth/BearerAuthProvider.d.ts +20 -0
- package/dist/src/auth/BearerAuthProvider.js +34 -0
- package/dist/src/auth/BearerAuthProvider.js.map +1 -0
- package/dist/src/auth/index.d.ts +1 -0
- package/dist/src/auth/index.js +2 -0
- package/dist/src/auth/index.js.map +1 -0
- package/dist/src/core/auth/AuthProvider.d.ts +8 -0
- package/dist/src/core/auth/AuthProvider.js +7 -0
- package/dist/src/core/auth/AuthProvider.js.map +1 -0
- package/dist/src/core/auth/AuthRequest.d.ts +9 -0
- package/dist/src/core/auth/AuthRequest.js +2 -0
- package/dist/src/core/auth/AuthRequest.js.map +1 -0
- package/dist/src/core/auth/BasicAuth.d.ts +8 -0
- package/dist/src/core/auth/BasicAuth.js +30 -0
- package/dist/src/core/auth/BasicAuth.js.map +1 -0
- package/dist/src/core/auth/BearerToken.d.ts +7 -0
- package/dist/src/core/auth/BearerToken.js +14 -0
- package/dist/src/core/auth/BearerToken.js.map +1 -0
- package/dist/src/core/auth/NoOpAuthProvider.d.ts +5 -0
- package/dist/src/core/auth/NoOpAuthProvider.js +6 -0
- package/dist/src/core/auth/NoOpAuthProvider.js.map +1 -0
- package/dist/src/core/auth/index.d.ts +5 -0
- package/dist/src/core/auth/index.js +5 -0
- package/dist/src/core/auth/index.js.map +1 -0
- package/dist/src/core/base64.d.ts +2 -0
- package/dist/src/core/base64.js +23 -0
- package/dist/src/core/base64.js.map +1 -0
- package/dist/src/core/exports.d.ts +2 -0
- package/dist/src/core/exports.js +3 -0
- package/dist/src/core/exports.js.map +1 -0
- package/dist/src/core/fetcher/APIResponse.d.ts +20 -0
- package/dist/src/core/fetcher/APIResponse.js +2 -0
- package/dist/src/core/fetcher/APIResponse.js.map +1 -0
- package/dist/src/core/fetcher/BinaryResponse.d.ts +19 -0
- package/dist/src/core/fetcher/BinaryResponse.js +15 -0
- package/dist/src/core/fetcher/BinaryResponse.js.map +1 -0
- package/dist/src/core/fetcher/EndpointMetadata.d.ts +13 -0
- package/dist/src/core/fetcher/EndpointMetadata.js +2 -0
- package/dist/src/core/fetcher/EndpointMetadata.js.map +1 -0
- package/dist/src/core/fetcher/EndpointSupplier.d.ts +12 -0
- package/dist/src/core/fetcher/EndpointSupplier.js +11 -0
- package/dist/src/core/fetcher/EndpointSupplier.js.map +1 -0
- package/dist/src/core/fetcher/Fetcher.d.ts +56 -0
- package/dist/src/core/fetcher/Fetcher.js +224 -0
- package/dist/src/core/fetcher/Fetcher.js.map +1 -0
- package/dist/src/core/fetcher/Headers.d.ts +2 -0
- package/dist/src/core/fetcher/Headers.js +84 -0
- package/dist/src/core/fetcher/Headers.js.map +1 -0
- package/dist/src/core/fetcher/HttpResponsePromise.d.ts +58 -0
- package/dist/src/core/fetcher/HttpResponsePromise.js +91 -0
- package/dist/src/core/fetcher/HttpResponsePromise.js.map +1 -0
- package/dist/src/core/fetcher/RawResponse.d.ts +29 -0
- package/dist/src/core/fetcher/RawResponse.js +41 -0
- package/dist/src/core/fetcher/RawResponse.js.map +1 -0
- package/dist/src/core/fetcher/Supplier.d.ts +4 -0
- package/dist/src/core/fetcher/Supplier.js +11 -0
- package/dist/src/core/fetcher/Supplier.js.map +1 -0
- package/dist/src/core/fetcher/createRequestUrl.d.ts +1 -0
- package/dist/src/core/fetcher/createRequestUrl.js +6 -0
- package/dist/src/core/fetcher/createRequestUrl.js.map +1 -0
- package/dist/src/core/fetcher/getErrorResponseBody.d.ts +1 -0
- package/dist/src/core/fetcher/getErrorResponseBody.js +31 -0
- package/dist/src/core/fetcher/getErrorResponseBody.js.map +1 -0
- package/dist/src/core/fetcher/getFetchFn.d.ts +1 -0
- package/dist/src/core/fetcher/getFetchFn.js +4 -0
- package/dist/src/core/fetcher/getFetchFn.js.map +1 -0
- package/dist/src/core/fetcher/getHeader.d.ts +1 -0
- package/dist/src/core/fetcher/getHeader.js +9 -0
- package/dist/src/core/fetcher/getHeader.js.map +1 -0
- package/dist/src/core/fetcher/getRequestBody.d.ts +7 -0
- package/dist/src/core/fetcher/getRequestBody.js +14 -0
- package/dist/src/core/fetcher/getRequestBody.js.map +1 -0
- package/dist/src/core/fetcher/getResponseBody.d.ts +1 -0
- package/dist/src/core/fetcher/getResponseBody.js +67 -0
- package/dist/src/core/fetcher/getResponseBody.js.map +1 -0
- package/dist/src/core/fetcher/index.d.ts +13 -0
- package/dist/src/core/fetcher/index.js +8 -0
- package/dist/src/core/fetcher/index.js.map +1 -0
- package/dist/src/core/fetcher/makePassthroughRequest.d.ts +49 -0
- package/dist/src/core/fetcher/makePassthroughRequest.js +142 -0
- package/dist/src/core/fetcher/makePassthroughRequest.js.map +1 -0
- package/dist/src/core/fetcher/makeRequest.d.ts +6 -0
- package/dist/src/core/fetcher/makeRequest.js +54 -0
- package/dist/src/core/fetcher/makeRequest.js.map +1 -0
- package/dist/src/core/fetcher/redactUrl.d.ts +2 -0
- package/dist/src/core/fetcher/redactUrl.js +85 -0
- package/dist/src/core/fetcher/redactUrl.js.map +1 -0
- package/dist/src/core/fetcher/requestWithRetries.d.ts +1 -0
- package/dist/src/core/fetcher/requestWithRetries.js +57 -0
- package/dist/src/core/fetcher/requestWithRetries.js.map +1 -0
- package/dist/src/core/fetcher/signals.d.ts +5 -0
- package/dist/src/core/fetcher/signals.js +29 -0
- package/dist/src/core/fetcher/signals.js.map +1 -0
- package/dist/src/core/file/exports.d.ts +1 -0
- package/dist/src/core/file/exports.js +2 -0
- package/dist/src/core/file/exports.js.map +1 -0
- package/dist/src/core/file/file.d.ts +10 -0
- package/dist/src/core/file/file.js +169 -0
- package/dist/src/core/file/file.js.map +1 -0
- package/dist/src/core/file/index.d.ts +2 -0
- package/dist/src/core/file/index.js +3 -0
- package/dist/src/core/file/index.js.map +1 -0
- package/dist/src/core/file/types.d.ts +66 -0
- package/dist/src/core/file/types.js +2 -0
- package/dist/src/core/file/types.js.map +1 -0
- package/dist/src/core/form-data-utils/FormDataWrapper.d.ts +15 -0
- package/dist/src/core/form-data-utils/FormDataWrapper.js +109 -0
- package/dist/src/core/form-data-utils/FormDataWrapper.js.map +1 -0
- package/dist/src/core/form-data-utils/encodeAsFormParameter.d.ts +1 -0
- package/dist/src/core/form-data-utils/encodeAsFormParameter.js +10 -0
- package/dist/src/core/form-data-utils/encodeAsFormParameter.js.map +1 -0
- package/dist/src/core/form-data-utils/index.d.ts +2 -0
- package/dist/src/core/form-data-utils/index.js +3 -0
- package/dist/src/core/form-data-utils/index.js.map +1 -0
- package/dist/src/core/headers.d.ts +2 -0
- package/dist/src/core/headers.js +28 -0
- package/dist/src/core/headers.js.map +1 -0
- package/dist/src/core/index.d.ts +9 -0
- package/dist/src/core/index.js +10 -0
- package/dist/src/core/index.js.map +1 -0
- package/dist/src/core/json.d.ts +15 -0
- package/dist/src/core/json.js +20 -0
- package/dist/src/core/json.js.map +1 -0
- package/dist/src/core/logging/exports.d.ts +18 -0
- package/dist/src/core/logging/exports.js +10 -0
- package/dist/src/core/logging/exports.js.map +1 -0
- package/dist/src/core/logging/index.d.ts +1 -0
- package/dist/src/core/logging/index.js +2 -0
- package/dist/src/core/logging/index.js.map +1 -0
- package/dist/src/core/logging/logger.d.ts +126 -0
- package/dist/src/core/logging/logger.js +141 -0
- package/dist/src/core/logging/logger.js.map +1 -0
- package/dist/src/core/requestBody.d.ts +12 -0
- package/dist/src/core/requestBody.js +24 -0
- package/dist/src/core/requestBody.js.map +1 -0
- package/dist/src/core/runtime/index.d.ts +1 -0
- package/dist/src/core/runtime/index.js +2 -0
- package/dist/src/core/runtime/index.js.map +1 -0
- package/dist/src/core/runtime/runtime.d.ts +28 -0
- package/dist/src/core/runtime/runtime.js +172 -0
- package/dist/src/core/runtime/runtime.js.map +1 -0
- package/dist/src/core/stream/Stream.d.ts +100 -0
- package/dist/src/core/stream/Stream.js +427 -0
- package/dist/src/core/stream/Stream.js.map +1 -0
- package/dist/src/core/stream/index.d.ts +2 -0
- package/dist/src/core/stream/index.js +2 -0
- package/dist/src/core/stream/index.js.map +1 -0
- package/dist/src/core/url/QueryStringBuilder.d.ts +47 -0
- package/dist/src/core/url/QueryStringBuilder.js +79 -0
- package/dist/src/core/url/QueryStringBuilder.js.map +1 -0
- package/dist/src/core/url/encodePathParam.d.ts +1 -0
- package/dist/src/core/url/encodePathParam.js +19 -0
- package/dist/src/core/url/encodePathParam.js.map +1 -0
- package/dist/src/core/url/index.d.ts +4 -0
- package/dist/src/core/url/index.js +5 -0
- package/dist/src/core/url/index.js.map +1 -0
- package/dist/src/core/url/join.d.ts +1 -0
- package/dist/src/core/url/join.js +66 -0
- package/dist/src/core/url/join.js.map +1 -0
- package/dist/src/core/url/qs.d.ts +7 -0
- package/dist/src/core/url/qs.js +77 -0
- package/dist/src/core/url/qs.js.map +1 -0
- package/dist/src/environments.d.ts +4 -0
- package/dist/src/environments.js +5 -0
- package/dist/src/environments.js.map +1 -0
- package/dist/src/errors/TapraError.d.ts +15 -0
- package/dist/src/errors/TapraError.js +39 -0
- package/dist/src/errors/TapraError.js.map +1 -0
- package/dist/src/errors/TapraTimeoutError.d.ts +6 -0
- package/dist/src/errors/TapraTimeoutError.js +16 -0
- package/dist/src/errors/TapraTimeoutError.js.map +1 -0
- package/dist/src/errors/handleNonStatusCodeError.d.ts +2 -0
- package/dist/src/errors/handleNonStatusCodeError.js +33 -0
- package/dist/src/errors/handleNonStatusCodeError.js.map +1 -0
- package/dist/src/errors/index.d.ts +2 -0
- package/dist/src/errors/index.js +3 -0
- package/dist/src/errors/index.js.map +1 -0
- package/dist/src/exports.d.ts +1 -0
- package/dist/src/exports.js +2 -0
- package/dist/src/exports.js.map +1 -0
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.js +6 -0
- package/dist/src/index.js.map +1 -0
- package/package.json +30 -6
package/README.md
CHANGED
|
@@ -1,3 +1,41 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
# Tapra TypeScript SDK
|
|
2
|
+
|
|
3
|
+
Official TypeScript client for the Tapra API: Tunisian Arabic / French / English
|
|
4
|
+
code-switching transcription, speech, translation, and Arabizi ↔ Arabic conversion.
|
|
5
|
+
ESM, Node.js 22+ and modern browsers, no runtime dependencies.
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
import { TapraClient, Tapra } from '@tapra/sdk';
|
|
9
|
+
|
|
10
|
+
const client = new TapraClient({ baseUrl: 'https://api.example.com' }); // apiKey defaults to TAPRA_API_KEY
|
|
11
|
+
|
|
12
|
+
const transcript = await client.transcriptions.create({ file: audioFile, timestamps: 'word' });
|
|
13
|
+
await client.script.convert({ text: '3lech 7abit l9anoun?', direction: 'ZI2AR' });
|
|
14
|
+
|
|
15
|
+
for await (const event of await client.translations.createStream({ input: 'عندي برشا خدمة', target: 'French' })) {
|
|
16
|
+
process.stdout.write(event.delta ?? '');
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Errors are typed (`Tapra.PaymentRequiredError` for HTTP 402, …) and carry `body.error.type`.
|
|
21
|
+
Pass `{ idempotencyKey }` as request options to retry metered requests safely, and call
|
|
22
|
+
`.withRawResponse()` to read `x-tapra-cost-tnd`.
|
|
23
|
+
|
|
24
|
+
## Realtime transcription
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
import { connectRealtime } from '@tapra/sdk';
|
|
28
|
+
|
|
29
|
+
const session = await connectRealtime({ baseUrl: 'https://api.example.com', language: 'ar-AR' });
|
|
30
|
+
session.on('partial', (event) => render(event.text));
|
|
31
|
+
session.sendAudio(pcmChunk); // mono pcm_s16le, 16 kHz
|
|
32
|
+
const final = await session.stop();
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
The key is sent as the `tapra-auth.<key>` WebSocket subprotocol, never in the URL. In a browser,
|
|
36
|
+
pass a short-lived session token as `apiKey`, not a permanent key.
|
|
37
|
+
|
|
38
|
+
## Development
|
|
39
|
+
|
|
40
|
+
`src/` is generated by Fern from `openapi/tapra-api.json`; do not edit it by hand.
|
|
41
|
+
`lib/` (package entry and realtime helper) is hand-written. Tests: `sdks/tests/typescript`.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// Package entry: the Fern-generated client (src/, never edit) plus the hand-written
|
|
2
|
+
// realtime WebSocket helper (lib/realtime.ts).
|
|
3
|
+
export * from '../src/index.js';
|
|
4
|
+
export { RealtimeError, RealtimeSession, connectRealtime, transcribeStream } from './realtime.js';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,+CAA+C;AAC/C,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hand-written client for the realtime transcription WebSocket (/v1/realtime/stream).
|
|
3
|
+
* OpenAPI cannot describe WebSockets, so Fern does not generate this part; the event
|
|
4
|
+
* types still come from the generated contract (Tapra.RealtimeEvent).
|
|
5
|
+
*
|
|
6
|
+
* Works with the browser WebSocket and the Node.js 22+ global WebSocket. The API key is
|
|
7
|
+
* sent as the `tapra-auth.<key>` subprotocol, never in the URL. Permanent keys belong
|
|
8
|
+
* in server-side code; browsers should use a short-lived session token as `apiKey`.
|
|
9
|
+
*/
|
|
10
|
+
import type * as Tapra from '../src/api/index.js';
|
|
11
|
+
type RealtimeEvent = Tapra.RealtimeEvent;
|
|
12
|
+
type EventType = RealtimeEvent['type'];
|
|
13
|
+
/** Mono 16-bit little-endian PCM at 16 kHz. */
|
|
14
|
+
export type AudioChunk = ArrayBuffer | ArrayBufferView;
|
|
15
|
+
/** The subset of the WebSocket API this helper uses. */
|
|
16
|
+
export interface WebSocketLike {
|
|
17
|
+
readonly readyState: number;
|
|
18
|
+
binaryType: string;
|
|
19
|
+
send(data: string | ArrayBuffer | ArrayBufferView): void;
|
|
20
|
+
close(code?: number, reason?: string): void;
|
|
21
|
+
addEventListener(type: string, listener: (event: any) => void): void;
|
|
22
|
+
}
|
|
23
|
+
export type WebSocketConstructor = new (url: string, protocols?: string | string[]) => WebSocketLike;
|
|
24
|
+
export interface RealtimeOptions {
|
|
25
|
+
/** Defaults to the TAPRA_API_KEY environment variable. */
|
|
26
|
+
apiKey?: string;
|
|
27
|
+
/** API origin, e.g. https://api.example.com. Defaults to TapraEnvironment.Default. */
|
|
28
|
+
baseUrl?: string;
|
|
29
|
+
/** Decoding hint; code-switching stays enabled. Server default: ar-AR. */
|
|
30
|
+
language?: string;
|
|
31
|
+
/** Mask silence before the decoder. Server default: true. */
|
|
32
|
+
vad?: boolean;
|
|
33
|
+
/** Emit `utterance` events after trailing silence. Server default: true. */
|
|
34
|
+
endpointing?: boolean;
|
|
35
|
+
/** Trailing silence that closes an utterance (200-3000). Server default: 800. */
|
|
36
|
+
endpointingMs?: number;
|
|
37
|
+
/** End the session after a long silence. Server default: true. */
|
|
38
|
+
idleStop?: boolean;
|
|
39
|
+
/** Silence that ends the session (1000-120000). Server default: 10000. */
|
|
40
|
+
idleStopMs?: number;
|
|
41
|
+
/** Punctuate `utterance` and `final` text. Server default: false. */
|
|
42
|
+
punctuation?: boolean;
|
|
43
|
+
/** How long to wait for the `ready` event. Default: 15000. */
|
|
44
|
+
connectTimeoutMs?: number;
|
|
45
|
+
/** WebSocket implementation. Defaults to globalThis.WebSocket. */
|
|
46
|
+
WebSocket?: WebSocketConstructor;
|
|
47
|
+
}
|
|
48
|
+
export declare class RealtimeError extends Error {
|
|
49
|
+
/** `connection_rejected`, `timeout`, `closed`, `not_open`, `missing_api_key`, or a server error code. */
|
|
50
|
+
readonly code: string;
|
|
51
|
+
readonly closeCode?: number;
|
|
52
|
+
constructor(message: string, code: string, closeCode?: number);
|
|
53
|
+
}
|
|
54
|
+
export declare function realtimeUrl(options?: RealtimeOptions): string;
|
|
55
|
+
/** One realtime transcription session. Create it with {@link connectRealtime}. */
|
|
56
|
+
export declare class RealtimeSession implements AsyncIterable<RealtimeEvent> {
|
|
57
|
+
private readonly socket;
|
|
58
|
+
private readonly readyState;
|
|
59
|
+
private readonly finalState;
|
|
60
|
+
private readonly queue;
|
|
61
|
+
private readonly waiters;
|
|
62
|
+
private readonly listeners;
|
|
63
|
+
private closed;
|
|
64
|
+
private readyEvent?;
|
|
65
|
+
/** @internal Use connectRealtime(). */
|
|
66
|
+
constructor(socket: WebSocketLike);
|
|
67
|
+
/** The `ready` event: audio format and the session settings the server applied. */
|
|
68
|
+
get ready(): RealtimeEvent;
|
|
69
|
+
/** True while audio can be sent. */
|
|
70
|
+
get isOpen(): boolean;
|
|
71
|
+
/** @internal */
|
|
72
|
+
waitUntilReady(timeoutMs: number): Promise<RealtimeEvent>;
|
|
73
|
+
/** Send one chunk of mono pcm_s16le audio at 16 kHz. */
|
|
74
|
+
sendAudio(chunk: AudioChunk): void;
|
|
75
|
+
/** Keep an idle connection alive; send every 15 s when no audio is flowing. */
|
|
76
|
+
ping(): void;
|
|
77
|
+
/** Finish the session and resolve with the `final` event (full transcript and usage). */
|
|
78
|
+
stop(): Promise<RealtimeEvent>;
|
|
79
|
+
/** Resolves with the `final` event, whether it follows stop() or an idle stop. */
|
|
80
|
+
get final(): Promise<RealtimeEvent>;
|
|
81
|
+
/** Close without waiting for the final transcript (no final charge event is received). */
|
|
82
|
+
close(): void;
|
|
83
|
+
/** Subscribe to one event type. Returns an unsubscribe function. */
|
|
84
|
+
on(type: EventType, listener: (event: RealtimeEvent) => void): () => void;
|
|
85
|
+
/** Iterate over every event after `ready` until the socket closes. */
|
|
86
|
+
[Symbol.asyncIterator](): AsyncIterator<RealtimeEvent>;
|
|
87
|
+
private onMessage;
|
|
88
|
+
private onClose;
|
|
89
|
+
}
|
|
90
|
+
/** Open a realtime session and resolve once the server sends `ready`. */
|
|
91
|
+
export declare function connectRealtime(options?: RealtimeOptions): Promise<RealtimeSession>;
|
|
92
|
+
/**
|
|
93
|
+
* Stream audio chunks through one session and resolve with the `final` event.
|
|
94
|
+
* `onEvent` receives every partial/utterance event while audio is flowing.
|
|
95
|
+
*/
|
|
96
|
+
export declare function transcribeStream(audio: AsyncIterable<AudioChunk> | Iterable<AudioChunk>, options?: RealtimeOptions & {
|
|
97
|
+
onEvent?: (event: RealtimeEvent) => void;
|
|
98
|
+
}): Promise<RealtimeEvent>;
|
|
99
|
+
export {};
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { TapraEnvironment } from '../src/environments.js';
|
|
2
|
+
export class RealtimeError extends Error {
|
|
3
|
+
/** `connection_rejected`, `timeout`, `closed`, `not_open`, `missing_api_key`, or a server error code. */
|
|
4
|
+
code;
|
|
5
|
+
closeCode;
|
|
6
|
+
constructor(message, code, closeCode) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.name = 'RealtimeError';
|
|
9
|
+
this.code = code;
|
|
10
|
+
this.closeCode = closeCode;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
const OPEN = 1;
|
|
14
|
+
const PATH = '/v1/realtime/stream';
|
|
15
|
+
function deferred() {
|
|
16
|
+
const state = { settled: false };
|
|
17
|
+
state.promise = new Promise((resolve, reject) => {
|
|
18
|
+
state.resolve = (value) => {
|
|
19
|
+
if (state.settled)
|
|
20
|
+
return;
|
|
21
|
+
state.settled = true;
|
|
22
|
+
resolve(value);
|
|
23
|
+
};
|
|
24
|
+
state.reject = (error) => {
|
|
25
|
+
if (state.settled)
|
|
26
|
+
return;
|
|
27
|
+
state.settled = true;
|
|
28
|
+
reject(error);
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
// Unobserved rejections (e.g. nobody awaits `final`) must not crash the process.
|
|
32
|
+
state.promise.catch(() => undefined);
|
|
33
|
+
return state;
|
|
34
|
+
}
|
|
35
|
+
function environmentApiKey() {
|
|
36
|
+
const env = globalThis.process
|
|
37
|
+
?.env;
|
|
38
|
+
return env?.TAPRA_API_KEY;
|
|
39
|
+
}
|
|
40
|
+
function flag(value) {
|
|
41
|
+
return value ? 'true' : 'false';
|
|
42
|
+
}
|
|
43
|
+
export function realtimeUrl(options = {}) {
|
|
44
|
+
const url = new URL(options.baseUrl ?? TapraEnvironment.Default);
|
|
45
|
+
if (url.protocol === 'https:')
|
|
46
|
+
url.protocol = 'wss:';
|
|
47
|
+
else if (url.protocol === 'http:')
|
|
48
|
+
url.protocol = 'ws:';
|
|
49
|
+
else if (url.protocol !== 'ws:' && url.protocol !== 'wss:') {
|
|
50
|
+
throw new RealtimeError(`Unsupported base URL protocol: ${url.protocol}`, 'invalid_base_url');
|
|
51
|
+
}
|
|
52
|
+
url.pathname = url.pathname.replace(/\/+$/, '') + PATH;
|
|
53
|
+
const query = [
|
|
54
|
+
['language', options.language],
|
|
55
|
+
['vad', options.vad === undefined ? undefined : flag(options.vad)],
|
|
56
|
+
['endpointing', options.endpointing === undefined ? undefined : flag(options.endpointing)],
|
|
57
|
+
['endpointing_ms', options.endpointingMs?.toString()],
|
|
58
|
+
['idle_stop', options.idleStop === undefined ? undefined : flag(options.idleStop)],
|
|
59
|
+
['idle_stop_ms', options.idleStopMs?.toString()],
|
|
60
|
+
['punctuation', options.punctuation === undefined ? undefined : flag(options.punctuation)]
|
|
61
|
+
];
|
|
62
|
+
for (const [name, value] of query) {
|
|
63
|
+
if (value !== undefined)
|
|
64
|
+
url.searchParams.set(name, value);
|
|
65
|
+
}
|
|
66
|
+
return url.toString();
|
|
67
|
+
}
|
|
68
|
+
/** One realtime transcription session. Create it with {@link connectRealtime}. */
|
|
69
|
+
export class RealtimeSession {
|
|
70
|
+
socket;
|
|
71
|
+
readyState = deferred();
|
|
72
|
+
finalState = deferred();
|
|
73
|
+
queue = [];
|
|
74
|
+
waiters = [];
|
|
75
|
+
listeners = new Map();
|
|
76
|
+
closed = false;
|
|
77
|
+
readyEvent;
|
|
78
|
+
/** @internal Use connectRealtime(). */
|
|
79
|
+
constructor(socket) {
|
|
80
|
+
this.socket = socket;
|
|
81
|
+
socket.binaryType = 'arraybuffer';
|
|
82
|
+
socket.addEventListener('message', (message) => this.onMessage(message.data));
|
|
83
|
+
socket.addEventListener('close', (event) => this.onClose(event.code, event.reason));
|
|
84
|
+
// Some runtimes (Node.js 22) report a refused handshake only as an error event.
|
|
85
|
+
socket.addEventListener('error', () => {
|
|
86
|
+
if (this.readyState.settled)
|
|
87
|
+
return;
|
|
88
|
+
this.readyState.reject(new RealtimeError('The server rejected the connection', 'connection_rejected'));
|
|
89
|
+
this.onClose(undefined, 'The server rejected the connection');
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
/** The `ready` event: audio format and the session settings the server applied. */
|
|
93
|
+
get ready() {
|
|
94
|
+
if (!this.readyEvent)
|
|
95
|
+
throw new RealtimeError('The session is not ready yet', 'not_open');
|
|
96
|
+
return this.readyEvent;
|
|
97
|
+
}
|
|
98
|
+
/** True while audio can be sent. */
|
|
99
|
+
get isOpen() {
|
|
100
|
+
return !this.closed && this.socket.readyState === OPEN;
|
|
101
|
+
}
|
|
102
|
+
/** @internal */
|
|
103
|
+
waitUntilReady(timeoutMs) {
|
|
104
|
+
const timer = setTimeout(() => {
|
|
105
|
+
this.readyState.reject(new RealtimeError('Timed out waiting for the ready event', 'timeout'));
|
|
106
|
+
this.socket.close(1000, 'Connect timeout');
|
|
107
|
+
}, timeoutMs);
|
|
108
|
+
return this.readyState.promise.finally(() => clearTimeout(timer));
|
|
109
|
+
}
|
|
110
|
+
/** Send one chunk of mono pcm_s16le audio at 16 kHz. */
|
|
111
|
+
sendAudio(chunk) {
|
|
112
|
+
if (!this.isOpen)
|
|
113
|
+
throw new RealtimeError('The session is not open', 'not_open');
|
|
114
|
+
this.socket.send(chunk);
|
|
115
|
+
}
|
|
116
|
+
/** Keep an idle connection alive; send every 15 s when no audio is flowing. */
|
|
117
|
+
ping() {
|
|
118
|
+
if (this.isOpen)
|
|
119
|
+
this.socket.send(JSON.stringify({ type: 'ping' }));
|
|
120
|
+
}
|
|
121
|
+
/** Finish the session and resolve with the `final` event (full transcript and usage). */
|
|
122
|
+
stop() {
|
|
123
|
+
if (this.isOpen && !this.finalState.settled) {
|
|
124
|
+
this.socket.send(JSON.stringify({ type: 'stop' }));
|
|
125
|
+
}
|
|
126
|
+
return this.finalState.promise;
|
|
127
|
+
}
|
|
128
|
+
/** Resolves with the `final` event, whether it follows stop() or an idle stop. */
|
|
129
|
+
get final() {
|
|
130
|
+
return this.finalState.promise;
|
|
131
|
+
}
|
|
132
|
+
/** Close without waiting for the final transcript (no final charge event is received). */
|
|
133
|
+
close() {
|
|
134
|
+
this.socket.close(1000, 'Client closed');
|
|
135
|
+
}
|
|
136
|
+
/** Subscribe to one event type. Returns an unsubscribe function. */
|
|
137
|
+
on(type, listener) {
|
|
138
|
+
const set = this.listeners.get(type) ?? new Set();
|
|
139
|
+
set.add(listener);
|
|
140
|
+
this.listeners.set(type, set);
|
|
141
|
+
return () => set.delete(listener);
|
|
142
|
+
}
|
|
143
|
+
/** Iterate over every event after `ready` until the socket closes. */
|
|
144
|
+
[Symbol.asyncIterator]() {
|
|
145
|
+
return {
|
|
146
|
+
next: () => {
|
|
147
|
+
const event = this.queue.shift();
|
|
148
|
+
if (event)
|
|
149
|
+
return Promise.resolve({ value: event, done: false });
|
|
150
|
+
if (this.closed)
|
|
151
|
+
return Promise.resolve({ value: undefined, done: true });
|
|
152
|
+
return new Promise((resolve) => this.waiters.push(resolve));
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
onMessage(data) {
|
|
157
|
+
if (typeof data !== 'string')
|
|
158
|
+
return;
|
|
159
|
+
let event;
|
|
160
|
+
try {
|
|
161
|
+
event = JSON.parse(data);
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
if (event.type === 'ready') {
|
|
167
|
+
this.readyEvent = event;
|
|
168
|
+
this.readyState.resolve(event);
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
if (event.type === 'final')
|
|
172
|
+
this.finalState.resolve(event);
|
|
173
|
+
if (event.type === 'error') {
|
|
174
|
+
const error = new RealtimeError(event.message ?? 'The transcription stream failed', event.code ?? 'server_error');
|
|
175
|
+
this.readyState.reject(error);
|
|
176
|
+
this.finalState.reject(error);
|
|
177
|
+
}
|
|
178
|
+
for (const listener of this.listeners.get(event.type) ?? [])
|
|
179
|
+
listener(event);
|
|
180
|
+
const waiter = this.waiters.shift();
|
|
181
|
+
if (waiter)
|
|
182
|
+
waiter({ value: event, done: false });
|
|
183
|
+
else
|
|
184
|
+
this.queue.push(event);
|
|
185
|
+
}
|
|
186
|
+
onClose(code, reason) {
|
|
187
|
+
this.closed = true;
|
|
188
|
+
if (!this.readyState.settled) {
|
|
189
|
+
this.readyState.reject(new RealtimeError(reason || 'The server rejected the connection', 'connection_rejected', code));
|
|
190
|
+
}
|
|
191
|
+
this.finalState.reject(new RealtimeError(reason || 'The socket closed before the final event', 'closed', code));
|
|
192
|
+
for (const waiter of this.waiters.splice(0))
|
|
193
|
+
waiter({ value: undefined, done: true });
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
/** Open a realtime session and resolve once the server sends `ready`. */
|
|
197
|
+
export async function connectRealtime(options = {}) {
|
|
198
|
+
const apiKey = options.apiKey ?? environmentApiKey();
|
|
199
|
+
if (!apiKey) {
|
|
200
|
+
throw new RealtimeError('Pass apiKey or set TAPRA_API_KEY', 'missing_api_key');
|
|
201
|
+
}
|
|
202
|
+
const WebSocketImpl = options.WebSocket ?? globalThis.WebSocket;
|
|
203
|
+
if (!WebSocketImpl) {
|
|
204
|
+
throw new RealtimeError('No WebSocket implementation; pass options.WebSocket', 'not_open');
|
|
205
|
+
}
|
|
206
|
+
const socket = new WebSocketImpl(realtimeUrl(options), ['tapra-realtime', `tapra-auth.${apiKey}`]);
|
|
207
|
+
const session = new RealtimeSession(socket);
|
|
208
|
+
await session.waitUntilReady(options.connectTimeoutMs ?? 15_000);
|
|
209
|
+
return session;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Stream audio chunks through one session and resolve with the `final` event.
|
|
213
|
+
* `onEvent` receives every partial/utterance event while audio is flowing.
|
|
214
|
+
*/
|
|
215
|
+
export async function transcribeStream(audio, options = {}) {
|
|
216
|
+
const session = await connectRealtime(options);
|
|
217
|
+
const { onEvent } = options;
|
|
218
|
+
const unsubscribe = onEvent
|
|
219
|
+
? ['partial', 'utterance'].map((type) => session.on(type, onEvent))
|
|
220
|
+
: [];
|
|
221
|
+
try {
|
|
222
|
+
for await (const chunk of audio)
|
|
223
|
+
session.sendAudio(chunk);
|
|
224
|
+
return await session.stop();
|
|
225
|
+
}
|
|
226
|
+
finally {
|
|
227
|
+
unsubscribe.forEach((off) => off());
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=realtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realtime.js","sourceRoot":"","sources":["../../lib/realtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { BearerAuthProvider } from "./auth/BearerAuthProvider.js";
|
|
2
|
+
import * as core from "./core/index.js";
|
|
3
|
+
import type * as environments from "./environments.js";
|
|
4
|
+
export type AuthOption = false | core.AuthProvider["getAuthRequest"] | core.AuthProvider | BearerAuthProvider.AuthOptions;
|
|
5
|
+
export type BaseClientOptions = {
|
|
6
|
+
environment?: core.Supplier<environments.TapraEnvironment | string>;
|
|
7
|
+
/** Specify a custom URL to connect the client to. */
|
|
8
|
+
baseUrl?: core.Supplier<string>;
|
|
9
|
+
/** Additional headers to include in requests. */
|
|
10
|
+
headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;
|
|
11
|
+
/** The default maximum time to wait for a response in seconds. */
|
|
12
|
+
timeoutInSeconds?: number;
|
|
13
|
+
/** The default number of times to retry the request. Defaults to 2. */
|
|
14
|
+
maxRetries?: number;
|
|
15
|
+
/** Provide a custom fetch implementation. Useful for platforms that don't have a built-in fetch or need a custom implementation. */
|
|
16
|
+
fetch?: typeof fetch;
|
|
17
|
+
/** Configure logging for the client. */
|
|
18
|
+
logging?: core.logging.LogConfig | core.logging.Logger;
|
|
19
|
+
/** Default options for SSE stream reconnection behavior. Has no effect on non-resumable endpoints. */
|
|
20
|
+
stream?: {
|
|
21
|
+
reconnectionEnabled?: boolean;
|
|
22
|
+
maxReconnectionAttempts?: number;
|
|
23
|
+
};
|
|
24
|
+
/** Override auth. Pass false to disable, a function returning auth headers, an AuthProvider, or auth options. */
|
|
25
|
+
auth?: AuthOption;
|
|
26
|
+
} & BearerAuthProvider.AuthOptions;
|
|
27
|
+
export interface BaseRequestOptions {
|
|
28
|
+
/** The maximum time to wait for a response in seconds. */
|
|
29
|
+
timeoutInSeconds?: number;
|
|
30
|
+
/** The number of times to retry the request. Defaults to 2. */
|
|
31
|
+
maxRetries?: number;
|
|
32
|
+
/** A hook to abort the request. */
|
|
33
|
+
abortSignal?: AbortSignal;
|
|
34
|
+
/** Additional query string parameters to include in the request. */
|
|
35
|
+
queryParams?: Record<string, unknown>;
|
|
36
|
+
/** A dictionary containing additional parameters to spread into the request's body. */
|
|
37
|
+
additionalBodyParameters?: Record<string, unknown>;
|
|
38
|
+
/** Additional headers to include in the request. */
|
|
39
|
+
headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;
|
|
40
|
+
/** Options for SSE stream reconnection behavior. Has no effect on non-resumable endpoints. */
|
|
41
|
+
stream?: {
|
|
42
|
+
reconnectionEnabled?: boolean;
|
|
43
|
+
maxReconnectionAttempts?: number;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export interface BaseIdempotentRequestOptions {
|
|
47
|
+
idempotencyKey?: string | undefined;
|
|
48
|
+
}
|
|
49
|
+
export type NormalizedClientOptions<T extends BaseClientOptions = BaseClientOptions> = T & {
|
|
50
|
+
logging: core.logging.Logger;
|
|
51
|
+
authProvider?: core.AuthProvider;
|
|
52
|
+
};
|
|
53
|
+
export type NormalizedClientOptionsWithAuth<T extends BaseClientOptions = BaseClientOptions> = NormalizedClientOptions<T> & {
|
|
54
|
+
authProvider: core.AuthProvider;
|
|
55
|
+
};
|
|
56
|
+
export declare function normalizeClientOptions<T extends BaseClientOptions = BaseClientOptions>(options: T): NormalizedClientOptions<T>;
|
|
57
|
+
export declare function normalizeClientOptionsWithAuth<T extends BaseClientOptions = BaseClientOptions>(options: T): NormalizedClientOptionsWithAuth<T>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
import { BearerAuthProvider } from "./auth/BearerAuthProvider.js";
|
|
3
|
+
import * as core from "./core/index.js";
|
|
4
|
+
export function normalizeClientOptions(options) {
|
|
5
|
+
return {
|
|
6
|
+
...options,
|
|
7
|
+
logging: core.logging.createLogger(options?.logging),
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export function normalizeClientOptionsWithAuth(options) {
|
|
11
|
+
const normalized = normalizeClientOptions(options);
|
|
12
|
+
if (options.auth === false) {
|
|
13
|
+
normalized.authProvider = new core.NoOpAuthProvider();
|
|
14
|
+
return normalized;
|
|
15
|
+
}
|
|
16
|
+
if (options.auth != null) {
|
|
17
|
+
if (typeof options.auth === "function") {
|
|
18
|
+
normalized.authProvider = { getAuthRequest: options.auth };
|
|
19
|
+
return normalized;
|
|
20
|
+
}
|
|
21
|
+
if (core.isAuthProvider(options.auth)) {
|
|
22
|
+
normalized.authProvider = options.auth;
|
|
23
|
+
return normalized;
|
|
24
|
+
}
|
|
25
|
+
Object.assign(normalized, options.auth);
|
|
26
|
+
}
|
|
27
|
+
const normalizedWithNoOpAuthProvider = withNoOpAuthProvider(normalized);
|
|
28
|
+
normalized.authProvider ??= new BearerAuthProvider(normalizedWithNoOpAuthProvider);
|
|
29
|
+
return normalized;
|
|
30
|
+
}
|
|
31
|
+
function withNoOpAuthProvider(options) {
|
|
32
|
+
return {
|
|
33
|
+
...options,
|
|
34
|
+
authProvider: new core.NoOpAuthProvider(),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=BaseClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseClient.js","sourceRoot":"","sources":["../../src/BaseClient.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AA4DxC,MAAM,UAAU,sBAAsB,CAClC,OAAU;IAEV,OAAO;QACH,GAAG,OAAO;QACV,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;KACzB,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC1C,OAAU;IAEV,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,CAAuC,CAAC;IAEzF,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACzB,UAAU,CAAC,YAAY,GAAG,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtD,OAAO,UAAU,CAAC;IACtB,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACrC,UAAU,CAAC,YAAY,GAAG,EAAE,cAAc,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;YAC3D,OAAO,UAAU,CAAC;QACtB,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YACvC,OAAO,UAAU,CAAC;QACtB,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,8BAA8B,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACxE,UAAU,CAAC,YAAY,KAAK,IAAI,kBAAkB,CAAC,8BAA8B,CAAC,CAAC;IACnF,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,oBAAoB,CACzB,OAAmC;IAEnC,OAAO;QACH,GAAG,OAAO;QACV,YAAY,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE;KAC5C,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { DiarizationClient } from "./api/resources/diarization/client/Client.js";
|
|
2
|
+
import { ModelsClient } from "./api/resources/models/client/Client.js";
|
|
3
|
+
import { ScriptClient } from "./api/resources/script/client/Client.js";
|
|
4
|
+
import { SpeechClient } from "./api/resources/speech/client/Client.js";
|
|
5
|
+
import { TranscriptionsClient } from "./api/resources/transcriptions/client/Client.js";
|
|
6
|
+
import { TranslationsClient } from "./api/resources/translations/client/Client.js";
|
|
7
|
+
import type { BaseClientOptions, BaseRequestOptions } from "./BaseClient.js";
|
|
8
|
+
import { type NormalizedClientOptionsWithAuth } from "./BaseClient.js";
|
|
9
|
+
import * as core from "./core/index.js";
|
|
10
|
+
export declare namespace TapraClient {
|
|
11
|
+
type Options = BaseClientOptions;
|
|
12
|
+
interface RequestOptions extends BaseRequestOptions {
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export declare class TapraClient {
|
|
16
|
+
protected readonly _options: NormalizedClientOptionsWithAuth<TapraClient.Options>;
|
|
17
|
+
protected _models: ModelsClient | undefined;
|
|
18
|
+
protected _transcriptions: TranscriptionsClient | undefined;
|
|
19
|
+
protected _diarization: DiarizationClient | undefined;
|
|
20
|
+
protected _speech: SpeechClient | undefined;
|
|
21
|
+
protected _translations: TranslationsClient | undefined;
|
|
22
|
+
protected _script: ScriptClient | undefined;
|
|
23
|
+
constructor(options?: TapraClient.Options);
|
|
24
|
+
get models(): ModelsClient;
|
|
25
|
+
get transcriptions(): TranscriptionsClient;
|
|
26
|
+
get diarization(): DiarizationClient;
|
|
27
|
+
get speech(): SpeechClient;
|
|
28
|
+
get translations(): TranslationsClient;
|
|
29
|
+
get script(): ScriptClient;
|
|
30
|
+
/**
|
|
31
|
+
* Make a passthrough request using the SDK's configured auth, retry, logging, etc.
|
|
32
|
+
* This is useful for making requests to endpoints not yet supported in the SDK.
|
|
33
|
+
* The input can be a URL string, URL object, or Request object. Relative paths are resolved against the configured base URL.
|
|
34
|
+
*
|
|
35
|
+
* @param {Request | string | URL} input - The URL, path, or Request object.
|
|
36
|
+
* @param {RequestInit} init - Standard fetch RequestInit options.
|
|
37
|
+
* @param {core.PassthroughRequest.RequestOptions} requestOptions - Per-request overrides (timeout, retries, headers, abort signal).
|
|
38
|
+
* @returns {Promise<Response>} A standard Response object.
|
|
39
|
+
*/
|
|
40
|
+
fetch(input: Request | string | URL, init?: RequestInit, requestOptions?: core.PassthroughRequest.RequestOptions): Promise<Response>;
|
|
41
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
import { DiarizationClient } from "./api/resources/diarization/client/Client.js";
|
|
3
|
+
import { ModelsClient } from "./api/resources/models/client/Client.js";
|
|
4
|
+
import { ScriptClient } from "./api/resources/script/client/Client.js";
|
|
5
|
+
import { SpeechClient } from "./api/resources/speech/client/Client.js";
|
|
6
|
+
import { TranscriptionsClient } from "./api/resources/transcriptions/client/Client.js";
|
|
7
|
+
import { TranslationsClient } from "./api/resources/translations/client/Client.js";
|
|
8
|
+
import { normalizeClientOptionsWithAuth } from "./BaseClient.js";
|
|
9
|
+
import * as core from "./core/index.js";
|
|
10
|
+
export class TapraClient {
|
|
11
|
+
_options;
|
|
12
|
+
_models;
|
|
13
|
+
_transcriptions;
|
|
14
|
+
_diarization;
|
|
15
|
+
_speech;
|
|
16
|
+
_translations;
|
|
17
|
+
_script;
|
|
18
|
+
constructor(options = {}) {
|
|
19
|
+
this._options = normalizeClientOptionsWithAuth(options);
|
|
20
|
+
}
|
|
21
|
+
get models() {
|
|
22
|
+
return (this._models ??= new ModelsClient(this._options));
|
|
23
|
+
}
|
|
24
|
+
get transcriptions() {
|
|
25
|
+
return (this._transcriptions ??= new TranscriptionsClient(this._options));
|
|
26
|
+
}
|
|
27
|
+
get diarization() {
|
|
28
|
+
return (this._diarization ??= new DiarizationClient(this._options));
|
|
29
|
+
}
|
|
30
|
+
get speech() {
|
|
31
|
+
return (this._speech ??= new SpeechClient(this._options));
|
|
32
|
+
}
|
|
33
|
+
get translations() {
|
|
34
|
+
return (this._translations ??= new TranslationsClient(this._options));
|
|
35
|
+
}
|
|
36
|
+
get script() {
|
|
37
|
+
return (this._script ??= new ScriptClient(this._options));
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Make a passthrough request using the SDK's configured auth, retry, logging, etc.
|
|
41
|
+
* This is useful for making requests to endpoints not yet supported in the SDK.
|
|
42
|
+
* The input can be a URL string, URL object, or Request object. Relative paths are resolved against the configured base URL.
|
|
43
|
+
*
|
|
44
|
+
* @param {Request | string | URL} input - The URL, path, or Request object.
|
|
45
|
+
* @param {RequestInit} init - Standard fetch RequestInit options.
|
|
46
|
+
* @param {core.PassthroughRequest.RequestOptions} requestOptions - Per-request overrides (timeout, retries, headers, abort signal).
|
|
47
|
+
* @returns {Promise<Response>} A standard Response object.
|
|
48
|
+
*/
|
|
49
|
+
async fetch(input, init, requestOptions) {
|
|
50
|
+
return core.makePassthroughRequest(input, init, {
|
|
51
|
+
baseUrl: this._options.baseUrl ?? this._options.environment,
|
|
52
|
+
headers: this._options.headers,
|
|
53
|
+
timeoutInSeconds: this._options.timeoutInSeconds,
|
|
54
|
+
maxRetries: this._options.maxRetries,
|
|
55
|
+
fetch: this._options.fetch,
|
|
56
|
+
logging: this._options.logging,
|
|
57
|
+
getAuthHeaders: async () => (await this._options.authProvider.getAuthRequest()).headers,
|
|
58
|
+
}, requestOptions);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=Client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../src/Client.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AAEnF,OAAO,EAAwC,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AACvG,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AAQxC,MAAM,OAAO,WAAW;IACD,QAAQ,CAAuD;IACxE,OAAO,CAA2B;IAClC,eAAe,CAAmC;IAClD,YAAY,CAAgC;IAC5C,OAAO,CAA2B;IAClC,aAAa,CAAiC;IAC9C,OAAO,CAA2B;IAE5C,YAAY,UAA+B,EAAE;QACzC,IAAI,CAAC,QAAQ,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,IAAW,MAAM;QACb,OAAO,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAW,cAAc;QACrB,OAAO,CAAC,IAAI,CAAC,eAAe,KAAK,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,IAAW,WAAW;QAClB,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,IAAW,MAAM;QACb,OAAO,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,CAAC,IAAI,CAAC,aAAa,KAAK,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,IAAW,MAAM;QACb,OAAO,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;;OASG;IACI,KAAK,CAAC,KAAK,CACd,KAA6B,EAC7B,IAAkB,EAClB,cAAuD;QAEvD,OAAO,IAAI,CAAC,sBAAsB,CAC9B,KAAK,EACL,IAAI,EACJ;YACI,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW;YAC3D,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;YAC9B,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB;YAChD,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;YACpC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;YAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;YAC9B,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC,OAAO;SAC1F,EACD,cAAc,CACjB,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type * as core from "../../core/index.js";
|
|
2
|
+
import * as errors from "../../errors/index.js";
|
|
3
|
+
import type * as Tapra from "../index.js";
|
|
4
|
+
export declare class BadRequestError extends errors.TapraError {
|
|
5
|
+
readonly body: Tapra.Error_;
|
|
6
|
+
constructor(body: Tapra.Error_, rawResponse?: core.RawResponse);
|
|
7
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
import * as errors from "../../errors/index.js";
|
|
3
|
+
export class BadRequestError extends errors.TapraError {
|
|
4
|
+
constructor(body, rawResponse) {
|
|
5
|
+
super({
|
|
6
|
+
message: "BadRequestError",
|
|
7
|
+
statusCode: 400,
|
|
8
|
+
body: body,
|
|
9
|
+
rawResponse: rawResponse,
|
|
10
|
+
});
|
|
11
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
12
|
+
if (Error.captureStackTrace) {
|
|
13
|
+
Error.captureStackTrace(this, this.constructor);
|
|
14
|
+
}
|
|
15
|
+
this.name = "BadRequestError";
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=BadRequestError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BadRequestError.js","sourceRoot":"","sources":["../../../../src/api/errors/BadRequestError.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAGhE,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAGhD,MAAM,OAAO,eAAgB,SAAQ,MAAM,CAAC,UAAU;IAGlD,YAAY,IAAkB,EAAE,WAA8B;QAC1D,KAAK,CAAC;YACF,OAAO,EAAE,iBAAiB;YAC1B,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,WAAW;SAC3B,CAAC,CAAC;QACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC1B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAClC,CAAC;CACJ"}
|