@poe-platform/safe-bash 0.1.756 → 0.1.757

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 (113) hide show
  1. package/dist/image-ast/index.browser.js +4 -4
  2. package/dist/image-ast/index.js +4 -4
  3. package/dist/safe-bash/chunks/{chunk-LESPJ3OG.js → chunk-WNWIBBJZ.js} +15 -2
  4. package/dist/safe-bash/command-chunks/{chunk-S4J6MSLY.js → chunk-444OTXM7.js} +3 -3
  5. package/dist/safe-bash/command-chunks/{chunk-6AIOGLZO.js → chunk-CE6Z2ULX.js} +2 -2
  6. package/dist/safe-bash/command-chunks/{chunk-5VSGEE6J.js → chunk-F4IQCXZG.js} +5 -5
  7. package/dist/safe-bash/command-chunks/{chunk-F5MORDSU.js → chunk-FDNCPZQS.js} +32 -1
  8. package/dist/safe-bash/command-chunks/{chunk-SG3ZDZCX.js → chunk-FLMLM7Y4.js} +2 -2
  9. package/dist/safe-bash/command-chunks/{chunk-CT3FB722.js → chunk-J7UMKBRK.js} +1 -1
  10. package/dist/safe-bash/command-chunks/{chunk-QQOAK7JQ.js → chunk-KKJCKPTA.js} +1 -1
  11. package/dist/safe-bash/command-chunks/{chunk-7KS6PX4U.js → chunk-KSIGF4AG.js} +3 -3
  12. package/dist/safe-bash/command-chunks/{chunk-4HQ7WYSI.js → chunk-MED2BOOW.js} +30 -5
  13. package/dist/safe-bash/command-chunks/{chunk-JRNLDPLI.js → chunk-OZSWW23M.js} +1 -1
  14. package/dist/safe-bash/command-chunks/{chunk-DKQ5REXF.js → chunk-QDPRSPHQ.js} +1 -1
  15. package/dist/safe-bash/command-chunks/{chunk-WOPU2VWF.js → chunk-RID3B5RE.js} +1 -1
  16. package/dist/safe-bash/command-chunks/{chunk-DVZCHNB5.js → chunk-S4MLIYSN.js} +7 -7
  17. package/dist/safe-bash/command-chunks/{chunk-REYTQLLB.js → chunk-TT2DMDBY.js} +1 -1
  18. package/dist/safe-bash/command-chunks/{chunk-UGX6MXDD.js → chunk-UIIT4ULR.js} +3 -3
  19. package/dist/safe-bash/command-chunks/{chunk-A6NFLWZI.js → chunk-WKPOGTZY.js} +22 -6
  20. package/dist/safe-bash/command-chunks/{chunk-3DOHQQJR.js → chunk-Y64PA6IA.js} +8 -8
  21. package/dist/safe-bash/command-chunks/{chunk-6Z7OS3TZ.js → chunk-ZP5KDHB4.js} +7 -7
  22. package/dist/safe-bash/commands/pandoc/index.d.ts +1 -1
  23. package/dist/safe-bash/commands/pandoc/index.js +5 -3
  24. package/dist/safe-bash/commands/python/index.browser.js +1 -1
  25. package/dist/safe-bash/commands/python/index.js +6 -0
  26. package/dist/safe-bash/commands/python/jspi.js +11 -2
  27. package/dist/safe-bash/core.browser.js +6 -4
  28. package/dist/safe-bash-command-csvkit/index.js +8 -8
  29. package/dist/safe-bash-command-soffice/index.js +16 -16
  30. package/dist/safe-bash-command-ssconvert/core.js +8 -8
  31. package/dist/safe-bash-command-ssconvert/formats/csv.js +9 -9
  32. package/dist/safe-bash-command-ssconvert/formats/ods.js +8 -8
  33. package/dist/safe-bash-command-ssconvert/formats/spreadsheetml.js +1 -1
  34. package/dist/safe-bash-command-ssconvert/formats/xls.js +9 -8
  35. package/dist/safe-bash-command-ssconvert/formats/xlsx.js +8 -8
  36. package/dist/safe-bash-command-ssconvert/index.js +107 -27
  37. package/dist/safe-bash-contracts/filesystem-descriptor.js +1 -1
  38. package/dist/safe-bash-contracts/filesystem-output.js +1 -1
  39. package/dist/safe-bash-mcp/index.js +4 -4
  40. package/dist/spreadsheet-engine/formulas/ast.d.ts +13 -0
  41. package/dist/spreadsheet-engine/formulas/conventions.js +1 -1
  42. package/dist/spreadsheet-engine/formulas/dependencies.js +2 -2
  43. package/dist/spreadsheet-engine/formulas/evaluator.js +2 -2
  44. package/dist/spreadsheet-engine/formulas/named-expressions.d.ts +2 -2
  45. package/dist/spreadsheet-engine/formulas/named-expressions.js +31 -5
  46. package/dist/spreadsheet-engine/formulas/parser.js +34 -0
  47. package/dist/spreadsheet-engine/formulas/rewriting.js +19 -1
  48. package/dist/spreadsheet-engine/formulas/serialization.js +6 -0
  49. package/dist/spreadsheet-format-xls/biff-write-formulas.js +2 -0
  50. package/dist/xlsx-ast/formula-semantics.js +2 -0
  51. package/package.json +2 -2
  52. package/dist/safe-bash/chunks/browser-ECQX6GMK.js +0 -6766
  53. package/dist/safe-bash/chunks/bz2-4OP3OWW3.js +0 -8
  54. package/dist/safe-bash/chunks/chunk-22XPAAOI.js +0 -173
  55. package/dist/safe-bash/chunks/chunk-44WUNUPV.js +0 -649
  56. package/dist/safe-bash/chunks/chunk-4E3SGG37.js +0 -876
  57. package/dist/safe-bash/chunks/chunk-4QTSSQKP.js +0 -898
  58. package/dist/safe-bash/chunks/chunk-5UVGPVXP.js +0 -410
  59. package/dist/safe-bash/chunks/chunk-64OE6Q6X.js +0 -3487
  60. package/dist/safe-bash/chunks/chunk-6IIFUPN2.js +0 -1526
  61. package/dist/safe-bash/chunks/chunk-BENDLTQD.js +0 -7065
  62. package/dist/safe-bash/chunks/chunk-BMO5LWEX.js +0 -534
  63. package/dist/safe-bash/chunks/chunk-BPMCPTNP.js +0 -1920
  64. package/dist/safe-bash/chunks/chunk-BRJTAWP5.js +0 -2955
  65. package/dist/safe-bash/chunks/chunk-C3GEIN7Q.js +0 -20054
  66. package/dist/safe-bash/chunks/chunk-CBVANNKK.js +0 -174814
  67. package/dist/safe-bash/chunks/chunk-CEWCRI6H.js +0 -2813
  68. package/dist/safe-bash/chunks/chunk-CGL53DQQ.js +0 -37
  69. package/dist/safe-bash/chunks/chunk-CTYJJD4O.js +0 -869
  70. package/dist/safe-bash/chunks/chunk-CWSS4MQA.js +0 -7
  71. package/dist/safe-bash/chunks/chunk-DLIGMTCP.js +0 -3266
  72. package/dist/safe-bash/chunks/chunk-EMAJ7WUW.js +0 -1031
  73. package/dist/safe-bash/chunks/chunk-FDKIZ2IJ.js +0 -1950
  74. package/dist/safe-bash/chunks/chunk-FZWJ2A7V.js +0 -3093
  75. package/dist/safe-bash/chunks/chunk-G2VCIF2J.js +0 -22
  76. package/dist/safe-bash/chunks/chunk-GVKBUQDX.js +0 -2649
  77. package/dist/safe-bash/chunks/chunk-IO2OGW3E.js +0 -28051
  78. package/dist/safe-bash/chunks/chunk-ISCZG7WA.js +0 -2648
  79. package/dist/safe-bash/chunks/chunk-JCN3FXLP.js +0 -38983
  80. package/dist/safe-bash/chunks/chunk-KJHDD4A2.js +0 -759
  81. package/dist/safe-bash/chunks/chunk-LB6HVRXS.js +0 -857
  82. package/dist/safe-bash/chunks/chunk-LLWAJOZH.js +0 -15
  83. package/dist/safe-bash/chunks/chunk-LMUKYZIJ.js +0 -708
  84. package/dist/safe-bash/chunks/chunk-M5SCNKIK.js +0 -2012
  85. package/dist/safe-bash/chunks/chunk-MJPFHANT.js +0 -3350
  86. package/dist/safe-bash/chunks/chunk-MZQW2DOL.js +0 -82
  87. package/dist/safe-bash/chunks/chunk-NB2V7EOY.js +0 -1348
  88. package/dist/safe-bash/chunks/chunk-NJVGOIYN.js +0 -17
  89. package/dist/safe-bash/chunks/chunk-OLNZHDIQ.js +0 -5141
  90. package/dist/safe-bash/chunks/chunk-OSUXMC43.js +0 -2317
  91. package/dist/safe-bash/chunks/chunk-OUUVROTM.js +0 -38
  92. package/dist/safe-bash/chunks/chunk-PA6GYKBQ.js +0 -151
  93. package/dist/safe-bash/chunks/chunk-PEFHZ226.js +0 -6957
  94. package/dist/safe-bash/chunks/chunk-QBB5P5KW.js +0 -4839
  95. package/dist/safe-bash/chunks/chunk-RSAWYAEH.js +0 -973
  96. package/dist/safe-bash/chunks/chunk-UWLYRWT4.js +0 -739
  97. package/dist/safe-bash/chunks/chunk-V463NBQH.js +0 -13
  98. package/dist/safe-bash/chunks/chunk-WPUALYUS.js +0 -843
  99. package/dist/safe-bash/chunks/chunk-XHKFSRGU.js +0 -5747
  100. package/dist/safe-bash/chunks/chunk-XHRCLZ3N.js +0 -13391
  101. package/dist/safe-bash/chunks/chunk-XPF5XHLY.js +0 -15
  102. package/dist/safe-bash/chunks/chunk-ZBFOWARG.js +0 -305
  103. package/dist/safe-bash/chunks/chunk-ZG7GWQ5P.js +0 -1859
  104. package/dist/safe-bash/chunks/model-store-EIY3ZQLZ.js +0 -10
  105. package/dist/safe-bash/chunks/pdf-renderer-CMF3CSVU.js +0 -22
  106. package/dist/safe-bash/chunks/pptx-ZL6L7KP2-O425BFIU.js +0 -30658
  107. package/dist/safe-bash/chunks/src-HHEPGR7U.js +0 -18969
  108. package/dist/safe-bash/chunks/src-MXIKQCIC.js +0 -187
  109. package/dist/safe-bash/chunks/usage-6TGVA2OM.js +0 -35
  110. package/dist/safe-bash/chunks/xz-EGQGQUEI.js +0 -8
  111. package/dist/safe-bash/chunks/xz-K2E2WLM6.js +0 -9
  112. package/dist/safe-bash/chunks/zstd-6JBLP5EF.js +0 -8
  113. package/dist/safe-bash/git_rust-C3QYOAZL.wasm +0 -0
@@ -1,2955 +0,0 @@
1
- import {
2
- builtInDirectContextExecutors
3
- } from "./chunk-ISCZG7WA.js";
4
- import {
5
- init_platform
6
- } from "./chunk-ZG7GWQ5P.js";
7
-
8
- // packages/safe-bash/src/commands/iconv/index.ts
9
- init_platform();
10
-
11
- // packages/safe-bash-command-iconv/src/index.ts
12
- init_platform();
13
-
14
- // packages/safe-bash-command-iconv/src/command.ts
15
- init_platform();
16
- import { FsError as FsError2, resolvePath as resolvePath2 } from "../../safe-bash-contracts/index.js";
17
- import { openFileOutput } from "../../safe-bash-contracts/filesystem-output.js";
18
- import { createOutputOperation } from "../../safe-bash-contracts/output.js";
19
- import { outputFailure } from "../../safe-bash-contracts/io.js";
20
-
21
- // packages/safe-bash-command-iconv/src/internal.ts
22
- init_platform();
23
- import { getCommandArguments } from "../../safe-bash-contracts/index.js";
24
- import { shellValueByteLength, shellValueBytes } from "../../safe-bash-contracts/value.js";
25
- import { hasYieldCheckpoint, monotonicNow, runYieldCheckpoint, yieldTurn } from "../../safe-bash-contracts/yield.js";
26
- import { PublicDiagnostic } from "../../safe-bash-contracts/diagnostics.js";
27
- function settings(options) {
28
- const limits = {
29
- maxArguments: Infinity,
30
- maxArgumentBytes: Infinity,
31
- maxInputBytes: Infinity,
32
- maxBufferedBytes: Infinity,
33
- maxOutputBytes: Infinity,
34
- maxDiagnosticBytes: Infinity,
35
- maxWork: Infinity,
36
- maxChunks: Infinity,
37
- maxEmptyChunks: Infinity,
38
- ...options.limits
39
- };
40
- for (const [name, value] of Object.entries(options.limits ?? {})) {
41
- if (value !== Infinity && (!Number.isSafeInteger(value) || value < 1)) throw new RangeError(`Invalid iconv limit: ${name}`);
42
- }
43
- return Object.freeze(limits);
44
- }
45
- var IconvError = class extends PublicDiagnostic {
46
- constructor(message, status = 1) {
47
- super(message);
48
- this.status = status;
49
- }
50
- status;
51
- };
52
- function raw(value) {
53
- let result = "";
54
- for (let offset = 0; offset < value.length; offset += 4096) result += String.fromCharCode(...value.subarray(offset, offset + 4096));
55
- return result;
56
- }
57
- function pathText(value) {
58
- try {
59
- return new TextDecoder("utf-8", { fatal: true, ignoreBOM: true }).decode(Uint8Array.from(value, (character) => character.charCodeAt(0)));
60
- } catch {
61
- throw new IconvError("filesystem paths must be valid UTF-8");
62
- }
63
- }
64
- var Budget = class {
65
- constructor(context, limits, signal, callerSignal, admission) {
66
- this.context = context;
67
- this.limits = limits;
68
- this.signal = signal;
69
- this.callerSignal = callerSignal;
70
- this.admission = admission;
71
- this.signalAborted = signal.aborted;
72
- this.pollSignal = Object.prototype.hasOwnProperty.call(signal, "aborted");
73
- if (!this.signalAborted && !this.pollSignal) {
74
- signal.addEventListener("abort", () => {
75
- this.signalAborted = true;
76
- }, { once: true });
77
- }
78
- }
79
- context;
80
- limits;
81
- signal;
82
- callerSignal;
83
- admission;
84
- work = 0;
85
- checkpoint = 0;
86
- checkpointCount = 0;
87
- lastYield = monotonicNow();
88
- retained = 0;
89
- input = 0;
90
- output = 0;
91
- diagnostics = 0;
92
- chunks = 0;
93
- empties = 0;
94
- signalAborted;
95
- pollSignal;
96
- assertOpen() {
97
- if (this.pollSignal ? this.signal.aborted : this.signalAborted) this.signal.throwIfAborted();
98
- if (this.admission.closed) throw new IconvError("command is closed");
99
- }
100
- check(value, maximum, label) {
101
- if (value > maximum || value < 0 || (value | 0) !== value && !Number.isSafeInteger(value)) throw new IconvError(`${label} limit exceeded`);
102
- }
103
- charge(amount = 1) {
104
- this.assertOpen();
105
- this.check(this.work + amount, this.limits.maxWork, "work");
106
- this.work += amount;
107
- }
108
- checkpointWork() {
109
- this.assertOpen();
110
- if (this.work - this.checkpoint < 4096) return;
111
- this.checkpoint = this.work;
112
- const count = ++this.checkpointCount;
113
- const now = monotonicNow();
114
- if (count === 1 || now - this.lastYield >= 16 || hasYieldCheckpoint(this.callerSignal)) {
115
- this.lastYield = now;
116
- return yieldTurn(this.callerSignal).then(() => {
117
- this.lastYield = monotonicNow();
118
- this.assertOpen();
119
- });
120
- }
121
- runYieldCheckpoint(this.callerSignal);
122
- this.assertOpen();
123
- }
124
- retain(amount) {
125
- this.check(this.retained + amount, this.limits.maxBufferedBytes, "buffered bytes");
126
- this.retained += amount;
127
- }
128
- snapshotMaximum() {
129
- return Math.min(this.limits.maxInputBytes - this.input, Math.floor((this.limits.maxBufferedBytes - this.retained) / 2));
130
- }
131
- inputBytes(amount) {
132
- this.check(this.input + amount, this.limits.maxInputBytes, "input bytes");
133
- this.input += amount;
134
- this.check(++this.chunks, this.limits.maxChunks, "input chunks");
135
- if (!amount) this.check(++this.empties, this.limits.maxEmptyChunks, "empty input chunks");
136
- this.charge(amount + 1);
137
- }
138
- emitted(amount, diagnostic) {
139
- if (diagnostic) {
140
- this.check(this.diagnostics + amount, this.limits.maxDiagnosticBytes, "diagnostic bytes");
141
- this.diagnostics += amount;
142
- } else {
143
- this.check(this.output + amount, this.limits.maxOutputBytes, "output bytes");
144
- this.charge(amount);
145
- this.output += amount;
146
- }
147
- }
148
- arguments() {
149
- this.assertOpen();
150
- const args = this.context.args;
151
- this.assertOpen();
152
- const count = args.length;
153
- this.assertOpen();
154
- this.check(count, this.limits.maxArguments, "argument count");
155
- const argumentValues = this.context.argumentValues;
156
- this.assertOpen();
157
- const carrier = argumentValues === void 0 ? void 0 : getCommandArguments({ args, argumentValues });
158
- this.assertOpen();
159
- this.retain(count * 64 + 128);
160
- const snapshot = [];
161
- let units = 0, total = 0;
162
- for (let index = 0; index < count; index++) {
163
- const argument = args[index];
164
- this.assertOpen();
165
- if (typeof argument !== "string") throw new IconvError("arguments must be strings");
166
- units += argument.length;
167
- this.check(units, this.limits.maxArgumentBytes, "argument bytes");
168
- this.charge(argument.length + 1);
169
- for (let offset = 0; offset < argument.length; offset++) {
170
- const unit = argument.charCodeAt(offset);
171
- if (unit >= 55296 && unit <= 56319) {
172
- const next = argument.charCodeAt(++offset);
173
- if (!(next >= 56320 && next <= 57343)) throw new IconvError("arguments must contain well-formed Unicode");
174
- } else if (unit >= 56320 && unit <= 57343) throw new IconvError("arguments must contain well-formed Unicode");
175
- }
176
- const size = shellValueByteLength(carrier ? carrier.values[index] : argument);
177
- total += size;
178
- this.check(total, this.limits.maxArgumentBytes, "argument bytes");
179
- this.charge(size);
180
- this.retain(size * 8);
181
- snapshot.push(argument);
182
- }
183
- return (carrier ?? getCommandArguments({ args: snapshot })).values.map((argument) => {
184
- this.charge(shellValueByteLength(argument));
185
- const value = shellValueBytes(argument);
186
- if (value.includes(0)) throw new IconvError("NUL is not supported in arguments");
187
- return raw(value);
188
- });
189
- }
190
- };
191
-
192
- // packages/safe-bash-command-iconv/src/lifecycle.ts
193
- init_platform();
194
- var Lifecycle = class {
195
- constructor(budget, output, stdout) {
196
- this.budget = budget;
197
- this.stdout = stdout;
198
- output.registerCleanup(() => this.close());
199
- }
200
- budget;
201
- stdout;
202
- pending = /* @__PURE__ */ new Set();
203
- cleanups = /* @__PURE__ */ new Set();
204
- closing;
205
- diagnosticDestination;
206
- diagnosticCancellation;
207
- cleanup(action) {
208
- this.assertOpen();
209
- this.cleanups.add(action);
210
- }
211
- forget(action) {
212
- this.cleanups.delete(action);
213
- }
214
- assertOpen() {
215
- this.budget.assertOpen();
216
- if (this.closing) throw new IconvError("command is closed");
217
- }
218
- assertDiagnosticOpen() {
219
- this.budget.callerSignal.throwIfAborted();
220
- const consumer = this.diagnosticDestination?.consumer;
221
- if (consumer?.aborted) {
222
- this.diagnosticCancellation = { reason: consumer.reason };
223
- consumer.throwIfAborted();
224
- }
225
- }
226
- async operation(action, diagnostic = false) {
227
- if (diagnostic) this.assertDiagnosticOpen();
228
- else this.assertOpen();
229
- if (this.closing || this.budget.admission.closed) throw new IconvError("command is closed");
230
- if (!diagnostic) this.budget.charge();
231
- const pending = Promise.resolve().then(() => {
232
- if (diagnostic) this.assertDiagnosticOpen();
233
- else this.assertOpen();
234
- return action();
235
- });
236
- this.pending.add(pending);
237
- try {
238
- const value = await pending;
239
- if (diagnostic) this.assertDiagnosticOpen();
240
- else this.assertOpen();
241
- return value;
242
- } finally {
243
- this.pending.delete(pending);
244
- }
245
- }
246
- close() {
247
- return this.closing ??= Promise.resolve().then(async () => {
248
- while (this.pending.size) await Promise.allSettled([...this.pending]);
249
- const failures = [];
250
- for (const cleanup of this.cleanups) {
251
- try {
252
- await cleanup();
253
- } catch (error) {
254
- failures.push(error);
255
- }
256
- }
257
- if (failures.length === 1) throw failures[0];
258
- if (failures.length > 1) throw new AggregateError(failures, "iconv cleanup failed");
259
- });
260
- }
261
- async write(value, diagnostic = false) {
262
- this.budget.emitted(value.length, diagnostic);
263
- await this.operation(async () => {
264
- let destination;
265
- if (diagnostic) {
266
- if (!this.diagnosticDestination) {
267
- const sink = this.budget.context.stderr;
268
- this.assertDiagnosticOpen();
269
- const capability = sink.ownedOutput;
270
- this.assertDiagnosticOpen();
271
- const consumer = capability?.consumerClosed;
272
- this.diagnosticDestination = { destination: capability ?? sink, consumer };
273
- }
274
- this.assertDiagnosticOpen();
275
- destination = this.diagnosticDestination.destination;
276
- } else {
277
- destination = this.stdout;
278
- this.assertOpen();
279
- }
280
- const write = destination.write;
281
- if (diagnostic) this.assertDiagnosticOpen();
282
- else this.assertOpen();
283
- await Reflect.apply(write, destination, [value]);
284
- }, diagnostic);
285
- }
286
- async diagnostic(message) {
287
- this.budget.check(message.length * 3 + 8, this.budget.limits.maxDiagnosticBytes, "diagnostic bytes");
288
- await this.write(new TextEncoder().encode(`iconv: ${message}
289
- `), true);
290
- }
291
- };
292
-
293
- // packages/safe-bash-command-iconv/src/reader.ts
294
- init_platform();
295
- import { FsError, resolvePath } from "../../safe-bash-contracts/index.js";
296
- var typedArrayPrototype = Object.getPrototypeOf(Uint8Array.prototype);
297
- var viewBuffer = Object.getOwnPropertyDescriptor(typedArrayPrototype, "buffer").get;
298
- var viewOffset = Object.getOwnPropertyDescriptor(typedArrayPrototype, "byteOffset").get;
299
- var viewLength = Object.getOwnPropertyDescriptor(typedArrayPrototype, "byteLength").get;
300
- var Reader = class {
301
- constructor(name, lifecycle) {
302
- this.name = name;
303
- this.lifecycle = lifecycle;
304
- lifecycle.budget.retain(256);
305
- lifecycle.cleanup(this.close);
306
- }
307
- name;
308
- lifecycle;
309
- iterator;
310
- ended = false;
311
- retained = 0;
312
- closed;
313
- chunks = [];
314
- content;
315
- readError;
316
- stage = "open";
317
- close = () => this.closed ??= Promise.resolve().then(async () => {
318
- try {
319
- if (!this.ended) await this.iterator?.return?.();
320
- } finally {
321
- this.iterator = void 0;
322
- this.content = void 0;
323
- this.chunks.length = 0;
324
- this.lifecycle.budget.retain(-this.retained - 256);
325
- this.retained = 0;
326
- this.lifecycle.forget(this.close);
327
- }
328
- });
329
- copy(value) {
330
- if (!(value instanceof Uint8Array)) throw new TypeError("iconv input requires bytes");
331
- const buffer = viewBuffer.call(value);
332
- const offset = viewOffset.call(value);
333
- const size = viewLength.call(value);
334
- this.lifecycle.assertOpen();
335
- this.lifecycle.budget.inputBytes(size);
336
- this.lifecycle.budget.retain(size);
337
- try {
338
- const copy = new Uint8Array(new Uint8Array(buffer, offset, size));
339
- this.retained += size;
340
- return copy;
341
- } catch (error) {
342
- this.lifecycle.budget.retain(-size);
343
- throw error;
344
- }
345
- }
346
- async open() {
347
- const { budget } = this.lifecycle;
348
- await this.lifecycle.operation(async () => {
349
- let source;
350
- let needsAcquisitionCleanup = false;
351
- if (this.name === "-") {
352
- source = budget.context.stdin;
353
- this.stage = "read";
354
- } else {
355
- if (this.name === "") throw new FsError("ENOENT", { path: "" });
356
- const cwd = budget.context.cwd;
357
- this.lifecycle.assertOpen();
358
- const path = resolvePath(cwd, pathText(this.name));
359
- const fs = budget.context.fs;
360
- this.lifecycle.assertOpen();
361
- const statMethod = fs.stat;
362
- this.lifecycle.assertOpen();
363
- const stat = await Reflect.apply(statMethod, fs, [path, { signal: budget.signal }]);
364
- this.lifecycle.assertOpen();
365
- const type = stat.type;
366
- this.lifecycle.assertOpen();
367
- if (this.name.endsWith("/") && type !== "directory") throw new FsError("ENOTDIR", { path });
368
- this.stage = "read";
369
- if (type === "directory") {
370
- this.readError = new FsError("EISDIR", { path });
371
- return;
372
- }
373
- if (type !== "file" && type !== "character") throw new FsError("ENOTSUP", { path });
374
- const capabilitiesFor = fs.capabilitiesFor;
375
- this.lifecycle.assertOpen();
376
- const selected = capabilitiesFor ? await Reflect.apply(capabilitiesFor, fs, [path, { signal: budget.signal }]) : void 0;
377
- this.lifecycle.assertOpen();
378
- const capabilities = selected ?? fs.capabilities;
379
- this.lifecycle.assertOpen();
380
- const streamingRead = capabilities.streamingRead;
381
- this.lifecycle.assertOpen();
382
- const readStream = fs.readStream;
383
- this.lifecycle.assertOpen();
384
- if (readStream && streamingRead !== false) {
385
- source = Reflect.apply(readStream, fs, [path, { signal: budget.signal, chunkSize: 16384 }]);
386
- needsAcquisitionCleanup = budget.signal.aborted || budget.admission.closed;
387
- } else {
388
- const maximum = budget.snapshotMaximum();
389
- const size = stat.size;
390
- this.lifecycle.assertOpen();
391
- budget.check(size, maximum, "buffered input bytes");
392
- budget.retain(Number.isFinite(maximum) ? maximum : size);
393
- try {
394
- const readFile = fs.readFile;
395
- this.lifecycle.assertOpen();
396
- const content = await Reflect.apply(readFile, fs, [path, { signal: budget.signal, ...Number.isFinite(maximum) ? { maxBytes: maximum } : {} }]);
397
- this.lifecycle.assertOpen();
398
- if (!(content instanceof Uint8Array)) throw new TypeError("iconv input requires bytes");
399
- const length = viewLength.call(content);
400
- this.lifecycle.assertOpen();
401
- budget.check(length, maximum, "buffered input bytes");
402
- this.content = this.copy(content);
403
- this.ended = true;
404
- } finally {
405
- budget.retain(-(Number.isFinite(maximum) ? maximum : size));
406
- }
407
- return;
408
- }
409
- }
410
- if (!needsAcquisitionCleanup) this.lifecycle.assertOpen();
411
- const factory = source[Symbol.asyncIterator];
412
- if (!needsAcquisitionCleanup) this.lifecycle.assertOpen();
413
- this.iterator = Reflect.apply(factory, source, []);
414
- });
415
- }
416
- async all() {
417
- if (this.readError) throw this.readError;
418
- if (this.content) return this.content;
419
- const { budget } = this.lifecycle;
420
- let length = 0;
421
- while (!this.ended) {
422
- const result = await this.lifecycle.operation(() => {
423
- const iterator = this.iterator;
424
- const next = iterator.next;
425
- this.lifecycle.assertOpen();
426
- return Reflect.apply(next, iterator, []);
427
- });
428
- const done = result.done;
429
- this.lifecycle.assertOpen();
430
- if (done) {
431
- this.ended = true;
432
- this.iterator = void 0;
433
- break;
434
- }
435
- const value = result.value;
436
- this.lifecycle.assertOpen();
437
- const owned = this.copy(value);
438
- budget.retain(64);
439
- this.retained += 64;
440
- this.chunks.push(owned);
441
- length += owned.length;
442
- {
443
- const cp = budget.checkpointWork();
444
- if (cp) await cp;
445
- }
446
- }
447
- budget.retain(length);
448
- this.retained += length;
449
- const content = new Uint8Array(length);
450
- let offset = 0;
451
- for (const chunk of this.chunks) {
452
- content.set(chunk, offset);
453
- offset += chunk.length;
454
- budget.charge(chunk.length + 1);
455
- {
456
- const cp = budget.checkpointWork();
457
- if (cp) await cp;
458
- }
459
- }
460
- budget.retain(-length - this.chunks.length * 64);
461
- this.retained -= length + this.chunks.length * 64;
462
- this.chunks.length = 0;
463
- this.content = content;
464
- return content;
465
- }
466
- };
467
- function fsDetail(error) {
468
- const details = {
469
- EACCES: "Permission denied",
470
- EPERM: "Operation not permitted",
471
- ENOENT: "No such file or directory",
472
- EISDIR: "Is a directory",
473
- ENOTDIR: "Not a directory",
474
- EIO: "Input/output error",
475
- ELOOP: "Too many levels of symbolic links",
476
- ENAMETOOLONG: "File name too long",
477
- ENOTSUP: "Operation not supported"
478
- };
479
- return details[error.code] ?? error.message;
480
- }
481
-
482
- // packages/safe-bash-command-iconv/src/options.ts
483
- init_platform();
484
- var aliases = {
485
- ASCII: "ascii",
486
- "US-ASCII": "ascii",
487
- "ANSI_X3.4-1968": "ascii",
488
- LATIN1: "latin1",
489
- "LATIN-1": "latin1",
490
- "ISO-8859-1": "latin1",
491
- "ISO8859-1": "latin1",
492
- UTF8: "utf8",
493
- "UTF-8": "utf8",
494
- UTF16: "utf16",
495
- "UTF-16": "utf16",
496
- UTF16LE: "utf16le",
497
- "UTF-16LE": "utf16le",
498
- UTF16BE: "utf16be",
499
- "UTF-16BE": "utf16be"
500
- };
501
- function encoding(value) {
502
- const key = value.toUpperCase();
503
- if (key.includes("//")) throw new IconvError(`unsupported encoding suffix: ${value}`);
504
- const result = Object.hasOwn(aliases, key) ? aliases[key] : void 0;
505
- if (!result) throw new IconvError(`unsupported encoding: ${value}`);
506
- return result;
507
- }
508
- var usage = "Usage: iconv [-lcs?V] [-f NAME] [-t NAME] [-o FILE] [--from-code=NAME]\n [--to-code=NAME] [--list] [--output=FILE] [--silent] [--verbose]\n [--help] [--usage] [--version] [FILE...]\n";
509
- var information = {
510
- l: Object.keys(aliases).sort().map((name) => `${name}//
511
- `).join(""),
512
- "?": usage + "Convert text using the safe-bash bounded encoding engine.\n -f, --from-code=NAME input encoding\n -t, --to-code=NAME output encoding\n -l, --list list supported encodings and aliases\n -c omit invalid characters\n -o, --output=FILE virtual output file (- for stdout)\n -s, --silent suppress warnings\n --verbose report input operands\n -?, --help show help\n --usage show usage\n -V, --version show engine identity\n",
513
- V: "iconv (safe-bash bounded encoding engine)\n"
514
- };
515
- function parse(budget) {
516
- const args = budget.arguments();
517
- let from, to, output, discard = false, ended = false;
518
- let verbose = false;
519
- const files = [];
520
- for (let index = 0; index < args.length; index++) {
521
- const argument = args[index];
522
- budget.charge(argument.length + 1);
523
- if (ended || argument === "-" || !argument.startsWith("-")) {
524
- files.push(argument);
525
- continue;
526
- }
527
- if (argument === "--") {
528
- ended = true;
529
- continue;
530
- }
531
- if (argument === "--list") return { information: information.l };
532
- if (argument === "--help") return { information: information["?"] };
533
- if (argument === "--version") return { information: information.V };
534
- if (argument === "--usage") return { information: usage };
535
- if (argument === "--silent") continue;
536
- if (argument === "--verbose") {
537
- verbose = true;
538
- continue;
539
- }
540
- if (argument.startsWith("--")) {
541
- const equals = argument.indexOf("=");
542
- const option = equals < 0 ? argument : argument.slice(0, equals);
543
- if (option !== "--from-code" && option !== "--to-code" && option !== "--output") throw new IconvError(`unsupported option: ${argument}`, 64);
544
- const value = equals < 0 ? args[++index] : argument.slice(equals + 1);
545
- if (value === void 0) throw new IconvError(`option '${option}' requires an argument`, 64);
546
- if (option === "--from-code") from = value;
547
- else if (option === "--to-code") to = value;
548
- else output = value;
549
- continue;
550
- }
551
- for (let offset = 1; offset < argument.length; offset++) {
552
- const flag = argument[offset];
553
- if (Object.hasOwn(information, flag)) return { information: information[flag] };
554
- if (flag === "c") {
555
- discard = true;
556
- continue;
557
- }
558
- if (flag === "s") continue;
559
- if (flag !== "f" && flag !== "t" && flag !== "o") throw new IconvError(`invalid option -- '${flag}'`, 64);
560
- const value = argument.slice(offset + 1) || args[++index];
561
- if (value === void 0) throw new IconvError(`option requires an argument -- '${flag}'`, 64);
562
- if (flag === "f") from = value;
563
- else if (flag === "t") to = value;
564
- else output = value;
565
- break;
566
- }
567
- }
568
- let transliterate = false;
569
- if (to !== void 0) {
570
- const [name, ...suffixes] = to.split("//");
571
- for (const suffix of suffixes) {
572
- if (suffix.toUpperCase() === "TRANSLIT") transliterate = true;
573
- else if (suffix.toUpperCase() === "IGNORE") discard = true;
574
- else throw new IconvError(`unsupported encoding suffix: ${to}`);
575
- }
576
- to = name;
577
- }
578
- if (from === void 0 || to === void 0 || transliterate) {
579
- const env = budget.context.env;
580
- budget.assertOpen();
581
- let locale = "";
582
- for (const name of ["LC_ALL", "LC_CTYPE", "LANG"]) {
583
- locale = env[name] || "";
584
- budget.assertOpen();
585
- budget.check(locale.length, budget.limits.maxArgumentBytes, "locale bytes");
586
- budget.charge(locale.length + 1);
587
- if (locale) break;
588
- }
589
- locale ||= "C";
590
- if (transliterate && locale !== "C" && locale !== "POSIX") throw new IconvError(`unsupported transliteration locale: ${locale}; supported: C, POSIX, or unset`);
591
- let fallback;
592
- if (locale === "C" || locale === "POSIX") fallback = "ASCII";
593
- else if (locale === "C.UTF-8" || locale === "C.utf8") fallback = "UTF-8";
594
- else throw new IconvError(`unsupported default encoding locale: ${locale}; specify -f and -t`);
595
- from ??= fallback;
596
- to ??= fallback;
597
- }
598
- return { from: encoding(from), to: encoding(to), discard, transliterate, files: files.length ? files : ["-"], output, verbose };
599
- }
600
-
601
- // packages/safe-bash-command-iconv/src/codec.ts
602
- init_platform();
603
-
604
- // packages/safe-bash-command-iconv/src/transliterations.ts
605
- init_platform();
606
- var cTransliterations = Object.freeze({
607
- 160: " ",
608
- 169: "(C)",
609
- 171: "<<",
610
- 173: "-",
611
- 174: "(R)",
612
- 181: "u",
613
- 184: ",",
614
- 187: ">>",
615
- 188: " 1/4 ",
616
- 189: " 1/2 ",
617
- 190: " 3/4 ",
618
- 198: "AE",
619
- 215: "x",
620
- 223: "ss",
621
- 230: "ae",
622
- 306: "IJ",
623
- 307: "ij",
624
- 329: "'n",
625
- 338: "OE",
626
- 339: "oe",
627
- 383: "s",
628
- 455: "LJ",
629
- 456: "Lj",
630
- 457: "lj",
631
- 458: "NJ",
632
- 459: "Nj",
633
- 460: "nj",
634
- 497: "DZ",
635
- 498: "Dz",
636
- 499: "dz",
637
- 700: "'",
638
- 710: "^",
639
- 712: "'",
640
- 715: "`",
641
- 717: "_",
642
- 720: ":",
643
- 732: "~",
644
- 880: "H",
645
- 881: "h",
646
- 882: "SS",
647
- 883: "ss",
648
- 884: "#",
649
- 885: "#`",
650
- 886: "W",
651
- 887: "w",
652
- 890: "i",
653
- 891: "s",
654
- 892: "s",
655
- 893: "s",
656
- 895: "J",
657
- 900: "`",
658
- 901: "`",
659
- 902: "A",
660
- 903: ";",
661
- 904: "E",
662
- 905: "I",
663
- 906: "I",
664
- 908: "O",
665
- 910: "Y",
666
- 911: "O",
667
- 912: "I",
668
- 913: "A",
669
- 914: "V",
670
- 915: "G",
671
- 916: "D",
672
- 917: "E",
673
- 918: "Z",
674
- 919: "I",
675
- 920: "TH",
676
- 921: "I",
677
- 922: "K",
678
- 923: "L",
679
- 924: "M",
680
- 925: "N",
681
- 926: "X",
682
- 927: "O",
683
- 928: "P",
684
- 929: "R",
685
- 931: "S",
686
- 932: "T",
687
- 933: "Y",
688
- 934: "F",
689
- 935: "CH",
690
- 936: "PS",
691
- 937: "O",
692
- 938: "I",
693
- 939: "Y",
694
- 940: "a",
695
- 941: "e",
696
- 942: "i",
697
- 943: "i",
698
- 944: "y",
699
- 945: "a",
700
- 946: "v",
701
- 947: "g",
702
- 948: "d",
703
- 949: "e",
704
- 950: "z",
705
- 951: "i",
706
- 952: "th",
707
- 953: "i",
708
- 954: "k",
709
- 955: "l",
710
- 956: "m",
711
- 957: "n",
712
- 958: "x",
713
- 959: "o",
714
- 960: "p",
715
- 961: "r",
716
- 962: "s",
717
- 963: "s",
718
- 964: "t",
719
- 965: "y",
720
- 966: "f",
721
- 967: "ch",
722
- 968: "ps",
723
- 969: "o",
724
- 970: "i",
725
- 971: "y",
726
- 972: "o",
727
- 973: "y",
728
- 974: "o",
729
- 975: "&",
730
- 976: "b",
731
- 977: "th",
732
- 978: "Y`",
733
- 979: "Y`",
734
- 980: "Y`",
735
- 981: "f",
736
- 982: "p",
737
- 983: "&",
738
- 984: "Q",
739
- 985: "q",
740
- 986: "6",
741
- 987: "6",
742
- 988: "W",
743
- 989: "w",
744
- 990: "90",
745
- 991: "90",
746
- 992: "900",
747
- 993: "900",
748
- 994: "SH",
749
- 995: "sh",
750
- 996: "F",
751
- 997: "f",
752
- 998: "KH",
753
- 999: "kh",
754
- 1e3: "H",
755
- 1001: "h",
756
- 1002: "DJ",
757
- 1003: "dj",
758
- 1004: "GJ",
759
- 1005: "gj",
760
- 1006: "TI",
761
- 1007: "ti",
762
- 1008: "k",
763
- 1009: "r",
764
- 1010: "s",
765
- 1011: "j",
766
- 1012: "TH",
767
- 1013: "e",
768
- 1014: "e",
769
- 1015: "SH",
770
- 1016: "sh",
771
- 1017: "S",
772
- 1018: "S",
773
- 1019: "s",
774
- 1020: "r",
775
- 1021: "S",
776
- 1022: "S",
777
- 1023: "S",
778
- 1025: "YO",
779
- 1026: "DJ",
780
- 1027: "G`",
781
- 1028: "YE",
782
- 1029: "Z`",
783
- 1030: "I",
784
- 1031: "YI",
785
- 1032: "J",
786
- 1033: "L`",
787
- 1034: "N`",
788
- 1035: "TSH",
789
- 1036: "K`",
790
- 1038: "U`",
791
- 1039: "DH",
792
- 1040: "A",
793
- 1041: "B",
794
- 1042: "V",
795
- 1043: "G",
796
- 1044: "D",
797
- 1045: "E",
798
- 1046: "ZH",
799
- 1047: "Z",
800
- 1048: "I",
801
- 1049: "J",
802
- 1050: "K",
803
- 1051: "L",
804
- 1052: "M",
805
- 1053: "N",
806
- 1054: "O",
807
- 1055: "P",
808
- 1056: "R",
809
- 1057: "S",
810
- 1058: "T",
811
- 1059: "U",
812
- 1060: "F",
813
- 1061: "X",
814
- 1062: "CZ",
815
- 1063: "CH",
816
- 1064: "SH",
817
- 1065: "SHH",
818
- 1066: "A`",
819
- 1067: "Y`",
820
- 1068: "`",
821
- 1069: "E`",
822
- 1070: "YU",
823
- 1071: "YA",
824
- 1072: "a",
825
- 1073: "b",
826
- 1074: "v",
827
- 1075: "g",
828
- 1076: "d",
829
- 1077: "e",
830
- 1078: "zh",
831
- 1079: "z",
832
- 1080: "i",
833
- 1081: "j",
834
- 1082: "k",
835
- 1083: "l",
836
- 1084: "m",
837
- 1085: "n",
838
- 1086: "o",
839
- 1087: "p",
840
- 1088: "r",
841
- 1089: "s",
842
- 1090: "t",
843
- 1091: "u",
844
- 1092: "f",
845
- 1093: "x",
846
- 1094: "cz",
847
- 1095: "ch",
848
- 1096: "sh",
849
- 1097: "shh",
850
- 1098: "``",
851
- 1099: "y`",
852
- 1100: "`",
853
- 1101: "e`",
854
- 1102: "yu",
855
- 1103: "ya",
856
- 1105: "yo",
857
- 1106: "dj",
858
- 1107: "g`",
859
- 1108: "ye",
860
- 1109: "z`",
861
- 1110: "i",
862
- 1111: "yi",
863
- 1112: "j",
864
- 1113: "l`",
865
- 1114: "n`",
866
- 1115: "tsh",
867
- 1116: "k`",
868
- 1118: "u`",
869
- 1119: "dh",
870
- 1130: "O`",
871
- 1131: "o`",
872
- 1138: "FH",
873
- 1139: "fh",
874
- 1140: "YH",
875
- 1141: "yh",
876
- 1164: "E`",
877
- 1165: "e`",
878
- 1168: "G`",
879
- 1169: "g`",
880
- 1170: "GH",
881
- 1171: "gh",
882
- 1172: "GH",
883
- 1173: "gh",
884
- 1174: "ZH`",
885
- 1175: "zh`",
886
- 1178: "K`",
887
- 1179: "k`",
888
- 1182: "K`",
889
- 1183: "k`",
890
- 1186: "N`",
891
- 1187: "n`",
892
- 1188: "NG",
893
- 1189: "ng",
894
- 1190: "P`",
895
- 1191: "p`",
896
- 1192: "O`",
897
- 1193: "o`",
898
- 1194: "C`",
899
- 1195: "C`",
900
- 1196: "T`",
901
- 1197: "t`",
902
- 1198: "U",
903
- 1199: "u",
904
- 1202: "H`",
905
- 1203: "h`",
906
- 1204: "TCZ",
907
- 1205: "tcz",
908
- 1210: "SH`",
909
- 1211: "sh`",
910
- 1212: "CH`",
911
- 1213: "ch`",
912
- 1214: "CH`",
913
- 1215: "ch`",
914
- 1216: "i",
915
- 1217: "ZH`",
916
- 1218: "zh`",
917
- 1227: "CH`",
918
- 1228: "ch`",
919
- 1232: "A`",
920
- 1233: "a`",
921
- 1234: "A`",
922
- 1235: "a`",
923
- 1238: "E`",
924
- 1239: "e`",
925
- 1240: "A`",
926
- 1241: "a`",
927
- 1244: "ZH`",
928
- 1245: "zh`",
929
- 1246: "Z`",
930
- 1247: "z`",
931
- 1248: "Z`",
932
- 1249: "z`",
933
- 1252: "I`",
934
- 1253: "i`",
935
- 1254: "O`",
936
- 1255: "o`",
937
- 1256: "O`",
938
- 1257: "o`",
939
- 1264: "U`",
940
- 1265: "u`",
941
- 1266: "U`",
942
- 1267: "u`",
943
- 1268: "CH`",
944
- 1269: "ch`",
945
- 1272: "Y`",
946
- 1273: "y`",
947
- 8194: " ",
948
- 8195: " ",
949
- 8196: " ",
950
- 8197: " ",
951
- 8198: " ",
952
- 8200: " ",
953
- 8201: " ",
954
- 8202: " ",
955
- 8203: "",
956
- 8208: "-",
957
- 8209: "-",
958
- 8210: "-",
959
- 8211: "-",
960
- 8212: "--",
961
- 8213: "-",
962
- 8216: "'",
963
- 8217: "'",
964
- 8218: ",",
965
- 8219: "'",
966
- 8220: '"',
967
- 8221: '"',
968
- 8222: ",,",
969
- 8223: '"',
970
- 8224: "+",
971
- 8226: "o",
972
- 8228: ".",
973
- 8229: "..",
974
- 8230: "...",
975
- 8239: " ",
976
- 8245: "`",
977
- 8246: "``",
978
- 8247: "```",
979
- 8249: "<",
980
- 8250: ">",
981
- 8252: "!!",
982
- 8260: "/",
983
- 8263: "??",
984
- 8264: "?!",
985
- 8265: "!?",
986
- 8287: " ",
987
- 8288: "",
988
- 8289: "",
989
- 8290: "",
990
- 8291: "",
991
- 8353: "C=",
992
- 8360: "Rs",
993
- 8364: "EUR",
994
- 8377: "INR",
995
- 8448: "a/c",
996
- 8449: "a/s",
997
- 8450: "C",
998
- 8453: "c/o",
999
- 8454: "c/u",
1000
- 8458: "g",
1001
- 8459: "H",
1002
- 8460: "H",
1003
- 8461: "H",
1004
- 8462: "h",
1005
- 8464: "I",
1006
- 8465: "I",
1007
- 8466: "L",
1008
- 8467: "l",
1009
- 8469: "N",
1010
- 8470: "No",
1011
- 8473: "P",
1012
- 8474: "Q",
1013
- 8475: "R",
1014
- 8476: "R",
1015
- 8477: "R",
1016
- 8481: "TEL",
1017
- 8482: "(TM)",
1018
- 8484: "Z",
1019
- 8486: "Ohm",
1020
- 8488: "Z",
1021
- 8492: "B",
1022
- 8493: "C",
1023
- 8494: "e",
1024
- 8495: "e",
1025
- 8496: "E",
1026
- 8497: "F",
1027
- 8499: "M",
1028
- 8500: "o",
1029
- 8505: "i",
1030
- 8517: "D",
1031
- 8518: "d",
1032
- 8519: "e",
1033
- 8520: "i",
1034
- 8521: "j",
1035
- 8531: " 1/3 ",
1036
- 8532: " 2/3 ",
1037
- 8533: " 1/5 ",
1038
- 8534: " 2/5 ",
1039
- 8535: " 3/5 ",
1040
- 8536: " 4/5 ",
1041
- 8537: " 1/6 ",
1042
- 8538: " 5/6 ",
1043
- 8539: " 1/8 ",
1044
- 8540: " 3/8 ",
1045
- 8541: " 5/8 ",
1046
- 8542: " 7/8 ",
1047
- 8543: " 1/",
1048
- 8544: "I",
1049
- 8545: "II",
1050
- 8546: "III",
1051
- 8547: "IV",
1052
- 8548: "V",
1053
- 8549: "VI",
1054
- 8550: "VII",
1055
- 8551: "VIII",
1056
- 8552: "IX",
1057
- 8553: "X",
1058
- 8554: "XI",
1059
- 8555: "XII",
1060
- 8556: "L",
1061
- 8557: "C",
1062
- 8558: "D",
1063
- 8559: "M",
1064
- 8560: "i",
1065
- 8561: "ii",
1066
- 8562: "iii",
1067
- 8563: "iv",
1068
- 8564: "v",
1069
- 8565: "vi",
1070
- 8566: "vii",
1071
- 8567: "viii",
1072
- 8568: "ix",
1073
- 8569: "x",
1074
- 8570: "xi",
1075
- 8571: "xii",
1076
- 8572: "l",
1077
- 8573: "c",
1078
- 8574: "d",
1079
- 8575: "m",
1080
- 8592: "<-",
1081
- 8594: "->",
1082
- 8596: "<->",
1083
- 8656: "<=",
1084
- 8658: "=>",
1085
- 8660: "<=>",
1086
- 8722: "-",
1087
- 8725: "/",
1088
- 8726: "\\",
1089
- 8727: "*",
1090
- 8739: "|",
1091
- 8758: ":",
1092
- 8764: "~",
1093
- 8804: "<=",
1094
- 8805: ">=",
1095
- 8810: "<<",
1096
- 8811: ">>",
1097
- 8920: "<<<",
1098
- 8921: ">>>",
1099
- 9216: "NUL",
1100
- 9217: "SOH",
1101
- 9218: "STX",
1102
- 9219: "ETX",
1103
- 9220: "EOT",
1104
- 9221: "ENQ",
1105
- 9222: "ACK",
1106
- 9223: "BEL",
1107
- 9224: "BS",
1108
- 9225: "HT",
1109
- 9226: "LF",
1110
- 9227: "VT",
1111
- 9228: "FF",
1112
- 9229: "CR",
1113
- 9230: "SO",
1114
- 9231: "SI",
1115
- 9232: "DLE",
1116
- 9233: "DC1",
1117
- 9234: "DC2",
1118
- 9235: "DC3",
1119
- 9236: "DC4",
1120
- 9237: "NAK",
1121
- 9238: "SYN",
1122
- 9239: "ETB",
1123
- 9240: "CAN",
1124
- 9241: "EM",
1125
- 9242: "SUB",
1126
- 9243: "ESC",
1127
- 9244: "FS",
1128
- 9245: "GS",
1129
- 9246: "RS",
1130
- 9247: "US",
1131
- 9248: "SP",
1132
- 9249: "DEL",
1133
- 9251: "_",
1134
- 9252: "NL",
1135
- 9312: "(1)",
1136
- 9313: "(2)",
1137
- 9314: "(3)",
1138
- 9315: "(4)",
1139
- 9316: "(5)",
1140
- 9317: "(6)",
1141
- 9318: "(7)",
1142
- 9319: "(8)",
1143
- 9320: "(9)",
1144
- 9321: "(10)",
1145
- 9322: "(11)",
1146
- 9323: "(12)",
1147
- 9324: "(13)",
1148
- 9325: "(14)",
1149
- 9326: "(15)",
1150
- 9327: "(16)",
1151
- 9328: "(17)",
1152
- 9329: "(18)",
1153
- 9330: "(19)",
1154
- 9331: "(20)",
1155
- 9332: "(1)",
1156
- 9333: "(2)",
1157
- 9334: "(3)",
1158
- 9335: "(4)",
1159
- 9336: "(5)",
1160
- 9337: "(6)",
1161
- 9338: "(7)",
1162
- 9339: "(8)",
1163
- 9340: "(9)",
1164
- 9341: "(10)",
1165
- 9342: "(11)",
1166
- 9343: "(12)",
1167
- 9344: "(13)",
1168
- 9345: "(14)",
1169
- 9346: "(15)",
1170
- 9347: "(16)",
1171
- 9348: "(17)",
1172
- 9349: "(18)",
1173
- 9350: "(19)",
1174
- 9351: "(20)",
1175
- 9352: "1.",
1176
- 9353: "2.",
1177
- 9354: "3.",
1178
- 9355: "4.",
1179
- 9356: "5.",
1180
- 9357: "6.",
1181
- 9358: "7.",
1182
- 9359: "8.",
1183
- 9360: "9.",
1184
- 9361: "10.",
1185
- 9362: "11.",
1186
- 9363: "12.",
1187
- 9364: "13.",
1188
- 9365: "14.",
1189
- 9366: "15.",
1190
- 9367: "16.",
1191
- 9368: "17.",
1192
- 9369: "18.",
1193
- 9370: "19.",
1194
- 9371: "20.",
1195
- 9372: "(a)",
1196
- 9373: "(b)",
1197
- 9374: "(c)",
1198
- 9375: "(d)",
1199
- 9376: "(e)",
1200
- 9377: "(f)",
1201
- 9378: "(g)",
1202
- 9379: "(h)",
1203
- 9380: "(i)",
1204
- 9381: "(j)",
1205
- 9382: "(k)",
1206
- 9383: "(l)",
1207
- 9384: "(m)",
1208
- 9385: "(n)",
1209
- 9386: "(o)",
1210
- 9387: "(p)",
1211
- 9388: "(q)",
1212
- 9389: "(r)",
1213
- 9390: "(s)",
1214
- 9391: "(t)",
1215
- 9392: "(u)",
1216
- 9393: "(v)",
1217
- 9394: "(w)",
1218
- 9395: "(x)",
1219
- 9396: "(y)",
1220
- 9397: "(z)",
1221
- 9398: "(A)",
1222
- 9399: "(B)",
1223
- 9400: "(C)",
1224
- 9401: "(D)",
1225
- 9402: "(E)",
1226
- 9403: "(F)",
1227
- 9404: "(G)",
1228
- 9405: "(H)",
1229
- 9406: "(I)",
1230
- 9407: "(J)",
1231
- 9408: "(K)",
1232
- 9409: "(L)",
1233
- 9410: "(M)",
1234
- 9411: "(N)",
1235
- 9412: "(O)",
1236
- 9413: "(P)",
1237
- 9414: "(Q)",
1238
- 9415: "(R)",
1239
- 9416: "(S)",
1240
- 9417: "(T)",
1241
- 9418: "(U)",
1242
- 9419: "(V)",
1243
- 9420: "(W)",
1244
- 9421: "(X)",
1245
- 9422: "(Y)",
1246
- 9423: "(Z)",
1247
- 9424: "(a)",
1248
- 9425: "(b)",
1249
- 9426: "(c)",
1250
- 9427: "(d)",
1251
- 9428: "(e)",
1252
- 9429: "(f)",
1253
- 9430: "(g)",
1254
- 9431: "(h)",
1255
- 9432: "(i)",
1256
- 9433: "(j)",
1257
- 9434: "(k)",
1258
- 9435: "(l)",
1259
- 9436: "(m)",
1260
- 9437: "(n)",
1261
- 9438: "(o)",
1262
- 9439: "(p)",
1263
- 9440: "(q)",
1264
- 9441: "(r)",
1265
- 9442: "(s)",
1266
- 9443: "(t)",
1267
- 9444: "(u)",
1268
- 9445: "(v)",
1269
- 9446: "(w)",
1270
- 9447: "(x)",
1271
- 9448: "(y)",
1272
- 9449: "(z)",
1273
- 9450: "(0)",
1274
- 9472: "-",
1275
- 9474: "|",
1276
- 9484: "+",
1277
- 9488: "+",
1278
- 9492: "+",
1279
- 9496: "+",
1280
- 9500: "+",
1281
- 9508: "+",
1282
- 9516: "+",
1283
- 9524: "+",
1284
- 9532: "+",
1285
- 9702: "o",
1286
- 10868: "::=",
1287
- 10869: "==",
1288
- 10870: "===",
1289
- 12288: " ",
1290
- 12448: "=",
1291
- 12881: "(21)",
1292
- 12882: "(22)",
1293
- 12883: "(23)",
1294
- 12884: "(24)",
1295
- 12885: "(25)",
1296
- 12886: "(26)",
1297
- 12887: "(27)",
1298
- 12888: "(28)",
1299
- 12889: "(29)",
1300
- 12890: "(30)",
1301
- 12891: "(31)",
1302
- 12892: "(32)",
1303
- 12893: "(33)",
1304
- 12894: "(34)",
1305
- 12895: "(35)",
1306
- 12977: "(36)",
1307
- 12978: "(37)",
1308
- 12979: "(38)",
1309
- 12980: "(39)",
1310
- 12981: "(40)",
1311
- 12982: "(41)",
1312
- 12983: "(42)",
1313
- 12984: "(43)",
1314
- 12985: "(44)",
1315
- 12986: "(45)",
1316
- 12987: "(46)",
1317
- 12988: "(47)",
1318
- 12989: "(48)",
1319
- 12990: "(49)",
1320
- 12991: "(50)",
1321
- 13169: "hPa",
1322
- 13170: "da",
1323
- 13171: "AU",
1324
- 13172: "bar",
1325
- 13173: "oV",
1326
- 13174: "pc",
1327
- 13184: "pA",
1328
- 13185: "nA",
1329
- 13186: "uA",
1330
- 13187: "mA",
1331
- 13188: "kA",
1332
- 13189: "KB",
1333
- 13190: "MB",
1334
- 13191: "GB",
1335
- 13192: "cal",
1336
- 13193: "kcal",
1337
- 13194: "pF",
1338
- 13195: "nF",
1339
- 13196: "uF",
1340
- 13197: "ug",
1341
- 13198: "mg",
1342
- 13199: "kg",
1343
- 13200: "Hz",
1344
- 13201: "kHz",
1345
- 13202: "MHz",
1346
- 13203: "GHz",
1347
- 13204: "THz",
1348
- 13205: "ul",
1349
- 13206: "ml",
1350
- 13207: "dl",
1351
- 13208: "kl",
1352
- 13209: "fm",
1353
- 13210: "nm",
1354
- 13211: "um",
1355
- 13212: "mm",
1356
- 13213: "cm",
1357
- 13214: "km",
1358
- 13215: "mm^2",
1359
- 13216: "cm^2",
1360
- 13217: "m^2",
1361
- 13218: "km^2",
1362
- 13219: "mm^3",
1363
- 13220: "cm^3",
1364
- 13221: "m^3",
1365
- 13222: "km^3",
1366
- 13223: "m/s",
1367
- 13224: "m/s^2",
1368
- 13225: "Pa",
1369
- 13226: "kPa",
1370
- 13227: "MPa",
1371
- 13228: "GPa",
1372
- 13229: "rad",
1373
- 13230: "rad/s",
1374
- 13231: "rad/s^2",
1375
- 13232: "ps",
1376
- 13233: "ns",
1377
- 13234: "us",
1378
- 13235: "ms",
1379
- 13236: "pV",
1380
- 13237: "nV",
1381
- 13238: "uV",
1382
- 13239: "mV",
1383
- 13240: "kV",
1384
- 13241: "MV",
1385
- 13242: "pW",
1386
- 13243: "nW",
1387
- 13244: "uW",
1388
- 13245: "mW",
1389
- 13246: "kW",
1390
- 13247: "MW",
1391
- 13250: "a.m.",
1392
- 13251: "Bq",
1393
- 13252: "cc",
1394
- 13253: "cd",
1395
- 13254: "C/kg",
1396
- 13255: "Co.",
1397
- 13256: "dB",
1398
- 13257: "Gy",
1399
- 13258: "ha",
1400
- 13259: "HP",
1401
- 13260: "in",
1402
- 13261: "KK",
1403
- 13262: "KM",
1404
- 13263: "kt",
1405
- 13264: "lm",
1406
- 13265: "ln",
1407
- 13266: "log",
1408
- 13267: "lx",
1409
- 13268: "mb",
1410
- 13269: "mil",
1411
- 13270: "mol",
1412
- 13271: "PH",
1413
- 13272: "p.m.",
1414
- 13273: "PPM",
1415
- 13274: "PR",
1416
- 13275: "sr",
1417
- 13276: "Sv",
1418
- 13277: "Wb",
1419
- 64256: "ff",
1420
- 64257: "fi",
1421
- 64258: "fl",
1422
- 64259: "ffi",
1423
- 64260: "ffl",
1424
- 64262: "st",
1425
- 64297: "+",
1426
- 65024: "",
1427
- 65025: "",
1428
- 65026: "",
1429
- 65027: "",
1430
- 65028: "",
1431
- 65029: "",
1432
- 65030: "",
1433
- 65031: "",
1434
- 65032: "",
1435
- 65033: "",
1436
- 65034: "",
1437
- 65035: "",
1438
- 65036: "",
1439
- 65037: "",
1440
- 65038: "",
1441
- 65039: "",
1442
- 65101: "_",
1443
- 65102: "_",
1444
- 65103: "_",
1445
- 65104: ",",
1446
- 65106: ".",
1447
- 65108: ";",
1448
- 65109: ":",
1449
- 65111: "!",
1450
- 65113: "(",
1451
- 65114: ")",
1452
- 65115: "{",
1453
- 65116: "}",
1454
- 65119: "#",
1455
- 65120: "&",
1456
- 65121: "*",
1457
- 65122: "+",
1458
- 65123: "-",
1459
- 65124: "<",
1460
- 65125: ">",
1461
- 65126: "=",
1462
- 65128: "\\",
1463
- 65129: "$",
1464
- 65130: "%",
1465
- 65131: "@",
1466
- 65279: "",
1467
- 65281: "!",
1468
- 65282: '"',
1469
- 65283: "#",
1470
- 65284: "$",
1471
- 65285: "%",
1472
- 65286: "&",
1473
- 65287: "'",
1474
- 65288: "(",
1475
- 65289: ")",
1476
- 65290: "*",
1477
- 65291: "+",
1478
- 65292: ",",
1479
- 65293: "-",
1480
- 65294: ".",
1481
- 65295: "/",
1482
- 65296: "0",
1483
- 65297: "1",
1484
- 65298: "2",
1485
- 65299: "3",
1486
- 65300: "4",
1487
- 65301: "5",
1488
- 65302: "6",
1489
- 65303: "7",
1490
- 65304: "8",
1491
- 65305: "9",
1492
- 65306: ":",
1493
- 65307: ";",
1494
- 65308: "<",
1495
- 65309: "=",
1496
- 65310: ">",
1497
- 65312: "@",
1498
- 65313: "A",
1499
- 65314: "B",
1500
- 65315: "C",
1501
- 65316: "D",
1502
- 65317: "E",
1503
- 65318: "F",
1504
- 65319: "G",
1505
- 65320: "H",
1506
- 65321: "I",
1507
- 65322: "J",
1508
- 65323: "K",
1509
- 65324: "L",
1510
- 65325: "M",
1511
- 65326: "N",
1512
- 65327: "O",
1513
- 65328: "P",
1514
- 65329: "Q",
1515
- 65330: "R",
1516
- 65331: "S",
1517
- 65332: "T",
1518
- 65333: "U",
1519
- 65334: "V",
1520
- 65335: "W",
1521
- 65336: "X",
1522
- 65337: "Y",
1523
- 65338: "Z",
1524
- 65339: "[",
1525
- 65340: "\\",
1526
- 65341: "]",
1527
- 65342: "^",
1528
- 65343: "_",
1529
- 65344: "`",
1530
- 65345: "a",
1531
- 65346: "b",
1532
- 65347: "c",
1533
- 65348: "d",
1534
- 65349: "e",
1535
- 65350: "f",
1536
- 65351: "g",
1537
- 65352: "h",
1538
- 65353: "i",
1539
- 65354: "j",
1540
- 65355: "k",
1541
- 65356: "l",
1542
- 65357: "m",
1543
- 65358: "n",
1544
- 65359: "o",
1545
- 65360: "p",
1546
- 65361: "q",
1547
- 65362: "r",
1548
- 65363: "s",
1549
- 65364: "t",
1550
- 65365: "u",
1551
- 65366: "v",
1552
- 65367: "w",
1553
- 65368: "x",
1554
- 65369: "y",
1555
- 65370: "z",
1556
- 65371: "{",
1557
- 65372: "|",
1558
- 65373: "}",
1559
- 65374: "~",
1560
- 119808: "A",
1561
- 119809: "B",
1562
- 119810: "C",
1563
- 119811: "D",
1564
- 119812: "E",
1565
- 119813: "F",
1566
- 119814: "G",
1567
- 119815: "H",
1568
- 119816: "I",
1569
- 119817: "J",
1570
- 119818: "K",
1571
- 119819: "L",
1572
- 119820: "M",
1573
- 119821: "N",
1574
- 119822: "O",
1575
- 119823: "P",
1576
- 119824: "Q",
1577
- 119825: "R",
1578
- 119826: "S",
1579
- 119827: "T",
1580
- 119828: "U",
1581
- 119829: "V",
1582
- 119830: "W",
1583
- 119831: "X",
1584
- 119832: "Y",
1585
- 119833: "Z",
1586
- 119834: "a",
1587
- 119835: "b",
1588
- 119836: "c",
1589
- 119837: "d",
1590
- 119838: "e",
1591
- 119839: "f",
1592
- 119840: "g",
1593
- 119841: "h",
1594
- 119842: "i",
1595
- 119843: "j",
1596
- 119844: "k",
1597
- 119845: "l",
1598
- 119846: "m",
1599
- 119847: "n",
1600
- 119848: "o",
1601
- 119849: "p",
1602
- 119850: "q",
1603
- 119851: "r",
1604
- 119852: "s",
1605
- 119853: "t",
1606
- 119854: "u",
1607
- 119855: "v",
1608
- 119856: "w",
1609
- 119857: "x",
1610
- 119858: "y",
1611
- 119859: "z",
1612
- 119860: "A",
1613
- 119861: "B",
1614
- 119862: "C",
1615
- 119863: "D",
1616
- 119864: "E",
1617
- 119865: "F",
1618
- 119866: "G",
1619
- 119867: "H",
1620
- 119868: "I",
1621
- 119869: "J",
1622
- 119870: "K",
1623
- 119871: "L",
1624
- 119872: "M",
1625
- 119873: "N",
1626
- 119874: "O",
1627
- 119875: "P",
1628
- 119876: "Q",
1629
- 119877: "R",
1630
- 119878: "S",
1631
- 119879: "T",
1632
- 119880: "U",
1633
- 119881: "V",
1634
- 119882: "W",
1635
- 119883: "X",
1636
- 119884: "Y",
1637
- 119885: "Z",
1638
- 119886: "a",
1639
- 119887: "b",
1640
- 119888: "c",
1641
- 119889: "d",
1642
- 119890: "e",
1643
- 119891: "f",
1644
- 119892: "g",
1645
- 119894: "i",
1646
- 119895: "j",
1647
- 119896: "k",
1648
- 119897: "l",
1649
- 119898: "m",
1650
- 119899: "n",
1651
- 119900: "o",
1652
- 119901: "p",
1653
- 119902: "q",
1654
- 119903: "r",
1655
- 119904: "s",
1656
- 119905: "t",
1657
- 119906: "u",
1658
- 119907: "v",
1659
- 119908: "w",
1660
- 119909: "x",
1661
- 119910: "y",
1662
- 119911: "z",
1663
- 119912: "A",
1664
- 119913: "B",
1665
- 119914: "C",
1666
- 119915: "D",
1667
- 119916: "E",
1668
- 119917: "F",
1669
- 119918: "G",
1670
- 119919: "H",
1671
- 119920: "I",
1672
- 119921: "J",
1673
- 119922: "K",
1674
- 119923: "L",
1675
- 119924: "M",
1676
- 119925: "N",
1677
- 119926: "O",
1678
- 119927: "P",
1679
- 119928: "Q",
1680
- 119929: "R",
1681
- 119930: "S",
1682
- 119931: "T",
1683
- 119932: "U",
1684
- 119933: "V",
1685
- 119934: "W",
1686
- 119935: "X",
1687
- 119936: "Y",
1688
- 119937: "Z",
1689
- 119938: "a",
1690
- 119939: "b",
1691
- 119940: "c",
1692
- 119941: "d",
1693
- 119942: "e",
1694
- 119943: "f",
1695
- 119944: "g",
1696
- 119945: "h",
1697
- 119946: "i",
1698
- 119947: "j",
1699
- 119948: "k",
1700
- 119949: "l",
1701
- 119950: "m",
1702
- 119951: "n",
1703
- 119952: "o",
1704
- 119953: "p",
1705
- 119954: "q",
1706
- 119955: "r",
1707
- 119956: "s",
1708
- 119957: "t",
1709
- 119958: "u",
1710
- 119959: "v",
1711
- 119960: "w",
1712
- 119961: "x",
1713
- 119962: "y",
1714
- 119963: "z",
1715
- 119964: "A",
1716
- 119966: "C",
1717
- 119967: "D",
1718
- 119970: "G",
1719
- 119973: "J",
1720
- 119974: "K",
1721
- 119977: "N",
1722
- 119978: "O",
1723
- 119979: "P",
1724
- 119980: "Q",
1725
- 119982: "S",
1726
- 119983: "T",
1727
- 119984: "U",
1728
- 119985: "V",
1729
- 119986: "W",
1730
- 119987: "X",
1731
- 119988: "Y",
1732
- 119989: "Z",
1733
- 119990: "a",
1734
- 119991: "b",
1735
- 119992: "c",
1736
- 119993: "d",
1737
- 119995: "f",
1738
- 119997: "h",
1739
- 119998: "i",
1740
- 119999: "j",
1741
- 12e4: "k",
1742
- 120002: "m",
1743
- 120003: "n",
1744
- 120005: "p",
1745
- 120006: "q",
1746
- 120007: "r",
1747
- 120008: "s",
1748
- 120009: "t",
1749
- 120010: "u",
1750
- 120011: "v",
1751
- 120012: "w",
1752
- 120013: "x",
1753
- 120014: "y",
1754
- 120015: "z",
1755
- 120016: "A",
1756
- 120017: "B",
1757
- 120018: "C",
1758
- 120019: "D",
1759
- 120020: "E",
1760
- 120021: "F",
1761
- 120022: "G",
1762
- 120023: "H",
1763
- 120024: "I",
1764
- 120025: "J",
1765
- 120026: "K",
1766
- 120027: "L",
1767
- 120028: "M",
1768
- 120029: "N",
1769
- 120030: "O",
1770
- 120031: "P",
1771
- 120032: "Q",
1772
- 120033: "R",
1773
- 120034: "S",
1774
- 120035: "T",
1775
- 120036: "U",
1776
- 120037: "V",
1777
- 120038: "W",
1778
- 120039: "X",
1779
- 120040: "Y",
1780
- 120041: "Z",
1781
- 120042: "a",
1782
- 120043: "b",
1783
- 120044: "c",
1784
- 120045: "d",
1785
- 120046: "e",
1786
- 120047: "f",
1787
- 120048: "g",
1788
- 120049: "h",
1789
- 120050: "i",
1790
- 120051: "j",
1791
- 120052: "k",
1792
- 120053: "l",
1793
- 120054: "m",
1794
- 120055: "n",
1795
- 120056: "o",
1796
- 120057: "p",
1797
- 120058: "q",
1798
- 120059: "r",
1799
- 120060: "s",
1800
- 120061: "t",
1801
- 120062: "u",
1802
- 120063: "v",
1803
- 120064: "w",
1804
- 120065: "x",
1805
- 120066: "y",
1806
- 120067: "z",
1807
- 120068: "A",
1808
- 120069: "B",
1809
- 120071: "D",
1810
- 120072: "E",
1811
- 120073: "F",
1812
- 120074: "G",
1813
- 120077: "J",
1814
- 120078: "K",
1815
- 120079: "L",
1816
- 120080: "M",
1817
- 120081: "N",
1818
- 120082: "O",
1819
- 120083: "P",
1820
- 120084: "Q",
1821
- 120086: "S",
1822
- 120087: "T",
1823
- 120088: "U",
1824
- 120089: "V",
1825
- 120090: "W",
1826
- 120091: "X",
1827
- 120092: "Y",
1828
- 120094: "a",
1829
- 120095: "b",
1830
- 120096: "c",
1831
- 120097: "d",
1832
- 120098: "e",
1833
- 120099: "f",
1834
- 120100: "g",
1835
- 120101: "h",
1836
- 120102: "i",
1837
- 120103: "j",
1838
- 120104: "k",
1839
- 120105: "l",
1840
- 120106: "m",
1841
- 120107: "n",
1842
- 120108: "o",
1843
- 120109: "p",
1844
- 120110: "q",
1845
- 120111: "r",
1846
- 120112: "s",
1847
- 120113: "t",
1848
- 120114: "u",
1849
- 120115: "v",
1850
- 120116: "w",
1851
- 120117: "x",
1852
- 120118: "y",
1853
- 120119: "z",
1854
- 120120: "A",
1855
- 120121: "B",
1856
- 120123: "D",
1857
- 120124: "E",
1858
- 120125: "F",
1859
- 120126: "G",
1860
- 120128: "I",
1861
- 120129: "J",
1862
- 120130: "K",
1863
- 120131: "L",
1864
- 120132: "M",
1865
- 120134: "O",
1866
- 120138: "S",
1867
- 120139: "T",
1868
- 120140: "U",
1869
- 120141: "V",
1870
- 120142: "W",
1871
- 120143: "X",
1872
- 120144: "Y",
1873
- 120146: "a",
1874
- 120147: "b",
1875
- 120148: "c",
1876
- 120149: "d",
1877
- 120150: "e",
1878
- 120151: "f",
1879
- 120152: "g",
1880
- 120153: "h",
1881
- 120154: "i",
1882
- 120155: "j",
1883
- 120156: "k",
1884
- 120157: "l",
1885
- 120158: "m",
1886
- 120159: "n",
1887
- 120160: "o",
1888
- 120161: "p",
1889
- 120162: "q",
1890
- 120163: "r",
1891
- 120164: "s",
1892
- 120165: "t",
1893
- 120166: "u",
1894
- 120167: "v",
1895
- 120168: "w",
1896
- 120169: "x",
1897
- 120170: "y",
1898
- 120171: "z",
1899
- 120172: "A",
1900
- 120173: "B",
1901
- 120174: "C",
1902
- 120175: "D",
1903
- 120176: "E",
1904
- 120177: "F",
1905
- 120178: "G",
1906
- 120179: "H",
1907
- 120180: "I",
1908
- 120181: "J",
1909
- 120182: "K",
1910
- 120183: "L",
1911
- 120184: "M",
1912
- 120185: "N",
1913
- 120186: "O",
1914
- 120187: "P",
1915
- 120188: "Q",
1916
- 120189: "R",
1917
- 120190: "S",
1918
- 120191: "T",
1919
- 120192: "U",
1920
- 120193: "V",
1921
- 120194: "W",
1922
- 120195: "X",
1923
- 120196: "Y",
1924
- 120197: "Z",
1925
- 120198: "a",
1926
- 120199: "b",
1927
- 120200: "c",
1928
- 120201: "d",
1929
- 120202: "e",
1930
- 120203: "f",
1931
- 120204: "g",
1932
- 120205: "h",
1933
- 120206: "i",
1934
- 120207: "j",
1935
- 120208: "k",
1936
- 120209: "l",
1937
- 120210: "m",
1938
- 120211: "n",
1939
- 120212: "o",
1940
- 120213: "p",
1941
- 120214: "q",
1942
- 120215: "r",
1943
- 120216: "s",
1944
- 120217: "t",
1945
- 120218: "u",
1946
- 120219: "v",
1947
- 120220: "w",
1948
- 120221: "x",
1949
- 120222: "y",
1950
- 120223: "z",
1951
- 120224: "A",
1952
- 120225: "B",
1953
- 120226: "C",
1954
- 120227: "D",
1955
- 120228: "E",
1956
- 120229: "F",
1957
- 120230: "G",
1958
- 120231: "H",
1959
- 120232: "I",
1960
- 120233: "J",
1961
- 120234: "K",
1962
- 120235: "L",
1963
- 120236: "M",
1964
- 120237: "N",
1965
- 120238: "O",
1966
- 120239: "P",
1967
- 120240: "Q",
1968
- 120241: "R",
1969
- 120242: "S",
1970
- 120243: "T",
1971
- 120244: "U",
1972
- 120245: "V",
1973
- 120246: "W",
1974
- 120247: "X",
1975
- 120248: "Y",
1976
- 120249: "Z",
1977
- 120250: "a",
1978
- 120251: "b",
1979
- 120252: "c",
1980
- 120253: "d",
1981
- 120254: "e",
1982
- 120255: "f",
1983
- 120256: "g",
1984
- 120257: "h",
1985
- 120258: "i",
1986
- 120259: "j",
1987
- 120260: "k",
1988
- 120261: "l",
1989
- 120262: "m",
1990
- 120263: "n",
1991
- 120264: "o",
1992
- 120265: "p",
1993
- 120266: "q",
1994
- 120267: "r",
1995
- 120268: "s",
1996
- 120269: "t",
1997
- 120270: "u",
1998
- 120271: "v",
1999
- 120272: "w",
2000
- 120273: "x",
2001
- 120274: "y",
2002
- 120275: "z",
2003
- 120276: "A",
2004
- 120277: "B",
2005
- 120278: "C",
2006
- 120279: "D",
2007
- 120280: "E",
2008
- 120281: "F",
2009
- 120282: "G",
2010
- 120283: "H",
2011
- 120284: "I",
2012
- 120285: "J",
2013
- 120286: "K",
2014
- 120287: "L",
2015
- 120288: "M",
2016
- 120289: "N",
2017
- 120290: "O",
2018
- 120291: "P",
2019
- 120292: "Q",
2020
- 120293: "R",
2021
- 120294: "S",
2022
- 120295: "T",
2023
- 120296: "U",
2024
- 120297: "V",
2025
- 120298: "W",
2026
- 120299: "X",
2027
- 120300: "Y",
2028
- 120301: "Z",
2029
- 120302: "a",
2030
- 120303: "b",
2031
- 120304: "c",
2032
- 120305: "d",
2033
- 120306: "e",
2034
- 120307: "f",
2035
- 120308: "g",
2036
- 120309: "h",
2037
- 120310: "i",
2038
- 120311: "j",
2039
- 120312: "k",
2040
- 120313: "l",
2041
- 120314: "m",
2042
- 120315: "n",
2043
- 120316: "o",
2044
- 120317: "p",
2045
- 120318: "q",
2046
- 120319: "r",
2047
- 120320: "s",
2048
- 120321: "t",
2049
- 120322: "u",
2050
- 120323: "v",
2051
- 120324: "w",
2052
- 120325: "x",
2053
- 120326: "y",
2054
- 120327: "z",
2055
- 120328: "A",
2056
- 120329: "B",
2057
- 120330: "C",
2058
- 120331: "D",
2059
- 120332: "E",
2060
- 120333: "F",
2061
- 120334: "G",
2062
- 120335: "H",
2063
- 120336: "I",
2064
- 120337: "J",
2065
- 120338: "K",
2066
- 120339: "L",
2067
- 120340: "M",
2068
- 120341: "N",
2069
- 120342: "O",
2070
- 120343: "P",
2071
- 120344: "Q",
2072
- 120345: "R",
2073
- 120346: "S",
2074
- 120347: "T",
2075
- 120348: "U",
2076
- 120349: "V",
2077
- 120350: "W",
2078
- 120351: "X",
2079
- 120352: "Y",
2080
- 120353: "Z",
2081
- 120354: "a",
2082
- 120355: "b",
2083
- 120356: "c",
2084
- 120357: "d",
2085
- 120358: "e",
2086
- 120359: "f",
2087
- 120360: "g",
2088
- 120361: "h",
2089
- 120362: "i",
2090
- 120363: "j",
2091
- 120364: "k",
2092
- 120365: "l",
2093
- 120366: "m",
2094
- 120367: "n",
2095
- 120368: "o",
2096
- 120369: "p",
2097
- 120370: "q",
2098
- 120371: "r",
2099
- 120372: "s",
2100
- 120373: "t",
2101
- 120374: "u",
2102
- 120375: "v",
2103
- 120376: "w",
2104
- 120377: "x",
2105
- 120378: "y",
2106
- 120379: "z",
2107
- 120380: "A",
2108
- 120381: "B",
2109
- 120382: "C",
2110
- 120383: "D",
2111
- 120384: "E",
2112
- 120385: "F",
2113
- 120386: "G",
2114
- 120387: "H",
2115
- 120388: "I",
2116
- 120389: "J",
2117
- 120390: "K",
2118
- 120391: "L",
2119
- 120392: "M",
2120
- 120393: "N",
2121
- 120394: "O",
2122
- 120395: "P",
2123
- 120396: "Q",
2124
- 120397: "R",
2125
- 120398: "S",
2126
- 120399: "T",
2127
- 120400: "U",
2128
- 120401: "V",
2129
- 120402: "W",
2130
- 120403: "X",
2131
- 120404: "Y",
2132
- 120405: "Z",
2133
- 120406: "a",
2134
- 120407: "b",
2135
- 120408: "c",
2136
- 120409: "d",
2137
- 120410: "e",
2138
- 120411: "f",
2139
- 120412: "g",
2140
- 120413: "h",
2141
- 120414: "i",
2142
- 120415: "j",
2143
- 120416: "k",
2144
- 120417: "l",
2145
- 120418: "m",
2146
- 120419: "n",
2147
- 120420: "o",
2148
- 120421: "p",
2149
- 120422: "q",
2150
- 120423: "r",
2151
- 120424: "s",
2152
- 120425: "t",
2153
- 120426: "u",
2154
- 120427: "v",
2155
- 120428: "w",
2156
- 120429: "x",
2157
- 120430: "y",
2158
- 120431: "z",
2159
- 120432: "A",
2160
- 120433: "B",
2161
- 120434: "C",
2162
- 120435: "D",
2163
- 120436: "E",
2164
- 120437: "F",
2165
- 120438: "G",
2166
- 120439: "H",
2167
- 120440: "I",
2168
- 120441: "J",
2169
- 120442: "K",
2170
- 120443: "L",
2171
- 120444: "M",
2172
- 120445: "N",
2173
- 120446: "O",
2174
- 120447: "P",
2175
- 120448: "Q",
2176
- 120449: "R",
2177
- 120450: "S",
2178
- 120451: "T",
2179
- 120452: "U",
2180
- 120453: "V",
2181
- 120454: "W",
2182
- 120455: "X",
2183
- 120456: "Y",
2184
- 120457: "Z",
2185
- 120458: "a",
2186
- 120459: "b",
2187
- 120460: "c",
2188
- 120461: "d",
2189
- 120462: "e",
2190
- 120463: "f",
2191
- 120464: "g",
2192
- 120465: "h",
2193
- 120466: "i",
2194
- 120467: "j",
2195
- 120468: "k",
2196
- 120469: "l",
2197
- 120470: "m",
2198
- 120471: "n",
2199
- 120472: "o",
2200
- 120473: "p",
2201
- 120474: "q",
2202
- 120475: "r",
2203
- 120476: "s",
2204
- 120477: "t",
2205
- 120478: "u",
2206
- 120479: "v",
2207
- 120480: "w",
2208
- 120481: "x",
2209
- 120482: "y",
2210
- 120483: "z",
2211
- 120782: "0",
2212
- 120783: "1",
2213
- 120784: "2",
2214
- 120785: "3",
2215
- 120786: "4",
2216
- 120787: "5",
2217
- 120788: "6",
2218
- 120789: "7",
2219
- 120790: "8",
2220
- 120791: "9",
2221
- 120792: "0",
2222
- 120793: "1",
2223
- 120794: "2",
2224
- 120795: "3",
2225
- 120796: "4",
2226
- 120797: "5",
2227
- 120798: "6",
2228
- 120799: "7",
2229
- 120800: "8",
2230
- 120801: "9",
2231
- 120802: "0",
2232
- 120803: "1",
2233
- 120804: "2",
2234
- 120805: "3",
2235
- 120806: "4",
2236
- 120807: "5",
2237
- 120808: "6",
2238
- 120809: "7",
2239
- 120810: "8",
2240
- 120811: "9",
2241
- 120812: "0",
2242
- 120813: "1",
2243
- 120814: "2",
2244
- 120815: "3",
2245
- 120816: "4",
2246
- 120817: "5",
2247
- 120818: "6",
2248
- 120819: "7",
2249
- 120820: "8",
2250
- 120821: "9",
2251
- 120822: "0",
2252
- 120823: "1",
2253
- 120824: "2",
2254
- 120825: "3",
2255
- 120826: "4",
2256
- 120827: "5",
2257
- 120828: "6",
2258
- 120829: "7",
2259
- 120830: "8",
2260
- 120831: "9",
2261
- 917504: "",
2262
- 917505: "",
2263
- 917506: "",
2264
- 917507: "",
2265
- 917508: "",
2266
- 917509: "",
2267
- 917510: "",
2268
- 917511: "",
2269
- 917512: "",
2270
- 917513: "",
2271
- 917514: "",
2272
- 917515: "",
2273
- 917516: "",
2274
- 917517: "",
2275
- 917518: "",
2276
- 917519: "",
2277
- 917520: "",
2278
- 917521: "",
2279
- 917522: "",
2280
- 917523: "",
2281
- 917524: "",
2282
- 917525: "",
2283
- 917526: "",
2284
- 917527: "",
2285
- 917528: "",
2286
- 917529: "",
2287
- 917530: "",
2288
- 917531: "",
2289
- 917532: "",
2290
- 917533: "",
2291
- 917534: "",
2292
- 917535: "",
2293
- 917536: "",
2294
- 917537: "",
2295
- 917538: "",
2296
- 917539: "",
2297
- 917540: "",
2298
- 917541: "",
2299
- 917542: "",
2300
- 917543: "",
2301
- 917544: "",
2302
- 917545: "",
2303
- 917546: "",
2304
- 917547: "",
2305
- 917548: "",
2306
- 917549: "",
2307
- 917550: "",
2308
- 917551: "",
2309
- 917552: "",
2310
- 917553: "",
2311
- 917554: "",
2312
- 917555: "",
2313
- 917556: "",
2314
- 917557: "",
2315
- 917558: "",
2316
- 917559: "",
2317
- 917560: "",
2318
- 917561: "",
2319
- 917562: "",
2320
- 917563: "",
2321
- 917564: "",
2322
- 917565: "",
2323
- 917566: "",
2324
- 917567: "",
2325
- 917568: "",
2326
- 917569: "",
2327
- 917570: "",
2328
- 917571: "",
2329
- 917572: "",
2330
- 917573: "",
2331
- 917574: "",
2332
- 917575: "",
2333
- 917576: "",
2334
- 917577: "",
2335
- 917578: "",
2336
- 917579: "",
2337
- 917580: "",
2338
- 917581: "",
2339
- 917582: "",
2340
- 917583: "",
2341
- 917584: "",
2342
- 917585: "",
2343
- 917586: "",
2344
- 917587: "",
2345
- 917588: "",
2346
- 917589: "",
2347
- 917590: "",
2348
- 917591: "",
2349
- 917592: "",
2350
- 917593: "",
2351
- 917594: "",
2352
- 917595: "",
2353
- 917596: "",
2354
- 917597: "",
2355
- 917598: "",
2356
- 917599: "",
2357
- 917600: "",
2358
- 917601: "",
2359
- 917602: "",
2360
- 917603: "",
2361
- 917604: "",
2362
- 917605: "",
2363
- 917606: "",
2364
- 917607: "",
2365
- 917608: "",
2366
- 917609: "",
2367
- 917610: "",
2368
- 917611: "",
2369
- 917612: "",
2370
- 917613: "",
2371
- 917614: "",
2372
- 917615: "",
2373
- 917616: "",
2374
- 917617: "",
2375
- 917618: "",
2376
- 917619: "",
2377
- 917620: "",
2378
- 917621: "",
2379
- 917622: "",
2380
- 917623: "",
2381
- 917624: "",
2382
- 917625: "",
2383
- 917626: "",
2384
- 917627: "",
2385
- 917628: "",
2386
- 917629: "",
2387
- 917630: "",
2388
- 917631: ""
2389
- });
2390
-
2391
- // packages/safe-bash-command-iconv/src/codec.ts
2392
- var LATIN1_DECODED = Array.from({ length: 256 }, (_, value) => ({ count: 1, value }));
2393
- var BYTE_ENCODED = Array.from({ length: 256 }, (_, value) => [value]);
2394
- function decode(input, offset, encoding2, swap) {
2395
- const first = input[offset];
2396
- if (encoding2 === "ascii") return first < 128 ? LATIN1_DECODED[first] : { count: 1, error: "illegal" };
2397
- if (encoding2 === "latin1") return LATIN1_DECODED[first];
2398
- if (encoding2 === "utf8") {
2399
- if (first < 128) return LATIN1_DECODED[first];
2400
- let count = 0, value = 0;
2401
- if (first >= 194 && first < 224) {
2402
- count = 2;
2403
- value = first & 31;
2404
- } else if (first >= 224 && first < 240) {
2405
- count = 3;
2406
- value = first & 15;
2407
- } else if (first >= 240 && first < 245) {
2408
- count = 4;
2409
- value = first & 7;
2410
- } else {
2411
- count = 1;
2412
- while (count < 5 && offset + count < input.length && (input[offset + count] & 192) === 128) count++;
2413
- return { count, error: "illegal" };
2414
- }
2415
- for (let index = 1; index < count; index++) {
2416
- if (offset + index >= input.length) return { count: 0, error: "incomplete" };
2417
- const byte = input[offset + index];
2418
- if ((byte & 192) !== 128) return { count: index, error: "illegal" };
2419
- value = value * 64 + (byte & 63);
2420
- }
2421
- if (count > 2 && value < 2 ** (5 * count - 4) || value > 1114111 || value >= 55296 && value <= 57343) return { count, error: "illegal" };
2422
- return { count, value };
2423
- }
2424
- if (offset + 1 >= input.length) return { count: 0, error: "incomplete" };
2425
- const big = encoding2 === "utf16be" || encoding2 === "utf16" && swap;
2426
- const word = big ? first * 256 + input[offset + 1] : first + input[offset + 1] * 256;
2427
- if (word < 55296 || word > 57343) return { count: 2, value: word };
2428
- if (word >= 56320) return { count: 2, error: "illegal" };
2429
- if (offset + 3 >= input.length) return { count: 0, error: "incomplete" };
2430
- const next = big ? input[offset + 2] * 256 + input[offset + 3] : input[offset + 2] + input[offset + 3] * 256;
2431
- if (next < 56320 || next > 57343) return { count: 2, error: "illegal" };
2432
- return { count: 4, value: 65536 + (word - 55296) * 1024 + next - 56320 };
2433
- }
2434
- function encode(value, encoding2) {
2435
- if (value > 1114111 || value >= 55296 && value <= 57343) return void 0;
2436
- if (encoding2 === "ascii" || encoding2 === "latin1") {
2437
- if (value < (encoding2 === "ascii" ? 128 : 256)) return BYTE_ENCODED[value];
2438
- if (value >= 917504 && value <= 917631) return [];
2439
- return void 0;
2440
- }
2441
- if (encoding2 === "utf8") {
2442
- if (value < 128) return BYTE_ENCODED[value];
2443
- let count = 2;
2444
- while (count < 4 && value >= 2 ** (5 * count + 1)) count++;
2445
- const result2 = new Array(count);
2446
- for (let index = count - 1; index > 0; index--) {
2447
- result2[index] = 128 | value & 63;
2448
- value = Math.floor(value / 64);
2449
- }
2450
- result2[0] = 256 - 2 ** (8 - count) | value;
2451
- return result2;
2452
- }
2453
- const words = value < 65536 ? [value] : [55296 + Math.floor((value - 65536) / 1024), 56320 + (value - 65536) % 1024];
2454
- const result = [];
2455
- for (const word of words) {
2456
- if (encoding2 === "utf16be") result.push(word >> 8, word & 255);
2457
- else result.push(word & 255, word >> 8);
2458
- }
2459
- return result;
2460
- }
2461
- async function convert(input, options, state, lifecycle) {
2462
- const { budget } = lifecycle;
2463
- budget.retain(32768 + 256);
2464
- const buffer = new Uint8Array(32768);
2465
- let used = 0, offset = 0, status = 0, batchCount = 0;
2466
- let suppressed = false, targetSuppressed = false, started = false, firstTargetBatch = true;
2467
- const flush = async () => {
2468
- if (used) {
2469
- await lifecycle.write(buffer.slice(0, used));
2470
- used = 0;
2471
- status = 0;
2472
- }
2473
- };
2474
- const flushFullOutput = async () => {
2475
- await flush();
2476
- batchCount = 1;
2477
- suppressed = false;
2478
- targetSuppressed = false;
2479
- firstTargetBatch = false;
2480
- };
2481
- const append = (bytes, transliterated = false) => {
2482
- const recursiveBom = transliterated && firstTargetBatch && options.to === "utf16";
2483
- if (!recursiveBom && bytes.length === 1 && used < buffer.length) {
2484
- buffer[used++] = bytes[0];
2485
- return;
2486
- }
2487
- if (buffer.length - used < bytes.length + (recursiveBom ? 2 : 0)) {
2488
- return flushFullOutput().then(() => {
2489
- buffer.set(bytes, used);
2490
- used += bytes.length;
2491
- });
2492
- }
2493
- if (recursiveBom) {
2494
- buffer[used++] = 255;
2495
- buffer[used++] = 254;
2496
- }
2497
- buffer.set(bytes, used);
2498
- used += bytes.length;
2499
- };
2500
- try {
2501
- state.swap = false;
2502
- if (options.from === "utf16" && input.length >= 2) {
2503
- if (input[0] === 254 && input[1] === 255) {
2504
- state.swap = true;
2505
- offset = 2;
2506
- } else if (input[0] === 255 && input[1] === 254) offset = 2;
2507
- }
2508
- const asciiDirect = (options.from === "utf8" || options.from === "ascii" || options.from === "latin1") && (options.to === "utf8" || options.to === "ascii" || options.to === "latin1");
2509
- while (offset < input.length) {
2510
- if (asciiDirect && input[offset] < 128 && used < buffer.length && batchCount < 8160) {
2511
- const maxRun = Math.min(input.length - offset, buffer.length - used, 8160 - batchCount, 256);
2512
- let run = 1;
2513
- while (run < maxRun && input[offset + run] < 128) run++;
2514
- budget.charge(run * 16);
2515
- {
2516
- const cp = budget.checkpointWork();
2517
- if (cp) await cp;
2518
- }
2519
- buffer.set(input.subarray(offset, offset + run), used);
2520
- used += run;
2521
- offset += run;
2522
- batchCount += run;
2523
- started = true;
2524
- if (batchCount === 8160) {
2525
- batchCount = 0;
2526
- firstTargetBatch = false;
2527
- if (targetSuppressed) {
2528
- status = 1;
2529
- await flush();
2530
- suppressed = false;
2531
- targetSuppressed = false;
2532
- }
2533
- }
2534
- continue;
2535
- }
2536
- budget.charge(16);
2537
- {
2538
- const cp = budget.checkpointWork();
2539
- if (cp) await cp;
2540
- }
2541
- const decoded = decode(input, offset, options.from, state.swap);
2542
- let error;
2543
- if ("error" in decoded) error = decoded.error;
2544
- else {
2545
- batchCount++;
2546
- if (buffer.length - used < (options.to.startsWith("utf16") ? 2 : 1)) await flushFullOutput();
2547
- if (!started && options.to === "utf16") {
2548
- const a = append([255, 254]);
2549
- if (a) await a;
2550
- }
2551
- started = true;
2552
- let bytes = encode(decoded.value, options.to);
2553
- const transliterated = bytes === void 0 && options.transliterate;
2554
- if (transliterated) {
2555
- const replacement = Object.hasOwn(cTransliterations, decoded.value) ? cTransliterations[decoded.value] : "?";
2556
- budget.charge(replacement.length + 1);
2557
- const mutableBytes = [];
2558
- for (const character of replacement) mutableBytes.push(...encode(character.charCodeAt(0), options.to));
2559
- bytes = mutableBytes;
2560
- }
2561
- if (bytes === void 0) {
2562
- error = "illegal";
2563
- targetSuppressed = true;
2564
- } else {
2565
- const a = append(bytes, transliterated);
2566
- if (a) await a;
2567
- }
2568
- }
2569
- if (error === "illegal" && options.discard) suppressed = true;
2570
- else if (error) {
2571
- await flush();
2572
- await lifecycle.diagnostic(error === "illegal" ? `illegal input sequence at position ${offset}` : "incomplete character or shift sequence at end of buffer");
2573
- return { status: 1, fatal: true };
2574
- }
2575
- offset += decoded.count;
2576
- if (batchCount === 8160) {
2577
- batchCount = 0;
2578
- firstTargetBatch = false;
2579
- if (targetSuppressed) {
2580
- status = 1;
2581
- await flush();
2582
- suppressed = false;
2583
- targetSuppressed = false;
2584
- }
2585
- }
2586
- }
2587
- if (suppressed) status = 1;
2588
- await flush();
2589
- return { status, fatal: false };
2590
- } finally {
2591
- budget.retain(-32768 - 256);
2592
- }
2593
- }
2594
-
2595
- // packages/safe-bash-command-iconv/src/command.ts
2596
- async function transcode(options, lifecycle) {
2597
- const state = { swap: false };
2598
- let exitCode = 0, stdinUsed = false;
2599
- for (const file of options.files) {
2600
- if (options.verbose && file !== "-") {
2601
- lifecycle.budget.check(file.length * 3 + 2, lifecycle.budget.limits.maxDiagnosticBytes, "diagnostic bytes");
2602
- await lifecycle.write(new TextEncoder().encode(`${file}:
2603
- `), true);
2604
- }
2605
- if (file === "-" && stdinUsed) {
2606
- await lifecycle.diagnostic("error while reading the input: Bad file descriptor");
2607
- return 1;
2608
- }
2609
- if (file === "-") stdinUsed = true;
2610
- const reader = new Reader(file, lifecycle);
2611
- let fatal = false;
2612
- try {
2613
- await reader.open();
2614
- const input = await reader.all();
2615
- const result = await convert(input, options, state, lifecycle);
2616
- exitCode ||= result.status;
2617
- fatal = result.fatal;
2618
- } catch (error) {
2619
- lifecycle.budget.signal.throwIfAborted();
2620
- if (!(error instanceof FsError2)) throw error;
2621
- exitCode = 1;
2622
- fatal = reader.stage === "read";
2623
- await lifecycle.diagnostic(fatal ? `error while reading the input: ${fsDetail(error)}` : `cannot open input file \`${file}': ${fsDetail(error)}`);
2624
- }
2625
- await lifecycle.operation(() => reader.close());
2626
- if (fatal) break;
2627
- }
2628
- return exitCode;
2629
- }
2630
- async function execute(context, limits) {
2631
- let lifecycle;
2632
- let fileOutput;
2633
- const caller = context.signal;
2634
- caller.throwIfAborted();
2635
- const stdout = context.stdout;
2636
- caller.throwIfAborted();
2637
- const capability = stdout.ownedOutput;
2638
- caller.throwIfAborted();
2639
- const consumer = capability?.consumerClosed;
2640
- caller.throwIfAborted();
2641
- consumer?.throwIfAborted();
2642
- const failureHandler = stdout[outputFailure];
2643
- caller.throwIfAborted();
2644
- consumer?.throwIfAborted();
2645
- const registerCleanup = context.registerCleanup;
2646
- caller.throwIfAborted();
2647
- consumer?.throwIfAborted();
2648
- const destination = capability ?? stdout;
2649
- const write = async (value) => {
2650
- lifecycle.assertOpen();
2651
- const selected = fileOutput?.sink ?? destination;
2652
- const method = selected.write;
2653
- lifecycle.assertOpen();
2654
- try {
2655
- await Reflect.apply(method, selected, [value]);
2656
- } catch (error) {
2657
- lifecycle.budget.signal.throwIfAborted();
2658
- if (!fileOutput || !(error instanceof FsError2)) throw error;
2659
- throw new IconvError(`error while writing output: ${fsDetail(error)}`);
2660
- }
2661
- };
2662
- const captured = {
2663
- write,
2664
- ...capability ? { ownedOutput: { consumerClosed: consumer, write } } : {},
2665
- ...failureHandler ? { [outputFailure]: failureHandler } : {}
2666
- };
2667
- const admission = { closed: false };
2668
- const output = createOutputOperation({ signal: caller, ...registerCleanup ? { registerCleanup(cleanup) {
2669
- caller.throwIfAborted();
2670
- Reflect.apply(registerCleanup, context, [() => {
2671
- admission.closed = true;
2672
- return cleanup();
2673
- }]);
2674
- } } : {} }, captured);
2675
- const budget = new Budget(context, limits, output.signal, caller, admission);
2676
- let failure, primary;
2677
- let exitCode = 0;
2678
- try {
2679
- lifecycle = new Lifecycle(budget, output, captured);
2680
- const options = parse(budget);
2681
- if ("information" in options) {
2682
- await lifecycle.write(new TextEncoder().encode(options.information));
2683
- } else {
2684
- if (options.output !== void 0 && options.output !== "-") {
2685
- try {
2686
- if (options.output === "") throw new FsError2("ENOENT", { path: "" });
2687
- const path = resolvePath2(context.cwd, pathText(options.output));
2688
- fileOutput = await lifecycle.operation(() => openFileOutput({
2689
- fs: context.fs,
2690
- signal: budget.signal,
2691
- registerCleanup: output.registerCleanup.bind(output),
2692
- outputBudget: "independent"
2693
- }, path, "w"));
2694
- } catch (error) {
2695
- budget.signal.throwIfAborted();
2696
- if (!(error instanceof FsError2)) throw error;
2697
- throw new IconvError(`cannot open output file \`${options.output}': ${fsDetail(error)}`);
2698
- }
2699
- }
2700
- exitCode = await transcode(options, lifecycle);
2701
- if (fileOutput) {
2702
- try {
2703
- await lifecycle.operation(() => fileOutput.finish());
2704
- } catch (error) {
2705
- budget.signal.throwIfAborted();
2706
- if (!(error instanceof FsError2)) throw error;
2707
- throw new IconvError(`error while writing output: ${fsDetail(error)}`);
2708
- }
2709
- }
2710
- }
2711
- } catch (error) {
2712
- primary = { reason: error };
2713
- if (error instanceof IconvError && !output.signal.aborted && lifecycle) {
2714
- exitCode = error.status;
2715
- try {
2716
- await lifecycle.diagnostic(error.message);
2717
- } catch (reporting) {
2718
- failure = { reason: new AggregateError([error, reporting], "iconv failure reporting failed") };
2719
- }
2720
- } else failure = { reason: error };
2721
- }
2722
- try {
2723
- await output.close();
2724
- } catch (cleanup) {
2725
- const previous = failure ?? primary;
2726
- failure = { reason: previous ? new AggregateError([previous.reason, cleanup], "iconv execution and cleanup failed") : cleanup };
2727
- }
2728
- caller.throwIfAborted();
2729
- output.signal.throwIfAborted();
2730
- if (lifecycle?.diagnosticCancellation) throw lifecycle.diagnosticCancellation.reason;
2731
- if (failure) throw failure.reason;
2732
- return { exitCode };
2733
- }
2734
- function createIconvCommand(options = {}) {
2735
- const limits = settings(options);
2736
- return { name: "iconv", description: "Convert bytes between bounded ASCII, Latin-1, UTF-8 and UTF-16 encodings", execute: (context) => execute(context, limits) };
2737
- }
2738
-
2739
- // packages/safe-bash-command-iconv/src/index.ts
2740
- function createIconvCommand2(options = {}) {
2741
- const def = createIconvCommand(options);
2742
- if (options.limits === void 0) builtInDirectContextExecutors.add(def.execute);
2743
- return def;
2744
- }
2745
- function createIconvCommands(options = {}) {
2746
- return [createIconvCommand2(options)];
2747
- }
2748
- function iconvCommands(options = {}) {
2749
- const commands = createIconvCommands(options);
2750
- return { name: "iconv-commands", setup(host) {
2751
- for (const command of commands) host.commands.register(command, { replace: options.replace ?? false });
2752
- } };
2753
- }
2754
- var SYNC_ICONV_ALIASES = {
2755
- ASCII: "ascii",
2756
- "US-ASCII": "ascii",
2757
- "ANSI_X3.4-1968": "ascii",
2758
- LATIN1: "latin1",
2759
- "LATIN-1": "latin1",
2760
- "ISO-8859-1": "latin1",
2761
- "ISO8859-1": "latin1",
2762
- UTF8: "utf8",
2763
- "UTF-8": "utf8"
2764
- };
2765
- function evalSyncIconv(inBytes, opArgs, readFileSync, writeFileSync) {
2766
- let fromRaw;
2767
- let toRaw;
2768
- let outputFile;
2769
- let discard = false;
2770
- let ended = false;
2771
- const files = [];
2772
- for (let i = 0; i < opArgs.length; i++) {
2773
- const a = opArgs[i];
2774
- if (ended || a === "-" || !a.startsWith("-")) {
2775
- files.push(a);
2776
- continue;
2777
- }
2778
- if (a === "--") {
2779
- ended = true;
2780
- continue;
2781
- }
2782
- if (a === "--silent" || a === "-s") continue;
2783
- if (a === "-c") {
2784
- discard = true;
2785
- continue;
2786
- }
2787
- if (a === "-sc" || a === "-cs") {
2788
- discard = true;
2789
- continue;
2790
- }
2791
- if (a.startsWith("--from-code=")) {
2792
- fromRaw = a.slice(12);
2793
- continue;
2794
- }
2795
- if (a === "--from-code" || a === "-f") {
2796
- fromRaw = opArgs[++i];
2797
- if (!fromRaw) return void 0;
2798
- continue;
2799
- }
2800
- if (a.startsWith("-f") && a.length > 2) {
2801
- fromRaw = a.slice(2);
2802
- continue;
2803
- }
2804
- if (a.startsWith("--to-code=")) {
2805
- toRaw = a.slice(10);
2806
- continue;
2807
- }
2808
- if (a === "--to-code" || a === "-t") {
2809
- toRaw = opArgs[++i];
2810
- if (!toRaw) return void 0;
2811
- continue;
2812
- }
2813
- if (a.startsWith("-t") && a.length > 2) {
2814
- toRaw = a.slice(2);
2815
- continue;
2816
- }
2817
- if (a.startsWith("--output=")) {
2818
- outputFile = a.slice(9);
2819
- if (!outputFile) return void 0;
2820
- continue;
2821
- }
2822
- if (a === "--output" || a === "-o") {
2823
- outputFile = opArgs[++i];
2824
- if (!outputFile) return void 0;
2825
- continue;
2826
- }
2827
- if (a.startsWith("-o") && a.length > 2) {
2828
- outputFile = a.slice(2);
2829
- continue;
2830
- }
2831
- return void 0;
2832
- }
2833
- if (!fromRaw || !toRaw) return void 0;
2834
- if (fromRaw.includes("//")) return void 0;
2835
- const toParts = toRaw.split("//");
2836
- for (let i = 1; i < toParts.length; i++) {
2837
- if (toParts[i].toUpperCase() === "IGNORE") discard = true;
2838
- else return void 0;
2839
- }
2840
- const fromEnc = SYNC_ICONV_ALIASES[fromRaw.toUpperCase()];
2841
- const toEnc = SYNC_ICONV_ALIASES[toParts[0].toUpperCase()];
2842
- if (!fromEnc || !toEnc) return void 0;
2843
- let src = inBytes;
2844
- if (files.length === 1 && files[0] !== "-") {
2845
- if (!readFileSync) return void 0;
2846
- const fBytes = readFileSync(files[0]);
2847
- if (!fBytes || fBytes.byteLength > 16384) return void 0;
2848
- src = fBytes;
2849
- } else if (files.length > 1) {
2850
- if (!readFileSync) return void 0;
2851
- const parts = [];
2852
- let totalLen = 0;
2853
- let stdinUsed = false;
2854
- for (const f of files) {
2855
- let chunk;
2856
- if (f === "-") {
2857
- if (stdinUsed || !inBytes) return void 0;
2858
- stdinUsed = true;
2859
- chunk = inBytes;
2860
- } else {
2861
- chunk = readFileSync(f);
2862
- }
2863
- if (!chunk || totalLen + chunk.byteLength > 16384) return void 0;
2864
- parts.push(chunk);
2865
- totalLen += chunk.byteLength;
2866
- }
2867
- const merged = new Uint8Array(totalLen);
2868
- let pos = 0;
2869
- for (const p of parts) {
2870
- merged.set(p, pos);
2871
- pos += p.byteLength;
2872
- }
2873
- src = merged;
2874
- }
2875
- if (!src || src.byteLength > 16384) return void 0;
2876
- const out = [];
2877
- let offset = 0;
2878
- while (offset < src.byteLength) {
2879
- const first = src[offset];
2880
- let cp = -1;
2881
- let count = 1;
2882
- if (fromEnc === "ascii") {
2883
- if (first < 128) cp = first;
2884
- } else if (fromEnc === "latin1") {
2885
- cp = first;
2886
- } else {
2887
- if (first < 128) {
2888
- cp = first;
2889
- } else if (first >= 194 && first < 224 && offset + 1 < src.byteLength) {
2890
- const b1 = src[offset + 1];
2891
- if ((b1 & 192) === 128) {
2892
- cp = (first & 31) << 6 | b1 & 63;
2893
- count = 2;
2894
- }
2895
- } else if (first >= 224 && first < 240 && offset + 2 < src.byteLength) {
2896
- const b1 = src[offset + 1], b2 = src[offset + 2];
2897
- if ((b1 & 192) === 128 && (b2 & 192) === 128) {
2898
- const val = (first & 15) << 12 | (b1 & 63) << 6 | b2 & 63;
2899
- if (val >= 2048 && (val < 55296 || val > 57343)) {
2900
- cp = val;
2901
- count = 3;
2902
- }
2903
- }
2904
- } else if (first >= 240 && first < 245 && offset + 3 < src.byteLength) {
2905
- const b1 = src[offset + 1], b2 = src[offset + 2], b3 = src[offset + 3];
2906
- if ((b1 & 192) === 128 && (b2 & 192) === 128 && (b3 & 192) === 128) {
2907
- const val = (first & 7) << 18 | (b1 & 63) << 12 | (b2 & 63) << 6 | b3 & 63;
2908
- if (val >= 65536 && val <= 1114111) {
2909
- cp = val;
2910
- count = 4;
2911
- }
2912
- }
2913
- }
2914
- }
2915
- if (cp === -1) {
2916
- if (!discard) return void 0;
2917
- offset += count;
2918
- continue;
2919
- }
2920
- if (toEnc === "ascii") {
2921
- if (cp >= 128) {
2922
- if (!discard) return void 0;
2923
- } else {
2924
- out.push(cp);
2925
- }
2926
- } else if (toEnc === "latin1") {
2927
- if (cp >= 256) {
2928
- if (!discard) return void 0;
2929
- } else {
2930
- out.push(cp);
2931
- }
2932
- } else {
2933
- if (cp < 128) out.push(cp);
2934
- else if (cp < 2048) out.push(192 | cp >> 6, 128 | cp & 63);
2935
- else if (cp < 65536) out.push(224 | cp >> 12, 128 | cp >> 6 & 63, 128 | cp & 63);
2936
- else out.push(240 | cp >> 18, 128 | cp >> 12 & 63, 128 | cp >> 6 & 63, 128 | cp & 63);
2937
- }
2938
- offset += count;
2939
- }
2940
- const outArr = new Uint8Array(out);
2941
- if (outputFile !== void 0) {
2942
- if (!writeFileSync || !writeFileSync(outputFile, outArr)) return void 0;
2943
- return new Uint8Array(0);
2944
- }
2945
- if (out.some((byte) => byte === 0 || byte >= 128)) return void 0;
2946
- return outArr;
2947
- }
2948
-
2949
- export {
2950
- createIconvCommand2 as createIconvCommand,
2951
- createIconvCommands,
2952
- iconvCommands,
2953
- evalSyncIconv
2954
- };
2955
- //# sourceMappingURL=chunk-BRJTAWP5.js.map