@ghostystudio/cli 0.38.0 → 0.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -0
- package/dist/index.js +400 -222
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -32,9 +32,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
32
32
|
mod
|
|
33
33
|
));
|
|
34
34
|
|
|
35
|
-
//
|
|
35
|
+
// ../../node_modules/yaml/dist/nodes/identity.js
|
|
36
36
|
var require_identity = __commonJS({
|
|
37
|
-
"
|
|
37
|
+
"../../node_modules/yaml/dist/nodes/identity.js"(exports) {
|
|
38
38
|
"use strict";
|
|
39
39
|
var ALIAS = /* @__PURE__ */ Symbol.for("yaml.alias");
|
|
40
40
|
var DOC = /* @__PURE__ */ Symbol.for("yaml.document");
|
|
@@ -89,13 +89,13 @@ var require_identity = __commonJS({
|
|
|
89
89
|
}
|
|
90
90
|
});
|
|
91
91
|
|
|
92
|
-
//
|
|
92
|
+
// ../../node_modules/yaml/dist/visit.js
|
|
93
93
|
var require_visit = __commonJS({
|
|
94
|
-
"
|
|
94
|
+
"../../node_modules/yaml/dist/visit.js"(exports) {
|
|
95
95
|
"use strict";
|
|
96
96
|
var identity = require_identity();
|
|
97
97
|
var BREAK = /* @__PURE__ */ Symbol("break visit");
|
|
98
|
-
var
|
|
98
|
+
var SKIP2 = /* @__PURE__ */ Symbol("skip children");
|
|
99
99
|
var REMOVE = /* @__PURE__ */ Symbol("remove node");
|
|
100
100
|
function visit(node, visitor) {
|
|
101
101
|
const visitor_ = initVisitor(visitor);
|
|
@@ -107,7 +107,7 @@ var require_visit = __commonJS({
|
|
|
107
107
|
visit_(null, node, visitor_, Object.freeze([]));
|
|
108
108
|
}
|
|
109
109
|
visit.BREAK = BREAK;
|
|
110
|
-
visit.SKIP =
|
|
110
|
+
visit.SKIP = SKIP2;
|
|
111
111
|
visit.REMOVE = REMOVE;
|
|
112
112
|
function visit_(key, node, visitor, path) {
|
|
113
113
|
const ctrl = callVisitor(key, node, visitor, path);
|
|
@@ -155,7 +155,7 @@ var require_visit = __commonJS({
|
|
|
155
155
|
await visitAsync_(null, node, visitor_, Object.freeze([]));
|
|
156
156
|
}
|
|
157
157
|
visitAsync.BREAK = BREAK;
|
|
158
|
-
visitAsync.SKIP =
|
|
158
|
+
visitAsync.SKIP = SKIP2;
|
|
159
159
|
visitAsync.REMOVE = REMOVE;
|
|
160
160
|
async function visitAsync_(key, node, visitor, path) {
|
|
161
161
|
const ctrl = await callVisitor(key, node, visitor, path);
|
|
@@ -247,9 +247,9 @@ var require_visit = __commonJS({
|
|
|
247
247
|
}
|
|
248
248
|
});
|
|
249
249
|
|
|
250
|
-
//
|
|
250
|
+
// ../../node_modules/yaml/dist/doc/directives.js
|
|
251
251
|
var require_directives = __commonJS({
|
|
252
|
-
"
|
|
252
|
+
"../../node_modules/yaml/dist/doc/directives.js"(exports) {
|
|
253
253
|
"use strict";
|
|
254
254
|
var identity = require_identity();
|
|
255
255
|
var visit = require_visit();
|
|
@@ -418,9 +418,9 @@ var require_directives = __commonJS({
|
|
|
418
418
|
}
|
|
419
419
|
});
|
|
420
420
|
|
|
421
|
-
//
|
|
421
|
+
// ../../node_modules/yaml/dist/doc/anchors.js
|
|
422
422
|
var require_anchors = __commonJS({
|
|
423
|
-
"
|
|
423
|
+
"../../node_modules/yaml/dist/doc/anchors.js"(exports) {
|
|
424
424
|
"use strict";
|
|
425
425
|
var identity = require_identity();
|
|
426
426
|
var visit = require_visit();
|
|
@@ -488,9 +488,9 @@ var require_anchors = __commonJS({
|
|
|
488
488
|
}
|
|
489
489
|
});
|
|
490
490
|
|
|
491
|
-
//
|
|
491
|
+
// ../../node_modules/yaml/dist/doc/applyReviver.js
|
|
492
492
|
var require_applyReviver = __commonJS({
|
|
493
|
-
"
|
|
493
|
+
"../../node_modules/yaml/dist/doc/applyReviver.js"(exports) {
|
|
494
494
|
"use strict";
|
|
495
495
|
function applyReviver(reviver, obj, key, val) {
|
|
496
496
|
if (val && typeof val === "object") {
|
|
@@ -538,9 +538,9 @@ var require_applyReviver = __commonJS({
|
|
|
538
538
|
}
|
|
539
539
|
});
|
|
540
540
|
|
|
541
|
-
//
|
|
541
|
+
// ../../node_modules/yaml/dist/nodes/toJS.js
|
|
542
542
|
var require_toJS = __commonJS({
|
|
543
|
-
"
|
|
543
|
+
"../../node_modules/yaml/dist/nodes/toJS.js"(exports) {
|
|
544
544
|
"use strict";
|
|
545
545
|
var identity = require_identity();
|
|
546
546
|
function toJS(value, arg, ctx) {
|
|
@@ -568,9 +568,9 @@ var require_toJS = __commonJS({
|
|
|
568
568
|
}
|
|
569
569
|
});
|
|
570
570
|
|
|
571
|
-
//
|
|
571
|
+
// ../../node_modules/yaml/dist/nodes/Node.js
|
|
572
572
|
var require_Node = __commonJS({
|
|
573
|
-
"
|
|
573
|
+
"../../node_modules/yaml/dist/nodes/Node.js"(exports) {
|
|
574
574
|
"use strict";
|
|
575
575
|
var applyReviver = require_applyReviver();
|
|
576
576
|
var identity = require_identity();
|
|
@@ -609,9 +609,9 @@ var require_Node = __commonJS({
|
|
|
609
609
|
}
|
|
610
610
|
});
|
|
611
611
|
|
|
612
|
-
//
|
|
612
|
+
// ../../node_modules/yaml/dist/nodes/Alias.js
|
|
613
613
|
var require_Alias = __commonJS({
|
|
614
|
-
"
|
|
614
|
+
"../../node_modules/yaml/dist/nodes/Alias.js"(exports) {
|
|
615
615
|
"use strict";
|
|
616
616
|
var anchors = require_anchors();
|
|
617
617
|
var visit = require_visit();
|
|
@@ -727,9 +727,9 @@ var require_Alias = __commonJS({
|
|
|
727
727
|
}
|
|
728
728
|
});
|
|
729
729
|
|
|
730
|
-
//
|
|
730
|
+
// ../../node_modules/yaml/dist/nodes/Scalar.js
|
|
731
731
|
var require_Scalar = __commonJS({
|
|
732
|
-
"
|
|
732
|
+
"../../node_modules/yaml/dist/nodes/Scalar.js"(exports) {
|
|
733
733
|
"use strict";
|
|
734
734
|
var identity = require_identity();
|
|
735
735
|
var Node = require_Node();
|
|
@@ -757,9 +757,9 @@ var require_Scalar = __commonJS({
|
|
|
757
757
|
}
|
|
758
758
|
});
|
|
759
759
|
|
|
760
|
-
//
|
|
760
|
+
// ../../node_modules/yaml/dist/doc/createNode.js
|
|
761
761
|
var require_createNode = __commonJS({
|
|
762
|
-
"
|
|
762
|
+
"../../node_modules/yaml/dist/doc/createNode.js"(exports) {
|
|
763
763
|
"use strict";
|
|
764
764
|
var Alias = require_Alias();
|
|
765
765
|
var identity = require_identity();
|
|
@@ -832,9 +832,9 @@ var require_createNode = __commonJS({
|
|
|
832
832
|
}
|
|
833
833
|
});
|
|
834
834
|
|
|
835
|
-
//
|
|
835
|
+
// ../../node_modules/yaml/dist/nodes/Collection.js
|
|
836
836
|
var require_Collection = __commonJS({
|
|
837
|
-
"
|
|
837
|
+
"../../node_modules/yaml/dist/nodes/Collection.js"(exports) {
|
|
838
838
|
"use strict";
|
|
839
839
|
var createNode = require_createNode();
|
|
840
840
|
var identity = require_identity();
|
|
@@ -975,9 +975,9 @@ var require_Collection = __commonJS({
|
|
|
975
975
|
}
|
|
976
976
|
});
|
|
977
977
|
|
|
978
|
-
//
|
|
978
|
+
// ../../node_modules/yaml/dist/stringify/stringifyComment.js
|
|
979
979
|
var require_stringifyComment = __commonJS({
|
|
980
|
-
"
|
|
980
|
+
"../../node_modules/yaml/dist/stringify/stringifyComment.js"(exports) {
|
|
981
981
|
"use strict";
|
|
982
982
|
var stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, "#");
|
|
983
983
|
function indentComment(comment, indent) {
|
|
@@ -992,9 +992,9 @@ var require_stringifyComment = __commonJS({
|
|
|
992
992
|
}
|
|
993
993
|
});
|
|
994
994
|
|
|
995
|
-
//
|
|
995
|
+
// ../../node_modules/yaml/dist/stringify/foldFlowLines.js
|
|
996
996
|
var require_foldFlowLines = __commonJS({
|
|
997
|
-
"
|
|
997
|
+
"../../node_modules/yaml/dist/stringify/foldFlowLines.js"(exports) {
|
|
998
998
|
"use strict";
|
|
999
999
|
var FOLD_FLOW = "flow";
|
|
1000
1000
|
var FOLD_BLOCK = "block";
|
|
@@ -1128,9 +1128,9 @@ ${indent}${text.slice(fold + 1, end2)}`;
|
|
|
1128
1128
|
}
|
|
1129
1129
|
});
|
|
1130
1130
|
|
|
1131
|
-
//
|
|
1131
|
+
// ../../node_modules/yaml/dist/stringify/stringifyString.js
|
|
1132
1132
|
var require_stringifyString = __commonJS({
|
|
1133
|
-
"
|
|
1133
|
+
"../../node_modules/yaml/dist/stringify/stringifyString.js"(exports) {
|
|
1134
1134
|
"use strict";
|
|
1135
1135
|
var Scalar = require_Scalar();
|
|
1136
1136
|
var foldFlowLines = require_foldFlowLines();
|
|
@@ -1411,9 +1411,9 @@ ${indent}`);
|
|
|
1411
1411
|
}
|
|
1412
1412
|
});
|
|
1413
1413
|
|
|
1414
|
-
//
|
|
1414
|
+
// ../../node_modules/yaml/dist/stringify/stringify.js
|
|
1415
1415
|
var require_stringify = __commonJS({
|
|
1416
|
-
"
|
|
1416
|
+
"../../node_modules/yaml/dist/stringify/stringify.js"(exports) {
|
|
1417
1417
|
"use strict";
|
|
1418
1418
|
var anchors = require_anchors();
|
|
1419
1419
|
var identity = require_identity();
|
|
@@ -1535,9 +1535,9 @@ ${ctx.indent}${str}`;
|
|
|
1535
1535
|
}
|
|
1536
1536
|
});
|
|
1537
1537
|
|
|
1538
|
-
//
|
|
1538
|
+
// ../../node_modules/yaml/dist/stringify/stringifyPair.js
|
|
1539
1539
|
var require_stringifyPair = __commonJS({
|
|
1540
|
-
"
|
|
1540
|
+
"../../node_modules/yaml/dist/stringify/stringifyPair.js"(exports) {
|
|
1541
1541
|
"use strict";
|
|
1542
1542
|
var identity = require_identity();
|
|
1543
1543
|
var Scalar = require_Scalar();
|
|
@@ -1668,9 +1668,9 @@ ${ctx.indent}`;
|
|
|
1668
1668
|
}
|
|
1669
1669
|
});
|
|
1670
1670
|
|
|
1671
|
-
//
|
|
1671
|
+
// ../../node_modules/yaml/dist/log.js
|
|
1672
1672
|
var require_log = __commonJS({
|
|
1673
|
-
"
|
|
1673
|
+
"../../node_modules/yaml/dist/log.js"(exports) {
|
|
1674
1674
|
"use strict";
|
|
1675
1675
|
var node_process = __require("process");
|
|
1676
1676
|
function debug(logLevel, ...messages) {
|
|
@@ -1690,9 +1690,9 @@ var require_log = __commonJS({
|
|
|
1690
1690
|
}
|
|
1691
1691
|
});
|
|
1692
1692
|
|
|
1693
|
-
//
|
|
1693
|
+
// ../../node_modules/yaml/dist/schema/yaml-1.1/merge.js
|
|
1694
1694
|
var require_merge = __commonJS({
|
|
1695
|
-
"
|
|
1695
|
+
"../../node_modules/yaml/dist/schema/yaml-1.1/merge.js"(exports) {
|
|
1696
1696
|
"use strict";
|
|
1697
1697
|
var identity = require_identity();
|
|
1698
1698
|
var Scalar = require_Scalar();
|
|
@@ -1750,9 +1750,9 @@ var require_merge = __commonJS({
|
|
|
1750
1750
|
}
|
|
1751
1751
|
});
|
|
1752
1752
|
|
|
1753
|
-
//
|
|
1753
|
+
// ../../node_modules/yaml/dist/nodes/addPairToJSMap.js
|
|
1754
1754
|
var require_addPairToJSMap = __commonJS({
|
|
1755
|
-
"
|
|
1755
|
+
"../../node_modules/yaml/dist/nodes/addPairToJSMap.js"(exports) {
|
|
1756
1756
|
"use strict";
|
|
1757
1757
|
var log = require_log();
|
|
1758
1758
|
var merge = require_merge();
|
|
@@ -1814,9 +1814,9 @@ var require_addPairToJSMap = __commonJS({
|
|
|
1814
1814
|
}
|
|
1815
1815
|
});
|
|
1816
1816
|
|
|
1817
|
-
//
|
|
1817
|
+
// ../../node_modules/yaml/dist/nodes/Pair.js
|
|
1818
1818
|
var require_Pair = __commonJS({
|
|
1819
|
-
"
|
|
1819
|
+
"../../node_modules/yaml/dist/nodes/Pair.js"(exports) {
|
|
1820
1820
|
"use strict";
|
|
1821
1821
|
var createNode = require_createNode();
|
|
1822
1822
|
var stringifyPair = require_stringifyPair();
|
|
@@ -1854,9 +1854,9 @@ var require_Pair = __commonJS({
|
|
|
1854
1854
|
}
|
|
1855
1855
|
});
|
|
1856
1856
|
|
|
1857
|
-
//
|
|
1857
|
+
// ../../node_modules/yaml/dist/stringify/stringifyCollection.js
|
|
1858
1858
|
var require_stringifyCollection = __commonJS({
|
|
1859
|
-
"
|
|
1859
|
+
"../../node_modules/yaml/dist/stringify/stringifyCollection.js"(exports) {
|
|
1860
1860
|
"use strict";
|
|
1861
1861
|
var identity = require_identity();
|
|
1862
1862
|
var stringify = require_stringify();
|
|
@@ -2005,9 +2005,9 @@ ${indent}${end}`;
|
|
|
2005
2005
|
}
|
|
2006
2006
|
});
|
|
2007
2007
|
|
|
2008
|
-
//
|
|
2008
|
+
// ../../node_modules/yaml/dist/nodes/YAMLMap.js
|
|
2009
2009
|
var require_YAMLMap = __commonJS({
|
|
2010
|
-
"
|
|
2010
|
+
"../../node_modules/yaml/dist/nodes/YAMLMap.js"(exports) {
|
|
2011
2011
|
"use strict";
|
|
2012
2012
|
var stringifyCollection = require_stringifyCollection();
|
|
2013
2013
|
var addPairToJSMap = require_addPairToJSMap();
|
|
@@ -2149,9 +2149,9 @@ var require_YAMLMap = __commonJS({
|
|
|
2149
2149
|
}
|
|
2150
2150
|
});
|
|
2151
2151
|
|
|
2152
|
-
//
|
|
2152
|
+
// ../../node_modules/yaml/dist/schema/common/map.js
|
|
2153
2153
|
var require_map = __commonJS({
|
|
2154
|
-
"
|
|
2154
|
+
"../../node_modules/yaml/dist/schema/common/map.js"(exports) {
|
|
2155
2155
|
"use strict";
|
|
2156
2156
|
var identity = require_identity();
|
|
2157
2157
|
var YAMLMap = require_YAMLMap();
|
|
@@ -2171,9 +2171,9 @@ var require_map = __commonJS({
|
|
|
2171
2171
|
}
|
|
2172
2172
|
});
|
|
2173
2173
|
|
|
2174
|
-
//
|
|
2174
|
+
// ../../node_modules/yaml/dist/nodes/YAMLSeq.js
|
|
2175
2175
|
var require_YAMLSeq = __commonJS({
|
|
2176
|
-
"
|
|
2176
|
+
"../../node_modules/yaml/dist/nodes/YAMLSeq.js"(exports) {
|
|
2177
2177
|
"use strict";
|
|
2178
2178
|
var createNode = require_createNode();
|
|
2179
2179
|
var stringifyCollection = require_stringifyCollection();
|
|
@@ -2287,9 +2287,9 @@ var require_YAMLSeq = __commonJS({
|
|
|
2287
2287
|
}
|
|
2288
2288
|
});
|
|
2289
2289
|
|
|
2290
|
-
//
|
|
2290
|
+
// ../../node_modules/yaml/dist/schema/common/seq.js
|
|
2291
2291
|
var require_seq = __commonJS({
|
|
2292
|
-
"
|
|
2292
|
+
"../../node_modules/yaml/dist/schema/common/seq.js"(exports) {
|
|
2293
2293
|
"use strict";
|
|
2294
2294
|
var identity = require_identity();
|
|
2295
2295
|
var YAMLSeq = require_YAMLSeq();
|
|
@@ -2309,9 +2309,9 @@ var require_seq = __commonJS({
|
|
|
2309
2309
|
}
|
|
2310
2310
|
});
|
|
2311
2311
|
|
|
2312
|
-
//
|
|
2312
|
+
// ../../node_modules/yaml/dist/schema/common/string.js
|
|
2313
2313
|
var require_string = __commonJS({
|
|
2314
|
-
"
|
|
2314
|
+
"../../node_modules/yaml/dist/schema/common/string.js"(exports) {
|
|
2315
2315
|
"use strict";
|
|
2316
2316
|
var stringifyString = require_stringifyString();
|
|
2317
2317
|
var string = {
|
|
@@ -2328,9 +2328,9 @@ var require_string = __commonJS({
|
|
|
2328
2328
|
}
|
|
2329
2329
|
});
|
|
2330
2330
|
|
|
2331
|
-
//
|
|
2331
|
+
// ../../node_modules/yaml/dist/schema/common/null.js
|
|
2332
2332
|
var require_null = __commonJS({
|
|
2333
|
-
"
|
|
2333
|
+
"../../node_modules/yaml/dist/schema/common/null.js"(exports) {
|
|
2334
2334
|
"use strict";
|
|
2335
2335
|
var Scalar = require_Scalar();
|
|
2336
2336
|
var nullTag = {
|
|
@@ -2346,9 +2346,9 @@ var require_null = __commonJS({
|
|
|
2346
2346
|
}
|
|
2347
2347
|
});
|
|
2348
2348
|
|
|
2349
|
-
//
|
|
2349
|
+
// ../../node_modules/yaml/dist/schema/core/bool.js
|
|
2350
2350
|
var require_bool = __commonJS({
|
|
2351
|
-
"
|
|
2351
|
+
"../../node_modules/yaml/dist/schema/core/bool.js"(exports) {
|
|
2352
2352
|
"use strict";
|
|
2353
2353
|
var Scalar = require_Scalar();
|
|
2354
2354
|
var boolTag = {
|
|
@@ -2370,9 +2370,9 @@ var require_bool = __commonJS({
|
|
|
2370
2370
|
}
|
|
2371
2371
|
});
|
|
2372
2372
|
|
|
2373
|
-
//
|
|
2373
|
+
// ../../node_modules/yaml/dist/stringify/stringifyNumber.js
|
|
2374
2374
|
var require_stringifyNumber = __commonJS({
|
|
2375
|
-
"
|
|
2375
|
+
"../../node_modules/yaml/dist/stringify/stringifyNumber.js"(exports) {
|
|
2376
2376
|
"use strict";
|
|
2377
2377
|
function stringifyNumber({ format, minFractionDigits, tag, value }) {
|
|
2378
2378
|
if (typeof value === "bigint")
|
|
@@ -2397,9 +2397,9 @@ var require_stringifyNumber = __commonJS({
|
|
|
2397
2397
|
}
|
|
2398
2398
|
});
|
|
2399
2399
|
|
|
2400
|
-
//
|
|
2400
|
+
// ../../node_modules/yaml/dist/schema/core/float.js
|
|
2401
2401
|
var require_float = __commonJS({
|
|
2402
|
-
"
|
|
2402
|
+
"../../node_modules/yaml/dist/schema/core/float.js"(exports) {
|
|
2403
2403
|
"use strict";
|
|
2404
2404
|
var Scalar = require_Scalar();
|
|
2405
2405
|
var stringifyNumber = require_stringifyNumber();
|
|
@@ -2443,9 +2443,9 @@ var require_float = __commonJS({
|
|
|
2443
2443
|
}
|
|
2444
2444
|
});
|
|
2445
2445
|
|
|
2446
|
-
//
|
|
2446
|
+
// ../../node_modules/yaml/dist/schema/core/int.js
|
|
2447
2447
|
var require_int = __commonJS({
|
|
2448
|
-
"
|
|
2448
|
+
"../../node_modules/yaml/dist/schema/core/int.js"(exports) {
|
|
2449
2449
|
"use strict";
|
|
2450
2450
|
var stringifyNumber = require_stringifyNumber();
|
|
2451
2451
|
var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
|
|
@@ -2488,9 +2488,9 @@ var require_int = __commonJS({
|
|
|
2488
2488
|
}
|
|
2489
2489
|
});
|
|
2490
2490
|
|
|
2491
|
-
//
|
|
2491
|
+
// ../../node_modules/yaml/dist/schema/core/schema.js
|
|
2492
2492
|
var require_schema = __commonJS({
|
|
2493
|
-
"
|
|
2493
|
+
"../../node_modules/yaml/dist/schema/core/schema.js"(exports) {
|
|
2494
2494
|
"use strict";
|
|
2495
2495
|
var map = require_map();
|
|
2496
2496
|
var _null = require_null();
|
|
@@ -2516,9 +2516,9 @@ var require_schema = __commonJS({
|
|
|
2516
2516
|
}
|
|
2517
2517
|
});
|
|
2518
2518
|
|
|
2519
|
-
//
|
|
2519
|
+
// ../../node_modules/yaml/dist/schema/json/schema.js
|
|
2520
2520
|
var require_schema2 = __commonJS({
|
|
2521
|
-
"
|
|
2521
|
+
"../../node_modules/yaml/dist/schema/json/schema.js"(exports) {
|
|
2522
2522
|
"use strict";
|
|
2523
2523
|
var Scalar = require_Scalar();
|
|
2524
2524
|
var map = require_map();
|
|
@@ -2583,9 +2583,9 @@ var require_schema2 = __commonJS({
|
|
|
2583
2583
|
}
|
|
2584
2584
|
});
|
|
2585
2585
|
|
|
2586
|
-
//
|
|
2586
|
+
// ../../node_modules/yaml/dist/schema/yaml-1.1/binary.js
|
|
2587
2587
|
var require_binary = __commonJS({
|
|
2588
|
-
"
|
|
2588
|
+
"../../node_modules/yaml/dist/schema/yaml-1.1/binary.js"(exports) {
|
|
2589
2589
|
"use strict";
|
|
2590
2590
|
var node_buffer = __require("buffer");
|
|
2591
2591
|
var Scalar = require_Scalar();
|
|
@@ -2649,9 +2649,9 @@ var require_binary = __commonJS({
|
|
|
2649
2649
|
}
|
|
2650
2650
|
});
|
|
2651
2651
|
|
|
2652
|
-
//
|
|
2652
|
+
// ../../node_modules/yaml/dist/schema/yaml-1.1/pairs.js
|
|
2653
2653
|
var require_pairs = __commonJS({
|
|
2654
|
-
"
|
|
2654
|
+
"../../node_modules/yaml/dist/schema/yaml-1.1/pairs.js"(exports) {
|
|
2655
2655
|
"use strict";
|
|
2656
2656
|
var identity = require_identity();
|
|
2657
2657
|
var Pair = require_Pair();
|
|
@@ -2727,9 +2727,9 @@ ${cn.comment}` : item.comment;
|
|
|
2727
2727
|
}
|
|
2728
2728
|
});
|
|
2729
2729
|
|
|
2730
|
-
//
|
|
2730
|
+
// ../../node_modules/yaml/dist/schema/yaml-1.1/omap.js
|
|
2731
2731
|
var require_omap = __commonJS({
|
|
2732
|
-
"
|
|
2732
|
+
"../../node_modules/yaml/dist/schema/yaml-1.1/omap.js"(exports) {
|
|
2733
2733
|
"use strict";
|
|
2734
2734
|
var identity = require_identity();
|
|
2735
2735
|
var toJS = require_toJS();
|
|
@@ -2805,9 +2805,9 @@ var require_omap = __commonJS({
|
|
|
2805
2805
|
}
|
|
2806
2806
|
});
|
|
2807
2807
|
|
|
2808
|
-
//
|
|
2808
|
+
// ../../node_modules/yaml/dist/schema/yaml-1.1/bool.js
|
|
2809
2809
|
var require_bool2 = __commonJS({
|
|
2810
|
-
"
|
|
2810
|
+
"../../node_modules/yaml/dist/schema/yaml-1.1/bool.js"(exports) {
|
|
2811
2811
|
"use strict";
|
|
2812
2812
|
var Scalar = require_Scalar();
|
|
2813
2813
|
function boolStringify({ value, source }, ctx) {
|
|
@@ -2837,9 +2837,9 @@ var require_bool2 = __commonJS({
|
|
|
2837
2837
|
}
|
|
2838
2838
|
});
|
|
2839
2839
|
|
|
2840
|
-
//
|
|
2840
|
+
// ../../node_modules/yaml/dist/schema/yaml-1.1/float.js
|
|
2841
2841
|
var require_float2 = __commonJS({
|
|
2842
|
-
"
|
|
2842
|
+
"../../node_modules/yaml/dist/schema/yaml-1.1/float.js"(exports) {
|
|
2843
2843
|
"use strict";
|
|
2844
2844
|
var Scalar = require_Scalar();
|
|
2845
2845
|
var stringifyNumber = require_stringifyNumber();
|
|
@@ -2886,9 +2886,9 @@ var require_float2 = __commonJS({
|
|
|
2886
2886
|
}
|
|
2887
2887
|
});
|
|
2888
2888
|
|
|
2889
|
-
//
|
|
2889
|
+
// ../../node_modules/yaml/dist/schema/yaml-1.1/int.js
|
|
2890
2890
|
var require_int2 = __commonJS({
|
|
2891
|
-
"
|
|
2891
|
+
"../../node_modules/yaml/dist/schema/yaml-1.1/int.js"(exports) {
|
|
2892
2892
|
"use strict";
|
|
2893
2893
|
var stringifyNumber = require_stringifyNumber();
|
|
2894
2894
|
var intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
|
|
@@ -2965,9 +2965,9 @@ var require_int2 = __commonJS({
|
|
|
2965
2965
|
}
|
|
2966
2966
|
});
|
|
2967
2967
|
|
|
2968
|
-
//
|
|
2968
|
+
// ../../node_modules/yaml/dist/schema/yaml-1.1/set.js
|
|
2969
2969
|
var require_set = __commonJS({
|
|
2970
|
-
"
|
|
2970
|
+
"../../node_modules/yaml/dist/schema/yaml-1.1/set.js"(exports) {
|
|
2971
2971
|
"use strict";
|
|
2972
2972
|
var identity = require_identity();
|
|
2973
2973
|
var Pair = require_Pair();
|
|
@@ -3054,9 +3054,9 @@ var require_set = __commonJS({
|
|
|
3054
3054
|
}
|
|
3055
3055
|
});
|
|
3056
3056
|
|
|
3057
|
-
//
|
|
3057
|
+
// ../../node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
|
|
3058
3058
|
var require_timestamp = __commonJS({
|
|
3059
|
-
"
|
|
3059
|
+
"../../node_modules/yaml/dist/schema/yaml-1.1/timestamp.js"(exports) {
|
|
3060
3060
|
"use strict";
|
|
3061
3061
|
var stringifyNumber = require_stringifyNumber();
|
|
3062
3062
|
function parseSexagesimal(str, asBigInt) {
|
|
@@ -3122,9 +3122,9 @@ var require_timestamp = __commonJS({
|
|
|
3122
3122
|
const match = str.match(timestamp.test);
|
|
3123
3123
|
if (!match)
|
|
3124
3124
|
throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");
|
|
3125
|
-
const [, year, month,
|
|
3125
|
+
const [, year, month, day2, hour, minute, second] = match.map(Number);
|
|
3126
3126
|
const millisec = match[7] ? Number((match[7] + "00").substr(1, 3)) : 0;
|
|
3127
|
-
let date = Date.UTC(year, month - 1,
|
|
3127
|
+
let date = Date.UTC(year, month - 1, day2, hour || 0, minute || 0, second || 0, millisec);
|
|
3128
3128
|
const tz = match[8];
|
|
3129
3129
|
if (tz && tz !== "Z") {
|
|
3130
3130
|
let d = parseSexagesimal(tz, false);
|
|
@@ -3142,9 +3142,9 @@ var require_timestamp = __commonJS({
|
|
|
3142
3142
|
}
|
|
3143
3143
|
});
|
|
3144
3144
|
|
|
3145
|
-
//
|
|
3145
|
+
// ../../node_modules/yaml/dist/schema/yaml-1.1/schema.js
|
|
3146
3146
|
var require_schema3 = __commonJS({
|
|
3147
|
-
"
|
|
3147
|
+
"../../node_modules/yaml/dist/schema/yaml-1.1/schema.js"(exports) {
|
|
3148
3148
|
"use strict";
|
|
3149
3149
|
var map = require_map();
|
|
3150
3150
|
var _null = require_null();
|
|
@@ -3186,9 +3186,9 @@ var require_schema3 = __commonJS({
|
|
|
3186
3186
|
}
|
|
3187
3187
|
});
|
|
3188
3188
|
|
|
3189
|
-
//
|
|
3189
|
+
// ../../node_modules/yaml/dist/schema/tags.js
|
|
3190
3190
|
var require_tags = __commonJS({
|
|
3191
|
-
"
|
|
3191
|
+
"../../node_modules/yaml/dist/schema/tags.js"(exports) {
|
|
3192
3192
|
"use strict";
|
|
3193
3193
|
var map = require_map();
|
|
3194
3194
|
var _null = require_null();
|
|
@@ -3280,9 +3280,9 @@ var require_tags = __commonJS({
|
|
|
3280
3280
|
}
|
|
3281
3281
|
});
|
|
3282
3282
|
|
|
3283
|
-
//
|
|
3283
|
+
// ../../node_modules/yaml/dist/schema/Schema.js
|
|
3284
3284
|
var require_Schema = __commonJS({
|
|
3285
|
-
"
|
|
3285
|
+
"../../node_modules/yaml/dist/schema/Schema.js"(exports) {
|
|
3286
3286
|
"use strict";
|
|
3287
3287
|
var identity = require_identity();
|
|
3288
3288
|
var map = require_map();
|
|
@@ -3312,9 +3312,9 @@ var require_Schema = __commonJS({
|
|
|
3312
3312
|
}
|
|
3313
3313
|
});
|
|
3314
3314
|
|
|
3315
|
-
//
|
|
3315
|
+
// ../../node_modules/yaml/dist/stringify/stringifyDocument.js
|
|
3316
3316
|
var require_stringifyDocument = __commonJS({
|
|
3317
|
-
"
|
|
3317
|
+
"../../node_modules/yaml/dist/stringify/stringifyDocument.js"(exports) {
|
|
3318
3318
|
"use strict";
|
|
3319
3319
|
var identity = require_identity();
|
|
3320
3320
|
var stringify = require_stringify();
|
|
@@ -3392,9 +3392,9 @@ var require_stringifyDocument = __commonJS({
|
|
|
3392
3392
|
}
|
|
3393
3393
|
});
|
|
3394
3394
|
|
|
3395
|
-
//
|
|
3395
|
+
// ../../node_modules/yaml/dist/doc/Document.js
|
|
3396
3396
|
var require_Document = __commonJS({
|
|
3397
|
-
"
|
|
3397
|
+
"../../node_modules/yaml/dist/doc/Document.js"(exports) {
|
|
3398
3398
|
"use strict";
|
|
3399
3399
|
var Alias = require_Alias();
|
|
3400
3400
|
var Collection = require_Collection();
|
|
@@ -3701,9 +3701,9 @@ var require_Document = __commonJS({
|
|
|
3701
3701
|
}
|
|
3702
3702
|
});
|
|
3703
3703
|
|
|
3704
|
-
//
|
|
3704
|
+
// ../../node_modules/yaml/dist/errors.js
|
|
3705
3705
|
var require_errors = __commonJS({
|
|
3706
|
-
"
|
|
3706
|
+
"../../node_modules/yaml/dist/errors.js"(exports) {
|
|
3707
3707
|
"use strict";
|
|
3708
3708
|
var YAMLError = class extends Error {
|
|
3709
3709
|
constructor(name, pos, code, message) {
|
|
@@ -3766,9 +3766,9 @@ ${pointer}
|
|
|
3766
3766
|
}
|
|
3767
3767
|
});
|
|
3768
3768
|
|
|
3769
|
-
//
|
|
3769
|
+
// ../../node_modules/yaml/dist/compose/resolve-props.js
|
|
3770
3770
|
var require_resolve_props = __commonJS({
|
|
3771
|
-
"
|
|
3771
|
+
"../../node_modules/yaml/dist/compose/resolve-props.js"(exports) {
|
|
3772
3772
|
"use strict";
|
|
3773
3773
|
function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {
|
|
3774
3774
|
let spaceBefore = false;
|
|
@@ -3900,9 +3900,9 @@ var require_resolve_props = __commonJS({
|
|
|
3900
3900
|
}
|
|
3901
3901
|
});
|
|
3902
3902
|
|
|
3903
|
-
//
|
|
3903
|
+
// ../../node_modules/yaml/dist/compose/util-contains-newline.js
|
|
3904
3904
|
var require_util_contains_newline = __commonJS({
|
|
3905
|
-
"
|
|
3905
|
+
"../../node_modules/yaml/dist/compose/util-contains-newline.js"(exports) {
|
|
3906
3906
|
"use strict";
|
|
3907
3907
|
function containsNewline(key) {
|
|
3908
3908
|
if (!key)
|
|
@@ -3942,9 +3942,9 @@ var require_util_contains_newline = __commonJS({
|
|
|
3942
3942
|
}
|
|
3943
3943
|
});
|
|
3944
3944
|
|
|
3945
|
-
//
|
|
3945
|
+
// ../../node_modules/yaml/dist/compose/util-flow-indent-check.js
|
|
3946
3946
|
var require_util_flow_indent_check = __commonJS({
|
|
3947
|
-
"
|
|
3947
|
+
"../../node_modules/yaml/dist/compose/util-flow-indent-check.js"(exports) {
|
|
3948
3948
|
"use strict";
|
|
3949
3949
|
var utilContainsNewline = require_util_contains_newline();
|
|
3950
3950
|
function flowIndentCheck(indent, fc, onError) {
|
|
@@ -3960,9 +3960,9 @@ var require_util_flow_indent_check = __commonJS({
|
|
|
3960
3960
|
}
|
|
3961
3961
|
});
|
|
3962
3962
|
|
|
3963
|
-
//
|
|
3963
|
+
// ../../node_modules/yaml/dist/compose/util-map-includes.js
|
|
3964
3964
|
var require_util_map_includes = __commonJS({
|
|
3965
|
-
"
|
|
3965
|
+
"../../node_modules/yaml/dist/compose/util-map-includes.js"(exports) {
|
|
3966
3966
|
"use strict";
|
|
3967
3967
|
var identity = require_identity();
|
|
3968
3968
|
function mapIncludes(ctx, items, search) {
|
|
@@ -3976,9 +3976,9 @@ var require_util_map_includes = __commonJS({
|
|
|
3976
3976
|
}
|
|
3977
3977
|
});
|
|
3978
3978
|
|
|
3979
|
-
//
|
|
3979
|
+
// ../../node_modules/yaml/dist/compose/resolve-block-map.js
|
|
3980
3980
|
var require_resolve_block_map = __commonJS({
|
|
3981
|
-
"
|
|
3981
|
+
"../../node_modules/yaml/dist/compose/resolve-block-map.js"(exports) {
|
|
3982
3982
|
"use strict";
|
|
3983
3983
|
var Pair = require_Pair();
|
|
3984
3984
|
var YAMLMap = require_YAMLMap();
|
|
@@ -3995,10 +3995,10 @@ var require_resolve_block_map = __commonJS({
|
|
|
3995
3995
|
let offset = bm.offset;
|
|
3996
3996
|
let commentEnd = null;
|
|
3997
3997
|
for (const collItem of bm.items) {
|
|
3998
|
-
const { start, key, sep, value } = collItem;
|
|
3998
|
+
const { start, key, sep: sep2, value } = collItem;
|
|
3999
3999
|
const keyProps = resolveProps.resolveProps(start, {
|
|
4000
4000
|
indicator: "explicit-key-ind",
|
|
4001
|
-
next: key ??
|
|
4001
|
+
next: key ?? sep2?.[0],
|
|
4002
4002
|
offset,
|
|
4003
4003
|
onError,
|
|
4004
4004
|
parentIndent: bm.indent,
|
|
@@ -4012,7 +4012,7 @@ var require_resolve_block_map = __commonJS({
|
|
|
4012
4012
|
else if ("indent" in key && key.indent !== bm.indent)
|
|
4013
4013
|
onError(offset, "BAD_INDENT", startColMsg);
|
|
4014
4014
|
}
|
|
4015
|
-
if (!keyProps.anchor && !keyProps.tag && !
|
|
4015
|
+
if (!keyProps.anchor && !keyProps.tag && !sep2) {
|
|
4016
4016
|
commentEnd = keyProps.end;
|
|
4017
4017
|
if (keyProps.comment) {
|
|
4018
4018
|
if (map.comment)
|
|
@@ -4036,7 +4036,7 @@ var require_resolve_block_map = __commonJS({
|
|
|
4036
4036
|
ctx.atKey = false;
|
|
4037
4037
|
if (utilMapIncludes.mapIncludes(ctx, map.items, keyNode))
|
|
4038
4038
|
onError(keyStart, "DUPLICATE_KEY", "Map keys must be unique");
|
|
4039
|
-
const valueProps = resolveProps.resolveProps(
|
|
4039
|
+
const valueProps = resolveProps.resolveProps(sep2 ?? [], {
|
|
4040
4040
|
indicator: "map-value-ind",
|
|
4041
4041
|
next: value,
|
|
4042
4042
|
offset: keyNode.range[2],
|
|
@@ -4052,7 +4052,7 @@ var require_resolve_block_map = __commonJS({
|
|
|
4052
4052
|
if (ctx.options.strict && keyProps.start < valueProps.found.offset - 1024)
|
|
4053
4053
|
onError(keyNode.range, "KEY_OVER_1024_CHARS", "The : indicator must be at most 1024 chars after the start of an implicit block mapping key");
|
|
4054
4054
|
}
|
|
4055
|
-
const valueNode = value ? composeNode(ctx, value, valueProps, onError) : composeEmptyNode(ctx, offset,
|
|
4055
|
+
const valueNode = value ? composeNode(ctx, value, valueProps, onError) : composeEmptyNode(ctx, offset, sep2, null, valueProps, onError);
|
|
4056
4056
|
if (ctx.schema.compat)
|
|
4057
4057
|
utilFlowIndentCheck.flowIndentCheck(bm.indent, value, onError);
|
|
4058
4058
|
offset = valueNode.range[2];
|
|
@@ -4084,9 +4084,9 @@ var require_resolve_block_map = __commonJS({
|
|
|
4084
4084
|
}
|
|
4085
4085
|
});
|
|
4086
4086
|
|
|
4087
|
-
//
|
|
4087
|
+
// ../../node_modules/yaml/dist/compose/resolve-block-seq.js
|
|
4088
4088
|
var require_resolve_block_seq = __commonJS({
|
|
4089
|
-
"
|
|
4089
|
+
"../../node_modules/yaml/dist/compose/resolve-block-seq.js"(exports) {
|
|
4090
4090
|
"use strict";
|
|
4091
4091
|
var YAMLSeq = require_YAMLSeq();
|
|
4092
4092
|
var resolveProps = require_resolve_props();
|
|
@@ -4135,15 +4135,15 @@ var require_resolve_block_seq = __commonJS({
|
|
|
4135
4135
|
}
|
|
4136
4136
|
});
|
|
4137
4137
|
|
|
4138
|
-
//
|
|
4138
|
+
// ../../node_modules/yaml/dist/compose/resolve-end.js
|
|
4139
4139
|
var require_resolve_end = __commonJS({
|
|
4140
|
-
"
|
|
4140
|
+
"../../node_modules/yaml/dist/compose/resolve-end.js"(exports) {
|
|
4141
4141
|
"use strict";
|
|
4142
4142
|
function resolveEnd(end, offset, reqSpace, onError) {
|
|
4143
4143
|
let comment = "";
|
|
4144
4144
|
if (end) {
|
|
4145
4145
|
let hasSpace = false;
|
|
4146
|
-
let
|
|
4146
|
+
let sep2 = "";
|
|
4147
4147
|
for (const token of end) {
|
|
4148
4148
|
const { source, type } = token;
|
|
4149
4149
|
switch (type) {
|
|
@@ -4157,13 +4157,13 @@ var require_resolve_end = __commonJS({
|
|
|
4157
4157
|
if (!comment)
|
|
4158
4158
|
comment = cb;
|
|
4159
4159
|
else
|
|
4160
|
-
comment +=
|
|
4161
|
-
|
|
4160
|
+
comment += sep2 + cb;
|
|
4161
|
+
sep2 = "";
|
|
4162
4162
|
break;
|
|
4163
4163
|
}
|
|
4164
4164
|
case "newline":
|
|
4165
4165
|
if (comment)
|
|
4166
|
-
|
|
4166
|
+
sep2 += source;
|
|
4167
4167
|
hasSpace = true;
|
|
4168
4168
|
break;
|
|
4169
4169
|
default:
|
|
@@ -4178,9 +4178,9 @@ var require_resolve_end = __commonJS({
|
|
|
4178
4178
|
}
|
|
4179
4179
|
});
|
|
4180
4180
|
|
|
4181
|
-
//
|
|
4181
|
+
// ../../node_modules/yaml/dist/compose/resolve-flow-collection.js
|
|
4182
4182
|
var require_resolve_flow_collection = __commonJS({
|
|
4183
|
-
"
|
|
4183
|
+
"../../node_modules/yaml/dist/compose/resolve-flow-collection.js"(exports) {
|
|
4184
4184
|
"use strict";
|
|
4185
4185
|
var identity = require_identity();
|
|
4186
4186
|
var Pair = require_Pair();
|
|
@@ -4206,18 +4206,18 @@ var require_resolve_flow_collection = __commonJS({
|
|
|
4206
4206
|
let offset = fc.offset + fc.start.source.length;
|
|
4207
4207
|
for (let i = 0; i < fc.items.length; ++i) {
|
|
4208
4208
|
const collItem = fc.items[i];
|
|
4209
|
-
const { start, key, sep, value } = collItem;
|
|
4209
|
+
const { start, key, sep: sep2, value } = collItem;
|
|
4210
4210
|
const props = resolveProps.resolveProps(start, {
|
|
4211
4211
|
flow: fcName,
|
|
4212
4212
|
indicator: "explicit-key-ind",
|
|
4213
|
-
next: key ??
|
|
4213
|
+
next: key ?? sep2?.[0],
|
|
4214
4214
|
offset,
|
|
4215
4215
|
onError,
|
|
4216
4216
|
parentIndent: fc.indent,
|
|
4217
4217
|
startOnNewline: false
|
|
4218
4218
|
});
|
|
4219
4219
|
if (!props.found) {
|
|
4220
|
-
if (!props.anchor && !props.tag && !
|
|
4220
|
+
if (!props.anchor && !props.tag && !sep2 && !value) {
|
|
4221
4221
|
if (i === 0 && props.comma)
|
|
4222
4222
|
onError(props.comma, "UNEXPECTED_TOKEN", `Unexpected , in ${fcName}`);
|
|
4223
4223
|
else if (i < fc.items.length - 1)
|
|
@@ -4271,8 +4271,8 @@ var require_resolve_flow_collection = __commonJS({
|
|
|
4271
4271
|
}
|
|
4272
4272
|
}
|
|
4273
4273
|
}
|
|
4274
|
-
if (!isMap && !
|
|
4275
|
-
const valueNode = value ? composeNode(ctx, value, props, onError) : composeEmptyNode(ctx, props.end,
|
|
4274
|
+
if (!isMap && !sep2 && !props.found) {
|
|
4275
|
+
const valueNode = value ? composeNode(ctx, value, props, onError) : composeEmptyNode(ctx, props.end, sep2, null, props, onError);
|
|
4276
4276
|
coll.items.push(valueNode);
|
|
4277
4277
|
offset = valueNode.range[2];
|
|
4278
4278
|
if (isBlock(value))
|
|
@@ -4284,7 +4284,7 @@ var require_resolve_flow_collection = __commonJS({
|
|
|
4284
4284
|
if (isBlock(key))
|
|
4285
4285
|
onError(keyNode.range, "BLOCK_IN_FLOW", blockMsg);
|
|
4286
4286
|
ctx.atKey = false;
|
|
4287
|
-
const valueProps = resolveProps.resolveProps(
|
|
4287
|
+
const valueProps = resolveProps.resolveProps(sep2 ?? [], {
|
|
4288
4288
|
flow: fcName,
|
|
4289
4289
|
indicator: "map-value-ind",
|
|
4290
4290
|
next: value,
|
|
@@ -4295,8 +4295,8 @@ var require_resolve_flow_collection = __commonJS({
|
|
|
4295
4295
|
});
|
|
4296
4296
|
if (valueProps.found) {
|
|
4297
4297
|
if (!isMap && !props.found && ctx.options.strict) {
|
|
4298
|
-
if (
|
|
4299
|
-
for (const st of
|
|
4298
|
+
if (sep2)
|
|
4299
|
+
for (const st of sep2) {
|
|
4300
4300
|
if (st === valueProps.found)
|
|
4301
4301
|
break;
|
|
4302
4302
|
if (st.type === "newline") {
|
|
@@ -4313,7 +4313,7 @@ var require_resolve_flow_collection = __commonJS({
|
|
|
4313
4313
|
else
|
|
4314
4314
|
onError(valueProps.start, "MISSING_CHAR", `Missing , or : between ${fcName} items`);
|
|
4315
4315
|
}
|
|
4316
|
-
const valueNode = value ? composeNode(ctx, value, valueProps, onError) : valueProps.found ? composeEmptyNode(ctx, valueProps.end,
|
|
4316
|
+
const valueNode = value ? composeNode(ctx, value, valueProps, onError) : valueProps.found ? composeEmptyNode(ctx, valueProps.end, sep2, null, valueProps, onError) : null;
|
|
4317
4317
|
if (valueNode) {
|
|
4318
4318
|
if (isBlock(value))
|
|
4319
4319
|
onError(valueNode.range, "BLOCK_IN_FLOW", blockMsg);
|
|
@@ -4372,9 +4372,9 @@ var require_resolve_flow_collection = __commonJS({
|
|
|
4372
4372
|
}
|
|
4373
4373
|
});
|
|
4374
4374
|
|
|
4375
|
-
//
|
|
4375
|
+
// ../../node_modules/yaml/dist/compose/compose-collection.js
|
|
4376
4376
|
var require_compose_collection = __commonJS({
|
|
4377
|
-
"
|
|
4377
|
+
"../../node_modules/yaml/dist/compose/compose-collection.js"(exports) {
|
|
4378
4378
|
"use strict";
|
|
4379
4379
|
var identity = require_identity();
|
|
4380
4380
|
var Scalar = require_Scalar();
|
|
@@ -4437,9 +4437,9 @@ var require_compose_collection = __commonJS({
|
|
|
4437
4437
|
}
|
|
4438
4438
|
});
|
|
4439
4439
|
|
|
4440
|
-
//
|
|
4440
|
+
// ../../node_modules/yaml/dist/compose/resolve-block-scalar.js
|
|
4441
4441
|
var require_resolve_block_scalar = __commonJS({
|
|
4442
|
-
"
|
|
4442
|
+
"../../node_modules/yaml/dist/compose/resolve-block-scalar.js"(exports) {
|
|
4443
4443
|
"use strict";
|
|
4444
4444
|
var Scalar = require_Scalar();
|
|
4445
4445
|
function resolveBlockScalar(ctx, scalar, onError) {
|
|
@@ -4493,7 +4493,7 @@ var require_resolve_block_scalar = __commonJS({
|
|
|
4493
4493
|
chompStart = i + 1;
|
|
4494
4494
|
}
|
|
4495
4495
|
let value = "";
|
|
4496
|
-
let
|
|
4496
|
+
let sep2 = "";
|
|
4497
4497
|
let prevMoreIndented = false;
|
|
4498
4498
|
for (let i = 0; i < contentStart; ++i)
|
|
4499
4499
|
value += lines[i][0].slice(trimIndent) + "\n";
|
|
@@ -4510,24 +4510,24 @@ var require_resolve_block_scalar = __commonJS({
|
|
|
4510
4510
|
indent = "";
|
|
4511
4511
|
}
|
|
4512
4512
|
if (type === Scalar.Scalar.BLOCK_LITERAL) {
|
|
4513
|
-
value +=
|
|
4514
|
-
|
|
4513
|
+
value += sep2 + indent.slice(trimIndent) + content;
|
|
4514
|
+
sep2 = "\n";
|
|
4515
4515
|
} else if (indent.length > trimIndent || content[0] === " ") {
|
|
4516
|
-
if (
|
|
4517
|
-
|
|
4518
|
-
else if (!prevMoreIndented &&
|
|
4519
|
-
|
|
4520
|
-
value +=
|
|
4521
|
-
|
|
4516
|
+
if (sep2 === " ")
|
|
4517
|
+
sep2 = "\n";
|
|
4518
|
+
else if (!prevMoreIndented && sep2 === "\n")
|
|
4519
|
+
sep2 = "\n\n";
|
|
4520
|
+
value += sep2 + indent.slice(trimIndent) + content;
|
|
4521
|
+
sep2 = "\n";
|
|
4522
4522
|
prevMoreIndented = true;
|
|
4523
4523
|
} else if (content === "") {
|
|
4524
|
-
if (
|
|
4524
|
+
if (sep2 === "\n")
|
|
4525
4525
|
value += "\n";
|
|
4526
4526
|
else
|
|
4527
|
-
|
|
4527
|
+
sep2 = "\n";
|
|
4528
4528
|
} else {
|
|
4529
|
-
value +=
|
|
4530
|
-
|
|
4529
|
+
value += sep2 + content;
|
|
4530
|
+
sep2 = " ";
|
|
4531
4531
|
prevMoreIndented = false;
|
|
4532
4532
|
}
|
|
4533
4533
|
}
|
|
@@ -4620,9 +4620,9 @@ var require_resolve_block_scalar = __commonJS({
|
|
|
4620
4620
|
}
|
|
4621
4621
|
});
|
|
4622
4622
|
|
|
4623
|
-
//
|
|
4623
|
+
// ../../node_modules/yaml/dist/compose/resolve-flow-scalar.js
|
|
4624
4624
|
var require_resolve_flow_scalar = __commonJS({
|
|
4625
|
-
"
|
|
4625
|
+
"../../node_modules/yaml/dist/compose/resolve-flow-scalar.js"(exports) {
|
|
4626
4626
|
"use strict";
|
|
4627
4627
|
var Scalar = require_Scalar();
|
|
4628
4628
|
var resolveEnd = require_resolve_end();
|
|
@@ -4710,25 +4710,25 @@ var require_resolve_flow_scalar = __commonJS({
|
|
|
4710
4710
|
trimBoth = /^[ \t]+|[ \t]+$/g;
|
|
4711
4711
|
}
|
|
4712
4712
|
let res = match[1].replace(trimEnd, "");
|
|
4713
|
-
let
|
|
4713
|
+
let sep2 = " ";
|
|
4714
4714
|
let pos = line2.lastIndex;
|
|
4715
4715
|
while (match = line2.exec(source)) {
|
|
4716
4716
|
const lm = match[1].replace(trimBoth, "");
|
|
4717
4717
|
if (lm === "") {
|
|
4718
|
-
if (
|
|
4719
|
-
res +=
|
|
4718
|
+
if (sep2 === "\n")
|
|
4719
|
+
res += sep2;
|
|
4720
4720
|
else
|
|
4721
|
-
|
|
4721
|
+
sep2 = "\n";
|
|
4722
4722
|
} else {
|
|
4723
|
-
res +=
|
|
4724
|
-
|
|
4723
|
+
res += sep2 + lm;
|
|
4724
|
+
sep2 = " ";
|
|
4725
4725
|
}
|
|
4726
4726
|
pos = line2.lastIndex;
|
|
4727
4727
|
}
|
|
4728
4728
|
const last = /[ \t]*(.*)/sy;
|
|
4729
4729
|
last.lastIndex = pos;
|
|
4730
4730
|
match = last.exec(source);
|
|
4731
|
-
return res +
|
|
4731
|
+
return res + sep2 + (match?.[1] ?? "");
|
|
4732
4732
|
}
|
|
4733
4733
|
function doubleQuotedValue(source, onError) {
|
|
4734
4734
|
let res = "";
|
|
@@ -4841,9 +4841,9 @@ var require_resolve_flow_scalar = __commonJS({
|
|
|
4841
4841
|
}
|
|
4842
4842
|
});
|
|
4843
4843
|
|
|
4844
|
-
//
|
|
4844
|
+
// ../../node_modules/yaml/dist/compose/compose-scalar.js
|
|
4845
4845
|
var require_compose_scalar = __commonJS({
|
|
4846
|
-
"
|
|
4846
|
+
"../../node_modules/yaml/dist/compose/compose-scalar.js"(exports) {
|
|
4847
4847
|
"use strict";
|
|
4848
4848
|
var identity = require_identity();
|
|
4849
4849
|
var Scalar = require_Scalar();
|
|
@@ -4922,9 +4922,9 @@ var require_compose_scalar = __commonJS({
|
|
|
4922
4922
|
}
|
|
4923
4923
|
});
|
|
4924
4924
|
|
|
4925
|
-
//
|
|
4925
|
+
// ../../node_modules/yaml/dist/compose/util-empty-scalar-position.js
|
|
4926
4926
|
var require_util_empty_scalar_position = __commonJS({
|
|
4927
|
-
"
|
|
4927
|
+
"../../node_modules/yaml/dist/compose/util-empty-scalar-position.js"(exports) {
|
|
4928
4928
|
"use strict";
|
|
4929
4929
|
function emptyScalarPosition(offset, before, pos) {
|
|
4930
4930
|
if (before) {
|
|
@@ -4952,9 +4952,9 @@ var require_util_empty_scalar_position = __commonJS({
|
|
|
4952
4952
|
}
|
|
4953
4953
|
});
|
|
4954
4954
|
|
|
4955
|
-
//
|
|
4955
|
+
// ../../node_modules/yaml/dist/compose/compose-node.js
|
|
4956
4956
|
var require_compose_node = __commonJS({
|
|
4957
|
-
"
|
|
4957
|
+
"../../node_modules/yaml/dist/compose/compose-node.js"(exports) {
|
|
4958
4958
|
"use strict";
|
|
4959
4959
|
var Alias = require_Alias();
|
|
4960
4960
|
var identity = require_identity();
|
|
@@ -5058,9 +5058,9 @@ var require_compose_node = __commonJS({
|
|
|
5058
5058
|
}
|
|
5059
5059
|
});
|
|
5060
5060
|
|
|
5061
|
-
//
|
|
5061
|
+
// ../../node_modules/yaml/dist/compose/compose-doc.js
|
|
5062
5062
|
var require_compose_doc = __commonJS({
|
|
5063
|
-
"
|
|
5063
|
+
"../../node_modules/yaml/dist/compose/compose-doc.js"(exports) {
|
|
5064
5064
|
"use strict";
|
|
5065
5065
|
var Document = require_Document();
|
|
5066
5066
|
var composeNode = require_compose_node();
|
|
@@ -5101,9 +5101,9 @@ var require_compose_doc = __commonJS({
|
|
|
5101
5101
|
}
|
|
5102
5102
|
});
|
|
5103
5103
|
|
|
5104
|
-
//
|
|
5104
|
+
// ../../node_modules/yaml/dist/compose/composer.js
|
|
5105
5105
|
var require_composer = __commonJS({
|
|
5106
|
-
"
|
|
5106
|
+
"../../node_modules/yaml/dist/compose/composer.js"(exports) {
|
|
5107
5107
|
"use strict";
|
|
5108
5108
|
var node_process = __require("process");
|
|
5109
5109
|
var directives = require_directives();
|
|
@@ -5309,9 +5309,9 @@ ${end.comment}` : end.comment;
|
|
|
5309
5309
|
}
|
|
5310
5310
|
});
|
|
5311
5311
|
|
|
5312
|
-
//
|
|
5312
|
+
// ../../node_modules/yaml/dist/parse/cst-scalar.js
|
|
5313
5313
|
var require_cst_scalar = __commonJS({
|
|
5314
|
-
"
|
|
5314
|
+
"../../node_modules/yaml/dist/parse/cst-scalar.js"(exports) {
|
|
5315
5315
|
"use strict";
|
|
5316
5316
|
var resolveBlockScalar = require_resolve_block_scalar();
|
|
5317
5317
|
var resolveFlowScalar = require_resolve_flow_scalar();
|
|
@@ -5494,9 +5494,9 @@ var require_cst_scalar = __commonJS({
|
|
|
5494
5494
|
}
|
|
5495
5495
|
});
|
|
5496
5496
|
|
|
5497
|
-
//
|
|
5497
|
+
// ../../node_modules/yaml/dist/parse/cst-stringify.js
|
|
5498
5498
|
var require_cst_stringify = __commonJS({
|
|
5499
|
-
"
|
|
5499
|
+
"../../node_modules/yaml/dist/parse/cst-stringify.js"(exports) {
|
|
5500
5500
|
"use strict";
|
|
5501
5501
|
var stringify = (cst) => "type" in cst ? stringifyToken(cst) : stringifyItem(cst);
|
|
5502
5502
|
function stringifyToken(token) {
|
|
@@ -5538,14 +5538,14 @@ var require_cst_stringify = __commonJS({
|
|
|
5538
5538
|
}
|
|
5539
5539
|
}
|
|
5540
5540
|
}
|
|
5541
|
-
function stringifyItem({ start, key, sep, value }) {
|
|
5541
|
+
function stringifyItem({ start, key, sep: sep2, value }) {
|
|
5542
5542
|
let res = "";
|
|
5543
5543
|
for (const st of start)
|
|
5544
5544
|
res += st.source;
|
|
5545
5545
|
if (key)
|
|
5546
5546
|
res += stringifyToken(key);
|
|
5547
|
-
if (
|
|
5548
|
-
for (const st of
|
|
5547
|
+
if (sep2)
|
|
5548
|
+
for (const st of sep2)
|
|
5549
5549
|
res += st.source;
|
|
5550
5550
|
if (value)
|
|
5551
5551
|
res += stringifyToken(value);
|
|
@@ -5555,12 +5555,12 @@ var require_cst_stringify = __commonJS({
|
|
|
5555
5555
|
}
|
|
5556
5556
|
});
|
|
5557
5557
|
|
|
5558
|
-
//
|
|
5558
|
+
// ../../node_modules/yaml/dist/parse/cst-visit.js
|
|
5559
5559
|
var require_cst_visit = __commonJS({
|
|
5560
|
-
"
|
|
5560
|
+
"../../node_modules/yaml/dist/parse/cst-visit.js"(exports) {
|
|
5561
5561
|
"use strict";
|
|
5562
5562
|
var BREAK = /* @__PURE__ */ Symbol("break visit");
|
|
5563
|
-
var
|
|
5563
|
+
var SKIP2 = /* @__PURE__ */ Symbol("skip children");
|
|
5564
5564
|
var REMOVE = /* @__PURE__ */ Symbol("remove item");
|
|
5565
5565
|
function visit(cst, visitor) {
|
|
5566
5566
|
if ("type" in cst && cst.type === "document")
|
|
@@ -5568,7 +5568,7 @@ var require_cst_visit = __commonJS({
|
|
|
5568
5568
|
_visit(Object.freeze([]), cst, visitor);
|
|
5569
5569
|
}
|
|
5570
5570
|
visit.BREAK = BREAK;
|
|
5571
|
-
visit.SKIP =
|
|
5571
|
+
visit.SKIP = SKIP2;
|
|
5572
5572
|
visit.REMOVE = REMOVE;
|
|
5573
5573
|
visit.itemAtPath = (cst, path) => {
|
|
5574
5574
|
let item = cst;
|
|
@@ -5617,9 +5617,9 @@ var require_cst_visit = __commonJS({
|
|
|
5617
5617
|
}
|
|
5618
5618
|
});
|
|
5619
5619
|
|
|
5620
|
-
//
|
|
5620
|
+
// ../../node_modules/yaml/dist/parse/cst.js
|
|
5621
5621
|
var require_cst = __commonJS({
|
|
5622
|
-
"
|
|
5622
|
+
"../../node_modules/yaml/dist/parse/cst.js"(exports) {
|
|
5623
5623
|
"use strict";
|
|
5624
5624
|
var cstScalar = require_cst_scalar();
|
|
5625
5625
|
var cstStringify = require_cst_stringify();
|
|
@@ -5719,9 +5719,9 @@ var require_cst = __commonJS({
|
|
|
5719
5719
|
}
|
|
5720
5720
|
});
|
|
5721
5721
|
|
|
5722
|
-
//
|
|
5722
|
+
// ../../node_modules/yaml/dist/parse/lexer.js
|
|
5723
5723
|
var require_lexer = __commonJS({
|
|
5724
|
-
"
|
|
5724
|
+
"../../node_modules/yaml/dist/parse/lexer.js"(exports) {
|
|
5725
5725
|
"use strict";
|
|
5726
5726
|
var cst = require_cst();
|
|
5727
5727
|
function isEmpty(ch) {
|
|
@@ -6308,9 +6308,9 @@ var require_lexer = __commonJS({
|
|
|
6308
6308
|
}
|
|
6309
6309
|
});
|
|
6310
6310
|
|
|
6311
|
-
//
|
|
6311
|
+
// ../../node_modules/yaml/dist/parse/line-counter.js
|
|
6312
6312
|
var require_line_counter = __commonJS({
|
|
6313
|
-
"
|
|
6313
|
+
"../../node_modules/yaml/dist/parse/line-counter.js"(exports) {
|
|
6314
6314
|
"use strict";
|
|
6315
6315
|
var LineCounter = class {
|
|
6316
6316
|
constructor() {
|
|
@@ -6339,9 +6339,9 @@ var require_line_counter = __commonJS({
|
|
|
6339
6339
|
}
|
|
6340
6340
|
});
|
|
6341
6341
|
|
|
6342
|
-
//
|
|
6342
|
+
// ../../node_modules/yaml/dist/parse/parser.js
|
|
6343
6343
|
var require_parser = __commonJS({
|
|
6344
|
-
"
|
|
6344
|
+
"../../node_modules/yaml/dist/parse/parser.js"(exports) {
|
|
6345
6345
|
"use strict";
|
|
6346
6346
|
var node_process = __require("process");
|
|
6347
6347
|
var cst = require_cst();
|
|
@@ -6712,18 +6712,18 @@ var require_parser = __commonJS({
|
|
|
6712
6712
|
if (this.type === "map-value-ind") {
|
|
6713
6713
|
const prev = getPrevProps(this.peek(2));
|
|
6714
6714
|
const start = getFirstKeyStartProps(prev);
|
|
6715
|
-
let
|
|
6715
|
+
let sep2;
|
|
6716
6716
|
if (scalar.end) {
|
|
6717
|
-
|
|
6718
|
-
|
|
6717
|
+
sep2 = scalar.end;
|
|
6718
|
+
sep2.push(this.sourceToken);
|
|
6719
6719
|
delete scalar.end;
|
|
6720
6720
|
} else
|
|
6721
|
-
|
|
6721
|
+
sep2 = [this.sourceToken];
|
|
6722
6722
|
const map = {
|
|
6723
6723
|
type: "block-map",
|
|
6724
6724
|
offset: scalar.offset,
|
|
6725
6725
|
indent: scalar.indent,
|
|
6726
|
-
items: [{ start, key: scalar, sep }]
|
|
6726
|
+
items: [{ start, key: scalar, sep: sep2 }]
|
|
6727
6727
|
};
|
|
6728
6728
|
this.onKeyLine = true;
|
|
6729
6729
|
this.stack[this.stack.length - 1] = map;
|
|
@@ -6876,15 +6876,15 @@ var require_parser = __commonJS({
|
|
|
6876
6876
|
} else if (isFlowToken(it.key) && !includesToken(it.sep, "newline")) {
|
|
6877
6877
|
const start2 = getFirstKeyStartProps(it.start);
|
|
6878
6878
|
const key = it.key;
|
|
6879
|
-
const
|
|
6880
|
-
|
|
6879
|
+
const sep2 = it.sep;
|
|
6880
|
+
sep2.push(this.sourceToken);
|
|
6881
6881
|
delete it.key;
|
|
6882
6882
|
delete it.sep;
|
|
6883
6883
|
this.stack.push({
|
|
6884
6884
|
type: "block-map",
|
|
6885
6885
|
offset: this.offset,
|
|
6886
6886
|
indent: this.indent,
|
|
6887
|
-
items: [{ start: start2, key, sep }]
|
|
6887
|
+
items: [{ start: start2, key, sep: sep2 }]
|
|
6888
6888
|
});
|
|
6889
6889
|
} else if (start.length > 0) {
|
|
6890
6890
|
it.sep = it.sep.concat(start, this.sourceToken);
|
|
@@ -7078,13 +7078,13 @@ var require_parser = __commonJS({
|
|
|
7078
7078
|
const prev = getPrevProps(parent);
|
|
7079
7079
|
const start = getFirstKeyStartProps(prev);
|
|
7080
7080
|
fixFlowSeqItems(fc);
|
|
7081
|
-
const
|
|
7082
|
-
|
|
7081
|
+
const sep2 = fc.end.splice(1, fc.end.length);
|
|
7082
|
+
sep2.push(this.sourceToken);
|
|
7083
7083
|
const map = {
|
|
7084
7084
|
type: "block-map",
|
|
7085
7085
|
offset: fc.offset,
|
|
7086
7086
|
indent: fc.indent,
|
|
7087
|
-
items: [{ start, key: fc, sep }]
|
|
7087
|
+
items: [{ start, key: fc, sep: sep2 }]
|
|
7088
7088
|
};
|
|
7089
7089
|
this.onKeyLine = true;
|
|
7090
7090
|
this.stack[this.stack.length - 1] = map;
|
|
@@ -7213,9 +7213,9 @@ var require_parser = __commonJS({
|
|
|
7213
7213
|
}
|
|
7214
7214
|
});
|
|
7215
7215
|
|
|
7216
|
-
//
|
|
7216
|
+
// ../../node_modules/yaml/dist/public-api.js
|
|
7217
7217
|
var require_public_api = __commonJS({
|
|
7218
|
-
"
|
|
7218
|
+
"../../node_modules/yaml/dist/public-api.js"(exports) {
|
|
7219
7219
|
"use strict";
|
|
7220
7220
|
var composer = require_composer();
|
|
7221
7221
|
var Document = require_Document();
|
|
@@ -7310,9 +7310,9 @@ var require_public_api = __commonJS({
|
|
|
7310
7310
|
}
|
|
7311
7311
|
});
|
|
7312
7312
|
|
|
7313
|
-
//
|
|
7313
|
+
// ../../node_modules/yaml/dist/index.js
|
|
7314
7314
|
var require_dist = __commonJS({
|
|
7315
|
-
"
|
|
7315
|
+
"../../node_modules/yaml/dist/index.js"(exports) {
|
|
7316
7316
|
"use strict";
|
|
7317
7317
|
var composer = require_composer();
|
|
7318
7318
|
var Document = require_Document();
|
|
@@ -7829,6 +7829,7 @@ var SERVER_MESSAGES = [
|
|
|
7829
7829
|
["Ya tienes {} cajas de trabajo (tope {}). Suelta una con destroy \u2014 las de tu lista: {}.", "You already have {} work boxes (limit {}). Release one with destroy \u2014 the ones on your list: {}."],
|
|
7830
7830
|
["Template desconocido. Los que puedes pedir: {}.", "Unknown template. The ones you can ask for: {}."],
|
|
7831
7831
|
["Tama\xF1o desconocido. Elige: {}.", "Unknown size. Choose: {}."],
|
|
7832
|
+
["keepHours va de 0 a {}.", "keepHours goes from 0 to {}."],
|
|
7832
7833
|
["La caja no termin\xF3 de despertar. Reintenta en unos segundos.", "The box didn't finish waking up. Try again in a few seconds."],
|
|
7833
7834
|
["command requerido", "command required"],
|
|
7834
7835
|
["Puerto inv\xE1lido: va entre 1024 y 65535, y los puertos {} (runtime de la caja) y {} (sistema) no se publican \u2014 levanta el server en otro (5173, 4321, 8080\u2026).", "Invalid port: it must be between 1024 and 65535, and ports {} (box runtime) and {} (system) aren't published \u2014 run the server on another one (5173, 4321, 8080\u2026)."],
|
|
@@ -7974,6 +7975,13 @@ var SERVER_MESSAGES = [
|
|
|
7974
7975
|
["las bolsas son topes pactados: s\xF3lo el staff de Ghosty", "bags are agreed caps: Ghosty staff only"],
|
|
7975
7976
|
["renovar un espacio: s\xF3lo el staff de Ghosty", "renewing a workspace: Ghosty staff only"],
|
|
7976
7977
|
["renombrar un espacio: s\xF3lo el staff de Ghosty", "renaming a workspace: Ghosty staff only"],
|
|
7978
|
+
["traspasar un espacio: s\xF3lo el staff de Ghosty", "transferring a workspace: Ghosty staff only"],
|
|
7979
|
+
["correo inv\xE1lido: \xAB{}\xBB", "invalid email: \xAB{}\xBB"],
|
|
7980
|
+
["{} ya es due\xF1o de {}", "{} already owns {}"],
|
|
7981
|
+
["{} no tiene cuenta: se precrea y la reclama al entrar con ese correo", "{} has no account: it is pre-created and claimed on login with that email"],
|
|
7982
|
+
["sin llave de {}: sus agentes dejan de contestar (agrega --copy-keys)", "no {} key: its agents stop answering (add --copy-keys)"],
|
|
7983
|
+
["sin llave de {}: sus agentes dejan de contestar", "no {} key: its agents stop answering"],
|
|
7984
|
+
["no se recicl\xF3 {}: {}", "{} was not recycled: {}"],
|
|
7977
7985
|
["s\xF3lo el due\xF1o de \xAB{}\xBB o el staff de Ghosty", "only the owner of \xAB{}\xBB or Ghosty staff"],
|
|
7978
7986
|
["la bolsa de un agente s\xF3lo la cambia el staff de Ghosty", "only Ghosty staff changes an agent's bag"],
|
|
7979
7987
|
["este agente no tiene espacio: no puede tener bolsa", "this agent has no workspace: it can't have a bag"],
|
|
@@ -8080,6 +8088,29 @@ var SERVER_MESSAGES = [
|
|
|
8080
8088
|
["turnToken excede {} caracteres", "turnToken exceeds {} characters"],
|
|
8081
8089
|
["turnToken no puede llevar espacios", "turnToken can't contain whitespace"],
|
|
8082
8090
|
["turnToken requerido: los MCP de este agente usan ${turn.token}", "turnToken required: this agent's MCP servers use ${turn.token}"],
|
|
8091
|
+
// — Sitios de la casa (`ghosty sites`, 3-oct)
|
|
8092
|
+
["los sitios de la casa: s\xF3lo el staff de Ghosty", "house sites: Ghosty staff only"],
|
|
8093
|
+
["publicar sitios de la casa: s\xF3lo el staff de Ghosty", "publishing house sites: Ghosty staff only"],
|
|
8094
|
+
["cambiar el slug de un sitio: s\xF3lo el staff de Ghosty", "changing a site's slug: Ghosty staff only"],
|
|
8095
|
+
["scope acepta mine o house", "scope takes mine or house"],
|
|
8096
|
+
["falta html o files", "missing html or files"],
|
|
8097
|
+
["falta slug", "missing slug"],
|
|
8098
|
+
["EasyBits todav\xEDa no permite elegir ni cambiar el slug", "EasyBits doesn't allow choosing or changing the slug yet"],
|
|
8099
|
+
["el slug \xAB{}\xBB ya est\xE1 ocupado en EasyBits", "slug \xAB{}\xBB is already taken on EasyBits"],
|
|
8100
|
+
["el slug \xAB{}\xBB ya est\xE1 ocupado", "slug \xAB{}\xBB is already taken"],
|
|
8101
|
+
["EasyBits rechaz\xF3 el slug \xAB{}\xBB por inv\xE1lido", "EasyBits rejected slug \xAB{}\xBB as invalid"],
|
|
8102
|
+
["el slug \xAB{}\xBB est\xE1 reservado", "slug \xAB{}\xBB is reserved"],
|
|
8103
|
+
["el slug debe tener entre 3 y 60 caracteres", "the slug must be 3 to 60 characters"],
|
|
8104
|
+
["el slug s\xF3lo admite min\xFAsculas (a-z), n\xFAmeros y guiones", "the slug only allows lowercase letters (a-z), digits and hyphens"],
|
|
8105
|
+
["el slug no puede empezar ni terminar en guion", "the slug can't start or end with a hyphen"],
|
|
8106
|
+
["el slug no puede llevar dos guiones seguidos", "the slug can't have two hyphens in a row"],
|
|
8107
|
+
["no encontr\xE9 un sitio vivo \xAB{}\xBB; publica sin `site` para crear uno nuevo", "no live site \xAB{}\xBB; publish without `site` to create a new one"],
|
|
8108
|
+
["no encontr\xE9 un sitio vivo \xAB{}\xBB", "no live site \xAB{}\xBB"],
|
|
8109
|
+
["ese sitio no es de la casa (s\xF3lo se actualizan con `--site` los publicados como casa)", "that site isn't a house site (--site only updates sites published as house)"],
|
|
8110
|
+
["la publicaci\xF3n de sitios no est\xE1 disponible en este momento", "site publishing isn't available right now"],
|
|
8111
|
+
["no pude conectar con el servicio de sitios ({})", "couldn't reach the sites service ({})"],
|
|
8112
|
+
["no se pudo crear el sitio; int\xE9ntalo en un momento", "couldn't create the site; try again in a moment"],
|
|
8113
|
+
["no se pudo subir {}: {}", "couldn't upload {}: {}"],
|
|
8083
8114
|
// — Infra interna (casi nunca llega al CLI, pero por si acaso)
|
|
8084
8115
|
["SESSION_SECRET ausente en producci\xF3n \u2014 las cookies quedar\xEDan firmadas con un valor p\xFAblico. Inyectarlo con ./scripts/set_gs_secret.sh SESSION_SECRET (openssl rand -hex 32).", "SESSION_SECRET missing in production \u2014 cookies would be signed with a public value. Inject it with ./scripts/set_gs_secret.sh SESSION_SECRET (openssl rand -hex 32)."],
|
|
8085
8116
|
["sqld: fetch sin namespace", "sqld: fetch without namespace"],
|
|
@@ -8382,7 +8413,7 @@ async function postLong(path, body, timeoutMs = 9e5) {
|
|
|
8382
8413
|
const req = httpsRequest(`${base}${path}`, {
|
|
8383
8414
|
method: "POST",
|
|
8384
8415
|
timeout: timeoutMs,
|
|
8385
|
-
headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.
|
|
8416
|
+
headers: { authorization: `Bearer ${token}`, "user-agent": `ghosty-cli/${"0.40.0"}`, "content-type": "application/json", "content-length": Buffer.byteLength(data) }
|
|
8386
8417
|
}, (res) => {
|
|
8387
8418
|
let buf = "";
|
|
8388
8419
|
res.on("data", (c) => buf += c);
|
|
@@ -8424,7 +8455,7 @@ async function request(path, opts = {}, retried = false) {
|
|
|
8424
8455
|
method: opts.method ?? (opts.body !== void 0 || opts.raw !== void 0 ? "POST" : "GET"),
|
|
8425
8456
|
headers: {
|
|
8426
8457
|
authorization: `Bearer ${token}`,
|
|
8427
|
-
"user-agent": `ghosty-cli/${"0.
|
|
8458
|
+
"user-agent": `ghosty-cli/${"0.40.0"}`,
|
|
8428
8459
|
"accept-language": lang(),
|
|
8429
8460
|
...opts.body !== void 0 ? { "content-type": "application/json" } : {},
|
|
8430
8461
|
...opts.headers
|
|
@@ -8506,12 +8537,12 @@ var enc = encodeURIComponent;
|
|
|
8506
8537
|
var sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
8507
8538
|
var MIME = { jpg: "image/jpeg", jpeg: "image/jpeg", png: "image/png", webp: "image/webp", gif: "image/gif", pdf: "application/pdf", ogg: "audio/ogg", opus: "audio/ogg", mp3: "audio/mpeg", m4a: "audio/mp4", wav: "audio/wav", mp4: "video/mp4" };
|
|
8508
8539
|
async function localFiles(paths) {
|
|
8509
|
-
const { readFile:
|
|
8510
|
-
const { basename:
|
|
8540
|
+
const { readFile: readFile15 } = await import("node:fs/promises");
|
|
8541
|
+
const { basename: basename5 } = await import("node:path");
|
|
8511
8542
|
return Promise.all(
|
|
8512
8543
|
paths.map(async (p) => {
|
|
8513
8544
|
const ext = p.toLowerCase().split(".").pop() ?? "";
|
|
8514
|
-
return { name:
|
|
8545
|
+
return { name: basename5(p), mimeType: MIME[ext] ?? "application/octet-stream", data: (await readFile15(p)).toString("base64") };
|
|
8515
8546
|
})
|
|
8516
8547
|
);
|
|
8517
8548
|
}
|
|
@@ -9610,7 +9641,7 @@ async function call(path, v, init = {}) {
|
|
|
9610
9641
|
"x-ghosty-ts": ts,
|
|
9611
9642
|
"x-ghosty-sig": sig,
|
|
9612
9643
|
"content-type": "application/json",
|
|
9613
|
-
"user-agent": `ghosty-cli/${"0.
|
|
9644
|
+
"user-agent": `ghosty-cli/${"0.40.0"}`
|
|
9614
9645
|
},
|
|
9615
9646
|
body: method === "GET" ? void 0 : raw
|
|
9616
9647
|
});
|
|
@@ -11264,8 +11295,18 @@ var HELPS_ES = {
|
|
|
11264
11295
|
summary: "Staff de Ghosty: las novedades de la app Android. Cada una con su ilustraci\xF3n; mismos frenos que el admin: pru\xE9bala en tu tel\xE9fono primero, push de 9 a 21 h CDMX, 72 h entre env\xEDos a todos.",
|
|
11265
11296
|
notes: ["ls dice, de una ya enviada, cu\xE1ntos entreg\xF3 y rechaz\xF3 FCM (del push log, desde el 1-oct).", "--image se publica en img.ghosty.studio (WebP 1200 px). --to vac\xEDo = todos. send sin --at la manda ya (pregunta); --at '' quita la programaci\xF3n.", "--min-version N (versionCode de Android): si la app del tester es m\xE1s vieja, el bot\xF3n dice \xABActualizar\xBB y lanza la actualizaci\xF3n de Play desde la app; '' la quita."]
|
|
11266
11297
|
},
|
|
11298
|
+
sites: {
|
|
11299
|
+
summary: "Sitios est\xE1ticos publicados en EasyBits con la cuenta de casa de Ghosty. ls lista los que publicaron tus agentes; el staff publica los artefactos de Ghosty (demos, landings) como sitios de la casa \u2014 sin due\xF1o, sin caducidad, sin la franja \xABHecha con Ghosty\xBB \u2014 y cambia el slug de cualquier sitio.",
|
|
11300
|
+
flags: [
|
|
11301
|
+
["--house", "ls (staff): los sitios de la casa en vez de los tuyos"],
|
|
11302
|
+
["--title T", "publish: el nombre del sitio (default: el <title> del HTML o el nombre de la carpeta)"],
|
|
11303
|
+
["--slug S", "publish: el slug de un sitio NUEVO (a-z, 0-9 y guiones, 3\u201360, no reservado)"],
|
|
11304
|
+
["--site X", "publish: actualiza ese sitio de la casa (slug, id o URL) en vez de crear uno"]
|
|
11305
|
+
],
|
|
11306
|
+
notes: ["Una carpeta necesita index.html en la ra\xEDz; se saltan ocultos y node_modules. Topes: 1 MB por archivo, 8 MB y 40 archivos por sitio.", "Sin --site, publish siempre crea un sitio nuevo (los de la casa nunca se buscan por t\xEDtulo).", "Errores de slug: slug_invalid, slug_taken, y slug_unsupported mientras EasyBits no acepte slug (exit 1, no cambia nada)."]
|
|
11307
|
+
},
|
|
11267
11308
|
spaces: {
|
|
11268
|
-
summary: "Espacios: crea uno a tu nombre (prueba), lista los tuyos (o, staff, los de cualquiera) y operaciones del staff de Ghosty \u2014 entrar/salir del espacio de un cliente, cambiar su combo, mover \xABpagado hasta\xBB, renombrar su slug. Cada cambio queda en la bit\xE1cora del espacio.",
|
|
11309
|
+
summary: "Espacios: crea uno a tu nombre (prueba), lista los tuyos (o, staff, los de cualquiera) y operaciones del staff de Ghosty \u2014 entrar/salir del espacio de un cliente, cambiar su combo, mover \xABpagado hasta\xBB, renombrar su slug, cambiar de due\xF1o. Cada cambio queda en la bit\xE1cora del espacio.",
|
|
11269
11310
|
flags: [
|
|
11270
11311
|
["--user EMAIL", "ls (staff): los espacios de esa persona"],
|
|
11271
11312
|
["--combo C", "set (staff): teams | sales | both \u2014 sin Ventas sus tableros existen pero nadie los ve; create: distinto de teams, s\xF3lo staff"],
|
|
@@ -11273,10 +11314,13 @@ var HELPS_ES = {
|
|
|
11273
11314
|
["--house-claude on|off", "set (staff): sus agentes corren con la Claude de Ghosty si el due\xF1o no trae llave; recicla sus cajas de Claude"],
|
|
11274
11315
|
["--until DATE", "renew: el nuevo \xABpagado hasta\xBB (AAAA-MM-DD)"],
|
|
11275
11316
|
["--note TEXT", "renew: por qu\xE9 (va a la bit\xE1cora)"],
|
|
11317
|
+
["--to EMAIL", "transfer: el due\xF1o nuevo (si no tiene cuenta se precrea y la reclama al entrar)"],
|
|
11318
|
+
["--keep-as R", "transfer: el rol del due\xF1o anterior \u2014 admin | member (default) | none (sale del espacio)"],
|
|
11319
|
+
["--copy-keys", "transfer: copia las llaves de proveedor del anterior que le falten al nuevo (los agentes gastan la llave del due\xF1o nuevo)"],
|
|
11276
11320
|
["-n, --dry-run", "ense\xF1a qu\xE9 cambia, no cambia nada"],
|
|
11277
11321
|
["--yes", "s\xE1ltate la confirmaci\xF3n (obligatorio sin terminal)"]
|
|
11278
11322
|
],
|
|
11279
|
-
notes: ["create sigue las reglas de la web: queda a tu nombre, nace como prueba de 30 d\xEDas, tu correo debe estar confirmado y tu plan topa cu\xE1ntos tienes. Sigue: ghosty partner enable <slug>.", "Con suscripci\xF3n de Stripe renew se niega: la fecha la mueve la factura pagada.", "rename cambia s\xF3lo el slug (id y namespace se quedan, as\xED que tablero, Stripe y WhatsApp siguen funcionando); las ligas viejas <slug>.sales dejan de servir."]
|
|
11323
|
+
notes: ["create sigue las reglas de la web: queda a tu nombre, nace como prueba de 30 d\xEDas, tu correo debe estar confirmado y tu plan topa cu\xE1ntos tienes. Sigue: ghosty partner enable <slug>.", "Con suscripci\xF3n de Stripe renew se niega: la fecha la mueve la factura pagada.", "rename cambia s\xF3lo el slug (id y namespace se quedan, as\xED que tablero, Stripe y WhatsApp siguen funcionando); las ligas viejas <slug>.sales dejan de servir.", "transfer se lleva los agentes con el espacio y recicla sus cajas (el due\xF1o va horneado en la caja); sin --copy-keys la simulaci\xF3n dice qu\xE9 llaves le faltan al nuevo \u2014 esos agentes dejar\xEDan de contestar."]
|
|
11280
11324
|
}
|
|
11281
11325
|
};
|
|
11282
11326
|
var HELP_ALIASES = { creds: "credentials", board: "cards", conversations: "chat", workspaces: "spaces" };
|
|
@@ -11840,8 +11884,8 @@ HELPS.novedades = {
|
|
|
11840
11884
|
learn: `${REF}#soporte`
|
|
11841
11885
|
};
|
|
11842
11886
|
HELPS.spaces = {
|
|
11843
|
-
summary: "Workspaces: create one of your own (trial), list yours (or, staff, anyone's), and Ghosty staff operations \u2014 join/leave a client's workspace, change its combo, move \xABpaid until\xBB, rename its slug. Each change is logged in the workspace's audit.",
|
|
11844
|
-
usage: ["ghosty spaces ls [--user EMAIL]", "ghosty spaces create <slug> [--combo teams|sales|both] [--dry-run]", "ghosty spaces join|leave <workspace>", "ghosty spaces set <workspace> --combo teams|sales|both | --model-cap 0.25|1|4|none | --house-claude on|off [--dry-run]", "ghosty spaces renew <workspace> --until YYYY-MM-DD [--note TEXT] [--dry-run] [--yes]", "ghosty spaces rename <old> <new> [--dry-run] [--yes]"],
|
|
11887
|
+
summary: "Workspaces: create one of your own (trial), list yours (or, staff, anyone's), and Ghosty staff operations \u2014 join/leave a client's workspace, change its combo, move \xABpaid until\xBB, rename its slug, change its owner. Each change is logged in the workspace's audit.",
|
|
11888
|
+
usage: ["ghosty spaces ls [--user EMAIL]", "ghosty spaces create <slug> [--combo teams|sales|both] [--dry-run]", "ghosty spaces join|leave <workspace>", "ghosty spaces set <workspace> --combo teams|sales|both | --model-cap 0.25|1|4|none | --house-claude on|off [--dry-run]", "ghosty spaces renew <workspace> --until YYYY-MM-DD [--note TEXT] [--dry-run] [--yes]", "ghosty spaces rename <old> <new> [--dry-run] [--yes]", "ghosty spaces transfer <workspace> --to EMAIL [--keep-as admin|member|none] [--copy-keys] [--dry-run] [--yes]"],
|
|
11845
11889
|
flags: [
|
|
11846
11890
|
["--user EMAIL", "ls (staff): that person's workspaces"],
|
|
11847
11891
|
["--combo C", "set (staff): teams | sales | both \u2014 without Sales its boards exist but nobody sees them; create: other than teams, staff only"],
|
|
@@ -11849,14 +11893,30 @@ HELPS.spaces = {
|
|
|
11849
11893
|
["--house-claude on|off", "set (staff): its agents run on Ghosty's Claude when the owner brings no key; recycles their Claude boxes"],
|
|
11850
11894
|
["--until DATE", "renew: the new \xABpaid until\xBB (YYYY-MM-DD)"],
|
|
11851
11895
|
["--note TEXT", "renew: why (goes into the audit)"],
|
|
11896
|
+
["--to EMAIL", "transfer: the new owner (if they have no account it is pre-created and claimed on login)"],
|
|
11897
|
+
["--keep-as R", "transfer: the previous owner's role \u2014 admin | member (default) | none (removed)"],
|
|
11898
|
+
["--copy-keys", "transfer: copy the previous owner's provider keys the new one lacks (agents spend the new owner's key)"],
|
|
11852
11899
|
["-n, --dry-run", "show what changes, change nothing"],
|
|
11853
11900
|
["--yes", "skip the confirmation (required without a terminal)"]
|
|
11854
11901
|
],
|
|
11855
|
-
examples: ["ghosty spaces ls", "ghosty spaces create mailmask --dry-run", "ghosty spaces ls --user brenda@siiqtec.com", "ghosty spaces join denik", "ghosty spaces set denik --combo sales --dry-run", "ghosty spaces set mailmask --model-cap 4 --house-claude on", 'ghosty spaces renew descti --until 2026-11-01 --note "pag\xF3 octubre"', "ghosty spaces rename totequim siiqtec --dry-run"],
|
|
11856
|
-
notes: ["create follows the same rules as the web: you own it, it starts as a 30-day trial, your email must be confirmed, and your plan caps how many you own. Next: ghosty partner enable <slug>.", "With a Stripe subscription renew refuses: the paid invoice moves the date.", "rename changes only the slug (id and namespace stay, so board, Stripe and WhatsApp keep working); old <slug>.sales links stop working."],
|
|
11902
|
+
examples: ["ghosty spaces ls", "ghosty spaces create mailmask --dry-run", "ghosty spaces ls --user brenda@siiqtec.com", "ghosty spaces join denik", "ghosty spaces set denik --combo sales --dry-run", "ghosty spaces set mailmask --model-cap 4 --house-claude on", 'ghosty spaces renew descti --until 2026-11-01 --note "pag\xF3 octubre"', "ghosty spaces rename totequim siiqtec --dry-run", "ghosty spaces transfer siiqtec --to siiqtec@gmail.com --keep-as admin --copy-keys --dry-run"],
|
|
11903
|
+
notes: ["create follows the same rules as the web: you own it, it starts as a 30-day trial, your email must be confirmed, and your plan caps how many you own. Next: ghosty partner enable <slug>.", "With a Stripe subscription renew refuses: the paid invoice moves the date.", "rename changes only the slug (id and namespace stay, so board, Stripe and WhatsApp keep working); old <slug>.sales links stop working.", "transfer moves the agents with the workspace and recycles their boxes (the owner is baked into the box); without --copy-keys the dry run lists which keys the new owner lacks \u2014 those agents would stop answering."],
|
|
11857
11904
|
learn: `${REF}#espacios`
|
|
11858
11905
|
};
|
|
11859
11906
|
HELPS.workspaces = HELPS.spaces;
|
|
11907
|
+
HELPS.sites = {
|
|
11908
|
+
summary: "Static sites published on EasyBits with Ghosty's house account. ls lists the ones your agents published; staff publish Ghosty's own artifacts (demos, landings) as house sites \u2014 no owner, no expiry, no \xABMade with Ghosty\xBB banner \u2014 and change any site's slug.",
|
|
11909
|
+
usage: ["ghosty sites ls [--house]", "ghosty sites publish <file.html|folder> [--title T] [--slug S] [--site <slug|id>]", "ghosty sites slug <slug|id> <new-slug>"],
|
|
11910
|
+
flags: [
|
|
11911
|
+
["--house", "ls (staff): Ghosty's house sites instead of yours"],
|
|
11912
|
+
["--title T", "publish: the site's name (default: the HTML <title> or the folder name)"],
|
|
11913
|
+
["--slug S", "publish: the slug for a NEW site (a-z, 0-9 and hyphens, 3\u201360, not reserved)"],
|
|
11914
|
+
["--site X", "publish: update that house site (slug, id or URL) instead of creating one"]
|
|
11915
|
+
],
|
|
11916
|
+
examples: ["ghosty sites ls --house", 'ghosty sites publish ./melon.html --title "Gelatina de sand\xEDa" --slug gelatina-de-sandia', "ghosty sites publish ./landing/ --site gelatina-de-sandia", "ghosty sites slug arbol-palpitante gelatina-de-sandia"],
|
|
11917
|
+
notes: ["A folder needs index.html at its root; hidden files and node_modules are skipped. Limits: 1 MB per file, 8 MB and 40 files per site.", "Without --site, publish always creates a new site (house sites are never matched by title).", "Slug errors: slug_invalid, slug_taken, and slug_unsupported while EasyBits does not accept a slug yet (exit 1, nothing changes)."],
|
|
11918
|
+
learn: `${REF}#sitios`
|
|
11919
|
+
};
|
|
11860
11920
|
function helpText(cmd) {
|
|
11861
11921
|
const base = HELPS[cmd];
|
|
11862
11922
|
if (!base) return void 0;
|
|
@@ -12338,7 +12398,7 @@ ${bagsText(r)}`);
|
|
|
12338
12398
|
}
|
|
12339
12399
|
}
|
|
12340
12400
|
async function spacesCmd(sub, slug, arg, v, context) {
|
|
12341
|
-
const ex = "ghosty spaces ls [--user EMAIL] \xB7 create <slug> [--combo teams|sales|both] [--dry-run] \xB7 join|leave <workspace> \xB7 set <workspace> --combo teams|sales|both | --model-cap 0.25|1|4|none | --house-claude on|off \xB7 renew <workspace> --until 2026-11-01 [--note TEXT] \xB7 rename <old> <new> [--dry-run]";
|
|
12401
|
+
const ex = "ghosty spaces ls [--user EMAIL] \xB7 create <slug> [--combo teams|sales|both] [--dry-run] \xB7 join|leave <workspace> \xB7 set <workspace> --combo teams|sales|both | --model-cap 0.25|1|4|none | --house-claude on|off \xB7 renew <workspace> --until 2026-11-01 [--note TEXT] \xB7 rename <old> <new> [--dry-run] \xB7 transfer <workspace> --to EMAIL [--keep-as admin|member|none] [--copy-keys] [--dry-run]";
|
|
12342
12402
|
if (!sub || sub === "ls" || sub === "list") {
|
|
12343
12403
|
const r = await api(`/api/v2/workspaces${v.user ? `?user=${enc10(v.user)}` : ""}`);
|
|
12344
12404
|
const rows = r.workspaces.map((w) => ({ workspace: w.slug, role: w.role ?? "", plan: w.plan, combo: w.combo, owner: w.owner ?? "", paid: w.paidUntil ?? "" }));
|
|
@@ -12412,6 +12472,29 @@ ${t("Rename?", "\xBFRenombrar?")}`, { yes: v.yes, expect: plan.from, retry: `gho
|
|
|
12412
12472
|
const r = await api(path, { method: "POST", body: { to: arg } });
|
|
12413
12473
|
return out(r, () => `${lavender("\u2713")} ${t(`Renamed: ${r.from} \u2192 ${r.to}. Undo: ghosty spaces rename ${r.to} ${r.from}`, `Renombrado: ${r.from} \u2192 ${r.to}. Deshacer: ghosty spaces rename ${r.to} ${r.from}`)}`);
|
|
12414
12474
|
}
|
|
12475
|
+
if (sub === "transfer") {
|
|
12476
|
+
slug = needSpace(slug ?? context, "ghosty spaces transfer <workspace> --to EMAIL --dry-run");
|
|
12477
|
+
const toEmail = v.to ?? arg;
|
|
12478
|
+
if (!toEmail) throw usage(t("Missing --to EMAIL.", "Falta --to CORREO."), `ghosty spaces transfer ${slug} --to new@owner.com --keep-as admin --copy-keys --dry-run`);
|
|
12479
|
+
const body = { to: toEmail, ...v["keep-as"] ? { keepAs: v["keep-as"] } : {}, ...v["copy-keys"] ? { copyKeys: true } : {} };
|
|
12480
|
+
const path = wsPath(slug, "/transfer");
|
|
12481
|
+
const plan = await api(path, { method: "POST", body: { ...body, dryRun: true } });
|
|
12482
|
+
const text = [
|
|
12483
|
+
`${plan.workspace}: ${plan.from ?? "\u2014"} \u2192 ${bold(plan.to)} ${dim(t(`(previous owner stays as ${plan.keepAs})`, `(el anterior queda como ${plan.keepAs})`))}`,
|
|
12484
|
+
`${t("agents", "agentes")}: ${plan.agents.join(", ") || "\u2014"}`,
|
|
12485
|
+
`${t("keys", "llaves")}: ${plan.keys.copy.length ? t(`copies ${plan.keys.copy.join(", ")}`, `copia ${plan.keys.copy.join(", ")}`) : t("copies none", "no copia")}${plan.keys.alreadyHas.length ? dim(t(` \xB7 already has ${plan.keys.alreadyHas.join(", ")}`, ` \xB7 ya tiene ${plan.keys.alreadyHas.join(", ")}`)) : ""}`,
|
|
12486
|
+
...plan.warnings.map((w) => red(` \xB7 ${serverText(w)}`))
|
|
12487
|
+
].join("\n");
|
|
12488
|
+
if (v["dry-run"]) return out(plan, () => `${text}
|
|
12489
|
+
${dim(t("Dry run: nothing changed.", "Simulaci\xF3n: no cambi\xF3 nada."))}`);
|
|
12490
|
+
const retry = `ghosty spaces transfer ${slug} --to ${toEmail}${v["keep-as"] ? ` --keep-as ${v["keep-as"]}` : ""}${v["copy-keys"] ? " --copy-keys" : ""}`;
|
|
12491
|
+
requireYesIfHeadless(v.yes, retry);
|
|
12492
|
+
await confirm(`${text}
|
|
12493
|
+
${t("Transfer it? Its agents' boxes are recycled (a turn in flight finishes first).", "\xBFTraspasarlo? Se reciclan las cajas de sus agentes (un turno en vuelo termina antes).")}`, { yes: v.yes, expect: plan.workspace, retry });
|
|
12494
|
+
const r = await api(path, { method: "POST", body });
|
|
12495
|
+
return out(r, () => `${lavender("\u2713")} ${t(`${r.workspace} now belongs to ${r.to}; ${r.from ?? "\u2014"} stays as ${r.keepAs}. ${r.recycled} agent(s) recycled.`, `${r.workspace} ya es de ${r.to}; ${r.from ?? "\u2014"} queda como ${r.keepAs}. ${r.recycled} agente(s) reciclado(s).`)}${r.warnings.length ? `
|
|
12496
|
+
${r.warnings.map((w) => red(` \xB7 ${serverText(w)}`)).join("\n")}` : ""}`);
|
|
12497
|
+
}
|
|
12415
12498
|
throw usage(t(`Unknown spaces subcommand: ${sub ?? "(none)"}.`, `Subcomando de spaces desconocido: ${sub ?? "(ninguno)"}.`), ex);
|
|
12416
12499
|
}
|
|
12417
12500
|
async function workspaceUsage(slug, v) {
|
|
@@ -12439,7 +12522,7 @@ ${dim(t(`${total2} message(s) unanswered for lack of balance in ${r.days} day(s)
|
|
|
12439
12522
|
d.noQuota += x.noQuota;
|
|
12440
12523
|
days.set(x.day, d);
|
|
12441
12524
|
}
|
|
12442
|
-
rows = [...days].map(([
|
|
12525
|
+
rows = [...days].map(([day2, x]) => ({ day: day2, ...fmt2(x) }));
|
|
12443
12526
|
} else rows = r.agents.map((x) => ({ agent: x.agent, ...fmt2(x) }));
|
|
12444
12527
|
const cols = [...by.has("day") ? ["day"] : [], ...by.has("agent") ? ["agent"] : [], "turns", "failed", "tokens", "no balance"];
|
|
12445
12528
|
const total = r.agents.reduce((n, a) => n + a.billable, 0);
|
|
@@ -12564,8 +12647,84 @@ async function demosCmd(sub, a1, rest, v) {
|
|
|
12564
12647
|
throw usage(t(`Unknown demos subcommand: ${sub ?? "(none)"}.`, `Subcomando de demos desconocido: ${sub ?? "(ninguno)"}.`), 'ghosty demos history <agent> \xB7 ghosty demos try <slug> "message"');
|
|
12565
12648
|
}
|
|
12566
12649
|
|
|
12650
|
+
// src/commands/sites.ts
|
|
12651
|
+
import { readdir as readdir5, readFile as readFile13, stat as stat2 } from "node:fs/promises";
|
|
12652
|
+
import { basename as basename4, join as join10, relative as relative2, sep } from "node:path";
|
|
12653
|
+
var TEXT_EXT = /* @__PURE__ */ new Set(["html", "htm", "css", "js", "mjs", "json", "txt", "xml", "svg", "webmanifest", "md"]);
|
|
12654
|
+
var SKIP = /* @__PURE__ */ new Set(["node_modules", ".git", ".DS_Store"]);
|
|
12655
|
+
async function collectSiteFiles(target) {
|
|
12656
|
+
const st = await stat2(target).catch(() => null);
|
|
12657
|
+
if (!st) throw usage(t(`Not found: ${target}`, `No existe: ${target}`));
|
|
12658
|
+
if (st.isFile()) {
|
|
12659
|
+
if (!/\.html?$/i.test(target)) throw usage(t("A single file must be .html (or pass a folder).", "Un archivo suelto debe ser .html (o pasa una carpeta)."));
|
|
12660
|
+
const html = await readFile13(target, "utf8");
|
|
12661
|
+
return { files: [{ path: "index.html", content: html, encoding: "text" }], title: titleOf(html) };
|
|
12662
|
+
}
|
|
12663
|
+
const files = [];
|
|
12664
|
+
const walk = async (dir) => {
|
|
12665
|
+
for (const e of await readdir5(dir, { withFileTypes: true })) {
|
|
12666
|
+
if (e.name.startsWith(".") || SKIP.has(e.name)) continue;
|
|
12667
|
+
const full = join10(dir, e.name);
|
|
12668
|
+
if (e.isDirectory()) await walk(full);
|
|
12669
|
+
else if (e.isFile()) {
|
|
12670
|
+
const path = relative2(target, full).split(sep).join("/");
|
|
12671
|
+
const ext = path.split(".").pop()?.toLowerCase() ?? "";
|
|
12672
|
+
const buf = await readFile13(full);
|
|
12673
|
+
files.push(TEXT_EXT.has(ext) ? { path, content: buf.toString("utf8"), encoding: "text" } : { path, content: buf.toString("base64"), encoding: "base64" });
|
|
12674
|
+
}
|
|
12675
|
+
}
|
|
12676
|
+
};
|
|
12677
|
+
await walk(target);
|
|
12678
|
+
const index = files.find((f) => f.path === "index.html");
|
|
12679
|
+
if (!index) throw usage(t(`${target} has no index.html at its root.`, `${target} no tiene index.html en la ra\xEDz.`));
|
|
12680
|
+
return { files: files.sort((a, b) => a.path.localeCompare(b.path)), title: titleOf(index.content) ?? basename4(target.replace(/\/+$/, "")) };
|
|
12681
|
+
}
|
|
12682
|
+
function titleOf(html) {
|
|
12683
|
+
const m = html.match(/<title[^>]*>([^<]*)<\/title>/i);
|
|
12684
|
+
const s = m?.[1]?.replace(/\s+/g, " ").trim();
|
|
12685
|
+
return s || null;
|
|
12686
|
+
}
|
|
12687
|
+
var kb = (n) => n ? `${Math.max(1, Math.round(n / 1024))} KB` : "";
|
|
12688
|
+
var day = (iso) => iso ? iso.slice(0, 10) : "";
|
|
12689
|
+
async function sitesCmd(sub, a1, a2, v) {
|
|
12690
|
+
const ex = "ghosty sites publish <file.html|folder> [--title T] [--slug S] [--site <slug|id>] \xB7 ls [--house] \xB7 slug <slug|id> <new-slug>";
|
|
12691
|
+
switch (sub ?? "ls") {
|
|
12692
|
+
case "ls":
|
|
12693
|
+
case "list": {
|
|
12694
|
+
const r = await api(`/api/v2/sites?scope=${v.house ? "house" : "mine"}`);
|
|
12695
|
+
const rows = r.sites.map((s) => ({ slug: s.slug, title: (s.title ?? "").slice(0, 40), url: s.url, files: s.files ?? "", size: kb(s.bytes), published: day(s.publishedAt), expires: s.expiresAt ? day(s.expiresAt) : t("never", "nunca") }));
|
|
12696
|
+
return out(r, () => `${bold(v.house ? t("House sites", "Sitios de la casa") : t("Your sites", "Tus sitios"))}
|
|
12697
|
+
${table(rows, ["slug", "title", "url", "files", "size", "published", "expires"])}`);
|
|
12698
|
+
}
|
|
12699
|
+
case "publish":
|
|
12700
|
+
case "deploy": {
|
|
12701
|
+
if (!a1) throw usage(t("Missing the file or folder.", "Falta el archivo o la carpeta."), ex);
|
|
12702
|
+
const { files, title } = await collectSiteFiles(a1);
|
|
12703
|
+
const body = {
|
|
12704
|
+
title: v.title ?? title ?? "Sitio de Ghosty",
|
|
12705
|
+
...files.length === 1 && files[0].path === "index.html" && files[0].encoding === "text" ? { html: files[0].content } : { files },
|
|
12706
|
+
...v.site ? { site: v.site } : {},
|
|
12707
|
+
...v.slug ? { slug: v.slug } : {}
|
|
12708
|
+
};
|
|
12709
|
+
const r = await api("/api/v2/sites", { method: "POST", body });
|
|
12710
|
+
return out(r, () => `${lavender("\u2713")} ${r.created ? t("Published", "Publicado") : t("Updated", "Actualizado")} ${bold(r.url)}
|
|
12711
|
+
${dim(t(`slug ${r.slug} \xB7 ${files.length} file(s) \xB7 update it: ghosty sites publish ${a1} --site ${r.slug}`, `slug ${r.slug} \xB7 ${files.length} archivo(s) \xB7 actual\xEDzalo: ghosty sites publish ${a1} --site ${r.slug}`))}`);
|
|
12712
|
+
}
|
|
12713
|
+
case "slug":
|
|
12714
|
+
case "rename": {
|
|
12715
|
+
if (!a1 || !a2) throw usage(t("Missing the site and the new slug.", "Faltan el sitio y el slug nuevo."), "ghosty sites slug <slug|id> <new-slug>");
|
|
12716
|
+
const r = await api(`/api/v2/sites/${encodeURIComponent(a1)}`, { method: "PATCH", body: { slug: a2 } });
|
|
12717
|
+
return out(r, () => `${lavender("\u2713")} ${r.oldSlug} \u2192 ${bold(r.slug)}
|
|
12718
|
+
${r.url}
|
|
12719
|
+
${dim(t("Links with the old slug may stop working.", "Las ligas con el slug viejo pueden dejar de funcionar."))}`);
|
|
12720
|
+
}
|
|
12721
|
+
default:
|
|
12722
|
+
throw usage(t(`Unknown sites subcommand: ${sub}.`, `Subcomando de sites desconocido: ${sub}.`), ex);
|
|
12723
|
+
}
|
|
12724
|
+
}
|
|
12725
|
+
|
|
12567
12726
|
// src/commands/support.ts
|
|
12568
|
-
import { readFile as
|
|
12727
|
+
import { readFile as readFile14 } from "node:fs/promises";
|
|
12569
12728
|
var enc12 = encodeURIComponent;
|
|
12570
12729
|
var cdmx = (iso) => new Date(Date.parse(iso) - 6 * 36e5).toISOString().slice(5, 16).replace("T", " ");
|
|
12571
12730
|
async function supportThreads(email, v) {
|
|
@@ -12675,7 +12834,7 @@ async function novedadesCmd(sub, id, v) {
|
|
|
12675
12834
|
const fields = async () => ({
|
|
12676
12835
|
...v.title !== void 0 ? { title: v.title } : {},
|
|
12677
12836
|
...v.body !== void 0 ? { body: v.body } : {},
|
|
12678
|
-
...v.image ? { image: (await
|
|
12837
|
+
...v.image ? { image: (await readFile14(v.image)).toString("base64") } : {},
|
|
12679
12838
|
...v.link !== void 0 ? { enlace: v.link || null } : {},
|
|
12680
12839
|
...v.button !== void 0 ? { boton: v.button || null } : {},
|
|
12681
12840
|
...v.to !== void 0 ? { destinatarios: v.to || null } : {},
|
|
@@ -12804,6 +12963,7 @@ ${bold("Workspaces")} ${dim("(changing them: Ghosty staff)")}
|
|
|
12804
12963
|
spaces set <workspace> --combo sales teams | sales | both (without Sales its boards are invisible) [--model-cap 0.25|1|4|none: most expensive model] [--house-claude on|off]
|
|
12805
12964
|
spaces renew <workspace> --until DATE Move \xABpaid until\xBB (logged) [--note] [--dry-run]
|
|
12806
12965
|
spaces rename <old> <new> Change its slug only [--dry-run]
|
|
12966
|
+
spaces transfer <workspace> --to EMAIL New owner; agents go with it and their boxes are recycled [--keep-as admin|member|none] [--copy-keys] [--dry-run]
|
|
12807
12967
|
|
|
12808
12968
|
${bold("Agents")}
|
|
12809
12969
|
agents ls List your agents [--engine E] [--ids: only ids, for xargs] \xB7 --user EMAIL --app all|android|ios|desktop: as their app sees it (staff)
|
|
@@ -12866,6 +13026,11 @@ ${bold("Support")} ${dim("(Ghosty staff)")}
|
|
|
12866
13026
|
push log --user EMAIL Pushes sent to someone and what Apple/Google answered [--since 2d]
|
|
12867
13027
|
novedades ls|create|set|test|send|rm Android app announcements [--title] [--body] [--image FILE] [--link] [--to] [--min-version N] [--publish] [--at]
|
|
12868
13028
|
|
|
13029
|
+
${bold("Sites")} ${dim("(static sites on EasyBits with Ghosty's house account)")}
|
|
13030
|
+
sites ls Sites your agents published [--house: Ghosty's own demos and landings (staff)]
|
|
13031
|
+
sites publish <file.html|folder> Publish a house site (staff): no owner, no expiry, no banner [--title] [--slug S] [--site <slug|id>: update that one]
|
|
13032
|
+
sites slug <slug|id> <new-slug> Change a site's slug (staff)
|
|
13033
|
+
|
|
12869
13034
|
${bold("Demos")}
|
|
12870
13035
|
demos try <slug> "msg" ["msg2"\u2026] Try a public demo as a visitor (same thread across runs) [--new] [--recycle-between --agent X]
|
|
12871
13036
|
demos history <id> What visitors did: turns, messages, files (Ghosty staff) [--since 2d] [--session web:\u2026] [--timeline] [--full]
|
|
@@ -12933,6 +13098,7 @@ ${bold("Espacios")} ${dim("(cambiarlos: staff de Ghosty)")}
|
|
|
12933
13098
|
spaces set <espacio> --combo sales teams | sales | both (sin Ventas sus tableros no se ven) [--model-cap 0.25|1|4|none: el modelo m\xE1s caro] [--house-claude on|off]
|
|
12934
13099
|
spaces renew <espacio> --until FECHA Mueve \xABpagado hasta\xBB (queda en bit\xE1cora) [--note] [--dry-run]
|
|
12935
13100
|
spaces rename <viejo> <nuevo> Cambia s\xF3lo su slug [--dry-run]
|
|
13101
|
+
spaces transfer <espacio> --to CORREO Due\xF1o nuevo; los agentes se van con \xE9l y se reciclan sus cajas [--keep-as admin|member|none] [--copy-keys] [--dry-run]
|
|
12936
13102
|
|
|
12937
13103
|
${bold("Agentes")}
|
|
12938
13104
|
agents ls Lista tus agentes [--engine E] [--ids: s\xF3lo ids, para xargs] \xB7 --user CORREO --app all|android|ios|desktop: como lo ve su app (staff)
|
|
@@ -12995,6 +13161,11 @@ ${bold("Soporte")} ${dim("(staff de Ghosty)")}
|
|
|
12995
13161
|
push log --user CORREO Avisos que se le mandaron a alguien y qu\xE9 contest\xF3 Apple/Google [--since 2d]
|
|
12996
13162
|
novedades ls|create|set|test|send|rm Novedades de la app Android [--title] [--body] [--image ARCHIVO] [--link] [--to] [--min-version N] [--publish] [--at]
|
|
12997
13163
|
|
|
13164
|
+
${bold("Sitios")} ${dim("(sitios est\xE1ticos en EasyBits con la cuenta de casa de Ghosty)")}
|
|
13165
|
+
sites ls Sitios que publicaron tus agentes [--house: demos y landings de Ghosty (staff)]
|
|
13166
|
+
sites publish <archivo.html|carpeta> Publica un sitio de la casa (staff): sin due\xF1o, sin caducidad, sin franja [--title] [--slug S] [--site <slug|id>: actualiza \xE9se]
|
|
13167
|
+
sites slug <slug|id> <slug-nuevo> Cambia el slug de un sitio (staff)
|
|
13168
|
+
|
|
12998
13169
|
${bold("Demos")}
|
|
12999
13170
|
demos try <slug> "msg" ["msg2"\u2026] Prueba un demo p\xFAblico como visitante (mismo hilo entre corridas) [--new] [--recycle-between --agent X]
|
|
13000
13171
|
demos history <id> Qu\xE9 hicieron los visitantes: turnos, mensajes, archivos (staff de Ghosty) [--since 2d] [--session web:\u2026] [--timeline] [--full]
|
|
@@ -13040,7 +13211,7 @@ ${bold("Opciones globales")}
|
|
|
13040
13211
|
${bold("C\xF3digos de salida")} 0 bien \xB7 1 error de la API \xB7 2 uso incorrecto \xB7 3 sin sesi\xF3n
|
|
13041
13212
|
${dim("Nota: `ghosty` puede chocar con otro binario en tu PATH (p. ej. la TUI de Ghosty). Rev\xEDsalo con `which -a ghosty`; corre `npx @ghostystudio/cli` para ir a la segura.")}
|
|
13042
13213
|
${dim("Documentaci\xF3n: https://www.ghosty.studio/docs/cli")}`;
|
|
13043
|
-
var COMMANDS = ["login", "logout", "whoami", "usage", "use", "apply", "plan", "engines", "bags", "spaces", "workspaces", "demos", "push", "novedades", "completion", "cards", "agents", "files", "skills", "mcp", "dbs", "turns", "try", "chat", "conversations", "schedule", "partner", "me", "channels", "board", "boards", "credentials", "docs", "help"];
|
|
13214
|
+
var COMMANDS = ["login", "logout", "whoami", "usage", "use", "apply", "plan", "engines", "bags", "spaces", "workspaces", "demos", "sites", "push", "novedades", "completion", "cards", "agents", "files", "skills", "mcp", "dbs", "turns", "try", "chat", "conversations", "schedule", "partner", "me", "channels", "board", "boards", "credentials", "docs", "help"];
|
|
13044
13215
|
var AGENTS_SUBS = ["ls", "create", "get", "set", "export", "doctor", "docs", "share", "unshare", "shares", "rm", "restart", "demo", "box"];
|
|
13045
13216
|
function unknown(what, input, known, helpCmd) {
|
|
13046
13217
|
const s = suggest(input, known);
|
|
@@ -13116,6 +13287,8 @@ async function main() {
|
|
|
13116
13287
|
config: { type: "string" },
|
|
13117
13288
|
"turn-token": { type: "string" },
|
|
13118
13289
|
slug: { type: "string" },
|
|
13290
|
+
site: { type: "string" },
|
|
13291
|
+
house: { type: "boolean" },
|
|
13119
13292
|
on: { type: "boolean" },
|
|
13120
13293
|
off: { type: "boolean" },
|
|
13121
13294
|
turns: { type: "string" },
|
|
@@ -13151,6 +13324,8 @@ async function main() {
|
|
|
13151
13324
|
boxes: { type: "boolean" },
|
|
13152
13325
|
like: { type: "string" },
|
|
13153
13326
|
"copy-dbs": { type: "boolean" },
|
|
13327
|
+
"copy-keys": { type: "boolean" },
|
|
13328
|
+
"keep-as": { type: "string" },
|
|
13154
13329
|
"no-notify": { type: "boolean" },
|
|
13155
13330
|
board: { type: "string" },
|
|
13156
13331
|
only: { type: "string" },
|
|
@@ -13261,7 +13436,7 @@ async function main() {
|
|
|
13261
13436
|
const tokens = splitTokens(pos, v);
|
|
13262
13437
|
globals.token = tokens.session;
|
|
13263
13438
|
globals.profile = v.profile;
|
|
13264
|
-
if (v.version) return out({ version: "0.
|
|
13439
|
+
if (v.version) return out({ version: "0.40.0" }, () => "0.40.0");
|
|
13265
13440
|
for (const n of normalizeArgs(pos, v)) if (!globals.json) info(dim(n));
|
|
13266
13441
|
const context = (await readConfig()).workspace;
|
|
13267
13442
|
if (!explicitToken()?.startsWith("gat_")) {
|
|
@@ -13350,6 +13525,9 @@ async function main() {
|
|
|
13350
13525
|
case "novedades":
|
|
13351
13526
|
case "announcements":
|
|
13352
13527
|
return novedadesCmd(sub, a1, v);
|
|
13528
|
+
case "sites":
|
|
13529
|
+
case "site":
|
|
13530
|
+
return sitesCmd(sub, a1, a2, v);
|
|
13353
13531
|
case "board":
|
|
13354
13532
|
return boardCmd(sub, a1, v, a2);
|
|
13355
13533
|
case "boards":
|
|
@@ -13410,7 +13588,7 @@ async function main() {
|
|
|
13410
13588
|
throw unknown(cmd, cmd, COMMANDS, "ghosty --help");
|
|
13411
13589
|
}
|
|
13412
13590
|
}
|
|
13413
|
-
var notice = updateNotice("0.
|
|
13591
|
+
var notice = updateNotice("0.40.0").catch(() => null);
|
|
13414
13592
|
main().then(
|
|
13415
13593
|
async () => {
|
|
13416
13594
|
const n = await notice;
|