@planqk/planqk-service-sdk 2.1.1 → 2.2.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/.gitlab-ci.yml +8 -39
- package/README-node.md +16 -12
- package/README.md +30 -41
- package/dist/sdk/Client.d.ts +10 -4
- package/dist/sdk/Client.js +46 -4
- package/dist/sdk/api/index.d.ts +2 -3
- package/dist/sdk/api/index.js +2 -3
- package/dist/sdk/api/resources/index.d.ts +2 -2
- package/dist/sdk/api/resources/index.js +2 -2
- package/dist/sdk/api/resources/serviceApi/client/Client.d.ts +41 -55
- package/dist/sdk/api/resources/serviceApi/client/Client.js +131 -227
- package/dist/sdk/api/resources/serviceApi/index.d.ts +2 -2
- package/dist/sdk/api/resources/serviceApi/index.js +2 -2
- package/dist/sdk/api/resources/serviceApi/types/GetResultResponse.d.ts +13 -3
- package/dist/sdk/api/resources/serviceApi/types/index.d.ts +1 -4
- package/dist/sdk/api/resources/serviceApi/types/index.js +1 -4
- package/dist/sdk/api/types/ServiceExecution.d.ts +12 -2
- package/dist/sdk/api/types/ServiceExecution.js +12 -0
- package/dist/sdk/api/types/index.d.ts +2 -6
- package/dist/sdk/api/types/index.js +2 -6
- package/dist/sdk/core/auth/BasicAuth.js +3 -3
- package/dist/sdk/core/auth/index.d.ts +2 -2
- package/dist/sdk/core/auth/index.js +4 -4
- package/dist/sdk/core/base64.d.ts +2 -0
- package/dist/sdk/core/base64.js +26 -0
- package/dist/sdk/core/fetcher/APIResponse.d.ts +10 -0
- package/dist/sdk/core/fetcher/BinaryResponse.d.ts +20 -0
- package/dist/sdk/core/fetcher/BinaryResponse.js +17 -0
- package/dist/sdk/core/fetcher/Fetcher.d.ts +5 -4
- package/dist/sdk/core/fetcher/Fetcher.js +41 -22
- package/dist/sdk/core/fetcher/Headers.d.ts +2 -0
- package/dist/sdk/core/fetcher/Headers.js +85 -0
- package/dist/sdk/core/fetcher/HttpResponsePromise.d.ts +58 -0
- package/dist/sdk/core/fetcher/HttpResponsePromise.js +94 -0
- package/dist/sdk/core/fetcher/RawResponse.d.ts +29 -0
- package/dist/sdk/core/fetcher/RawResponse.js +44 -0
- package/dist/sdk/core/fetcher/ResponseWithBody.d.ts +4 -0
- package/dist/sdk/core/fetcher/ResponseWithBody.js +6 -0
- package/dist/sdk/core/fetcher/createRequestUrl.d.ts +1 -1
- package/dist/sdk/core/fetcher/createRequestUrl.js +3 -7
- package/dist/sdk/core/fetcher/getErrorResponseBody.d.ts +1 -0
- package/dist/sdk/core/fetcher/getErrorResponseBody.js +32 -0
- package/dist/sdk/core/fetcher/getFetchFn.d.ts +1 -4
- package/dist/sdk/core/fetcher/getFetchFn.js +1 -52
- package/dist/sdk/core/fetcher/getRequestBody.js +2 -1
- package/dist/sdk/core/fetcher/getResponseBody.js +34 -30
- package/dist/sdk/core/fetcher/index.d.ts +9 -5
- package/dist/sdk/core/fetcher/index.js +13 -7
- package/dist/sdk/core/fetcher/makeRequest.js +3 -3
- package/dist/sdk/core/fetcher/requestWithRetries.js +14 -5
- package/dist/sdk/core/headers.d.ts +3 -0
- package/dist/sdk/core/headers.js +29 -0
- package/dist/sdk/core/index.d.ts +5 -3
- package/dist/sdk/core/index.js +28 -3
- package/dist/sdk/core/json.d.ts +15 -0
- package/dist/sdk/core/json.js +24 -0
- package/dist/sdk/core/runtime/index.d.ts +1 -1
- package/dist/sdk/core/runtime/index.js +2 -2
- package/dist/sdk/core/runtime/runtime.d.ts +1 -1
- package/dist/sdk/core/runtime/runtime.js +49 -40
- package/dist/sdk/core/url/index.d.ts +2 -0
- package/dist/sdk/core/url/index.js +7 -0
- package/dist/sdk/core/url/join.d.ts +1 -0
- package/dist/sdk/core/url/join.js +49 -0
- package/dist/sdk/core/url/qs.d.ts +6 -0
- package/dist/sdk/core/url/qs.js +67 -0
- package/dist/sdk/errors/PlanqkServiceApiError.d.ts +4 -1
- package/dist/sdk/errors/PlanqkServiceApiError.js +7 -8
- package/dist/sdk/errors/PlanqkServiceApiTimeoutError.d.ts +1 -1
- package/dist/sdk/errors/PlanqkServiceApiTimeoutError.js +2 -2
- package/dist/sdk/errors/index.d.ts +2 -2
- package/dist/sdk/errors/index.js +4 -4
- package/dist/sdk/index.d.ts +4 -4
- package/dist/sdk/index.js +9 -9
- package/fern/fern.config.json +1 -1
- package/fern/generators.yml +2 -2
- package/fern/openapi/openapi.yml +41 -131
- package/notebooks/python-sdk.ipynb +1 -1
- package/package.json +2 -3
- package/planqk/service/_version.py +1 -1
- package/pyproject.toml +1 -1
- package/src/index.test.ts +29 -16
- package/src/sdk/Client.ts +27 -7
- package/src/sdk/api/index.ts +2 -3
- package/src/sdk/api/resources/index.ts +2 -2
- package/src/sdk/api/resources/serviceApi/client/Client.ts +223 -250
- package/src/sdk/api/resources/serviceApi/index.ts +2 -2
- package/src/sdk/api/resources/serviceApi/types/GetResultResponse.ts +15 -3
- package/src/sdk/api/resources/serviceApi/types/index.ts +1 -4
- package/src/sdk/api/types/ServiceExecution.ts +13 -3
- package/src/sdk/api/types/index.ts +2 -6
- package/src/sdk/core/auth/BasicAuth.ts +3 -3
- package/src/sdk/core/auth/index.ts +2 -2
- package/src/sdk/core/base64.ts +27 -0
- package/src/sdk/core/fetcher/APIResponse.ts +11 -0
- package/src/sdk/core/fetcher/BinaryResponse.ts +36 -0
- package/src/sdk/core/fetcher/Fetcher.ts +46 -26
- package/src/sdk/core/fetcher/Headers.ts +93 -0
- package/src/sdk/core/fetcher/HttpResponsePromise.ts +116 -0
- package/src/sdk/core/fetcher/RawResponse.ts +61 -0
- package/src/sdk/core/fetcher/ResponseWithBody.ts +7 -0
- package/src/sdk/core/fetcher/createRequestUrl.ts +4 -8
- package/src/sdk/core/fetcher/getErrorResponseBody.ts +32 -0
- package/src/sdk/core/fetcher/getFetchFn.ts +2 -24
- package/src/sdk/core/fetcher/getRequestBody.ts +3 -1
- package/src/sdk/core/fetcher/getResponseBody.ts +38 -27
- package/src/sdk/core/fetcher/index.ts +9 -5
- package/src/sdk/core/fetcher/makeRequest.ts +2 -2
- package/src/sdk/core/fetcher/requestWithRetries.ts +18 -6
- package/src/sdk/core/fetcher/signals.ts +1 -1
- package/src/sdk/core/headers.ts +35 -0
- package/src/sdk/core/index.ts +5 -3
- package/src/sdk/core/json.ts +27 -0
- package/src/sdk/core/runtime/index.ts +1 -1
- package/src/sdk/core/runtime/runtime.ts +60 -53
- package/src/sdk/core/url/index.ts +2 -0
- package/src/sdk/core/url/join.ts +55 -0
- package/src/sdk/core/url/qs.ts +74 -0
- package/src/sdk/errors/PlanqkServiceApiError.ts +21 -11
- package/src/sdk/errors/PlanqkServiceApiTimeoutError.ts +2 -2
- package/src/sdk/errors/index.ts +2 -2
- package/src/sdk/index.ts +4 -4
- package/dist/sdk/api/errors/BadRequestError.d.ts +0 -7
- package/dist/sdk/api/errors/BadRequestError.js +0 -51
- package/dist/sdk/api/errors/ForbiddenError.d.ts +0 -7
- package/dist/sdk/api/errors/ForbiddenError.js +0 -51
- package/dist/sdk/api/errors/InternalServerError.d.ts +0 -7
- package/dist/sdk/api/errors/InternalServerError.js +0 -51
- package/dist/sdk/api/errors/NotFoundError.d.ts +0 -7
- package/dist/sdk/api/errors/NotFoundError.js +0 -51
- package/dist/sdk/api/errors/UnauthorizedError.d.ts +0 -7
- package/dist/sdk/api/errors/UnauthorizedError.js +0 -51
- package/dist/sdk/api/errors/index.d.ts +0 -5
- package/dist/sdk/api/errors/index.js +0 -21
- package/dist/sdk/api/resources/serviceApi/types/GetResultResponseEmbedded.d.ts +0 -7
- package/dist/sdk/api/resources/serviceApi/types/GetResultResponseEmbedded.js +0 -5
- package/dist/sdk/api/resources/serviceApi/types/GetResultResponseLinks.d.ts +0 -7
- package/dist/sdk/api/resources/serviceApi/types/GetResultResponseLinks.js +0 -5
- package/dist/sdk/api/resources/serviceApi/types/HealthCheckResponse.d.ts +0 -7
- package/dist/sdk/api/resources/serviceApi/types/HealthCheckResponse.js +0 -5
- package/dist/sdk/api/types/InputData.d.ts +0 -4
- package/dist/sdk/api/types/InputData.js +0 -5
- package/dist/sdk/api/types/InputDataRef.d.ts +0 -8
- package/dist/sdk/api/types/InputDataRef.js +0 -5
- package/dist/sdk/api/types/InputParams.d.ts +0 -4
- package/dist/sdk/api/types/InputParams.js +0 -5
- package/dist/sdk/api/types/ServiceExecutionStatus.d.ts +0 -12
- package/dist/sdk/api/types/ServiceExecutionStatus.js +0 -14
- package/dist/sdk/core/fetcher/stream-wrappers/Node18UniversalStreamWrapper.d.ts +0 -30
- package/dist/sdk/core/fetcher/stream-wrappers/Node18UniversalStreamWrapper.js +0 -232
- package/dist/sdk/core/fetcher/stream-wrappers/NodePre18StreamWrapper.d.ts +0 -21
- package/dist/sdk/core/fetcher/stream-wrappers/NodePre18StreamWrapper.js +0 -91
- package/dist/sdk/core/fetcher/stream-wrappers/UndiciStreamWrapper.d.ts +0 -31
- package/dist/sdk/core/fetcher/stream-wrappers/UndiciStreamWrapper.js +0 -214
- package/dist/sdk/core/fetcher/stream-wrappers/chooseStreamWrapper.d.ts +0 -18
- package/dist/sdk/core/fetcher/stream-wrappers/chooseStreamWrapper.js +0 -48
- package/src/sdk/api/errors/BadRequestError.ts +0 -16
- package/src/sdk/api/errors/ForbiddenError.ts +0 -16
- package/src/sdk/api/errors/InternalServerError.ts +0 -16
- package/src/sdk/api/errors/NotFoundError.ts +0 -16
- package/src/sdk/api/errors/UnauthorizedError.ts +0 -16
- package/src/sdk/api/errors/index.ts +0 -5
- package/src/sdk/api/resources/serviceApi/types/GetResultResponseEmbedded.ts +0 -9
- package/src/sdk/api/resources/serviceApi/types/GetResultResponseLinks.ts +0 -9
- package/src/sdk/api/resources/serviceApi/types/HealthCheckResponse.ts +0 -8
- package/src/sdk/api/types/InputData.ts +0 -5
- package/src/sdk/api/types/InputDataRef.ts +0 -9
- package/src/sdk/api/types/InputParams.ts +0 -5
- package/src/sdk/api/types/ServiceExecutionStatus.ts +0 -14
- package/src/sdk/core/fetcher/stream-wrappers/Node18UniversalStreamWrapper.ts +0 -252
- package/src/sdk/core/fetcher/stream-wrappers/NodePre18StreamWrapper.ts +0 -106
- package/src/sdk/core/fetcher/stream-wrappers/UndiciStreamWrapper.ts +0 -239
- package/src/sdk/core/fetcher/stream-wrappers/chooseStreamWrapper.ts +0 -33
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function createRequestUrl(baseUrl: string, queryParameters?: Record<string,
|
|
1
|
+
export declare function createRequestUrl(baseUrl: string, queryParameters?: Record<string, unknown>): string;
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.createRequestUrl = createRequestUrl;
|
|
7
|
-
const
|
|
4
|
+
const qs_js_1 = require("../url/qs.js");
|
|
8
5
|
function createRequestUrl(baseUrl, queryParameters) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
: baseUrl;
|
|
6
|
+
const queryString = (0, qs_js_1.toQueryString)(queryParameters, { arrayFormat: "repeat" });
|
|
7
|
+
return queryString ? `${baseUrl}?${queryString}` : baseUrl;
|
|
12
8
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getErrorResponseBody(response: Response): Promise<unknown>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getErrorResponseBody = getErrorResponseBody;
|
|
4
|
+
const json_js_1 = require("../json.js");
|
|
5
|
+
const getResponseBody_js_1 = require("./getResponseBody.js");
|
|
6
|
+
async function getErrorResponseBody(response) {
|
|
7
|
+
let contentType = response.headers.get("Content-Type")?.toLowerCase();
|
|
8
|
+
if (contentType == null || contentType.length === 0) {
|
|
9
|
+
return (0, getResponseBody_js_1.getResponseBody)(response);
|
|
10
|
+
}
|
|
11
|
+
if (contentType.indexOf(";") !== -1) {
|
|
12
|
+
contentType = contentType.split(";")[0]?.trim() ?? "";
|
|
13
|
+
}
|
|
14
|
+
switch (contentType) {
|
|
15
|
+
case "application/hal+json":
|
|
16
|
+
case "application/json":
|
|
17
|
+
case "application/ld+json":
|
|
18
|
+
case "application/problem+json":
|
|
19
|
+
case "application/vnd.api+json":
|
|
20
|
+
case "text/json":
|
|
21
|
+
const text = await response.text();
|
|
22
|
+
return text.length > 0 ? (0, json_js_1.fromJson)(text) : undefined;
|
|
23
|
+
default:
|
|
24
|
+
if (contentType.startsWith("application/vnd.") && contentType.endsWith("+json")) {
|
|
25
|
+
const text = await response.text();
|
|
26
|
+
return text.length > 0 ? (0, json_js_1.fromJson)(text) : undefined;
|
|
27
|
+
}
|
|
28
|
+
// Fallback to plain text if content type is not recognized
|
|
29
|
+
// Even if no body is present, the response will be an empty string
|
|
30
|
+
return await response.text();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -1,57 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
3
|
exports.getFetchFn = getFetchFn;
|
|
37
|
-
const runtime_1 = require("../runtime");
|
|
38
|
-
/**
|
|
39
|
-
* Returns a fetch function based on the runtime
|
|
40
|
-
*/
|
|
41
4
|
async function getFetchFn() {
|
|
42
|
-
|
|
43
|
-
if (runtime_1.RUNTIME.type === "node" && runtime_1.RUNTIME.parsedVersion != null && runtime_1.RUNTIME.parsedVersion >= 18) {
|
|
44
|
-
return fetch;
|
|
45
|
-
}
|
|
46
|
-
// In Node.js 18 or lower environments, the SDK always uses`node-fetch`.
|
|
47
|
-
if (runtime_1.RUNTIME.type === "node") {
|
|
48
|
-
return (await Promise.resolve().then(() => __importStar(require("node-fetch")))).default;
|
|
49
|
-
}
|
|
50
|
-
// Otherwise the SDK uses global fetch if available,
|
|
51
|
-
// and falls back to node-fetch.
|
|
52
|
-
if (typeof fetch == "function") {
|
|
53
|
-
return fetch;
|
|
54
|
-
}
|
|
55
|
-
// Defaults to node `node-fetch` if global fetch isn't available
|
|
56
|
-
return (await Promise.resolve().then(() => __importStar(require("node-fetch")))).default;
|
|
5
|
+
return fetch;
|
|
57
6
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getRequestBody = getRequestBody;
|
|
4
|
+
const json_js_1 = require("../json.js");
|
|
4
5
|
async function getRequestBody({ body, type }) {
|
|
5
6
|
if (type.includes("json")) {
|
|
6
|
-
return
|
|
7
|
+
return (0, json_js_1.toJson)(body);
|
|
7
8
|
}
|
|
8
9
|
else {
|
|
9
10
|
return body;
|
|
@@ -1,40 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getResponseBody = getResponseBody;
|
|
4
|
-
const
|
|
4
|
+
const BinaryResponse_js_1 = require("./BinaryResponse.js");
|
|
5
|
+
const ResponseWithBody_js_1 = require("./ResponseWithBody.js");
|
|
6
|
+
const json_js_1 = require("../json.js");
|
|
5
7
|
async function getResponseBody(response, responseType) {
|
|
6
|
-
if (
|
|
7
|
-
return
|
|
8
|
+
if (!(0, ResponseWithBody_js_1.isResponseWithBody)(response)) {
|
|
9
|
+
return undefined;
|
|
8
10
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
switch (responseType) {
|
|
12
|
+
case "binary-response":
|
|
13
|
+
return (0, BinaryResponse_js_1.getBinaryResponse)(response);
|
|
14
|
+
case "blob":
|
|
15
|
+
return await response.blob();
|
|
16
|
+
case "arrayBuffer":
|
|
17
|
+
return await response.arrayBuffer();
|
|
18
|
+
case "sse":
|
|
19
|
+
return response.body;
|
|
20
|
+
case "streaming":
|
|
21
|
+
return response.body;
|
|
22
|
+
case "text":
|
|
23
|
+
return await response.text();
|
|
11
24
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
else {
|
|
19
|
-
const text = await response.text();
|
|
20
|
-
if (text.length > 0) {
|
|
21
|
-
try {
|
|
22
|
-
let responseBody = JSON.parse(text);
|
|
23
|
-
return responseBody;
|
|
24
|
-
}
|
|
25
|
-
catch (err) {
|
|
26
|
-
return {
|
|
27
|
-
ok: false,
|
|
28
|
-
error: {
|
|
29
|
-
reason: "non-json",
|
|
30
|
-
statusCode: response.status,
|
|
31
|
-
rawBody: text,
|
|
32
|
-
},
|
|
33
|
-
};
|
|
34
|
-
}
|
|
25
|
+
// if responseType is "json" or not specified, try to parse as JSON
|
|
26
|
+
const text = await response.text();
|
|
27
|
+
if (text.length > 0) {
|
|
28
|
+
try {
|
|
29
|
+
let responseBody = (0, json_js_1.fromJson)(text);
|
|
30
|
+
return responseBody;
|
|
35
31
|
}
|
|
36
|
-
|
|
37
|
-
return
|
|
32
|
+
catch (err) {
|
|
33
|
+
return {
|
|
34
|
+
ok: false,
|
|
35
|
+
error: {
|
|
36
|
+
reason: "non-json",
|
|
37
|
+
statusCode: response.status,
|
|
38
|
+
rawBody: text,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
38
41
|
}
|
|
39
42
|
}
|
|
43
|
+
return undefined;
|
|
40
44
|
}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
export type { APIResponse } from "./APIResponse";
|
|
2
|
-
export { fetcher } from "./Fetcher";
|
|
3
|
-
export type { Fetcher, FetchFunction } from "./Fetcher";
|
|
4
|
-
export { getHeader } from "./getHeader";
|
|
5
|
-
export { Supplier } from "./Supplier";
|
|
1
|
+
export type { APIResponse } from "./APIResponse.js";
|
|
2
|
+
export { fetcher } from "./Fetcher.js";
|
|
3
|
+
export type { Fetcher, FetchFunction } from "./Fetcher.js";
|
|
4
|
+
export { getHeader } from "./getHeader.js";
|
|
5
|
+
export { Supplier } from "./Supplier.js";
|
|
6
|
+
export { abortRawResponse, toRawResponse, unknownRawResponse } from "./RawResponse.js";
|
|
7
|
+
export type { RawResponse, WithRawResponse } from "./RawResponse.js";
|
|
8
|
+
export { HttpResponsePromise } from "./HttpResponsePromise.js";
|
|
9
|
+
export { BinaryResponse } from "./BinaryResponse.js";
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Supplier = exports.getHeader = exports.fetcher = void 0;
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "fetcher", { enumerable: true, get: function () { return
|
|
6
|
-
var
|
|
7
|
-
Object.defineProperty(exports, "getHeader", { enumerable: true, get: function () { return
|
|
8
|
-
var
|
|
9
|
-
Object.defineProperty(exports, "Supplier", { enumerable: true, get: function () { return
|
|
3
|
+
exports.HttpResponsePromise = exports.unknownRawResponse = exports.toRawResponse = exports.abortRawResponse = exports.Supplier = exports.getHeader = exports.fetcher = void 0;
|
|
4
|
+
var Fetcher_js_1 = require("./Fetcher.js");
|
|
5
|
+
Object.defineProperty(exports, "fetcher", { enumerable: true, get: function () { return Fetcher_js_1.fetcher; } });
|
|
6
|
+
var getHeader_js_1 = require("./getHeader.js");
|
|
7
|
+
Object.defineProperty(exports, "getHeader", { enumerable: true, get: function () { return getHeader_js_1.getHeader; } });
|
|
8
|
+
var Supplier_js_1 = require("./Supplier.js");
|
|
9
|
+
Object.defineProperty(exports, "Supplier", { enumerable: true, get: function () { return Supplier_js_1.Supplier; } });
|
|
10
|
+
var RawResponse_js_1 = require("./RawResponse.js");
|
|
11
|
+
Object.defineProperty(exports, "abortRawResponse", { enumerable: true, get: function () { return RawResponse_js_1.abortRawResponse; } });
|
|
12
|
+
Object.defineProperty(exports, "toRawResponse", { enumerable: true, get: function () { return RawResponse_js_1.toRawResponse; } });
|
|
13
|
+
Object.defineProperty(exports, "unknownRawResponse", { enumerable: true, get: function () { return RawResponse_js_1.unknownRawResponse; } });
|
|
14
|
+
var HttpResponsePromise_js_1 = require("./HttpResponsePromise.js");
|
|
15
|
+
Object.defineProperty(exports, "HttpResponsePromise", { enumerable: true, get: function () { return HttpResponsePromise_js_1.HttpResponsePromise; } });
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.makeRequest = void 0;
|
|
4
|
-
const
|
|
4
|
+
const signals_js_1 = require("./signals.js");
|
|
5
5
|
const makeRequest = async (fetchFn, url, method, headers, requestBody, timeoutMs, abortSignal, withCredentials, duplex) => {
|
|
6
6
|
const signals = [];
|
|
7
7
|
// Add timeout signal
|
|
8
8
|
let timeoutAbortId = undefined;
|
|
9
9
|
if (timeoutMs != null) {
|
|
10
|
-
const { signal, abortId } = (0,
|
|
10
|
+
const { signal, abortId } = (0, signals_js_1.getTimeoutSignal)(timeoutMs);
|
|
11
11
|
timeoutAbortId = abortId;
|
|
12
12
|
signals.push(signal);
|
|
13
13
|
}
|
|
@@ -15,7 +15,7 @@ const makeRequest = async (fetchFn, url, method, headers, requestBody, timeoutMs
|
|
|
15
15
|
if (abortSignal != null) {
|
|
16
16
|
signals.push(abortSignal);
|
|
17
17
|
}
|
|
18
|
-
let newSignals = (0,
|
|
18
|
+
let newSignals = (0, signals_js_1.anySignal)(signals);
|
|
19
19
|
const response = await fetchFn(url, {
|
|
20
20
|
method: method,
|
|
21
21
|
headers,
|
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.requestWithRetries = requestWithRetries;
|
|
4
|
-
const INITIAL_RETRY_DELAY =
|
|
5
|
-
const MAX_RETRY_DELAY =
|
|
4
|
+
const INITIAL_RETRY_DELAY = 1000; // in milliseconds
|
|
5
|
+
const MAX_RETRY_DELAY = 60000; // in milliseconds
|
|
6
6
|
const DEFAULT_MAX_RETRIES = 2;
|
|
7
|
+
const JITTER_FACTOR = 0.2; // 20% random jitter
|
|
8
|
+
function addJitter(delay) {
|
|
9
|
+
// Generate a random value between -JITTER_FACTOR and +JITTER_FACTOR
|
|
10
|
+
const jitterMultiplier = 1 + (Math.random() * 2 - 1) * JITTER_FACTOR;
|
|
11
|
+
return delay * jitterMultiplier;
|
|
12
|
+
}
|
|
7
13
|
async function requestWithRetries(requestFn, maxRetries = DEFAULT_MAX_RETRIES) {
|
|
8
14
|
let response = await requestFn();
|
|
9
15
|
for (let i = 0; i < maxRetries; ++i) {
|
|
10
|
-
if ([408,
|
|
11
|
-
|
|
12
|
-
|
|
16
|
+
if ([408, 429].includes(response.status) || response.status >= 500) {
|
|
17
|
+
// Calculate base delay using exponential backoff (in milliseconds)
|
|
18
|
+
const baseDelay = Math.min(INITIAL_RETRY_DELAY * Math.pow(2, i), MAX_RETRY_DELAY);
|
|
19
|
+
// Add jitter to the delay
|
|
20
|
+
const delayWithJitter = addJitter(baseDelay);
|
|
21
|
+
await new Promise((resolve) => setTimeout(resolve, delayWithJitter));
|
|
13
22
|
response = await requestFn();
|
|
14
23
|
}
|
|
15
24
|
else {
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import * as core from "./index.js";
|
|
2
|
+
export declare function mergeHeaders(...headersArray: (Record<string, string | core.Supplier<string | undefined> | undefined> | undefined)[]): Record<string, string | core.Supplier<string | undefined>>;
|
|
3
|
+
export declare function mergeOnlyDefinedHeaders(...headersArray: (Record<string, string | core.Supplier<string | undefined> | undefined> | undefined)[]): Record<string, string | core.Supplier<string | undefined>>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mergeHeaders = mergeHeaders;
|
|
4
|
+
exports.mergeOnlyDefinedHeaders = mergeOnlyDefinedHeaders;
|
|
5
|
+
function mergeHeaders(...headersArray) {
|
|
6
|
+
const result = {};
|
|
7
|
+
for (const [key, value] of headersArray
|
|
8
|
+
.filter((headers) => headers != null)
|
|
9
|
+
.flatMap((headers) => Object.entries(headers))) {
|
|
10
|
+
if (value != null) {
|
|
11
|
+
result[key] = value;
|
|
12
|
+
}
|
|
13
|
+
else if (key in result) {
|
|
14
|
+
delete result[key];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
function mergeOnlyDefinedHeaders(...headersArray) {
|
|
20
|
+
const result = {};
|
|
21
|
+
for (const [key, value] of headersArray
|
|
22
|
+
.filter((headers) => headers != null)
|
|
23
|
+
.flatMap((headers) => Object.entries(headers))) {
|
|
24
|
+
if (value != null) {
|
|
25
|
+
result[key] = value;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return result;
|
|
29
|
+
}
|
package/dist/sdk/core/index.d.ts
CHANGED
package/dist/sdk/core/index.js
CHANGED
|
@@ -10,10 +10,35 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
10
10
|
if (k2 === undefined) k2 = k;
|
|
11
11
|
o[k2] = m[k];
|
|
12
12
|
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
13
18
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
19
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
20
|
};
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
16
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
|
|
18
|
-
__exportStar(require("./
|
|
19
|
-
__exportStar(require("./runtime"), exports);
|
|
39
|
+
exports.url = void 0;
|
|
40
|
+
__exportStar(require("./fetcher/index.js"), exports);
|
|
41
|
+
__exportStar(require("./runtime/index.js"), exports);
|
|
42
|
+
exports.url = __importStar(require("./url/index.js"));
|
|
43
|
+
__exportStar(require("./auth/index.js"), exports);
|
|
44
|
+
__exportStar(require("./base64.js"), exports);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Serialize a value to JSON
|
|
3
|
+
* @param value A JavaScript value, usually an object or array, to be converted.
|
|
4
|
+
* @param replacer A function that transforms the results.
|
|
5
|
+
* @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.
|
|
6
|
+
* @returns JSON string
|
|
7
|
+
*/
|
|
8
|
+
export declare const toJson: (value: unknown, replacer?: (this: unknown, key: string, value: unknown) => unknown, space?: string | number) => string;
|
|
9
|
+
/**
|
|
10
|
+
* Parse JSON string to object, array, or other type
|
|
11
|
+
* @param text A valid JSON string.
|
|
12
|
+
* @param reviver A function that transforms the results. This function is called for each member of the object. If a member contains nested objects, the nested objects are transformed before the parent object is.
|
|
13
|
+
* @returns Parsed object, array, or other type
|
|
14
|
+
*/
|
|
15
|
+
export declare function fromJson<T = unknown>(text: string, reviver?: (this: unknown, key: string, value: unknown) => unknown): T;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toJson = void 0;
|
|
4
|
+
exports.fromJson = fromJson;
|
|
5
|
+
/**
|
|
6
|
+
* Serialize a value to JSON
|
|
7
|
+
* @param value A JavaScript value, usually an object or array, to be converted.
|
|
8
|
+
* @param replacer A function that transforms the results.
|
|
9
|
+
* @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.
|
|
10
|
+
* @returns JSON string
|
|
11
|
+
*/
|
|
12
|
+
const toJson = (value, replacer, space) => {
|
|
13
|
+
return JSON.stringify(value, replacer, space);
|
|
14
|
+
};
|
|
15
|
+
exports.toJson = toJson;
|
|
16
|
+
/**
|
|
17
|
+
* Parse JSON string to object, array, or other type
|
|
18
|
+
* @param text A valid JSON string.
|
|
19
|
+
* @param reviver A function that transforms the results. This function is called for each member of the object. If a member contains nested objects, the nested objects are transformed before the parent object is.
|
|
20
|
+
* @returns Parsed object, array, or other type
|
|
21
|
+
*/
|
|
22
|
+
function fromJson(text, reviver) {
|
|
23
|
+
return JSON.parse(text, reviver);
|
|
24
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { RUNTIME } from "./runtime";
|
|
1
|
+
export { RUNTIME } from "./runtime.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RUNTIME = void 0;
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "RUNTIME", { enumerable: true, get: function () { return
|
|
4
|
+
var runtime_js_1 = require("./runtime.js");
|
|
5
|
+
Object.defineProperty(exports, "RUNTIME", { enumerable: true, get: function () { return runtime_js_1.RUNTIME; } });
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export declare const RUNTIME: Runtime;
|
|
5
5
|
export interface Runtime {
|
|
6
|
-
type: "browser" | "web-worker" | "deno" | "bun" | "node" | "react-native" | "unknown" | "workerd";
|
|
6
|
+
type: "browser" | "web-worker" | "deno" | "bun" | "node" | "react-native" | "unknown" | "workerd" | "edge-runtime";
|
|
7
7
|
version?: string;
|
|
8
8
|
parsedVersion?: number;
|
|
9
9
|
}
|
|
@@ -1,79 +1,83 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RUNTIME = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* A constant that indicates whether the environment the code is running is a Web Browser.
|
|
6
|
-
*/
|
|
7
|
-
const isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined";
|
|
8
|
-
/**
|
|
9
|
-
* A constant that indicates whether the environment the code is running is a Web Worker.
|
|
10
|
-
*/
|
|
11
|
-
const isWebWorker = typeof self === "object" &&
|
|
12
|
-
// @ts-ignore
|
|
13
|
-
typeof self?.importScripts === "function" &&
|
|
14
|
-
(self.constructor?.name === "DedicatedWorkerGlobalScope" ||
|
|
15
|
-
self.constructor?.name === "ServiceWorkerGlobalScope" ||
|
|
16
|
-
self.constructor?.name === "SharedWorkerGlobalScope");
|
|
17
|
-
/**
|
|
18
|
-
* A constant that indicates whether the environment the code is running is Deno.
|
|
19
|
-
*/
|
|
20
|
-
const isDeno = typeof Deno !== "undefined" && typeof Deno.version !== "undefined" && typeof Deno.version.deno !== "undefined";
|
|
21
|
-
/**
|
|
22
|
-
* A constant that indicates whether the environment the code is running is Bun.sh.
|
|
23
|
-
*/
|
|
24
|
-
const isBun = typeof Bun !== "undefined" && typeof Bun.version !== "undefined";
|
|
25
|
-
/**
|
|
26
|
-
* A constant that indicates whether the environment the code is running is Node.JS.
|
|
27
|
-
*/
|
|
28
|
-
const isNode = typeof process !== "undefined" &&
|
|
29
|
-
Boolean(process.version) &&
|
|
30
|
-
Boolean(process.versions?.node) &&
|
|
31
|
-
// Deno spoofs process.versions.node, see https://deno.land/std@0.177.0/node/process.ts?s=versions
|
|
32
|
-
!isDeno &&
|
|
33
|
-
!isBun;
|
|
34
|
-
/**
|
|
35
|
-
* A constant that indicates whether the environment the code is running is in React-Native.
|
|
36
|
-
* https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Core/setUpNavigator.js
|
|
37
|
-
*/
|
|
38
|
-
const isReactNative = typeof navigator !== "undefined" && navigator?.product === "ReactNative";
|
|
39
|
-
/**
|
|
40
|
-
* A constant that indicates whether the environment the code is running is Cloudflare.
|
|
41
|
-
* https://developers.cloudflare.com/workers/runtime-apis/web-standards/#navigatoruseragent
|
|
42
|
-
*/
|
|
43
|
-
const isCloudflare = typeof globalThis !== "undefined" && globalThis?.navigator?.userAgent === "Cloudflare-Workers";
|
|
44
4
|
/**
|
|
45
5
|
* A constant that indicates which environment and version the SDK is running in.
|
|
46
6
|
*/
|
|
47
7
|
exports.RUNTIME = evaluateRuntime();
|
|
48
8
|
function evaluateRuntime() {
|
|
9
|
+
/**
|
|
10
|
+
* A constant that indicates whether the environment the code is running is a Web Browser.
|
|
11
|
+
*/
|
|
12
|
+
const isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined";
|
|
49
13
|
if (isBrowser) {
|
|
50
14
|
return {
|
|
51
15
|
type: "browser",
|
|
52
16
|
version: window.navigator.userAgent,
|
|
53
17
|
};
|
|
54
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* A constant that indicates whether the environment the code is running is Cloudflare.
|
|
21
|
+
* https://developers.cloudflare.com/workers/runtime-apis/web-standards/#navigatoruseragent
|
|
22
|
+
*/
|
|
23
|
+
const isCloudflare = typeof globalThis !== "undefined" && globalThis?.navigator?.userAgent === "Cloudflare-Workers";
|
|
55
24
|
if (isCloudflare) {
|
|
56
25
|
return {
|
|
57
26
|
type: "workerd",
|
|
58
27
|
};
|
|
59
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* A constant that indicates whether the environment the code is running is Edge Runtime.
|
|
31
|
+
* https://vercel.com/docs/functions/runtimes/edge-runtime#check-if-you're-running-on-the-edge-runtime
|
|
32
|
+
*/
|
|
33
|
+
const isEdgeRuntime = typeof EdgeRuntime === "string";
|
|
34
|
+
if (isEdgeRuntime) {
|
|
35
|
+
return {
|
|
36
|
+
type: "edge-runtime",
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* A constant that indicates whether the environment the code is running is a Web Worker.
|
|
41
|
+
*/
|
|
42
|
+
const isWebWorker = typeof self === "object" &&
|
|
43
|
+
typeof self?.importScripts === "function" &&
|
|
44
|
+
(self.constructor?.name === "DedicatedWorkerGlobalScope" ||
|
|
45
|
+
self.constructor?.name === "ServiceWorkerGlobalScope" ||
|
|
46
|
+
self.constructor?.name === "SharedWorkerGlobalScope");
|
|
60
47
|
if (isWebWorker) {
|
|
61
48
|
return {
|
|
62
49
|
type: "web-worker",
|
|
63
50
|
};
|
|
64
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* A constant that indicates whether the environment the code is running is Deno.
|
|
54
|
+
* FYI Deno spoofs process.versions.node, see https://deno.land/std@0.177.0/node/process.ts?s=versions
|
|
55
|
+
*/
|
|
56
|
+
const isDeno = typeof Deno !== "undefined" && typeof Deno.version !== "undefined" && typeof Deno.version.deno !== "undefined";
|
|
65
57
|
if (isDeno) {
|
|
66
58
|
return {
|
|
67
59
|
type: "deno",
|
|
68
60
|
version: Deno.version.deno,
|
|
69
61
|
};
|
|
70
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* A constant that indicates whether the environment the code is running is Bun.sh.
|
|
65
|
+
*/
|
|
66
|
+
const isBun = typeof Bun !== "undefined" && typeof Bun.version !== "undefined";
|
|
71
67
|
if (isBun) {
|
|
72
68
|
return {
|
|
73
69
|
type: "bun",
|
|
74
70
|
version: Bun.version,
|
|
75
71
|
};
|
|
76
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* A constant that indicates whether the environment the code is running is Node.JS.
|
|
75
|
+
*/
|
|
76
|
+
const isNode = typeof process !== "undefined" &&
|
|
77
|
+
"version" in process &&
|
|
78
|
+
!!process.version &&
|
|
79
|
+
"versions" in process &&
|
|
80
|
+
!!process.versions?.node;
|
|
77
81
|
if (isNode) {
|
|
78
82
|
return {
|
|
79
83
|
type: "node",
|
|
@@ -81,6 +85,11 @@ function evaluateRuntime() {
|
|
|
81
85
|
parsedVersion: Number(process.versions.node.split(".")[0]),
|
|
82
86
|
};
|
|
83
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* A constant that indicates whether the environment the code is running is in React-Native.
|
|
90
|
+
* https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Core/setUpNavigator.js
|
|
91
|
+
*/
|
|
92
|
+
const isReactNative = typeof navigator !== "undefined" && navigator?.product === "ReactNative";
|
|
84
93
|
if (isReactNative) {
|
|
85
94
|
return {
|
|
86
95
|
type: "react-native",
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toQueryString = exports.join = void 0;
|
|
4
|
+
var join_js_1 = require("./join.js");
|
|
5
|
+
Object.defineProperty(exports, "join", { enumerable: true, get: function () { return join_js_1.join; } });
|
|
6
|
+
var qs_js_1 = require("./qs.js");
|
|
7
|
+
Object.defineProperty(exports, "toQueryString", { enumerable: true, get: function () { return qs_js_1.toQueryString; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function join(base: string, ...segments: string[]): string;
|