@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.
- 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
package/dist/cli/main.js
CHANGED
|
@@ -1,181 +1,210 @@
|
|
|
1
1
|
import { createRequire } from "node:module";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
import { get } from "./commands/get.js";
|
|
8
|
-
import { info } from "./commands/info.js";
|
|
9
|
-
import { objects } from "./commands/objects.js";
|
|
10
|
-
import { resize } from "./commands/resize.js";
|
|
11
|
-
import { rowsCols } from "./commands/rows-cols.js";
|
|
12
|
-
import { search } from "./commands/search.js";
|
|
13
|
-
import { set } from "./commands/set.js";
|
|
14
|
-
import { sheet } from "./commands/sheet.js";
|
|
15
|
-
const USAGE = `Usage: hsx <command> [args]
|
|
16
|
-
|
|
17
|
-
Commands:
|
|
18
|
-
create <file> Create a new Excel file
|
|
19
|
-
info <file> Show workbook metadata
|
|
20
|
-
get <file> <ref> Read cells (Sheet1!A1:C10)
|
|
21
|
-
csv <file> <ref> Read range as CSV
|
|
22
|
-
set <file> <ref> [json] Write cells (JSON from arg or stdin)
|
|
23
|
-
clear <file> <ref> [--type all|styles] Clear a range (default: values only)
|
|
24
|
-
search <file> <term> [--sheet S] [--regex] Search for values across sheets
|
|
25
|
-
copy <file> <src> <dst> Copy range (formulas + styles)
|
|
26
|
-
sheet <file> <op> [args] list | create | delete | rename
|
|
27
|
-
rc <file> <op> <dim> [--ref R] [--count N] Insert/delete/hide/freeze rows or columns
|
|
28
|
-
resize <file> [--columns A:D] [--width N] Resize column widths or row heights
|
|
29
|
-
objects <file> [--sheet <name>] List charts, tables, pivots
|
|
30
|
-
eval <file> [code] Execute arbitrary JS (code from arg or stdin)
|
|
31
|
-
|
|
32
|
-
Reference format:
|
|
33
|
-
Sheet1!A1:C10 range on named sheet
|
|
34
|
-
A1:C10 range on active sheet
|
|
35
|
-
A1 single cell
|
|
36
|
-
|
|
37
|
-
Globals available in eval:
|
|
38
|
-
workbook SpreadJS Workbook instance
|
|
39
|
-
sheet Active worksheet
|
|
40
|
-
GC GC.Spread.Sheets namespace
|
|
41
|
-
file ExcelFile wrapper (batch, save, toJSON)`;
|
|
42
|
-
function flag(args, name) {
|
|
43
|
-
const idx = args.indexOf(name);
|
|
44
|
-
return idx !== -1 ? args[idx + 1] : undefined;
|
|
45
|
-
}
|
|
2
|
+
import { registerSignalTimeout } from "./abort.js";
|
|
3
|
+
import { spawnDaemon, tryDaemon, tryExistingDaemon } from "./client.js";
|
|
4
|
+
import { dispatch, USAGE } from "./dispatch.js";
|
|
5
|
+
import { createIoContext, runWithIo } from "./output.js";
|
|
6
|
+
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
46
7
|
function hasFlag(args, name) {
|
|
47
8
|
return args.includes(name);
|
|
48
9
|
}
|
|
10
|
+
function parseTimeoutValue(raw) {
|
|
11
|
+
const value = raw.trim();
|
|
12
|
+
if (!/^\d+(\.\d+)?$/.test(value)) {
|
|
13
|
+
throw new Error("Invalid --timeout value (expected seconds)");
|
|
14
|
+
}
|
|
15
|
+
const seconds = Number.parseFloat(value);
|
|
16
|
+
if (!Number.isFinite(seconds) || seconds <= 0) {
|
|
17
|
+
throw new Error("Invalid --timeout value (expected seconds)");
|
|
18
|
+
}
|
|
19
|
+
return Math.floor(seconds * 1000);
|
|
20
|
+
}
|
|
21
|
+
function parseGlobalOptions(args) {
|
|
22
|
+
const out = [];
|
|
23
|
+
let timeoutMs = DEFAULT_TIMEOUT_MS;
|
|
24
|
+
for (let i = 0; i < args.length; i++) {
|
|
25
|
+
const arg = args[i];
|
|
26
|
+
if (arg === "--timeout") {
|
|
27
|
+
const raw = args[i + 1];
|
|
28
|
+
if (!raw || raw.startsWith("--")) {
|
|
29
|
+
throw new Error("Usage: --timeout <seconds>");
|
|
30
|
+
}
|
|
31
|
+
timeoutMs = parseTimeoutValue(raw);
|
|
32
|
+
i++;
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
if (arg.startsWith("--timeout=")) {
|
|
36
|
+
timeoutMs = parseTimeoutValue(arg.slice("--timeout=".length));
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
out.push(arg);
|
|
40
|
+
}
|
|
41
|
+
return { args: out, timeoutMs };
|
|
42
|
+
}
|
|
43
|
+
async function runWithTimeout(fn, timeoutMs) {
|
|
44
|
+
const controller = new AbortController();
|
|
45
|
+
registerSignalTimeout(controller.signal, timeoutMs, `Command timed out after ${Math.ceil(timeoutMs / 1000)}s`);
|
|
46
|
+
let timer = null;
|
|
47
|
+
try {
|
|
48
|
+
return await Promise.race([
|
|
49
|
+
fn(controller.signal),
|
|
50
|
+
new Promise((_, reject) => {
|
|
51
|
+
timer = setTimeout(() => {
|
|
52
|
+
const message = `Command timed out after ${Math.ceil(timeoutMs / 1000)}s`;
|
|
53
|
+
controller.abort(new Error(message));
|
|
54
|
+
reject(new Error(message));
|
|
55
|
+
}, timeoutMs);
|
|
56
|
+
}),
|
|
57
|
+
]);
|
|
58
|
+
}
|
|
59
|
+
finally {
|
|
60
|
+
if (timer)
|
|
61
|
+
clearTimeout(timer);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async function writeTo(stream, data) {
|
|
65
|
+
await new Promise((resolve, reject) => {
|
|
66
|
+
let settled = false;
|
|
67
|
+
const finish = (err) => {
|
|
68
|
+
if (settled)
|
|
69
|
+
return;
|
|
70
|
+
settled = true;
|
|
71
|
+
stream.off("error", onError);
|
|
72
|
+
if (err?.code === "EPIPE" ||
|
|
73
|
+
err?.message?.toUpperCase().includes("EPIPE")) {
|
|
74
|
+
resolve();
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (err) {
|
|
78
|
+
reject(err);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
resolve();
|
|
82
|
+
};
|
|
83
|
+
const onError = (err) => finish(err);
|
|
84
|
+
stream.once("error", onError);
|
|
85
|
+
try {
|
|
86
|
+
stream.write(data, (err) => {
|
|
87
|
+
finish(err ?? null);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
finish(err);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
async function flushStdStreams() {
|
|
96
|
+
await Promise.all([writeTo(process.stdout, ""), writeTo(process.stderr, "")]);
|
|
97
|
+
}
|
|
98
|
+
async function exitWith(code, output) {
|
|
99
|
+
if (output?.stdout) {
|
|
100
|
+
await writeTo(process.stdout, output.stdout);
|
|
101
|
+
}
|
|
102
|
+
if (output?.stderr) {
|
|
103
|
+
await writeTo(process.stderr, output.stderr);
|
|
104
|
+
}
|
|
105
|
+
await flushStdStreams();
|
|
106
|
+
process.exit(code);
|
|
107
|
+
}
|
|
49
108
|
export async function main() {
|
|
50
|
-
|
|
109
|
+
let args;
|
|
110
|
+
let timeoutMs;
|
|
111
|
+
try {
|
|
112
|
+
const parsed = parseGlobalOptions(process.argv.slice(2));
|
|
113
|
+
args = parsed.args;
|
|
114
|
+
timeoutMs = parsed.timeoutMs;
|
|
115
|
+
}
|
|
116
|
+
catch (err) {
|
|
117
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
118
|
+
return exitWith(1, { stderr: `${JSON.stringify({ error: message })}\n` });
|
|
119
|
+
}
|
|
51
120
|
if (args.length === 0 || args[0] === "--help" || args[0] === "-h") {
|
|
52
|
-
|
|
53
|
-
process.exit(0);
|
|
121
|
+
return exitWith(0, { stdout: `${USAGE}\n` });
|
|
54
122
|
}
|
|
55
123
|
if (args[0] === "--version" || args[0] === "-v") {
|
|
56
124
|
const require = createRequire(import.meta.url);
|
|
57
125
|
const { version } = require("../../package.json");
|
|
58
|
-
|
|
59
|
-
process.exit(0);
|
|
126
|
+
return exitWith(0, { stdout: `${version}\n` });
|
|
60
127
|
}
|
|
61
|
-
const
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
await get(file, ref, { styles });
|
|
79
|
-
break;
|
|
80
|
-
}
|
|
81
|
-
case "csv": {
|
|
82
|
-
const file = requireArg(rest, 0, "csv <file> <ref>");
|
|
83
|
-
const ref = requireArg(rest, 1, "csv <file> <ref>");
|
|
84
|
-
await csv(file, ref);
|
|
85
|
-
break;
|
|
86
|
-
}
|
|
87
|
-
case "set": {
|
|
88
|
-
const file = requireArg(rest, 0, "set <file> <ref> [json]");
|
|
89
|
-
const ref = requireArg(rest, 1, "set <file> <ref> [json]");
|
|
90
|
-
const json = rest[2]; // optional, reads stdin if missing
|
|
91
|
-
await set(file, ref, json);
|
|
92
|
-
break;
|
|
128
|
+
const noDaemon = hasFlag(args, "--no-daemon");
|
|
129
|
+
const filteredArgs = args.filter((a) => a !== "--no-daemon");
|
|
130
|
+
if (filteredArgs[0] === "daemon") {
|
|
131
|
+
const sub = filteredArgs[1];
|
|
132
|
+
if (sub === "start") {
|
|
133
|
+
try {
|
|
134
|
+
await spawnDaemon(timeoutMs);
|
|
135
|
+
return exitWith(0, {
|
|
136
|
+
stdout: `${JSON.stringify({ daemon: "started" })}\n`,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
catch (err) {
|
|
140
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
141
|
+
return exitWith(1, {
|
|
142
|
+
stderr: `${JSON.stringify({ error: message })}\n`,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
93
145
|
}
|
|
94
|
-
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
? parseInt(flag(rest, "--max"), 10)
|
|
110
|
-
: undefined,
|
|
146
|
+
if (sub === "stop" || sub === "status" || sub === "flush") {
|
|
147
|
+
const result = await tryExistingDaemon(filteredArgs, process.cwd(), undefined, timeoutMs);
|
|
148
|
+
if (result) {
|
|
149
|
+
return exitWith(result.exitCode, {
|
|
150
|
+
stdout: result.stdout,
|
|
151
|
+
stderr: result.stderr,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
if (sub === "status") {
|
|
155
|
+
return exitWith(0, {
|
|
156
|
+
stdout: `${JSON.stringify({ running: false })}\n`,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
return exitWith(1, {
|
|
160
|
+
stdout: `${JSON.stringify({ error: "No daemon running" })}\n`,
|
|
111
161
|
});
|
|
112
|
-
break;
|
|
113
|
-
}
|
|
114
|
-
case "copy": {
|
|
115
|
-
const file = requireArg(rest, 0, "copy <file> <src> <dst>");
|
|
116
|
-
const src = requireArg(rest, 1, "copy <file> <src> <dst>");
|
|
117
|
-
const dst = requireArg(rest, 2, "copy <file> <src> <dst>");
|
|
118
|
-
await copy(file, src, dst);
|
|
119
|
-
break;
|
|
120
162
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
});
|
|
139
|
-
break;
|
|
163
|
+
return exitWith(1, {
|
|
164
|
+
stderr: "Usage: hsx daemon start|stop|status|flush\n",
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
if (!noDaemon) {
|
|
168
|
+
let stdin;
|
|
169
|
+
const command = filteredArgs[0];
|
|
170
|
+
const setJsonArg = filteredArgs[3];
|
|
171
|
+
const evalCodeArg = filteredArgs[2];
|
|
172
|
+
const needsStdin = (command === "set" && (!setJsonArg || setJsonArg === "-")) ||
|
|
173
|
+
(command === "eval" && (!evalCodeArg || evalCodeArg === "-"));
|
|
174
|
+
if (needsStdin && !process.stdin.isTTY) {
|
|
175
|
+
const chunks = [];
|
|
176
|
+
for await (const chunk of process.stdin) {
|
|
177
|
+
chunks.push(chunk);
|
|
178
|
+
}
|
|
179
|
+
stdin = Buffer.concat(chunks).toString("utf-8").trim();
|
|
140
180
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
width: flag(rest, "--width")
|
|
147
|
-
? parseFloat(flag(rest, "--width"))
|
|
148
|
-
: undefined,
|
|
149
|
-
height: flag(rest, "--height")
|
|
150
|
-
? parseFloat(flag(rest, "--height"))
|
|
151
|
-
: undefined,
|
|
181
|
+
const result = await tryDaemon(filteredArgs, process.cwd(), stdin, timeoutMs);
|
|
182
|
+
if (result) {
|
|
183
|
+
return exitWith(result.exitCode, {
|
|
184
|
+
stdout: result.stdout,
|
|
185
|
+
stderr: result.stderr,
|
|
152
186
|
});
|
|
153
|
-
break;
|
|
154
|
-
}
|
|
155
|
-
case "objects": {
|
|
156
|
-
const file = requireArg(rest, 0, "objects <file>");
|
|
157
|
-
await objects(file, flag(rest, "--sheet"));
|
|
158
|
-
break;
|
|
159
187
|
}
|
|
160
|
-
|
|
161
|
-
const
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
188
|
+
if (stdin !== undefined) {
|
|
189
|
+
const io = createIoContext(stdin);
|
|
190
|
+
try {
|
|
191
|
+
await runWithTimeout((signal) => Promise.resolve(runWithIo(io, () => dispatch(filteredArgs, { signal }))), timeoutMs);
|
|
192
|
+
}
|
|
193
|
+
catch (err) {
|
|
194
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
195
|
+
io.stderr += `${JSON.stringify({ error: message })}\n`;
|
|
196
|
+
return exitWith(1, { stdout: io.stdout, stderr: io.stderr });
|
|
197
|
+
}
|
|
198
|
+
return exitWith(0, { stdout: io.stdout, stderr: io.stderr });
|
|
165
199
|
}
|
|
166
|
-
default:
|
|
167
|
-
console.error(`Unknown command: ${command}\n`);
|
|
168
|
-
console.log(USAGE);
|
|
169
|
-
process.exit(1);
|
|
170
200
|
}
|
|
171
|
-
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
process.exit(1);
|
|
201
|
+
try {
|
|
202
|
+
await runWithTimeout((signal) => dispatch(filteredArgs, { signal }), timeoutMs);
|
|
203
|
+
}
|
|
204
|
+
catch (err) {
|
|
205
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
206
|
+
return exitWith(1, { stderr: `${JSON.stringify({ error: message })}\n` });
|
|
178
207
|
}
|
|
179
|
-
return
|
|
208
|
+
return exitWith(0);
|
|
180
209
|
}
|
|
181
210
|
//# sourceMappingURL=main.js.map
|
package/dist/cli/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/output.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
export interface IoContext {
|
|
2
|
+
stdout: string;
|
|
3
|
+
stderr: string;
|
|
4
|
+
stdin: string | null;
|
|
5
|
+
}
|
|
6
|
+
export declare function runWithIo<T>(io: IoContext, fn: () => T | Promise<T>): T | Promise<T>;
|
|
7
|
+
export declare function createIoContext(stdin?: string): IoContext;
|
|
8
|
+
export declare function writeStdout(data: string): void;
|
|
9
|
+
export declare function writeStderr(data: string): void;
|
|
4
10
|
export declare function ok(data: unknown): void;
|
|
5
11
|
export declare function fail(message: string): never;
|
|
6
|
-
/**
|
|
7
|
-
* Read input from last positional arg or stdin.
|
|
8
|
-
*/
|
|
9
12
|
export declare function readInput(argValue: string | undefined): Promise<string>;
|
|
10
13
|
//# sourceMappingURL=output.d.ts.map
|
package/dist/cli/output.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAID,wBAAgB,SAAS,CAAC,CAAC,EACzB,EAAE,EAAE,SAAS,EACb,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACvB,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAEhB;AAED,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAEzD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAO9C;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAO9C;AAED,wBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAEtC;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAE3C;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAwB7E"}
|
package/dist/cli/output.js
CHANGED
|
@@ -1,20 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
const ioStore = new AsyncLocalStorage();
|
|
3
|
+
export function runWithIo(io, fn) {
|
|
4
|
+
return ioStore.run(io, fn);
|
|
5
|
+
}
|
|
6
|
+
export function createIoContext(stdin) {
|
|
7
|
+
return { stdout: "", stderr: "", stdin: stdin ?? null };
|
|
8
|
+
}
|
|
9
|
+
export function writeStdout(data) {
|
|
10
|
+
const io = ioStore.getStore();
|
|
11
|
+
if (io) {
|
|
12
|
+
io.stdout += data;
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
process.stdout.write(data);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export function writeStderr(data) {
|
|
19
|
+
const io = ioStore.getStore();
|
|
20
|
+
if (io) {
|
|
21
|
+
io.stderr += data;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
process.stderr.write(data);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
4
27
|
export function ok(data) {
|
|
5
|
-
|
|
28
|
+
writeStdout(`${JSON.stringify(data)}\n`);
|
|
6
29
|
}
|
|
7
30
|
export function fail(message) {
|
|
8
31
|
throw new Error(message);
|
|
9
32
|
}
|
|
10
|
-
/**
|
|
11
|
-
* Read input from last positional arg or stdin.
|
|
12
|
-
*/
|
|
13
33
|
export async function readInput(argValue) {
|
|
14
34
|
if (argValue && argValue !== "-") {
|
|
15
35
|
return argValue;
|
|
16
36
|
}
|
|
17
|
-
|
|
37
|
+
const io = ioStore.getStore();
|
|
38
|
+
if (io?.stdin != null) {
|
|
39
|
+
const text = io.stdin;
|
|
40
|
+
io.stdin = null;
|
|
41
|
+
if (!text) {
|
|
42
|
+
fail("No input provided. Pass as argument or pipe via stdin.");
|
|
43
|
+
}
|
|
44
|
+
return text;
|
|
45
|
+
}
|
|
18
46
|
const chunks = [];
|
|
19
47
|
for await (const chunk of process.stdin) {
|
|
20
48
|
chunks.push(chunk);
|
package/dist/cli/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAQrD,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAa,CAAC;AAEnD,MAAM,UAAU,SAAS,CACvB,EAAa,EACb,EAAwB;IAExB,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC9B,IAAI,EAAE,EAAE,CAAC;QACP,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC9B,IAAI,EAAE,EAAE,CAAC;QACP,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,EAAE,CAAC,IAAa;IAC9B,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,OAAe;IAClC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAA4B;IAC1D,IAAI,QAAQ,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC9B,IAAI,EAAE,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;QACtB,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,CAAC,wDAAwD,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/cli/styles.d.ts
CHANGED
|
@@ -1,27 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* SpreadJS-style cell style serialization and application for CLI I/O.
|
|
3
3
|
*/
|
|
4
|
+
import type { Spread } from "@mescius/spread-sheets";
|
|
4
5
|
import type { GCNamespace, SpreadStyle, SpreadWorksheet } from "../types.js";
|
|
5
|
-
export interface
|
|
6
|
-
fontWeight?: "normal" | "bold";
|
|
7
|
-
fontStyle?: "normal" | "italic";
|
|
8
|
-
fontSize?: number;
|
|
9
|
-
fontFamily?: string;
|
|
10
|
-
fontColor?: string;
|
|
11
|
-
backgroundColor?: string;
|
|
12
|
-
horizontalAlignment?: "left" | "center" | "right";
|
|
13
|
-
numberFormat?: string;
|
|
14
|
-
}
|
|
15
|
-
export interface SerializedStyle {
|
|
6
|
+
export interface FontStyleObject {
|
|
16
7
|
bold?: boolean;
|
|
17
8
|
italic?: boolean;
|
|
18
|
-
|
|
9
|
+
underline?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface CellStyle {
|
|
12
|
+
fontStyle?: FontStyleObject;
|
|
13
|
+
fontSize?: string;
|
|
19
14
|
fontFamily?: string;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
hAlign?:
|
|
23
|
-
|
|
15
|
+
foreColor?: string;
|
|
16
|
+
backColor?: string;
|
|
17
|
+
hAlign?: Spread.Sheets.HorizontalAlign;
|
|
18
|
+
formatter?: string;
|
|
24
19
|
}
|
|
25
|
-
export declare function serializeStyle(style: SpreadStyle):
|
|
26
|
-
export declare function applyStyles(sheet: SpreadWorksheet, row: number, col: number, styles:
|
|
20
|
+
export declare function serializeStyle(style: SpreadStyle): CellStyle | null;
|
|
21
|
+
export declare function applyStyles(sheet: SpreadWorksheet, row: number, col: number, styles: CellStyle, GC: GCNamespace): void;
|
|
27
22
|
//# sourceMappingURL=styles.d.ts.map
|
package/dist/cli/styles.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/cli/styles.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/cli/styles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE7E,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8CD,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAoDnE;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,eAAe,EACtB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,EACjB,EAAE,EAAE,WAAW,GACd,IAAI,CAoDN"}
|