instant-cli 0.22.84 → 0.22.85
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/.turbo/turbo-build.log +1 -1
- package/dist/ui/lib.d.ts.map +1 -1
- package/dist/ui/lib.js +0 -1
- package/dist/ui/lib.js.map +1 -1
- package/package.json +3 -3
- package/src/ui/lib.ts +0 -1
package/.turbo/turbo-build.log
CHANGED
package/dist/ui/lib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/ui/lib.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/ui/lib.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/lib.js
CHANGED
package/dist/ui/lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/ui/lib.ts"],"names":[],"mappings":"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","sourcesContent":["import { ReadStream, WriteStream } from 'tty';\nimport { cursor, erase } from 'sisteransi';\nimport throttle from 'lodash.throttle';\nimport readline from 'readline';\n\nconst isWindows = process.platform === 'win32';\n\n/**\n * Set terminal raw mode on stdin, with a Windows workaround.\n *\n * Raw mode (true):\n * - Input available character-by-character (not line-buffered)\n * - No echo of typed characters\n * - Ctrl+C doesn't send SIGINT (must handle manually)\n * - Required to capture arrow keys and other special keys\n *\n * Normal mode (false):\n * - Input is line-buffered (available after Enter)\n * - Typed characters are echoed\n * - Ctrl+C sends SIGINT as normal\n *\n * Windows workaround: We skip disabling raw mode on Windows because\n * toggling it between prompts causes a race condition that breaks\n * subsequent keypress events. Raw mode is automatically reset when\n * the process exits, so this is safe.\n *\n * See: https://github.com/bombshell-dev/clack/issues/176\n */\nexport function setRawModeWindowsFriendly(input: ReadStream, value: boolean) {\n if (!value && isWindows) return;\n input.setRawMode(value);\n}\n\nexport interface Closable {\n close(): void;\n}\n\nexport type ModifyOutputFn = (\n output: string,\n status?: 'idle' | 'submitted' | 'aborted',\n) => string;\n\nexport abstract class Prompt<RESULT> {\n protected terminal: ITerminal | undefined;\n private attachCallbacks: ((terminal: ITerminal) => void)[] = [];\n private detachCallbacks: ((terminal: ITerminal) => void)[] = [];\n private inputCallbacks: ((str: string | undefined, key: AnyKey) => void)[] =\n [];\n\n public modifier: ModifyOutputFn | undefined = undefined;\n\n requestLayout() {\n if (this.terminal) {\n this.terminal!.requestLayout();\n }\n }\n\n constructor(modifier?: ModifyOutputFn) {\n this.modifier = modifier;\n }\n\n on(type: 'attach', callback: (terminal: ITerminal) => void): void;\n on(type: 'detach', callback: (terminal: ITerminal) => void): void;\n on(\n type: 'input',\n callback: (str: string | undefined, key: AnyKey) => void,\n ): void;\n on(type: 'attach' | 'detach' | 'input', callback: any): void {\n if (type === 'attach') {\n this.attachCallbacks.push(callback);\n } else if (type === 'detach') {\n this.detachCallbacks.push(callback);\n } else if (type === 'input') {\n this.inputCallbacks.push(callback);\n }\n }\n\n attach(terminal: ITerminal) {\n this.terminal = terminal;\n this.attachCallbacks.forEach((it) => it(terminal));\n }\n\n detach(terminal: ITerminal) {\n this.detachCallbacks.forEach((it) => it(terminal));\n this.terminal = undefined;\n }\n\n input(str: string | undefined, key: AnyKey) {\n this.inputCallbacks.forEach((it) => it(str, key));\n }\n\n abstract result(): RESULT;\n abstract render(status: 'idle' | 'submitted' | 'aborted'): string;\n fullRender(status: 'idle' | 'submitted' | 'aborted'): string {\n if (this.modifier) {\n return this.modifier(this.render(status), status);\n }\n return this.render(status);\n }\n}\n\nexport class SelectState<T> {\n public selectedIdx = 0;\n constructor(public readonly items: T[]) {}\n\n bind(prompt: Prompt<any>) {\n prompt.on('input', (str, key) => {\n const invalidate = this.consume(str, key);\n if (invalidate) prompt.requestLayout();\n });\n }\n\n private consume(str: string | undefined, key: AnyKey): boolean {\n if (!key) return false;\n\n if (key.name === 'down') {\n this.selectedIdx = (this.selectedIdx + 1) % this.items.length;\n return true;\n }\n\n if (key.name === 'up') {\n this.selectedIdx -= 1;\n this.selectedIdx =\n this.selectedIdx < 0 ? this.items.length - 1 : this.selectedIdx;\n return true;\n }\n\n return false;\n }\n}\n\nexport const deferred = <T>() => {\n let resolve!: (value: T | PromiseLike<T>) => void;\n let reject!: (reason?: any) => void;\n const promise = new Promise<T>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n return {\n resolve,\n reject,\n promise,\n };\n};\n\nexport interface ITerminal {\n toggleCursor(state: 'hide' | 'show'): void;\n requestLayout(): void;\n resolve(value: Prompted<{}>): void;\n setAllowInteraction(value: boolean): void;\n}\n\nexport type AnyKey = {\n sequence: string;\n name: string | undefined;\n ctrl: boolean;\n meta: boolean;\n shift: boolean;\n};\n\ntype Prompted<T> =\n | {\n data: undefined;\n status: 'aborted';\n }\n | {\n data: T;\n status: 'submitted';\n };\n\nexport class Terminal implements ITerminal {\n private text = '';\n private status: 'idle' | 'submitted' | 'aborted' = 'idle';\n private _resolve: (value: Prompted<{}>) => void;\n private promise: Promise<Prompted<{}>>;\n private renderFunc: (str: string) => void;\n\n private allowInteraction = true;\n\n public resolve: (value: Prompted<{}>) => void;\n\n public setAllowInteraction(value: boolean) {\n this.allowInteraction = value;\n }\n\n constructor(\n private readonly view: Prompt<any>,\n private readonly stdin: ReadStream,\n private readonly stdout: WriteStream,\n private readonly closable: Closable,\n ) {\n if (this.stdin.isTTY) setRawModeWindowsFriendly(this.stdin, true);\n\n const keypress = (str: string | undefined, key: AnyKey) => {\n if (key.name === 'c' && key.ctrl === true) {\n this.requestLayout();\n this.view.detach(this);\n this.tearDown(keypress);\n if (terminateHandler) {\n terminateHandler(this.stdin, this.stdout);\n return;\n }\n this.stdout.write(`\\n^C\\n`);\n process.exit(1);\n }\n\n if (this.allowInteraction) {\n if (key.name === 'escape') {\n this.status = 'aborted';\n this.requestLayout();\n this.view.detach(this);\n this.tearDown(keypress);\n this._resolve({ status: 'aborted', data: undefined });\n return;\n }\n\n if (key.name === 'return') {\n this.status = 'submitted';\n this.requestLayout();\n this.view.detach(this);\n this.tearDown(keypress);\n this._resolve({ status: 'submitted', data: this.view.result() });\n return;\n }\n }\n\n view.input(str, key);\n };\n\n this.stdin.on('keypress', keypress);\n this.view.attach(this);\n\n const { resolve, promise } = deferred<Prompted<{}>>();\n this._resolve = resolve;\n\n this.resolve = (value: Prompted<{}>) => {\n this.status = 'submitted';\n this.requestLayout();\n this.view.detach(this);\n this.tearDown(keypress);\n this._resolve(value);\n };\n\n this.promise = promise;\n\n this.renderFunc = throttle((str: string) => {\n this.stdout.write(str);\n });\n }\n\n private tearDown(keypress: (...args: any[]) => void) {\n this.stdout.write(cursor.show);\n this.stdin.removeListener('keypress', keypress);\n if (this.stdin.isTTY) setRawModeWindowsFriendly(this.stdin, false);\n this.closable.close();\n }\n\n result(): Promise<{}> {\n return this.promise;\n }\n\n toggleCursor(state: 'hide' | 'show') {\n if (state === 'hide') {\n this.stdout.write(cursor.hide);\n } else {\n this.stdout.write(cursor.show);\n }\n }\n\n requestLayout() {\n const string = this.view.fullRender(this.status);\n let realString = string;\n if (!realString.endsWith('\\n')) {\n realString += '\\n';\n }\n const realText = this.text.endsWith('\\n') ? this.text : `${this.text}\\n`;\n const clearPrefix = this.text ? clear(realText, this.stdout.columns) : '';\n this.text = realString;\n\n this.renderFunc(`${clearPrefix}${realString}`);\n }\n}\n\nexport function render<T>(view: Prompt<T>): Promise<Prompted<T>>;\nexport function render(view: string): void;\nexport function render(view: any): any {\n const { stdin, stdout, closable } = prepareReadLine();\n if (view instanceof Prompt) {\n const terminal = new Terminal(view, stdin, stdout, closable);\n terminal.requestLayout();\n return terminal.result();\n }\n\n stdout.write(`${view}\\n`);\n closable.close();\n return;\n}\n\nexport class CancelledPromptError extends Error {\n constructor(message?: string) {\n super(message);\n this.name = 'CancelledPromptError';\n }\n}\n\n/**\n * Renders a prompt object and throws if the Prompt was \"cancelled\"\n * If using the standard render function you must check if the result ended in a cancellation before accessing the data.\n * Cancellations are rare so this is more of a future proof for future components\n * where cancelling may make more sense.\n */\nexport async function renderUnwrap<T>(view: Prompt<T>): Promise<T> {\n const { stdin, stdout, closable } = prepareReadLine();\n const terminal = new Terminal(view, stdin, stdout, closable);\n terminal.requestLayout();\n const result = (await terminal.result()) as Prompted<T>;\n if (result.status === 'aborted') {\n throw new CancelledPromptError('Prompt was aborted');\n } else {\n return result.data;\n }\n}\n\nlet terminateHandler:\n | ((stdin: ReadStream, stdout: WriteStream) => void)\n | undefined;\n\nexport function onTerminate(\n callback: (stdin: ReadStream, stdout: WriteStream) => void | undefined,\n) {\n terminateHandler = callback;\n}\n\nexport const prepareReadLine = (): {\n stdin: ReadStream;\n stdout: WriteStream;\n closable: Closable;\n} => {\n const stdin = process.stdin;\n const stdout = process.stdout;\n\n const rl = readline.createInterface({\n input: stdin,\n output: stdout,\n escapeCodeTimeout: 50,\n });\n\n readline.emitKeypressEvents(stdin, rl);\n\n return {\n stdin,\n stdout,\n closable: rl,\n };\n};\n\nconst strip = (str: string) => {\n const pattern = [\n '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n '(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PRZcf-ntqry=><~]))',\n ].join('|');\n\n const RGX = new RegExp(pattern, 'g');\n return typeof str === 'string' ? str.replace(RGX, '') : str;\n};\n\nconst stringWidth = (str: string) => [...strip(str)].length;\n\nexport const clear = function (prompt: string, perLine: number) {\n if (!perLine) return erase.line + cursor.to(0);\n\n let rows = 0;\n const lines = prompt.split(/\\r?\\n/);\n for (let line of lines) {\n rows += 1 + Math.floor(Math.max(stringWidth(line) - 1, 0) / perLine);\n }\n\n return erase.lines(rows);\n};\n"]}
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/ui/lib.ts"],"names":[],"mappings":"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","sourcesContent":["import { ReadStream, WriteStream } from 'tty';\nimport { cursor, erase } from 'sisteransi';\nimport throttle from 'lodash.throttle';\nimport readline from 'readline';\n\nconst isWindows = process.platform === 'win32';\n\n/**\n * Set terminal raw mode on stdin, with a Windows workaround.\n *\n * Raw mode (true):\n * - Input available character-by-character (not line-buffered)\n * - No echo of typed characters\n * - Ctrl+C doesn't send SIGINT (must handle manually)\n * - Required to capture arrow keys and other special keys\n *\n * Normal mode (false):\n * - Input is line-buffered (available after Enter)\n * - Typed characters are echoed\n * - Ctrl+C sends SIGINT as normal\n *\n * Windows workaround: We skip disabling raw mode on Windows because\n * toggling it between prompts causes a race condition that breaks\n * subsequent keypress events. Raw mode is automatically reset when\n * the process exits, so this is safe.\n *\n * See: https://github.com/bombshell-dev/clack/issues/176\n */\nexport function setRawModeWindowsFriendly(input: ReadStream, value: boolean) {\n if (!value && isWindows) return;\n input.setRawMode(value);\n}\n\nexport interface Closable {\n close(): void;\n}\n\nexport type ModifyOutputFn = (\n output: string,\n status?: 'idle' | 'submitted' | 'aborted',\n) => string;\n\nexport abstract class Prompt<RESULT> {\n protected terminal: ITerminal | undefined;\n private attachCallbacks: ((terminal: ITerminal) => void)[] = [];\n private detachCallbacks: ((terminal: ITerminal) => void)[] = [];\n private inputCallbacks: ((str: string | undefined, key: AnyKey) => void)[] =\n [];\n\n public modifier: ModifyOutputFn | undefined = undefined;\n\n requestLayout() {\n if (this.terminal) {\n this.terminal!.requestLayout();\n }\n }\n\n constructor(modifier?: ModifyOutputFn) {\n this.modifier = modifier;\n }\n\n on(type: 'attach', callback: (terminal: ITerminal) => void): void;\n on(type: 'detach', callback: (terminal: ITerminal) => void): void;\n on(\n type: 'input',\n callback: (str: string | undefined, key: AnyKey) => void,\n ): void;\n on(type: 'attach' | 'detach' | 'input', callback: any): void {\n if (type === 'attach') {\n this.attachCallbacks.push(callback);\n } else if (type === 'detach') {\n this.detachCallbacks.push(callback);\n } else if (type === 'input') {\n this.inputCallbacks.push(callback);\n }\n }\n\n attach(terminal: ITerminal) {\n this.terminal = terminal;\n this.attachCallbacks.forEach((it) => it(terminal));\n }\n\n detach(terminal: ITerminal) {\n this.detachCallbacks.forEach((it) => it(terminal));\n this.terminal = undefined;\n }\n\n input(str: string | undefined, key: AnyKey) {\n this.inputCallbacks.forEach((it) => it(str, key));\n }\n\n abstract result(): RESULT;\n abstract render(status: 'idle' | 'submitted' | 'aborted'): string;\n fullRender(status: 'idle' | 'submitted' | 'aborted'): string {\n if (this.modifier) {\n return this.modifier(this.render(status), status);\n }\n return this.render(status);\n }\n}\n\nexport class SelectState<T> {\n public selectedIdx = 0;\n constructor(public readonly items: T[]) {}\n\n bind(prompt: Prompt<any>) {\n prompt.on('input', (str, key) => {\n const invalidate = this.consume(str, key);\n if (invalidate) prompt.requestLayout();\n });\n }\n\n private consume(str: string | undefined, key: AnyKey): boolean {\n if (!key) return false;\n\n if (key.name === 'down') {\n this.selectedIdx = (this.selectedIdx + 1) % this.items.length;\n return true;\n }\n\n if (key.name === 'up') {\n this.selectedIdx -= 1;\n this.selectedIdx =\n this.selectedIdx < 0 ? this.items.length - 1 : this.selectedIdx;\n return true;\n }\n\n return false;\n }\n}\n\nexport const deferred = <T>() => {\n let resolve!: (value: T | PromiseLike<T>) => void;\n let reject!: (reason?: any) => void;\n const promise = new Promise<T>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n return {\n resolve,\n reject,\n promise,\n };\n};\n\nexport interface ITerminal {\n toggleCursor(state: 'hide' | 'show'): void;\n requestLayout(): void;\n resolve(value: Prompted<{}>): void;\n setAllowInteraction(value: boolean): void;\n}\n\nexport type AnyKey = {\n sequence: string;\n name: string | undefined;\n ctrl: boolean;\n meta: boolean;\n shift: boolean;\n};\n\ntype Prompted<T> =\n | {\n data: undefined;\n status: 'aborted';\n }\n | {\n data: T;\n status: 'submitted';\n };\n\nexport class Terminal implements ITerminal {\n private text = '';\n private status: 'idle' | 'submitted' | 'aborted' = 'idle';\n private _resolve: (value: Prompted<{}>) => void;\n private promise: Promise<Prompted<{}>>;\n private renderFunc: (str: string) => void;\n\n private allowInteraction = true;\n\n public resolve: (value: Prompted<{}>) => void;\n\n public setAllowInteraction(value: boolean) {\n this.allowInteraction = value;\n }\n\n constructor(\n private readonly view: Prompt<any>,\n private readonly stdin: ReadStream,\n private readonly stdout: WriteStream,\n private readonly closable: Closable,\n ) {\n if (this.stdin.isTTY) setRawModeWindowsFriendly(this.stdin, true);\n\n const keypress = (str: string | undefined, key: AnyKey) => {\n if (key.name === 'c' && key.ctrl === true) {\n this.requestLayout();\n this.view.detach(this);\n this.tearDown(keypress);\n if (terminateHandler) {\n terminateHandler(this.stdin, this.stdout);\n return;\n }\n this.stdout.write(`\\n^C\\n`);\n process.exit(1);\n }\n\n if (this.allowInteraction) {\n if (key.name === 'escape') {\n this.status = 'aborted';\n this.requestLayout();\n this.view.detach(this);\n this.tearDown(keypress);\n this._resolve({ status: 'aborted', data: undefined });\n return;\n }\n\n if (key.name === 'return') {\n this.status = 'submitted';\n this.requestLayout();\n this.view.detach(this);\n this.tearDown(keypress);\n this._resolve({ status: 'submitted', data: this.view.result() });\n return;\n }\n }\n\n view.input(str, key);\n };\n\n this.stdin.on('keypress', keypress);\n this.view.attach(this);\n\n const { resolve, promise } = deferred<Prompted<{}>>();\n this._resolve = resolve;\n\n this.resolve = (value: Prompted<{}>) => {\n this.status = 'submitted';\n this.requestLayout();\n this.view.detach(this);\n this.tearDown(keypress);\n this._resolve(value);\n };\n\n this.promise = promise;\n\n this.renderFunc = throttle((str: string) => {\n this.stdout.write(str);\n });\n }\n\n private tearDown(keypress: (...args: any[]) => void) {\n this.stdout.write(cursor.show);\n this.stdin.removeListener('keypress', keypress);\n if (this.stdin.isTTY) setRawModeWindowsFriendly(this.stdin, false);\n this.closable.close();\n }\n\n result(): Promise<{}> {\n return this.promise;\n }\n\n toggleCursor(state: 'hide' | 'show') {\n if (state === 'hide') {\n this.stdout.write(cursor.hide);\n } else {\n this.stdout.write(cursor.show);\n }\n }\n\n requestLayout() {\n const string = this.view.fullRender(this.status);\n let realString = string;\n if (!realString.endsWith('\\n')) {\n realString += '\\n';\n }\n const realText = this.text.endsWith('\\n') ? this.text : `${this.text}\\n`;\n const clearPrefix = this.text ? clear(realText, this.stdout.columns) : '';\n this.text = realString;\n\n this.renderFunc(`${clearPrefix}${realString}`);\n }\n}\n\nexport function render<T>(view: Prompt<T>): Promise<Prompted<T>>;\nexport function render(view: string): void;\nexport function render(view: any): any {\n const { stdin, stdout, closable } = prepareReadLine();\n if (view instanceof Prompt) {\n const terminal = new Terminal(view, stdin, stdout, closable);\n terminal.requestLayout();\n return terminal.result();\n }\n\n stdout.write(`${view}\\n`);\n closable.close();\n return;\n}\n\nexport class CancelledPromptError extends Error {\n constructor(message?: string) {\n super(message);\n this.name = 'CancelledPromptError';\n }\n}\n\n/**\n * Renders a prompt object and throws if the Prompt was \"cancelled\"\n * If using the standard render function you must check if the result ended in a cancellation before accessing the data.\n * Cancellations are rare so this is more of a future proof for future components\n * where cancelling may make more sense.\n */\nexport async function renderUnwrap<T>(view: Prompt<T>): Promise<T> {\n const { stdin, stdout, closable } = prepareReadLine();\n const terminal = new Terminal(view, stdin, stdout, closable);\n terminal.requestLayout();\n const result = (await terminal.result()) as Prompted<T>;\n if (result.status === 'aborted') {\n throw new CancelledPromptError('Prompt was aborted');\n } else {\n return result.data;\n }\n}\n\nlet terminateHandler:\n | ((stdin: ReadStream, stdout: WriteStream) => void)\n | undefined;\n\nexport function onTerminate(\n callback: (stdin: ReadStream, stdout: WriteStream) => void | undefined,\n) {\n terminateHandler = callback;\n}\n\nexport const prepareReadLine = (): {\n stdin: ReadStream;\n stdout: WriteStream;\n closable: Closable;\n} => {\n const stdin = process.stdin;\n const stdout = process.stdout;\n\n const rl = readline.createInterface({\n input: stdin,\n escapeCodeTimeout: 50,\n });\n\n readline.emitKeypressEvents(stdin, rl);\n\n return {\n stdin,\n stdout,\n closable: rl,\n };\n};\n\nconst strip = (str: string) => {\n const pattern = [\n '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n '(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PRZcf-ntqry=><~]))',\n ].join('|');\n\n const RGX = new RegExp(pattern, 'g');\n return typeof str === 'string' ? str.replace(RGX, '') : str;\n};\n\nconst stringWidth = (str: string) => [...strip(str)].length;\n\nexport const clear = function (prompt: string, perLine: number) {\n if (!perLine) return erase.line + cursor.to(0);\n\n let rows = 0;\n const lines = prompt.split(/\\r?\\n/);\n for (let line of lines) {\n rows += 1 + Math.floor(Math.max(stringWidth(line) - 1, 0) / perLine);\n }\n\n return erase.lines(rows);\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "instant-cli",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.22.
|
|
4
|
+
"version": "0.22.85",
|
|
5
5
|
"description": "Instant's CLI",
|
|
6
6
|
"homepage": "https://github.com/instantdb/instant/tree/main/client/packages/cli",
|
|
7
7
|
"repository": {
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"strip-ansi": "^7.1.2",
|
|
39
39
|
"terminal-link": "^3.0.0",
|
|
40
40
|
"unconfig": "^0.5.5",
|
|
41
|
-
"@instantdb/platform": "0.22.
|
|
42
|
-
"@instantdb/version": "0.22.
|
|
41
|
+
"@instantdb/platform": "0.22.85",
|
|
42
|
+
"@instantdb/version": "0.22.85"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@babel/core": "^7.17.9",
|