@platforma-sdk/bootstrap 5.2.51 → 5.2.53
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/_virtual/_rolldown/runtime.cjs +29 -0
- package/dist/block.cjs +106 -146
- package/dist/block.cjs.map +1 -1
- package/dist/block.js +100 -125
- package/dist/block.js.map +1 -1
- package/dist/cmd-opts.cjs +87 -177
- package/dist/cmd-opts.cjs.map +1 -1
- package/dist/cmd-opts.js +87 -172
- package/dist/cmd-opts.js.map +1 -1
- package/dist/commands/create-block.cjs +19 -20
- package/dist/commands/create-block.cjs.map +1 -1
- package/dist/commands/create-block.d.ts +12 -7
- package/dist/commands/create-block.js +17 -17
- package/dist/commands/create-block.js.map +1 -1
- package/dist/commands/reset.cjs +18 -21
- package/dist/commands/reset.cjs.map +1 -1
- package/dist/commands/reset.d.ts +12 -7
- package/dist/commands/reset.js +16 -18
- package/dist/commands/reset.js.map +1 -1
- package/dist/commands/start/docker/s3.cjs +64 -67
- package/dist/commands/start/docker/s3.cjs.map +1 -1
- package/dist/commands/start/docker/s3.d.ts +32 -27
- package/dist/commands/start/docker/s3.js +61 -64
- package/dist/commands/start/docker/s3.js.map +1 -1
- package/dist/commands/start/docker.cjs +64 -67
- package/dist/commands/start/docker.cjs.map +1 -1
- package/dist/commands/start/docker.d.ts +32 -27
- package/dist/commands/start/docker.js +61 -64
- package/dist/commands/start/docker.js.map +1 -1
- package/dist/commands/start/local/s3.cjs +101 -135
- package/dist/commands/start/local/s3.cjs.map +1 -1
- package/dist/commands/start/local/s3.d.ts +36 -31
- package/dist/commands/start/local/s3.js +97 -113
- package/dist/commands/start/local/s3.js.map +1 -1
- package/dist/commands/start/local.cjs +95 -122
- package/dist/commands/start/local.cjs.map +1 -1
- package/dist/commands/start/local.d.ts +34 -29
- package/dist/commands/start/local.js +91 -100
- package/dist/commands/start/local.js.map +1 -1
- package/dist/commands/start.cjs +18 -21
- package/dist/commands/start.cjs.map +1 -1
- package/dist/commands/start.d.ts +12 -7
- package/dist/commands/start.js +16 -18
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/stop.cjs +22 -27
- package/dist/commands/stop.cjs.map +1 -1
- package/dist/commands/stop.d.ts +12 -7
- package/dist/commands/stop.js +20 -24
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/svc/create/arg-parser.cjs +102 -172
- package/dist/commands/svc/create/arg-parser.cjs.map +1 -1
- package/dist/commands/svc/create/arg-parser.js +102 -171
- package/dist/commands/svc/create/arg-parser.js.map +1 -1
- package/dist/commands/svc/create/docker/s3.cjs +78 -96
- package/dist/commands/svc/create/docker/s3.cjs.map +1 -1
- package/dist/commands/svc/create/docker/s3.d.ts +35 -30
- package/dist/commands/svc/create/docker/s3.js +75 -93
- package/dist/commands/svc/create/docker/s3.js.map +1 -1
- package/dist/commands/svc/create/docker.cjs +82 -103
- package/dist/commands/svc/create/docker.cjs.map +1 -1
- package/dist/commands/svc/create/docker.d.ts +35 -30
- package/dist/commands/svc/create/docker.js +79 -100
- package/dist/commands/svc/create/docker.js.map +1 -1
- package/dist/commands/svc/create/local/s3.cjs +107 -139
- package/dist/commands/svc/create/local/s3.cjs.map +1 -1
- package/dist/commands/svc/create/local/s3.d.ts +39 -34
- package/dist/commands/svc/create/local/s3.js +103 -117
- package/dist/commands/svc/create/local/s3.js.map +1 -1
- package/dist/commands/svc/create/local.cjs +101 -138
- package/dist/commands/svc/create/local.cjs.map +1 -1
- package/dist/commands/svc/create/local.d.ts +37 -32
- package/dist/commands/svc/create/local.js +97 -116
- package/dist/commands/svc/create/local.js.map +1 -1
- package/dist/commands/svc/delete.cjs +36 -38
- package/dist/commands/svc/delete.cjs.map +1 -1
- package/dist/commands/svc/delete.d.ts +16 -11
- package/dist/commands/svc/delete.js +34 -35
- package/dist/commands/svc/delete.js.map +1 -1
- package/dist/commands/svc/down.cjs +27 -30
- package/dist/commands/svc/down.cjs.map +1 -1
- package/dist/commands/svc/down.d.ts +15 -10
- package/dist/commands/svc/down.js +25 -27
- package/dist/commands/svc/down.js.map +1 -1
- package/dist/commands/svc/list.cjs +25 -29
- package/dist/commands/svc/list.cjs.map +1 -1
- package/dist/commands/svc/list.d.ts +9 -5
- package/dist/commands/svc/list.js +23 -26
- package/dist/commands/svc/list.js.map +1 -1
- package/dist/commands/svc/up.cjs +33 -49
- package/dist/commands/svc/up.cjs.map +1 -1
- package/dist/commands/svc/up.d.ts +15 -10
- package/dist/commands/svc/up.js +31 -46
- package/dist/commands/svc/up.js.map +1 -1
- package/dist/core.cjs +712 -881
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +709 -877
- package/dist/core.js.map +1 -1
- package/dist/index.cjs +36 -36
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +37 -33
- package/dist/index.js +35 -34
- package/dist/index.js.map +1 -1
- package/dist/package.cjs +15 -36
- package/dist/package.cjs.map +1 -1
- package/dist/package.js +14 -14
- package/dist/package.js.map +1 -1
- package/dist/platforma.cjs +119 -148
- package/dist/platforma.cjs.map +1 -1
- package/dist/platforma.js +114 -122
- package/dist/platforma.js.map +1 -1
- package/dist/run.cjs +55 -58
- package/dist/run.cjs.map +1 -1
- package/dist/run.js +56 -56
- package/dist/run.js.map +1 -1
- package/dist/state.cjs +114 -141
- package/dist/state.cjs.map +1 -1
- package/dist/state.js +110 -139
- package/dist/state.js.map +1 -1
- package/dist/templates/compose.cjs +38 -65
- package/dist/templates/compose.cjs.map +1 -1
- package/dist/templates/compose.js +35 -63
- package/dist/templates/compose.js.map +1 -1
- package/dist/templates/pl-config.cjs +163 -165
- package/dist/templates/pl-config.cjs.map +1 -1
- package/dist/templates/pl-config.js +161 -163
- package/dist/templates/pl-config.js.map +1 -1
- package/dist/templates/types.cjs +24 -23
- package/dist/templates/types.cjs.map +1 -1
- package/dist/templates/types.js +24 -22
- package/dist/templates/types.js.map +1 -1
- package/dist/util.cjs +57 -74
- package/dist/util.cjs.map +1 -1
- package/dist/util.js +51 -72
- package/dist/util.js.map +1 -1
- package/package.json +7 -7
- package/dist/block.d.ts +0 -25
- package/dist/block.d.ts.map +0 -1
- package/dist/cmd-opts.d.ts +0 -89
- package/dist/cmd-opts.d.ts.map +0 -1
- package/dist/commands/create-block.d.ts.map +0 -1
- package/dist/commands/reset.d.ts.map +0 -1
- package/dist/commands/start/docker/s3.d.ts.map +0 -1
- package/dist/commands/start/docker.d.ts.map +0 -1
- package/dist/commands/start/local/s3.d.ts.map +0 -1
- package/dist/commands/start/local.d.ts.map +0 -1
- package/dist/commands/start.d.ts.map +0 -1
- package/dist/commands/stop.d.ts.map +0 -1
- package/dist/commands/svc/create/arg-parser.d.ts +0 -43
- package/dist/commands/svc/create/arg-parser.d.ts.map +0 -1
- package/dist/commands/svc/create/docker/s3.d.ts.map +0 -1
- package/dist/commands/svc/create/docker.d.ts.map +0 -1
- package/dist/commands/svc/create/local/s3.d.ts.map +0 -1
- package/dist/commands/svc/create/local.d.ts.map +0 -1
- package/dist/commands/svc/delete.d.ts.map +0 -1
- package/dist/commands/svc/down.d.ts.map +0 -1
- package/dist/commands/svc/list.d.ts.map +0 -1
- package/dist/commands/svc/up.d.ts.map +0 -1
- package/dist/core.d.ts +0 -105
- package/dist/core.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/package.d.ts +0 -7
- package/dist/package.d.ts.map +0 -1
- package/dist/platforma.d.ts +0 -24
- package/dist/platforma.d.ts.map +0 -1
- package/dist/run.d.ts +0 -13
- package/dist/run.d.ts.map +0 -1
- package/dist/state.d.ts +0 -63
- package/dist/state.d.ts.map +0 -1
- package/dist/templates/compose.d.ts +0 -14
- package/dist/templates/compose.d.ts.map +0 -1
- package/dist/templates/pl-config.d.ts +0 -6
- package/dist/templates/pl-config.d.ts.map +0 -1
- package/dist/templates/types.d.ts +0 -138
- package/dist/templates/types.d.ts.map +0 -1
- package/dist/util.d.ts +0 -18
- package/dist/util.d.ts.map +0 -1
|
@@ -1,175 +1,105 @@
|
|
|
1
|
-
'use strict';
|
|
2
1
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
this.setDefaultValues(result.knownFlags);
|
|
104
|
-
return result;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Parse flag value according to its type
|
|
108
|
-
*/
|
|
109
|
-
parseFlagValue(flagName, value) {
|
|
110
|
-
const flagDef = this.flagDefinitions.get(flagName);
|
|
111
|
-
if (!flagDef) {
|
|
112
|
-
return value;
|
|
113
|
-
}
|
|
114
|
-
switch (flagDef.type) {
|
|
115
|
-
case "number":
|
|
116
|
-
const num = parseFloat(value);
|
|
117
|
-
if (isNaN(num)) {
|
|
118
|
-
throw new Error(`Invalid number value for flag --${flagName}: ${value}`);
|
|
119
|
-
}
|
|
120
|
-
return num;
|
|
121
|
-
case "boolean":
|
|
122
|
-
if (value === "true" || value === "1")
|
|
123
|
-
return true;
|
|
124
|
-
if (value === "false" || value === "0")
|
|
125
|
-
return false;
|
|
126
|
-
return Boolean(value);
|
|
127
|
-
case "array":
|
|
128
|
-
if (flagDef.multiple) {
|
|
129
|
-
// For multiple flags create array
|
|
130
|
-
// This will be handled in main parse method
|
|
131
|
-
return [value];
|
|
132
|
-
}
|
|
133
|
-
return value;
|
|
134
|
-
default:
|
|
135
|
-
return value;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Find long flag name by short flag
|
|
140
|
-
*/
|
|
141
|
-
findLongFlagName(shortFlag) {
|
|
142
|
-
// Simple implementation - can be extended
|
|
143
|
-
for (const flagName of this.knownFlags) {
|
|
144
|
-
if (flagName.startsWith(shortFlag)) {
|
|
145
|
-
return flagName;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
return null;
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Set default values for flags
|
|
152
|
-
*/
|
|
153
|
-
setDefaultValues(flags) {
|
|
154
|
-
for (const [name, flagDef] of this.flagDefinitions) {
|
|
155
|
-
if (flagDef.default !== undefined && flags[name] === undefined) {
|
|
156
|
-
flags[name] = flagDef.default;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Validate required flags
|
|
162
|
-
*/
|
|
163
|
-
validateRequired(flags) {
|
|
164
|
-
const errors = [];
|
|
165
|
-
for (const [name, flagDef] of this.flagDefinitions) {
|
|
166
|
-
if (flagDef.required && flags[name] === undefined) {
|
|
167
|
-
errors.push(`Required flag --${name} is missing`);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
return errors;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
2
|
+
//#region src/commands/svc/create/arg-parser.ts
|
|
3
|
+
var ArgParser = class {
|
|
4
|
+
knownFlags;
|
|
5
|
+
flagDefinitions;
|
|
6
|
+
constructor(flags) {
|
|
7
|
+
this.knownFlags = new Set(Object.keys(flags));
|
|
8
|
+
this.flagDefinitions = /* @__PURE__ */ new Map();
|
|
9
|
+
for (const [name, flag] of Object.entries(flags)) if (flag.type) this.flagDefinitions.set(name, {
|
|
10
|
+
name,
|
|
11
|
+
type: flag.type,
|
|
12
|
+
required: flag.required || false,
|
|
13
|
+
default: flag.default,
|
|
14
|
+
multiple: flag.multiple || false
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Parse command line arguments
|
|
19
|
+
*/
|
|
20
|
+
parse(argv) {
|
|
21
|
+
const result = {
|
|
22
|
+
instanceName: "",
|
|
23
|
+
knownFlags: {},
|
|
24
|
+
unknownFlags: [],
|
|
25
|
+
positionalArgs: []
|
|
26
|
+
};
|
|
27
|
+
let i = 0;
|
|
28
|
+
while (i < argv.length) {
|
|
29
|
+
const arg = argv[i];
|
|
30
|
+
if (arg.startsWith("--")) if (arg.includes("=")) {
|
|
31
|
+
const [flagName, value] = arg.split("=", 2);
|
|
32
|
+
const cleanFlagName = flagName.substring(2);
|
|
33
|
+
if (this.knownFlags.has(cleanFlagName)) result.knownFlags[cleanFlagName] = this.parseFlagValue(cleanFlagName, value);
|
|
34
|
+
else result.unknownFlags.push(arg);
|
|
35
|
+
} else {
|
|
36
|
+
const flagName = arg.substring(2);
|
|
37
|
+
if (this.knownFlags.has(flagName)) if (this.flagDefinitions.get(flagName)?.type === "boolean") result.knownFlags[flagName] = true;
|
|
38
|
+
else if (i + 1 < argv.length && !argv[i + 1].startsWith("-")) {
|
|
39
|
+
const value = argv[i + 1];
|
|
40
|
+
result.knownFlags[flagName] = this.parseFlagValue(flagName, value);
|
|
41
|
+
i++;
|
|
42
|
+
} else result.knownFlags[flagName] = true;
|
|
43
|
+
else result.unknownFlags.push(arg);
|
|
44
|
+
}
|
|
45
|
+
else if (arg.startsWith("-") && arg.length > 1) {
|
|
46
|
+
const shortFlags = arg.substring(1).split("");
|
|
47
|
+
for (const shortFlag of shortFlags) {
|
|
48
|
+
const longFlagName = this.findLongFlagName(shortFlag);
|
|
49
|
+
if (longFlagName) result.knownFlags[longFlagName] = true;
|
|
50
|
+
else result.unknownFlags.push(`-${shortFlag}`);
|
|
51
|
+
}
|
|
52
|
+
} else if (!result.instanceName) result.instanceName = arg;
|
|
53
|
+
else result.positionalArgs.push(arg);
|
|
54
|
+
i++;
|
|
55
|
+
}
|
|
56
|
+
this.setDefaultValues(result.knownFlags);
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Parse flag value according to its type
|
|
61
|
+
*/
|
|
62
|
+
parseFlagValue(flagName, value) {
|
|
63
|
+
const flagDef = this.flagDefinitions.get(flagName);
|
|
64
|
+
if (!flagDef) return value;
|
|
65
|
+
switch (flagDef.type) {
|
|
66
|
+
case "number":
|
|
67
|
+
const num = parseFloat(value);
|
|
68
|
+
if (isNaN(num)) throw new Error(`Invalid number value for flag --${flagName}: ${value}`);
|
|
69
|
+
return num;
|
|
70
|
+
case "boolean":
|
|
71
|
+
if (value === "true" || value === "1") return true;
|
|
72
|
+
if (value === "false" || value === "0") return false;
|
|
73
|
+
return Boolean(value);
|
|
74
|
+
case "array":
|
|
75
|
+
if (flagDef.multiple) return [value];
|
|
76
|
+
return value;
|
|
77
|
+
default: return value;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Find long flag name by short flag
|
|
82
|
+
*/
|
|
83
|
+
findLongFlagName(shortFlag) {
|
|
84
|
+
for (const flagName of this.knownFlags) if (flagName.startsWith(shortFlag)) return flagName;
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Set default values for flags
|
|
89
|
+
*/
|
|
90
|
+
setDefaultValues(flags) {
|
|
91
|
+
for (const [name, flagDef] of this.flagDefinitions) if (flagDef.default !== void 0 && flags[name] === void 0) flags[name] = flagDef.default;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Validate required flags
|
|
95
|
+
*/
|
|
96
|
+
validateRequired(flags) {
|
|
97
|
+
const errors = [];
|
|
98
|
+
for (const [name, flagDef] of this.flagDefinitions) if (flagDef.required && flags[name] === void 0) errors.push(`Required flag --${name} is missing`);
|
|
99
|
+
return errors;
|
|
100
|
+
}
|
|
101
|
+
};
|
|
173
102
|
|
|
103
|
+
//#endregion
|
|
174
104
|
exports.ArgParser = ArgParser;
|
|
175
|
-
//# sourceMappingURL=arg-parser.cjs.map
|
|
105
|
+
//# sourceMappingURL=arg-parser.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arg-parser.cjs","sources":["../../../../src/commands/svc/create/arg-parser.ts"],"sourcesContent":["/**\n * Enhanced command line argument parser for OCLIF commands\n * Handles both known and unknown flags\n */\n\nexport interface ParsedArgs {\n instanceName: string;\n knownFlags: Record<string, any>;\n unknownFlags: string[];\n positionalArgs: string[];\n}\n\nexport interface FlagDefinition {\n name: string;\n type: \"string\" | \"boolean\" | \"number\" | \"array\";\n required?: boolean;\n default?: any;\n multiple?: boolean;\n}\n\nexport class ArgParser {\n private knownFlags: Set<string>;\n private flagDefinitions: Map<string, FlagDefinition>;\n\n constructor(flags: Record<string, any>) {\n this.knownFlags = new Set(Object.keys(flags));\n this.flagDefinitions = new Map();\n\n // Analyze flag definitions\n for (const [name, flag] of Object.entries(flags)) {\n if (flag.type) {\n this.flagDefinitions.set(name, {\n name,\n type: flag.type,\n required: flag.required || false,\n default: flag.default,\n multiple: flag.multiple || false,\n });\n }\n }\n }\n\n /**\n * Parse command line arguments\n */\n parse(argv: string[]): ParsedArgs {\n const result: ParsedArgs = {\n instanceName: \"\",\n knownFlags: {},\n unknownFlags: [],\n positionalArgs: [],\n };\n\n let i = 0;\n while (i < argv.length) {\n const arg = argv[i];\n\n if (arg.startsWith(\"--\")) {\n // Handle flag\n if (arg.includes(\"=\")) {\n // Flag with value: --flag=value\n const [flagName, value] = arg.split(\"=\", 2);\n const cleanFlagName = flagName.substring(2);\n\n if (this.knownFlags.has(cleanFlagName)) {\n result.knownFlags[cleanFlagName] = this.parseFlagValue(cleanFlagName, value);\n } else {\n result.unknownFlags.push(arg);\n }\n } else {\n // Flag without value: --flag or --flag value\n const flagName = arg.substring(2);\n\n if (this.knownFlags.has(flagName)) {\n const flagDef = this.flagDefinitions.get(flagName);\n\n if (flagDef?.type === \"boolean\") {\n // Boolean flag\n result.knownFlags[flagName] = true;\n } else if (i + 1 < argv.length && !argv[i + 1].startsWith(\"-\")) {\n // Flag with value in next argument\n const value = argv[i + 1];\n result.knownFlags[flagName] = this.parseFlagValue(flagName, value);\n i++; // Skip next argument\n } else {\n // Flag without value\n result.knownFlags[flagName] = true;\n }\n } else {\n result.unknownFlags.push(arg);\n }\n }\n } else if (arg.startsWith(\"-\") && arg.length > 1) {\n // Short flags: -f, -abc\n const shortFlags = arg.substring(1).split(\"\");\n for (const shortFlag of shortFlags) {\n // Find long name for short flag\n const longFlagName = this.findLongFlagName(shortFlag);\n if (longFlagName) {\n result.knownFlags[longFlagName] = true;\n } else {\n result.unknownFlags.push(`-${shortFlag}`);\n }\n }\n } else {\n // Positional argument\n if (!result.instanceName) {\n result.instanceName = arg;\n } else {\n result.positionalArgs.push(arg);\n }\n }\n\n i++;\n }\n\n // Set default values\n this.setDefaultValues(result.knownFlags);\n\n return result;\n }\n\n /**\n * Parse flag value according to its type\n */\n private parseFlagValue(flagName: string, value: string): any {\n const flagDef = this.flagDefinitions.get(flagName);\n\n if (!flagDef) {\n return value;\n }\n\n switch (flagDef.type) {\n case \"number\":\n const num = parseFloat(value);\n if (isNaN(num)) {\n throw new Error(`Invalid number value for flag --${flagName}: ${value}`);\n }\n return num;\n\n case \"boolean\":\n if (value === \"true\" || value === \"1\") return true;\n if (value === \"false\" || value === \"0\") return false;\n return Boolean(value);\n\n case \"array\":\n if (flagDef.multiple) {\n // For multiple flags create array\n // This will be handled in main parse method\n return [value];\n }\n return value;\n\n default:\n return value;\n }\n }\n\n /**\n * Find long flag name by short flag\n */\n private findLongFlagName(shortFlag: string): string | null {\n // Simple implementation - can be extended\n for (const flagName of this.knownFlags) {\n if (flagName.startsWith(shortFlag)) {\n return flagName;\n }\n }\n return null;\n }\n\n /**\n * Set default values for flags\n */\n private setDefaultValues(flags: Record<string, any>): void {\n for (const [name, flagDef] of this.flagDefinitions) {\n if (flagDef.default !== undefined && flags[name] === undefined) {\n flags[name] = flagDef.default;\n }\n }\n }\n\n /**\n * Validate required flags\n */\n validateRequired(flags: Record<string, any>): string[] {\n const errors: string[] = [];\n\n for (const [name, flagDef] of this.flagDefinitions) {\n if (flagDef.required && flags[name] === undefined) {\n errors.push(`Required flag --${name} is missing`);\n }\n }\n\n return errors;\n }\n}\n"],"
|
|
1
|
+
{"version":3,"file":"arg-parser.cjs","names":[],"sources":["../../../../src/commands/svc/create/arg-parser.ts"],"sourcesContent":["/**\n * Enhanced command line argument parser for OCLIF commands\n * Handles both known and unknown flags\n */\n\nexport interface ParsedArgs {\n instanceName: string;\n knownFlags: Record<string, any>;\n unknownFlags: string[];\n positionalArgs: string[];\n}\n\nexport interface FlagDefinition {\n name: string;\n type: \"string\" | \"boolean\" | \"number\" | \"array\";\n required?: boolean;\n default?: any;\n multiple?: boolean;\n}\n\nexport class ArgParser {\n private knownFlags: Set<string>;\n private flagDefinitions: Map<string, FlagDefinition>;\n\n constructor(flags: Record<string, any>) {\n this.knownFlags = new Set(Object.keys(flags));\n this.flagDefinitions = new Map();\n\n // Analyze flag definitions\n for (const [name, flag] of Object.entries(flags)) {\n if (flag.type) {\n this.flagDefinitions.set(name, {\n name,\n type: flag.type,\n required: flag.required || false,\n default: flag.default,\n multiple: flag.multiple || false,\n });\n }\n }\n }\n\n /**\n * Parse command line arguments\n */\n parse(argv: string[]): ParsedArgs {\n const result: ParsedArgs = {\n instanceName: \"\",\n knownFlags: {},\n unknownFlags: [],\n positionalArgs: [],\n };\n\n let i = 0;\n while (i < argv.length) {\n const arg = argv[i];\n\n if (arg.startsWith(\"--\")) {\n // Handle flag\n if (arg.includes(\"=\")) {\n // Flag with value: --flag=value\n const [flagName, value] = arg.split(\"=\", 2);\n const cleanFlagName = flagName.substring(2);\n\n if (this.knownFlags.has(cleanFlagName)) {\n result.knownFlags[cleanFlagName] = this.parseFlagValue(cleanFlagName, value);\n } else {\n result.unknownFlags.push(arg);\n }\n } else {\n // Flag without value: --flag or --flag value\n const flagName = arg.substring(2);\n\n if (this.knownFlags.has(flagName)) {\n const flagDef = this.flagDefinitions.get(flagName);\n\n if (flagDef?.type === \"boolean\") {\n // Boolean flag\n result.knownFlags[flagName] = true;\n } else if (i + 1 < argv.length && !argv[i + 1].startsWith(\"-\")) {\n // Flag with value in next argument\n const value = argv[i + 1];\n result.knownFlags[flagName] = this.parseFlagValue(flagName, value);\n i++; // Skip next argument\n } else {\n // Flag without value\n result.knownFlags[flagName] = true;\n }\n } else {\n result.unknownFlags.push(arg);\n }\n }\n } else if (arg.startsWith(\"-\") && arg.length > 1) {\n // Short flags: -f, -abc\n const shortFlags = arg.substring(1).split(\"\");\n for (const shortFlag of shortFlags) {\n // Find long name for short flag\n const longFlagName = this.findLongFlagName(shortFlag);\n if (longFlagName) {\n result.knownFlags[longFlagName] = true;\n } else {\n result.unknownFlags.push(`-${shortFlag}`);\n }\n }\n } else {\n // Positional argument\n if (!result.instanceName) {\n result.instanceName = arg;\n } else {\n result.positionalArgs.push(arg);\n }\n }\n\n i++;\n }\n\n // Set default values\n this.setDefaultValues(result.knownFlags);\n\n return result;\n }\n\n /**\n * Parse flag value according to its type\n */\n private parseFlagValue(flagName: string, value: string): any {\n const flagDef = this.flagDefinitions.get(flagName);\n\n if (!flagDef) {\n return value;\n }\n\n switch (flagDef.type) {\n case \"number\":\n const num = parseFloat(value);\n if (isNaN(num)) {\n throw new Error(`Invalid number value for flag --${flagName}: ${value}`);\n }\n return num;\n\n case \"boolean\":\n if (value === \"true\" || value === \"1\") return true;\n if (value === \"false\" || value === \"0\") return false;\n return Boolean(value);\n\n case \"array\":\n if (flagDef.multiple) {\n // For multiple flags create array\n // This will be handled in main parse method\n return [value];\n }\n return value;\n\n default:\n return value;\n }\n }\n\n /**\n * Find long flag name by short flag\n */\n private findLongFlagName(shortFlag: string): string | null {\n // Simple implementation - can be extended\n for (const flagName of this.knownFlags) {\n if (flagName.startsWith(shortFlag)) {\n return flagName;\n }\n }\n return null;\n }\n\n /**\n * Set default values for flags\n */\n private setDefaultValues(flags: Record<string, any>): void {\n for (const [name, flagDef] of this.flagDefinitions) {\n if (flagDef.default !== undefined && flags[name] === undefined) {\n flags[name] = flagDef.default;\n }\n }\n }\n\n /**\n * Validate required flags\n */\n validateRequired(flags: Record<string, any>): string[] {\n const errors: string[] = [];\n\n for (const [name, flagDef] of this.flagDefinitions) {\n if (flagDef.required && flags[name] === undefined) {\n errors.push(`Required flag --${name} is missing`);\n }\n }\n\n return errors;\n }\n}\n"],"mappings":";;AAoBA,IAAa,YAAb,MAAuB;CACrB,AAAQ;CACR,AAAQ;CAER,YAAY,OAA4B;AACtC,OAAK,aAAa,IAAI,IAAI,OAAO,KAAK,MAAM,CAAC;AAC7C,OAAK,kCAAkB,IAAI,KAAK;AAGhC,OAAK,MAAM,CAAC,MAAM,SAAS,OAAO,QAAQ,MAAM,CAC9C,KAAI,KAAK,KACP,MAAK,gBAAgB,IAAI,MAAM;GAC7B;GACA,MAAM,KAAK;GACX,UAAU,KAAK,YAAY;GAC3B,SAAS,KAAK;GACd,UAAU,KAAK,YAAY;GAC5B,CAAC;;;;;CAQR,MAAM,MAA4B;EAChC,MAAM,SAAqB;GACzB,cAAc;GACd,YAAY,EAAE;GACd,cAAc,EAAE;GAChB,gBAAgB,EAAE;GACnB;EAED,IAAI,IAAI;AACR,SAAO,IAAI,KAAK,QAAQ;GACtB,MAAM,MAAM,KAAK;AAEjB,OAAI,IAAI,WAAW,KAAK,CAEtB,KAAI,IAAI,SAAS,IAAI,EAAE;IAErB,MAAM,CAAC,UAAU,SAAS,IAAI,MAAM,KAAK,EAAE;IAC3C,MAAM,gBAAgB,SAAS,UAAU,EAAE;AAE3C,QAAI,KAAK,WAAW,IAAI,cAAc,CACpC,QAAO,WAAW,iBAAiB,KAAK,eAAe,eAAe,MAAM;QAE5E,QAAO,aAAa,KAAK,IAAI;UAE1B;IAEL,MAAM,WAAW,IAAI,UAAU,EAAE;AAEjC,QAAI,KAAK,WAAW,IAAI,SAAS,CAG/B,KAFgB,KAAK,gBAAgB,IAAI,SAAS,EAErC,SAAS,UAEpB,QAAO,WAAW,YAAY;aACrB,IAAI,IAAI,KAAK,UAAU,CAAC,KAAK,IAAI,GAAG,WAAW,IAAI,EAAE;KAE9D,MAAM,QAAQ,KAAK,IAAI;AACvB,YAAO,WAAW,YAAY,KAAK,eAAe,UAAU,MAAM;AAClE;UAGA,QAAO,WAAW,YAAY;QAGhC,QAAO,aAAa,KAAK,IAAI;;YAGxB,IAAI,WAAW,IAAI,IAAI,IAAI,SAAS,GAAG;IAEhD,MAAM,aAAa,IAAI,UAAU,EAAE,CAAC,MAAM,GAAG;AAC7C,SAAK,MAAM,aAAa,YAAY;KAElC,MAAM,eAAe,KAAK,iBAAiB,UAAU;AACrD,SAAI,aACF,QAAO,WAAW,gBAAgB;SAElC,QAAO,aAAa,KAAK,IAAI,YAAY;;cAKzC,CAAC,OAAO,aACV,QAAO,eAAe;OAEtB,QAAO,eAAe,KAAK,IAAI;AAInC;;AAIF,OAAK,iBAAiB,OAAO,WAAW;AAExC,SAAO;;;;;CAMT,AAAQ,eAAe,UAAkB,OAAoB;EAC3D,MAAM,UAAU,KAAK,gBAAgB,IAAI,SAAS;AAElD,MAAI,CAAC,QACH,QAAO;AAGT,UAAQ,QAAQ,MAAhB;GACE,KAAK;IACH,MAAM,MAAM,WAAW,MAAM;AAC7B,QAAI,MAAM,IAAI,CACZ,OAAM,IAAI,MAAM,mCAAmC,SAAS,IAAI,QAAQ;AAE1E,WAAO;GAET,KAAK;AACH,QAAI,UAAU,UAAU,UAAU,IAAK,QAAO;AAC9C,QAAI,UAAU,WAAW,UAAU,IAAK,QAAO;AAC/C,WAAO,QAAQ,MAAM;GAEvB,KAAK;AACH,QAAI,QAAQ,SAGV,QAAO,CAAC,MAAM;AAEhB,WAAO;GAET,QACE,QAAO;;;;;;CAOb,AAAQ,iBAAiB,WAAkC;AAEzD,OAAK,MAAM,YAAY,KAAK,WAC1B,KAAI,SAAS,WAAW,UAAU,CAChC,QAAO;AAGX,SAAO;;;;;CAMT,AAAQ,iBAAiB,OAAkC;AACzD,OAAK,MAAM,CAAC,MAAM,YAAY,KAAK,gBACjC,KAAI,QAAQ,YAAY,UAAa,MAAM,UAAU,OACnD,OAAM,QAAQ,QAAQ;;;;;CAQ5B,iBAAiB,OAAsC;EACrD,MAAM,SAAmB,EAAE;AAE3B,OAAK,MAAM,CAAC,MAAM,YAAY,KAAK,gBACjC,KAAI,QAAQ,YAAY,MAAM,UAAU,OACtC,QAAO,KAAK,mBAAmB,KAAK,aAAa;AAIrD,SAAO"}
|
|
@@ -1,173 +1,104 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
this.setDefaultValues(result.knownFlags);
|
|
102
|
-
return result;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Parse flag value according to its type
|
|
106
|
-
*/
|
|
107
|
-
parseFlagValue(flagName, value) {
|
|
108
|
-
const flagDef = this.flagDefinitions.get(flagName);
|
|
109
|
-
if (!flagDef) {
|
|
110
|
-
return value;
|
|
111
|
-
}
|
|
112
|
-
switch (flagDef.type) {
|
|
113
|
-
case "number":
|
|
114
|
-
const num = parseFloat(value);
|
|
115
|
-
if (isNaN(num)) {
|
|
116
|
-
throw new Error(`Invalid number value for flag --${flagName}: ${value}`);
|
|
117
|
-
}
|
|
118
|
-
return num;
|
|
119
|
-
case "boolean":
|
|
120
|
-
if (value === "true" || value === "1")
|
|
121
|
-
return true;
|
|
122
|
-
if (value === "false" || value === "0")
|
|
123
|
-
return false;
|
|
124
|
-
return Boolean(value);
|
|
125
|
-
case "array":
|
|
126
|
-
if (flagDef.multiple) {
|
|
127
|
-
// For multiple flags create array
|
|
128
|
-
// This will be handled in main parse method
|
|
129
|
-
return [value];
|
|
130
|
-
}
|
|
131
|
-
return value;
|
|
132
|
-
default:
|
|
133
|
-
return value;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Find long flag name by short flag
|
|
138
|
-
*/
|
|
139
|
-
findLongFlagName(shortFlag) {
|
|
140
|
-
// Simple implementation - can be extended
|
|
141
|
-
for (const flagName of this.knownFlags) {
|
|
142
|
-
if (flagName.startsWith(shortFlag)) {
|
|
143
|
-
return flagName;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
return null;
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Set default values for flags
|
|
150
|
-
*/
|
|
151
|
-
setDefaultValues(flags) {
|
|
152
|
-
for (const [name, flagDef] of this.flagDefinitions) {
|
|
153
|
-
if (flagDef.default !== undefined && flags[name] === undefined) {
|
|
154
|
-
flags[name] = flagDef.default;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Validate required flags
|
|
160
|
-
*/
|
|
161
|
-
validateRequired(flags) {
|
|
162
|
-
const errors = [];
|
|
163
|
-
for (const [name, flagDef] of this.flagDefinitions) {
|
|
164
|
-
if (flagDef.required && flags[name] === undefined) {
|
|
165
|
-
errors.push(`Required flag --${name} is missing`);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
return errors;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
1
|
+
//#region src/commands/svc/create/arg-parser.ts
|
|
2
|
+
var ArgParser = class {
|
|
3
|
+
knownFlags;
|
|
4
|
+
flagDefinitions;
|
|
5
|
+
constructor(flags) {
|
|
6
|
+
this.knownFlags = new Set(Object.keys(flags));
|
|
7
|
+
this.flagDefinitions = /* @__PURE__ */ new Map();
|
|
8
|
+
for (const [name, flag] of Object.entries(flags)) if (flag.type) this.flagDefinitions.set(name, {
|
|
9
|
+
name,
|
|
10
|
+
type: flag.type,
|
|
11
|
+
required: flag.required || false,
|
|
12
|
+
default: flag.default,
|
|
13
|
+
multiple: flag.multiple || false
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Parse command line arguments
|
|
18
|
+
*/
|
|
19
|
+
parse(argv) {
|
|
20
|
+
const result = {
|
|
21
|
+
instanceName: "",
|
|
22
|
+
knownFlags: {},
|
|
23
|
+
unknownFlags: [],
|
|
24
|
+
positionalArgs: []
|
|
25
|
+
};
|
|
26
|
+
let i = 0;
|
|
27
|
+
while (i < argv.length) {
|
|
28
|
+
const arg = argv[i];
|
|
29
|
+
if (arg.startsWith("--")) if (arg.includes("=")) {
|
|
30
|
+
const [flagName, value] = arg.split("=", 2);
|
|
31
|
+
const cleanFlagName = flagName.substring(2);
|
|
32
|
+
if (this.knownFlags.has(cleanFlagName)) result.knownFlags[cleanFlagName] = this.parseFlagValue(cleanFlagName, value);
|
|
33
|
+
else result.unknownFlags.push(arg);
|
|
34
|
+
} else {
|
|
35
|
+
const flagName = arg.substring(2);
|
|
36
|
+
if (this.knownFlags.has(flagName)) if (this.flagDefinitions.get(flagName)?.type === "boolean") result.knownFlags[flagName] = true;
|
|
37
|
+
else if (i + 1 < argv.length && !argv[i + 1].startsWith("-")) {
|
|
38
|
+
const value = argv[i + 1];
|
|
39
|
+
result.knownFlags[flagName] = this.parseFlagValue(flagName, value);
|
|
40
|
+
i++;
|
|
41
|
+
} else result.knownFlags[flagName] = true;
|
|
42
|
+
else result.unknownFlags.push(arg);
|
|
43
|
+
}
|
|
44
|
+
else if (arg.startsWith("-") && arg.length > 1) {
|
|
45
|
+
const shortFlags = arg.substring(1).split("");
|
|
46
|
+
for (const shortFlag of shortFlags) {
|
|
47
|
+
const longFlagName = this.findLongFlagName(shortFlag);
|
|
48
|
+
if (longFlagName) result.knownFlags[longFlagName] = true;
|
|
49
|
+
else result.unknownFlags.push(`-${shortFlag}`);
|
|
50
|
+
}
|
|
51
|
+
} else if (!result.instanceName) result.instanceName = arg;
|
|
52
|
+
else result.positionalArgs.push(arg);
|
|
53
|
+
i++;
|
|
54
|
+
}
|
|
55
|
+
this.setDefaultValues(result.knownFlags);
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Parse flag value according to its type
|
|
60
|
+
*/
|
|
61
|
+
parseFlagValue(flagName, value) {
|
|
62
|
+
const flagDef = this.flagDefinitions.get(flagName);
|
|
63
|
+
if (!flagDef) return value;
|
|
64
|
+
switch (flagDef.type) {
|
|
65
|
+
case "number":
|
|
66
|
+
const num = parseFloat(value);
|
|
67
|
+
if (isNaN(num)) throw new Error(`Invalid number value for flag --${flagName}: ${value}`);
|
|
68
|
+
return num;
|
|
69
|
+
case "boolean":
|
|
70
|
+
if (value === "true" || value === "1") return true;
|
|
71
|
+
if (value === "false" || value === "0") return false;
|
|
72
|
+
return Boolean(value);
|
|
73
|
+
case "array":
|
|
74
|
+
if (flagDef.multiple) return [value];
|
|
75
|
+
return value;
|
|
76
|
+
default: return value;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Find long flag name by short flag
|
|
81
|
+
*/
|
|
82
|
+
findLongFlagName(shortFlag) {
|
|
83
|
+
for (const flagName of this.knownFlags) if (flagName.startsWith(shortFlag)) return flagName;
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Set default values for flags
|
|
88
|
+
*/
|
|
89
|
+
setDefaultValues(flags) {
|
|
90
|
+
for (const [name, flagDef] of this.flagDefinitions) if (flagDef.default !== void 0 && flags[name] === void 0) flags[name] = flagDef.default;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Validate required flags
|
|
94
|
+
*/
|
|
95
|
+
validateRequired(flags) {
|
|
96
|
+
const errors = [];
|
|
97
|
+
for (const [name, flagDef] of this.flagDefinitions) if (flagDef.required && flags[name] === void 0) errors.push(`Required flag --${name} is missing`);
|
|
98
|
+
return errors;
|
|
99
|
+
}
|
|
100
|
+
};
|
|
171
101
|
|
|
102
|
+
//#endregion
|
|
172
103
|
export { ArgParser };
|
|
173
|
-
//# sourceMappingURL=arg-parser.js.map
|
|
104
|
+
//# sourceMappingURL=arg-parser.js.map
|