@instantdb/core 1.0.1 → 1.0.2-branch-edge-runtime.24356557026.1

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.
@@ -131,7 +131,7 @@ export default class Reactor<RoomSchema extends import("./presence.ts").RoomSche
131
131
  _handleReceive(connId: any, msg: any): void;
132
132
  _sessionId: any;
133
133
  createWriteStream(opts: any): import("./Stream.ts").InstantWritableStream<string>;
134
- createReadStream(opts: any): ReadableStream<string>;
134
+ createReadStream(opts: any): import("./Stream.ts").InstantReadableStream<string>;
135
135
  _pendingMutations(): any;
136
136
  _updatePendingMutations(f: any): void;
137
137
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Reactor.d.ts","sourceRoot":"","sources":["../../src/Reactor.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Reactor.d.ts","sourceRoot":"","sources":["../../src/Reactor.js"],"names":[],"mappings":"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"}
@@ -9,6 +9,9 @@ export type ReadableStreamCtor = {
9
9
  export interface InstantWritableStream<T> extends WritableStream<T> {
10
10
  streamId: () => Promise<string>;
11
11
  }
12
+ export interface InstantReadableStream<T> extends ReadableStream<T> {
13
+ streamId: () => Promise<string>;
14
+ }
12
15
  type StartStreamMsg = {
13
16
  op: 'start-stream';
14
17
  'client-id': string;
@@ -100,7 +103,7 @@ export declare class InstantStream {
100
103
  streamId?: string | null | undefined;
101
104
  byteOffset?: number | null | undefined;
102
105
  ruleParams?: RuleParams | null | undefined;
103
- }): ReadableStream<string>;
106
+ }): InstantReadableStream<string>;
104
107
  private startWriteStream;
105
108
  private registerWriteStream;
106
109
  private appendStream;
@@ -1 +1 @@
1
- {"version":3,"file":"Stream.d.ts","sourceRoot":"","sources":["../../src/Stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Stream.d.ts","sourceRoot":"","sources":["../../src/Stream.ts"],"names":[],"mappings":"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"}
@@ -357,10 +357,14 @@ function createReadStream({ RStream, opts, startStream, cancelStream, }) {
357
357
  let eventId;
358
358
  let closed = false;
359
359
  const closeCbs = [];
360
- function markClosed() {
360
+ const streamIdCbs = [];
361
+ // Resolved stream id from the server
362
+ let streamId_ = null;
363
+ let error_ = null;
364
+ function markClosed(error) {
361
365
  closed = true;
362
366
  for (const cb of closeCbs) {
363
- cb();
367
+ cb(error);
364
368
  }
365
369
  }
366
370
  function addCloseCb(cb) {
@@ -372,9 +376,22 @@ function createReadStream({ RStream, opts, startStream, cancelStream, }) {
372
376
  }
373
377
  };
374
378
  }
379
+ function addStreamIdCb(cb) {
380
+ streamIdCbs.push(cb);
381
+ if (streamId_) {
382
+ cb(streamId_);
383
+ }
384
+ return () => {
385
+ const i = streamIdCbs.indexOf(cb);
386
+ if (i !== -1) {
387
+ streamIdCbs.splice(i, 1);
388
+ }
389
+ };
390
+ }
375
391
  function error(controller, e) {
392
+ error_ = e;
376
393
  controller.error(e);
377
- markClosed();
394
+ markClosed(e);
378
395
  }
379
396
  let fetchFailures = 0;
380
397
  async function runStartStream(opts, controller) {
@@ -396,6 +413,10 @@ function createReadStream({ RStream, opts, startStream, cancelStream, }) {
396
413
  canceled = true;
397
414
  return;
398
415
  }
416
+ streamId_ = item.streamId;
417
+ for (const cb of streamIdCbs) {
418
+ cb(streamId_);
419
+ }
399
420
  let discardLen = seenOffset - item.offset;
400
421
  if (item.files && item.files.length) {
401
422
  const fetchAbort = new AbortController();
@@ -509,7 +530,38 @@ function createReadStream({ RStream, opts, startStream, cancelStream, }) {
509
530
  markClosed();
510
531
  }
511
532
  }
512
- const stream = new RStream({
533
+ class RStreamEnhanced extends RStream {
534
+ constructor(source, strategy) {
535
+ super(source, strategy);
536
+ }
537
+ async streamId() {
538
+ if (streamId_) {
539
+ return streamId_;
540
+ }
541
+ if (error_) {
542
+ throw error_;
543
+ }
544
+ return new Promise((resolve, reject) => {
545
+ const cleanupFns = [];
546
+ const cleanup = () => {
547
+ for (const f of cleanupFns) {
548
+ f();
549
+ }
550
+ };
551
+ const resolveCb = (streamId) => {
552
+ resolve(streamId);
553
+ cleanup();
554
+ };
555
+ const rejectCb = (e) => {
556
+ reject(e || new InstantError_ts_1.InstantError('Stream is closed.'));
557
+ cleanup();
558
+ };
559
+ cleanupFns.push(addStreamIdCb(resolveCb));
560
+ cleanupFns.push(addCloseCb(rejectCb));
561
+ });
562
+ }
563
+ }
564
+ const stream = new RStreamEnhanced({
513
565
  start(controller) {
514
566
  start(controller);
515
567
  },
@@ -683,14 +735,13 @@ class InstantStream {
683
735
  delete this.readStreamIterators[eventId];
684
736
  return;
685
737
  }
686
- if (msg.files?.length || msg.content) {
687
- iterator.push({
688
- type: 'append',
689
- offset: msg.offset,
690
- files: msg.files,
691
- content: msg.content,
692
- });
693
- }
738
+ iterator.push({
739
+ type: 'append',
740
+ offset: msg.offset,
741
+ files: msg.files,
742
+ content: msg.content,
743
+ streamId: msg['stream-id'],
744
+ });
694
745
  if (msg.done) {
695
746
  iterator.close();
696
747
  delete this.readStreamIterators[eventId];
@@ -1 +1 @@
1
- {"version":3,"file":"Stream.js","sourceRoot":"","sources":["../../src/Stream.ts"],"names":[],"mappings":"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","sourcesContent":["import uuid from './utils/id.ts';\nimport { Logger } from './utils/log.ts';\nimport { STATUS } from './Reactor.js';\nimport { InstantError } from './InstantError.ts';\nimport { RuleParams } from './schemaTypes.ts';\n\nexport type WritableStreamCtor = {\n new <W = any>(\n underlyingSink?: UnderlyingSink<W>,\n strategy?: QueuingStrategy<W>,\n ): WritableStream<W>;\n};\n\nexport type ReadableStreamCtor = {\n new <R = any>(\n underlyingSource?: UnderlyingDefaultSource<R>,\n strategy?: QueuingStrategy<R>,\n ): ReadableStream<R>;\n};\n\nexport interface InstantWritableStream<T> extends WritableStream<T> {\n streamId: () => Promise<string>;\n}\n\ntype WriteStreamStartResult =\n | { type: 'ok'; streamId: string; offset: number }\n | { type: 'disconnect' }\n | { type: 'error'; error: InstantError };\n\ntype WriteStreamCbs = {\n onDisconnect: () => void;\n onConnectionReconnect: () => void;\n onFlush: (args: { offset: number; done: boolean }) => void;\n onAppendFailed: () => void;\n};\n\nfunction createWriteStream({\n WStream,\n opts,\n startStream,\n appendStream,\n registerStream,\n}: {\n WStream: WritableStreamCtor;\n opts: {\n clientId: string;\n waitUntil?: (promise: Promise<any>) => void | null | undefined;\n ruleParams?: RuleParams | null | undefined;\n };\n startStream: (opts: {\n clientId: string;\n reconnectToken: string;\n ruleParams?: RuleParams | null | undefined;\n }) => Promise<WriteStreamStartResult>;\n appendStream: (opts: {\n streamId: string;\n chunks: string[];\n isDone?: boolean;\n offset: number;\n abortReason?: string;\n }) => void;\n registerStream: (streamId: string, cbs: WriteStreamCbs) => void;\n}): {\n stream: InstantWritableStream<string>;\n closed: () => boolean;\n addCompleteCb: (cb: () => void) => void;\n} {\n const clientId = opts.clientId;\n let streamId_: string | null = null;\n let error_: InstantError | null = null;\n let controller_: WritableStreamDefaultController | null = null;\n const reconnectToken = uuid();\n let isDone: boolean = false;\n let closed: boolean = false;\n const closeCbs: ((error?: InstantError) => void)[] = [];\n const streamIdCbs: ((streamId: string) => void)[] = [];\n const completeCbs: (() => void)[] = [];\n let disconnected: boolean = false;\n // Chunks that we haven't been notified are flushed to disk\n let bufferOffset = 0;\n let bufferByteSize = 0;\n const buffer: { chunk: string; byteLen: number }[] = [];\n const encoder = new TextEncoder();\n\n function markClosed() {\n closed = true;\n for (const cb of closeCbs) {\n cb(error_ ?? undefined);\n }\n }\n\n function addCloseCb(cb: (error?: InstantError) => void) {\n closeCbs.push(cb);\n if (closed) {\n cb(error_ ?? undefined);\n }\n return () => {\n const i = closeCbs.indexOf(cb);\n if (i !== -1) {\n closeCbs.splice(i, 1);\n }\n };\n }\n\n function addCompleteCb(cb: () => void) {\n completeCbs.push(cb);\n return () => {\n const i = completeCbs.indexOf(cb);\n if (i !== -1) {\n completeCbs.splice(i, 1);\n }\n };\n }\n\n if (opts.waitUntil) {\n opts.waitUntil(\n new Promise<void>((resolve) => {\n completeCbs.push(resolve);\n }),\n );\n }\n\n function runCompleteCbs() {\n for (const cb of completeCbs) {\n try {\n // cb could be provided by the user in the waitUntil,\n // so protect against errors.\n cb();\n } catch (_e) {}\n }\n }\n\n function addStreamIdCb(cb: (streamId: string) => void) {\n streamIdCbs.push(cb);\n if (streamId_) {\n cb(streamId_);\n }\n return () => {\n const i = streamIdCbs.indexOf(cb);\n if (i !== -1) {\n streamIdCbs.splice(i, 1);\n }\n };\n }\n\n function setStreamId(streamId: string) {\n streamId_ = streamId;\n for (const cb of streamIdCbs) {\n cb(streamId_);\n }\n }\n\n function onDisconnect() {\n disconnected = true;\n }\n\n // Clears data from our buffer after it has been flushed to a file\n function discardFlushed(offset: number) {\n let chunkOffset = bufferOffset;\n let segmentsToDrop = 0;\n let droppedSegmentsByteLen = 0;\n\n for (const { byteLen } of buffer) {\n const nextChunkOffset = chunkOffset + byteLen;\n if (nextChunkOffset > offset) {\n break;\n }\n chunkOffset = nextChunkOffset;\n segmentsToDrop++;\n droppedSegmentsByteLen += byteLen;\n }\n\n if (segmentsToDrop > 0) {\n bufferOffset += droppedSegmentsByteLen;\n bufferByteSize -= droppedSegmentsByteLen;\n buffer.splice(0, segmentsToDrop);\n }\n }\n\n function error(controller: WritableStreamDefaultController, e: InstantError) {\n error_ = e;\n markClosed();\n controller.error(e);\n runCompleteCbs();\n }\n\n async function onConnectionReconnect() {\n const result = await startStream({\n clientId,\n reconnectToken,\n ruleParams: opts.ruleParams,\n });\n switch (result.type) {\n case 'ok': {\n const { streamId, offset } = result;\n streamId_ = streamId;\n discardFlushed(offset);\n if (buffer.length) {\n appendStream({\n streamId: streamId,\n chunks: buffer.map((b) => b.chunk),\n offset: bufferOffset,\n });\n }\n disconnected = false;\n break;\n }\n case 'disconnect': {\n onDisconnect();\n break;\n }\n case 'error': {\n if (controller_) {\n error(controller_, result.error);\n }\n break;\n }\n }\n }\n\n // When the append fails, we'll just try to reconnect and start again\n function onAppendFailed() {\n onDisconnect();\n onConnectionReconnect();\n }\n\n function onFlush({ offset, done }: { offset: number; done: boolean }) {\n discardFlushed(offset);\n if (done) {\n isDone = true;\n runCompleteCbs();\n }\n }\n\n function ensureSetup(\n controller: WritableStreamDefaultController,\n ): string | null {\n if (isDone) {\n error(controller, new InstantError('Stream has been closed.'));\n return null;\n }\n if (!streamId_) {\n error(controller, new InstantError('Stream has not been initialized.'));\n return null;\n }\n return streamId_;\n }\n\n async function start(controller: WritableStreamDefaultController) {\n controller_ = controller;\n let tryAgain = true;\n let attempts = 0;\n\n while (tryAgain) {\n // rate-limit after the first few failed connects\n let nextAttempt = Date.now() + Math.min(15000, 500 * (attempts - 1));\n tryAgain = false;\n const result = await startStream({\n clientId: opts.clientId,\n reconnectToken,\n ruleParams: opts.ruleParams,\n });\n\n switch (result.type) {\n case 'ok': {\n const { streamId, offset } = result;\n if (offset !== 0) {\n const e = new InstantError('Write stream is corrupted');\n error(controller, e);\n return;\n }\n setStreamId(streamId);\n registerStream(streamId, {\n onDisconnect,\n onFlush,\n onConnectionReconnect,\n onAppendFailed,\n });\n disconnected = false;\n return;\n }\n case 'disconnect': {\n tryAgain = true;\n onDisconnect();\n attempts++;\n await new Promise((resolve) => {\n // Try again immediately for the first two attempts, then back off\n setTimeout(resolve, Math.max(0, nextAttempt - Date.now()));\n });\n break;\n }\n case 'error': {\n error(controller, result.error);\n return;\n }\n }\n }\n }\n\n class WStreamEnhanced\n extends WStream<string>\n implements InstantWritableStream<string>\n {\n constructor(\n sink?: UnderlyingSink<string>,\n strategy?: QueuingStrategy<string>,\n ) {\n super(sink, strategy);\n }\n\n public async streamId(): Promise<string> {\n if (streamId_) {\n return streamId_;\n }\n return new Promise((resolve, reject) => {\n const cleanupFns: (() => void)[] = [];\n const cleanup = () => {\n for (const f of cleanupFns) {\n f();\n }\n };\n const resolveCb = (streamId: string) => {\n resolve(streamId);\n cleanup();\n };\n const rejectCb = (e?: InstantError) => {\n reject(e || new InstantError('Stream is closed.'));\n cleanup();\n };\n\n cleanupFns.push(addStreamIdCb(resolveCb));\n cleanupFns.push(addCloseCb(rejectCb));\n });\n }\n }\n\n const stream = new WStreamEnhanced({\n // TODO(dww): accept a storage so that write streams can survive across\n // browser restarts\n async start(controller) {\n try {\n await start(controller);\n } catch (e) {\n error(controller, e);\n }\n },\n write(chunk, controller) {\n const streamId = ensureSetup(controller);\n if (streamId) {\n const byteLen = encoder.encode(chunk).length;\n buffer.push({ chunk, byteLen });\n const offset = bufferOffset + bufferByteSize;\n bufferByteSize += byteLen;\n if (!disconnected) {\n appendStream({ streamId, chunks: [chunk], offset });\n }\n }\n },\n close() {\n if (streamId_) {\n appendStream({\n streamId: streamId_,\n chunks: [],\n offset: bufferOffset + bufferByteSize,\n isDone: true,\n });\n } else {\n runCompleteCbs();\n }\n markClosed();\n },\n abort(reason) {\n if (streamId_) {\n appendStream({\n streamId: streamId_,\n chunks: [],\n offset: bufferOffset + bufferByteSize,\n isDone: true,\n abortReason: reason,\n });\n } else {\n runCompleteCbs();\n }\n markClosed();\n },\n });\n return {\n stream,\n addCompleteCb,\n closed() {\n return closed;\n },\n };\n}\n\ntype ReadStreamUpdate =\n | {\n type: 'append';\n offset: number;\n files?: { url: string; size: number }[];\n content?: string;\n }\n | { type: 'error'; error: InstantError }\n | { type: 'reconnect' };\n\nclass StreamIterator<T> {\n private items: T[] = [];\n private resolvers: ((next: {\n value: T | undefined;\n done: boolean;\n }) => void)[] = [];\n private isClosed = false;\n\n constructor() {}\n\n push(item: T) {\n if (this.isClosed) return;\n\n const resolve = this.resolvers.shift();\n if (resolve) {\n resolve({ value: item, done: false });\n } else {\n this.items.push(item);\n }\n }\n\n close() {\n this.isClosed = true;\n while (this.resolvers.length > 0) {\n const resolve = this.resolvers.shift();\n resolve!({ value: undefined, done: true });\n }\n }\n\n async *[Symbol.asyncIterator]() {\n while (true) {\n if (this.items.length > 0) {\n yield this.items.shift()!;\n } else if (this.isClosed) {\n return;\n } else {\n const { value, done } = await new Promise<{\n value: T | undefined;\n done: boolean;\n }>((resolve) => {\n this.resolvers.push(resolve);\n });\n if (done || !value) {\n return;\n }\n yield value;\n }\n }\n }\n}\n\nfunction createReadStream({\n RStream,\n opts,\n startStream,\n cancelStream,\n}: {\n RStream: ReadableStreamCtor;\n opts: {\n clientId?: string | null | undefined;\n streamId?: string | null | undefined;\n byteOffset?: number | null | undefined;\n ruleParams?: RuleParams | null | undefined;\n };\n startStream: (opts: {\n eventId: string;\n clientId?: string | null | undefined;\n streamId?: string | null | undefined;\n offset?: number;\n ruleParams?: RuleParams | null | undefined;\n }) => StreamIterator<ReadStreamUpdate>;\n cancelStream: (opts: { eventId: string }) => void;\n}): {\n stream: ReadableStream<string>;\n closed: () => boolean;\n addCloseCb: (cb: () => void) => void;\n} {\n let seenOffset = opts.byteOffset || 0;\n let canceled = false;\n const decoder = new TextDecoder('utf-8');\n const encoder = new TextEncoder();\n let eventId: string | null;\n let closed = false;\n const closeCbs: (() => void)[] = [];\n\n function markClosed() {\n closed = true;\n for (const cb of closeCbs) {\n cb();\n }\n }\n\n function addCloseCb(cb: () => void) {\n closeCbs.push(cb);\n return () => {\n const i = closeCbs.indexOf(cb);\n if (i !== -1) {\n closeCbs.splice(i, 1);\n }\n };\n }\n\n function error(\n controller: ReadableStreamDefaultController<string>,\n e: InstantError,\n ) {\n controller.error(e);\n markClosed();\n }\n\n let fetchFailures = 0;\n async function runStartStream(\n opts: {\n clientId?: string | null | undefined;\n streamId?: string | null | undefined;\n offset?: number;\n ruleParams?: RuleParams | null | undefined;\n },\n controller: ReadableStreamDefaultController<string>,\n ): Promise<{ retry: boolean } | undefined> {\n eventId = uuid();\n const streamOpts = { ...(opts || {}), eventId };\n for await (const item of startStream(streamOpts)) {\n if (canceled) {\n return;\n }\n\n if (item.type === 'reconnect') {\n return { retry: true };\n }\n\n if (item.type === 'error') {\n error(controller, item.error);\n return;\n }\n\n if (item.offset > seenOffset) {\n error(controller, new InstantError('Stream is corrupted.'));\n canceled = true;\n return;\n }\n\n let discardLen = seenOffset - item.offset;\n\n if (item.files && item.files.length) {\n const fetchAbort = new AbortController();\n let nextFetch = fetch(item.files[0].url, {\n signal: fetchAbort.signal,\n });\n for (let i = 0; i < item.files.length; i++) {\n const nextFile = item.files[i + 1];\n const thisFetch = nextFetch;\n const res = await thisFetch;\n if (nextFile) {\n nextFetch = fetch(nextFile.url, { signal: fetchAbort.signal });\n }\n\n if (!res.ok) {\n fetchFailures++;\n if (fetchFailures > 10) {\n error(controller, new InstantError('Unable to process stream.'));\n return;\n }\n return { retry: true };\n }\n\n if (res.body) {\n const reader = res.body.getReader();\n try {\n while (true) {\n const { done, value: bodyChunk } = await reader.read();\n if (done) {\n break;\n }\n if (canceled) {\n fetchAbort.abort();\n return;\n }\n let chunk = bodyChunk;\n if (discardLen > 0) {\n chunk = bodyChunk.subarray(discardLen);\n discardLen -= bodyChunk.length - chunk.length;\n }\n if (!chunk.length) {\n continue;\n }\n seenOffset += chunk.length;\n const s = decoder.decode(chunk);\n\n controller.enqueue(s);\n }\n } finally {\n reader.releaseLock();\n }\n } else {\n // RN doesn't support request.body\n const bodyChunk = await res.arrayBuffer();\n let chunk: ArrayBuffer | Uint8Array<ArrayBuffer> = bodyChunk;\n if (canceled) {\n fetchAbort.abort();\n return;\n }\n if (discardLen > 0) {\n chunk = new Uint8Array(bodyChunk).subarray(discardLen);\n discardLen -= bodyChunk.byteLength - chunk.length;\n }\n if (!chunk.byteLength) {\n continue;\n }\n seenOffset += chunk.byteLength;\n const s = decoder.decode(chunk);\n controller.enqueue(s);\n }\n }\n }\n fetchFailures = 0;\n if (item.content) {\n let content = item.content;\n let encoded = encoder.encode(item.content);\n if (discardLen > 0) {\n const remaining = encoded.subarray(discardLen);\n discardLen -= encoded.length - remaining.length;\n if (!remaining.length) {\n continue;\n }\n encoded = remaining;\n content = decoder.decode(remaining);\n }\n seenOffset += encoded.length;\n controller.enqueue(content);\n }\n }\n }\n\n async function start(controller: ReadableStreamDefaultController<string>) {\n let retry = true;\n let attempts = 0;\n while (retry) {\n retry = false;\n let nextAttempt = Date.now() + Math.min(15000, 500 * (attempts - 1));\n const res = await runStartStream(\n { ...opts, offset: seenOffset },\n controller,\n );\n\n if (res?.retry) {\n retry = true;\n attempts++;\n if (nextAttempt < Date.now() - 300000) {\n // reset attempts if we last tried 5 minutes ago\n attempts = 0;\n }\n await new Promise((resolve) => {\n setTimeout(resolve, Math.max(0, nextAttempt - Date.now()));\n });\n }\n }\n if (!canceled && !closed) {\n controller.close();\n markClosed();\n }\n }\n const stream = new RStream<string>({\n start(controller) {\n start(controller);\n },\n cancel(_reason) {\n canceled = true;\n if (eventId) {\n cancelStream({ eventId });\n }\n markClosed();\n },\n });\n\n return {\n stream,\n addCloseCb,\n closed() {\n return closed;\n },\n };\n}\n\ntype StartStreamMsg = {\n op: 'start-stream';\n 'client-id': string;\n 'reconnect-token': string;\n 'rule-params'?: RuleParams;\n};\n\ntype AppendStreamMsg = {\n op: 'append-stream';\n 'stream-id': string;\n chunks: string[];\n offset: number;\n done: boolean;\n 'abort-reason'?: string;\n};\n\ntype SubscribeStreamMsg = {\n op: 'subscribe-stream';\n 'stream-id'?: string;\n 'client-id'?: string;\n offset?: number;\n 'rule-params'?: RuleParams;\n};\n\ntype UnsubscribeStreamMsg = {\n op: 'unsubscribe-stream';\n 'subscribe-event-id': string;\n};\n\ntype SendMsg =\n | StartStreamMsg\n | AppendStreamMsg\n | SubscribeStreamMsg\n | UnsubscribeStreamMsg;\n\ntype TrySend = (eventId: string, msg: SendMsg) => void;\n\ntype StartStreamOkMsg = {\n op: 'start-stream-ok';\n 'client-event-id': string;\n 'stream-id': string;\n offset: number;\n};\n\ntype AppendStreamFailedMsg = {\n op: 'append-failed';\n 'stream-id': string;\n};\n\ntype StreamFlushedMsg = {\n op: 'stream-flushed';\n 'stream-id': string;\n offset: number;\n done: boolean;\n};\n\n// Msg sent to reader when we receive new data\ntype StreamAppendMsg = {\n op: 'stream-append';\n 'stream-id': string;\n 'client-id': string | null;\n 'client-event-id': string;\n files?: { url: string; size: number }[];\n done?: boolean;\n 'abort-reason'?: string;\n offset: number;\n error?: string;\n retry: boolean;\n content?: string;\n};\n\ntype HandleRecieveErrorMsg = {\n 'client-event-id': string;\n 'original-event': SendMsg;\n message?: string;\n hint?: Record<string, any>;\n type?: string;\n};\n\nexport class InstantStream {\n private trySend: TrySend;\n private WStream: WritableStreamCtor;\n private RStream: ReadableStreamCtor;\n private writeStreams: Record<string, WriteStreamCbs> = {};\n private startWriteStreamCbs: Record<\n string,\n (data: WriteStreamStartResult) => void\n > = {};\n\n private readStreamIterators: Record<\n string,\n StreamIterator<ReadStreamUpdate>\n > = {};\n private log: Logger;\n private activeStreams: Set<ReadableStream | WritableStream> = new Set();\n\n constructor({\n WStream,\n RStream,\n trySend,\n log,\n }: {\n WStream: WritableStreamCtor;\n RStream: ReadableStreamCtor;\n trySend: TrySend;\n log: Logger;\n }) {\n this.WStream = WStream;\n this.RStream = RStream;\n this.trySend = trySend;\n this.log = log;\n }\n\n public createWriteStream(opts: {\n clientId: string;\n waitUntil?: (promise: Promise<any>) => void | null | undefined;\n ruleParams?: RuleParams | null | undefined;\n }): InstantWritableStream<string> {\n const { stream, addCompleteCb } = createWriteStream({\n WStream: this.WStream,\n startStream: this.startWriteStream.bind(this),\n appendStream: this.appendStream.bind(this),\n registerStream: this.registerWriteStream.bind(this),\n opts,\n });\n this.activeStreams.add(stream);\n addCompleteCb(() => {\n this.activeStreams.delete(stream);\n });\n return stream;\n }\n\n public createReadStream(opts: {\n clientId?: string | null | undefined;\n streamId?: string | null | undefined;\n byteOffset?: number | null | undefined;\n ruleParams?: RuleParams | null | undefined;\n }) {\n const { stream, addCloseCb } = createReadStream({\n RStream: this.RStream,\n opts,\n startStream: this.startReadStream.bind(this),\n cancelStream: this.cancelReadStream.bind(this),\n });\n this.activeStreams.add(stream);\n addCloseCb(() => {\n this.activeStreams.delete(stream);\n });\n return stream;\n }\n\n private startWriteStream(opts: {\n clientId: string;\n reconnectToken: string;\n ruleParams?: RuleParams | null | undefined;\n }): Promise<WriteStreamStartResult> {\n const eventId = uuid();\n let resolve: ((data: WriteStreamStartResult) => void) | null = null;\n const promise: Promise<WriteStreamStartResult> = new Promise((r) => {\n resolve = r;\n });\n this.startWriteStreamCbs[eventId] = resolve!;\n const msg: StartStreamMsg = {\n op: 'start-stream',\n 'client-id': opts.clientId,\n 'reconnect-token': opts.reconnectToken,\n };\n\n if (opts.ruleParams) {\n msg['rule-params'] = opts.ruleParams;\n }\n\n this.trySend(eventId, msg);\n\n return promise;\n }\n\n private registerWriteStream(streamId: string, cbs: WriteStreamCbs) {\n this.writeStreams[streamId] = cbs;\n }\n\n private appendStream({\n streamId,\n chunks,\n isDone,\n offset,\n abortReason,\n }: {\n streamId: string;\n chunks: string[];\n isDone?: boolean;\n // XXX: Handle offset on the server\n offset: number;\n abortReason?: string;\n }) {\n const msg: AppendStreamMsg = {\n op: 'append-stream',\n 'stream-id': streamId,\n chunks,\n offset,\n done: !!isDone,\n };\n\n if (abortReason) {\n msg['abort-reason'] = abortReason;\n }\n\n this.trySend(uuid(), msg);\n }\n\n onAppendFailed(msg: AppendStreamFailedMsg) {\n const cbs = this.writeStreams[msg['stream-id']];\n if (cbs) {\n cbs.onAppendFailed();\n }\n }\n\n onStartStreamOk(msg: StartStreamOkMsg) {\n const cb = this.startWriteStreamCbs[msg['client-event-id']];\n if (!cb) {\n this.log.info('No stream for start-stream-ok', msg);\n return;\n }\n cb({ type: 'ok', streamId: msg['stream-id'], offset: msg.offset });\n delete this.startWriteStreamCbs[msg['client-event-id']];\n }\n\n onStreamFlushed(msg: StreamFlushedMsg) {\n const streamId = msg['stream-id'];\n const cbs = this.writeStreams[streamId];\n if (!cbs) {\n this.log.info('No stream cbs for stream-flushed', msg);\n return;\n }\n cbs.onFlush({ offset: msg.offset, done: msg.done });\n if (msg.done) {\n delete this.writeStreams[streamId];\n }\n }\n\n private startReadStream({\n eventId,\n clientId,\n streamId,\n offset,\n ruleParams,\n }: {\n eventId: string;\n clientId?: string;\n streamId?: string;\n offset?: number;\n ruleParams?: RuleParams | null | undefined;\n }): StreamIterator<ReadStreamUpdate> {\n const msg: SubscribeStreamMsg = { op: 'subscribe-stream' };\n\n if (!streamId && !clientId) {\n throw new Error(\n 'Must provide one of streamId or clientId to subscribe to the stream.',\n );\n }\n\n if (streamId) {\n msg['stream-id'] = streamId;\n }\n\n if (clientId) {\n msg['client-id'] = clientId;\n }\n\n if (offset) {\n msg['offset'] = offset;\n }\n\n if (ruleParams) {\n msg['rule-params'] = ruleParams;\n }\n\n const iterator = new StreamIterator<ReadStreamUpdate>();\n\n this.readStreamIterators[eventId] = iterator;\n\n this.trySend(eventId, msg);\n\n return iterator;\n }\n\n private cancelReadStream({ eventId }: { eventId: string }) {\n const msg: UnsubscribeStreamMsg = {\n op: 'unsubscribe-stream',\n 'subscribe-event-id': eventId,\n };\n this.trySend(uuid(), msg);\n delete this.readStreamIterators[eventId];\n }\n\n onStreamAppend(msg: StreamAppendMsg) {\n const eventId = msg['client-event-id'];\n const iterator = this.readStreamIterators[eventId];\n\n if (!iterator) {\n this.log.info('No iterator for read stream', msg);\n return;\n }\n\n if (msg.error) {\n if (msg.retry) {\n iterator.push({ type: 'reconnect' });\n } else {\n iterator.push({\n type: 'error',\n error: new InstantError(msg.error),\n });\n }\n iterator.close();\n delete this.readStreamIterators[eventId];\n return;\n }\n\n if (msg.files?.length || msg.content) {\n iterator.push({\n type: 'append',\n offset: msg.offset,\n files: msg.files,\n content: msg.content,\n });\n }\n\n if (msg.done) {\n iterator.close();\n delete this.readStreamIterators[eventId];\n }\n }\n\n onConnectionStatusChange(status) {\n // Tell the writers to retry:\n for (const cb of Object.values(this.startWriteStreamCbs)) {\n cb({ type: 'disconnect' });\n }\n this.startWriteStreamCbs = {};\n\n if (status !== STATUS.AUTHENTICATED) {\n // Notify the writers that they've been disconnected\n for (const { onDisconnect } of Object.values(this.writeStreams)) {\n onDisconnect();\n }\n } else {\n // Notify the writers that they need to reconnect\n for (const { onConnectionReconnect } of Object.values(\n this.writeStreams,\n )) {\n onConnectionReconnect();\n }\n\n // Notify the readers that they need to reconnect\n for (const iterator of Object.values(this.readStreamIterators)) {\n iterator.push({ type: 'reconnect' });\n iterator.close();\n }\n this.readStreamIterators = {};\n }\n }\n\n onRecieveError(msg: HandleRecieveErrorMsg) {\n const ev = msg['original-event'];\n switch (ev.op) {\n case 'append-stream': {\n const streamId = ev['stream-id'];\n const cbs = this.writeStreams[streamId];\n cbs?.onAppendFailed();\n break;\n }\n case 'start-stream': {\n const eventId = msg['client-event-id'];\n const cb = this.startWriteStreamCbs[eventId];\n if (cb) {\n cb({\n type: 'error',\n error: new InstantError(msg.message || 'Unknown error', msg.hint),\n });\n delete this.startWriteStreamCbs[eventId];\n }\n break;\n }\n case 'subscribe-stream': {\n const eventId = msg['client-event-id'];\n const iterator = this.readStreamIterators[eventId];\n if (iterator) {\n iterator.push({\n type: 'error',\n error: new InstantError(msg.message || 'Unknown error', msg.hint),\n });\n iterator.close();\n delete this.readStreamIterators[eventId];\n }\n break;\n }\n case 'unsubscribe-stream': {\n break;\n }\n }\n }\n\n hasActiveStreams() {\n return this.activeStreams.size > 0;\n }\n}\n"]}
1
+ {"version":3,"file":"Stream.js","sourceRoot":"","sources":["../../src/Stream.ts"],"names":[],"mappings":"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","sourcesContent":["import uuid from './utils/id.ts';\nimport { Logger } from './utils/log.ts';\nimport { STATUS } from './Reactor.js';\nimport { InstantError } from './InstantError.ts';\nimport { RuleParams } from './schemaTypes.ts';\n\nexport type WritableStreamCtor = {\n new <W = any>(\n underlyingSink?: UnderlyingSink<W>,\n strategy?: QueuingStrategy<W>,\n ): WritableStream<W>;\n};\n\nexport type ReadableStreamCtor = {\n new <R = any>(\n underlyingSource?: UnderlyingDefaultSource<R>,\n strategy?: QueuingStrategy<R>,\n ): ReadableStream<R>;\n};\n\nexport interface InstantWritableStream<T> extends WritableStream<T> {\n streamId: () => Promise<string>;\n}\n\nexport interface InstantReadableStream<T> extends ReadableStream<T> {\n streamId: () => Promise<string>;\n}\n\ntype WriteStreamStartResult =\n | { type: 'ok'; streamId: string; offset: number }\n | { type: 'disconnect' }\n | { type: 'error'; error: InstantError };\n\ntype WriteStreamCbs = {\n onDisconnect: () => void;\n onConnectionReconnect: () => void;\n onFlush: (args: { offset: number; done: boolean }) => void;\n onAppendFailed: () => void;\n};\n\nfunction createWriteStream({\n WStream,\n opts,\n startStream,\n appendStream,\n registerStream,\n}: {\n WStream: WritableStreamCtor;\n opts: {\n clientId: string;\n waitUntil?: (promise: Promise<any>) => void | null | undefined;\n ruleParams?: RuleParams | null | undefined;\n };\n startStream: (opts: {\n clientId: string;\n reconnectToken: string;\n ruleParams?: RuleParams | null | undefined;\n }) => Promise<WriteStreamStartResult>;\n appendStream: (opts: {\n streamId: string;\n chunks: string[];\n isDone?: boolean;\n offset: number;\n abortReason?: string;\n }) => void;\n registerStream: (streamId: string, cbs: WriteStreamCbs) => void;\n}): {\n stream: InstantWritableStream<string>;\n closed: () => boolean;\n addCompleteCb: (cb: () => void) => void;\n} {\n const clientId = opts.clientId;\n let streamId_: string | null = null;\n let error_: InstantError | null = null;\n let controller_: WritableStreamDefaultController | null = null;\n const reconnectToken = uuid();\n let isDone: boolean = false;\n let closed: boolean = false;\n const closeCbs: ((error?: InstantError) => void)[] = [];\n const streamIdCbs: ((streamId: string) => void)[] = [];\n const completeCbs: (() => void)[] = [];\n let disconnected: boolean = false;\n // Chunks that we haven't been notified are flushed to disk\n let bufferOffset = 0;\n let bufferByteSize = 0;\n const buffer: { chunk: string; byteLen: number }[] = [];\n const encoder = new TextEncoder();\n\n function markClosed() {\n closed = true;\n for (const cb of closeCbs) {\n cb(error_ ?? undefined);\n }\n }\n\n function addCloseCb(cb: (error?: InstantError) => void) {\n closeCbs.push(cb);\n if (closed) {\n cb(error_ ?? undefined);\n }\n return () => {\n const i = closeCbs.indexOf(cb);\n if (i !== -1) {\n closeCbs.splice(i, 1);\n }\n };\n }\n\n function addCompleteCb(cb: () => void) {\n completeCbs.push(cb);\n return () => {\n const i = completeCbs.indexOf(cb);\n if (i !== -1) {\n completeCbs.splice(i, 1);\n }\n };\n }\n\n if (opts.waitUntil) {\n opts.waitUntil(\n new Promise<void>((resolve) => {\n completeCbs.push(resolve);\n }),\n );\n }\n\n function runCompleteCbs() {\n for (const cb of completeCbs) {\n try {\n // cb could be provided by the user in the waitUntil,\n // so protect against errors.\n cb();\n } catch (_e) {}\n }\n }\n\n function addStreamIdCb(cb: (streamId: string) => void) {\n streamIdCbs.push(cb);\n if (streamId_) {\n cb(streamId_);\n }\n return () => {\n const i = streamIdCbs.indexOf(cb);\n if (i !== -1) {\n streamIdCbs.splice(i, 1);\n }\n };\n }\n\n function setStreamId(streamId: string) {\n streamId_ = streamId;\n for (const cb of streamIdCbs) {\n cb(streamId_);\n }\n }\n\n function onDisconnect() {\n disconnected = true;\n }\n\n // Clears data from our buffer after it has been flushed to a file\n function discardFlushed(offset: number) {\n let chunkOffset = bufferOffset;\n let segmentsToDrop = 0;\n let droppedSegmentsByteLen = 0;\n\n for (const { byteLen } of buffer) {\n const nextChunkOffset = chunkOffset + byteLen;\n if (nextChunkOffset > offset) {\n break;\n }\n chunkOffset = nextChunkOffset;\n segmentsToDrop++;\n droppedSegmentsByteLen += byteLen;\n }\n\n if (segmentsToDrop > 0) {\n bufferOffset += droppedSegmentsByteLen;\n bufferByteSize -= droppedSegmentsByteLen;\n buffer.splice(0, segmentsToDrop);\n }\n }\n\n function error(controller: WritableStreamDefaultController, e: InstantError) {\n error_ = e;\n markClosed();\n controller.error(e);\n runCompleteCbs();\n }\n\n async function onConnectionReconnect() {\n const result = await startStream({\n clientId,\n reconnectToken,\n ruleParams: opts.ruleParams,\n });\n switch (result.type) {\n case 'ok': {\n const { streamId, offset } = result;\n streamId_ = streamId;\n discardFlushed(offset);\n if (buffer.length) {\n appendStream({\n streamId: streamId,\n chunks: buffer.map((b) => b.chunk),\n offset: bufferOffset,\n });\n }\n disconnected = false;\n break;\n }\n case 'disconnect': {\n onDisconnect();\n break;\n }\n case 'error': {\n if (controller_) {\n error(controller_, result.error);\n }\n break;\n }\n }\n }\n\n // When the append fails, we'll just try to reconnect and start again\n function onAppendFailed() {\n onDisconnect();\n onConnectionReconnect();\n }\n\n function onFlush({ offset, done }: { offset: number; done: boolean }) {\n discardFlushed(offset);\n if (done) {\n isDone = true;\n runCompleteCbs();\n }\n }\n\n function ensureSetup(\n controller: WritableStreamDefaultController,\n ): string | null {\n if (isDone) {\n error(controller, new InstantError('Stream has been closed.'));\n return null;\n }\n if (!streamId_) {\n error(controller, new InstantError('Stream has not been initialized.'));\n return null;\n }\n return streamId_;\n }\n\n async function start(controller: WritableStreamDefaultController) {\n controller_ = controller;\n let tryAgain = true;\n let attempts = 0;\n\n while (tryAgain) {\n // rate-limit after the first few failed connects\n let nextAttempt = Date.now() + Math.min(15000, 500 * (attempts - 1));\n tryAgain = false;\n const result = await startStream({\n clientId: opts.clientId,\n reconnectToken,\n ruleParams: opts.ruleParams,\n });\n\n switch (result.type) {\n case 'ok': {\n const { streamId, offset } = result;\n if (offset !== 0) {\n const e = new InstantError('Write stream is corrupted');\n error(controller, e);\n return;\n }\n setStreamId(streamId);\n registerStream(streamId, {\n onDisconnect,\n onFlush,\n onConnectionReconnect,\n onAppendFailed,\n });\n disconnected = false;\n return;\n }\n case 'disconnect': {\n tryAgain = true;\n onDisconnect();\n attempts++;\n await new Promise((resolve) => {\n // Try again immediately for the first two attempts, then back off\n setTimeout(resolve, Math.max(0, nextAttempt - Date.now()));\n });\n break;\n }\n case 'error': {\n error(controller, result.error);\n return;\n }\n }\n }\n }\n\n class WStreamEnhanced\n extends WStream<string>\n implements InstantWritableStream<string>\n {\n constructor(\n sink?: UnderlyingSink<string>,\n strategy?: QueuingStrategy<string>,\n ) {\n super(sink, strategy);\n }\n\n public async streamId(): Promise<string> {\n if (streamId_) {\n return streamId_;\n }\n return new Promise((resolve, reject) => {\n const cleanupFns: (() => void)[] = [];\n const cleanup = () => {\n for (const f of cleanupFns) {\n f();\n }\n };\n const resolveCb = (streamId: string) => {\n resolve(streamId);\n cleanup();\n };\n const rejectCb = (e?: InstantError) => {\n reject(e || new InstantError('Stream is closed.'));\n cleanup();\n };\n\n cleanupFns.push(addStreamIdCb(resolveCb));\n cleanupFns.push(addCloseCb(rejectCb));\n });\n }\n }\n\n const stream = new WStreamEnhanced({\n // TODO(dww): accept a storage so that write streams can survive across\n // browser restarts\n async start(controller) {\n try {\n await start(controller);\n } catch (e) {\n error(controller, e);\n }\n },\n write(chunk, controller) {\n const streamId = ensureSetup(controller);\n if (streamId) {\n const byteLen = encoder.encode(chunk).length;\n buffer.push({ chunk, byteLen });\n const offset = bufferOffset + bufferByteSize;\n bufferByteSize += byteLen;\n if (!disconnected) {\n appendStream({ streamId, chunks: [chunk], offset });\n }\n }\n },\n close() {\n if (streamId_) {\n appendStream({\n streamId: streamId_,\n chunks: [],\n offset: bufferOffset + bufferByteSize,\n isDone: true,\n });\n } else {\n runCompleteCbs();\n }\n markClosed();\n },\n abort(reason) {\n if (streamId_) {\n appendStream({\n streamId: streamId_,\n chunks: [],\n offset: bufferOffset + bufferByteSize,\n isDone: true,\n abortReason: reason,\n });\n } else {\n runCompleteCbs();\n }\n markClosed();\n },\n });\n return {\n stream,\n addCompleteCb,\n closed() {\n return closed;\n },\n };\n}\n\ntype ReadStreamUpdate =\n | {\n type: 'append';\n offset: number;\n files?: { url: string; size: number }[];\n content?: string;\n streamId: string;\n }\n | { type: 'error'; error: InstantError }\n | { type: 'reconnect' };\n\nclass StreamIterator<T> {\n private items: T[] = [];\n private resolvers: ((next: {\n value: T | undefined;\n done: boolean;\n }) => void)[] = [];\n private isClosed = false;\n\n constructor() {}\n\n push(item: T) {\n if (this.isClosed) return;\n\n const resolve = this.resolvers.shift();\n if (resolve) {\n resolve({ value: item, done: false });\n } else {\n this.items.push(item);\n }\n }\n\n close() {\n this.isClosed = true;\n while (this.resolvers.length > 0) {\n const resolve = this.resolvers.shift();\n resolve!({ value: undefined, done: true });\n }\n }\n\n async *[Symbol.asyncIterator]() {\n while (true) {\n if (this.items.length > 0) {\n yield this.items.shift()!;\n } else if (this.isClosed) {\n return;\n } else {\n const { value, done } = await new Promise<{\n value: T | undefined;\n done: boolean;\n }>((resolve) => {\n this.resolvers.push(resolve);\n });\n if (done || !value) {\n return;\n }\n yield value;\n }\n }\n }\n}\n\nfunction createReadStream({\n RStream,\n opts,\n startStream,\n cancelStream,\n}: {\n RStream: ReadableStreamCtor;\n opts: {\n clientId?: string | null | undefined;\n streamId?: string | null | undefined;\n byteOffset?: number | null | undefined;\n ruleParams?: RuleParams | null | undefined;\n };\n startStream: (opts: {\n eventId: string;\n clientId?: string | null | undefined;\n streamId?: string | null | undefined;\n offset?: number;\n ruleParams?: RuleParams | null | undefined;\n }) => StreamIterator<ReadStreamUpdate>;\n cancelStream: (opts: { eventId: string }) => void;\n}): {\n stream: InstantReadableStream<string>;\n closed: () => boolean;\n addCloseCb: (cb: () => void) => void;\n} {\n let seenOffset = opts.byteOffset || 0;\n let canceled = false;\n const decoder = new TextDecoder('utf-8');\n const encoder = new TextEncoder();\n let eventId: string | null;\n let closed = false;\n const closeCbs: ((error?: InstantError) => void)[] = [];\n const streamIdCbs: ((streamId: string) => void)[] = [];\n // Resolved stream id from the server\n let streamId_: string | null = null;\n let error_: InstantError | null = null;\n\n function markClosed(error?: InstantError) {\n closed = true;\n for (const cb of closeCbs) {\n cb(error);\n }\n }\n\n function addCloseCb(cb: (error?: InstantError) => void) {\n closeCbs.push(cb);\n return () => {\n const i = closeCbs.indexOf(cb);\n if (i !== -1) {\n closeCbs.splice(i, 1);\n }\n };\n }\n\n function addStreamIdCb(cb: (streamId: string) => void) {\n streamIdCbs.push(cb);\n if (streamId_) {\n cb(streamId_);\n }\n return () => {\n const i = streamIdCbs.indexOf(cb);\n if (i !== -1) {\n streamIdCbs.splice(i, 1);\n }\n };\n }\n\n function error(\n controller: ReadableStreamDefaultController<string>,\n e: InstantError,\n ) {\n error_ = e;\n controller.error(e);\n markClosed(e);\n }\n\n let fetchFailures = 0;\n async function runStartStream(\n opts: {\n clientId?: string | null | undefined;\n streamId?: string | null | undefined;\n offset?: number;\n ruleParams?: RuleParams | null | undefined;\n },\n controller: ReadableStreamDefaultController<string>,\n ): Promise<{ retry: boolean } | undefined> {\n eventId = uuid();\n const streamOpts = { ...(opts || {}), eventId };\n for await (const item of startStream(streamOpts)) {\n if (canceled) {\n return;\n }\n\n if (item.type === 'reconnect') {\n return { retry: true };\n }\n\n if (item.type === 'error') {\n error(controller, item.error);\n return;\n }\n\n if (item.offset > seenOffset) {\n error(controller, new InstantError('Stream is corrupted.'));\n canceled = true;\n return;\n }\n\n streamId_ = item.streamId;\n\n for (const cb of streamIdCbs) {\n cb(streamId_);\n }\n\n let discardLen = seenOffset - item.offset;\n\n if (item.files && item.files.length) {\n const fetchAbort = new AbortController();\n let nextFetch = fetch(item.files[0].url, {\n signal: fetchAbort.signal,\n });\n for (let i = 0; i < item.files.length; i++) {\n const nextFile = item.files[i + 1];\n const thisFetch = nextFetch;\n const res = await thisFetch;\n if (nextFile) {\n nextFetch = fetch(nextFile.url, { signal: fetchAbort.signal });\n }\n\n if (!res.ok) {\n fetchFailures++;\n if (fetchFailures > 10) {\n error(controller, new InstantError('Unable to process stream.'));\n return;\n }\n return { retry: true };\n }\n\n if (res.body) {\n const reader = res.body.getReader();\n try {\n while (true) {\n const { done, value: bodyChunk } = await reader.read();\n if (done) {\n break;\n }\n if (canceled) {\n fetchAbort.abort();\n return;\n }\n let chunk = bodyChunk;\n if (discardLen > 0) {\n chunk = bodyChunk.subarray(discardLen);\n discardLen -= bodyChunk.length - chunk.length;\n }\n if (!chunk.length) {\n continue;\n }\n seenOffset += chunk.length;\n const s = decoder.decode(chunk);\n\n controller.enqueue(s);\n }\n } finally {\n reader.releaseLock();\n }\n } else {\n // RN doesn't support request.body\n const bodyChunk = await res.arrayBuffer();\n let chunk: ArrayBuffer | Uint8Array<ArrayBuffer> = bodyChunk;\n if (canceled) {\n fetchAbort.abort();\n return;\n }\n if (discardLen > 0) {\n chunk = new Uint8Array(bodyChunk).subarray(discardLen);\n discardLen -= bodyChunk.byteLength - chunk.length;\n }\n if (!chunk.byteLength) {\n continue;\n }\n seenOffset += chunk.byteLength;\n const s = decoder.decode(chunk);\n controller.enqueue(s);\n }\n }\n }\n fetchFailures = 0;\n if (item.content) {\n let content = item.content;\n let encoded = encoder.encode(item.content);\n if (discardLen > 0) {\n const remaining = encoded.subarray(discardLen);\n discardLen -= encoded.length - remaining.length;\n if (!remaining.length) {\n continue;\n }\n encoded = remaining;\n content = decoder.decode(remaining);\n }\n seenOffset += encoded.length;\n controller.enqueue(content);\n }\n }\n }\n\n async function start(controller: ReadableStreamDefaultController<string>) {\n let retry = true;\n let attempts = 0;\n while (retry) {\n retry = false;\n let nextAttempt = Date.now() + Math.min(15000, 500 * (attempts - 1));\n const res = await runStartStream(\n { ...opts, offset: seenOffset },\n controller,\n );\n\n if (res?.retry) {\n retry = true;\n attempts++;\n if (nextAttempt < Date.now() - 300000) {\n // reset attempts if we last tried 5 minutes ago\n attempts = 0;\n }\n await new Promise((resolve) => {\n setTimeout(resolve, Math.max(0, nextAttempt - Date.now()));\n });\n }\n }\n if (!canceled && !closed) {\n controller.close();\n markClosed();\n }\n }\n\n class RStreamEnhanced\n extends RStream<string>\n implements InstantReadableStream<string>\n {\n constructor(\n source?: UnderlyingDefaultSource<string>,\n strategy?: QueuingStrategy<string>,\n ) {\n super(source, strategy);\n }\n\n public async streamId(): Promise<string> {\n if (streamId_) {\n return streamId_;\n }\n if (error_) {\n throw error_;\n }\n return new Promise((resolve, reject) => {\n const cleanupFns: (() => void)[] = [];\n const cleanup = () => {\n for (const f of cleanupFns) {\n f();\n }\n };\n const resolveCb = (streamId: string) => {\n resolve(streamId);\n cleanup();\n };\n const rejectCb = (e?: InstantError) => {\n reject(e || new InstantError('Stream is closed.'));\n cleanup();\n };\n\n cleanupFns.push(addStreamIdCb(resolveCb));\n cleanupFns.push(addCloseCb(rejectCb));\n });\n }\n }\n\n const stream = new RStreamEnhanced({\n start(controller) {\n start(controller);\n },\n cancel(_reason) {\n canceled = true;\n if (eventId) {\n cancelStream({ eventId });\n }\n markClosed();\n },\n });\n\n return {\n stream,\n addCloseCb,\n closed() {\n return closed;\n },\n };\n}\n\ntype StartStreamMsg = {\n op: 'start-stream';\n 'client-id': string;\n 'reconnect-token': string;\n 'rule-params'?: RuleParams;\n};\n\ntype AppendStreamMsg = {\n op: 'append-stream';\n 'stream-id': string;\n chunks: string[];\n offset: number;\n done: boolean;\n 'abort-reason'?: string;\n};\n\ntype SubscribeStreamMsg = {\n op: 'subscribe-stream';\n 'stream-id'?: string;\n 'client-id'?: string;\n offset?: number;\n 'rule-params'?: RuleParams;\n};\n\ntype UnsubscribeStreamMsg = {\n op: 'unsubscribe-stream';\n 'subscribe-event-id': string;\n};\n\ntype SendMsg =\n | StartStreamMsg\n | AppendStreamMsg\n | SubscribeStreamMsg\n | UnsubscribeStreamMsg;\n\ntype TrySend = (eventId: string, msg: SendMsg) => void;\n\ntype StartStreamOkMsg = {\n op: 'start-stream-ok';\n 'client-event-id': string;\n 'stream-id': string;\n offset: number;\n};\n\ntype AppendStreamFailedMsg = {\n op: 'append-failed';\n 'stream-id': string;\n};\n\ntype StreamFlushedMsg = {\n op: 'stream-flushed';\n 'stream-id': string;\n offset: number;\n done: boolean;\n};\n\n// Msg sent to reader when we receive new data\ntype StreamAppendMsg = {\n op: 'stream-append';\n 'stream-id': string;\n 'client-id': string | null;\n 'client-event-id': string;\n files?: { url: string; size: number }[];\n done?: boolean;\n 'abort-reason'?: string;\n offset: number;\n error?: string;\n retry: boolean;\n content?: string;\n};\n\ntype HandleRecieveErrorMsg = {\n 'client-event-id': string;\n 'original-event': SendMsg;\n message?: string;\n hint?: Record<string, any>;\n type?: string;\n};\n\nexport class InstantStream {\n private trySend: TrySend;\n private WStream: WritableStreamCtor;\n private RStream: ReadableStreamCtor;\n private writeStreams: Record<string, WriteStreamCbs> = {};\n private startWriteStreamCbs: Record<\n string,\n (data: WriteStreamStartResult) => void\n > = {};\n\n private readStreamIterators: Record<\n string,\n StreamIterator<ReadStreamUpdate>\n > = {};\n private log: Logger;\n private activeStreams: Set<ReadableStream | WritableStream> = new Set();\n\n constructor({\n WStream,\n RStream,\n trySend,\n log,\n }: {\n WStream: WritableStreamCtor;\n RStream: ReadableStreamCtor;\n trySend: TrySend;\n log: Logger;\n }) {\n this.WStream = WStream;\n this.RStream = RStream;\n this.trySend = trySend;\n this.log = log;\n }\n\n public createWriteStream(opts: {\n clientId: string;\n waitUntil?: (promise: Promise<any>) => void | null | undefined;\n ruleParams?: RuleParams | null | undefined;\n }): InstantWritableStream<string> {\n const { stream, addCompleteCb } = createWriteStream({\n WStream: this.WStream,\n startStream: this.startWriteStream.bind(this),\n appendStream: this.appendStream.bind(this),\n registerStream: this.registerWriteStream.bind(this),\n opts,\n });\n this.activeStreams.add(stream);\n addCompleteCb(() => {\n this.activeStreams.delete(stream);\n });\n return stream;\n }\n\n public createReadStream(opts: {\n clientId?: string | null | undefined;\n streamId?: string | null | undefined;\n byteOffset?: number | null | undefined;\n ruleParams?: RuleParams | null | undefined;\n }) {\n const { stream, addCloseCb } = createReadStream({\n RStream: this.RStream,\n opts,\n startStream: this.startReadStream.bind(this),\n cancelStream: this.cancelReadStream.bind(this),\n });\n this.activeStreams.add(stream);\n addCloseCb(() => {\n this.activeStreams.delete(stream);\n });\n return stream;\n }\n\n private startWriteStream(opts: {\n clientId: string;\n reconnectToken: string;\n ruleParams?: RuleParams | null | undefined;\n }): Promise<WriteStreamStartResult> {\n const eventId = uuid();\n let resolve: ((data: WriteStreamStartResult) => void) | null = null;\n const promise: Promise<WriteStreamStartResult> = new Promise((r) => {\n resolve = r;\n });\n this.startWriteStreamCbs[eventId] = resolve!;\n const msg: StartStreamMsg = {\n op: 'start-stream',\n 'client-id': opts.clientId,\n 'reconnect-token': opts.reconnectToken,\n };\n\n if (opts.ruleParams) {\n msg['rule-params'] = opts.ruleParams;\n }\n\n this.trySend(eventId, msg);\n\n return promise;\n }\n\n private registerWriteStream(streamId: string, cbs: WriteStreamCbs) {\n this.writeStreams[streamId] = cbs;\n }\n\n private appendStream({\n streamId,\n chunks,\n isDone,\n offset,\n abortReason,\n }: {\n streamId: string;\n chunks: string[];\n isDone?: boolean;\n // XXX: Handle offset on the server\n offset: number;\n abortReason?: string;\n }) {\n const msg: AppendStreamMsg = {\n op: 'append-stream',\n 'stream-id': streamId,\n chunks,\n offset,\n done: !!isDone,\n };\n\n if (abortReason) {\n msg['abort-reason'] = abortReason;\n }\n\n this.trySend(uuid(), msg);\n }\n\n onAppendFailed(msg: AppendStreamFailedMsg) {\n const cbs = this.writeStreams[msg['stream-id']];\n if (cbs) {\n cbs.onAppendFailed();\n }\n }\n\n onStartStreamOk(msg: StartStreamOkMsg) {\n const cb = this.startWriteStreamCbs[msg['client-event-id']];\n if (!cb) {\n this.log.info('No stream for start-stream-ok', msg);\n return;\n }\n cb({ type: 'ok', streamId: msg['stream-id'], offset: msg.offset });\n delete this.startWriteStreamCbs[msg['client-event-id']];\n }\n\n onStreamFlushed(msg: StreamFlushedMsg) {\n const streamId = msg['stream-id'];\n const cbs = this.writeStreams[streamId];\n if (!cbs) {\n this.log.info('No stream cbs for stream-flushed', msg);\n return;\n }\n cbs.onFlush({ offset: msg.offset, done: msg.done });\n if (msg.done) {\n delete this.writeStreams[streamId];\n }\n }\n\n private startReadStream({\n eventId,\n clientId,\n streamId,\n offset,\n ruleParams,\n }: {\n eventId: string;\n clientId?: string;\n streamId?: string;\n offset?: number;\n ruleParams?: RuleParams | null | undefined;\n }): StreamIterator<ReadStreamUpdate> {\n const msg: SubscribeStreamMsg = { op: 'subscribe-stream' };\n\n if (!streamId && !clientId) {\n throw new Error(\n 'Must provide one of streamId or clientId to subscribe to the stream.',\n );\n }\n\n if (streamId) {\n msg['stream-id'] = streamId;\n }\n\n if (clientId) {\n msg['client-id'] = clientId;\n }\n\n if (offset) {\n msg['offset'] = offset;\n }\n\n if (ruleParams) {\n msg['rule-params'] = ruleParams;\n }\n\n const iterator = new StreamIterator<ReadStreamUpdate>();\n\n this.readStreamIterators[eventId] = iterator;\n\n this.trySend(eventId, msg);\n\n return iterator;\n }\n\n private cancelReadStream({ eventId }: { eventId: string }) {\n const msg: UnsubscribeStreamMsg = {\n op: 'unsubscribe-stream',\n 'subscribe-event-id': eventId,\n };\n this.trySend(uuid(), msg);\n delete this.readStreamIterators[eventId];\n }\n\n onStreamAppend(msg: StreamAppendMsg) {\n const eventId = msg['client-event-id'];\n const iterator = this.readStreamIterators[eventId];\n\n if (!iterator) {\n this.log.info('No iterator for read stream', msg);\n return;\n }\n\n if (msg.error) {\n if (msg.retry) {\n iterator.push({ type: 'reconnect' });\n } else {\n iterator.push({\n type: 'error',\n error: new InstantError(msg.error),\n });\n }\n iterator.close();\n delete this.readStreamIterators[eventId];\n return;\n }\n\n iterator.push({\n type: 'append',\n offset: msg.offset,\n files: msg.files,\n content: msg.content,\n streamId: msg['stream-id'],\n });\n\n if (msg.done) {\n iterator.close();\n delete this.readStreamIterators[eventId];\n }\n }\n\n onConnectionStatusChange(status: any) {\n // Tell the writers to retry:\n for (const cb of Object.values(this.startWriteStreamCbs)) {\n cb({ type: 'disconnect' });\n }\n this.startWriteStreamCbs = {};\n\n if (status !== STATUS.AUTHENTICATED) {\n // Notify the writers that they've been disconnected\n for (const { onDisconnect } of Object.values(this.writeStreams)) {\n onDisconnect();\n }\n } else {\n // Notify the writers that they need to reconnect\n for (const { onConnectionReconnect } of Object.values(\n this.writeStreams,\n )) {\n onConnectionReconnect();\n }\n\n // Notify the readers that they need to reconnect\n for (const iterator of Object.values(this.readStreamIterators)) {\n iterator.push({ type: 'reconnect' });\n iterator.close();\n }\n this.readStreamIterators = {};\n }\n }\n\n onRecieveError(msg: HandleRecieveErrorMsg) {\n const ev = msg['original-event'];\n switch (ev.op) {\n case 'append-stream': {\n const streamId = ev['stream-id'];\n const cbs = this.writeStreams[streamId];\n cbs?.onAppendFailed();\n break;\n }\n case 'start-stream': {\n const eventId = msg['client-event-id'];\n const cb = this.startWriteStreamCbs[eventId];\n if (cb) {\n cb({\n type: 'error',\n error: new InstantError(msg.message || 'Unknown error', msg.hint),\n });\n delete this.startWriteStreamCbs[eventId];\n }\n break;\n }\n case 'subscribe-stream': {\n const eventId = msg['client-event-id'];\n const iterator = this.readStreamIterators[eventId];\n if (iterator) {\n iterator.push({\n type: 'error',\n error: new InstantError(msg.message || 'Unknown error', msg.hint),\n });\n iterator.close();\n delete this.readStreamIterators[eventId];\n }\n break;\n }\n case 'unsubscribe-stream': {\n break;\n }\n }\n }\n\n hasActiveStreams() {\n return this.activeStreams.size > 0;\n }\n}\n"]}
@@ -30,7 +30,7 @@ import { InstantError } from './InstantError.ts';
30
30
  import { SSEConnection, EventSourceType, type EventSourceConstructor } from './Connection.ts';
31
31
  import { CallbackEventType as SyncTableCallbackEventType } from './SyncTable.ts';
32
32
  import type { SyncTableCallback, CallbackEvent as SyncTableCallbackEvent, InitialSyncBatch as SyncTableInitialSyncBatch, InitialSyncComplete as SyncTableInitialSyncComplete, SyncTransaction as SyncTableSyncTransaction, LoadFromStorage as SyncTableLoadFromStorage, SetupError as SyncTableSetupError } from './SyncTable.ts';
33
- import { InstantStream, InstantWritableStream, ReadableStreamCtor, WritableStreamCtor } from './Stream.ts';
33
+ import { InstantStream, InstantWritableStream, InstantReadableStream, ReadableStreamCtor, WritableStreamCtor } from './Stream.ts';
34
34
  import { type InfiniteQueryCallbackResponse, type InfiniteQuerySubscription, getInfiniteQueryInitialSnapshot } from './infiniteQuery.ts';
35
35
  type ExactlyOne<T> = {
36
36
  [K in keyof T]: Pick<T, K> & Partial<Record<Exclude<keyof T, K>, never>>;
@@ -340,7 +340,7 @@ declare class Streams {
340
340
  * console.log(chunk);
341
341
  * }
342
342
  */
343
- createReadStream: (opts: CreateReadStreamOpts) => ReadableStream<string>;
343
+ createReadStream: (opts: CreateReadStreamOpts) => InstantReadableStream<string>;
344
344
  /**
345
345
  * Creates a new WritableStream for the given clientId.
346
346
  *
@@ -572,7 +572,7 @@ declare function init<Schema extends InstantSchemaDef<any, any, any> = InstantUn
572
572
  * const db = init({ ... });
573
573
  */
574
574
  declare const init_experimental: typeof init;
575
- export { init, init_experimental, id, tx, txInit, lookup, validateQuery, QueryValidationError, validateTransactions, parseSchemaFromJSON, TransactionValidationError, FrameworkClient, Reactor, InstantAPIError, setInstantWarningsEnabled, i, getOps, coerceQuery, weakHash, coerceToDate, IndexedDBStorage, WindowNetworkListener, InstantCoreDatabase, Auth, Storage, Streams, version, InstantError, getInfiniteQueryInitialSnapshot, SyncTableCallbackEventType, type IDatabase, type RoomSchemaShape, type Query, type QueryResponse, type InstaQLResponse, type PageInfoResponse, type InstantObject, type Exactly, type TransactionChunk, type AuthState, type ConnectionStatus, type User, type AuthToken, type TxChunk, type SubscriptionState, type InstaQLSubscriptionState, type LifecycleSubscriptionState, type InstaQLLifecycleState, type PresenceOpts, type PresenceSlice, type PresenceResponse, type PresencePeer, type InstaQLParams, type ValidQuery, type Cursor, type InstaQLOptions, type InstaQLQueryParams, type InstantQuery, type InstantQueryResult, type InstantSchema, type InstantEntity, type InstantSchemaDatabase, type InstaQLFields, type Order, type InstaQLQueryEntityResult, type InfiniteQueryCallbackResponse, type InfiniteQuerySubscription, type AttrsDefs, type CardinalityKind, type DataAttrDef, type EntitiesDef, type InstantUnknownSchemaDef, type EntitiesWithLinks, type EntityDef, type RoomsDef, type InstantGraph, type LinkAttrDef, type LinkDef, type LinksDef, type ResolveAttrs, type ValueTypes, type RoomsOf, type PresenceOf, type TopicsOf, type TopicOf, type InstaQLEntity, type InstaQLResult, type InstaQLEntitySubquery, type InstantSchemaDef, type InstantUnknownSchema, type IInstantDatabase, type BackwardsCompatibleSchema, type InstantRules, type UpdateParams, type LinkParams, type CreateParams, type RuleParams, type InstantDBAttr, type InstantDBAttrOnDelete, type InstantDBCheckedDataType, type InstantDBIdent, type InstantDBInferredType, type CheckMagicCodeParams, type CheckMagicCodeResponse, type ExchangeCodeForTokenParams, type SendMagicCodeParams, type SendMagicCodeResponse, type SignInWithIdTokenParams, type VerifyMagicCodeParams, type VerifyResponse, type FileOpts, type UploadFileResponse, type DeleteFileResponse, SSEConnection, type EventSourceType, type FrameworkConfig, type EventSourceConstructor, InstantStream, type WritableStreamCtor, type ReadableStreamCtor, type CreateReadStreamOpts, type CreateWriteStreamOpts, type InstantWritableStream, type SyncTableCallback, type SyncTableCallbackEvent, type SyncTableInitialSyncBatch, type SyncTableInitialSyncComplete, type SyncTableSyncTransaction, type SyncTableLoadFromStorage, type SyncTableSetupError, type InstantIssue, StoreInterface, type StoreInterfaceClass, type StoreInterfaceStoreName, createInstantRouteHandler, };
575
+ export { init, init_experimental, id, tx, txInit, lookup, validateQuery, QueryValidationError, validateTransactions, parseSchemaFromJSON, TransactionValidationError, FrameworkClient, Reactor, InstantAPIError, setInstantWarningsEnabled, i, getOps, coerceQuery, weakHash, coerceToDate, IndexedDBStorage, WindowNetworkListener, InstantCoreDatabase, Auth, Storage, Streams, version, InstantError, getInfiniteQueryInitialSnapshot, SyncTableCallbackEventType, type IDatabase, type RoomSchemaShape, type Query, type QueryResponse, type InstaQLResponse, type PageInfoResponse, type InstantObject, type Exactly, type TransactionChunk, type AuthState, type ConnectionStatus, type User, type AuthToken, type TxChunk, type SubscriptionState, type InstaQLSubscriptionState, type LifecycleSubscriptionState, type InstaQLLifecycleState, type PresenceOpts, type PresenceSlice, type PresenceResponse, type PresencePeer, type InstaQLParams, type ValidQuery, type Cursor, type InstaQLOptions, type InstaQLQueryParams, type InstantQuery, type InstantQueryResult, type InstantSchema, type InstantEntity, type InstantSchemaDatabase, type InstaQLFields, type Order, type InstaQLQueryEntityResult, type InfiniteQueryCallbackResponse, type InfiniteQuerySubscription, type AttrsDefs, type CardinalityKind, type DataAttrDef, type EntitiesDef, type InstantUnknownSchemaDef, type EntitiesWithLinks, type EntityDef, type RoomsDef, type InstantGraph, type LinkAttrDef, type LinkDef, type LinksDef, type ResolveAttrs, type ValueTypes, type RoomsOf, type PresenceOf, type TopicsOf, type TopicOf, type InstaQLEntity, type InstaQLResult, type InstaQLEntitySubquery, type InstantSchemaDef, type InstantUnknownSchema, type IInstantDatabase, type BackwardsCompatibleSchema, type InstantRules, type UpdateParams, type LinkParams, type CreateParams, type RuleParams, type InstantDBAttr, type InstantDBAttrOnDelete, type InstantDBCheckedDataType, type InstantDBIdent, type InstantDBInferredType, type CheckMagicCodeParams, type CheckMagicCodeResponse, type ExchangeCodeForTokenParams, type SendMagicCodeParams, type SendMagicCodeResponse, type SignInWithIdTokenParams, type VerifyMagicCodeParams, type VerifyResponse, type FileOpts, type UploadFileResponse, type DeleteFileResponse, SSEConnection, type EventSourceType, type FrameworkConfig, type EventSourceConstructor, InstantStream, type WritableStreamCtor, type ReadableStreamCtor, type CreateReadStreamOpts, type CreateWriteStreamOpts, type InstantWritableStream, type InstantReadableStream, type SyncTableCallback, type SyncTableCallbackEvent, type SyncTableInitialSyncBatch, type SyncTableInitialSyncComplete, type SyncTableSyncTransaction, type SyncTableLoadFromStorage, type SyncTableSetupError, type InstantIssue, StoreInterface, type StoreInterfaceClass, type StoreInterfaceStoreName, createInstantRouteHandler, };
576
576
  /** @deprecated Use StoreInterface instead */
577
577
  export declare const StorageInterface: typeof StoreInterface;
578
578
  /** @deprecated Use StoreInterfaceStoreName instead */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EACL,EAAE,EACF,MAAM,EACN,MAAM,EACN,MAAM,EACN,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAC;AACtB,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,MAAM,eAAe,CAAC;AAC/B,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAC;AAEhC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC7B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,eAAe,EAChB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,gBAAgB,EAEjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,KAAK,EACL,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,UAAU,EACV,MAAM,EACN,KAAK,EACL,wBAAwB,EACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,SAAS,EACT,IAAI,EACJ,UAAU,EACV,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,cAAc,EACd,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,OAAO,EACP,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,OAAO,EACP,UAAU,EACV,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,UAAU,EACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,cAAc,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EACL,aAAa,EACb,eAAe,EACf,KAAK,sBAAsB,EAC5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,IAAI,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,IAAI,sBAAsB,EACvC,gBAAgB,IAAI,yBAAyB,EAC7C,mBAAmB,IAAI,4BAA4B,EACnD,eAAe,IAAI,wBAAwB,EAC3C,eAAe,IAAI,wBAAwB,EAC3C,UAAU,IAAI,mBAAmB,EAClC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAE9B,+BAA+B,EAChC,MAAM,oBAAoB,CAAC;AAM5B,KAAK,UAAU,CAAC,CAAC,IAAI;KAClB,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;CACzE,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,aAAa,CACvB,CAAC,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACzC,QAAQ,SAAS,OAAO,GAAG,KAAK,IAC9B;IACF,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,QAAQ,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,cAAc,CAAC,EAAE,kBAAkB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,GAAG;IACxE,MAAM,EAAE,CAAC,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,WAAW,IAAI,CAAC,GAAG,SAAS,MAAM,WAAW,EACpE,KAAK,EAAE,GAAG,EACV,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,KACnB,IAAI,CAAC;AAEV,MAAM,MAAM,cAAc,CAAC,aAAa,EAAE,WAAW,IAAI,CACvD,GAAG,SAAS,MAAM,WAAW,EAE7B,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,aAAa,KAAK,IAAI,KAC5D,MAAM,IAAI,CAAC;AAEhB,MAAM,MAAM,WAAW,CAAC,aAAa,IAAI,CAAC,IAAI,SAAS,MAAM,aAAa,EACxE,IAAI,EAAE,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,KACpC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;AAElD,MAAM,MAAM,iBAAiB,CAAC,aAAa,IAAI,CAC7C,IAAI,SAAS,MAAM,aAAa,EAEhC,IAAI,EAAE,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,EACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,IAAI,KAC7D,MAAM,IAAI,CAAC;AAEhB,MAAM,MAAM,UAAU,CAAC,aAAa,EAAE,WAAW,IAAI;IACnD,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IACxC,cAAc,EAAE,cAAc,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC3D,eAAe,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACxD,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;IACxC,iBAAiB,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;CACrD,CAAC;AAEF,KAAK,SAAS,GAAG,MAAM,CAAC;AAExB,KAAK,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,wBAAwB,SAAS,OAAO,IACtE;IAAE,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,GACpE;IACE,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,wBAAwB,CAAC,CAAC;IACzD,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC;AAEN,KAAK,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,SAAS,OAAO,IAC7D;IAAE,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,GACpE;IACE,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC3C,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC;AAEN,KAAK,0BAA0B,CAC7B,CAAC,EACD,MAAM,EACN,wBAAwB,SAAS,OAAO,IACtC,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,wBAAwB,CAAC,GAAG;IAC3D,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,qBAAqB,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,SAAS,OAAO,GAAG,KAAK,IAClE,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG;IAC/C,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,GACF;IACE,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEN,KAAK,aAAa,GAAG,MAAM,IAAI,CAAC;AAgDhC,KAAK,WAAW,GAAG;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,cAAM,IAAI;IACI,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,OAAO;IAE/B;;;;;;;;;;OAUG;IACH,aAAa,GACX,QAAQ,mBAAmB,KAC1B,OAAO,CAAC,qBAAqB,CAAC,CAE/B;IAEF;;;;;;;;OAQG;IACH,mBAAmB,GACjB,QAAQ,oBAAoB,KAC3B,OAAO,CAAC,sBAAsB,CAAC,CAEhC;IAEF;;;;;;;;;;OAUG;IACH,eAAe,GAAI,OAAO,SAAS,KAAG,OAAO,CAAC,cAAc,CAAC,CAE3D;IAEF;;;;;;;OAOG;IACH,aAAa,QAAO,OAAO,CAAC,cAAc,CAAC,CAEzC;IAEF;;;;;;;;;;;;;;OAcG;IACH,sBAAsB,GAAI,QAAQ;QAChC,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACnC,KAAG,MAAM,CAER;IAEF;;;;;;;;;;;;;;;;;OAiBG;IACH,iBAAiB,GACf,QAAQ,uBAAuB,KAC9B,OAAO,CAAC,sBAAsB,CAAC,CAEhC;IAEF;;;;;;;;;;;;;;;OAeG;IACH,iBAAiB,GACf,QAAQ,0BAA0B,KACjC,OAAO,CAAC,sBAAsB,CAAC,CAEhC;IAEF;;;;;;;;;;OAUG;IACH,SAAS,QAAO,MAAM,CAEpB;IAEF;;OAEG;IACH,OAAO,GAAI,OAAM,WAAuC,KAAG,OAAO,CAAC,IAAI,CAAC,CAEtE;CACH;AAED,KAAK,QAAQ,GAAG;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,cAAM,OAAO;IACC,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,OAAO;IAE/B;;;;;;;OAOG;IACH,UAAU,GACR,MAAM,MAAM,EACZ,MAAM,IAAI,GAAG,IAAI,EACjB,OAAM,QAAa,KAClB,OAAO,CAAC,kBAAkB,CAAC,CAE5B;IAEF;;;;;;;;;;;;;;;OAeG;IACH,MAAM,GAAI,UAAU,MAAM,iCAExB;IAKF;;;OAGG;IACH,MAAM,GAAI,UAAU,MAAM,EAAE,MAAM,IAAI,sBAEpC;IAEF;;OAEG;IACH,GAAG,aAPiB,MAAM,QAAQ,IAAI,sBAOpB;IAElB;;;;;;;;;;;;;OAaG;IACH,cAAc,GAAI,UAAU,MAAM,kBAEhC;CACH;AAED,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACvC,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC;CAC5C,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/D,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC;CAC5C,CAAC;AAEF;;GAEG;AACH,cAAM,OAAO;IACC,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,OAAO;IAE/B;;;;;;;;OAQG;IACH,gBAAgB,GAAI,MAAM,oBAAoB,KAAG,cAAc,CAAC,MAAM,CAAC,CAErE;IAEF;;;;;;;;OAQG;IACH,iBAAiB,GACf,MAAM,qBAAqB,KAC1B,qBAAqB,CAAC,MAAM,CAAC,CAE9B;CACH;AAID,iBAAS,WAAW,CAAC,CAAC,EAAE,GAAG,OAG1B;AAED,cAAM,mBAAmB,CACvB,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC9C,QAAQ,SAAS,OAAO,GAAG,KAAK,CAChC,YAAW,gBAAgB,CAAC,MAAM,CAAC;IAE5B,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACnC,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IAEjB,EAAE,kBAAoB;gBAEjB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAO7C;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,QAAQ,CACN,MAAM,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAChE,OAAO,CAAC,iBAAiB,CAAC;IAI7B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,cAAc,CACZ,CAAC,SAAS,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,EAC/B,aAAa,SAAS,OAAO,GAAG,QAAQ,EAExC,KAAK,EAAE,CAAC,EACR,EAAE,EAAE,CAAC,IAAI,EAAE,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,aAAa,CAAC,KAAK,IAAI,EACtE,IAAI,CAAC,EAAE,cAAc;IAKvB;;;;;;;;;;;;;;;;;;OAkBG;IACH,sBAAsB,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,EACpD,KAAK,EAAE,CAAC,EACR,EAAE,EAAE,CAAC,IAAI,EAAE,6BAA6B,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,IAAI,EACtE,IAAI,CAAC,EAAE,cAAc,GACpB,yBAAyB;IAS5B;;;;;;;;;;;;;OAaG;IACH,aAAa,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,aAAa;IAI5D;;;;;;;;;OASG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAI/B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,yBAAyB,CACvB,EAAE,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,GACrC,aAAa;IAIhB;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EACtD,QAAQ,GAAE,QAAyC,EACnD,MAAM,GAAE,MAAyB,EACjC,IAAI,CAAC,EAAE;QACL,eAAe,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;KACzD,GACA,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAqBvE,QAAQ;IAKR;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,EACvC,KAAK,EAAE,CAAC,EACR,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC;QACT,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC3C,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;KAC/B,CAAC;IAIF;;;;;;;;;;OAUG;IACH,sBAAsB,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,EACpD,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EACpB,EAAE,EAAE,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,GACzC,CACD,IAAI,CAAC,EAAE;QAAE,gBAAgB,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAA;KAAE,GAAG,IAAI,GAAG,SAAS,KACvE,IAAI;CAGV;AAyBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,iBAAS,IAAI,CACX,MAAM,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,oBAAoB,EACrE,QAAQ,SAAS,OAAO,GAAG,KAAK,EAIhC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,gBAAgB,CAAC,GAAG;IAChE,cAAc,CAAC,EAAE,QAAQ,CAAC;CAC3B,EACD,KAAK,CAAC,EAAE,GAAG,EACX,eAAe,CAAC,EAAE,GAAG,EACrB,QAAQ,CAAC,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EACpC,eAAe,CAAC,EAAE,GAAG,GACpB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAmCvC;AA+BD;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,iBAAiB,aAAO,CAAC;AAE/B,OAAO,EAEL,IAAI,EACJ,iBAAiB,EACjB,EAAE,EACF,EAAE,EACF,MAAM,EACN,MAAM,EACN,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,eAAe,EACf,OAAO,EAGP,eAAe,EAGf,yBAAyB,EAGzB,CAAC,EAGD,MAAM,EACN,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,IAAI,EACJ,OAAO,EACP,OAAO,EACP,OAAO,EACP,YAAY,EAGZ,+BAA+B,EAG/B,0BAA0B,EAG1B,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAG1B,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAGjB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,wBAAwB,EAC7B,KAAK,6BAA6B,EAClC,KAAK,yBAAyB,EAG9B,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,UAAU,EAGf,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAG1B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EAGnB,KAAK,QAAQ,EACb,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EAGvB,aAAa,EACb,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAG3B,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAG1B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EAGxB,KAAK,YAAY,EAGjB,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,yBAAyB,GAC1B,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,gBAAgB,uBAAiB,CAAC;AAE/C,sDAAsD;AACtD,MAAM,MAAM,yBAAyB,GAAG,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}