@kosdev-code/kos-nx-plugin 2.1.1 → 2.1.3

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.
Files changed (38) hide show
  1. package/package.json +2 -2
  2. package/src/generators/kos-component/README.md +50 -29
  3. package/src/generators/kos-component/control-pour/__nameDashCase__.stories.tsx__template__ +1 -1
  4. package/src/generators/kos-component/cui/__nameDashCase__.stories.tsx__template__ +1 -1
  5. package/src/generators/kos-component/custom/__nameDashCase__.stories.tsx__template__ +31 -0
  6. package/src/generators/kos-component/custom/__nameDashCase__.tsx__template__ +53 -0
  7. package/src/generators/kos-component/custom/index.ts__template__ +1 -0
  8. package/src/generators/kos-component/generator.d.ts +3 -0
  9. package/src/generators/kos-component/generator.d.ts.map +1 -1
  10. package/src/generators/kos-component/generator.js +83 -282
  11. package/src/generators/kos-component/generator.js.map +1 -1
  12. package/src/generators/kos-component/index.d.ts +1 -1
  13. package/src/generators/kos-component/index.d.ts.map +1 -1
  14. package/src/generators/kos-component/index.js +4 -4
  15. package/src/generators/kos-component/index.js.map +1 -1
  16. package/src/generators/kos-component/nav/__nameDashCase__.stories.tsx__template__ +1 -1
  17. package/src/generators/kos-component/plugin-handlers/custom-handler.d.ts +11 -0
  18. package/src/generators/kos-component/plugin-handlers/custom-handler.d.ts.map +1 -0
  19. package/src/generators/kos-component/plugin-handlers/custom-handler.js +45 -0
  20. package/src/generators/kos-component/plugin-handlers/custom-handler.js.map +1 -0
  21. package/src/generators/kos-component/plugin-handlers/factory.d.ts.map +1 -1
  22. package/src/generators/kos-component/plugin-handlers/factory.js +2 -0
  23. package/src/generators/kos-component/plugin-handlers/factory.js.map +1 -1
  24. package/src/generators/kos-component/schema.d.ts +3 -1
  25. package/src/generators/kos-component/schema.json +12 -0
  26. package/src/generators/kos-component/setting/__nameDashCase__.stories.tsx__template__ +1 -1
  27. package/src/generators/kos-component/setup/__nameDashCase__.stories.tsx__template__ +1 -1
  28. package/src/generators/kos-component/trouble-action/__nameDashCase__.stories.tsx__template__ +1 -1
  29. package/src/generators/kos-component/types.d.ts +2 -0
  30. package/src/generators/kos-component/types.d.ts.map +1 -1
  31. package/src/generators/kos-component/types.js +3 -0
  32. package/src/generators/kos-component/types.js.map +1 -1
  33. package/src/generators/kos-component/utility/__nameDashCase__.stories.tsx__template__ +1 -1
  34. package/src/generators/kos-plugin-project/files/src/app/components/main-view/main-view.tsx.template +1 -1
  35. package/src/generators/kos-component/generator_refactored.d.ts +0 -8
  36. package/src/generators/kos-component/generator_refactored.d.ts.map +0 -1
  37. package/src/generators/kos-component/generator_refactored.js +0 -96
  38. package/src/generators/kos-component/generator_refactored.js.map +0 -1
@@ -9,6 +9,7 @@ export declare const PLUGIN_TYPES: {
9
9
  readonly SETTING: "setting";
10
10
  readonly NAV: "nav";
11
11
  readonly CONTROL_POUR: "controlPour";
12
+ readonly CUSTOM: "custom";
12
13
  };
13
14
  export type PluginType = (typeof PLUGIN_TYPES)[keyof typeof PLUGIN_TYPES];
14
15
  export declare const CONTRIBUTION_TYPE_MAP: Record<string, string>;
@@ -42,6 +43,7 @@ export interface NormalizedOptions {
42
43
  type: string;
43
44
  appDirectory: string;
44
45
  useEmotionCss?: boolean;
46
+ contributionKey?: string;
45
47
  }
46
48
  export declare const KOS_JSON_PATHS: {
47
49
  readonly PLUGIN_ROOT: "kosdev.ddk.ncui.plugin";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-component/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,YAAY;;;;;;;;CAQf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAG1E,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQxD,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAQrD,CAAC;AAGH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACpD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAGD,eAAO,MAAM,cAAc;;;;;;CAMjB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-component/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,YAAY;;;;;;;;;CASf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAG1E,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASxD,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CASrD,CAAC;AAGH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACpD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAGD,eAAO,MAAM,cAAc;;;;;;CAMjB,CAAC"}
@@ -13,6 +13,7 @@ exports.PLUGIN_TYPES = {
13
13
  SETTING: "setting",
14
14
  NAV: "nav",
15
15
  CONTROL_POUR: "controlPour",
16
+ CUSTOM: "custom",
16
17
  };
17
18
  // Contribution type mapping
18
19
  exports.CONTRIBUTION_TYPE_MAP = {
@@ -23,6 +24,7 @@ exports.CONTRIBUTION_TYPE_MAP = {
23
24
  [exports.PLUGIN_TYPES.NAV]: "nav",
24
25
  [exports.PLUGIN_TYPES.TROUBLE_ACTION]: "trouble-action",
25
26
  [exports.PLUGIN_TYPES.CONTROL_POUR]: "control-pour",
27
+ [exports.PLUGIN_TYPES.CUSTOM]: "custom",
26
28
  };
27
29
  // Plugin types that require localization
28
30
  exports.LOCALIZED_PLUGIN_TYPES = new Set([
@@ -33,6 +35,7 @@ exports.LOCALIZED_PLUGIN_TYPES = new Set([
33
35
  exports.PLUGIN_TYPES.NAV,
34
36
  exports.PLUGIN_TYPES.CONTROL_POUR,
35
37
  exports.PLUGIN_TYPES.TROUBLE_ACTION,
38
+ exports.PLUGIN_TYPES.CUSTOM,
36
39
  ]);
37
40
  // JSON path constants for .kos.json structure
38
41
  exports.KOS_JSON_PATHS = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-component/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,wBAAwB;AACX,QAAA,YAAY,GAAG;IAC1B,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;IAClB,cAAc,EAAE,eAAe;IAC/B,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,KAAK;IACV,YAAY,EAAE,aAAa;CACnB,CAAC;AAIX,4BAA4B;AACf,QAAA,qBAAqB,GAA2B;IAC3D,CAAC,oBAAY,CAAC,KAAK,CAAC,EAAE,OAAO;IAC7B,CAAC,oBAAY,CAAC,GAAG,CAAC,EAAE,KAAK;IACzB,CAAC,oBAAY,CAAC,OAAO,CAAC,EAAE,SAAS;IACjC,CAAC,oBAAY,CAAC,OAAO,CAAC,EAAE,SAAS;IACjC,CAAC,oBAAY,CAAC,GAAG,CAAC,EAAE,KAAK;IACzB,CAAC,oBAAY,CAAC,cAAc,CAAC,EAAE,gBAAgB;IAC/C,CAAC,oBAAY,CAAC,YAAY,CAAC,EAAE,cAAc;CAC5C,CAAC;AAEF,yCAAyC;AAC5B,QAAA,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IACjE,oBAAY,CAAC,GAAG;IAChB,oBAAY,CAAC,OAAO;IACpB,oBAAY,CAAC,KAAK;IAClB,oBAAY,CAAC,OAAO;IACpB,oBAAY,CAAC,GAAG;IAChB,oBAAY,CAAC,YAAY;IACzB,oBAAY,CAAC,cAAc;CAC5B,CAAC,CAAC;AAqCH,8CAA8C;AACjC,QAAA,cAAc,GAAG;IAC5B,WAAW,EAAE,wBAAwB;IACrC,WAAW,EAAE,oCAAoC;IACjD,WAAW,EAAE,gDAAgD;IAC7D,KAAK,EAAE,0CAA0C;IACjD,QAAQ,EAAE,2BAA2B;CAC7B,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-component/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,wBAAwB;AACX,QAAA,YAAY,GAAG;IAC1B,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;IAClB,cAAc,EAAE,eAAe;IAC/B,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,KAAK;IACV,YAAY,EAAE,aAAa;IAC3B,MAAM,EAAE,QAAQ;CACR,CAAC;AAIX,4BAA4B;AACf,QAAA,qBAAqB,GAA2B;IAC3D,CAAC,oBAAY,CAAC,KAAK,CAAC,EAAE,OAAO;IAC7B,CAAC,oBAAY,CAAC,GAAG,CAAC,EAAE,KAAK;IACzB,CAAC,oBAAY,CAAC,OAAO,CAAC,EAAE,SAAS;IACjC,CAAC,oBAAY,CAAC,OAAO,CAAC,EAAE,SAAS;IACjC,CAAC,oBAAY,CAAC,GAAG,CAAC,EAAE,KAAK;IACzB,CAAC,oBAAY,CAAC,cAAc,CAAC,EAAE,gBAAgB;IAC/C,CAAC,oBAAY,CAAC,YAAY,CAAC,EAAE,cAAc;IAC3C,CAAC,oBAAY,CAAC,MAAM,CAAC,EAAE,QAAQ;CAChC,CAAC;AAEF,yCAAyC;AAC5B,QAAA,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IACjE,oBAAY,CAAC,GAAG;IAChB,oBAAY,CAAC,OAAO;IACpB,oBAAY,CAAC,KAAK;IAClB,oBAAY,CAAC,OAAO;IACpB,oBAAY,CAAC,GAAG;IAChB,oBAAY,CAAC,YAAY;IACzB,oBAAY,CAAC,cAAc;IAC3B,oBAAY,CAAC,MAAM;CACpB,CAAC,CAAC;AAsCH,8CAA8C;AACjC,QAAA,cAAc,GAAG;IAC5B,WAAW,EAAE,wBAAwB;IACrC,WAAW,EAAE,oCAAoC;IACjD,WAAW,EAAE,gDAAgD;IAC7D,KAAK,EAAE,0CAA0C;IACjD,QAAQ,EAAE,2BAA2B;CAC7B,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Note: The plugin project Storybook configuration requires that the Studio
3
3
  * Simulator is running in order to retrieve model data...
4
4
  */
5
- import { UtilityStoryContainer } from "@kosdev-code/kos-ui-plugin/dev";
5
+ import { UtilityStoryContainer } from "@kosdev-code/kos-ui-plugin-dev";
6
6
  import type { Meta, StoryObj } from "@storybook/react";
7
7
  import { <%= namePascalCase %> } from "./<%= nameDashCase %>";
8
8
 
@@ -1,6 +1,6 @@
1
1
  import { kosComponent, KosLog } from '@kosdev-code/kos-ui-sdk';
2
2
  import { resolver, kOSJSON } from '../../tools';
3
- import { DynamicContainer, Shell } from '@kosdev-code/kos-ui-plugin/dev';
3
+ import { DynamicContainer, Shell } from '@kosdev-code/kos-ui-plugin-dev';
4
4
 
5
5
  const log = KosLog.createLogger({ name: 'main-view' });
6
6
  log.debug('main-view component loaded');
@@ -1,8 +0,0 @@
1
- import { Tree } from "@nx/devkit";
2
- import { KosComponentGeneratorSchema } from "./schema";
3
- /**
4
- * Refactored KOS Component Generator
5
- */
6
- export declare function kosComponentGenerator(tree: Tree, options: KosComponentGeneratorSchema): Promise<void>;
7
- export default kosComponentGenerator;
8
- //# sourceMappingURL=generator_refactored.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generator_refactored.d.ts","sourceRoot":"","sources":["../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-component/generator_refactored.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,IAAI,EAAE,MAAM,YAAY,CAAC;AAIzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAQvD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,2BAA2B,iBAiCrC;AAuFD,eAAe,qBAAqB,CAAC"}
@@ -1,96 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.kosComponentGenerator = void 0;
4
- const devkit_1 = require("@nx/devkit");
5
- const path = require("path");
6
- const project_utils_1 = require("../../utils/project-utils");
7
- const normalize_options_1 = require("../kos-model/lib/normalize-options");
8
- const types_1 = require("./types");
9
- const factory_1 = require("./plugin-handlers/factory");
10
- const file_generator_1 = require("./utils/file-generator");
11
- const localization_1 = require("./utils/localization");
12
- const kos_config_builder_1 = require("./utils/kos-config-builder");
13
- const validation_1 = require("./utils/validation");
14
- /**
15
- * Refactored KOS Component Generator
16
- */
17
- async function kosComponentGenerator(tree, options) {
18
- try {
19
- // Step 1: Validate options
20
- (0, validation_1.validateOptions)(tree, options);
21
- // Step 2: Normalize options
22
- const normalized = await prepareOptions(tree, options);
23
- // Step 3: Get project configuration
24
- const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, normalized.appProject);
25
- const projectRoot = projectConfig.sourceRoot;
26
- if (!projectRoot) {
27
- throw new Error(`No source root found for project ${normalized.appProject}`);
28
- }
29
- // Step 4: Generate component files
30
- await generateFiles(tree, projectRoot, normalized);
31
- // Step 5: Update plugin configuration if needed
32
- if (options.pluginType) {
33
- await updatePluginConfiguration(tree, projectConfig, normalized);
34
- }
35
- // Step 6: Format files
36
- await (0, devkit_1.formatFiles)(tree);
37
- }
38
- catch (error) {
39
- console.error("Error in kosComponentGenerator:", error);
40
- throw error;
41
- }
42
- }
43
- exports.kosComponentGenerator = kosComponentGenerator;
44
- /**
45
- * Prepares and normalizes options
46
- */
47
- async function prepareOptions(tree, options) {
48
- const normalized = (0, normalize_options_1.normalizeOptions)(tree, {
49
- ...options,
50
- modelProject: "__NONE__",
51
- });
52
- // Get KOS configuration for component location
53
- const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, normalized.appProject);
54
- const kosConfig = (0, project_utils_1.getKosProjectConfiguration)(tree, projectConfig.name);
55
- const componentLocation = kosConfig?.generator?.defaults?.component?.folder || "";
56
- // Set component directory and type
57
- normalized.appDirectory = options.appDirectory || componentLocation;
58
- normalized.type =
59
- types_1.CONTRIBUTION_TYPE_MAP[options.pluginType || ""] || options.type;
60
- return normalized;
61
- }
62
- /**
63
- * Generates component files from templates
64
- */
65
- async function generateFiles(tree, projectRoot, options) {
66
- // Get appropriate handler
67
- const handler = factory_1.PluginHandlerFactory.createHandler(options.pluginType);
68
- const templatePath = handler.getTemplatePath();
69
- // Determine target path
70
- const targetPath = path.join(projectRoot, options.appDirectory, options.type, options.nameDashCase);
71
- // Generate files
72
- (0, file_generator_1.generateComponentFiles)(tree, templatePath, targetPath, options);
73
- }
74
- /**
75
- * Updates plugin configuration in .kos.json
76
- */
77
- async function updatePluginConfiguration(tree, projectConfig, options) {
78
- const kosConfigPath = path.join(projectConfig.root, ".kos.json");
79
- if (!tree.exists(kosConfigPath)) {
80
- console.warn(`No .kos.json found at ${kosConfigPath}`);
81
- return;
82
- }
83
- // Get handler and create configuration
84
- const handler = factory_1.PluginHandlerFactory.createHandler(options.pluginType);
85
- const pluginConfig = handler.createConfiguration(options);
86
- // Update .kos.json using builder
87
- const builder = kos_config_builder_1.KosConfigBuilder.create();
88
- builder.addPluginConfiguration(pluginConfig);
89
- builder.applyToFile(tree, kosConfigPath);
90
- // Update localization if needed
91
- if (handler.requiresLocalization() && projectConfig.sourceRoot) {
92
- (0, localization_1.updateLocalization)(tree, projectConfig.sourceRoot, options, handler.getContributionKey());
93
- }
94
- }
95
- exports.default = kosComponentGenerator;
96
- //# sourceMappingURL=generator_refactored.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generator_refactored.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-component/generator_refactored.ts"],"names":[],"mappings":"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"}