@vectojs/numera-cli 0.2.0 → 0.2.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 1270922: Reject multiple value flags in `numera set` instead of silently using the last
8
+ one and writing an ambiguous workbook output.
9
+
3
10
  ## 0.2.0
4
11
 
5
12
  ### Minor Changes
@@ -11,6 +18,10 @@ All notable changes to this project are documented in this file.
11
18
 
12
19
  ## Unreleased
13
20
 
21
+ ### Fixed
22
+
23
+ - Reject multiple `set` value flags before reading or writing workbook output.
24
+
14
25
  ### Added
15
26
 
16
27
  - Safe local `inspect`, `get`, and explicit-output `set` commands for Numera
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAMA,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,iBAAe,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BxD;AAED,iBAAS,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,cAAc,CA2B3D;AAiBD,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAMA,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,iBAAe,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BxD;AAED,iBAAS,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,cAAc,CAqC3D;AAiBD,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC"}
package/dist/cli.js CHANGED
@@ -227,22 +227,32 @@ async function run(arguments_) {
227
227
  function parseSetValue(arguments_) {
228
228
  let raw;
229
229
  let output;
230
+ let valueFlagCount = 0;
231
+ const setRaw = (value) => {
232
+ valueFlagCount++;
233
+ if (valueFlagCount > 1)
234
+ throw new CliError(
235
+ "INVALID_ARGUMENT",
236
+ "set requires exactly one value flag"
237
+ );
238
+ raw = value;
239
+ };
230
240
  for (let index = 0; index < arguments_.length; index += 2) {
231
241
  const flag = arguments_[index];
232
242
  const value = arguments_[index + 1];
233
243
  if (!value)
234
244
  throw new CliError("INVALID_ARGUMENT", `Missing value for ${flag}`);
235
- if (flag === "--text") raw = value;
245
+ if (flag === "--text") setRaw(value);
236
246
  else if (flag === "--number") {
237
247
  if (!Number.isFinite(Number(value)))
238
248
  throw new CliError("INVALID_ARGUMENT", `Invalid number: ${value}`);
239
- raw = value;
249
+ setRaw(value);
240
250
  } else if (flag === "--boolean") {
241
251
  if (value !== "true" && value !== "false")
242
252
  throw new CliError("INVALID_ARGUMENT", `Invalid boolean: ${value}`);
243
- raw = value.toUpperCase();
253
+ setRaw(value.toUpperCase());
244
254
  } else if (flag === "--formula")
245
- raw = value.startsWith("=") ? value : `=${value}`;
255
+ setRaw(value.startsWith("=") ? value : `=${value}`);
246
256
  else if (flag === "--output") output = value;
247
257
  else throw new CliError("INVALID_ARGUMENT", `Unknown option: ${flag}`);
248
258
  }
package/dist/cli.mjs CHANGED
@@ -207,22 +207,32 @@ async function run(arguments_) {
207
207
  function parseSetValue(arguments_) {
208
208
  let raw;
209
209
  let output;
210
+ let valueFlagCount = 0;
211
+ const setRaw = (value) => {
212
+ valueFlagCount++;
213
+ if (valueFlagCount > 1)
214
+ throw new CliError(
215
+ "INVALID_ARGUMENT",
216
+ "set requires exactly one value flag"
217
+ );
218
+ raw = value;
219
+ };
210
220
  for (let index = 0; index < arguments_.length; index += 2) {
211
221
  const flag = arguments_[index];
212
222
  const value = arguments_[index + 1];
213
223
  if (!value)
214
224
  throw new CliError("INVALID_ARGUMENT", `Missing value for ${flag}`);
215
- if (flag === "--text") raw = value;
225
+ if (flag === "--text") setRaw(value);
216
226
  else if (flag === "--number") {
217
227
  if (!Number.isFinite(Number(value)))
218
228
  throw new CliError("INVALID_ARGUMENT", `Invalid number: ${value}`);
219
- raw = value;
229
+ setRaw(value);
220
230
  } else if (flag === "--boolean") {
221
231
  if (value !== "true" && value !== "false")
222
232
  throw new CliError("INVALID_ARGUMENT", `Invalid boolean: ${value}`);
223
- raw = value.toUpperCase();
233
+ setRaw(value.toUpperCase());
224
234
  } else if (flag === "--formula")
225
- raw = value.startsWith("=") ? value : `=${value}`;
235
+ setRaw(value.startsWith("=") ? value : `=${value}`);
226
236
  else if (flag === "--output") output = value;
227
237
  else throw new CliError("INVALID_ARGUMENT", `Unknown option: ${flag}`);
228
238
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vectojs/numera-cli",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Safe local-first workbook automation CLI for the Numera family.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {