@decaf-ts/cli 0.4.4 → 0.4.6
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 +1 -1
- package/dist/cli.cjs +1 -1
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/lib/CliWrapper.cjs +254 -91
- package/lib/CliWrapper.d.ts +32 -4
- package/lib/CliWrapper.js.map +1 -1
- package/lib/banners.cjs +394 -0
- package/lib/banners.d.ts +3 -0
- package/lib/banners.js.map +1 -0
- package/lib/demo/cli-module.cjs +9 -39
- package/lib/demo/cli-module.d.ts +0 -33
- package/lib/demo/cli-module.js.map +1 -1
- package/lib/environment.cjs +17 -0
- package/lib/environment.d.ts +17 -0
- package/lib/environment.js.map +1 -0
- package/lib/esm/CliWrapper.d.ts +32 -4
- package/lib/esm/CliWrapper.js +255 -92
- package/lib/esm/CliWrapper.js.map +1 -1
- package/lib/esm/banners.d.ts +3 -0
- package/lib/esm/banners.js +391 -0
- package/lib/esm/banners.js.map +1 -0
- package/lib/esm/demo/cli-module.d.ts +0 -33
- package/lib/esm/demo/cli-module.js +9 -39
- package/lib/esm/demo/cli-module.js.map +1 -1
- package/lib/esm/environment.d.ts +17 -0
- package/lib/esm/environment.js +11 -0
- package/lib/esm/environment.js.map +1 -0
- package/lib/esm/index.d.ts +1 -0
- package/lib/esm/index.js +1 -0
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/logging.d.ts +3 -0
- package/lib/esm/logging.js +16 -0
- package/lib/esm/logging.js.map +1 -0
- package/lib/esm/slogans.d.ts +40 -0
- package/lib/esm/slogans.js +142 -0
- package/lib/esm/slogans.js.map +1 -0
- package/lib/esm/utils-module/cli-module.d.ts +2 -0
- package/lib/esm/utils-module/cli-module.js +77 -0
- package/lib/esm/utils-module/cli-module.js.map +1 -0
- package/lib/esm/utils.js +1 -1
- package/lib/esm/utils.js.map +1 -1
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/index.cjs +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js.map +1 -1
- package/lib/logging.cjs +19 -0
- package/lib/logging.d.ts +3 -0
- package/lib/logging.js.map +1 -0
- package/lib/slogans.cjs +150 -0
- package/lib/slogans.d.ts +40 -0
- package/lib/slogans.js.map +1 -0
- package/lib/utils-module/cli-module.cjs +83 -0
- package/lib/utils-module/cli-module.d.ts +2 -0
- package/lib/utils-module/cli-module.js.map +1 -0
- package/lib/utils.cjs +1 -1
- package/lib/utils.js.map +1 -1
- package/lib/version.cjs +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +3 -2
- package/workdocs/assets/slogans.json +194 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import { getPackage } from "@decaf-ts/utils";
|
|
4
|
+
/**
|
|
5
|
+
* @description Reads and parses slogans from workdocs/assets/slogans.json.
|
|
6
|
+
* @summary Attempts to read a slogans.json file from the workdocs/assets directory at the given base path and returns its parsed contents as an array.
|
|
7
|
+
*
|
|
8
|
+
* @param {string} basePath - The base directory path where workdocs/assets/slogans.json should exist.
|
|
9
|
+
* @return {any[] | undefined} The parsed array from slogans.json, or undefined if the file doesn't exist.
|
|
10
|
+
*
|
|
11
|
+
* @function readSlogans
|
|
12
|
+
*
|
|
13
|
+
* @memberOf module:utils
|
|
14
|
+
*/
|
|
15
|
+
export function readSlogans(log, basePath) {
|
|
16
|
+
log = log.for(readSlogans);
|
|
17
|
+
const slogansPath = path.join(basePath, "workdocs", "assets", "slogans.json");
|
|
18
|
+
try {
|
|
19
|
+
if (!fs.existsSync(slogansPath)) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
const content = fs.readFileSync(slogansPath);
|
|
23
|
+
return JSON.parse(content.toString());
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
log.error(`Failed to read slogans from ${slogansPath}`, error);
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @description Collects slogans from a base path and all @decaf scoped packages.
|
|
32
|
+
* @summary Recursively collects slogans.json files from the given base path and all subdirectories under node_modules/@decaf/*. Results are stored in an object keyed by the package name (from package.json).
|
|
33
|
+
*
|
|
34
|
+
* @param {string} basePath - The base directory path to start collecting from.
|
|
35
|
+
* @return {Record<string, any[]>} An object mapping package names to their slogans arrays.
|
|
36
|
+
*
|
|
37
|
+
* @function collectSlogans
|
|
38
|
+
*
|
|
39
|
+
* @memberOf module:utils
|
|
40
|
+
*/
|
|
41
|
+
export function collectSlogans(log, basePath) {
|
|
42
|
+
log = log.for(collectSlogans);
|
|
43
|
+
const result = {};
|
|
44
|
+
// Read slogans for the base path
|
|
45
|
+
const baseSlogans = readSlogans(log, basePath);
|
|
46
|
+
if (baseSlogans) {
|
|
47
|
+
try {
|
|
48
|
+
const pkgName = getPackage(basePath, "name");
|
|
49
|
+
result[pkgName] = baseSlogans;
|
|
50
|
+
log.verbose(`Collected ${baseSlogans.length} slogans from ${pkgName}`);
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
log.verbose(`Failed to get package name for base path: ${error}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// Check for @decaf/* packages in node_modules
|
|
57
|
+
const decafModulesPath = path.join(basePath, "node_modules", "@decaf-ts");
|
|
58
|
+
if (fs.existsSync(decafModulesPath)) {
|
|
59
|
+
try {
|
|
60
|
+
const decafPackages = fs.readdirSync(decafModulesPath, {
|
|
61
|
+
withFileTypes: true,
|
|
62
|
+
});
|
|
63
|
+
for (const pkg of decafPackages) {
|
|
64
|
+
if (!pkg.isDirectory())
|
|
65
|
+
continue;
|
|
66
|
+
const pkgPath = path.join(decafModulesPath, pkg.name);
|
|
67
|
+
const pkgSlogans = readSlogans(log, pkgPath);
|
|
68
|
+
if (pkgSlogans) {
|
|
69
|
+
try {
|
|
70
|
+
const pkgName = getPackage(pkgPath, "name");
|
|
71
|
+
result[pkgName] = pkgSlogans;
|
|
72
|
+
log.verbose(`Collected ${pkgSlogans.length} slogans from ${pkgName}`);
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
log.verbose(`Failed to get package name for ${pkgPath}: ${error}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
log.verbose(`Error reading @decaf-ts modules: ${error}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return result;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* @description Flattens collected slogans with weighted selection for a priority package.
|
|
88
|
+
* @summary Given a collection of slogans and a priority package name, returns a flat array where slogans from the priority package have a 30-40% chance of appearing at any given position.
|
|
89
|
+
*
|
|
90
|
+
* @param {Record<string, any[]>} slogansMap - Object mapping package names to slogan arrays.
|
|
91
|
+
* @param {string} priorityPackage - The package name whose slogans should be prioritized.
|
|
92
|
+
* @return {any[]} A flat array of all slogans with weighted distribution.
|
|
93
|
+
*
|
|
94
|
+
* @function flattenSlogansWithPriority
|
|
95
|
+
*
|
|
96
|
+
* @memberOf module:utils
|
|
97
|
+
*/
|
|
98
|
+
export function flattenSlogansWithPriority(log, slogansMap, priorityPackage) {
|
|
99
|
+
log = log.for(flattenSlogansWithPriority);
|
|
100
|
+
const result = [];
|
|
101
|
+
const prioritySlogans = slogansMap[priorityPackage] || [];
|
|
102
|
+
const otherSlogans = [];
|
|
103
|
+
// Collect all non-priority slogans
|
|
104
|
+
for (const [pkgName, slogans] of Object.entries(slogansMap)) {
|
|
105
|
+
if (pkgName === priorityPackage)
|
|
106
|
+
continue;
|
|
107
|
+
otherSlogans.push(...slogans);
|
|
108
|
+
}
|
|
109
|
+
if (prioritySlogans.length === 0 && otherSlogans.length === 0) {
|
|
110
|
+
log.error("No slogans found to flatten");
|
|
111
|
+
return result;
|
|
112
|
+
}
|
|
113
|
+
if (prioritySlogans.length === 0) {
|
|
114
|
+
log.verbose(`package "${priorityPackage}" has no slogans, returning all other slogans`);
|
|
115
|
+
return otherSlogans;
|
|
116
|
+
}
|
|
117
|
+
if (otherSlogans.length === 0) {
|
|
118
|
+
log.debug("Only priority slogans available, returning them");
|
|
119
|
+
return prioritySlogans;
|
|
120
|
+
}
|
|
121
|
+
// Interleave with 30-40% chance for priority slogans
|
|
122
|
+
let priorityIndex = 0;
|
|
123
|
+
let otherIndex = 0;
|
|
124
|
+
const priorityWeight = 0.35; // 35% average chance
|
|
125
|
+
while (priorityIndex < prioritySlogans.length ||
|
|
126
|
+
otherIndex < otherSlogans.length) {
|
|
127
|
+
const usePriority = Math.random() < priorityWeight;
|
|
128
|
+
if (usePriority && priorityIndex < prioritySlogans.length) {
|
|
129
|
+
result.push(prioritySlogans[priorityIndex++]);
|
|
130
|
+
}
|
|
131
|
+
else if (otherIndex < otherSlogans.length) {
|
|
132
|
+
result.push(otherSlogans[otherIndex++]);
|
|
133
|
+
}
|
|
134
|
+
else if (priorityIndex < prioritySlogans.length) {
|
|
135
|
+
// Only priority slogans left
|
|
136
|
+
result.push(prioritySlogans[priorityIndex++]);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
log.debug(`Flattened ${result.length} slogans with priority for "${priorityPackage}"`);
|
|
140
|
+
return result;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=slogans.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slogans.js","sourceRoot":"","sources":["../../src/slogans.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import { getCmdLogger } from "./../logging.js";
|
|
5
|
+
import { Metadata } from "@decaf-ts/decoration";
|
|
6
|
+
import { CliWrapper } from "./../CliWrapper.js";
|
|
7
|
+
import { toENVFormat } from "@decaf-ts/logging";
|
|
8
|
+
const libraries = new Command()
|
|
9
|
+
.name("libraries")
|
|
10
|
+
.description("outputs the installed decaf-ts libraries and their versions")
|
|
11
|
+
.option("--format [String]", "additional output formats (json, raw)")
|
|
12
|
+
.action(async (options) => {
|
|
13
|
+
const pkg = JSON.parse(fs.readFileSync(path.join(process.cwd(), "package.json"), "utf-8"));
|
|
14
|
+
const version = pkg.version;
|
|
15
|
+
const log = getCmdLogger(libraries);
|
|
16
|
+
log.debug(`running with options: ${JSON.stringify(options)} for ${pkg.name} version ${version}`);
|
|
17
|
+
const { format } = options;
|
|
18
|
+
const libs = Metadata.libraries();
|
|
19
|
+
switch (format) {
|
|
20
|
+
case "json":
|
|
21
|
+
console.log(JSON.stringify(libs, null, 2));
|
|
22
|
+
break;
|
|
23
|
+
case "raw":
|
|
24
|
+
Object.entries(libs).forEach(([key, value]) => console.log(`${key}: ${value}`));
|
|
25
|
+
break;
|
|
26
|
+
default:
|
|
27
|
+
Object.entries(libs).forEach(([key, value]) => log.info(`${key}: ${value}`));
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
const environmentExport = new Command()
|
|
31
|
+
.name("environment-export")
|
|
32
|
+
.description("outputs currently enforced environment")
|
|
33
|
+
.option("--format [String]", "additional output formats (json, raw)")
|
|
34
|
+
.action(async (options) => {
|
|
35
|
+
const pkg = JSON.parse(fs.readFileSync(path.join(process.cwd(), "package.json"), "utf-8"));
|
|
36
|
+
const version = pkg.version;
|
|
37
|
+
const log = getCmdLogger(environmentExport);
|
|
38
|
+
log.debug(`running with options: ${JSON.stringify(options)} for ${pkg.name} version ${version}`);
|
|
39
|
+
const { format } = options;
|
|
40
|
+
const env = CliWrapper.getEnv();
|
|
41
|
+
const flatten = (accum, obj, prefix = "") => {
|
|
42
|
+
Object.entries(obj).forEach(([key, value]) => {
|
|
43
|
+
const envKey = toENVFormat(key);
|
|
44
|
+
const fullKey = prefix ? `${prefix}__${envKey}` : envKey;
|
|
45
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
46
|
+
flatten(accum, value, fullKey);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
accum.push(`${fullKey}=${value}`);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
switch (format) {
|
|
54
|
+
case "json":
|
|
55
|
+
console.log(JSON.stringify(env, null, 2));
|
|
56
|
+
break;
|
|
57
|
+
case "raw": {
|
|
58
|
+
const str = [];
|
|
59
|
+
flatten(str, env);
|
|
60
|
+
console.log(str.join("\n"));
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
default: {
|
|
64
|
+
const str = [];
|
|
65
|
+
flatten(str, env);
|
|
66
|
+
str.forEach((s) => log.info(s));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
export default function utils() {
|
|
71
|
+
const utilsCmd = new Command()
|
|
72
|
+
.command("utils")
|
|
73
|
+
.description("utilitarian cli commands for the decaf-ts framework");
|
|
74
|
+
utilsCmd.addCommand(libraries);
|
|
75
|
+
return utilsCmd;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=cli-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-module.js","sourceRoot":"","sources":["../../../src/utils-module/cli-module.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/utils.js
CHANGED
package/lib/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAIpB;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,QAAQ;IACnB;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAY;QACpC,IAAI,CAAC;YACH,OAAO,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CACrE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAAI,aAAyB;QACvD,mEAAmE;QACnE,OAAO,aAAa,CAAC,IAAI,CACvB,CAAC,CAAU,EAAE,EAAE,CAAC,CAAE,CAAoB,CAAC,OAAO,IAAI,CAAC,CAAM,CAC1D,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,OAAgB,EAAE,QAAgB;QAClD,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO;aACJ,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAIpB;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,QAAQ;IACnB;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAY;QACpC,IAAI,CAAC;YACH,OAAO,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CACrE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAAI,aAAyB;QACvD,mEAAmE;QACnE,OAAO,aAAa,CAAC,IAAI,CACvB,CAAC,CAAU,EAAE,EAAE,CAAC,CAAE,CAAoB,CAAC,OAAO,IAAI,CAAC,CAAM,CAC1D,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,OAAgB,EAAE,QAAgB;QAClD,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO;aACJ,IAAI,CAAC,OAAO,CAAC;aACb,WAAW,CAAC,QAAQ,IAAI,mBAAmB,CAAC;aAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,UAAU,CAAC,QAAgB;QACxC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CACf,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAC7D,CAAC;QACJ,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,KAAK,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,QAAgB;QACpC,OAAO,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAW,CAAC;IAC5D,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,CAAC,QAAgB;QACjC,MAAM,IAAI,GAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;CACF"}
|
package/lib/esm/version.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @const VERSION
|
|
5
5
|
* @memberOf module:CLI
|
|
6
6
|
*/
|
|
7
|
-
export declare const VERSION = "0.4.
|
|
7
|
+
export declare const VERSION = "0.4.6";
|
|
8
8
|
/**
|
|
9
9
|
* @description Stores the current package version
|
|
10
10
|
* @summary A constant that holds the version string of the package, which is replaced during build
|
package/lib/esm/version.js
CHANGED
|
@@ -5,7 +5,7 @@ import { Metadata } from "@decaf-ts/decoration";
|
|
|
5
5
|
* @const VERSION
|
|
6
6
|
* @memberOf module:CLI
|
|
7
7
|
*/
|
|
8
|
-
export const VERSION = "0.4.
|
|
8
|
+
export const VERSION = "0.4.6";
|
|
9
9
|
/**
|
|
10
10
|
* @description Stores the current package version
|
|
11
11
|
* @summary A constant that holds the version string of the package, which is replaced during build
|
package/lib/index.cjs
CHANGED
|
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./CliWrapper.cjs"), exports);
|
|
18
|
+
__exportStar(require("./environment.cjs"), exports);
|
|
18
19
|
/**
|
|
19
20
|
* @description Decaf-ts' CLI module
|
|
20
21
|
* @summary This file will crawl the current working directory for files called {@link CLI_FILE_NAME}
|
package/lib/index.d.ts
CHANGED
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAA6B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAA6B;AAC7B,oDAA8B;AAC9B;;;;;;;;;;;;;GAaG"}
|
package/lib/logging.cjs
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCmdLogger = getCmdLogger;
|
|
4
|
+
const logging_1 = require("@decaf-ts/logging");
|
|
5
|
+
function getCmdLogger(cmd) {
|
|
6
|
+
const inheritance = [cmd];
|
|
7
|
+
let parent = cmd.parent;
|
|
8
|
+
while (parent) {
|
|
9
|
+
inheritance.push(parent);
|
|
10
|
+
parent = parent.parent;
|
|
11
|
+
}
|
|
12
|
+
if (!parent)
|
|
13
|
+
throw new Error("Outshot the root parent. should not be possible");
|
|
14
|
+
const log = inheritance.reverse().reduce((accum, el) => {
|
|
15
|
+
return accum.for(el.name);
|
|
16
|
+
}, logging_1.Logging.get());
|
|
17
|
+
return log;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=logging.js.map
|
package/lib/logging.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":";;AAGA,oCAaC;AAfD,+CAAoD;AAEpD,SAAgB,YAAY,CAAC,GAAY;IACvC,MAAM,WAAW,GAAU,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IACxB,OAAO,MAAM,EAAE,CAAC;QACd,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC;IACD,IAAI,CAAC,MAAM;QACT,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE,EAAE,EAAE;QAC7D,OAAO,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,EAAE,iBAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAClB,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/lib/slogans.cjs
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.readSlogans = readSlogans;
|
|
7
|
+
exports.collectSlogans = collectSlogans;
|
|
8
|
+
exports.flattenSlogansWithPriority = flattenSlogansWithPriority;
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const fs_1 = __importDefault(require("fs"));
|
|
11
|
+
const utils_1 = require("@decaf-ts/utils");
|
|
12
|
+
/**
|
|
13
|
+
* @description Reads and parses slogans from workdocs/assets/slogans.json.
|
|
14
|
+
* @summary Attempts to read a slogans.json file from the workdocs/assets directory at the given base path and returns its parsed contents as an array.
|
|
15
|
+
*
|
|
16
|
+
* @param {string} basePath - The base directory path where workdocs/assets/slogans.json should exist.
|
|
17
|
+
* @return {any[] | undefined} The parsed array from slogans.json, or undefined if the file doesn't exist.
|
|
18
|
+
*
|
|
19
|
+
* @function readSlogans
|
|
20
|
+
*
|
|
21
|
+
* @memberOf module:utils
|
|
22
|
+
*/
|
|
23
|
+
function readSlogans(log, basePath) {
|
|
24
|
+
log = log.for(readSlogans);
|
|
25
|
+
const slogansPath = path_1.default.join(basePath, "workdocs", "assets", "slogans.json");
|
|
26
|
+
try {
|
|
27
|
+
if (!fs_1.default.existsSync(slogansPath)) {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
const content = fs_1.default.readFileSync(slogansPath);
|
|
31
|
+
return JSON.parse(content.toString());
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
log.error(`Failed to read slogans from ${slogansPath}`, error);
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @description Collects slogans from a base path and all @decaf scoped packages.
|
|
40
|
+
* @summary Recursively collects slogans.json files from the given base path and all subdirectories under node_modules/@decaf/*. Results are stored in an object keyed by the package name (from package.json).
|
|
41
|
+
*
|
|
42
|
+
* @param {string} basePath - The base directory path to start collecting from.
|
|
43
|
+
* @return {Record<string, any[]>} An object mapping package names to their slogans arrays.
|
|
44
|
+
*
|
|
45
|
+
* @function collectSlogans
|
|
46
|
+
*
|
|
47
|
+
* @memberOf module:utils
|
|
48
|
+
*/
|
|
49
|
+
function collectSlogans(log, basePath) {
|
|
50
|
+
log = log.for(collectSlogans);
|
|
51
|
+
const result = {};
|
|
52
|
+
// Read slogans for the base path
|
|
53
|
+
const baseSlogans = readSlogans(log, basePath);
|
|
54
|
+
if (baseSlogans) {
|
|
55
|
+
try {
|
|
56
|
+
const pkgName = (0, utils_1.getPackage)(basePath, "name");
|
|
57
|
+
result[pkgName] = baseSlogans;
|
|
58
|
+
log.verbose(`Collected ${baseSlogans.length} slogans from ${pkgName}`);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
log.verbose(`Failed to get package name for base path: ${error}`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Check for @decaf/* packages in node_modules
|
|
65
|
+
const decafModulesPath = path_1.default.join(basePath, "node_modules", "@decaf-ts");
|
|
66
|
+
if (fs_1.default.existsSync(decafModulesPath)) {
|
|
67
|
+
try {
|
|
68
|
+
const decafPackages = fs_1.default.readdirSync(decafModulesPath, {
|
|
69
|
+
withFileTypes: true,
|
|
70
|
+
});
|
|
71
|
+
for (const pkg of decafPackages) {
|
|
72
|
+
if (!pkg.isDirectory())
|
|
73
|
+
continue;
|
|
74
|
+
const pkgPath = path_1.default.join(decafModulesPath, pkg.name);
|
|
75
|
+
const pkgSlogans = readSlogans(log, pkgPath);
|
|
76
|
+
if (pkgSlogans) {
|
|
77
|
+
try {
|
|
78
|
+
const pkgName = (0, utils_1.getPackage)(pkgPath, "name");
|
|
79
|
+
result[pkgName] = pkgSlogans;
|
|
80
|
+
log.verbose(`Collected ${pkgSlogans.length} slogans from ${pkgName}`);
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
log.verbose(`Failed to get package name for ${pkgPath}: ${error}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
log.verbose(`Error reading @decaf-ts modules: ${error}`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* @description Flattens collected slogans with weighted selection for a priority package.
|
|
96
|
+
* @summary Given a collection of slogans and a priority package name, returns a flat array where slogans from the priority package have a 30-40% chance of appearing at any given position.
|
|
97
|
+
*
|
|
98
|
+
* @param {Record<string, any[]>} slogansMap - Object mapping package names to slogan arrays.
|
|
99
|
+
* @param {string} priorityPackage - The package name whose slogans should be prioritized.
|
|
100
|
+
* @return {any[]} A flat array of all slogans with weighted distribution.
|
|
101
|
+
*
|
|
102
|
+
* @function flattenSlogansWithPriority
|
|
103
|
+
*
|
|
104
|
+
* @memberOf module:utils
|
|
105
|
+
*/
|
|
106
|
+
function flattenSlogansWithPriority(log, slogansMap, priorityPackage) {
|
|
107
|
+
log = log.for(flattenSlogansWithPriority);
|
|
108
|
+
const result = [];
|
|
109
|
+
const prioritySlogans = slogansMap[priorityPackage] || [];
|
|
110
|
+
const otherSlogans = [];
|
|
111
|
+
// Collect all non-priority slogans
|
|
112
|
+
for (const [pkgName, slogans] of Object.entries(slogansMap)) {
|
|
113
|
+
if (pkgName === priorityPackage)
|
|
114
|
+
continue;
|
|
115
|
+
otherSlogans.push(...slogans);
|
|
116
|
+
}
|
|
117
|
+
if (prioritySlogans.length === 0 && otherSlogans.length === 0) {
|
|
118
|
+
log.error("No slogans found to flatten");
|
|
119
|
+
return result;
|
|
120
|
+
}
|
|
121
|
+
if (prioritySlogans.length === 0) {
|
|
122
|
+
log.verbose(`package "${priorityPackage}" has no slogans, returning all other slogans`);
|
|
123
|
+
return otherSlogans;
|
|
124
|
+
}
|
|
125
|
+
if (otherSlogans.length === 0) {
|
|
126
|
+
log.debug("Only priority slogans available, returning them");
|
|
127
|
+
return prioritySlogans;
|
|
128
|
+
}
|
|
129
|
+
// Interleave with 30-40% chance for priority slogans
|
|
130
|
+
let priorityIndex = 0;
|
|
131
|
+
let otherIndex = 0;
|
|
132
|
+
const priorityWeight = 0.35; // 35% average chance
|
|
133
|
+
while (priorityIndex < prioritySlogans.length ||
|
|
134
|
+
otherIndex < otherSlogans.length) {
|
|
135
|
+
const usePriority = Math.random() < priorityWeight;
|
|
136
|
+
if (usePriority && priorityIndex < prioritySlogans.length) {
|
|
137
|
+
result.push(prioritySlogans[priorityIndex++]);
|
|
138
|
+
}
|
|
139
|
+
else if (otherIndex < otherSlogans.length) {
|
|
140
|
+
result.push(otherSlogans[otherIndex++]);
|
|
141
|
+
}
|
|
142
|
+
else if (priorityIndex < prioritySlogans.length) {
|
|
143
|
+
// Only priority slogans left
|
|
144
|
+
result.push(prioritySlogans[priorityIndex++]);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
log.debug(`Flattened ${result.length} slogans with priority for "${priorityPackage}"`);
|
|
148
|
+
return result;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=slogans.js.map
|
package/lib/slogans.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Logger } from "@decaf-ts/logging";
|
|
2
|
+
/**
|
|
3
|
+
* @description Reads and parses slogans from workdocs/assets/slogans.json.
|
|
4
|
+
* @summary Attempts to read a slogans.json file from the workdocs/assets directory at the given base path and returns its parsed contents as an array.
|
|
5
|
+
*
|
|
6
|
+
* @param {string} basePath - The base directory path where workdocs/assets/slogans.json should exist.
|
|
7
|
+
* @return {any[] | undefined} The parsed array from slogans.json, or undefined if the file doesn't exist.
|
|
8
|
+
*
|
|
9
|
+
* @function readSlogans
|
|
10
|
+
*
|
|
11
|
+
* @memberOf module:utils
|
|
12
|
+
*/
|
|
13
|
+
export declare function readSlogans(log: Logger, basePath: string): {
|
|
14
|
+
Slogan: string;
|
|
15
|
+
}[] | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* @description Collects slogans from a base path and all @decaf scoped packages.
|
|
18
|
+
* @summary Recursively collects slogans.json files from the given base path and all subdirectories under node_modules/@decaf/*. Results are stored in an object keyed by the package name (from package.json).
|
|
19
|
+
*
|
|
20
|
+
* @param {string} basePath - The base directory path to start collecting from.
|
|
21
|
+
* @return {Record<string, any[]>} An object mapping package names to their slogans arrays.
|
|
22
|
+
*
|
|
23
|
+
* @function collectSlogans
|
|
24
|
+
*
|
|
25
|
+
* @memberOf module:utils
|
|
26
|
+
*/
|
|
27
|
+
export declare function collectSlogans(log: Logger, basePath: string): Record<string, any[]>;
|
|
28
|
+
/**
|
|
29
|
+
* @description Flattens collected slogans with weighted selection for a priority package.
|
|
30
|
+
* @summary Given a collection of slogans and a priority package name, returns a flat array where slogans from the priority package have a 30-40% chance of appearing at any given position.
|
|
31
|
+
*
|
|
32
|
+
* @param {Record<string, any[]>} slogansMap - Object mapping package names to slogan arrays.
|
|
33
|
+
* @param {string} priorityPackage - The package name whose slogans should be prioritized.
|
|
34
|
+
* @return {any[]} A flat array of all slogans with weighted distribution.
|
|
35
|
+
*
|
|
36
|
+
* @function flattenSlogansWithPriority
|
|
37
|
+
*
|
|
38
|
+
* @memberOf module:utils
|
|
39
|
+
*/
|
|
40
|
+
export declare function flattenSlogansWithPriority(log: Logger, slogansMap: Record<string, any[]>, priorityPackage: string): any[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slogans.js","sourceRoot":"","sources":["../src/slogans.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = utils;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const logging_1 = require("./../logging.cjs");
|
|
11
|
+
const decoration_1 = require("@decaf-ts/decoration");
|
|
12
|
+
const CliWrapper_1 = require("./../CliWrapper.cjs");
|
|
13
|
+
const logging_2 = require("@decaf-ts/logging");
|
|
14
|
+
const libraries = new commander_1.Command()
|
|
15
|
+
.name("libraries")
|
|
16
|
+
.description("outputs the installed decaf-ts libraries and their versions")
|
|
17
|
+
.option("--format [String]", "additional output formats (json, raw)")
|
|
18
|
+
.action(async (options) => {
|
|
19
|
+
const pkg = JSON.parse(fs_1.default.readFileSync(path_1.default.join(process.cwd(), "package.json"), "utf-8"));
|
|
20
|
+
const version = pkg.version;
|
|
21
|
+
const log = (0, logging_1.getCmdLogger)(libraries);
|
|
22
|
+
log.debug(`running with options: ${JSON.stringify(options)} for ${pkg.name} version ${version}`);
|
|
23
|
+
const { format } = options;
|
|
24
|
+
const libs = decoration_1.Metadata.libraries();
|
|
25
|
+
switch (format) {
|
|
26
|
+
case "json":
|
|
27
|
+
console.log(JSON.stringify(libs, null, 2));
|
|
28
|
+
break;
|
|
29
|
+
case "raw":
|
|
30
|
+
Object.entries(libs).forEach(([key, value]) => console.log(`${key}: ${value}`));
|
|
31
|
+
break;
|
|
32
|
+
default:
|
|
33
|
+
Object.entries(libs).forEach(([key, value]) => log.info(`${key}: ${value}`));
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
const environmentExport = new commander_1.Command()
|
|
37
|
+
.name("environment-export")
|
|
38
|
+
.description("outputs currently enforced environment")
|
|
39
|
+
.option("--format [String]", "additional output formats (json, raw)")
|
|
40
|
+
.action(async (options) => {
|
|
41
|
+
const pkg = JSON.parse(fs_1.default.readFileSync(path_1.default.join(process.cwd(), "package.json"), "utf-8"));
|
|
42
|
+
const version = pkg.version;
|
|
43
|
+
const log = (0, logging_1.getCmdLogger)(environmentExport);
|
|
44
|
+
log.debug(`running with options: ${JSON.stringify(options)} for ${pkg.name} version ${version}`);
|
|
45
|
+
const { format } = options;
|
|
46
|
+
const env = CliWrapper_1.CliWrapper.getEnv();
|
|
47
|
+
const flatten = (accum, obj, prefix = "") => {
|
|
48
|
+
Object.entries(obj).forEach(([key, value]) => {
|
|
49
|
+
const envKey = (0, logging_2.toENVFormat)(key);
|
|
50
|
+
const fullKey = prefix ? `${prefix}__${envKey}` : envKey;
|
|
51
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
52
|
+
flatten(accum, value, fullKey);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
accum.push(`${fullKey}=${value}`);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
switch (format) {
|
|
60
|
+
case "json":
|
|
61
|
+
console.log(JSON.stringify(env, null, 2));
|
|
62
|
+
break;
|
|
63
|
+
case "raw": {
|
|
64
|
+
const str = [];
|
|
65
|
+
flatten(str, env);
|
|
66
|
+
console.log(str.join("\n"));
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
default: {
|
|
70
|
+
const str = [];
|
|
71
|
+
flatten(str, env);
|
|
72
|
+
str.forEach((s) => log.info(s));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
function utils() {
|
|
77
|
+
const utilsCmd = new commander_1.Command()
|
|
78
|
+
.command("utils")
|
|
79
|
+
.description("utilitarian cli commands for the decaf-ts framework");
|
|
80
|
+
utilsCmd.addCommand(libraries);
|
|
81
|
+
return utilsCmd;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=cli-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-module.js","sourceRoot":"","sources":["../../src/utils-module/cli-module.ts"],"names":[],"mappings":"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"}
|
package/lib/utils.cjs
CHANGED
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,4CAAoB;AAIpB;;;;;;;;;;;;;GAaG;AACH,MAAa,QAAQ;IACnB;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAY;QACpC,IAAI,CAAC;YACH,OAAO,QAAQ,CAAC,eAAe,oBAAQ,IAAI,wCAAE,CAAC;QAChD,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CACrE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAAI,aAAyB;QACvD,mEAAmE;QACnE,OAAO,aAAa,CAAC,IAAI,CACvB,CAAC,CAAU,EAAE,EAAE,CAAC,CAAE,CAAoB,CAAC,OAAO,IAAI,CAAC,CAAM,CAC1D,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,OAAgB,EAAE,QAAgB;QAClD,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO;aACJ,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,4CAAoB;AAIpB;;;;;;;;;;;;;GAaG;AACH,MAAa,QAAQ;IACnB;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAY;QACpC,IAAI,CAAC;YACH,OAAO,QAAQ,CAAC,eAAe,oBAAQ,IAAI,wCAAE,CAAC;QAChD,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CACrE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAAI,aAAyB;QACvD,mEAAmE;QACnE,OAAO,aAAa,CAAC,IAAI,CACvB,CAAC,CAAU,EAAE,EAAE,CAAC,CAAE,CAAoB,CAAC,OAAO,IAAI,CAAC,CAAM,CAC1D,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,OAAgB,EAAE,QAAgB;QAClD,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO;aACJ,IAAI,CAAC,OAAO,CAAC;aACb,WAAW,CAAC,QAAQ,IAAI,mBAAmB,CAAC;aAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,UAAU,CAAC,QAAgB;QACxC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CACf,YAAE,CAAC,YAAY,CAAC,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAC7D,CAAC;QACJ,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,KAAK,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,QAAgB;QACpC,OAAO,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAW,CAAC;IAC5D,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,CAAC,QAAgB;QACjC,MAAM,IAAI,GAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;CACF;AA1FD,4BA0FC"}
|