shipbob-node-sdk 0.0.6 → 0.0.7
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 +82 -10
- package/dist/index.d.ts +8 -1
- package/dist/index.js +31 -14
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +9 -2
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
# ShipBob Node SDK
|
|
2
2
|
First of all there are no official SDKs for ShipBob. I'm just dropping this here, in case it will speed up somebody else getting started using their API.
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
This library uses the built-in node.js fetch, so you'll want a newer node version with undici support.
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Not really sure anybody will ever need this as most common platforms probably have integrations. There are a couple of other community SDKs. They do not have 2.0 endpoints:
|
|
6
|
+
Not really sure anybody will ever need this as many common platforms probably have integrations. There are a couple of other community SDKs. They do not have `/2.0/*` or `/experimental/*` endpoints:
|
|
9
7
|
- [shipbob-sdk-python](https://github.com/community-phone-company/shipbob-sdk-python)
|
|
10
8
|
- [shipbob-go](https://github.com/stryd/shipbob-go) - generated from Open API
|
|
11
9
|
|
|
12
|
-
NOTE: I did not notice until all this code was written that ShipBob had published an Open API spec :facepunch:. You may have better luck generating your own client.
|
|
10
|
+
NOTE: I did not notice until all this code was written that ShipBob had published an Open API spec :facepunch:. You may have better luck generating your own client. Maybe those generated typings at least belong here.
|
|
13
11
|
```bash
|
|
14
12
|
$ yarn generate:client
|
|
15
13
|
```
|
|
@@ -105,9 +103,9 @@ Kindly note as it's experimental subject to change/removal :skull:
|
|
|
105
103
|
|
|
106
104
|
## Receiving
|
|
107
105
|
- :heavy_check_mark: Get Fulfillment Centers: api.getFulfillmentCenters()
|
|
108
|
-
- :heavy_check_mark: Get Warehouse Receiving Order
|
|
109
|
-
- :heavy_check_mark: Get Warehouse Receiving Order Boxes
|
|
110
|
-
-
|
|
106
|
+
- :heavy_check_mark: Get Warehouse Receiving Order: api.getWarehouseReceivingOrder(...)
|
|
107
|
+
- :heavy_check_mark: Get Warehouse Receiving Order Boxes: api.getWarehouseReceivingOrderBoxes(...)
|
|
108
|
+
- :x: Get Multiple Warehouse Receiving Orders (using receiving-extended instead)
|
|
111
109
|
- :heavy_check_mark: Create Warehouse Receiving Order: api.createWarehouseReceivingOrder(...)
|
|
112
110
|
- :x: Get Warehouse Receiving Order Box Labels
|
|
113
111
|
- :x: Cancel Warehouse Receiving Order (could be done manually, if needed?)
|
|
@@ -119,7 +117,7 @@ Kindly note as it's experimental subject to change/removal :skull:
|
|
|
119
117
|
- Cancel Warehouse Receiving Order
|
|
120
118
|
|
|
121
119
|
## Receiving-Extended (not in API docs)
|
|
122
|
-
- :heavy_check_mark: Get Receiving Extended: api.getReceivingExtended(...)
|
|
120
|
+
- :heavy_check_mark: Get Receiving Extended: api.getReceivingExtended(...) (will include this in a recipe that uses SetExternalSync)
|
|
123
121
|
|
|
124
122
|
## Receiving Experimental
|
|
125
123
|
Kindly note as it's experimental subject to change/removal :skull:
|
|
@@ -135,4 +133,78 @@ I'll try to share a recipe for using this for marking completed WROs.
|
|
|
135
133
|
## Locations
|
|
136
134
|
- :x: Get locations
|
|
137
135
|
|
|
138
|
-
|
|
136
|
+
# Building locally
|
|
137
|
+
For making changes to this library locally - use `yarn link` to test out the changes easily. This is useful if you would like to contribute.
|
|
138
|
+
|
|
139
|
+
# Testing
|
|
140
|
+
You can fake out this library itself, or otherwise mocking the ShipBob API http calls are quite easy to simulate with `nock`. Here's a way to test creating an order verifying idempotent operation.
|
|
141
|
+
|
|
142
|
+
```javascript
|
|
143
|
+
// NOTE: nock > 14 is needed to mock underlying fetch calls
|
|
144
|
+
const CHANNELS_RESPONSE: ChannelsResponse = [{
|
|
145
|
+
id: 1,
|
|
146
|
+
application_name: 'SMA',
|
|
147
|
+
name: 'test',
|
|
148
|
+
scopes: []
|
|
149
|
+
}];
|
|
150
|
+
|
|
151
|
+
const nockScope = nock('https://sandbox-api.shipbob.com')
|
|
152
|
+
.defaultReplyHeaders({ 'content-type': 'application/json' })
|
|
153
|
+
.get('/1.0/channel')
|
|
154
|
+
.once()
|
|
155
|
+
.reply(200, JSON.stringify(CHANNELS_RESPONSE))
|
|
156
|
+
.post('/1.0/order')
|
|
157
|
+
.once()
|
|
158
|
+
.reply(422, JSON.stringify({
|
|
159
|
+
"": [
|
|
160
|
+
"Cannot insert order with existing ReferenceId"
|
|
161
|
+
]
|
|
162
|
+
}))
|
|
163
|
+
.get('/1.0/order?ReferenceIds=123')
|
|
164
|
+
.once()
|
|
165
|
+
.reply(200, JSON.stringify([{
|
|
166
|
+
id: 1,
|
|
167
|
+
order_number: '18743683',
|
|
168
|
+
}]))
|
|
169
|
+
;
|
|
170
|
+
...
|
|
171
|
+
assert.ok(nockScope.isDone(), 'should have completed nock requests');
|
|
172
|
+
```
|
|
173
|
+
# Adding more events
|
|
174
|
+
To replace what could be considered "missing" webhooks, such as WRO completed (Receiving has no webhooks!).
|
|
175
|
+
|
|
176
|
+
You can create a monitor using polling with api.experimentalReceivingSetExternalSync(...).
|
|
177
|
+
|
|
178
|
+
If you want something more event driven, you can use the emails they send out with an inbound email processor:
|
|
179
|
+
ie:
|
|
180
|
+
```javascript
|
|
181
|
+
for (const event of events) {
|
|
182
|
+
const { subject } = event.msg;
|
|
183
|
+
switch (subject) {
|
|
184
|
+
case 'Your WRO is now complete':
|
|
185
|
+
// ie: Your WRO 756713 is now complete and all associated inventory is ready to ship! ...
|
|
186
|
+
// https://web.shipbob.com/app/Merchant/#/inventory/receiving/756713/summary ...
|
|
187
|
+
const match = /Your WRO (?<wro>\d+) is now complete/i.exec(
|
|
188
|
+
event.msg.text
|
|
189
|
+
);
|
|
190
|
+
if (
|
|
191
|
+
match === null ||
|
|
192
|
+
match.groups === undefined ||
|
|
193
|
+
!('wro' in match.groups)
|
|
194
|
+
) {
|
|
195
|
+
throw new Error(`cannot find wro in email '${taskStorageId}'`);
|
|
196
|
+
}
|
|
197
|
+
const wro = match.groups.wro;
|
|
198
|
+
console.log(` Got it! Received WRO# '${wro}'`);
|
|
199
|
+
break;
|
|
200
|
+
case 'Your box/pallet is now complete!':
|
|
201
|
+
console.log(`Ignoring subject: '${subject}'`);
|
|
202
|
+
break;
|
|
203
|
+
default:
|
|
204
|
+
console.log(`Unsupported subject: '${subject}'.`);
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
You can publish that as an event or push to a queue and it will act as a "webhook".
|
package/dist/index.d.ts
CHANGED
|
@@ -53,7 +53,7 @@ export type CreateOptions = {
|
|
|
53
53
|
* @param personalAccessToken passing *undefined* or empty string has a guar clause that will throw
|
|
54
54
|
* @param apiBaseUrl must pass "api.shipbob.com" otherwise sandbox will be used.
|
|
55
55
|
* @param channelApplicationName will default to SMA account, otherwise provide your application_name here
|
|
56
|
-
* @param options
|
|
56
|
+
* @param options defaults to not logging traffic
|
|
57
57
|
*/
|
|
58
58
|
export declare const createShipBobApi: (personalAccessToken: string | undefined, apiBaseUrl?: string, channelApplicationName?: string, options?: CreateOptions) => Promise<{
|
|
59
59
|
/**
|
|
@@ -114,6 +114,10 @@ export declare const createShipBobApi: (personalAccessToken: string | undefined,
|
|
|
114
114
|
* Look in the returned headers to get paging information.
|
|
115
115
|
*/
|
|
116
116
|
getOrders: (query: Partial<GetOrdersQueryStrings>) => Promise<DataResponse<Order[]>>;
|
|
117
|
+
/**
|
|
118
|
+
* NOTE: After you place an order it is not immediately available on the "getOrders" endpoint.
|
|
119
|
+
* You are best off using the returned result. ShipBob suggests 5 seconds as permitted delay time.
|
|
120
|
+
*/
|
|
117
121
|
placeOrder: (order: PlaceOrderRequest) => Promise<DataResponse<Order>>;
|
|
118
122
|
/**
|
|
119
123
|
* Cancel single Order by Order Id
|
|
@@ -122,6 +126,9 @@ export declare const createShipBobApi: (personalAccessToken: string | undefined,
|
|
|
122
126
|
*/
|
|
123
127
|
cancelSingleOrderByOrderId: (orderId: number) => Promise<DataResponse<CancelOrderResponse>>;
|
|
124
128
|
getShippingMethods: () => Promise<DataResponse<ShippingMethod[]>>;
|
|
129
|
+
/**
|
|
130
|
+
* The responses don't indicate if they were registered with a channel or not.
|
|
131
|
+
*/
|
|
125
132
|
getWebhooks: () => Promise<DataResponse<Webhook[]>>;
|
|
126
133
|
/**
|
|
127
134
|
*
|
package/dist/index.js
CHANGED
|
@@ -52,7 +52,7 @@ const PATH_2_0_SIMULATE = '/2.0/simulate';
|
|
|
52
52
|
* @param personalAccessToken passing *undefined* or empty string has a guar clause that will throw
|
|
53
53
|
* @param apiBaseUrl must pass "api.shipbob.com" otherwise sandbox will be used.
|
|
54
54
|
* @param channelApplicationName will default to SMA account, otherwise provide your application_name here
|
|
55
|
-
* @param options
|
|
55
|
+
* @param options defaults to not logging traffic
|
|
56
56
|
*/
|
|
57
57
|
const createShipBobApi = async (personalAccessToken, apiBaseUrl = 'sandbox-api.shipbob.com', channelApplicationName = 'SMA', options = {
|
|
58
58
|
logTraffic: false,
|
|
@@ -96,9 +96,20 @@ const createShipBobApi = async (personalAccessToken, apiBaseUrl = 'sandbox-api.s
|
|
|
96
96
|
remainingCalls,
|
|
97
97
|
retryAfter,
|
|
98
98
|
};
|
|
99
|
+
const hasJsonContentHeader = (res) => {
|
|
100
|
+
const contentType = res.headers.has(CONTENT_TYPE) ? res.headers.get(CONTENT_TYPE) : null;
|
|
101
|
+
return (contentType &&
|
|
102
|
+
(contentType.startsWith('application/json') || contentType.startsWith('application/problem+json')));
|
|
103
|
+
};
|
|
99
104
|
if (res.ok) {
|
|
105
|
+
const isJson = hasJsonContentHeader(res);
|
|
106
|
+
if (!isJson) {
|
|
107
|
+
// NOTE: DELETE webhook is a 204 with an empty response (ie: 'content-length' = '0')
|
|
108
|
+
console.warn(' > content-type not found for JSON - returning text');
|
|
109
|
+
}
|
|
110
|
+
const data = isJson ? (await res.json()) : (await res.text());
|
|
100
111
|
return {
|
|
101
|
-
data
|
|
112
|
+
data,
|
|
102
113
|
headers,
|
|
103
114
|
statusCode: res.status,
|
|
104
115
|
success: true,
|
|
@@ -107,19 +118,10 @@ const createShipBobApi = async (personalAccessToken, apiBaseUrl = 'sandbox-api.s
|
|
|
107
118
|
}
|
|
108
119
|
// also http status codes 400, 422 tend to be JSON
|
|
109
120
|
// application/json; charset=utf-8
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
(contentType.startsWith('application/json') || contentType.startsWith('application/problem+json'))) {
|
|
113
|
-
return {
|
|
114
|
-
data: await res.json(),
|
|
115
|
-
headers,
|
|
116
|
-
statusCode: res.status,
|
|
117
|
-
success: false,
|
|
118
|
-
rateLimit,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
+
const isJson = hasJsonContentHeader(res);
|
|
122
|
+
const data = isJson ? await res.json() : await res.text();
|
|
121
123
|
return {
|
|
122
|
-
data
|
|
124
|
+
data,
|
|
123
125
|
headers,
|
|
124
126
|
statusCode: res.status,
|
|
125
127
|
success: false,
|
|
@@ -267,6 +269,10 @@ const createShipBobApi = async (personalAccessToken, apiBaseUrl = 'sandbox-api.s
|
|
|
267
269
|
getOrders: async (query) => {
|
|
268
270
|
return await httpGet(credentials, PATH_1_0_ORDER, query);
|
|
269
271
|
},
|
|
272
|
+
/**
|
|
273
|
+
* NOTE: After you place an order it is not immediately available on the "getOrders" endpoint.
|
|
274
|
+
* You are best off using the returned result. ShipBob suggests 5 seconds as permitted delay time.
|
|
275
|
+
*/
|
|
270
276
|
placeOrder: async (order) => {
|
|
271
277
|
return await httpData(credentials, order, PATH_1_0_ORDER);
|
|
272
278
|
},
|
|
@@ -281,6 +287,9 @@ const createShipBobApi = async (personalAccessToken, apiBaseUrl = 'sandbox-api.s
|
|
|
281
287
|
getShippingMethods: async () => {
|
|
282
288
|
return await httpGet(credentials, PATH_1_0_SHIPPINGMETHOD);
|
|
283
289
|
},
|
|
290
|
+
/**
|
|
291
|
+
* The responses don't indicate if they were registered with a channel or not.
|
|
292
|
+
*/
|
|
284
293
|
getWebhooks: async () => {
|
|
285
294
|
return await httpGet(credentials, PATH_1_0_WEBHOOK);
|
|
286
295
|
},
|
|
@@ -307,6 +316,14 @@ const createShipBobApi = async (personalAccessToken, apiBaseUrl = 'sandbox-api.s
|
|
|
307
316
|
return await httpGet(credentials, PATH_1_0_FULFILLMENT_CENTER);
|
|
308
317
|
},
|
|
309
318
|
createWarehouseReceivingOrder: async (request) => {
|
|
319
|
+
// due to failures downstream in their WRO processing. They will need to create multiple WROs that cannot be merged:
|
|
320
|
+
if (request.purchase_order_number) {
|
|
321
|
+
if (!/^[A-Za-z0-9 ]+$/.test(request.purchase_order_number)) {
|
|
322
|
+
const validPurchaseOrderNumber = request.purchase_order_number.replace(/[^A-Za-z0-9 ]/gi, ' ');
|
|
323
|
+
console.log(` Replacing disallowed PO number: '${request.purchase_order_number}' -> '${validPurchaseOrderNumber}'`);
|
|
324
|
+
request.purchase_order_number = validPurchaseOrderNumber;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
310
327
|
return await httpData(credentials, request, PATH_2_0_RECEIVING);
|
|
311
328
|
},
|
|
312
329
|
getWarehouseReceivingOrder: async (orderId) => {
|
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;AA8BzC,0CAAwB;AA8CxB,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;AACtD;;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;AAS1C;;;;;;;;;;;GAWG;AACI,MAAM,gBAAgB,GAAG,KAAK,EACnC,mBAAuC,EACvC,UAAU,GAAG,yBAAyB,EACtC,sBAAsB,GAAG,KAAK,EAC9B,UAAyB;IACvB,UAAU,EAAE,KAAK;CAClB,EACD,EAAE;IACF,IAAI,mBAAmB,KAAK,SAAS,IAAI,mBAAmB,KAAK,EAAE,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,WAAW,GAAgB;QAC/B,KAAK,EAAE,mBAAmB;KAC3B,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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -375,6 +375,11 @@ export type OrderShipment = {
|
|
|
375
375
|
* Unique id of the shipment
|
|
376
376
|
*/
|
|
377
377
|
id: number;
|
|
378
|
+
/**
|
|
379
|
+
* order_shipped has no actual information on when the label was printed (unlike the UI)
|
|
380
|
+
* so, then to use this as a best guess (not always available)
|
|
381
|
+
*/
|
|
382
|
+
last_update_at: Nullable<string>;
|
|
378
383
|
/**
|
|
379
384
|
* Id of the order this shipment belongs to
|
|
380
385
|
*/
|
|
@@ -433,7 +438,7 @@ export type OrderShipment = {
|
|
|
433
438
|
* URL to the website where a shipment can be tracked
|
|
434
439
|
*/
|
|
435
440
|
tracking_url: Nullable<string>;
|
|
436
|
-
}>;
|
|
441
|
+
}[]>;
|
|
437
442
|
invoice_amount?: number;
|
|
438
443
|
invoice_currency_code?: string;
|
|
439
444
|
insurance_value?: Nullable<number>;
|
|
@@ -808,8 +813,9 @@ export type WarehouseReceivingOrderRequest = {
|
|
|
808
813
|
*/
|
|
809
814
|
expected_arrival_date: string;
|
|
810
815
|
/**
|
|
811
|
-
* Purchase order number for this receiving order
|
|
816
|
+
* Purchase order number for this receiving order
|
|
812
817
|
*
|
|
818
|
+
* NOTE: If you have characters other than /^[A-Za-z0-9 ]*$/ this will fail downstream for ShipBob. It will create the WRO ok though.
|
|
813
819
|
* NOTE: Supporting idempotency this must be unique across WROs
|
|
814
820
|
* Otherwise 422: "Request could not be completed, PO reference already exists and must be a unique value"
|
|
815
821
|
*/
|
|
@@ -1248,6 +1254,7 @@ export type ListInventoryQueryStrings = {
|
|
|
1248
1254
|
Page: number;
|
|
1249
1255
|
/**
|
|
1250
1256
|
* Amount of inventory items per page to request
|
|
1257
|
+
* ie: [1 .. 250]
|
|
1251
1258
|
*/
|
|
1252
1259
|
Limit: number;
|
|
1253
1260
|
IsActive: boolean;
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAimCA,IAAY,oBAWX;AAXD,WAAY,oBAAoB;IAC9B,wBAAwB;IACxB,qFAAqB,CAAA;IACrB,qEAAW,CAAA;IACX,6EAAiB,CAAA;IACjB,iGAA2B,CAAA;IAC3B,qEAAa,CAAA;IACb,yEAAe,CAAA;IACf,2EAAgB,CAAA;IAChB,uLAAsE,CAAA;IACtE,iGAA2B,CAAA;AAC7B,CAAC,EAXW,oBAAoB,oCAApB,oBAAoB,QAW/B;AAED,IAAY,iBAWX;AAXD,WAAY,iBAAiB;IAC3B,uDAAS,CAAA;IACT,2EAAmB,CAAA;IACnB,uEAAiB,CAAA;IACjB,cAAc;IACd,uEAAiB,CAAA;IACjB,qEAAgB,CAAA;IAChB,iEAAc,CAAA;IACd,2FAA2B,CAAA;IAC3B,yFAA0B,CAAA;IAC1B,sFAAyB,CAAA;AAC3B,CAAC,EAXW,iBAAiB,iCAAjB,iBAAiB,QAW5B;AAED;;;;GAIG;AACH,IAAY,YAaX;AAbD,WAAY,YAAY;IACtB;;OAEG;IACH,qDAAW,CAAA;IACX;;OAEG;IACH,2DAAc,CAAA;IACd;;OAEG;IACH,qDAAW,CAAA;AACb,CAAC,EAbW,YAAY,4BAAZ,YAAY,QAavB;AA6TD;;;;GAIG;AACH,IAAY,YA8BX;AA9BD,WAAY,YAAY;IACtB;;;;OAIG;IACH,8CAA8B,CAAA;IAC9B;;;OAGG;IACH,wDAAwC,CAAA;IACxC;;;;OAIG;IACH,wDAAwC,CAAA;IACxC;;;;OAIG;IACH,kDAAkC,CAAA;IAClC;;;;OAIG;IACH,wDAAwC,CAAA;AAC1C,CAAC,EA9BW,YAAY,4BAAZ,YAAY,QA8BvB"}
|