@athenaintel/sdk 4.3.309 → 4.3.310
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 +117 -9
- package/dist/cjs/BaseClient.d.ts +14 -1
- package/dist/cjs/BaseClient.js +59 -0
- package/dist/cjs/Client.d.ts +24 -23
- package/dist/cjs/Client.js +10 -51
- package/dist/cjs/api/errors/BadRequestError.d.ts +1 -1
- package/dist/cjs/api/errors/ContentTooLargeError.d.ts +2 -2
- package/dist/cjs/api/errors/ForbiddenError.d.ts +1 -1
- package/dist/cjs/api/errors/InternalServerError.d.ts +1 -1
- package/dist/cjs/api/errors/NotFoundError.d.ts +1 -1
- package/dist/cjs/api/errors/NotImplementedError.d.ts +1 -1
- package/dist/cjs/api/errors/ServiceUnavailableError.d.ts +1 -1
- package/dist/cjs/api/errors/UnauthorizedError.d.ts +1 -1
- package/dist/cjs/api/errors/UnprocessableEntityError.d.ts +1 -1
- package/dist/cjs/api/errors/UnsupportedMediaTypeError.d.ts +2 -2
- package/dist/cjs/api/errors/index.d.ts +5 -5
- package/dist/cjs/api/errors/index.js +5 -5
- package/dist/cjs/api/index.d.ts +1 -1
- package/dist/cjs/api/index.js +1 -1
- package/dist/cjs/api/resources/agents/client/Client.d.ts +20 -20
- package/dist/cjs/api/resources/agents/client/Client.js +29 -26
- package/dist/cjs/api/resources/agents/client/index.d.ts +0 -1
- package/dist/cjs/api/resources/agents/client/requests/index.d.ts +1 -1
- package/dist/cjs/api/resources/agents/resources/drive/client/Client.d.ts +7 -7
- package/dist/cjs/api/resources/agents/resources/drive/client/Client.js +20 -17
- package/dist/cjs/api/resources/agents/resources/drive/client/index.d.ts +0 -1
- package/dist/cjs/api/resources/agents/resources/drive/client/requests/index.d.ts +1 -1
- package/dist/cjs/api/resources/agents/resources/general/client/Client.d.ts +11 -11
- package/dist/cjs/api/resources/agents/resources/general/client/Client.js +42 -23
- package/dist/cjs/api/resources/agents/resources/index.d.ts +3 -3
- package/dist/cjs/api/resources/agents/resources/index.js +6 -6
- package/dist/cjs/api/resources/agents/resources/research/client/Client.d.ts +7 -7
- package/dist/cjs/api/resources/agents/resources/research/client/Client.js +20 -17
- package/dist/cjs/api/resources/agents/resources/research/client/index.d.ts +0 -1
- package/dist/cjs/api/resources/agents/resources/research/client/requests/index.d.ts +1 -1
- package/dist/cjs/api/resources/agents/resources/sql/client/Client.d.ts +7 -7
- package/dist/cjs/api/resources/agents/resources/sql/client/Client.js +20 -17
- package/dist/cjs/api/resources/agents/resources/sql/client/index.d.ts +0 -1
- package/dist/cjs/api/resources/agents/resources/sql/client/requests/index.d.ts +1 -1
- package/dist/cjs/api/resources/aop/client/Client.d.ts +9 -9
- package/dist/cjs/api/resources/aop/client/Client.js +31 -20
- package/dist/cjs/api/resources/assets/client/Client.d.ts +14 -14
- package/dist/cjs/api/resources/assets/client/Client.js +62 -35
- package/dist/cjs/api/resources/assets/client/index.d.ts +0 -1
- package/dist/cjs/api/resources/assets/client/requests/CreateAssetRequestIn.d.ts +1 -1
- package/dist/cjs/api/resources/assets/client/requests/index.d.ts +3 -3
- package/dist/cjs/api/resources/databases/client/Client.d.ts +28 -28
- package/dist/cjs/api/resources/databases/client/Client.js +118 -75
- package/dist/cjs/api/resources/databases/client/index.d.ts +0 -1
- package/dist/cjs/api/resources/databases/client/requests/DatabasesDeleteRequest.d.ts +1 -1
- package/dist/cjs/api/resources/databases/client/requests/index.d.ts +4 -4
- package/dist/cjs/api/resources/index.d.ts +8 -8
- package/dist/cjs/api/resources/index.js +12 -12
- package/dist/cjs/api/resources/query/client/Client.d.ts +9 -9
- package/dist/cjs/api/resources/query/client/Client.js +34 -23
- package/dist/cjs/api/resources/query/client/index.d.ts +0 -1
- package/dist/cjs/api/resources/query/client/requests/QueryExecuteRequest.d.ts +1 -1
- package/dist/cjs/api/resources/query/client/requests/index.d.ts +2 -2
- package/dist/cjs/api/resources/query/index.d.ts +1 -1
- package/dist/cjs/api/resources/query/index.js +1 -1
- package/dist/cjs/api/resources/threads/client/Client.d.ts +8 -8
- package/dist/cjs/api/resources/threads/client/Client.js +25 -22
- package/dist/cjs/api/resources/tools/client/Client.d.ts +33 -33
- package/dist/cjs/api/resources/tools/client/Client.js +106 -55
- package/dist/cjs/api/resources/tools/client/index.d.ts +0 -1
- package/dist/cjs/api/resources/tools/client/requests/BodySaveAssetApiV0ToolsFileSavePost.d.ts +2 -2
- package/dist/cjs/api/resources/tools/client/requests/ToolsDataFrameRequest.d.ts +1 -1
- package/dist/cjs/api/resources/tools/client/requests/index.d.ts +7 -7
- package/dist/cjs/api/resources/tools/index.d.ts +1 -1
- package/dist/cjs/api/resources/tools/index.js +1 -1
- package/dist/cjs/api/resources/tools/resources/calendar/client/Client.d.ts +9 -9
- package/dist/cjs/api/resources/tools/resources/calendar/client/Client.js +30 -19
- package/dist/cjs/api/resources/tools/resources/email/client/Client.d.ts +11 -11
- package/dist/cjs/api/resources/tools/resources/email/client/Client.js +41 -22
- package/dist/cjs/api/resources/tools/resources/index.d.ts +3 -3
- package/dist/cjs/api/resources/tools/resources/index.js +3 -3
- package/dist/cjs/api/resources/tools/resources/sheets/client/Client.d.ts +39 -39
- package/dist/cjs/api/resources/tools/resources/sheets/client/Client.js +196 -65
- package/dist/cjs/api/resources/tools/resources/sheets/client/index.d.ts +0 -1
- package/dist/cjs/api/resources/tools/resources/sheets/client/requests/CreateNewSheetTabRequest.d.ts +1 -1
- package/dist/cjs/api/resources/tools/resources/sheets/client/requests/FormatSheetRangeRequest.d.ts +1 -1
- package/dist/cjs/api/resources/tools/resources/sheets/client/requests/InsertTableRowRequest.d.ts +1 -1
- package/dist/cjs/api/resources/tools/resources/sheets/client/requests/UpdateSheetRangeRequest.d.ts +1 -1
- package/dist/cjs/api/resources/tools/resources/sheets/client/requests/index.d.ts +17 -17
- package/dist/cjs/api/resources/tools/resources/structuredDataExtractor/client/Client.d.ts +7 -7
- package/dist/cjs/api/resources/tools/resources/structuredDataExtractor/client/Client.js +20 -17
- package/dist/cjs/api/resources/tools/resources/structuredDataExtractor/client/index.d.ts +0 -1
- package/dist/cjs/api/resources/tools/resources/structuredDataExtractor/client/requests/StructuredDataExtractorRequest.d.ts +1 -1
- package/dist/cjs/api/resources/tools/resources/structuredDataExtractor/client/requests/index.d.ts +1 -1
- package/dist/cjs/api/resources/tools/resources/tasks/client/Client.d.ts +7 -7
- package/dist/cjs/api/resources/tools/resources/tasks/client/Client.js +20 -17
- package/dist/cjs/api/resources/tools/resources/tasks/client/index.d.ts +0 -1
- package/dist/cjs/api/resources/tools/resources/tasks/client/requests/index.d.ts +1 -1
- package/dist/cjs/api/types/AopExecuteResponseOut.d.ts +1 -1
- package/dist/cjs/api/types/AssetNode.d.ts +1 -1
- package/dist/cjs/api/types/BorderModel.d.ts +1 -1
- package/dist/cjs/api/types/BordersModel.d.ts +1 -1
- package/dist/cjs/api/types/CellFormat.d.ts +1 -1
- package/dist/cjs/api/types/Chunk.d.ts +1 -1
- package/dist/cjs/api/types/ChunkContentItem.d.ts +1 -1
- package/dist/cjs/api/types/ConversationAssetInfo.d.ts +1 -1
- package/dist/cjs/api/types/ConversationMessage.d.ts +1 -1
- package/dist/cjs/api/types/ConversationResult.d.ts +1 -1
- package/dist/cjs/api/types/DatabaseTableSchemaResponse.d.ts +1 -1
- package/dist/cjs/api/types/DatabaseTablesResponse.d.ts +1 -1
- package/dist/cjs/api/types/FolderResponse.d.ts +1 -1
- package/dist/cjs/api/types/GeneralAgentRequest.d.ts +1 -1
- package/dist/cjs/api/types/GeneralAgentResponse.d.ts +1 -1
- package/dist/cjs/api/types/GeneralAgentResponseMessage.d.ts +1 -1
- package/dist/cjs/api/types/GeneralAgentResponseMessageKwargs.d.ts +1 -1
- package/dist/cjs/api/types/InputMessage.d.ts +1 -1
- package/dist/cjs/api/types/InputMessageContentItem.d.ts +1 -1
- package/dist/cjs/api/types/NumberFormatModel.d.ts +1 -1
- package/dist/cjs/api/types/PaginatedAssetsOut.d.ts +1 -1
- package/dist/cjs/api/types/Sheet.d.ts +1 -1
- package/dist/cjs/api/types/StructuredDataExtractorResponse.d.ts +1 -1
- package/dist/cjs/api/types/TextFormatModel.d.ts +1 -1
- package/dist/cjs/api/types/ThreadStatusResponseOut.d.ts +1 -1
- package/dist/cjs/api/types/index.d.ts +5 -5
- package/dist/cjs/api/types/index.js +5 -5
- package/dist/cjs/auth/HeaderAuthProvider.d.ts +14 -0
- package/dist/cjs/auth/HeaderAuthProvider.js +71 -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 +7 -0
- package/dist/cjs/core/auth/AuthProvider.js +2 -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 +27 -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 +9 -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 +1 -0
- package/dist/cjs/core/exports.js +1 -0
- package/dist/cjs/core/fetcher/BinaryResponse.d.ts +6 -7
- package/dist/cjs/core/fetcher/EndpointSupplier.d.ts +1 -1
- package/dist/cjs/core/fetcher/Fetcher.d.ts +9 -2
- package/dist/cjs/core/fetcher/Fetcher.js +204 -9
- package/dist/cjs/core/fetcher/getErrorResponseBody.js +2 -1
- package/dist/cjs/core/fetcher/getRequestBody.d.ts +1 -1
- package/dist/cjs/core/fetcher/getRequestBody.js +4 -0
- package/dist/cjs/core/fetcher/getResponseBody.js +21 -7
- package/dist/cjs/core/fetcher/makeRequest.d.ts +1 -1
- package/dist/cjs/core/fetcher/makeRequest.js +2 -4
- package/dist/cjs/core/fetcher/requestWithRetries.js +3 -12
- package/dist/cjs/core/fetcher/signals.d.ts +1 -7
- package/dist/cjs/core/fetcher/signals.js +0 -12
- package/dist/cjs/core/file/file.d.ts +5 -0
- package/dist/cjs/core/file/file.js +25 -7
- package/dist/cjs/core/form-data-utils/FormDataWrapper.d.ts +2 -3
- package/dist/cjs/core/form-data-utils/FormDataWrapper.js +62 -85
- package/dist/cjs/core/headers.js +6 -4
- package/dist/cjs/core/index.d.ts +5 -2
- package/dist/cjs/core/index.js +6 -3
- 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/runtime/runtime.js +11 -10
- package/dist/cjs/core/url/encodePathParam.d.ts +1 -0
- package/dist/cjs/core/url/encodePathParam.js +21 -0
- package/dist/cjs/core/url/index.d.ts +1 -0
- package/dist/cjs/core/url/index.js +3 -1
- package/dist/cjs/core/url/join.js +3 -4
- package/dist/cjs/errors/AthenaIntelligenceError.d.ts +1 -1
- package/dist/cjs/errors/AthenaIntelligenceError.js +1 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +4 -4
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/BaseClient.d.mts +14 -1
- package/dist/esm/BaseClient.mjs +23 -1
- package/dist/esm/Client.d.mts +24 -23
- package/dist/esm/Client.mjs +17 -26
- package/dist/esm/api/errors/BadRequestError.d.mts +1 -1
- package/dist/esm/api/errors/BadRequestError.mjs +0 -1
- package/dist/esm/api/errors/ContentTooLargeError.d.mts +2 -2
- package/dist/esm/api/errors/ContentTooLargeError.mjs +0 -2
- package/dist/esm/api/errors/ForbiddenError.d.mts +1 -1
- package/dist/esm/api/errors/ForbiddenError.mjs +0 -1
- package/dist/esm/api/errors/InternalServerError.d.mts +1 -1
- package/dist/esm/api/errors/InternalServerError.mjs +0 -1
- package/dist/esm/api/errors/NotFoundError.d.mts +1 -1
- package/dist/esm/api/errors/NotFoundError.mjs +0 -1
- package/dist/esm/api/errors/NotImplementedError.d.mts +1 -1
- package/dist/esm/api/errors/NotImplementedError.mjs +0 -1
- package/dist/esm/api/errors/ServiceUnavailableError.d.mts +1 -1
- package/dist/esm/api/errors/ServiceUnavailableError.mjs +0 -1
- package/dist/esm/api/errors/UnauthorizedError.d.mts +1 -1
- package/dist/esm/api/errors/UnauthorizedError.mjs +0 -1
- package/dist/esm/api/errors/UnprocessableEntityError.d.mts +1 -1
- package/dist/esm/api/errors/UnprocessableEntityError.mjs +0 -1
- package/dist/esm/api/errors/UnsupportedMediaTypeError.d.mts +2 -2
- package/dist/esm/api/errors/UnsupportedMediaTypeError.mjs +0 -2
- package/dist/esm/api/errors/index.d.mts +5 -5
- package/dist/esm/api/errors/index.mjs +5 -5
- package/dist/esm/api/index.d.mts +1 -1
- package/dist/esm/api/index.mjs +1 -1
- package/dist/esm/api/resources/agents/client/Client.d.mts +20 -20
- package/dist/esm/api/resources/agents/client/Client.mjs +31 -28
- package/dist/esm/api/resources/agents/client/index.d.mts +0 -1
- package/dist/esm/api/resources/agents/client/index.mjs +0 -1
- package/dist/esm/api/resources/agents/client/requests/index.d.mts +1 -1
- package/dist/esm/api/resources/agents/client/requests/index.mjs +1 -1
- package/dist/esm/api/resources/agents/resources/drive/client/Client.d.mts +7 -7
- package/dist/esm/api/resources/agents/resources/drive/client/Client.mjs +18 -15
- package/dist/esm/api/resources/agents/resources/drive/client/index.d.mts +0 -1
- package/dist/esm/api/resources/agents/resources/drive/client/index.mjs +0 -1
- package/dist/esm/api/resources/agents/resources/drive/client/requests/index.d.mts +1 -1
- package/dist/esm/api/resources/agents/resources/drive/client/requests/index.mjs +1 -1
- package/dist/esm/api/resources/agents/resources/general/client/Client.d.mts +11 -11
- package/dist/esm/api/resources/agents/resources/general/client/Client.mjs +40 -21
- package/dist/esm/api/resources/agents/resources/index.d.mts +3 -3
- package/dist/esm/api/resources/agents/resources/index.mjs +3 -3
- package/dist/esm/api/resources/agents/resources/research/client/Client.d.mts +7 -7
- package/dist/esm/api/resources/agents/resources/research/client/Client.mjs +18 -15
- package/dist/esm/api/resources/agents/resources/research/client/index.d.mts +0 -1
- package/dist/esm/api/resources/agents/resources/research/client/index.mjs +0 -1
- package/dist/esm/api/resources/agents/resources/research/client/requests/index.d.mts +1 -1
- package/dist/esm/api/resources/agents/resources/research/client/requests/index.mjs +1 -1
- package/dist/esm/api/resources/agents/resources/sql/client/Client.d.mts +7 -7
- package/dist/esm/api/resources/agents/resources/sql/client/Client.mjs +18 -15
- package/dist/esm/api/resources/agents/resources/sql/client/index.d.mts +0 -1
- package/dist/esm/api/resources/agents/resources/sql/client/index.mjs +0 -1
- package/dist/esm/api/resources/agents/resources/sql/client/requests/index.d.mts +1 -1
- package/dist/esm/api/resources/agents/resources/sql/client/requests/index.mjs +1 -1
- package/dist/esm/api/resources/aop/client/Client.d.mts +9 -9
- package/dist/esm/api/resources/aop/client/Client.mjs +29 -18
- package/dist/esm/api/resources/assets/client/Client.d.mts +14 -14
- package/dist/esm/api/resources/assets/client/Client.mjs +60 -33
- package/dist/esm/api/resources/assets/client/index.d.mts +0 -1
- package/dist/esm/api/resources/assets/client/index.mjs +0 -1
- package/dist/esm/api/resources/assets/client/requests/CreateAssetRequestIn.d.mts +1 -1
- package/dist/esm/api/resources/assets/client/requests/CreateAssetRequestIn.mjs +1 -1
- package/dist/esm/api/resources/assets/client/requests/index.d.mts +3 -3
- package/dist/esm/api/resources/assets/client/requests/index.mjs +1 -3
- package/dist/esm/api/resources/databases/client/Client.d.mts +28 -28
- package/dist/esm/api/resources/databases/client/Client.mjs +116 -73
- package/dist/esm/api/resources/databases/client/index.d.mts +0 -1
- package/dist/esm/api/resources/databases/client/index.mjs +0 -1
- package/dist/esm/api/resources/databases/client/requests/DatabasesDeleteRequest.d.mts +1 -1
- package/dist/esm/api/resources/databases/client/requests/DatabasesDeleteRequest.mjs +1 -1
- package/dist/esm/api/resources/databases/client/requests/index.d.mts +4 -4
- package/dist/esm/api/resources/databases/client/requests/index.mjs +1 -4
- package/dist/esm/api/resources/index.d.mts +8 -8
- package/dist/esm/api/resources/index.mjs +8 -8
- package/dist/esm/api/resources/query/client/Client.d.mts +9 -9
- package/dist/esm/api/resources/query/client/Client.mjs +32 -21
- package/dist/esm/api/resources/query/client/index.d.mts +0 -1
- package/dist/esm/api/resources/query/client/index.mjs +0 -1
- package/dist/esm/api/resources/query/client/requests/QueryExecuteRequest.d.mts +1 -1
- package/dist/esm/api/resources/query/client/requests/QueryExecuteRequest.mjs +1 -1
- package/dist/esm/api/resources/query/client/requests/index.d.mts +2 -2
- package/dist/esm/api/resources/query/client/requests/index.mjs +1 -2
- package/dist/esm/api/resources/query/index.d.mts +1 -1
- package/dist/esm/api/resources/query/index.mjs +1 -1
- package/dist/esm/api/resources/threads/client/Client.d.mts +8 -8
- package/dist/esm/api/resources/threads/client/Client.mjs +23 -20
- package/dist/esm/api/resources/tools/client/Client.d.mts +33 -33
- package/dist/esm/api/resources/tools/client/Client.mjs +109 -59
- package/dist/esm/api/resources/tools/client/index.d.mts +0 -1
- package/dist/esm/api/resources/tools/client/index.mjs +0 -1
- package/dist/esm/api/resources/tools/client/requests/BodySaveAssetApiV0ToolsFileSavePost.d.mts +2 -2
- package/dist/esm/api/resources/tools/client/requests/BodySaveAssetApiV0ToolsFileSavePost.mjs +1 -2
- package/dist/esm/api/resources/tools/client/requests/ToolsDataFrameRequest.d.mts +1 -1
- package/dist/esm/api/resources/tools/client/requests/ToolsDataFrameRequest.mjs +1 -1
- package/dist/esm/api/resources/tools/client/requests/index.d.mts +7 -7
- package/dist/esm/api/resources/tools/client/requests/index.mjs +1 -7
- package/dist/esm/api/resources/tools/index.d.mts +1 -1
- package/dist/esm/api/resources/tools/index.mjs +1 -1
- package/dist/esm/api/resources/tools/resources/calendar/client/Client.d.mts +9 -9
- package/dist/esm/api/resources/tools/resources/calendar/client/Client.mjs +28 -17
- package/dist/esm/api/resources/tools/resources/email/client/Client.d.mts +11 -11
- package/dist/esm/api/resources/tools/resources/email/client/Client.mjs +39 -20
- package/dist/esm/api/resources/tools/resources/index.d.mts +3 -3
- package/dist/esm/api/resources/tools/resources/index.mjs +3 -3
- package/dist/esm/api/resources/tools/resources/sheets/client/Client.d.mts +39 -39
- package/dist/esm/api/resources/tools/resources/sheets/client/Client.mjs +194 -63
- package/dist/esm/api/resources/tools/resources/sheets/client/index.d.mts +0 -1
- package/dist/esm/api/resources/tools/resources/sheets/client/index.mjs +0 -1
- package/dist/esm/api/resources/tools/resources/sheets/client/requests/CreateNewSheetTabRequest.d.mts +1 -1
- package/dist/esm/api/resources/tools/resources/sheets/client/requests/CreateNewSheetTabRequest.mjs +1 -1
- package/dist/esm/api/resources/tools/resources/sheets/client/requests/FormatSheetRangeRequest.d.mts +1 -1
- package/dist/esm/api/resources/tools/resources/sheets/client/requests/FormatSheetRangeRequest.mjs +1 -1
- package/dist/esm/api/resources/tools/resources/sheets/client/requests/InsertTableRowRequest.d.mts +1 -1
- package/dist/esm/api/resources/tools/resources/sheets/client/requests/InsertTableRowRequest.mjs +1 -1
- package/dist/esm/api/resources/tools/resources/sheets/client/requests/UpdateSheetRangeRequest.d.mts +1 -1
- package/dist/esm/api/resources/tools/resources/sheets/client/requests/UpdateSheetRangeRequest.mjs +1 -1
- package/dist/esm/api/resources/tools/resources/sheets/client/requests/index.d.mts +17 -17
- package/dist/esm/api/resources/tools/resources/sheets/client/requests/index.mjs +1 -17
- package/dist/esm/api/resources/tools/resources/structuredDataExtractor/client/Client.d.mts +7 -7
- package/dist/esm/api/resources/tools/resources/structuredDataExtractor/client/Client.mjs +18 -15
- package/dist/esm/api/resources/tools/resources/structuredDataExtractor/client/index.d.mts +0 -1
- package/dist/esm/api/resources/tools/resources/structuredDataExtractor/client/index.mjs +0 -1
- package/dist/esm/api/resources/tools/resources/structuredDataExtractor/client/requests/StructuredDataExtractorRequest.d.mts +1 -1
- package/dist/esm/api/resources/tools/resources/structuredDataExtractor/client/requests/StructuredDataExtractorRequest.mjs +1 -1
- package/dist/esm/api/resources/tools/resources/structuredDataExtractor/client/requests/index.d.mts +1 -1
- package/dist/esm/api/resources/tools/resources/structuredDataExtractor/client/requests/index.mjs +1 -1
- package/dist/esm/api/resources/tools/resources/tasks/client/Client.d.mts +7 -7
- package/dist/esm/api/resources/tools/resources/tasks/client/Client.mjs +18 -15
- package/dist/esm/api/resources/tools/resources/tasks/client/index.d.mts +0 -1
- package/dist/esm/api/resources/tools/resources/tasks/client/index.mjs +0 -1
- package/dist/esm/api/resources/tools/resources/tasks/client/requests/index.d.mts +1 -1
- package/dist/esm/api/resources/tools/resources/tasks/client/requests/index.mjs +1 -1
- package/dist/esm/api/types/AopExecuteResponseOut.d.mts +1 -1
- package/dist/esm/api/types/AopExecuteResponseOut.mjs +1 -1
- package/dist/esm/api/types/AssetNode.d.mts +1 -1
- package/dist/esm/api/types/AssetNode.mjs +1 -1
- package/dist/esm/api/types/BorderModel.d.mts +1 -1
- package/dist/esm/api/types/BorderModel.mjs +1 -1
- package/dist/esm/api/types/BordersModel.d.mts +1 -1
- package/dist/esm/api/types/BordersModel.mjs +1 -1
- package/dist/esm/api/types/CellFormat.d.mts +1 -1
- package/dist/esm/api/types/CellFormat.mjs +0 -1
- package/dist/esm/api/types/Chunk.d.mts +1 -1
- package/dist/esm/api/types/Chunk.mjs +1 -1
- package/dist/esm/api/types/ChunkContentItem.d.mts +1 -1
- package/dist/esm/api/types/ChunkContentItem.mjs +1 -1
- package/dist/esm/api/types/ConversationAssetInfo.d.mts +1 -1
- package/dist/esm/api/types/ConversationAssetInfo.mjs +1 -1
- package/dist/esm/api/types/ConversationMessage.d.mts +1 -1
- package/dist/esm/api/types/ConversationMessage.mjs +1 -1
- package/dist/esm/api/types/ConversationResult.d.mts +1 -1
- package/dist/esm/api/types/ConversationResult.mjs +1 -1
- package/dist/esm/api/types/DatabaseTableSchemaResponse.d.mts +1 -1
- package/dist/esm/api/types/DatabaseTableSchemaResponse.mjs +1 -1
- package/dist/esm/api/types/DatabaseTablesResponse.d.mts +1 -1
- package/dist/esm/api/types/DatabaseTablesResponse.mjs +1 -1
- package/dist/esm/api/types/FolderResponse.d.mts +1 -1
- package/dist/esm/api/types/FolderResponse.mjs +1 -1
- package/dist/esm/api/types/GeneralAgentRequest.d.mts +1 -1
- package/dist/esm/api/types/GeneralAgentRequest.mjs +1 -1
- package/dist/esm/api/types/GeneralAgentResponse.d.mts +1 -1
- package/dist/esm/api/types/GeneralAgentResponse.mjs +1 -1
- package/dist/esm/api/types/GeneralAgentResponseMessage.d.mts +1 -1
- package/dist/esm/api/types/GeneralAgentResponseMessage.mjs +1 -1
- package/dist/esm/api/types/GeneralAgentResponseMessageKwargs.d.mts +1 -1
- package/dist/esm/api/types/GeneralAgentResponseMessageKwargs.mjs +1 -1
- package/dist/esm/api/types/InputMessage.d.mts +1 -1
- package/dist/esm/api/types/InputMessage.mjs +1 -1
- package/dist/esm/api/types/InputMessageContentItem.d.mts +1 -1
- package/dist/esm/api/types/InputMessageContentItem.mjs +1 -1
- package/dist/esm/api/types/NumberFormatModel.d.mts +1 -1
- package/dist/esm/api/types/NumberFormatModel.mjs +1 -1
- package/dist/esm/api/types/PaginatedAssetsOut.d.mts +1 -1
- package/dist/esm/api/types/PaginatedAssetsOut.mjs +1 -1
- package/dist/esm/api/types/Sheet.d.mts +1 -1
- package/dist/esm/api/types/Sheet.mjs +1 -1
- package/dist/esm/api/types/StructuredDataExtractorResponse.d.mts +1 -1
- package/dist/esm/api/types/StructuredDataExtractorResponse.mjs +1 -1
- package/dist/esm/api/types/TextFormatModel.d.mts +1 -1
- package/dist/esm/api/types/TextFormatModel.mjs +1 -1
- package/dist/esm/api/types/ThreadStatusResponseOut.d.mts +1 -1
- package/dist/esm/api/types/ThreadStatusResponseOut.mjs +1 -1
- package/dist/esm/api/types/index.d.mts +5 -5
- package/dist/esm/api/types/index.mjs +5 -5
- package/dist/esm/auth/HeaderAuthProvider.d.mts +14 -0
- package/dist/esm/auth/HeaderAuthProvider.mjs +34 -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 +7 -0
- package/dist/esm/core/auth/AuthProvider.mjs +1 -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 +24 -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 +3 -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 +1 -0
- package/dist/esm/core/exports.mjs +1 -0
- package/dist/esm/core/fetcher/BinaryResponse.d.mts +6 -7
- package/dist/esm/core/fetcher/EndpointSupplier.d.mts +1 -1
- package/dist/esm/core/fetcher/EndpointSupplier.mjs +0 -1
- package/dist/esm/core/fetcher/Fetcher.d.mts +9 -2
- package/dist/esm/core/fetcher/Fetcher.mjs +204 -9
- package/dist/esm/core/fetcher/getErrorResponseBody.mjs +2 -1
- package/dist/esm/core/fetcher/getRequestBody.d.mts +1 -1
- package/dist/esm/core/fetcher/getRequestBody.mjs +4 -0
- package/dist/esm/core/fetcher/getResponseBody.mjs +21 -7
- package/dist/esm/core/fetcher/makeRequest.d.mts +1 -1
- package/dist/esm/core/fetcher/makeRequest.mjs +2 -4
- package/dist/esm/core/fetcher/requestWithRetries.mjs +3 -12
- package/dist/esm/core/fetcher/signals.d.mts +1 -7
- package/dist/esm/core/fetcher/signals.mjs +0 -12
- package/dist/esm/core/file/file.d.mts +5 -0
- package/dist/esm/core/file/file.mjs +24 -7
- package/dist/esm/core/form-data-utils/FormDataWrapper.d.mts +2 -3
- package/dist/esm/core/form-data-utils/FormDataWrapper.mjs +59 -82
- package/dist/esm/core/headers.mjs +6 -4
- package/dist/esm/core/index.d.mts +5 -2
- package/dist/esm/core/index.mjs +5 -2
- 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/runtime/runtime.mjs +11 -10
- package/dist/esm/core/url/encodePathParam.d.mts +1 -0
- package/dist/esm/core/url/encodePathParam.mjs +18 -0
- package/dist/esm/core/url/index.d.mts +1 -0
- package/dist/esm/core/url/index.mjs +1 -0
- package/dist/esm/core/url/join.mjs +3 -4
- package/dist/esm/errors/AthenaIntelligenceError.d.mts +1 -1
- package/dist/esm/errors/AthenaIntelligenceError.mjs +1 -2
- package/dist/esm/index.d.mts +2 -2
- package/dist/esm/index.mjs +1 -2
- package/dist/esm/version.d.mts +1 -1
- package/dist/esm/version.mjs +1 -1
- package/package.json +11 -5
- package/reference.md +450 -490
- package/dist/cjs/core/fetcher/ResponseWithBody.d.ts +0 -4
- package/dist/cjs/core/fetcher/ResponseWithBody.js +0 -6
- package/dist/esm/core/fetcher/ResponseWithBody.d.mts +0 -4
- package/dist/esm/core/fetcher/ResponseWithBody.mjs +0 -3
|
@@ -8,21 +8,153 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { toJson } from "../json.mjs";
|
|
11
|
+
import { createLogger } from "../logging/logger.mjs";
|
|
11
12
|
import { createRequestUrl } from "./createRequestUrl.mjs";
|
|
12
13
|
import { EndpointSupplier } from "./EndpointSupplier.mjs";
|
|
13
14
|
import { getErrorResponseBody } from "./getErrorResponseBody.mjs";
|
|
14
15
|
import { getFetchFn } from "./getFetchFn.mjs";
|
|
15
16
|
import { getRequestBody } from "./getRequestBody.mjs";
|
|
16
17
|
import { getResponseBody } from "./getResponseBody.mjs";
|
|
18
|
+
import { Headers } from "./Headers.mjs";
|
|
17
19
|
import { makeRequest } from "./makeRequest.mjs";
|
|
18
20
|
import { abortRawResponse, toRawResponse, unknownRawResponse } from "./RawResponse.mjs";
|
|
19
21
|
import { requestWithRetries } from "./requestWithRetries.mjs";
|
|
22
|
+
const SENSITIVE_HEADERS = new Set([
|
|
23
|
+
"authorization",
|
|
24
|
+
"www-authenticate",
|
|
25
|
+
"x-api-key",
|
|
26
|
+
"api-key",
|
|
27
|
+
"apikey",
|
|
28
|
+
"x-api-token",
|
|
29
|
+
"x-auth-token",
|
|
30
|
+
"auth-token",
|
|
31
|
+
"cookie",
|
|
32
|
+
"set-cookie",
|
|
33
|
+
"proxy-authorization",
|
|
34
|
+
"proxy-authenticate",
|
|
35
|
+
"x-csrf-token",
|
|
36
|
+
"x-xsrf-token",
|
|
37
|
+
"x-session-token",
|
|
38
|
+
"x-access-token",
|
|
39
|
+
]);
|
|
40
|
+
function redactHeaders(headers) {
|
|
41
|
+
const filtered = {};
|
|
42
|
+
for (const [key, value] of headers instanceof Headers ? headers.entries() : Object.entries(headers)) {
|
|
43
|
+
if (SENSITIVE_HEADERS.has(key.toLowerCase())) {
|
|
44
|
+
filtered[key] = "[REDACTED]";
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
filtered[key] = value;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return filtered;
|
|
51
|
+
}
|
|
52
|
+
const SENSITIVE_QUERY_PARAMS = new Set([
|
|
53
|
+
"api_key",
|
|
54
|
+
"api-key",
|
|
55
|
+
"apikey",
|
|
56
|
+
"token",
|
|
57
|
+
"access_token",
|
|
58
|
+
"access-token",
|
|
59
|
+
"auth_token",
|
|
60
|
+
"auth-token",
|
|
61
|
+
"password",
|
|
62
|
+
"passwd",
|
|
63
|
+
"secret",
|
|
64
|
+
"api_secret",
|
|
65
|
+
"api-secret",
|
|
66
|
+
"apisecret",
|
|
67
|
+
"key",
|
|
68
|
+
"session",
|
|
69
|
+
"session_id",
|
|
70
|
+
"session-id",
|
|
71
|
+
]);
|
|
72
|
+
function redactQueryParameters(queryParameters) {
|
|
73
|
+
if (queryParameters == null) {
|
|
74
|
+
return queryParameters;
|
|
75
|
+
}
|
|
76
|
+
const redacted = {};
|
|
77
|
+
for (const [key, value] of Object.entries(queryParameters)) {
|
|
78
|
+
if (SENSITIVE_QUERY_PARAMS.has(key.toLowerCase())) {
|
|
79
|
+
redacted[key] = "[REDACTED]";
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
redacted[key] = value;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return redacted;
|
|
86
|
+
}
|
|
87
|
+
function redactUrl(url) {
|
|
88
|
+
const protocolIndex = url.indexOf("://");
|
|
89
|
+
if (protocolIndex === -1)
|
|
90
|
+
return url;
|
|
91
|
+
const afterProtocol = protocolIndex + 3;
|
|
92
|
+
// Find the first delimiter that marks the end of the authority section
|
|
93
|
+
const pathStart = url.indexOf("/", afterProtocol);
|
|
94
|
+
let queryStart = url.indexOf("?", afterProtocol);
|
|
95
|
+
let fragmentStart = url.indexOf("#", afterProtocol);
|
|
96
|
+
const firstDelimiter = Math.min(pathStart === -1 ? url.length : pathStart, queryStart === -1 ? url.length : queryStart, fragmentStart === -1 ? url.length : fragmentStart);
|
|
97
|
+
// Find the LAST @ before the delimiter (handles multiple @ in credentials)
|
|
98
|
+
let atIndex = -1;
|
|
99
|
+
for (let i = afterProtocol; i < firstDelimiter; i++) {
|
|
100
|
+
if (url[i] === "@") {
|
|
101
|
+
atIndex = i;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (atIndex !== -1) {
|
|
105
|
+
url = `${url.slice(0, afterProtocol)}[REDACTED]@${url.slice(atIndex + 1)}`;
|
|
106
|
+
}
|
|
107
|
+
// Recalculate queryStart since url might have changed
|
|
108
|
+
queryStart = url.indexOf("?");
|
|
109
|
+
if (queryStart === -1)
|
|
110
|
+
return url;
|
|
111
|
+
fragmentStart = url.indexOf("#", queryStart);
|
|
112
|
+
const queryEnd = fragmentStart !== -1 ? fragmentStart : url.length;
|
|
113
|
+
const queryString = url.slice(queryStart + 1, queryEnd);
|
|
114
|
+
if (queryString.length === 0)
|
|
115
|
+
return url;
|
|
116
|
+
// FAST PATH: Quick check if any sensitive keywords present
|
|
117
|
+
// Using indexOf is faster than regex for simple substring matching
|
|
118
|
+
const lower = queryString.toLowerCase();
|
|
119
|
+
const hasSensitive = lower.includes("token") ||
|
|
120
|
+
lower.includes("key") ||
|
|
121
|
+
lower.includes("password") ||
|
|
122
|
+
lower.includes("passwd") ||
|
|
123
|
+
lower.includes("secret") ||
|
|
124
|
+
lower.includes("session") ||
|
|
125
|
+
lower.includes("auth");
|
|
126
|
+
if (!hasSensitive) {
|
|
127
|
+
return url;
|
|
128
|
+
}
|
|
129
|
+
// SLOW PATH: Parse and redact
|
|
130
|
+
const redactedParams = [];
|
|
131
|
+
const params = queryString.split("&");
|
|
132
|
+
for (const param of params) {
|
|
133
|
+
const equalIndex = param.indexOf("=");
|
|
134
|
+
if (equalIndex === -1) {
|
|
135
|
+
redactedParams.push(param);
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
const key = param.slice(0, equalIndex);
|
|
139
|
+
let shouldRedact = SENSITIVE_QUERY_PARAMS.has(key.toLowerCase());
|
|
140
|
+
if (!shouldRedact && key.includes("%")) {
|
|
141
|
+
try {
|
|
142
|
+
const decodedKey = decodeURIComponent(key);
|
|
143
|
+
shouldRedact = SENSITIVE_QUERY_PARAMS.has(decodedKey.toLowerCase());
|
|
144
|
+
}
|
|
145
|
+
catch (_a) { }
|
|
146
|
+
}
|
|
147
|
+
redactedParams.push(shouldRedact ? `${key}=[REDACTED]` : param);
|
|
148
|
+
}
|
|
149
|
+
return url.slice(0, queryStart + 1) + redactedParams.join("&") + url.slice(queryEnd);
|
|
150
|
+
}
|
|
20
151
|
function getHeaders(args) {
|
|
21
152
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22
153
|
var _a;
|
|
23
|
-
const newHeaders =
|
|
154
|
+
const newHeaders = new Headers();
|
|
155
|
+
newHeaders.set("Accept", args.responseType === "json" ? "application/json" : args.responseType === "text" ? "text/plain" : "*/*");
|
|
24
156
|
if (args.body !== undefined && args.contentType != null) {
|
|
25
|
-
newHeaders
|
|
157
|
+
newHeaders.set("Content-Type", args.contentType);
|
|
26
158
|
}
|
|
27
159
|
if (args.headers == null) {
|
|
28
160
|
return newHeaders;
|
|
@@ -30,38 +162,70 @@ function getHeaders(args) {
|
|
|
30
162
|
for (const [key, value] of Object.entries(args.headers)) {
|
|
31
163
|
const result = yield EndpointSupplier.get(value, { endpointMetadata: (_a = args.endpointMetadata) !== null && _a !== void 0 ? _a : {} });
|
|
32
164
|
if (typeof result === "string") {
|
|
33
|
-
newHeaders
|
|
165
|
+
newHeaders.set(key, result);
|
|
34
166
|
continue;
|
|
35
167
|
}
|
|
36
168
|
if (result == null) {
|
|
37
169
|
continue;
|
|
38
170
|
}
|
|
39
|
-
newHeaders
|
|
171
|
+
newHeaders.set(key, `${result}`);
|
|
40
172
|
}
|
|
41
173
|
return newHeaders;
|
|
42
174
|
});
|
|
43
175
|
}
|
|
44
176
|
export function fetcherImpl(args) {
|
|
45
177
|
return __awaiter(this, void 0, void 0, function* () {
|
|
178
|
+
var _a, _b, _c;
|
|
46
179
|
const url = createRequestUrl(args.url, args.queryParameters);
|
|
47
180
|
const requestBody = yield getRequestBody({
|
|
48
181
|
body: args.body,
|
|
49
|
-
type: args.requestType
|
|
182
|
+
type: (_a = args.requestType) !== null && _a !== void 0 ? _a : "other",
|
|
50
183
|
});
|
|
51
|
-
const fetchFn = yield getFetchFn();
|
|
184
|
+
const fetchFn = (_b = args.fetchFn) !== null && _b !== void 0 ? _b : (yield getFetchFn());
|
|
185
|
+
const headers = yield getHeaders(args);
|
|
186
|
+
const logger = createLogger(args.logging);
|
|
187
|
+
if (logger.isDebug()) {
|
|
188
|
+
const metadata = {
|
|
189
|
+
method: args.method,
|
|
190
|
+
url: redactUrl(url),
|
|
191
|
+
headers: redactHeaders(headers),
|
|
192
|
+
queryParameters: redactQueryParameters(args.queryParameters),
|
|
193
|
+
hasBody: requestBody != null,
|
|
194
|
+
};
|
|
195
|
+
logger.debug("Making HTTP request", metadata);
|
|
196
|
+
}
|
|
52
197
|
try {
|
|
53
198
|
const response = yield requestWithRetries(() => __awaiter(this, void 0, void 0, function* () {
|
|
54
|
-
return makeRequest(fetchFn, url, args.method,
|
|
199
|
+
return makeRequest(fetchFn, url, args.method, headers, requestBody, args.timeoutMs, args.abortSignal, args.withCredentials, args.duplex);
|
|
55
200
|
}), args.maxRetries);
|
|
56
201
|
if (response.status >= 200 && response.status < 400) {
|
|
202
|
+
if (logger.isDebug()) {
|
|
203
|
+
const metadata = {
|
|
204
|
+
method: args.method,
|
|
205
|
+
url: redactUrl(url),
|
|
206
|
+
statusCode: response.status,
|
|
207
|
+
responseHeaders: redactHeaders(response.headers),
|
|
208
|
+
};
|
|
209
|
+
logger.debug("HTTP request succeeded", metadata);
|
|
210
|
+
}
|
|
211
|
+
const body = yield getResponseBody(response, args.responseType);
|
|
57
212
|
return {
|
|
58
213
|
ok: true,
|
|
59
|
-
body:
|
|
214
|
+
body: body,
|
|
60
215
|
headers: response.headers,
|
|
61
216
|
rawResponse: toRawResponse(response),
|
|
62
217
|
};
|
|
63
218
|
}
|
|
64
219
|
else {
|
|
220
|
+
if (logger.isError()) {
|
|
221
|
+
const metadata = {
|
|
222
|
+
method: args.method,
|
|
223
|
+
url: redactUrl(url),
|
|
224
|
+
statusCode: response.status,
|
|
225
|
+
responseHeaders: redactHeaders(Object.fromEntries(response.headers.entries())),
|
|
226
|
+
};
|
|
227
|
+
logger.error("HTTP request failed with error status", metadata);
|
|
228
|
+
}
|
|
65
229
|
return {
|
|
66
230
|
ok: false,
|
|
67
231
|
error: {
|
|
@@ -74,7 +238,14 @@ export function fetcherImpl(args) {
|
|
|
74
238
|
}
|
|
75
239
|
}
|
|
76
240
|
catch (error) {
|
|
77
|
-
if (args.abortSignal
|
|
241
|
+
if ((_c = args.abortSignal) === null || _c === void 0 ? void 0 : _c.aborted) {
|
|
242
|
+
if (logger.isError()) {
|
|
243
|
+
const metadata = {
|
|
244
|
+
method: args.method,
|
|
245
|
+
url: redactUrl(url),
|
|
246
|
+
};
|
|
247
|
+
logger.error("HTTP request was aborted", metadata);
|
|
248
|
+
}
|
|
78
249
|
return {
|
|
79
250
|
ok: false,
|
|
80
251
|
error: {
|
|
@@ -85,6 +256,14 @@ export function fetcherImpl(args) {
|
|
|
85
256
|
};
|
|
86
257
|
}
|
|
87
258
|
else if (error instanceof Error && error.name === "AbortError") {
|
|
259
|
+
if (logger.isError()) {
|
|
260
|
+
const metadata = {
|
|
261
|
+
method: args.method,
|
|
262
|
+
url: redactUrl(url),
|
|
263
|
+
timeoutMs: args.timeoutMs,
|
|
264
|
+
};
|
|
265
|
+
logger.error("HTTP request timed out", metadata);
|
|
266
|
+
}
|
|
88
267
|
return {
|
|
89
268
|
ok: false,
|
|
90
269
|
error: {
|
|
@@ -94,6 +273,14 @@ export function fetcherImpl(args) {
|
|
|
94
273
|
};
|
|
95
274
|
}
|
|
96
275
|
else if (error instanceof Error) {
|
|
276
|
+
if (logger.isError()) {
|
|
277
|
+
const metadata = {
|
|
278
|
+
method: args.method,
|
|
279
|
+
url: redactUrl(url),
|
|
280
|
+
errorMessage: error.message,
|
|
281
|
+
};
|
|
282
|
+
logger.error("HTTP request failed with error", metadata);
|
|
283
|
+
}
|
|
97
284
|
return {
|
|
98
285
|
ok: false,
|
|
99
286
|
error: {
|
|
@@ -103,6 +290,14 @@ export function fetcherImpl(args) {
|
|
|
103
290
|
rawResponse: unknownRawResponse,
|
|
104
291
|
};
|
|
105
292
|
}
|
|
293
|
+
if (logger.isError()) {
|
|
294
|
+
const metadata = {
|
|
295
|
+
method: args.method,
|
|
296
|
+
url: redactUrl(url),
|
|
297
|
+
error: toJson(error),
|
|
298
|
+
};
|
|
299
|
+
logger.error("HTTP request failed with unknown error", metadata);
|
|
300
|
+
}
|
|
106
301
|
return {
|
|
107
302
|
ok: false,
|
|
108
303
|
error: {
|
|
@@ -25,9 +25,10 @@ export function getErrorResponseBody(response) {
|
|
|
25
25
|
case "application/ld+json":
|
|
26
26
|
case "application/problem+json":
|
|
27
27
|
case "application/vnd.api+json":
|
|
28
|
-
case "text/json":
|
|
28
|
+
case "text/json": {
|
|
29
29
|
const text = yield response.text();
|
|
30
30
|
return text.length > 0 ? fromJson(text) : undefined;
|
|
31
|
+
}
|
|
31
32
|
default:
|
|
32
33
|
if (contentType.startsWith("application/vnd.") && contentType.endsWith("+json")) {
|
|
33
34
|
const text = yield response.text();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare namespace GetRequestBody {
|
|
2
2
|
interface Args {
|
|
3
3
|
body: unknown;
|
|
4
|
-
type: "json" | "file" | "bytes" | "other";
|
|
4
|
+
type: "json" | "file" | "bytes" | "form" | "other";
|
|
5
5
|
}
|
|
6
6
|
}
|
|
7
7
|
export declare function getRequestBody({ body, type }: GetRequestBody.Args): Promise<BodyInit | undefined>;
|
|
@@ -8,8 +8,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { toJson } from "../json.mjs";
|
|
11
|
+
import { toQueryString } from "../url/qs.mjs";
|
|
11
12
|
export function getRequestBody(_a) {
|
|
12
13
|
return __awaiter(this, arguments, void 0, function* ({ body, type }) {
|
|
14
|
+
if (type === "form") {
|
|
15
|
+
return toQueryString(body, { arrayFormat: "repeat", encode: true });
|
|
16
|
+
}
|
|
13
17
|
if (type.includes("json")) {
|
|
14
18
|
return toJson(body);
|
|
15
19
|
}
|
|
@@ -7,14 +7,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import { getBinaryResponse } from "./BinaryResponse.mjs";
|
|
11
|
-
import { isResponseWithBody } from "./ResponseWithBody.mjs";
|
|
12
10
|
import { fromJson } from "../json.mjs";
|
|
11
|
+
import { getBinaryResponse } from "./BinaryResponse.mjs";
|
|
13
12
|
export function getResponseBody(response, responseType) {
|
|
14
13
|
return __awaiter(this, void 0, void 0, function* () {
|
|
15
|
-
if (!isResponseWithBody(response)) {
|
|
16
|
-
return undefined;
|
|
17
|
-
}
|
|
18
14
|
switch (responseType) {
|
|
19
15
|
case "binary-response":
|
|
20
16
|
return getBinaryResponse(response);
|
|
@@ -23,8 +19,26 @@ export function getResponseBody(response, responseType) {
|
|
|
23
19
|
case "arrayBuffer":
|
|
24
20
|
return yield response.arrayBuffer();
|
|
25
21
|
case "sse":
|
|
22
|
+
if (response.body == null) {
|
|
23
|
+
return {
|
|
24
|
+
ok: false,
|
|
25
|
+
error: {
|
|
26
|
+
reason: "body-is-null",
|
|
27
|
+
statusCode: response.status,
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
|
26
31
|
return response.body;
|
|
27
32
|
case "streaming":
|
|
33
|
+
if (response.body == null) {
|
|
34
|
+
return {
|
|
35
|
+
ok: false,
|
|
36
|
+
error: {
|
|
37
|
+
reason: "body-is-null",
|
|
38
|
+
statusCode: response.status,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
28
42
|
return response.body;
|
|
29
43
|
case "text":
|
|
30
44
|
return yield response.text();
|
|
@@ -33,10 +47,10 @@ export function getResponseBody(response, responseType) {
|
|
|
33
47
|
const text = yield response.text();
|
|
34
48
|
if (text.length > 0) {
|
|
35
49
|
try {
|
|
36
|
-
|
|
50
|
+
const responseBody = fromJson(text);
|
|
37
51
|
return responseBody;
|
|
38
52
|
}
|
|
39
|
-
catch (
|
|
53
|
+
catch (_err) {
|
|
40
54
|
return {
|
|
41
55
|
ok: false,
|
|
42
56
|
error: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const makeRequest: (fetchFn: (url: string, init: RequestInit) => Promise<Response>, url: string, method: string, headers: Record<string, string>, requestBody: BodyInit | undefined, timeoutMs?: number, abortSignal?: AbortSignal, withCredentials?: boolean, duplex?: "half") => Promise<Response>;
|
|
1
|
+
export declare const makeRequest: (fetchFn: (url: string, init: RequestInit) => Promise<Response>, url: string, method: string, headers: Headers | Record<string, string>, requestBody: BodyInit | undefined, timeoutMs?: number, abortSignal?: AbortSignal, withCredentials?: boolean, duplex?: "half") => Promise<Response>;
|
|
@@ -10,18 +10,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
import { anySignal, getTimeoutSignal } from "./signals.mjs";
|
|
11
11
|
export const makeRequest = (fetchFn, url, method, headers, requestBody, timeoutMs, abortSignal, withCredentials, duplex) => __awaiter(void 0, void 0, void 0, function* () {
|
|
12
12
|
const signals = [];
|
|
13
|
-
|
|
14
|
-
let timeoutAbortId = undefined;
|
|
13
|
+
let timeoutAbortId;
|
|
15
14
|
if (timeoutMs != null) {
|
|
16
15
|
const { signal, abortId } = getTimeoutSignal(timeoutMs);
|
|
17
16
|
timeoutAbortId = abortId;
|
|
18
17
|
signals.push(signal);
|
|
19
18
|
}
|
|
20
|
-
// Add arbitrary signal
|
|
21
19
|
if (abortSignal != null) {
|
|
22
20
|
signals.push(abortSignal);
|
|
23
21
|
}
|
|
24
|
-
|
|
22
|
+
const newSignals = anySignal(signals);
|
|
25
23
|
const response = yield fetchFn(url, {
|
|
26
24
|
method: method,
|
|
27
25
|
headers,
|
|
@@ -12,46 +12,38 @@ const MAX_RETRY_DELAY = 60000; // in milliseconds
|
|
|
12
12
|
const DEFAULT_MAX_RETRIES = 2;
|
|
13
13
|
const JITTER_FACTOR = 0.2; // 20% random jitter
|
|
14
14
|
function addPositiveJitter(delay) {
|
|
15
|
-
// Generate a random value between 0 and +JITTER_FACTOR
|
|
16
15
|
const jitterMultiplier = 1 + Math.random() * JITTER_FACTOR;
|
|
17
16
|
return delay * jitterMultiplier;
|
|
18
17
|
}
|
|
19
18
|
function addSymmetricJitter(delay) {
|
|
20
|
-
// Generate a random value in a JITTER_FACTOR-sized percentage range around delay
|
|
21
19
|
const jitterMultiplier = 1 + (Math.random() - 0.5) * JITTER_FACTOR;
|
|
22
20
|
return delay * jitterMultiplier;
|
|
23
21
|
}
|
|
24
22
|
function getRetryDelayFromHeaders(response, retryAttempt) {
|
|
25
|
-
// Check for Retry-After header first (RFC 7231), with no jitter
|
|
26
23
|
const retryAfter = response.headers.get("Retry-After");
|
|
27
24
|
if (retryAfter) {
|
|
28
|
-
// Parse as number of seconds...
|
|
29
25
|
const retryAfterSeconds = parseInt(retryAfter, 10);
|
|
30
|
-
if (!isNaN(retryAfterSeconds) && retryAfterSeconds > 0) {
|
|
26
|
+
if (!Number.isNaN(retryAfterSeconds) && retryAfterSeconds > 0) {
|
|
31
27
|
return Math.min(retryAfterSeconds * 1000, MAX_RETRY_DELAY);
|
|
32
28
|
}
|
|
33
|
-
// ...or as an HTTP date; both are valid
|
|
34
29
|
const retryAfterDate = new Date(retryAfter);
|
|
35
|
-
if (!isNaN(retryAfterDate.getTime())) {
|
|
30
|
+
if (!Number.isNaN(retryAfterDate.getTime())) {
|
|
36
31
|
const delay = retryAfterDate.getTime() - Date.now();
|
|
37
32
|
if (delay > 0) {
|
|
38
33
|
return Math.min(Math.max(delay, 0), MAX_RETRY_DELAY);
|
|
39
34
|
}
|
|
40
35
|
}
|
|
41
36
|
}
|
|
42
|
-
// Then check for industry-standard X-RateLimit-Reset header, with positive jitter
|
|
43
37
|
const rateLimitReset = response.headers.get("X-RateLimit-Reset");
|
|
44
38
|
if (rateLimitReset) {
|
|
45
39
|
const resetTime = parseInt(rateLimitReset, 10);
|
|
46
|
-
if (!isNaN(resetTime)) {
|
|
47
|
-
// Assume Unix timestamp in epoch seconds
|
|
40
|
+
if (!Number.isNaN(resetTime)) {
|
|
48
41
|
const delay = resetTime * 1000 - Date.now();
|
|
49
42
|
if (delay > 0) {
|
|
50
43
|
return addPositiveJitter(Math.min(delay, MAX_RETRY_DELAY));
|
|
51
44
|
}
|
|
52
45
|
}
|
|
53
46
|
}
|
|
54
|
-
// Fall back to exponential backoff, with symmetric jitter
|
|
55
47
|
return addSymmetricJitter(Math.min(INITIAL_RETRY_DELAY * Math.pow(2, retryAttempt), MAX_RETRY_DELAY));
|
|
56
48
|
}
|
|
57
49
|
export function requestWithRetries(requestFn_1) {
|
|
@@ -59,7 +51,6 @@ export function requestWithRetries(requestFn_1) {
|
|
|
59
51
|
let response = yield requestFn();
|
|
60
52
|
for (let i = 0; i < maxRetries; ++i) {
|
|
61
53
|
if ([408, 429].includes(response.status) || response.status >= 500) {
|
|
62
|
-
// Get delay with appropriate jitter applied
|
|
63
54
|
const delay = getRetryDelayFromHeaders(response, i);
|
|
64
55
|
yield new Promise((resolve) => setTimeout(resolve, delay));
|
|
65
56
|
response = yield requestFn();
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
export declare function getTimeoutSignal(timeoutMs: number): {
|
|
2
2
|
signal: AbortSignal;
|
|
3
|
-
abortId:
|
|
3
|
+
abortId: ReturnType<typeof setTimeout>;
|
|
4
4
|
};
|
|
5
|
-
/**
|
|
6
|
-
* Returns an abort signal that is getting aborted when
|
|
7
|
-
* at least one of the specified abort signals is aborted.
|
|
8
|
-
*
|
|
9
|
-
* Requires at least node.js 18.
|
|
10
|
-
*/
|
|
11
5
|
export declare function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal;
|
|
@@ -4,26 +4,14 @@ export function getTimeoutSignal(timeoutMs) {
|
|
|
4
4
|
const abortId = setTimeout(() => controller.abort(TIMEOUT), timeoutMs);
|
|
5
5
|
return { signal: controller.signal, abortId };
|
|
6
6
|
}
|
|
7
|
-
/**
|
|
8
|
-
* Returns an abort signal that is getting aborted when
|
|
9
|
-
* at least one of the specified abort signals is aborted.
|
|
10
|
-
*
|
|
11
|
-
* Requires at least node.js 18.
|
|
12
|
-
*/
|
|
13
7
|
export function anySignal(...args) {
|
|
14
|
-
// Allowing signals to be passed either as array
|
|
15
|
-
// of signals or as multiple arguments.
|
|
16
8
|
const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args);
|
|
17
9
|
const controller = new AbortController();
|
|
18
10
|
for (const signal of signals) {
|
|
19
11
|
if (signal.aborted) {
|
|
20
|
-
// Exiting early if one of the signals
|
|
21
|
-
// is already aborted.
|
|
22
12
|
controller.abort(signal === null || signal === void 0 ? void 0 : signal.reason);
|
|
23
13
|
break;
|
|
24
14
|
}
|
|
25
|
-
// Listening for signals and removing the listeners
|
|
26
|
-
// when at least one symbol is aborted.
|
|
27
15
|
signal.addEventListener("abort", () => controller.abort(signal === null || signal === void 0 ? void 0 : signal.reason), {
|
|
28
16
|
signal: controller.signal,
|
|
29
17
|
});
|
|
@@ -3,3 +3,8 @@ export declare function toBinaryUploadRequest(file: Uploadable): Promise<{
|
|
|
3
3
|
body: Uploadable.FileLike;
|
|
4
4
|
headers?: Record<string, string>;
|
|
5
5
|
}>;
|
|
6
|
+
export declare function toMultipartDataPart(file: Uploadable): Promise<{
|
|
7
|
+
data: Uploadable.FileLike;
|
|
8
|
+
filename?: string;
|
|
9
|
+
contentType?: string;
|
|
10
|
+
}>;
|
|
@@ -26,13 +26,25 @@ export function toBinaryUploadRequest(file) {
|
|
|
26
26
|
return request;
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
|
-
function
|
|
29
|
+
export function toMultipartDataPart(file) {
|
|
30
30
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
const { data, filename, contentType } = yield getFileWithMetadata(file, {
|
|
32
|
+
noSniffFileSize: true,
|
|
33
|
+
});
|
|
34
|
+
return {
|
|
35
|
+
data,
|
|
36
|
+
filename,
|
|
37
|
+
contentType,
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function getFileWithMetadata(file_1) {
|
|
42
|
+
return __awaiter(this, arguments, void 0, function* (file, { noSniffFileSize } = {}) {
|
|
31
43
|
var _a, _b, _c, _d, _e;
|
|
32
44
|
if (isFileLike(file)) {
|
|
33
45
|
return getFileWithMetadata({
|
|
34
46
|
data: file,
|
|
35
|
-
});
|
|
47
|
+
}, { noSniffFileSize });
|
|
36
48
|
}
|
|
37
49
|
if ("path" in file) {
|
|
38
50
|
const fs = yield import("fs");
|
|
@@ -40,7 +52,7 @@ function getFileWithMetadata(file) {
|
|
|
40
52
|
throw new Error("File path uploads are not supported in this environment.");
|
|
41
53
|
}
|
|
42
54
|
const data = fs.createReadStream(file.path);
|
|
43
|
-
const contentLength = (_a = file.contentLength) !== null && _a !== void 0 ? _a : (yield tryGetFileSizeFromPath(file.path));
|
|
55
|
+
const contentLength = (_a = file.contentLength) !== null && _a !== void 0 ? _a : (noSniffFileSize === true ? undefined : yield tryGetFileSizeFromPath(file.path));
|
|
44
56
|
const filename = (_b = file.filename) !== null && _b !== void 0 ? _b : getNameFromPath(file.path);
|
|
45
57
|
return {
|
|
46
58
|
data,
|
|
@@ -51,7 +63,9 @@ function getFileWithMetadata(file) {
|
|
|
51
63
|
}
|
|
52
64
|
if ("data" in file) {
|
|
53
65
|
const data = file.data;
|
|
54
|
-
const contentLength = (_c = file.contentLength) !== null && _c !== void 0 ? _c : (yield tryGetContentLengthFromFileLike(data
|
|
66
|
+
const contentLength = (_c = file.contentLength) !== null && _c !== void 0 ? _c : (yield tryGetContentLengthFromFileLike(data, {
|
|
67
|
+
noSniffFileSize,
|
|
68
|
+
}));
|
|
55
69
|
const filename = (_d = file.filename) !== null && _d !== void 0 ? _d : tryGetNameFromFileLike(data);
|
|
56
70
|
return {
|
|
57
71
|
data,
|
|
@@ -83,7 +97,7 @@ function tryGetFileSizeFromPath(path) {
|
|
|
83
97
|
const fileStat = yield fs.promises.stat(path);
|
|
84
98
|
return fileStat.size;
|
|
85
99
|
}
|
|
86
|
-
catch (
|
|
100
|
+
catch (_fallbackError) {
|
|
87
101
|
return undefined;
|
|
88
102
|
}
|
|
89
103
|
});
|
|
@@ -97,8 +111,8 @@ function tryGetNameFromFileLike(data) {
|
|
|
97
111
|
}
|
|
98
112
|
return undefined;
|
|
99
113
|
}
|
|
100
|
-
function tryGetContentLengthFromFileLike(
|
|
101
|
-
return __awaiter(this,
|
|
114
|
+
function tryGetContentLengthFromFileLike(data_1) {
|
|
115
|
+
return __awaiter(this, arguments, void 0, function* (data, { noSniffFileSize } = {}) {
|
|
102
116
|
if (isBuffer(data)) {
|
|
103
117
|
return data.length;
|
|
104
118
|
}
|
|
@@ -114,6 +128,9 @@ function tryGetContentLengthFromFileLike(data) {
|
|
|
114
128
|
if (isFile(data)) {
|
|
115
129
|
return data.size;
|
|
116
130
|
}
|
|
131
|
+
if (noSniffFileSize === true) {
|
|
132
|
+
return undefined;
|
|
133
|
+
}
|
|
117
134
|
if (isPathedValue(data)) {
|
|
118
135
|
return yield tryGetFileSizeFromPath(data.path.toString());
|
|
119
136
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type Uploadable } from "../../core/file/index.mjs";
|
|
1
2
|
interface FormDataRequest<Body> {
|
|
2
3
|
body: Body;
|
|
3
4
|
headers: Record<string, string>;
|
|
@@ -8,9 +9,7 @@ export declare class FormDataWrapper {
|
|
|
8
9
|
private fd;
|
|
9
10
|
setup(): Promise<void>;
|
|
10
11
|
append(key: string, value: unknown): void;
|
|
11
|
-
|
|
12
|
-
private convertToBlob;
|
|
13
|
-
appendFile(key: string, value: unknown, fileName?: string): Promise<void>;
|
|
12
|
+
appendFile(key: string, value: Uploadable): Promise<void>;
|
|
14
13
|
getRequest(): FormDataRequest<FormData>;
|
|
15
14
|
}
|
|
16
15
|
export {};
|