prismic-ts-codegen 0.1.21 → 0.1.22
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/_node_modules/@prismicio/client/dist/BaseClient.cjs +97 -0
- package/dist/_node_modules/@prismicio/client/dist/BaseClient.cjs.map +1 -0
- package/dist/_node_modules/@prismicio/client/dist/BaseClient.js +97 -0
- package/dist/_node_modules/@prismicio/client/dist/BaseClient.js.map +1 -0
- package/dist/_node_modules/@prismicio/client/dist/Client.cjs +1179 -0
- package/dist/_node_modules/@prismicio/client/dist/Client.cjs.map +1 -0
- package/dist/_node_modules/@prismicio/client/dist/Client.js +1179 -0
- package/dist/_node_modules/@prismicio/client/dist/Client.js.map +1 -0
- package/dist/_node_modules/@prismicio/client/dist/buildQueryURL.cjs +7 -0
- package/dist/_node_modules/@prismicio/client/dist/buildQueryURL.cjs.map +1 -1
- package/dist/_node_modules/@prismicio/client/dist/buildQueryURL.js +7 -0
- package/dist/_node_modules/@prismicio/client/dist/buildQueryURL.js.map +1 -1
- package/dist/_node_modules/@prismicio/client/dist/createClient.cjs +2 -1172
- package/dist/_node_modules/@prismicio/client/dist/createClient.cjs.map +1 -1
- package/dist/_node_modules/@prismicio/client/dist/createClient.js +1 -1171
- package/dist/_node_modules/@prismicio/client/dist/createClient.js.map +1 -1
- package/dist/_node_modules/@prismicio/client/dist/errors/PrismicError.cjs +1 -4
- package/dist/_node_modules/@prismicio/client/dist/errors/PrismicError.cjs.map +1 -1
- package/dist/_node_modules/@prismicio/client/dist/errors/PrismicError.js +1 -4
- package/dist/_node_modules/@prismicio/client/dist/errors/PrismicError.js.map +1 -1
- package/dist/_node_modules/@prismicio/client/dist/getRepositoryName.cjs +7 -2
- package/dist/_node_modules/@prismicio/client/dist/getRepositoryName.cjs.map +1 -1
- package/dist/_node_modules/@prismicio/client/dist/getRepositoryName.js +7 -2
- package/dist/_node_modules/@prismicio/client/dist/getRepositoryName.js.map +1 -1
- package/dist/_node_modules/@prismicio/client/dist/helpers/documentToLinkField.cjs +1 -0
- package/dist/_node_modules/@prismicio/client/dist/helpers/documentToLinkField.cjs.map +1 -1
- package/dist/_node_modules/@prismicio/client/dist/helpers/documentToLinkField.js +1 -0
- package/dist/_node_modules/@prismicio/client/dist/helpers/documentToLinkField.js.map +1 -1
- package/dist/_node_modules/@prismicio/client/dist/lib/pLimit.cjs +49 -0
- package/dist/_node_modules/@prismicio/client/dist/lib/pLimit.cjs.map +1 -0
- package/dist/_node_modules/@prismicio/client/dist/lib/pLimit.js +49 -0
- package/dist/_node_modules/@prismicio/client/dist/lib/pLimit.js.map +1 -0
- package/dist/_node_modules/@prismicio/client/dist/package.json.cjs +1 -1
- package/dist/_node_modules/@prismicio/client/dist/package.json.cjs.map +1 -1
- package/dist/_node_modules/@prismicio/client/dist/package.json.js +1 -1
- package/dist/_node_modules/@prismicio/client/dist/package.json.js.map +1 -1
- package/dist/generateTypes.cjs +12 -0
- package/dist/generateTypes.cjs.map +1 -1
- package/dist/generateTypes.js +12 -0
- package/dist/generateTypes.js.map +1 -1
- package/package.json +2 -2
- package/src/generateTypes.ts +24 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const pLimit = require("./lib/pLimit.cjs");
|
|
4
|
+
const PrismicError = require("./errors/PrismicError.cjs");
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
7
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
8
|
+
const UNKNOWN_RATE_LIMIT_DELAY = 1500;
|
|
9
|
+
class BaseClient {
|
|
10
|
+
constructor(options) {
|
|
11
|
+
__publicField(this, "fetchFn");
|
|
12
|
+
__publicField(this, "fetchOptions");
|
|
13
|
+
__publicField(this, "queuedFetchJobs", {});
|
|
14
|
+
__publicField(this, "dedupedFetchJobs", {});
|
|
15
|
+
this.fetchOptions = options.fetchOptions;
|
|
16
|
+
if (typeof options.fetch === "function") {
|
|
17
|
+
this.fetchFn = options.fetch;
|
|
18
|
+
} else if (typeof globalThis.fetch === "function") {
|
|
19
|
+
this.fetchFn = globalThis.fetch;
|
|
20
|
+
} else {
|
|
21
|
+
throw new PrismicError.PrismicError("A valid fetch implementation was not provided. In environments where fetch is not available (including Node.js), a fetch implementation must be provided via a polyfill or the `fetch` option.", void 0, void 0);
|
|
22
|
+
}
|
|
23
|
+
if (this.fetchFn === globalThis.fetch) {
|
|
24
|
+
this.fetchFn = this.fetchFn.bind(globalThis);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async fetch(url, params = {}) {
|
|
28
|
+
var _a, _b, _c, _d, _e;
|
|
29
|
+
const requestInit = {
|
|
30
|
+
...this.fetchOptions,
|
|
31
|
+
...params.fetchOptions,
|
|
32
|
+
headers: {
|
|
33
|
+
...(_a = this.fetchOptions) == null ? void 0 : _a.headers,
|
|
34
|
+
...(_b = params.fetchOptions) == null ? void 0 : _b.headers
|
|
35
|
+
},
|
|
36
|
+
signal: ((_c = params.fetchOptions) == null ? void 0 : _c.signal) || params.signal || ((_d = this.fetchOptions) == null ? void 0 : _d.signal)
|
|
37
|
+
};
|
|
38
|
+
if ((_e = params.fetchOptions) == null ? void 0 : _e.body) {
|
|
39
|
+
return this.queueFetch(url, requestInit);
|
|
40
|
+
} else {
|
|
41
|
+
return this.dedupeFetch(url, requestInit);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
queueFetch(url, requestInit = {}) {
|
|
45
|
+
const hostname = new URL(url).hostname;
|
|
46
|
+
if (!this.queuedFetchJobs[hostname]) {
|
|
47
|
+
this.queuedFetchJobs[hostname] = pLimit.pLimit({
|
|
48
|
+
interval: UNKNOWN_RATE_LIMIT_DELAY
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return this.queuedFetchJobs[hostname](() => this.createFetchJob(url, requestInit));
|
|
52
|
+
}
|
|
53
|
+
dedupeFetch(url, requestInit = {}) {
|
|
54
|
+
let job;
|
|
55
|
+
if (this.dedupedFetchJobs[url] && this.dedupedFetchJobs[url].has(requestInit.signal)) {
|
|
56
|
+
job = this.dedupedFetchJobs[url].get(requestInit.signal);
|
|
57
|
+
} else {
|
|
58
|
+
this.dedupedFetchJobs[url] = this.dedupedFetchJobs[url] || /* @__PURE__ */ new Map();
|
|
59
|
+
job = this.createFetchJob(url, requestInit).finally(() => {
|
|
60
|
+
var _a, _b;
|
|
61
|
+
(_a = this.dedupedFetchJobs[url]) == null ? void 0 : _a.delete(requestInit.signal);
|
|
62
|
+
if (((_b = this.dedupedFetchJobs[url]) == null ? void 0 : _b.size) === 0) {
|
|
63
|
+
delete this.dedupedFetchJobs[url];
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
this.dedupedFetchJobs[url].set(requestInit.signal, job);
|
|
67
|
+
}
|
|
68
|
+
return job;
|
|
69
|
+
}
|
|
70
|
+
createFetchJob(url, requestInit = {}) {
|
|
71
|
+
return this.fetchFn(url, requestInit).then(async (res) => {
|
|
72
|
+
let json = void 0;
|
|
73
|
+
let text = void 0;
|
|
74
|
+
if (res.ok) {
|
|
75
|
+
try {
|
|
76
|
+
json = await res.json();
|
|
77
|
+
} catch {
|
|
78
|
+
}
|
|
79
|
+
} else {
|
|
80
|
+
try {
|
|
81
|
+
text = await res.text();
|
|
82
|
+
json = JSON.parse(text);
|
|
83
|
+
} catch {
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
status: res.status,
|
|
88
|
+
headers: res.headers,
|
|
89
|
+
json,
|
|
90
|
+
text
|
|
91
|
+
};
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.BaseClient = BaseClient;
|
|
96
|
+
exports.UNKNOWN_RATE_LIMIT_DELAY = UNKNOWN_RATE_LIMIT_DELAY;
|
|
97
|
+
//# sourceMappingURL=BaseClient.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseClient.cjs","sources":["../../../../../node_modules/@prismicio/client/dist/BaseClient.js"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nimport { pLimit } from \"./lib/pLimit.js\";\nimport { PrismicError } from \"./errors/PrismicError.js\";\nconst UNKNOWN_RATE_LIMIT_DELAY = 1500;\nclass BaseClient {\n constructor(options) {\n /**\n * The function used to make network requests to the Prismic REST API. In\n * environments where a global `fetch` function does not exist, such as\n * Node.js, this function must be provided.\n */\n __publicField(this, \"fetchFn\");\n __publicField(this, \"fetchOptions\");\n /**\n * Active queued `fetch()` jobs keyed by URL and AbortSignal (if it exists).\n */\n __publicField(this, \"queuedFetchJobs\", {});\n /**\n * Active deduped `fetch()` jobs keyed by URL and AbortSignal (if it exists).\n */\n __publicField(this, \"dedupedFetchJobs\", {});\n this.fetchOptions = options.fetchOptions;\n if (typeof options.fetch === \"function\") {\n this.fetchFn = options.fetch;\n } else if (typeof globalThis.fetch === \"function\") {\n this.fetchFn = globalThis.fetch;\n } else {\n throw new PrismicError(\"A valid fetch implementation was not provided. In environments where fetch is not available (including Node.js), a fetch implementation must be provided via a polyfill or the `fetch` option.\", void 0, void 0);\n }\n if (this.fetchFn === globalThis.fetch) {\n this.fetchFn = this.fetchFn.bind(globalThis);\n }\n }\n async fetch(url, params = {}) {\n var _a, _b, _c, _d, _e;\n const requestInit = {\n ...this.fetchOptions,\n ...params.fetchOptions,\n headers: {\n ...(_a = this.fetchOptions) == null ? void 0 : _a.headers,\n ...(_b = params.fetchOptions) == null ? void 0 : _b.headers\n },\n signal: ((_c = params.fetchOptions) == null ? void 0 : _c.signal) || params.signal || ((_d = this.fetchOptions) == null ? void 0 : _d.signal)\n };\n if ((_e = params.fetchOptions) == null ? void 0 : _e.body) {\n return this.queueFetch(url, requestInit);\n } else {\n return this.dedupeFetch(url, requestInit);\n }\n }\n queueFetch(url, requestInit = {}) {\n const hostname = new URL(url).hostname;\n if (!this.queuedFetchJobs[hostname]) {\n this.queuedFetchJobs[hostname] = pLimit({\n interval: UNKNOWN_RATE_LIMIT_DELAY\n });\n }\n return this.queuedFetchJobs[hostname](() => this.createFetchJob(url, requestInit));\n }\n dedupeFetch(url, requestInit = {}) {\n let job;\n if (this.dedupedFetchJobs[url] && this.dedupedFetchJobs[url].has(requestInit.signal)) {\n job = this.dedupedFetchJobs[url].get(requestInit.signal);\n } else {\n this.dedupedFetchJobs[url] = this.dedupedFetchJobs[url] || /* @__PURE__ */ new Map();\n job = this.createFetchJob(url, requestInit).finally(() => {\n var _a, _b;\n (_a = this.dedupedFetchJobs[url]) == null ? void 0 : _a.delete(requestInit.signal);\n if (((_b = this.dedupedFetchJobs[url]) == null ? void 0 : _b.size) === 0) {\n delete this.dedupedFetchJobs[url];\n }\n });\n this.dedupedFetchJobs[url].set(requestInit.signal, job);\n }\n return job;\n }\n createFetchJob(url, requestInit = {}) {\n return this.fetchFn(url, requestInit).then(async (res) => {\n let json = void 0;\n let text = void 0;\n if (res.ok) {\n try {\n json = await res.json();\n } catch {\n }\n } else {\n try {\n text = await res.text();\n json = JSON.parse(text);\n } catch {\n }\n }\n return {\n status: res.status,\n headers: res.headers,\n json,\n text\n };\n });\n }\n}\nexport {\n BaseClient,\n UNKNOWN_RATE_LIMIT_DELAY\n};\n//# sourceMappingURL=BaseClient.js.map\n"],"names":["PrismicError","pLimit"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { pLimit } from "./lib/pLimit.js";
|
|
2
|
+
import { PrismicError } from "./errors/PrismicError.js";
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
5
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
6
|
+
const UNKNOWN_RATE_LIMIT_DELAY = 1500;
|
|
7
|
+
class BaseClient {
|
|
8
|
+
constructor(options) {
|
|
9
|
+
__publicField(this, "fetchFn");
|
|
10
|
+
__publicField(this, "fetchOptions");
|
|
11
|
+
__publicField(this, "queuedFetchJobs", {});
|
|
12
|
+
__publicField(this, "dedupedFetchJobs", {});
|
|
13
|
+
this.fetchOptions = options.fetchOptions;
|
|
14
|
+
if (typeof options.fetch === "function") {
|
|
15
|
+
this.fetchFn = options.fetch;
|
|
16
|
+
} else if (typeof globalThis.fetch === "function") {
|
|
17
|
+
this.fetchFn = globalThis.fetch;
|
|
18
|
+
} else {
|
|
19
|
+
throw new PrismicError("A valid fetch implementation was not provided. In environments where fetch is not available (including Node.js), a fetch implementation must be provided via a polyfill or the `fetch` option.", void 0, void 0);
|
|
20
|
+
}
|
|
21
|
+
if (this.fetchFn === globalThis.fetch) {
|
|
22
|
+
this.fetchFn = this.fetchFn.bind(globalThis);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async fetch(url, params = {}) {
|
|
26
|
+
var _a, _b, _c, _d, _e;
|
|
27
|
+
const requestInit = {
|
|
28
|
+
...this.fetchOptions,
|
|
29
|
+
...params.fetchOptions,
|
|
30
|
+
headers: {
|
|
31
|
+
...(_a = this.fetchOptions) == null ? void 0 : _a.headers,
|
|
32
|
+
...(_b = params.fetchOptions) == null ? void 0 : _b.headers
|
|
33
|
+
},
|
|
34
|
+
signal: ((_c = params.fetchOptions) == null ? void 0 : _c.signal) || params.signal || ((_d = this.fetchOptions) == null ? void 0 : _d.signal)
|
|
35
|
+
};
|
|
36
|
+
if ((_e = params.fetchOptions) == null ? void 0 : _e.body) {
|
|
37
|
+
return this.queueFetch(url, requestInit);
|
|
38
|
+
} else {
|
|
39
|
+
return this.dedupeFetch(url, requestInit);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
queueFetch(url, requestInit = {}) {
|
|
43
|
+
const hostname = new URL(url).hostname;
|
|
44
|
+
if (!this.queuedFetchJobs[hostname]) {
|
|
45
|
+
this.queuedFetchJobs[hostname] = pLimit({
|
|
46
|
+
interval: UNKNOWN_RATE_LIMIT_DELAY
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
return this.queuedFetchJobs[hostname](() => this.createFetchJob(url, requestInit));
|
|
50
|
+
}
|
|
51
|
+
dedupeFetch(url, requestInit = {}) {
|
|
52
|
+
let job;
|
|
53
|
+
if (this.dedupedFetchJobs[url] && this.dedupedFetchJobs[url].has(requestInit.signal)) {
|
|
54
|
+
job = this.dedupedFetchJobs[url].get(requestInit.signal);
|
|
55
|
+
} else {
|
|
56
|
+
this.dedupedFetchJobs[url] = this.dedupedFetchJobs[url] || /* @__PURE__ */ new Map();
|
|
57
|
+
job = this.createFetchJob(url, requestInit).finally(() => {
|
|
58
|
+
var _a, _b;
|
|
59
|
+
(_a = this.dedupedFetchJobs[url]) == null ? void 0 : _a.delete(requestInit.signal);
|
|
60
|
+
if (((_b = this.dedupedFetchJobs[url]) == null ? void 0 : _b.size) === 0) {
|
|
61
|
+
delete this.dedupedFetchJobs[url];
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
this.dedupedFetchJobs[url].set(requestInit.signal, job);
|
|
65
|
+
}
|
|
66
|
+
return job;
|
|
67
|
+
}
|
|
68
|
+
createFetchJob(url, requestInit = {}) {
|
|
69
|
+
return this.fetchFn(url, requestInit).then(async (res) => {
|
|
70
|
+
let json = void 0;
|
|
71
|
+
let text = void 0;
|
|
72
|
+
if (res.ok) {
|
|
73
|
+
try {
|
|
74
|
+
json = await res.json();
|
|
75
|
+
} catch {
|
|
76
|
+
}
|
|
77
|
+
} else {
|
|
78
|
+
try {
|
|
79
|
+
text = await res.text();
|
|
80
|
+
json = JSON.parse(text);
|
|
81
|
+
} catch {
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
status: res.status,
|
|
86
|
+
headers: res.headers,
|
|
87
|
+
json,
|
|
88
|
+
text
|
|
89
|
+
};
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
export {
|
|
94
|
+
BaseClient,
|
|
95
|
+
UNKNOWN_RATE_LIMIT_DELAY
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=BaseClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseClient.js","sources":["../../../../../node_modules/@prismicio/client/dist/BaseClient.js"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nimport { pLimit } from \"./lib/pLimit.js\";\nimport { PrismicError } from \"./errors/PrismicError.js\";\nconst UNKNOWN_RATE_LIMIT_DELAY = 1500;\nclass BaseClient {\n constructor(options) {\n /**\n * The function used to make network requests to the Prismic REST API. In\n * environments where a global `fetch` function does not exist, such as\n * Node.js, this function must be provided.\n */\n __publicField(this, \"fetchFn\");\n __publicField(this, \"fetchOptions\");\n /**\n * Active queued `fetch()` jobs keyed by URL and AbortSignal (if it exists).\n */\n __publicField(this, \"queuedFetchJobs\", {});\n /**\n * Active deduped `fetch()` jobs keyed by URL and AbortSignal (if it exists).\n */\n __publicField(this, \"dedupedFetchJobs\", {});\n this.fetchOptions = options.fetchOptions;\n if (typeof options.fetch === \"function\") {\n this.fetchFn = options.fetch;\n } else if (typeof globalThis.fetch === \"function\") {\n this.fetchFn = globalThis.fetch;\n } else {\n throw new PrismicError(\"A valid fetch implementation was not provided. In environments where fetch is not available (including Node.js), a fetch implementation must be provided via a polyfill or the `fetch` option.\", void 0, void 0);\n }\n if (this.fetchFn === globalThis.fetch) {\n this.fetchFn = this.fetchFn.bind(globalThis);\n }\n }\n async fetch(url, params = {}) {\n var _a, _b, _c, _d, _e;\n const requestInit = {\n ...this.fetchOptions,\n ...params.fetchOptions,\n headers: {\n ...(_a = this.fetchOptions) == null ? void 0 : _a.headers,\n ...(_b = params.fetchOptions) == null ? void 0 : _b.headers\n },\n signal: ((_c = params.fetchOptions) == null ? void 0 : _c.signal) || params.signal || ((_d = this.fetchOptions) == null ? void 0 : _d.signal)\n };\n if ((_e = params.fetchOptions) == null ? void 0 : _e.body) {\n return this.queueFetch(url, requestInit);\n } else {\n return this.dedupeFetch(url, requestInit);\n }\n }\n queueFetch(url, requestInit = {}) {\n const hostname = new URL(url).hostname;\n if (!this.queuedFetchJobs[hostname]) {\n this.queuedFetchJobs[hostname] = pLimit({\n interval: UNKNOWN_RATE_LIMIT_DELAY\n });\n }\n return this.queuedFetchJobs[hostname](() => this.createFetchJob(url, requestInit));\n }\n dedupeFetch(url, requestInit = {}) {\n let job;\n if (this.dedupedFetchJobs[url] && this.dedupedFetchJobs[url].has(requestInit.signal)) {\n job = this.dedupedFetchJobs[url].get(requestInit.signal);\n } else {\n this.dedupedFetchJobs[url] = this.dedupedFetchJobs[url] || /* @__PURE__ */ new Map();\n job = this.createFetchJob(url, requestInit).finally(() => {\n var _a, _b;\n (_a = this.dedupedFetchJobs[url]) == null ? void 0 : _a.delete(requestInit.signal);\n if (((_b = this.dedupedFetchJobs[url]) == null ? void 0 : _b.size) === 0) {\n delete this.dedupedFetchJobs[url];\n }\n });\n this.dedupedFetchJobs[url].set(requestInit.signal, job);\n }\n return job;\n }\n createFetchJob(url, requestInit = {}) {\n return this.fetchFn(url, requestInit).then(async (res) => {\n let json = void 0;\n let text = void 0;\n if (res.ok) {\n try {\n json = await res.json();\n } catch {\n }\n } else {\n try {\n text = await res.text();\n json = JSON.parse(text);\n } catch {\n }\n }\n return {\n status: res.status,\n headers: res.headers,\n json,\n text\n };\n });\n }\n}\nexport {\n BaseClient,\n UNKNOWN_RATE_LIMIT_DELAY\n};\n//# sourceMappingURL=BaseClient.js.map\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|