@tryfinch/finch-api 3.1.1 → 4.0.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.
Files changed (135) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/README.md +39 -15
  3. package/_shims/ReadableStream.d.ts +38 -0
  4. package/_shims/ReadableStream.js +5 -0
  5. package/_shims/ReadableStream.mjs +7 -0
  6. package/_shims/ReadableStream.node.d.ts +6 -0
  7. package/_shims/ReadableStream.node.d.ts.map +1 -0
  8. package/_shims/ReadableStream.node.js +14 -0
  9. package/_shims/ReadableStream.node.js.map +1 -0
  10. package/_shims/ReadableStream.node.mjs +3 -0
  11. package/_shims/ReadableStream.node.mjs.map +1 -0
  12. package/_shims/fetch.d.ts +8 -1
  13. package/_shims/fetch.js +1 -1
  14. package/_shims/fetch.node.d.ts +11 -1
  15. package/core.d.ts +87 -38
  16. package/core.d.ts.map +1 -1
  17. package/core.js +245 -114
  18. package/core.js.map +1 -1
  19. package/core.mjs +231 -74
  20. package/core.mjs.map +1 -1
  21. package/error.d.ts +1 -0
  22. package/error.d.ts.map +1 -1
  23. package/error.js +12 -3
  24. package/error.js.map +1 -1
  25. package/error.mjs +12 -3
  26. package/error.mjs.map +1 -1
  27. package/index.d.mts +3 -5
  28. package/index.d.ts +3 -5
  29. package/index.d.ts.map +1 -1
  30. package/index.js +24 -27
  31. package/index.js.map +1 -1
  32. package/index.mjs +24 -27
  33. package/index.mjs.map +1 -1
  34. package/package.json +5 -7
  35. package/pagination.d.ts +17 -8
  36. package/pagination.d.ts.map +1 -1
  37. package/pagination.js +26 -26
  38. package/pagination.js.map +1 -1
  39. package/pagination.mjs +26 -26
  40. package/pagination.mjs.map +1 -1
  41. package/resources/account.d.ts +2 -2
  42. package/resources/account.d.ts.map +1 -1
  43. package/resources/ats/applications.d.ts +6 -3
  44. package/resources/ats/applications.d.ts.map +1 -1
  45. package/resources/ats/applications.js.map +1 -1
  46. package/resources/ats/applications.mjs.map +1 -1
  47. package/resources/ats/ats.d.ts.map +1 -1
  48. package/resources/ats/ats.js.map +1 -1
  49. package/resources/ats/candidates.d.ts +6 -3
  50. package/resources/ats/candidates.d.ts.map +1 -1
  51. package/resources/ats/candidates.js.map +1 -1
  52. package/resources/ats/candidates.mjs.map +1 -1
  53. package/resources/ats/jobs.d.ts +3 -3
  54. package/resources/ats/jobs.d.ts.map +1 -1
  55. package/resources/ats/offers.d.ts +3 -3
  56. package/resources/ats/offers.d.ts.map +1 -1
  57. package/resources/ats/stages.d.ts +1 -1
  58. package/resources/ats/stages.d.ts.map +1 -1
  59. package/resources/hris/benefits/benefits.d.ts +9 -10
  60. package/resources/hris/benefits/benefits.d.ts.map +1 -1
  61. package/resources/hris/benefits/benefits.js.map +1 -1
  62. package/resources/hris/benefits/benefits.mjs.map +1 -1
  63. package/resources/hris/benefits/individuals.d.ts +6 -6
  64. package/resources/hris/benefits/individuals.d.ts.map +1 -1
  65. package/resources/hris/company.d.ts +1 -1
  66. package/resources/hris/company.d.ts.map +1 -1
  67. package/resources/hris/directory.d.ts +2 -2
  68. package/resources/hris/directory.d.ts.map +1 -1
  69. package/resources/hris/hris.d.ts.map +1 -1
  70. package/resources/hris/hris.js.map +1 -1
  71. package/resources/hris/index.d.ts.map +1 -1
  72. package/resources/hris/index.js +7 -7
  73. package/resources/hris/index.js.map +1 -1
  74. package/resources/hris/individuals/employment-data.d.ts +1 -1
  75. package/resources/hris/individuals/employment-data.d.ts.map +1 -1
  76. package/resources/hris/individuals/employment-data.js.map +1 -1
  77. package/resources/hris/individuals/individuals.d.ts +4 -2
  78. package/resources/hris/individuals/individuals.d.ts.map +1 -1
  79. package/resources/hris/individuals/individuals.js.map +1 -1
  80. package/resources/hris/individuals/individuals.mjs.map +1 -1
  81. package/resources/hris/pay-statements.d.ts +1 -1
  82. package/resources/hris/pay-statements.d.ts.map +1 -1
  83. package/resources/hris/payments.d.ts +4 -1
  84. package/resources/hris/payments.d.ts.map +1 -1
  85. package/resources/hris/payments.js.map +1 -1
  86. package/resources/hris/payments.mjs.map +1 -1
  87. package/resources/index.d.ts +1 -0
  88. package/resources/index.d.ts.map +1 -1
  89. package/resources/index.js.map +1 -1
  90. package/resources/index.mjs.map +1 -1
  91. package/resources/providers.d.ts +1 -1
  92. package/resources/providers.d.ts.map +1 -1
  93. package/src/_shims/ReadableStream.d.ts +38 -0
  94. package/src/_shims/ReadableStream.js +5 -0
  95. package/src/_shims/ReadableStream.mjs +7 -0
  96. package/src/_shims/ReadableStream.node.ts +6 -0
  97. package/src/_shims/fetch.d.ts +8 -1
  98. package/src/_shims/fetch.deno.ts +23 -0
  99. package/src/_shims/fetch.js +1 -1
  100. package/src/_shims/fetch.node.d.ts +11 -1
  101. package/src/_shims/formdata.deno.ts +16 -0
  102. package/src/core.ts +302 -93
  103. package/src/error.ts +11 -1
  104. package/src/index.ts +28 -27
  105. package/src/pagination.ts +34 -29
  106. package/src/resources/account.ts +3 -3
  107. package/src/resources/ats/applications.ts +8 -5
  108. package/src/resources/ats/ats.ts +1 -1
  109. package/src/resources/ats/candidates.ts +8 -5
  110. package/src/resources/ats/jobs.ts +5 -5
  111. package/src/resources/ats/offers.ts +5 -5
  112. package/src/resources/ats/stages.ts +2 -2
  113. package/src/resources/hris/benefits/benefits.ts +12 -13
  114. package/src/resources/hris/benefits/individuals.ts +9 -9
  115. package/src/resources/hris/company.ts +2 -2
  116. package/src/resources/hris/directory.ts +4 -4
  117. package/src/resources/hris/hris.ts +1 -1
  118. package/src/resources/hris/index.ts +2 -2
  119. package/src/resources/hris/individuals/employment-data.ts +2 -2
  120. package/src/resources/hris/individuals/individuals.ts +6 -4
  121. package/src/resources/hris/pay-statements.ts +2 -2
  122. package/src/resources/hris/payments.ts +5 -2
  123. package/src/resources/index.ts +1 -0
  124. package/src/resources/providers.ts +2 -2
  125. package/src/uploads.ts +7 -6
  126. package/src/version.ts +1 -1
  127. package/uploads.d.ts +5 -4
  128. package/uploads.d.ts.map +1 -1
  129. package/uploads.js +2 -2
  130. package/uploads.js.map +1 -1
  131. package/uploads.mjs +2 -2
  132. package/uploads.mjs.map +1 -1
  133. package/version.d.ts +1 -1
  134. package/version.js +1 -1
  135. package/version.mjs +1 -1
package/core.js CHANGED
@@ -1,44 +1,4 @@
1
1
  'use strict';
2
- var __createBinding =
3
- (this && this.__createBinding) ||
4
- (Object.create ?
5
- function (o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ('get' in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = {
10
- enumerable: true,
11
- get: function () {
12
- return m[k];
13
- },
14
- };
15
- }
16
- Object.defineProperty(o, k2, desc);
17
- }
18
- : function (o, m, k, k2) {
19
- if (k2 === undefined) k2 = k;
20
- o[k2] = m[k];
21
- });
22
- var __setModuleDefault =
23
- (this && this.__setModuleDefault) ||
24
- (Object.create ?
25
- function (o, v) {
26
- Object.defineProperty(o, 'default', { enumerable: true, value: v });
27
- }
28
- : function (o, v) {
29
- o['default'] = v;
30
- });
31
- var __importStar =
32
- (this && this.__importStar) ||
33
- function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null)
37
- for (var k in mod)
38
- if (k !== 'default' && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
39
- __setModuleDefault(result, mod);
40
- return result;
41
- };
42
2
  var __classPrivateFieldSet =
43
3
  (this && this.__classPrivateFieldSet) ||
44
4
  function (receiver, state, value, kind, f) {
@@ -71,11 +31,17 @@ Object.defineProperty(exports, '__esModule', { value: true });
71
31
  exports.toBase64 =
72
32
  exports.getHeader =
73
33
  exports.isHeadersProtocol =
34
+ exports.isRunningInBrowser =
35
+ exports.debug =
74
36
  exports.hasOwn =
75
37
  exports.isEmptyObj =
38
+ exports.maybeCoerceBoolean =
39
+ exports.maybeCoerceFloat =
40
+ exports.maybeCoerceInteger =
76
41
  exports.coerceBoolean =
77
42
  exports.coerceFloat =
78
43
  exports.coerceInteger =
44
+ exports.readEnv =
79
45
  exports.ensurePresent =
80
46
  exports.castToError =
81
47
  exports.safeJSON =
@@ -85,11 +51,11 @@ exports.toBase64 =
85
51
  exports.AbstractPage =
86
52
  exports.APIResource =
87
53
  exports.APIClient =
54
+ exports.APIPromise =
88
55
  exports.createForm =
89
56
  exports.multipartFormRequestOptions =
90
57
  exports.maybeMultipartFormRequestOptions =
91
58
  void 0;
92
- const qs = __importStar(require('qs'));
93
59
  const version_1 = require('./version.js');
94
60
  const error_1 = require('./error.js');
95
61
  const agent_1 = require('@tryfinch/finch-api/_shims/agent');
@@ -115,11 +81,79 @@ Object.defineProperty(exports, 'createForm', {
115
81
  },
116
82
  });
117
83
  const MAX_RETRIES = 2;
84
+ async function defaultParseResponse(props) {
85
+ const { response } = props;
86
+ const contentType = response.headers.get('content-type');
87
+ if (contentType === null || contentType === void 0 ? void 0 : contentType.includes('application/json')) {
88
+ const json = await response.json();
89
+ debug('response', response.status, response.url, response.headers, json);
90
+ return json;
91
+ }
92
+ // TODO handle blob, arraybuffer, other content types, etc.
93
+ const text = await response.text();
94
+ debug('response', response.status, response.url, response.headers, text);
95
+ return text;
96
+ }
97
+ /**
98
+ * A subclass of `Promise` providing additional helper methods
99
+ * for interacting with the SDK.
100
+ */
101
+ class APIPromise extends Promise {
102
+ constructor(responsePromise, parseResponse = defaultParseResponse) {
103
+ super((resolve) => {
104
+ // this is maybe a bit weird but this has to be a no-op to not implicitly
105
+ // parse the response body; instead .then, .catch, .finally are overridden
106
+ // to parse the response
107
+ resolve(null);
108
+ });
109
+ this.responsePromise = responsePromise;
110
+ this.parseResponse = parseResponse;
111
+ }
112
+ _thenUnwrap(transform) {
113
+ return new APIPromise(this.responsePromise, async (props) => transform(await this.parseResponse(props)));
114
+ }
115
+ /**
116
+ * Gets the raw `Response` instance instead of parsing the response
117
+ * data.
118
+ *
119
+ * If you want to parse the response body but still get the `Response`
120
+ * instance, you can use {@link withResponse()}.
121
+ */
122
+ asResponse() {
123
+ return this.responsePromise.then((p) => p.response);
124
+ }
125
+ /**
126
+ * Gets the parsed response data and the raw `Response` instance.
127
+ *
128
+ * If you just want to get the raw `Response` instance without parsing it,
129
+ * you can use {@link asResponse()}.
130
+ */
131
+ async withResponse() {
132
+ const [data, response] = await Promise.all([this.parse(), this.asResponse()]);
133
+ return { data, response };
134
+ }
135
+ parse() {
136
+ if (!this.parsedPromise) {
137
+ this.parsedPromise = this.responsePromise.then(this.parseResponse);
138
+ }
139
+ return this.parsedPromise;
140
+ }
141
+ then(onfulfilled, onrejected) {
142
+ return this.parse().then(onfulfilled, onrejected);
143
+ }
144
+ catch(onrejected) {
145
+ return this.parse().catch(onrejected);
146
+ }
147
+ finally(onfinally) {
148
+ return this.parse().finally(onfinally);
149
+ }
150
+ }
151
+ exports.APIPromise = APIPromise;
118
152
  class APIClient {
119
153
  constructor({
120
154
  baseURL,
121
155
  maxRetries,
122
- timeout = 60 * 1000, // 60s
156
+ timeout = 60000, // 1 minute
123
157
  httpAgent,
124
158
  fetch: overridenFetch,
125
159
  }) {
@@ -156,34 +190,26 @@ class APIClient {
156
190
  * Override this to add your own headers validation:
157
191
  */
158
192
  validateHeaders(headers, customHeaders) {}
159
- /**
160
- * Override this to add your own qs.stringify options, for example:
161
- *
162
- * {
163
- * ...super.qsOptions(),
164
- * strictNullHandling: true,
165
- * }
166
- */
167
- qsOptions() {
168
- return {};
169
- }
170
193
  defaultIdempotencyKey() {
171
194
  return `stainless-node-retry-${uuid4()}`;
172
195
  }
173
196
  get(path, opts) {
174
- return this.request({ method: 'get', path, ...opts });
197
+ return this.methodRequest('get', path, opts);
175
198
  }
176
199
  post(path, opts) {
177
- return this.request({ method: 'post', path, ...opts });
200
+ return this.methodRequest('post', path, opts);
178
201
  }
179
202
  patch(path, opts) {
180
- return this.request({ method: 'patch', path, ...opts });
203
+ return this.methodRequest('patch', path, opts);
181
204
  }
182
205
  put(path, opts) {
183
- return this.request({ method: 'put', path, ...opts });
206
+ return this.methodRequest('put', path, opts);
184
207
  }
185
208
  delete(path, opts) {
186
- return this.request({ method: 'delete', path, ...opts });
209
+ return this.methodRequest('delete', path, opts);
210
+ }
211
+ methodRequest(method, path, opts) {
212
+ return this.request(Promise.resolve(opts).then((opts) => ({ method, path, ...opts })));
187
213
  }
188
214
  getAPIList(path, Page, opts) {
189
215
  return this.requestAPIList(Page, { method: 'get', path, ...opts });
@@ -193,14 +219,16 @@ class APIClient {
193
219
  if (typeof Buffer !== 'undefined') {
194
220
  return Buffer.byteLength(body, 'utf8').toString();
195
221
  }
196
- const encoder = new TextEncoder();
197
- const encoded = encoder.encode(body);
198
- return encoded.length.toString();
222
+ if (typeof TextEncoder !== 'undefined') {
223
+ const encoder = new TextEncoder();
224
+ const encoded = encoder.encode(body);
225
+ return encoded.length.toString();
226
+ }
199
227
  }
200
228
  return null;
201
229
  }
202
230
  buildRequest(options) {
203
- var _a, _b, _c, _d, _e;
231
+ var _a, _b, _c, _d, _e, _f;
204
232
  const { method, path, query, headers: headers = {} } = options;
205
233
  const body =
206
234
  (0, uploads_1.isMultipartBody)(options.body) ? options.body.body
@@ -219,8 +247,13 @@ class APIClient {
219
247
  : (0, agent_1.getDefaultAgent)(url);
220
248
  const minAgentTimeout = timeout + 1000;
221
249
  if (
222
- (httpAgent === null || httpAgent === void 0 ? void 0 : httpAgent.options) &&
223
- minAgentTimeout > ((_d = httpAgent.options.timeout) !== null && _d !== void 0 ? _d : 0)
250
+ typeof ((
251
+ (_d = httpAgent === null || httpAgent === void 0 ? void 0 : httpAgent.options) === null ||
252
+ _d === void 0
253
+ ) ?
254
+ void 0
255
+ : _d.timeout) === 'number' &&
256
+ minAgentTimeout > ((_e = httpAgent.options.timeout) !== null && _e !== void 0 ? _e : 0)
224
257
  ) {
225
258
  // Allow any given request to bump our agent active socket timeout.
226
259
  // This may seem strange, but leaking active sockets should be rare and not particularly problematic,
@@ -250,7 +283,7 @@ class APIClient {
250
283
  ...(httpAgent && { agent: httpAgent }),
251
284
  // @ts-ignore node-fetch uses a custom AbortSignal type that is
252
285
  // not compatible with standard web types
253
- signal: (_e = options.signal) !== null && _e !== void 0 ? _e : null,
286
+ signal: (_f = options.signal) !== null && _f !== void 0 ? _f : null,
254
287
  };
255
288
  this.validateHeaders(reqHeaders, headers);
256
289
  return { req, url, timeout };
@@ -265,18 +298,25 @@ class APIClient {
265
298
  makeStatusError(status, error, message, headers) {
266
299
  return error_1.APIError.generate(status, error, message, headers);
267
300
  }
268
- async request(options, retriesRemaining) {
269
- var _a, _b;
270
- if (retriesRemaining === void 0) {
301
+ request(options, remainingRetries = null) {
302
+ return new APIPromise(this.makeRequest(options, remainingRetries));
303
+ }
304
+ async makeRequest(optionsInput, retriesRemaining) {
305
+ var _a, _b, _c;
306
+ const options = await optionsInput;
307
+ if (retriesRemaining == null) {
271
308
  retriesRemaining = (_a = options.maxRetries) !== null && _a !== void 0 ? _a : this.maxRetries;
272
309
  }
273
310
  const { req, url, timeout } = this.buildRequest(options);
274
311
  await this.prepareRequest(req, { url });
275
- this.debug('request', url, options, req.headers);
312
+ debug('request', url, options, req.headers);
313
+ if ((_b = options.signal) === null || _b === void 0 ? void 0 : _b.aborted) {
314
+ throw new error_1.APIUserAbortError();
315
+ }
276
316
  const controller = new AbortController();
277
317
  const response = await this.fetchWithTimeout(url, req, timeout, controller).catch(exports.castToError);
278
318
  if (response instanceof Error) {
279
- if ((_b = options.signal) === null || _b === void 0 ? void 0 : _b.aborted) {
319
+ if ((_c = options.signal) === null || _c === void 0 ? void 0 : _c.aborted) {
280
320
  throw new error_1.APIUserAbortError();
281
321
  }
282
322
  if (retriesRemaining) {
@@ -295,32 +335,15 @@ class APIClient {
295
335
  const errText = await response.text().catch(() => 'Unknown');
296
336
  const errJSON = (0, exports.safeJSON)(errText);
297
337
  const errMessage = errJSON ? undefined : errText;
298
- this.debug('response', response.status, url, responseHeaders, errMessage);
338
+ debug('response', response.status, url, responseHeaders, errMessage);
299
339
  const err = this.makeStatusError(response.status, errJSON, errMessage, responseHeaders);
300
340
  throw err;
301
341
  }
302
- const contentType = response.headers.get('content-type');
303
- if (contentType === null || contentType === void 0 ? void 0 : contentType.includes('application/json')) {
304
- const json = await response.json();
305
- if (typeof json === 'object' && json != null) {
306
- /** @deprecated – we expect to change this interface in the near future. */
307
- Object.defineProperty(json, 'responseHeaders', {
308
- enumerable: false,
309
- writable: false,
310
- value: responseHeaders,
311
- });
312
- }
313
- this.debug('response', response.status, url, responseHeaders, json);
314
- return json;
315
- }
316
- // TODO handle blob, arraybuffer, other content types, etc.
317
- const text = response.text();
318
- this.debug('response', response.status, url, responseHeaders, text);
319
- return text;
342
+ return { response, options, controller };
320
343
  }
321
344
  requestAPIList(Page, options) {
322
- const requestPromise = this.request(options);
323
- return new PagePromise(this, requestPromise, options, Page);
345
+ const request = this.makeRequest(options, null);
346
+ return new PagePromise(this, request, Page);
324
347
  }
325
348
  buildURL(path, query) {
326
349
  const url =
@@ -332,10 +355,26 @@ class APIClient {
332
355
  query = { ...defaultQuery, ...query };
333
356
  }
334
357
  if (query) {
335
- url.search = qs.stringify(query, this.qsOptions());
358
+ url.search = this.stringifyQuery(query);
336
359
  }
337
360
  return url.toString();
338
361
  }
362
+ stringifyQuery(query) {
363
+ return Object.entries(query)
364
+ .filter(([_, value]) => typeof value !== 'undefined')
365
+ .map(([key, value]) => {
366
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
367
+ return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;
368
+ }
369
+ if (value === null) {
370
+ return `${encodeURIComponent(key)}=`;
371
+ }
372
+ throw new Error(
373
+ `Cannot stringify type ${typeof value}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`,
374
+ );
375
+ })
376
+ .join('&');
377
+ }
339
378
  async fetchWithTimeout(url, init, ms, controller) {
340
379
  const { signal, ...options } = init || {};
341
380
  if (signal) signal.addEventListener('abort', () => controller.abort());
@@ -397,11 +436,6 @@ class APIClient {
397
436
  getUserAgent() {
398
437
  return `${this.constructor.name}/JS ${version_1.VERSION}`;
399
438
  }
400
- debug(action, ...args) {
401
- if (typeof process !== 'undefined' && process.env['DEBUG'] === 'true') {
402
- console.log(`${this.constructor.name}:DEBUG:${action}`, ...args);
403
- }
404
- }
405
439
  }
406
440
  exports.APIClient = APIClient;
407
441
  class APIResource {
@@ -417,10 +451,12 @@ class APIResource {
417
451
  }
418
452
  exports.APIResource = APIResource;
419
453
  class AbstractPage {
420
- constructor(client, response, options) {
454
+ constructor(client, response, body, options) {
421
455
  _AbstractPage_client.set(this, void 0);
422
456
  __classPrivateFieldSet(this, _AbstractPage_client, client, 'f');
423
457
  this.options = options;
458
+ this.response = response;
459
+ this.body = body;
424
460
  }
425
461
  hasNextPage() {
426
462
  const items = this.getPaginatedItems();
@@ -468,22 +504,22 @@ class AbstractPage {
468
504
  }
469
505
  }
470
506
  exports.AbstractPage = AbstractPage;
471
- class PagePromise extends Promise {
472
- /**
473
- * This subclass of Promise will resolve to an instantiated Page once the request completes.
474
- */
475
- constructor(client, requestPromise, options, Page) {
476
- super((resolve, reject) =>
477
- requestPromise.then((response) => resolve(new Page(client, response, options))).catch(reject),
507
+ /**
508
+ * This subclass of Promise will resolve to an instantiated Page once the request completes.
509
+ *
510
+ * It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg:
511
+ *
512
+ * for await (const item of client.items.list()) {
513
+ * console.log(item)
514
+ * }
515
+ */
516
+ class PagePromise extends APIPromise {
517
+ constructor(client, request, Page) {
518
+ super(
519
+ request,
520
+ async (props) => new Page(client, props.response, await defaultParseResponse(props), props.options),
478
521
  );
479
522
  }
480
- /**
481
- * Enable subclassing Promise.
482
- * Ref: https://stackoverflow.com/a/60328122
483
- */
484
- static get [Symbol.species]() {
485
- return Promise;
486
- }
487
523
  /**
488
524
  * Allow auto-paginating iteration on an unawaited list call, eg:
489
525
  *
@@ -571,7 +607,18 @@ const getPlatformProperties = () => {
571
607
  'X-Stainless-Runtime-Version': process.version,
572
608
  };
573
609
  }
574
- // TODO add support for Cloudflare workers, browsers, etc.
610
+ const browserInfo = getBrowserInfo();
611
+ if (browserInfo) {
612
+ return {
613
+ 'X-Stainless-Lang': 'js',
614
+ 'X-Stainless-Package-Version': version_1.VERSION,
615
+ 'X-Stainless-OS': 'Unknown',
616
+ 'X-Stainless-Arch': 'unknown',
617
+ 'X-Stainless-Runtime': `browser:${browserInfo.browser}`,
618
+ 'X-Stainless-Runtime-Version': browserInfo.version,
619
+ };
620
+ }
621
+ // TODO add support for Cloudflare workers, etc.
575
622
  return {
576
623
  'X-Stainless-Lang': 'js',
577
624
  'X-Stainless-Package-Version': version_1.VERSION,
@@ -581,6 +628,32 @@ const getPlatformProperties = () => {
581
628
  'X-Stainless-Runtime-Version': 'unknown',
582
629
  };
583
630
  };
631
+ // Note: modified from https://github.com/JS-DevTools/host-environment/blob/b1ab79ecde37db5d6e163c050e54fe7d287d7c92/src/isomorphic.browser.ts
632
+ function getBrowserInfo() {
633
+ if (!navigator || typeof navigator === 'undefined') {
634
+ return null;
635
+ }
636
+ // NOTE: The order matters here!
637
+ const browserPatterns = [
638
+ { key: 'edge', pattern: /Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/ },
639
+ { key: 'ie', pattern: /MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/ },
640
+ { key: 'ie', pattern: /Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/ },
641
+ { key: 'chrome', pattern: /Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/ },
642
+ { key: 'firefox', pattern: /Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/ },
643
+ { key: 'safari', pattern: /(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/ },
644
+ ];
645
+ // Find the FIRST matching browser
646
+ for (const { key, pattern } of browserPatterns) {
647
+ const match = pattern.exec(navigator.userAgent);
648
+ if (match) {
649
+ const major = match[1] || 0;
650
+ const minor = match[2] || 0;
651
+ const patch = match[3] || 0;
652
+ return { browser: key, version: `${major}.${minor}.${patch}` };
653
+ }
654
+ }
655
+ return null;
656
+ }
584
657
  const normalizeArch = (arch) => {
585
658
  // Node docs:
586
659
  // - https://nodejs.org/api/process.html#processarch
@@ -635,7 +708,7 @@ const isAbsoluteURL = (url) => {
635
708
  };
636
709
  const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
637
710
  const validatePositiveInteger = (name, n) => {
638
- if (!Number.isInteger(n)) {
711
+ if (typeof n !== 'number' || !Number.isInteger(n)) {
639
712
  throw new Error(`${name} must be an integer`);
640
713
  }
641
714
  if (n < 0) {
@@ -653,6 +726,26 @@ const ensurePresent = (value) => {
653
726
  return value;
654
727
  };
655
728
  exports.ensurePresent = ensurePresent;
729
+ /**
730
+ * Read an environment variable.
731
+ *
732
+ * Will return undefined if the environment variable doesn't exist or cannot be accessed.
733
+ */
734
+ const readEnv = (env) => {
735
+ var _a, _b, _c, _d;
736
+ if (typeof process !== 'undefined') {
737
+ return (_b = (_a = process.env) === null || _a === void 0 ? void 0 : _a[env]) !== null && _b !== void 0 ?
738
+ _b
739
+ : undefined;
740
+ }
741
+ if (typeof Deno !== 'undefined') {
742
+ return (_d = (_c = Deno.env) === null || _c === void 0 ? void 0 : _c.get) === null || _d === void 0 ?
743
+ void 0
744
+ : _d.call(_c, env);
745
+ }
746
+ return undefined;
747
+ };
748
+ exports.readEnv = readEnv;
656
749
  const coerceInteger = (value) => {
657
750
  if (typeof value === 'number') return Math.round(value);
658
751
  if (typeof value === 'string') return parseInt(value, 10);
@@ -671,6 +764,27 @@ const coerceBoolean = (value) => {
671
764
  return Boolean(value);
672
765
  };
673
766
  exports.coerceBoolean = coerceBoolean;
767
+ const maybeCoerceInteger = (value) => {
768
+ if (value === undefined) {
769
+ return undefined;
770
+ }
771
+ return (0, exports.coerceInteger)(value);
772
+ };
773
+ exports.maybeCoerceInteger = maybeCoerceInteger;
774
+ const maybeCoerceFloat = (value) => {
775
+ if (value === undefined) {
776
+ return undefined;
777
+ }
778
+ return (0, exports.coerceFloat)(value);
779
+ };
780
+ exports.maybeCoerceFloat = maybeCoerceFloat;
781
+ const maybeCoerceBoolean = (value) => {
782
+ if (value === undefined) {
783
+ return undefined;
784
+ }
785
+ return (0, exports.coerceBoolean)(value);
786
+ };
787
+ exports.maybeCoerceBoolean = maybeCoerceBoolean;
674
788
  // https://stackoverflow.com/a/34491287
675
789
  function isEmptyObj(obj) {
676
790
  if (!obj) return true;
@@ -683,6 +797,12 @@ function hasOwn(obj, key) {
683
797
  return Object.prototype.hasOwnProperty.call(obj, key);
684
798
  }
685
799
  exports.hasOwn = hasOwn;
800
+ function debug(action, ...args) {
801
+ if (typeof process !== 'undefined' && process.env['DEBUG'] === 'true') {
802
+ console.log(`Finch:DEBUG:${action}`, ...args);
803
+ }
804
+ }
805
+ exports.debug = debug;
686
806
  /**
687
807
  * https://stackoverflow.com/a/2117523
688
808
  */
@@ -693,6 +813,17 @@ const uuid4 = () => {
693
813
  return v.toString(16);
694
814
  });
695
815
  };
816
+ const isRunningInBrowser = () => {
817
+ return (
818
+ // @ts-ignore
819
+ typeof window !== 'undefined' &&
820
+ // @ts-ignore
821
+ typeof window.document !== 'undefined' &&
822
+ // @ts-ignore
823
+ typeof navigator !== 'undefined'
824
+ );
825
+ };
826
+ exports.isRunningInBrowser = isRunningInBrowser;
696
827
  const isHeadersProtocol = (headers) => {
697
828
  return typeof (headers === null || headers === void 0 ? void 0 : headers.get) === 'function';
698
829
  };
package/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["src/core.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,0CAAoC;AACpC,sCAAqG;AAErG,4DAA+E;AAC/E,4DAM0C;AAC1C,0CAA4C;AAC5C,wCAKmB;AAJjB,2HAAA,gCAAgC,OAAA;AAChC,sHAAA,2BAA2B,OAAA;AAC3B,qGAAA,UAAU,OAAA;AAIZ,MAAM,WAAW,GAAG,CAAC,CAAC;AAItB,MAAsB,SAAS;IAS7B,YAAY,EACV,OAAO,EACP,UAAU,EACV,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM;IAC3B,SAAS,EACT,KAAK,EAAE,cAAc,GAOtB;QACC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,uBAAuB,CAAC,YAAY,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,WAAW,CAAC,CAAC;QACnF,IAAI,CAAC,OAAO,GAAG,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC3D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,IAAI,CAAC,KAAK,GAAG,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,aAAK,CAAC;IACvC,CAAC;IAES,WAAW;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;;OAOG;IACO,cAAc;QACtB,OAAO;YACL,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,kBAAkB;YAClC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;YACjC,GAAG,kBAAkB,EAAE;YACvB,GAAG,IAAI,CAAC,WAAW,EAAE;SACtB,CAAC;IACJ,CAAC;IAID;;OAEG;IACO,eAAe,CAAC,OAAgB,EAAE,aAAsB,IAAG,CAAC;IAEtE;;;;;;;OAOG;IACO,SAAS;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,qBAAqB;QAC7B,OAAO,wBAAwB,KAAK,EAAE,EAAE,CAAC;IAC3C,CAAC;IAED,GAAG,CAAsB,IAAY,EAAE,IAA0B;QAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,CAAsB,IAAY,EAAE,IAA0B;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,KAAK,CAAsB,IAAY,EAAE,IAA0B;QACjE,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,GAAG,CAAsB,IAAY,EAAE,IAA0B;QAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,CAAsB,IAAY,EAAE,IAA0B;QAClE,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,UAAU,CACR,IAAY,EACZ,IAAuC,EACvC,IAA0B;QAE1B,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;IAEO,sBAAsB,CAAC,IAAa;QAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;gBACjC,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;aACnD;YAED,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;SAClC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CACV,OAAiC;;QAEjC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QAE/D,MAAM,IAAI,GACR,IAAA,yBAAe,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;YACjD,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtD,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAExD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAK,EAAE,KAAK,CAAC,CAAC;QACxC,IAAI,SAAS,IAAI,OAAO;YAAE,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,mCAAI,IAAI,CAAC,OAAO,CAAC;QAChD,MAAM,SAAS,GAAG,MAAA,MAAA,OAAO,CAAC,SAAS,mCAAI,IAAI,CAAC,SAAS,mCAAI,IAAA,uBAAe,EAAC,GAAG,CAAC,CAAC;QAC9E,MAAM,eAAe,GAAG,OAAO,GAAG,IAAI,CAAC;QACvC,IAAI,CAAC,SAAiB,aAAjB,SAAS,uBAAT,SAAS,CAAU,OAAO,KAAI,eAAe,GAAG,CAAC,MAAC,SAAiB,CAAC,OAAO,CAAC,OAAO,mCAAI,CAAC,CAAC,EAAE;YAC9F,mEAAmE;YACnE,qGAAqG;YACrG,mEAAmE;YACnE,2CAA2C;YAC1C,SAAiB,CAAC,OAAO,CAAC,OAAO,GAAG,eAAe,CAAC;SACtD;QAED,IAAI,IAAI,CAAC,iBAAiB,IAAI,MAAM,KAAK,KAAK,EAAE;YAC9C,IAAI,CAAC,OAAO,CAAC,cAAc;gBAAE,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACnF,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;SAC1D;QAED,MAAM,UAAU,GAA2B;YACzC,GAAG,CAAC,aAAa,IAAI,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC;YACzD,GAAG,IAAI,CAAC,cAAc,EAAE;YACxB,GAAG,OAAO;SACX,CAAC;QACF,8DAA8D;QAC9D,IAAI,IAAA,yBAAe,EAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAiB,EAAE;YACvD,OAAO,UAAU,CAAC,cAAc,CAAC,CAAC;SACnC;QAED,uDAAuD;QACvD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAE7F,MAAM,GAAG,GAAgB;YACvB,MAAM;YACN,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,IAAW,EAAE,CAAC;YAClC,OAAO,EAAE,UAAU;YACnB,GAAG,CAAC,SAAS,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YACtC,+DAA+D;YAC/D,yCAAyC;YACzC,MAAM,EAAE,MAAA,OAAO,CAAC,MAAM,mCAAI,IAAI;SAC/B,CAAC;QAEF,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAE1C,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,cAAc,CAAC,OAAoB,EAAE,EAAE,GAAG,EAAmB,IAAkB,CAAC;IAEtF,eAAe,CACvB,MAA0B,EAC1B,KAAyB,EACzB,OAA2B,EAC3B,OAA4B;QAE5B,OAAO,gBAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,OAAO,CACX,OAAiC,EACjC,gBAAwD;;yCAAxD,EAAA,yBAAmB,OAAO,CAAC,UAAU,mCAAI,IAAI,CAAC,UAAU;QAExD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAExC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAEjD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,mBAAW,CAAC,CAAC;QAE/F,IAAI,QAAQ,YAAY,KAAK,EAAE;YAC7B,IAAI,MAAA,OAAO,CAAC,MAAM,0CAAE,OAAO,EAAE;gBAC3B,MAAM,IAAI,yBAAiB,EAAE,CAAC;aAC/B;YACD,IAAI,gBAAgB,EAAE;gBACpB,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;aACrD;YACD,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE;gBAClC,MAAM,IAAI,iCAAyB,EAAE,CAAC;aACvC;YACD,MAAM,IAAI,0BAAkB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;SACnD;QAED,MAAM,eAAe,GAAG,IAAA,6BAAqB,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEhE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YAChB,IAAI,gBAAgB,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;gBAClD,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC;aACtE;YAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,CAAC;YAClC,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;YAEjD,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;YAE1E,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;YACxF,MAAM,GAAG,CAAC;SACX;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE;YAC7C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEnC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,EAAE;gBAC5C,2EAA2E;gBAC3E,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,iBAAiB,EAAE;oBAC7C,UAAU,EAAE,KAAK;oBACjB,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,eAAe;iBACvB,CAAC,CAAC;aACJ;YAED,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;YAEpE,OAAO,IAAwB,CAAC;SACjC;QAED,2DAA2D;QAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;QACpE,OAAO,IAAoB,CAAC;IAC9B,CAAC;IAED,cAAc,CACZ,IAA4E,EAC5E,OAA4B;QAE5B,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAkC,CAAC;QAC9E,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,QAAQ,CAAM,IAAY,EAAE,KAAsB;QAChD,MAAM,GAAG,GACP,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;YACnB,IAAI,GAAG,CAAC,IAAI,CAAC;YACf,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAExG,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;YAC7B,KAAK,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,EAAS,CAAC;SAC9C;QAED,IAAI,KAAK,EAAE;YACT,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;SACpD;QAED,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,GAAgB,EAChB,IAA6B,EAC7B,EAAU,EACV,UAA2B;QAE3B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1C,IAAI,MAAM;YAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QAEvE,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAEzD,OAAO,IAAI,CAAC,gBAAgB,EAAE;aAC3B,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAa,EAAE,GAAG,OAAO,EAAE,CAAC;aAC5D,OAAO,CAAC,GAAG,EAAE;YACZ,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACP,CAAC;IAES,gBAAgB;QACxB,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAEO,WAAW,CAAC,QAAkB;QACpC,sCAAsC;QACtC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAEjE,+DAA+D;QAC/D,IAAI,iBAAiB,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAC9C,IAAI,iBAAiB,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;QAEhD,0BAA0B;QAC1B,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAEzC,wBAAwB;QACxB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAEzC,yBAAyB;QACzB,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG;YAAE,OAAO,IAAI,CAAC;QAExC,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,OAAiC,EACjC,gBAAwB,EACxB,eAAqC;;QAErC,gBAAgB,IAAI,CAAC,CAAC;QAEtB,sGAAsG;QACtG,EAAE;QACF,mHAAmH;QACnH,gGAAgG;QAChG,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,aAAa,CAAC,KAAI,EAAE,CAAC,CAAC;QAEpE,MAAM,UAAU,GAAG,MAAA,OAAO,CAAC,UAAU,mCAAI,IAAI,CAAC,UAAU,CAAC;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,4BAA4B,CAAC,gBAAgB,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;QACnG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;QAErB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IACjD,CAAC;IAEO,4BAA4B,CAClC,gBAAwB,EACxB,UAAkB,EAClB,UAAkB;QAElB,MAAM,iBAAiB,GAAG,GAAG,CAAC;QAC9B,MAAM,aAAa,GAAG,CAAC,CAAC;QAExB,sFAAsF;QACtF,wBAAwB;QACxB,IAAI,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,EAAE,EAAE;YACpD,OAAO,UAAU,CAAC;SACnB;QAED,MAAM,UAAU,GAAG,UAAU,GAAG,gBAAgB,CAAC;QAEjD,wDAAwD;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QAE9F,kDAAkD;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;QAEnC,OAAO,YAAY,GAAG,MAAM,CAAC;IAC/B,CAAC;IAEO,YAAY;QAClB,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,OAAO,iBAAO,EAAE,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,MAAc,EAAE,GAAG,IAAW;QAC1C,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,MAAM,EAAE;YACrE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,UAAU,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;SAClE;IACH,CAAC;CACF;AAvXD,8BAuXC;AAED,MAAa,WAAW;IAEtB,YAAY,MAAiB;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;CAQF;AAnBD,kCAmBC;AAID,MAAsB,YAAY;IAIhC,YAAY,MAAiB,EAAE,QAA8B,EAAE,OAA4B;QAH3F,uCAAmB;QAIjB,uBAAA,IAAI,wBAAW,MAAM,MAAA,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAUD,WAAW;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAChC,OAAO,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CACb,uFAAuF,CACxF,CAAC;SACH;QACD,MAAM,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACxC,IAAI,QAAQ,IAAI,QAAQ,EAAE;YACxB,WAAW,CAAC,KAAK,GAAG,EAAE,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;SAClE;aAAM,IAAI,KAAK,IAAI,QAAQ,EAAE;YAC5B,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;YACpG,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE;gBACjC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aAC3C;YACD,WAAW,CAAC,KAAK,GAAG,SAAS,CAAC;YAC9B,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;SAC5C;QACD,OAAO,MAAM,uBAAA,IAAI,4BAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,WAAkB,EAAE,WAAW,CAAC,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,CAAC,SAAS;QACd,4DAA4D;QAC5D,IAAI,IAAI,GAAuB,IAAI,CAAC;QACpC,MAAM,IAAI,CAAC;QACX,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE;YACzB,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC;SACZ;IACH,CAAC;IAED,KAAK,CAAC,CAAC,wCAAC,MAAM,CAAC,aAAa,EAAC;QAC3B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YACzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;gBAC3C,MAAM,IAAI,CAAC;aACZ;SACF;IACH,CAAC;CACF;AA7DD,oCA6DC;AAED,MAAa,WAIX,SAAQ,OAAkB;IAG1B;;OAEG;IACH,YACE,MAAiB,EACjB,cAA6C,EAC7C,OAA4B,EAC5B,IAA4E;QAE5E,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACxB,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAC9F,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;QACzB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;QACxB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE;YAC7B,MAAM,IAAI,CAAC;SACZ;IACH,CAAC;CACF;AA1CD,kCA0CC;AAEM,MAAM,qBAAqB,GAAG,CACnC,OAA8C,EACtB,EAAE;IAC1B,OAAO,IAAI,KAAK,CACd,MAAM,CAAC,WAAW;IAChB,aAAa;IACb,OAAO,CAAC,OAAO,EAAE,CAClB,EACD;QACE,GAAG,CAAC,MAAM,EAAE,IAAI;YACd,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC;KACF,CACF,CAAC;AACJ,CAAC,CAAC;AAfW,QAAA,qBAAqB,yBAehC;AAwBF,yFAAyF;AACzF,qFAAqF;AACrF,wEAAwE;AACxE,MAAM,kBAAkB,GAA6B;IACnD,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IAEb,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,IAAI;IACZ,cAAc,EAAE,IAAI;CACrB,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,GAAY,EAAyB,EAAE;IACtE,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,CAAC,UAAU,CAAC,GAAG,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAC7D,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,gBAAgB,oBAO3B;AAiCF,MAAM,qBAAqB,GAAG,GAAuB,EAAE;IACrD,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;QACrD,OAAO;YACL,kBAAkB,EAAE,IAAI;YACxB,6BAA6B,EAAE,iBAAO;YACtC,gBAAgB,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,kBAAkB,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAClD,qBAAqB,EAAE,MAAM;YAC7B,6BAA6B,EAAE,IAAI,CAAC,OAAO;SAC5C,CAAC;KACH;IACD,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;QACtC,OAAO;YACL,kBAAkB,EAAE,IAAI;YACxB,6BAA6B,EAAE,iBAAO;YACtC,gBAAgB,EAAE,SAAS;YAC3B,kBAAkB,EAAE,SAAS,WAAW,EAAE;YAC1C,qBAAqB,EAAE,MAAM;YAC7B,6BAA6B,EAAE,OAAO,CAAC,OAAO;SAC/C,CAAC;KACH;IACD,mBAAmB;IACnB,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,kBAAkB,EAAE;QACvG,OAAO;YACL,kBAAkB,EAAE,IAAI;YACxB,6BAA6B,EAAE,iBAAO;YACtC,gBAAgB,EAAE,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC;YACrD,kBAAkB,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC;YAC/C,qBAAqB,EAAE,MAAM;YAC7B,6BAA6B,EAAE,OAAO,CAAC,OAAO;SAC/C,CAAC;KACH;IACD,0DAA0D;IAC1D,OAAO;QACL,kBAAkB,EAAE,IAAI;QACxB,6BAA6B,EAAE,iBAAO;QACtC,gBAAgB,EAAE,SAAS;QAC3B,kBAAkB,EAAE,SAAS;QAC7B,qBAAqB,EAAE,SAAS;QAChC,6BAA6B,EAAE,SAAS;KACzC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,IAAY,EAAQ,EAAE;IAC3C,aAAa;IACb,oDAAoD;IACpD,aAAa;IACb,mDAAmD;IACnD,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACtD,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IAC3D,IAAI,IAAI;QAAE,OAAO,SAAS,IAAI,EAAE,CAAC;IACjC,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAgB,EAAE;IAC3D,kBAAkB;IAClB,wDAAwD;IACxD,kBAAkB;IAClB,mDAAmD;IACnD,kDAAkD;IAElD,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAElC,oDAAoD;IACpD,yDAAyD;IACzD,iDAAiD;IACjD,8EAA8E;IAC9E,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAC1C,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACzC,IAAI,QAAQ;QAAE,OAAO,SAAS,QAAQ,EAAE,CAAC;IACzC,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,IAAI,gBAAoC,CAAC;AACzC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAC9B,OAAO,CAAC,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,IAAhB,gBAAgB,GAAK,qBAAqB,EAAE,EAAC,CAAC;AACxD,CAAC,CAAC;AAEK,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;IACvC,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACzB;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,SAAS,CAAC;KAClB;AACH,CAAC,CAAC;AANW,QAAA,QAAQ,YAMnB;AAEF,uCAAuC;AACvC,MAAM,sBAAsB,GAAG,IAAI,MAAM,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;AAClE,MAAM,aAAa,GAAG,CAAC,GAAW,EAAW,EAAE;IAC7C,OAAO,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAEhF,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAAE,CAAS,EAAE,EAAE;IAC1D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,qBAAqB,CAAC,CAAC;KAC/C;IACD,IAAI,CAAC,GAAG,CAAC,EAAE;QACT,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,6BAA6B,CAAC,CAAC;KACvD;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEK,MAAM,WAAW,GAAG,CAAC,GAAQ,EAAS,EAAE;IAC7C,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAG,CAAC;IACrC,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC,CAAC;AAHW,QAAA,WAAW,eAGtB;AAEK,MAAM,aAAa,GAAG,CAAI,KAA2B,EAAK,EAAE;IACjE,IAAI,KAAK,IAAI,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,KAAK,WAAW,CAAC,CAAC;IAClG,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAHW,QAAA,aAAa,iBAGxB;AAEK,MAAM,aAAa,GAAG,CAAC,KAAc,EAAU,EAAE;IACtD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAE1D,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,WAAW,OAAO,KAAK,iBAAiB,CAAC,CAAC;AACrF,CAAC,CAAC;AALW,QAAA,aAAa,iBAKxB;AAEK,MAAM,WAAW,GAAG,CAAC,KAAc,EAAU,EAAE;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAExD,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,WAAW,OAAO,KAAK,iBAAiB,CAAC,CAAC;AACrF,CAAC,CAAC;AALW,QAAA,WAAW,eAKtB;AAEK,MAAM,aAAa,GAAG,CAAC,KAAc,EAAW,EAAE;IACvD,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,KAAK,MAAM,CAAC;IACvD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC,CAAC;AAJW,QAAA,aAAa,iBAIxB;AAEF,uCAAuC;AACvC,SAAgB,UAAU,CAAC,GAA8B;IACvD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,KAAK,MAAM,EAAE,IAAI,GAAG;QAAE,OAAO,KAAK,CAAC;IACnC,OAAO,IAAI,CAAC;AACd,CAAC;AAJD,gCAIC;AAED,6DAA6D;AAC7D,SAAgB,MAAM,CAAC,GAAW,EAAE,GAAW;IAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACxD,CAAC;AAFD,wBAEC;AAED;;GAEG;AACH,MAAM,KAAK,GAAG,GAAG,EAAE;IACjB,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACnE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAOK,MAAM,iBAAiB,GAAG,CAAC,OAAY,EAA8B,EAAE;IAC5E,OAAO,OAAO,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,CAAA,KAAK,UAAU,CAAC;AAC5C,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B;AAEK,MAAM,SAAS,GAAG,CAAC,OAAoB,EAAE,GAAW,EAA6B,EAAE;IACxF,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,IAAA,yBAAiB,EAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,MAAM,oBAAoB,GAAG,iCAAiC,CAAC,CAAC;QAC/F,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;KACjB;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAVW,QAAA,SAAS,aAUpB;AAEF;;GAEG;AACI,MAAM,QAAQ,GAAG,CAAC,GAA8B,EAAU,EAAE;IACjE,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;KAC5C;IAED,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;QAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;KAClB;IAED,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;AAC3F,CAAC,CAAC;AAXW,QAAA,QAAQ,YAWnB"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["src/core.ts"],"names":[],"mappings":"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"}