@codeworksh/cli 0.0.1-dev.20260918040208 → 0.0.1-dev.20260922135856
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 +51 -0
- package/add-D7X5BuCv.mjs +81 -0
- package/add-D7X5BuCv.mjs.map +1 -0
- package/{catalog-DobwC9tt.mjs → catalog-DL8yWdvI.mjs} +2 -2
- package/{catalog-DobwC9tt.mjs.map → catalog-DL8yWdvI.mjs.map} +1 -1
- package/check-M9CqztTk.mjs +47 -0
- package/check-M9CqztTk.mjs.map +1 -0
- package/commonjs-CiyyOsS6.mjs +160 -0
- package/commonjs-CiyyOsS6.mjs.map +1 -0
- package/definitions-ClJIBYEm.mjs +3348 -0
- package/definitions-ClJIBYEm.mjs.map +1 -0
- package/entries-DBdy6ahj.mjs +48 -0
- package/entries-DBdy6ahj.mjs.map +1 -0
- package/{error-Cr8LvfEq.mjs → error-DTXBm1nO.mjs} +2324 -5136
- package/error-DTXBm1nO.mjs.map +1 -0
- package/{generate-BMJEbGEP.mjs → generate-C5NElYXe.mjs} +3 -3
- package/{generate-BMJEbGEP.mjs.map → generate-C5NElYXe.mjs.map} +1 -1
- package/{harness-hle7yBVs.mjs → harness-DQxbts5f.mjs} +2 -2
- package/{harness-hle7yBVs.mjs.map → harness-DQxbts5f.mjs.map} +1 -1
- package/index.mjs +16 -6
- package/index.mjs.map +1 -1
- package/install-CJEnZ9dx.mjs +53 -0
- package/install-CJEnZ9dx.mjs.map +1 -0
- package/lib-5d-Jmuz2.mjs +16078 -0
- package/lib-5d-Jmuz2.mjs.map +1 -0
- package/lib-CVW4jqJ3.mjs +37659 -0
- package/lib-CVW4jqJ3.mjs.map +1 -0
- package/lib-HXZBVLKt.mjs +846 -0
- package/lib-HXZBVLKt.mjs.map +1 -0
- package/lib-vrwKjvzk.mjs +10868 -0
- package/lib-vrwKjvzk.mjs.map +1 -0
- package/link-D8V3E5iZ.mjs +40 -0
- package/link-D8V3E5iZ.mjs.map +1 -0
- package/{list-crXAfyCe.mjs → list-BMUDpLRf.mjs} +4 -4
- package/{list-crXAfyCe.mjs.map → list-BMUDpLRf.mjs.map} +1 -1
- package/list-DS9BJ3dD.mjs +76 -0
- package/list-DS9BJ3dD.mjs.map +1 -0
- package/p-map-LZ99xLhZ.mjs +116 -0
- package/p-map-LZ99xLhZ.mjs.map +1 -0
- package/package.json +14 -8
- package/{providers-BcJ_s8zf.mjs → providers-DT5BfXJV.mjs} +4 -4
- package/{providers-BcJ_s8zf.mjs.map → providers-DT5BfXJV.mjs.map} +1 -1
- package/reload-2GZ_8UBW.mjs +26 -0
- package/reload-2GZ_8UBW.mjs.map +1 -0
- package/remove-t8FHVGC0.mjs +36 -0
- package/remove-t8FHVGC0.mjs.map +1 -0
- package/{run-B4mqUQsS.mjs → run-CP7aAfkf.mjs} +11 -8
- package/run-CP7aAfkf.mjs.map +1 -0
- package/{runtime-DuL-GGrx.mjs → runtime-CDSh4qOj.mjs} +108 -1
- package/runtime-CDSh4qOj.mjs.map +1 -0
- package/{serve-CRUpKDkt.mjs → serve-DewC8gvV.mjs} +19 -6
- package/serve-DewC8gvV.mjs.map +1 -0
- package/settings-Bn2pmQXX.mjs +215 -0
- package/settings-Bn2pmQXX.mjs.map +1 -0
- package/type-defs-xvRvQI4T.mjs +538 -0
- package/type-defs-xvRvQI4T.mjs.map +1 -0
- package/update-CLfU-oh7.mjs +44 -0
- package/update-CLfU-oh7.mjs.map +1 -0
- package/valid-BXe5q7ao.mjs +354 -0
- package/valid-BXe5q7ao.mjs.map +1 -0
- package/error-Cr8LvfEq.mjs.map +0 -1
- package/run-B4mqUQsS.mjs.map +0 -1
- package/runtime-DuL-GGrx.mjs.map +0 -1
- package/serve-CRUpKDkt.mjs.map +0 -1
|
@@ -0,0 +1,538 @@
|
|
|
1
|
+
import { St as __require, yt as __commonJSMin } from "./error-DTXBm1nO.mjs";
|
|
2
|
+
import { t as require_valid } from "./valid-BXe5q7ao.mjs";
|
|
3
|
+
//#region ../../node_modules/.pnpm/abbrev@5.0.0/node_modules/abbrev/lib/index.js
|
|
4
|
+
var require_lib = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
5
|
+
module.exports = abbrev;
|
|
6
|
+
function abbrev(...args) {
|
|
7
|
+
let list = args;
|
|
8
|
+
if (args.length === 1 && (Array.isArray(args[0]) || typeof args[0] === "string")) list = [].concat(args[0]);
|
|
9
|
+
for (let i = 0, l = list.length; i < l; i++) list[i] = typeof list[i] === "string" ? list[i] : String(list[i]);
|
|
10
|
+
list = list.sort(lexSort);
|
|
11
|
+
const abbrevs = {};
|
|
12
|
+
let prev = "";
|
|
13
|
+
for (let ii = 0, ll = list.length; ii < ll; ii++) {
|
|
14
|
+
const current = list[ii];
|
|
15
|
+
const next = list[ii + 1] || "";
|
|
16
|
+
let nextMatches = true;
|
|
17
|
+
let prevMatches = true;
|
|
18
|
+
if (current === next) continue;
|
|
19
|
+
let j = 0;
|
|
20
|
+
const cl = current.length;
|
|
21
|
+
for (; j < cl; j++) {
|
|
22
|
+
const curChar = current.charAt(j);
|
|
23
|
+
nextMatches = nextMatches && curChar === next.charAt(j);
|
|
24
|
+
prevMatches = prevMatches && curChar === prev.charAt(j);
|
|
25
|
+
if (!nextMatches && !prevMatches) {
|
|
26
|
+
j++;
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
prev = current;
|
|
31
|
+
if (j === cl) {
|
|
32
|
+
abbrevs[current] = current;
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
for (let a = current.slice(0, j); j <= cl; j++) {
|
|
36
|
+
abbrevs[a] = current;
|
|
37
|
+
a += current.charAt(j);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return abbrevs;
|
|
41
|
+
}
|
|
42
|
+
function lexSort(a, b) {
|
|
43
|
+
return a === b ? 0 : a > b ? 1 : -1;
|
|
44
|
+
}
|
|
45
|
+
}));
|
|
46
|
+
//#endregion
|
|
47
|
+
//#region ../../node_modules/.pnpm/nopt@10.0.1/node_modules/nopt/lib/type-defs.js
|
|
48
|
+
var require_type_defs$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
49
|
+
const os = __require("node:os");
|
|
50
|
+
const path = __require("node:path");
|
|
51
|
+
const { Stream } = __require("node:stream");
|
|
52
|
+
const { URL } = __require("node:url");
|
|
53
|
+
function validateString(data, k, val) {
|
|
54
|
+
data[k] = String(val);
|
|
55
|
+
}
|
|
56
|
+
function validatePath(data, k, val) {
|
|
57
|
+
if (val === true) return false;
|
|
58
|
+
if (val === null) return true;
|
|
59
|
+
val = String(val);
|
|
60
|
+
const homePattern = process.platform === "win32" ? /^~(\/|\\)/ : /^~\//;
|
|
61
|
+
const home = os.homedir();
|
|
62
|
+
if (home && val.match(homePattern)) data[k] = path.resolve(home, val.slice(2));
|
|
63
|
+
else data[k] = path.resolve(val);
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
function validateNumber(data, k, val) {
|
|
67
|
+
if (isNaN(val)) return false;
|
|
68
|
+
data[k] = +val;
|
|
69
|
+
}
|
|
70
|
+
function validateDate(data, k, val) {
|
|
71
|
+
if (isNaN(Date.parse(val))) return false;
|
|
72
|
+
data[k] = new Date(val);
|
|
73
|
+
}
|
|
74
|
+
function validateBoolean(data, k, val) {
|
|
75
|
+
if (typeof val === "string") {
|
|
76
|
+
if (!isNaN(val)) val = !!+val;
|
|
77
|
+
else if (val === "null" || val === "false") val = false;
|
|
78
|
+
else val = true;
|
|
79
|
+
} else val = !!val;
|
|
80
|
+
data[k] = val;
|
|
81
|
+
}
|
|
82
|
+
function validateUrl(data, k, val) {
|
|
83
|
+
const parsed = URL.parse(String(val));
|
|
84
|
+
if (!parsed) return false;
|
|
85
|
+
data[k] = parsed.href;
|
|
86
|
+
}
|
|
87
|
+
function validateStream(data, k, val) {
|
|
88
|
+
if (!(val instanceof Stream)) return false;
|
|
89
|
+
data[k] = val;
|
|
90
|
+
}
|
|
91
|
+
module.exports = {
|
|
92
|
+
String: {
|
|
93
|
+
type: String,
|
|
94
|
+
validate: validateString
|
|
95
|
+
},
|
|
96
|
+
Boolean: {
|
|
97
|
+
type: Boolean,
|
|
98
|
+
validate: validateBoolean
|
|
99
|
+
},
|
|
100
|
+
url: {
|
|
101
|
+
type: URL,
|
|
102
|
+
validate: validateUrl
|
|
103
|
+
},
|
|
104
|
+
Number: {
|
|
105
|
+
type: Number,
|
|
106
|
+
validate: validateNumber
|
|
107
|
+
},
|
|
108
|
+
path: {
|
|
109
|
+
type: path,
|
|
110
|
+
validate: validatePath
|
|
111
|
+
},
|
|
112
|
+
Stream: {
|
|
113
|
+
type: Stream,
|
|
114
|
+
validate: validateStream
|
|
115
|
+
},
|
|
116
|
+
Date: {
|
|
117
|
+
type: Date,
|
|
118
|
+
validate: validateDate
|
|
119
|
+
},
|
|
120
|
+
Array: { type: Array }
|
|
121
|
+
};
|
|
122
|
+
}));
|
|
123
|
+
//#endregion
|
|
124
|
+
//#region ../../node_modules/.pnpm/nopt@10.0.1/node_modules/nopt/lib/nopt-lib.js
|
|
125
|
+
var require_nopt_lib = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
126
|
+
const abbrev = require_lib();
|
|
127
|
+
const defaultTypeDefs = require_type_defs$1();
|
|
128
|
+
const hasOwn = (o, k) => Object.prototype.hasOwnProperty.call(o, k);
|
|
129
|
+
const getType = (k, { types, dynamicTypes }) => {
|
|
130
|
+
let hasType = hasOwn(types, k);
|
|
131
|
+
let type = types[k];
|
|
132
|
+
if (!hasType && typeof dynamicTypes === "function") {
|
|
133
|
+
const matchedType = dynamicTypes(k);
|
|
134
|
+
if (matchedType !== void 0) {
|
|
135
|
+
type = matchedType;
|
|
136
|
+
hasType = true;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return [hasType, type];
|
|
140
|
+
};
|
|
141
|
+
const isTypeDef = (type, def) => def && type === def;
|
|
142
|
+
const hasTypeDef = (type, def) => def && type.indexOf(def) !== -1;
|
|
143
|
+
const doesNotHaveTypeDef = (type, def) => def && !hasTypeDef(type, def);
|
|
144
|
+
function nopt(args, { types, shorthands, typeDefs, invalidHandler, unknownHandler, abbrevHandler, typeDefault, dynamicTypes } = {}) {
|
|
145
|
+
const data = {};
|
|
146
|
+
const argv = {
|
|
147
|
+
remain: [],
|
|
148
|
+
cooked: args,
|
|
149
|
+
original: args.slice(0)
|
|
150
|
+
};
|
|
151
|
+
parse(args, data, argv.remain, {
|
|
152
|
+
typeDefs,
|
|
153
|
+
types,
|
|
154
|
+
dynamicTypes,
|
|
155
|
+
shorthands,
|
|
156
|
+
unknownHandler,
|
|
157
|
+
abbrevHandler
|
|
158
|
+
});
|
|
159
|
+
clean(data, {
|
|
160
|
+
types,
|
|
161
|
+
dynamicTypes,
|
|
162
|
+
typeDefs,
|
|
163
|
+
invalidHandler,
|
|
164
|
+
typeDefault
|
|
165
|
+
});
|
|
166
|
+
data.argv = argv;
|
|
167
|
+
Object.defineProperty(data.argv, "toString", {
|
|
168
|
+
value: function() {
|
|
169
|
+
return this.original.map(JSON.stringify).join(" ");
|
|
170
|
+
},
|
|
171
|
+
enumerable: false
|
|
172
|
+
});
|
|
173
|
+
return data;
|
|
174
|
+
}
|
|
175
|
+
function clean(data, { types = {}, typeDefs = {}, dynamicTypes, invalidHandler, typeDefault } = {}) {
|
|
176
|
+
const StringType = typeDefs.String?.type;
|
|
177
|
+
const NumberType = typeDefs.Number?.type;
|
|
178
|
+
const ArrayType = typeDefs.Array?.type;
|
|
179
|
+
const BooleanType = typeDefs.Boolean?.type;
|
|
180
|
+
const DateType = typeDefs.Date?.type;
|
|
181
|
+
const hasTypeDefault = typeof typeDefault !== "undefined";
|
|
182
|
+
if (!hasTypeDefault) {
|
|
183
|
+
typeDefault = [
|
|
184
|
+
false,
|
|
185
|
+
true,
|
|
186
|
+
null
|
|
187
|
+
];
|
|
188
|
+
if (StringType) typeDefault.push(StringType);
|
|
189
|
+
if (ArrayType) typeDefault.push(ArrayType);
|
|
190
|
+
}
|
|
191
|
+
const remove = {};
|
|
192
|
+
Object.keys(data).forEach((k) => {
|
|
193
|
+
if (k === "argv") return;
|
|
194
|
+
let val = data[k];
|
|
195
|
+
const isArray = Array.isArray(val);
|
|
196
|
+
let [hasType, rawType] = getType(k, {
|
|
197
|
+
types,
|
|
198
|
+
dynamicTypes
|
|
199
|
+
});
|
|
200
|
+
let type = rawType;
|
|
201
|
+
if (!isArray) val = [val];
|
|
202
|
+
if (!type) type = typeDefault;
|
|
203
|
+
if (isTypeDef(type, ArrayType)) type = typeDefault.concat(ArrayType);
|
|
204
|
+
if (!Array.isArray(type)) type = [type];
|
|
205
|
+
val = val.map((v) => {
|
|
206
|
+
if (typeof v === "string") {
|
|
207
|
+
v = v.trim();
|
|
208
|
+
if (v === "null" && ~type.indexOf(null) || v === "true" && (~type.indexOf(true) || hasTypeDef(type, BooleanType)) || v === "false" && (~type.indexOf(false) || hasTypeDef(type, BooleanType))) v = JSON.parse(v);
|
|
209
|
+
else if (hasTypeDef(type, NumberType) && !isNaN(v)) v = +v;
|
|
210
|
+
else if (hasTypeDef(type, DateType) && !isNaN(Date.parse(v))) v = new Date(v);
|
|
211
|
+
}
|
|
212
|
+
if (!hasType) {
|
|
213
|
+
if (!hasTypeDefault) return v;
|
|
214
|
+
rawType = typeDefault;
|
|
215
|
+
}
|
|
216
|
+
if (v === false && ~type.indexOf(null) && !(~type.indexOf(false) || hasTypeDef(type, BooleanType))) v = null;
|
|
217
|
+
const d = {};
|
|
218
|
+
d[k] = v;
|
|
219
|
+
if (!validate(d, k, v, rawType, { typeDefs })) {
|
|
220
|
+
if (invalidHandler) invalidHandler(k, v, rawType, data);
|
|
221
|
+
return remove;
|
|
222
|
+
}
|
|
223
|
+
return d[k];
|
|
224
|
+
}).filter((v) => v !== remove);
|
|
225
|
+
if (!val.length && doesNotHaveTypeDef(type, ArrayType)) delete data[k];
|
|
226
|
+
else if (isArray) data[k] = val;
|
|
227
|
+
else data[k] = val[0];
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
function validate(data, k, val, type, { typeDefs } = {}) {
|
|
231
|
+
const ArrayType = typeDefs?.Array?.type;
|
|
232
|
+
if (Array.isArray(type)) {
|
|
233
|
+
for (let i = 0, l = type.length; i < l; i++) {
|
|
234
|
+
if (isTypeDef(type[i], ArrayType)) continue;
|
|
235
|
+
if (validate(data, k, val, type[i], { typeDefs })) return true;
|
|
236
|
+
}
|
|
237
|
+
delete data[k];
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
if (isTypeDef(type, ArrayType)) return true;
|
|
241
|
+
if (type !== type) {
|
|
242
|
+
delete data[k];
|
|
243
|
+
return false;
|
|
244
|
+
}
|
|
245
|
+
if (val === type) {
|
|
246
|
+
data[k] = val;
|
|
247
|
+
return true;
|
|
248
|
+
}
|
|
249
|
+
let ok = false;
|
|
250
|
+
const types = Object.keys(typeDefs);
|
|
251
|
+
for (let i = 0, l = types.length; i < l; i++) {
|
|
252
|
+
const t = typeDefs[types[i]];
|
|
253
|
+
if (t && (type && type.name && t.type && t.type.name ? type.name === t.type.name : type === t.type)) {
|
|
254
|
+
const d = {};
|
|
255
|
+
ok = t.validate(d, k, val) !== false;
|
|
256
|
+
val = d[k];
|
|
257
|
+
if (ok) {
|
|
258
|
+
data[k] = val;
|
|
259
|
+
break;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
if (!ok) delete data[k];
|
|
264
|
+
return ok;
|
|
265
|
+
}
|
|
266
|
+
function parse(args, data, remain, { types = {}, typeDefs = {}, shorthands = {}, dynamicTypes, unknownHandler, abbrevHandler } = {}) {
|
|
267
|
+
const StringType = typeDefs.String?.type;
|
|
268
|
+
const NumberType = typeDefs.Number?.type;
|
|
269
|
+
const ArrayType = typeDefs.Array?.type;
|
|
270
|
+
const BooleanType = typeDefs.Boolean?.type;
|
|
271
|
+
const abbrevs = abbrev(Object.keys(types));
|
|
272
|
+
const shortAbbr = abbrev(Object.keys(shorthands));
|
|
273
|
+
for (let i = 0; i < args.length; i++) {
|
|
274
|
+
let arg = args[i];
|
|
275
|
+
if (arg.match(/^-{2,}$/)) {
|
|
276
|
+
remain.push.apply(remain, args.slice(i + 1));
|
|
277
|
+
args[i] = "--";
|
|
278
|
+
break;
|
|
279
|
+
}
|
|
280
|
+
let hadEq = false;
|
|
281
|
+
if (arg.charAt(0) === "-" && arg.length > 1) {
|
|
282
|
+
const at = arg.indexOf("=");
|
|
283
|
+
if (at > -1) {
|
|
284
|
+
hadEq = true;
|
|
285
|
+
const v = arg.slice(at + 1);
|
|
286
|
+
arg = arg.slice(0, at);
|
|
287
|
+
args.splice(i, 1, arg, v);
|
|
288
|
+
}
|
|
289
|
+
const shRes = resolveShort(arg, shortAbbr, abbrevs, {
|
|
290
|
+
shorthands,
|
|
291
|
+
abbrevHandler
|
|
292
|
+
});
|
|
293
|
+
if (shRes) {
|
|
294
|
+
args.splice.apply(args, [i, 1].concat(shRes));
|
|
295
|
+
if (arg !== shRes[0]) {
|
|
296
|
+
i--;
|
|
297
|
+
continue;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
arg = arg.replace(/^-+/, "");
|
|
301
|
+
let no = null;
|
|
302
|
+
while (arg.toLowerCase().indexOf("no-") === 0) {
|
|
303
|
+
no = !no;
|
|
304
|
+
arg = arg.slice(3);
|
|
305
|
+
}
|
|
306
|
+
if (abbrevs[arg] && abbrevs[arg] !== arg) {
|
|
307
|
+
if (abbrevHandler) abbrevHandler(arg, abbrevs[arg]);
|
|
308
|
+
arg = abbrevs[arg];
|
|
309
|
+
}
|
|
310
|
+
let [hasType, argType] = getType(arg, {
|
|
311
|
+
types,
|
|
312
|
+
dynamicTypes
|
|
313
|
+
});
|
|
314
|
+
let isTypeArray = Array.isArray(argType);
|
|
315
|
+
if (isTypeArray && argType.length === 1) {
|
|
316
|
+
isTypeArray = false;
|
|
317
|
+
argType = argType[0];
|
|
318
|
+
}
|
|
319
|
+
let isArray = isTypeDef(argType, ArrayType) || isTypeArray && hasTypeDef(argType, ArrayType);
|
|
320
|
+
if (!hasType && hasOwn(data, arg)) {
|
|
321
|
+
if (!Array.isArray(data[arg])) data[arg] = [data[arg]];
|
|
322
|
+
isArray = true;
|
|
323
|
+
}
|
|
324
|
+
let val;
|
|
325
|
+
let la = args[i + 1];
|
|
326
|
+
const isBool = typeof no === "boolean" || isTypeDef(argType, BooleanType) || isTypeArray && hasTypeDef(argType, BooleanType) || typeof argType === "undefined" && !hadEq || la === "false" && (argType === null || isTypeArray && ~argType.indexOf(null));
|
|
327
|
+
if (typeof argType === "undefined") {
|
|
328
|
+
const hangingLa = !hadEq && la && !la?.startsWith("-") && !["true", "false"].includes(la);
|
|
329
|
+
if (unknownHandler) {
|
|
330
|
+
if (hangingLa) unknownHandler(arg, la);
|
|
331
|
+
else unknownHandler(arg);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
if (isBool) {
|
|
335
|
+
val = !no;
|
|
336
|
+
if (la === "true" || la === "false") {
|
|
337
|
+
val = JSON.parse(la);
|
|
338
|
+
la = null;
|
|
339
|
+
if (no) val = !val;
|
|
340
|
+
i++;
|
|
341
|
+
}
|
|
342
|
+
if (isTypeArray && la) {
|
|
343
|
+
if (~argType.indexOf(la)) {
|
|
344
|
+
val = la;
|
|
345
|
+
i++;
|
|
346
|
+
} else if (la === "null" && ~argType.indexOf(null)) {
|
|
347
|
+
val = null;
|
|
348
|
+
i++;
|
|
349
|
+
} else if (!la.match(/^-{2,}[^-]/) && !isNaN(la) && hasTypeDef(argType, NumberType)) {
|
|
350
|
+
val = +la;
|
|
351
|
+
i++;
|
|
352
|
+
} else if (!la.match(/^-[^-]/) && hasTypeDef(argType, StringType)) {
|
|
353
|
+
val = la;
|
|
354
|
+
i++;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
if (isArray) (data[arg] = data[arg] || []).push(val);
|
|
358
|
+
else data[arg] = val;
|
|
359
|
+
continue;
|
|
360
|
+
}
|
|
361
|
+
if (isTypeDef(argType, StringType)) {
|
|
362
|
+
if (la === void 0) la = "";
|
|
363
|
+
else if (la.match(/^-{1,2}[^-]+/)) {
|
|
364
|
+
la = "";
|
|
365
|
+
i--;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
if (la && la.match(/^-{2,}$/)) {
|
|
369
|
+
la = void 0;
|
|
370
|
+
i--;
|
|
371
|
+
}
|
|
372
|
+
val = la === void 0 ? true : la;
|
|
373
|
+
if (isArray) (data[arg] = data[arg] || []).push(val);
|
|
374
|
+
else data[arg] = val;
|
|
375
|
+
i++;
|
|
376
|
+
continue;
|
|
377
|
+
}
|
|
378
|
+
remain.push(arg);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
const SINGLES = Symbol("singles");
|
|
382
|
+
const singleCharacters = (arg, shorthands) => {
|
|
383
|
+
let singles = shorthands[SINGLES];
|
|
384
|
+
if (!singles) {
|
|
385
|
+
singles = Object.keys(shorthands).filter((s) => s.length === 1).reduce((l, r) => {
|
|
386
|
+
l[r] = true;
|
|
387
|
+
return l;
|
|
388
|
+
}, {});
|
|
389
|
+
shorthands[SINGLES] = singles;
|
|
390
|
+
}
|
|
391
|
+
const chrs = arg.split("").filter((c) => singles[c]);
|
|
392
|
+
return chrs.join("") === arg ? chrs : null;
|
|
393
|
+
};
|
|
394
|
+
function resolveShort(arg, ...rest) {
|
|
395
|
+
const { abbrevHandler, types = {}, shorthands = {} } = rest.length ? rest.pop() : {};
|
|
396
|
+
const shortAbbr = rest[0] ?? abbrev(Object.keys(shorthands));
|
|
397
|
+
const abbrevs = rest[1] ?? abbrev(Object.keys(types));
|
|
398
|
+
arg = arg.replace(/^-+/, "");
|
|
399
|
+
if (abbrevs[arg] === arg) return null;
|
|
400
|
+
if (shorthands[arg]) {
|
|
401
|
+
if (shorthands[arg] && !Array.isArray(shorthands[arg])) shorthands[arg] = shorthands[arg].split(/\s+/);
|
|
402
|
+
return shorthands[arg];
|
|
403
|
+
}
|
|
404
|
+
const chrs = singleCharacters(arg, shorthands);
|
|
405
|
+
if (chrs) return chrs.map((c) => shorthands[c]).reduce((l, r) => l.concat(r), []);
|
|
406
|
+
if (abbrevs[arg] && !shorthands[arg]) return null;
|
|
407
|
+
if (shortAbbr[arg]) {
|
|
408
|
+
if (abbrevHandler) abbrevHandler(arg, shortAbbr[arg]);
|
|
409
|
+
arg = shortAbbr[arg];
|
|
410
|
+
}
|
|
411
|
+
if (shorthands[arg] && !Array.isArray(shorthands[arg])) shorthands[arg] = shorthands[arg].split(/\s+/);
|
|
412
|
+
return shorthands[arg];
|
|
413
|
+
}
|
|
414
|
+
module.exports = {
|
|
415
|
+
nopt,
|
|
416
|
+
clean,
|
|
417
|
+
parse,
|
|
418
|
+
validate,
|
|
419
|
+
resolveShort,
|
|
420
|
+
typeDefs: defaultTypeDefs
|
|
421
|
+
};
|
|
422
|
+
}));
|
|
423
|
+
//#endregion
|
|
424
|
+
//#region ../../node_modules/.pnpm/nopt@10.0.1/node_modules/nopt/lib/nopt.js
|
|
425
|
+
var require_nopt = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
426
|
+
const lib = require_nopt_lib();
|
|
427
|
+
const defaultTypeDefs = require_type_defs$1();
|
|
428
|
+
module.exports = exports = nopt;
|
|
429
|
+
exports.clean = clean;
|
|
430
|
+
exports.typeDefs = defaultTypeDefs;
|
|
431
|
+
exports.lib = lib;
|
|
432
|
+
function nopt(types, shorthands, args = process.argv, slice = 2) {
|
|
433
|
+
return lib.nopt(args.slice(slice), {
|
|
434
|
+
types: types || {},
|
|
435
|
+
shorthands: shorthands || {},
|
|
436
|
+
typeDefs: exports.typeDefs,
|
|
437
|
+
invalidHandler: exports.invalidHandler,
|
|
438
|
+
unknownHandler: exports.unknownHandler,
|
|
439
|
+
abbrevHandler: exports.abbrevHandler
|
|
440
|
+
});
|
|
441
|
+
}
|
|
442
|
+
function clean(data, types, typeDefs = exports.typeDefs) {
|
|
443
|
+
return lib.clean(data, {
|
|
444
|
+
types: types || {},
|
|
445
|
+
typeDefs,
|
|
446
|
+
invalidHandler: exports.invalidHandler,
|
|
447
|
+
unknownHandler: exports.unknownHandler,
|
|
448
|
+
abbrevHandler: exports.abbrevHandler
|
|
449
|
+
});
|
|
450
|
+
}
|
|
451
|
+
}));
|
|
452
|
+
//#endregion
|
|
453
|
+
//#region ../../node_modules/.pnpm/@npmcli+config@11.0.1/node_modules/@npmcli/config/lib/umask.js
|
|
454
|
+
var require_umask = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
455
|
+
const parse = (val) => {
|
|
456
|
+
// istanbul ignore else
|
|
457
|
+
if (typeof val === "string") {
|
|
458
|
+
if (/^0o?[0-7]+$/.test(val)) return parseInt(val.replace(/^0o?/, ""), 8);
|
|
459
|
+
else if (/^[1-9][0-9]*$/.test(val)) return parseInt(val, 10);
|
|
460
|
+
else throw new Error(`invalid umask value: ${val}`);
|
|
461
|
+
} else {
|
|
462
|
+
if (typeof val !== "number") throw new Error(`invalid umask value: ${val}`);
|
|
463
|
+
val = Math.floor(val);
|
|
464
|
+
if (val < 0 || val > 511) throw new Error(`invalid umask value: ${val}`);
|
|
465
|
+
return val;
|
|
466
|
+
}
|
|
467
|
+
};
|
|
468
|
+
const validate = (data, k, val) => {
|
|
469
|
+
try {
|
|
470
|
+
data[k] = parse(val);
|
|
471
|
+
return true;
|
|
472
|
+
} catch (er) {
|
|
473
|
+
return false;
|
|
474
|
+
}
|
|
475
|
+
};
|
|
476
|
+
module.exports = {
|
|
477
|
+
parse,
|
|
478
|
+
validate
|
|
479
|
+
};
|
|
480
|
+
}));
|
|
481
|
+
//#endregion
|
|
482
|
+
//#region ../../node_modules/.pnpm/@npmcli+config@11.0.1/node_modules/@npmcli/config/lib/type-defs.js
|
|
483
|
+
var require_type_defs = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
484
|
+
const nopt = require_nopt();
|
|
485
|
+
const { validate: validateUmask } = require_umask();
|
|
486
|
+
var Umask = class {};
|
|
487
|
+
var Semver = class {};
|
|
488
|
+
const semverValid = require_valid();
|
|
489
|
+
const validateSemver = (data, k, val) => {
|
|
490
|
+
const valid = semverValid(val);
|
|
491
|
+
if (!valid) return false;
|
|
492
|
+
data[k] = valid;
|
|
493
|
+
};
|
|
494
|
+
const noptValidatePath = nopt.typeDefs.path.validate;
|
|
495
|
+
const validatePath = (data, k, val) => {
|
|
496
|
+
if (typeof val !== "string") return false;
|
|
497
|
+
return noptValidatePath(data, k, val);
|
|
498
|
+
};
|
|
499
|
+
module.exports = {
|
|
500
|
+
...nopt.typeDefs,
|
|
501
|
+
semver: {
|
|
502
|
+
type: Semver,
|
|
503
|
+
validate: validateSemver,
|
|
504
|
+
description: "full valid SemVer string"
|
|
505
|
+
},
|
|
506
|
+
Umask: {
|
|
507
|
+
type: Umask,
|
|
508
|
+
validate: validateUmask,
|
|
509
|
+
description: "octal number in range 0o000..0o777 (0..511)"
|
|
510
|
+
},
|
|
511
|
+
url: {
|
|
512
|
+
...nopt.typeDefs.url,
|
|
513
|
+
description: "full url with \"http://\""
|
|
514
|
+
},
|
|
515
|
+
path: {
|
|
516
|
+
...nopt.typeDefs.path,
|
|
517
|
+
validate: validatePath,
|
|
518
|
+
description: "valid filesystem path"
|
|
519
|
+
},
|
|
520
|
+
Number: {
|
|
521
|
+
...nopt.typeDefs.Number,
|
|
522
|
+
description: "numeric value"
|
|
523
|
+
},
|
|
524
|
+
Boolean: {
|
|
525
|
+
...nopt.typeDefs.Boolean,
|
|
526
|
+
description: "boolean value (true or false)"
|
|
527
|
+
},
|
|
528
|
+
Date: {
|
|
529
|
+
...nopt.typeDefs.Date,
|
|
530
|
+
description: "valid Date string"
|
|
531
|
+
}
|
|
532
|
+
};
|
|
533
|
+
nopt.typeDefs = module.exports;
|
|
534
|
+
}));
|
|
535
|
+
//#endregion
|
|
536
|
+
export { require_umask as n, require_nopt as r, require_type_defs as t };
|
|
537
|
+
|
|
538
|
+
//# sourceMappingURL=type-defs-xvRvQI4T.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-defs-xvRvQI4T.mjs","names":[],"sources":["../../../../node_modules/.pnpm/abbrev@5.0.0/node_modules/abbrev/lib/index.js","../../../../node_modules/.pnpm/nopt@10.0.1/node_modules/nopt/lib/type-defs.js","../../../../node_modules/.pnpm/nopt@10.0.1/node_modules/nopt/lib/nopt-lib.js","../../../../node_modules/.pnpm/nopt@10.0.1/node_modules/nopt/lib/nopt.js","../../../../node_modules/.pnpm/@npmcli+config@11.0.1/node_modules/@npmcli/config/lib/umask.js","../../../../node_modules/.pnpm/@npmcli+config@11.0.1/node_modules/@npmcli/config/lib/type-defs.js"],"sourcesContent":["module.exports = abbrev\n\nfunction abbrev (...args) {\n let list = args\n if (args.length === 1 && (Array.isArray(args[0]) || typeof args[0] === 'string')) {\n list = [].concat(args[0])\n }\n\n for (let i = 0, l = list.length; i < l; i++) {\n list[i] = typeof list[i] === 'string' ? list[i] : String(list[i])\n }\n\n // sort them lexicographically, so that they're next to their nearest kin\n list = list.sort(lexSort)\n\n // walk through each, seeing how much it has in common with the next and previous\n const abbrevs = {}\n let prev = ''\n for (let ii = 0, ll = list.length; ii < ll; ii++) {\n const current = list[ii]\n const next = list[ii + 1] || ''\n let nextMatches = true\n let prevMatches = true\n if (current === next) {\n continue\n }\n let j = 0\n const cl = current.length\n for (; j < cl; j++) {\n const curChar = current.charAt(j)\n nextMatches = nextMatches && curChar === next.charAt(j)\n prevMatches = prevMatches && curChar === prev.charAt(j)\n if (!nextMatches && !prevMatches) {\n j++\n break\n }\n }\n prev = current\n if (j === cl) {\n abbrevs[current] = current\n continue\n }\n for (let a = current.slice(0, j); j <= cl; j++) {\n abbrevs[a] = current\n a += current.charAt(j)\n }\n }\n return abbrevs\n}\n\nfunction lexSort (a, b) {\n return a === b ? 0 : a > b ? 1 : -1\n}\n","const os = require('node:os')\nconst path = require('node:path')\nconst { Stream } = require('node:stream')\nconst { URL } = require('node:url')\n\nfunction validateString (data, k, val) {\n data[k] = String(val)\n}\n\nfunction validatePath (data, k, val) {\n if (val === true) {\n return false\n }\n if (val === null) {\n return true\n }\n\n val = String(val)\n\n const isWin = process.platform === 'win32'\n const homePattern = isWin ? /^~(\\/|\\\\)/ : /^~\\//\n const home = os.homedir()\n\n if (home && val.match(homePattern)) {\n data[k] = path.resolve(home, val.slice(2))\n } else {\n data[k] = path.resolve(val)\n }\n return true\n}\n\nfunction validateNumber (data, k, val) {\n if (isNaN(val)) {\n return false\n }\n data[k] = +val\n}\n\nfunction validateDate (data, k, val) {\n const s = Date.parse(val)\n if (isNaN(s)) {\n return false\n }\n data[k] = new Date(val)\n}\n\nfunction validateBoolean (data, k, val) {\n if (typeof val === 'string') {\n if (!isNaN(val)) {\n val = !!(+val)\n } else if (val === 'null' || val === 'false') {\n val = false\n } else {\n val = true\n }\n } else {\n val = !!val\n }\n data[k] = val\n}\n\nfunction validateUrl (data, k, val) {\n const parsed = URL.parse(String(val))\n if (!parsed) {\n return false\n }\n data[k] = parsed.href\n}\n\nfunction validateStream (data, k, val) {\n if (!(val instanceof Stream)) {\n return false\n }\n data[k] = val\n}\n\nmodule.exports = {\n String: { type: String, validate: validateString },\n Boolean: { type: Boolean, validate: validateBoolean },\n url: { type: URL, validate: validateUrl },\n Number: { type: Number, validate: validateNumber },\n path: { type: path, validate: validatePath },\n Stream: { type: Stream, validate: validateStream },\n Date: { type: Date, validate: validateDate },\n Array: { type: Array },\n}\n","const abbrev = require('abbrev')\nconst defaultTypeDefs = require('./type-defs')\n\nconst hasOwn = (o, k) => Object.prototype.hasOwnProperty.call(o, k)\n\nconst getType = (k, { types, dynamicTypes }) => {\n let hasType = hasOwn(types, k)\n let type = types[k]\n if (!hasType && typeof dynamicTypes === 'function') {\n const matchedType = dynamicTypes(k)\n if (matchedType !== undefined) {\n type = matchedType\n hasType = true\n }\n }\n return [hasType, type]\n}\n\nconst isTypeDef = (type, def) => def && type === def\nconst hasTypeDef = (type, def) => def && type.indexOf(def) !== -1\nconst doesNotHaveTypeDef = (type, def) => def && !hasTypeDef(type, def)\n\nfunction nopt (args, {\n types,\n shorthands,\n typeDefs,\n invalidHandler, // opt is configured but its value does not validate against given type\n unknownHandler, // opt is not configured\n abbrevHandler, // opt is being expanded via abbrev\n typeDefault,\n dynamicTypes,\n} = {}) {\n const data = {}\n const argv = {\n remain: [],\n cooked: args,\n original: args.slice(0),\n }\n\n parse(args, data, argv.remain, {\n typeDefs, types, dynamicTypes, shorthands, unknownHandler, abbrevHandler,\n })\n\n // now data is full\n clean(data, { types, dynamicTypes, typeDefs, invalidHandler, typeDefault })\n data.argv = argv\n\n Object.defineProperty(data.argv, 'toString', {\n value: function () {\n return this.original.map(JSON.stringify).join(' ')\n },\n enumerable: false,\n })\n\n return data\n}\n\nfunction clean (data, {\n types = {},\n typeDefs = {},\n dynamicTypes,\n invalidHandler,\n typeDefault,\n} = {}) {\n const StringType = typeDefs.String?.type\n const NumberType = typeDefs.Number?.type\n const ArrayType = typeDefs.Array?.type\n const BooleanType = typeDefs.Boolean?.type\n const DateType = typeDefs.Date?.type\n\n const hasTypeDefault = typeof typeDefault !== 'undefined'\n if (!hasTypeDefault) {\n typeDefault = [false, true, null]\n if (StringType) {\n typeDefault.push(StringType)\n }\n if (ArrayType) {\n typeDefault.push(ArrayType)\n }\n }\n\n const remove = {}\n\n Object.keys(data).forEach((k) => {\n if (k === 'argv') {\n return\n }\n let val = data[k]\n const isArray = Array.isArray(val)\n let [hasType, rawType] = getType(k, { types, dynamicTypes })\n let type = rawType\n if (!isArray) {\n val = [val]\n }\n if (!type) {\n type = typeDefault\n }\n if (isTypeDef(type, ArrayType)) {\n type = typeDefault.concat(ArrayType)\n }\n if (!Array.isArray(type)) {\n type = [type]\n }\n\n val = val.map((v) => {\n // if it's an unknown value, then parse false/true/null/numbers/dates\n if (typeof v === 'string') {\n v = v.trim()\n if ((v === 'null' && ~type.indexOf(null))\n || (v === 'true' &&\n (~type.indexOf(true) || hasTypeDef(type, BooleanType)))\n || (v === 'false' &&\n (~type.indexOf(false) || hasTypeDef(type, BooleanType)))) {\n v = JSON.parse(v)\n } else if (hasTypeDef(type, NumberType) && !isNaN(v)) {\n v = +v\n } else if (hasTypeDef(type, DateType) && !isNaN(Date.parse(v))) {\n v = new Date(v)\n }\n }\n\n if (!hasType) {\n if (!hasTypeDefault) {\n return v\n }\n // if the default type has been passed in then we want to validate the\n // unknown data key instead of bailing out earlier. we also set the raw\n // type which is passed to the invalid handler so that it can be\n // determined if during validation if it is unknown vs invalid\n rawType = typeDefault\n }\n\n // allow `--no-blah` to set 'blah' to null if null is allowed\n if (v === false && ~type.indexOf(null) &&\n !(~type.indexOf(false) || hasTypeDef(type, BooleanType))) {\n v = null\n }\n\n const d = {}\n d[k] = v\n if (!validate(d, k, v, rawType, { typeDefs })) {\n if (invalidHandler) {\n invalidHandler(k, v, rawType, data)\n }\n return remove\n }\n return d[k]\n }).filter((v) => v !== remove)\n\n // if we allow Array specifically, then an empty array is how we\n // express 'no value here', not null. Allow it.\n if (!val.length && doesNotHaveTypeDef(type, ArrayType)) {\n delete data[k]\n } else if (isArray) {\n data[k] = val\n } else {\n data[k] = val[0]\n }\n })\n}\n\nfunction validate (data, k, val, type, { typeDefs } = {}) {\n const ArrayType = typeDefs?.Array?.type\n // arrays are lists of types.\n if (Array.isArray(type)) {\n for (let i = 0, l = type.length; i < l; i++) {\n if (isTypeDef(type[i], ArrayType)) {\n continue\n }\n if (validate(data, k, val, type[i], { typeDefs })) {\n return true\n }\n }\n delete data[k]\n return false\n }\n\n // an array of anything?\n if (isTypeDef(type, ArrayType)) {\n return true\n }\n\n // Original comment:\n // NaN is poisonous, it means that something is not allowed.\n\n // New comment:\n // Changing this to an isNaN check breaks a lot of tests.\n // Something is being assumed here that is not actually what happens in practice.\n // Fixing it is outside the scope of getting linting to pass in this repo.\n // Leaving as-is for now.\n /* eslint-disable-next-line no-self-compare */\n if (type !== type) {\n delete data[k]\n return false\n }\n\n // explicit list of values\n if (val === type) {\n data[k] = val\n return true\n }\n\n // now go through the list of typeDefs, validate against each one.\n let ok = false\n const types = Object.keys(typeDefs)\n for (let i = 0, l = types.length; i < l; i++) {\n const t = typeDefs[types[i]]\n if (t && (\n (type && type.name && t.type && t.type.name) ?\n (type.name === t.type.name) :\n (type === t.type)\n )) {\n const d = {}\n ok = t.validate(d, k, val) !== false\n val = d[k]\n if (ok) {\n data[k] = val\n break\n }\n }\n }\n\n if (!ok) {\n delete data[k]\n }\n return ok\n}\n\nfunction parse (args, data, remain, {\n types = {},\n typeDefs = {},\n shorthands = {},\n dynamicTypes,\n unknownHandler,\n abbrevHandler,\n} = {}) {\n const StringType = typeDefs.String?.type\n const NumberType = typeDefs.Number?.type\n const ArrayType = typeDefs.Array?.type\n const BooleanType = typeDefs.Boolean?.type\n const abbrevs = abbrev(Object.keys(types))\n const shortAbbr = abbrev(Object.keys(shorthands))\n\n for (let i = 0; i < args.length; i++) {\n let arg = args[i]\n\n if (arg.match(/^-{2,}$/)) {\n // done with keys.\n // the rest are args.\n remain.push.apply(remain, args.slice(i + 1))\n args[i] = '--'\n break\n }\n let hadEq = false\n if (arg.charAt(0) === '-' && arg.length > 1) {\n const at = arg.indexOf('=')\n if (at > -1) {\n hadEq = true\n const v = arg.slice(at + 1)\n arg = arg.slice(0, at)\n args.splice(i, 1, arg, v)\n }\n\n // see if it's a shorthand\n // if so, splice and back up to re-parse it.\n const shRes = resolveShort(arg, shortAbbr, abbrevs, { shorthands, abbrevHandler })\n if (shRes) {\n args.splice.apply(args, [i, 1].concat(shRes))\n if (arg !== shRes[0]) {\n i--\n continue\n }\n }\n arg = arg.replace(/^-+/, '')\n let no = null\n while (arg.toLowerCase().indexOf('no-') === 0) {\n no = !no\n arg = arg.slice(3)\n }\n\n // abbrev includes the original full string in its abbrev list\n if (abbrevs[arg] && abbrevs[arg] !== arg) {\n if (abbrevHandler) {\n abbrevHandler(arg, abbrevs[arg])\n }\n arg = abbrevs[arg]\n }\n\n let [hasType, argType] = getType(arg, { types, dynamicTypes })\n let isTypeArray = Array.isArray(argType)\n if (isTypeArray && argType.length === 1) {\n isTypeArray = false\n argType = argType[0]\n }\n\n let isArray = isTypeDef(argType, ArrayType) ||\n isTypeArray && hasTypeDef(argType, ArrayType)\n\n // allow unknown things to be arrays if specified multiple times.\n if (!hasType && hasOwn(data, arg)) {\n if (!Array.isArray(data[arg])) {\n data[arg] = [data[arg]]\n }\n isArray = true\n }\n\n let val\n let la = args[i + 1]\n\n const isBool = typeof no === 'boolean' ||\n isTypeDef(argType, BooleanType) ||\n isTypeArray && hasTypeDef(argType, BooleanType) ||\n (typeof argType === 'undefined' && !hadEq) ||\n (la === 'false' &&\n (argType === null ||\n isTypeArray && ~argType.indexOf(null)))\n\n if (typeof argType === 'undefined') {\n // la is going to unexpectedly be parsed outside the context of this arg\n const hangingLa = !hadEq && la && !la?.startsWith('-') && !['true', 'false'].includes(la)\n if (unknownHandler) {\n if (hangingLa) {\n unknownHandler(arg, la)\n } else {\n unknownHandler(arg)\n }\n }\n }\n\n if (isBool) {\n // just set and move along\n val = !no\n // however, also support --bool true or --bool false\n if (la === 'true' || la === 'false') {\n val = JSON.parse(la)\n la = null\n if (no) {\n val = !val\n }\n i++\n }\n\n // also support \"foo\":[Boolean, \"bar\"] and \"--foo bar\"\n if (isTypeArray && la) {\n if (~argType.indexOf(la)) {\n // an explicit type\n val = la\n i++\n } else if (la === 'null' && ~argType.indexOf(null)) {\n // null allowed\n val = null\n i++\n } else if (!la.match(/^-{2,}[^-]/) &&\n !isNaN(la) &&\n hasTypeDef(argType, NumberType)) {\n // number\n val = +la\n i++\n } else if (!la.match(/^-[^-]/) && hasTypeDef(argType, StringType)) {\n // string\n val = la\n i++\n }\n }\n\n if (isArray) {\n (data[arg] = data[arg] || []).push(val)\n } else {\n data[arg] = val\n }\n\n continue\n }\n\n if (isTypeDef(argType, StringType)) {\n if (la === undefined) {\n la = ''\n } else if (la.match(/^-{1,2}[^-]+/)) {\n la = ''\n i--\n }\n }\n\n if (la && la.match(/^-{2,}$/)) {\n la = undefined\n i--\n }\n\n val = la === undefined ? true : la\n if (isArray) {\n (data[arg] = data[arg] || []).push(val)\n } else {\n data[arg] = val\n }\n\n i++\n continue\n }\n remain.push(arg)\n }\n}\n\nconst SINGLES = Symbol('singles')\nconst singleCharacters = (arg, shorthands) => {\n let singles = shorthands[SINGLES]\n if (!singles) {\n singles = Object.keys(shorthands).filter((s) => s.length === 1).reduce((l, r) => {\n l[r] = true\n return l\n }, {})\n shorthands[SINGLES] = singles\n }\n const chrs = arg.split('').filter((c) => singles[c])\n return chrs.join('') === arg ? chrs : null\n}\n\nfunction resolveShort (arg, ...rest) {\n const { abbrevHandler, types = {}, shorthands = {} } = rest.length ? rest.pop() : {}\n const shortAbbr = rest[0] ?? abbrev(Object.keys(shorthands))\n const abbrevs = rest[1] ?? abbrev(Object.keys(types))\n\n // handle single-char shorthands glommed together, like\n // npm ls -glp, but only if there is one dash, and only if\n // all of the chars are single-char shorthands, and it's\n // not a match to some other abbrev.\n arg = arg.replace(/^-+/, '')\n\n // if it's an exact known option, then don't go any further\n if (abbrevs[arg] === arg) {\n return null\n }\n\n // if it's an exact known shortopt, same deal\n if (shorthands[arg]) {\n // make it an array, if it's a list of words\n if (shorthands[arg] && !Array.isArray(shorthands[arg])) {\n shorthands[arg] = shorthands[arg].split(/\\s+/)\n }\n\n return shorthands[arg]\n }\n\n // first check to see if this arg is a set of single-char shorthands\n const chrs = singleCharacters(arg, shorthands)\n if (chrs) {\n return chrs.map((c) => shorthands[c]).reduce((l, r) => l.concat(r), [])\n }\n\n // if it's an arg abbrev, and not a literal shorthand, then prefer the arg\n if (abbrevs[arg] && !shorthands[arg]) {\n return null\n }\n\n // if it's an abbr for a shorthand, then use that\n // exact match has already happened so we don't need to account for that here\n if (shortAbbr[arg]) {\n if (abbrevHandler) {\n abbrevHandler(arg, shortAbbr[arg])\n }\n arg = shortAbbr[arg]\n }\n\n // make it an array, if it's a list of words\n if (shorthands[arg] && !Array.isArray(shorthands[arg])) {\n shorthands[arg] = shorthands[arg].split(/\\s+/)\n }\n\n return shorthands[arg]\n}\n\nmodule.exports = {\n nopt,\n clean,\n parse,\n validate,\n resolveShort,\n typeDefs: defaultTypeDefs,\n}\n","const lib = require('./nopt-lib')\nconst defaultTypeDefs = require('./type-defs')\n\n// This is the version of nopt's API that requires setting typeDefs and invalidHandler on the required `nopt` object since it is a singleton.\n// To not do a breaking change an API that requires all options be passed in is located in `nopt-lib.js` and exported here as lib.\n// TODO(breaking): make API only work in non-singleton mode\n\nmodule.exports = exports = nopt\nexports.clean = clean\nexports.typeDefs = defaultTypeDefs\nexports.lib = lib\n\nfunction nopt (types, shorthands, args = process.argv, slice = 2) {\n return lib.nopt(args.slice(slice), {\n types: types || {},\n shorthands: shorthands || {},\n typeDefs: exports.typeDefs,\n invalidHandler: exports.invalidHandler,\n unknownHandler: exports.unknownHandler,\n abbrevHandler: exports.abbrevHandler,\n })\n}\n\nfunction clean (data, types, typeDefs = exports.typeDefs) {\n return lib.clean(data, {\n types: types || {},\n typeDefs,\n invalidHandler: exports.invalidHandler,\n unknownHandler: exports.unknownHandler,\n abbrevHandler: exports.abbrevHandler,\n })\n}\n","const parse = val => {\n // this is run via nopt and parse field where everything is\n // converted to a string first, ignoring coverage for now\n // instead of figuring out what is happening under the hood in nopt\n // istanbul ignore else\n if (typeof val === 'string') {\n if (/^0o?[0-7]+$/.test(val)) {\n return parseInt(val.replace(/^0o?/, ''), 8)\n } else if (/^[1-9][0-9]*$/.test(val)) {\n return parseInt(val, 10)\n } else {\n throw new Error(`invalid umask value: ${val}`)\n }\n } else {\n if (typeof val !== 'number') {\n throw new Error(`invalid umask value: ${val}`)\n }\n val = Math.floor(val)\n if (val < 0 || val > 511) {\n throw new Error(`invalid umask value: ${val}`)\n }\n return val\n }\n}\n\nconst validate = (data, k, val) => {\n try {\n data[k] = parse(val)\n return true\n } catch (er) {\n return false\n }\n}\n\nmodule.exports = { parse, validate }\n","const nopt = require('nopt')\n\nconst { validate: validateUmask } = require('./umask.js')\n\nclass Umask {}\nclass Semver {}\nconst semverValid = require('semver/functions/valid')\nconst validateSemver = (data, k, val) => {\n const valid = semverValid(val)\n if (!valid) {\n return false\n }\n data[k] = valid\n}\n\nconst noptValidatePath = nopt.typeDefs.path.validate\nconst validatePath = (data, k, val) => {\n if (typeof val !== 'string') {\n return false\n }\n return noptValidatePath(data, k, val)\n}\n\n// add descriptions so we can validate more usefully\nmodule.exports = {\n ...nopt.typeDefs,\n semver: {\n type: Semver,\n validate: validateSemver,\n description: 'full valid SemVer string',\n },\n Umask: {\n type: Umask,\n validate: validateUmask,\n description: 'octal number in range 0o000..0o777 (0..511)',\n },\n url: {\n ...nopt.typeDefs.url,\n description: 'full url with \"http://\"',\n },\n path: {\n ...nopt.typeDefs.path,\n validate: validatePath,\n description: 'valid filesystem path',\n },\n Number: {\n ...nopt.typeDefs.Number,\n description: 'numeric value',\n },\n Boolean: {\n ...nopt.typeDefs.Boolean,\n description: 'boolean value (true or false)',\n },\n Date: {\n ...nopt.typeDefs.Date,\n description: 'valid Date string',\n },\n}\n\n// TODO: make nopt less of a global beast so this kludge isn't necessary\nnopt.typeDefs = module.exports\n"],"x_google_ignoreList":[0,1,2,3,4,5],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { H as update, L as definition, d as writeOut, i as reportFailure } from "./error-DTXBm1nO.mjs";
|
|
2
|
+
import { i as Cmd, t as handler } from "./runtime-CDSh4qOj.mjs";
|
|
3
|
+
import { n as probe, r as read, t as fetchable } from "./entries-DBdy6ahj.mjs";
|
|
4
|
+
import { Effect } from "effect";
|
|
5
|
+
//#region src/cli/cmd/handlers/plugin/update.ts
|
|
6
|
+
/**
|
|
7
|
+
* Take whatever `check` found.
|
|
8
|
+
*
|
|
9
|
+
* Only a plugin that is **already installed** is refreshed: "not installed" is not "outdated", and
|
|
10
|
+
* `plugin install` is the verb for that. Each refresh publishes a new generation, which a running
|
|
11
|
+
* session picks up at its next exchange -- so this command never has to reach into a server.
|
|
12
|
+
*/
|
|
13
|
+
var update_default = handler(Cmd.commands.plugin.commands.update, Effect.fn("CLI.plugin.update")(function* () {
|
|
14
|
+
return yield* Effect.gen(function* () {
|
|
15
|
+
const shared = yield* Cmd.spec;
|
|
16
|
+
const { entries, cache } = yield* read(shared);
|
|
17
|
+
let updated = 0;
|
|
18
|
+
let failed = 0;
|
|
19
|
+
for (const entry of entries) {
|
|
20
|
+
const target = fetchable(entry.target);
|
|
21
|
+
if (target === void 0) continue;
|
|
22
|
+
const result = yield* update(target, cache, {
|
|
23
|
+
probe: probe(cache, entry.from),
|
|
24
|
+
from: entry.from,
|
|
25
|
+
validate: (fetched) => definition(fetched.entrypoint, entry.reference).pipe(Effect.asVoid)
|
|
26
|
+
}).pipe(Effect.result);
|
|
27
|
+
if (result._tag === "Failure") {
|
|
28
|
+
failed += 1;
|
|
29
|
+
yield* writeOut(`${entry.reference} error[${result.failure.reason}]: ${result.failure.message}\n`);
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (result.success._tag === "updated") {
|
|
33
|
+
updated += 1;
|
|
34
|
+
yield* writeOut(`Updated ${entry.reference} to ${result.success.entry.revision ?? "a new revision"}\n`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
yield* writeOut(updated === 0 ? "Nothing to update.\n" : `${updated} updated.\n`);
|
|
38
|
+
if (failed > 0) process.exitCode = 1;
|
|
39
|
+
}).pipe(Effect.catch(reportFailure));
|
|
40
|
+
}));
|
|
41
|
+
//#endregion
|
|
42
|
+
export { update_default as default };
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=update-CLfU-oh7.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-CLfU-oh7.mjs","names":["Runtime.handler","Plugin.update","Plugin.definition"],"sources":["../../src/cli/cmd/handlers/plugin/update.ts"],"sourcesContent":["import { Plugin } from \"@codeworksh/harness/effect\";\nimport { Effect } from \"effect\";\nimport { Runtime } from \"../../../../framework/runtime.ts\";\nimport { reportFailure } from \"../../../error.ts\";\nimport { writeOut } from \"../../../output.ts\";\nimport { Cmd } from \"../../cmd.ts\";\nimport { fetchable, probe, read } from \"./entries.ts\";\n\n/**\n * Take whatever `check` found.\n *\n * Only a plugin that is **already installed** is refreshed: \"not installed\" is not \"outdated\", and\n * `plugin install` is the verb for that. Each refresh publishes a new generation, which a running\n * session picks up at its next exchange -- so this command never has to reach into a server.\n */\nexport default Runtime.handler(\n\tCmd.commands.plugin.commands.update,\n\tEffect.fn(\"CLI.plugin.update\")(function* () {\n\t\tconst program = Effect.gen(function* () {\n\t\t\tconst shared = yield* Cmd.spec;\n\t\t\tconst { entries, cache } = yield* read(shared);\n\n\t\t\tlet updated = 0;\n\t\t\tlet failed = 0;\n\t\t\tfor (const entry of entries) {\n\t\t\t\tconst target = fetchable(entry.target);\n\t\t\t\t// A local plugin has no revision to compare and is never copied into the store.\n\t\t\t\tif (target === undefined) continue;\n\n\t\t\t\tconst result = yield* Plugin.update(target, cache, {\n\t\t\t\t\tprobe: probe(cache, entry.from),\n\t\t\t\t\tfrom: entry.from,\n\t\t\t\t\t// Validated while staged, so a refresh that fetches something broken leaves\n\t\t\t\t\t// the generation already in use as the answer. Preserve the loader's reason:\n\t\t\t\t\t// an import failure or invalid definition is not a missing entrypoint.\n\t\t\t\t\tvalidate: (fetched) => Plugin.definition(fetched.entrypoint, entry.reference).pipe(Effect.asVoid),\n\t\t\t\t}).pipe(Effect.result);\n\n\t\t\t\tif (result._tag === \"Failure\") {\n\t\t\t\t\tfailed += 1;\n\t\t\t\t\tyield* writeOut(`${entry.reference} error[${result.failure.reason}]: ${result.failure.message}\\n`);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (result.success._tag === \"updated\") {\n\t\t\t\t\tupdated += 1;\n\t\t\t\t\tyield* writeOut(`Updated ${entry.reference} to ${result.success.entry.revision ?? \"a new revision\"}\\n`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tyield* writeOut(updated === 0 ? \"Nothing to update.\\n\" : `${updated} updated.\\n`);\n\t\t\tif (failed > 0) process.exitCode = 1;\n\t\t});\n\n\t\treturn yield* program.pipe(Effect.catch(reportFailure));\n\t}),\n);\n"],"mappings":";;;;;;;;;;;;AAeA,IAAA,iBAAeA,QACd,IAAI,SAAS,OAAO,SAAS,QAC7B,OAAO,GAAG,mBAAmB,CAAC,CAAC,aAAa;CAoC3C,OAAO,OAnCS,OAAO,IAAI,aAAa;EACvC,MAAM,SAAS,OAAO,IAAI;EAC1B,MAAM,EAAE,SAAS,UAAU,OAAO,KAAK,MAAM;EAE7C,IAAI,UAAU;EACd,IAAI,SAAS;EACb,KAAK,MAAM,SAAS,SAAS;GAC5B,MAAM,SAAS,UAAU,MAAM,MAAM;GAErC,IAAI,WAAW,KAAA,GAAW;GAE1B,MAAM,SAAS,OAAOC,OAAc,QAAQ,OAAO;IAClD,OAAO,MAAM,OAAO,MAAM,IAAI;IAC9B,MAAM,MAAM;IAIZ,WAAW,YAAYC,WAAkB,QAAQ,YAAY,MAAM,SAAS,CAAC,CAAC,KAAK,OAAO,MAAM;GACjG,CAAC,CAAC,CAAC,KAAK,OAAO,MAAM;GAErB,IAAI,OAAO,SAAS,WAAW;IAC9B,UAAU;IACV,OAAO,SAAS,GAAG,MAAM,UAAU,UAAU,OAAO,QAAQ,OAAO,KAAK,OAAO,QAAQ,QAAQ,GAAG;IAClG;GACD;GACA,IAAI,OAAO,QAAQ,SAAS,WAAW;IACtC,WAAW;IACX,OAAO,SAAS,WAAW,MAAM,UAAU,MAAM,OAAO,QAAQ,MAAM,YAAY,iBAAiB,GAAG;GACvG;EACD;EAEA,OAAO,SAAS,YAAY,IAAI,yBAAyB,GAAG,QAAQ,YAAY;EAChF,IAAI,SAAS,GAAG,QAAQ,WAAW;CACpC,CAEoB,CAAC,CAAC,KAAK,OAAO,MAAM,aAAa,CAAC;AACvD,CAAC,CACF"}
|