@odg/command 1.13.0 → 1.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/agents.md +148 -44
  2. package/dist/Generators/MakeFile.d.ts +56 -37
  3. package/dist/Generators/MakeFile.d.ts.map +1 -0
  4. package/dist/Generators/MakeFile.js +132 -66
  5. package/dist/Generators/MakeFile.js.map +1 -1
  6. package/dist/Generators/StubCreator.d.ts +2 -1
  7. package/dist/Generators/StubCreator.d.ts.map +1 -0
  8. package/dist/Generators/StubCreator.js +17 -42
  9. package/dist/Generators/StubCreator.js.map +1 -1
  10. package/dist/Registrations/pascal-to-dot-lower.d.ts +16 -0
  11. package/dist/Registrations/pascal-to-dot-lower.d.ts.map +1 -0
  12. package/dist/Registrations/pascal-to-dot-lower.js +31 -0
  13. package/dist/Registrations/pascal-to-dot-lower.js.map +1 -0
  14. package/dist/Registrations/register.d.ts +3 -0
  15. package/dist/Registrations/register.d.ts.map +1 -0
  16. package/dist/Registrations/register.js +222 -0
  17. package/dist/Registrations/register.js.map +1 -0
  18. package/dist/Registrations/ts-mutators.d.ts +41 -0
  19. package/dist/Registrations/ts-mutators.d.ts.map +1 -0
  20. package/dist/Registrations/ts-mutators.js +202 -0
  21. package/dist/Registrations/ts-mutators.js.map +1 -0
  22. package/dist/Registrations/types.d.ts +35 -0
  23. package/dist/Registrations/types.d.ts.map +1 -0
  24. package/dist/Registrations/types.js +3 -0
  25. package/dist/Registrations/types.js.map +1 -0
  26. package/dist/index.d.ts +1 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +107 -16
  29. package/dist/index.js.map +1 -1
  30. package/dist/tsconfig.build.tsbuildinfo +1 -1
  31. package/package.json +12 -11
  32. package/stubs/handler.stub +14 -36
  33. package/stubs/listener.stub +26 -0
  34. package/stubs/page.stub +2 -20
  35. package/stubs/selector.stub +2 -0
  36. package/stubs/event.stub +0 -26
@@ -4,9 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const chemical_x_1 = require("@odg/chemical-x");
7
+ const register_1 = require("../Registrations/register");
7
8
  const StubCreator_1 = __importDefault(require("./StubCreator"));
8
9
  class MakeFile {
9
10
  logger;
11
+ stubCreator = new StubCreator_1.default();
10
12
  constructor(logger) {
11
13
  this.logger = logger;
12
14
  }
@@ -14,98 +16,162 @@ class MakeFile {
14
16
  * Use this function to create Page Crawler class
15
17
  *
16
18
  * @param {string} pageName Selector file name
17
- * @param {MakePageInterface} options Options command
19
+ * @param {MakePageOptions} options Options command
18
20
  * @returns {Promise<void>}
19
21
  */
20
22
  async makePage(pageName, options) {
21
- const stubCreator = new StubCreator_1.default();
22
- const pageUcFirst = new chemical_x_1.Str(pageName).ucFirst().toString();
23
- const filePath = await stubCreator.create("page", `${pageUcFirst}Page`, options.path, {
24
- "PageName:UCFirst": pageUcFirst,
25
- "PageName:LCFirst": pageName.charAt(0).toLowerCase() + pageName.slice(1),
23
+ const pageClassName = new chemical_x_1.Str(pageName).pascalCase().toString();
24
+ const filePath = await this.stubCreator.create("page", `${pageClassName}Page`, options.path, {
25
+ "PageName:UCFirst": pageClassName,
26
+ "PageName:LCFirst": new chemical_x_1.Str(pageClassName).camelCase().toString(),
26
27
  });
27
- if (options.selectors && options.selectorPath) {
28
- await this.makeSelectors(pageName, { path: options.selectorPath });
29
- }
30
- if (options.event && options.eventPath) {
31
- await this.makeEvent(pageName, { path: options.eventPath });
32
- }
33
- if (options.handlerPath && (options.handlerFrom ?? options.handlerTo)) {
34
- await this.makeHandler(pageName, {
35
- path: options.handlerPath,
36
- handlerFrom: options.handlerFrom,
37
- handlerTo: options.handlerTo,
38
- });
39
- }
28
+ const targets = this.buildRegistrationTargets(options);
29
+ await this.scaffoldPageAddOns(pageClassName, options);
30
+ await (0, register_1.registerArtifact)({
31
+ kind: "page",
32
+ name: pageClassName,
33
+ pageClassName: `${pageClassName}Page`,
34
+ containerEnumMember: `${pageClassName}Page`,
35
+ filePath,
36
+ }, targets);
40
37
  await this.logger.info(`Page created successfully in : ${filePath}`);
41
38
  }
42
- /**
43
- * Use this function to create selector class
44
- *
45
- * @param {string} selectorName Page Selector file name
46
- * @param {MakeSelectorInterface} options Options command
47
- * @returns {Promise<void>}
48
- */
49
39
  async makeSelectors(selectorName, options) {
50
- const stubCreator = new StubCreator_1.default();
51
- const pageUcFirst = new chemical_x_1.Str(selectorName).ucFirst().toString();
52
- const filePath = await stubCreator.create("selector", `${pageUcFirst}Selector`, options.path, {
53
- "SelectorName:UCFirst": pageUcFirst,
54
- "SelectorName:LCFirst": selectorName.charAt(0).toLowerCase() + selectorName.slice(1),
40
+ const pageName = new chemical_x_1.Str(selectorName).pascalCase().toString();
41
+ const filePath = await this.stubCreator.create("selector", `${pageName}Selector`, options.path, {
42
+ "SelectorName:UCFirst": pageName,
43
+ "SelectorName:LCFirst": new chemical_x_1.Str(selectorName).camelCase().toString(),
55
44
  });
45
+ await (0, register_1.registerArtifact)({
46
+ kind: "selector",
47
+ name: selectorName,
48
+ selectorClassName: `${pageName}Selector`,
49
+ filePath,
50
+ }, this.buildRegistrationTargets(options));
56
51
  await this.logger.info(`Selector created successfully in : ${filePath}`);
57
52
  }
58
- /**
59
- * Use this function to create handler file
60
- *
61
- * @param {string} handlerName Handler name to make
62
- * @param {MakeHandlerInterface} options Options command
63
- * @returns {Promise<void>}
64
- */
65
53
  async makeHandler(handlerName, options) {
66
- const stubCreator = new StubCreator_1.default();
67
54
  const isTransition = options.handlerFrom !== undefined || options.handlerTo !== undefined;
68
55
  const handlerClassName = isTransition
69
- ? `${new chemical_x_1.Str(options.handlerFrom ?? handlerName).ucFirst().toString()}To${new chemical_x_1.Str(options.handlerTo ?? handlerName).ucFirst().toString()}Handler`
70
- : `${new chemical_x_1.Str(handlerName).ucFirst().toString()}Handler`;
71
- const filePath = await stubCreator.create("handler", handlerClassName, options.path, {
56
+ ? `${new chemical_x_1.Str(options.handlerFrom ?? handlerName).pascalCase().toString()}To${new chemical_x_1.Str(options.handlerTo ?? handlerName).pascalCase().toString()}Handler`
57
+ : `${new chemical_x_1.Str(handlerName).pascalCase().toString()}Handler`;
58
+ const selectorName = new chemical_x_1.Str(handlerName).camelCase().toString();
59
+ const handlerPageSelectorBundle = `${selectorName}Selector`;
60
+ const filePath = await this.stubCreator.create("handler", handlerClassName, options.path, {
72
61
  "HandlerClassName": handlerClassName,
62
+ "HandlerPageSelectorBundle": handlerPageSelectorBundle,
73
63
  });
64
+ await (0, register_1.registerArtifact)({
65
+ kind: "handler",
66
+ name: handlerName,
67
+ handlerClassName,
68
+ containerEnumMember: handlerClassName,
69
+ filePath,
70
+ }, this.buildRegistrationTargets(options));
74
71
  await this.logger.info(`Handler created successfully in : ${filePath}`);
75
72
  }
76
- /**
77
- * Use this function to create handler file
78
- *
79
- * @param {string} eventName Event name to make
80
- * @param {MakeEventInterface} options Options command
81
- * @returns {Promise<void>}
82
- */
83
73
  async makeEvent(eventName, options) {
84
- const stubCreator = new StubCreator_1.default();
85
- const pageUcFirst = new chemical_x_1.Str(eventName).ucFirst().toString();
86
- const filePath = await stubCreator.create("event", `${pageUcFirst}EventListener`, options.path, {
87
- "EventName:UCFirst": pageUcFirst,
88
- "EventName:LCFirst": eventName.charAt(0).toLowerCase() + eventName.slice(1),
74
+ const pageClassName = new chemical_x_1.Str(eventName).pascalCase().toString();
75
+ const eventEnumMember = `${pageClassName}Event`;
76
+ await (0, register_1.registerArtifact)({
77
+ kind: "event",
78
+ name: eventName,
79
+ eventEnumMember,
80
+ }, this.buildRegistrationTargets(options));
81
+ await this.logger.info(`Event "${eventEnumMember}" registered in targets (use make:listener to scaffold a listener class)`);
82
+ }
83
+ async makeListener(listenerName, options) {
84
+ if (options.register) {
85
+ await this.makeEvent(options.event, {
86
+ ...options,
87
+ path: undefined,
88
+ });
89
+ }
90
+ const listenerPascal = new chemical_x_1.Str(listenerName).pascalCase().toString();
91
+ const eventBindingPascal = new chemical_x_1.Str(options.event).pascalCase().toString();
92
+ const listenerClassName = `${listenerPascal}EventListener`;
93
+ const containerEnumMember = listenerClassName;
94
+ const filePath = await this.stubCreator.create("listener", listenerClassName, options.path, {
95
+ "ListenerName:UCFirst": listenerPascal,
96
+ "ListenerName:LCFirst": new chemical_x_1.Str(listenerName).camelCase().toString(),
97
+ "EventBinding:UCFirst": eventBindingPascal,
98
+ "EventBinding:LCFirst": new chemical_x_1.Str(options.event).camelCase().toString(),
89
99
  });
90
- await this.logger.info(`Event created successfully in : ${filePath}`);
100
+ await (0, register_1.registerArtifact)({
101
+ kind: "listener",
102
+ name: listenerName,
103
+ listenerClassName,
104
+ containerEnumMember,
105
+ filePath,
106
+ }, this.buildRegistrationTargets(options));
107
+ await this.logger.info(`Listener created successfully in : ${filePath}`);
108
+ }
109
+ async makeConfig(configName, options) {
110
+ const validator = options.validator ?? "zod.string()";
111
+ await (0, register_1.registerArtifact)({
112
+ kind: "config",
113
+ name: configName,
114
+ configEnumMembers: [configName],
115
+ envExampleLines: [`\n# ${configName}`, `${configName}=""`],
116
+ configValidatorType: validator,
117
+ }, this.buildRegistrationTargets(options));
118
+ await this.logger.info(`Config "${configName}" registered successfully`);
91
119
  }
92
- /**
93
- * Use this function to create exception file
94
- *
95
- * @param {string} exceptionName Exception name to make
96
- * @param {MakeExceptionInterface} options Options command
97
- * @returns {Promise<void>}
98
- */
99
120
  async makeException(exceptionName, options) {
100
- const stubCreator = new StubCreator_1.default();
101
- const exceptionUcFirst = new chemical_x_1.Str(exceptionName).ucFirst().toString();
121
+ const exceptionClassName = new chemical_x_1.Str(exceptionName).pascalCase().toString();
102
122
  const exceptionType = options.isUnknown ? "UnknownException" : "Exception";
103
- const filePath = await stubCreator.create("exception", `${exceptionUcFirst}${exceptionType}`, options.path, {
123
+ const filePath = await this.stubCreator.create("exception", `${exceptionClassName}${exceptionType}`, options.path, {
104
124
  "ExceptionType": exceptionType,
105
- "ExceptionName": exceptionUcFirst,
125
+ "ExceptionName": exceptionClassName,
106
126
  });
107
127
  await this.logger.info(`Exception created successfully in : ${filePath}`);
108
128
  }
129
+ buildRegistrationTargets(options) {
130
+ const { register = false, registrationTargets, typeImport, typeImports, ...targets } = options;
131
+ return {
132
+ enabled: register,
133
+ ...registrationTargets,
134
+ ...targets,
135
+ typeImports: typeImports ?? typeImport ?? registrationTargets?.typeImports,
136
+ };
137
+ }
138
+ /**
139
+ * Runs optional selector, event, and handler file generation from make:page, forwarding `register` and
140
+ * `registrationTargets` so enums and barrels stay in sync with the parent command.
141
+ *
142
+ * @param {string} pageName Base page name (same as make:page first argument)
143
+ * @param {MakePageOptions} options Full make:page options including paths and registration targets
144
+ * @returns {Promise<void>}
145
+ */
146
+ async scaffoldPageAddOns(pageName, options) {
147
+ if (options.selectors && options.selectorPath) {
148
+ await this.makeSelectors(pageName, {
149
+ ...options,
150
+ path: options.selectorPath,
151
+ });
152
+ }
153
+ if (options.event) {
154
+ await this.makeEvent(options.event, {
155
+ ...options,
156
+ });
157
+ }
158
+ if (options.listeners && options.listenersPath) {
159
+ const eventBinding = options.event ?? pageName;
160
+ await this.makeListener(pageName, {
161
+ ...options,
162
+ path: options.listenersPath,
163
+ event: eventBinding,
164
+ });
165
+ }
166
+ if (options.handlerPath && (options.handlerFrom ?? options.handlerTo ?? options.handler)) {
167
+ await this.makeHandler(pageName, {
168
+ ...options,
169
+ path: options.handlerPath,
170
+ handlerFrom: options.handlerFrom,
171
+ handlerTo: options.handlerTo,
172
+ });
173
+ }
174
+ }
109
175
  }
110
176
  exports.default = MakeFile;
111
177
  //# sourceMappingURL=MakeFile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MakeFile.js","sourceRoot":"","sources":["../../src/Generators/MakeFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MakeFile.js","sourceRoot":"","sources":["../../src/Generators/MakeFile.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  export default class StubCreator {
2
- private readonly filesystem;
3
2
  create(stub: string, name: string, pathDestination: string, variables: Record<string, number | string>): Promise<string>;
4
3
  /**
5
4
  * Return stub file content.
@@ -24,4 +23,6 @@ export default class StubCreator {
24
23
  * @returns {Promise<string>}
25
24
  */
26
25
  getStubPath(name: string): Promise<string>;
26
+ private appendToIndexIfExists;
27
27
  }
28
+ //# sourceMappingURL=StubCreator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StubCreator.d.ts","sourceRoot":"","sources":["../../src/Generators/StubCreator.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,OAAO,OAAO,WAAW;IAEf,MAAM,CACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAC3C,OAAO,CAAC,MAAM,CAAC;IAmBlB;;;;;;OAMG;IACU,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAS/F;;;;;;OAMG;IACU,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIjE;;;;;OAKG;IACU,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAQzC,qBAAqB;CAiBtC"}
@@ -1,60 +1,23 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
36
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
4
  };
38
5
  Object.defineProperty(exports, "__esModule", { value: true });
39
- const Filesystem = __importStar(require("node:fs"));
6
+ const promises_1 = require("node:fs/promises");
40
7
  const node_path_1 = __importDefault(require("node:path"));
41
- const node_util_1 = require("node:util");
42
8
  const chemical_x_1 = require("@odg/chemical-x");
43
9
  const exception_1 = require("@odg/exception");
44
10
  class StubCreator {
45
- filesystem = Filesystem;
46
11
  async create(stub, name, pathDestination, variables) {
47
12
  const destination = await this.getPath(name, pathDestination);
48
13
  if (await new chemical_x_1.File(destination).exists()) {
49
14
  throw new exception_1.InvalidArgumentException(`The ${name} already exists.`);
50
15
  }
51
16
  const content = await this.getStub(stub, variables);
52
- await (0, node_util_1.promisify)(this.filesystem.mkdir)(pathDestination, { recursive: true });
53
- await (0, node_util_1.promisify)(this.filesystem.writeFile)(destination, content, {});
17
+ await (0, promises_1.mkdir)(pathDestination, { recursive: true });
18
+ await (0, promises_1.writeFile)(destination, content);
54
19
  const indexFile = `${pathDestination}/index.ts`;
55
- if (await new chemical_x_1.File(indexFile).exists()) {
56
- await (0, node_util_1.promisify)(this.filesystem.appendFile)(indexFile, `\nexport * from "./${name}";\n`, {});
57
- }
20
+ await this.appendToIndexIfExists(indexFile, name);
58
21
  return destination;
59
22
  }
60
23
  /**
@@ -66,7 +29,7 @@ class StubCreator {
66
29
  */
67
30
  async getStub(name, variables) {
68
31
  const pathStub = await this.getStubPath(name);
69
- const file = await (0, node_util_1.promisify)(this.filesystem.readFile)(`${pathStub}/${name}.stub`);
32
+ const file = await (0, promises_1.readFile)(`${pathStub}/${name}.stub`);
70
33
  return new chemical_x_1.Str(file.toString())
71
34
  .formatUnicorn(variables)
72
35
  .toString();
@@ -93,6 +56,18 @@ class StubCreator {
93
56
  }
94
57
  return node_path_1.default.join(process.cwd(), "node_modules/@odg/command/stubs");
95
58
  }
59
+ async appendToIndexIfExists(indexFile, name) {
60
+ if (!await new chemical_x_1.File(indexFile).exists()) {
61
+ return;
62
+ }
63
+ const exportLine = `export * from "./${name}";`;
64
+ const existing = await (0, promises_1.readFile)(indexFile, { encoding: "utf8" });
65
+ if (existing.includes(exportLine)) {
66
+ return;
67
+ }
68
+ const insert = existing.endsWith("\n") || existing.length === 0 ? "" : "\n";
69
+ await (0, promises_1.appendFile)(indexFile, `${insert}${exportLine}\n`);
70
+ }
96
71
  }
97
72
  exports.default = StubCreator;
98
73
  //# sourceMappingURL=StubCreator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StubCreator.js","sourceRoot":"","sources":["../../src/Generators/StubCreator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAsC;AACtC,0DAAiC;AACjC,yCAAsC;AAEtC,gDAA4C;AAC5C,8CAA0D;AAE1D,MAAqB,WAAW;IAEX,UAAU,GAAsB,UAAU,CAAC;IAErD,KAAK,CAAC,MAAM,CACf,IAAY,EACZ,IAAY,EACZ,eAAuB,EACvB,SAA0C;QAE1C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAE9D,IAAI,MAAM,IAAI,iBAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,oCAAwB,CAAC,OAAO,IAAI,kBAAkB,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAEpD,MAAM,IAAA,qBAAS,EAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,MAAM,IAAA,qBAAS,EAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAErE,MAAM,SAAS,GAAG,GAAG,eAAe,WAAW,CAAC;QAEhD,IAAI,MAAM,IAAI,iBAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,MAAM,IAAA,qBAAS,EAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,sBAAsB,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;QACjG,CAAC;QAED,OAAO,WAAW,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,SAA0C;QACzE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,IAAA,qBAAS,EAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,OAAO,CAAC,CAAC;QAEnF,OAAO,IAAI,gBAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;aAC1B,aAAa,CAAC,SAAS,CAAC;aACxB,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,IAAY;QAC3C,OAAO,GAAG,IAAI,IAAI,IAAI,KAAK,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,WAAW,CAAC,IAAY;QACjC,IAAI,MAAM,IAAI,iBAAI,CAAC,GAAG,mBAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YACzE,OAAO,mBAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,mBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iCAAiC,CAAC,CAAC;IAC3E,CAAC;CAEJ;AAvED,8BAuEC"}
1
+ {"version":3,"file":"StubCreator.js","sourceRoot":"","sources":["../../src/Generators/StubCreator.ts"],"names":[],"mappings":";;;;;AAAA,+CAK0B;AAC1B,0DAAiC;AAEjC,gDAA4C;AAC5C,8CAA0D;AAE1D,MAAqB,WAAW;IAErB,KAAK,CAAC,MAAM,CACf,IAAY,EACZ,IAAY,EACZ,eAAuB,EACvB,SAA0C;QAE1C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAE9D,IAAI,MAAM,IAAI,iBAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,oCAAwB,CAAC,OAAO,IAAI,kBAAkB,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAEpD,MAAM,IAAA,gBAAK,EAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,MAAM,IAAA,oBAAS,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEtC,MAAM,SAAS,GAAG,GAAG,eAAe,WAAW,CAAC;QAEhD,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAElD,OAAO,WAAW,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,SAA0C;QACzE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,IAAA,mBAAQ,EAAC,GAAG,QAAQ,IAAI,IAAI,OAAO,CAAC,CAAC;QAExD,OAAO,IAAI,gBAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;aAC1B,aAAa,CAAC,SAAS,CAAC;aACxB,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,IAAY;QAC3C,OAAO,GAAG,IAAI,IAAI,IAAI,KAAK,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,WAAW,CAAC,IAAY;QACjC,IAAI,MAAM,IAAI,iBAAI,CAAC,GAAG,mBAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YACzE,OAAO,mBAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,mBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iCAAiC,CAAC,CAAC;IAC3E,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,SAAiB,EAAE,IAAY;QAC/D,IAAI,CAAC,MAAM,IAAI,iBAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,OAAO;QACX,CAAC;QAED,MAAM,UAAU,GAAG,oBAAoB,IAAI,IAAI,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAQ,EAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAEjE,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,OAAO;QACX,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAE5E,MAAM,IAAA,qBAAU,EAAC,SAAS,EAAE,GAAG,MAAM,GAAG,UAAU,IAAI,CAAC,CAAC;IAC5D,CAAC;CAEJ;AApFD,8BAoFC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Converts a PascalCase identifier to dot-separated lowercase segments.
3
+ *
4
+ * @param {string} identifier PascalCase class or symbol name (e.g. ExampleEventListener)
5
+ * @returns {string} Dot-separated lowercase (e.g. example.event.listener)
6
+ */
7
+ export declare function pascalCaseToDotLower(identifier: string): string;
8
+ /**
9
+ * Resolves the ContainerName string value for any registration.
10
+ *
11
+ * @param {string | undefined} override Explicit value from registration targets, if any
12
+ * @param {string} containerEnumMember Class name used as the ContainerName member
13
+ * @returns {string} Value for the ContainerName enum entry
14
+ */
15
+ export declare function resolveContainerEnumMemberValue(override: string | undefined, containerEnumMember: string): string;
16
+ //# sourceMappingURL=pascal-to-dot-lower.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pascal-to-dot-lower.d.ts","sourceRoot":"","sources":["../../src/Registrations/pascal-to-dot-lower.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAM/D;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC3C,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,mBAAmB,EAAE,MAAM,GAC5B,MAAM,CAMR"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pascalCaseToDotLower = pascalCaseToDotLower;
4
+ exports.resolveContainerEnumMemberValue = resolveContainerEnumMemberValue;
5
+ /**
6
+ * Converts a PascalCase identifier to dot-separated lowercase segments.
7
+ *
8
+ * @param {string} identifier PascalCase class or symbol name (e.g. ExampleEventListener)
9
+ * @returns {string} Dot-separated lowercase (e.g. example.event.listener)
10
+ */
11
+ function pascalCaseToDotLower(identifier) {
12
+ return identifier
13
+ .split(/(?=[A-Z])/)
14
+ .filter((segment) => segment.length > 0)
15
+ .map((segment) => segment.toLowerCase())
16
+ .join(".");
17
+ }
18
+ /**
19
+ * Resolves the ContainerName string value for any registration.
20
+ *
21
+ * @param {string | undefined} override Explicit value from registration targets, if any
22
+ * @param {string} containerEnumMember Class name used as the ContainerName member
23
+ * @returns {string} Value for the ContainerName enum entry
24
+ */
25
+ function resolveContainerEnumMemberValue(override, containerEnumMember) {
26
+ if (override !== undefined) {
27
+ return override;
28
+ }
29
+ return pascalCaseToDotLower(containerEnumMember);
30
+ }
31
+ //# sourceMappingURL=pascal-to-dot-lower.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pascal-to-dot-lower.js","sourceRoot":"","sources":["../../src/Registrations/pascal-to-dot-lower.ts"],"names":[],"mappings":";;AAMA,oDAMC;AASD,0EASC;AA9BD;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,UAAkB;IACnD,OAAO,UAAU;SACZ,KAAK,CAAC,WAAW,CAAC;SAClB,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;SACvC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;SACvC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,+BAA+B,CAC3C,QAA4B,EAC5B,mBAA2B;IAE3B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,OAAO,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ArtifactDescriptor, RegistrationTargets } from "./types";
2
+ export declare function registerArtifact(descriptor: ArtifactDescriptor, targets: RegistrationTargets): Promise<void>;
3
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/Registrations/register.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAwSvE,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BlH"}