bunderstack 0.17.1 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +57 -0
- package/dist/api/crud-router.d.ts +121 -0
- package/dist/api/crud-router.d.ts.map +1 -1
- package/dist/api/crud-router.js +104 -3
- package/dist/api/crud-router.js.map +1 -1
- package/dist/api/list-input-schema.d.ts +15 -0
- package/dist/api/list-input-schema.d.ts.map +1 -1
- package/dist/api/list-input-schema.js +16 -0
- package/dist/api/list-input-schema.js.map +1 -1
- package/dist/api/live-view.d.ts +14 -0
- package/dist/api/live-view.d.ts.map +1 -0
- package/dist/api/live-view.js +42 -0
- package/dist/api/live-view.js.map +1 -0
- package/dist/api/live-window.d.ts +40 -0
- package/dist/api/live-window.d.ts.map +1 -0
- package/dist/api/live-window.js +83 -0
- package/dist/api/live-window.js.map +1 -0
- package/dist/api/openapi.js +1 -1
- package/dist/api/openapi.js.map +1 -1
- package/dist/api/realtime-router.d.ts +2 -0
- package/dist/api/realtime-router.d.ts.map +1 -1
- package/dist/api/realtime-router.js +3 -0
- package/dist/api/realtime-router.js.map +1 -1
- package/dist/api/registry.d.ts.map +1 -1
- package/dist/api/registry.js +2 -6
- package/dist/api/registry.js.map +1 -1
- package/dist/api/storage-router.d.ts.map +1 -1
- package/dist/api/storage-router.js.map +1 -1
- package/dist/api/types.d.ts.map +1 -1
- package/dist/cli-skills.d.ts.map +1 -1
- package/dist/cli-skills.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/crud-operations.d.ts.map +1 -1
- package/dist/crud-operations.js +3 -12
- package/dist/crud-operations.js.map +1 -1
- package/dist/email.d.ts.map +1 -1
- package/dist/email.js.map +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +8 -3
- package/dist/errors.js.map +1 -1
- package/dist/handler.d.ts.map +1 -1
- package/dist/handler.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -16
- package/dist/index.js.map +1 -1
- package/dist/live/apply.d.ts +13 -0
- package/dist/live/apply.d.ts.map +1 -0
- package/dist/live/apply.js +32 -0
- package/dist/live/apply.js.map +1 -0
- package/dist/live/index.d.ts +48 -0
- package/dist/live/index.d.ts.map +1 -0
- package/dist/live/index.js +108 -0
- package/dist/live/index.js.map +1 -0
- package/dist/live/protocol.d.ts +44 -0
- package/dist/live/protocol.d.ts.map +1 -0
- package/dist/live/protocol.js +12 -0
- package/dist/live/protocol.js.map +1 -0
- package/dist/live/sse.d.ts +22 -0
- package/dist/live/sse.d.ts.map +1 -0
- package/dist/live/sse.js +41 -0
- package/dist/live/sse.js.map +1 -0
- package/dist/realtime/facade.d.ts.map +1 -1
- package/dist/realtime/facade.js.map +1 -1
- package/dist/realtime/filter.d.ts +34 -5
- package/dist/realtime/filter.d.ts.map +1 -1
- package/dist/realtime/filter.js +63 -26
- package/dist/realtime/filter.js.map +1 -1
- package/dist/realtime/heartbeat.d.ts +6 -0
- package/dist/realtime/heartbeat.d.ts.map +1 -1
- package/dist/realtime/heartbeat.js +1 -1
- package/dist/realtime/heartbeat.js.map +1 -1
- package/dist/storage/operations.d.ts.map +1 -1
- package/dist/storage/operations.js.map +1 -1
- package/llms.txt +3 -3
- package/package.json +6 -2
- package/skills/creating-bunderstack-apps/agents/openai.yaml +3 -3
- package/skills/creating-bunderstack-apps/references/application-structure.md +17 -8
- package/skills/migrating-to-bunderstack/SKILL.md +6 -6
- package/skills/migrating-to-bunderstack/agents/openai.yaml +3 -3
- package/skills/migrating-to-bunderstack/references/audit-checklist.md +22 -22
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,EAAE,GAEH,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAA;AAEjE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,aAAa;IACb,cAAc;IACd,WAAW;IACX,WAAW;IACX,UAAU;IACV,mBAAmB;IACnB,mBAAmB;CACiD,CAAA;AAItE;;;;;;GAMG;AACH,SAAS,eAAe,CACtB,IAAW;IAEX,OAAO,CAAC,CAAC,QAAQ,CACf,CAAC,CAAC,YAAY,CAAC;QACb,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;QACvC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;KACjC,CAAC,EACF,EAAE,IAAI,EAAE,CACT,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,WAAW,EAAE,EAAE,IAAI,EAAE,eAAe,CAAC,aAAa,CAAC,EAAE;IACrD,YAAY,EAAE,EAAE,IAAI,EAAE,eAAe,CAAC,cAAc,CAAC,EAAE;IACvD,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,EAAE;IACjD,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,EAAE;IACjD,QAAQ,EAAE,EAAE,IAAI,EAAE,eAAe,CAAC,UAAU,CAAC,EAAE;IAC/C,iBAAiB,EAAE,EAAE,IAAI,EAAE,eAAe,CAAC,mBAAmB,CAAC,EAAE;IACjE,iBAAiB,EAAE,EAAE,IAAI,EAAE,eAAe,CAAC,mBAAmB,CAAC,EAAE;CACtC,CAAA;AAE7B,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAI9B;IAEA;IALF,MAAM,CAAQ;IAEvB,YACW,IAA0B,EACnC,OAAe,EACN,OAAiB,EAC1B,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QALd,SAAI,GAAJ,IAAI,CAAsB;QAE1B,YAAO,GAAP,OAAO,CAAU;QAI1B,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE;KACnC,MAAM,CAAC,kBAAkB,CAAC;KAC1B,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/handler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AAEtE,UAAU,YAAY;IACpB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IACjD,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IACvD,SAAS,CAAC,EAAE,OAAO,GAAG,eAAe,CAAA;CACtC;AAED,wBAAgB,YAAY,
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AAEtE,UAAU,YAAY;IACpB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IACjD,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IACvD,SAAS,CAAC,EAAE,OAAO,GAAG,eAAe,CAAA;CACtC;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,YAAY,GAClB,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAoBrC"}
|
package/dist/handler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,OAAO,EAAE,iBAAiB,EAAwB,MAAM,cAAc,CAAA;AAQtE,MAAM,UAAU,YAAY,
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,OAAO,EAAE,iBAAiB,EAAwB,MAAM,cAAc,CAAA;AAQtE,MAAM,UAAU,YAAY,CAC1B,KAAmB;IAEnB,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAEzD,OAAO,KAAK,EAAE,GAAY,EAAqB,EAAE;QAC/C,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAA;QACzC,IAAI,OAAO;YAAE,OAAO,OAAO,CAAA;QAE3B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAA;QAC1C,IACE,KAAK,CAAC,WAAW;YACjB,CAAC,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAC/D,CAAC;YACD,OAAO,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC/B,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;YAC1C,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAA;QAC3B,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IACnD,CAAC,CAAA;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AnyRouter as AnyORPCRouter } from '@orpc/server';
|
|
2
2
|
import type { TableAccessInput } from './access.js';
|
|
3
|
-
import type { CrudApiRouterFor, MergeApiRouterTypes, UnifiedApiRouter } from './api/types.js';
|
|
4
3
|
import type { RealtimeApiRouter } from './api/realtime-router.js';
|
|
4
|
+
import type { CrudApiRouterFor, MergeApiRouterTypes, UnifiedApiRouter } from './api/types.js';
|
|
5
5
|
import type { DbFor } from './db.js';
|
|
6
6
|
import type { BunderstackJobsBuilder, JobsDefs, JobsFacade, StartWorkerOptions, WorkerHandle } from './jobs/index.js';
|
|
7
7
|
import type { StorageConfigInput } from './storage/buckets.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,cAAc,CAAA;AAS9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -10,9 +10,9 @@ import { createApiContext } from './api/context.js';
|
|
|
10
10
|
import { buildCrudApiRouter } from './api/crud-router.js';
|
|
11
11
|
import { mergeOpenAPISpecs } from './api/openapi.js';
|
|
12
12
|
import { buildRealtimeApiRouter } from './api/realtime-router.js';
|
|
13
|
+
import { buildApiRegistry, normalizeForeignOpenAPISpec } from './api/registry.js';
|
|
13
14
|
import { buildApiRouter } from './api/router.js';
|
|
14
15
|
import { buildStorageApiRouter } from './api/storage-router.js';
|
|
15
|
-
import { buildApiRegistry, normalizeForeignOpenAPISpec, } from './api/registry.js';
|
|
16
16
|
import { createAuth, toAuthSessionResolver, withEmailAuthDefaults, } from './auth.js';
|
|
17
17
|
import { resolveConfig } from './config.js';
|
|
18
18
|
import { resolveAuthConfig, resolveRealtimeRedisUrl } from './config.js';
|
|
@@ -30,8 +30,8 @@ import { createRealtimeFacade, } from './realtime/facade.js';
|
|
|
30
30
|
import { createMemoryRealtimePublisher, createRedisRealtimePublisher, } from './realtime/publisher.js';
|
|
31
31
|
import { deleteFileWithDerivatives } from './storage/delete.js';
|
|
32
32
|
import { deleteFileMetaRow, insertReadyFile } from './storage/file-meta.js';
|
|
33
|
-
import { createBucketStorages } from './storage/registry.js';
|
|
34
33
|
import { createStorageOperations } from './storage/operations.js';
|
|
34
|
+
import { createBucketStorages } from './storage/registry.js';
|
|
35
35
|
import { sweepOrphans } from './storage/sweep.js';
|
|
36
36
|
function waitForWorkerShutdown(signal, installProcessListeners) {
|
|
37
37
|
if (signal.aborted)
|
|
@@ -282,6 +282,7 @@ export async function createBunderstack(options) {
|
|
|
282
282
|
access: resolvedAccess,
|
|
283
283
|
idempotency: options.idempotency,
|
|
284
284
|
realtime,
|
|
285
|
+
livePublisher: publisher,
|
|
285
286
|
});
|
|
286
287
|
const customApiRouter = typeof options.api === 'function'
|
|
287
288
|
? options.api(createApiBuilder())
|
|
@@ -311,7 +312,13 @@ export async function createBunderstack(options) {
|
|
|
311
312
|
reservedCoreHandles: new Set([
|
|
312
313
|
'health',
|
|
313
314
|
...(publisher ? ['realtime.changes'] : []),
|
|
314
|
-
...[...registry.keys()].flatMap((name) => [
|
|
315
|
+
...[...registry.keys()].flatMap((name) => [
|
|
316
|
+
'prepareUpload',
|
|
317
|
+
'upload',
|
|
318
|
+
'confirmUpload',
|
|
319
|
+
'download',
|
|
320
|
+
'delete',
|
|
321
|
+
].map((operation) => `files.${name}.${operation}`)),
|
|
315
322
|
]),
|
|
316
323
|
});
|
|
317
324
|
const valibotConverter = new ValibotToJsonSchemaConverter();
|
|
@@ -321,8 +328,7 @@ export async function createBunderstack(options) {
|
|
|
321
328
|
converters: [
|
|
322
329
|
valibotConverter,
|
|
323
330
|
{
|
|
324
|
-
condition: (schema) => Boolean(schema?.['~standard'] &&
|
|
325
|
-
!schema['~standard'].jsonSchema),
|
|
331
|
+
condition: (schema) => Boolean(schema?.['~standard'] && !schema['~standard'].jsonSchema),
|
|
326
332
|
convert: (schema) => {
|
|
327
333
|
const vendor = schema?.['~standard']?.vendor ?? 'unknown';
|
|
328
334
|
throw new OpenAPIGeneratorError(`No JSON Schema converter is configured for Standard Schema vendor "${vendor}"`);
|
|
@@ -340,17 +346,24 @@ export async function createBunderstack(options) {
|
|
|
340
346
|
plugins: [
|
|
341
347
|
new SmartCoercionHandlerPlugin({ converters: [valibotConverter] }),
|
|
342
348
|
],
|
|
343
|
-
customErrorResponseBodyEncoder: (error) =>
|
|
344
|
-
error
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
: error.
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
349
|
+
customErrorResponseBodyEncoder: (error) => {
|
|
350
|
+
if (error?.code === 'INTERNAL_SERVER_ERROR' ||
|
|
351
|
+
!error?.status ||
|
|
352
|
+
error.status >= 500) {
|
|
353
|
+
console.error('[bunderstack-api] 500 Internal Server Error:', error?.cause ?? error);
|
|
354
|
+
}
|
|
355
|
+
return {
|
|
356
|
+
error: error.message,
|
|
357
|
+
code: error.data?.code ?? error.code,
|
|
358
|
+
// oRPC reports schema failures as `data.issues`; forwarding them tells
|
|
359
|
+
// the client which field was rejected instead of just "invalid".
|
|
360
|
+
...(error.data?.details !== undefined
|
|
361
|
+
? { details: error.data.details }
|
|
362
|
+
: error.data?.issues !== undefined
|
|
363
|
+
? { details: error.data.issues }
|
|
364
|
+
: {}),
|
|
365
|
+
};
|
|
366
|
+
},
|
|
354
367
|
fetchInterceptors: [
|
|
355
368
|
async (options) => {
|
|
356
369
|
const res = await options.next();
|
|
@@ -361,6 +374,9 @@ export async function createBunderstack(options) {
|
|
|
361
374
|
},
|
|
362
375
|
],
|
|
363
376
|
});
|
|
377
|
+
// No custom error encoding here: the RPC protocol owns its error body, and
|
|
378
|
+
// `mapBunderstackErrors` already logs unhandled procedure errors for every
|
|
379
|
+
// transport before rethrowing them.
|
|
364
380
|
const rpcHandler = new RPCHandler(nativeRouter);
|
|
365
381
|
const apiHandler = async (req) => {
|
|
366
382
|
const urlString = typeof req === 'string' ? req : req.url;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,eAAe;AAEf,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAA;AAuB5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EACL,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,aAAa,EAA0B,MAAM,UAAU,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAoB,MAAM,SAAS,CAAA;AACzE,OAAO,EAAE,WAAW,EAA0C,MAAM,OAAO,CAAA;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,cAAc,EACd,gBAAgB,GACjB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,SAAS,EAAwB,MAAM,aAAa,CAAA;AAC7D,OAAO,EAAE,aAAa,EAA4B,MAAM,YAAY,CAAA;AACpE,OAAO,EACL,mBAAmB,GAEpB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,oBAAoB,GAGrB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAI9C,SAAS,qBAAqB,CAC5B,MAAmB,EACnB,uBAAgC;IAEhC,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAE5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YACzC,IAAI,uBAAuB,EAAE,CAAC;gBAC5B,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;gBACtC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;YACzC,CAAC;YACD,OAAO,EAAE,CAAA;QACX,CAAC,CAAA;QACD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACtD,IAAI,uBAAuB,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YAC5B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,sBAAsB,GAAG,EAAE,GAAG,MAAM,CAAA;AAkH1C,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAQrC,OAUC;IAWD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7C,MAAM,QAAQ,GAAyB,OAAO,CAAC,IAAI;QACjD,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU;YAClC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAA+B,CAAC;YAChE,CAAC,CAAE,OAAO,CAAC,IAAiB;QAC9B,CAAC,CAAC,SAAS,CAAA;IACb,IAAI,QAAQ;QAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACxC,2EAA2E;IAC3E,iDAAiD;IACjD,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE;QACnC,aAAa,EACX,OAAO,CAAC,UAAU,EAAE,0BAA0B;YAC9C,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;QACjC,kBAAkB,EAChB,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,gBAAgB;QAC5D,MAAM,EAAE,OAAO,CAAC,UAAU;KAC3B,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAC9D,8EAA8E;IAC9E,iDAAiD;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,GAAG,CAAA;IAC7D,wEAAwE;IACxE,6EAA6E;IAC7E,oDAAoD;IACpD,MAAM,YAAY,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACvD,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAA;IACjC,MAAM,EACJ,EAAE,EACF,MAAM,EACN,KAAK,EAAE,aAAa,GACrB,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE;QAC/B,GAAG,MAAM,CAAC,QAAQ;QAClB,OAAO;QACP,UAAU;KACX,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAA;IACrD,IAAI,aAAa;QAAE,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAC/C,IAAI,CAAC;QACH,8EAA8E;QAC9E,6EAA6E;QAC7E,+EAA+E;QAC/E,wEAAwE;QACxE,oEAAoE;QACpE,+DAA+D;QAC/D,MAAM,MAAM,GAAG,EAA+B,CAAA;QAC9C,6EAA6E;QAC7E,6EAA6E;QAC7E,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QACtE,MAAM,IAAI,GAAG,UAAU,CACrB,EAAE,EACF,qBAAqB,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAChE,OAAO,EACP,OAAO,CAAC,MAAiC,CAC1C,CAAA;QACD,4EAA4E;QAC5E,qEAAqE;QACrE,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAA;QACxE,MAAM,cAAc,GAAG,wBAAwB,CAC7C,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,MAAM,CACf,CAAA;QACD,MAAM,kBAAkB,GACtB,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;YACjC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU;YAC5B,CAAC,CAAC,SAAS,CAAA;QACf,MAAM,qBAAqB,GACzB,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;YACjC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa;YAC/B,CAAC,CAAC,SAAS,CAAA;QACf,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ;YACxC,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC;YAC/C,CAAC,CAAC,SAAS,CAAA;QACb,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAA;QAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ;YAC/B,CAAC,CAAC,QAAQ;gBACR,CAAC,CAAC,CAAC,GAAG,EAAE;oBACJ,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;oBAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,EAAE,CAAA;oBACpC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;wBACvB,KAAK,CAAC,KAAK,EAAE,CACZ;wBAAA,CAAC,MAAM,UAAU,CAAC,CAAC,KAAK,EAAE,CAAA;oBAC7B,CAAC,CAAC,CAAA;oBACF,OAAO,4BAA4B,CAAC,KAAK,EAAE,UAAU,EAAE;wBACrD,MAAM,EACJ,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,cAAc;wBAC3D,iBAAiB,EAAE,kBAAkB;wBACrC,aAAa,EAAE,qBAAqB;qBACrC,CAAC,CAAA;gBACJ,CAAC,CAAC,EAAE;gBACN,CAAC,CAAC,6BAA6B,CAAC;oBAC5B,iBAAiB,EAAE,kBAAkB;oBACrC,aAAa,EAAE,qBAAqB;iBACrC,CAAC;YACN,CAAC,CAAC,SAAS,CAAA;QACb,MAAM,wBAAwB,GAAsB,CAAC,SAAS;YAC5D,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,QAAQ;gBACR,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,QAAQ,CAAA;QACd,MAAM,QAAQ,GAAG,oBAAoB,CACnC,SAAS,EACT,wBAAwB,EACxB,OAAO,CAAC,MAAM,CACf,CAAA;QACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACrD,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;YAChD,QAAQ;YACR,EAAE;SACH,CAAC,CAAA;QACF,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAA;QAC3E,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;QAC3E,MAAM,OAAO,GAAkB;YAC7B,KAAK,CAAC,MAAM,CAAC,MAAM;gBACjB,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;gBACtC,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,yBAAyB,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;gBAC5D,CAAC;qBAAM,CAAC;oBACN,oEAAoE;oBACpE,MAAM,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;gBACrC,CAAC;YACH,CAAC;YACD,MAAM,CAAC,IAAI;gBACT,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;YACpC,CAAC;YACD,KAAK,CAAC,WAAW,GAAG,sBAAsB;gBACxC,OAAO,YAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,WAAW,CAAC,CAAA;YAChD,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE;gBACzB,MAAM,UAAU,GACd,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAA;gBAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;gBACjD,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;oBACxB,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE;wBAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;qBAClC,CAAC,CAAA;gBACJ,CAAC;gBACD,OAAO,cAAc,GAAG,EAAE,CAAA;YAC5B,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE;gBAC5C,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;gBACjD,IAAI,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAA;gBAC9D,MAAM,EAAE,GAAG,IAAI,YAAY,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;gBACnE,MAAM,GAAG,GAAgB,EAAE,CAAC,MAAM,CAAC,KAAK,CACtC,EAAE,CAAC,UAAU,EACb,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CACf,CAAA;gBAChB,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAA;gBAC3C,MAAM,eAAe,CAAC,EAAE,EAAE;oBACxB,MAAM,EAAE,GAAG;oBACX,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;oBAC7B,SAAS,EAAE,IAAI;oBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI;oBACxD,WAAW;oBACX,IAAI,EAAE,GAAG,CAAC,UAAU;iBACrB,CAAC,CAAA;YACJ,CAAC;SACF,CAAA;QACD,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAClD,uEAAuE;QACvE,mEAAmE;QACnE,MAAM,YAAY,GAAyB,iBAAiB;YAC1D,CAAC,CAAC;gBACE,GAAG,QAAQ;gBACX,2BAA2B,EAAE;oBAC3B,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,WAAW;oBACrB,OAAO,EAAE,KAAK,IAAI,EAAE;wBAClB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;oBACvB,CAAC;iBACF;aACF;YACH,CAAC,CAAC,QAAQ,CAAA;QAEZ,MAAM,SAAS,GAAG,YAAY;YAC5B,CAAC,CAAC,eAAe,CAAC;gBACd,EAAE;gBACF,IAAI,EAAE,YAAY;gBAClB,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE;aACnD,CAAC;YACJ,CAAC,CAAC,SAAS,CAAA;QACb,MAAM,IAAI,GAAG;YACX,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,KAAe,EAAE,IAAqB;gBAChE,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAA;gBACH,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;gBACpE,OAAO,MAAM,CAAA;YACf,CAAC;YACD,IAAI,CAAC,GAAY;gBACf,OAAO,SAAS;oBACd,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;oBACrB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;YACxD,CAAC;SACF,CAAA;QACD,IAAI,SAAS;YAAE,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAC5C,MAAM,WAAW,GAAG,KAAK,EACvB,UAAiC,EAAE,EACZ,EAAE;YACzB,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,CAAA;YAC7D,CAAC;YACD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;YAC3D,CAAC;YACD,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;YAClE,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM;gBAC3B,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBACrD,CAAC,CAAC,SAAS,CAAC,MAAM,CAAA;YACpB,MAAM,MAAM,GAAG,cAAc,CAAC;gBAC5B,GAAG,OAAO;gBACV,MAAM;gBACN,uEAAuE;gBACvE,uCAAuC;gBACvC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;oBAClB,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC3B,CAAC;aACF,CAAC,CAAA;YACF,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;YACtD,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YACtC,OAAO,MAAM,CAAA;QACf,CAAC,CAAA;QACD,MAAM,SAAS,GAAG,KAAK,EACrB,UAA+B,EAAE,EAClB,EAAE;YACjB,IAAI,UAAU;gBAAE,OAAM;YACtB,IACE,QAAQ,CAAC,SAAS,KAAK,QAAQ;gBAC/B,CAAC,OAAO,CAAC,yBAAyB,EAClC,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,mPAAmP,CACpP,CAAA;YACH,CAAC;YACD,MAAM,EACJ,yBAAyB,EAAE,0BAA0B,EACrD,GAAG,aAAa,EACjB,GAAG,OAAO,CAAA;YACX,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,CAAA;YAC/C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM;oBACjC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;oBAC3D,CAAC,CAAC,SAAS,CAAC,MAAM,CAAA;gBACpB,MAAM,qBAAqB,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;YAC5D,CAAC;oBAAS,CAAC;gBACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;gBACpB,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;YACzB,CAAC;QACH,CAAC,CAAA;QACD,MAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE;YAC/D,MAAM,EAAE,cAAc;YACtB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,QAAQ;SACT,CAAC,CAAA;QAEF,MAAM,eAAe,GACnB,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU;YAC/B,CAAC,CACG,OAAO,CAAC,GAGT,CAAC,gBAAgB,EAA+B,CAAC;YACpD,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA;QAEjB,MAAM,YAAY,GAAG,cAAc,CAAC;YAClC,IAAI,EAAE,aAAwC;YAC9C,OAAO,EAAE,gBAA2C;YACpD,QAAQ,EAAE,iBAAwD;YAClE,MAAM,EAAE,eAAsD;YAC9D,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAQ,CAAA;QAET,MAAM,kBAAkB,GACtB,OAAO,CAAC,OAAO;YACf,IAAI,CAAC,GAAG;YACR,uBAAuB,IAAI,IAAI,CAAC,GAAG;YACnC,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,KAAK,UAAU;YAClD,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE;YACxC,CAAC,CAAC,SAAS,CAAA;QAEf,MAAM,eAAe,GAAG,kBAAkB;YACxC,CAAC,CAAC,2BAA2B,CAAC,kBAAkB,EAAE;gBAC9C,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,MAAM;aACf,CAAC;YACJ,CAAC,CAAC,SAAS,CAAA;QAEb,MAAM,gBAAgB,CAAC;YACrB,YAAY;YACZ,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE;YACtD,mBAAmB,EAAE,IAAI,GAAG,CAAC;gBAC3B,QAAQ;gBACR,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1C,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACvC,CAAC,eAAe,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,GAAG,CACpE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,IAAI,IAAI,SAAS,EAAE,CAC5C,CACF;aACF,CAAC;SACH,CAAC,CAAA;QAEF,MAAM,gBAAgB,GAAG,IAAI,4BAA4B,EAAE,CAAA;QAE3D,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO;YACzC,CAAC,CAAC,iBAAiB,CAAC;gBAChB,UAAU,EAAE,MAAM,IAAI,gBAAgB,CAAC;oBACrC,UAAU,EAAE;wBACV,gBAAgB;wBAChB;4BACE,SAAS,EAAE,CAAC,MAAW,EAAE,EAAE,CACzB,OAAO,CACL,MAAM,EAAE,CAAC,WAAW,CAAC;gCACnB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,UAAU,CAClC;4BACH,OAAO,EAAE,CAAC,MAAW,EAAE,EAAE;gCACvB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,SAAS,CAAA;gCACzD,MAAM,IAAI,qBAAqB,CAC7B,sEAAsE,MAAM,GAAG,CAChF,CAAA;4BACH,CAAC;yBACF;qBACF;iBACF,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACzB,QAAQ,EAAE,eAAe;aAC1B,CAAC;YACJ,CAAC,CAAC,SAAS,CAAA;QAEb,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,YAAY,EAAE;YACtD,sEAAsE;YACtE,uEAAuE;YACvE,gEAAgE;YAChE,OAAO,EAAE;gBACP,IAAI,0BAA0B,CAAC,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;aACnE;YACD,8BAA8B,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC;gBAC/C,KAAK,EAAE,KAAK,CAAC,OAAO;gBACpB,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI;gBACpC,uEAAuE;gBACvE,iEAAiE;gBACjE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,KAAK,SAAS;oBACnC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;oBACjC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS;wBAChC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;wBAChC,CAAC,CAAC,EAAE,CAAC;aACV,CAAC;YACF,iBAAiB,EAAE;gBACjB,KAAK,EAAE,OAAO,EAAE,EAAE;oBAChB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAA;oBAChC,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;wBAC9C,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAC1D,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAC/B,CAAA;oBACH,CAAC;oBACD,OAAO,GAAG,CAAA;gBACZ,CAAC;aACF;SACF,CAAC,CAAA;QACF,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAA;QAE/C,MAAM,UAAU,GAAG,KAAK,EAAE,GAAY,EAA4B,EAAE;YAClE,MAAM,SAAS,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAE,GAAc,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAA;YACrE,IAAI,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAA;YAC3B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAA;YAClD,IACE,mBAAmB;gBACnB,GAAG,CAAC,QAAQ,KAAK,mBAAmB;gBACpC,GAAG,CAAC,MAAM,KAAK,KAAK,EACpB,CAAC;gBACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,EAAE;oBACvD,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;iBAChD,CAAC,CAAA;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,gBAAgB,CAC7B;gBACE,EAAE,EAAE,MAAM;gBACV,GAAG;gBACH,OAAO;gBACP,KAAK;gBACL,IAAI;gBACJ,QAAQ;gBACR,IAAI;gBACJ,YAAY;aACb,EACD,GAAG,CACJ,CAAA;YAED,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxC,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE;oBACvC,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,MAAM;iBAChB,CAAC,CAAA;gBACF,IAAI,GAAG,CAAC,OAAO;oBAAE,OAAO,GAAG,CAAC,QAAQ,CAAA;YACtC,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;YACxE,IAAI,UAAU,CAAC,OAAO;gBAAE,OAAO,UAAU,CAAC,QAAQ,CAAA;YAElD,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;QAED,MAAM,OAAO,GAAG,YAAY,CAAC;YAC3B,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;YACvC,UAAU;YACV,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAA;QAEF,0EAA0E;QAC1E,0DAA0D;QAC1D,MAAM,eAAe,GACnB,GAAG,CAAC,gBAAgB,KAAK,KAAK,IAAI,GAAG,CAAC,gBAAgB,KAAK,QAAQ,CAAA;QACrE,MAAM,SAAS,GACb,OAAO,CAAC,UAAU,EAAE,SAAS;YAC7B,CAAC,eAAe,IAAI,CAAC,UAAU,IAAI,YAAY,KAAK,SAAS,CAAC,CAAA;QAChE,IAAI,iBAAiB,GAAG,KAAK,CAAA;QAC7B,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,WAAW,EAAE,CAAA;YACnB,iBAAiB,GAAG,IAAI,CAAA;QAC1B,CAAC;QAED,MAAM,GAAG,GAOL;YACF,OAAO;YACP,0EAA0E;YAC1E,EAAE,EAAE,MAAM;YACV,IAAI;YACJ,OAAO;YACP,GAAG;YACH,KAAK;YACL,QAAQ;YACR,yEAAyE;YACzE,2EAA2E;YAC3E,qBAAqB;YACrB,IAAI,EAAE,IAAa;YACnB,WAAW;YACX,SAAS;YACT,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE;YAC9B,iBAAiB;YACjB,IAAI,MAAM;gBACR,OAAO,SAAS,CAAC,MAAM,CAAA;YACzB,CAAC;YACD,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,QAAQ,EAAE,aAAa,CAAC;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO;gBACP,mBAAmB,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;gBAC/C,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,SAAS,EAAE,OAAO,CAAC,GAAiC;gBACpD,aAAa,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC9C,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAClC,IAAI,EAAE,YAAY;aACnB,CAAC;SACH,CAKA;QAAC,GAA8B,CAAC,mBAAmB,CAAC,GAAG;YACtD,EAAE;YACF,MAAM,EAAE,YAAY;YACpB,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG;YAChC,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;YAC5C,OAAO;YACP,MAAM;YACN,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;SACjC,CAAA;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;QACzB,CAAC;QAAC,OAAO,YAAY,EAAE,CAAC;YACtB,MAAM,IAAI,cAAc,CACtB,CAAC,KAAK,EAAE,YAAY,CAAC,EACrB,oEAAoE,CACrE,CAAA;QACH,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AASvE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAA;AAEzE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAOrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAoBhD,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,WAAW,EACX,gBAAgB,GACjB,MAAM,UAAU,CAAA;AAOjB,OAAO,EACL,MAAM,EACN,QAAQ,IAAI,cAAc,EAC1B,KAAK,IAAI,WAAW,EACpB,QAAQ,GACT,MAAM,UAAU,CAAA;AAgBjB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAG3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAOxD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAY3D,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,eAAe;AAEf,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAA;AAsB5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,aAAa,EAA0B,MAAM,UAAU,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAoB,MAAM,SAAS,CAAA;AACzE,OAAO,EAAE,WAAW,EAA0C,MAAM,OAAO,CAAA;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,cAAc,EACd,gBAAgB,GACjB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,SAAS,EAAwB,MAAM,aAAa,CAAA;AAC7D,OAAO,EAAE,aAAa,EAA4B,MAAM,YAAY,CAAA;AACpE,OAAO,EACL,mBAAmB,GAEpB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,oBAAoB,GAGrB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAI9C,SAAS,qBAAqB,CAC5B,MAAmB,EACnB,uBAAgC;IAEhC,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAE5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YACzC,IAAI,uBAAuB,EAAE,CAAC;gBAC5B,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;gBACtC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;YACzC,CAAC;YACD,OAAO,EAAE,CAAA;QACX,CAAC,CAAA;QACD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACtD,IAAI,uBAAuB,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YAC5B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,sBAAsB,GAAG,EAAE,GAAG,MAAM,CAAA;AAoI1C,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAQrC,OAUC;IAWD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7C,MAAM,QAAQ,GAAyB,OAAO,CAAC,IAAI;QACjD,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU;YAClC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAA+B,CAAC;YAChE,CAAC,CAAE,OAAO,CAAC,IAAiB;QAC9B,CAAC,CAAC,SAAS,CAAA;IACb,IAAI,QAAQ;QAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACxC,2EAA2E;IAC3E,iDAAiD;IACjD,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE;QACnC,aAAa,EACX,OAAO,CAAC,UAAU,EAAE,0BAA0B;YAC9C,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;QACjC,kBAAkB,EAChB,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,gBAAgB;QAC5D,MAAM,EAAE,OAAO,CAAC,UAAU;KAC3B,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAC9D,8EAA8E;IAC9E,iDAAiD;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,GAAG,CAAA;IAC7D,wEAAwE;IACxE,6EAA6E;IAC7E,oDAAoD;IACpD,MAAM,YAAY,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACvD,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAA;IACjC,MAAM,EACJ,EAAE,EACF,MAAM,EACN,KAAK,EAAE,aAAa,GACrB,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE;QAC/B,GAAG,MAAM,CAAC,QAAQ;QAClB,OAAO;QACP,UAAU;KACX,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAA;IACrD,IAAI,aAAa;QAAE,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAC/C,IAAI,CAAC;QACH,8EAA8E;QAC9E,6EAA6E;QAC7E,+EAA+E;QAC/E,wEAAwE;QACxE,oEAAoE;QACpE,+DAA+D;QAC/D,MAAM,MAAM,GAAG,EAA+B,CAAA;QAC9C,6EAA6E;QAC7E,6EAA6E;QAC7E,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QACtE,MAAM,IAAI,GAAG,UAAU,CACrB,EAAE,EACF,qBAAqB,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAChE,OAAO,EACP,OAAO,CAAC,MAAiC,CAC1C,CAAA;QACD,4EAA4E;QAC5E,qEAAqE;QACrE,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAA;QACxE,MAAM,cAAc,GAAG,wBAAwB,CAC7C,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,MAAM,CACf,CAAA;QACD,MAAM,kBAAkB,GACtB,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;YACjC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU;YAC5B,CAAC,CAAC,SAAS,CAAA;QACf,MAAM,qBAAqB,GACzB,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;YACjC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa;YAC/B,CAAC,CAAC,SAAS,CAAA;QACf,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ;YACxC,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC;YAC/C,CAAC,CAAC,SAAS,CAAA;QACb,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAA;QAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ;YAC/B,CAAC,CAAC,QAAQ;gBACR,CAAC,CAAC,CAAC,GAAG,EAAE;oBACJ,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;oBAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,EAAE,CAAA;oBACpC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;wBACvB,KAAK,CAAC,KAAK,EAAE,CACZ;wBAAA,CAAC,MAAM,UAAU,CAAC,CAAC,KAAK,EAAE,CAAA;oBAC7B,CAAC,CAAC,CAAA;oBACF,OAAO,4BAA4B,CAAC,KAAK,EAAE,UAAU,EAAE;wBACrD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,cAAc;wBACjE,iBAAiB,EAAE,kBAAkB;wBACrC,aAAa,EAAE,qBAAqB;qBACrC,CAAC,CAAA;gBACJ,CAAC,CAAC,EAAE;gBACN,CAAC,CAAC,6BAA6B,CAAC;oBAC5B,iBAAiB,EAAE,kBAAkB;oBACrC,aAAa,EAAE,qBAAqB;iBACrC,CAAC;YACN,CAAC,CAAC,SAAS,CAAA;QACb,MAAM,wBAAwB,GAAsB,CAAC,SAAS;YAC5D,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,QAAQ;gBACR,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,QAAQ,CAAA;QACd,MAAM,QAAQ,GAAG,oBAAoB,CACnC,SAAS,EACT,wBAAwB,EACxB,OAAO,CAAC,MAAM,CACf,CAAA;QACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACrD,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;YAChD,QAAQ;YACR,EAAE;SACH,CAAC,CAAA;QACF,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAA;QAC3E,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;QAC3E,MAAM,OAAO,GAAkB;YAC7B,KAAK,CAAC,MAAM,CAAC,MAAM;gBACjB,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;gBACtC,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,yBAAyB,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;gBAC5D,CAAC;qBAAM,CAAC;oBACN,oEAAoE;oBACpE,MAAM,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;gBACrC,CAAC;YACH,CAAC;YACD,MAAM,CAAC,IAAI;gBACT,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;YACpC,CAAC;YACD,KAAK,CAAC,WAAW,GAAG,sBAAsB;gBACxC,OAAO,YAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,WAAW,CAAC,CAAA;YAChD,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE;gBACzB,MAAM,UAAU,GACd,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAA;gBAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;gBACjD,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;oBACxB,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE;wBAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;qBAClC,CAAC,CAAA;gBACJ,CAAC;gBACD,OAAO,cAAc,GAAG,EAAE,CAAA;YAC5B,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE;gBAC5C,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;gBACjD,IAAI,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAA;gBAC9D,MAAM,EAAE,GAAG,IAAI,YAAY,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;gBACnE,MAAM,GAAG,GAAgB,EAAE,CAAC,MAAM,CAAC,KAAK,CACtC,EAAE,CAAC,UAAU,EACb,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CACf,CAAA;gBAChB,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAA;gBAC3C,MAAM,eAAe,CAAC,EAAE,EAAE;oBACxB,MAAM,EAAE,GAAG;oBACX,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;oBAC7B,SAAS,EAAE,IAAI;oBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI;oBACxD,WAAW;oBACX,IAAI,EAAE,GAAG,CAAC,UAAU;iBACrB,CAAC,CAAA;YACJ,CAAC;SACF,CAAA;QACD,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAClD,uEAAuE;QACvE,mEAAmE;QACnE,MAAM,YAAY,GAAyB,iBAAiB;YAC1D,CAAC,CAAC;gBACE,GAAG,QAAQ;gBACX,2BAA2B,EAAE;oBAC3B,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,WAAW;oBACrB,OAAO,EAAE,KAAK,IAAI,EAAE;wBAClB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;oBACvB,CAAC;iBACF;aACF;YACH,CAAC,CAAC,QAAQ,CAAA;QAEZ,MAAM,SAAS,GAAG,YAAY;YAC5B,CAAC,CAAC,eAAe,CAAC;gBACd,EAAE;gBACF,IAAI,EAAE,YAAY;gBAClB,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE;aACnD,CAAC;YACJ,CAAC,CAAC,SAAS,CAAA;QACb,MAAM,IAAI,GAAG;YACX,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,KAAe,EAAE,IAAqB;gBAChE,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAA;gBACH,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;gBACpE,OAAO,MAAM,CAAA;YACf,CAAC;YACD,IAAI,CAAC,GAAY;gBACf,OAAO,SAAS;oBACd,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;oBACrB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;YACxD,CAAC;SACF,CAAA;QACD,IAAI,SAAS;YAAE,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAC5C,MAAM,WAAW,GAAG,KAAK,EACvB,UAAiC,EAAE,EACZ,EAAE;YACzB,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,CAAA;YAC7D,CAAC;YACD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;YAC3D,CAAC;YACD,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;YAClE,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM;gBAC3B,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBACrD,CAAC,CAAC,SAAS,CAAC,MAAM,CAAA;YACpB,MAAM,MAAM,GAAG,cAAc,CAAC;gBAC5B,GAAG,OAAO;gBACV,MAAM;gBACN,uEAAuE;gBACvE,uCAAuC;gBACvC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;oBAClB,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC3B,CAAC;aACF,CAAC,CAAA;YACF,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;YACtD,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YACtC,OAAO,MAAM,CAAA;QACf,CAAC,CAAA;QACD,MAAM,SAAS,GAAG,KAAK,EACrB,UAA+B,EAAE,EAClB,EAAE;YACjB,IAAI,UAAU;gBAAE,OAAM;YACtB,IACE,QAAQ,CAAC,SAAS,KAAK,QAAQ;gBAC/B,CAAC,OAAO,CAAC,yBAAyB,EAClC,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,mPAAmP,CACpP,CAAA;YACH,CAAC;YACD,MAAM,EACJ,yBAAyB,EAAE,0BAA0B,EACrD,GAAG,aAAa,EACjB,GAAG,OAAO,CAAA;YACX,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,CAAA;YAC/C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM;oBACjC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;oBAC3D,CAAC,CAAC,SAAS,CAAC,MAAM,CAAA;gBACpB,MAAM,qBAAqB,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;YAC5D,CAAC;oBAAS,CAAC;gBACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;gBACpB,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;YACzB,CAAC;QACH,CAAC,CAAA;QACD,MAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE;YAC/D,MAAM,EAAE,cAAc;YACtB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,QAAQ;YACR,aAAa,EAAE,SAAS;SACzB,CAAC,CAAA;QAEF,MAAM,eAAe,GACnB,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU;YAC/B,CAAC,CACG,OAAO,CAAC,GAGT,CAAC,gBAAgB,EAA+B,CAAC;YACpD,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA;QAEjB,MAAM,YAAY,GAAG,cAAc,CAAC;YAClC,IAAI,EAAE,aAAwC;YAC9C,OAAO,EAAE,gBAA2C;YACpD,QAAQ,EAAE,iBAAwD;YAClE,MAAM,EAAE,eAAsD;YAC9D,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAQ,CAAA;QAET,MAAM,kBAAkB,GACtB,OAAO,CAAC,OAAO;YACf,IAAI,CAAC,GAAG;YACR,uBAAuB,IAAI,IAAI,CAAC,GAAG;YACnC,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,KAAK,UAAU;YAClD,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE;YACxC,CAAC,CAAC,SAAS,CAAA;QAEf,MAAM,eAAe,GAAG,kBAAkB;YACxC,CAAC,CAAC,2BAA2B,CAAC,kBAAkB,EAAE;gBAC9C,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,MAAM;aACf,CAAC;YACJ,CAAC,CAAC,SAAS,CAAA;QAEb,MAAM,gBAAgB,CAAC;YACrB,YAAY;YACZ,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE;YACtD,mBAAmB,EAAE,IAAI,GAAG,CAAC;gBAC3B,QAAQ;gBACR,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1C,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACvC;oBACE,eAAe;oBACf,QAAQ;oBACR,eAAe;oBACf,UAAU;oBACV,QAAQ;iBACT,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,IAAI,IAAI,SAAS,EAAE,CAAC,CACnD;aACF,CAAC;SACH,CAAC,CAAA;QAEF,MAAM,gBAAgB,GAAG,IAAI,4BAA4B,EAAE,CAAA;QAE3D,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO;YACzC,CAAC,CAAC,iBAAiB,CAAC;gBAChB,UAAU,EAAE,MAAM,IAAI,gBAAgB,CAAC;oBACrC,UAAU,EAAE;wBACV,gBAAgB;wBAChB;4BACE,SAAS,EAAE,CAAC,MAAW,EAAE,EAAE,CACzB,OAAO,CACL,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,UAAU,CACzD;4BACH,OAAO,EAAE,CAAC,MAAW,EAAE,EAAE;gCACvB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,SAAS,CAAA;gCACzD,MAAM,IAAI,qBAAqB,CAC7B,sEAAsE,MAAM,GAAG,CAChF,CAAA;4BACH,CAAC;yBACF;qBACF;iBACF,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACzB,QAAQ,EAAE,eAAe;aAC1B,CAAC;YACJ,CAAC,CAAC,SAAS,CAAA;QAEb,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,YAAY,EAAE;YACtD,sEAAsE;YACtE,uEAAuE;YACvE,gEAAgE;YAChE,OAAO,EAAE;gBACP,IAAI,0BAA0B,CAAC,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;aACnE;YACD,8BAA8B,EAAE,CAAC,KAAU,EAAE,EAAE;gBAC7C,IACE,KAAK,EAAE,IAAI,KAAK,uBAAuB;oBACvC,CAAC,KAAK,EAAE,MAAM;oBACd,KAAK,CAAC,MAAM,IAAI,GAAG,EACnB,CAAC;oBACD,OAAO,CAAC,KAAK,CACX,8CAA8C,EAC9C,KAAK,EAAE,KAAK,IAAI,KAAK,CACtB,CAAA;gBACH,CAAC;gBACD,OAAO;oBACL,KAAK,EAAE,KAAK,CAAC,OAAO;oBACpB,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI;oBACpC,uEAAuE;oBACvE,iEAAiE;oBACjE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,KAAK,SAAS;wBACnC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;wBACjC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS;4BAChC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;4BAChC,CAAC,CAAC,EAAE,CAAC;iBACV,CAAA;YACH,CAAC;YACD,iBAAiB,EAAE;gBACjB,KAAK,EAAE,OAAO,EAAE,EAAE;oBAChB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAA;oBAChC,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;wBAC9C,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAC1D,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAC/B,CAAA;oBACH,CAAC;oBACD,OAAO,GAAG,CAAA;gBACZ,CAAC;aACF;SACF,CAAC,CAAA;QACF,2EAA2E;QAC3E,2EAA2E;QAC3E,oCAAoC;QACpC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAA;QAE/C,MAAM,UAAU,GAAG,KAAK,EAAE,GAAY,EAA4B,EAAE;YAClE,MAAM,SAAS,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAE,GAAc,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAA;YACrE,IAAI,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAA;YAC3B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAA;YAClD,IACE,mBAAmB;gBACnB,GAAG,CAAC,QAAQ,KAAK,mBAAmB;gBACpC,GAAG,CAAC,MAAM,KAAK,KAAK,EACpB,CAAC;gBACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,EAAE;oBACvD,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;iBAChD,CAAC,CAAA;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,gBAAgB,CAC7B;gBACE,EAAE,EAAE,MAAM;gBACV,GAAG;gBACH,OAAO;gBACP,KAAK;gBACL,IAAI;gBACJ,QAAQ;gBACR,IAAI;gBACJ,YAAY;aACb,EACD,GAAG,CACJ,CAAA;YAED,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxC,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE;oBACvC,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,MAAM;iBAChB,CAAC,CAAA;gBACF,IAAI,GAAG,CAAC,OAAO;oBAAE,OAAO,GAAG,CAAC,QAAQ,CAAA;YACtC,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;YACxE,IAAI,UAAU,CAAC,OAAO;gBAAE,OAAO,UAAU,CAAC,QAAQ,CAAA;YAElD,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;QAED,MAAM,OAAO,GAAG,YAAY,CAAC;YAC3B,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;YACvC,UAAU;YACV,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAA;QAEF,0EAA0E;QAC1E,0DAA0D;QAC1D,MAAM,eAAe,GACnB,GAAG,CAAC,gBAAgB,KAAK,KAAK,IAAI,GAAG,CAAC,gBAAgB,KAAK,QAAQ,CAAA;QACrE,MAAM,SAAS,GACb,OAAO,CAAC,UAAU,EAAE,SAAS;YAC7B,CAAC,eAAe,IAAI,CAAC,UAAU,IAAI,YAAY,KAAK,SAAS,CAAC,CAAA;QAChE,IAAI,iBAAiB,GAAG,KAAK,CAAA;QAC7B,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,WAAW,EAAE,CAAA;YACnB,iBAAiB,GAAG,IAAI,CAAA;QAC1B,CAAC;QAED,MAAM,GAAG,GAOL;YACF,OAAO;YACP,0EAA0E;YAC1E,EAAE,EAAE,MAAM;YACV,IAAI;YACJ,OAAO;YACP,GAAG;YACH,KAAK;YACL,QAAQ;YACR,yEAAyE;YACzE,2EAA2E;YAC3E,qBAAqB;YACrB,IAAI,EAAE,IAAa;YACnB,WAAW;YACX,SAAS;YACT,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE;YAC9B,iBAAiB;YACjB,IAAI,MAAM;gBACR,OAAO,SAAS,CAAC,MAAM,CAAA;YACzB,CAAC;YACD,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,QAAQ,EAAE,aAAa,CAAC;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO;gBACP,mBAAmB,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;gBAC/C,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,SAAS,EAAE,OAAO,CAAC,GAAiC;gBACpD,aAAa,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC9C,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAClC,IAAI,EAAE,YAAY;aACnB,CAAC;SACH,CAKA;QAAC,GAA8B,CAAC,mBAAmB,CAAC,GAAG;YACtD,EAAE;YACF,MAAM,EAAE,YAAY;YACpB,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG;YAChC,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;YAC5C,OAAO;YACP,MAAM;YACN,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;SACjC,CAAA;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;QACzB,CAAC;QAAC,OAAO,YAAY,EAAE,CAAC;YACtB,MAAM,IAAI,cAAc,CACtB,CAAC,KAAK,EAAE,YAAY,CAAC,EACrB,oEAAoE,CACrE,CAAA;QACH,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AASvE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAA;AAEzE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAOrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAoBhD,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,WAAW,EACX,gBAAgB,GACjB,MAAM,UAAU,CAAA;AAOjB,OAAO,EACL,MAAM,EACN,QAAQ,IAAI,cAAc,EAC1B,KAAK,IAAI,WAAW,EACpB,QAAQ,GACT,MAAM,UAAU,CAAA;AAgBjB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAG3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAOxD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAY3D,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { LiveFrame } from './protocol.js';
|
|
2
|
+
/**
|
|
3
|
+
* One frame folded into a view's rows.
|
|
4
|
+
*
|
|
5
|
+
* Pure and immutable: a changed view is a new array, an unchanged view is the
|
|
6
|
+
* same array, and a row the frame did not touch keeps its identity. That is
|
|
7
|
+
* what `useSyncExternalStore` and a keyed list need to skip the rows a frame
|
|
8
|
+
* did not change.
|
|
9
|
+
*/
|
|
10
|
+
export declare function applyLiveFrame<TRow extends {
|
|
11
|
+
id: string;
|
|
12
|
+
}>(rows: readonly TRow[], frame: LiveFrame<TRow>): readonly TRow[];
|
|
13
|
+
//# sourceMappingURL=apply.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/live/apply.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACxD,IAAI,EAAE,SAAS,IAAI,EAAE,EACrB,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,GACrB,SAAS,IAAI,EAAE,CAqBjB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One frame folded into a view's rows.
|
|
3
|
+
*
|
|
4
|
+
* Pure and immutable: a changed view is a new array, an unchanged view is the
|
|
5
|
+
* same array, and a row the frame did not touch keeps its identity. That is
|
|
6
|
+
* what `useSyncExternalStore` and a keyed list need to skip the rows a frame
|
|
7
|
+
* did not change.
|
|
8
|
+
*/
|
|
9
|
+
export function applyLiveFrame(rows, frame) {
|
|
10
|
+
if (frame.type === 'snapshot')
|
|
11
|
+
return frame.items;
|
|
12
|
+
if (frame.type === 'heartbeat')
|
|
13
|
+
return rows;
|
|
14
|
+
if (frame.type === 'remove') {
|
|
15
|
+
const next = rows.filter((row) => row.id !== frame.id);
|
|
16
|
+
return next.length === rows.length ? rows : next;
|
|
17
|
+
}
|
|
18
|
+
// An upsert can move a row, so the stale copy goes first.
|
|
19
|
+
const next = rows.filter((row) => row.id !== frame.record.id);
|
|
20
|
+
let place;
|
|
21
|
+
if (frame.afterId === null) {
|
|
22
|
+
place = 0;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
const anchor = next.findIndex((row) => row.id === frame.afterId);
|
|
26
|
+
// An anchor the view does not hold means the row belongs at the end.
|
|
27
|
+
place = anchor === -1 ? next.length : anchor + 1;
|
|
28
|
+
}
|
|
29
|
+
next.splice(place, 0, frame.record);
|
|
30
|
+
return next;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=apply.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/live/apply.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAqB,EACrB,KAAsB;IAEtB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC,KAAK,CAAA;IACjD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,IAAI,CAAA;IAE3C,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAA;QACtD,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;IAClD,CAAC;IAED,0DAA0D;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC7D,IAAI,KAAa,CAAA;IACjB,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC3B,KAAK,GAAG,CAAC,CAAA;IACX,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,CAAA;QAChE,qEAAqE;QACrE,KAAK,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IAClD,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACnC,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { LiveInput } from './protocol.js';
|
|
2
|
+
export type { LiveDeltaFrame, LiveFrame, LiveHeartbeatFrame, LiveInput, LiveRemoveFrame, LiveSnapshotFrame, LiveUpsertFrame, } from './protocol.js';
|
|
3
|
+
export { applyLiveFrame } from './apply.js';
|
|
4
|
+
export { parseSseFrames, type ByteStream } from './sse.js';
|
|
5
|
+
export type LiveStatus = 'connecting' | 'live' | 'reconnecting' | 'failed';
|
|
6
|
+
export type LiveView<TRow extends {
|
|
7
|
+
id: string;
|
|
8
|
+
}> = {
|
|
9
|
+
/** The current rows. A new array appears only when the view changes. */
|
|
10
|
+
getRows: () => readonly TRow[];
|
|
11
|
+
getStatus: () => LiveStatus;
|
|
12
|
+
getError: () => unknown;
|
|
13
|
+
/** Register a listener; the return value removes it. */
|
|
14
|
+
subscribe: (listener: () => void) => () => void;
|
|
15
|
+
/**
|
|
16
|
+
* Write to the view before the server confirms. Replace a row rather than
|
|
17
|
+
* mutating it, so consumers that compare by identity see the change:
|
|
18
|
+
* `patch((rows) => { rows[0] = { ...rows[0], done: true } })`.
|
|
19
|
+
* The server echo replaces the write, and `resync()` discards it.
|
|
20
|
+
*/
|
|
21
|
+
patch: (recipe: (rows: TRow[]) => void) => void;
|
|
22
|
+
/** Reconnect. The new snapshot is the resynchronisation. */
|
|
23
|
+
resync: () => void;
|
|
24
|
+
/** Stop the loop and abort the request. */
|
|
25
|
+
close: () => void;
|
|
26
|
+
};
|
|
27
|
+
export type CreateLiveViewOptions = {
|
|
28
|
+
input?: LiveInput;
|
|
29
|
+
/** For tests, and for a fetch that carries credentials or a base URL. */
|
|
30
|
+
fetch?: (input: string, init?: RequestInit) => Promise<Response>;
|
|
31
|
+
/** Delay in milliseconds before retry number `attempt`, counted from zero. */
|
|
32
|
+
backoff?: (attempt: number) => number;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* One live view: a reconnecting loop over `GET /api/live/{table}` that folds
|
|
36
|
+
* frames into an immutable array of rows.
|
|
37
|
+
*
|
|
38
|
+
* The view holds no cache and no second copy of the data. Every connection
|
|
39
|
+
* opens with a snapshot, so a reconnect is the resynchronisation, and the
|
|
40
|
+
* server places each row, so this module never sorts.
|
|
41
|
+
*
|
|
42
|
+
* `subscribe` plus `getRows` is the pair `useSyncExternalStore` expects. A
|
|
43
|
+
* Solid or Vue binding writes `getRows()` into a store from the same listener.
|
|
44
|
+
*/
|
|
45
|
+
export declare function createLiveView<TRow extends {
|
|
46
|
+
id: string;
|
|
47
|
+
}>(url: string, options?: CreateLiveViewOptions): LiveView<TRow>;
|
|
48
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/live/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,SAAS,EAAE,MAAM,YAAY,CAAA;AAKtD,YAAY,EACV,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,eAAe,GAChB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,OAAO,CAAA;AAEvD,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,MAAM,GAAG,cAAc,GAAG,QAAQ,CAAA;AAE1E,MAAM,MAAM,QAAQ,CAAC,IAAI,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,IAAI;IAClD,wEAAwE;IACxE,OAAO,EAAE,MAAM,SAAS,IAAI,EAAE,CAAA;IAC9B,SAAS,EAAE,MAAM,UAAU,CAAA;IAC3B,QAAQ,EAAE,MAAM,OAAO,CAAA;IACvB,wDAAwD;IACxD,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAA;IAC/C;;;;;OAKG;IACH,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;IAC/C,4DAA4D;IAC5D,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,yEAAyE;IACzE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAChE,8EAA8E;IAC9E,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAA;CACtC,CAAA;AAoBD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,IAAI,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACxD,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,qBAA0B,GAClC,QAAQ,CAAC,IAAI,CAAC,CA4EhB"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { applyLiveFrame } from './apply.js';
|
|
2
|
+
import { parseSseFrames } from './sse.js';
|
|
3
|
+
export { applyLiveFrame } from './apply.js';
|
|
4
|
+
export { parseSseFrames } from './sse.js';
|
|
5
|
+
/** Full jitter, the same shape the realtime client uses. */
|
|
6
|
+
const defaultBackoff = (attempt) => Math.floor(Math.random() * Math.min(30_000, 1_000 * 2 ** attempt));
|
|
7
|
+
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
8
|
+
function buildUrl(url, input) {
|
|
9
|
+
if (!input)
|
|
10
|
+
return url;
|
|
11
|
+
const params = new URLSearchParams();
|
|
12
|
+
if (input.limit !== undefined)
|
|
13
|
+
params.set('limit', String(input.limit));
|
|
14
|
+
if (input.sort)
|
|
15
|
+
params.set('sort', input.sort);
|
|
16
|
+
if (input.order)
|
|
17
|
+
params.set('order', input.order);
|
|
18
|
+
if (input.filters && Object.keys(input.filters).length > 0) {
|
|
19
|
+
params.set('filters', JSON.stringify(input.filters));
|
|
20
|
+
}
|
|
21
|
+
return params.size > 0 ? `${url}?${params}` : url;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* One live view: a reconnecting loop over `GET /api/live/{table}` that folds
|
|
25
|
+
* frames into an immutable array of rows.
|
|
26
|
+
*
|
|
27
|
+
* The view holds no cache and no second copy of the data. Every connection
|
|
28
|
+
* opens with a snapshot, so a reconnect is the resynchronisation, and the
|
|
29
|
+
* server places each row, so this module never sorts.
|
|
30
|
+
*
|
|
31
|
+
* `subscribe` plus `getRows` is the pair `useSyncExternalStore` expects. A
|
|
32
|
+
* Solid or Vue binding writes `getRows()` into a store from the same listener.
|
|
33
|
+
*/
|
|
34
|
+
export function createLiveView(url, options = {}) {
|
|
35
|
+
const fetchImpl = options.fetch ?? globalThis.fetch;
|
|
36
|
+
const backoff = options.backoff ?? defaultBackoff;
|
|
37
|
+
const listeners = new Set();
|
|
38
|
+
let rows = [];
|
|
39
|
+
let status = 'connecting';
|
|
40
|
+
let error;
|
|
41
|
+
let closed = false;
|
|
42
|
+
let controller;
|
|
43
|
+
const notify = () => {
|
|
44
|
+
for (const listener of listeners)
|
|
45
|
+
listener();
|
|
46
|
+
};
|
|
47
|
+
void (async () => {
|
|
48
|
+
let attempt = 0;
|
|
49
|
+
while (!closed) {
|
|
50
|
+
controller = new AbortController();
|
|
51
|
+
try {
|
|
52
|
+
const response = await fetchImpl(buildUrl(url, options.input), {
|
|
53
|
+
signal: controller.signal,
|
|
54
|
+
headers: { accept: 'text/event-stream' },
|
|
55
|
+
});
|
|
56
|
+
if (!response.ok || !response.body) {
|
|
57
|
+
throw new Error(`live request failed (${response.status})`);
|
|
58
|
+
}
|
|
59
|
+
for await (const frame of parseSseFrames(response.body)) {
|
|
60
|
+
attempt = 0;
|
|
61
|
+
const next = applyLiveFrame(rows, frame);
|
|
62
|
+
const changed = next !== rows || status !== 'live' || error !== undefined;
|
|
63
|
+
rows = next;
|
|
64
|
+
status = 'live';
|
|
65
|
+
error = undefined;
|
|
66
|
+
if (changed)
|
|
67
|
+
notify();
|
|
68
|
+
}
|
|
69
|
+
// A live view never ends on its own, so reaching here is a drop.
|
|
70
|
+
throw new Error('live stream closed');
|
|
71
|
+
}
|
|
72
|
+
catch (cause) {
|
|
73
|
+
if (closed)
|
|
74
|
+
return;
|
|
75
|
+
error = cause;
|
|
76
|
+
// Rows on screen mean the view still works while it reconnects.
|
|
77
|
+
status = rows.length > 0 ? 'reconnecting' : 'failed';
|
|
78
|
+
notify();
|
|
79
|
+
await sleep(backoff(attempt++));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
})();
|
|
83
|
+
return {
|
|
84
|
+
getRows: () => rows,
|
|
85
|
+
getStatus: () => status,
|
|
86
|
+
getError: () => error,
|
|
87
|
+
subscribe: (listener) => {
|
|
88
|
+
listeners.add(listener);
|
|
89
|
+
return () => {
|
|
90
|
+
listeners.delete(listener);
|
|
91
|
+
};
|
|
92
|
+
},
|
|
93
|
+
patch: (recipe) => {
|
|
94
|
+
const draft = [...rows];
|
|
95
|
+
recipe(draft);
|
|
96
|
+
rows = draft;
|
|
97
|
+
notify();
|
|
98
|
+
},
|
|
99
|
+
resync: () => {
|
|
100
|
+
controller?.abort();
|
|
101
|
+
},
|
|
102
|
+
close: () => {
|
|
103
|
+
closed = true;
|
|
104
|
+
controller?.abort();
|
|
105
|
+
},
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/live/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The wire frames of a live view (`GET /api/{table}:live`).
|
|
3
|
+
*
|
|
4
|
+
* A live view is one SSE stream that opens with a snapshot of a list query and
|
|
5
|
+
* then delivers only what that view cares about. The server decides membership
|
|
6
|
+
* and placement, so a client applies frames without knowing the filter or sort
|
|
7
|
+
* rules, and a reconnect replays a fresh snapshot instead of a refetch.
|
|
8
|
+
*
|
|
9
|
+
* Types only: both the browser client and the server import this module.
|
|
10
|
+
*/
|
|
11
|
+
export type LiveSnapshotFrame<TRow = Record<string, unknown>> = {
|
|
12
|
+
type: 'snapshot';
|
|
13
|
+
items: TRow[];
|
|
14
|
+
/** The values the server resolved, not the values the caller sent. */
|
|
15
|
+
sort: string;
|
|
16
|
+
order: 'asc' | 'desc';
|
|
17
|
+
limit: number;
|
|
18
|
+
/** True when rows exist below the window. */
|
|
19
|
+
hasMore: boolean;
|
|
20
|
+
};
|
|
21
|
+
export type LiveUpsertFrame<TRow = Record<string, unknown>> = {
|
|
22
|
+
type: 'upsert';
|
|
23
|
+
record: TRow;
|
|
24
|
+
/** The id this row follows in the view; `null` means the head. */
|
|
25
|
+
afterId: string | null;
|
|
26
|
+
};
|
|
27
|
+
export type LiveRemoveFrame = {
|
|
28
|
+
type: 'remove';
|
|
29
|
+
id: string;
|
|
30
|
+
};
|
|
31
|
+
export type LiveHeartbeatFrame = {
|
|
32
|
+
type: 'heartbeat';
|
|
33
|
+
intervalMs: number;
|
|
34
|
+
};
|
|
35
|
+
export type LiveDeltaFrame<TRow = Record<string, unknown>> = LiveUpsertFrame<TRow> | LiveRemoveFrame;
|
|
36
|
+
export type LiveFrame<TRow = Record<string, unknown>> = LiveSnapshotFrame<TRow> | LiveDeltaFrame<TRow> | LiveHeartbeatFrame;
|
|
37
|
+
/** The query a live view accepts: the list contract a stream can honor. */
|
|
38
|
+
export type LiveInput = {
|
|
39
|
+
limit?: number;
|
|
40
|
+
sort?: string;
|
|
41
|
+
order?: 'asc' | 'desc';
|
|
42
|
+
filters?: Record<string, unknown>;
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/live/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,MAAM,iBAAiB,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IAC9D,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE,IAAI,EAAE,CAAA;IACb,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,KAAK,GAAG,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,6CAA6C;IAC7C,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,eAAe,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IAC5D,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,EAAE,IAAI,CAAA;IACZ,kEAAkE;IAClE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5D,MAAM,MAAM,kBAAkB,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1E,MAAM,MAAM,cAAc,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACrD,eAAe,CAAC,IAAI,CAAC,GACrB,eAAe,CAAA;AAEnB,MAAM,MAAM,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAChD,iBAAiB,CAAC,IAAI,CAAC,GACvB,cAAc,CAAC,IAAI,CAAC,GACpB,kBAAkB,CAAA;AAEtB,2EAA2E;AAC3E,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The wire frames of a live view (`GET /api/{table}:live`).
|
|
3
|
+
*
|
|
4
|
+
* A live view is one SSE stream that opens with a snapshot of a list query and
|
|
5
|
+
* then delivers only what that view cares about. The server decides membership
|
|
6
|
+
* and placement, so a client applies frames without knowing the filter or sort
|
|
7
|
+
* rules, and a reconnect replays a fresh snapshot instead of a refetch.
|
|
8
|
+
*
|
|
9
|
+
* Types only: both the browser client and the server import this module.
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/live/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The SSE frames of one response body, decoded as JSON.
|
|
3
|
+
*
|
|
4
|
+
* A live view carries JSON in `data:` lines; keepalive comments and event
|
|
5
|
+
* names never surface. Written here rather than taken from a library, so the
|
|
6
|
+
* browser entry point keeps zero dependencies.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* The part of a byte stream this reader uses. Stated structurally, so the DOM
|
|
10
|
+
* and Bun definitions of `ReadableStream` both satisfy it without a cast.
|
|
11
|
+
*/
|
|
12
|
+
export type ByteStream = {
|
|
13
|
+
getReader: () => {
|
|
14
|
+
read: () => Promise<{
|
|
15
|
+
done: boolean;
|
|
16
|
+
value?: Uint8Array;
|
|
17
|
+
}>;
|
|
18
|
+
cancel: () => Promise<unknown>;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export declare function parseSseFrames<TFrame>(body: ByteStream): AsyncGenerator<TFrame, void, void>;
|
|
22
|
+
//# sourceMappingURL=sse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/live/sse.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,MAAM;QACf,IAAI,EAAE,MAAM,OAAO,CAAC;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,UAAU,CAAA;SAAE,CAAC,CAAA;QAC1D,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;KAC/B,CAAA;CACF,CAAA;AAED,wBAAuB,cAAc,CAAC,MAAM,EAC1C,IAAI,EAAE,UAAU,GACf,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAmCpC"}
|
package/dist/live/sse.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export async function* parseSseFrames(body) {
|
|
2
|
+
const reader = body.getReader();
|
|
3
|
+
const decoder = new TextDecoder();
|
|
4
|
+
let buffer = '';
|
|
5
|
+
let data = [];
|
|
6
|
+
const flush = () => {
|
|
7
|
+
if (data.length === 0)
|
|
8
|
+
return undefined;
|
|
9
|
+
const frame = JSON.parse(data.join('\n'));
|
|
10
|
+
data = [];
|
|
11
|
+
return frame;
|
|
12
|
+
};
|
|
13
|
+
try {
|
|
14
|
+
while (true) {
|
|
15
|
+
const { done, value } = await reader.read();
|
|
16
|
+
if (done)
|
|
17
|
+
break;
|
|
18
|
+
buffer += decoder.decode(value, { stream: true });
|
|
19
|
+
let newline;
|
|
20
|
+
while ((newline = buffer.indexOf('\n')) !== -1) {
|
|
21
|
+
const line = buffer.slice(0, newline);
|
|
22
|
+
buffer = buffer.slice(newline + 1);
|
|
23
|
+
if (line === '') {
|
|
24
|
+
const frame = flush();
|
|
25
|
+
if (frame !== undefined)
|
|
26
|
+
yield frame;
|
|
27
|
+
}
|
|
28
|
+
else if (line.startsWith('data:')) {
|
|
29
|
+
data.push(line.slice(line.startsWith('data: ') ? 6 : 5));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const frame = flush();
|
|
34
|
+
if (frame !== undefined)
|
|
35
|
+
yield frame;
|
|
36
|
+
}
|
|
37
|
+
finally {
|
|
38
|
+
await reader.cancel().catch(() => { });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=sse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/live/sse.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,cAAc,CACnC,IAAgB;IAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;IAC/B,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;IACjC,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI,IAAI,GAAa,EAAE,CAAA;IAEvB,MAAM,KAAK,GAAG,GAAuB,EAAE;QACrC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAA;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAW,CAAA;QACnD,IAAI,GAAG,EAAE,CAAA;QACT,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;IAED,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YAC3C,IAAI,IAAI;gBAAE,MAAK;YACf,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;YACjD,IAAI,OAAe,CAAA;YACnB,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;gBACrC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;gBAClC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;oBAChB,MAAM,KAAK,GAAG,KAAK,EAAE,CAAA;oBACrB,IAAI,KAAK,KAAK,SAAS;wBAAE,MAAM,KAAK,CAAA;gBACtC,CAAC;qBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,EAAE,CAAA;QACrB,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,KAAK,CAAA;IACtC,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACvC,CAAC;AACH,CAAC"}
|