@qodalis/cli-lang-ro 2.0.0-beta.17 → 2.0.0-beta.19

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.
@@ -8,7 +8,11 @@ var langRo = (() => {
8
8
  var __getProtoOf = Object.getPrototypeOf;
9
9
  var __hasOwnProp = Object.prototype.hasOwnProperty;
10
10
  var __commonJS = (cb, mod) => function __require() {
11
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
11
+ try {
12
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
13
+ } catch (e) {
14
+ throw mod = 0, e;
15
+ }
12
16
  };
13
17
  var __copyProps = (to, from, except, desc) => {
14
18
  if (from && typeof from === "object" || typeof from === "function") {
@@ -27,7 +31,7 @@ var langRo = (() => {
27
31
  mod
28
32
  ));
29
33
  var require_constants = __commonJS({
30
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/constants.js"(exports$1, module) {
34
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/constants.js"(exports, module) {
31
35
  var SEMVER_SPEC_VERSION = "2.0.0";
32
36
  var MAX_LENGTH = 256;
33
37
  var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */
@@ -56,26 +60,26 @@ var langRo = (() => {
56
60
  }
57
61
  });
58
62
  var require_debug = __commonJS({
59
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/debug.js"(exports$1, module) {
63
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/debug.js"(exports, module) {
60
64
  var debug = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => {
61
65
  };
62
66
  module.exports = debug;
63
67
  }
64
68
  });
65
69
  var require_re = __commonJS({
66
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/re.js"(exports$1, module) {
70
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/re.js"(exports, module) {
67
71
  var {
68
72
  MAX_SAFE_COMPONENT_LENGTH,
69
73
  MAX_SAFE_BUILD_LENGTH,
70
74
  MAX_LENGTH
71
75
  } = require_constants();
72
76
  var debug = require_debug();
73
- exports$1 = module.exports = {};
74
- var re = exports$1.re = [];
75
- var safeRe = exports$1.safeRe = [];
76
- var src = exports$1.src = [];
77
- var safeSrc = exports$1.safeSrc = [];
78
- var t = exports$1.t = {};
77
+ exports = module.exports = {};
78
+ var re = exports.re = [];
79
+ var safeRe = exports.safeRe = [];
80
+ var src = exports.src = [];
81
+ var safeSrc = exports.safeSrc = [];
82
+ var t = exports.t = {};
79
83
  var R = 0;
80
84
  var LETTERDASHNUMBER = "[a-zA-Z0-9-]";
81
85
  var safeRegexReplacements = [
@@ -128,18 +132,18 @@ var langRo = (() => {
128
132
  createToken("COERCERTLFULL", src[t.COERCEFULL], true);
129
133
  createToken("LONETILDE", "(?:~>?)");
130
134
  createToken("TILDETRIM", `(\\s*)${src[t.LONETILDE]}\\s+`, true);
131
- exports$1.tildeTrimReplace = "$1~";
135
+ exports.tildeTrimReplace = "$1~";
132
136
  createToken("TILDE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`);
133
137
  createToken("TILDELOOSE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`);
134
138
  createToken("LONECARET", "(?:\\^)");
135
139
  createToken("CARETTRIM", `(\\s*)${src[t.LONECARET]}\\s+`, true);
136
- exports$1.caretTrimReplace = "$1^";
140
+ exports.caretTrimReplace = "$1^";
137
141
  createToken("CARET", `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`);
138
142
  createToken("CARETLOOSE", `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`);
139
143
  createToken("COMPARATORLOOSE", `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`);
140
144
  createToken("COMPARATOR", `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`);
141
145
  createToken("COMPARATORTRIM", `(\\s*)${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true);
142
- exports$1.comparatorTrimReplace = "$1$2$3";
146
+ exports.comparatorTrimReplace = "$1$2$3";
143
147
  createToken("HYPHENRANGE", `^\\s*(${src[t.XRANGEPLAIN]})\\s+-\\s+(${src[t.XRANGEPLAIN]})\\s*$`);
144
148
  createToken("HYPHENRANGELOOSE", `^\\s*(${src[t.XRANGEPLAINLOOSE]})\\s+-\\s+(${src[t.XRANGEPLAINLOOSE]})\\s*$`);
145
149
  createToken("STAR", "(<|>)?=?\\s*\\*");
@@ -148,7 +152,7 @@ var langRo = (() => {
148
152
  }
149
153
  });
150
154
  var require_parse_options = __commonJS({
151
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/parse-options.js"(exports$1, module) {
155
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/parse-options.js"(exports, module) {
152
156
  var looseOption = Object.freeze({ loose: true });
153
157
  var emptyOpts = Object.freeze({});
154
158
  var parseOptions = (options) => {
@@ -164,7 +168,7 @@ var langRo = (() => {
164
168
  }
165
169
  });
166
170
  var require_identifiers = __commonJS({
167
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/identifiers.js"(exports$1, module) {
171
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/identifiers.js"(exports, module) {
168
172
  var numeric = /^[0-9]+$/;
169
173
  var compareIdentifiers = (a, b) => {
170
174
  if (typeof a === "number" && typeof b === "number") {
@@ -186,12 +190,24 @@ var langRo = (() => {
186
190
  }
187
191
  });
188
192
  var require_semver = __commonJS({
189
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/semver.js"(exports$1, module) {
193
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/semver.js"(exports, module) {
190
194
  var debug = require_debug();
191
195
  var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants();
192
196
  var { safeRe: re, t } = require_re();
193
197
  var parseOptions = require_parse_options();
194
198
  var { compareIdentifiers } = require_identifiers();
199
+ var isPrereleaseIdentifier = (prerelease, identifier) => {
200
+ const identifiers = identifier.split(".");
201
+ if (identifiers.length > prerelease.length) {
202
+ return false;
203
+ }
204
+ for (let i = 0; i < identifiers.length; i++) {
205
+ if (compareIdentifiers(prerelease[i], identifiers[i]) !== 0) {
206
+ return false;
207
+ }
208
+ }
209
+ return true;
210
+ };
195
211
  var SemVer = class _SemVer {
196
212
  constructor(version, options) {
197
213
  options = parseOptions(options);
@@ -438,8 +454,9 @@ var langRo = (() => {
438
454
  if (identifierBase === false) {
439
455
  prerelease = [identifier];
440
456
  }
441
- if (compareIdentifiers(this.prerelease[0], identifier) === 0) {
442
- if (isNaN(this.prerelease[1])) {
457
+ if (isPrereleaseIdentifier(this.prerelease, identifier)) {
458
+ const prereleaseBase = this.prerelease[identifier.split(".").length];
459
+ if (isNaN(prereleaseBase)) {
443
460
  this.prerelease = prerelease;
444
461
  }
445
462
  } else {
@@ -462,7 +479,7 @@ var langRo = (() => {
462
479
  }
463
480
  });
464
481
  var require_parse = __commonJS({
465
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/parse.js"(exports$1, module) {
482
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/parse.js"(exports, module) {
466
483
  var SemVer = require_semver();
467
484
  var parse = (version, options, throwErrors = false) => {
468
485
  if (version instanceof SemVer) {
@@ -481,7 +498,7 @@ var langRo = (() => {
481
498
  }
482
499
  });
483
500
  var require_valid = __commonJS({
484
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/valid.js"(exports$1, module) {
501
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/valid.js"(exports, module) {
485
502
  var parse = require_parse();
486
503
  var valid2 = (version, options) => {
487
504
  const v = parse(version, options);
@@ -491,7 +508,7 @@ var langRo = (() => {
491
508
  }
492
509
  });
493
510
  var require_clean = __commonJS({
494
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/clean.js"(exports$1, module) {
511
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/clean.js"(exports, module) {
495
512
  var parse = require_parse();
496
513
  var clean = (version, options) => {
497
514
  const s = parse(version.trim().replace(/^[=v]+/, ""), options);
@@ -501,7 +518,7 @@ var langRo = (() => {
501
518
  }
502
519
  });
503
520
  var require_inc = __commonJS({
504
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/inc.js"(exports$1, module) {
521
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/inc.js"(exports, module) {
505
522
  var SemVer = require_semver();
506
523
  var inc = (version, release, options, identifier, identifierBase) => {
507
524
  if (typeof options === "string") {
@@ -522,7 +539,7 @@ var langRo = (() => {
522
539
  }
523
540
  });
524
541
  var require_diff = __commonJS({
525
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/diff.js"(exports$1, module) {
542
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/diff.js"(exports, module) {
526
543
  var parse = require_parse();
527
544
  var diff = (version1, version2) => {
528
545
  const v1 = parse(version1, null, true);
@@ -563,28 +580,28 @@ var langRo = (() => {
563
580
  }
564
581
  });
565
582
  var require_major = __commonJS({
566
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/major.js"(exports$1, module) {
583
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/major.js"(exports, module) {
567
584
  var SemVer = require_semver();
568
585
  var major = (a, loose) => new SemVer(a, loose).major;
569
586
  module.exports = major;
570
587
  }
571
588
  });
572
589
  var require_minor = __commonJS({
573
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/minor.js"(exports$1, module) {
590
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/minor.js"(exports, module) {
574
591
  var SemVer = require_semver();
575
592
  var minor = (a, loose) => new SemVer(a, loose).minor;
576
593
  module.exports = minor;
577
594
  }
578
595
  });
579
596
  var require_patch = __commonJS({
580
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/patch.js"(exports$1, module) {
597
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/patch.js"(exports, module) {
581
598
  var SemVer = require_semver();
582
599
  var patch = (a, loose) => new SemVer(a, loose).patch;
583
600
  module.exports = patch;
584
601
  }
585
602
  });
586
603
  var require_prerelease = __commonJS({
587
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/prerelease.js"(exports$1, module) {
604
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/prerelease.js"(exports, module) {
588
605
  var parse = require_parse();
589
606
  var prerelease = (version, options) => {
590
607
  const parsed = parse(version, options);
@@ -594,28 +611,28 @@ var langRo = (() => {
594
611
  }
595
612
  });
596
613
  var require_compare = __commonJS({
597
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare.js"(exports$1, module) {
614
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare.js"(exports, module) {
598
615
  var SemVer = require_semver();
599
616
  var compare2 = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose));
600
617
  module.exports = compare2;
601
618
  }
602
619
  });
603
620
  var require_rcompare = __commonJS({
604
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/rcompare.js"(exports$1, module) {
621
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/rcompare.js"(exports, module) {
605
622
  var compare2 = require_compare();
606
623
  var rcompare = (a, b, loose) => compare2(b, a, loose);
607
624
  module.exports = rcompare;
608
625
  }
609
626
  });
610
627
  var require_compare_loose = __commonJS({
611
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare-loose.js"(exports$1, module) {
628
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare-loose.js"(exports, module) {
612
629
  var compare2 = require_compare();
613
630
  var compareLoose = (a, b) => compare2(a, b, true);
614
631
  module.exports = compareLoose;
615
632
  }
616
633
  });
617
634
  var require_compare_build = __commonJS({
618
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/compare-build.js"(exports$1, module) {
635
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare-build.js"(exports, module) {
619
636
  var SemVer = require_semver();
620
637
  var compareBuild = (a, b, loose) => {
621
638
  const versionA = new SemVer(a, loose);
@@ -626,63 +643,63 @@ var langRo = (() => {
626
643
  }
627
644
  });
628
645
  var require_sort = __commonJS({
629
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/sort.js"(exports$1, module) {
646
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/sort.js"(exports, module) {
630
647
  var compareBuild = require_compare_build();
631
648
  var sort = (list2, loose) => list2.sort((a, b) => compareBuild(a, b, loose));
632
649
  module.exports = sort;
633
650
  }
634
651
  });
635
652
  var require_rsort = __commonJS({
636
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/rsort.js"(exports$1, module) {
653
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/rsort.js"(exports, module) {
637
654
  var compareBuild = require_compare_build();
638
655
  var rsort = (list2, loose) => list2.sort((a, b) => compareBuild(b, a, loose));
639
656
  module.exports = rsort;
640
657
  }
641
658
  });
642
659
  var require_gt = __commonJS({
643
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/gt.js"(exports$1, module) {
660
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/gt.js"(exports, module) {
644
661
  var compare2 = require_compare();
645
662
  var gt = (a, b, loose) => compare2(a, b, loose) > 0;
646
663
  module.exports = gt;
647
664
  }
648
665
  });
649
666
  var require_lt = __commonJS({
650
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/lt.js"(exports$1, module) {
667
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/lt.js"(exports, module) {
651
668
  var compare2 = require_compare();
652
669
  var lt = (a, b, loose) => compare2(a, b, loose) < 0;
653
670
  module.exports = lt;
654
671
  }
655
672
  });
656
673
  var require_eq = __commonJS({
657
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/eq.js"(exports$1, module) {
674
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/eq.js"(exports, module) {
658
675
  var compare2 = require_compare();
659
676
  var eq = (a, b, loose) => compare2(a, b, loose) === 0;
660
677
  module.exports = eq;
661
678
  }
662
679
  });
663
680
  var require_neq = __commonJS({
664
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/neq.js"(exports$1, module) {
681
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/neq.js"(exports, module) {
665
682
  var compare2 = require_compare();
666
683
  var neq = (a, b, loose) => compare2(a, b, loose) !== 0;
667
684
  module.exports = neq;
668
685
  }
669
686
  });
670
687
  var require_gte = __commonJS({
671
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/gte.js"(exports$1, module) {
688
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/gte.js"(exports, module) {
672
689
  var compare2 = require_compare();
673
690
  var gte2 = (a, b, loose) => compare2(a, b, loose) >= 0;
674
691
  module.exports = gte2;
675
692
  }
676
693
  });
677
694
  var require_lte = __commonJS({
678
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/lte.js"(exports$1, module) {
695
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/lte.js"(exports, module) {
679
696
  var compare2 = require_compare();
680
697
  var lte = (a, b, loose) => compare2(a, b, loose) <= 0;
681
698
  module.exports = lte;
682
699
  }
683
700
  });
684
701
  var require_cmp = __commonJS({
685
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/cmp.js"(exports$1, module) {
702
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/cmp.js"(exports, module) {
686
703
  var eq = require_eq();
687
704
  var neq = require_neq();
688
705
  var gt = require_gt();
@@ -729,7 +746,7 @@ var langRo = (() => {
729
746
  }
730
747
  });
731
748
  var require_coerce = __commonJS({
732
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/coerce.js"(exports$1, module) {
749
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/coerce.js"(exports, module) {
733
750
  var SemVer = require_semver();
734
751
  var parse = require_parse();
735
752
  var { safeRe: re, t } = require_re();
@@ -771,8 +788,46 @@ var langRo = (() => {
771
788
  module.exports = coerce2;
772
789
  }
773
790
  });
791
+ var require_truncate = __commonJS({
792
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/truncate.js"(exports, module) {
793
+ var parse = require_parse();
794
+ var constants2 = require_constants();
795
+ var SemVer = require_semver();
796
+ var truncate = (version, truncation, options) => {
797
+ if (!constants2.RELEASE_TYPES.includes(truncation)) {
798
+ return null;
799
+ }
800
+ const clonedVersion = cloneInputVersion(version, options);
801
+ return clonedVersion && doTruncation(clonedVersion, truncation);
802
+ };
803
+ var cloneInputVersion = (version, options) => {
804
+ const versionStringToParse = version instanceof SemVer ? version.version : version;
805
+ return parse(versionStringToParse, options);
806
+ };
807
+ var doTruncation = (version, truncation) => {
808
+ if (isPrerelease(truncation)) {
809
+ return version.version;
810
+ }
811
+ version.prerelease = [];
812
+ switch (truncation) {
813
+ case "major":
814
+ version.minor = 0;
815
+ version.patch = 0;
816
+ break;
817
+ case "minor":
818
+ version.patch = 0;
819
+ break;
820
+ }
821
+ return version.format();
822
+ };
823
+ var isPrerelease = (type) => {
824
+ return type.startsWith("pre");
825
+ };
826
+ module.exports = truncate;
827
+ }
828
+ });
774
829
  var require_lrucache = __commonJS({
775
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/internal/lrucache.js"(exports$1, module) {
830
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/lrucache.js"(exports, module) {
776
831
  var LRUCache = class {
777
832
  constructor() {
778
833
  this.max = 1e3;
@@ -807,7 +862,7 @@ var langRo = (() => {
807
862
  }
808
863
  });
809
864
  var require_range = __commonJS({
810
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/range.js"(exports$1, module) {
865
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/range.js"(exports, module) {
811
866
  var SPACE_CHARACTERS = /\s+/g;
812
867
  var Range = class _Range {
813
868
  constructor(range, options) {
@@ -874,6 +929,7 @@ var langRo = (() => {
874
929
  return this.range;
875
930
  }
876
931
  parseRange(range) {
932
+ range = range.replace(BUILDSTRIPRE, "");
877
933
  const memoOpts = (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | (this.options.loose && FLAG_LOOSE);
878
934
  const memoKey = memoOpts + ":" + range;
879
935
  const cached = cache.get(memoKey);
@@ -956,12 +1012,14 @@ var langRo = (() => {
956
1012
  var SemVer = require_semver();
957
1013
  var {
958
1014
  safeRe: re,
1015
+ src,
959
1016
  t,
960
1017
  comparatorTrimReplace,
961
1018
  tildeTrimReplace,
962
1019
  caretTrimReplace
963
1020
  } = require_re();
964
1021
  var { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require_constants();
1022
+ var BUILDSTRIPRE = new RegExp(src[t.BUILD], "g");
965
1023
  var isNullSet = (c) => c.value === "<0.0.0-0";
966
1024
  var isAny = (c) => c.value === "";
967
1025
  var isSatisfiable = (comparators, options) => {
@@ -990,20 +1048,22 @@ var langRo = (() => {
990
1048
  return comp;
991
1049
  };
992
1050
  var isX = (id) => !id || id.toLowerCase() === "x" || id === "*";
1051
+ var invalidXRangeOrder = (M, m, p) => isX(M) && !isX(m) || isX(m) && p && !isX(p);
993
1052
  var replaceTildes = (comp, options) => {
994
1053
  return comp.trim().split(/\s+/).map((c) => replaceTilde(c, options)).join(" ");
995
1054
  };
996
1055
  var replaceTilde = (comp, options) => {
997
1056
  const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE];
1057
+ const z = options.includePrerelease ? "-0" : "";
998
1058
  return comp.replace(r, (_, M, m, p, pr) => {
999
1059
  debug("tilde", comp, _, M, m, p, pr);
1000
1060
  let ret;
1001
1061
  if (isX(M)) {
1002
1062
  ret = "";
1003
1063
  } else if (isX(m)) {
1004
- ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;
1064
+ ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`;
1005
1065
  } else if (isX(p)) {
1006
- ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`;
1066
+ ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`;
1007
1067
  } else if (pr) {
1008
1068
  debug("replaceTilde pr", pr);
1009
1069
  ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;
@@ -1049,9 +1109,9 @@ var langRo = (() => {
1049
1109
  debug("no pr");
1050
1110
  if (M === "0") {
1051
1111
  if (m === "0") {
1052
- ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`;
1112
+ ret = `>=${M}.${m}.${p} <${M}.${m}.${+p + 1}-0`;
1053
1113
  } else {
1054
- ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`;
1114
+ ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`;
1055
1115
  }
1056
1116
  } else {
1057
1117
  ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`;
@@ -1070,6 +1130,9 @@ var langRo = (() => {
1070
1130
  const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE];
1071
1131
  return comp.replace(r, (ret, gtlt, M, m, p, pr) => {
1072
1132
  debug("xRange", comp, ret, gtlt, M, m, p, pr);
1133
+ if (invalidXRangeOrder(M, m, p)) {
1134
+ return comp;
1135
+ }
1073
1136
  const xM = isX(M);
1074
1137
  const xm = xM || isX(m);
1075
1138
  const xp = xm || isX(p);
@@ -1181,7 +1244,7 @@ var langRo = (() => {
1181
1244
  }
1182
1245
  });
1183
1246
  var require_comparator = __commonJS({
1184
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/classes/comparator.js"(exports$1, module) {
1247
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/comparator.js"(exports, module) {
1185
1248
  var ANY = /* @__PURE__ */ Symbol("SemVer ANY");
1186
1249
  var Comparator = class _Comparator {
1187
1250
  static get ANY() {
@@ -1291,7 +1354,7 @@ var langRo = (() => {
1291
1354
  }
1292
1355
  });
1293
1356
  var require_satisfies = __commonJS({
1294
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/functions/satisfies.js"(exports$1, module) {
1357
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/satisfies.js"(exports, module) {
1295
1358
  var Range = require_range();
1296
1359
  var satisfies2 = (version, range, options) => {
1297
1360
  try {
@@ -1305,14 +1368,14 @@ var langRo = (() => {
1305
1368
  }
1306
1369
  });
1307
1370
  var require_to_comparators = __commonJS({
1308
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/to-comparators.js"(exports$1, module) {
1371
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/to-comparators.js"(exports, module) {
1309
1372
  var Range = require_range();
1310
1373
  var toComparators = (range, options) => new Range(range, options).set.map((comp) => comp.map((c) => c.value).join(" ").trim().split(" "));
1311
1374
  module.exports = toComparators;
1312
1375
  }
1313
1376
  });
1314
1377
  var require_max_satisfying = __commonJS({
1315
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/max-satisfying.js"(exports$1, module) {
1378
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/max-satisfying.js"(exports, module) {
1316
1379
  var SemVer = require_semver();
1317
1380
  var Range = require_range();
1318
1381
  var maxSatisfying = (versions, range, options) => {
@@ -1338,7 +1401,7 @@ var langRo = (() => {
1338
1401
  }
1339
1402
  });
1340
1403
  var require_min_satisfying = __commonJS({
1341
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/min-satisfying.js"(exports$1, module) {
1404
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/min-satisfying.js"(exports, module) {
1342
1405
  var SemVer = require_semver();
1343
1406
  var Range = require_range();
1344
1407
  var minSatisfying = (versions, range, options) => {
@@ -1364,7 +1427,7 @@ var langRo = (() => {
1364
1427
  }
1365
1428
  });
1366
1429
  var require_min_version = __commonJS({
1367
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/min-version.js"(exports$1, module) {
1430
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/min-version.js"(exports, module) {
1368
1431
  var SemVer = require_semver();
1369
1432
  var Range = require_range();
1370
1433
  var gt = require_gt();
@@ -1420,7 +1483,7 @@ var langRo = (() => {
1420
1483
  }
1421
1484
  });
1422
1485
  var require_valid2 = __commonJS({
1423
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/valid.js"(exports$1, module) {
1486
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/valid.js"(exports, module) {
1424
1487
  var Range = require_range();
1425
1488
  var validRange = (range, options) => {
1426
1489
  try {
@@ -1433,7 +1496,7 @@ var langRo = (() => {
1433
1496
  }
1434
1497
  });
1435
1498
  var require_outside = __commonJS({
1436
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/outside.js"(exports$1, module) {
1499
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/outside.js"(exports, module) {
1437
1500
  var SemVer = require_semver();
1438
1501
  var Comparator = require_comparator();
1439
1502
  var { ANY } = Comparator;
@@ -1499,21 +1562,21 @@ var langRo = (() => {
1499
1562
  }
1500
1563
  });
1501
1564
  var require_gtr = __commonJS({
1502
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/gtr.js"(exports$1, module) {
1565
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/gtr.js"(exports, module) {
1503
1566
  var outside = require_outside();
1504
1567
  var gtr = (version, range, options) => outside(version, range, ">", options);
1505
1568
  module.exports = gtr;
1506
1569
  }
1507
1570
  });
1508
1571
  var require_ltr = __commonJS({
1509
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/ltr.js"(exports$1, module) {
1572
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/ltr.js"(exports, module) {
1510
1573
  var outside = require_outside();
1511
1574
  var ltr = (version, range, options) => outside(version, range, "<", options);
1512
1575
  module.exports = ltr;
1513
1576
  }
1514
1577
  });
1515
1578
  var require_intersects = __commonJS({
1516
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/intersects.js"(exports$1, module) {
1579
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/intersects.js"(exports, module) {
1517
1580
  var Range = require_range();
1518
1581
  var intersects = (r1, r2, options) => {
1519
1582
  r1 = new Range(r1, options);
@@ -1524,7 +1587,7 @@ var langRo = (() => {
1524
1587
  }
1525
1588
  });
1526
1589
  var require_simplify = __commonJS({
1527
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/simplify.js"(exports$1, module) {
1590
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/simplify.js"(exports, module) {
1528
1591
  var satisfies2 = require_satisfies();
1529
1592
  var compare2 = require_compare();
1530
1593
  module.exports = (versions, range, options) => {
@@ -1571,7 +1634,7 @@ var langRo = (() => {
1571
1634
  }
1572
1635
  });
1573
1636
  var require_subset = __commonJS({
1574
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/ranges/subset.js"(exports$1, module) {
1637
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/subset.js"(exports, module) {
1575
1638
  var Range = require_range();
1576
1639
  var Comparator = require_comparator();
1577
1640
  var { ANY } = Comparator;
@@ -1678,7 +1741,7 @@ var langRo = (() => {
1678
1741
  if (higher === c && higher !== gt) {
1679
1742
  return false;
1680
1743
  }
1681
- } else if (gt.operator === ">=" && !satisfies2(gt.semver, String(c), options)) {
1744
+ } else if (gt.operator === ">=" && !c.test(gt.semver)) {
1682
1745
  return false;
1683
1746
  }
1684
1747
  }
@@ -1693,7 +1756,7 @@ var langRo = (() => {
1693
1756
  if (lower === c && lower !== lt) {
1694
1757
  return false;
1695
1758
  }
1696
- } else if (lt.operator === "<=" && !satisfies2(lt.semver, String(c), options)) {
1759
+ } else if (lt.operator === "<=" && !c.test(lt.semver)) {
1697
1760
  return false;
1698
1761
  }
1699
1762
  }
@@ -1730,7 +1793,7 @@ var langRo = (() => {
1730
1793
  }
1731
1794
  });
1732
1795
  var require_semver2 = __commonJS({
1733
- "../../node_modules/.pnpm/semver@7.7.4/node_modules/semver/index.js"(exports$1, module) {
1796
+ "../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/index.js"(exports, module) {
1734
1797
  var internalRe = require_re();
1735
1798
  var constants2 = require_constants();
1736
1799
  var SemVer = require_semver();
@@ -1758,6 +1821,7 @@ var langRo = (() => {
1758
1821
  var lte = require_lte();
1759
1822
  var cmp = require_cmp();
1760
1823
  var coerce2 = require_coerce();
1824
+ var truncate = require_truncate();
1761
1825
  var Comparator = require_comparator();
1762
1826
  var Range = require_range();
1763
1827
  var satisfies2 = require_satisfies();
@@ -1796,6 +1860,7 @@ var langRo = (() => {
1796
1860
  lte,
1797
1861
  cmp,
1798
1862
  coerce: coerce2,
1863
+ truncate,
1799
1864
  Comparator,
1800
1865
  Range,
1801
1866
  satisfies: satisfies2,
@@ -1821,11 +1886,35 @@ var langRo = (() => {
1821
1886
  };
1822
1887
  }
1823
1888
  });
1824
- var ICliTranslationService_TOKEN = "cli-translation-service";
1889
+ function createCliToken(name) {
1890
+ return name;
1891
+ }
1892
+ var ICliUserSessionService_TOKEN = createCliToken("cli-user-session-service");
1893
+ var ICliUsersStoreService_TOKEN = createCliToken("cli-users-store-service");
1894
+ var ICliGroupsStoreService_TOKEN = createCliToken("cli-groups-store-service");
1895
+ var ICliAuthService_TOKEN = createCliToken("cli-auth-service");
1896
+ var ICliCompletionProvider_TOKEN = createCliToken("cli-completion-provider");
1897
+ var ICliDragDropService_TOKEN = createCliToken("cli-drag-drop-service");
1898
+ var ICliFileTransferService_TOKEN = createCliToken("cli-file-transfer-service");
1899
+ var ICliTranslationService_TOKEN = createCliToken("cli-translation-service");
1900
+ var ICliPermissionService_TOKEN = createCliToken("cli-permission-service");
1901
+ var ICliFilePickerProvider_TOKEN = createCliToken("cli-file-picker-provider");
1902
+ var ICliHttpClient_TOKEN = createCliToken("cli-http-client");
1903
+ var ICliUserEventService_TOKEN = createCliToken("cli-user-event-service");
1904
+ var ICliAuditService_TOKEN = createCliToken("cli-audit-service");
1905
+ var ICliAuthorizationService_TOKEN = createCliToken("cli-authorization-service");
1906
+ var ICliPermissionRegistry_TOKEN = createCliToken("cli-permission-registry");
1907
+ var ICliSessionsService_TOKEN = createCliToken("cli-sessions-service");
1908
+ var ICliKeyValueStore_TOKEN = createCliToken("cli-key-value-store");
1909
+ var ICliServerAuthTokenProvider_TOKEN = createCliToken("cli-server-auth-token-provider");
1910
+ var ICliServerAuthService_TOKEN = createCliToken("cli-server-auth-service");
1911
+ var ICliServerManager_TOKEN = createCliToken("cli-server-manager");
1825
1912
  function resolveHeaders(provider) {
1826
1913
  if (!provider) return {};
1827
1914
  return typeof provider === "function" ? provider() : provider;
1828
1915
  }
1916
+ var ICliCommandGuard_TOKEN = createCliToken("cli-command-guard");
1917
+ var ICliEventBus_TOKEN = createCliToken("cli-event-bus");
1829
1918
  var semver = __toESM(require_semver2());
1830
1919
  var API_VERSION = 2;
1831
1920
  var VERSIONS_ENDPOINT = "/api/qcli/versions";
@@ -1848,12 +1937,18 @@ var langRo = (() => {
1848
1937
  * Returns the negotiated API version and the base path for all subsequent calls,
1849
1938
  * or null if the server is unreachable or incompatible.
1850
1939
  */
1851
- static async discover(baseUrl, headers) {
1940
+ static async discover(baseUrl, headers, options) {
1941
+ let response;
1852
1942
  try {
1853
1943
  const resolved = resolveHeaders(headers);
1854
- const response = await fetch(`${baseUrl}${VERSIONS_ENDPOINT}`, {
1944
+ response = await fetch(`${baseUrl}${VERSIONS_ENDPOINT}`, {
1855
1945
  headers: Object.keys(resolved).length > 0 ? resolved : void 0
1856
1946
  });
1947
+ } catch (e) {
1948
+ if (options?.rethrowNetworkErrors) throw e;
1949
+ return null;
1950
+ }
1951
+ try {
1857
1952
  if (!response.ok) return null;
1858
1953
  const info = await response.json();
1859
1954
  const version = this.negotiate(info);
@@ -2688,6 +2783,7 @@ var langRo = (() => {
2688
2783
  var roTranslations = {
2689
2784
  "cli.common.usage": "Utilizare:",
2690
2785
  "cli.common.examples": "Exemple:",
2786
+ "cli.common.use_hint": "Folosi\u021Bi {command} {action}",
2691
2787
  "cli.help.description": "Afi\u0219eaz\u0103 ajutorul pentru o comand\u0103",
2692
2788
  "cli.help.long_description": "Afi\u0219eaz\u0103 informa\u021Bii de ajutor pentru comenzi",
2693
2789
  "cli.help.shortcuts": "Scurt\u0103turi",
@@ -2700,6 +2796,9 @@ var langRo = (() => {
2700
2796
  "cli.help.subcommands": "Subcomenzi",
2701
2797
  "cli.help.options": "Op\u021Biuni",
2702
2798
  "cli.help.global_options": "Op\u021Biuni globale",
2799
+ "cli.help.global_version": "Afi\u0219eaz\u0103 versiunea comenzii",
2800
+ "cli.help.global_help": "Afi\u0219eaz\u0103 ajutorul comenzii",
2801
+ "cli.help.global_context": "Seteaz\u0103 comanda drept context activ",
2703
2802
  "cli.help.requires_server": "Necesit\u0103 un server conectat",
2704
2803
  "cli.help.aliases": "Aliasuri:",
2705
2804
  "cli.help.required": "(obligatoriu)",
@@ -2733,9 +2832,17 @@ var langRo = (() => {
2733
2832
  "cli.configure.all_reset": "Toat\u0103 configura\u021Bia a fost resetat\u0103 la valorile implicite",
2734
2833
  "cli.configure.invalid_number": "Num\u0103r invalid: {value}",
2735
2834
  "cli.configure.invalid_options": "Valoare invalid\u0103. Op\u021Biuni valide: {options}",
2835
+ "cli.configure.invalid_boolean": 'Valoare boolean\u0103 nevalid\u0103: "{value}". Folosi\u021Bi true sau false.',
2736
2836
  "cli.echo.description": "Afi\u0219eaz\u0103 textul specificat",
2737
2837
  "cli.echo.long_description": "Afi\u0219eaz\u0103 textul specificat \xEEn terminal",
2738
2838
  "cli.echo.piping_note": "Suport\u0103 ie\u0219ire text \u0219i obiecte JSON prin conducte",
2839
+ "cli.echo.help.print_text_terminal_add": "Afi\u0219eaz\u0103 text \xEEn terminal. Ad\u0103uga\u021Bi > file pentru a-l salva \xEEntr-un fi\u0219ier (\xEEnlocuindu-l) sau >> file pentru a-l ad\u0103uga la sf\xE2r\u0219it.",
2840
+ "cli.echo.help.print_text": "Afi\u0219eaz\u0103 text",
2841
+ "cli.echo.help.write_text_file": "Scrie text \xEEntr-un fi\u0219ier",
2842
+ "cli.echo.help.append_text_file": "Adaug\u0103 text la un fi\u0219ier",
2843
+ "cli.echo.help.print_greeting": "Afi\u0219eaz\u0103 un salut",
2844
+ "cli.echo.help.create_replace_notes_txt": "Creeaz\u0103 sau \xEEnlocuie\u0219te notes.txt",
2845
+ "cli.echo.help.add_line": "Adaug\u0103 o linie \xEEn el",
2739
2846
  "cli.clear.description": "Cur\u0103\u021B\u0103 terminalul",
2740
2847
  "cli.clear.long_description": "\u0218terge tot con\u021Binutul ecranului terminalului",
2741
2848
  "cli.clear.shortcut": "Scurt\u0103tur\u0103:",
@@ -2745,6 +2852,7 @@ var langRo = (() => {
2745
2852
  "cli.uname.cli_versions": "Versiunile nucleului \u0219i bibliotecilor CLI",
2746
2853
  "cli.uname.browser_info": "Numele browserului, versiunea, user agent, limba \u0219i platforma",
2747
2854
  "cli.uname.os": "Sistem de operare",
2855
+ "cli.uname.description": "Afi\u0219eaz\u0103 informa\u021Bii detaliate despre sistem \u0219i browser",
2748
2856
  "cli.hash.description": "Genereaz\u0103 rezumate hash din text",
2749
2857
  "cli.hash.long_description": "Genereaz\u0103 rezumate hash criptografice folosind Web Crypto API",
2750
2858
  "cli.cal.description": "Afi\u0219eaz\u0103 un calendar",
@@ -2755,6 +2863,7 @@ var langRo = (() => {
2755
2863
  "cli.time.description": "Afi\u0219eaz\u0103 ora local\u0103 curent\u0103 \u0219i UTC",
2756
2864
  "cli.time.long_description": "Afi\u0219eaz\u0103 ora local\u0103 curent\u0103 \u0219i UTC",
2757
2865
  "cli.time.show_current": "Afi\u0219eaz\u0103 ora local\u0103 curent\u0103 \u0219i UTC",
2866
+ "cli.time.now.description": "Afi\u0219eaz\u0103 ora curent\u0103",
2758
2867
  "cli.uptime.description": "Afi\u0219eaz\u0103 timpul de func\u021Bionare al sesiunii",
2759
2868
  "cli.uptime.long_description": "Afi\u0219eaz\u0103 c\xE2t timp a fost activ\u0103 sesiunea curent\u0103 a terminalului",
2760
2869
  "cli.convert.description": "Conversie \xEEntre unit\u0103\u021Bi (lungime, greutate, temperatur\u0103, date)",
@@ -2773,6 +2882,9 @@ var langRo = (() => {
2773
2882
  "cli.lorem.gen_words": "Genereaz\u0103 cuvinte",
2774
2883
  "cli.lorem.gen_sentences": "Genereaz\u0103 propozi\u021Bii",
2775
2884
  "cli.lorem.gen_paragraphs": "Genereaz\u0103 paragrafe",
2885
+ "cli.lorem.words.description": "Genereaz\u0103 un num\u0103r de cuvinte",
2886
+ "cli.lorem.sentences.description": "Genereaz\u0103 un num\u0103r de propozi\u021Bii",
2887
+ "cli.lorem.paragraphs.description": "Genereaz\u0103 un num\u0103r de paragrafe",
2776
2888
  "cli.alias.description": "Gestionarea aliasurilor de comenzi",
2777
2889
  "cli.alias.long_description": "Crearea de aliasuri rapide pentru comenzile utilizate frecvent",
2778
2890
  "cli.alias.create_new": "Creeaz\u0103 un alias nou",
@@ -2792,6 +2904,9 @@ var langRo = (() => {
2792
2904
  "cli.history.clear": "\u0218terge tot istoricul",
2793
2905
  "cli.history.arrow_hint": "Folosi\u021Bi tastele s\u0103ge\u021Bi {keys} pentru a naviga \xEEn istoric",
2794
2906
  "cli.history.prefix_hint": "Tasta\u021Bi un prefix \u0219i ap\u0103sa\u021Bi {key} pentru a c\u0103uta \xEEn istoric dup\u0103 prefix",
2907
+ "cli.history.description": "Afi\u0219eaz\u0103 istoricul comenzilor sesiunii curente",
2908
+ "cli.history.clear.description": "\u0218terge istoricul comenzilor",
2909
+ "cli.history.search.description": "Caut\u0103 un model \xEEn istoricul comenzilor",
2795
2910
  "cli.theme.description": "Interac\u021Biune cu tema",
2796
2911
  "cli.theme.long_description": "Personalizeaz\u0103 aspectul terminalului cu teme \u0219i culori",
2797
2912
  "cli.hex.description": "Codificare/decodificare hex \u0219i conversie de baz\u0103 numeric\u0103",
@@ -2800,6 +2915,10 @@ var langRo = (() => {
2800
2915
  "cli.hex.hex_to_text": "Hexazecimal \xEEn text",
2801
2916
  "cli.hex.base_conversion": "Conversie de baz\u0103",
2802
2917
  "cli.feedback.long_description": "Raporta\u021Bi erori, solicita\u021Bi func\u021Bionalit\u0103\u021Bi sau sugera\u021Bi comenzi noi \u2014 interactiv sau inline.",
2918
+ "cli.feedback.report-bug.description": "Raporteaz\u0103 o eroare pe GitHub",
2919
+ "cli.feedback.request-feature.description": "Solicit\u0103 o func\u021Bionalitate nou\u0103 pe GitHub",
2920
+ "cli.feedback.request-command.description": "Solicit\u0103 o comand\u0103 nou\u0103 pe GitHub",
2921
+ "cli.feedback.description": "Permite utilizatorilor s\u0103 raporteze erori sau s\u0103 solicite func\u021Bionalit\u0103\u021Bi",
2803
2922
  "cli.jwt.description": "Decodific\u0103 \u0219i inspecteaz\u0103 tokenuri JWT",
2804
2923
  "cli.jwt.long_description": "Decodific\u0103 \u0219i inspecteaz\u0103 JSON Web Token (JWT)",
2805
2924
  "cli.jwt.decode_display": "Decodific\u0103 \u0219i afi\u0219eaz\u0103 con\u021Binutul JWT",
@@ -2814,12 +2933,20 @@ var langRo = (() => {
2814
2933
  "cli.services.restart_desc": "Reporne\u0219te un serviciu",
2815
2934
  "cli.services.logs_desc": "Vizualizeaz\u0103 jurnalele serviciului",
2816
2935
  "cli.services.info_desc": "Detalii serviciu",
2936
+ "cli.services.list.description": "Afi\u0219eaz\u0103 toate serviciile \xEEn fundal \xEEnregistrate",
2937
+ "cli.services.start.description": "Porne\u0219te un serviciu \xEEn fundal",
2938
+ "cli.services.stop.description": "Opre\u0219te un serviciu \xEEn fundal care ruleaz\u0103",
2939
+ "cli.services.restart.description": "Reporne\u0219te un serviciu \xEEn fundal",
2940
+ "cli.services.logs.description": "Afi\u0219eaz\u0103 jurnalele unui serviciu \xEEn fundal",
2941
+ "cli.services.info.description": "Afi\u0219eaz\u0103 informa\u021Bii detaliate despre un serviciu",
2817
2942
  "cli.yes.description": "Repet\u0103 continuu un \u0219ir de caractere",
2818
2943
  "cli.yes.long_description": "Repet\u0103 continuu un \u0219ir de caractere",
2819
2944
  "cli.clipboard.description": "Copiaz\u0103 sau lipe\u0219te din clipboard",
2820
2945
  "cli.clipboard.long_description": "Copiaz\u0103 text \xEEn clipboard-ul sistemului sau lipe\u0219te text din acesta",
2821
2946
  "cli.clipboard.copy_desc": "Copiaz\u0103 text \xEEn clipboard",
2822
2947
  "cli.clipboard.paste_desc": "Lipe\u0219te din clipboard",
2948
+ "cli.clipboard.copy.description": "Copiaz\u0103 text \xEEn clipboard",
2949
+ "cli.clipboard.paste.description": "Lipe\u0219te text din clipboard",
2823
2950
  "cli.hotkeys.description": "Afi\u0219eaz\u0103 informa\u021Bii despre tastele rapide",
2824
2951
  "cli.hotkeys.long_description": "Afi\u0219eaz\u0103 toate scurt\u0103turile de tastatur\u0103 \u0219i tastele rapide disponibile",
2825
2952
  "cli.export.description": "Seteaz\u0103 variabile de mediu",
@@ -2827,8 +2954,14 @@ var langRo = (() => {
2827
2954
  "cli.export.show_all": "Afi\u0219eaz\u0103 toate variabilele",
2828
2955
  "cli.export.set_var": "Seteaz\u0103 o variabil\u0103",
2829
2956
  "cli.export.set_spaces": "Seteaz\u0103 cu spa\u021Bii",
2957
+ "cli.export.set_many": "Seteaz\u0103 mai multe deodat\u0103",
2958
+ "cli.export.set_global": "Seteaz\u0103 pentru to\u021Bi utilizatorii",
2959
+ "cli.export.set_session": "Doar acest terminal, nesalvat",
2960
+ "cli.export.scopes": "Folosi\u021Bi variabilele ca $VAR sau ${VAR}. O valoare setat\u0103 \xEEn acest terminal are prioritate fa\u021B\u0103 de cea salvat\u0103 de dvs., care are prioritate fa\u021B\u0103 de una partajat\u0103. env arat\u0103 de unde provine fiecare.",
2830
2961
  "cli.unset.description": "Elimin\u0103 variabile de mediu",
2831
2962
  "cli.unset.long_description": "Elimin\u0103 o variabil\u0103 de mediu",
2963
+ "cli.unset.own": "Elimin\u0103 pentru acest terminal \u0219i pentru dvs. (o valoare partajat\u0103 este ascuns\u0103 pentru dvs.)",
2964
+ "cli.unset.global": "Elimin\u0103 valoarea partajat\u0103",
2832
2965
  "cli.env.description": "Afi\u0219eaz\u0103 variabile de mediu",
2833
2966
  "cli.env.long_description": "Afi\u0219eaz\u0103 variabile de mediu",
2834
2967
  "cli.env.show_all": "Afi\u0219eaz\u0103 toate variabilele",
@@ -2843,6 +2976,9 @@ var langRo = (() => {
2843
2976
  "cli.json.format_desc": "Formateaz\u0103 JSON cu indentare",
2844
2977
  "cli.json.minify_desc": "Elimin\u0103 spa\u021Biile albe",
2845
2978
  "cli.json.validate_desc": "Verific\u0103 dac\u0103 este JSON valid",
2979
+ "cli.json.format.description": "Formateaz\u0103 JSON cu indentare",
2980
+ "cli.json.minify.description": "Minimizeaz\u0103 JSON elimin\xE2nd spa\u021Biile",
2981
+ "cli.json.validate.description": "Verific\u0103 dac\u0103 un \u0219ir este JSON valid",
2846
2982
  "cli.base64.description": "Codific\u0103 sau decodific\u0103 \u0219iruri Base64",
2847
2983
  "cli.base64.long_description": "Codificare \u0219i decodificare \u0219iruri Base64",
2848
2984
  "cli.base64.utf8_note": "Suport\u0103 codificarea textului UTF-8",
@@ -2853,6 +2989,9 @@ var langRo = (() => {
2853
2989
  "cli.timestamp.current": "Marcaj temporal Unix curent",
2854
2990
  "cli.timestamp.to_date": "Marcaj temporal \xEEn dat\u0103",
2855
2991
  "cli.timestamp.from_date": "Dat\u0103 \xEEn marcaj temporal",
2992
+ "cli.timestamp.now.description": "Afi\u0219eaz\u0103 timestamp-ul Unix curent",
2993
+ "cli.timestamp.to-date.description": "Converte\u0219te un timestamp Unix \xEEntr-o dat\u0103",
2994
+ "cli.timestamp.from-date.description": "Converte\u0219te un \u0219ir de dat\u0103 \xEEntr-un timestamp Unix",
2856
2995
  "cli.screen.description": "Afi\u0219eaz\u0103 informa\u021Bii despre ecran \u0219i terminal",
2857
2996
  "cli.screen.long_description": "Afi\u0219eaz\u0103 dimensiunile ecranului, viewport-ului \u0219i terminalului",
2858
2997
  "cli.screen.shows": "Afi\u0219eaz\u0103: rezolu\u021Bie, ad\xE2ncime culoare, raport pixeli, dimensiune fereastr\u0103, dimensiune terminal",
@@ -2863,6 +3002,11 @@ var langRo = (() => {
2863
3002
  "cli.random.uuid_desc": "UUID v4 aleatoriu",
2864
3003
  "cli.random.coin_desc": "Arunc\u0103 o moned\u0103",
2865
3004
  "cli.random.dice_desc": "Arunc\u0103 un zar",
3005
+ "cli.random.number.description": "Genereaz\u0103 un num\u0103r aleatoriu",
3006
+ "cli.random.string.description": "Genereaz\u0103 un \u0219ir aleatoriu",
3007
+ "cli.random.uuid.description": "Genereaz\u0103 un UUID v4 aleatoriu",
3008
+ "cli.random.coin.description": "Arunc\u0103 o moned\u0103",
3009
+ "cli.random.dice.description": "Arunc\u0103 un zar",
2866
3010
  "cli.ping.description": "Trimite ping de tip ICMP c\u0103tre o gazd\u0103",
2867
3011
  "cli.ping.long_description": "Trimite ping HTTP de tip ICMP c\u0103tre o gazd\u0103 \u0219i afi\u0219eaz\u0103 statistici",
2868
3012
  "cli.ping.ctrl_c": "Ap\u0103sa\u021Bi Ctrl+C pentru a opri \u0219i afi\u0219a statisticile.",
@@ -2878,7 +3022,619 @@ var langRo = (() => {
2878
3022
  "cli.debug.processors": "Toate procesoarele \xEEnregistrate",
2879
3023
  "cli.debug.modules": "Toate modulele \xEEnc\u0103rcate",
2880
3024
  "cli.debug.state": "Inspecteaz\u0103 depozitele de stare",
2881
- "cli.packages.description": "Gestionarea pachetelor CLI"
3025
+ "cli.debug.processors.description": "Afi\u0219eaz\u0103 toate procesoarele de comenzi \xEEnregistrate",
3026
+ "cli.debug.modules.description": "Afi\u0219eaz\u0103 toate modulele CLI \xEEnc\u0103rcate",
3027
+ "cli.debug.state.description": "Inspecteaz\u0103 toate depozitele de stare \u0219i valorile lor",
3028
+ "cli.debug.services.description": "Afi\u0219eaz\u0103 toate serviciile \xEEnregistrate \xEEn containerul DI",
3029
+ "cli.debug.environment.description": "Afi\u0219eaz\u0103 informa\u021Bii despre browser, terminal \u0219i framework",
3030
+ "cli.debug.history.description": "Afi\u0219eaz\u0103 statistici despre istoricul comenzilor",
3031
+ "cli.debug.health.description": "Verific\u0103 starea sistemului: stocare, conectivitate, starea procesoarelor",
3032
+ "cli.debug.export.description": "Export\u0103 toate informa\u021Biile de depanare ca JSON",
3033
+ "cli.debug.servers.description": "Afi\u0219eaz\u0103 serverele configurate \u0219i starea conexiunii lor",
3034
+ "cli.packages.description": "Gestionarea pachetelor CLI",
3035
+ // ── Servers and events ───────────────────────────────────────────
3036
+ "cli.server.description": "Gestionarea conexiunilor la serverele CLI la distan\u021B\u0103",
3037
+ "cli.server.list.description": "Afi\u0219eaz\u0103 serverele cu starea, versiunea \u0219i comenzile lor",
3038
+ "cli.server.status.description": "Verific\u0103 dac\u0103 serverele r\u0103spund (toate, sau unul \xEEn detaliu)",
3039
+ "cli.server.commands.description": "Afi\u0219eaz\u0103 comenzile fiec\u0103rui server",
3040
+ "cli.server.reconnect.description": "Reconectare la servere \u0219i re\xEEnc\u0103rcarea comenzilor",
3041
+ "cli.server.default.description": "Afi\u0219eaz\u0103 sau seteaz\u0103 serverul care ruleaz\u0103 comenzile comune",
3042
+ "cli.server.jobs.description": "Gestionarea joburilor din fundal de pe serverele conectate",
3043
+ "cli.server.jobs.list.description": "Afi\u0219eaz\u0103 toate joburile de pe serverele conectate",
3044
+ "cli.server.jobs.info.description": "Afi\u0219eaz\u0103 informa\u021Bii detaliate despre un job",
3045
+ "cli.server.jobs.trigger.description": "Declan\u0219eaz\u0103 execu\u021Bia imediat\u0103 a unui job",
3046
+ "cli.server.jobs.pause.description": "Pune \xEEn pauz\u0103 execu\u021Bia programat\u0103 a unui job",
3047
+ "cli.server.jobs.resume.description": "Reia un job aflat \xEEn pauz\u0103",
3048
+ "cli.server.jobs.stop.description": "Opre\u0219te un job \u0219i anuleaz\u0103 execu\u021Bia curent\u0103, dac\u0103 ruleaz\u0103",
3049
+ "cli.server.jobs.cancel.description": "Anuleaz\u0103 execu\u021Bia curent\u0103 a unui job",
3050
+ "cli.server.jobs.history.description": "Afi\u0219eaz\u0103 istoricul execu\u021Biilor unui job",
3051
+ "cli.server.jobs.logs.description": "Afi\u0219eaz\u0103 jurnalele ultimei sau ale unei anumite execu\u021Bii",
3052
+ "cli.server.jobs.edit.description": "Editeaz\u0103 interactiv set\u0103rile unui job",
3053
+ "cli.server.jobs.watch.description": "Vizualizare \xEEn direct a evenimentelor joburilor prin WebSocket",
3054
+ "cli.server.help.see_everything_you_can": "pentru a vedea tot ce pute\u021Bi face",
3055
+ "cli.server.help.connect_terminal_remote_cli": "Conecteaz\u0103 terminalul la servere CLI la distan\u021B\u0103 (.NET, Node.js, Python) \u0219i ruleaz\u0103 comenzile lor.",
3056
+ "cli.server.help.by_name_or_prefix": "Comenzile fiec\u0103rui server sunt disponibile dup\u0103 nume ({byName}) \u0219i cu serverul ca prefix ({prefixed}). C\xE2nd mai multe servere au aceea\u0219i comand\u0103, o ruleaz\u0103 serverul implicit; dac\u0103 nu exist\u0103 unul, vi se cere s\u0103 alege\u021Bi serverul. O comand\u0103 local\u0103 cu acela\u0219i nume are prioritate: folosi\u021Bi numele cu prefix. Un server care cade este re\xEEncercat la fiecare 30 de secunde, iar comenzile lui revin odat\u0103 cu el.",
3057
+ "cli.server.help.overview_servers": "Prezentare general\u0103 a serverelor",
3058
+ "cli.server.help.servers_status_version_commands": "Servere cu stare, versiune \u0219i comenzi",
3059
+ "cli.server.help.check_servers_reachable_all": "Verific\u0103 dac\u0103 serverele sunt accesibile (toate, sau unul \xEEn detaliu)",
3060
+ "cli.server.help.commands_each_server_provides": "Comenzile oferite de fiecare server",
3061
+ "cli.server.help.connect_again_unreachable_servers": "Reconectare (serverele inaccesibile, sau unul)",
3062
+ "cli.server.help.show_set_server_shared": "Afi\u0219eaz\u0103 sau seteaz\u0103 serverul pentru comenzile comune",
3063
+ "cli.server.help.open_shell_server_run": "Deschide un shell pe un server sau ruleaz\u0103 o singur\u0103 comand\u0103",
3064
+ "cli.server.help.ping_node_show_details": "Ping c\u0103tre node \u0219i afi\u0219area detaliilor sale",
3065
+ "cli.server.help.what_node_can_do": "Ce poate face node",
3066
+ "cli.server.help.run_echo_node_explicitly": "Ruleaz\u0103 echo explicit pe node",
3067
+ "cli.server.help.shared_commands_run_node": "Comenzile comune ruleaz\u0103 pe node",
3068
+ "cli.server.help.retry_every_unreachable_server": "Re\xEEncearc\u0103 toate serverele inaccesibile",
3069
+ "cli.server.list.help.list_configured_servers_connection": "Afi\u0219eaz\u0103 serverele configurate: starea conexiunii, URL, versiunea serverului \u0219i a API-ului, num\u0103rul de comenzi \u0219i accesul la shell.",
3070
+ "cli.server.list.help.see_why_server_unreachable": "pentru a vedea de ce un server este inaccesibil, server reconnect pentru a re\xEEncerca",
3071
+ "cli.server.status.help.details_server": "pentru detalii despre un server",
3072
+ "cli.server.status.help.try_again": "pentru a re\xEEncerca",
3073
+ "cli.server.status.help.load_commands": "pentru a-i \xEEnc\u0103rca comenzile",
3074
+ "cli.server.status.help.see_commands": "pentru a-i vedea comenzile",
3075
+ "cli.server.status.help.ping_servers_without_name": "Face ping serverelor. F\u0103r\u0103 nume, fiecare server este verificat deodat\u0103, cu timpul de r\u0103spuns; cu un nume, serverul respectiv este afi\u0219at \xEEn detaliu (versiuni, SO, shell, streaming), cu indicii c\xE2nd nu poate fi contactat.",
3076
+ "cli.server.status.help.check_every_server": "Verific\u0103 toate serverele",
3077
+ "cli.server.status.help.details_one_server": "Detaliile unui server",
3078
+ "cli.server.status.help.same_server_status": "La fel ca server status",
3079
+ "cli.server.status.help.details_node": "Detaliile lui node",
3080
+ "cli.server.commands.help.shared_marker": "pe mai multe servere: ruleaz\u0103 pe serverul implicit (server use <name>) sau \xEEntreab\u0103",
3081
+ "cli.server.commands.help.local_marker": "o comand\u0103 local\u0103 are acela\u0219i nume: rula\u021Bi-o cu prefixul serverului",
3082
+ "cli.server.commands.help.intro": "Afi\u0219eaz\u0103 comenzile oferite de un server (toate serverele, sau unul). Rula\u021Bi-le dup\u0103 nume sau cu serverul ca prefix: {example} ruleaz\u0103 \xEEntotdeauna pe node, chiar \u0219i c\xE2nd un alt server sau o comand\u0103 local\u0103 se nume\u0219te echo.",
3083
+ "cli.server.commands.help.commands_every_server": "Comenzile tuturor serverelor",
3084
+ "cli.server.commands.help.commands_one_server": "Comenzile unui server",
3085
+ "cli.server.commands.help.what_node_can_do": "Ce poate face node",
3086
+ "cli.server.reconnect.help.reconnect_them_anyway": "pentru a le reconecta oricum",
3087
+ "cli.server.reconnect.help.see_why": "pentru a vedea motivul",
3088
+ "cli.server.reconnect.help.connect_servers_again_reload": "Se conecteaz\u0103 din nou la servere \u0219i re\xEEncarc\u0103 comenzile lor, de ex. dup\u0103 repornirea sau actualizarea unui server. F\u0103r\u0103 nume, fiecare server inaccesibil este re\xEEncercat.",
3089
+ "cli.server.reconnect.help.retry_unreachable_servers": "Re\xEEncearc\u0103 serverele inaccesibile",
3090
+ "cli.server.reconnect.help.reconnect_one_server": "Reconecteaz\u0103 un server",
3091
+ "cli.server.reconnect.help.reconnect_every_server": "Reconecteaz\u0103 toate serverele",
3092
+ "cli.server.reconnect.help.same_server_reconnect": "La fel ca server reconnect",
3093
+ "cli.server.reconnect.help.reload_commands_node": "Re\xEEncarc\u0103 comenzile lui node",
3094
+ "cli.server.default.help.to_remove": "pentru a-l elimina",
3095
+ "cli.server.default.help.to_set_one": "pentru a seta unul",
3096
+ "cli.server.default.help.default_server_runs_commands": "Serverul implicit ruleaz\u0103 comenzile pe care le au mai multe servere (altfel vi se cere s\u0103 alege\u021Bi unul) \u0219i comenzile care necesit\u0103 un singur server, precum server logs. Este re\u021Binut \xEEntre re\xEEnc\u0103rc\u0103ri.",
3097
+ "cli.server.default.help.show_default_server": "Afi\u0219eaz\u0103 serverul implicit",
3098
+ "cli.server.default.help.set": "Seteaz\u0103-l",
3099
+ "cli.server.default.help.remove": "Elimin\u0103-l",
3100
+ "cli.server.default.help.same_server_default_node": "La fel ca server default node",
3101
+ "cli.server.jobs.help.see_control_background_jobs": "Vede\u021Bi \u0219i controla\u021Bi joburile din fundal care ruleaz\u0103 pe serverele conectate: lista\u021Bi-le, rula\u021Bi unul acum, pune\u021Bi-l \xEEn pauz\u0103 sau opri\u021Bi-l, citi\u021Bi istoricul \u0219i jurnalele lui, schimba\u021Bi-i set\u0103rile sau urm\u0103ri\u021Bi evenimentele \xEEn direct. Un job este ales dup\u0103 nume (indiferent de majuscule) sau ID \u0219i c\u0103utat pe fiecare server conectat; ac\u021Biunile se aplic\u0103 fiec\u0103rui server care are jobul, iar --server limiteaz\u0103 o comand\u0103 la un singur server.",
3102
+ "cli.server.jobs.help.same_server_jobs_list": "La fel ca server jobs list",
3103
+ "cli.server.jobs.help.live_job_events": "Evenimentele joburilor \xEEn direct",
3104
+ "cli.server.jobs.help.all_jobs": "Toate joburile",
3105
+ "cli.server.jobs.help.run_cleanup_job_now": "Ruleaz\u0103 acum jobul cleanup",
3106
+ "cli.server.jobs.help.failed_runs": "Rul\u0103rile lui e\u0219uate",
3107
+ "cli.server.jobs.help.last_run_output_node": "Rezultatul ultimei rul\u0103ri, pe node",
3108
+ "cli.server.jobs.list.help.list_jobs_every_connected": "Afi\u0219eaz\u0103 joburile tuturor serverelor conectate: grup, stare, program, ultima \u0219i urm\u0103toarea rulare \u0219i c\xE2t a durat ultima rulare. Cu mai multe servere, fiecare are propriul tabel.",
3109
+ "cli.server.jobs.list.help.jobs_all_connected_servers": "Joburile de pe toate serverele conectate",
3110
+ "cli.server.jobs.list.help.only_one_group": "Doar un grup",
3111
+ "cli.server.jobs.list.help.jobs_node_server": "Joburile de pe serverul node",
3112
+ "cli.server.jobs.list.help.jobs_reports_group": "Joburile din grupul reports",
3113
+ "cli.server.jobs.info.help.show_everything_about_one": "Afi\u0219eaz\u0103 tot despre un job: programul, re\xEEncerc\u0103rile, timpul limit\u0103, politica de suprapunere, execu\u021Bia curent\u0103 \u0219i rezultatul ultimei rul\u0103ri. Jobul este g\u0103sit dup\u0103 nume (indiferent de majuscule) sau ID.",
3114
+ "cli.server.jobs.info.help.details_cleanup_job": "Detaliile jobului cleanup",
3115
+ "cli.server.jobs.trigger.help.run_job_now_without": "Ruleaz\u0103 un job acum, f\u0103r\u0103 a a\u0219tepta urm\u0103toarea or\u0103 programat\u0103. Programul lui nu se schimb\u0103.",
3116
+ "cli.server.jobs.trigger.help.run_cleanup_now": "Ruleaz\u0103 cleanup acum",
3117
+ "cli.server.jobs.trigger.help.then_read_output": "Apoi cite\u0219te rezultatul lui",
3118
+ "cli.server.jobs.pause.help.stop_running_job_schedule": "Opre\u0219te rularea unui job conform programului p\xE2n\u0103 c\xE2nd este reluat. Folosi\u021Bi cancel sau stop pentru o rulare deja \xEEn curs.",
3119
+ "cli.server.jobs.pause.help.hold_cleanup": "Pune cleanup \xEEn a\u0219teptare",
3120
+ "cli.server.jobs.pause.help.put_back_schedule": "Repune-l pe program",
3121
+ "cli.server.jobs.resume.help.put_paused_job_back": "Repune un job \xEEn pauz\u0103 pe programul s\u0103u.",
3122
+ "cli.server.jobs.resume.help.run_cleanup_schedule_again": "Ruleaz\u0103 din nou cleanup conform programului",
3123
+ "cli.server.jobs.stop.help.take_job_off_schedule": "Scoate un job de pe program \u0219i anuleaz\u0103 rularea \xEEn curs, dac\u0103 exist\u0103 una.",
3124
+ "cli.server.jobs.stop.help.stop_cleanup_completely": "Opre\u0219te complet cleanup",
3125
+ "cli.server.jobs.cancel.help.cancel_run_progress_job": "Anuleaz\u0103 rularea \xEEn curs a unui job. Jobul r\u0103m\xE2ne pe program \u0219i ruleaz\u0103 din nou la urm\u0103toarea or\u0103.",
3126
+ "cli.server.jobs.cancel.help.abort_current_cleanup_run": "\xCEntrerupe rularea curent\u0103 a lui cleanup",
3127
+ "cli.server.jobs.history.help.list_past_runs_job": "Afi\u0219eaz\u0103 rul\u0103rile anterioare ale unui job: stare, ora de start, durat\u0103, \xEEncercarea de reluare \u0219i \xEEnceputul mesajului de eroare. Folosi\u021Bi ID-ul scurt cu logs --exec pentru a citi rezultatul unei rul\u0103ri.",
3128
+ "cli.server.jobs.history.help.last_20_runs": "Ultimele 20 de rul\u0103ri",
3129
+ "cli.server.jobs.history.help.page_through_older_runs": "Parcurge pagin\u0103 cu pagin\u0103 rul\u0103rile mai vechi",
3130
+ "cli.server.jobs.history.help.only_failed_runs": "Doar rul\u0103rile e\u0219uate",
3131
+ "cli.server.jobs.history.help.last_5_runs": "Ultimele 5 rul\u0103ri",
3132
+ "cli.server.jobs.logs.help.print_log_entries_latest": "Afi\u0219eaz\u0103 intr\u0103rile de jurnal ale ultimei rul\u0103ri a unui job sau ale unei rul\u0103ri alese dup\u0103 ID-ul execu\u021Biei (din history).",
3133
+ "cli.server.jobs.logs.help.logs_latest_run": "Jurnalele ultimei rul\u0103ri",
3134
+ "cli.server.jobs.logs.help.logs_one_run": "Jurnalele unei rul\u0103ri",
3135
+ "cli.server.jobs.logs.help.what_last_cleanup_run": "Ce a afi\u0219at ultima rulare cleanup",
3136
+ "cli.server.jobs.edit.help.change_job_step_step": "Modific\u0103 un job pas cu pas: descriere, grup, program cron sau interval, num\u0103r maxim de re\xEEncerc\u0103ri, timp limit\u0103 \u0219i politic\u0103 de suprapunere (skip, queue sau cancel). Ap\u0103sa\u021Bi Enter pentru a p\u0103stra o valoare \u0219i Ctrl+C sau Escape pentru a anula; nimic nu se schimb\u0103 p\xE2n\u0103 nu confirma\u021Bi. Un job aflat pe mai multe servere necesit\u0103 --server.",
3137
+ "cli.server.jobs.edit.help.edit_cleanup_server_has": "Editeaz\u0103 cleanup pe serverul care \xEEl are",
3138
+ "cli.server.jobs.watch.help.follow_job_events_they": "Urm\u0103re\u0219te evenimentele joburilor pe m\u0103sur\u0103 ce apar (pornit, terminat, e\u0219uat etc.) pe toate serverele conectate, o linie pe eveniment. Ap\u0103sa\u021Bi Ctrl+C pentru a opri.",
3139
+ "cli.server.jobs.watch.help.events_all_connected_servers": "Evenimente de pe toate serverele conectate",
3140
+ "cli.server.jobs.watch.help.only_events_node": "Doar evenimentele de pe node",
3141
+ "cli.ssh.description": "Deschide o sesiune shell la distan\u021B\u0103 pe un server",
3142
+ "cli.ssh.help.open_interactive_shell_server": "Deschide un shell interactiv pe un server, \xEEn acest terminal, sau ruleaz\u0103 acolo o singur\u0103 comand\u0103 \u0219i afi\u0219eaz\u0103 rezultatul. Pot fi folosite doar serverele care activeaz\u0103 shell-ul; cu pluginul users ave\u021Bi nevoie de permisiunea shell:execute. F\u0103r\u0103 nume, ssh folose\u0219te singurul server cu shell, altfel serverul implicit, altfel \xEEntreab\u0103 pe care s\u0103-l foloseasc\u0103.",
3143
+ "cli.ssh.help.shell_default_only_server": "Shell pe serverul implicit (sau singurul)",
3144
+ "cli.ssh.help.shell_server_exit_ctrl": "Shell pe un server (exit sau Ctrl+D pentru a ie\u0219i)",
3145
+ "cli.ssh.help.run_one_command_print": "Ruleaz\u0103 o singur\u0103 comand\u0103 \u0219i afi\u0219eaz\u0103 rezultatul",
3146
+ "cli.ssh.help.same_ssh": "La fel ca ssh <name>",
3147
+ "cli.ssh.help.interactive_shell_node": "Shell interactiv pe node",
3148
+ "cli.ssh.help.one_command_node": "O comand\u0103 pe node",
3149
+ "cli.ssh.help.same_ssh_2": "La fel ca ssh",
3150
+ "cli.events.description": "Urm\u0103re\u0219te, listeaz\u0103 \u0219i emite evenimente pe magistrala de evenimente",
3151
+ "cli.events.watch.description": "Afi\u0219eaz\u0103 evenimentele pe m\u0103sur\u0103 ce apar (Ctrl+C pentru oprire)",
3152
+ "cli.events.log.description": "Afi\u0219eaz\u0103 evenimentele recente (\xEEn memorie, nesalvate)",
3153
+ "cli.events.emit.description": "Emite un eveniment: events emit <tip> [json]",
3154
+ "cli.events.watch.help.intro": "Afi\u0219eaz\u0103 evenimentele pe m\u0103sur\u0103 ce apar, p\xE2n\u0103 la Ctrl+C",
3155
+ "cli.events.watch.help.every_event": "Toate evenimentele",
3156
+ "cli.events.watch.help.namespace": "Un spa\u021Biu de nume",
3157
+ "cli.events.watch.help.one_type": "Un singur tip",
3158
+ "cli.events.log.help.intro": "Afi\u0219eaz\u0103 cele mai recente evenimente, cele mai vechi primele",
3159
+ "cli.events.log.help.last_20": "Ultimele 20 de evenimente",
3160
+ "cli.events.log.help.last_50_server": "Ultimele 50 de evenimente de server",
3161
+ "cli.events.emit.help.intro": "Emite un eveniment, de ex. pentru a testa un plugin care \xEEl ascult\u0103",
3162
+ "cli.events.help.commands": "Comenzi:",
3163
+ "cli.events.help.print_live": "Afi\u0219eaz\u0103 evenimentele \xEEn direct",
3164
+ "cli.events.help.recent": "Evenimente recente",
3165
+ "cli.events.help.emit": "Emite un eveniment",
3166
+ "cli.events.help.patterns": "Modele: un tip exact (package:installed), un spa\u021Biu de nume (package:*) sau * pentru toate.",
3167
+ "cli.events.help.in_memory": "Evenimentele sunt p\u0103strate \xEEn memorie doar pentru acest terminal; nimic nu este salvat permanent.",
3168
+ // ── Capture ──────────────────────────────────────────────────────
3169
+ "cli.capture.description": "Export\u0103 con\u021Binutul terminalului \xEEntr-un fi\u0219ier desc\u0103rcabil",
3170
+ "cli.capture.help.save_what_terminal_including": "Salveaz\u0103 ce se afl\u0103 \xEEn terminal, inclusiv istoricul de derulare, ca fi\u0219ier desc\u0103rcat de browser. HTML p\u0103streaz\u0103 fundalul \u0219i culoarea textului temei; txt este text simplu. Culorile liniilor individuale nu se p\u0103streaz\u0103.",
3171
+ "cli.capture.help.everything_terminal_html": "Totul ca terminal-<timestamp>.html",
3172
+ "cli.capture.help.plain_text_file": "Fi\u0219ier text simplu",
3173
+ "cli.capture.help.only_last_n_lines": "Doar ultimele n linii",
3174
+ "cli.capture.help.downloads_session_txt": "Descarc\u0103 session.txt",
3175
+ "cli.capture.help.last_50_lines_html": "Ultimele 50 de linii ca HTML",
3176
+ "cli.capture.help.same_capture": "La fel ca capture",
3177
+ // ── Diff ─────────────────────────────────────────────────────────
3178
+ "cli.diff.description": "Compar\u0103 fi\u0219iere linie cu linie",
3179
+ "cli.diff.help.compare_two_texts_line": "Compar\u0103 dou\u0103 texte linie cu linie: liniile ad\u0103ugate apar \xEEn verde cu +, cele eliminate \xEEn ro\u0219u cu -, cu c\xE2teva linii neschimbate \xEEn jurul fiec\u0103rei modific\u0103ri pentru context.",
3180
+ "cli.diff.help.compare_two_texts": "Compar\u0103 dou\u0103 texte",
3181
+ "cli.diff.help.only_changed_lines": "Doar liniile modificate",
3182
+ "cli.diff.help.one_line_changed": "O linie modificat\u0103",
3183
+ "cli.diff.help.prints_no_differences_found": "Afi\u0219eaz\u0103: No differences found",
3184
+ "cli.diff.help.compare_two_files_line": "Compar\u0103 dou\u0103 fi\u0219iere linie cu linie \u0219i arat\u0103 ce s-a schimbat: liniile care \xEEncep cu < (sau -) sunt doar \xEEn primul fi\u0219ier, cele care \xEEncep cu > (sau +) doar \xEEn al doilea.",
3185
+ "cli.diff.help.show_differences": "Afi\u0219eaz\u0103 diferen\u021Bele",
3186
+ "cli.diff.help.unified_format_context": "Format unificat cu context",
3187
+ "cli.diff.help.what_changed_between_versions": "Ce s-a schimbat \xEEntre versiuni",
3188
+ "cli.diff.help.review_edits_git_style": "Revizuie\u0219te modific\u0103rile, \xEEn stil git",
3189
+ "cli.diff.help.ignore_upper_lower_case": "Ignor\u0103 majusculele/minusculele",
3190
+ // ── Font Size ────────────────────────────────────────────────────
3191
+ "cli.font-size.description": "Ajusteaz\u0103 dimensiunea fontului terminalului",
3192
+ "cli.font-size.reset.description": "Reseteaz\u0103 dimensiunea fontului la cea implicit\u0103",
3193
+ "cli.font-size.set.description": "Seteaz\u0103 dimensiunea fontului la o valoare anume",
3194
+ "cli.font-size.help.intro": "Face textul terminalului mai mare sau mai mic, de la {min}px la {max}px. Dimensiunea aleas\u0103 este salvat\u0103 \u0219i restabilit\u0103 la urm\u0103toarea deschidere a terminalului; reset revine la dimensiunea cu care a pornit pagina.",
3195
+ "cli.font-size.help.show_current_size": "Afi\u0219eaz\u0103 dimensiunea curent\u0103",
3196
+ "cli.font-size.help.bigger_smaller_by": "Mai mare sau mai mic cu {step}px",
3197
+ "cli.font-size.help.exact_size": "Dimensiune exact\u0103 \xEEn pixeli ({min}-{max})",
3198
+ "cli.font-size.help.back_default_size": "\xCEnapoi la dimensiunea implicit\u0103",
3199
+ "cli.font-size.help.use_16px_text": "Folose\u0219te text de 16px",
3200
+ "cli.font-size.help.grow_by": "M\u0103re\u0219te cu {step}px",
3201
+ "cli.font-size.help.forget_saved_size": "Uit\u0103 dimensiunea salvat\u0103",
3202
+ // ── Snippet ──────────────────────────────────────────────────────
3203
+ "cli.snippet.description": "Salveaz\u0103 \u0219i reutilizeaz\u0103 \u0219abloane de comenzi parametrizate",
3204
+ "cli.snippet.list.description": "Afi\u0219eaz\u0103 toate fragmentele salvate",
3205
+ "cli.snippet.save.description": 'Salveaz\u0103 un fragment nou: snippet save <name> "<template>"',
3206
+ "cli.snippet.show.description": "Afi\u0219eaz\u0103 \u0219ablonul unui fragment: snippet show <name>",
3207
+ "cli.snippet.delete.description": "\u0218terge un fragment: snippet delete <name>",
3208
+ "cli.snippet.run.description": "Ruleaz\u0103 un fragment cu valori pentru variabile: snippet run <name> var1=val1 var2=val2",
3209
+ "cli.snippet.help.save_command_lines_you": "Salveaz\u0103 liniile de comand\u0103 folosite des ca \u0219abloane denumite, cu {{placeholders}} completate la rulare. Fragmentele sunt salvate \xEEn browser \u0219i partajate de toate terminalele \u0219i filele dvs.",
3210
+ "cli.snippet.help.save_replace_snippet": "Salveaz\u0103 (sau \xEEnlocuie\u0219te) un fragment",
3211
+ "cli.snippet.help.fill_placeholders_run": "Completeaz\u0103 substituen\u021Bii \u0219i ruleaz\u0103-l",
3212
+ "cli.snippet.help.all_saved_snippets": "Toate fragmentele salvate",
3213
+ "cli.snippet.help.print_snippet": "Afi\u0219eaz\u0103 un fragment",
3214
+ "cli.snippet.help.delete_snippet_rm_remove": "\u0218terge un fragment (rm, remove)",
3215
+ "cli.snippet.help.template_placeholder": "Un \u0219ablon cu substituent",
3216
+ "cli.snippet.help.runs_echo_hello_ada": "Ruleaz\u0103: echo Hello Ada",
3217
+ "cli.snippet.help.quote_values_spaces": "Valori cu spa\u021Bii \xEEntre ghilimele",
3218
+ // ── Test ─────────────────────────────────────────────────────────
3219
+ "cli.test.description": "Evalueaz\u0103 o condi\u021Bie (cod de ie\u0219ire 0 c\xE2nd este adev\u0103rat\u0103)",
3220
+ "cli.test.help.expressions": "Expresii:",
3221
+ "cli.test.help.empty_not_empty": "gol / nu este gol",
3222
+ "cli.test.help.equal_not_equal": "egal / diferit",
3223
+ "cli.test.help.integer_comparison": "compara\u021Bie \xEEntre numere \xEEntregi",
3224
+ "cli.test.help.exists_file_directory": "exist\u0103 / fi\u0219ier / director",
3225
+ // ── Kill ─────────────────────────────────────────────────────────
3226
+ "cli.kill.description": "Opre\u0219te un proces \xEEn execu\u021Bie dup\u0103 PID",
3227
+ "cli.kill.help.stop_running_process_pid": "Opre\u0219te un proces \xEEn execu\u021Bie dup\u0103 PID, a\u0219a cum apare \xEEn ps. O comand\u0103 este anulat\u0103, un serviciu \xEEn fundal este oprit. Doar procesele \xEEn execu\u021Bie pot fi oprite; dup\u0103 aceea apar ca killed, cu codul de ie\u0219ire -9.",
3228
+ "cli.kill.help.stop_process_pid": "Opre\u0219te procesul cu acel PID",
3229
+ "cli.kill.help.find_pid": "G\u0103se\u0219te PID-ul",
3230
+ "cli.kill.help.stop_process_3": "Opre\u0219te procesul 3",
3231
+ // ── Pkg ──────────────────────────────────────────────────────────
3232
+ "cli.pkg.description": "Gestionarea pachetelor din CLI",
3233
+ "cli.pkg.ls.description": "Afi\u0219eaz\u0103 toate pachetele din CLI",
3234
+ "cli.pkg.browse.description": "Afi\u0219eaz\u0103 toate pachetele disponibile din toate sursele configurate",
3235
+ "cli.pkg.add.description": "Adaug\u0103 un pachet \xEEn CLI, de ex. pkg add guid.",
3236
+ "cli.pkg.remove.description": "Elimin\u0103 un pachet din CLI",
3237
+ "cli.pkg.versions.description": "Afi\u0219eaz\u0103 toate versiunile publicate ale unui pachet",
3238
+ "cli.pkg.check.description": "Verific\u0103 dac\u0103 pachetele instalate au actualiz\u0103ri disponibile",
3239
+ "cli.pkg.update.description": "Actualizeaz\u0103 un pachet din CLI la ultima versiune sau actualizeaz\u0103 toate pachetele",
3240
+ "cli.pkg.source.description": "Afi\u0219eaz\u0103 sau seteaz\u0103 sursa pachetelor pentru desc\u0103rc\u0103ri",
3241
+ "cli.pkg.source.get.description": "Afi\u0219eaz\u0103 sursa CDN curent\u0103",
3242
+ "cli.pkg.source.set.description": "Seteaz\u0103 sursa preferat\u0103 a pachetelor (interactiv dac\u0103 nu se d\u0103 un nume)",
3243
+ "cli.pkg.help.list_installed_packages": "Afi\u0219eaz\u0103 pachetele instalate",
3244
+ "cli.pkg.help.browse_all_available_packages": "R\u0103sfoie\u0219te toate pachetele disponibile",
3245
+ "cli.pkg.help.install_package": "Instaleaz\u0103 un pachet",
3246
+ "cli.pkg.help.remove_package": "Elimin\u0103 un pachet",
3247
+ "cli.pkg.help.show_all_published_versions": "Afi\u0219eaz\u0103 toate versiunile publicate",
3248
+ "cli.pkg.help.check_available_updates": "Verific\u0103 actualiz\u0103rile disponibile",
3249
+ "cli.pkg.help.update_one_all_packages": "Actualizeaz\u0103 un pachet sau toate pachetele",
3250
+ "cli.pkg.help.get_set_package_source": "Afi\u0219eaz\u0103 sau seteaz\u0103 sursa pachetelor",
3251
+ "cli.pkg.help.install_qodalis_cli_guid": "Instaleaz\u0103 @qodalis/cli-guid",
3252
+ "cli.pkg.help.install_multiple_packages": "Instaleaz\u0103 mai multe pachete",
3253
+ "cli.pkg.help.update_all_packages": "Actualizeaz\u0103 toate pachetele",
3254
+ "cli.pkg.browse.help.install_package": "pentru a instala un pachet",
3255
+ "cli.pkg.add.help.short_name": "Nume scurt",
3256
+ "cli.pkg.add.help.full_name": "Nume complet",
3257
+ "cli.pkg.add.help.multiple_packages": "Mai multe pachete",
3258
+ "cli.pkg.add.help.specific_version": "O versiune anume",
3259
+ "cli.pkg.remove.help.remove_one_package": "Elimin\u0103 un pachet",
3260
+ "cli.pkg.remove.help.remove_multiple": "Elimin\u0103 mai multe",
3261
+ "cli.pkg.remove.help.short_alias": "Alias scurt",
3262
+ "cli.pkg.versions.help.short_name": "Nume scurt",
3263
+ "cli.pkg.versions.help.full_name": "Nume complet",
3264
+ "cli.pkg.check.help.apply_updates": "pentru a aplica actualiz\u0103rile",
3265
+ "cli.pkg.update.help.update_latest": "Actualizeaz\u0103 la ultima versiune",
3266
+ "cli.pkg.update.help.update_specific_version": "Actualizeaz\u0103 la o versiune anume",
3267
+ "cli.pkg.update.help.update_all_packages": "Actualizeaz\u0103 toate pachetele",
3268
+ "cli.pkg.update.help.install_specific_version": "Instaleaz\u0103 o versiune anume",
3269
+ "cli.pkg.source.help.change": "pentru a schimba",
3270
+ "cli.pkg.source.help.show_current_source": "Afi\u0219eaz\u0103 sursa curent\u0103",
3271
+ "cli.pkg.source.help.set_preferred_source": "Seteaz\u0103 sursa preferat\u0103",
3272
+ "cli.pkg.help.install_package_2": "pentru a instala un pachet",
3273
+ // ── Ps ───────────────────────────────────────────────────────────
3274
+ "cli.ps.description": "Afi\u0219eaz\u0103 procesele \xEEn execu\u021Bie \u0219i cele recente",
3275
+ "cli.ps.help.list_processes_terminal_commands": "Afi\u0219eaz\u0103 procesele acestui terminal: comenzi, servicii \xEEn fundal, daemoni \u0219i joburi. Cele \xEEn execu\u021Bie sunt afi\u0219ate \xEEmpreun\u0103 cu cele terminate recent, e\u0219uate sau oprite (ultimele 50), cu codul de ie\u0219ire \u0219i c\xE2t timp a trecut de la pornire.",
3276
+ "cli.ps.help.all_processes_oldest_first": "Toate procesele, cele mai vechi primele",
3277
+ "cli.ps.help.what_running_now": "Ce ruleaz\u0103 acum",
3278
+ "cli.ps.help.stop_process_12_pid": "Opre\u0219te procesul 12 din coloana PID",
3279
+ // ── Cron ─────────────────────────────────────────────────────────
3280
+ "cli.cron.description": "Programeaz\u0103 comenzi s\u0103 ruleze la un interval repetitiv",
3281
+ "cli.cron.add.description": "Adaug\u0103 un job cron: cron add <name> <interval> <command>",
3282
+ "cli.cron.list.description": "Afi\u0219eaz\u0103 toate joburile cron",
3283
+ "cli.cron.remove.description": "Elimin\u0103 un job cron: cron remove <name>",
3284
+ "cli.cron.enable.description": "Activeaz\u0103 un job cron \xEEn pauz\u0103",
3285
+ "cli.cron.disable.description": "Pune un job cron \xEEn pauz\u0103 f\u0103r\u0103 a-l elimina",
3286
+ "cli.cron.help.run_command_again_again": "Ruleaz\u0103 o comand\u0103 \xEEn mod repetat, la un interval fix, c\xE2t timp terminalul este deschis. Joburile sunt salvate: pornesc din nou la pornirea terminalului \u0219i pot fi puse \xEEn pauz\u0103 f\u0103r\u0103 a fi eliminate.",
3287
+ "cli.cron.help.add_job": "Adaug\u0103 un job",
3288
+ "cli.cron.help.jobs_interval_status_run": "Joburi cu interval, stare \u0219i num\u0103r de rul\u0103ri (ls)",
3289
+ "cli.cron.help.pause_job": "Pune un job \xEEn pauz\u0103",
3290
+ "cli.cron.help.resume_paused_job": "Reia un job \xEEn pauz\u0103",
3291
+ "cli.cron.help.remove_job_rm_delete": "Elimin\u0103 un job (rm, delete)",
3292
+ "cli.cron.help.intervals_seconds_30_hours": "Intervale: secunde (30), sau ore, minute \u0219i secunde (1h, 5m, 1h30m, 90s); minimum 10 secunde.",
3293
+ "cli.cron.help.every_5_minutes": "La fiecare 5 minute",
3294
+ "cli.cron.help.every_hour_half": "La fiecare or\u0103 \u0219i jum\u0103tate",
3295
+ "cli.cron.help.pause": "Pune-l \xEEn pauz\u0103",
3296
+ // ── Binary ───────────────────────────────────────────────────────
3297
+ "cli.binary.long_description": "Codific\u0103 \u0219i decodific\u0103 \u0219iruri binare",
3298
+ "cli.binary.utf8_note": "Accept\u0103 codificarea textului UTF-8",
3299
+ "cli.binary.encode_desc": "Text \xEEn binar",
3300
+ "cli.binary.decode_desc": "Binar \xEEn text",
3301
+ // ── Morse ────────────────────────────────────────────────────────
3302
+ "cli.morse.long_description": "Codific\u0103 \u0219i decodific\u0103 codul Morse",
3303
+ "cli.morse.note": "Accept\u0103 litere, cifre \u0219i semne de punctua\u021Bie uzuale",
3304
+ "cli.morse.encode_desc": "Text \xEEn Morse",
3305
+ "cli.morse.decode_desc": "Morse \xEEn text",
3306
+ // ── Rot ──────────────────────────────────────────────────────────
3307
+ "cli.rot.long_description": "Aplic\u0103 cifrul ROT (rota\u021Bie) asupra textului",
3308
+ "cli.rot.note": "Implicit este ROT13 (auto-inversabil: aplicat de dou\u0103 ori returneaz\u0103 originalul)",
3309
+ "cli.rot.default_desc": "Aplic\u0103 ROT13",
3310
+ "cli.rot.shift_desc": "Aplic\u0103 ROT-N",
3311
+ // ── Awk ──────────────────────────────────────────────────────────
3312
+ "cli.awk.description": "C\u0103utare de modele \u0219i procesare de text",
3313
+ "cli.awk.help.process_text_records_fields": "Proceseaz\u0103 textul ca \xEEnregistr\u0103ri \u0219i c\xE2mpuri: fiecare linie este \xEEmp\u0103r\u021Bit\u0103 \xEEn c\xE2mpurile $1, $2, ... ($0 este linia \xEEntreag\u0103), iar fiecare regul\u0103 \xEE\u0219i execut\u0103 { action } pe liniile care se potrivesc. Accept\u0103 blocuri BEGIN \u0219i END, modele /regex/ \u0219i de comparare a c\xE2mpurilor, print, variabile, NR \u0219i NF. Pune\u021Bi programul \xEEntre ghilimele; unul simplu func\u021Bioneaz\u0103 \u0219i f\u0103r\u0103 (awk {print $1} file).",
3314
+ "cli.awk.help.run_program_over_file": "Ruleaz\u0103 un program peste un fi\u0219ier",
3315
+ "cli.awk.help.split_fields_instead_spaces": "Separ\u0103 c\xE2mpurile dup\u0103 <sep> \xEEn loc de spa\u021Bii",
3316
+ "cli.awk.help.run_program_over_piped": "Ruleaz\u0103 un program peste intrarea transmis\u0103 prin pipe",
3317
+ "cli.awk.help.print_first_column": "Afi\u0219eaz\u0103 prima coloan\u0103",
3318
+ "cli.awk.help.second_column_csv": "A doua coloan\u0103 dintr-un CSV",
3319
+ "cli.awk.help.filter_rows_field": "Filtreaz\u0103 liniile dup\u0103 un c\xE2mp",
3320
+ "cli.awk.help.sum_second_column": "\xCEnsumeaz\u0103 a doua coloan\u0103",
3321
+ // ── Basename ─────────────────────────────────────────────────────
3322
+ "cli.basename.description": "Elimin\u0103 directorul dintr-o cale",
3323
+ "cli.basename.help.print_last_part_path": "Afi\u0219eaz\u0103 ultima parte a unei c\u0103i, numele fi\u0219ierului sau al directorului, f\u0103r\u0103 directoarele dinaintea lui. Dac\u0103 se d\u0103 un sufix, este eliminat \u0219i el de la final.",
3324
+ "cli.basename.help.name_without_directories": "Numele f\u0103r\u0103 directoare",
3325
+ "cli.basename.help.also_remove_trailing_suffix": "Elimin\u0103 \u0219i un sufix de la final",
3326
+ "cli.basename.help.prints_notes_txt": "Afi\u0219eaz\u0103 notes.txt",
3327
+ "cli.basename.help.prints_notes": "Afi\u0219eaz\u0103 notes",
3328
+ "cli.basename.help.prints_user": "Afi\u0219eaz\u0103 user",
3329
+ // ── Cat ──────────────────────────────────────────────────────────
3330
+ "cli.cat.description": "Afi\u0219eaz\u0103 con\u021Binutul fi\u0219ierelor",
3331
+ "cli.cat.help.print_contents_one_more": "Afi\u0219eaz\u0103 con\u021Binutul unuia sau mai multor fi\u0219iere, concatenate \xEEn ordine, sau al intr\u0103rii transmise prin pipe. Transmite\u021Bi rezultatul altor comenzi pentru a-l c\u0103uta, sorta sau num\u0103ra.",
3332
+ "cli.cat.help.print_files_one_after": "Afi\u0219eaz\u0103 fi\u0219ierele unul dup\u0103 altul",
3333
+ "cli.cat.help.send_file_another_command": "Trimite un fi\u0219ier altei comenzi",
3334
+ "cli.cat.help.show_whole_file": "Afi\u0219eaz\u0103 \xEEntregul fi\u0219ier",
3335
+ "cli.cat.help.show_only_lines_error": "Afi\u0219eaz\u0103 doar liniile cu error",
3336
+ "cli.cat.help.print_lines_sorted": "Afi\u0219eaz\u0103 liniile sortate",
3337
+ // ── Cd ───────────────────────────────────────────────────────────
3338
+ "cli.cd.description": "Schimb\u0103 directorul de lucru curent",
3339
+ "cli.cd.help.change_current_directory_without": "Schimb\u0103 directorul curent. F\u0103r\u0103 o cale merge \xEEn directorul home. C\u0103ile pot fi absolute (/...), relative la locul unde v\u0103 afla\u021Bi sau pot \xEEncepe cu ~ pentru home.",
3340
+ "cli.cd.help.go_home_directory": "Mergi \xEEn directorul home",
3341
+ "cli.cd.help.go_directory": "Intr\u0103 \xEEntr-un director",
3342
+ "cli.cd.help.go_up_one_level": "Urc\u0103 un nivel",
3343
+ "cli.cd.help.go_docs_home": "Mergi la docs din home",
3344
+ "cli.cd.help.go_sibling_directory": "Mergi \xEEntr-un director vecin",
3345
+ "cli.cd.help.go_root": "Mergi \xEEn r\u0103d\u0103cin\u0103",
3346
+ // ── Chmod ────────────────────────────────────────────────────────
3347
+ "cli.chmod.description": "Schimb\u0103 permisiunile fi\u0219ierelor",
3348
+ "cli.chmod.help.change_who_can_read": "Schimb\u0103 cine poate citi (r), scrie (w) \u0219i executa (x) un fi\u0219ier. Folosi\u021Bi un mod octal, precum 755, sau unul simbolic: cine (u utilizator, g grup, o ceilal\u021Bi, a to\u021Bi), apoi + pentru a ad\u0103uga, - pentru a elimina sau = pentru a seta, apoi permisiunile.",
3349
+ "cli.chmod.help.set_permissions": "Seteaz\u0103 permisiunile",
3350
+ "cli.chmod.help.apply_directory_everything": "Aplic\u0103 unui director \u0219i \xEEntregului s\u0103u con\u021Binut",
3351
+ "cli.chmod.help.rw_r_r_owner": "rw-r--r--: proprietarul scrie, ceilal\u021Bi citesc",
3352
+ "cli.chmod.help.let_owner_execute": "Permite proprietarului s\u0103 \xEEl execute",
3353
+ "cli.chmod.help.take_away_write_group": "Retrage scrierea pentru grup \u0219i ceilal\u021Bi",
3354
+ "cli.chmod.help.set_whole_directory_tree": "Seteaz\u0103 un \xEEntreg arbore de directoare",
3355
+ // ── Chown ────────────────────────────────────────────────────────
3356
+ "cli.chown.description": "Schimb\u0103 proprietarul \u0219i grupul fi\u0219ierelor",
3357
+ "cli.chown.help.change_owner_group_files": "Schimb\u0103 proprietarul \u0219i/sau grupul fi\u0219ierelor. Indica\u021Bi user, user:group, user: (doar proprietarul) sau :group (doar grupul).",
3358
+ "cli.chown.help.change_owner_group_if": "Schimb\u0103 proprietarul \u0219i grupul, dac\u0103 este dat",
3359
+ "cli.chown.help.change_only_group": "Schimb\u0103 doar grupul",
3360
+ "cli.chown.help.apply_directory_everything": "Aplic\u0103 unui director \u0219i \xEEntregului s\u0103u con\u021Binut",
3361
+ "cli.chown.help.make_alice_owner": "Face din alice proprietarul",
3362
+ "cli.chown.help.set_owner_group": "Seteaz\u0103 proprietarul \u0219i grupul",
3363
+ "cli.chown.help.give_bob_whole_directory": "D\u0103 lui bob un \xEEntreg director",
3364
+ // ── Cp ───────────────────────────────────────────────────────────
3365
+ "cli.cp.description": "Copiaz\u0103 fi\u0219iere \u0219i directoare",
3366
+ "cli.cp.help.copy_file_new_path": "Copiaz\u0103 un fi\u0219ier la o cale nou\u0103 sau \xEEntr-un director existent. Copierea unui director necesit\u0103 -r, care copiaz\u0103 tot ce se afl\u0103 \xEEn el. Un fi\u0219ier deja existent la destina\u021Bie este \xEEnlocuit.",
3367
+ "cli.cp.help.copy_file_new_name": "Copiaz\u0103 un fi\u0219ier sub un nume nou",
3368
+ "cli.cp.help.copy_files_directory": "Copiaz\u0103 fi\u0219iere \xEEntr-un director",
3369
+ "cli.cp.help.copy_directory_contents": "Copiaz\u0103 un director \u0219i con\u021Binutul s\u0103u",
3370
+ "cli.cp.help.make_backup_copy": "Face o copie de rezerv\u0103",
3371
+ "cli.cp.help.copy_docs": "Copiaz\u0103 \xEEn ~/docs",
3372
+ "cli.cp.help.duplicate_whole_directory": "Duplic\u0103 un \xEEntreg director",
3373
+ // ── Cut ──────────────────────────────────────────────────────────
3374
+ "cli.cut.description": "Extrage coloane sau c\xE2mpuri din fiecare linie a unui fi\u0219ier",
3375
+ "cli.cut.help.print_selected_parts_each": "Afi\u0219eaz\u0103 p\u0103r\u021Bile selectate din fiecare linie: c\xE2mpuri separate printr-un delimitator (-f, tab implicit) sau pozi\u021Bii de caractere (-c). O list\u0103 poate con\u021Bine numere singure, intervale sau ambele, precum 1,3 sau 2-4 sau 3-.",
3376
+ "cli.cut.help.select_fields": "Selecteaz\u0103 c\xE2mpuri",
3377
+ "cli.cut.help.select_character_positions": "Selecteaz\u0103 pozi\u021Bii de caractere",
3378
+ "cli.cut.help.cut_piped_input": "Decupeaz\u0103 intrarea transmis\u0103 prin pipe",
3379
+ "cli.cut.help.first_third_csv_column": "Prima \u0219i a treia coloan\u0103 dintr-un CSV",
3380
+ "cli.cut.help.first_10_characters_each": "Primele 10 caractere din fiecare linie",
3381
+ "cli.cut.help.first_two_fields_split": "Primele dou\u0103 c\xE2mpuri separate prin :",
3382
+ // ── Dirname ──────────────────────────────────────────────────────
3383
+ "cli.dirname.description": "Elimin\u0103 ultima component\u0103 dintr-o cale",
3384
+ "cli.dirname.help.print_directory_part_path": "Afi\u0219eaz\u0103 partea de director a unei c\u0103i, tot ce se afl\u0103 \xEEnainte de ultimul /. Un nume simplu, f\u0103r\u0103 /, d\u0103 . (directorul curent).",
3385
+ "cli.dirname.help.path_without_last_part": "Calea f\u0103r\u0103 ultima parte",
3386
+ "cli.dirname.help.prints_home_user": "Afi\u0219eaz\u0103 /home/user",
3387
+ "cli.dirname.help.prints": "Afi\u0219eaz\u0103 .",
3388
+ "cli.dirname.help.prints_2": "Afi\u0219eaz\u0103 /",
3389
+ // ── Du ───────────────────────────────────────────────────────────
3390
+ "cli.du.description": "Estimeaz\u0103 spa\u021Biul ocupat de fi\u0219iere",
3391
+ "cli.du.help.show_how_much_space": "Arat\u0103 c\xE2t spa\u021Biu ocup\u0103 fi\u0219ierele \u0219i directoarele, \xEEn octe\u021Bi. Pentru un director, fiecare subdirector este listat cu dimensiunea sa total\u0103; folosi\u021Bi -s doar pentru total sau -d pentru a limita ad\xE2ncimea.",
3392
+ "cli.du.help.sizes_path_default_current": "Dimensiunile unei c\u0103i (implicit: directorul curent) \u0219i ale subdirectoarelor ei",
3393
+ "cli.du.help.only_total": "Doar totalul",
3394
+ "cli.du.help.only_levels_deep": "Doar <n> niveluri \xEEn ad\xE2ncime",
3395
+ "cli.du.help.size_each_directory_docs": "Dimensiunea fiec\u0103rui director din ~/docs",
3396
+ "cli.du.help.total_home_k_m": "Totalul directorului home \xEEn K/M/G",
3397
+ "cli.du.help.size_each_top_level": "Dimensiunea fiec\u0103rui dosar de nivel superior",
3398
+ // ── Find ─────────────────────────────────────────────────────────
3399
+ "cli.find.description": "Caut\u0103 fi\u0219iere \u0219i directoare dup\u0103 nume sau tip",
3400
+ "cli.find.help.list_files_directories_under": "Listeaz\u0103 fi\u0219ierele \u0219i directoarele de sub o cale (implicit directorul curent), c\u0103ut\xE2nd \xEEn toate subdirectoarele. Calea de start este listat\u0103 prima. Filtra\u021Bi dup\u0103 nume cu un model glob (* \u0219i ?; --name \u021Bine cont de majuscule, --iname nu) sau dup\u0103 tip.",
3401
+ "cli.find.help.list_everything_under_path": "Listeaz\u0103 tot ce se afl\u0103 sub o cale",
3402
+ "cli.find.help.match_names_against_glob": "Potrive\u0219te numele cu un model glob",
3403
+ "cli.find.help.same_ignoring_case": "La fel, ignor\xE2nd majusculele",
3404
+ "cli.find.help.only_files_f_directories": "Doar fi\u0219iere (f) sau directoare (d)",
3405
+ "cli.find.help.list_everything_docs": "Listeaz\u0103 tot din ~/docs",
3406
+ "cli.find.help.find_all_txt_files": "G\u0103se\u0219te toate fi\u0219ierele .txt",
3407
+ "cli.find.help.directories_near_top": "Directoarele de la \xEEnceput",
3408
+ "cli.find.help.delete_all_tmp_files": "\u0218terge toate fi\u0219ierele .tmp",
3409
+ // ── Grep ─────────────────────────────────────────────────────────
3410
+ "cli.grep.description": "Caut\u0103 un model \xEEn con\u021Binutul fi\u0219ierelor",
3411
+ "cli.grep.help.print_lines_match_pattern": "Afi\u0219eaz\u0103 liniile care se potrivesc cu un model. Modelul este o expresie regulat\u0103, potrivirile sunt eviden\u021Biate, iar intrarea poate fi fi\u0219iere, directoare (cu -r) sau text transmis prin pipe.",
3412
+ "cli.grep.help.search_one_more_files": "Caut\u0103 \xEEntr-unul sau mai multe fi\u0219iere",
3413
+ "cli.grep.help.search_every_file_under": "Caut\u0103 \xEEn fiecare fi\u0219ier dintr-un director",
3414
+ "cli.grep.help.filter_piped_input": "Filtreaz\u0103 intrarea transmis\u0103 prin pipe",
3415
+ "cli.grep.help.case_insensitive_search": "C\u0103utare f\u0103r\u0103 deosebire \xEEntre majuscule \u0219i minuscule",
3416
+ "cli.grep.help.find_todos_line_numbers": "G\u0103se\u0219te TODO-urile cu numere de linie",
3417
+ "cli.grep.help.hide_comment_lines": "Ascunde liniile de comentariu",
3418
+ "cli.grep.help.count_matching_lines": "Num\u0103r\u0103 liniile care se potrivesc",
3419
+ // ── Head ─────────────────────────────────────────────────────────
3420
+ "cli.head.description": "Afi\u0219eaz\u0103 primele linii ale unui fi\u0219ier",
3421
+ "cli.head.help.print_first_lines_file": "Afi\u0219eaz\u0103 primele linii ale unui fi\u0219ier, implicit 10. Func\u021Bioneaz\u0103 \u0219i pe intrarea transmis\u0103 prin pipe. Cu mai multe fi\u0219iere, fiecare prime\u0219te un antet ==> name <==.",
3422
+ "cli.head.help.first_10_lines": "Primele 10 linii",
3423
+ "cli.head.help.first_lines": "Primele <count> linii",
3424
+ "cli.head.help.first_lines_piped_input": "Primele linii ale intr\u0103rii transmise prin pipe",
3425
+ "cli.head.help.show_start_file": "Afi\u0219eaz\u0103 \xEEnceputul unui fi\u0219ier",
3426
+ "cli.head.help.first_3_lines_each": "Primele 3 linii din fiecare fi\u0219ier",
3427
+ "cli.head.help.first_20_lines_log": "Primele 20 de linii din jurnal",
3428
+ // ── Ln ───────────────────────────────────────────────────────────
3429
+ "cli.ln.description": "Creeaz\u0103 leg\u0103turi simbolice",
3430
+ "cli.ln.help.create_symbolic_link_new": "Creeaz\u0103 o leg\u0103tur\u0103 simbolic\u0103: o cale nou\u0103 care trimite c\u0103tre alt fi\u0219ier sau director. Sunt acceptate doar leg\u0103turile simbolice (-s), iar \u021Binta nu trebuie s\u0103 existe \xEEnc\u0103.",
3431
+ "cli.ln.help.create_pointing": "Creeaz\u0103 <link> care trimite la <target>",
3432
+ "cli.ln.help.shortcut_file": "Scurt\u0103tur\u0103 c\u0103tre un fi\u0219ier",
3433
+ "cli.ln.help.shortcut_directory": "Scurt\u0103tur\u0103 c\u0103tre un director",
3434
+ // ── Mkdir ────────────────────────────────────────────────────────
3435
+ "cli.mkdir.description": "Creeaz\u0103 directoare",
3436
+ "cli.mkdir.help.create_new_directory_p": "Creeaz\u0103 un director nou. Cu -p sunt create \u0219i directoarele p\u0103rinte lips\u0103.",
3437
+ "cli.mkdir.help.create_one_more_directories": "Creeaz\u0103 unul sau mai multe directoare",
3438
+ "cli.mkdir.help.create_directory_missing_parents": "Creeaz\u0103 un director \u0219i p\u0103rin\u021Bii lips\u0103",
3439
+ "cli.mkdir.help.create_projects_current_directory": "Creeaz\u0103 projects \xEEn directorul curent",
3440
+ "cli.mkdir.help.create_whole_path_once": "Creeaz\u0103 \xEEntreaga cale dintr-o dat\u0103",
3441
+ // ── Mv ───────────────────────────────────────────────────────────
3442
+ "cli.mv.description": "Mut\u0103 sau redenume\u0219te fi\u0219iere \u0219i directoare",
3443
+ "cli.mv.help.move_rename_file_directory": "Mut\u0103 sau redenume\u0219te un fi\u0219ier sau un director. Dac\u0103 destina\u021Bia este un director existent, sursa este mutat\u0103 \xEEn el; altfel este redenumit\u0103. Un fi\u0219ier deja existent la destina\u021Bie este \xEEnlocuit.",
3444
+ "cli.mv.help.rename_file_directory": "Redenume\u0219te un fi\u0219ier sau un director",
3445
+ "cli.mv.help.move_them_directory": "Mut\u0103-le \xEEntr-un director",
3446
+ "cli.mv.help.rename_file": "Redenume\u0219te un fi\u0219ier",
3447
+ "cli.mv.help.move_docs": "Mut\u0103-l \xEEn ~/docs",
3448
+ "cli.mv.help.rename_directory": "Redenume\u0219te un director",
3449
+ // ── Paste ────────────────────────────────────────────────────────
3450
+ "cli.paste.description": "\xCEmbin\u0103 liniile fi\u0219ierelor unul l\xE2ng\u0103 altul",
3451
+ "cli.paste.help.join_files_side_side": "\xCEmbin\u0103 fi\u0219ierele unul l\xE2ng\u0103 altul: linia 1 din fiecare fi\u0219ier merge pe o singur\u0103 linie de ie\u0219ire, separat\u0103 printr-un tab, apoi linia 2 \u0219i a\u0219a mai departe. Cu -s, fiecare fi\u0219ier este \xEEmbinat pe o singur\u0103 linie. Intrarea transmis\u0103 prin pipe este citit\u0103 ca fi\u0219ierul - (sau ca unic\u0103 intrare c\xE2nd nu este numit niciun fi\u0219ier); -d prime\u0219te o list\u0103 de delimitatori folosi\u021Bi pe r\xE2nd.",
3452
+ "cli.paste.help.merge_files_line_line": "\xCEmbin\u0103 fi\u0219ierele linie cu linie",
3453
+ "cli.paste.help.join_all_lines_file": "\xCEmbin\u0103 toate liniile unui fi\u0219ier \xEEntr-una singur\u0103",
3454
+ "cli.paste.help.merge_piped_input_file": "\xCEmbin\u0103 intrarea transmis\u0103 prin pipe cu un fi\u0219ier",
3455
+ "cli.paste.help.two_columns_tab_separated": "Dou\u0103 coloane, separate prin tab",
3456
+ "cli.paste.help.merge_comma_separated": "\xCEmbin\u0103 separat prin virgul\u0103",
3457
+ "cli.paste.help.turn_list_one_csv": "Transform\u0103 o list\u0103 \xEEntr-o singur\u0103 linie CSV",
3458
+ // ── Pwd ──────────────────────────────────────────────────────────
3459
+ "cli.pwd.description": "Afi\u0219eaz\u0103 directorul de lucru curent",
3460
+ "cli.pwd.help.print_full_path_directory": "Afi\u0219eaz\u0103 calea complet\u0103 a directorului \xEEn care v\u0103 afla\u021Bi. C\u0103ile relative din celelalte comenzi pornesc de aici.",
3461
+ "cli.pwd.help.show_current_directory": "Afi\u0219eaz\u0103 directorul curent",
3462
+ "cli.pwd.help.example_home_user": "De exemplu /home/user",
3463
+ "cli.pwd.help.prints_home_user_docs": "Afi\u0219eaz\u0103 /home/user/docs",
3464
+ // ── Rm ───────────────────────────────────────────────────────────
3465
+ "cli.rm.description": "Elimin\u0103 fi\u0219iere sau directoare",
3466
+ "cli.rm.help.delete_file_directories_only": "\u0218terge un fi\u0219ier. Directoarele sunt eliminate doar cu -r, care \u0219terge tot ce se afl\u0103 \xEEn ele. Fi\u0219ierele \u0219terse nu pot fi recuperate.",
3467
+ "cli.rm.help.delete_one_more_files": "\u0218terge unul sau mai multe fi\u0219iere",
3468
+ "cli.rm.help.delete_directory_contents": "\u0218terge un director \u0219i con\u021Binutul s\u0103u",
3469
+ "cli.rm.help.delete_without_error_if": "\u0218terge f\u0103r\u0103 eroare dac\u0103 lipse\u0219te",
3470
+ "cli.rm.help.delete_one_file": "\u0218terge un fi\u0219ier",
3471
+ "cli.rm.help.delete_whole_directory": "\u0218terge un \xEEntreg director",
3472
+ "cli.rm.help.quiet_if_file_does": "Silen\u021Bios dac\u0103 fi\u0219ierul nu exist\u0103",
3473
+ // ── Rmdir ────────────────────────────────────────────────────────
3474
+ "cli.rmdir.description": "Elimin\u0103 directoare goale",
3475
+ "cli.rmdir.help.remove_empty_directory_refuses": "Elimin\u0103 un director gol. Refuz\u0103 s\u0103 elimine un director care mai con\u021Bine fi\u0219iere; folosi\u021Bi rm -r pentru asta.",
3476
+ "cli.rmdir.help.remove_empty_directories": "Elimin\u0103 directoare goale",
3477
+ "cli.rmdir.help.remove_directory_current_one": "Elimin\u0103 un director din cel curent",
3478
+ "cli.rmdir.help.remove_full_path": "Elimin\u0103 dup\u0103 calea complet\u0103",
3479
+ // ── Sed ──────────────────────────────────────────────────────────
3480
+ "cli.sed.description": "Editor de flux pentru filtrarea \u0219i transformarea textului",
3481
+ "cli.sed.help.edit_text_line_line": "Editeaz\u0103 textul linie cu linie cu un script: substituire (s/old/new/), \u0219tergere (d), afi\u0219are (p) sau ie\u0219ire (q), op\u021Bional limitate la un num\u0103r de linie, un interval (1,5, 3,$ sau /start/,/end/) ori la liniile care se potrivesc cu /regex/; ! dup\u0103 o adres\u0103 o inverseaz\u0103, iar ; separ\u0103 comenzile. \xCEnlocuirea poate folosi & (potrivirea) \u0219i \\1 p\xE2n\u0103 la \\9 (grupuri, scrise \\(...\\) sau, cu -E, (...)). Cite\u0219te fi\u0219iere sau intrare transmis\u0103 prin pipe \u0219i afi\u0219eaz\u0103 rezultatul, sau rescrie fi\u0219ierele cu -i.",
3482
+ "cli.sed.help.print_edited_file": "Afi\u0219eaz\u0103 fi\u0219ierul editat",
3483
+ "cli.sed.help.save_edits_file": "Salveaz\u0103 modific\u0103rile \xEEn fi\u0219ier",
3484
+ "cli.sed.help.print_only_selected_lines": "Afi\u0219eaz\u0103 doar liniile selectate",
3485
+ "cli.sed.help.edit_piped_input": "Editeaz\u0103 intrarea transmis\u0103 prin pipe",
3486
+ "cli.sed.help.replace_every_cat_dog": "\xCEnlocuie\u0219te fiecare cat cu dog",
3487
+ "cli.sed.help.edit_file_place": "Editeaz\u0103 fi\u0219ierul pe loc",
3488
+ "cli.sed.help.drop_comment_lines": "Elimin\u0103 liniile de comentariu",
3489
+ "cli.sed.help.print_lines_1_5": "Afi\u0219eaz\u0103 liniile 1 p\xE2n\u0103 la 5",
3490
+ "cli.sed.help.swap_two_words": "Inverseaz\u0103 dou\u0103 cuvinte",
3491
+ // ── Sh ───────────────────────────────────────────────────────────
3492
+ "cli.sh.description": "Execut\u0103 un fi\u0219ier script",
3493
+ "cli.sh.help.requires_execute": "(necesit\u0103 permisiunea de execu\u021Bie)",
3494
+ "cli.sh.help.script_syntax": "Sintaxa scriptului:",
3495
+ "cli.sh.help.comments": "Liniile care \xEEncep cu # sunt comentarii",
3496
+ "cli.sh.help.several_commands": "Mai multe comenzi pe o linie",
3497
+ "cli.sh.help.assignment": "Atribuirea unei variabile",
3498
+ "cli.sh.help.substitution": "Substituirea unei variabile",
3499
+ "cli.sh.help.stop_on_error": "Oprire la eroare (implicit)",
3500
+ "cli.sh.help.continue_on_errors": "Continu\u0103 la erori",
3501
+ "cli.sh.help.exit": "Opre\u0219te scriptul cu starea n",
3502
+ "cli.sh.help.control_flow": "Control al fluxului:",
3503
+ "cli.sh.help.until": "(until cmd: invers)",
3504
+ "cli.sh.help.break_continue": "Ie\u0219i / sari peste \xEEn bucl\u0103",
3505
+ "cli.sh.help.negate": "Neag\u0103 starea de ie\u0219ire",
3506
+ "cli.sh.help.conditions": "Condi\u021Biile sunt comenzi:",
3507
+ "cli.sh.help.conditions_status": "(stare 0 = adev\u0103rat; vezi help test). Buclele se opresc dup\u0103 10000 de itera\u021Bii",
3508
+ "cli.sh.help.conditions_loops": "de while/until; Ctrl+C opre\u0219te scriptul.",
3509
+ "cli.sh.help.example_script": "Script de exemplu:",
3510
+ // ── Sort ─────────────────────────────────────────────────────────
3511
+ "cli.sort.description": "Sorteaz\u0103 liniile fi\u0219ierelor text",
3512
+ "cli.sort.help.sort_lines_file_piped": "Sorteaz\u0103 liniile unui fi\u0219ier sau ale intr\u0103rii transmise prin pipe, implicit alfabetic. Sorta\u021Bi numeric, invers, dup\u0103 un c\xE2mp sau elimina\u021Bi duplicatele. Mai multe fi\u0219iere sunt sortate \xEEmpreun\u0103 \xEEntr-o singur\u0103 list\u0103.",
3513
+ "cli.sort.help.sort_lines_alphabetically": "Sorteaz\u0103 liniile alfabetic",
3514
+ "cli.sort.help.sort_field_split": "Sorteaz\u0103 dup\u0103 c\xE2mpul <n>, separat prin <sep>",
3515
+ "cli.sort.help.sort_piped_input": "Sorteaz\u0103 intrarea transmis\u0103 prin pipe",
3516
+ "cli.sort.help.z": "De la A la Z",
3517
+ "cli.sort.help.largest_number_first": "Cel mai mare num\u0103r primul",
3518
+ "cli.sort.help.sort_csv_second_column": "Sorteaz\u0103 un CSV dup\u0103 a doua coloan\u0103",
3519
+ "cli.sort.help.sorted_without_duplicates": "Sortat, f\u0103r\u0103 duplicate",
3520
+ // ── Stat ─────────────────────────────────────────────────────────
3521
+ "cli.stat.description": "Afi\u0219eaz\u0103 metadatele unui fi\u0219ier/director",
3522
+ "cli.stat.help.show_details_about_files": "Afi\u0219eaz\u0103 detalii despre fi\u0219iere sau directoare: calea complet\u0103, dimensiunea, tipul, permisiunile, proprietarul, grupul \u0219i c\xE2nd au fost create \u0219i modificate ultima dat\u0103.",
3523
+ "cli.stat.help.show_details_each_path": "Afi\u0219eaz\u0103 detalii pentru fiecare cale",
3524
+ "cli.stat.help.details_one_file": "Detaliile unui fi\u0219ier",
3525
+ "cli.stat.help.several_paths_once": "Mai multe c\u0103i deodat\u0103",
3526
+ // ── Tac ──────────────────────────────────────────────────────────
3527
+ "cli.tac.description": "Afi\u0219eaz\u0103 un fi\u0219ier \xEEn ordinea invers\u0103 a liniilor",
3528
+ "cli.tac.help.print_file_lines_reverse": "Afi\u0219eaz\u0103 un fi\u0219ier cu liniile \xEEn ordine invers\u0103, ultima linie prima. Func\u021Bioneaz\u0103 \u0219i pe intrarea transmis\u0103 prin pipe.",
3529
+ "cli.tac.help.print_file_bottom_top": "Afi\u0219eaz\u0103 un fi\u0219ier de jos \xEEn sus",
3530
+ "cli.tac.help.reverse_piped_input": "Inverseaz\u0103 intrarea transmis\u0103 prin pipe",
3531
+ "cli.tac.help.newest_log_lines_first": "Cele mai noi linii din jurnal primele",
3532
+ "cli.tac.help.reverse_list": "Inverseaz\u0103 o list\u0103",
3533
+ // ── Tail ─────────────────────────────────────────────────────────
3534
+ "cli.tail.description": "Afi\u0219eaz\u0103 ultimele linii ale unui fi\u0219ier",
3535
+ "cli.tail.help.print_last_lines_file": "Afi\u0219eaz\u0103 ultimele linii ale unui fi\u0219ier, implicit 10. Func\u021Bioneaz\u0103 \u0219i pe intrarea transmis\u0103 prin pipe. Cu mai multe fi\u0219iere, fiecare prime\u0219te un antet ==> name <==.",
3536
+ "cli.tail.help.last_10_lines": "Ultimele 10 linii",
3537
+ "cli.tail.help.last_lines": "Ultimele <count> linii",
3538
+ "cli.tail.help.last_lines_piped_input": "Ultimele linii ale intr\u0103rii transmise prin pipe",
3539
+ "cli.tail.help.show_end_log": "Afi\u0219eaz\u0103 sf\xE2r\u0219itul unui jurnal",
3540
+ "cli.tail.help.last_5_lines": "Ultimele 5 linii",
3541
+ "cli.tail.help.last_20_lines_log": "Ultimele 20 de linii din jurnal",
3542
+ // ── Tee ──────────────────────────────────────────────────────────
3543
+ "cli.tee.description": "Copiaz\u0103 intrarea din pipe \xEEn fi\u0219iere \u0219i \xEEn ie\u0219ire",
3544
+ "cli.tee.help.pass_piped_input_through": "Transmite intrarea din pipe neschimbat\u0103 \u0219i salveaz\u0103 o copie a ei \xEEn fiecare fi\u0219ier numit, suprascriindu-le sau ad\u0103ug\xE2nd cu -a. Ca tee din Unix, cite\u0219te doar intrarea transmis\u0103 prin pipe: pentru a copia un fi\u0219ier, transmite\u021Bi-l cu cat.",
3545
+ "cli.tee.help.show_piped_output_save": "Afi\u0219eaz\u0103 rezultatul din pipe \u0219i \xEEl salveaz\u0103",
3546
+ "cli.tee.help.append_instead_overwriting": "Adaug\u0103 \xEEn loc s\u0103 suprascrie",
3547
+ "cli.tee.help.show_save_copy": "Afi\u0219eaz\u0103 \u0219i salveaz\u0103 o copie",
3548
+ "cli.tee.help.add_line_log": "Adaug\u0103 o linie \xEEntr-un jurnal",
3549
+ "cli.tee.help.copy_source_txt_txt": "Copiaz\u0103 source.txt \xEEn a.txt \u0219i b.txt",
3550
+ // ── Touch ────────────────────────────────────────────────────────
3551
+ "cli.touch.description": "Creeaz\u0103 un fi\u0219ier gol sau \xEEi actualizeaz\u0103 marcajul de timp",
3552
+ "cli.touch.help.create_empty_file_update": "Creeaz\u0103 un fi\u0219ier gol sau actualizeaz\u0103 ora modific\u0103rii unui fi\u0219ier existent. Directorul p\u0103rinte trebuie s\u0103 existe deja.",
3553
+ "cli.touch.help.create_files_refresh_their": "Creeaz\u0103 fi\u0219ierele sau le re\xEEmprosp\u0103teaz\u0103 marcajele de timp",
3554
+ "cli.touch.help.create_empty_notes_txt": "Creeaz\u0103 un notes.txt gol",
3555
+ "cli.touch.help.create_file_docs": "Creeaz\u0103 un fi\u0219ier \xEEn ~/docs",
3556
+ // ── Tr ───────────────────────────────────────────────────────────
3557
+ "cli.tr.description": "Transform\u0103 sau \u0219terge caractere din intrarea transmis\u0103 prin pipe",
3558
+ "cli.tr.help.translate_characters_set1_matching": "Transform\u0103 caracterele din SET1 \xEEn caracterele corespunz\u0103toare din SET2, le \u0219terge (-d) sau comprim\u0103 repeti\u021Biile \xEEntr-unul singur (-s). Seturile pot folosi intervale precum a-z \u0219i clase precum [:upper:], [:lower:], [:digit:], [:alpha:], [:alnum:] \u0219i [:space:]. Secven\u021Bele \\n, \\t \u0219i \\\\ sunt \xEEn\u021Belese. Ca tr din Unix, cite\u0219te doar intrarea transmis\u0103 prin pipe \u0219i nu prime\u0219te fi\u0219iere ca operanzi: pentru a transforma un fi\u0219ier, transmite\u021Bi-l cu cat.",
3559
+ "cli.tr.help.replace_characters": "\xCEnlocuie\u0219te caractere",
3560
+ "cli.tr.help.delete_characters": "\u0218terge caractere",
3561
+ "cli.tr.help.squeeze_repeated_characters": "Comprim\u0103 caracterele repetate",
3562
+ "cli.tr.help.convert_file_upper_case": "Converte\u0219te un fi\u0219ier \xEEn majuscule",
3563
+ "cli.tr.help.upper_case_piped_text": "Textul din pipe \xEEn majuscule",
3564
+ "cli.tr.help.remove_all_digits": "Elimin\u0103 toate cifrele",
3565
+ "cli.tr.help.collapse_runs_spaces": "Comprim\u0103 secven\u021Bele de spa\u021Bii",
3566
+ // ── Tree ─────────────────────────────────────────────────────────
3567
+ "cli.tree.description": "Afi\u0219eaz\u0103 structura arborescent\u0103 a directoarelor",
3568
+ "cli.tree.help.draw_directory_everything_below": "Deseneaz\u0103 un director \u0219i tot ce se afl\u0103 sub el ca arbore, directoarele primele, urmate de num\u0103rul de directoare \u0219i fi\u0219iere. Implicit directorul curent.",
3569
+ "cli.tree.help.show_whole_tree": "Afi\u0219eaz\u0103 \xEEntregul arbore",
3570
+ "cli.tree.help.only_levels_deep": "Doar <n> niveluri \xEEn ad\xE2ncime",
3571
+ "cli.tree.help.tree_current_directory": "Arborele directorului curent",
3572
+ "cli.tree.help.tree_docs": "Arborele din ~/docs",
3573
+ "cli.tree.help.top_two_levels_only": "Doar primele dou\u0103 niveluri",
3574
+ // ── Uniq ─────────────────────────────────────────────────────────
3575
+ "cli.uniq.description": "Filtreaz\u0103 liniile duplicate adiacente dintr-un fi\u0219ier",
3576
+ "cli.uniq.help.collapse_repeated_lines_next": "Comprim\u0103 \xEEntr-una singur\u0103 liniile repetate care se afl\u0103 una l\xE2ng\u0103 alta. Sunt \xEEmbinate doar duplicatele adiacente, deci sorta\u021Bi mai \xEEnt\xE2i intrarea pentru a le prinde pe toate.",
3577
+ "cli.uniq.help.drop_adjacent_duplicate_lines": "Elimin\u0103 liniile duplicate adiacente",
3578
+ "cli.uniq.help.filter_piped_input": "Filtreaz\u0103 intrarea transmis\u0103 prin pipe",
3579
+ "cli.uniq.help.collapse_repeated_lines": "Comprim\u0103 liniile repetate",
3580
+ "cli.uniq.help.count_how_often_each": "Num\u0103r\u0103 de c\xE2te ori apare fiecare linie",
3581
+ "cli.uniq.help.show_only_duplicated_lines": "Afi\u0219eaz\u0103 doar liniile duplicate",
3582
+ // ── Wc ───────────────────────────────────────────────────────────
3583
+ "cli.wc.description": "Afi\u0219eaz\u0103 num\u0103rul de linii, cuvinte \u0219i caractere",
3584
+ "cli.wc.help.count_lines_words_characters": "Num\u0103r\u0103 liniile, cuvintele \u0219i caracterele din fi\u0219iere sau din intrarea transmis\u0103 prin pipe. Cu mai multe fi\u0219iere, la final este afi\u0219at\u0103 o linie cu totalul.",
3585
+ "cli.wc.help.lines_words_characters": "Linii, cuvinte \u0219i caractere",
3586
+ "cli.wc.help.only_line_count": "Doar num\u0103rul de linii",
3587
+ "cli.wc.help.count_piped_input": "Num\u0103r\u0103 intrarea transmis\u0103 prin pipe",
3588
+ "cli.wc.help.all_three_counts": "Toate cele trei num\u0103r\u0103tori",
3589
+ "cli.wc.help.line_counts_total": "Num\u0103rul de linii, cu total",
3590
+ "cli.wc.help.how_many_lines_mention": "C\xE2te linii men\u021Bioneaz\u0103 error",
3591
+ // ── Xargs ────────────────────────────────────────────────────────
3592
+ "cli.xargs.description": "Construie\u0219te \u0219i execut\u0103 comenzi pe baza intr\u0103rii din fi\u0219ier",
3593
+ "cli.xargs.help.run_command_arguments_taken": "Ruleaz\u0103 o comand\u0103 cu argumente preluate din intrare, separate prin spa\u021Bii sau linii noi. Implicit toate sunt ad\u0103ugate la o singur\u0103 comand\u0103; -n o ruleaz\u0103 \xEEn loturi, iar -I o ruleaz\u0103 o dat\u0103 pe linie, \xEEnlocuind un substituent. Op\u021Biunile xargs se pun \xEEnaintea comenzii; tot ce urmeaz\u0103 dup\u0103 ea, inclusiv flagurile, apar\u021Bine comenzii. Intrarea este text transmis prin pipe sau, f\u0103r\u0103 pipe, ultimul fi\u0219ier numit.",
3594
+ "cli.xargs.help.append_input_lines": "Adaug\u0103 liniile de intrare la <cmd>",
3595
+ "cli.xargs.help.run_once_per_line": "Ruleaz\u0103 <cmd> o dat\u0103 pe linie",
3596
+ "cli.xargs.help.read_arguments_file": "Cite\u0219te argumentele dintr-un fi\u0219ier",
3597
+ "cli.xargs.help.delete_every_tmp_file": "\u0218terge fiecare fi\u0219ier .tmp",
3598
+ "cli.xargs.help.copy_each_listed_file": "Copiaz\u0103 fiecare fi\u0219ier listat",
3599
+ "cli.xargs.help.one_mkdir_per_line": "Un mkdir pe linie",
3600
+ "cli.xargs.help.inner_command_keeps_flags": "Comanda interioar\u0103 \xEE\u0219i p\u0103streaz\u0103 flagurile",
3601
+ // ── Markdown ─────────────────────────────────────────────────────
3602
+ "cli.md.description": "Randeaz\u0103 Markdown \xEEn terminal",
3603
+ "cli.md.help.show_markdown_formatted_terminal": "Afi\u0219eaz\u0103 Markdown formatat \xEEn terminal: titluri, text aldin \u0219i cursiv, liste, citate, cod \u0219i linkuri. Transmite\u021Bi textul direct (\xEEntre ghilimele sau nu, \\n \xEEncepe o linie nou\u0103) sau transmite\u021Bi-l prin pipe de la alt\u0103 comand\u0103.",
3604
+ "cli.md.help.render_inline_text": "Randeaz\u0103 text transmis direct",
3605
+ "cli.md.help.same_optional_render_verb": "La fel, cu verbul op\u021Bional render (\u0219i preview, view)",
3606
+ "cli.md.help.render_output_command": "Randeaz\u0103 rezultatul unei comenzi",
3607
+ "cli.md.help.heading": "Un titlu",
3608
+ "cli.md.help.several_lines": "Mai multe linii",
3609
+ "cli.md.help.piped_text": "Text transmis prin pipe",
3610
+ "cli.md.help.same_using_aliases": "La fel, folosind aliasuri",
3611
+ // ── Todo ─────────────────────────────────────────────────────────
3612
+ "cli.todo.description": "Gestiona\u021Bi-v\u0103 sarcinile din terminal. Ad\u0103uga\u021Bi, lista\u021Bi, edita\u021Bi, finaliza\u021Bi \u0219i elimina\u021Bi elemente TODO.",
3613
+ "cli.todo.ls.description": "Afi\u0219eaz\u0103 elementele TODO",
3614
+ "cli.todo.add.description": "Adaug\u0103 o sarcin\u0103 nou\u0103",
3615
+ "cli.todo.edit.description": "Editeaz\u0103 textul sau termenul limit\u0103 al unei sarcini",
3616
+ "cli.todo.done.description": "Marcheaz\u0103 o sarcin\u0103 ca finalizat\u0103",
3617
+ "cli.todo.toggle.description": "Comut\u0103 o sarcin\u0103 \xEEntre finalizat\u0103 \u0219i nefinalizat\u0103",
3618
+ "cli.todo.rm.description": "Elimin\u0103 o sarcin\u0103 dup\u0103 ID",
3619
+ "cli.todo.help.commands": "Comenzi:",
3620
+ "cli.todo.help.list_all": "Afi\u0219eaz\u0103 toate sarcinile",
3621
+ "cli.todo.help.list_pending": "Afi\u0219eaz\u0103 doar sarcinile \xEEn a\u0219teptare",
3622
+ "cli.todo.help.list_completed": "Afi\u0219eaz\u0103 doar sarcinile finalizate",
3623
+ "cli.todo.help.list_overdue": "Afi\u0219eaz\u0103 doar sarcinile \xEEnt\xE2rziate",
3624
+ "cli.todo.help.add": "Adaug\u0103 o sarcin\u0103 nou\u0103",
3625
+ "cli.todo.help.add_due": "Adaug\u0103 cu termen limit\u0103",
3626
+ "cli.todo.help.edit": "Editeaz\u0103 o sarcin\u0103",
3627
+ "cli.todo.help.done": "Marcheaz\u0103 o sarcin\u0103 ca finalizat\u0103",
3628
+ "cli.todo.help.toggle": "Comut\u0103 \xEEntre finalizat/nefinalizat",
3629
+ "cli.todo.help.remove": "Elimin\u0103 o sarcin\u0103",
3630
+ "cli.todo.help.remove_all": "Elimin\u0103 toate sarcinile",
3631
+ "cli.todo.help.due_formats": "Formate pentru termenul limit\u0103:",
3632
+ // ── True ─────────────────────────────────────────────────────────
3633
+ "cli.true.description": "Nu face nimic, cu succes (cod de ie\u0219ire 0)",
3634
+ // ── False ────────────────────────────────────────────────────────
3635
+ "cli.false.description": "Nu face nimic, f\u0103r\u0103 succes (cod de ie\u0219ire 1)",
3636
+ // ── Htop ─────────────────────────────────────────────────────────
3637
+ "cli.htop.description": "Monitor interactiv de procese \u0219i servicii"
2882
3638
  };
2883
3639
 
2884
3640
  // src/public-api.ts