@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.
- package/dist/commonjs/Reactor.d.ts +1 -1
- package/dist/commonjs/Reactor.d.ts.map +1 -1
- package/dist/commonjs/Stream.d.ts +4 -1
- package/dist/commonjs/Stream.d.ts.map +1 -1
- package/dist/commonjs/Stream.js +63 -12
- package/dist/commonjs/Stream.js.map +1 -1
- package/dist/commonjs/index.d.ts +3 -3
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/esm/Reactor.d.ts +1 -1
- package/dist/esm/Reactor.d.ts.map +1 -1
- package/dist/esm/Stream.d.ts +4 -1
- package/dist/esm/Stream.d.ts.map +1 -1
- package/dist/esm/Stream.js +63 -12
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/index.d.ts +3 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/standalone/index.js +925 -892
- package/dist/standalone/index.umd.cjs +3 -3
- package/package.json +2 -2
- package/src/Stream.ts +85 -16
- package/src/index.ts +5 -1
|
@@ -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):
|
|
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
|
-
}):
|
|
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":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,CAAC,GAAG,GAAG,EACV,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAClC,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAC5B,cAAc,CAAC,CAAC,CAAC,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,CAAC,GAAG,GAAG,EACV,gBAAgB,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,EAC7C,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAC5B,cAAc,CAAC,CAAC,CAAC,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,qBAAqB,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACjE,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACjC;
|
|
1
|
+
{"version":3,"file":"Stream.d.ts","sourceRoot":"","sources":["../../src/Stream.ts"],"names":[],"mappings":"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"}
|
package/dist/commonjs/Stream.js
CHANGED
|
@@ -357,10 +357,14 @@ function createReadStream({ RStream, opts, startStream, cancelStream, }) {
|
|
|
357
357
|
let eventId;
|
|
358
358
|
let closed = false;
|
|
359
359
|
const closeCbs = [];
|
|
360
|
-
|
|
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
|
-
|
|
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
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
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"]}
|
package/dist/commonjs/index.d.ts
CHANGED
|
@@ -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) =>
|
|
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":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|