@kosdev-code/kos-nx-plugin 2.1.19 → 2.1.21
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/package.json +2 -2
- package/src/generators/kos-plugin-project/files/.kos.json.template +5 -0
- package/src/generators/kos-plugin-project/generator.d.ts.map +1 -1
- package/src/generators/kos-plugin-project/generator.js +71 -0
- package/src/generators/kos-plugin-project/generator.js.map +1 -1
- package/src/generators/kos-plugin-project/schema.d.ts +1 -0
- package/src/generators/kos-plugin-project/schema.json +5 -0
- package/src/generators/preset/files/src/app/app.tsx.template +54 -21
- package/src/generators/preset/files/webpack.config.ts.template +61 -18
- package/src/generators/preset/generator.d.ts.map +1 -1
- package/src/generators/preset/generator.js +2 -0
- package/src/generators/preset/generator.js.map +1 -1
- package/src/generators/preset/root/.kos.json.template +19 -0
- package/src/generators/preset/schema.d.ts +2 -0
- package/src/generators/preset/schema.json +6 -1
- package/src/types/kos-config.d.ts +295 -0
- package/src/types/kos-config.d.ts.map +1 -0
- package/src/types/kos-config.js +12 -0
- package/src/types/kos-config.js.map +1 -0
- package/src/utils/kos-config-helpers.d.ts +72 -0
- package/src/utils/kos-config-helpers.d.ts.map +1 -0
- package/src/utils/kos-config-helpers.js +89 -0
- package/src/utils/kos-config-helpers.js.map +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kosdev-code/kos-nx-plugin",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.21",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"generators": "./generators.json",
|
|
6
6
|
"publishConfig": {
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"main": "./src/index.js",
|
|
20
20
|
"kos": {
|
|
21
21
|
"build": {
|
|
22
|
-
"gitHash": "
|
|
22
|
+
"gitHash": "ad41d22bfee8c28adb7ca01b7a9685d5b9e46f35"
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-plugin-project/generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,IAAI,EAEL,MAAM,YAAY,CAAC;AAKpB,OAAO,EAAE,+BAA+B,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-plugin-project/generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,IAAI,EAEL,MAAM,YAAY,CAAC;AAKpB,OAAO,EAAE,+BAA+B,EAAE,MAAM,UAAU,CAAC;AAG3D,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,+BAA+B,iBAgNzC;AAED,eAAe,yBAAyB,CAAC"}
|
|
@@ -6,9 +6,50 @@ const eslint_1 = require("@nx/eslint");
|
|
|
6
6
|
const react_1 = require("@nx/react");
|
|
7
7
|
const path = require("path");
|
|
8
8
|
const normalize_value_1 = require("../kos-model/lib/normalize-value");
|
|
9
|
+
const kos_config_helpers_1 = require("../../utils/kos-config-helpers");
|
|
9
10
|
async function kosPluginProjectGenerator(tree, options) {
|
|
11
|
+
// Read root .kos.json to get available hosts
|
|
12
|
+
let rootConfig;
|
|
13
|
+
let hostName = options.host;
|
|
14
|
+
if (tree.exists('.kos.json')) {
|
|
15
|
+
const rootConfigContent = tree.read('.kos.json', 'utf-8');
|
|
16
|
+
if (rootConfigContent) {
|
|
17
|
+
rootConfig = JSON.parse(rootConfigContent);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
// Validate host if provided, or use first available host
|
|
21
|
+
if (rootConfig && (0, kos_config_helpers_1.hasDevelopmentConfig)(rootConfig)) {
|
|
22
|
+
if (hostName) {
|
|
23
|
+
// Validate that the specified host exists
|
|
24
|
+
const hostConfig = (0, kos_config_helpers_1.findHost)(rootConfig, hostName);
|
|
25
|
+
if (!hostConfig) {
|
|
26
|
+
const availableHosts = rootConfig.development.hosts.map(h => h.name).join(', ');
|
|
27
|
+
throw new Error(`Host '${hostName}' not found in .kos.json. Available hosts: ${availableHosts}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
// Use first host as default if not specified
|
|
32
|
+
hostName = rootConfig.development.hosts[0].name;
|
|
33
|
+
console.log(`No host specified, using default host: ${hostName}`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
else if (hostName) {
|
|
37
|
+
// Host was specified but no development config exists
|
|
38
|
+
console.warn('Warning: Host specified but .kos.json has no development configuration. ' +
|
|
39
|
+
'Plugin will be created but not registered with a host.');
|
|
40
|
+
hostName = undefined;
|
|
41
|
+
}
|
|
42
|
+
// Get plugin context from host if available
|
|
43
|
+
let pluginContextValue = 'kosdev.ddk'; // Default
|
|
44
|
+
if (rootConfig && (0, kos_config_helpers_1.hasDevelopmentConfig)(rootConfig) && hostName) {
|
|
45
|
+
const hostConfig = (0, kos_config_helpers_1.findHost)(rootConfig, hostName);
|
|
46
|
+
if (hostConfig) {
|
|
47
|
+
pluginContextValue = hostConfig.pluginContext;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
10
50
|
const normalizedOptions = (0, normalize_value_1.normalizeAllValues)({
|
|
11
51
|
name: options.name,
|
|
52
|
+
pluginContext: pluginContextValue,
|
|
12
53
|
});
|
|
13
54
|
const normalized = {
|
|
14
55
|
...normalizedOptions,
|
|
@@ -38,6 +79,32 @@ async function kosPluginProjectGenerator(tree, options) {
|
|
|
38
79
|
interactionTests: false,
|
|
39
80
|
});
|
|
40
81
|
const projectConfiguration = (0, devkit_1.readProjectConfiguration)(tree, normalized.projectName);
|
|
82
|
+
// Auto-assign port and register plugin with host
|
|
83
|
+
let pluginPort;
|
|
84
|
+
if (rootConfig && (0, kos_config_helpers_1.hasDevelopmentConfig)(rootConfig) && hostName) {
|
|
85
|
+
const hostConfig = (0, kos_config_helpers_1.findHost)(rootConfig, hostName);
|
|
86
|
+
if (hostConfig) {
|
|
87
|
+
// Auto-assign port from host's port range
|
|
88
|
+
pluginPort = rootConfig.development.portRanges[hostName].next;
|
|
89
|
+
rootConfig.development.portRanges[hostName].next++;
|
|
90
|
+
// Generate plugin alias from project name
|
|
91
|
+
// Convert project name to kebab-case alias (e.g., "beverage-pour" -> "beverage")
|
|
92
|
+
const pluginAlias = normalized.nameDashCase.replace(/-plugin$/, '');
|
|
93
|
+
// Register plugin with host
|
|
94
|
+
hostConfig.plugins.push({
|
|
95
|
+
project: normalized.name,
|
|
96
|
+
port: pluginPort,
|
|
97
|
+
alias: pluginAlias,
|
|
98
|
+
enabled: true,
|
|
99
|
+
});
|
|
100
|
+
// Write updated .kos.json
|
|
101
|
+
tree.write('.kos.json', JSON.stringify(rootConfig, null, 2) + '\n');
|
|
102
|
+
console.log(`✓ Registered plugin '${normalized.name}' with host '${hostName}'`);
|
|
103
|
+
console.log(` - Port: ${pluginPort}`);
|
|
104
|
+
console.log(` - Alias: ${pluginAlias}`);
|
|
105
|
+
console.log(` - Context: ${normalized.pluginContext}`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
41
108
|
const externalJson = {
|
|
42
109
|
kab: {
|
|
43
110
|
command: `node tools/scripts/kabtool.mjs build ${normalized.nameDashCase} && node tools/scripts/kabtool.mjs list ${normalized.nameDashCase} `,
|
|
@@ -73,6 +140,10 @@ async function kosPluginProjectGenerator(tree, options) {
|
|
|
73
140
|
if (json.targets?.build?.configurations?.production) {
|
|
74
141
|
json.targets.build.configurations.production.webpackConfig = `plugins/${normalized.nameDashCase}/webpack.config.prod.ts`;
|
|
75
142
|
}
|
|
143
|
+
// Update serve target with assigned port
|
|
144
|
+
if (pluginPort && json.targets?.serve?.options) {
|
|
145
|
+
json.targets.serve.options.port = pluginPort;
|
|
146
|
+
}
|
|
76
147
|
return json;
|
|
77
148
|
});
|
|
78
149
|
(0, devkit_1.updateJson)(tree, `${projectConfiguration.root}/tsconfig.json`, (json) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-plugin-project/generator.ts"],"names":[],"mappings":";;;AAAA,uCAOoB;AACpB,uCAAoC;AACpC,qCAA6E;AAC7E,6BAA6B;AAC7B,sEAAsE;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-plugin-project/generator.ts"],"names":[],"mappings":";;;AAAA,uCAOoB;AACpB,uCAAoC;AACpC,qCAA6E;AAC7E,6BAA6B;AAC7B,sEAAsE;AAGtE,uEAAgF;AACzE,KAAK,UAAU,yBAAyB,CAC7C,IAAU,EACV,OAAwC;IAExC,6CAA6C;IAC7C,IAAI,UAAoC,CAAC;IACzC,IAAI,QAAQ,GAAuB,OAAO,CAAC,IAAI,CAAC;IAEhD,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAI,iBAAiB,EAAE,CAAC;YACtB,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,IAAI,UAAU,IAAI,IAAA,yCAAoB,EAAC,UAAU,CAAC,EAAE,CAAC;QACnD,IAAI,QAAQ,EAAE,CAAC;YACb,0CAA0C;YAC1C,MAAM,UAAU,GAAG,IAAA,6BAAQ,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAClD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChF,MAAM,IAAI,KAAK,CACb,SAAS,QAAQ,8CAA8C,cAAc,EAAE,CAChF,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,6CAA6C;YAC7C,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,0CAA0C,QAAQ,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,EAAE,CAAC;QACpB,sDAAsD;QACtD,OAAO,CAAC,IAAI,CACV,0EAA0E;YAC1E,wDAAwD,CACzD,CAAC;QACF,QAAQ,GAAG,SAAS,CAAC;IACvB,CAAC;IAED,4CAA4C;IAC5C,IAAI,kBAAkB,GAAG,YAAY,CAAC,CAAC,UAAU;IACjD,IAAI,UAAU,IAAI,IAAA,yCAAoB,EAAC,UAAU,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAA,6BAAQ,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,UAAU,EAAE,CAAC;YACf,kBAAkB,GAAG,UAAU,CAAC,aAAa,CAAC;QAChD,CAAC;IACH,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAA,oCAAkB,EAAC;QAC3C,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,aAAa,EAAE,kBAAkB;KAClC,CAAC,CAAC;IACH,MAAM,UAAU,GAAG;QACjB,GAAG,iBAAiB;QACpB,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,WAAW,EAAE,OAAO,CAAC,IAAI;QACzB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,iBAAiB;KAC5C,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAC3B,OAAO,CAAC,SAAS,IAAI,SAAS,EAC9B,UAAU,CAAC,IAAI,CAChB,CAAC;IACF,MAAM,IAAA,uBAAe,EAAC,IAAI,EAAE;QAC1B,aAAa,EAAE,MAAM;QACrB,wBAAwB,EAAE,aAAa;QACvC,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,eAAM,CAAC,MAAM;QACrB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,aAAa;QACnB,cAAc,EAAE,MAAM;QACtB,KAAK,EAAE,iBAAiB;QACxB,UAAU,EAAE,KAAK;QACjB,uBAAuB,EAAE,IAAI;KAC9B,CAAC,CAAC;IAEH,MAAM,IAAA,uCAA+B,EAAC,IAAI,EAAE;QAC1C,OAAO,EAAE,UAAU,CAAC,IAAI;QACxB,eAAe,EAAE,KAAK;QACtB,gBAAgB,EAAE,KAAK;KACxB,CAAC,CAAC;IAEH,MAAM,oBAAoB,GAAG,IAAA,iCAAwB,EACnD,IAAI,EACJ,UAAU,CAAC,WAAW,CACvB,CAAC;IAEF,iDAAiD;IACjD,IAAI,UAA8B,CAAC;IAEnC,IAAI,UAAU,IAAI,IAAA,yCAAoB,EAAC,UAAU,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAA,6BAAQ,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,UAAU,EAAE,CAAC;YACf,0CAA0C;YAC1C,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YAC9D,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YAEnD,0CAA0C;YAC1C,iFAAiF;YACjF,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAEpE,4BAA4B;YAC5B,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,OAAO,EAAE,UAAU,CAAC,IAAI;gBACxB,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,WAAW;gBAClB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YAEH,0BAA0B;YAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAEpE,OAAO,CAAC,GAAG,CAAC,wBAAwB,UAAU,CAAC,IAAI,gBAAgB,QAAQ,GAAG,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,aAAa,UAAU,EAAE,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,cAAc,WAAW,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG;QACnB,GAAG,EAAE;YACH,OAAO,EAAE,wCAAwC,UAAU,CAAC,YAAY,2CAA2C,UAAU,CAAC,YAAY,GAAG;YAC7I,OAAO,EAAE;gBACP,UAAU,EAAE,0BAA0B,UAAU,CAAC,YAAY,GAAG;gBAChE,OAAO,EAAE,QAAQ;gBACjB,OAAO,EAAE,GAAG,UAAU,CAAC,YAAY,MAAM;aAC1C;YACD,SAAS,EAAE,CAAC,KAAK,CAAC;SACnB;QACD,GAAG,EAAE;YACH,OAAO,EAAE,kCAAkC,UAAU,CAAC,YAAY,EAAE;YACpE,OAAO,EAAE;gBACP,UAAU,EAAE,0BAA0B,UAAU,CAAC,YAAY,GAAG;gBAChE,OAAO,EAAE,QAAQ;aAClB;YACD,SAAS,EAAE,CAAC,kBAAkB,EAAE,YAAY,CAAC;SAC9C;QACD,UAAU,EAAE;YACV,OAAO,EAAE,qCAAqC,UAAU,CAAC,YAAY,EAAE;YACvE,OAAO,EAAE;gBACP,UAAU,EAAE,gBAAgB,UAAU,CAAC,YAAY,EAAE;gBACrD,QAAQ,EAAE,iBAAiB;aAC5B;YACD,SAAS,EAAE,CAAC,OAAO,CAAC;SACrB;KACF,CAAC;IACF,IAAA,mBAAU,EAAC,IAAI,EAAE,GAAG,oBAAoB,CAAC,IAAI,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;QACrE,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,YAAY;SAChB,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;YACpD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,aAAa,GAAG,WAAW,UAAU,CAAC,YAAY,yBAAyB,CAAC;QAC3H,CAAC;QAED,yCAAyC;QACzC,IAAI,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC;QAC/C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,IAAA,mBAAU,EAAC,IAAI,EAAE,GAAG,oBAAoB,CAAC,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE;QACtE,IAAI,CAAC,eAAe,GAAG;YACrB,GAAG,IAAI,CAAC,eAAe;YACvB,gBAAgB,EAAE,SAAS;YAC3B,iBAAiB,EAAE,IAAI;SACxB,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,IAAA,mBAAU,EACR,IAAI,EACJ,GAAG,oBAAoB,CAAC,IAAI,0BAA0B,EACtD,CAAC,IAAI,EAAE,EAAE;QACP,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEtC,OAAO,IAAI,CAAC;IACd,CAAC,CACF,CAAC;IACF,IAAA,sBAAa,EACX,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAC7B,oBAAoB,CAAC,IAAI,EACzB,UAAU,CACX,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,yBAAyB,CAAC,CAAC;IACnE,IAAI,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,eAAe,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,uBAAuB,CAAC,CAAC;IACjE,IAAI,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,wBAAwB,CAAC,CAAC;IAElE,IAAA,qCAA4B,EAC1B,IAAI,EACJ;QACE,sBAAsB,EAAE,QAAQ;QAChC,iCAAiC,EAAE,QAAQ;QAC3C,uCAAuC,EAAE,QAAQ;QACjD,6BAA6B,EAAE,QAAQ;QACvC,6BAA6B,EAAE,QAAQ;QACvC,gCAAgC,EAAE,QAAQ;KAC3C,EACD,EAAE,CACH,CAAC;IACF,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAlND,8DAkNC;AAED,kBAAe,yBAAyB,CAAC"}
|
|
@@ -27,6 +27,11 @@
|
|
|
27
27
|
"type": "string",
|
|
28
28
|
"description": "KAB type of UI",
|
|
29
29
|
"default": "ddk.ncui.plugin"
|
|
30
|
+
},
|
|
31
|
+
"host": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"description": "Which host application should this plugin serve?",
|
|
34
|
+
"x-prompt": "Which host app should this plugin serve?"
|
|
30
35
|
}
|
|
31
36
|
},
|
|
32
37
|
"required": ["name"]
|
|
@@ -4,7 +4,11 @@ import {
|
|
|
4
4
|
LoadingMessage,
|
|
5
5
|
getLogLevel,
|
|
6
6
|
initKosProvider,
|
|
7
|
-
} from "@kosdev-code/kos-ui-sdk"
|
|
7
|
+
} from "@kosdev-code/kos-ui-sdk";<% if (enablePlugins) { %>
|
|
8
|
+
import {
|
|
9
|
+
FloatingPluginExplorer,
|
|
10
|
+
KosPluginProvider,
|
|
11
|
+
} from "@kosdev-code/kos-ui-plugin";<% } %>
|
|
8
12
|
import log from "loglevel";
|
|
9
13
|
import { Suspense } from "react";
|
|
10
14
|
import { KosCoreContextProvider } from "./registration";
|
|
@@ -14,25 +18,54 @@ import { MainView } from "./components/main-view";
|
|
|
14
18
|
|
|
15
19
|
const level = getLogLevel();
|
|
16
20
|
|
|
17
|
-
log.setLevel(level)
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
21
|
+
log.setLevel(level);<% if (enablePlugins) { %>
|
|
22
|
+
|
|
23
|
+
// Configure plugin loading based on environment and URL parameters
|
|
24
|
+
// This supports both internal development (via `kosui dev`) and third-party development (via query params)
|
|
25
|
+
const getPluginConfig = () => {
|
|
26
|
+
// Check environment variable (set by `kosui dev` command)
|
|
27
|
+
const useLocalPlugins = process.env.USE_LOCAL_PLUGINS === 'true';
|
|
28
|
+
|
|
29
|
+
// Check URL parameter for third-party dev: ?pluginDevServers=http://localhost:4201,...
|
|
30
|
+
const params = new URLSearchParams(window.location.search);
|
|
31
|
+
const devServers = params.get('pluginDevServers');
|
|
32
|
+
|
|
33
|
+
if (useLocalPlugins || devServers) {
|
|
34
|
+
return {
|
|
35
|
+
// Explicitly set pluginBaseUrl to prevent ?host= query param from overriding
|
|
36
|
+
pluginBaseUrl: window.location.origin,
|
|
37
|
+
pluginApiPath: '/api/kos/ui/plugins/contexts',
|
|
38
|
+
pluginContext: { group: '<%= nameDashCase %>' }, // Plugin context from .kos.json
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return undefined;
|
|
43
|
+
};<% } %>
|
|
44
|
+
|
|
45
|
+
const App = () => {<% if (enablePlugins) { %>
|
|
46
|
+
const pluginConfig = getPluginConfig();<% } %>
|
|
47
|
+
|
|
48
|
+
return (
|
|
49
|
+
<ErrorBoundaryWithFallback>
|
|
50
|
+
<Suspense fallback={<LoadingMessage theme={"dark"}></LoadingMessage>}>
|
|
51
|
+
<KosCoreContextProvider><% if (enablePlugins) { %>
|
|
52
|
+
<KosPluginProvider pluginConfig={pluginConfig}>
|
|
53
|
+
<FloatingPluginExplorer /><% } %>
|
|
54
|
+
<KosTranslationProvider>
|
|
55
|
+
<div className="App">
|
|
56
|
+
<Router window={window}>
|
|
57
|
+
<Routes>
|
|
58
|
+
<Route index element={<MainView />} />
|
|
59
|
+
<Route path="/main" element={<MainView />} />
|
|
60
|
+
</Routes>
|
|
61
|
+
</Router>
|
|
62
|
+
</div>
|
|
63
|
+
</KosTranslationProvider><% if (enablePlugins) { %>
|
|
64
|
+
</KosPluginProvider><% } %>
|
|
65
|
+
</KosCoreContextProvider>
|
|
66
|
+
</Suspense>
|
|
67
|
+
</ErrorBoundaryWithFallback>
|
|
68
|
+
);
|
|
69
|
+
};
|
|
37
70
|
|
|
38
71
|
export default App;
|
|
@@ -2,8 +2,10 @@ import { composePlugins, withNx } from '@nx/webpack';
|
|
|
2
2
|
import { withReact } from '@nx/react';
|
|
3
3
|
import * as webpack from 'webpack';
|
|
4
4
|
import { withModuleFederation } from '@nx/react/module-federation';
|
|
5
|
+
import { merge } from 'webpack-merge';
|
|
5
6
|
|
|
6
|
-
import baseConfig from './module-federation.config'
|
|
7
|
+
import baseConfig from './module-federation.config';<% if (enablePlugins) { %>
|
|
8
|
+
import { withPluginDevAggregator } from '@kosdev-code/kos-ui-plugin/webpack';<% } %>
|
|
7
9
|
|
|
8
10
|
import * as dotenv from 'dotenv';
|
|
9
11
|
|
|
@@ -20,26 +22,67 @@ function getKosEnv() {
|
|
|
20
22
|
key.startsWith('KOS_')
|
|
21
23
|
);
|
|
22
24
|
return kosKeys;
|
|
23
|
-
}
|
|
25
|
+
}<% if (enablePlugins) { %>
|
|
26
|
+
|
|
27
|
+
// Configure plugin dev servers based on environment variables
|
|
28
|
+
// These are set automatically by `kosui dev` command
|
|
29
|
+
const useLocalPlugins = process.env.USE_LOCAL_PLUGINS === 'true';
|
|
30
|
+
const mergeWithBackend = process.env.MERGE_WITH_BACKEND === 'true';
|
|
31
|
+
|
|
32
|
+
// Plugin dev servers are configured via environment variables
|
|
33
|
+
// Format: <PLUGIN_ALIAS>_DEV=true where alias is from .kos.json
|
|
34
|
+
// Example: BEVERAGE_POUR_DEV=true
|
|
35
|
+
const pluginServers = Object.keys(process.env)
|
|
36
|
+
.filter(key => key.endsWith('_DEV') && process.env[key] === 'true')
|
|
37
|
+
.map(key => {
|
|
38
|
+
// Extract plugin alias from env var (e.g., BEVERAGE_POUR_DEV -> beverage-pour)
|
|
39
|
+
const alias = key.replace(/_DEV$/, '').toLowerCase().replace(/_/g, '-');
|
|
40
|
+
// Port is set via <PLUGIN_ALIAS>_PORT env var
|
|
41
|
+
const portKey = key.replace(/_DEV$/, '_PORT');
|
|
42
|
+
const port = process.env[portKey] || '4201';
|
|
43
|
+
return `http://localhost:${port}`;
|
|
44
|
+
});<% } %>
|
|
24
45
|
|
|
25
46
|
// Nx plugins for webpack to build config object from Nx options and context.
|
|
26
47
|
export default composePlugins(
|
|
27
48
|
withNx({}),
|
|
28
49
|
withReact(),
|
|
29
|
-
withModuleFederation(config)
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
50
|
+
withModuleFederation(config),<% if (enablePlugins) { %>
|
|
51
|
+
// Add plugin dev aggregator for multi-plugin development
|
|
52
|
+
useLocalPlugins
|
|
53
|
+
? withPluginDevAggregator({
|
|
54
|
+
pluginServers,
|
|
55
|
+
mergeWithBackend,
|
|
56
|
+
fallbackToBackend: pluginServers.length === 0,
|
|
57
|
+
backendUrl: 'http://localhost:8081',
|
|
58
|
+
verbose: process.env.VERBOSE_PLUGIN_DEV === 'true',
|
|
59
|
+
})
|
|
60
|
+
: (config) => config,<% } %>
|
|
61
|
+
(config, { options, context }) =>
|
|
62
|
+
merge(config, {
|
|
63
|
+
resolve: {
|
|
64
|
+
fallback: {
|
|
65
|
+
path: false,
|
|
66
|
+
os: false,
|
|
67
|
+
crypto: false,
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
module: {
|
|
71
|
+
rules: [
|
|
72
|
+
{
|
|
73
|
+
test: /\.svg$/i,
|
|
74
|
+
issuer: /\.[jt]sx?$/,
|
|
75
|
+
use: [{ loader: '@svgr/webpack' }],
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
},
|
|
79
|
+
mode: (process.env.NODE_ENV || config.mode) as any,
|
|
80
|
+
plugins: [
|
|
81
|
+
new webpack.EnvironmentPlugin({
|
|
82
|
+
NODE_ENV: 'production',<% if (enablePlugins) { %>
|
|
83
|
+
USE_LOCAL_PLUGINS: 'false', // Default to false, set to 'true' in dev mode<% } %>
|
|
84
|
+
...Object.fromEntries(getKosEnv().map((key) => [key, process.env[key]])),
|
|
85
|
+
}),
|
|
86
|
+
],
|
|
87
|
+
})
|
|
45
88
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../../../../packages/plugins/kos-nx-plugin/src/generators/preset/generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAOL,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAYjD,wBAAsB,eAAe,CACnC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../../../../packages/plugins/kos-nx-plugin/src/generators/preset/generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAOL,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAYjD,wBAAsB,eAAe,CACnC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,qBAAqB,iBAwT/B;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -256,6 +256,8 @@ async function presetGenerator(tree, options) {
|
|
|
256
256
|
"update:nx": "nx migrate @kosdev-code/kos-nx-plugin",
|
|
257
257
|
zip: "nx run-many --target=zip",
|
|
258
258
|
build: "nx run-many --target=build",
|
|
259
|
+
dev: "kosui dev",
|
|
260
|
+
"dev:verbose": "VERBOSE_PLUGIN_DEV=true kosui dev",
|
|
259
261
|
...json.scripts,
|
|
260
262
|
};
|
|
261
263
|
return json;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/kos-nx-plugin/src/generators/preset/generator.ts"],"names":[],"mappings":";;;AAAA,uCAQoB;AAEpB,yBAA0B;AAE1B,+BAAmE;AACnE,qCAA4D;AAE5D,uCAAoC;AACpC,+BAA4B;AAC5B,qDAAqD;AACrD,+CAA4C;AAC5C,iEAAiE;AAE1D,KAAK,UAAU,eAAe,CACnC,IAAU,EACV,OAA8B;IAE9B,eAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACjC,eAAM,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,IAAA,oCAAkB,EAAC,OAAO,CAAC,CAAC;IAE/C,6BAA6B;IAC7B,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,MAAM,EAAE,GAAG,UAAU,CAAC,YAAY,SAAS,CAAC,CAAC;IAC1E,MAAM,IAAA,qBAAqB,EAAC,IAAI,EAAE;QAChC,IAAI,EAAE,GAAG,UAAU,CAAC,YAAY,SAAS;QACzC,wBAAwB,EAAE,aAAa;QACvC,cAAc,EAAE,MAAM;QACtB,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,eAAM,CAAC,MAAM;QACrB,SAAS,EAAE,eAAe;KAC3B,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,IAAA,iCAAwB,EAC3C,IAAI,EACJ,GAAG,UAAU,CAAC,YAAY,SAAS,CACpC,CAAC;IAEF,wCAAwC;IACxC,MAAM,kBAAkB,GAAG,IAAA,WAAI,EAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC5D,MAAM,IAAA,wBAAgB,EAAC,IAAI,EAAE;QAC3B,IAAI,EAAE,kBAAkB;QACxB,wBAAwB,EAAE,aAAa;QACvC,cAAc,EAAE,MAAM;QACtB,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,iBAAiB;QACxB,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,eAAM,CAAC,MAAM;QACrB,SAAS,EAAE,kBAAkB;KAC9B,CAAC,CAAC;IACH,MAAM,qBAAqB,GAAG,IAAA,iCAAwB,EACpD,IAAI,EACJ,kBAAkB,CACnB,CAAC;IAEF,MAAM,SAAS,GAAG,GAAG,UAAU,CAAC,YAAY,KAAK,CAAC;IAClD,MAAM,MAAM,GAAG,IAAA,WAAI,EAAC,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;IAE5C,8BAA8B;IAC9B,MAAM,IAAA,qBAAa,EAAC,IAAI,EAAE;QACxB,aAAa,EAAE,MAAM;QACrB,SAAS,EAAE,MAAM;QACjB,MAAM,EAAE,eAAM,CAAC,MAAM;QACrB,cAAc,EAAE,MAAM;QACtB,IAAI,EAAE,GAAG,SAAS,EAAE;QACpB,KAAK,EAAE,iBAAiB;QACxB,OAAO,EAAE,IAAI;QACb,wBAAwB,EAAE,aAAa;KACxC,CAAC,CAAC;IAEH,2CAA2C;IAC3C,IAAA,qCAA4B,EAC1B,IAAI,EACJ;QACE,yBAAyB,EAAE,QAAQ;QACnC,+BAA+B,EAAE,QAAQ;QACzC,gCAAgC,EAAE,QAAQ;QAC1C,0BAA0B,EAAE,QAAQ;QACpC,4BAA4B,EAAE,QAAQ;QACtC,oBAAoB,EAAE,SAAS;QAC/B,mBAAmB,EAAE,QAAQ;QAC7B,eAAe,EAAE,SAAS;QAC1B,8BAA8B,EAAE,SAAS;QACzC,OAAO,EAAE,SAAS;QAClB,kCAAkC,EAAE,QAAQ;QAC5C,sBAAsB,EAAE,QAAQ;QAChC,kBAAkB,EAAE,QAAQ;QAC5B,GAAG,EAAE,UAAU;KAChB,EACD;QACE,4BAA4B,EAAE,QAAQ;QACtC,aAAa,EAAE,UAAU;QACzB,QAAQ,EAAE,QAAQ;QAClB,oBAAoB,EAAE,QAAQ;KAC/B,CACF,CAAC;IAEF,yDAAyD;IACzD,wCAAwC;IACxC,6BAA6B;IAC7B,eAAe;IACf,kBAAkB;IAClB,4BAA4B;IAC5B,sCAAsC;IACtC,uBAAuB;IACvB,0CAA0C;IAC1C,oEAAoE;IACpE,gEAAgE;IAChE,iCAAiC;IACjC,+BAA+B;IAC/B,4BAA4B;IAC5B,8BAA8B;IAC9B,2BAA2B;IAC3B,4BAA4B;IAC5B,2BAA2B;IAC3B,WAAW;IACX,2BAA2B;IAC3B,0CAA0C;IAC1C,oEAAoE;IACpE,gEAAgE;IAChE,iCAAiC;IACjC,+BAA+B;IAC/B,4BAA4B;IAC5B,8BAA8B;IAC9B,2BAA2B;IAC3B,4BAA4B;IAC5B,2BAA2B;IAC3B,WAAW;IACX,sBAAsB;IACtB,0CAA0C;IAC1C,oEAAoE;IACpE,gEAAgE;IAChE,iCAAiC;IACjC,+BAA+B;IAC/B,4BAA4B;IAC5B,8BAA8B;IAC9B,2BAA2B;IAC3B,4BAA4B;IAC5B,2BAA2B;IAC3B,WAAW;IACX,yBAAyB;IACzB,0CAA0C;IAC1C,oEAAoE;IACpE,gEAAgE;IAChE,iCAAiC;IACjC,+BAA+B;IAC/B,4BAA4B;IAC5B,8BAA8B;IAC9B,2BAA2B;IAC3B,4BAA4B;IAC5B,2BAA2B;IAC3B,WAAW;IACX,SAAS;IACT,OAAO;IACP,MAAM;IAEN,8CAA8C;IAE9C,MAAM,oBAAoB,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAEvE,kDAAkD;IAClD,MAAM,YAAY,GAAG;QACnB,GAAG,EAAE;YACH,OAAO,EAAE,wCAAwC,SAAS,2CAA2C,SAAS,GAAG;YACjH,OAAO,EAAE;gBACP,UAAU,EAAE,0BAA0B,SAAS,GAAG;gBAClD,OAAO,EAAE,QAAQ;gBACjB,OAAO,EAAE,GAAG,SAAS,MAAM;aAC5B;YACD,SAAS,EAAE,CAAC,KAAK,CAAC;SACnB;QACD,GAAG,EAAE;YACH,OAAO,EAAE,kCAAkC,SAAS,EAAE;YACtD,OAAO,EAAE;gBACP,UAAU,EAAE,0BAA0B,SAAS,GAAG;gBAClD,OAAO,EAAE,QAAQ;aAClB;YACD,SAAS,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC;SACnC;QACD,UAAU,EAAE;YACV,OAAO,EAAE,qCAAqC,SAAS,EAAE;YACzD,OAAO,EAAE;gBACP,UAAU,EAAE,aAAa,SAAS,EAAE;gBACpC,QAAQ,EAAE,iBAAiB;aAC5B;YACD,SAAS,EAAE,CAAC,OAAO,CAAC;SACrB;KACF,CAAC;IACF,IAAA,mBAAU,EAAC,IAAI,EAAE,GAAG,oBAAoB,CAAC,IAAI,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;QACrE,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,YAAY;YACf,KAAK,EAAE;gBACL,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK;gBACrB,OAAO,EAAE;oBACP,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO;oBAC7B,QAAQ,EAAE,GAAG;iBACd;gBACD,cAAc,EAAE;oBACd,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc;oBACpC,UAAU,EAAE;wBACV,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU;wBAC/C,QAAQ,EAAE,IAAI;qBACf;iBACF;aACF;YACD,KAAK,EAAE;gBACL,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK;gBACrB,OAAO,EAAE;oBACP,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO;oBAC7B,GAAG,EAAE,KAAK;iBACX;aACF;SACF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,WAAI,EAAC,SAAS,EAAE,KAAK,CAAC,EACtB,YAAY,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,EAC5C;QACE,WAAW,EAAE,UAAU,CAAC,cAAc;QACtC,QAAQ,EAAE,EAAE;KACb,CACF,CAAC;IAEF,uCAAuC;IACvC,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAE7E,kDAAkD;IAClD,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,WAAI,EAAC,SAAS,EAAE,kBAAkB,CAAC,EACnC,qBAAqB,CAAC,IAAI,EAC1B,UAAU,CACX,CAAC;IAEF,kDAAkD;IAClD,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAE/D,MAAM,SAAS,GAAG;QAChB,GAAG,EAAE;YACH,OAAO,EAAE,6CAA6C,UAAU,CAAC,YAAY,SAAS;YACtF,OAAO,EAAE;gBACP,IAAI,EAAE,uBAAuB;aAC9B;SACF;KACF,CAAC;IACF,IAAA,mBAAU,EAAC,IAAI,EAAE,GAAG,YAAY,CAAC,IAAI,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;QAC7D,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,SAAS;SACb,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,uBAAuB,GAAG,IAAI,CAAC,KAAK,CACxC,IAAI,CAAC,IAAI,CAAC,IAAA,WAAI,EAAC,qBAAqB,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,CAC3E,CAAC;IAEF,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,IAAI,CAAC;IACtD,2BAA2B;IAC3B,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,OAAO,CAAC,EAAE,oBAAoB,CAAC,IAAI,EAAE;QACvE,GAAG,UAAU;QACb,gBAAgB;KACjB,CAAC,CAAC;IAEH,4CAA4C;IAC5C,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAEhE,uBAAuB;IACvB,IAAI,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,yBAAyB,CAAC,CAAC;IACnE,IAAI,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,eAAe,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,uBAAuB,CAAC,CAAC;IAEjE,uDAAuD;IAEvD,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAE7B,MAAM,UAAU,GACd,EAAE,CAAC,QAAQ,EAAE,KAAK,QAAQ;QACxB,CAAC,CAAC,IAAA,WAAI,EAAC,OAAO,EAAE,cAAc,EAAE,eAAe,CAAC;QAChD,CAAC,CAAC,IAAA,WAAI,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAEjC,MAAM,QAAQ,GAAG,IAAA,wBAAY,GAAE,CAAC;IAChC,MAAM,cAAc,GAClB,EAAE,CAAC,QAAQ,EAAE,KAAK,QAAQ;QACxB,CAAC,CAAC,IAAA,WAAI,EAAC,QAAQ,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC;QACrC,CAAC,CAAC,IAAA,WAAI,EAAC,QAAQ,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC9C,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE;QACjD,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,cAAc;QACxB,aAAa,EAAE,UAAU,CAAC,YAAY;QACtC,QAAQ,EAAE,EAAE;KACb,CAAC,CAAC;IAEH,IAAA,mBAAU,EAAC,IAAI,EAAE,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE;QACxC,2CAA2C;QAC3C,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,EAAE,0BAA0B;YAC/B,YAAY,EAAE,+CAA+C;YAC7D,YAAY,EAAE,wCAAwC;YACtD,WAAW,EAAE,uCAAuC;YACpD,GAAG,EAAE,0BAA0B;YAC/B,KAAK,EAAE,4BAA4B;YACnC,GAAG,IAAI,CAAC,OAAO;SAChB,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,IAAA,mBAAU,EAAC,IAAI,EAAE,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE;QAC9C,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IACxB,IAAA,4BAAmB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/kos-nx-plugin/src/generators/preset/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,5 +6,24 @@
|
|
|
6
6
|
"model-component": "model-components",
|
|
7
7
|
"ui": "<%= nameDashCase %>-ui"
|
|
8
8
|
}
|
|
9
|
+
},
|
|
10
|
+
"development": {
|
|
11
|
+
"hosts": [
|
|
12
|
+
{
|
|
13
|
+
"name": "<%= nameDashCase %>-ui",
|
|
14
|
+
"project": "<%= nameDashCase %>-ui",
|
|
15
|
+
"port": 4200,
|
|
16
|
+
"type": "cui",
|
|
17
|
+
"pluginContext": "<%= nameDashCase %>",
|
|
18
|
+
"plugins": []
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"portRanges": {
|
|
22
|
+
"<%= nameDashCase %>-ui": {
|
|
23
|
+
"start": 4200,
|
|
24
|
+
"next": 4201
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"logDir": "/tmp/<%= nameDashCase %>-logs"
|
|
9
28
|
}
|
|
10
29
|
}
|
|
@@ -6,8 +6,13 @@
|
|
|
6
6
|
"properties": {
|
|
7
7
|
"name": {
|
|
8
8
|
"type": "string",
|
|
9
|
-
"description": "",
|
|
9
|
+
"description": "The name of the workspace",
|
|
10
10
|
"x-prompt": "What name would you like to use?"
|
|
11
|
+
},
|
|
12
|
+
"enablePlugins": {
|
|
13
|
+
"type": "boolean",
|
|
14
|
+
"description": "Enable plugin support for this workspace (includes plugin system, dev aggregator, and FloatingPluginExplorer)",
|
|
15
|
+
"default": true
|
|
11
16
|
}
|
|
12
17
|
},
|
|
13
18
|
"required": ["name"]
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KOS Configuration Schema
|
|
3
|
+
*
|
|
4
|
+
* Defines the structure for .kos.json files in KOS workspaces.
|
|
5
|
+
* Supports metadata-driven plugin development with automatic registration
|
|
6
|
+
* and port management.
|
|
7
|
+
*
|
|
8
|
+
* @module kos-config
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Port range configuration for automatic port allocation.
|
|
12
|
+
*
|
|
13
|
+
* Tracks available port ranges for a host application to prevent conflicts
|
|
14
|
+
* when multiple plugins are registered.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```json
|
|
18
|
+
* {
|
|
19
|
+
* "start": 4200,
|
|
20
|
+
* "next": 4203
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export interface PortRange {
|
|
25
|
+
/**
|
|
26
|
+
* Starting port number for this host's range.
|
|
27
|
+
* The host app typically uses this port.
|
|
28
|
+
*/
|
|
29
|
+
start: number;
|
|
30
|
+
/**
|
|
31
|
+
* Next available port to assign to a new plugin.
|
|
32
|
+
* Automatically incremented when plugins are registered.
|
|
33
|
+
*/
|
|
34
|
+
next: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Plugin configuration metadata.
|
|
38
|
+
*
|
|
39
|
+
* Defines how a plugin integrates with its host application,
|
|
40
|
+
* including dev server port assignment and CLI alias.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```json
|
|
44
|
+
* {
|
|
45
|
+
* "project": "beverage-pour",
|
|
46
|
+
* "port": 4201,
|
|
47
|
+
* "alias": "beverage",
|
|
48
|
+
* "enabled": true
|
|
49
|
+
* }
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export interface PluginConfig {
|
|
53
|
+
/**
|
|
54
|
+
* NX project name of the plugin.
|
|
55
|
+
* Must match the project name in workspace.json/project.json.
|
|
56
|
+
*/
|
|
57
|
+
project: string;
|
|
58
|
+
/**
|
|
59
|
+
* Dev server port for this plugin.
|
|
60
|
+
* Auto-assigned from host's port range during plugin creation.
|
|
61
|
+
*/
|
|
62
|
+
port: number;
|
|
63
|
+
/**
|
|
64
|
+
* Short CLI-friendly alias for the plugin (kebab-case).
|
|
65
|
+
* Used with --plugins and --disable flags.
|
|
66
|
+
*
|
|
67
|
+
* @example "beverage", "pos", "crew"
|
|
68
|
+
*/
|
|
69
|
+
alias: string;
|
|
70
|
+
/**
|
|
71
|
+
* Whether this plugin should start by default.
|
|
72
|
+
* Can be overridden via CLI flags.
|
|
73
|
+
*
|
|
74
|
+
* @default true
|
|
75
|
+
*/
|
|
76
|
+
enabled: boolean;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Host application configuration.
|
|
80
|
+
*
|
|
81
|
+
* Defines a host application that can load plugins, including
|
|
82
|
+
* its dev server settings and associated plugin registrations.
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```json
|
|
86
|
+
* {
|
|
87
|
+
* "name": "ddk-app",
|
|
88
|
+
* "project": "kos-ddk-app",
|
|
89
|
+
* "port": 4200,
|
|
90
|
+
* "type": "ncui",
|
|
91
|
+
* "pluginContext": "kosdev.ddk",
|
|
92
|
+
* "plugins": [
|
|
93
|
+
* {
|
|
94
|
+
* "project": "beverage-pour",
|
|
95
|
+
* "port": 4201,
|
|
96
|
+
* "alias": "beverage",
|
|
97
|
+
* "enabled": true
|
|
98
|
+
* }
|
|
99
|
+
* ]
|
|
100
|
+
* }
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
export interface HostConfig {
|
|
104
|
+
/**
|
|
105
|
+
* Identifier for this host (kebab-case).
|
|
106
|
+
* Used with --host flag in dev script.
|
|
107
|
+
*
|
|
108
|
+
* @example "ddk-app", "drive-thru-ui"
|
|
109
|
+
*/
|
|
110
|
+
name: string;
|
|
111
|
+
/**
|
|
112
|
+
* NX project name of the host application.
|
|
113
|
+
* Must match the project name in workspace.json/project.json.
|
|
114
|
+
*/
|
|
115
|
+
project: string;
|
|
116
|
+
/**
|
|
117
|
+
* Dev server port for the host application.
|
|
118
|
+
*/
|
|
119
|
+
port: number;
|
|
120
|
+
/**
|
|
121
|
+
* Type/category of host application.
|
|
122
|
+
*
|
|
123
|
+
* Common values:
|
|
124
|
+
* - "cui" - Consumer User Interface
|
|
125
|
+
* - "ncui" - Non-Consumer User Interface (standard)
|
|
126
|
+
* - "ncui.compact" - Non-Consumer User Interface (compact mode)
|
|
127
|
+
* - "admin" - Administrative interface
|
|
128
|
+
*
|
|
129
|
+
* @example "ncui", "cui", "admin"
|
|
130
|
+
*/
|
|
131
|
+
type: string;
|
|
132
|
+
/**
|
|
133
|
+
* Plugin context group identifier.
|
|
134
|
+
*
|
|
135
|
+
* Determines which plugins are compatible with this host.
|
|
136
|
+
* Plugins register with a matching context in their .kos.json.
|
|
137
|
+
*
|
|
138
|
+
* @example "kosdev.ddk", "cui", "tccc.drive-thru"
|
|
139
|
+
*/
|
|
140
|
+
pluginContext: string;
|
|
141
|
+
/**
|
|
142
|
+
* Array of plugins registered for this host.
|
|
143
|
+
*
|
|
144
|
+
* Plugins are automatically added to this array when created
|
|
145
|
+
* via the plugin generator with --host flag.
|
|
146
|
+
*/
|
|
147
|
+
plugins: PluginConfig[];
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Development configuration section.
|
|
151
|
+
*
|
|
152
|
+
* Contains all metadata needed for the universal development script
|
|
153
|
+
* to start host applications and their plugins.
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```json
|
|
157
|
+
* {
|
|
158
|
+
* "hosts": [
|
|
159
|
+
* {
|
|
160
|
+
* "name": "ddk-app",
|
|
161
|
+
* "project": "kos-ddk-app",
|
|
162
|
+
* "port": 4200,
|
|
163
|
+
* "type": "ncui",
|
|
164
|
+
* "pluginContext": "kosdev.ddk",
|
|
165
|
+
* "plugins": []
|
|
166
|
+
* }
|
|
167
|
+
* ],
|
|
168
|
+
* "portRanges": {
|
|
169
|
+
* "ddk-app": {
|
|
170
|
+
* "start": 4200,
|
|
171
|
+
* "next": 4201
|
|
172
|
+
* }
|
|
173
|
+
* },
|
|
174
|
+
* "logDir": "/tmp/ddk-logs"
|
|
175
|
+
* }
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
178
|
+
export interface DevelopmentConfig {
|
|
179
|
+
/**
|
|
180
|
+
* Array of host applications in this workspace.
|
|
181
|
+
*
|
|
182
|
+
* Multiple hosts can be defined for workspaces that contain
|
|
183
|
+
* different application types (CUI, NCUI, admin panels, etc.).
|
|
184
|
+
*/
|
|
185
|
+
hosts: HostConfig[];
|
|
186
|
+
/**
|
|
187
|
+
* Port range allocations for each host.
|
|
188
|
+
*
|
|
189
|
+
* Keys are host names, values are PortRange objects.
|
|
190
|
+
* Used to auto-assign ports when plugins are created.
|
|
191
|
+
*
|
|
192
|
+
* @example
|
|
193
|
+
* ```json
|
|
194
|
+
* {
|
|
195
|
+
* "ddk-app": { "start": 4200, "next": 4203 },
|
|
196
|
+
* "drive-thru-ui": { "start": 4300, "next": 4306 }
|
|
197
|
+
* }
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
portRanges: Record<string, PortRange>;
|
|
201
|
+
/**
|
|
202
|
+
* Optional directory for dev server logs.
|
|
203
|
+
*
|
|
204
|
+
* If specified, stdout/stderr from dev servers will be
|
|
205
|
+
* written to files in this directory.
|
|
206
|
+
*
|
|
207
|
+
* @example "/tmp/ddk-logs", "./logs"
|
|
208
|
+
*/
|
|
209
|
+
logDir?: string;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Root KOS configuration.
|
|
213
|
+
*
|
|
214
|
+
* Complete schema for .kos.json files at workspace root.
|
|
215
|
+
* Extends the existing generator defaults with development metadata.
|
|
216
|
+
*
|
|
217
|
+
* @example
|
|
218
|
+
* ```json
|
|
219
|
+
* {
|
|
220
|
+
* "type": "root",
|
|
221
|
+
* "generator": {
|
|
222
|
+
* "defaults": {
|
|
223
|
+
* "model": "my-workspace-models",
|
|
224
|
+
* "model-component": "model-components",
|
|
225
|
+
* "ui": "my-workspace-ui"
|
|
226
|
+
* }
|
|
227
|
+
* },
|
|
228
|
+
* "development": {
|
|
229
|
+
* "hosts": [
|
|
230
|
+
* {
|
|
231
|
+
* "name": "my-workspace-ui",
|
|
232
|
+
* "project": "my-workspace-ui",
|
|
233
|
+
* "port": 4200,
|
|
234
|
+
* "type": "cui",
|
|
235
|
+
* "pluginContext": "my-workspace",
|
|
236
|
+
* "plugins": []
|
|
237
|
+
* }
|
|
238
|
+
* ],
|
|
239
|
+
* "portRanges": {
|
|
240
|
+
* "my-workspace-ui": {
|
|
241
|
+
* "start": 4200,
|
|
242
|
+
* "next": 4201
|
|
243
|
+
* }
|
|
244
|
+
* }
|
|
245
|
+
* }
|
|
246
|
+
* }
|
|
247
|
+
* ```
|
|
248
|
+
*/
|
|
249
|
+
export interface KosDevConfig {
|
|
250
|
+
/**
|
|
251
|
+
* Configuration type identifier.
|
|
252
|
+
* Must be "root" for workspace-level .kos.json files.
|
|
253
|
+
*/
|
|
254
|
+
type: "root";
|
|
255
|
+
/**
|
|
256
|
+
* Generator default configurations.
|
|
257
|
+
*
|
|
258
|
+
* Specifies default project names for different generator types.
|
|
259
|
+
*/
|
|
260
|
+
generator: {
|
|
261
|
+
/**
|
|
262
|
+
* Default project names by generator type.
|
|
263
|
+
*/
|
|
264
|
+
defaults: {
|
|
265
|
+
/**
|
|
266
|
+
* Default model project name.
|
|
267
|
+
*/
|
|
268
|
+
model?: string;
|
|
269
|
+
/**
|
|
270
|
+
* Default model-component project name.
|
|
271
|
+
*/
|
|
272
|
+
"model-component"?: string;
|
|
273
|
+
/**
|
|
274
|
+
* Default UI project name.
|
|
275
|
+
*/
|
|
276
|
+
ui?: string;
|
|
277
|
+
/**
|
|
278
|
+
* Default plugin project name.
|
|
279
|
+
*/
|
|
280
|
+
plugin?: string;
|
|
281
|
+
/**
|
|
282
|
+
* Additional custom defaults.
|
|
283
|
+
*/
|
|
284
|
+
[key: string]: string | undefined;
|
|
285
|
+
};
|
|
286
|
+
};
|
|
287
|
+
/**
|
|
288
|
+
* Development configuration for plugin development workflow.
|
|
289
|
+
*
|
|
290
|
+
* Optional - if not present, workspace uses legacy development patterns.
|
|
291
|
+
* When present, enables metadata-driven development with universal dev script.
|
|
292
|
+
*/
|
|
293
|
+
development?: DevelopmentConfig;
|
|
294
|
+
}
|
|
295
|
+
//# sourceMappingURL=kos-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kos-config.d.ts","sourceRoot":"","sources":["../../../../../../packages/plugins/kos-nx-plugin/src/types/kos-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;;;;;;OAUG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;;;OAOG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,KAAK,EAAE,UAAU,EAAE,CAAC;IAEpB;;;;;;;;;;;;;OAaG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEtC;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,SAAS,EAAE;QACT;;WAEG;QACH,QAAQ,EAAE;YACR;;eAEG;YACH,KAAK,CAAC,EAAE,MAAM,CAAC;YAEf;;eAEG;YACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;YAE3B;;eAEG;YACH,EAAE,CAAC,EAAE,MAAM,CAAC;YAEZ;;eAEG;YACH,MAAM,CAAC,EAAE,MAAM,CAAC;YAEhB;;eAEG;YACH,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;SACnC,CAAC;KACH,CAAC;IAEF;;;;;OAKG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACjC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* KOS Configuration Schema
|
|
4
|
+
*
|
|
5
|
+
* Defines the structure for .kos.json files in KOS workspaces.
|
|
6
|
+
* Supports metadata-driven plugin development with automatic registration
|
|
7
|
+
* and port management.
|
|
8
|
+
*
|
|
9
|
+
* @module kos-config
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
//# sourceMappingURL=kos-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kos-config.js","sourceRoot":"","sources":["../../../../../../packages/plugins/kos-nx-plugin/src/types/kos-config.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KOS Configuration Helper Functions
|
|
3
|
+
*
|
|
4
|
+
* Utility functions for working with .kos.json configuration files.
|
|
5
|
+
* Provides type-safe access to development configuration.
|
|
6
|
+
*
|
|
7
|
+
* @module kos-config-helpers
|
|
8
|
+
*/
|
|
9
|
+
import type { DevelopmentConfig, HostConfig, KosDevConfig, PluginConfig } from "../types/kos-config";
|
|
10
|
+
/**
|
|
11
|
+
* Type guard to check if a config has development section.
|
|
12
|
+
*
|
|
13
|
+
* @param config - Configuration object to check
|
|
14
|
+
* @returns True if config has development section with hosts
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* if (hasDevelopmentConfig(config)) {
|
|
19
|
+
* // Safe to access config.development.hosts
|
|
20
|
+
* const hosts = config.development.hosts;
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare function hasDevelopmentConfig(config: KosDevConfig): config is KosDevConfig & {
|
|
25
|
+
development: DevelopmentConfig;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Find a host configuration by name.
|
|
29
|
+
*
|
|
30
|
+
* @param config - Root KOS configuration
|
|
31
|
+
* @param hostName - Name of the host to find
|
|
32
|
+
* @returns Host configuration or undefined if not found
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* const host = findHost(config, 'ddk-app');
|
|
37
|
+
* if (host) {
|
|
38
|
+
* console.log(`Host ${host.name} runs on port ${host.port}`);
|
|
39
|
+
* }
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare function findHost(config: KosDevConfig, hostName: string): HostConfig | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Get all plugin aliases for a host.
|
|
45
|
+
*
|
|
46
|
+
* @param hostConfig - Host configuration
|
|
47
|
+
* @returns Array of plugin aliases
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* const aliases = getPluginAliases(hostConfig);
|
|
52
|
+
* // ['beverage', 'ddk-standard', 'ddk-compact']
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export declare function getPluginAliases(hostConfig: HostConfig): string[];
|
|
56
|
+
/**
|
|
57
|
+
* Find a plugin configuration by alias within a host.
|
|
58
|
+
*
|
|
59
|
+
* @param hostConfig - Host configuration
|
|
60
|
+
* @param alias - Plugin alias to find
|
|
61
|
+
* @returns Plugin configuration or undefined if not found
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* const plugin = findPluginByAlias(hostConfig, 'beverage');
|
|
66
|
+
* if (plugin) {
|
|
67
|
+
* console.log(`Plugin ${plugin.project} on port ${plugin.port}`);
|
|
68
|
+
* }
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export declare function findPluginByAlias(hostConfig: HostConfig, alias: string): PluginConfig | undefined;
|
|
72
|
+
//# sourceMappingURL=kos-config-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kos-config-helpers.d.ts","sourceRoot":"","sources":["../../../../../../packages/plugins/kos-nx-plugin/src/utils/kos-config-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,YAAY,EACb,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,GACnB,MAAM,IAAI,YAAY,GAAG;IAAE,WAAW,EAAE,iBAAiB,CAAA;CAAE,CAM7D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,MAAM,GACf,UAAU,GAAG,SAAS,CAKxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,EAAE,CAEjE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,GACZ,YAAY,GAAG,SAAS,CAE1B"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* KOS Configuration Helper Functions
|
|
4
|
+
*
|
|
5
|
+
* Utility functions for working with .kos.json configuration files.
|
|
6
|
+
* Provides type-safe access to development configuration.
|
|
7
|
+
*
|
|
8
|
+
* @module kos-config-helpers
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.findPluginByAlias = exports.getPluginAliases = exports.findHost = exports.hasDevelopmentConfig = void 0;
|
|
12
|
+
/**
|
|
13
|
+
* Type guard to check if a config has development section.
|
|
14
|
+
*
|
|
15
|
+
* @param config - Configuration object to check
|
|
16
|
+
* @returns True if config has development section with hosts
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* if (hasDevelopmentConfig(config)) {
|
|
21
|
+
* // Safe to access config.development.hosts
|
|
22
|
+
* const hosts = config.development.hosts;
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
function hasDevelopmentConfig(config) {
|
|
27
|
+
return (config.development !== undefined &&
|
|
28
|
+
Array.isArray(config.development.hosts) &&
|
|
29
|
+
config.development.hosts.length > 0);
|
|
30
|
+
}
|
|
31
|
+
exports.hasDevelopmentConfig = hasDevelopmentConfig;
|
|
32
|
+
/**
|
|
33
|
+
* Find a host configuration by name.
|
|
34
|
+
*
|
|
35
|
+
* @param config - Root KOS configuration
|
|
36
|
+
* @param hostName - Name of the host to find
|
|
37
|
+
* @returns Host configuration or undefined if not found
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```typescript
|
|
41
|
+
* const host = findHost(config, 'ddk-app');
|
|
42
|
+
* if (host) {
|
|
43
|
+
* console.log(`Host ${host.name} runs on port ${host.port}`);
|
|
44
|
+
* }
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
function findHost(config, hostName) {
|
|
48
|
+
if (!hasDevelopmentConfig(config)) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
return config.development.hosts.find((h) => h.name === hostName);
|
|
52
|
+
}
|
|
53
|
+
exports.findHost = findHost;
|
|
54
|
+
/**
|
|
55
|
+
* Get all plugin aliases for a host.
|
|
56
|
+
*
|
|
57
|
+
* @param hostConfig - Host configuration
|
|
58
|
+
* @returns Array of plugin aliases
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```typescript
|
|
62
|
+
* const aliases = getPluginAliases(hostConfig);
|
|
63
|
+
* // ['beverage', 'ddk-standard', 'ddk-compact']
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
function getPluginAliases(hostConfig) {
|
|
67
|
+
return hostConfig.plugins.map((p) => p.alias);
|
|
68
|
+
}
|
|
69
|
+
exports.getPluginAliases = getPluginAliases;
|
|
70
|
+
/**
|
|
71
|
+
* Find a plugin configuration by alias within a host.
|
|
72
|
+
*
|
|
73
|
+
* @param hostConfig - Host configuration
|
|
74
|
+
* @param alias - Plugin alias to find
|
|
75
|
+
* @returns Plugin configuration or undefined if not found
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```typescript
|
|
79
|
+
* const plugin = findPluginByAlias(hostConfig, 'beverage');
|
|
80
|
+
* if (plugin) {
|
|
81
|
+
* console.log(`Plugin ${plugin.project} on port ${plugin.port}`);
|
|
82
|
+
* }
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
function findPluginByAlias(hostConfig, alias) {
|
|
86
|
+
return hostConfig.plugins.find((p) => p.alias === alias);
|
|
87
|
+
}
|
|
88
|
+
exports.findPluginByAlias = findPluginByAlias;
|
|
89
|
+
//# sourceMappingURL=kos-config-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kos-config-helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/kos-nx-plugin/src/utils/kos-config-helpers.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AASH;;;;;;;;;;;;;GAaG;AACH,SAAgB,oBAAoB,CAClC,MAAoB;IAEpB,OAAO,CACL,MAAM,CAAC,WAAW,KAAK,SAAS;QAChC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;QACvC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CACpC,CAAC;AACJ,CAAC;AARD,oDAQC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,QAAQ,CACtB,MAAoB,EACpB,QAAgB;IAEhB,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;AACnE,CAAC;AARD,4BAQC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,gBAAgB,CAAC,UAAsB;IACrD,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAFD,4CAEC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,iBAAiB,CAC/B,UAAsB,EACtB,KAAa;IAEb,OAAO,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AAC3D,CAAC;AALD,8CAKC"}
|