@hewliyang/headless-spreadjs 0.0.3 → 0.0.4
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.
- package/README.md +78 -50
- package/dist/cli/abort.d.ts +7 -0
- package/dist/cli/abort.d.ts.map +1 -0
- package/dist/cli/abort.js +35 -0
- package/dist/cli/abort.js.map +1 -0
- package/dist/cli/client.d.ts +9 -0
- package/dist/cli/client.d.ts.map +1 -0
- package/dist/cli/client.js +122 -0
- package/dist/cli/client.js.map +1 -0
- package/dist/cli/commands/clear.d.ts +3 -1
- package/dist/cli/commands/clear.d.ts.map +1 -1
- package/dist/cli/commands/clear.js +11 -9
- package/dist/cli/commands/clear.js.map +1 -1
- package/dist/cli/commands/copy.d.ts +3 -1
- package/dist/cli/commands/copy.d.ts.map +1 -1
- package/dist/cli/commands/copy.js +5 -2
- package/dist/cli/commands/copy.js.map +1 -1
- package/dist/cli/commands/create.d.ts +3 -1
- package/dist/cli/commands/create.d.ts.map +1 -1
- package/dist/cli/commands/create.js +2 -2
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/csv.d.ts +5 -1
- package/dist/cli/commands/csv.d.ts.map +1 -1
- package/dist/cli/commands/csv.js +38 -13
- package/dist/cli/commands/csv.js.map +1 -1
- package/dist/cli/commands/deps.d.ts +11 -0
- package/dist/cli/commands/deps.d.ts.map +1 -0
- package/dist/cli/commands/deps.js +329 -0
- package/dist/cli/commands/deps.js.map +1 -0
- package/dist/cli/commands/diff.d.ts +7 -0
- package/dist/cli/commands/diff.d.ts.map +1 -0
- package/dist/cli/commands/diff.js +235 -0
- package/dist/cli/commands/diff.js.map +1 -0
- package/dist/cli/commands/eval.d.ts +3 -1
- package/dist/cli/commands/eval.d.ts.map +1 -1
- package/dist/cli/commands/eval.js +23 -8
- package/dist/cli/commands/eval.js.map +1 -1
- package/dist/cli/commands/get.d.ts +1 -0
- package/dist/cli/commands/get.d.ts.map +1 -1
- package/dist/cli/commands/get.js +5 -2
- package/dist/cli/commands/get.js.map +1 -1
- package/dist/cli/commands/info.d.ts +3 -1
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +5 -2
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/objects.d.ts +3 -1
- package/dist/cli/commands/objects.d.ts.map +1 -1
- package/dist/cli/commands/objects.js +5 -6
- package/dist/cli/commands/objects.js.map +1 -1
- package/dist/cli/commands/resize.d.ts +1 -0
- package/dist/cli/commands/resize.d.ts.map +1 -1
- package/dist/cli/commands/resize.js +67 -29
- package/dist/cli/commands/resize.js.map +1 -1
- package/dist/cli/commands/rows-cols.d.ts +1 -0
- package/dist/cli/commands/rows-cols.d.ts.map +1 -1
- package/dist/cli/commands/rows-cols.js +101 -45
- package/dist/cli/commands/rows-cols.js.map +1 -1
- package/dist/cli/commands/screenshot.d.ts +8 -0
- package/dist/cli/commands/screenshot.d.ts.map +1 -0
- package/dist/cli/commands/screenshot.js +260 -0
- package/dist/cli/commands/screenshot.js.map +1 -0
- package/dist/cli/commands/search.d.ts +1 -0
- package/dist/cli/commands/search.d.ts.map +1 -1
- package/dist/cli/commands/search.js +16 -8
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/set.d.ts +3 -1
- package/dist/cli/commands/set.d.ts.map +1 -1
- package/dist/cli/commands/set.js +72 -25
- package/dist/cli/commands/set.js.map +1 -1
- package/dist/cli/commands/sheet.d.ts +3 -1
- package/dist/cli/commands/sheet.d.ts.map +1 -1
- package/dist/cli/commands/sheet.js +20 -10
- package/dist/cli/commands/sheet.js.map +1 -1
- package/dist/cli/context.d.ts +18 -6
- package/dist/cli/context.d.ts.map +1 -1
- package/dist/cli/context.js +93 -8
- package/dist/cli/context.js.map +1 -1
- package/dist/cli/daemon-entry.d.ts +3 -0
- package/dist/cli/daemon-entry.d.ts.map +1 -0
- package/dist/cli/daemon-entry.js +4 -0
- package/dist/cli/daemon-entry.js.map +1 -0
- package/dist/cli/daemon.d.ts +4 -0
- package/dist/cli/daemon.d.ts.map +1 -0
- package/dist/cli/daemon.js +330 -0
- package/dist/cli/daemon.js.map +1 -0
- package/dist/cli/dispatch.d.ts +5 -0
- package/dist/cli/dispatch.d.ts.map +1 -0
- package/dist/cli/dispatch.js +353 -0
- package/dist/cli/dispatch.js.map +1 -0
- package/dist/cli/file-cache.d.ts +23 -0
- package/dist/cli/file-cache.d.ts.map +1 -0
- package/dist/cli/file-cache.js +102 -0
- package/dist/cli/file-cache.js.map +1 -0
- package/dist/cli/index.js +11 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +188 -159
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/output.d.ts +9 -6
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +36 -8
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/styles.d.ts +14 -19
- package/dist/cli/styles.d.ts.map +1 -1
- package/dist/cli/styles.js +65 -39
- package/dist/cli/styles.js.map +1 -1
- package/dist/excel-file.d.ts +3 -1
- package/dist/excel-file.d.ts.map +1 -1
- package/dist/excel-file.js +50 -6
- package/dist/excel-file.js.map +1 -1
- 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");
|
package/dist/cli/index.js.map
CHANGED
|
@@ -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"}
|
package/dist/cli/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AA8IA,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAoI1C"}
|