@newpeak/barista-cli 0.1.61 → 0.1.62
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/dist/commands/liberica/cutting-material/create.d.ts.map +1 -1
- package/dist/commands/liberica/cutting-material/create.js +7 -8
- package/dist/commands/liberica/cutting-material/create.js.map +1 -1
- package/dist/commands/liberica/material-transfers/create.d.ts.map +1 -1
- package/dist/commands/liberica/material-transfers/create.js +5 -6
- package/dist/commands/liberica/material-transfers/create.js.map +1 -1
- package/dist/utils/json-repair.d.ts +24 -0
- package/dist/utils/json-repair.d.ts.map +1 -0
- package/dist/utils/json-repair.js +104 -0
- package/dist/utils/json-repair.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/cutting-material/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/cutting-material/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,kCAAkC,IAAI,OAAO,CA2D5D"}
|
|
@@ -2,6 +2,7 @@ import { Command } from 'commander';
|
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import { configManager } from '../../../core/config/manager.js';
|
|
4
4
|
import { apiClient } from '../../../core/api/client.js';
|
|
5
|
+
import { parseItemsJson } from '../../../utils/json-repair.js';
|
|
5
6
|
export function createCuttingMaterialCreateCommand() {
|
|
6
7
|
const cmd = new Command('create');
|
|
7
8
|
cmd.description('Create a cutting material order');
|
|
@@ -12,10 +13,11 @@ export function createCuttingMaterialCreateCommand() {
|
|
|
12
13
|
.requiredOption('-q, --total-quantity <number>', 'Total quantity of source material')
|
|
13
14
|
.option('--cutting-method <method>', 'Cutting method (SHEAR/LASER/PLASMA/WATERJET)', 'SHEAR')
|
|
14
15
|
.option('--wastage-rate <rate>', 'Wastage rate in percent')
|
|
15
|
-
.requiredOption('-i, --items <json>', 'JSON array of cutting items')
|
|
16
|
+
.requiredOption('-i, --items <json>', 'JSON array of cutting items. Example: \'[{"materialCode":"CODE","quantity":100}]\'')
|
|
16
17
|
.option('--remark <remark>', 'Remark')
|
|
17
18
|
.option('--dry-run', 'Preview mode')
|
|
18
19
|
.option('--json', 'Output as JSON')
|
|
20
|
+
.option('--debug', 'Enable debug logging')
|
|
19
21
|
.action(async () => {
|
|
20
22
|
const opts = cmd.opts();
|
|
21
23
|
const context = configManager.getCurrentContext();
|
|
@@ -23,17 +25,14 @@ export function createCuttingMaterialCreateCommand() {
|
|
|
23
25
|
const tenant = context.tenant;
|
|
24
26
|
const dryRun = opts.dryRun === true;
|
|
25
27
|
const jsonOutput = opts.json === true;
|
|
28
|
+
const debugMode = opts.debug === true;
|
|
26
29
|
let itemList = [];
|
|
27
30
|
try {
|
|
28
|
-
|
|
29
|
-
if (!Array.isArray(parsed) || parsed.length === 0) {
|
|
30
|
-
console.error(chalk.red('\n✗ --items must be a non-empty JSON array\n'));
|
|
31
|
-
process.exit(1);
|
|
32
|
-
}
|
|
33
|
-
itemList = parsed;
|
|
31
|
+
itemList = parseItemsJson(opts.items, { debug: debugMode });
|
|
34
32
|
}
|
|
35
33
|
catch (error) {
|
|
36
|
-
|
|
34
|
+
const message = error instanceof Error ? error.message : 'Invalid JSON for --items';
|
|
35
|
+
console.error(chalk.red(`\n✗ ${message}\n`));
|
|
37
36
|
process.exit(1);
|
|
38
37
|
}
|
|
39
38
|
const request = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/liberica/cutting-material/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/liberica/cutting-material/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAGxD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,MAAM,UAAU,kCAAkC;IAChD,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,GAAG,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAC;IACnD,GAAG;SACA,cAAc,CAAC,4BAA4B,EAAE,mCAAmC,CAAC;SACjF,MAAM,CAAC,wBAAwB,EAAE,sBAAsB,CAAC;SACxD,MAAM,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;SACtD,cAAc,CAAC,+BAA+B,EAAE,mCAAmC,CAAC;SACpF,MAAM,CAAC,2BAA2B,EAAE,8CAA8C,EAAE,OAAO,CAAC;SAC5F,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;SAC1D,cAAc,CAAC,oBAAoB,EAAE,oFAAoF,CAAC;SAC1H,MAAM,CAAC,mBAAmB,EAAE,QAAQ,CAAC;SACrC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC;SACnC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,SAAS,EAAE,sBAAsB,CAAC;SACzC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,WAAW,GAAG,OAAO,CAAC,WAA0B,CAAC;QACvD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;QAEtC,IAAI,QAAQ,GAAkK,EAAE,CAAC;QACjL,IAAI,CAAC;YACH,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAoB,CAAC;QACjF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC;YACpF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAiC;YAC5C,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,YAAY,EAAE,IAAI,CAAC,UAAU;YAC7B,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;YAC7C,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;YACxE,QAAQ;YACR,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,UAAU,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAAC,CAAC;iBAC3F,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,YAAY,UAAU,OAAO,CAAC,aAAa,YAAY,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAAC,CAAC;YAC9K,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACrF,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,UAAU,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAAC,CAAC;iBACnF,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC;YAAC,CAAC;QACnF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,QAAQ,IAAI,CAAC,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC,CAAC,CAAC;IACL,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/material-transfers/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/material-transfers/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,mCAAmC,IAAI,OAAO,CAyL7D"}
|
|
@@ -2,6 +2,7 @@ import { Command } from 'commander';
|
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import { apiClient } from '../../../core/api/client.js';
|
|
4
4
|
import { configManager } from '../../../core/config/manager.js';
|
|
5
|
+
import { parseItemsJson } from '../../../utils/json-repair.js';
|
|
5
6
|
export function createMaterialTransferCreateCommand() {
|
|
6
7
|
const cmd = new Command('create');
|
|
7
8
|
cmd.description('Create a new material transfer');
|
|
@@ -83,17 +84,15 @@ export function createMaterialTransferCreateCommand() {
|
|
|
83
84
|
let items = [];
|
|
84
85
|
if (itemsJson) {
|
|
85
86
|
try {
|
|
86
|
-
items =
|
|
87
|
-
if (!Array.isArray(items)) {
|
|
88
|
-
throw new Error('Items must be an array');
|
|
89
|
-
}
|
|
87
|
+
items = parseItemsJson(itemsJson, { debug: debugMode });
|
|
90
88
|
}
|
|
91
89
|
catch (e) {
|
|
90
|
+
const message = e instanceof Error ? e.message : 'Invalid items JSON';
|
|
92
91
|
if (jsonOutput) {
|
|
93
|
-
console.log(JSON.stringify({ success: false, error: { code: 'INVALID_JSON', message
|
|
92
|
+
console.log(JSON.stringify({ success: false, error: { code: 'INVALID_JSON', message } }));
|
|
94
93
|
}
|
|
95
94
|
else {
|
|
96
|
-
console.error(chalk.red(`\n✗
|
|
95
|
+
console.error(chalk.red(`\n✗ ${message}\n`));
|
|
97
96
|
}
|
|
98
97
|
process.exit(1);
|
|
99
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/liberica/material-transfers/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/liberica/material-transfers/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface JsonRepairOptions {
|
|
2
|
+
/** Enable debug logging to stderr */
|
|
3
|
+
debug?: boolean;
|
|
4
|
+
/** Custom error prefix for the thrown error message */
|
|
5
|
+
errorPrefix?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Attempt to repair and parse a JSON string that may have been mangled
|
|
9
|
+
* by shell argument processing (especially Windows PowerShell).
|
|
10
|
+
*
|
|
11
|
+
* Heuristics applied (in order):
|
|
12
|
+
* 1. Trim whitespace
|
|
13
|
+
* 2. Strip surrounding single quotes ('[...]' → [...])
|
|
14
|
+
* 3. Fix PowerShell/CMD escaped double quotes (\" → ")
|
|
15
|
+
* 4. Fix doubled quotes ("{""key"":""value""}" → "{"key":"value"}")
|
|
16
|
+
* 5. Fall through to JSON.parse
|
|
17
|
+
*
|
|
18
|
+
* @param raw - The raw string from CLI option
|
|
19
|
+
* @param options - Configuration options
|
|
20
|
+
* @returns Parsed JSON array
|
|
21
|
+
* @throws Error with descriptive message showing the raw input and expected format
|
|
22
|
+
*/
|
|
23
|
+
export declare function parseItemsJson(raw: string, options?: JsonRepairOptions): unknown[];
|
|
24
|
+
//# sourceMappingURL=json-repair.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-repair.d.ts","sourceRoot":"","sources":["../../src/utils/json-repair.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,iBAAiB;IAChC,qCAAqC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,EAAE,CA+EtF"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON repair utility for handling shell-escaped/mangled JSON strings
|
|
3
|
+
* from CLI --items options, especially on Windows PowerShell.
|
|
4
|
+
*/
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
/**
|
|
7
|
+
* Attempt to repair and parse a JSON string that may have been mangled
|
|
8
|
+
* by shell argument processing (especially Windows PowerShell).
|
|
9
|
+
*
|
|
10
|
+
* Heuristics applied (in order):
|
|
11
|
+
* 1. Trim whitespace
|
|
12
|
+
* 2. Strip surrounding single quotes ('[...]' → [...])
|
|
13
|
+
* 3. Fix PowerShell/CMD escaped double quotes (\" → ")
|
|
14
|
+
* 4. Fix doubled quotes ("{""key"":""value""}" → "{"key":"value"}")
|
|
15
|
+
* 5. Fall through to JSON.parse
|
|
16
|
+
*
|
|
17
|
+
* @param raw - The raw string from CLI option
|
|
18
|
+
* @param options - Configuration options
|
|
19
|
+
* @returns Parsed JSON array
|
|
20
|
+
* @throws Error with descriptive message showing the raw input and expected format
|
|
21
|
+
*/
|
|
22
|
+
export function parseItemsJson(raw, options = {}) {
|
|
23
|
+
const { debug = false, errorPrefix = 'Invalid JSON for --items' } = options;
|
|
24
|
+
const debugLog = (...args) => {
|
|
25
|
+
if (debug)
|
|
26
|
+
console.error(chalk.gray(`[DEBUG]`, ...args));
|
|
27
|
+
};
|
|
28
|
+
debugLog(`Raw --items input:`, raw);
|
|
29
|
+
let input = raw.trim();
|
|
30
|
+
// Heuristic 1: Strip surrounding single quotes (common on Linux/macOS)
|
|
31
|
+
if ((input.startsWith("'") && input.endsWith("'")) ||
|
|
32
|
+
(input.startsWith('\u2018') && input.endsWith('\u2019'))) {
|
|
33
|
+
input = input.slice(1, -1).trim();
|
|
34
|
+
debugLog(`Stripped single quotes, result:`, input);
|
|
35
|
+
}
|
|
36
|
+
// Heuristic 2: Fix PowerShell-escaped double quotes (\" → ")
|
|
37
|
+
// PowerShell converts "key":"value" to \"key\":\"value\" when passing via --items
|
|
38
|
+
if (input.includes('\\"')) {
|
|
39
|
+
const repaired = input.replace(/\\"/g, '"');
|
|
40
|
+
debugLog(`Repairing PowerShell escaped quotes:`, repaired);
|
|
41
|
+
try {
|
|
42
|
+
const parsed = JSON.parse(repaired);
|
|
43
|
+
if (Array.isArray(parsed) && parsed.length > 0) {
|
|
44
|
+
debugLog(`PowerShell repair succeeded, items:`, parsed.length);
|
|
45
|
+
return parsed;
|
|
46
|
+
}
|
|
47
|
+
if (!Array.isArray(parsed)) {
|
|
48
|
+
throw new Error('not an array');
|
|
49
|
+
}
|
|
50
|
+
throw new Error('empty array');
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
debugLog(`PowerShell repair parse failed, trying next heuristic`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// Heuristic 3: Try raw parse first
|
|
57
|
+
try {
|
|
58
|
+
const parsed = JSON.parse(input);
|
|
59
|
+
if (Array.isArray(parsed) && parsed.length > 0) {
|
|
60
|
+
debugLog(`Direct parse succeeded, items:`, parsed.length);
|
|
61
|
+
return parsed;
|
|
62
|
+
}
|
|
63
|
+
if (!Array.isArray(parsed)) {
|
|
64
|
+
throw new Error(`${errorPrefix}: must be a non-empty JSON array. Got: ${typeof parsed}`);
|
|
65
|
+
}
|
|
66
|
+
throw new Error(`${errorPrefix}: must be a non-empty JSON array`);
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
// If it's our own format error, re-throw
|
|
70
|
+
if (e instanceof Error && e.message.includes(errorPrefix)) {
|
|
71
|
+
throw e;
|
|
72
|
+
}
|
|
73
|
+
debugLog(`Direct parse failed:`, e.message);
|
|
74
|
+
}
|
|
75
|
+
// Heuristic 4: Fix doubled quotes (Windows CMD sometimes doubles quotes)
|
|
76
|
+
if (input.includes('""')) {
|
|
77
|
+
const repaired = input.replace(/""/g, '"');
|
|
78
|
+
debugLog(`Repairing doubled quotes:`, repaired);
|
|
79
|
+
try {
|
|
80
|
+
const parsed = JSON.parse(repaired);
|
|
81
|
+
if (Array.isArray(parsed) && parsed.length > 0) {
|
|
82
|
+
debugLog(`Doubled-quote repair succeeded, items:`, parsed.length);
|
|
83
|
+
return parsed;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
debugLog(`Doubled-quote repair parse failed`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// All heuristics failed - throw descriptive error
|
|
91
|
+
throw new Error(`${errorPrefix}\n` +
|
|
92
|
+
`Raw input received: ${raw}\n` +
|
|
93
|
+
`Expected format: '[{"materialCode":"CODE","quantity":100}]'\n` +
|
|
94
|
+
`Tip: Try surrounding the JSON with single quotes: '${renderExample(raw)}'`);
|
|
95
|
+
}
|
|
96
|
+
function renderExample(raw) {
|
|
97
|
+
// Try to extract the first few chars to show the user a relevant example
|
|
98
|
+
const trimmed = raw.trim();
|
|
99
|
+
if (trimmed.startsWith('[')) {
|
|
100
|
+
return '[{"materialCode":"CODE","materialName":"NAME","quantity":100}]';
|
|
101
|
+
}
|
|
102
|
+
return '[{"materialCode":"CODE","quantity":100}]';
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=json-repair.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-repair.js","sourceRoot":"","sources":["../../src/utils/json-repair.ts"],"names":[],"mappings":"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"}
|