@flowscripter/dynamic-cli-framework 1.7.4 → 1.7.5

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 +1 @@
1
- {"version":3,"file":"BaseCLI.d.ts","sourceRoot":"","sources":["../../../src/cli/BaseCLI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAC;AAIjD,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAC;AAGrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAC;AA4BjD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAGpD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,qBAAqB,MAAM,iCAAiC,CAAC;AAYzE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,YAAW,GAAG;;gBAavC,SAAS,EAAE,SAAS,EACpB,oBAAoB,EAAE,cAAc,EACpC,oBAAoB,EAAE,cAAc,EACpC,aAAa,EAAE,OAAO,EACtB,aAAa,EAAE,OAAO,EACtB,cAAc,EAAE,QAAQ,EACxB,cAAc,EAAE,QAAQ,EACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE,qBAAqB;IA2DjC;;;;;;;OAOG;IACI,kBAAkB,CAAC,eAAe,EAAE,eAAe;IAI1D;;;;;;;;OAQG;IACI,UAAU,CAAC,OAAO,EAAE,OAAO;IAU5B,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;CAwJ3D"}
1
+ {"version":3,"file":"BaseCLI.d.ts","sourceRoot":"","sources":["../../../src/cli/BaseCLI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAC;AAIjD,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAC;AAGrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAC;AA4BjD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAGpD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,qBAAqB,MAAM,iCAAiC,CAAC;AAYzE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,YAAW,GAAG;;gBAavC,SAAS,EAAE,SAAS,EACpB,oBAAoB,EAAE,cAAc,EACpC,oBAAoB,EAAE,cAAc,EACpC,aAAa,EAAE,OAAO,EACtB,aAAa,EAAE,OAAO,EACtB,cAAc,EAAE,QAAQ,EACxB,cAAc,EAAE,QAAQ,EACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE,qBAAqB;IA2DjC;;;;;;;OAOG;IACI,kBAAkB,CAAC,eAAe,EAAE,eAAe;IAI1D;;;;;;;;OAQG;IACI,UAAU,CAAC,OAAO,EAAE,OAAO;IAU5B,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;CAuJ3D"}
@@ -219,7 +219,6 @@ export default class BaseCLI {
219
219
  if (shutdownState.shutdownRequested || error.message === "Interrupted") {
220
220
  return { runState: RunState.INTERRUPTED };
221
221
  }
222
- logger.error("Runtime error: %s", error.message);
223
222
  await printRuntimeError(this.#context, error);
224
223
  return {
225
224
  runState: RunState.RUNTIME_ERROR,
@@ -1 +1 @@
1
- {"version":3,"file":"CompletionServiceProvider.d.ts","sourceRoot":"","sources":["../../../../src/service/completion/CompletionServiceProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAGhD,OAAO,KAAK,wBAAwB,MAAM,+BAA+B,CAAC;AAQ1E,OAAO,KAAK,eAAe,MAAM,2CAA2C,CAAC;AAQ7E,MAAM,CAAC,OAAO,OAAO,yBAA0B,YAAW,eAAe;;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAyB;IACnD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;gBAK/B,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,wBAAwB,EAC3C,eAAe,EAAE,eAAe;IAO3B,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAapD,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAsJ1D"}
1
+ {"version":3,"file":"CompletionServiceProvider.d.ts","sourceRoot":"","sources":["../../../../src/service/completion/CompletionServiceProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAGhD,OAAO,KAAK,wBAAwB,MAAM,+BAA+B,CAAC;AAQ1E,OAAO,KAAK,eAAe,MAAM,2CAA2C,CAAC;AAQ7E,MAAM,CAAC,OAAO,OAAO,yBAA0B,YAAW,eAAe;;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAyB;IACnD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;gBAK/B,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,wBAAwB,EAC3C,eAAe,EAAE,eAAe;IAO3B,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAapD,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAqJ1D"}
@@ -105,7 +105,6 @@ export default class CompletionServiceProvider {
105
105
  await keyValueService.setKey("completion-status", "installed");
106
106
  }
107
107
  catch (error) {
108
- logger.error("Failed to install completion: %s", error.message);
109
108
  if (context.doesServiceExist(PRINTER_SERVICE_ID)) {
110
109
  const printerService = context.getServiceById(PRINTER_SERVICE_ID);
111
110
  await printerService.error(`Failed to install completion: ${error.message}`, Icon.FAILURE);
@@ -1 +1 @@
1
- {"version":3,"file":"ImageRenderer.d.ts","sourceRoot":"","sources":["../../../src/terminal/ImageRenderer.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAG1C,MAAM,CAAC,OAAO,OAAO,aAAa;;gBAGpB,QAAQ,EAAE,QAAQ;IAI9B,WAAW,CACT,WAAW,EAAE,UAAU,EACvB,eAAe,GAAE,MAAY,EAC7B,2BAA2B,CAAC,EAAE,MAAM,GACnC,OAAO,CAAC,MAAM,CAAC;CA4JnB"}
1
+ {"version":3,"file":"ImageRenderer.d.ts","sourceRoot":"","sources":["../../../src/terminal/ImageRenderer.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAG1C,MAAM,CAAC,OAAO,OAAO,aAAa;;gBAGpB,QAAQ,EAAE,QAAQ;IAI9B,WAAW,CACT,WAAW,EAAE,UAAU,EACvB,eAAe,GAAE,MAAY,EAC7B,2BAA2B,CAAC,EAAE,MAAM,GACnC,OAAO,CAAC,MAAM,CAAC;CA8JnB"}
@@ -10,12 +10,14 @@ export default class ImageRenderer {
10
10
  }
11
11
  renderImage(imageBuffer, widthPercentage = 100, hexFormattedBackgroundColor) {
12
12
  if (!this.#isMultiplexer()) {
13
- if (supportsTerminalGraphics.stdout.kitty) {
14
- return this.#renderKitty(imageBuffer, widthPercentage);
15
- }
13
+ // iTerm2 only supports its own proprietary image protocol, not Kitty's, despite
14
+ // supports-terminal-graphics incorrectly reporting kitty:true for iTerm2 3.6+.
16
15
  if (supportsTerminalGraphics.stdout.iterm2) {
17
16
  return this.#renderITerm2(imageBuffer, widthPercentage);
18
17
  }
18
+ if (supportsTerminalGraphics.stdout.kitty) {
19
+ return this.#renderKitty(imageBuffer, widthPercentage);
20
+ }
19
21
  }
20
22
  return this.#renderAnsiBlocks(imageBuffer, widthPercentage, hexFormattedBackgroundColor);
21
23
  }
@@ -40,10 +42,10 @@ export default class ImageRenderer {
40
42
  for (let i = 0; i < chunks.length; i++) {
41
43
  const isLast = i === chunks.length - 1;
42
44
  if (i === 0) {
43
- result += `\x1b_Gf=100,a=T,c=${columns},m=${isLast ? 0 : 1};${chunks[i]}\x1b\\`;
45
+ result += `\x1b_Gf=100,a=T,c=${columns},q=2,m=${isLast ? 0 : 1};${chunks[i]}\x1b\\`;
44
46
  }
45
47
  else {
46
- result += `\x1b_Gm=${isLast ? 0 : 1};${chunks[i]}\x1b\\`;
48
+ result += `\x1b_Gq=2,m=${isLast ? 0 : 1};${chunks[i]}\x1b\\`;
47
49
  }
48
50
  }
49
51
  return result;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowscripter/dynamic-cli-framework",
3
- "version": "1.7.4",
3
+ "version": "1.7.5",
4
4
  "description": "A framework for developing CLI applications which supports dynamic discovery and installation of new commands",
5
5
  "keywords": [
6
6
  "bun",
@@ -331,7 +331,6 @@ export default class BaseCLI implements CLI {
331
331
  if (shutdownState.shutdownRequested || (error as Error).message === "Interrupted") {
332
332
  return { runState: RunState.INTERRUPTED };
333
333
  }
334
- logger.error("Runtime error: %s", (error as Error).message);
335
334
  await printRuntimeError(this.#context, error as Error);
336
335
  return {
337
336
  runState: RunState.RUNTIME_ERROR,
@@ -133,7 +133,6 @@ export default class CompletionServiceProvider implements ServiceProvider {
133
133
  await this.#installCompletion(context, shellType);
134
134
  await keyValueService.setKey("completion-status", "installed");
135
135
  } catch (error) {
136
- logger.error("Failed to install completion: %s", (error as Error).message);
137
136
  if (context.doesServiceExist(PRINTER_SERVICE_ID)) {
138
137
  const printerService = context.getServiceById(PRINTER_SERVICE_ID) as PrinterService;
139
138
  await printerService.error(
@@ -23,12 +23,14 @@ export default class ImageRenderer {
23
23
  hexFormattedBackgroundColor?: string,
24
24
  ): Promise<string> {
25
25
  if (!this.#isMultiplexer()) {
26
- if (supportsTerminalGraphics.stdout.kitty) {
27
- return this.#renderKitty(imageBuffer, widthPercentage);
28
- }
26
+ // iTerm2 only supports its own proprietary image protocol, not Kitty's, despite
27
+ // supports-terminal-graphics incorrectly reporting kitty:true for iTerm2 3.6+.
29
28
  if (supportsTerminalGraphics.stdout.iterm2) {
30
29
  return this.#renderITerm2(imageBuffer, widthPercentage);
31
30
  }
31
+ if (supportsTerminalGraphics.stdout.kitty) {
32
+ return this.#renderKitty(imageBuffer, widthPercentage);
33
+ }
32
34
  }
33
35
  return this.#renderAnsiBlocks(imageBuffer, widthPercentage, hexFormattedBackgroundColor);
34
36
  }
@@ -57,9 +59,9 @@ export default class ImageRenderer {
57
59
  for (let i = 0; i < chunks.length; i++) {
58
60
  const isLast = i === chunks.length - 1;
59
61
  if (i === 0) {
60
- result += `\x1b_Gf=100,a=T,c=${columns},m=${isLast ? 0 : 1};${chunks[i]}\x1b\\`;
62
+ result += `\x1b_Gf=100,a=T,c=${columns},q=2,m=${isLast ? 0 : 1};${chunks[i]}\x1b\\`;
61
63
  } else {
62
- result += `\x1b_Gm=${isLast ? 0 : 1};${chunks[i]}\x1b\\`;
64
+ result += `\x1b_Gq=2,m=${isLast ? 0 : 1};${chunks[i]}\x1b\\`;
63
65
  }
64
66
  }
65
67
  return result;