@hewliyang/headless-spreadjs 0.0.3 → 0.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 (111) hide show
  1. package/README.md +78 -50
  2. package/dist/cli/abort.d.ts +7 -0
  3. package/dist/cli/abort.d.ts.map +1 -0
  4. package/dist/cli/abort.js +35 -0
  5. package/dist/cli/abort.js.map +1 -0
  6. package/dist/cli/client.d.ts +9 -0
  7. package/dist/cli/client.d.ts.map +1 -0
  8. package/dist/cli/client.js +122 -0
  9. package/dist/cli/client.js.map +1 -0
  10. package/dist/cli/commands/clear.d.ts +3 -1
  11. package/dist/cli/commands/clear.d.ts.map +1 -1
  12. package/dist/cli/commands/clear.js +11 -9
  13. package/dist/cli/commands/clear.js.map +1 -1
  14. package/dist/cli/commands/copy.d.ts +3 -1
  15. package/dist/cli/commands/copy.d.ts.map +1 -1
  16. package/dist/cli/commands/copy.js +5 -2
  17. package/dist/cli/commands/copy.js.map +1 -1
  18. package/dist/cli/commands/create.d.ts +3 -1
  19. package/dist/cli/commands/create.d.ts.map +1 -1
  20. package/dist/cli/commands/create.js +2 -2
  21. package/dist/cli/commands/create.js.map +1 -1
  22. package/dist/cli/commands/csv.d.ts +5 -1
  23. package/dist/cli/commands/csv.d.ts.map +1 -1
  24. package/dist/cli/commands/csv.js +38 -13
  25. package/dist/cli/commands/csv.js.map +1 -1
  26. package/dist/cli/commands/deps.d.ts +11 -0
  27. package/dist/cli/commands/deps.d.ts.map +1 -0
  28. package/dist/cli/commands/deps.js +329 -0
  29. package/dist/cli/commands/deps.js.map +1 -0
  30. package/dist/cli/commands/diff.d.ts +7 -0
  31. package/dist/cli/commands/diff.d.ts.map +1 -0
  32. package/dist/cli/commands/diff.js +235 -0
  33. package/dist/cli/commands/diff.js.map +1 -0
  34. package/dist/cli/commands/eval.d.ts +3 -1
  35. package/dist/cli/commands/eval.d.ts.map +1 -1
  36. package/dist/cli/commands/eval.js +23 -8
  37. package/dist/cli/commands/eval.js.map +1 -1
  38. package/dist/cli/commands/get.d.ts +1 -0
  39. package/dist/cli/commands/get.d.ts.map +1 -1
  40. package/dist/cli/commands/get.js +5 -2
  41. package/dist/cli/commands/get.js.map +1 -1
  42. package/dist/cli/commands/info.d.ts +3 -1
  43. package/dist/cli/commands/info.d.ts.map +1 -1
  44. package/dist/cli/commands/info.js +5 -2
  45. package/dist/cli/commands/info.js.map +1 -1
  46. package/dist/cli/commands/objects.d.ts +3 -1
  47. package/dist/cli/commands/objects.d.ts.map +1 -1
  48. package/dist/cli/commands/objects.js +5 -6
  49. package/dist/cli/commands/objects.js.map +1 -1
  50. package/dist/cli/commands/resize.d.ts +1 -0
  51. package/dist/cli/commands/resize.d.ts.map +1 -1
  52. package/dist/cli/commands/resize.js +67 -29
  53. package/dist/cli/commands/resize.js.map +1 -1
  54. package/dist/cli/commands/rows-cols.d.ts +1 -0
  55. package/dist/cli/commands/rows-cols.d.ts.map +1 -1
  56. package/dist/cli/commands/rows-cols.js +101 -45
  57. package/dist/cli/commands/rows-cols.js.map +1 -1
  58. package/dist/cli/commands/screenshot.d.ts +8 -0
  59. package/dist/cli/commands/screenshot.d.ts.map +1 -0
  60. package/dist/cli/commands/screenshot.js +260 -0
  61. package/dist/cli/commands/screenshot.js.map +1 -0
  62. package/dist/cli/commands/search.d.ts +1 -0
  63. package/dist/cli/commands/search.d.ts.map +1 -1
  64. package/dist/cli/commands/search.js +16 -8
  65. package/dist/cli/commands/search.js.map +1 -1
  66. package/dist/cli/commands/set.d.ts +3 -1
  67. package/dist/cli/commands/set.d.ts.map +1 -1
  68. package/dist/cli/commands/set.js +72 -25
  69. package/dist/cli/commands/set.js.map +1 -1
  70. package/dist/cli/commands/sheet.d.ts +3 -1
  71. package/dist/cli/commands/sheet.d.ts.map +1 -1
  72. package/dist/cli/commands/sheet.js +20 -10
  73. package/dist/cli/commands/sheet.js.map +1 -1
  74. package/dist/cli/context.d.ts +18 -6
  75. package/dist/cli/context.d.ts.map +1 -1
  76. package/dist/cli/context.js +93 -8
  77. package/dist/cli/context.js.map +1 -1
  78. package/dist/cli/daemon-entry.d.ts +3 -0
  79. package/dist/cli/daemon-entry.d.ts.map +1 -0
  80. package/dist/cli/daemon-entry.js +4 -0
  81. package/dist/cli/daemon-entry.js.map +1 -0
  82. package/dist/cli/daemon.d.ts +4 -0
  83. package/dist/cli/daemon.d.ts.map +1 -0
  84. package/dist/cli/daemon.js +330 -0
  85. package/dist/cli/daemon.js.map +1 -0
  86. package/dist/cli/dispatch.d.ts +5 -0
  87. package/dist/cli/dispatch.d.ts.map +1 -0
  88. package/dist/cli/dispatch.js +353 -0
  89. package/dist/cli/dispatch.js.map +1 -0
  90. package/dist/cli/file-cache.d.ts +23 -0
  91. package/dist/cli/file-cache.d.ts.map +1 -0
  92. package/dist/cli/file-cache.js +102 -0
  93. package/dist/cli/file-cache.js.map +1 -0
  94. package/dist/cli/index.js +11 -0
  95. package/dist/cli/index.js.map +1 -1
  96. package/dist/cli/main.d.ts.map +1 -1
  97. package/dist/cli/main.js +188 -159
  98. package/dist/cli/main.js.map +1 -1
  99. package/dist/cli/output.d.ts +9 -6
  100. package/dist/cli/output.d.ts.map +1 -1
  101. package/dist/cli/output.js +36 -8
  102. package/dist/cli/output.js.map +1 -1
  103. package/dist/cli/styles.d.ts +14 -19
  104. package/dist/cli/styles.d.ts.map +1 -1
  105. package/dist/cli/styles.js +65 -39
  106. package/dist/cli/styles.js.map +1 -1
  107. package/dist/excel-file.d.ts +3 -1
  108. package/dist/excel-file.d.ts.map +1 -1
  109. package/dist/excel-file.js +50 -6
  110. package/dist/excel-file.js.map +1 -1
  111. package/package.json +9 -1
@@ -0,0 +1,5 @@
1
+ export declare const USAGE = "Usage: hsx <command> [args]\n\nCommands:\n create <file> Create a new Excel file\n info <file> Show workbook metadata\n get <file> <ref> Read cells (Sheet1!A1:C10)\n csv <file> <ref> [--mode M] [--formulas] Read range as CSV\n set <file> <ref> [json] Write cells (JSON from arg or stdin)\n clear <file> <ref> [--type all|styles] Clear a range (default: values only)\n search <file> <term> [--sheet S] [--regex] Search for values across sheets\n copy <file> <src> <dst> Copy range (formulas + styles)\n diff <left-file> <right-file> Compare workbooks (value + formula)\n deps <file> <cell> [--depth N|--recursive] Trace precedents (what this cell reads)\n refs <file> <cell> [--depth N|--recursive] Trace dependents (what reads this cell)\n sheet <file> <op> [args] list | create | delete | rename\n rc <file> <op> <dim> [--ref R] [--count N] Insert/delete/hide/freeze rows or columns\n resize <file> [--columns A:D] [--width N] Resize column widths or row heights\n objects <file> [--sheet <name>] List charts, tables, pivots\n screenshot <file> [ref] [-o out.png] Screenshot workbook or range as PNG\n eval <file> [code] Execute arbitrary JS (code from arg or stdin)\n daemon start Start the background daemon\n daemon stop Stop the background daemon\n daemon status Show daemon status\n daemon flush Flush buffered workbook writes\n\nOptions:\n --no-daemon Skip daemon, run directly\n --timeout <seconds> Command timeout (default: 30s)\n\nDiff options:\n --inline-limit <n> Max inline diff rows before spooling to tmp file\n --preview-limit <n> Number of diff rows kept in stdout JSON\n --epsilon <n> Relative tolerance for numeric comparison (default: 1e-8)\n\nCSV options:\n --mode value|formula|both value: calculated values (default)\n formula: formula text for formula cells\n both: value and formula (e.g. \"5 | =B2+1\")\n --formulas shorthand for --mode formula\n\nDependency tracing options:\n --depth <n> Trace up to n hops (default: 1)\n --recursive Shorthand for --depth 50\n --max-formulas <n> refs: cap scanned formula cells (default: 250000)\n\nReference format:\n Sheet1!A1:C10 range on named sheet\n A1:C10 range on active sheet\n A1 single cell\n\nGlobals available in eval:\n workbook SpreadJS Workbook instance\n sheet Active worksheet\n GC GC.Spread.Sheets namespace\n file ExcelFile wrapper (batch, save, toJSON)\n range(ref) SpreadJS Range resolved from A1 ref (active sheet by default)";
2
+ export declare function dispatch(args: string[], options?: {
3
+ signal?: AbortSignal | null;
4
+ }): Promise<void>;
5
+ //# sourceMappingURL=dispatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/cli/dispatch.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,KAAK,w/FAuDyD,CAAC;AAqJ5E,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,GACxC,OAAO,CAAC,IAAI,CAAC,CAyMf"}
@@ -0,0 +1,353 @@
1
+ import { clear } from "./commands/clear.js";
2
+ import { copy } from "./commands/copy.js";
3
+ import { create } from "./commands/create.js";
4
+ import { csv } from "./commands/csv.js";
5
+ import { deps, refs } from "./commands/deps.js";
6
+ import { diff } from "./commands/diff.js";
7
+ import { evalCode } from "./commands/eval.js";
8
+ import { get } from "./commands/get.js";
9
+ import { info } from "./commands/info.js";
10
+ import { objects } from "./commands/objects.js";
11
+ import { resize } from "./commands/resize.js";
12
+ import { rowsCols } from "./commands/rows-cols.js";
13
+ import { screenshot } from "./commands/screenshot.js";
14
+ import { search } from "./commands/search.js";
15
+ import { set } from "./commands/set.js";
16
+ import { sheet } from "./commands/sheet.js";
17
+ import { writeStderr, writeStdout } from "./output.js";
18
+ export const USAGE = `Usage: hsx <command> [args]
19
+
20
+ Commands:
21
+ create <file> Create a new Excel file
22
+ info <file> Show workbook metadata
23
+ get <file> <ref> Read cells (Sheet1!A1:C10)
24
+ csv <file> <ref> [--mode M] [--formulas] Read range as CSV
25
+ set <file> <ref> [json] Write cells (JSON from arg or stdin)
26
+ clear <file> <ref> [--type all|styles] Clear a range (default: values only)
27
+ search <file> <term> [--sheet S] [--regex] Search for values across sheets
28
+ copy <file> <src> <dst> Copy range (formulas + styles)
29
+ diff <left-file> <right-file> Compare workbooks (value + formula)
30
+ deps <file> <cell> [--depth N|--recursive] Trace precedents (what this cell reads)
31
+ refs <file> <cell> [--depth N|--recursive] Trace dependents (what reads this cell)
32
+ sheet <file> <op> [args] list | create | delete | rename
33
+ rc <file> <op> <dim> [--ref R] [--count N] Insert/delete/hide/freeze rows or columns
34
+ resize <file> [--columns A:D] [--width N] Resize column widths or row heights
35
+ objects <file> [--sheet <name>] List charts, tables, pivots
36
+ screenshot <file> [ref] [-o out.png] Screenshot workbook or range as PNG
37
+ eval <file> [code] Execute arbitrary JS (code from arg or stdin)
38
+ daemon start Start the background daemon
39
+ daemon stop Stop the background daemon
40
+ daemon status Show daemon status
41
+ daemon flush Flush buffered workbook writes
42
+
43
+ Options:
44
+ --no-daemon Skip daemon, run directly
45
+ --timeout <seconds> Command timeout (default: 30s)
46
+
47
+ Diff options:
48
+ --inline-limit <n> Max inline diff rows before spooling to tmp file
49
+ --preview-limit <n> Number of diff rows kept in stdout JSON
50
+ --epsilon <n> Relative tolerance for numeric comparison (default: 1e-8)
51
+
52
+ CSV options:
53
+ --mode value|formula|both value: calculated values (default)
54
+ formula: formula text for formula cells
55
+ both: value and formula (e.g. "5 | =B2+1")
56
+ --formulas shorthand for --mode formula
57
+
58
+ Dependency tracing options:
59
+ --depth <n> Trace up to n hops (default: 1)
60
+ --recursive Shorthand for --depth 50
61
+ --max-formulas <n> refs: cap scanned formula cells (default: 250000)
62
+
63
+ Reference format:
64
+ Sheet1!A1:C10 range on named sheet
65
+ A1:C10 range on active sheet
66
+ A1 single cell
67
+
68
+ Globals available in eval:
69
+ workbook SpreadJS Workbook instance
70
+ sheet Active worksheet
71
+ GC GC.Spread.Sheets namespace
72
+ file ExcelFile wrapper (batch, save, toJSON)
73
+ range(ref) SpreadJS Range resolved from A1 ref (active sheet by default)`;
74
+ function flag(args, name) {
75
+ const idx = args.indexOf(name);
76
+ return idx !== -1 ? args[idx + 1] : undefined;
77
+ }
78
+ function hasFlag(args, name) {
79
+ return args.includes(name);
80
+ }
81
+ function requireArg(args, index, usage) {
82
+ const value = args[index];
83
+ if (!value || value.startsWith("--")) {
84
+ throw new Error(`Usage: hsx ${usage}`);
85
+ }
86
+ return value;
87
+ }
88
+ function parseOptionalInt(value, optionName) {
89
+ if (value === undefined)
90
+ return undefined;
91
+ const parsed = Number.parseInt(value, 10);
92
+ if (Number.isNaN(parsed)) {
93
+ throw new Error(`Invalid value for ${optionName}: ${value}`);
94
+ }
95
+ return parsed;
96
+ }
97
+ function parseOptionalFloat(value, optionName) {
98
+ if (value === undefined)
99
+ return undefined;
100
+ const parsed = Number.parseFloat(value);
101
+ if (Number.isNaN(parsed)) {
102
+ throw new Error(`Invalid value for ${optionName}: ${value}`);
103
+ }
104
+ return parsed;
105
+ }
106
+ function parseClearType(value) {
107
+ if (!value)
108
+ return "values";
109
+ if (value === "values" || value === "styles" || value === "all") {
110
+ return value;
111
+ }
112
+ throw new Error(`Invalid value for --type: ${value}`);
113
+ }
114
+ function parseCsvMode(args) {
115
+ let explicitMode;
116
+ for (let i = 0; i < args.length; i++) {
117
+ const arg = args[i];
118
+ if (arg === "--mode") {
119
+ const next = args[i + 1];
120
+ if (!next || next.startsWith("--")) {
121
+ throw new Error("Usage: hsx csv <file> <ref> [--mode value|formula|both]");
122
+ }
123
+ explicitMode = next;
124
+ i++;
125
+ continue;
126
+ }
127
+ if (arg.startsWith("--mode=")) {
128
+ const value = arg.slice("--mode=".length);
129
+ if (!value) {
130
+ throw new Error("Usage: hsx csv <file> <ref> [--mode value|formula|both]");
131
+ }
132
+ explicitMode = value;
133
+ }
134
+ }
135
+ if (explicitMode) {
136
+ if (explicitMode === "value" ||
137
+ explicitMode === "formula" ||
138
+ explicitMode === "both") {
139
+ return explicitMode;
140
+ }
141
+ throw new Error(`Invalid --mode value: ${explicitMode}. Expected value|formula|both`);
142
+ }
143
+ return hasFlag(args, "--formulas") ? "formula" : "value";
144
+ }
145
+ function parseCsvPositionalArgs(args) {
146
+ const positional = [];
147
+ for (let i = 0; i < args.length; i++) {
148
+ const arg = args[i];
149
+ if (arg === "--mode") {
150
+ i++;
151
+ continue;
152
+ }
153
+ if (arg.startsWith("--mode=") || arg === "--formulas") {
154
+ continue;
155
+ }
156
+ if (arg.startsWith("--")) {
157
+ continue;
158
+ }
159
+ positional.push(arg);
160
+ }
161
+ const file = positional[0];
162
+ const ref = positional[1];
163
+ if (!file || !ref) {
164
+ throw new Error("Usage: hsx csv <file> <ref> [--mode value|formula|both]");
165
+ }
166
+ return { file, ref };
167
+ }
168
+ function parseTraceDepth(args) {
169
+ const hasDepthFlag = hasFlag(args, "--depth");
170
+ const rawDepth = flag(args, "--depth");
171
+ if (hasDepthFlag && (!rawDepth || rawDepth.startsWith("--"))) {
172
+ throw new Error("Usage: --depth <n>");
173
+ }
174
+ if (rawDepth !== undefined) {
175
+ const depth = Number.parseInt(rawDepth, 10);
176
+ if (Number.isNaN(depth) || depth <= 0) {
177
+ throw new Error(`Invalid value for --depth: ${rawDepth}`);
178
+ }
179
+ return depth;
180
+ }
181
+ return hasFlag(args, "--recursive") ? 50 : 1;
182
+ }
183
+ export async function dispatch(args, options) {
184
+ const signal = options?.signal;
185
+ const command = args[0];
186
+ const rest = args.slice(1);
187
+ switch (command) {
188
+ case "create": {
189
+ const file = requireArg(rest, 0, "create <file>");
190
+ await create(file, { signal });
191
+ break;
192
+ }
193
+ case "info": {
194
+ const file = requireArg(rest, 0, "info <file>");
195
+ await info(file, { signal });
196
+ break;
197
+ }
198
+ case "get": {
199
+ const file = requireArg(rest, 0, "get <file> <ref>");
200
+ const ref = requireArg(rest, 1, "get <file> <ref>");
201
+ const styles = !hasFlag(rest, "--no-styles");
202
+ await get(file, ref, { styles, signal });
203
+ break;
204
+ }
205
+ case "csv": {
206
+ const { file, ref } = parseCsvPositionalArgs(rest);
207
+ const mode = parseCsvMode(rest);
208
+ await csv(file, ref, { signal, mode });
209
+ break;
210
+ }
211
+ case "set": {
212
+ const file = requireArg(rest, 0, "set <file> <ref> [json]");
213
+ const ref = requireArg(rest, 1, "set <file> <ref> [json]");
214
+ const json = rest[2];
215
+ await set(file, ref, json, { signal });
216
+ break;
217
+ }
218
+ case "clear": {
219
+ const file = requireArg(rest, 0, "clear <file> <ref>");
220
+ const ref = requireArg(rest, 1, "clear <file> <ref>");
221
+ await clear(file, ref, parseClearType(flag(rest, "--type")), { signal });
222
+ break;
223
+ }
224
+ case "search": {
225
+ const file = requireArg(rest, 0, "search <file> <term>");
226
+ const term = requireArg(rest, 1, "search <file> <term>");
227
+ await search(file, term, {
228
+ sheet: flag(rest, "--sheet"),
229
+ matchCase: hasFlag(rest, "--match-case"),
230
+ regex: hasFlag(rest, "--regex"),
231
+ maxResults: parseOptionalInt(flag(rest, "--max"), "--max"),
232
+ signal,
233
+ });
234
+ break;
235
+ }
236
+ case "copy": {
237
+ const file = requireArg(rest, 0, "copy <file> <src> <dst>");
238
+ const src = requireArg(rest, 1, "copy <file> <src> <dst>");
239
+ const dst = requireArg(rest, 2, "copy <file> <src> <dst>");
240
+ await copy(file, src, dst, { signal });
241
+ break;
242
+ }
243
+ case "diff": {
244
+ const leftFile = requireArg(rest, 0, "diff <left-file> <right-file>");
245
+ const rightFile = requireArg(rest, 1, "diff <left-file> <right-file>");
246
+ await diff(leftFile, rightFile, {
247
+ inlineLimit: parseOptionalInt(flag(rest, "--inline-limit"), "--inline-limit"),
248
+ previewLimit: parseOptionalInt(flag(rest, "--preview-limit"), "--preview-limit"),
249
+ epsilon: parseOptionalFloat(flag(rest, "--epsilon"), "--epsilon"),
250
+ signal,
251
+ });
252
+ break;
253
+ }
254
+ case "deps": {
255
+ const file = requireArg(rest, 0, "deps <file> <cell>");
256
+ const cell = requireArg(rest, 1, "deps <file> <cell>");
257
+ await deps(file, cell, {
258
+ depth: parseTraceDepth(rest),
259
+ signal,
260
+ });
261
+ break;
262
+ }
263
+ case "refs": {
264
+ const file = requireArg(rest, 0, "refs <file> <cell>");
265
+ const cell = requireArg(rest, 1, "refs <file> <cell>");
266
+ await refs(file, cell, {
267
+ depth: parseTraceDepth(rest),
268
+ maxFormulaCells: parseOptionalInt(flag(rest, "--max-formulas"), "--max-formulas"),
269
+ signal,
270
+ });
271
+ break;
272
+ }
273
+ case "sheet": {
274
+ const file = requireArg(rest, 0, "sheet <file> <op> [args]");
275
+ const op = requireArg(rest, 1, "sheet <file> <op> [args]");
276
+ const opArgs = rest.slice(2);
277
+ await sheet(file, op, opArgs, { signal });
278
+ break;
279
+ }
280
+ case "rc": {
281
+ const file = requireArg(rest, 0, "rc <file> <op> <dim>");
282
+ const opRaw = requireArg(rest, 1, "rc <file> <op> <dim>");
283
+ const dimRaw = requireArg(rest, 2, "rc <file> <op> <dim>");
284
+ const validOps = new Set([
285
+ "insert",
286
+ "delete",
287
+ "hide",
288
+ "unhide",
289
+ "freeze",
290
+ "unfreeze",
291
+ ]);
292
+ const dimAliases = {
293
+ rows: "rows",
294
+ row: "rows",
295
+ columns: "columns",
296
+ column: "columns",
297
+ cols: "columns",
298
+ col: "columns",
299
+ };
300
+ if (!validOps.has(opRaw)) {
301
+ throw new Error(`Invalid rc operation: ${opRaw}`);
302
+ }
303
+ const dim = dimAliases[dimRaw.toLowerCase()];
304
+ if (!dim) {
305
+ throw new Error(`Invalid rc dimension: ${dimRaw}. Expected rows|columns`);
306
+ }
307
+ await rowsCols(file, opRaw, dim, {
308
+ sheet: flag(rest, "--sheet"),
309
+ ref: flag(rest, "--ref"),
310
+ count: parseOptionalInt(flag(rest, "--count"), "--count"),
311
+ signal,
312
+ });
313
+ break;
314
+ }
315
+ case "resize": {
316
+ const file = requireArg(rest, 0, "resize <file> [options]");
317
+ await resize(file, flag(rest, "--sheet"), {
318
+ columns: flag(rest, "--columns"),
319
+ rows: flag(rest, "--rows"),
320
+ width: parseOptionalFloat(flag(rest, "--width"), "--width"),
321
+ height: parseOptionalFloat(flag(rest, "--height"), "--height"),
322
+ signal,
323
+ });
324
+ break;
325
+ }
326
+ case "objects": {
327
+ const file = requireArg(rest, 0, "objects <file>");
328
+ await objects(file, flag(rest, "--sheet"), { signal });
329
+ break;
330
+ }
331
+ case "screenshot": {
332
+ const file = requireArg(rest, 0, "screenshot <file> [ref] [-o out.png]");
333
+ const ref = rest[1] && !rest[1].startsWith("-") ? rest[1] : undefined;
334
+ await screenshot(file, {
335
+ ref,
336
+ out: flag(rest, "-o") ?? flag(rest, "--out"),
337
+ signal,
338
+ });
339
+ break;
340
+ }
341
+ case "eval": {
342
+ const file = requireArg(rest, 0, "eval <file> [code]");
343
+ const code = rest[1];
344
+ await evalCode(file, code, { signal });
345
+ break;
346
+ }
347
+ default:
348
+ writeStderr(`Unknown command: ${command}\n`);
349
+ writeStdout(`${USAGE}\n`);
350
+ throw new Error(`Unknown command: ${command}`);
351
+ }
352
+ }
353
+ //# sourceMappingURL=dispatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/cli/dispatch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { ExcelFile } from "../index.js";
2
+ export declare class FileCache {
3
+ private readonly maxSize;
4
+ private cache;
5
+ constructor(maxSize?: number);
6
+ get maxCacheSize(): number;
7
+ private key;
8
+ private getMtime;
9
+ get(filePath: string, cwd: string): Promise<{
10
+ file: ExcelFile;
11
+ absPath: string;
12
+ } | null>;
13
+ put(filePath: string, cwd: string, file: ExcelFile): Promise<void>;
14
+ markDirty(filePath: string, cwd: string): void;
15
+ updateMtime(filePath: string, cwd: string): Promise<void>;
16
+ isDirty(filePath: string, cwd: string): boolean;
17
+ invalidate(filePath: string, cwd: string): void;
18
+ flushDirty(): Promise<number>;
19
+ get dirtyCount(): number;
20
+ clear(): void;
21
+ get size(): number;
22
+ }
23
+ //# sourceMappingURL=file-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-cache.d.ts","sourceRoot":"","sources":["../../src/cli/file-cache.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAS7C,qBAAa,SAAS;IAGR,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,KAAK,CAAiC;gBAEjB,OAAO,SAAK;IAEzC,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,OAAO,CAAC,GAAG;YAIG,QAAQ;IAQhB,GAAG,CACP,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAkBjD,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBxE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAMxC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/D,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAK/C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAanC,IAAI,UAAU,IAAI,MAAM,CAMvB;IAED,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
@@ -0,0 +1,102 @@
1
+ import { stat } from "node:fs/promises";
2
+ import { resolve } from "node:path";
3
+ export class FileCache {
4
+ maxSize;
5
+ cache = new Map();
6
+ constructor(maxSize = 10) {
7
+ this.maxSize = maxSize;
8
+ }
9
+ get maxCacheSize() {
10
+ return this.maxSize;
11
+ }
12
+ key(filePath, cwd) {
13
+ return resolve(cwd, filePath);
14
+ }
15
+ async getMtime(absPath) {
16
+ try {
17
+ return (await stat(absPath)).mtimeMs;
18
+ }
19
+ catch {
20
+ return -1;
21
+ }
22
+ }
23
+ async get(filePath, cwd) {
24
+ const absPath = this.key(filePath, cwd);
25
+ const entry = this.cache.get(absPath);
26
+ if (!entry)
27
+ return null;
28
+ if (!entry.dirty) {
29
+ const currentMtime = await this.getMtime(absPath);
30
+ if (currentMtime !== entry.mtime) {
31
+ this.cache.delete(absPath);
32
+ return null;
33
+ }
34
+ }
35
+ this.cache.delete(absPath);
36
+ this.cache.set(absPath, entry);
37
+ return { file: entry.file, absPath };
38
+ }
39
+ async put(filePath, cwd, file) {
40
+ const absPath = this.key(filePath, cwd);
41
+ const mtime = await this.getMtime(absPath);
42
+ if (this.cache.size >= this.maxSize && !this.cache.has(absPath)) {
43
+ const oldest = this.cache.keys().next().value;
44
+ if (oldest !== undefined) {
45
+ const entry = this.cache.get(oldest);
46
+ if (entry?.dirty) {
47
+ await entry.file.save(entry.absPath);
48
+ }
49
+ this.cache.delete(oldest);
50
+ }
51
+ }
52
+ this.cache.set(absPath, { file, absPath, mtime, dirty: false });
53
+ }
54
+ markDirty(filePath, cwd) {
55
+ const absPath = this.key(filePath, cwd);
56
+ const entry = this.cache.get(absPath);
57
+ if (entry)
58
+ entry.dirty = true;
59
+ }
60
+ async updateMtime(filePath, cwd) {
61
+ const absPath = this.key(filePath, cwd);
62
+ const entry = this.cache.get(absPath);
63
+ if (entry) {
64
+ entry.mtime = await this.getMtime(absPath);
65
+ entry.dirty = false;
66
+ }
67
+ }
68
+ isDirty(filePath, cwd) {
69
+ const entry = this.cache.get(this.key(filePath, cwd));
70
+ return !!entry?.dirty;
71
+ }
72
+ invalidate(filePath, cwd) {
73
+ this.cache.delete(this.key(filePath, cwd));
74
+ }
75
+ async flushDirty() {
76
+ let flushed = 0;
77
+ for (const entry of this.cache.values()) {
78
+ if (entry.dirty) {
79
+ await entry.file.save(entry.absPath);
80
+ entry.mtime = await this.getMtime(entry.absPath);
81
+ entry.dirty = false;
82
+ flushed++;
83
+ }
84
+ }
85
+ return flushed;
86
+ }
87
+ get dirtyCount() {
88
+ let count = 0;
89
+ for (const entry of this.cache.values()) {
90
+ if (entry.dirty)
91
+ count++;
92
+ }
93
+ return count;
94
+ }
95
+ clear() {
96
+ this.cache.clear();
97
+ }
98
+ get size() {
99
+ return this.cache.size;
100
+ }
101
+ }
102
+ //# sourceMappingURL=file-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-cache.js","sourceRoot":"","sources":["../../src/cli/file-cache.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -20,9 +20,20 @@ function toErrorMessage(reason) {
20
20
  return message;
21
21
  }
22
22
  function reportFatalError(reason) {
23
+ const err = reason;
24
+ if (err?.code === "EPIPE") {
25
+ process.exit(0);
26
+ }
23
27
  process.stderr.write(`${JSON.stringify({ error: toErrorMessage(reason) })}\n`);
24
28
  process.exit(1);
25
29
  }
30
+ function handlePipeError(err) {
31
+ if (err.code === "EPIPE") {
32
+ process.exit(0);
33
+ }
34
+ }
35
+ process.stdout.on("error", handlePipeError);
36
+ process.stderr.on("error", handlePipeError);
26
37
  process.on("uncaughtException", reportFatalError);
27
38
  process.on("unhandledRejection", reportFatalError);
28
39
  const { main } = await import("./main.js");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,MAAM,wBAAwB,GAAG,GAAG,CAAC;AACrC,MAAM,kCAAkC,GACtC,mFAAmF,CAAC;AAEtF,SAAS,cAAc,CAAC,MAAe;IACrC,MAAM,OAAO,GACX,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,mCAAmC,GACvC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC9B,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QACvB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QACvB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxB,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC5B,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE9B,IACE,mCAAmC;QACnC,OAAO,CAAC,MAAM,GAAG,wBAAwB,EACzC,CAAC;QACD,OAAO,kCAAkC,CAAC;IAC5C,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAAC;QAC9C,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,wBAAwB,CAAC,KAAK,CAAC;IAC5D,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAe;IACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CACzD,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;AAClD,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;AAEnD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;AAC3C,MAAM,IAAI,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,MAAM,wBAAwB,GAAG,GAAG,CAAC;AACrC,MAAM,kCAAkC,GACtC,mFAAmF,CAAC;AAEtF,SAAS,cAAc,CAAC,MAAe;IACrC,MAAM,OAAO,GACX,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,mCAAmC,GACvC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC9B,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QACvB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QACvB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxB,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC5B,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE9B,IACE,mCAAmC;QACnC,OAAO,CAAC,MAAM,GAAG,wBAAwB,EACzC,CAAC;QACD,OAAO,kCAAkC,CAAC;IAC5C,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAAC;QAC9C,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,wBAAwB,CAAC,KAAK,CAAC;IAC5D,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAe;IACvC,MAAM,GAAG,GAAG,MAA+B,CAAC;IAC5C,IAAI,GAAG,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CACzD,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,eAAe,CAAC,GAA0B;IACjD,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAC5C,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAE5C,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;AAClD,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;AAEnD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;AAC3C,MAAM,IAAI,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AAoDA,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAgJ1C"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AA8IA,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAoI1C"}