@rainfall-devkit/sdk 0.2.1 → 0.2.3
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/chunk-6FXRLPLR.mjs +436 -0
- package/dist/chunk-CC4O7GSQ.mjs +978 -0
- package/dist/chunk-CQ5TV7CQ.mjs +989 -0
- package/dist/chunk-GPKQUVAV.mjs +987 -0
- package/dist/chunk-KOCCGNEQ.mjs +269 -0
- package/dist/chunk-LJQEO3CY.mjs +150 -0
- package/dist/chunk-NCQVOLS4.mjs +269 -0
- package/dist/chunk-S7MOQCV4.mjs +137 -0
- package/dist/chunk-XHPFY5MH.mjs +132 -0
- package/dist/cli/index.js +1009 -54
- package/dist/cli/index.mjs +244 -24
- package/dist/daemon/index.d.mts +3 -3
- package/dist/daemon/index.d.ts +3 -3
- package/dist/daemon/index.js +411 -129
- package/dist/daemon/index.mjs +2 -1
- package/dist/display-KKJPO6UA.mjs +14 -0
- package/dist/errors-CY6HW2I5.mjs +24 -0
- package/dist/index.d.mts +66 -4
- package/dist/index.d.ts +66 -4
- package/dist/index.js +903 -124
- package/dist/index.mjs +18 -6
- package/dist/listeners-BBNBsJCk.d.ts +372 -0
- package/dist/listeners-CMUKjEkb.d.mts +372 -0
- package/dist/listeners-CadPNUHd.d.ts +372 -0
- package/dist/listeners-Ckdj6D8T.d.mts +372 -0
- package/dist/mcp.d.mts +2 -2
- package/dist/mcp.d.ts +2 -2
- package/dist/mcp.js +405 -101
- package/dist/mcp.mjs +4 -2
- package/dist/param-parser-JVKB5FQK.mjs +12 -0
- package/dist/param-parser-PAKCNDBX.mjs +136 -0
- package/dist/sdk-Cl5Qzt4I.d.mts +1165 -0
- package/dist/sdk-Cl5Qzt4I.d.ts +1165 -0
- package/dist/sdk-DQKNbBce.d.mts +1162 -0
- package/dist/sdk-DQKNbBce.d.ts +1162 -0
- package/package.json +2 -2
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
// src/cli/core/param-parser.ts
|
|
2
|
+
var DEFAULT_OPTIONS = {
|
|
3
|
+
arrayInterpolation: true,
|
|
4
|
+
numberParsing: true,
|
|
5
|
+
booleanParsing: true,
|
|
6
|
+
arraySeparator: ","
|
|
7
|
+
};
|
|
8
|
+
function parseValue(value, schema, options = {}) {
|
|
9
|
+
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
10
|
+
if (!schema) {
|
|
11
|
+
try {
|
|
12
|
+
return JSON.parse(value);
|
|
13
|
+
} catch {
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
const expectedType = schema.type;
|
|
18
|
+
switch (expectedType) {
|
|
19
|
+
case "array":
|
|
20
|
+
return parseArrayValue(value, schema, opts);
|
|
21
|
+
case "number":
|
|
22
|
+
return parseNumberValue(value, opts);
|
|
23
|
+
case "boolean":
|
|
24
|
+
return parseBooleanValue(value, opts);
|
|
25
|
+
case "string":
|
|
26
|
+
return value;
|
|
27
|
+
case "object":
|
|
28
|
+
try {
|
|
29
|
+
return JSON.parse(value);
|
|
30
|
+
} catch {
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
default:
|
|
34
|
+
try {
|
|
35
|
+
return JSON.parse(value);
|
|
36
|
+
} catch {
|
|
37
|
+
return value;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function parseArrayValue(value, schema, options) {
|
|
42
|
+
if (value.startsWith("[") && value.endsWith("]")) {
|
|
43
|
+
try {
|
|
44
|
+
return JSON.parse(value);
|
|
45
|
+
} catch {
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (options.arrayInterpolation && value.includes(options.arraySeparator)) {
|
|
49
|
+
const items = value.split(options.arraySeparator).map((s) => s.trim()).filter(Boolean);
|
|
50
|
+
if (schema.items) {
|
|
51
|
+
return items.map((item) => parseValue(item, schema.items, { ...options, arrayInterpolation: false }));
|
|
52
|
+
}
|
|
53
|
+
return items;
|
|
54
|
+
}
|
|
55
|
+
if (schema.items) {
|
|
56
|
+
return [parseValue(value, schema.items, { ...options, arrayInterpolation: false })];
|
|
57
|
+
}
|
|
58
|
+
return [value];
|
|
59
|
+
}
|
|
60
|
+
function parseNumberValue(value, options) {
|
|
61
|
+
if (!options.numberParsing) {
|
|
62
|
+
return value;
|
|
63
|
+
}
|
|
64
|
+
const num = Number(value);
|
|
65
|
+
if (!isNaN(num) && isFinite(num)) {
|
|
66
|
+
return num;
|
|
67
|
+
}
|
|
68
|
+
return value;
|
|
69
|
+
}
|
|
70
|
+
function parseBooleanValue(value, options) {
|
|
71
|
+
if (!options.booleanParsing) {
|
|
72
|
+
return value;
|
|
73
|
+
}
|
|
74
|
+
const lower = value.toLowerCase();
|
|
75
|
+
if (lower === "true" || lower === "yes" || lower === "1" || lower === "on") {
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
if (lower === "false" || lower === "no" || lower === "0" || lower === "off") {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
return value;
|
|
82
|
+
}
|
|
83
|
+
function parseCliArgs(args, schema, options = {}) {
|
|
84
|
+
const params = {};
|
|
85
|
+
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
86
|
+
const parameters = schema?.parameters || {};
|
|
87
|
+
for (let i = 0; i < args.length; i++) {
|
|
88
|
+
const arg = args[i];
|
|
89
|
+
if (arg.startsWith("--")) {
|
|
90
|
+
const key = arg.slice(2);
|
|
91
|
+
const value = args[++i];
|
|
92
|
+
if (value === void 0) {
|
|
93
|
+
params[key] = true;
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
const paramSchema = parameters[key];
|
|
97
|
+
params[key] = parseValue(value, paramSchema, opts);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return params;
|
|
101
|
+
}
|
|
102
|
+
function formatValueForDisplay(value) {
|
|
103
|
+
if (value === null) return "null";
|
|
104
|
+
if (value === void 0) return "undefined";
|
|
105
|
+
if (typeof value === "string") return value;
|
|
106
|
+
if (typeof value === "number") return String(value);
|
|
107
|
+
if (typeof value === "boolean") return String(value);
|
|
108
|
+
if (Array.isArray(value)) {
|
|
109
|
+
return value.map(formatValueForDisplay).join(",");
|
|
110
|
+
}
|
|
111
|
+
return JSON.stringify(value);
|
|
112
|
+
}
|
|
113
|
+
function generateParamExample(key, schema) {
|
|
114
|
+
const type = schema.type || "string";
|
|
115
|
+
switch (type) {
|
|
116
|
+
case "array":
|
|
117
|
+
if (schema.items?.type === "string") {
|
|
118
|
+
return `--${key} item1,item2,item3`;
|
|
119
|
+
}
|
|
120
|
+
return `--${key} '["item1", "item2"]'`;
|
|
121
|
+
case "number":
|
|
122
|
+
return `--${key} 42`;
|
|
123
|
+
case "boolean":
|
|
124
|
+
return `--${key} true`;
|
|
125
|
+
case "object":
|
|
126
|
+
return `--${key} '{"key": "value"}'`;
|
|
127
|
+
default:
|
|
128
|
+
return `--${key} "value"`;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
export {
|
|
132
|
+
formatValueForDisplay,
|
|
133
|
+
generateParamExample,
|
|
134
|
+
parseCliArgs,
|
|
135
|
+
parseValue
|
|
136
|
+
};
|