@voxgig/system 1.11.0 → 1.13.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/cmd.ts +25 -2
- package/dist/cmd.js +18 -1
- package/dist/cmd.js.map +1 -1
- package/dist/lib/add.d.ts +6 -0
- package/dist/lib/add.js +81 -6
- package/dist/lib/add.js.map +1 -1
- package/dist/lib/context.d.ts +10 -0
- package/dist/lib/context.js +53 -0
- package/dist/lib/context.js.map +1 -0
- package/dist/lib/devtools.d.ts +13 -0
- package/dist/lib/devtools.js +121 -0
- package/dist/lib/devtools.js.map +1 -0
- package/dist/system.d.ts +3 -1
- package/dist/system.js +5 -1
- package/dist/system.js.map +1 -1
- package/lib/add.ts +104 -6
- package/lib/context.ts +87 -0
- package/lib/devtools.ts +169 -0
- package/package.json +1 -1
- package/system.ts +4 -0
package/cmd.ts
CHANGED
|
@@ -173,14 +173,37 @@ function requireArgs(args: string[], n: number, what: string) {
|
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
175
|
|
|
176
|
-
function report(results: {
|
|
176
|
+
function report(results: {
|
|
177
|
+
file: string, text: string, skipped?: boolean,
|
|
178
|
+
merged?: string[],
|
|
179
|
+
conflicts?: { path: string, current: any, wanted: any }[],
|
|
180
|
+
}[]) {
|
|
177
181
|
for (const res of results) {
|
|
178
182
|
if (res.skipped) {
|
|
179
183
|
console.log('already present (no change): ' + res.file)
|
|
180
184
|
}
|
|
181
185
|
else {
|
|
182
|
-
console.log(
|
|
186
|
+
console.log(
|
|
187
|
+
(res.merged ? 'merged into ' : 'appended to ') + res.file + ':')
|
|
183
188
|
console.log(res.text)
|
|
189
|
+
if (res.merged) {
|
|
190
|
+
console.log(' new: ' + res.merged.join(', '))
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// Never silent: a conflict means the requested value was NOT applied.
|
|
195
|
+
// It cannot be - aontu unifies rather than overrides, so appending a
|
|
196
|
+
// different value for a key that already has one fails the next model
|
|
197
|
+
// build instead of changing it.
|
|
198
|
+
if (res.conflicts && res.conflicts.length) {
|
|
199
|
+
console.log('\nNOT applied - already set to a different value:')
|
|
200
|
+
for (const c of res.conflicts) {
|
|
201
|
+
console.log(' ' + c.path +
|
|
202
|
+
': ' + JSON.stringify(c.current) +
|
|
203
|
+
' (wanted ' + JSON.stringify(c.wanted) + ')')
|
|
204
|
+
}
|
|
205
|
+
console.log('\nEdit the model by hand to change these: appending the\n' +
|
|
206
|
+
'new value would not override it, it would fail the model build.')
|
|
184
207
|
}
|
|
185
208
|
}
|
|
186
209
|
}
|
package/dist/cmd.js
CHANGED
|
@@ -163,8 +163,25 @@ function report(results) {
|
|
|
163
163
|
console.log('already present (no change): ' + res.file);
|
|
164
164
|
}
|
|
165
165
|
else {
|
|
166
|
-
console.log('appended to ' + res.file + ':');
|
|
166
|
+
console.log((res.merged ? 'merged into ' : 'appended to ') + res.file + ':');
|
|
167
167
|
console.log(res.text);
|
|
168
|
+
if (res.merged) {
|
|
169
|
+
console.log(' new: ' + res.merged.join(', '));
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// Never silent: a conflict means the requested value was NOT applied.
|
|
173
|
+
// It cannot be - aontu unifies rather than overrides, so appending a
|
|
174
|
+
// different value for a key that already has one fails the next model
|
|
175
|
+
// build instead of changing it.
|
|
176
|
+
if (res.conflicts && res.conflicts.length) {
|
|
177
|
+
console.log('\nNOT applied - already set to a different value:');
|
|
178
|
+
for (const c of res.conflicts) {
|
|
179
|
+
console.log(' ' + c.path +
|
|
180
|
+
': ' + JSON.stringify(c.current) +
|
|
181
|
+
' (wanted ' + JSON.stringify(c.wanted) + ')');
|
|
182
|
+
}
|
|
183
|
+
console.log('\nEdit the model by hand to change these: appending the\n' +
|
|
184
|
+
'new value would not override it, it would fail the model build.');
|
|
168
185
|
}
|
|
169
186
|
}
|
|
170
187
|
}
|
package/dist/cmd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmd.js","sourceRoot":"","sources":["../cmd.ts"],"names":[],"mappings":";;AACA,+CAA+C;;
|
|
1
|
+
{"version":3,"file":"cmd.js","sourceRoot":"","sources":["../cmd.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/add.d.ts
CHANGED
|
@@ -9,6 +9,12 @@ export type AddResult = {
|
|
|
9
9
|
file: string;
|
|
10
10
|
text: string;
|
|
11
11
|
skipped?: boolean;
|
|
12
|
+
merged?: string[];
|
|
13
|
+
conflicts?: {
|
|
14
|
+
path: string;
|
|
15
|
+
current: any;
|
|
16
|
+
wanted: any;
|
|
17
|
+
}[];
|
|
12
18
|
};
|
|
13
19
|
declare function resolveModelFolder(start: string): string;
|
|
14
20
|
declare function resolveModelFiles(start: string): ModelFiles;
|
package/dist/lib/add.js
CHANGED
|
@@ -149,6 +149,48 @@ function parseArg(arg, kind) {
|
|
|
149
149
|
throw new Error('invalid ' + kind + ' argument: ' + arg +
|
|
150
150
|
' - provide a name, {name:...,...spec}, or {thename:{...spec}}');
|
|
151
151
|
}
|
|
152
|
+
// Split a definition against what the compiled model already holds.
|
|
153
|
+
//
|
|
154
|
+
// `fresh` is the sub-tree of paths NOT yet set - safe to append, because
|
|
155
|
+
// aontu unifies it in. `conflicts` are paths already set to a DIFFERENT
|
|
156
|
+
// value: appending those is NOT a merge, it is a build error -
|
|
157
|
+
//
|
|
158
|
+
// [aontu/scalar_value]: Cannot unify values at path $.main.env.aws.stage
|
|
159
|
+
// Cannot unify value: "prd" with value: "dev"
|
|
160
|
+
//
|
|
161
|
+
// aontu unifies, it does not override, so a changed value cannot be
|
|
162
|
+
// applied by appending. It is reported for the user to edit by hand,
|
|
163
|
+
// rather than written and left to break the next model build.
|
|
164
|
+
function diffDef(want, have, path) {
|
|
165
|
+
const conflicts = [];
|
|
166
|
+
function walk(w, h, p) {
|
|
167
|
+
if (undefined === h) {
|
|
168
|
+
return w;
|
|
169
|
+
}
|
|
170
|
+
const bothMaps = null != w && 'object' === typeof w && !Array.isArray(w) &&
|
|
171
|
+
null != h && 'object' === typeof h && !Array.isArray(h);
|
|
172
|
+
if (!bothMaps) {
|
|
173
|
+
// A leaf (or a shape change): equal is a no-op, different is a
|
|
174
|
+
// conflict. Arrays compare whole - aontu unifies them elementwise,
|
|
175
|
+
// and second-guessing that here would be worse than saying so.
|
|
176
|
+
if (JSON.stringify(w) !== JSON.stringify(h)) {
|
|
177
|
+
conflicts.push({ path: p, current: h, wanted: w });
|
|
178
|
+
}
|
|
179
|
+
return undefined;
|
|
180
|
+
}
|
|
181
|
+
const out = {};
|
|
182
|
+
let any = false;
|
|
183
|
+
for (const k of Object.keys(w)) {
|
|
184
|
+
const sub = walk(w[k], h[k], p + '.' + k);
|
|
185
|
+
if (undefined !== sub) {
|
|
186
|
+
out[k] = sub;
|
|
187
|
+
any = true;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return any ? out : undefined;
|
|
191
|
+
}
|
|
192
|
+
return { fresh: walk(want, have, path), conflicts };
|
|
193
|
+
}
|
|
152
194
|
// The last compiled model (model.json next to the model source), used to
|
|
153
195
|
// make the add operations idempotent: an element that already exists in
|
|
154
196
|
// the compiled model is skipped rather than appended again. Formatting
|
|
@@ -520,21 +562,38 @@ sys: apikey: {
|
|
|
520
562
|
function addEnv(start, arg) {
|
|
521
563
|
var _a, _b, _c, _d;
|
|
522
564
|
const files = resolveModelFiles(start);
|
|
523
|
-
const { name, def } = parseArg(arg, 'env');
|
|
565
|
+
const { name, def: wanted } = parseArg(arg, 'env');
|
|
566
|
+
let def = wanted;
|
|
524
567
|
const kind = def.kind || name;
|
|
525
568
|
if (!ENV_KINDS.includes(kind)) {
|
|
526
569
|
throw new Error('unknown environment kind: ' + kind +
|
|
527
570
|
' (known: ' + ENV_KINDS.join(', ') +
|
|
528
571
|
'; use {name:..., kind:...} for a custom-named env)');
|
|
529
572
|
}
|
|
530
|
-
// Idempotent: environment already in the compiled model.
|
|
531
573
|
const model = compiledModel(files);
|
|
532
|
-
|
|
533
|
-
return { file: files.model, text: '', skipped: true };
|
|
534
|
-
}
|
|
574
|
+
const existing = (_b = (_a = model === null || model === void 0 ? void 0 : model.main) === null || _a === void 0 ? void 0 : _a.env) === null || _b === void 0 ? void 0 : _b[name];
|
|
535
575
|
if (null == def.active) {
|
|
536
576
|
def.active = true;
|
|
537
577
|
}
|
|
578
|
+
// Already declared: MERGE rather than skip outright. Only the keys the
|
|
579
|
+
// model does not already carry are appended - re-stating an existing key
|
|
580
|
+
// with a different value would not override it, it would fail the next
|
|
581
|
+
// model build (aontu unifies). Those are reported instead.
|
|
582
|
+
let conflicts = [];
|
|
583
|
+
let merged;
|
|
584
|
+
if (existing) {
|
|
585
|
+
const path = 'main.env.' + name;
|
|
586
|
+
const diff = diffDef(def, existing, path);
|
|
587
|
+
conflicts = diff.conflicts;
|
|
588
|
+
if (null == diff.fresh) {
|
|
589
|
+
return {
|
|
590
|
+
file: files.model, text: '', skipped: true,
|
|
591
|
+
...(conflicts.length ? { conflicts } : {}),
|
|
592
|
+
};
|
|
593
|
+
}
|
|
594
|
+
merged = leafPaths(diff.fresh, path);
|
|
595
|
+
def = diff.fresh;
|
|
596
|
+
}
|
|
538
597
|
// The web env needs the auth + generic entity services declared in the
|
|
539
598
|
// model so MakeSrv wires the generated service files (idempotent: only when
|
|
540
599
|
// the auth service is not already declared).
|
|
@@ -549,6 +608,22 @@ function addEnv(start, arg) {
|
|
|
549
608
|
const target = m ? node_path_1.default.join(files.folder, m[1]) : files.model;
|
|
550
609
|
const prefix = m ? '' : 'main: env: ';
|
|
551
610
|
const text = '\n' + prefix + name + ': ' + fmt(def, 0);
|
|
552
|
-
|
|
611
|
+
const res = append(target, text);
|
|
612
|
+
return {
|
|
613
|
+
...res,
|
|
614
|
+
...(merged ? { merged } : {}),
|
|
615
|
+
...(conflicts.length ? { conflicts } : {}),
|
|
616
|
+
};
|
|
617
|
+
}
|
|
618
|
+
// Every leaf path in a definition, for reporting what a merge appended.
|
|
619
|
+
function leafPaths(def, path) {
|
|
620
|
+
if (null == def || 'object' !== typeof def || Array.isArray(def)) {
|
|
621
|
+
return [path];
|
|
622
|
+
}
|
|
623
|
+
const keys = Object.keys(def);
|
|
624
|
+
if (0 === keys.length) {
|
|
625
|
+
return [path];
|
|
626
|
+
}
|
|
627
|
+
return keys.flatMap((k) => leafPaths(def[k], path + '.' + k));
|
|
553
628
|
}
|
|
554
629
|
//# sourceMappingURL=add.js.map
|
package/dist/lib/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../lib/add.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../lib/add.ts"],"names":[],"mappings":";AAAA,+CAA+C;;;;;;QAyf7C,kBAAkB;QAClB,iBAAiB;QACjB,SAAS;QACT,MAAM;QACN,MAAM;QACN,SAAS;QACT,MAAM;QAEN,GAAG;AA/fL,uEAAuE;AACvE,yEAAyE;AACzE,0EAA0E;AAC1E,oCAAoC;AACpC,EAAE;AACF,uEAAuE;AACvE,sEAAsE;AACtE,+BAA+B;AAE/B,sDAAwB;AACxB,0DAA4B;AAE5B,2CAAuC;AAGvC,2EAA2E;AAC3E,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;AAwB3D,6DAA6D;AAC7D,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AAEtC,iEAAiE;AACjE,mEAAmE;AACnE,4BAA4B;AAC5B,SAAS,kBAAkB,CAAC,KAAa;IACvC,MAAM,UAAU,GAAG;QACjB,KAAK;QACL,mBAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;QACzB,mBAAI,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC;KACrC,CAAA;IACD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,iBAAE,CAAC,UAAU,CAAC,mBAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;gBAChD,OAAO,CAAC,CAAA;YACV,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,oDAAoD;QAClE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA;AAChC,CAAC;AAGD,wEAAwE;AACxE,8DAA8D;AAC9D,sBAAsB;AACtB,SAAS,iBAAiB,CAAC,KAAa;IACtC,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAExC,IAAI,KAAK,GAAG,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IACvD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAA;QAC3C,IAAI,iBAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,KAAK,GAAG,CAAC,CAAA;YACT,MAAK;QACP,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,iBAAE,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAE1C,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE;QACxC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CACjB,IAAI,MAAM,CAAC,WAAW,GAAG,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAA;QACpD,IAAI,CAAC,EAAE,CAAC;YACN,OAAO,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAChC,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAA;YAC7C,IAAI,iBAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,CAAA;YACV,CAAC;QACH,CAAC;QACD,OAAO,mBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IACtD,CAAC,CAAA;IAED,OAAO;QACL,MAAM;QACN,KAAK;QACL,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;QACtB,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;QACtB,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;KACvB,CAAA;AACH,CAAC;AAGD,0EAA0E;AAC1E,2DAA2D;AAC3D,SAAS,GAAG,CAAC,GAAQ,EAAE,KAAa;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IAEpC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;QAChB,OAAO,MAAM,CAAA;IACf,CAAC;SACI,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE,CAAC;QACjC,OAAO,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACtC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAA;IACxC,CAAC;SACI,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;IACpB,CAAC;SACI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAA;IACjE,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACnC,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,KAAK;QACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;aAClE,IAAI,CAAC,IAAI,CAAC;QACb,IAAI,GAAG,GAAG,GAAG,GAAG,CAAA;AACpB,CAAC;AAED,SAAS,MAAM,CAAC,CAAS;IACvB,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAA;AACtC,CAAC;AAGD,SAAS,MAAM,CAAC,IAAY,EAAE,IAAY;IACxC,MAAM,QAAQ,GAAG,iBAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;IACnD,iBAAE,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,CAAA;IAC1C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AACvB,CAAC;AAGD,wEAAwE;AACxE,0DAA0D;AAC1D,SAAS,QAAQ,CAAC,GAAW,EAAE,IAAY;IACzC,IAAI,MAAW,CAAA;IACf,IAAI,CAAC;QACH,MAAM,GAAG,IAAA,eAAM,EAAC,GAAG,CAAC,CAAA;IACtB,CAAC;IACD,OAAO,CAAM,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,IAAI,GAAG,mCAAmC;YACrE,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,MAAM,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,CAAA;IAClC,CAAC;IAED,IAAI,IAAI,IAAI,MAAM,IAAI,QAAQ,KAAK,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,0BAA0B;QAC1B,IAAI,QAAQ,KAAK,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,EAAE,GAAG,MAAM,EAAE,CAAA;YACzB,OAAO,GAAG,CAAC,IAAI,CAAA;YACf,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA;QACnC,CAAC;QAED,sCAAsC;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,QAAQ,KAAK,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAChD,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,IAAI,GAAG,aAAa,GAAG,GAAG;QACrD,+DAA+D,CAAC,CAAA;AACpE,CAAC;AAGD,oEAAoE;AACpE,EAAE;AACF,yEAAyE;AACzE,wEAAwE;AACxE,+DAA+D;AAC/D,EAAE;AACF,2EAA2E;AAC3E,gDAAgD;AAChD,EAAE;AACF,oEAAoE;AACpE,qEAAqE;AACrE,8DAA8D;AAC9D,SAAS,OAAO,CAAC,IAAS,EAAE,IAAS,EAAE,IAAY;IAGjD,MAAM,SAAS,GAAkD,EAAE,CAAA;IAEnE,SAAS,IAAI,CAAC,CAAM,EAAE,CAAM,EAAE,CAAS;QACrC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,CAAA;QACV,CAAC;QAED,MAAM,QAAQ,GACZ,IAAI,IAAI,CAAC,IAAI,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,IAAI,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAEzD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,+DAA+D;YAC/D,mEAAmE;YACnE,+DAA+D;YAC/D,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;YACpD,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,GAAG,GAAQ,EAAE,CAAA;QACnB,IAAI,GAAG,GAAG,KAAK,CAAA;QACf,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAA;YACzC,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;gBACtB,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;gBACZ,GAAG,GAAG,IAAI,CAAA;YACZ,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;IAC9B,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,CAAA;AACrD,CAAC;AAGD,yEAAyE;AACzE,wEAAwE;AACxE,uEAAuE;AACvE,yEAAyE;AACzE,sEAAsE;AACtE,+DAA+D;AAC/D,SAAS,aAAa,CAAC,KAAiB;IACtC,MAAM,CAAC,GAAG,mBAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAC/C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,CAAM,EAAE,CAAC;QACd,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAGD,0EAA0E;AAC1E,qDAAqD;AACrD,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,GAAG,GAAG,iBAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC5C,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;SAC1D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAA;IAC7B,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IAChC,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AAC5C,CAAC;AAGD,yCAAyC;AACzC,yEAAyE;AACzE,SAAS,SAAS,CAAC,KAAa,EAAE,GAAW;;IAC3C,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACtC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IAEtD,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;IACnB,OAAO,GAAG,CAAC,IAAI,CAAA;IACf,IAAI,IAAI,GAAG,OAAO,CAAA;IAClB,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAChC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACf,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,IAAI,GAAG,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAErC,oDAAoD;IACpD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,MAAA,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,0CAAE,GAAG,0CAAG,IAAI,CAAC,0CAAG,IAAI,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACrD,CAAC;IAED,IAAI,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACtB,GAAG,CAAC,KAAK,GAAG,EAAE,CAAA;IAChB,CAAC;IACD,IAAI,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACtB,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IAC9B,CAAC;IAED,MAAM,GAAG,GAAG,iBAAE,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,IAAI,GAAG,2BAA2B,CAAA;IAEpC,MAAM,IAAI,GAAG,IAAI,GAAG,SAAS;QAC3B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAEzC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AAChC,CAAC;AAGD,sCAAsC;AACtC,0EAA0E;AAC1E,qDAAqD;AACrD,SAAS,MAAM,CAAC,KAAa,EAAE,GAAW;;IACxC,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACtC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAE1C,qDAAqD;IACrD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,0CAAE,GAAG,0CAAG,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACrD,CAAC;IAED,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;QACnB,GAAG,CAAC,EAAE,GAAG;YACP,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE;SACpB,CAAA;IACH,CAAC;IACD,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACrB,GAAG,CAAC,IAAI,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;IAC/B,CAAC;IACD,IAAI,IAAI,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;QACpB,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAA;IAC/D,CAAC;IACD,IAAI,IAAI,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;QACpB,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAA;IACxC,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAE7C,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AAChC,CAAC;AAGD,sCAAsC;AACtC,uEAAuE;AACvE,4EAA4E;AAC5E,qEAAqE;AACrE,SAAS,MAAM,CAAC,KAAa,EAAE,GAAW;;IACxC,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAEtC,sEAAsE;IACtE,uEAAuE;IACvE,MAAM,QAAQ,GAAG,mCAAmC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;IAErE,IAAI,MAAW,CAAA;IACf,IAAI,CAAC;QACH,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAA,eAAM,EAAC,GAAG,CAAC,CAAA;IAC9C,CAAC;IACD,OAAO,CAAM,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,8CAA8C;YAC5D,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;IAED,IAAI,IAAc,CAAA;IAClB,IAAI,IAAI,GAAQ,EAAE,CAAA;IAElB,IAAI,QAAQ,KAAK,OAAO,MAAM,EAAE,CAAC;QAC/B,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;IACtD,CAAC;SACI,IAAI,IAAI,IAAI,MAAM,IAAI,QAAQ,KAAK,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;QAC3D,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;QACjE,IAAI,GAAG,EAAE,GAAG,MAAM,EAAE,CAAA;QACpB,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;SACI,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,GAAG;YAC9C,0EAA0E,CAAC,CAAA;IAC7E,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACxD,CAAC;IAED,0DAA0D;IAC1D,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;QAClB,IAAI,IAAI,GAAQ,MAAA,KAAK,CAAC,IAAI,0CAAE,GAAG,CAAA;QAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,CAAC,CAAC,CAAA;QAClB,CAAC;QACD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QACrD,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,IAAI,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;QACxB,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAE1C,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AAChC,CAAC;AAGD,qDAAqD;AACrD,yEAAyE;AACzE,wCAAwC;AACxC,mDAAmD;AACnD,SAAS,SAAS,CAAC,KAAa,EAAE,MAAc,EAAE,SAAmB;;IAEnE,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAEtC,IAAI,IAAY,CAAA;IAChB,IAAI,IAAY,CAAA;IAChB,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClC,CAAC;SACI,CAAC;QACJ,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC7B,IAAI,GAAG,MAAM,CAAA;IACf,CAAC;IAED,IAAI,CAAC,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IAElC,MAAM,GAAG,GAAgB,EAAE,CAAA;IAE3B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,MAAW,CAAA;QACf,IAAI,CAAC;YACH,MAAM,GAAG,IAAA,eAAM,EAAC,GAAG,CAAC,CAAA;QACtB,CAAC;QACD,OAAO,CAAM,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,gDAAgD;gBAC9D,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;QAC5B,CAAC;QAED,IAAI,KAAa,CAAA;QACjB,IAAI,GAAQ,CAAA;QAEZ,IAAI,QAAQ,KAAK,OAAO,MAAM,EAAE,CAAC;YAC/B,KAAK,GAAG,MAAM,CAAA;YACd,GAAG,GAAG,EAAE,CAAA;QACV,CAAC;aACI,IAAI,IAAI,IAAI,MAAM,IAAI,QAAQ,KAAK,OAAO,MAAM,EAAE,CAAC;YACtD,IAAI,QAAQ,KAAK,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAA;gBACnB,GAAG,GAAG,EAAE,GAAG,MAAM,EAAE,CAAA;gBACnB,OAAO,GAAG,CAAC,IAAI,CAAA;YACjB,CAAC;iBACI,CAAC;gBACJ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAChC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;oBACtB,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,GAAG,CAAC,CAAA;gBACnD,CAAC;gBACD,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;gBACf,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;gBACzB,GAAG,GAAG,QAAQ,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAA;YAC5D,CAAC;QACH,CAAC;aACI,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,GAAG,CAAC,CAAA;QACnD,CAAC;QAED,iEAAiE;QACjE,IAAI,MAAA,MAAA,MAAA,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,0CAAE,GAAG,0CAAG,IAAI,CAAC,0CAAG,IAAI,CAAC,0CAAE,KAAK,0CAAG,KAAK,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;YACtD,SAAQ;QACV,CAAC;QAED,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACrB,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAA;QACrB,CAAC;QACD,IAAI,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,KAAK,GAAG,KAAK;iBACd,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;iBACtE,IAAI,CAAC,GAAG,CAAC,CAAA;QACd,CAAC;QAED,wDAAwD;QACxD,MAAM,OAAO,GAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAA;QACzD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,IAAI,OAAO,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;YACrB,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,WAAW,GAAG,KAAK,GAAG,IAAI;YACjE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QAEjB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;IACnC,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAgBD,uEAAuE;AACvE,yEAAyE;AACzE,MAAM,SAAS,GACb,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAA;QARvE,SAAS;AAWX,sCAAsC;AACtC,yEAAyE;AACzE,gDAAgD;AAChD,qEAAqE;AACrE,yEAAyE;AACzE,mBAAmB;AACnB,wEAAwE;AACxE,4EAA4E;AAC5E,8EAA8E;AAC9E,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6DnB,CAAA;AAEF,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yEAkDoD,CAAA;AAEzE,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;EAiBnB,CAAA;AAGF,SAAS,MAAM,CAAC,KAAa,EAAE,GAAW;;IACxC,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACtC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAClD,IAAI,GAAG,GAAG,MAAM,CAAA;IAEhB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,CAAA;IAC7B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,IAAI;YACjD,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YAClC,oDAAoD,CAAC,CAAA;IACzD,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IAClC,MAAM,QAAQ,GAAG,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,0CAAE,GAAG,0CAAG,IAAI,CAAC,CAAA;IAEzC,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACvB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAA;IACnB,CAAC;IAED,uEAAuE;IACvE,yEAAyE;IACzE,uEAAuE;IACvE,2DAA2D;IAC3D,IAAI,SAAS,GAAkD,EAAE,CAAA;IACjE,IAAI,MAA4B,CAAA;IAEhC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,GAAG,WAAW,GAAG,IAAI,CAAA;QAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;QACzC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAE1B,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACvB,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI;gBAC1C,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3C,CAAA;QACH,CAAC;QAED,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACpC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAA;IAClB,CAAC;IAED,uEAAuE;IACvE,4EAA4E;IAC5E,6CAA6C;IAC7C,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,KAAI,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,0CAAE,GAAG,0CAAE,IAAI,CAAA,EAAE,CAAC;QACrD,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;QAC/B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;QAC/B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;IACjC,CAAC;IAED,wEAAwE;IACxE,MAAM,GAAG,GAAG,iBAAE,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAChD,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAA;IAC9D,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAA;IAErC,MAAM,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAEtD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAEhC,OAAO;QACL,GAAG,GAAG;QACN,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3C,CAAA;AACH,CAAC;AAGD,wEAAwE;AACxE,SAAS,SAAS,CAAC,GAAQ,EAAE,IAAY;IACvC,IAAI,IAAI,IAAI,GAAG,IAAI,QAAQ,KAAK,OAAO,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAA;IACf,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAA;IACf,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;AAC/D,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type ContextSpec = {
|
|
2
|
+
env: string;
|
|
3
|
+
stage?: string;
|
|
4
|
+
srvname?: string;
|
|
5
|
+
};
|
|
6
|
+
declare const ALL_SRV = "all";
|
|
7
|
+
declare function resolveStage(model: any, spec: ContextSpec): string;
|
|
8
|
+
declare function context(seneca: any, model: any, pkg: any, spec: ContextSpec): any;
|
|
9
|
+
export type { ContextSpec, };
|
|
10
|
+
export { context, resolveStage, ALL_SRV, };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright © 2026 Voxgig Ltd, MIT License. */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.ALL_SRV = void 0;
|
|
5
|
+
exports.context = context;
|
|
6
|
+
exports.resolveStage = resolveStage;
|
|
7
|
+
// The service name for a process running every service in-tree. AWS Lambda
|
|
8
|
+
// is the one deployment that overrides it: one function per service.
|
|
9
|
+
const ALL_SRV = 'all';
|
|
10
|
+
exports.ALL_SRV = ALL_SRV;
|
|
11
|
+
// stage resolution, most specific first:
|
|
12
|
+
// 1. an explicit spec.stage - the caller knows better (Lambda's STAGE)
|
|
13
|
+
// 2. process.env.STAGE - deploy-time override
|
|
14
|
+
// 3. the model's env entry stage - main.env.<env>.stage, e.g. aws.stage
|
|
15
|
+
// 4. the env name - a sensible last resort ('local', 'docker')
|
|
16
|
+
//
|
|
17
|
+
// (3) is the one that was being thrown away: a model could say
|
|
18
|
+
// `aws: { stage: 'dev' }` and every entry would still report 'aws'.
|
|
19
|
+
function resolveStage(model, spec) {
|
|
20
|
+
if (null != spec.stage && '' !== spec.stage) {
|
|
21
|
+
return spec.stage;
|
|
22
|
+
}
|
|
23
|
+
const fromEnvVar = 'undefined' === typeof process ? undefined :
|
|
24
|
+
process.env && process.env.STAGE;
|
|
25
|
+
if (null != fromEnvVar && '' !== fromEnvVar) {
|
|
26
|
+
return fromEnvVar;
|
|
27
|
+
}
|
|
28
|
+
const envdef = model && model.main && model.main.env &&
|
|
29
|
+
model.main.env[spec.env];
|
|
30
|
+
if (envdef && null != envdef.stage && '' !== envdef.stage) {
|
|
31
|
+
return envdef.stage;
|
|
32
|
+
}
|
|
33
|
+
return spec.env;
|
|
34
|
+
}
|
|
35
|
+
// context(seneca, model, pkg, { env }): set the runtime context an entry
|
|
36
|
+
// needs. Returns seneca so it can be chained.
|
|
37
|
+
//
|
|
38
|
+
// `env` is required and NOT derived: it is the one thing the model cannot
|
|
39
|
+
// tell us, because it names which entry is running. It need not be a model
|
|
40
|
+
// env name - 'lambda' and 'test' are entries without a matching main.env
|
|
41
|
+
// key - so it is deliberately not validated against the model.
|
|
42
|
+
function context(seneca, model, pkg, spec) {
|
|
43
|
+
if (null == spec || 'string' !== typeof spec.env || '' === spec.env) {
|
|
44
|
+
throw new Error('voxgig-system: context requires a non-empty `env` string');
|
|
45
|
+
}
|
|
46
|
+
seneca.context.model = model;
|
|
47
|
+
seneca.context.pkg = pkg;
|
|
48
|
+
seneca.context.env = spec.env;
|
|
49
|
+
seneca.context.stage = resolveStage(model, spec);
|
|
50
|
+
seneca.context.srvname = spec.srvname || ALL_SRV;
|
|
51
|
+
return seneca;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../lib/context.ts"],"names":[],"mappings":";AAAA,+CAA+C;;;QAmF7C,OAAO;QACP,YAAY;AA9Dd,2EAA2E;AAC3E,qEAAqE;AACrE,MAAM,OAAO,GAAG,KAAK,CAAA;QA6DnB,OAAO;AA1DT,yCAAyC;AACzC,8EAA8E;AAC9E,0DAA0D;AAC1D,0EAA0E;AAC1E,gFAAgF;AAChF,EAAE;AACF,+DAA+D;AAC/D,oEAAoE;AACpE,SAAS,YAAY,CAAC,KAAU,EAAE,IAAiB;IACjD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,WAAW,KAAK,OAAO,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAA;IAClC,IAAI,IAAI,IAAI,UAAU,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;QAC5C,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG;QAClD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC1B,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1D,OAAO,MAAM,CAAC,KAAK,CAAA;IACrB,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAA;AACjB,CAAC;AAGD,yEAAyE;AACzE,8CAA8C;AAC9C,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,yEAAyE;AACzE,+DAA+D;AAC/D,SAAS,OAAO,CAAC,MAAW,EAAE,KAAU,EAAE,GAAQ,EAAE,IAAiB;IACnE,IAAI,IAAI,IAAI,IAAI,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;IAC7E,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;IAC5B,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAA;IACxB,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;IAC7B,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAChD,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAA;IAEhD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
declare const DEFAULT_PREFIX = "SENECA_";
|
|
2
|
+
type DevtoolsSpec = {
|
|
3
|
+
env: string;
|
|
4
|
+
prefix?: string;
|
|
5
|
+
};
|
|
6
|
+
declare function envFlag(name: string, raw: string | undefined): boolean | undefined;
|
|
7
|
+
declare function devtools(seneca: any, model: any, spec: DevtoolsSpec): {
|
|
8
|
+
test: boolean;
|
|
9
|
+
repl: boolean;
|
|
10
|
+
port?: number;
|
|
11
|
+
};
|
|
12
|
+
export type { DevtoolsSpec, };
|
|
13
|
+
export { devtools, envFlag, DEFAULT_PREFIX, };
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright © 2026 Voxgig Ltd, MIT License. */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.DEFAULT_PREFIX = void 0;
|
|
5
|
+
exports.devtools = devtools;
|
|
6
|
+
exports.envFlag = envFlag;
|
|
7
|
+
// devtools: the development-only behaviour an environment entry switches
|
|
8
|
+
// on - Seneca's test mode, and the @seneca/repl dev REPL.
|
|
9
|
+
//
|
|
10
|
+
// These were hard-coded in the generated web entry: seneca.test() ran
|
|
11
|
+
// unconditionally, and the REPL was on unless a bare `REPL=false` said
|
|
12
|
+
// otherwise. Neither was visible in the model, so what a deployment
|
|
13
|
+
// actually enabled could not be read off it - and `REPL` is a name generic
|
|
14
|
+
// enough to collide with anything else in the environment.
|
|
15
|
+
//
|
|
16
|
+
// Now the model says what a deployment enables, and the env vars that
|
|
17
|
+
// override it are namespaced.
|
|
18
|
+
//
|
|
19
|
+
// @seneca/repl has no `active` option - its options shape is CLOSED, and
|
|
20
|
+
// passing one fails at load with "Plugin repl: option value is not valid".
|
|
21
|
+
// So enabling is a conditional `use`, not a plugin flag. If that changes
|
|
22
|
+
// upstream, this is the one place to simplify.
|
|
23
|
+
// Where the flags come from, most specific first:
|
|
24
|
+
// 1. <PREFIX>TEST / <PREFIX>REPL - runtime override
|
|
25
|
+
// 2. main.env.<env>.dev.<flag> - per-environment, from the model
|
|
26
|
+
// 3. main.conf.dev.<flag> - project default, from the model
|
|
27
|
+
// 4. false - a deployment enables dev tooling
|
|
28
|
+
// deliberately, never by accident
|
|
29
|
+
const DEFAULT_PREFIX = 'SENECA_';
|
|
30
|
+
exports.DEFAULT_PREFIX = DEFAULT_PREFIX;
|
|
31
|
+
// Parse an env var as a boolean. Absent or empty means "not set", so the
|
|
32
|
+
// next source down decides. Anything other than a recognised true/false
|
|
33
|
+
// word is an error rather than a silent false - `SENECA_REPL=yes` meaning
|
|
34
|
+
// "off" would be a miserable half hour.
|
|
35
|
+
function envFlag(name, raw) {
|
|
36
|
+
if (null == raw || '' === raw) {
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
const val = raw.trim().toLowerCase();
|
|
40
|
+
if ('true' === val || '1' === val || 'yes' === val || 'on' === val) {
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
if ('false' === val || '0' === val || 'no' === val || 'off' === val) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
throw new Error('voxgig-system: ' + name + ' must be a boolean ' +
|
|
47
|
+
'(true/false, 1/0, yes/no, on/off), got: ' + JSON.stringify(raw));
|
|
48
|
+
}
|
|
49
|
+
function envPrefix(model, spec) {
|
|
50
|
+
if (null != spec.prefix) {
|
|
51
|
+
if ('string' !== typeof spec.prefix) {
|
|
52
|
+
throw new Error('voxgig-system: devtools `prefix` must be a string');
|
|
53
|
+
}
|
|
54
|
+
return spec.prefix;
|
|
55
|
+
}
|
|
56
|
+
const core = model && model.main && model.main.conf && model.main.conf.core;
|
|
57
|
+
if (core && 'string' === typeof core.envprefix && '' !== core.envprefix) {
|
|
58
|
+
return core.envprefix;
|
|
59
|
+
}
|
|
60
|
+
return DEFAULT_PREFIX;
|
|
61
|
+
}
|
|
62
|
+
// Resolve one dev flag through the four sources above.
|
|
63
|
+
function devFlag(model, spec, flag, env) {
|
|
64
|
+
const name = envPrefix(model, spec) + flag.toUpperCase();
|
|
65
|
+
const fromEnv = envFlag(name, env[name]);
|
|
66
|
+
if (undefined !== fromEnv) {
|
|
67
|
+
return fromEnv;
|
|
68
|
+
}
|
|
69
|
+
const main = (model && model.main) || {};
|
|
70
|
+
const envdef = main.env && main.env[spec.env];
|
|
71
|
+
if (envdef && envdef.dev && null != envdef.dev[flag]) {
|
|
72
|
+
return !!envdef.dev[flag];
|
|
73
|
+
}
|
|
74
|
+
const conf = main.conf;
|
|
75
|
+
if (conf && conf.dev && null != conf.dev[flag]) {
|
|
76
|
+
return !!conf.dev[flag];
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
// The REPL port: <PREFIX>REPL_PORT, else the model's conf.port.repl.
|
|
81
|
+
function replPort(model, spec, env) {
|
|
82
|
+
const name = envPrefix(model, spec) + 'REPL_PORT';
|
|
83
|
+
const raw = env[name];
|
|
84
|
+
if (null != raw && '' !== raw) {
|
|
85
|
+
// Test the RAW string, not parseInt's result: parseInt('40404x') is
|
|
86
|
+
// 40404 and parseInt('12.5') is 12, so checking only the number back
|
|
87
|
+
// would silently accept a malformed port.
|
|
88
|
+
const val = raw.trim();
|
|
89
|
+
if (!/^\d+$/.test(val)) {
|
|
90
|
+
throw new Error('voxgig-system: ' + name + ' must be an integer, got: ' +
|
|
91
|
+
JSON.stringify(raw));
|
|
92
|
+
}
|
|
93
|
+
return parseInt(val, 10);
|
|
94
|
+
}
|
|
95
|
+
const port = model && model.main && model.main.conf &&
|
|
96
|
+
model.main.conf.port && model.main.conf.port.repl;
|
|
97
|
+
return 'number' === typeof port ? port : undefined;
|
|
98
|
+
}
|
|
99
|
+
// devtools(seneca, model, { env }): apply the dev-only behaviour this
|
|
100
|
+
// environment declares. Returns { test, repl, port } - what it decided -
|
|
101
|
+
// so an entry can log it or a test can assert on it.
|
|
102
|
+
//
|
|
103
|
+
// The REPL plugin is loaded only when enabled: it is the project's
|
|
104
|
+
// dependency, not this package's.
|
|
105
|
+
function devtools(seneca, model, spec) {
|
|
106
|
+
if (null == spec || 'string' !== typeof spec.env || '' === spec.env) {
|
|
107
|
+
throw new Error('voxgig-system: devtools requires a non-empty `env` string');
|
|
108
|
+
}
|
|
109
|
+
const procenv = 'undefined' === typeof process ? {} : (process.env || {});
|
|
110
|
+
const test = devFlag(model, spec, 'test', procenv);
|
|
111
|
+
const repl = devFlag(model, spec, 'repl', procenv);
|
|
112
|
+
const port = repl ? replPort(model, spec, procenv) : undefined;
|
|
113
|
+
if (test) {
|
|
114
|
+
seneca.test();
|
|
115
|
+
}
|
|
116
|
+
if (repl) {
|
|
117
|
+
seneca.use('repl', null == port ? {} : { port });
|
|
118
|
+
}
|
|
119
|
+
return { test, repl, port };
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=devtools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devtools.js","sourceRoot":"","sources":["../../lib/devtools.ts"],"names":[],"mappings":"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"}
|
package/dist/system.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ import { Utility } from './lib/utility';
|
|
|
3
3
|
import { MakeSrv } from './srv/make';
|
|
4
4
|
import { addEntity, addSrv, addMsg, addFields, addEnv, resolveModelFiles } from './lib/add';
|
|
5
5
|
import { listTemplates, ejectFragment, ejectCode, diffTemplates } from './lib/template';
|
|
6
|
+
import { context } from './lib/context';
|
|
7
|
+
import { devtools } from './lib/devtools';
|
|
6
8
|
declare function messages(seneca: any, options: any, reload: any): void;
|
|
7
9
|
declare function gubuify(params: any, Gubu: any): any;
|
|
8
10
|
declare function prepare(seneca: any, require: any): void;
|
|
@@ -34,4 +36,4 @@ declare const Template: {
|
|
|
34
36
|
ejectCode: typeof ejectCode;
|
|
35
37
|
diff: typeof diffTemplates;
|
|
36
38
|
};
|
|
37
|
-
export { Add, Template, gubuify, System, MakeSrv, Utility, Local, Live, };
|
|
39
|
+
export { Add, Template, context, devtools, gubuify, System, MakeSrv, Utility, Local, Live, };
|
package/dist/system.js
CHANGED
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
5
|
};
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.Utility = exports.MakeSrv = exports.System = exports.Template = exports.Add = void 0;
|
|
7
|
+
exports.Utility = exports.MakeSrv = exports.System = exports.devtools = exports.context = exports.Template = exports.Add = void 0;
|
|
8
8
|
exports.gubuify = gubuify;
|
|
9
9
|
exports.Local = Local;
|
|
10
10
|
exports.Live = Live;
|
|
@@ -16,6 +16,10 @@ const make_1 = require("./srv/make");
|
|
|
16
16
|
Object.defineProperty(exports, "MakeSrv", { enumerable: true, get: function () { return make_1.MakeSrv; } });
|
|
17
17
|
const add_1 = require("./lib/add");
|
|
18
18
|
const template_1 = require("./lib/template");
|
|
19
|
+
const context_1 = require("./lib/context");
|
|
20
|
+
Object.defineProperty(exports, "context", { enumerable: true, get: function () { return context_1.context; } });
|
|
21
|
+
const devtools_1 = require("./lib/devtools");
|
|
22
|
+
Object.defineProperty(exports, "devtools", { enumerable: true, get: function () { return devtools_1.devtools; } });
|
|
19
23
|
const { srvmsgs, deep } = utility_1.Utility;
|
|
20
24
|
function messages(seneca, options, reload) {
|
|
21
25
|
let srvname = seneca.fixedargs.plugin$.name.replace(/^srv_/, '');
|
package/dist/system.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.js","sourceRoot":"","sources":["../system.ts"],"names":[],"mappings":";AAAA,+CAA+C;;;;;;
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../system.ts"],"names":[],"mappings":"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"}
|
package/lib/add.ts
CHANGED
|
@@ -31,6 +31,12 @@ export type AddResult = {
|
|
|
31
31
|
file: string // file appended to
|
|
32
32
|
text: string // the appended block ('' when skipped)
|
|
33
33
|
skipped?: boolean // true when the element already exists (no change)
|
|
34
|
+
merged?: string[] // paths appended into an element that already existed
|
|
35
|
+
conflicts?: { // paths already set to a DIFFERENT value; see below
|
|
36
|
+
path: string
|
|
37
|
+
current: any
|
|
38
|
+
wanted: any
|
|
39
|
+
}[]
|
|
34
40
|
}
|
|
35
41
|
|
|
36
42
|
|
|
@@ -180,6 +186,58 @@ function parseArg(arg: string, kind: string): { name: string, def: any } {
|
|
|
180
186
|
}
|
|
181
187
|
|
|
182
188
|
|
|
189
|
+
// Split a definition against what the compiled model already holds.
|
|
190
|
+
//
|
|
191
|
+
// `fresh` is the sub-tree of paths NOT yet set - safe to append, because
|
|
192
|
+
// aontu unifies it in. `conflicts` are paths already set to a DIFFERENT
|
|
193
|
+
// value: appending those is NOT a merge, it is a build error -
|
|
194
|
+
//
|
|
195
|
+
// [aontu/scalar_value]: Cannot unify values at path $.main.env.aws.stage
|
|
196
|
+
// Cannot unify value: "prd" with value: "dev"
|
|
197
|
+
//
|
|
198
|
+
// aontu unifies, it does not override, so a changed value cannot be
|
|
199
|
+
// applied by appending. It is reported for the user to edit by hand,
|
|
200
|
+
// rather than written and left to break the next model build.
|
|
201
|
+
function diffDef(want: any, have: any, path: string): {
|
|
202
|
+
fresh: any, conflicts: { path: string, current: any, wanted: any }[]
|
|
203
|
+
} {
|
|
204
|
+
const conflicts: { path: string, current: any, wanted: any }[] = []
|
|
205
|
+
|
|
206
|
+
function walk(w: any, h: any, p: string): any {
|
|
207
|
+
if (undefined === h) {
|
|
208
|
+
return w
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
const bothMaps =
|
|
212
|
+
null != w && 'object' === typeof w && !Array.isArray(w) &&
|
|
213
|
+
null != h && 'object' === typeof h && !Array.isArray(h)
|
|
214
|
+
|
|
215
|
+
if (!bothMaps) {
|
|
216
|
+
// A leaf (or a shape change): equal is a no-op, different is a
|
|
217
|
+
// conflict. Arrays compare whole - aontu unifies them elementwise,
|
|
218
|
+
// and second-guessing that here would be worse than saying so.
|
|
219
|
+
if (JSON.stringify(w) !== JSON.stringify(h)) {
|
|
220
|
+
conflicts.push({ path: p, current: h, wanted: w })
|
|
221
|
+
}
|
|
222
|
+
return undefined
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
const out: any = {}
|
|
226
|
+
let any = false
|
|
227
|
+
for (const k of Object.keys(w)) {
|
|
228
|
+
const sub = walk(w[k], h[k], p + '.' + k)
|
|
229
|
+
if (undefined !== sub) {
|
|
230
|
+
out[k] = sub
|
|
231
|
+
any = true
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return any ? out : undefined
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
return { fresh: walk(want, have, path), conflicts }
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
|
|
183
241
|
// The last compiled model (model.json next to the model source), used to
|
|
184
242
|
// make the add operations idempotent: an element that already exists in
|
|
185
243
|
// the compiled model is skipped rather than appended again. Formatting
|
|
@@ -609,7 +667,8 @@ sys: apikey: {
|
|
|
609
667
|
|
|
610
668
|
function addEnv(start: string, arg: string): AddResult {
|
|
611
669
|
const files = resolveModelFiles(start)
|
|
612
|
-
const { name, def } = parseArg(arg, 'env')
|
|
670
|
+
const { name, def: wanted } = parseArg(arg, 'env')
|
|
671
|
+
let def = wanted
|
|
613
672
|
|
|
614
673
|
const kind = def.kind || name
|
|
615
674
|
if (!ENV_KINDS.includes(kind)) {
|
|
@@ -618,16 +677,36 @@ function addEnv(start: string, arg: string): AddResult {
|
|
|
618
677
|
'; use {name:..., kind:...} for a custom-named env)')
|
|
619
678
|
}
|
|
620
679
|
|
|
621
|
-
// Idempotent: environment already in the compiled model.
|
|
622
680
|
const model = compiledModel(files)
|
|
623
|
-
|
|
624
|
-
return { file: files.model, text: '', skipped: true }
|
|
625
|
-
}
|
|
681
|
+
const existing = model?.main?.env?.[name]
|
|
626
682
|
|
|
627
683
|
if (null == def.active) {
|
|
628
684
|
def.active = true
|
|
629
685
|
}
|
|
630
686
|
|
|
687
|
+
// Already declared: MERGE rather than skip outright. Only the keys the
|
|
688
|
+
// model does not already carry are appended - re-stating an existing key
|
|
689
|
+
// with a different value would not override it, it would fail the next
|
|
690
|
+
// model build (aontu unifies). Those are reported instead.
|
|
691
|
+
let conflicts: { path: string, current: any, wanted: any }[] = []
|
|
692
|
+
let merged: string[] | undefined
|
|
693
|
+
|
|
694
|
+
if (existing) {
|
|
695
|
+
const path = 'main.env.' + name
|
|
696
|
+
const diff = diffDef(def, existing, path)
|
|
697
|
+
conflicts = diff.conflicts
|
|
698
|
+
|
|
699
|
+
if (null == diff.fresh) {
|
|
700
|
+
return {
|
|
701
|
+
file: files.model, text: '', skipped: true,
|
|
702
|
+
...(conflicts.length ? { conflicts } : {}),
|
|
703
|
+
}
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
merged = leafPaths(diff.fresh, path)
|
|
707
|
+
def = diff.fresh
|
|
708
|
+
}
|
|
709
|
+
|
|
631
710
|
// The web env needs the auth + generic entity services declared in the
|
|
632
711
|
// model so MakeSrv wires the generated service files (idempotent: only when
|
|
633
712
|
// the auth service is not already declared).
|
|
@@ -645,5 +724,24 @@ function addEnv(start: string, arg: string): AddResult {
|
|
|
645
724
|
|
|
646
725
|
const text = '\n' + prefix + name + ': ' + fmt(def, 0)
|
|
647
726
|
|
|
648
|
-
|
|
727
|
+
const res = append(target, text)
|
|
728
|
+
|
|
729
|
+
return {
|
|
730
|
+
...res,
|
|
731
|
+
...(merged ? { merged } : {}),
|
|
732
|
+
...(conflicts.length ? { conflicts } : {}),
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
|
|
737
|
+
// Every leaf path in a definition, for reporting what a merge appended.
|
|
738
|
+
function leafPaths(def: any, path: string): string[] {
|
|
739
|
+
if (null == def || 'object' !== typeof def || Array.isArray(def)) {
|
|
740
|
+
return [path]
|
|
741
|
+
}
|
|
742
|
+
const keys = Object.keys(def)
|
|
743
|
+
if (0 === keys.length) {
|
|
744
|
+
return [path]
|
|
745
|
+
}
|
|
746
|
+
return keys.flatMap((k) => leafPaths(def[k], path + '.' + k))
|
|
649
747
|
}
|
package/lib/context.ts
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/* Copyright © 2026 Voxgig Ltd, MIT License. */
|
|
2
|
+
|
|
3
|
+
// seneca.context: the runtime facts every environment entry has to put on
|
|
4
|
+
// the Seneca instance before services load.
|
|
5
|
+
//
|
|
6
|
+
// This used to be five hand-written assignments at the top of every
|
|
7
|
+
// generated entry (local, docker, vm, aws, azure, cloudflare, web, and the
|
|
8
|
+
// test setups). Copy-paste let them drift: azure never set `stage` or
|
|
9
|
+
// `srvname`, cloudflare set none of them, and the web runner reported
|
|
10
|
+
// `env: 'local'` when it was the web environment. Nothing read those
|
|
11
|
+
// fields yet, so the drift was silent - which is exactly why it spread.
|
|
12
|
+
//
|
|
13
|
+
// One call now sets all five, and everything that CAN be derived is.
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
type ContextSpec = {
|
|
17
|
+
env: string // which entry this is - the only fact not in the model
|
|
18
|
+
stage?: string // deploy stage; see the resolution order below
|
|
19
|
+
srvname?: string // 'all' for a single process, the service for one-per-srv
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
// The service name for a process running every service in-tree. AWS Lambda
|
|
24
|
+
// is the one deployment that overrides it: one function per service.
|
|
25
|
+
const ALL_SRV = 'all'
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
// stage resolution, most specific first:
|
|
29
|
+
// 1. an explicit spec.stage - the caller knows better (Lambda's STAGE)
|
|
30
|
+
// 2. process.env.STAGE - deploy-time override
|
|
31
|
+
// 3. the model's env entry stage - main.env.<env>.stage, e.g. aws.stage
|
|
32
|
+
// 4. the env name - a sensible last resort ('local', 'docker')
|
|
33
|
+
//
|
|
34
|
+
// (3) is the one that was being thrown away: a model could say
|
|
35
|
+
// `aws: { stage: 'dev' }` and every entry would still report 'aws'.
|
|
36
|
+
function resolveStage(model: any, spec: ContextSpec): string {
|
|
37
|
+
if (null != spec.stage && '' !== spec.stage) {
|
|
38
|
+
return spec.stage
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const fromEnvVar = 'undefined' === typeof process ? undefined :
|
|
42
|
+
process.env && process.env.STAGE
|
|
43
|
+
if (null != fromEnvVar && '' !== fromEnvVar) {
|
|
44
|
+
return fromEnvVar
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const envdef = model && model.main && model.main.env &&
|
|
48
|
+
model.main.env[spec.env]
|
|
49
|
+
if (envdef && null != envdef.stage && '' !== envdef.stage) {
|
|
50
|
+
return envdef.stage
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return spec.env
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
// context(seneca, model, pkg, { env }): set the runtime context an entry
|
|
58
|
+
// needs. Returns seneca so it can be chained.
|
|
59
|
+
//
|
|
60
|
+
// `env` is required and NOT derived: it is the one thing the model cannot
|
|
61
|
+
// tell us, because it names which entry is running. It need not be a model
|
|
62
|
+
// env name - 'lambda' and 'test' are entries without a matching main.env
|
|
63
|
+
// key - so it is deliberately not validated against the model.
|
|
64
|
+
function context(seneca: any, model: any, pkg: any, spec: ContextSpec): any {
|
|
65
|
+
if (null == spec || 'string' !== typeof spec.env || '' === spec.env) {
|
|
66
|
+
throw new Error('voxgig-system: context requires a non-empty `env` string')
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
seneca.context.model = model
|
|
70
|
+
seneca.context.pkg = pkg
|
|
71
|
+
seneca.context.env = spec.env
|
|
72
|
+
seneca.context.stage = resolveStage(model, spec)
|
|
73
|
+
seneca.context.srvname = spec.srvname || ALL_SRV
|
|
74
|
+
|
|
75
|
+
return seneca
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
export type {
|
|
80
|
+
ContextSpec,
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export {
|
|
84
|
+
context,
|
|
85
|
+
resolveStage,
|
|
86
|
+
ALL_SRV,
|
|
87
|
+
}
|
package/lib/devtools.ts
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/* Copyright © 2026 Voxgig Ltd, MIT License. */
|
|
2
|
+
|
|
3
|
+
// devtools: the development-only behaviour an environment entry switches
|
|
4
|
+
// on - Seneca's test mode, and the @seneca/repl dev REPL.
|
|
5
|
+
//
|
|
6
|
+
// These were hard-coded in the generated web entry: seneca.test() ran
|
|
7
|
+
// unconditionally, and the REPL was on unless a bare `REPL=false` said
|
|
8
|
+
// otherwise. Neither was visible in the model, so what a deployment
|
|
9
|
+
// actually enabled could not be read off it - and `REPL` is a name generic
|
|
10
|
+
// enough to collide with anything else in the environment.
|
|
11
|
+
//
|
|
12
|
+
// Now the model says what a deployment enables, and the env vars that
|
|
13
|
+
// override it are namespaced.
|
|
14
|
+
//
|
|
15
|
+
// @seneca/repl has no `active` option - its options shape is CLOSED, and
|
|
16
|
+
// passing one fails at load with "Plugin repl: option value is not valid".
|
|
17
|
+
// So enabling is a conditional `use`, not a plugin flag. If that changes
|
|
18
|
+
// upstream, this is the one place to simplify.
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
// Where the flags come from, most specific first:
|
|
22
|
+
// 1. <PREFIX>TEST / <PREFIX>REPL - runtime override
|
|
23
|
+
// 2. main.env.<env>.dev.<flag> - per-environment, from the model
|
|
24
|
+
// 3. main.conf.dev.<flag> - project default, from the model
|
|
25
|
+
// 4. false - a deployment enables dev tooling
|
|
26
|
+
// deliberately, never by accident
|
|
27
|
+
const DEFAULT_PREFIX = 'SENECA_'
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
type DevtoolsSpec = {
|
|
31
|
+
env: string // which entry is running
|
|
32
|
+
prefix?: string // env var prefix; default SENECA_
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
// Parse an env var as a boolean. Absent or empty means "not set", so the
|
|
37
|
+
// next source down decides. Anything other than a recognised true/false
|
|
38
|
+
// word is an error rather than a silent false - `SENECA_REPL=yes` meaning
|
|
39
|
+
// "off" would be a miserable half hour.
|
|
40
|
+
function envFlag(name: string, raw: string | undefined): boolean | undefined {
|
|
41
|
+
if (null == raw || '' === raw) {
|
|
42
|
+
return undefined
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const val = raw.trim().toLowerCase()
|
|
46
|
+
|
|
47
|
+
if ('true' === val || '1' === val || 'yes' === val || 'on' === val) {
|
|
48
|
+
return true
|
|
49
|
+
}
|
|
50
|
+
if ('false' === val || '0' === val || 'no' === val || 'off' === val) {
|
|
51
|
+
return false
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
throw new Error(
|
|
55
|
+
'voxgig-system: ' + name + ' must be a boolean ' +
|
|
56
|
+
'(true/false, 1/0, yes/no, on/off), got: ' + JSON.stringify(raw))
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
function envPrefix(model: any, spec: DevtoolsSpec): string {
|
|
61
|
+
if (null != spec.prefix) {
|
|
62
|
+
if ('string' !== typeof spec.prefix) {
|
|
63
|
+
throw new Error('voxgig-system: devtools `prefix` must be a string')
|
|
64
|
+
}
|
|
65
|
+
return spec.prefix
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const core = model && model.main && model.main.conf && model.main.conf.core
|
|
69
|
+
if (core && 'string' === typeof core.envprefix && '' !== core.envprefix) {
|
|
70
|
+
return core.envprefix
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return DEFAULT_PREFIX
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
// Resolve one dev flag through the four sources above.
|
|
78
|
+
function devFlag(
|
|
79
|
+
model: any, spec: DevtoolsSpec, flag: string, env: NodeJS.ProcessEnv
|
|
80
|
+
): boolean {
|
|
81
|
+
const name = envPrefix(model, spec) + flag.toUpperCase()
|
|
82
|
+
|
|
83
|
+
const fromEnv = envFlag(name, env[name])
|
|
84
|
+
if (undefined !== fromEnv) {
|
|
85
|
+
return fromEnv
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const main = (model && model.main) || {}
|
|
89
|
+
|
|
90
|
+
const envdef = main.env && main.env[spec.env]
|
|
91
|
+
if (envdef && envdef.dev && null != envdef.dev[flag]) {
|
|
92
|
+
return !!envdef.dev[flag]
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const conf = main.conf
|
|
96
|
+
if (conf && conf.dev && null != conf.dev[flag]) {
|
|
97
|
+
return !!conf.dev[flag]
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return false
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
// The REPL port: <PREFIX>REPL_PORT, else the model's conf.port.repl.
|
|
105
|
+
function replPort(model: any, spec: DevtoolsSpec, env: NodeJS.ProcessEnv):
|
|
106
|
+
number | undefined {
|
|
107
|
+
const name = envPrefix(model, spec) + 'REPL_PORT'
|
|
108
|
+
const raw = env[name]
|
|
109
|
+
|
|
110
|
+
if (null != raw && '' !== raw) {
|
|
111
|
+
// Test the RAW string, not parseInt's result: parseInt('40404x') is
|
|
112
|
+
// 40404 and parseInt('12.5') is 12, so checking only the number back
|
|
113
|
+
// would silently accept a malformed port.
|
|
114
|
+
const val = raw.trim()
|
|
115
|
+
if (!/^\d+$/.test(val)) {
|
|
116
|
+
throw new Error(
|
|
117
|
+
'voxgig-system: ' + name + ' must be an integer, got: ' +
|
|
118
|
+
JSON.stringify(raw))
|
|
119
|
+
}
|
|
120
|
+
return parseInt(val, 10)
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const port = model && model.main && model.main.conf &&
|
|
124
|
+
model.main.conf.port && model.main.conf.port.repl
|
|
125
|
+
|
|
126
|
+
return 'number' === typeof port ? port : undefined
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
// devtools(seneca, model, { env }): apply the dev-only behaviour this
|
|
131
|
+
// environment declares. Returns { test, repl, port } - what it decided -
|
|
132
|
+
// so an entry can log it or a test can assert on it.
|
|
133
|
+
//
|
|
134
|
+
// The REPL plugin is loaded only when enabled: it is the project's
|
|
135
|
+
// dependency, not this package's.
|
|
136
|
+
function devtools(seneca: any, model: any, spec: DevtoolsSpec): {
|
|
137
|
+
test: boolean, repl: boolean, port?: number
|
|
138
|
+
} {
|
|
139
|
+
if (null == spec || 'string' !== typeof spec.env || '' === spec.env) {
|
|
140
|
+
throw new Error('voxgig-system: devtools requires a non-empty `env` string')
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
const procenv = 'undefined' === typeof process ? {} : (process.env || {})
|
|
144
|
+
|
|
145
|
+
const test = devFlag(model, spec, 'test', procenv)
|
|
146
|
+
const repl = devFlag(model, spec, 'repl', procenv)
|
|
147
|
+
const port = repl ? replPort(model, spec, procenv) : undefined
|
|
148
|
+
|
|
149
|
+
if (test) {
|
|
150
|
+
seneca.test()
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
if (repl) {
|
|
154
|
+
seneca.use('repl', null == port ? {} : { port })
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
return { test, repl, port }
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
export type {
|
|
162
|
+
DevtoolsSpec,
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export {
|
|
166
|
+
devtools,
|
|
167
|
+
envFlag,
|
|
168
|
+
DEFAULT_PREFIX,
|
|
169
|
+
}
|
package/package.json
CHANGED
package/system.ts
CHANGED
|
@@ -15,6 +15,8 @@ import { MakeSrv } from './srv/make'
|
|
|
15
15
|
|
|
16
16
|
import { addEntity, addSrv, addMsg, addFields, addEnv, resolveModelFiles } from './lib/add'
|
|
17
17
|
import { listTemplates, ejectFragment, ejectCode, diffTemplates } from './lib/template'
|
|
18
|
+
import { context } from './lib/context'
|
|
19
|
+
import { devtools } from './lib/devtools'
|
|
18
20
|
|
|
19
21
|
|
|
20
22
|
|
|
@@ -236,6 +238,8 @@ const Template = {
|
|
|
236
238
|
export {
|
|
237
239
|
Add,
|
|
238
240
|
Template,
|
|
241
|
+
context,
|
|
242
|
+
devtools,
|
|
239
243
|
gubuify,
|
|
240
244
|
System,
|
|
241
245
|
MakeSrv,
|