shipbob-node-sdk 0.0.16 → 0.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -175
- package/dist/WebScraper.js +7 -5
- package/dist/WebScraper.js.map +1 -1
- package/dist/client/2025-07/client/client.gen.d.ts +2 -0
- package/dist/client/2025-07/client/client.gen.js +240 -0
- package/dist/client/2025-07/client/client.gen.js.map +1 -0
- package/dist/client/2025-07/client/index.d.ts +8 -0
- package/dist/client/2025-07/client/index.js +18 -0
- package/dist/client/2025-07/client/index.js.map +1 -0
- package/dist/client/2025-07/client/types.gen.d.ts +117 -0
- package/dist/client/2025-07/client/types.gen.js +4 -0
- package/dist/client/2025-07/client/types.gen.js.map +1 -0
- package/dist/client/2025-07/client/utils.gen.d.ts +33 -0
- package/dist/client/2025-07/client/utils.gen.js +242 -0
- package/dist/client/2025-07/client/utils.gen.js.map +1 -0
- package/dist/client/2025-07/client.gen.d.ts +12 -0
- package/dist/client/2025-07/client.gen.js +7 -0
- package/dist/client/2025-07/client.gen.js.map +1 -0
- package/dist/client/2025-07/core/auth.gen.d.ts +18 -0
- package/dist/client/2025-07/core/auth.gen.js +19 -0
- package/dist/client/2025-07/core/auth.gen.js.map +1 -0
- package/dist/client/2025-07/core/bodySerializer.gen.d.ts +25 -0
- package/dist/client/2025-07/core/bodySerializer.gen.js +61 -0
- package/dist/client/2025-07/core/bodySerializer.gen.js.map +1 -0
- package/dist/client/2025-07/core/params.gen.d.ts +43 -0
- package/dist/client/2025-07/core/params.gen.js +105 -0
- package/dist/client/2025-07/core/params.gen.js.map +1 -0
- package/dist/client/2025-07/core/pathSerializer.gen.d.ts +33 -0
- package/dist/client/2025-07/core/pathSerializer.gen.js +116 -0
- package/dist/client/2025-07/core/pathSerializer.gen.js.map +1 -0
- package/dist/client/2025-07/core/queryKeySerializer.gen.d.ts +18 -0
- package/dist/client/2025-07/core/queryKeySerializer.gen.js +99 -0
- package/dist/client/2025-07/core/queryKeySerializer.gen.js.map +1 -0
- package/dist/client/2025-07/core/serverSentEvents.gen.d.ts +71 -0
- package/dist/client/2025-07/core/serverSentEvents.gen.js +138 -0
- package/dist/client/2025-07/core/serverSentEvents.gen.js.map +1 -0
- package/dist/client/2025-07/core/types.gen.d.ts +78 -0
- package/dist/client/2025-07/core/types.gen.js +4 -0
- package/dist/client/2025-07/core/types.gen.js.map +1 -0
- package/dist/client/2025-07/core/utils.gen.d.ts +19 -0
- package/dist/client/2025-07/core/utils.gen.js +94 -0
- package/dist/client/2025-07/core/utils.gen.js.map +1 -0
- package/dist/client/2025-07/index.d.ts +2 -0
- package/dist/client/2025-07/index.js +73 -0
- package/dist/client/2025-07/index.js.map +1 -0
- package/dist/client/2025-07/sdk.gen.d.ts +380 -0
- package/dist/client/2025-07/sdk.gen.js +778 -0
- package/dist/client/2025-07/sdk.gen.js.map +1 -0
- package/dist/client/2025-07/types.gen.d.ts +7191 -0
- package/dist/client/2025-07/types.gen.js +4 -0
- package/dist/client/2025-07/types.gen.js.map +1 -0
- package/dist/client/2026-01/client/client.gen.d.ts +2 -0
- package/dist/client/2026-01/client/client.gen.js +240 -0
- package/dist/client/2026-01/client/client.gen.js.map +1 -0
- package/dist/client/2026-01/client/index.d.ts +8 -0
- package/dist/client/2026-01/client/index.js +18 -0
- package/dist/client/2026-01/client/index.js.map +1 -0
- package/dist/client/2026-01/client/types.gen.d.ts +117 -0
- package/dist/client/2026-01/client/types.gen.js +4 -0
- package/dist/client/2026-01/client/types.gen.js.map +1 -0
- package/dist/client/2026-01/client/utils.gen.d.ts +33 -0
- package/dist/client/2026-01/client/utils.gen.js +242 -0
- package/dist/client/2026-01/client/utils.gen.js.map +1 -0
- package/dist/client/2026-01/client.gen.d.ts +12 -0
- package/dist/client/2026-01/client.gen.js +7 -0
- package/dist/client/2026-01/client.gen.js.map +1 -0
- package/dist/client/2026-01/core/auth.gen.d.ts +18 -0
- package/dist/client/2026-01/core/auth.gen.js +19 -0
- package/dist/client/2026-01/core/auth.gen.js.map +1 -0
- package/dist/client/2026-01/core/bodySerializer.gen.d.ts +25 -0
- package/dist/client/2026-01/core/bodySerializer.gen.js +61 -0
- package/dist/client/2026-01/core/bodySerializer.gen.js.map +1 -0
- package/dist/client/2026-01/core/params.gen.d.ts +43 -0
- package/dist/client/2026-01/core/params.gen.js +105 -0
- package/dist/client/2026-01/core/params.gen.js.map +1 -0
- package/dist/client/2026-01/core/pathSerializer.gen.d.ts +33 -0
- package/dist/client/2026-01/core/pathSerializer.gen.js +116 -0
- package/dist/client/2026-01/core/pathSerializer.gen.js.map +1 -0
- package/dist/client/2026-01/core/queryKeySerializer.gen.d.ts +18 -0
- package/dist/client/2026-01/core/queryKeySerializer.gen.js +99 -0
- package/dist/client/2026-01/core/queryKeySerializer.gen.js.map +1 -0
- package/dist/client/2026-01/core/serverSentEvents.gen.d.ts +71 -0
- package/dist/client/2026-01/core/serverSentEvents.gen.js +138 -0
- package/dist/client/2026-01/core/serverSentEvents.gen.js.map +1 -0
- package/dist/client/2026-01/core/types.gen.d.ts +78 -0
- package/dist/client/2026-01/core/types.gen.js +4 -0
- package/dist/client/2026-01/core/types.gen.js.map +1 -0
- package/dist/client/2026-01/core/utils.gen.d.ts +19 -0
- package/dist/client/2026-01/core/utils.gen.js +94 -0
- package/dist/client/2026-01/core/utils.gen.js.map +1 -0
- package/dist/client/2026-01/index.d.ts +2 -0
- package/dist/client/2026-01/index.js +73 -0
- package/dist/client/2026-01/index.js.map +1 -0
- package/dist/client/2026-01/sdk.gen.d.ts +450 -0
- package/dist/client/2026-01/sdk.gen.js +848 -0
- package/dist/client/2026-01/sdk.gen.js.map +1 -0
- package/dist/client/2026-01/types.gen.d.ts +7282 -0
- package/dist/client/2026-01/types.gen.js +4 -0
- package/dist/client/2026-01/types.gen.js.map +1 -0
- package/dist/index.d.ts +20 -178
- package/dist/index.js +116 -386
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +61 -1435
- package/dist/types.js +1 -38
- package/dist/types.js.map +1 -1
- package/openapi-1.0.json +8422 -0
- package/openapi-2025-07.json +1 -0
- package/openapi-2026-01.json +1 -0
- package/package.json +6 -9
package/dist/index.js
CHANGED
|
@@ -14,425 +14,155 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
18
|
-
|
|
19
|
-
const
|
|
17
|
+
exports.createAPI = void 0;
|
|
18
|
+
const client_gen_1 = require("./client/2026-01/client.gen");
|
|
19
|
+
const sdk_gen_1 = require("./client/2026-01/sdk.gen");
|
|
20
20
|
__exportStar(require("./types"), exports);
|
|
21
21
|
__exportStar(require("./oAuth"), exports);
|
|
22
|
-
//
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
//
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
* Warehouse Receiving Order
|
|
42
|
-
*/
|
|
43
|
-
const PATH_EXPERIMENTAL_RECEIVING = '/experimental/receiving';
|
|
44
|
-
const PATH_1_0_INVENTORY = '/1.0/inventory';
|
|
45
|
-
const PATH_1_0_FULFILLMENT_CENTER = '/1.0/fulfillmentCenter';
|
|
46
|
-
const PATH_1_0_WEBHOOK = '/1.0/webhook';
|
|
47
|
-
const PATH_2_0_SIMULATE = '/2.0/simulate';
|
|
22
|
+
const REMAINING_CALLS = 'x-remaining-calls'; // in sliding window
|
|
23
|
+
const RETRY_AFTER_SECONDS = 'x-retry-after'; // seconds to wait for rate-limiting
|
|
24
|
+
const IGNORED_HEADERS = [
|
|
25
|
+
'cf-cache-status',
|
|
26
|
+
'cf-ray',
|
|
27
|
+
'connection',
|
|
28
|
+
'content-encoding',
|
|
29
|
+
'content-length',
|
|
30
|
+
// 'content-type', // useful for failed responses
|
|
31
|
+
'date',
|
|
32
|
+
'request-context',
|
|
33
|
+
'server',
|
|
34
|
+
'strict-transport-security',
|
|
35
|
+
'transfer-encoding',
|
|
36
|
+
'vary',
|
|
37
|
+
'x-powered-by',
|
|
38
|
+
REMAINING_CALLS, // part of rateLimit: {}
|
|
39
|
+
RETRY_AFTER_SECONDS, // part of rateLimit: {}
|
|
40
|
+
];
|
|
48
41
|
// single-merchant application
|
|
49
42
|
const DEFAULT_CHANNEL_APPLICATION_NAME = 'SMA';
|
|
50
43
|
/**
|
|
51
|
-
* Create
|
|
44
|
+
* Create an authenticated API client for the 2026-01 OpenAPI endpoints.
|
|
45
|
+
* Loads channels and selects one to send as `shipbob_channel_id` header on all requests (@see options parameter).
|
|
52
46
|
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
47
|
+
* The issue with this is that it calls static methods on the client, so you can't have multiple instances configured differently.
|
|
48
|
+
* We could return a client and then it could be passed explicitly to the imported methods.
|
|
55
49
|
*
|
|
56
|
-
* @param token Personal Access Token
|
|
57
|
-
* @param
|
|
58
|
-
* @param channelPredicateOrApplicationName
|
|
59
|
-
* @
|
|
50
|
+
* @param token Personal Access Token (PAT) or `accessToken` (from web scraper)
|
|
51
|
+
* @param baseUrl API base URL — defaults to `https://sandbox-api.shipbob.com`. Must provide for production.
|
|
52
|
+
* @param channelPredicateOrApplicationName Application name string or predicate to select a channel. Defaults to 'SMA'.
|
|
53
|
+
* @returns Authenticated client with channel header configured
|
|
60
54
|
*/
|
|
61
|
-
const
|
|
55
|
+
const createAPI = async (token, baseUrl = 'https://sandbox-api.shipbob.com', channelPredicateOrApplicationName = DEFAULT_CHANNEL_APPLICATION_NAME, options = {
|
|
62
56
|
logTraffic: false,
|
|
63
57
|
skipChannelLoad: false,
|
|
64
58
|
}) => {
|
|
65
|
-
if (token
|
|
66
|
-
throw new Error('
|
|
59
|
+
if (!token) {
|
|
60
|
+
throw new Error('A PAT or oAuth token is required to create a ShipBob API client');
|
|
67
61
|
}
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
'date',
|
|
85
|
-
'request-context',
|
|
86
|
-
'server',
|
|
87
|
-
'strict-transport-security',
|
|
88
|
-
'transfer-encoding',
|
|
89
|
-
'vary',
|
|
90
|
-
'x-powered-by',
|
|
91
|
-
REMAINING_CALLS, // part of rateLimit: {}
|
|
92
|
-
RETRY_AFTER_SECONDS, // part of rateLimit: {}
|
|
93
|
-
];
|
|
94
|
-
const getResult = async (res) => {
|
|
95
|
-
const remainingCalls = res.headers.has(REMAINING_CALLS) ? parseInt(res.headers.get(REMAINING_CALLS)) : null;
|
|
96
|
-
const retryAfter = res.headers.has(RETRY_AFTER_SECONDS) ? parseInt(res.headers.get(RETRY_AFTER_SECONDS)) : null;
|
|
97
|
-
const headers = Array.from(res.headers).reduce((prev, [key, val]) => {
|
|
98
|
-
if (IGNORED_HEADERS.indexOf(key) === -1) {
|
|
99
|
-
prev[key] = val;
|
|
100
|
-
}
|
|
101
|
-
return prev;
|
|
102
|
-
}, {});
|
|
103
|
-
const rateLimit = {
|
|
104
|
-
remainingCalls,
|
|
105
|
-
retryAfter,
|
|
106
|
-
};
|
|
107
|
-
const hasJsonContentHeader = (res) => {
|
|
108
|
-
// TODO: consider making this case-insensitive
|
|
109
|
-
const contentType = res.headers.has(CONTENT_TYPE) ? res.headers.get(CONTENT_TYPE) : null;
|
|
110
|
-
return (contentType &&
|
|
111
|
-
(contentType.startsWith('application/json') || contentType.startsWith('application/problem+json')));
|
|
112
|
-
};
|
|
113
|
-
if (res.ok) {
|
|
114
|
-
const isJson = hasJsonContentHeader(res);
|
|
115
|
-
if (!isJson) {
|
|
116
|
-
// NOTE: DELETE webhook is a 204 with an empty response (ie: 'content-length' = '0')
|
|
117
|
-
console.warn(' > content-type not found for JSON - returning text');
|
|
62
|
+
const normalizedBaseUrl = baseUrl.startsWith('https://') ? baseUrl : `https://${baseUrl}`;
|
|
63
|
+
client_gen_1.client.setConfig({
|
|
64
|
+
baseUrl: normalizedBaseUrl,
|
|
65
|
+
auth: token,
|
|
66
|
+
});
|
|
67
|
+
client_gen_1.client.interceptors.response.clear();
|
|
68
|
+
client_gen_1.client.interceptors.response.use((response, _request) => {
|
|
69
|
+
if (options.logTraffic) {
|
|
70
|
+
const remainingCalls = response.headers.has(REMAINING_CALLS)
|
|
71
|
+
? parseInt(response.headers.get(REMAINING_CALLS))
|
|
72
|
+
: null;
|
|
73
|
+
const retryAfter = response.headers.has(RETRY_AFTER_SECONDS)
|
|
74
|
+
? parseInt(response.headers.get(RETRY_AFTER_SECONDS))
|
|
75
|
+
: null;
|
|
76
|
+
if (remainingCalls !== null || retryAfter !== null) {
|
|
77
|
+
console.log(` > remaining calls: ${remainingCalls} - retry after: ${retryAfter}`);
|
|
118
78
|
}
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
79
|
+
const headers = Array.from(response.headers).reduce((prev, [key, val]) => {
|
|
80
|
+
if (IGNORED_HEADERS.indexOf(key) === -1) {
|
|
81
|
+
prev[key] = val;
|
|
82
|
+
}
|
|
83
|
+
return prev;
|
|
84
|
+
}, {});
|
|
85
|
+
console.log(` > Response headers: ${JSON.stringify(Object.keys(headers)
|
|
86
|
+
.map((key) => `${key}:${headers[key]}}`)
|
|
87
|
+
.join(','))}`);
|
|
127
88
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
statusCode: res.status,
|
|
136
|
-
success: false,
|
|
137
|
-
rateLimit,
|
|
138
|
-
};
|
|
139
|
-
};
|
|
140
|
-
const getHeaders = (credentials) => {
|
|
141
|
-
const headers = {
|
|
142
|
-
Authorization: `Bearer ${credentials.token}`,
|
|
143
|
-
'Content-Type': 'application/json',
|
|
144
|
-
Accept: 'application/json',
|
|
145
|
-
'User-Agent': 'shipbob-node-sdk',
|
|
146
|
-
};
|
|
147
|
-
if (credentials.channelId && apiConfiguration.sendChannelId !== false) {
|
|
148
|
-
headers['shipbob_channel_id'] = credentials.channelId.toString();
|
|
89
|
+
return response;
|
|
90
|
+
});
|
|
91
|
+
let selectedChannel = undefined;
|
|
92
|
+
if (options.skipChannelLoad !== true) {
|
|
93
|
+
const { data, error } = await (0, sdk_gen_1.get202601Channel)();
|
|
94
|
+
if (error) {
|
|
95
|
+
throw new Error(`Failed to load channels: ${JSON.stringify(error)}`);
|
|
149
96
|
}
|
|
97
|
+
const channels = data?.items ?? [];
|
|
98
|
+
selectedChannel =
|
|
99
|
+
typeof channelPredicateOrApplicationName === 'string'
|
|
100
|
+
? channels.find((c) => c.application_name === channelPredicateOrApplicationName)
|
|
101
|
+
: channelPredicateOrApplicationName(channels);
|
|
102
|
+
if (!selectedChannel?.id) {
|
|
103
|
+
throw new Error(`Did not find channel. Available application names: {${channels.map((c) => c.application_name).join(',')}}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
client_gen_1.client.interceptors.request.clear();
|
|
107
|
+
client_gen_1.client.interceptors.request.use((request, _options) => {
|
|
150
108
|
if (options.extraHeaders) {
|
|
151
109
|
for (const key of Object.keys(options.extraHeaders)) {
|
|
152
|
-
|
|
153
|
-
headers[key] = options.extraHeaders[key];
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
if (options.logTraffic === true) {
|
|
157
|
-
const headersToLog = Object.keys(headers).reduce((prev, cur) => {
|
|
158
|
-
prev.push(cur === 'Authorization' ? `${cur}:Bearer <redacted>` : `${cur}:${headers[cur]}`);
|
|
159
|
-
return prev;
|
|
160
|
-
}, []);
|
|
161
|
-
console.log(` > Headers: ${JSON.stringify(headersToLog.join(','))}`);
|
|
162
|
-
}
|
|
163
|
-
return headers;
|
|
164
|
-
};
|
|
165
|
-
/**
|
|
166
|
-
* Will GET using our PAT and SAM channel
|
|
167
|
-
*/
|
|
168
|
-
const httpGet = async (credentials, path, query) => {
|
|
169
|
-
const url = new node_url_1.URL(`https://${apiBaseUrl}${path}`);
|
|
170
|
-
if (query) {
|
|
171
|
-
for (const param of Object.keys(query)) {
|
|
172
|
-
// the number[] is probably wrong
|
|
173
|
-
const val = typeof query[param] === 'string' ? query[param] : query[param].toString();
|
|
174
|
-
url.searchParams.set(param, val);
|
|
110
|
+
request.headers.set(key, options.extraHeaders[key]);
|
|
175
111
|
}
|
|
176
|
-
if (options.logTraffic) {
|
|
177
|
-
console.log(` > before: ${url.href}`);
|
|
178
|
-
}
|
|
179
|
-
// The API is using unescaped reserved characters. Since we aren't passing "," or ":" ever then this is safe (for one person).
|
|
180
|
-
// If a caller is searching for ie: products with those characters in the name then this may fail.
|
|
181
|
-
// ie: https://.../experimental/product?sku=any%3A123%2C456 => https://.../experimental/product?sku=any:123,456
|
|
182
|
-
// NOTE: both replacements are needed for above to work
|
|
183
|
-
url.search = url.search.replace(/%2C/g, ',').replace(/%3A/g, ':'); //;
|
|
184
|
-
}
|
|
185
|
-
const opts = {
|
|
186
|
-
method: 'GET',
|
|
187
|
-
headers: getHeaders(credentials),
|
|
188
|
-
};
|
|
189
|
-
if (options.logTraffic) {
|
|
190
|
-
console.log(` > GET: ${url.href}`);
|
|
191
|
-
}
|
|
192
|
-
const res = await fetch(url.href, opts);
|
|
193
|
-
return getResult(res);
|
|
194
|
-
};
|
|
195
|
-
/**
|
|
196
|
-
* Will default POST to Shipbob a request as JSON. Can be used for any type of request
|
|
197
|
-
*/
|
|
198
|
-
const httpData = async (credentials, data, path, method = 'POST') => {
|
|
199
|
-
if (credentials.channelId === undefined) {
|
|
200
|
-
throw new Error('Channel ID missing');
|
|
201
|
-
}
|
|
202
|
-
const url = new node_url_1.URL(`https://${apiBaseUrl}${path}`);
|
|
203
|
-
const opts = {
|
|
204
|
-
method,
|
|
205
|
-
headers: getHeaders(credentials),
|
|
206
|
-
body: data !== undefined ? JSON.stringify(data) : undefined,
|
|
207
|
-
};
|
|
208
|
-
if (options.logTraffic) {
|
|
209
|
-
console.log(` > ${method} ${url.href}`);
|
|
210
112
|
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
};
|
|
214
|
-
if (options.skipChannelLoad !== true) {
|
|
215
|
-
const channelsResponse = await httpGet(credentials, PATH_1_0_CHANNEL);
|
|
216
|
-
if (!channelsResponse.success) {
|
|
217
|
-
throw new Error(` > GET /1.0/channel -> ${channelsResponse.statusCode} '${channelsResponse.data}'`);
|
|
218
|
-
}
|
|
219
|
-
const selectedChannel = typeof channelPredicateOrApplicationName === 'string'
|
|
220
|
-
? channelsResponse.data.find((c) => c.application_name === channelPredicateOrApplicationName)
|
|
221
|
-
: channelPredicateOrApplicationName(channelsResponse.data);
|
|
222
|
-
if (selectedChannel === undefined) {
|
|
223
|
-
throw new Error(`Did not find channel. Available application names: {${channelsResponse.data.map((c) => c.application_name).join(',')}}`);
|
|
113
|
+
if (options.sendChannelId && selectedChannel && selectedChannel.id) {
|
|
114
|
+
request.headers.set('shipbob_channel_id', selectedChannel.id.toString());
|
|
224
115
|
}
|
|
116
|
+
// Their API only works using unescaped reserved characters. Since we aren't passing "," or ":" ever then this is safe (for us).
|
|
117
|
+
// If a caller is searching for ie: products with those characters in the name then this may fail.
|
|
118
|
+
// ie: https://.../experimental/product?sku=any%3A123%2C456 => https://.../experimental/product?sku=any:123,456
|
|
119
|
+
// NOTE: both replacements are needed for above to work
|
|
120
|
+
const url = request.url.replace(/%2C/g, ',').replace(/%3A/g, ':');
|
|
121
|
+
const newRequest = new Request(url, request);
|
|
225
122
|
if (options.logTraffic) {
|
|
226
|
-
console.log(
|
|
123
|
+
console.log(`> ${newRequest.method}: '${newRequest.url}'`);
|
|
124
|
+
if (newRequest.method !== 'GET' && newRequest.bodyUsed) {
|
|
125
|
+
const utf8Stream = newRequest.body?.pipeThrough(new TextDecoderStream());
|
|
126
|
+
console.log(` > body: ${utf8Stream}`);
|
|
127
|
+
}
|
|
227
128
|
}
|
|
228
|
-
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
return {
|
|
234
|
-
get sendingChannelIds() {
|
|
235
|
-
return apiConfiguration.sendChannelId;
|
|
236
|
-
},
|
|
237
|
-
set sendChannelId(value) {
|
|
238
|
-
apiConfiguration.sendChannelId = value;
|
|
239
|
-
},
|
|
240
|
-
/**
|
|
241
|
-
* Useful to retrive cursor paths (ie: next) or header 'next-page'. You should call like:
|
|
242
|
-
*
|
|
243
|
-
* `api.getPath<ExperimentalPagedResult<GetProductExperimentalResponse>>('/Product?cursor=H4sIAAA...')`
|
|
244
|
-
*
|
|
245
|
-
* NOTE: can be called without typings. ie: `api.getPath('/Product?cursor=H4sIAAA...')`
|
|
246
|
-
* @param path full path with leading slash
|
|
247
|
-
* @returns response with expected typings you can provide.
|
|
248
|
-
*/
|
|
249
|
-
getPath: async (path) => {
|
|
250
|
-
return await httpGet(credentials, path);
|
|
251
|
-
},
|
|
252
|
-
getChannels: async () => {
|
|
253
|
-
return await httpGet(credentials, PATH_1_0_CHANNEL);
|
|
254
|
-
},
|
|
255
|
-
/**
|
|
256
|
-
* Gets by *their* product id
|
|
257
|
-
*/
|
|
258
|
-
getProductById: async (productId) => {
|
|
259
|
-
const getProductResult = await httpGet(credentials, `${PATH_1_0_PRODUCT}/${productId}`);
|
|
260
|
-
return getProductResult;
|
|
261
|
-
},
|
|
262
|
-
getProducts1_0: async (query) => {
|
|
263
|
-
return await httpGet(credentials, PATH_1_0_PRODUCT, query);
|
|
264
|
-
},
|
|
265
|
-
/**
|
|
266
|
-
* NOTE: you need to use the headers (part of this client response) to page the results.
|
|
267
|
-
* page-number='1'
|
|
268
|
-
* page-size='50'
|
|
269
|
-
* total-count='1'
|
|
270
|
-
* total-pages='1'
|
|
271
|
-
*
|
|
272
|
-
* NOTE: we can probably pass more than "variants" prop. We could on the /1.0/product endpoint
|
|
273
|
-
* NOTE: This PATCH functionality will be available in the next version available in ShipBob next large release January 2025, it may require extra scope.
|
|
274
|
-
*/
|
|
275
|
-
updateProduct2_0: async (productId, variants) => {
|
|
276
|
-
return await httpData(credentials, {
|
|
277
|
-
variants,
|
|
278
|
-
}, `${PATH_2_0_PRODUCT}/${productId}`, 'PATCH');
|
|
279
|
-
},
|
|
280
|
-
/**
|
|
281
|
-
* Unsure how this is different from /2.0/product except for "barcode" -> "barcodes"
|
|
282
|
-
*/
|
|
283
|
-
updateProductExperimental: async (productId, variants) => {
|
|
284
|
-
return await httpData(credentials, {
|
|
285
|
-
variants,
|
|
286
|
-
}, `${PATH_EXPERIMENTAL_PRODUCT}/${productId}`, 'PATCH');
|
|
287
|
-
},
|
|
288
|
-
/**
|
|
289
|
-
* Not supported here, but:
|
|
290
|
-
* Some search filters allow for operators (equals, not equals, starts with, ends with, contains, etc) to get more exact values. When filtering with an operator, the query string will look like the below:
|
|
291
|
-
* Example: /product?{filter}={operator}:{value}
|
|
292
|
-
* Example: /product?sku=any:shirt-a,shirt-b,shirt-c Find products that match any of these SKUs
|
|
293
|
-
* Example: /product?onHandQuantity=gt:0 Find products where OnHandQty greater than 0
|
|
294
|
-
*/
|
|
295
|
-
getProducts2_0: async (query) => {
|
|
296
|
-
return await httpGet(credentials, PATH_2_0_PRODUCT, query);
|
|
297
|
-
},
|
|
298
|
-
/**
|
|
299
|
-
* Note sure how this is different from /2.0/product. Only notable difference is "barcodes" type from string to object.
|
|
300
|
-
*/
|
|
301
|
-
getProductsExperimental: async (query) => {
|
|
302
|
-
return await httpGet(credentials, PATH_EXPERIMENTAL_PRODUCT, query);
|
|
303
|
-
},
|
|
304
|
-
createProduct1_0: async (product) => {
|
|
305
|
-
return await httpData(credentials, product, PATH_1_0_PRODUCT);
|
|
306
|
-
},
|
|
307
|
-
/**
|
|
308
|
-
* The request part for variant is not accurate. This is just for testing - there are no official docs.
|
|
309
|
-
*/
|
|
310
|
-
createProduct2_0: async (product) => {
|
|
311
|
-
return await httpData(credentials, product, PATH_2_0_PRODUCT);
|
|
312
|
-
},
|
|
313
|
-
/**
|
|
314
|
-
* Unsure how this is different from '2.0/product' except for "barcode" -> "barcodes"
|
|
315
|
-
*/
|
|
316
|
-
createProductExperimental: async (product) => {
|
|
317
|
-
return await httpData(credentials, product, PATH_EXPERIMENTAL_PRODUCT);
|
|
318
|
-
},
|
|
319
|
-
/**
|
|
320
|
-
* Look in the returned headers to get paging information.
|
|
321
|
-
*/
|
|
322
|
-
getOrders: async (query) => {
|
|
323
|
-
return await httpGet(credentials, PATH_1_0_ORDER, query);
|
|
324
|
-
},
|
|
325
|
-
/**
|
|
326
|
-
* Get one Shipment by Order Id and Shipment Id
|
|
327
|
-
*/
|
|
328
|
-
getOneShipmentByOrderIdAndShipmentId: async (orderId, shipmentId) => {
|
|
329
|
-
const path = `${PATH_1_0_ORDER}/${orderId}/shipment/${shipmentId}`;
|
|
330
|
-
return await httpGet(credentials, path);
|
|
331
|
-
},
|
|
332
|
-
/**
|
|
333
|
-
* Get one Shipment by Shipment Id
|
|
334
|
-
*/
|
|
335
|
-
getOneShipment: async (shipmentId) => {
|
|
336
|
-
const path = `${PATH_1_0_SHIPMENT}/${shipmentId}`;
|
|
337
|
-
return await httpGet(credentials, path);
|
|
338
|
-
},
|
|
339
|
-
/**
|
|
340
|
-
* NOTE: After you place an order it is not immediately available on the "getOrders" endpoint.
|
|
341
|
-
* You are best off using the returned result. ShipBob suggests 5 seconds as permitted delay time.
|
|
342
|
-
*/
|
|
343
|
-
placeOrder: async (order) => {
|
|
344
|
-
return await httpData(credentials, order, PATH_1_0_ORDER);
|
|
345
|
-
},
|
|
346
|
-
/**
|
|
347
|
-
* Cancel single Order by Order Id
|
|
348
|
-
*
|
|
349
|
-
* @param orderId The order Id to cancel
|
|
350
|
-
*/
|
|
351
|
-
cancelSingleOrderByOrderId: async (orderId) => {
|
|
352
|
-
return await httpData(credentials, undefined, `${PATH_1_0_ORDER}/${orderId}/cancel`);
|
|
353
|
-
},
|
|
354
|
-
getShippingMethods: async () => {
|
|
355
|
-
return await httpGet(credentials, PATH_1_0_SHIPPINGMETHOD);
|
|
356
|
-
},
|
|
357
|
-
/**
|
|
358
|
-
* The responses don't indicate if they were registered with a channel or not.
|
|
359
|
-
*/
|
|
360
|
-
getWebhooks: async () => {
|
|
361
|
-
return await httpGet(credentials, PATH_1_0_WEBHOOK);
|
|
129
|
+
return newRequest;
|
|
130
|
+
});
|
|
131
|
+
client_gen_1.client.setConfig({
|
|
132
|
+
headers: {
|
|
133
|
+
'User-Agent': 'shipbob-node-sdk',
|
|
362
134
|
},
|
|
135
|
+
});
|
|
136
|
+
// allows caller to alter options after API creation (same instance)
|
|
137
|
+
return {
|
|
138
|
+
options,
|
|
363
139
|
/**
|
|
364
140
|
*
|
|
365
|
-
* @param
|
|
366
|
-
* @param sendChannelId defaults `true`. Not providing channel id will (I think) subscribe to all channels. You need to match when unsubscribing.
|
|
141
|
+
* @param path should include leading slash (api version is included automatically)
|
|
367
142
|
* @returns
|
|
368
143
|
*/
|
|
369
|
-
|
|
370
|
-
|
|
144
|
+
get: async (path) => {
|
|
145
|
+
const response = await client_gen_1.client.get({
|
|
146
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
147
|
+
url: `/2026-01${path}`,
|
|
148
|
+
});
|
|
149
|
+
return response;
|
|
371
150
|
},
|
|
372
151
|
/**
|
|
373
|
-
* Can generate 500 response with data: "The wait operation timed out." If so, check your channel id (or lack thereof) matches the subscription registration.
|
|
374
152
|
*
|
|
375
|
-
*
|
|
376
|
-
*
|
|
377
|
-
* @param id channelId from getWebhooks()
|
|
153
|
+
* @param path should include leading slash (api version is included automatically)
|
|
154
|
+
* @param body request body
|
|
378
155
|
* @returns
|
|
379
156
|
*/
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
return await httpData(credentials, request, PATH_2_0_RECEIVING);
|
|
388
|
-
},
|
|
389
|
-
getWarehouseReceivingOrder: async (orderId) => {
|
|
390
|
-
return await httpGet(credentials, `${PATH_2_0_RECEIVING}/${orderId}`);
|
|
391
|
-
},
|
|
392
|
-
getWarehouseReceivingOrderBoxes: async (orderId) => {
|
|
393
|
-
return await httpGet(credentials, `${PATH_2_0_RECEIVING}/${orderId}/boxes`);
|
|
394
|
-
},
|
|
395
|
-
/**
|
|
396
|
-
* NOTE: should verify that response matches 1.0 product endpoint
|
|
397
|
-
*/
|
|
398
|
-
getReceivingExtended: async (query) => {
|
|
399
|
-
return await httpGet(credentials, PATH_2_0_RECEIVING_EXTENDED, query);
|
|
400
|
-
},
|
|
401
|
-
/**
|
|
402
|
-
* This must be for setting/clearing if it has been synced externally.
|
|
403
|
-
*
|
|
404
|
-
* Use case is interop via searching for "completed" that are not yet synced.
|
|
405
|
-
*
|
|
406
|
-
* NOTE: this is tagged experimental, so might change or be dropped
|
|
407
|
-
*/
|
|
408
|
-
experimentalReceivingSetExternalSync: async (ids, isExternalSync) => {
|
|
409
|
-
return await httpData(credentials, {
|
|
410
|
-
ids,
|
|
411
|
-
is_external_sync: isExternalSync,
|
|
412
|
-
}, `${PATH_EXPERIMENTAL_RECEIVING}/:set-external-sync`);
|
|
413
|
-
},
|
|
414
|
-
/**
|
|
415
|
-
* NOTE: should verify the response type matches the product 1.0 endpoint
|
|
416
|
-
*/
|
|
417
|
-
listInventory: async (query) => {
|
|
418
|
-
return await httpGet(credentials, PATH_1_0_INVENTORY, query);
|
|
419
|
-
},
|
|
420
|
-
/**
|
|
421
|
-
* Only for sandbox: https://developer.shipbob.com/sandbox-simulations/
|
|
422
|
-
*/
|
|
423
|
-
simulateShipment: async (request) => {
|
|
424
|
-
return await httpData(credentials, request, `${PATH_2_0_SIMULATE}/shipment`);
|
|
425
|
-
},
|
|
426
|
-
/**
|
|
427
|
-
*
|
|
428
|
-
* Only for sandbox: https://developer.shipbob.com/sandbox-simulations/
|
|
429
|
-
*
|
|
430
|
-
* @param simulationId UUID from "/2.0/simulate/shipment" call
|
|
431
|
-
*/
|
|
432
|
-
getSimulationStatus: async (simulationId) => {
|
|
433
|
-
return await httpGet(credentials, `${PATH_2_0_SIMULATE}/status/${simulationId}`);
|
|
157
|
+
post: async (path, body) => {
|
|
158
|
+
const response = await client_gen_1.client.post({
|
|
159
|
+
security: [{ scheme: 'bearer', type: 'http' }],
|
|
160
|
+
url: `/2026-01${path}`,
|
|
161
|
+
body,
|
|
162
|
+
});
|
|
163
|
+
return response;
|
|
434
164
|
},
|
|
435
165
|
};
|
|
436
166
|
};
|
|
437
|
-
exports.
|
|
167
|
+
exports.createAPI = createAPI;
|
|
438
168
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mEAAmE;AACnE,uCAA+B,CAAC,SAAS;AAgCzC,0CAAwB;AACxB,0CAAwB;AAgDxB,WAAW;AACX,MAAM,gBAAgB,GAAG,cAAc,CAAC;AACxC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AACxC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AACxC,MAAM,yBAAyB,GAAG,uBAAuB,CAAC;AAE1D,SAAS;AACT,MAAM,cAAc,GAAG,YAAY,CAAC;AACpC,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AAEtD,YAAY;AACZ,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAE1C;;GAEG;AACH,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAC5C;;GAEG;AACH,MAAM,2BAA2B,GAAG,yBAAyB,CAAC;AAC9D;;GAEG;AACH,MAAM,2BAA2B,GAAG,yBAAyB,CAAC;AAE9D,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAC5C,MAAM,2BAA2B,GAAG,wBAAwB,CAAC;AAC7D,MAAM,gBAAgB,GAAG,cAAc,CAAC;AACxC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAE1C,8BAA8B;AAC9B,MAAM,gCAAgC,GAAG,KAAK,CAAC;AAE/C;;;;;;;;;;GAUG;AACI,MAAM,gBAAgB,GAAG,KAAK,EACnC,KAAyB,EACzB,UAAU,GAAG,yBAAyB,EACtC,oCAEqD,gCAAgC,EACrF,UAAyB;IACvB,UAAU,EAAE,KAAK;IACjB,eAAe,EAAE,KAAK;CACvB,EACD,EAAE;IACF,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,WAAW,GAAgB;QAC/B,KAAK;KACN,CAAC;IAMF,MAAM,gBAAgB,GAAqB;QACzC,aAAa,EAAE,OAAO,CAAC,aAAa,KAAK,KAAK;KAC/C,CAAC;IAEF,MAAM,eAAe,GAAG,mBAAmB,CAAC,CAAC,oBAAoB;IACjE,MAAM,mBAAmB,GAAG,eAAe,CAAC,CAAC,oCAAoC;IACjF,MAAM,YAAY,GAAG,cAAc,CAAC;IAEpC,MAAM,eAAe,GAAG;QACtB,iBAAiB;QACjB,QAAQ;QACR,YAAY;QACZ,kBAAkB;QAClB,gBAAgB;QAChB,iDAAiD;QACjD,MAAM;QACN,iBAAiB;QACjB,QAAQ;QACR,2BAA2B;QAC3B,mBAAmB;QACnB,MAAM;QACN,cAAc;QACd,eAAe,EAAE,wBAAwB;QACzC,mBAAmB,EAAE,wBAAwB;KAC9C,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,EAAK,GAAa,EAA4B,EAAE;QACrE,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE7G,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEjH,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAyB,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;YAC1F,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YAClB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,MAAM,SAAS,GAAG;YAChB,cAAc;YACd,UAAU;SACX,CAAC;QAEF,MAAM,oBAAoB,GAAG,CAAC,GAAa,EAAE,EAAE;YAC7C,8CAA8C;YAC9C,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACzF,OAAO,CACL,WAAW;gBACX,CAAC,WAAW,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC,CACnG,CAAC;QACJ,CAAC,CAAC;QACF,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,oFAAoF;gBACpF,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAO,CAAC,CAAC,CAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAO,CAAC;YAC5E,OAAO;gBACL,IAAI;gBACJ,OAAO;gBACP,UAAU,EAAE,GAAG,CAAC,MAAM;gBACtB,OAAO,EAAE,IAAI;gBACb,SAAS;aACV,CAAC;QACJ,CAAC;QAED,kDAAkD;QAClD,kCAAkC;QAClC,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAE1D,OAAO;YACL,IAAI;YACJ,OAAO;YACP,UAAU,EAAE,GAAG,CAAC,MAAM;YACtB,OAAO,EAAE,KAAK;YACd,SAAS;SACV,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,WAAwB,EAAe,EAAE;QAC3D,MAAM,OAAO,GAAgB;YAC3B,aAAa,EAAE,UAAU,WAAW,CAAC,KAAK,EAAE;YAC5C,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;YAC1B,YAAY,EAAE,kBAAkB;SACjC,CAAC;QAEF,IAAI,WAAW,CAAC,SAAS,IAAI,gBAAgB,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;YACtE,OAAO,CAAC,oBAAoB,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACnE,CAAC;QAED,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;gBACpD,8CAA8C;gBAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAChC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAW,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;gBACvE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,eAAe,CAAC,CAAC,CAAC,GAAG,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAE3F,OAAO,IAAI,CAAC;YACd,CAAC,EAAE,EAAE,CAAC,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF;;OAEG;IACH,MAAM,OAAO,GAAG,KAAK,EACnB,WAAwB,EACxB,IAAY,EACZ,KAA4D,EAClC,EAAE;QAC5B,MAAM,GAAG,GAAG,IAAI,cAAG,CAAC,WAAW,UAAU,GAAG,IAAI,EAAE,CAAC,CAAC;QACpD,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvC,iCAAiC;gBACjC,MAAM,GAAG,GAAG,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACtF,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACnC,CAAC;YAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACxC,CAAC;YACD,+HAA+H;YAC/H,kGAAkG;YAClG,+GAA+G;YAC/G,uDAAuD;YACvD,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG;QACxE,CAAC;QAED,MAAM,IAAI,GAAG;YACX,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC;SACjC,CAAC;QAEF,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF;;OAEG;IACH,MAAM,QAAQ,GAAG,KAAK,EACpB,WAAwB,EACxB,IAAwB,EACxB,IAAY,EACZ,SAAsC,MAAM,EAClB,EAAE;QAC5B,IAAI,WAAW,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,cAAG,CAAC,WAAW,UAAU,GAAG,IAAI,EAAE,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAG;YACX,MAAM;YACN,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC;YAChC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC5D,CAAC;QAEF,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,IAAI,OAAO,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;QACrC,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAY,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAEjF,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,0BAA0B,gBAAgB,CAAC,UAAU,KAAK,gBAAgB,CAAC,IAAc,GAAG,CAAC,CAAC;QAChH,CAAC;QAED,MAAM,eAAe,GACnB,OAAO,iCAAiC,KAAK,QAAQ;YACnD,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,KAAK,iCAAiC,CAAC;YAC7F,CAAC,CAAC,iCAAiC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE/D,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,wDAAwD,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAC1H,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CACT,wBAAwB,eAAe,CAAC,EAAE,4BAA4B,eAAe,CAAC,gBAAgB,GAAG,CAC1G,CAAC;QACJ,CAAC;QAED,WAAW,CAAC,SAAS,GAAG,eAAe,CAAC,EAAE,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO;QACL,IAAI,iBAAiB;YACnB,OAAO,gBAAgB,CAAC,aAAa,CAAC;QACxC,CAAC;QACD,IAAI,aAAa,CAAC,KAAc;YAC9B,gBAAgB,CAAC,aAAa,GAAG,KAAK,CAAC;QACzC,CAAC;QAED;;;;;;;;WAQG;QACH,OAAO,EAAE,KAAK,EAAK,IAAY,EAAE,EAAE;YACjC,OAAO,MAAM,OAAO,CAAI,WAAW,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;QACD,WAAW,EAAE,KAAK,IAAI,EAAE;YACtB,OAAO,MAAM,OAAO,CAAU,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC/D,CAAC;QACD;;WAEG;QACH,cAAc,EAAE,KAAK,EAAE,SAAiB,EAAE,EAAE;YAC1C,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAsB,WAAW,EAAE,GAAG,gBAAgB,IAAI,SAAS,EAAE,CAAC,CAAC;YAC7G,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QACD,cAAc,EAAE,KAAK,EAAE,KAAiC,EAAE,EAAE;YAC1D,OAAO,MAAM,OAAO,CAAwB,WAAW,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;QACpF,CAAC;QACD;;;;;;;;;WASG;QACH,gBAAgB,EAAE,KAAK,EAAE,SAAiB,EAAE,QAAoC,EAAE,EAAE;YAClF,OAAO,MAAM,QAAQ,CACnB,WAAW,EACX;gBACE,QAAQ;aACT,EACD,GAAG,gBAAgB,IAAI,SAAS,EAAE,EAClC,OAAO,CACR,CAAC;QACJ,CAAC;QACD;;WAEG;QACH,yBAAyB,EAAE,KAAK,EAAE,SAAiB,EAAE,QAA6C,EAAE,EAAE;YACpG,OAAO,MAAM,QAAQ,CACnB,WAAW,EACX;gBACE,QAAQ;aACT,EACD,GAAG,yBAAyB,IAAI,SAAS,EAAE,EAC3C,OAAO,CACR,CAAC;QACJ,CAAC;QACD;;;;;;WAMG;QACH,cAAc,EAAE,KAAK,EAAE,KAA8B,EAAE,EAAE;YACvD,OAAO,MAAM,OAAO,CAA0B,WAAW,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;QACtF,CAAC;QACD;;WAEG;QACH,uBAAuB,EAAE,KAAK,EAAE,KAAuC,EAAE,EAAE;YACzE,OAAO,MAAM,OAAO,CAClB,WAAW,EACX,yBAAyB,EACzB,KAAK,CACN,CAAC;QACJ,CAAC;QACD,gBAAgB,EAAE,KAAK,EAAE,OAA6E,EAAE,EAAE;YACxG,OAAO,MAAM,QAAQ,CAAqB,WAAW,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;QACpF,CAAC;QACD;;WAEG;QACH,gBAAgB,EAAE,KAAK,EAAE,OAAgF,EAAE,EAAE;YAC3G,OAAO,MAAM,QAAQ,CAAqB,WAAW,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;QACpF,CAAC;QACD;;WAEG;QACH,yBAAyB,EAAE,KAAK,EAAE,OAIjC,EAAE,EAAE;YACH,OAAO,MAAM,QAAQ,CAAqB,WAAW,EAAE,OAAO,EAAE,yBAAyB,CAAC,CAAC;QAC7F,CAAC;QACD;;WAEG;QACH,SAAS,EAAE,KAAK,EAAE,KAAsC,EAAE,EAAE;YAC1D,OAAO,MAAM,OAAO,CAAU,WAAW,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QACpE,CAAC;QACD;;WAEG;QACH,oCAAoC,EAAE,KAAK,EAAE,OAAe,EAAE,UAAkB,EAAE,EAAE;YAClF,MAAM,IAAI,GAAG,GAAG,cAAc,IAAI,OAAO,aAAa,UAAU,EAAE,CAAC;YACnE,OAAO,MAAM,OAAO,CAAgB,WAAW,EAAE,IAAI,CAAC,CAAC;QACzD,CAAC;QACD;;WAEG;QACH,cAAc,EAAE,KAAK,EAAE,UAAkB,EAAE,EAAE;YAC3C,MAAM,IAAI,GAAG,GAAG,iBAAiB,IAAI,UAAU,EAAE,CAAC;YAClD,OAAO,MAAM,OAAO,CAAgB,WAAW,EAAE,IAAI,CAAC,CAAC;QACzD,CAAC;QACD;;;WAGG;QACH,UAAU,EAAE,KAAK,EAAE,KAAwB,EAAE,EAAE;YAC7C,OAAO,MAAM,QAAQ,CAAQ,WAAW,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QACnE,CAAC;QACD;;;;WAIG;QACH,0BAA0B,EAAE,KAAK,EAAE,OAAe,EAAE,EAAE;YACpD,OAAO,MAAM,QAAQ,CAAsB,WAAW,EAAE,SAAS,EAAE,GAAG,cAAc,IAAI,OAAO,SAAS,CAAC,CAAC;QAC5G,CAAC;QACD,kBAAkB,EAAE,KAAK,IAAI,EAAE;YAC7B,OAAO,MAAM,OAAO,CAAmB,WAAW,EAAE,uBAAuB,CAAC,CAAC;QAC/E,CAAC;QACD;;WAEG;QACH,WAAW,EAAE,KAAK,IAAI,EAAE;YACtB,OAAO,MAAM,OAAO,CAAY,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACjE,CAAC;QACD;;;;;WAKG;QACH,2BAA2B,EAAE,KAAK,EAAE,OAA2C,EAAE,EAAE;YACjF,OAAO,MAAM,QAAQ,CAAU,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;QACpF,CAAC;QACD;;;;;;;WAOG;QACH,6BAA6B,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE;YAClD,OAAO,MAAM,QAAQ,CAAU,WAAW,EAAE,SAAS,EAAE,GAAG,gBAAgB,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QAChG,CAAC;QACD,qBAAqB,EAAE,KAAK,IAAI,EAAE;YAChC,OAAO,MAAM,OAAO,CAAsB,WAAW,EAAE,2BAA2B,CAAC,CAAC;QACtF,CAAC;QACD,6BAA6B,EAAE,KAAK,EAAE,OAAuC,EAAE,EAAE;YAC/E,OAAO,MAAM,QAAQ,CAAkC,WAAW,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACnG,CAAC;QACD,0BAA0B,EAAE,KAAK,EAAE,OAAe,EAAE,EAAE;YACpD,OAAO,MAAM,OAAO,CAAkC,WAAW,EAAE,GAAG,kBAAkB,IAAI,OAAO,EAAE,CAAC,CAAC;QACzG,CAAC;QACD,+BAA+B,EAAE,KAAK,EAAE,OAAe,EAAE,EAAE;YACzD,OAAO,MAAM,OAAO,CAAuC,WAAW,EAAE,GAAG,kBAAkB,IAAI,OAAO,QAAQ,CAAC,CAAC;QACpH,CAAC;QACD;;WAEG;QACH,oBAAoB,EAAE,KAAK,EACzB,KAGE,EACF,EAAE;YACF,OAAO,MAAM,OAAO,CAAwB,WAAW,EAAE,2BAA2B,EAAE,KAAK,CAAC,CAAC;QAC/F,CAAC;QACD;;;;;;WAMG;QACH,oCAAoC,EAAE,KAAK,EAAE,GAAa,EAAE,cAAuB,EAAE,EAAE;YACrF,OAAO,MAAM,QAAQ,CACnB,WAAW,EACX;gBACE,GAAG;gBACH,gBAAgB,EAAE,cAAc;aACjC,EACD,GAAG,2BAA2B,qBAAqB,CACpD,CAAC;QACJ,CAAC;QACD;;WAEG;QACH,aAAa,EAAE,KAAK,EAAE,KAA0C,EAAE,EAAE;YAClE,OAAO,MAAM,OAAO,CAA0B,WAAW,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;QACxF,CAAC;QACD;;WAEG;QACH,gBAAgB,EAAE,KAAK,EAAE,OAAgC,EAAE,EAAE;YAC3D,OAAO,MAAM,QAAQ,CAA2B,WAAW,EAAE,OAAO,EAAE,GAAG,iBAAiB,WAAW,CAAC,CAAC;QACzG,CAAC;QACD;;;;;WAKG;QACH,mBAAmB,EAAE,KAAK,EAAE,YAAoB,EAAE,EAAE;YAClD,OAAO,MAAM,OAAO,CAAqB,WAAW,EAAE,GAAG,iBAAiB,WAAW,YAAY,EAAE,CAAC,CAAC;QACvG,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAhdW,QAAA,gBAAgB,oBAgd3B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|