instant-cli 0.22.81 → 0.22.82

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.
@@ -1,4 +1,4 @@
1
1
 
2
- > instant-cli@0.22.81 build /home/runner/work/instant/instant/client/packages/cli
2
+ > instant-cli@0.22.82 build /home/runner/work/instant/instant/client/packages/cli
3
3
  > rm -rf dist; tsc -p tsconfig.json
4
4
 
@@ -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":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAK9C,MAAM,WAAW,QAAQ;IACvB,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,MAAM,cAAc,GAAG,CAC3B,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,KACtC,MAAM,CAAC;AAEZ,8BAAsB,MAAM,CAAC,MAAM;IACjC,SAAS,CAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IAC1C,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,eAAe,CAAyC;IAChE,OAAO,CAAC,cAAc,CACjB;IAEE,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAa;IAExD,aAAa;gBAMD,QAAQ,CAAC,EAAE,cAAc;IAIrC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,GAAG,IAAI;IACjE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,GAAG,IAAI;IACjE,EAAE,CACA,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,GACvD,IAAI;IAWP,MAAM,CAAC,QAAQ,EAAE,SAAS;IAK1B,MAAM,CAAC,QAAQ,EAAE,SAAS;IAK1B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM;IAI1C,QAAQ,CAAC,MAAM,IAAI,MAAM;IACzB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM;IACjE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM;CAM7D;AAED,qBAAa,WAAW,CAAC,CAAC;aAEI,KAAK,EAAE,CAAC,EAAE;IAD/B,WAAW,SAAK;gBACK,KAAK,EAAE,CAAC,EAAE;IAEtC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC;IAOxB,OAAO,CAAC,OAAO;CAiBhB;AAED,eAAO,MAAM,QAAQ,GAAI,CAAC;qBACF,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI;sBAC1B,GAAG,KAAK,IAAI;;CAWpC,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3C,aAAa,IAAI,IAAI,CAAC;IACtB,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACnC,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAC3C;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,KAAK,QAAQ,CAAC,CAAC,IACX;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,SAAS,CAAC;CACnB,GACD;IACE,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,WAAW,CAAC;CACrB,CAAC;AAEN,qBAAa,QAAS,YAAW,SAAS;IAgBtC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAlB3B,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,UAAU,CAAwB;IAE1C,OAAO,CAAC,gBAAgB,CAAQ;IAEzB,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IAEvC,mBAAmB,CAAC,KAAK,EAAE,OAAO;gBAKtB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EACjB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,QAAQ;IA6DrC,OAAO,CAAC,QAAQ;IAOhB,MAAM,IAAI,OAAO,CAAC,EAAE,CAAC;IAIrB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAQnC,aAAa;CAYd;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;AAc3C,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,CAAC,EAAE,MAAM;CAI7B;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAUjE;AAMD,wBAAgB,WAAW,CACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,KAAK,IAAI,GAAG,SAAS,QAGvE;AAED,eAAO,MAAM,eAAe,QAAO;IACjC,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;CAkBpB,CAAC;AAcF,eAAO,MAAM,KAAK,GAAa,QAAQ,MAAM,EAAE,SAAS,MAAM,WAU7D,CAAC"}
package/dist/ui/lib.js CHANGED
@@ -231,6 +231,7 @@ export const prepareReadLine = () => {
231
231
  const stdout = process.stdout;
232
232
  const rl = readline.createInterface({
233
233
  input: stdin,
234
+ output: stdout,
234
235
  escapeCodeTimeout: 50,
235
236
  });
236
237
  readline.emitKeypressEvents(stdin, rl);
@@ -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\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) this.stdin.setRawMode(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) this.stdin.setRawMode(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"]}
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\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) this.stdin.setRawMode(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) this.stdin.setRawMode(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"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "instant-cli",
3
3
  "type": "module",
4
- "version": "0.22.81",
4
+ "version": "0.22.82",
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.81",
42
- "@instantdb/version": "0.22.81"
41
+ "@instantdb/platform": "0.22.82",
42
+ "@instantdb/version": "0.22.82"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@babel/core": "^7.17.9",
package/src/ui/lib.ts CHANGED
@@ -314,6 +314,7 @@ export const prepareReadLine = (): {
314
314
 
315
315
  const rl = readline.createInterface({
316
316
  input: stdin,
317
+ output: stdout,
317
318
  escapeCodeTimeout: 50,
318
319
  });
319
320