@qodalis/cli-core 2.0.0-beta.8 → 2.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +227 -19
- package/package.json +2 -2
- package/public-api.d.mts +3119 -1506
- package/public-api.d.ts +3119 -1506
- package/public-api.js +870 -176
- package/public-api.js.map +1 -1
- package/public-api.mjs +822 -176
- package/public-api.mjs.map +1 -1
package/public-api.js
CHANGED
|
@@ -7,7 +7,11 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
7
7
|
var __getProtoOf = Object.getPrototypeOf;
|
|
8
8
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
9
|
var __commonJS = (cb, mod) => function __require() {
|
|
10
|
-
|
|
10
|
+
try {
|
|
11
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
12
|
+
} catch (e) {
|
|
13
|
+
throw mod = 0, e;
|
|
14
|
+
}
|
|
11
15
|
};
|
|
12
16
|
var __copyProps = (to, from, except, desc) => {
|
|
13
17
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
@@ -26,9 +30,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
30
|
mod
|
|
27
31
|
));
|
|
28
32
|
|
|
29
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
33
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/constants.js
|
|
30
34
|
var require_constants = __commonJS({
|
|
31
|
-
"../../node_modules/.pnpm/semver@7.
|
|
35
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/constants.js"(exports, module) {
|
|
32
36
|
var SEMVER_SPEC_VERSION = "2.0.0";
|
|
33
37
|
var MAX_LENGTH = 256;
|
|
34
38
|
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */
|
|
@@ -57,30 +61,30 @@ var require_constants = __commonJS({
|
|
|
57
61
|
}
|
|
58
62
|
});
|
|
59
63
|
|
|
60
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
64
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/debug.js
|
|
61
65
|
var require_debug = __commonJS({
|
|
62
|
-
"../../node_modules/.pnpm/semver@7.
|
|
66
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/debug.js"(exports, module) {
|
|
63
67
|
var debug = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => {
|
|
64
68
|
};
|
|
65
69
|
module.exports = debug;
|
|
66
70
|
}
|
|
67
71
|
});
|
|
68
72
|
|
|
69
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
73
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/re.js
|
|
70
74
|
var require_re = __commonJS({
|
|
71
|
-
"../../node_modules/.pnpm/semver@7.
|
|
75
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/re.js"(exports, module) {
|
|
72
76
|
var {
|
|
73
77
|
MAX_SAFE_COMPONENT_LENGTH,
|
|
74
78
|
MAX_SAFE_BUILD_LENGTH,
|
|
75
79
|
MAX_LENGTH
|
|
76
80
|
} = require_constants();
|
|
77
81
|
var debug = require_debug();
|
|
78
|
-
exports
|
|
79
|
-
var re = exports
|
|
80
|
-
var safeRe = exports
|
|
81
|
-
var src = exports
|
|
82
|
-
var safeSrc = exports
|
|
83
|
-
var t = exports
|
|
82
|
+
exports = module.exports = {};
|
|
83
|
+
var re = exports.re = [];
|
|
84
|
+
var safeRe = exports.safeRe = [];
|
|
85
|
+
var src = exports.src = [];
|
|
86
|
+
var safeSrc = exports.safeSrc = [];
|
|
87
|
+
var t = exports.t = {};
|
|
84
88
|
var R = 0;
|
|
85
89
|
var LETTERDASHNUMBER = "[a-zA-Z0-9-]";
|
|
86
90
|
var safeRegexReplacements = [
|
|
@@ -133,18 +137,18 @@ var require_re = __commonJS({
|
|
|
133
137
|
createToken("COERCERTLFULL", src[t.COERCEFULL], true);
|
|
134
138
|
createToken("LONETILDE", "(?:~>?)");
|
|
135
139
|
createToken("TILDETRIM", `(\\s*)${src[t.LONETILDE]}\\s+`, true);
|
|
136
|
-
exports
|
|
140
|
+
exports.tildeTrimReplace = "$1~";
|
|
137
141
|
createToken("TILDE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`);
|
|
138
142
|
createToken("TILDELOOSE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`);
|
|
139
143
|
createToken("LONECARET", "(?:\\^)");
|
|
140
144
|
createToken("CARETTRIM", `(\\s*)${src[t.LONECARET]}\\s+`, true);
|
|
141
|
-
exports
|
|
145
|
+
exports.caretTrimReplace = "$1^";
|
|
142
146
|
createToken("CARET", `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`);
|
|
143
147
|
createToken("CARETLOOSE", `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`);
|
|
144
148
|
createToken("COMPARATORLOOSE", `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`);
|
|
145
149
|
createToken("COMPARATOR", `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`);
|
|
146
150
|
createToken("COMPARATORTRIM", `(\\s*)${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true);
|
|
147
|
-
exports
|
|
151
|
+
exports.comparatorTrimReplace = "$1$2$3";
|
|
148
152
|
createToken("HYPHENRANGE", `^\\s*(${src[t.XRANGEPLAIN]})\\s+-\\s+(${src[t.XRANGEPLAIN]})\\s*$`);
|
|
149
153
|
createToken("HYPHENRANGELOOSE", `^\\s*(${src[t.XRANGEPLAINLOOSE]})\\s+-\\s+(${src[t.XRANGEPLAINLOOSE]})\\s*$`);
|
|
150
154
|
createToken("STAR", "(<|>)?=?\\s*\\*");
|
|
@@ -153,9 +157,9 @@ var require_re = __commonJS({
|
|
|
153
157
|
}
|
|
154
158
|
});
|
|
155
159
|
|
|
156
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
160
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/parse-options.js
|
|
157
161
|
var require_parse_options = __commonJS({
|
|
158
|
-
"../../node_modules/.pnpm/semver@7.
|
|
162
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/parse-options.js"(exports, module) {
|
|
159
163
|
var looseOption = Object.freeze({ loose: true });
|
|
160
164
|
var emptyOpts = Object.freeze({});
|
|
161
165
|
var parseOptions = (options) => {
|
|
@@ -171,9 +175,9 @@ var require_parse_options = __commonJS({
|
|
|
171
175
|
}
|
|
172
176
|
});
|
|
173
177
|
|
|
174
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
178
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/identifiers.js
|
|
175
179
|
var require_identifiers = __commonJS({
|
|
176
|
-
"../../node_modules/.pnpm/semver@7.
|
|
180
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/identifiers.js"(exports, module) {
|
|
177
181
|
var numeric = /^[0-9]+$/;
|
|
178
182
|
var compareIdentifiers = (a, b) => {
|
|
179
183
|
if (typeof a === "number" && typeof b === "number") {
|
|
@@ -195,14 +199,26 @@ var require_identifiers = __commonJS({
|
|
|
195
199
|
}
|
|
196
200
|
});
|
|
197
201
|
|
|
198
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
202
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/semver.js
|
|
199
203
|
var require_semver = __commonJS({
|
|
200
|
-
"../../node_modules/.pnpm/semver@7.
|
|
204
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/semver.js"(exports, module) {
|
|
201
205
|
var debug = require_debug();
|
|
202
206
|
var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants();
|
|
203
207
|
var { safeRe: re, t } = require_re();
|
|
204
208
|
var parseOptions = require_parse_options();
|
|
205
209
|
var { compareIdentifiers } = require_identifiers();
|
|
210
|
+
var isPrereleaseIdentifier = (prerelease, identifier) => {
|
|
211
|
+
const identifiers = identifier.split(".");
|
|
212
|
+
if (identifiers.length > prerelease.length) {
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
for (let i = 0; i < identifiers.length; i++) {
|
|
216
|
+
if (compareIdentifiers(prerelease[i], identifiers[i]) !== 0) {
|
|
217
|
+
return false;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return true;
|
|
221
|
+
};
|
|
206
222
|
var SemVer = class _SemVer {
|
|
207
223
|
constructor(version, options) {
|
|
208
224
|
options = parseOptions(options);
|
|
@@ -449,8 +465,9 @@ var require_semver = __commonJS({
|
|
|
449
465
|
if (identifierBase === false) {
|
|
450
466
|
prerelease = [identifier];
|
|
451
467
|
}
|
|
452
|
-
if (
|
|
453
|
-
|
|
468
|
+
if (isPrereleaseIdentifier(this.prerelease, identifier)) {
|
|
469
|
+
const prereleaseBase = this.prerelease[identifier.split(".").length];
|
|
470
|
+
if (isNaN(prereleaseBase)) {
|
|
454
471
|
this.prerelease = prerelease;
|
|
455
472
|
}
|
|
456
473
|
} else {
|
|
@@ -473,9 +490,9 @@ var require_semver = __commonJS({
|
|
|
473
490
|
}
|
|
474
491
|
});
|
|
475
492
|
|
|
476
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
493
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/parse.js
|
|
477
494
|
var require_parse = __commonJS({
|
|
478
|
-
"../../node_modules/.pnpm/semver@7.
|
|
495
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/parse.js"(exports, module) {
|
|
479
496
|
var SemVer = require_semver();
|
|
480
497
|
var parse = (version, options, throwErrors = false) => {
|
|
481
498
|
if (version instanceof SemVer) {
|
|
@@ -494,9 +511,9 @@ var require_parse = __commonJS({
|
|
|
494
511
|
}
|
|
495
512
|
});
|
|
496
513
|
|
|
497
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
514
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/valid.js
|
|
498
515
|
var require_valid = __commonJS({
|
|
499
|
-
"../../node_modules/.pnpm/semver@7.
|
|
516
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/valid.js"(exports, module) {
|
|
500
517
|
var parse = require_parse();
|
|
501
518
|
var valid2 = (version, options) => {
|
|
502
519
|
const v = parse(version, options);
|
|
@@ -506,9 +523,9 @@ var require_valid = __commonJS({
|
|
|
506
523
|
}
|
|
507
524
|
});
|
|
508
525
|
|
|
509
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
526
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/clean.js
|
|
510
527
|
var require_clean = __commonJS({
|
|
511
|
-
"../../node_modules/.pnpm/semver@7.
|
|
528
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/clean.js"(exports, module) {
|
|
512
529
|
var parse = require_parse();
|
|
513
530
|
var clean = (version, options) => {
|
|
514
531
|
const s = parse(version.trim().replace(/^[=v]+/, ""), options);
|
|
@@ -518,9 +535,9 @@ var require_clean = __commonJS({
|
|
|
518
535
|
}
|
|
519
536
|
});
|
|
520
537
|
|
|
521
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
538
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/inc.js
|
|
522
539
|
var require_inc = __commonJS({
|
|
523
|
-
"../../node_modules/.pnpm/semver@7.
|
|
540
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/inc.js"(exports, module) {
|
|
524
541
|
var SemVer = require_semver();
|
|
525
542
|
var inc = (version, release, options, identifier, identifierBase) => {
|
|
526
543
|
if (typeof options === "string") {
|
|
@@ -541,9 +558,9 @@ var require_inc = __commonJS({
|
|
|
541
558
|
}
|
|
542
559
|
});
|
|
543
560
|
|
|
544
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
561
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/diff.js
|
|
545
562
|
var require_diff = __commonJS({
|
|
546
|
-
"../../node_modules/.pnpm/semver@7.
|
|
563
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/diff.js"(exports, module) {
|
|
547
564
|
var parse = require_parse();
|
|
548
565
|
var diff = (version1, version2) => {
|
|
549
566
|
const v1 = parse(version1, null, true);
|
|
@@ -584,36 +601,36 @@ var require_diff = __commonJS({
|
|
|
584
601
|
}
|
|
585
602
|
});
|
|
586
603
|
|
|
587
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
604
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/major.js
|
|
588
605
|
var require_major = __commonJS({
|
|
589
|
-
"../../node_modules/.pnpm/semver@7.
|
|
606
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/major.js"(exports, module) {
|
|
590
607
|
var SemVer = require_semver();
|
|
591
608
|
var major = (a, loose) => new SemVer(a, loose).major;
|
|
592
609
|
module.exports = major;
|
|
593
610
|
}
|
|
594
611
|
});
|
|
595
612
|
|
|
596
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
613
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/minor.js
|
|
597
614
|
var require_minor = __commonJS({
|
|
598
|
-
"../../node_modules/.pnpm/semver@7.
|
|
615
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/minor.js"(exports, module) {
|
|
599
616
|
var SemVer = require_semver();
|
|
600
617
|
var minor = (a, loose) => new SemVer(a, loose).minor;
|
|
601
618
|
module.exports = minor;
|
|
602
619
|
}
|
|
603
620
|
});
|
|
604
621
|
|
|
605
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
622
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/patch.js
|
|
606
623
|
var require_patch = __commonJS({
|
|
607
|
-
"../../node_modules/.pnpm/semver@7.
|
|
624
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/patch.js"(exports, module) {
|
|
608
625
|
var SemVer = require_semver();
|
|
609
626
|
var patch = (a, loose) => new SemVer(a, loose).patch;
|
|
610
627
|
module.exports = patch;
|
|
611
628
|
}
|
|
612
629
|
});
|
|
613
630
|
|
|
614
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
631
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/prerelease.js
|
|
615
632
|
var require_prerelease = __commonJS({
|
|
616
|
-
"../../node_modules/.pnpm/semver@7.
|
|
633
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/prerelease.js"(exports, module) {
|
|
617
634
|
var parse = require_parse();
|
|
618
635
|
var prerelease = (version, options) => {
|
|
619
636
|
const parsed = parse(version, options);
|
|
@@ -623,36 +640,36 @@ var require_prerelease = __commonJS({
|
|
|
623
640
|
}
|
|
624
641
|
});
|
|
625
642
|
|
|
626
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
643
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare.js
|
|
627
644
|
var require_compare = __commonJS({
|
|
628
|
-
"../../node_modules/.pnpm/semver@7.
|
|
645
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare.js"(exports, module) {
|
|
629
646
|
var SemVer = require_semver();
|
|
630
647
|
var compare2 = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose));
|
|
631
648
|
module.exports = compare2;
|
|
632
649
|
}
|
|
633
650
|
});
|
|
634
651
|
|
|
635
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
652
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/rcompare.js
|
|
636
653
|
var require_rcompare = __commonJS({
|
|
637
|
-
"../../node_modules/.pnpm/semver@7.
|
|
654
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/rcompare.js"(exports, module) {
|
|
638
655
|
var compare2 = require_compare();
|
|
639
656
|
var rcompare = (a, b, loose) => compare2(b, a, loose);
|
|
640
657
|
module.exports = rcompare;
|
|
641
658
|
}
|
|
642
659
|
});
|
|
643
660
|
|
|
644
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
661
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare-loose.js
|
|
645
662
|
var require_compare_loose = __commonJS({
|
|
646
|
-
"../../node_modules/.pnpm/semver@7.
|
|
663
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare-loose.js"(exports, module) {
|
|
647
664
|
var compare2 = require_compare();
|
|
648
665
|
var compareLoose = (a, b) => compare2(a, b, true);
|
|
649
666
|
module.exports = compareLoose;
|
|
650
667
|
}
|
|
651
668
|
});
|
|
652
669
|
|
|
653
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
670
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare-build.js
|
|
654
671
|
var require_compare_build = __commonJS({
|
|
655
|
-
"../../node_modules/.pnpm/semver@7.
|
|
672
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare-build.js"(exports, module) {
|
|
656
673
|
var SemVer = require_semver();
|
|
657
674
|
var compareBuild = (a, b, loose) => {
|
|
658
675
|
const versionA = new SemVer(a, loose);
|
|
@@ -663,81 +680,81 @@ var require_compare_build = __commonJS({
|
|
|
663
680
|
}
|
|
664
681
|
});
|
|
665
682
|
|
|
666
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
683
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/sort.js
|
|
667
684
|
var require_sort = __commonJS({
|
|
668
|
-
"../../node_modules/.pnpm/semver@7.
|
|
685
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/sort.js"(exports, module) {
|
|
669
686
|
var compareBuild = require_compare_build();
|
|
670
|
-
var sort = (
|
|
687
|
+
var sort = (list2, loose) => list2.sort((a, b) => compareBuild(a, b, loose));
|
|
671
688
|
module.exports = sort;
|
|
672
689
|
}
|
|
673
690
|
});
|
|
674
691
|
|
|
675
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
692
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/rsort.js
|
|
676
693
|
var require_rsort = __commonJS({
|
|
677
|
-
"../../node_modules/.pnpm/semver@7.
|
|
694
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/rsort.js"(exports, module) {
|
|
678
695
|
var compareBuild = require_compare_build();
|
|
679
|
-
var rsort = (
|
|
696
|
+
var rsort = (list2, loose) => list2.sort((a, b) => compareBuild(b, a, loose));
|
|
680
697
|
module.exports = rsort;
|
|
681
698
|
}
|
|
682
699
|
});
|
|
683
700
|
|
|
684
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
701
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/gt.js
|
|
685
702
|
var require_gt = __commonJS({
|
|
686
|
-
"../../node_modules/.pnpm/semver@7.
|
|
703
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/gt.js"(exports, module) {
|
|
687
704
|
var compare2 = require_compare();
|
|
688
705
|
var gt = (a, b, loose) => compare2(a, b, loose) > 0;
|
|
689
706
|
module.exports = gt;
|
|
690
707
|
}
|
|
691
708
|
});
|
|
692
709
|
|
|
693
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
710
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/lt.js
|
|
694
711
|
var require_lt = __commonJS({
|
|
695
|
-
"../../node_modules/.pnpm/semver@7.
|
|
712
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/lt.js"(exports, module) {
|
|
696
713
|
var compare2 = require_compare();
|
|
697
714
|
var lt = (a, b, loose) => compare2(a, b, loose) < 0;
|
|
698
715
|
module.exports = lt;
|
|
699
716
|
}
|
|
700
717
|
});
|
|
701
718
|
|
|
702
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
719
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/eq.js
|
|
703
720
|
var require_eq = __commonJS({
|
|
704
|
-
"../../node_modules/.pnpm/semver@7.
|
|
721
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/eq.js"(exports, module) {
|
|
705
722
|
var compare2 = require_compare();
|
|
706
723
|
var eq = (a, b, loose) => compare2(a, b, loose) === 0;
|
|
707
724
|
module.exports = eq;
|
|
708
725
|
}
|
|
709
726
|
});
|
|
710
727
|
|
|
711
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
728
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/neq.js
|
|
712
729
|
var require_neq = __commonJS({
|
|
713
|
-
"../../node_modules/.pnpm/semver@7.
|
|
730
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/neq.js"(exports, module) {
|
|
714
731
|
var compare2 = require_compare();
|
|
715
732
|
var neq = (a, b, loose) => compare2(a, b, loose) !== 0;
|
|
716
733
|
module.exports = neq;
|
|
717
734
|
}
|
|
718
735
|
});
|
|
719
736
|
|
|
720
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
737
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/gte.js
|
|
721
738
|
var require_gte = __commonJS({
|
|
722
|
-
"../../node_modules/.pnpm/semver@7.
|
|
739
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/gte.js"(exports, module) {
|
|
723
740
|
var compare2 = require_compare();
|
|
724
741
|
var gte2 = (a, b, loose) => compare2(a, b, loose) >= 0;
|
|
725
742
|
module.exports = gte2;
|
|
726
743
|
}
|
|
727
744
|
});
|
|
728
745
|
|
|
729
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
746
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/lte.js
|
|
730
747
|
var require_lte = __commonJS({
|
|
731
|
-
"../../node_modules/.pnpm/semver@7.
|
|
748
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/lte.js"(exports, module) {
|
|
732
749
|
var compare2 = require_compare();
|
|
733
750
|
var lte = (a, b, loose) => compare2(a, b, loose) <= 0;
|
|
734
751
|
module.exports = lte;
|
|
735
752
|
}
|
|
736
753
|
});
|
|
737
754
|
|
|
738
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
755
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/cmp.js
|
|
739
756
|
var require_cmp = __commonJS({
|
|
740
|
-
"../../node_modules/.pnpm/semver@7.
|
|
757
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/cmp.js"(exports, module) {
|
|
741
758
|
var eq = require_eq();
|
|
742
759
|
var neq = require_neq();
|
|
743
760
|
var gt = require_gt();
|
|
@@ -784,9 +801,9 @@ var require_cmp = __commonJS({
|
|
|
784
801
|
}
|
|
785
802
|
});
|
|
786
803
|
|
|
787
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
804
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/coerce.js
|
|
788
805
|
var require_coerce = __commonJS({
|
|
789
|
-
"../../node_modules/.pnpm/semver@7.
|
|
806
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/coerce.js"(exports, module) {
|
|
790
807
|
var SemVer = require_semver();
|
|
791
808
|
var parse = require_parse();
|
|
792
809
|
var { safeRe: re, t } = require_re();
|
|
@@ -829,9 +846,49 @@ var require_coerce = __commonJS({
|
|
|
829
846
|
}
|
|
830
847
|
});
|
|
831
848
|
|
|
832
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
849
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/truncate.js
|
|
850
|
+
var require_truncate = __commonJS({
|
|
851
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/truncate.js"(exports, module) {
|
|
852
|
+
var parse = require_parse();
|
|
853
|
+
var constants2 = require_constants();
|
|
854
|
+
var SemVer = require_semver();
|
|
855
|
+
var truncate = (version, truncation, options) => {
|
|
856
|
+
if (!constants2.RELEASE_TYPES.includes(truncation)) {
|
|
857
|
+
return null;
|
|
858
|
+
}
|
|
859
|
+
const clonedVersion = cloneInputVersion(version, options);
|
|
860
|
+
return clonedVersion && doTruncation(clonedVersion, truncation);
|
|
861
|
+
};
|
|
862
|
+
var cloneInputVersion = (version, options) => {
|
|
863
|
+
const versionStringToParse = version instanceof SemVer ? version.version : version;
|
|
864
|
+
return parse(versionStringToParse, options);
|
|
865
|
+
};
|
|
866
|
+
var doTruncation = (version, truncation) => {
|
|
867
|
+
if (isPrerelease(truncation)) {
|
|
868
|
+
return version.version;
|
|
869
|
+
}
|
|
870
|
+
version.prerelease = [];
|
|
871
|
+
switch (truncation) {
|
|
872
|
+
case "major":
|
|
873
|
+
version.minor = 0;
|
|
874
|
+
version.patch = 0;
|
|
875
|
+
break;
|
|
876
|
+
case "minor":
|
|
877
|
+
version.patch = 0;
|
|
878
|
+
break;
|
|
879
|
+
}
|
|
880
|
+
return version.format();
|
|
881
|
+
};
|
|
882
|
+
var isPrerelease = (type) => {
|
|
883
|
+
return type.startsWith("pre");
|
|
884
|
+
};
|
|
885
|
+
module.exports = truncate;
|
|
886
|
+
}
|
|
887
|
+
});
|
|
888
|
+
|
|
889
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/lrucache.js
|
|
833
890
|
var require_lrucache = __commonJS({
|
|
834
|
-
"../../node_modules/.pnpm/semver@7.
|
|
891
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/lrucache.js"(exports, module) {
|
|
835
892
|
var LRUCache = class {
|
|
836
893
|
constructor() {
|
|
837
894
|
this.max = 1e3;
|
|
@@ -866,9 +923,9 @@ var require_lrucache = __commonJS({
|
|
|
866
923
|
}
|
|
867
924
|
});
|
|
868
925
|
|
|
869
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
926
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/range.js
|
|
870
927
|
var require_range = __commonJS({
|
|
871
|
-
"../../node_modules/.pnpm/semver@7.
|
|
928
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/range.js"(exports, module) {
|
|
872
929
|
var SPACE_CHARACTERS = /\s+/g;
|
|
873
930
|
var Range = class _Range {
|
|
874
931
|
constructor(range, options) {
|
|
@@ -935,6 +992,7 @@ var require_range = __commonJS({
|
|
|
935
992
|
return this.range;
|
|
936
993
|
}
|
|
937
994
|
parseRange(range) {
|
|
995
|
+
range = range.replace(BUILDSTRIPRE, "");
|
|
938
996
|
const memoOpts = (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | (this.options.loose && FLAG_LOOSE);
|
|
939
997
|
const memoKey = memoOpts + ":" + range;
|
|
940
998
|
const cached = cache.get(memoKey);
|
|
@@ -1017,12 +1075,14 @@ var require_range = __commonJS({
|
|
|
1017
1075
|
var SemVer = require_semver();
|
|
1018
1076
|
var {
|
|
1019
1077
|
safeRe: re,
|
|
1078
|
+
src,
|
|
1020
1079
|
t,
|
|
1021
1080
|
comparatorTrimReplace,
|
|
1022
1081
|
tildeTrimReplace,
|
|
1023
1082
|
caretTrimReplace
|
|
1024
1083
|
} = require_re();
|
|
1025
1084
|
var { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require_constants();
|
|
1085
|
+
var BUILDSTRIPRE = new RegExp(src[t.BUILD], "g");
|
|
1026
1086
|
var isNullSet = (c) => c.value === "<0.0.0-0";
|
|
1027
1087
|
var isAny = (c) => c.value === "";
|
|
1028
1088
|
var isSatisfiable = (comparators, options) => {
|
|
@@ -1051,20 +1111,22 @@ var require_range = __commonJS({
|
|
|
1051
1111
|
return comp;
|
|
1052
1112
|
};
|
|
1053
1113
|
var isX = (id) => !id || id.toLowerCase() === "x" || id === "*";
|
|
1114
|
+
var invalidXRangeOrder = (M, m, p) => isX(M) && !isX(m) || isX(m) && p && !isX(p);
|
|
1054
1115
|
var replaceTildes = (comp, options) => {
|
|
1055
1116
|
return comp.trim().split(/\s+/).map((c) => replaceTilde(c, options)).join(" ");
|
|
1056
1117
|
};
|
|
1057
1118
|
var replaceTilde = (comp, options) => {
|
|
1058
1119
|
const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE];
|
|
1120
|
+
const z = options.includePrerelease ? "-0" : "";
|
|
1059
1121
|
return comp.replace(r, (_, M, m, p, pr) => {
|
|
1060
1122
|
debug("tilde", comp, _, M, m, p, pr);
|
|
1061
1123
|
let ret;
|
|
1062
1124
|
if (isX(M)) {
|
|
1063
1125
|
ret = "";
|
|
1064
1126
|
} else if (isX(m)) {
|
|
1065
|
-
ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;
|
|
1127
|
+
ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`;
|
|
1066
1128
|
} else if (isX(p)) {
|
|
1067
|
-
ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`;
|
|
1129
|
+
ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`;
|
|
1068
1130
|
} else if (pr) {
|
|
1069
1131
|
debug("replaceTilde pr", pr);
|
|
1070
1132
|
ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;
|
|
@@ -1110,9 +1172,9 @@ var require_range = __commonJS({
|
|
|
1110
1172
|
debug("no pr");
|
|
1111
1173
|
if (M === "0") {
|
|
1112
1174
|
if (m === "0") {
|
|
1113
|
-
ret = `>=${M}.${m}.${p}
|
|
1175
|
+
ret = `>=${M}.${m}.${p} <${M}.${m}.${+p + 1}-0`;
|
|
1114
1176
|
} else {
|
|
1115
|
-
ret = `>=${M}.${m}.${p}
|
|
1177
|
+
ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`;
|
|
1116
1178
|
}
|
|
1117
1179
|
} else {
|
|
1118
1180
|
ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`;
|
|
@@ -1131,6 +1193,9 @@ var require_range = __commonJS({
|
|
|
1131
1193
|
const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE];
|
|
1132
1194
|
return comp.replace(r, (ret, gtlt, M, m, p, pr) => {
|
|
1133
1195
|
debug("xRange", comp, ret, gtlt, M, m, p, pr);
|
|
1196
|
+
if (invalidXRangeOrder(M, m, p)) {
|
|
1197
|
+
return comp;
|
|
1198
|
+
}
|
|
1134
1199
|
const xM = isX(M);
|
|
1135
1200
|
const xm = xM || isX(m);
|
|
1136
1201
|
const xp = xm || isX(p);
|
|
@@ -1242,9 +1307,9 @@ var require_range = __commonJS({
|
|
|
1242
1307
|
}
|
|
1243
1308
|
});
|
|
1244
1309
|
|
|
1245
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
1310
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/comparator.js
|
|
1246
1311
|
var require_comparator = __commonJS({
|
|
1247
|
-
"../../node_modules/.pnpm/semver@7.
|
|
1312
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/comparator.js"(exports, module) {
|
|
1248
1313
|
var ANY = /* @__PURE__ */ Symbol("SemVer ANY");
|
|
1249
1314
|
var Comparator = class _Comparator {
|
|
1250
1315
|
static get ANY() {
|
|
@@ -1354,9 +1419,9 @@ var require_comparator = __commonJS({
|
|
|
1354
1419
|
}
|
|
1355
1420
|
});
|
|
1356
1421
|
|
|
1357
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
1422
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/satisfies.js
|
|
1358
1423
|
var require_satisfies = __commonJS({
|
|
1359
|
-
"../../node_modules/.pnpm/semver@7.
|
|
1424
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/satisfies.js"(exports, module) {
|
|
1360
1425
|
var Range = require_range();
|
|
1361
1426
|
var satisfies2 = (version, range, options) => {
|
|
1362
1427
|
try {
|
|
@@ -1370,18 +1435,18 @@ var require_satisfies = __commonJS({
|
|
|
1370
1435
|
}
|
|
1371
1436
|
});
|
|
1372
1437
|
|
|
1373
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
1438
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/to-comparators.js
|
|
1374
1439
|
var require_to_comparators = __commonJS({
|
|
1375
|
-
"../../node_modules/.pnpm/semver@7.
|
|
1440
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/to-comparators.js"(exports, module) {
|
|
1376
1441
|
var Range = require_range();
|
|
1377
1442
|
var toComparators = (range, options) => new Range(range, options).set.map((comp) => comp.map((c) => c.value).join(" ").trim().split(" "));
|
|
1378
1443
|
module.exports = toComparators;
|
|
1379
1444
|
}
|
|
1380
1445
|
});
|
|
1381
1446
|
|
|
1382
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
1447
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/max-satisfying.js
|
|
1383
1448
|
var require_max_satisfying = __commonJS({
|
|
1384
|
-
"../../node_modules/.pnpm/semver@7.
|
|
1449
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/max-satisfying.js"(exports, module) {
|
|
1385
1450
|
var SemVer = require_semver();
|
|
1386
1451
|
var Range = require_range();
|
|
1387
1452
|
var maxSatisfying = (versions, range, options) => {
|
|
@@ -1407,9 +1472,9 @@ var require_max_satisfying = __commonJS({
|
|
|
1407
1472
|
}
|
|
1408
1473
|
});
|
|
1409
1474
|
|
|
1410
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
1475
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/min-satisfying.js
|
|
1411
1476
|
var require_min_satisfying = __commonJS({
|
|
1412
|
-
"../../node_modules/.pnpm/semver@7.
|
|
1477
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/min-satisfying.js"(exports, module) {
|
|
1413
1478
|
var SemVer = require_semver();
|
|
1414
1479
|
var Range = require_range();
|
|
1415
1480
|
var minSatisfying = (versions, range, options) => {
|
|
@@ -1435,9 +1500,9 @@ var require_min_satisfying = __commonJS({
|
|
|
1435
1500
|
}
|
|
1436
1501
|
});
|
|
1437
1502
|
|
|
1438
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
1503
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/min-version.js
|
|
1439
1504
|
var require_min_version = __commonJS({
|
|
1440
|
-
"../../node_modules/.pnpm/semver@7.
|
|
1505
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/min-version.js"(exports, module) {
|
|
1441
1506
|
var SemVer = require_semver();
|
|
1442
1507
|
var Range = require_range();
|
|
1443
1508
|
var gt = require_gt();
|
|
@@ -1493,9 +1558,9 @@ var require_min_version = __commonJS({
|
|
|
1493
1558
|
}
|
|
1494
1559
|
});
|
|
1495
1560
|
|
|
1496
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
1561
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/valid.js
|
|
1497
1562
|
var require_valid2 = __commonJS({
|
|
1498
|
-
"../../node_modules/.pnpm/semver@7.
|
|
1563
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/valid.js"(exports, module) {
|
|
1499
1564
|
var Range = require_range();
|
|
1500
1565
|
var validRange = (range, options) => {
|
|
1501
1566
|
try {
|
|
@@ -1508,9 +1573,9 @@ var require_valid2 = __commonJS({
|
|
|
1508
1573
|
}
|
|
1509
1574
|
});
|
|
1510
1575
|
|
|
1511
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
1576
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/outside.js
|
|
1512
1577
|
var require_outside = __commonJS({
|
|
1513
|
-
"../../node_modules/.pnpm/semver@7.
|
|
1578
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/outside.js"(exports, module) {
|
|
1514
1579
|
var SemVer = require_semver();
|
|
1515
1580
|
var Comparator = require_comparator();
|
|
1516
1581
|
var { ANY } = Comparator;
|
|
@@ -1576,27 +1641,27 @@ var require_outside = __commonJS({
|
|
|
1576
1641
|
}
|
|
1577
1642
|
});
|
|
1578
1643
|
|
|
1579
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
1644
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/gtr.js
|
|
1580
1645
|
var require_gtr = __commonJS({
|
|
1581
|
-
"../../node_modules/.pnpm/semver@7.
|
|
1646
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/gtr.js"(exports, module) {
|
|
1582
1647
|
var outside = require_outside();
|
|
1583
1648
|
var gtr = (version, range, options) => outside(version, range, ">", options);
|
|
1584
1649
|
module.exports = gtr;
|
|
1585
1650
|
}
|
|
1586
1651
|
});
|
|
1587
1652
|
|
|
1588
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
1653
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/ltr.js
|
|
1589
1654
|
var require_ltr = __commonJS({
|
|
1590
|
-
"../../node_modules/.pnpm/semver@7.
|
|
1655
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/ltr.js"(exports, module) {
|
|
1591
1656
|
var outside = require_outside();
|
|
1592
1657
|
var ltr = (version, range, options) => outside(version, range, "<", options);
|
|
1593
1658
|
module.exports = ltr;
|
|
1594
1659
|
}
|
|
1595
1660
|
});
|
|
1596
1661
|
|
|
1597
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
1662
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/intersects.js
|
|
1598
1663
|
var require_intersects = __commonJS({
|
|
1599
|
-
"../../node_modules/.pnpm/semver@7.
|
|
1664
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/intersects.js"(exports, module) {
|
|
1600
1665
|
var Range = require_range();
|
|
1601
1666
|
var intersects = (r1, r2, options) => {
|
|
1602
1667
|
r1 = new Range(r1, options);
|
|
@@ -1607,9 +1672,9 @@ var require_intersects = __commonJS({
|
|
|
1607
1672
|
}
|
|
1608
1673
|
});
|
|
1609
1674
|
|
|
1610
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
1675
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/simplify.js
|
|
1611
1676
|
var require_simplify = __commonJS({
|
|
1612
|
-
"../../node_modules/.pnpm/semver@7.
|
|
1677
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/simplify.js"(exports, module) {
|
|
1613
1678
|
var satisfies2 = require_satisfies();
|
|
1614
1679
|
var compare2 = require_compare();
|
|
1615
1680
|
module.exports = (versions, range, options) => {
|
|
@@ -1656,9 +1721,9 @@ var require_simplify = __commonJS({
|
|
|
1656
1721
|
}
|
|
1657
1722
|
});
|
|
1658
1723
|
|
|
1659
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
1724
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/subset.js
|
|
1660
1725
|
var require_subset = __commonJS({
|
|
1661
|
-
"../../node_modules/.pnpm/semver@7.
|
|
1726
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/subset.js"(exports, module) {
|
|
1662
1727
|
var Range = require_range();
|
|
1663
1728
|
var Comparator = require_comparator();
|
|
1664
1729
|
var { ANY } = Comparator;
|
|
@@ -1765,7 +1830,7 @@ var require_subset = __commonJS({
|
|
|
1765
1830
|
if (higher === c && higher !== gt) {
|
|
1766
1831
|
return false;
|
|
1767
1832
|
}
|
|
1768
|
-
} else if (gt.operator === ">=" && !
|
|
1833
|
+
} else if (gt.operator === ">=" && !c.test(gt.semver)) {
|
|
1769
1834
|
return false;
|
|
1770
1835
|
}
|
|
1771
1836
|
}
|
|
@@ -1780,7 +1845,7 @@ var require_subset = __commonJS({
|
|
|
1780
1845
|
if (lower === c && lower !== lt) {
|
|
1781
1846
|
return false;
|
|
1782
1847
|
}
|
|
1783
|
-
} else if (lt.operator === "<=" && !
|
|
1848
|
+
} else if (lt.operator === "<=" && !c.test(lt.semver)) {
|
|
1784
1849
|
return false;
|
|
1785
1850
|
}
|
|
1786
1851
|
}
|
|
@@ -1817,9 +1882,9 @@ var require_subset = __commonJS({
|
|
|
1817
1882
|
}
|
|
1818
1883
|
});
|
|
1819
1884
|
|
|
1820
|
-
// ../../node_modules/.pnpm/semver@7.
|
|
1885
|
+
// ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/index.js
|
|
1821
1886
|
var require_semver2 = __commonJS({
|
|
1822
|
-
"../../node_modules/.pnpm/semver@7.
|
|
1887
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/index.js"(exports, module) {
|
|
1823
1888
|
var internalRe = require_re();
|
|
1824
1889
|
var constants2 = require_constants();
|
|
1825
1890
|
var SemVer = require_semver();
|
|
@@ -1847,6 +1912,7 @@ var require_semver2 = __commonJS({
|
|
|
1847
1912
|
var lte = require_lte();
|
|
1848
1913
|
var cmp = require_cmp();
|
|
1849
1914
|
var coerce2 = require_coerce();
|
|
1915
|
+
var truncate = require_truncate();
|
|
1850
1916
|
var Comparator = require_comparator();
|
|
1851
1917
|
var Range = require_range();
|
|
1852
1918
|
var satisfies2 = require_satisfies();
|
|
@@ -1885,6 +1951,7 @@ var require_semver2 = __commonJS({
|
|
|
1885
1951
|
lte,
|
|
1886
1952
|
cmp,
|
|
1887
1953
|
coerce: coerce2,
|
|
1954
|
+
truncate,
|
|
1888
1955
|
Comparator,
|
|
1889
1956
|
Range,
|
|
1890
1957
|
satisfies: satisfies2,
|
|
@@ -1911,11 +1978,7 @@ var require_semver2 = __commonJS({
|
|
|
1911
1978
|
}
|
|
1912
1979
|
});
|
|
1913
1980
|
|
|
1914
|
-
// src/lib/models/
|
|
1915
|
-
var DEFAULT_FILE_PERMISSIONS = "rw-r--r--";
|
|
1916
|
-
var DEFAULT_DIR_PERMISSIONS = "rwxr-xr-x";
|
|
1917
|
-
|
|
1918
|
-
// src/lib/models/index.ts
|
|
1981
|
+
// src/lib/models/colors.ts
|
|
1919
1982
|
var CliForegroundColor = /* @__PURE__ */ ((CliForegroundColor2) => {
|
|
1920
1983
|
CliForegroundColor2["Black"] = "\x1B[30m";
|
|
1921
1984
|
CliForegroundColor2["Red"] = "\x1B[31m";
|
|
@@ -1939,6 +2002,8 @@ var CliBackgroundColor = /* @__PURE__ */ ((CliBackgroundColor2) => {
|
|
|
1939
2002
|
CliBackgroundColor2["White"] = "\x1B[47m";
|
|
1940
2003
|
return CliBackgroundColor2;
|
|
1941
2004
|
})(CliBackgroundColor || {});
|
|
2005
|
+
|
|
2006
|
+
// src/lib/models/icons.ts
|
|
1942
2007
|
var CliIcon = /* @__PURE__ */ ((CliIcon2) => {
|
|
1943
2008
|
CliIcon2["CheckIcon"] = "\u2714";
|
|
1944
2009
|
CliIcon2["CrossIcon"] = "\u2718";
|
|
@@ -2008,7 +2073,7 @@ var CliIcon = /* @__PURE__ */ ((CliIcon2) => {
|
|
|
2008
2073
|
CliIcon2["Server"] = "\u{1F5A5}";
|
|
2009
2074
|
CliIcon2["Cloud"] = "\u2601";
|
|
2010
2075
|
CliIcon2["Network"] = "\u{1F310}";
|
|
2011
|
-
CliIcon2["Monitor"] = "\u{
|
|
2076
|
+
CliIcon2["Monitor"] = "\u{1F4FA}";
|
|
2012
2077
|
CliIcon2["Printer"] = "\u{1F5A8}";
|
|
2013
2078
|
CliIcon2["USB"] = "\u{1F50C}";
|
|
2014
2079
|
CliIcon2["Speaker"] = "\u{1F50A}";
|
|
@@ -2018,14 +2083,14 @@ var CliIcon = /* @__PURE__ */ ((CliIcon2) => {
|
|
|
2018
2083
|
CliIcon2["Music"] = "\u{1F3B5}";
|
|
2019
2084
|
CliIcon2["Phone"] = "\u{1F4DE}";
|
|
2020
2085
|
CliIcon2["Package"] = "\u{1F4E6}";
|
|
2021
|
-
CliIcon2["Plugin"] = "\u{
|
|
2022
|
-
CliIcon2["Extension"] = "\u{
|
|
2023
|
-
CliIcon2["Module"] = "\u{
|
|
2086
|
+
CliIcon2["Plugin"] = "\u{1F9E9}";
|
|
2087
|
+
CliIcon2["Extension"] = "\u{1F50C}";
|
|
2088
|
+
CliIcon2["Module"] = "\u{1F9F1}";
|
|
2024
2089
|
CliIcon2["Evaluate"] = "\u{1F50D}";
|
|
2025
|
-
CliIcon2["Variable"] = "\u{
|
|
2090
|
+
CliIcon2["Variable"] = "\u{1D465}";
|
|
2026
2091
|
CliIcon2["Script"] = "\u{1F4DC}";
|
|
2027
|
-
CliIcon2["Code"] = "\u{
|
|
2028
|
-
CliIcon2["Logs"] = "\u{
|
|
2092
|
+
CliIcon2["Code"] = "\u{1F4DD}";
|
|
2093
|
+
CliIcon2["Logs"] = "\u{1F4CB}";
|
|
2029
2094
|
CliIcon2["Power"] = "\u23FB";
|
|
2030
2095
|
CliIcon2["Heart"] = "\u2764";
|
|
2031
2096
|
CliIcon2["Flame"] = "\u{1F525}";
|
|
@@ -2056,6 +2121,54 @@ var CliIcon = /* @__PURE__ */ ((CliIcon2) => {
|
|
|
2056
2121
|
CliIcon2["Gift"] = "\u{1F381}";
|
|
2057
2122
|
return CliIcon2;
|
|
2058
2123
|
})(CliIcon || {});
|
|
2124
|
+
|
|
2125
|
+
// src/lib/models/services.ts
|
|
2126
|
+
function createCliToken(name) {
|
|
2127
|
+
return name;
|
|
2128
|
+
}
|
|
2129
|
+
|
|
2130
|
+
// src/lib/tokens.ts
|
|
2131
|
+
var ICliUserSessionService_TOKEN = createCliToken("cli-user-session-service");
|
|
2132
|
+
var ICliUsersStoreService_TOKEN = createCliToken("cli-users-store-service");
|
|
2133
|
+
var ICliGroupsStoreService_TOKEN = createCliToken("cli-groups-store-service");
|
|
2134
|
+
var ICliAuthService_TOKEN = createCliToken("cli-auth-service");
|
|
2135
|
+
var ICliCompletionProvider_TOKEN = createCliToken("cli-completion-provider");
|
|
2136
|
+
var ICliDragDropService_TOKEN = createCliToken("cli-drag-drop-service");
|
|
2137
|
+
var ICliFileTransferService_TOKEN = createCliToken("cli-file-transfer-service");
|
|
2138
|
+
var ICliTranslationService_TOKEN = createCliToken("cli-translation-service");
|
|
2139
|
+
var ICliPermissionService_TOKEN = createCliToken("cli-permission-service");
|
|
2140
|
+
var ICliFilePickerProvider_TOKEN = createCliToken("cli-file-picker-provider");
|
|
2141
|
+
var ICliHttpClient_TOKEN = createCliToken("cli-http-client");
|
|
2142
|
+
var ICliUserEventService_TOKEN = createCliToken("cli-user-event-service");
|
|
2143
|
+
var ICliAuditService_TOKEN = createCliToken("cli-audit-service");
|
|
2144
|
+
var ICliAuthorizationService_TOKEN = createCliToken("cli-authorization-service");
|
|
2145
|
+
var ICliPermissionRegistry_TOKEN = createCliToken("cli-permission-registry");
|
|
2146
|
+
var ICliSessionsService_TOKEN = createCliToken("cli-sessions-service");
|
|
2147
|
+
var ICliKeyValueStore_TOKEN = createCliToken("cli-key-value-store");
|
|
2148
|
+
|
|
2149
|
+
// src/lib/interfaces/services.ts
|
|
2150
|
+
var ICliServerAuthTokenProvider_TOKEN = createCliToken("cli-server-auth-token-provider");
|
|
2151
|
+
var ICliServerAuthService_TOKEN = createCliToken("cli-server-auth-service");
|
|
2152
|
+
var ICliServerManager_TOKEN = createCliToken("cli-server-manager");
|
|
2153
|
+
|
|
2154
|
+
// src/lib/models/server.ts
|
|
2155
|
+
function resolveHeaders(provider) {
|
|
2156
|
+
if (!provider) return {};
|
|
2157
|
+
return typeof provider === "function" ? provider() : provider;
|
|
2158
|
+
}
|
|
2159
|
+
function resolveServerHeaders(services, serverName, configHeaders) {
|
|
2160
|
+
if (services) {
|
|
2161
|
+
const authService = services.get(
|
|
2162
|
+
ICliServerAuthService_TOKEN
|
|
2163
|
+
);
|
|
2164
|
+
if (authService) {
|
|
2165
|
+
return authService.getHeaders(serverName, configHeaders);
|
|
2166
|
+
}
|
|
2167
|
+
}
|
|
2168
|
+
return resolveHeaders(configHeaders);
|
|
2169
|
+
}
|
|
2170
|
+
|
|
2171
|
+
// src/lib/models/options.ts
|
|
2059
2172
|
var CliLogLevel = /* @__PURE__ */ ((CliLogLevel2) => {
|
|
2060
2173
|
CliLogLevel2[CliLogLevel2["None"] = 0] = "None";
|
|
2061
2174
|
CliLogLevel2[CliLogLevel2["DEBUG"] = 1] = "DEBUG";
|
|
@@ -2065,6 +2178,12 @@ var CliLogLevel = /* @__PURE__ */ ((CliLogLevel2) => {
|
|
|
2065
2178
|
CliLogLevel2[CliLogLevel2["ERROR"] = 5] = "ERROR";
|
|
2066
2179
|
return CliLogLevel2;
|
|
2067
2180
|
})(CliLogLevel || {});
|
|
2181
|
+
|
|
2182
|
+
// src/lib/models/permissions.ts
|
|
2183
|
+
var DEFAULT_FILE_PERMISSIONS = "rw-r--r--";
|
|
2184
|
+
var DEFAULT_DIR_PERMISSIONS = "rwxr-xr-x";
|
|
2185
|
+
|
|
2186
|
+
// src/lib/models/index.ts
|
|
2068
2187
|
var enums = {
|
|
2069
2188
|
CliForegroundColor,
|
|
2070
2189
|
CliBackgroundColor,
|
|
@@ -2072,18 +2191,115 @@ var enums = {
|
|
|
2072
2191
|
CliLogLevel
|
|
2073
2192
|
};
|
|
2074
2193
|
|
|
2075
|
-
// src/lib/interfaces/
|
|
2076
|
-
var
|
|
2194
|
+
// src/lib/interfaces/command-guards.ts
|
|
2195
|
+
var ICliCommandGuard_TOKEN = createCliToken("cli-command-guard");
|
|
2196
|
+
|
|
2197
|
+
// src/lib/utils/permissions.ts
|
|
2198
|
+
function cliPermissionMatches(granted, required) {
|
|
2199
|
+
const g = granted.trim().toLowerCase().split(":");
|
|
2200
|
+
const r = required.trim().toLowerCase().split(":");
|
|
2201
|
+
for (let i = 0; i < g.length; i++) {
|
|
2202
|
+
if (g[i] === "*" && i === g.length - 1) return true;
|
|
2203
|
+
if (i >= r.length || g[i] !== "*" && g[i] !== r[i]) return false;
|
|
2204
|
+
}
|
|
2205
|
+
return g.length === r.length;
|
|
2206
|
+
}
|
|
2207
|
+
function cliHasPermission(granted, required) {
|
|
2208
|
+
return !!granted?.some((p) => cliPermissionMatches(p, required));
|
|
2209
|
+
}
|
|
2210
|
+
function cliMissingPermissions(granted, required) {
|
|
2211
|
+
return required.filter((r) => !cliHasPermission(granted, r));
|
|
2212
|
+
}
|
|
2213
|
+
function cliMergePermissions(...lists) {
|
|
2214
|
+
const seen = /* @__PURE__ */ new Set();
|
|
2215
|
+
const out = [];
|
|
2216
|
+
for (const list2 of lists) {
|
|
2217
|
+
for (const p of list2 ?? []) {
|
|
2218
|
+
const key = p.trim();
|
|
2219
|
+
if (key && !seen.has(key.toLowerCase())) {
|
|
2220
|
+
seen.add(key.toLowerCase());
|
|
2221
|
+
out.push(key);
|
|
2222
|
+
}
|
|
2223
|
+
}
|
|
2224
|
+
}
|
|
2225
|
+
return out;
|
|
2226
|
+
}
|
|
2227
|
+
var CliServerPermissions = {
|
|
2228
|
+
/** Open a remote shell on a server (`ssh`) */
|
|
2229
|
+
ShellExecute: "shell:execute"
|
|
2230
|
+
};
|
|
2231
|
+
var CliUsersPermissions = {
|
|
2232
|
+
UsersRead: "users:read",
|
|
2233
|
+
UsersCreate: "users:create",
|
|
2234
|
+
UsersUpdate: "users:update",
|
|
2235
|
+
UsersDelete: "users:delete",
|
|
2236
|
+
GroupsRead: "groups:read",
|
|
2237
|
+
GroupsCreate: "groups:create",
|
|
2238
|
+
GroupsUpdate: "groups:update",
|
|
2239
|
+
GroupsDelete: "groups:delete",
|
|
2240
|
+
SessionsRead: "sessions:read",
|
|
2241
|
+
SessionsRevoke: "sessions:revoke",
|
|
2242
|
+
AuditRead: "audit:read",
|
|
2243
|
+
AuditClear: "audit:clear"
|
|
2244
|
+
};
|
|
2077
2245
|
|
|
2078
|
-
// src/lib/interfaces/
|
|
2079
|
-
var
|
|
2246
|
+
// src/lib/interfaces/authorization.ts
|
|
2247
|
+
var CliAccessDeniedError = class _CliAccessDeniedError extends Error {
|
|
2248
|
+
constructor(message = "permission denied") {
|
|
2249
|
+
super(message);
|
|
2250
|
+
this.code = "EACCES";
|
|
2251
|
+
this.name = "CliAccessDeniedError";
|
|
2252
|
+
Object.setPrototypeOf(this, _CliAccessDeniedError.prototype);
|
|
2253
|
+
}
|
|
2254
|
+
};
|
|
2255
|
+
function isCliAccessDeniedError(error) {
|
|
2256
|
+
return error instanceof CliAccessDeniedError || !!error && typeof error === "object" && error.name === "CliAccessDeniedError";
|
|
2257
|
+
}
|
|
2258
|
+
function authorizationService(context) {
|
|
2259
|
+
try {
|
|
2260
|
+
return context.services.get(ICliAuthorizationService_TOKEN);
|
|
2261
|
+
} catch {
|
|
2262
|
+
return void 0;
|
|
2263
|
+
}
|
|
2264
|
+
}
|
|
2265
|
+
function cliAuthorize(context, permission) {
|
|
2266
|
+
const auth = authorizationService(context);
|
|
2267
|
+
return auth ? auth.can(permission) : true;
|
|
2268
|
+
}
|
|
2269
|
+
function cliCanAccess(context, resource, action, bypassPermissions) {
|
|
2270
|
+
const auth = authorizationService(context);
|
|
2271
|
+
return auth ? auth.canAccess(resource, action, bypassPermissions) : true;
|
|
2272
|
+
}
|
|
2273
|
+
function cliEvaluateAccess(principal, resource, action, bypassPermissions = []) {
|
|
2274
|
+
const mode = resource.permissions;
|
|
2275
|
+
const owner = resource.ownership;
|
|
2276
|
+
if (!mode || mode.length < 9 || !owner) return true;
|
|
2277
|
+
if (principal && (cliHasPermission(principal.permissions, "*") || bypassPermissions.some((p) => cliHasPermission(principal.permissions, p)))) {
|
|
2278
|
+
return true;
|
|
2279
|
+
}
|
|
2280
|
+
let offset = 6;
|
|
2281
|
+
if (principal) {
|
|
2282
|
+
if (owner.uid === principal.name || owner.uid === principal.id) offset = 0;
|
|
2283
|
+
else if (principal.groups.some((g) => g.toLowerCase() === owner.gid.toLowerCase())) offset = 3;
|
|
2284
|
+
}
|
|
2285
|
+
const index = offset + (action === "read" ? 0 : action === "write" ? 1 : 2);
|
|
2286
|
+
return mode.charAt(index) !== "-";
|
|
2287
|
+
}
|
|
2080
2288
|
|
|
2081
|
-
// src/lib/interfaces/
|
|
2082
|
-
var
|
|
2289
|
+
// src/lib/interfaces/event-bus.ts
|
|
2290
|
+
var ICliEventBus_TOKEN = createCliToken("cli-event-bus");
|
|
2083
2291
|
|
|
2084
|
-
// src/lib/interfaces/
|
|
2085
|
-
var
|
|
2086
|
-
|
|
2292
|
+
// src/lib/interfaces/http-client.ts
|
|
2293
|
+
var CliHttpError = class _CliHttpError extends Error {
|
|
2294
|
+
constructor(message, status, statusText = "", body) {
|
|
2295
|
+
super(message);
|
|
2296
|
+
this.status = status;
|
|
2297
|
+
this.statusText = statusText;
|
|
2298
|
+
this.body = body;
|
|
2299
|
+
this.name = "CliHttpError";
|
|
2300
|
+
Object.setPrototypeOf(this, _CliHttpError.prototype);
|
|
2301
|
+
}
|
|
2302
|
+
};
|
|
2087
2303
|
|
|
2088
2304
|
// src/lib/constants/index.ts
|
|
2089
2305
|
var DefaultLibraryAuthor = {
|
|
@@ -2099,6 +2315,57 @@ var delay = (ms) => {
|
|
|
2099
2315
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
2100
2316
|
};
|
|
2101
2317
|
|
|
2318
|
+
// src/lib/utils/shell-words.ts
|
|
2319
|
+
function splitShellWords(text) {
|
|
2320
|
+
const words = [];
|
|
2321
|
+
let current = "";
|
|
2322
|
+
let inWord = false;
|
|
2323
|
+
for (let i = 0; i < text.length; i++) {
|
|
2324
|
+
const ch = text[i];
|
|
2325
|
+
if (ch === "\\" && i + 1 < text.length) {
|
|
2326
|
+
current += text[++i];
|
|
2327
|
+
inWord = true;
|
|
2328
|
+
} else if (ch === "'" && text.indexOf("'", i + 1) !== -1) {
|
|
2329
|
+
const end = text.indexOf("'", i + 1);
|
|
2330
|
+
current += text.slice(i + 1, end);
|
|
2331
|
+
inWord = true;
|
|
2332
|
+
i = end;
|
|
2333
|
+
} else if (ch === '"' && closingDoubleQuote(text, i) !== -1) {
|
|
2334
|
+
const end = closingDoubleQuote(text, i);
|
|
2335
|
+
current += unescapeDoubleQuoted(text.slice(i + 1, end));
|
|
2336
|
+
inWord = true;
|
|
2337
|
+
i = end;
|
|
2338
|
+
} else if (/\s/.test(ch)) {
|
|
2339
|
+
if (inWord) words.push(current);
|
|
2340
|
+
current = "";
|
|
2341
|
+
inWord = false;
|
|
2342
|
+
} else {
|
|
2343
|
+
current += ch;
|
|
2344
|
+
inWord = true;
|
|
2345
|
+
}
|
|
2346
|
+
}
|
|
2347
|
+
if (inWord) words.push(current);
|
|
2348
|
+
return words;
|
|
2349
|
+
}
|
|
2350
|
+
function joinShellWords(text) {
|
|
2351
|
+
return splitShellWords(text).join(" ");
|
|
2352
|
+
}
|
|
2353
|
+
function quoteShellWord(value) {
|
|
2354
|
+
if (value !== "" && !/[\s"'\\$`|&;<>(){}*?[\]#~]/.test(value)) return value;
|
|
2355
|
+
if (!value.includes("'")) return `'${value}'`;
|
|
2356
|
+
return `"${value.replace(/(["\\$`])/g, "\\$1")}"`;
|
|
2357
|
+
}
|
|
2358
|
+
function closingDoubleQuote(text, start) {
|
|
2359
|
+
for (let i = start + 1; i < text.length; i++) {
|
|
2360
|
+
if (text[i] === "\\") i++;
|
|
2361
|
+
else if (text[i] === '"') return i;
|
|
2362
|
+
}
|
|
2363
|
+
return -1;
|
|
2364
|
+
}
|
|
2365
|
+
function unescapeDoubleQuoted(text) {
|
|
2366
|
+
return text.replace(/\\(["\\$`])/g, "$1");
|
|
2367
|
+
}
|
|
2368
|
+
|
|
2102
2369
|
// src/lib/utils/object-describer.ts
|
|
2103
2370
|
var ObjectDescriber = class {
|
|
2104
2371
|
static describe(obj, options) {
|
|
@@ -2157,16 +2424,17 @@ var ObjectDescriber = class {
|
|
|
2157
2424
|
argsToCallF.push(command.args[arg]);
|
|
2158
2425
|
}
|
|
2159
2426
|
}
|
|
2160
|
-
|
|
2427
|
+
const value = command.value === void 0 ? void 0 : joinShellWords(command.value);
|
|
2428
|
+
if (supportsDynamicArgs && value) {
|
|
2161
2429
|
const delimiter = command.args["delimiter"] || ",";
|
|
2162
|
-
argsToCallF.push(...
|
|
2430
|
+
argsToCallF.push(...value.split(delimiter));
|
|
2163
2431
|
}
|
|
2164
2432
|
if (debug) {
|
|
2165
2433
|
context.writer.writeln(
|
|
2166
2434
|
"Arguments after processing: " + JSON.stringify(argsToCallF)
|
|
2167
2435
|
);
|
|
2168
2436
|
}
|
|
2169
|
-
const result = supportsDynamicArgs && args.length === 0 ? funcValue(...argsToCallF) : funcValue(
|
|
2437
|
+
const result = supportsDynamicArgs && args.length === 0 ? funcValue(...argsToCallF) : funcValue(value, ...argsToCallF);
|
|
2170
2438
|
context.writer.write(
|
|
2171
2439
|
context.writer.wrapInColor(
|
|
2172
2440
|
"Result: ",
|
|
@@ -2245,6 +2513,19 @@ function getConfigValue(state, category, key, defaultValue) {
|
|
|
2245
2513
|
}
|
|
2246
2514
|
return defaultValue;
|
|
2247
2515
|
}
|
|
2516
|
+
function getPluginConfigValue(context, category, key, defaultValue) {
|
|
2517
|
+
try {
|
|
2518
|
+
const storeManager = context.services.getRequired(
|
|
2519
|
+
"cli-state-store-manager"
|
|
2520
|
+
);
|
|
2521
|
+
if (!storeManager) return defaultValue;
|
|
2522
|
+
const store = storeManager.getStateStore(CLI_CONFIGURE_STORE_NAME);
|
|
2523
|
+
if (!store) return defaultValue;
|
|
2524
|
+
return getConfigValue(store, category, key, defaultValue);
|
|
2525
|
+
} catch {
|
|
2526
|
+
return defaultValue;
|
|
2527
|
+
}
|
|
2528
|
+
}
|
|
2248
2529
|
function resolveConfigurationCategories(registry) {
|
|
2249
2530
|
const categories = /* @__PURE__ */ new Map();
|
|
2250
2531
|
for (const processor of registry.processors) {
|
|
@@ -2266,7 +2547,8 @@ function resolveConfigurationCategories(registry) {
|
|
|
2266
2547
|
|
|
2267
2548
|
// src/lib/utils/terminal-utils.ts
|
|
2268
2549
|
var clearTerminalLine = (terminal, contentLength) => {
|
|
2269
|
-
|
|
2550
|
+
if (contentLength <= 0) return;
|
|
2551
|
+
const lines = Math.ceil(contentLength / terminal.cols);
|
|
2270
2552
|
for (let i = 0; i < lines; i++) {
|
|
2271
2553
|
terminal.write("\x1B[2K");
|
|
2272
2554
|
if (i < lines - 1) {
|
|
@@ -2297,10 +2579,15 @@ function satisfiesVersionRange(installed, range) {
|
|
|
2297
2579
|
return semver.satisfies(coerced, range);
|
|
2298
2580
|
}
|
|
2299
2581
|
|
|
2582
|
+
// src/lib/version.ts
|
|
2583
|
+
var LIBRARY_VERSION = "2.0.0-rc.1";
|
|
2584
|
+
var API_VERSION = 2;
|
|
2585
|
+
|
|
2300
2586
|
// src/lib/utils/server-version-negotiator.ts
|
|
2587
|
+
var VERSIONS_ENDPOINT = "/api/qcli/versions";
|
|
2301
2588
|
var ServerVersionNegotiator = class {
|
|
2302
2589
|
static {
|
|
2303
|
-
this.CLIENT_SUPPORTED_VERSIONS = [
|
|
2590
|
+
this.CLIENT_SUPPORTED_VERSIONS = [API_VERSION];
|
|
2304
2591
|
}
|
|
2305
2592
|
/**
|
|
2306
2593
|
* Given a server's version info, pick the highest mutually compatible version.
|
|
@@ -2317,9 +2604,18 @@ var ServerVersionNegotiator = class {
|
|
|
2317
2604
|
* Returns the negotiated API version and the base path for all subsequent calls,
|
|
2318
2605
|
* or null if the server is unreachable or incompatible.
|
|
2319
2606
|
*/
|
|
2320
|
-
static async discover(baseUrl) {
|
|
2607
|
+
static async discover(baseUrl, headers, options) {
|
|
2608
|
+
let response;
|
|
2609
|
+
try {
|
|
2610
|
+
const resolved = resolveHeaders(headers);
|
|
2611
|
+
response = await fetch(`${baseUrl}${VERSIONS_ENDPOINT}`, {
|
|
2612
|
+
headers: Object.keys(resolved).length > 0 ? resolved : void 0
|
|
2613
|
+
});
|
|
2614
|
+
} catch (e) {
|
|
2615
|
+
if (options?.rethrowNetworkErrors) throw e;
|
|
2616
|
+
return null;
|
|
2617
|
+
}
|
|
2321
2618
|
try {
|
|
2322
|
-
const response = await fetch(`${baseUrl}/api/qcli/versions`);
|
|
2323
2619
|
if (!response.ok) return null;
|
|
2324
2620
|
const info = await response.json();
|
|
2325
2621
|
const version = this.negotiate(info);
|
|
@@ -2334,9 +2630,36 @@ var ServerVersionNegotiator = class {
|
|
|
2334
2630
|
}
|
|
2335
2631
|
};
|
|
2336
2632
|
|
|
2633
|
+
// src/lib/utils/websocket-auth.ts
|
|
2634
|
+
function buildAuthenticatedWebSocketUrl(wsUrl, headers) {
|
|
2635
|
+
const resolved = resolveHeaders(headers);
|
|
2636
|
+
if (Object.keys(resolved).length === 0) {
|
|
2637
|
+
return wsUrl;
|
|
2638
|
+
}
|
|
2639
|
+
const separator = wsUrl.includes("?") ? "&" : "?";
|
|
2640
|
+
const params = Object.entries(resolved).map(
|
|
2641
|
+
([key, value]) => `_header_${encodeURIComponent(key)}=${encodeURIComponent(value)}`
|
|
2642
|
+
).join("&");
|
|
2643
|
+
return `${wsUrl}${separator}${params}`;
|
|
2644
|
+
}
|
|
2645
|
+
async function resolveServerWebSocketUrl(services, serverName, wsUrl, configHeaders) {
|
|
2646
|
+
const authService = services?.get(ICliServerAuthService_TOKEN);
|
|
2647
|
+
const params = await authService?.getWebSocketParams?.(serverName);
|
|
2648
|
+
if (params) {
|
|
2649
|
+
return appendQueryParams(wsUrl, params);
|
|
2650
|
+
}
|
|
2651
|
+
return buildAuthenticatedWebSocketUrl(wsUrl, () => resolveServerHeaders(services, serverName, configHeaders));
|
|
2652
|
+
}
|
|
2653
|
+
function appendQueryParams(url, params) {
|
|
2654
|
+
const entries = Object.entries(params);
|
|
2655
|
+
if (!entries.length) return url;
|
|
2656
|
+
const query = entries.map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`).join("&");
|
|
2657
|
+
return `${url}${url.includes("?") ? "&" : "?"}${query}`;
|
|
2658
|
+
}
|
|
2659
|
+
|
|
2337
2660
|
// src/lib/utils/panel-theme-sync.ts
|
|
2338
2661
|
function hexToRgb(hex) {
|
|
2339
|
-
const m = /^#?([0-9A-Fa-f]{6})
|
|
2662
|
+
const m = /^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/.exec(hex);
|
|
2340
2663
|
if (!m) return null;
|
|
2341
2664
|
const n = parseInt(m[1], 16);
|
|
2342
2665
|
return { r: n >> 16 & 255, g: n >> 8 & 255, b: n & 255 };
|
|
@@ -2354,10 +2677,13 @@ function hexToRgba(hex, alpha) {
|
|
|
2354
2677
|
if (!rgb) return hex;
|
|
2355
2678
|
return `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${alpha})`;
|
|
2356
2679
|
}
|
|
2680
|
+
var DEFAULT_BG = "#111827";
|
|
2681
|
+
var DEFAULT_FG = "#ffffff";
|
|
2682
|
+
var DEFAULT_ACCENT = "#818cf8";
|
|
2357
2683
|
function derivePanelThemeStyles(theme) {
|
|
2358
|
-
const bg = theme.background ||
|
|
2359
|
-
const fg = theme.foreground ||
|
|
2360
|
-
const accent = theme.cyan || theme.blue || theme.magenta ||
|
|
2684
|
+
const bg = theme.background || DEFAULT_BG;
|
|
2685
|
+
const fg = theme.foreground || DEFAULT_FG;
|
|
2686
|
+
const accent = theme.cyan || theme.blue || theme.magenta || DEFAULT_ACCENT;
|
|
2361
2687
|
return {
|
|
2362
2688
|
"--cli-panel-bg": bg,
|
|
2363
2689
|
"--cli-panel-header-bg": shiftColor(bg, 12),
|
|
@@ -2391,9 +2717,233 @@ function savePanelPosition(position) {
|
|
|
2391
2717
|
}
|
|
2392
2718
|
function nextPanelPosition(current) {
|
|
2393
2719
|
const index = POSITION_CYCLE.indexOf(current);
|
|
2720
|
+
if (index === -1) {
|
|
2721
|
+
return POSITION_CYCLE[0];
|
|
2722
|
+
}
|
|
2394
2723
|
return POSITION_CYCLE[(index + 1) % POSITION_CYCLE.length];
|
|
2395
2724
|
}
|
|
2396
2725
|
|
|
2726
|
+
// src/lib/utils/ansi-utils.ts
|
|
2727
|
+
var ANSI_RE = /\x1b\[[0-9;]*m/g;
|
|
2728
|
+
function stripAnsi(text) {
|
|
2729
|
+
return text.replace(ANSI_RE, "");
|
|
2730
|
+
}
|
|
2731
|
+
function visibleLength(text) {
|
|
2732
|
+
const stripped = stripAnsi(text);
|
|
2733
|
+
let width = 0;
|
|
2734
|
+
for (const ch of stripped) {
|
|
2735
|
+
const cp = ch.codePointAt(0);
|
|
2736
|
+
if (cp >= 65024 && cp <= 65039) continue;
|
|
2737
|
+
if (cp === 8205) continue;
|
|
2738
|
+
if (cp >= 768 && cp <= 879) continue;
|
|
2739
|
+
width += isWideCharacter(cp) ? 2 : 1;
|
|
2740
|
+
}
|
|
2741
|
+
return width;
|
|
2742
|
+
}
|
|
2743
|
+
function truncateToWidth(text, width, ellipsis = "\u2026") {
|
|
2744
|
+
if (width < 1) return "";
|
|
2745
|
+
if (visibleLength(text) <= width) return text;
|
|
2746
|
+
const room = Math.max(0, width - visibleLength(ellipsis));
|
|
2747
|
+
let out = "";
|
|
2748
|
+
let used = 0;
|
|
2749
|
+
let i = 0;
|
|
2750
|
+
while (i < text.length) {
|
|
2751
|
+
if (text[i] === "\x1B") {
|
|
2752
|
+
const m = /^\x1b\[[0-9;]*m/.exec(text.slice(i));
|
|
2753
|
+
if (m) {
|
|
2754
|
+
out += m[0];
|
|
2755
|
+
i += m[0].length;
|
|
2756
|
+
continue;
|
|
2757
|
+
}
|
|
2758
|
+
}
|
|
2759
|
+
const ch = String.fromCodePoint(text.codePointAt(i));
|
|
2760
|
+
const w = visibleLength(ch);
|
|
2761
|
+
if (used + w > room) break;
|
|
2762
|
+
out += ch;
|
|
2763
|
+
used += w;
|
|
2764
|
+
i += ch.length;
|
|
2765
|
+
}
|
|
2766
|
+
return `${out}${ellipsis}\x1B[0m`;
|
|
2767
|
+
}
|
|
2768
|
+
function isWideCharacter(cp) {
|
|
2769
|
+
if (cp >= 126976) return true;
|
|
2770
|
+
if (cp >= 9728 && cp <= 10175) return true;
|
|
2771
|
+
if (cp >= 9984 && cp <= 10175) return true;
|
|
2772
|
+
if (cp >= 19968 && cp <= 40959) return true;
|
|
2773
|
+
if (cp >= 63744 && cp <= 64255) return true;
|
|
2774
|
+
if (cp >= 65281 && cp <= 65376) return true;
|
|
2775
|
+
if (cp >= 65504 && cp <= 65510) return true;
|
|
2776
|
+
if (cp >= 11904 && cp <= 12255) return true;
|
|
2777
|
+
if (cp >= 12288 && cp <= 12543) return true;
|
|
2778
|
+
if (cp >= 12800 && cp <= 13055) return true;
|
|
2779
|
+
if (cp >= 13056 && cp <= 13311) return true;
|
|
2780
|
+
if (cp >= 127232 && cp <= 127487) return true;
|
|
2781
|
+
if (cp >= 8960 && cp <= 9215) return true;
|
|
2782
|
+
return false;
|
|
2783
|
+
}
|
|
2784
|
+
|
|
2785
|
+
// src/lib/utils/access-guards.ts
|
|
2786
|
+
var list = (value) => Array.isArray(value) ? value.filter((v) => typeof v === "string" && v.trim()) : [];
|
|
2787
|
+
var authorization = (context) => {
|
|
2788
|
+
try {
|
|
2789
|
+
return context.services.get(ICliAuthorizationService_TOKEN);
|
|
2790
|
+
} catch {
|
|
2791
|
+
return void 0;
|
|
2792
|
+
}
|
|
2793
|
+
};
|
|
2794
|
+
function chain(processor) {
|
|
2795
|
+
const out = [];
|
|
2796
|
+
let current = processor;
|
|
2797
|
+
while (current && out.length < 32 && !out.includes(current)) {
|
|
2798
|
+
out.push(current);
|
|
2799
|
+
current = current.parent;
|
|
2800
|
+
}
|
|
2801
|
+
return out;
|
|
2802
|
+
}
|
|
2803
|
+
var requiredPermissionsOf = (p) => [...new Set(chain(p).flatMap((x) => list(x.metadata?.requiredPermissions)))];
|
|
2804
|
+
var requiredGroupLevels = (p) => chain(p).map((x) => list(x.metadata?.requiredGroups)).filter((g) => g.length > 0);
|
|
2805
|
+
var needsAuth = (p) => chain(p).some((x) => x.metadata?.requireAuth === true) || requiredGroupLevels(p).length > 0 || requiredPermissionsOf(p).length > 0;
|
|
2806
|
+
var cliRequireAuthGuard = {
|
|
2807
|
+
name: "access:require-auth",
|
|
2808
|
+
priority: -100,
|
|
2809
|
+
appliesTo: (processor, _command, context) => needsAuth(processor) && !!authorization(context),
|
|
2810
|
+
canActivate: (_command, processor, context) => authorization(context).getPrincipal() ? true : `${processor.command}: login required`
|
|
2811
|
+
};
|
|
2812
|
+
var cliRequiredGroupsGuard = {
|
|
2813
|
+
name: "access:required-groups",
|
|
2814
|
+
priority: -90,
|
|
2815
|
+
appliesTo: (processor, _command, context) => requiredGroupLevels(processor).length > 0 && !!authorization(context),
|
|
2816
|
+
canActivate: (_command, processor, context) => {
|
|
2817
|
+
const auth = authorization(context);
|
|
2818
|
+
const principal = auth.getPrincipal();
|
|
2819
|
+
if (!principal) return `${processor.command}: login required`;
|
|
2820
|
+
if (auth.can("*")) return true;
|
|
2821
|
+
for (const required of requiredGroupLevels(processor)) {
|
|
2822
|
+
const member = required.some((g) => principal.groups.some((pg) => pg.toLowerCase() === g.toLowerCase()));
|
|
2823
|
+
if (!member) return `${processor.command}: permission denied (requires group: ${required.join(" or ")})`;
|
|
2824
|
+
}
|
|
2825
|
+
return true;
|
|
2826
|
+
}
|
|
2827
|
+
};
|
|
2828
|
+
var cliRequiredPermissionsGuard = {
|
|
2829
|
+
name: "access:required-permissions",
|
|
2830
|
+
priority: -80,
|
|
2831
|
+
appliesTo: (processor, _command, context) => requiredPermissionsOf(processor).length > 0 && !!authorization(context),
|
|
2832
|
+
canActivate: (_command, processor, context) => {
|
|
2833
|
+
const principal = authorization(context).getPrincipal();
|
|
2834
|
+
if (!principal) return `${processor.command}: login required`;
|
|
2835
|
+
const missing = cliMissingPermissions(principal.permissions, requiredPermissionsOf(processor));
|
|
2836
|
+
return missing.length === 0 ? true : `${processor.command}: permission denied (requires ${missing.join(", ")})`;
|
|
2837
|
+
}
|
|
2838
|
+
};
|
|
2839
|
+
var cliAccessMetadataGuards = [
|
|
2840
|
+
cliRequireAuthGuard,
|
|
2841
|
+
cliRequiredGroupsGuard,
|
|
2842
|
+
cliRequiredPermissionsGuard
|
|
2843
|
+
];
|
|
2844
|
+
|
|
2845
|
+
// src/lib/utils/server-target.ts
|
|
2846
|
+
function cliDefaultServer(context) {
|
|
2847
|
+
const servers = context.options?.servers ?? [];
|
|
2848
|
+
const manager = context.services?.get(ICliServerManager_TOKEN);
|
|
2849
|
+
const preferred = manager?.preferredServer?.();
|
|
2850
|
+
return (preferred ? servers.find((s) => s.name === preferred) : void 0) ?? servers[0];
|
|
2851
|
+
}
|
|
2852
|
+
|
|
2853
|
+
// src/lib/utils/help-format.ts
|
|
2854
|
+
function writeColumns(context, rows, formatLeft, formatRight) {
|
|
2855
|
+
const width = Math.max(...rows.map(([left]) => left.length)) + 2;
|
|
2856
|
+
for (const [left, right] of rows) {
|
|
2857
|
+
context.writer.writeln(
|
|
2858
|
+
` ${formatLeft(left.padEnd(width))}${formatRight(right)}`
|
|
2859
|
+
);
|
|
2860
|
+
}
|
|
2861
|
+
}
|
|
2862
|
+
function writeUsage(context, rows) {
|
|
2863
|
+
const { writer, translator } = context;
|
|
2864
|
+
writer.writeln(`\u{1F4CB} ${translator.t("cli.common.usage", "Usage:")}`);
|
|
2865
|
+
writeColumns(
|
|
2866
|
+
context,
|
|
2867
|
+
rows,
|
|
2868
|
+
(cmd) => writer.wrapInColor(cmd, "\x1B[36m" /* Cyan */),
|
|
2869
|
+
(text) => text
|
|
2870
|
+
);
|
|
2871
|
+
}
|
|
2872
|
+
function writeExamples(context, rows) {
|
|
2873
|
+
const { writer, translator } = context;
|
|
2874
|
+
writer.writeln(`\u{1F4DD} ${translator.t("cli.common.examples", "Examples:")}`);
|
|
2875
|
+
writeColumns(
|
|
2876
|
+
context,
|
|
2877
|
+
rows,
|
|
2878
|
+
(cmd) => cmd,
|
|
2879
|
+
(comment) => writer.wrapInColor(`# ${comment}`, "\x1B[32m" /* Green */)
|
|
2880
|
+
);
|
|
2881
|
+
}
|
|
2882
|
+
function writeWrapped(context, text, indent = 0) {
|
|
2883
|
+
const cols = context.terminal?.cols ?? 80;
|
|
2884
|
+
const width = Math.max(20, Math.min(cols - 1, 100) - indent);
|
|
2885
|
+
const pad = " ".repeat(indent);
|
|
2886
|
+
let line = "";
|
|
2887
|
+
for (const word of text.split(/\s+/).filter(Boolean)) {
|
|
2888
|
+
if (line && visibleLength2(line) + 1 + visibleLength2(word) > width) {
|
|
2889
|
+
context.writer.writeln(pad + line);
|
|
2890
|
+
line = word;
|
|
2891
|
+
} else {
|
|
2892
|
+
line = line ? `${line} ${word}` : word;
|
|
2893
|
+
}
|
|
2894
|
+
}
|
|
2895
|
+
if (line) context.writer.writeln(pad + line);
|
|
2896
|
+
}
|
|
2897
|
+
function visibleLength2(text) {
|
|
2898
|
+
return text.replace(/\x1b\[[0-9;]*m/g, "").length;
|
|
2899
|
+
}
|
|
2900
|
+
function writeHint(context, command, action) {
|
|
2901
|
+
const { writer, translator } = context;
|
|
2902
|
+
const text = `\u{1F4A1} ${translator.t("cli.common.use_hint", "Use {command} {action}", {
|
|
2903
|
+
command: writer.wrapInColor(command, "\x1B[36m" /* Cyan */),
|
|
2904
|
+
action
|
|
2905
|
+
})}`;
|
|
2906
|
+
const width = Math.min((context.terminal?.cols ?? 80) - 1, 100) - 3;
|
|
2907
|
+
if (visibleLength2(text) + 1 <= width) {
|
|
2908
|
+
writer.writeInfo(text);
|
|
2909
|
+
return;
|
|
2910
|
+
}
|
|
2911
|
+
const lines = [];
|
|
2912
|
+
let line = "";
|
|
2913
|
+
for (const word of text.split(" ")) {
|
|
2914
|
+
if (line && visibleLength2(line) + 1 + visibleLength2(word) > width) {
|
|
2915
|
+
lines.push(line);
|
|
2916
|
+
line = word;
|
|
2917
|
+
} else {
|
|
2918
|
+
line = line ? `${line} ${word}` : word;
|
|
2919
|
+
}
|
|
2920
|
+
}
|
|
2921
|
+
if (line) lines.push(line);
|
|
2922
|
+
writer.writeInfo(lines[0]);
|
|
2923
|
+
for (const rest of lines.slice(1)) {
|
|
2924
|
+
writer.writeln(` ${rest}`);
|
|
2925
|
+
}
|
|
2926
|
+
}
|
|
2927
|
+
|
|
2928
|
+
// src/lib/utils/raw-argument.ts
|
|
2929
|
+
function unquoteRawArgument(text) {
|
|
2930
|
+
const value = text.trim();
|
|
2931
|
+
if (value.length < 2) return value;
|
|
2932
|
+
const quote = value[0];
|
|
2933
|
+
if (quote === "'") {
|
|
2934
|
+
return value.indexOf("'", 1) === value.length - 1 ? value.slice(1, -1) : value;
|
|
2935
|
+
}
|
|
2936
|
+
if (quote === '"') {
|
|
2937
|
+
for (let i = 1; i < value.length; i++) {
|
|
2938
|
+
if (value[i] === "\\") i++;
|
|
2939
|
+
else if (value[i] === '"') {
|
|
2940
|
+
return i === value.length - 1 ? value.slice(1, -1).replace(/\\(["\\$`])/g, "$1") : value;
|
|
2941
|
+
}
|
|
2942
|
+
}
|
|
2943
|
+
}
|
|
2944
|
+
return value;
|
|
2945
|
+
}
|
|
2946
|
+
|
|
2397
2947
|
// src/lib/utils/index.ts
|
|
2398
2948
|
var getParameterValue = (p, args) => {
|
|
2399
2949
|
if (args[p.name] !== void 0) {
|
|
@@ -2407,18 +2957,46 @@ var formatJson = (json) => {
|
|
|
2407
2957
|
return colorizeJson(identedJson.split("\n").join("\r\n"));
|
|
2408
2958
|
};
|
|
2409
2959
|
var colorizeJson = (jsonString) => {
|
|
2410
|
-
|
|
2960
|
+
const RST = "\x1B[0m";
|
|
2961
|
+
const CYN = "\x1B[36m";
|
|
2962
|
+
const GRN = "\x1B[32m";
|
|
2963
|
+
const YLW = "\x1B[33m";
|
|
2964
|
+
const GRY = "\x1B[90m";
|
|
2965
|
+
const tokenRe = /("(?:[^"\\]|\\.)*"?)(\s*:)?|(\btrue\b|\bfalse\b|\bnull\b)|(-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)|([{}[\],])/g;
|
|
2966
|
+
let result = "";
|
|
2967
|
+
let lastIndex = 0;
|
|
2968
|
+
let m;
|
|
2969
|
+
while ((m = tokenRe.exec(jsonString)) !== null) {
|
|
2970
|
+
if (m.index > lastIndex) {
|
|
2971
|
+
result += jsonString.slice(lastIndex, m.index);
|
|
2972
|
+
}
|
|
2973
|
+
if (m[1] !== void 0) {
|
|
2974
|
+
if (m[2] !== void 0) {
|
|
2975
|
+
result += CYN + m[1] + RST + m[2];
|
|
2976
|
+
} else {
|
|
2977
|
+
result += GRN + m[1] + RST;
|
|
2978
|
+
}
|
|
2979
|
+
} else if (m[3] !== void 0) {
|
|
2980
|
+
result += YLW + m[3] + RST;
|
|
2981
|
+
} else if (m[4] !== void 0) {
|
|
2982
|
+
result += YLW + m[4] + RST;
|
|
2983
|
+
} else if (m[5] !== void 0) {
|
|
2984
|
+
result += GRY + m[5] + RST;
|
|
2985
|
+
}
|
|
2986
|
+
lastIndex = m.index + m[0].length;
|
|
2987
|
+
}
|
|
2988
|
+
if (lastIndex < jsonString.length) {
|
|
2989
|
+
result += jsonString.slice(lastIndex);
|
|
2990
|
+
}
|
|
2991
|
+
return result;
|
|
2411
2992
|
};
|
|
2412
2993
|
var toQueryString = (params) => {
|
|
2413
2994
|
const searchParams = new URLSearchParams();
|
|
2414
|
-
for (const key
|
|
2415
|
-
if (
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
} else if (value !== null && value !== void 0) {
|
|
2420
|
-
searchParams.append(key, value.toString());
|
|
2421
|
-
}
|
|
2995
|
+
for (const [key, value] of Object.entries(params)) {
|
|
2996
|
+
if (Array.isArray(value)) {
|
|
2997
|
+
value.forEach((v) => searchParams.append(key, v.toString()));
|
|
2998
|
+
} else if (value !== null && value !== void 0) {
|
|
2999
|
+
searchParams.append(key, value.toString());
|
|
2422
3000
|
}
|
|
2423
3001
|
}
|
|
2424
3002
|
return searchParams.toString();
|
|
@@ -2455,19 +3033,19 @@ var utils = {
|
|
|
2455
3033
|
ObjectDescriber,
|
|
2456
3034
|
delay,
|
|
2457
3035
|
getConfigValue,
|
|
3036
|
+
getPluginConfigValue,
|
|
2458
3037
|
resolveConfigurationCategories,
|
|
2459
3038
|
CLI_CONFIGURE_STORE_NAME
|
|
2460
3039
|
};
|
|
2461
3040
|
|
|
2462
|
-
// src/lib/version.ts
|
|
2463
|
-
var LIBRARY_VERSION = "2.0.0-beta.8";
|
|
2464
|
-
var API_VERSION = 2;
|
|
2465
|
-
|
|
2466
3041
|
// src/lib/modules/cli-module-registry.ts
|
|
2467
3042
|
var CliModuleRegistry = class {
|
|
2468
3043
|
constructor() {
|
|
2469
3044
|
this.modules = /* @__PURE__ */ new Map();
|
|
2470
3045
|
this.bootHandlers = [];
|
|
3046
|
+
this.unregisterHandlers = [];
|
|
3047
|
+
/** Registrations whose boot handlers are still running. */
|
|
3048
|
+
this.inFlight = /* @__PURE__ */ new Set();
|
|
2471
3049
|
}
|
|
2472
3050
|
/**
|
|
2473
3051
|
* Register a handler that is called whenever a new module is registered.
|
|
@@ -2476,21 +3054,80 @@ var CliModuleRegistry = class {
|
|
|
2476
3054
|
this.bootHandlers.push(handler);
|
|
2477
3055
|
}
|
|
2478
3056
|
/**
|
|
2479
|
-
* Register a module and notify all boot handlers.
|
|
2480
|
-
* Modules
|
|
3057
|
+
* Register a web plugin module and notify all boot handlers.
|
|
3058
|
+
* Modules whose `apiVersion` is below the runtime's `API_VERSION` are
|
|
3059
|
+
* skipped with a warning — this ensures only compatible frontend plugins load.
|
|
2481
3060
|
*/
|
|
2482
|
-
|
|
3061
|
+
register(module) {
|
|
3062
|
+
const registration = this.registerInternal(module);
|
|
3063
|
+
this.inFlight.add(registration);
|
|
3064
|
+
const done = () => this.inFlight.delete(registration);
|
|
3065
|
+
registration.then(done, done);
|
|
3066
|
+
return registration;
|
|
3067
|
+
}
|
|
3068
|
+
/**
|
|
3069
|
+
* Resolve once every registration in progress (including ones started
|
|
3070
|
+
* meanwhile, e.g. a plugin loading another) has finished booting.
|
|
3071
|
+
*/
|
|
3072
|
+
async whenIdle() {
|
|
3073
|
+
while (this.inFlight.size > 0) {
|
|
3074
|
+
await Promise.allSettled([...this.inFlight]);
|
|
3075
|
+
}
|
|
3076
|
+
}
|
|
3077
|
+
async registerInternal(module) {
|
|
2483
3078
|
const modApiVersion = module.apiVersion;
|
|
2484
3079
|
if (typeof modApiVersion !== "number" || modApiVersion < API_VERSION) {
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
|
|
3080
|
+
const msg = `[CLI] Plugin "${module.name}" targets API version ${modApiVersion ?? "unknown"}, but this runtime requires API version ${API_VERSION}. Skipping.`;
|
|
3081
|
+
if (this.onWarn) {
|
|
3082
|
+
this.onWarn(msg);
|
|
3083
|
+
} else {
|
|
3084
|
+
console.warn(msg);
|
|
3085
|
+
}
|
|
2488
3086
|
return;
|
|
2489
3087
|
}
|
|
2490
3088
|
this.modules.set(module.name, module);
|
|
2491
3089
|
for (const handler of this.bootHandlers) {
|
|
2492
|
-
|
|
3090
|
+
try {
|
|
3091
|
+
await handler(module);
|
|
3092
|
+
} catch (e) {
|
|
3093
|
+
const msg = `[CLI] Boot handler failed for module "${module.name}": ${e instanceof Error ? e.message : e}`;
|
|
3094
|
+
if (this.onWarn) {
|
|
3095
|
+
this.onWarn(msg);
|
|
3096
|
+
} else {
|
|
3097
|
+
console.warn(msg);
|
|
3098
|
+
}
|
|
3099
|
+
}
|
|
3100
|
+
}
|
|
3101
|
+
}
|
|
3102
|
+
/**
|
|
3103
|
+
* Register a handler that is called when a module is unregistered,
|
|
3104
|
+
* e.g. so its processors can be removed.
|
|
3105
|
+
*/
|
|
3106
|
+
onModuleUnregister(handler) {
|
|
3107
|
+
this.unregisterHandlers.push(handler);
|
|
3108
|
+
}
|
|
3109
|
+
/**
|
|
3110
|
+
* Unregister a module and notify all unregister handlers. A module
|
|
3111
|
+
* registered again afterwards (e.g. a newer version) boots again.
|
|
3112
|
+
* Returns the removed module, or `undefined` when it was not registered.
|
|
3113
|
+
*/
|
|
3114
|
+
unregister(name) {
|
|
3115
|
+
const module = this.modules.get(name);
|
|
3116
|
+
if (!module) return void 0;
|
|
3117
|
+
this.modules.delete(name);
|
|
3118
|
+
for (const handler of this.unregisterHandlers) {
|
|
3119
|
+
try {
|
|
3120
|
+
handler(module);
|
|
3121
|
+
} catch (e) {
|
|
3122
|
+
const msg = `[CLI] Unregister handler failed for module "${name}": ${e instanceof Error ? e.message : e}`;
|
|
3123
|
+
if (this.onWarn) {
|
|
3124
|
+
this.onWarn(msg);
|
|
3125
|
+
} else {
|
|
3126
|
+
console.warn(msg);
|
|
3127
|
+
}
|
|
3128
|
+
}
|
|
2493
3129
|
}
|
|
3130
|
+
return module;
|
|
2494
3131
|
}
|
|
2495
3132
|
/**
|
|
2496
3133
|
* Get a module by name.
|
|
@@ -2530,8 +3167,7 @@ var initializeBrowserEnvironment = ({
|
|
|
2530
3167
|
...constants,
|
|
2531
3168
|
...utils,
|
|
2532
3169
|
...enums,
|
|
2533
|
-
bootCliModule
|
|
2534
|
-
bootUmdModule
|
|
3170
|
+
bootCliModule
|
|
2535
3171
|
};
|
|
2536
3172
|
Object.defineProperty(window, "ngCore", {
|
|
2537
3173
|
configurable: true,
|
|
@@ -2549,21 +3185,23 @@ var bootCliModule = async (module) => {
|
|
|
2549
3185
|
await window.__cliModuleRegistry.register(module);
|
|
2550
3186
|
}
|
|
2551
3187
|
};
|
|
2552
|
-
var bootUmdModule = async (module) => {
|
|
2553
|
-
await bootCliModule(module);
|
|
2554
|
-
};
|
|
2555
3188
|
|
|
2556
3189
|
// src/lib/types/CancellablePromise.ts
|
|
3190
|
+
var CANCELLATION_ERROR_MESSAGE = "Promise cancelled";
|
|
2557
3191
|
var CancellablePromise = class {
|
|
2558
3192
|
constructor(executor) {
|
|
2559
3193
|
this.executor = executor;
|
|
2560
3194
|
this.hasCancelled = false;
|
|
2561
3195
|
this.abortController = new AbortController();
|
|
2562
3196
|
}
|
|
3197
|
+
/**
|
|
3198
|
+
* Run the executor and return a promise for its result.
|
|
3199
|
+
* If `cancel()` has been called, the promise rejects immediately.
|
|
3200
|
+
*/
|
|
2563
3201
|
execute() {
|
|
2564
3202
|
return new Promise((resolve, reject) => {
|
|
2565
3203
|
this.abortController.signal.onabort = () => {
|
|
2566
|
-
reject(new Error(
|
|
3204
|
+
reject(new Error(CANCELLATION_ERROR_MESSAGE));
|
|
2567
3205
|
};
|
|
2568
3206
|
this.executor(
|
|
2569
3207
|
(value) => {
|
|
@@ -2579,13 +3217,17 @@ var CancellablePromise = class {
|
|
|
2579
3217
|
);
|
|
2580
3218
|
});
|
|
2581
3219
|
}
|
|
3220
|
+
/**
|
|
3221
|
+
* Cancel the promise. The executing promise rejects with
|
|
3222
|
+
* `Error('Promise cancelled')` and subsequent resolve/reject calls are ignored.
|
|
3223
|
+
*/
|
|
2582
3224
|
cancel() {
|
|
2583
3225
|
this.hasCancelled = true;
|
|
2584
3226
|
this.abortController.abort();
|
|
2585
3227
|
}
|
|
2586
3228
|
};
|
|
2587
3229
|
|
|
2588
|
-
// src/lib/themes/
|
|
3230
|
+
// src/lib/themes/default-themes.ts
|
|
2589
3231
|
var DefaultThemes = {
|
|
2590
3232
|
default: {
|
|
2591
3233
|
background: "#070b14",
|
|
@@ -3221,6 +3863,8 @@ var DefaultThemes = {
|
|
|
3221
3863
|
}
|
|
3222
3864
|
};
|
|
3223
3865
|
DefaultThemes.yellow = DefaultThemes.highContrastLight;
|
|
3866
|
+
|
|
3867
|
+
// src/lib/themes/default-theme-infos.ts
|
|
3224
3868
|
var DefaultThemeInfos = {
|
|
3225
3869
|
default: {
|
|
3226
3870
|
theme: DefaultThemes.default,
|
|
@@ -3398,12 +4042,6 @@ var DefaultThemeInfos = {
|
|
|
3398
4042
|
}
|
|
3399
4043
|
};
|
|
3400
4044
|
|
|
3401
|
-
// src/lib/tokens.ts
|
|
3402
|
-
var ICliUserSessionService_TOKEN = "cli-user-session-service";
|
|
3403
|
-
var ICliUsersStoreService_TOKEN = "cli-users-store-service";
|
|
3404
|
-
var ICliGroupsStoreService_TOKEN = "cli-groups-store-service";
|
|
3405
|
-
var ICliAuthService_TOKEN = "cli-auth-service";
|
|
3406
|
-
|
|
3407
4045
|
// src/lib/worker/create-worker-service.ts
|
|
3408
4046
|
function createWorkerService(handlers) {
|
|
3409
4047
|
const abortController = new AbortController();
|
|
@@ -3496,9 +4134,17 @@ var BrowserFileTransferService = class {
|
|
|
3496
4134
|
const filename = path.split("/").pop() || "download";
|
|
3497
4135
|
this.downloadToBrowser(filename, content);
|
|
3498
4136
|
}
|
|
4137
|
+
/**
|
|
4138
|
+
* Not supported in browser — always returns an empty array.
|
|
4139
|
+
* Use `@qodalis/cli-files` for directory listing.
|
|
4140
|
+
*/
|
|
3499
4141
|
async listFiles(_path) {
|
|
3500
4142
|
return [];
|
|
3501
4143
|
}
|
|
4144
|
+
/**
|
|
4145
|
+
* Not supported in browser — always returns `false`.
|
|
4146
|
+
* Use `@qodalis/cli-files` for file existence checks.
|
|
4147
|
+
*/
|
|
3502
4148
|
async exists(_path) {
|
|
3503
4149
|
return false;
|
|
3504
4150
|
}
|
|
@@ -3544,37 +4190,69 @@ var BrowserFileTransferService = class {
|
|
|
3544
4190
|
|
|
3545
4191
|
exports.API_VERSION = API_VERSION;
|
|
3546
4192
|
exports.BrowserFileTransferService = BrowserFileTransferService;
|
|
4193
|
+
exports.CANCELLATION_ERROR_MESSAGE = CANCELLATION_ERROR_MESSAGE;
|
|
3547
4194
|
exports.CLI_CONFIGURE_STORE_NAME = CLI_CONFIGURE_STORE_NAME;
|
|
3548
4195
|
exports.CancellablePromise = CancellablePromise;
|
|
4196
|
+
exports.CliAccessDeniedError = CliAccessDeniedError;
|
|
3549
4197
|
exports.CliBackgroundColor = CliBackgroundColor;
|
|
3550
4198
|
exports.CliForegroundColor = CliForegroundColor;
|
|
4199
|
+
exports.CliHttpError = CliHttpError;
|
|
3551
4200
|
exports.CliIcon = CliIcon;
|
|
3552
4201
|
exports.CliLogLevel = CliLogLevel;
|
|
3553
4202
|
exports.CliModuleRegistry = CliModuleRegistry;
|
|
4203
|
+
exports.CliServerPermissions = CliServerPermissions;
|
|
4204
|
+
exports.CliUsersPermissions = CliUsersPermissions;
|
|
3554
4205
|
exports.DEFAULT_DIR_PERMISSIONS = DEFAULT_DIR_PERMISSIONS;
|
|
3555
4206
|
exports.DEFAULT_FILE_PERMISSIONS = DEFAULT_FILE_PERMISSIONS;
|
|
3556
4207
|
exports.DefaultLibraryAuthor = DefaultLibraryAuthor;
|
|
3557
4208
|
exports.DefaultThemeInfos = DefaultThemeInfos;
|
|
3558
4209
|
exports.DefaultThemes = DefaultThemes;
|
|
4210
|
+
exports.ICliAuditService_TOKEN = ICliAuditService_TOKEN;
|
|
3559
4211
|
exports.ICliAuthService_TOKEN = ICliAuthService_TOKEN;
|
|
4212
|
+
exports.ICliAuthorizationService_TOKEN = ICliAuthorizationService_TOKEN;
|
|
4213
|
+
exports.ICliCommandGuard_TOKEN = ICliCommandGuard_TOKEN;
|
|
3560
4214
|
exports.ICliCompletionProvider_TOKEN = ICliCompletionProvider_TOKEN;
|
|
3561
4215
|
exports.ICliDragDropService_TOKEN = ICliDragDropService_TOKEN;
|
|
4216
|
+
exports.ICliEventBus_TOKEN = ICliEventBus_TOKEN;
|
|
4217
|
+
exports.ICliFilePickerProvider_TOKEN = ICliFilePickerProvider_TOKEN;
|
|
3562
4218
|
exports.ICliFileTransferService_TOKEN = ICliFileTransferService_TOKEN;
|
|
3563
4219
|
exports.ICliGroupsStoreService_TOKEN = ICliGroupsStoreService_TOKEN;
|
|
4220
|
+
exports.ICliHttpClient_TOKEN = ICliHttpClient_TOKEN;
|
|
4221
|
+
exports.ICliKeyValueStore_TOKEN = ICliKeyValueStore_TOKEN;
|
|
4222
|
+
exports.ICliPermissionRegistry_TOKEN = ICliPermissionRegistry_TOKEN;
|
|
3564
4223
|
exports.ICliPermissionService_TOKEN = ICliPermissionService_TOKEN;
|
|
4224
|
+
exports.ICliServerAuthService_TOKEN = ICliServerAuthService_TOKEN;
|
|
4225
|
+
exports.ICliServerAuthTokenProvider_TOKEN = ICliServerAuthTokenProvider_TOKEN;
|
|
4226
|
+
exports.ICliServerManager_TOKEN = ICliServerManager_TOKEN;
|
|
4227
|
+
exports.ICliSessionsService_TOKEN = ICliSessionsService_TOKEN;
|
|
3565
4228
|
exports.ICliTranslationService_TOKEN = ICliTranslationService_TOKEN;
|
|
4229
|
+
exports.ICliUserEventService_TOKEN = ICliUserEventService_TOKEN;
|
|
3566
4230
|
exports.ICliUserSessionService_TOKEN = ICliUserSessionService_TOKEN;
|
|
3567
4231
|
exports.ICliUsersStoreService_TOKEN = ICliUsersStoreService_TOKEN;
|
|
3568
4232
|
exports.LIBRARY_VERSION = LIBRARY_VERSION;
|
|
3569
4233
|
exports.ObjectDescriber = ObjectDescriber;
|
|
3570
4234
|
exports.ServerVersionNegotiator = ServerVersionNegotiator;
|
|
4235
|
+
exports.appendQueryParams = appendQueryParams;
|
|
3571
4236
|
exports.bootCliModule = bootCliModule;
|
|
3572
|
-
exports.
|
|
4237
|
+
exports.buildAuthenticatedWebSocketUrl = buildAuthenticatedWebSocketUrl;
|
|
3573
4238
|
exports.clearTerminalLine = clearTerminalLine;
|
|
4239
|
+
exports.cliAccessMetadataGuards = cliAccessMetadataGuards;
|
|
4240
|
+
exports.cliAuthorize = cliAuthorize;
|
|
4241
|
+
exports.cliCanAccess = cliCanAccess;
|
|
4242
|
+
exports.cliDefaultServer = cliDefaultServer;
|
|
4243
|
+
exports.cliEvaluateAccess = cliEvaluateAccess;
|
|
4244
|
+
exports.cliHasPermission = cliHasPermission;
|
|
4245
|
+
exports.cliMergePermissions = cliMergePermissions;
|
|
4246
|
+
exports.cliMissingPermissions = cliMissingPermissions;
|
|
4247
|
+
exports.cliPermissionMatches = cliPermissionMatches;
|
|
4248
|
+
exports.cliRequireAuthGuard = cliRequireAuthGuard;
|
|
4249
|
+
exports.cliRequiredGroupsGuard = cliRequiredGroupsGuard;
|
|
4250
|
+
exports.cliRequiredPermissionsGuard = cliRequiredPermissionsGuard;
|
|
3574
4251
|
exports.colorFirstWord = colorFirstWord;
|
|
3575
4252
|
exports.colorizeJson = colorizeJson;
|
|
3576
4253
|
exports.compareVersions = compareVersions;
|
|
3577
4254
|
exports.constants = constants;
|
|
4255
|
+
exports.createCliToken = createCliToken;
|
|
3578
4256
|
exports.createWorkerService = createWorkerService;
|
|
3579
4257
|
exports.delay = delay;
|
|
3580
4258
|
exports.derivePanelThemeStyles = derivePanelThemeStyles;
|
|
@@ -3582,16 +4260,32 @@ exports.enums = enums;
|
|
|
3582
4260
|
exports.formatJson = formatJson;
|
|
3583
4261
|
exports.getConfigValue = getConfigValue;
|
|
3584
4262
|
exports.getParameterValue = getParameterValue;
|
|
4263
|
+
exports.getPluginConfigValue = getPluginConfigValue;
|
|
3585
4264
|
exports.getRightOfWord = getRightOfWord;
|
|
3586
4265
|
exports.highlightTextWithBg = highlightTextWithBg;
|
|
3587
4266
|
exports.initializeBrowserEnvironment = initializeBrowserEnvironment;
|
|
4267
|
+
exports.isCliAccessDeniedError = isCliAccessDeniedError;
|
|
4268
|
+
exports.joinShellWords = joinShellWords;
|
|
3588
4269
|
exports.loadPanelPosition = loadPanelPosition;
|
|
3589
4270
|
exports.nextPanelPosition = nextPanelPosition;
|
|
4271
|
+
exports.quoteShellWord = quoteShellWord;
|
|
3590
4272
|
exports.resolveConfigurationCategories = resolveConfigurationCategories;
|
|
4273
|
+
exports.resolveHeaders = resolveHeaders;
|
|
4274
|
+
exports.resolveServerHeaders = resolveServerHeaders;
|
|
4275
|
+
exports.resolveServerWebSocketUrl = resolveServerWebSocketUrl;
|
|
3591
4276
|
exports.satisfiesMinVersion = satisfiesMinVersion;
|
|
3592
4277
|
exports.satisfiesVersionRange = satisfiesVersionRange;
|
|
3593
4278
|
exports.savePanelPosition = savePanelPosition;
|
|
4279
|
+
exports.splitShellWords = splitShellWords;
|
|
4280
|
+
exports.stripAnsi = stripAnsi;
|
|
3594
4281
|
exports.toQueryString = toQueryString;
|
|
4282
|
+
exports.truncateToWidth = truncateToWidth;
|
|
4283
|
+
exports.unquoteRawArgument = unquoteRawArgument;
|
|
3595
4284
|
exports.utils = utils;
|
|
4285
|
+
exports.visibleLength = visibleLength;
|
|
4286
|
+
exports.writeExamples = writeExamples;
|
|
4287
|
+
exports.writeHint = writeHint;
|
|
4288
|
+
exports.writeUsage = writeUsage;
|
|
4289
|
+
exports.writeWrapped = writeWrapped;
|
|
3596
4290
|
//# sourceMappingURL=public-api.js.map
|
|
3597
4291
|
//# sourceMappingURL=public-api.js.map
|