@sinch/sdk-client 1.5.0 → 1.6.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/dist/api/api-client-options-helper.d.ts +3 -3
- package/dist/api/api-client-options-helper.js +41 -11
- package/dist/api/api-client-options-helper.js.map +1 -1
- package/dist/api/api-client-options.d.ts +7 -2
- package/dist/api/api-client.d.ts +3 -1
- package/dist/api/api-client.js +4 -0
- package/dist/api/api-client.js.map +1 -1
- package/dist/api/api-errors.js.map +1 -1
- package/dist/client/api-client-helpers.js.map +1 -1
- package/dist/client/api-client-pagination-helper.js +24 -0
- package/dist/client/api-client-pagination-helper.js.map +1 -1
- package/dist/client/api-fetch-client.d.ts +3 -1
- package/dist/client/api-fetch-client.js +58 -50
- package/dist/client/api-fetch-client.js.map +1 -1
- package/dist/client/lazy-api-client.js.map +1 -1
- package/dist/client/retry-policy.d.ts +33 -0
- package/dist/client/retry-policy.js +112 -0
- package/dist/client/retry-policy.js.map +1 -0
- package/dist/domain/domain-helper.d.ts +3 -2
- package/dist/domain/domain-helper.js +4 -3
- package/dist/domain/domain-helper.js.map +1 -1
- package/dist/domain/domain-interface.d.ts +88 -9
- package/dist/domain/domain-interface.js +35 -3
- package/dist/domain/domain-interface.js.map +1 -1
- package/dist/http/fetch/fetch-http-content-parser.d.ts +13 -0
- package/dist/http/fetch/fetch-http-content-parser.js +65 -0
- package/dist/http/fetch/fetch-http-content-parser.js.map +1 -0
- package/dist/http/fetch/fetch-http-headers.d.ts +4 -0
- package/dist/http/fetch/fetch-http-headers.js +37 -0
- package/dist/http/fetch/fetch-http-headers.js.map +1 -0
- package/dist/http/fetch/fetch-http-request-mapper.d.ts +8 -0
- package/dist/http/fetch/fetch-http-request-mapper.js +31 -0
- package/dist/http/fetch/fetch-http-request-mapper.js.map +1 -0
- package/dist/http/fetch/fetch-http-response.d.ts +3 -0
- package/dist/http/fetch/fetch-http-response.js +10 -0
- package/dist/http/fetch/fetch-http-response.js.map +1 -0
- package/dist/http/fetch/fetch-http-transport.d.ts +11 -0
- package/dist/http/fetch/fetch-http-transport.js +44 -0
- package/dist/http/fetch/fetch-http-transport.js.map +1 -0
- package/dist/http/fetch/index.d.ts +5 -0
- package/dist/http/fetch/index.js +15 -0
- package/dist/http/fetch/index.js.map +1 -0
- package/dist/http/http-content-parser.d.ts +13 -0
- package/dist/http/http-content-parser.js +3 -0
- package/dist/http/http-content-parser.js.map +1 -0
- package/dist/http/http-headers.d.ts +16 -0
- package/dist/http/http-headers.js +63 -0
- package/dist/http/http-headers.js.map +1 -0
- package/dist/http/http-method.d.ts +10 -0
- package/dist/http/http-method.js +26 -0
- package/dist/http/http-method.js.map +1 -0
- package/dist/http/http-request.d.ts +27 -0
- package/dist/http/http-request.js +19 -0
- package/dist/http/http-request.js.map +1 -0
- package/dist/http/http-response.d.ts +12 -0
- package/dist/http/http-response.js +16 -0
- package/dist/http/http-response.js.map +1 -0
- package/dist/http/http-transport.d.ts +15 -0
- package/dist/http/http-transport.js +3 -0
- package/dist/http/http-transport.js.map +1 -0
- package/dist/http/index.d.ts +6 -0
- package/dist/http/index.js +13 -0
- package/dist/http/index.js.map +1 -0
- package/dist/logger/logger.js +11 -3
- package/dist/logger/logger.js.map +1 -1
- package/dist/logger/sinch-logger.d.ts +1 -1
- package/dist/logger/sinch-logger.js +1 -1
- package/dist/logger/sinch-logger.js.map +1 -1
- package/dist/plugins/additional-headers/additional-headers.request.js.map +1 -1
- package/dist/plugins/api-token/api-token.request.js.map +1 -1
- package/dist/plugins/basicAuthentication/basic-authentication.request.js.map +1 -1
- package/dist/plugins/core/index.d.ts +1 -1
- package/dist/plugins/core/index.js +1 -0
- package/dist/plugins/core/index.js.map +1 -1
- package/dist/plugins/core/request-plugin.js.map +1 -1
- package/dist/plugins/exception/exception.response.js.map +1 -1
- package/dist/plugins/oauth2/oauth2-api.js.map +1 -1
- package/dist/plugins/oauth2/oauth2-token.request.d.ts +2 -6
- package/dist/plugins/oauth2/oauth2-token.request.js +24 -77
- package/dist/plugins/oauth2/oauth2-token.request.js.map +1 -1
- package/dist/plugins/signing/signing.request.js.map +1 -1
- package/dist/plugins/version/version.request.js.map +1 -1
- package/dist/plugins/x-timestamp/x-timestamp.request.js.map +1 -1
- package/dist/utils/authorization.helper.js.map +1 -1
- package/dist/utils/date.js.map +1 -1
- package/dist/utils/text-to-hex.js.map +1 -1
- package/package.json +6 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-fetch-client.js","sourceRoot":"","sources":["../../src/client/api-fetch-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api-fetch-client.js","sourceRoot":"","sources":["../../src/client/api-fetch-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy-api-client.js","sourceRoot":"","sources":["../../src/client/lazy-api-client.ts"],"names":[],"mappings":";;;AAGA,0FAA0F;AAC1F
|
|
1
|
+
{"version":3,"file":"lazy-api-client.js","sourceRoot":"","sources":["../../src/client/lazy-api-client.ts"],"names":[],"mappings":";;;AAGA,0FAA0F;AAC1F;IAIE,YAAY,YAA2C;QACrD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEM,cAAc;QACnB,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { SupportedRetryPolicy, WithRetryPolicy } from '../domain';
|
|
2
|
+
/** Base delay for full-jitter exponential backoff (1 second). */
|
|
3
|
+
export declare const RATE_LIMIT_RETRY_BASE_MS = 1000;
|
|
4
|
+
/** @internal */
|
|
5
|
+
export interface ResolvedRetryConfig {
|
|
6
|
+
retryPolicy: SupportedRetryPolicy;
|
|
7
|
+
maxRetryCount: number;
|
|
8
|
+
exponentialBackoff: number;
|
|
9
|
+
}
|
|
10
|
+
/** @internal */
|
|
11
|
+
export declare const resolveRetryConfig: (partial?: WithRetryPolicy) => ResolvedRetryConfig;
|
|
12
|
+
/**
|
|
13
|
+
* Parse an RFC 7231 `Retry-After` value (delta-seconds or HTTP-date) to milliseconds.
|
|
14
|
+
* Negative delta-seconds are ignored. Returns undefined when the value is absent or invalid.
|
|
15
|
+
*/
|
|
16
|
+
/** @internal */
|
|
17
|
+
export declare const parseRetryAfterMs: (value: string | null | undefined) => number | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Whether the SDK should retry this response for the given attempt index (0 = first retry).
|
|
20
|
+
* `retryAfterMs` is the already-parsed `Retry-After` delay (undefined if absent/invalid).
|
|
21
|
+
*/
|
|
22
|
+
/** @internal */
|
|
23
|
+
export declare const shouldRetryRateLimit: (status: number, attempt: number, config: ResolvedRetryConfig, retryAfterMs?: number) => boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Backoff delay for a rate-limit retry, respecting the configured policy.
|
|
26
|
+
* - DEFAULT: Retry-After (+ 0–250ms jitter) when parseable, else full-jitter exponential
|
|
27
|
+
* - RETRY_AFTER: Retry-After (+ jitter) only (caller must have validated the header)
|
|
28
|
+
* - BACKOFF: full-jitter exponential only
|
|
29
|
+
*/
|
|
30
|
+
/** @internal */
|
|
31
|
+
export declare const computeRateLimitBackoffMs: (attempt: number, config: ResolvedRetryConfig, retryAfterMs?: number) => number;
|
|
32
|
+
/** @internal */
|
|
33
|
+
export declare const sleep: (ms: number) => Promise<void>;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sleep = exports.computeRateLimitBackoffMs = exports.shouldRetryRateLimit = exports.parseRetryAfterMs = exports.resolveRetryConfig = exports.RATE_LIMIT_RETRY_BASE_MS = void 0;
|
|
4
|
+
const domain_1 = require("../domain");
|
|
5
|
+
/** Base delay for full-jitter exponential backoff (1 second). */
|
|
6
|
+
exports.RATE_LIMIT_RETRY_BASE_MS = 1_000;
|
|
7
|
+
const DEFAULT_MAX_RETRY_COUNT = 3;
|
|
8
|
+
const DEFAULT_EXPONENTIAL_BACKOFF = 4;
|
|
9
|
+
const isSupportedRetryPolicy = (value) => value === domain_1.SupportedRetryPolicy.DEFAULT
|
|
10
|
+
|| value === domain_1.SupportedRetryPolicy.RETRY_AFTER
|
|
11
|
+
|| value === domain_1.SupportedRetryPolicy.BACKOFF
|
|
12
|
+
|| value === domain_1.SupportedRetryPolicy.NONE;
|
|
13
|
+
/** @internal */
|
|
14
|
+
const resolveRetryConfig = (partial) => {
|
|
15
|
+
const retryPolicy = partial?.retryPolicy ?? domain_1.SupportedRetryPolicy.DEFAULT;
|
|
16
|
+
if (!isSupportedRetryPolicy(retryPolicy)) {
|
|
17
|
+
throw new Error('Invalid configuration: "retryPolicy" must be DEFAULT, RETRY_AFTER, BACKOFF, or NONE');
|
|
18
|
+
}
|
|
19
|
+
const maxRetryCount = partial?.maxRetryCount ?? DEFAULT_MAX_RETRY_COUNT;
|
|
20
|
+
if (!Number.isInteger(maxRetryCount) || maxRetryCount < 0) {
|
|
21
|
+
throw new Error('Invalid configuration: "maxRetryCount" must be a non-negative integer');
|
|
22
|
+
}
|
|
23
|
+
const exponentialBackoff = partial?.exponentialBackoff ?? DEFAULT_EXPONENTIAL_BACKOFF;
|
|
24
|
+
if (!Number.isFinite(exponentialBackoff) || exponentialBackoff <= 0) {
|
|
25
|
+
throw new Error('Invalid configuration: "exponentialBackoff" must be a positive number');
|
|
26
|
+
}
|
|
27
|
+
return { retryPolicy, maxRetryCount, exponentialBackoff };
|
|
28
|
+
};
|
|
29
|
+
exports.resolveRetryConfig = resolveRetryConfig;
|
|
30
|
+
/**
|
|
31
|
+
* ANSI C asctime() form from RFC 7231 §7.1.1.1 (`Sun Nov 6 08:49:37 1994`).
|
|
32
|
+
* It has no timezone; the spec treats it as GMT. `Date.parse` otherwise uses local time.
|
|
33
|
+
*/
|
|
34
|
+
const ASCTIME_HTTP_DATE = /^[A-Za-z]{3} [A-Za-z]{3} [\d ]\d \d{2}:\d{2}:\d{2} \d{4}$/;
|
|
35
|
+
const toParseableHttpDate = (value) => ASCTIME_HTTP_DATE.test(value) ? `${value} GMT` : value;
|
|
36
|
+
/**
|
|
37
|
+
* Parse an RFC 7231 `Retry-After` value (delta-seconds or HTTP-date) to milliseconds.
|
|
38
|
+
* Negative delta-seconds are ignored. Returns undefined when the value is absent or invalid.
|
|
39
|
+
*/
|
|
40
|
+
/** @internal */
|
|
41
|
+
const parseRetryAfterMs = (value) => {
|
|
42
|
+
if (value === null || value === undefined) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
const trimmed = value.trim();
|
|
46
|
+
if (trimmed === '') {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
const asNumber = Number(trimmed);
|
|
50
|
+
if (Number.isFinite(asNumber)) {
|
|
51
|
+
// Negative delta-seconds are ignored per the retry policy spec.
|
|
52
|
+
if (asNumber < 0) {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
return Math.floor(asNumber * 1000);
|
|
56
|
+
}
|
|
57
|
+
const asDate = Date.parse(toParseableHttpDate(trimmed));
|
|
58
|
+
if (!Number.isNaN(asDate)) {
|
|
59
|
+
return Math.max(0, asDate - Date.now());
|
|
60
|
+
}
|
|
61
|
+
return undefined;
|
|
62
|
+
};
|
|
63
|
+
exports.parseRetryAfterMs = parseRetryAfterMs;
|
|
64
|
+
/**
|
|
65
|
+
* Whether the SDK should retry this response for the given attempt index (0 = first retry).
|
|
66
|
+
* `retryAfterMs` is the already-parsed `Retry-After` delay (undefined if absent/invalid).
|
|
67
|
+
*/
|
|
68
|
+
/** @internal */
|
|
69
|
+
const shouldRetryRateLimit = (status, attempt, config, retryAfterMs) => {
|
|
70
|
+
if (status !== 429) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
if (config.retryPolicy === domain_1.SupportedRetryPolicy.NONE) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
if (attempt >= config.maxRetryCount) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
if (config.retryPolicy === domain_1.SupportedRetryPolicy.RETRY_AFTER) {
|
|
80
|
+
return retryAfterMs !== undefined;
|
|
81
|
+
}
|
|
82
|
+
return config.retryPolicy === domain_1.SupportedRetryPolicy.DEFAULT
|
|
83
|
+
|| config.retryPolicy === domain_1.SupportedRetryPolicy.BACKOFF;
|
|
84
|
+
};
|
|
85
|
+
exports.shouldRetryRateLimit = shouldRetryRateLimit;
|
|
86
|
+
/**
|
|
87
|
+
* Backoff delay for a rate-limit retry, respecting the configured policy.
|
|
88
|
+
* - DEFAULT: Retry-After (+ 0–250ms jitter) when parseable, else full-jitter exponential
|
|
89
|
+
* - RETRY_AFTER: Retry-After (+ jitter) only (caller must have validated the header)
|
|
90
|
+
* - BACKOFF: full-jitter exponential only
|
|
91
|
+
*/
|
|
92
|
+
/** @internal */
|
|
93
|
+
const computeRateLimitBackoffMs = (attempt, config, retryAfterMs) => {
|
|
94
|
+
const useRetryAfter = config.retryPolicy === domain_1.SupportedRetryPolicy.DEFAULT
|
|
95
|
+
|| config.retryPolicy === domain_1.SupportedRetryPolicy.RETRY_AFTER;
|
|
96
|
+
const useBackoff = config.retryPolicy === domain_1.SupportedRetryPolicy.DEFAULT
|
|
97
|
+
|| config.retryPolicy === domain_1.SupportedRetryPolicy.BACKOFF;
|
|
98
|
+
if (useRetryAfter && retryAfterMs !== undefined) {
|
|
99
|
+
// Small jitter so concurrent SinchClient instances don't all wake together.
|
|
100
|
+
return retryAfterMs + Math.floor(Math.random() * 250);
|
|
101
|
+
}
|
|
102
|
+
if (useBackoff) {
|
|
103
|
+
const ceilingMs = exports.RATE_LIMIT_RETRY_BASE_MS * Math.pow(config.exponentialBackoff, attempt);
|
|
104
|
+
return Math.floor(Math.random() * ceilingMs);
|
|
105
|
+
}
|
|
106
|
+
return 0;
|
|
107
|
+
};
|
|
108
|
+
exports.computeRateLimitBackoffMs = computeRateLimitBackoffMs;
|
|
109
|
+
/** @internal */
|
|
110
|
+
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
111
|
+
exports.sleep = sleep;
|
|
112
|
+
//# sourceMappingURL=retry-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry-policy.js","sourceRoot":"","sources":["../../src/client/retry-policy.ts"],"names":[],"mappings":";;;AAAA,sCAAkE;AAElE,iEAAiE;AACpD,QAAA,wBAAwB,GAAG,KAAK,CAAC;AAE9C,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAStC,MAAM,sBAAsB,GAAG,CAAC,KAAc,EAAiC,EAAE,CAC/E,KAAK,KAAK,6BAAoB,CAAC,OAAO;OACnC,KAAK,KAAK,6BAAoB,CAAC,WAAW;OAC1C,KAAK,KAAK,6BAAoB,CAAC,OAAO;OACtC,KAAK,KAAK,6BAAoB,CAAC,IAAI,CAAC;AAEzC,gBAAgB;AACT,MAAM,kBAAkB,GAAG,CAAC,OAAyB,EAAuB,EAAE;IACnF,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,6BAAoB,CAAC,OAAO,CAAC;IACzE,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,uBAAuB,CAAC;IACxE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,kBAAkB,GAAG,OAAO,EAAE,kBAAkB,IAAI,2BAA2B,CAAC;IACtF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,IAAI,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC;AAC5D,CAAC,CAAC;AAnBW,QAAA,kBAAkB,GAAlB,kBAAkB,CAmB7B;AAEF;;;GAGG;AACH,MAAM,iBAAiB,GAAG,2DAA2D,CAAC;AAEtF,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAU,EAAE,CACpD,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AAEzD;;;GAGG;AACH,gBAAgB;AACT,MAAM,iBAAiB,GAAG,CAAC,KAAgC,EAAsB,EAAE;IACxF,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACjC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,gEAAgE;QAChE,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AArBW,QAAA,iBAAiB,GAAjB,iBAAiB,CAqB5B;AAEF;;;GAGG;AACH,gBAAgB;AACT,MAAM,oBAAoB,GAAG,CAClC,MAAc,EACd,OAAe,EACf,MAA2B,EAC3B,YAAqB,EACZ,EAAE;IACX,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,KAAK,6BAAoB,CAAC,IAAI,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,KAAK,6BAAoB,CAAC,WAAW,EAAE,CAAC;QAC5D,OAAO,YAAY,KAAK,SAAS,CAAC;IACpC,CAAC;IACD,OAAO,MAAM,CAAC,WAAW,KAAK,6BAAoB,CAAC,OAAO;WACrD,MAAM,CAAC,WAAW,KAAK,6BAAoB,CAAC,OAAO,CAAC;AAC3D,CAAC,CAAC;AApBW,QAAA,oBAAoB,GAApB,oBAAoB,CAoB/B;AAEF;;;;;GAKG;AACH,gBAAgB;AACT,MAAM,yBAAyB,GAAG,CACvC,OAAe,EACf,MAA2B,EAC3B,YAAqB,EACb,EAAE;IACV,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,KAAK,6BAAoB,CAAC,OAAO;WACpE,MAAM,CAAC,WAAW,KAAK,6BAAoB,CAAC,WAAW,CAAC;IAC7D,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,KAAK,6BAAoB,CAAC,OAAO;WACjE,MAAM,CAAC,WAAW,KAAK,6BAAoB,CAAC,OAAO,CAAC;IAEzD,IAAI,aAAa,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAChD,4EAA4E;QAC5E,OAAO,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,QAAA,wBAAwB,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AArBW,QAAA,yBAAyB,GAAzB,yBAAyB,CAqBpC;AAEF,gBAAgB;AACT,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CACjD,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AADvC,QAAA,KAAK,GAAL,KAAK,CACkC"}
|
|
@@ -6,11 +6,11 @@ export declare const AUTH_HOSTNAME = "https://auth.sinch.com";
|
|
|
6
6
|
export declare const CONVERSATION_HOSTNAME = "https://{region}conversation.api.sinch.com";
|
|
7
7
|
/** @internal */
|
|
8
8
|
export declare const CONVERSATION_TEMPLATES_HOSTNAME = "https://{region}template.api.sinch.com";
|
|
9
|
-
/** @internal */
|
|
9
|
+
/** @internal @deprecated Elastic SIP Trunking support will be removed in version 2 of the SDK. */
|
|
10
10
|
export declare const ELASTIC_SIP_TRUNKING_HOSTNAME = "https://elastic-trunking.api.sinch.com";
|
|
11
11
|
/** @internal */
|
|
12
12
|
export declare const FAX_HOSTNAME = "https://fax.api.sinch.com";
|
|
13
|
-
/** @internal */
|
|
13
|
+
/** @internal @deprecated*/
|
|
14
14
|
export declare const MAILGUN_HOSTNAME = "https://api.{region}mailgun.net";
|
|
15
15
|
/** @internal */
|
|
16
16
|
export declare const NUMBERS_HOSTNAME = "https://numbers.api.sinch.com";
|
|
@@ -24,5 +24,6 @@ export declare const VOICE_HOSTNAME = "https://calling{region}.api.sinch.com";
|
|
|
24
24
|
export declare const VOICE_APPLICATION_MANAGEMENT_HOSTNAME = "https://callingapi.sinch.com";
|
|
25
25
|
/** @internal */
|
|
26
26
|
export declare const NUMBER_LOOKUP_HOSTNAME = "https://lookup.api.sinch.com";
|
|
27
|
+
export declare const PROVISIONING_HOSTNAME = "https://provisioning.api.sinch.com";
|
|
27
28
|
/** @internal */
|
|
28
29
|
export declare const formatRegionalizedHostname: (hostnamePattern: string, region: string) => string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.formatRegionalizedHostname = exports.NUMBER_LOOKUP_HOSTNAME = exports.VOICE_APPLICATION_MANAGEMENT_HOSTNAME = exports.VOICE_HOSTNAME = exports.VERIFICATION_HOSTNAME = exports.SMS_HOSTNAME = exports.NUMBERS_HOSTNAME = exports.MAILGUN_HOSTNAME = exports.FAX_HOSTNAME = exports.ELASTIC_SIP_TRUNKING_HOSTNAME = exports.CONVERSATION_TEMPLATES_HOSTNAME = exports.CONVERSATION_HOSTNAME = exports.AUTH_HOSTNAME = exports.REGION_PATTERN = void 0;
|
|
3
|
+
exports.formatRegionalizedHostname = exports.PROVISIONING_HOSTNAME = exports.NUMBER_LOOKUP_HOSTNAME = exports.VOICE_APPLICATION_MANAGEMENT_HOSTNAME = exports.VOICE_HOSTNAME = exports.VERIFICATION_HOSTNAME = exports.SMS_HOSTNAME = exports.NUMBERS_HOSTNAME = exports.MAILGUN_HOSTNAME = exports.FAX_HOSTNAME = exports.ELASTIC_SIP_TRUNKING_HOSTNAME = exports.CONVERSATION_TEMPLATES_HOSTNAME = exports.CONVERSATION_HOSTNAME = exports.AUTH_HOSTNAME = exports.REGION_PATTERN = void 0;
|
|
4
4
|
/** @internal */
|
|
5
5
|
exports.REGION_PATTERN = '{region}';
|
|
6
6
|
/** @internal */
|
|
@@ -9,11 +9,11 @@ exports.AUTH_HOSTNAME = 'https://auth.sinch.com';
|
|
|
9
9
|
exports.CONVERSATION_HOSTNAME = `https://${exports.REGION_PATTERN}conversation.api.sinch.com`;
|
|
10
10
|
/** @internal */
|
|
11
11
|
exports.CONVERSATION_TEMPLATES_HOSTNAME = `https://${exports.REGION_PATTERN}template.api.sinch.com`;
|
|
12
|
-
/** @internal */
|
|
12
|
+
/** @internal @deprecated Elastic SIP Trunking support will be removed in version 2 of the SDK. */
|
|
13
13
|
exports.ELASTIC_SIP_TRUNKING_HOSTNAME = 'https://elastic-trunking.api.sinch.com';
|
|
14
14
|
/** @internal */
|
|
15
15
|
exports.FAX_HOSTNAME = 'https://fax.api.sinch.com';
|
|
16
|
-
/** @internal */
|
|
16
|
+
/** @internal @deprecated*/
|
|
17
17
|
exports.MAILGUN_HOSTNAME = `https://api.${exports.REGION_PATTERN}mailgun.net`;
|
|
18
18
|
/** @internal */
|
|
19
19
|
exports.NUMBERS_HOSTNAME = 'https://numbers.api.sinch.com';
|
|
@@ -27,6 +27,7 @@ exports.VOICE_HOSTNAME = `https://calling${exports.REGION_PATTERN}.api.sinch.com
|
|
|
27
27
|
exports.VOICE_APPLICATION_MANAGEMENT_HOSTNAME = 'https://callingapi.sinch.com';
|
|
28
28
|
/** @internal */
|
|
29
29
|
exports.NUMBER_LOOKUP_HOSTNAME = 'https://lookup.api.sinch.com';
|
|
30
|
+
exports.PROVISIONING_HOSTNAME = 'https://provisioning.api.sinch.com';
|
|
30
31
|
/** @internal */
|
|
31
32
|
const formatRegionalizedHostname = (hostnamePattern, region) => {
|
|
32
33
|
return hostnamePattern.replace(exports.REGION_PATTERN, region);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-helper.js","sourceRoot":"","sources":["../../src/domain/domain-helper.ts"],"names":[],"mappings":";;;AAAA,gBAAgB;AACH,QAAA,cAAc,GAAG,UAAU,CAAC;AAEzC,gBAAgB;AACH,QAAA,aAAa,GAAG,wBAAwB,CAAC;AACtD,gBAAgB;AACH,QAAA,qBAAqB,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"domain-helper.js","sourceRoot":"","sources":["../../src/domain/domain-helper.ts"],"names":[],"mappings":";;;AAAA,gBAAgB;AACH,QAAA,cAAc,GAAG,UAAU,CAAC;AAEzC,gBAAgB;AACH,QAAA,aAAa,GAAG,wBAAwB,CAAC;AACtD,gBAAgB;AACH,QAAA,qBAAqB,GAAG,WAAW,QAAA,cAAc,4BAA4B,CAAC;AAC3F,gBAAgB;AACH,QAAA,+BAA+B,GAAG,WAAW,QAAA,cAAc,wBAAwB,CAAC;AACjG,kGAAkG;AACrF,QAAA,6BAA6B,GAAG,wCAAwC,CAAC;AACtF,gBAAgB;AACH,QAAA,YAAY,GAAG,2BAA2B,CAAC;AACxD,2BAA2B;AACd,QAAA,gBAAgB,GAAG,eAAe,QAAA,cAAc,aAAa,CAAC;AAC3E,gBAAgB;AACH,QAAA,gBAAgB,GAAG,+BAA+B,CAAC;AAChE,gBAAgB;AACH,QAAA,YAAY,GAAG,WAAW,QAAA,cAAc,mBAAmB,CAAC;AACzE,gBAAgB;AACH,QAAA,qBAAqB,GAAG,oCAAoC,CAAC;AAC1E,gBAAgB;AACH,QAAA,cAAc,GAAG,kBAAkB,QAAA,cAAc,gBAAgB,CAAC;AAC/E,gBAAgB;AACH,QAAA,qCAAqC,GAAG,8BAA8B,CAAC;AACpF,gBAAgB;AACH,QAAA,sBAAsB,GAAG,8BAA8B,CAAC;AACxD,QAAA,qBAAqB,GAAG,oCAAoC,CAAC;AAE1E,gBAAgB;AACT,MAAM,0BAA0B,GAAG,CAAC,eAAuB,EAAE,MAAc,EAAE,EAAE;IACpF,OAAO,eAAe,CAAC,OAAO,CAAC,QAAA,cAAc,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC,CAAC;AAFW,QAAA,0BAA0B,GAA1B,0BAA0B,CAErC"}
|
|
@@ -7,8 +7,12 @@ import { Logger } from '../logger';
|
|
|
7
7
|
* - OAuth2: Conversation, Fax, Numbers and SMS (US and EU regions only)
|
|
8
8
|
* - API Token: SMS on all regions
|
|
9
9
|
* - Application Signed: Verification and Voice
|
|
10
|
+
*
|
|
11
|
+
* Optional cross-cutting settings include `logger` ({@link WithLogger}),
|
|
12
|
+
* retry tuning via `retryPolicy`, `maxRetryCount`, and `exponentialBackoff`
|
|
13
|
+
* ({@link WithRetryPolicy}), and transport settings ({@link TransportSettings}).
|
|
10
14
|
*/
|
|
11
|
-
export type SinchClientParameters = Partial<UnifiedCredentials & ServicePlanIdCredentials & ApplicationCredentials & ApiHostname & ApiPlugins & WithLogger>;
|
|
15
|
+
export type SinchClientParameters = Partial<UnifiedCredentials & ServicePlanIdCredentials & ApplicationCredentials & ApiHostname & ApiPlugins & WithLogger & WithRetryPolicy & TransportSettings>;
|
|
12
16
|
export interface UnifiedCredentials {
|
|
13
17
|
/** The project ID associated with the API Client. You can find this on your [Dashboard](https://dashboard.sinch.com/account/access-keys). */
|
|
14
18
|
projectId: string;
|
|
@@ -25,7 +29,7 @@ export interface UnifiedCredentials {
|
|
|
25
29
|
/** The region for the Conversation API. Default region is US */
|
|
26
30
|
conversationRegion?: ConversationRegion;
|
|
27
31
|
}
|
|
28
|
-
/** @internal */
|
|
32
|
+
/** @internal @deprecated */
|
|
29
33
|
export interface MailgunCredentials {
|
|
30
34
|
/** Your API Key created from the [Mailgun Dashboard](https://app.mailgun.com/settings/api_security) */
|
|
31
35
|
mailgunApiKey: string;
|
|
@@ -57,11 +61,11 @@ export interface ApiHostname {
|
|
|
57
61
|
conversationHostname?: string;
|
|
58
62
|
/** Override the hostname for the Conversation Templates API - Note the regions become ineffective */
|
|
59
63
|
conversationTemplatesHostname?: string;
|
|
60
|
-
/** Override the hostname for the Elastic SIP Trunking API */
|
|
64
|
+
/** @deprecated Elastic SIP Trunking support will be removed in version 2 of the SDK. Override the hostname for the Elastic SIP Trunking API */
|
|
61
65
|
elasticSipTrunkingHostname?: string;
|
|
62
66
|
/** Override the hostname for the Fax API */
|
|
63
67
|
faxHostname?: string;
|
|
64
|
-
/**
|
|
68
|
+
/** @deprecated Mailgun was never released as a Node SDK product. */
|
|
65
69
|
mailgunHostname?: string;
|
|
66
70
|
/** Override the hostname for the Numbers API */
|
|
67
71
|
numbersHostname?: string;
|
|
@@ -73,8 +77,12 @@ export interface ApiHostname {
|
|
|
73
77
|
voiceHostname?: string;
|
|
74
78
|
/** Override the hostname for the Voice Application Management API */
|
|
75
79
|
voiceApplicationManagementHostname?: string;
|
|
80
|
+
/** Override the hostname for the Voice API v2 */
|
|
81
|
+
voiceV2Hostname?: string;
|
|
76
82
|
/** Override the hostname for the Number Lookup API */
|
|
77
83
|
numberLookupHostname?: string;
|
|
84
|
+
/** Override the hostname for the Provisioning API */
|
|
85
|
+
provisioningHostname?: string;
|
|
78
86
|
}
|
|
79
87
|
export interface ApiPlugins {
|
|
80
88
|
/** Add more plugins to action on the request before it is sent */
|
|
@@ -147,14 +155,14 @@ export declare const ConversationRegion: {
|
|
|
147
155
|
EUROPE: SupportedConversationRegion.EUROPE;
|
|
148
156
|
BRAZIL: SupportedConversationRegion.BRAZIL;
|
|
149
157
|
};
|
|
150
|
-
/** @internal */
|
|
158
|
+
/** @internal @deprecated Mailgun was never released as a Node SDK product. */
|
|
151
159
|
export declare enum SupportedMailgunRegion {
|
|
152
160
|
DEFAULT = "",
|
|
153
161
|
EUROPE = "eu"
|
|
154
162
|
}
|
|
155
|
-
/** @internal */
|
|
163
|
+
/** @internal @deprecated Mailgun was never released as a Node SDK product. */
|
|
156
164
|
export type MailgunRegion = SupportedMailgunRegion | string;
|
|
157
|
-
/** @internal */
|
|
165
|
+
/** @internal @deprecated Mailgun was never released as a Node SDK product. */
|
|
158
166
|
export declare const MailgunRegion: {
|
|
159
167
|
DEFAULT: SupportedMailgunRegion.DEFAULT;
|
|
160
168
|
EUROPE: SupportedMailgunRegion.EUROPE;
|
|
@@ -167,7 +175,78 @@ export interface WithLogger {
|
|
|
167
175
|
*/
|
|
168
176
|
logger?: Logger | null;
|
|
169
177
|
}
|
|
170
|
-
/**
|
|
171
|
-
|
|
178
|
+
/**
|
|
179
|
+
* Policy used when the SDK retries a failed HTTP call.
|
|
180
|
+
* - `DEFAULT`: honor `Retry-After` when present, otherwise exponential backoff
|
|
181
|
+
* - `RETRY_AFTER`: only retry when a usable `Retry-After` header is present
|
|
182
|
+
* - `BACKOFF`: ignore `Retry-After`; use full-jitter exponential backoff only
|
|
183
|
+
* - `NONE`: disable automatic retries
|
|
184
|
+
*/
|
|
185
|
+
export declare enum SupportedRetryPolicy {
|
|
186
|
+
DEFAULT = "DEFAULT",
|
|
187
|
+
RETRY_AFTER = "RETRY_AFTER",
|
|
188
|
+
BACKOFF = "BACKOFF",
|
|
189
|
+
NONE = "NONE"
|
|
190
|
+
}
|
|
191
|
+
export type RetryPolicy = SupportedRetryPolicy;
|
|
192
|
+
export declare const RetryPolicy: {
|
|
193
|
+
DEFAULT: SupportedRetryPolicy.DEFAULT;
|
|
194
|
+
RETRY_AFTER: SupportedRetryPolicy.RETRY_AFTER;
|
|
195
|
+
BACKOFF: SupportedRetryPolicy.BACKOFF;
|
|
196
|
+
NONE: SupportedRetryPolicy.NONE;
|
|
197
|
+
};
|
|
198
|
+
/**
|
|
199
|
+
* Tunable retry settings applied to all SDK HTTP calls (OAuth and product APIs).
|
|
200
|
+
* Defaults: `retryPolicy=DEFAULT`, `maxRetryCount=3`, `exponentialBackoff=4`.
|
|
201
|
+
*/
|
|
202
|
+
export interface WithRetryPolicy {
|
|
203
|
+
/**
|
|
204
|
+
* How the SDK should retry eligible failed HTTP responses.
|
|
205
|
+
* Unknown values are rejected.
|
|
206
|
+
* @default RetryPolicy.DEFAULT
|
|
207
|
+
*/
|
|
208
|
+
retryPolicy?: RetryPolicy;
|
|
209
|
+
/**
|
|
210
|
+
* Maximum number of retries after the first attempt before the error is surfaced to the caller.
|
|
211
|
+
* Must be a non-negative integer.
|
|
212
|
+
* @default 3
|
|
213
|
+
*/
|
|
214
|
+
maxRetryCount?: number;
|
|
215
|
+
/**
|
|
216
|
+
* Growth factor for the full-jitter exponential backoff ceiling
|
|
217
|
+
* (`1000ms * exponentialBackoff^attempt`).
|
|
218
|
+
* Must be a positive number.
|
|
219
|
+
* @default 4
|
|
220
|
+
*/
|
|
221
|
+
exponentialBackoff?: number;
|
|
222
|
+
}
|
|
223
|
+
/** Default HTTP I/O timeout in seconds when `timeoutSeconds` is omitted. */
|
|
224
|
+
export declare const DEFAULT_TIMEOUT_SECONDS = 60;
|
|
225
|
+
/**
|
|
226
|
+
* Resolve `timeoutSeconds`, defaulting to {@link DEFAULT_TIMEOUT_SECONDS}.
|
|
227
|
+
* `0` disables the timeout.
|
|
228
|
+
* @internal
|
|
229
|
+
*/
|
|
230
|
+
export declare const resolveTimeoutSeconds: (timeoutSeconds?: number) => number;
|
|
231
|
+
/**
|
|
232
|
+
* Transport-level settings shared by SinchClient and (later) request-level options.
|
|
233
|
+
*/
|
|
234
|
+
export interface TransportSettings {
|
|
235
|
+
/**
|
|
236
|
+
* When true (default), OAuth-capable APIs authenticate against Sinch auth.
|
|
237
|
+
* Set false to skip Sinch OAuth (e.g. custom Authorization via requestPlugins).
|
|
238
|
+
* When false, OAuth-capable APIs require only `projectId`.
|
|
239
|
+
*/
|
|
240
|
+
useSinchAuth?: boolean;
|
|
241
|
+
/**
|
|
242
|
+
* Request/connection timeout in seconds for HTTP I/O. Default: 60.
|
|
243
|
+
* Pass 0 to disable the timeout.
|
|
244
|
+
*/
|
|
245
|
+
timeoutSeconds?: number;
|
|
246
|
+
}
|
|
247
|
+
/** Sinch client parameters with resolved logger and transport defaults. */
|
|
248
|
+
export type ResolvedSinchClientParameters = Omit<SinchClientParameters, 'logger' | 'useSinchAuth' | 'timeoutSeconds'> & {
|
|
172
249
|
logger: Logger;
|
|
250
|
+
useSinchAuth: boolean;
|
|
251
|
+
timeoutSeconds: number;
|
|
173
252
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MailgunRegion = exports.SupportedMailgunRegion = exports.ConversationRegion = exports.SupportedConversationRegion = exports.FaxRegion = exports.SupportedFaxRegion = exports.VoiceRegion = exports.SupportedVoiceRegion = exports.SmsRegion = exports.SupportedSmsRegion = exports.isServicePlanIdCredentials = exports.isUnifiedCredentials = void 0;
|
|
3
|
+
exports.resolveTimeoutSeconds = exports.DEFAULT_TIMEOUT_SECONDS = exports.RetryPolicy = exports.SupportedRetryPolicy = exports.MailgunRegion = exports.SupportedMailgunRegion = exports.ConversationRegion = exports.SupportedConversationRegion = exports.FaxRegion = exports.SupportedFaxRegion = exports.VoiceRegion = exports.SupportedVoiceRegion = exports.SmsRegion = exports.SupportedSmsRegion = exports.isServicePlanIdCredentials = exports.isUnifiedCredentials = void 0;
|
|
4
4
|
const isUnifiedCredentials = (credentials) => {
|
|
5
5
|
const candidate = (credentials);
|
|
6
6
|
return candidate.projectId !== undefined
|
|
@@ -70,14 +70,46 @@ exports.ConversationRegion = {
|
|
|
70
70
|
};
|
|
71
71
|
// ////////////////////
|
|
72
72
|
// Mailgun regions
|
|
73
|
-
/** @internal */
|
|
73
|
+
/** @internal @deprecated Mailgun was never released as a Node SDK product. */
|
|
74
74
|
var SupportedMailgunRegion;
|
|
75
75
|
(function (SupportedMailgunRegion) {
|
|
76
76
|
SupportedMailgunRegion["DEFAULT"] = "";
|
|
77
77
|
SupportedMailgunRegion["EUROPE"] = "eu";
|
|
78
78
|
})(SupportedMailgunRegion || (exports.SupportedMailgunRegion = SupportedMailgunRegion = {}));
|
|
79
|
-
/** @internal */
|
|
79
|
+
/** @internal @deprecated Mailgun was never released as a Node SDK product. */
|
|
80
80
|
exports.MailgunRegion = {
|
|
81
81
|
...SupportedMailgunRegion,
|
|
82
82
|
};
|
|
83
|
+
/**
|
|
84
|
+
* Policy used when the SDK retries a failed HTTP call.
|
|
85
|
+
* - `DEFAULT`: honor `Retry-After` when present, otherwise exponential backoff
|
|
86
|
+
* - `RETRY_AFTER`: only retry when a usable `Retry-After` header is present
|
|
87
|
+
* - `BACKOFF`: ignore `Retry-After`; use full-jitter exponential backoff only
|
|
88
|
+
* - `NONE`: disable automatic retries
|
|
89
|
+
*/
|
|
90
|
+
var SupportedRetryPolicy;
|
|
91
|
+
(function (SupportedRetryPolicy) {
|
|
92
|
+
SupportedRetryPolicy["DEFAULT"] = "DEFAULT";
|
|
93
|
+
SupportedRetryPolicy["RETRY_AFTER"] = "RETRY_AFTER";
|
|
94
|
+
SupportedRetryPolicy["BACKOFF"] = "BACKOFF";
|
|
95
|
+
SupportedRetryPolicy["NONE"] = "NONE";
|
|
96
|
+
})(SupportedRetryPolicy || (exports.SupportedRetryPolicy = SupportedRetryPolicy = {}));
|
|
97
|
+
exports.RetryPolicy = {
|
|
98
|
+
...SupportedRetryPolicy,
|
|
99
|
+
};
|
|
100
|
+
/** Default HTTP I/O timeout in seconds when `timeoutSeconds` is omitted. */
|
|
101
|
+
exports.DEFAULT_TIMEOUT_SECONDS = 60;
|
|
102
|
+
/**
|
|
103
|
+
* Resolve `timeoutSeconds`, defaulting to {@link DEFAULT_TIMEOUT_SECONDS}.
|
|
104
|
+
* `0` disables the timeout.
|
|
105
|
+
* @internal
|
|
106
|
+
*/
|
|
107
|
+
const resolveTimeoutSeconds = (timeoutSeconds) => {
|
|
108
|
+
const value = timeoutSeconds ?? exports.DEFAULT_TIMEOUT_SECONDS;
|
|
109
|
+
if (!Number.isFinite(value) || value < 0) {
|
|
110
|
+
throw new Error('Invalid configuration: "timeoutSeconds" must be a non-negative number');
|
|
111
|
+
}
|
|
112
|
+
return value;
|
|
113
|
+
};
|
|
114
|
+
exports.resolveTimeoutSeconds = resolveTimeoutSeconds;
|
|
83
115
|
//# sourceMappingURL=domain-interface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-interface.js","sourceRoot":"","sources":["../../src/domain/domain-interface.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"domain-interface.js","sourceRoot":"","sources":["../../src/domain/domain-interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Response } from 'node-fetch';
|
|
2
|
+
import { HttpContentParser } from '../http-content-parser';
|
|
3
|
+
/** @internal */
|
|
4
|
+
export declare class FetchHttpContentParser implements HttpContentParser {
|
|
5
|
+
private readonly response;
|
|
6
|
+
private buffered;
|
|
7
|
+
private consumedAsStream;
|
|
8
|
+
constructor(response: Response);
|
|
9
|
+
asString(): Promise<string>;
|
|
10
|
+
asBytes(): Promise<Buffer>;
|
|
11
|
+
asJson(): Promise<unknown>;
|
|
12
|
+
asStream(): NodeJS.ReadableStream;
|
|
13
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FetchHttpContentParser = void 0;
|
|
4
|
+
const stream_1 = require("stream");
|
|
5
|
+
const DEFAULT_FALLBACK_ENCODING = 'utf-8';
|
|
6
|
+
const CHARSET_TO_ENCODING = {
|
|
7
|
+
'utf-8': DEFAULT_FALLBACK_ENCODING,
|
|
8
|
+
utf8: DEFAULT_FALLBACK_ENCODING,
|
|
9
|
+
ascii: 'ascii',
|
|
10
|
+
'us-ascii': 'ascii',
|
|
11
|
+
latin1: 'latin1',
|
|
12
|
+
'iso-8859-1': 'latin1',
|
|
13
|
+
'iso8859-1': 'latin1',
|
|
14
|
+
};
|
|
15
|
+
/** @internal */
|
|
16
|
+
class FetchHttpContentParser {
|
|
17
|
+
constructor(response) {
|
|
18
|
+
this.response = response;
|
|
19
|
+
this.consumedAsStream = false;
|
|
20
|
+
}
|
|
21
|
+
async asString() {
|
|
22
|
+
const bytes = await this.asBytes();
|
|
23
|
+
return bytes.toString(encodingFromContentType(this.response.headers.get('content-type')));
|
|
24
|
+
}
|
|
25
|
+
async asBytes() {
|
|
26
|
+
if (this.buffered) {
|
|
27
|
+
return this.buffered;
|
|
28
|
+
}
|
|
29
|
+
if (this.consumedAsStream) {
|
|
30
|
+
throw new Error('Response body already consumed as a stream');
|
|
31
|
+
}
|
|
32
|
+
this.buffered = await this.response.buffer();
|
|
33
|
+
return this.buffered;
|
|
34
|
+
}
|
|
35
|
+
async asJson() {
|
|
36
|
+
const text = await this.asString();
|
|
37
|
+
return text ? JSON.parse(text) : undefined;
|
|
38
|
+
}
|
|
39
|
+
asStream() {
|
|
40
|
+
if (this.buffered) {
|
|
41
|
+
return stream_1.Readable.from([this.buffered]);
|
|
42
|
+
}
|
|
43
|
+
if (this.consumedAsStream) {
|
|
44
|
+
throw new Error('Response body already consumed as a stream');
|
|
45
|
+
}
|
|
46
|
+
const stream = this.response.body;
|
|
47
|
+
if (!stream) {
|
|
48
|
+
throw new Error('Response body stream is not available');
|
|
49
|
+
}
|
|
50
|
+
this.consumedAsStream = true;
|
|
51
|
+
return stream;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.FetchHttpContentParser = FetchHttpContentParser;
|
|
55
|
+
function encodingFromContentType(contentType) {
|
|
56
|
+
if (!contentType) {
|
|
57
|
+
return DEFAULT_FALLBACK_ENCODING;
|
|
58
|
+
}
|
|
59
|
+
const match = /charset\s*=\s*["']?([^;"'\s]+)/i.exec(contentType);
|
|
60
|
+
if (!match) {
|
|
61
|
+
return DEFAULT_FALLBACK_ENCODING;
|
|
62
|
+
}
|
|
63
|
+
return CHARSET_TO_ENCODING[match[1].toLowerCase()] ?? DEFAULT_FALLBACK_ENCODING;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=fetch-http-content-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-http-content-parser.js","sourceRoot":"","sources":["../../../src/http/fetch/fetch-http-content-parser.ts"],"names":[],"mappings":";;;AACA,mCAAkC;AAGlC,MAAM,yBAAyB,GAAmB,OAAO,CAAC;AAE1D,MAAM,mBAAmB,GAAmC;IAC1D,OAAO,EAAE,yBAAyB;IAClC,IAAI,EAAE,yBAAyB;IAC/B,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,OAAO;IACnB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,QAAQ;IACtB,WAAW,EAAE,QAAQ;CACtB,CAAC;AAEF,gBAAgB;AAChB;IAIE,YAA6B,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;QAFvC,qBAAgB,GAAG,KAAK,CAAC;IAEiB,CAAC;IAEnD,KAAK,CAAC,QAAQ;QACZ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7C,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,iBAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAoC,CAAC;QAClE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;;AAED,SAAS,uBAAuB,CAAC,WAAsC;IACrE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,yBAAyB,CAAC;IACnC,CAAC;IACD,MAAM,KAAK,GAAG,iCAAiC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,yBAAyB,CAAC;IACnC,CAAC;IACD,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,yBAAyB,CAAC;AAClF,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toFetchHeaders = toFetchHeaders;
|
|
4
|
+
exports.fromFetchHeaders = fromFetchHeaders;
|
|
5
|
+
const node_fetch_1 = require("node-fetch");
|
|
6
|
+
const http_headers_1 = require("../http-headers");
|
|
7
|
+
function toFetchHeaders(headers) {
|
|
8
|
+
const fetchHeaders = new node_fetch_1.Headers();
|
|
9
|
+
for (const [name, value] of headers.entries()) {
|
|
10
|
+
fetchHeaders.append(name, value);
|
|
11
|
+
}
|
|
12
|
+
return fetchHeaders;
|
|
13
|
+
}
|
|
14
|
+
function fromFetchHeaders(headers) {
|
|
15
|
+
const result = new http_headers_1.HttpHeaders();
|
|
16
|
+
const rawHeaders = getRawHeaderMap(headers);
|
|
17
|
+
if (rawHeaders) {
|
|
18
|
+
for (const [name, values] of Object.entries(rawHeaders)) {
|
|
19
|
+
for (const value of values) {
|
|
20
|
+
result.append(name, value);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
25
|
+
headers.forEach((value, name) => {
|
|
26
|
+
result.append(name, value);
|
|
27
|
+
});
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
const getRawHeaderMap = (headers) => {
|
|
31
|
+
const withRaw = headers;
|
|
32
|
+
if (typeof withRaw.raw !== 'function') {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
return withRaw.raw();
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=fetch-http-headers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-http-headers.js","sourceRoot":"","sources":["../../../src/http/fetch/fetch-http-headers.ts"],"names":[],"mappings":";;;;AAAA,2CAAqC;AACrC,kDAA8C;AAE9C,wBAA+B,OAAoB;IACjD,MAAM,YAAY,GAAG,IAAI,oBAAO,EAAE,CAAC;IACnC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9C,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,0BAAiC,OAAgB;IAC/C,MAAM,MAAM,GAAG,IAAI,0BAAW,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACxD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,eAAe,GAAG,CACtB,OAAgB,EACsB,EAAE;IACxC,MAAM,OAAO,GAAG,OAA6D,CAAC;IAC9E,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ApiCallParameters } from '../../api/api-client';
|
|
2
|
+
import { RequestOptions } from '../../plugins/core/request-plugin';
|
|
3
|
+
import { HttpRequest } from '../http-request';
|
|
4
|
+
/**
|
|
5
|
+
* Build an {@link HttpRequest} from existing {@link ApiCallParameters}.
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export declare function toHttpRequest(apiCallParameters: ApiCallParameters, requestOptions?: RequestOptions): HttpRequest;
|