poe-code 15.0.4 → 15.0.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.
Files changed (88) hide show
  1. package/dist/metafile.json +1 -1
  2. package/package.json +8 -2
  3. package/packages/safe-bash/dist/chunks/chunk-2GV4WO7O.js +136 -0
  4. package/packages/safe-bash/dist/chunks/chunk-2GV4WO7O.js.map +7 -0
  5. package/packages/safe-bash/dist/chunks/chunk-54Z5EUCW.js +340 -0
  6. package/packages/safe-bash/dist/chunks/chunk-54Z5EUCW.js.map +7 -0
  7. package/packages/safe-bash/dist/chunks/{chunk-NYHAKXQ7.js → chunk-6MHYEBAJ.js} +16 -140
  8. package/packages/safe-bash/dist/chunks/chunk-6MHYEBAJ.js.map +7 -0
  9. package/packages/safe-bash/dist/chunks/{chunk-5MSOBYRG.js → chunk-IKATLB4I.js} +5 -3
  10. package/packages/safe-bash/dist/chunks/{chunk-5MSOBYRG.js.map → chunk-IKATLB4I.js.map} +1 -1
  11. package/packages/safe-bash/dist/chunks/{chunk-5OCQTFXT.js → chunk-LUJYX5H5.js} +6 -332
  12. package/packages/safe-bash/dist/chunks/{chunk-5OCQTFXT.js.map → chunk-LUJYX5H5.js.map} +4 -4
  13. package/packages/safe-bash/dist/chunks/chunk-UGMUVHIY.js +1603 -0
  14. package/packages/safe-bash/dist/chunks/chunk-UGMUVHIY.js.map +7 -0
  15. package/packages/safe-bash/dist/commands/network/args.d.ts +3 -0
  16. package/packages/safe-bash/dist/commands/network/args.d.ts.map +1 -1
  17. package/packages/safe-bash/dist/commands/network/args.js +1 -1
  18. package/packages/safe-bash/dist/commands/network/args.js.map +1 -1
  19. package/packages/safe-bash/dist/commands/network/body.js +2 -2
  20. package/packages/safe-bash/dist/commands/network/body.js.map +1 -1
  21. package/packages/safe-bash/dist/commands/network/curl.d.ts +12 -2
  22. package/packages/safe-bash/dist/commands/network/curl.d.ts.map +1 -1
  23. package/packages/safe-bash/dist/commands/network/curl.js +46 -27
  24. package/packages/safe-bash/dist/commands/network/curl.js.map +1 -1
  25. package/packages/safe-bash/dist/commands/network/index.browser.js +29 -0
  26. package/packages/safe-bash/dist/commands/network/index.browser.js.map +7 -0
  27. package/packages/safe-bash/dist/commands/network/index.d.ts +1 -10
  28. package/packages/safe-bash/dist/commands/network/index.d.ts.map +1 -1
  29. package/packages/safe-bash/dist/commands/network/index.js +1 -22
  30. package/packages/safe-bash/dist/commands/network/index.js.map +1 -1
  31. package/packages/safe-bash/dist/commands/network/platform.d.ts +4 -0
  32. package/packages/safe-bash/dist/commands/network/platform.d.ts.map +1 -0
  33. package/packages/safe-bash/dist/commands/network/platform.js +4 -0
  34. package/packages/safe-bash/dist/commands/network/platform.js.map +1 -0
  35. package/packages/safe-bash/dist/commands/network/public.d.ts +12 -0
  36. package/packages/safe-bash/dist/commands/network/public.d.ts.map +1 -0
  37. package/packages/safe-bash/dist/commands/network/public.js +27 -0
  38. package/packages/safe-bash/dist/commands/network/public.js.map +1 -0
  39. package/packages/safe-bash/dist/commands/network/shared.js +1 -1
  40. package/packages/safe-bash/dist/commands/network/shared.js.map +1 -1
  41. package/packages/safe-bash/dist/commands/network/wget.d.ts +4 -0
  42. package/packages/safe-bash/dist/commands/network/wget.d.ts.map +1 -0
  43. package/packages/safe-bash/dist/commands/network/wget.js +155 -0
  44. package/packages/safe-bash/dist/commands/network/wget.js.map +1 -0
  45. package/packages/safe-bash/dist/commands/xml/index.browser.js +3 -2
  46. package/packages/safe-bash/dist/commands/yq/index.browser.js +4 -2
  47. package/packages/safe-bash/dist/core.browser.js +1054 -459
  48. package/packages/safe-bash/dist/core.browser.js.map +4 -4
  49. package/packages/safe-bash/dist/core.d.ts +1 -5
  50. package/packages/safe-bash/dist/core.d.ts.map +1 -1
  51. package/packages/safe-bash/dist/core.js +1 -3
  52. package/packages/safe-bash/dist/core.js.map +1 -1
  53. package/packages/safe-bash/dist/shell/arrays/bindings.d.ts +15 -2
  54. package/packages/safe-bash/dist/shell/arrays/bindings.d.ts.map +1 -1
  55. package/packages/safe-bash/dist/shell/arrays/bindings.js +118 -5
  56. package/packages/safe-bash/dist/shell/arrays/bindings.js.map +1 -1
  57. package/packages/safe-bash/dist/shell/arrays/syntax.d.ts +5 -2
  58. package/packages/safe-bash/dist/shell/arrays/syntax.d.ts.map +1 -1
  59. package/packages/safe-bash/dist/shell/arrays/syntax.js +19 -6
  60. package/packages/safe-bash/dist/shell/arrays/syntax.js.map +1 -1
  61. package/packages/safe-bash/dist/shell/display.d.ts.map +1 -1
  62. package/packages/safe-bash/dist/shell/display.js +5 -1
  63. package/packages/safe-bash/dist/shell/display.js.map +1 -1
  64. package/packages/safe-bash/dist/shell/input.d.ts +10 -0
  65. package/packages/safe-bash/dist/shell/input.d.ts.map +1 -1
  66. package/packages/safe-bash/dist/shell/input.js +110 -0
  67. package/packages/safe-bash/dist/shell/input.js.map +1 -1
  68. package/packages/safe-bash/dist/shell/mapfile.d.ts +29 -0
  69. package/packages/safe-bash/dist/shell/mapfile.d.ts.map +1 -0
  70. package/packages/safe-bash/dist/shell/mapfile.js +134 -0
  71. package/packages/safe-bash/dist/shell/mapfile.js.map +1 -0
  72. package/packages/safe-bash/dist/shell/parameter-transforms.d.ts +12 -0
  73. package/packages/safe-bash/dist/shell/parameter-transforms.d.ts.map +1 -0
  74. package/packages/safe-bash/dist/shell/parameter-transforms.js +166 -0
  75. package/packages/safe-bash/dist/shell/parameter-transforms.js.map +1 -0
  76. package/packages/safe-bash/dist/shell/parser.d.ts +12 -0
  77. package/packages/safe-bash/dist/shell/parser.d.ts.map +1 -1
  78. package/packages/safe-bash/dist/shell/parser.js +75 -14
  79. package/packages/safe-bash/dist/shell/parser.js.map +1 -1
  80. package/packages/safe-bash/dist/shell/runtime.d.ts +7 -3
  81. package/packages/safe-bash/dist/shell/runtime.d.ts.map +1 -1
  82. package/packages/safe-bash/dist/shell/runtime.js +440 -63
  83. package/packages/safe-bash/dist/shell/runtime.js.map +1 -1
  84. package/packages/safe-bash/dist/shell/select-menu.d.ts +6 -0
  85. package/packages/safe-bash/dist/shell/select-menu.d.ts.map +1 -0
  86. package/packages/safe-bash/dist/shell/select-menu.js +103 -0
  87. package/packages/safe-bash/dist/shell/select-menu.js.map +1 -0
  88. package/packages/safe-bash/dist/chunks/chunk-NYHAKXQ7.js.map +0 -7
@@ -0,0 +1,6 @@
1
+ import { type ShellValue, type ValueAllocation } from "../contracts/value.js";
2
+ import { type ByteSink } from "../contracts/index.js";
3
+ import { type StringWork } from "./string-operations.js";
4
+ /** GNU select's column-major menu, with fixed eight-column tab stops. */
5
+ export declare function selectMenu(values: readonly ShellValue[], columns: string | undefined, byteLocale: boolean, sink: ByteSink, work: StringWork, allocation: ValueAllocation): Promise<void>;
6
+ //# sourceMappingURL=select-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-menu.d.ts","sourceRoot":"","sources":["../../src/shell/select-menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC/F,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAE3E,yEAAyE;AACzE,wBAAsB,UAAU,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA0E9L"}
@@ -0,0 +1,103 @@
1
+ import { shellValueBytes } from "../contracts/value.js";
2
+ import { writeText } from "../contracts/index.js";
3
+ import { stringCheckpoint } from "./string-operations.js";
4
+ /** GNU select's column-major menu, with fixed eight-column tab stops. */
5
+ export async function selectMenu(values, columns, byteLocale, sink, work, allocation) {
6
+ allocation.reserve(64 + values.length * 32, 0);
7
+ const items = [];
8
+ let maximum = 0;
9
+ for (const value of values) {
10
+ const bytes = shellValueBytes(value, allocation);
11
+ allocation.reserve(bytes.length * 2 + 64, 0);
12
+ const decoder = new TextDecoder("utf-8", { fatal: true, ignoreBOM: true });
13
+ let text = "";
14
+ for (let offset = 0; offset < bytes.length; offset += 1024) {
15
+ const end = Math.min(offset + 1024, bytes.length);
16
+ const pending = stringCheckpoint(work, end - offset);
17
+ if (pending)
18
+ await pending;
19
+ if (text !== undefined)
20
+ try {
21
+ text += decoder.decode(bytes.subarray(offset, end), { stream: end < bytes.length });
22
+ }
23
+ catch (error) {
24
+ if (!(error instanceof TypeError) || "code" in error && error.code !== "ERR_ENCODING_INVALID_ENCODED_DATA")
25
+ throw error;
26
+ text = undefined;
27
+ }
28
+ }
29
+ let width = 0;
30
+ if (text !== undefined)
31
+ for (const character of text) {
32
+ const pending = stringCheckpoint(work);
33
+ if (pending)
34
+ await pending;
35
+ const point = character.codePointAt(0);
36
+ if (byteLocale && point >= 128) {
37
+ width = 0;
38
+ break;
39
+ }
40
+ if (point < 32 || point === 127) {
41
+ width = bytes.length;
42
+ break;
43
+ }
44
+ if (/[\p{Mn}\p{Me}\p{Cf}]/u.test(character))
45
+ continue;
46
+ width += point >= 0x1100 && (point <= 0x115f || point === 0x2329 || point === 0x232a || point >= 0x2e80 && point <= 0xa4cf && point !== 0x303f || point >= 0xac00 && point <= 0xd7a3 || point >= 0xf900 && point <= 0xfaff || point >= 0xfe10 && point <= 0xfe19 || point >= 0xfe30 && point <= 0xfe6f || point >= 0xff00 && point <= 0xff60 || point >= 0xffe0 && point <= 0xffe6 || point >= 0x1f300 && point <= 0x1faff || point >= 0x20000 && point <= 0x3fffd) ? 2 : 1;
47
+ }
48
+ maximum = Math.max(maximum, byteLocale ? bytes.length : width);
49
+ items.push({ bytes, width });
50
+ }
51
+ let screen = 0;
52
+ if (columns) {
53
+ let started = false;
54
+ for (const character of columns) {
55
+ const pending = stringCheckpoint(work);
56
+ if (pending)
57
+ await pending;
58
+ if (!started && " \t\r\n\v\f".includes(character))
59
+ continue;
60
+ if (!started && character === "+") {
61
+ started = true;
62
+ continue;
63
+ }
64
+ if (character < "0" || character > "9")
65
+ break;
66
+ started = true;
67
+ screen = Math.min(0x7fffffff, screen * 10 + Number(character));
68
+ }
69
+ }
70
+ screen ||= 80;
71
+ const digits = String(values.length).length;
72
+ const cell = maximum + digits + 4;
73
+ let rows = Math.ceil(values.length / Math.max(1, Math.floor(screen / cell)));
74
+ if (rows === 1)
75
+ rows = values.length;
76
+ for (let row = 0; row < rows; row++) {
77
+ let position = 0;
78
+ for (let index = row; index < items.length; index += rows) {
79
+ const pending = stringCheckpoint(work);
80
+ if (pending)
81
+ await pending;
82
+ const item = items[index];
83
+ const indexWidth = position ? digits : String(rows).length;
84
+ await writeText(sink, `${String(index + 1).padStart(indexWidth)}) `);
85
+ await sink.write(item.bytes);
86
+ if (index + rows < items.length) {
87
+ let from = position + indexWidth + 2 + item.width;
88
+ const to = position + cell;
89
+ while (from < to) {
90
+ const pending = stringCheckpoint(work);
91
+ if (pending)
92
+ await pending;
93
+ const tab = Math.floor(to / 8) > Math.floor(from / 8);
94
+ await writeText(sink, tab ? "\t" : " ");
95
+ from += tab ? 8 - from % 8 : 1;
96
+ }
97
+ position += cell;
98
+ }
99
+ }
100
+ await writeText(sink, "\n");
101
+ }
102
+ }
103
+ //# sourceMappingURL=select-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-menu.js","sourceRoot":"","sources":["../../src/shell/select-menu.ts"],"names":[],"mappings":"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"}