@bemedev/codebase 0.1.2 → 0.2.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 (108) hide show
  1. package/README.md +8 -8
  2. package/lib/_virtual/_rolldown/runtime.cjs +23 -0
  3. package/lib/analyse.cjs +48 -62
  4. package/lib/analyse.cjs.map +1 -1
  5. package/lib/analyse.d.ts +21 -3
  6. package/lib/analyse.js +45 -60
  7. package/lib/analyse.js.map +1 -1
  8. package/lib/analyse.utils.cjs +154 -205
  9. package/lib/analyse.utils.cjs.map +1 -1
  10. package/lib/analyse.utils.d.ts +1 -2
  11. package/lib/analyse.utils.js +153 -203
  12. package/lib/analyse.utils.js.map +1 -1
  13. package/lib/cli/cli.cjs +28 -27
  14. package/lib/cli/cli.cjs.map +1 -1
  15. package/lib/cli/cli.d.ts +0 -1
  16. package/lib/cli/cli.js +25 -24
  17. package/lib/cli/cli.js.map +1 -1
  18. package/lib/cli/constants.cjs +6 -5
  19. package/lib/cli/constants.cjs.map +1 -1
  20. package/lib/cli/constants.d.ts +0 -1
  21. package/lib/cli/constants.js +5 -3
  22. package/lib/cli/constants.js.map +1 -1
  23. package/lib/cli/index.cjs +6 -6
  24. package/lib/cli/index.cjs.map +1 -1
  25. package/lib/cli/index.d.ts +0 -1
  26. package/lib/cli/index.js +7 -4
  27. package/lib/cli/index.js.map +1 -1
  28. package/lib/constants.cjs +26 -28
  29. package/lib/constants.cjs.map +1 -1
  30. package/lib/constants.d.ts +0 -1
  31. package/lib/constants.js +24 -26
  32. package/lib/constants.js.map +1 -1
  33. package/lib/exports.cjs +51 -72
  34. package/lib/exports.cjs.map +1 -1
  35. package/lib/exports.d.ts +1 -2
  36. package/lib/exports.js +49 -70
  37. package/lib/exports.js.map +1 -1
  38. package/lib/functions/add.cjs +71 -84
  39. package/lib/functions/add.cjs.map +1 -1
  40. package/lib/functions/add.d.ts +1 -2
  41. package/lib/functions/add.js +68 -82
  42. package/lib/functions/add.js.map +1 -1
  43. package/lib/functions/generate.cjs +53 -56
  44. package/lib/functions/generate.cjs.map +1 -1
  45. package/lib/functions/generate.d.ts +1 -2
  46. package/lib/functions/generate.js +51 -54
  47. package/lib/functions/generate.js.map +1 -1
  48. package/lib/functions/index.cjs +11 -16
  49. package/lib/functions/index.d.ts +0 -1
  50. package/lib/functions/index.js +5 -5
  51. package/lib/functions/init.cjs +68 -97
  52. package/lib/functions/init.cjs.map +1 -1
  53. package/lib/functions/init.d.ts +1 -2
  54. package/lib/functions/init.js +66 -95
  55. package/lib/functions/init.js.map +1 -1
  56. package/lib/functions/remove.cjs +85 -103
  57. package/lib/functions/remove.cjs.map +1 -1
  58. package/lib/functions/remove.d.ts +1 -2
  59. package/lib/functions/remove.js +82 -101
  60. package/lib/functions/remove.js.map +1 -1
  61. package/lib/helpers.cjs +32 -38
  62. package/lib/helpers.cjs.map +1 -1
  63. package/lib/helpers.d.ts +3 -4
  64. package/lib/helpers.js +30 -36
  65. package/lib/helpers.js.map +1 -1
  66. package/lib/imports.cjs +88 -118
  67. package/lib/imports.cjs.map +1 -1
  68. package/lib/imports.d.ts +2 -3
  69. package/lib/imports.js +86 -116
  70. package/lib/imports.js.map +1 -1
  71. package/lib/index.cjs +22 -24
  72. package/lib/index.d.ts +4 -4
  73. package/lib/index.js +8 -6
  74. package/lib/schemas.cjs +53 -63
  75. package/lib/schemas.cjs.map +1 -1
  76. package/lib/schemas.d.ts +5 -2
  77. package/lib/schemas.js +43 -35
  78. package/lib/schemas.js.map +1 -1
  79. package/lib/types.d.ts +0 -1
  80. package/lib/utils.cjs +9 -10
  81. package/lib/utils.cjs.map +1 -1
  82. package/lib/utils.d.ts +0 -1
  83. package/lib/utils.js +8 -8
  84. package/lib/utils.js.map +1 -1
  85. package/package.json +56 -44
  86. package/CHANGE_LOG.md +0 -143
  87. package/lib/analyse.d.ts.map +0 -1
  88. package/lib/analyse.utils.d.ts.map +0 -1
  89. package/lib/cli/cli.d.ts.map +0 -1
  90. package/lib/cli/constants.d.ts.map +0 -1
  91. package/lib/cli/index.d.ts.map +0 -1
  92. package/lib/constants.d.ts.map +0 -1
  93. package/lib/exports.d.ts.map +0 -1
  94. package/lib/functions/add.d.ts.map +0 -1
  95. package/lib/functions/generate.d.ts.map +0 -1
  96. package/lib/functions/index.cjs.map +0 -1
  97. package/lib/functions/index.d.ts.map +0 -1
  98. package/lib/functions/index.js.map +0 -1
  99. package/lib/functions/init.d.ts.map +0 -1
  100. package/lib/functions/remove.d.ts.map +0 -1
  101. package/lib/helpers.d.ts.map +0 -1
  102. package/lib/imports.d.ts.map +0 -1
  103. package/lib/index.cjs.map +0 -1
  104. package/lib/index.d.ts.map +0 -1
  105. package/lib/index.js.map +0 -1
  106. package/lib/schemas.d.ts.map +0 -1
  107. package/lib/types.d.ts.map +0 -1
  108. package/lib/utils.d.ts.map +0 -1
@@ -1,10 +1,10 @@
1
+ //#region src/analyse.utils.ts
1
2
  /**
2
- * Génère un JSDoc pour une expression exportée générée automatiquement
3
- */
3
+ * Génère un JSDoc pour une expression exportée générée automatiquement
4
+ */
4
5
  const generateJSDoc = (exportName, declarationKind) => {
5
- const kindText = declarationKind ? ` ${declarationKind}` : '';
6
- return `/**
7
- * ${exportName}${kindText} - Auto-generated expression
6
+ return `/**
7
+ * ${exportName}${declarationKind ? ` ${declarationKind}` : ""} - Auto-generated expression
8
8
  *
9
9
  * ⚠️ WARNING: This expression is auto-generated and should not be modified.
10
10
  * Any manual changes will be overwritten during the next generation.
@@ -15,218 +15,168 @@ const generateJSDoc = (exportName, declarationKind) => {
15
15
  */`;
16
16
  };
17
17
  const extractExportDetails = (trimmedLine) => {
18
- let exportName = 'export';
19
- let declarationKind;
20
- if (trimmedLine.includes('export default ')) {
21
- exportName = 'default';
22
- if (trimmedLine.includes('function'))
23
- declarationKind = 'function';
24
- else if (trimmedLine.includes('class'))
25
- declarationKind = 'class';
26
- else
27
- declarationKind = 'value';
28
- }
29
- else if (trimmedLine.includes('export const ')) {
30
- const match = trimmedLine.match(/export const (\w+)/);
31
- exportName = match ? match[1] : 'const';
32
- declarationKind = 'variable';
33
- }
34
- else if (trimmedLine.includes('export let ')) {
35
- const match = trimmedLine.match(/export let (\w+)/);
36
- exportName = match ? match[1] : 'let';
37
- declarationKind = 'variable';
38
- }
39
- else if (trimmedLine.includes('export var ')) {
40
- const match = trimmedLine.match(/export var (\w+)/);
41
- exportName = match ? match[1] : 'var';
42
- declarationKind = 'variable';
43
- }
44
- else if (trimmedLine.includes('export function ')) {
45
- const match = trimmedLine.match(/export function (\w+)/);
46
- exportName = match ? match[1] : 'function';
47
- declarationKind = 'function';
48
- }
49
- else if (trimmedLine.includes('export class ')) {
50
- const match = trimmedLine.match(/export class (\w+)/);
51
- exportName = match ? match[1] : 'class';
52
- declarationKind = 'class';
53
- }
54
- else if (trimmedLine.includes('export interface ')) {
55
- const match = trimmedLine.match(/export interface (\w+)/);
56
- exportName = match ? match[1] : 'interface';
57
- declarationKind = 'interface';
58
- }
59
- else if (trimmedLine.includes('export type ')) {
60
- const match = trimmedLine.match(/export type (\w+)/);
61
- exportName = match ? match[1] : 'type';
62
- declarationKind = 'type';
63
- }
64
- else if (trimmedLine.includes('export enum ')) {
65
- const match = trimmedLine.match(/export enum (\w+)/);
66
- exportName = match ? match[1] : 'enum';
67
- declarationKind = 'enum';
68
- }
69
- return { exportName, declarationKind };
18
+ let exportName = "export";
19
+ let declarationKind;
20
+ if (trimmedLine.includes("export default ")) {
21
+ exportName = "default";
22
+ if (trimmedLine.includes("function")) declarationKind = "function";
23
+ else if (trimmedLine.includes("class")) declarationKind = "class";
24
+ else declarationKind = "value";
25
+ } else if (trimmedLine.includes("export const ")) {
26
+ const match = trimmedLine.match(/export const (\w+)/);
27
+ exportName = match ? match[1] : "const";
28
+ declarationKind = "variable";
29
+ } else if (trimmedLine.includes("export let ")) {
30
+ const match = trimmedLine.match(/export let (\w+)/);
31
+ exportName = match ? match[1] : "let";
32
+ declarationKind = "variable";
33
+ } else if (trimmedLine.includes("export var ")) {
34
+ const match = trimmedLine.match(/export var (\w+)/);
35
+ exportName = match ? match[1] : "var";
36
+ declarationKind = "variable";
37
+ } else if (trimmedLine.includes("export function ")) {
38
+ const match = trimmedLine.match(/export function (\w+)/);
39
+ exportName = match ? match[1] : "function";
40
+ declarationKind = "function";
41
+ } else if (trimmedLine.includes("export class ")) {
42
+ const match = trimmedLine.match(/export class (\w+)/);
43
+ exportName = match ? match[1] : "class";
44
+ declarationKind = "class";
45
+ } else if (trimmedLine.includes("export interface ")) {
46
+ const match = trimmedLine.match(/export interface (\w+)/);
47
+ exportName = match ? match[1] : "interface";
48
+ declarationKind = "interface";
49
+ } else if (trimmedLine.includes("export type ")) {
50
+ const match = trimmedLine.match(/export type (\w+)/);
51
+ exportName = match ? match[1] : "type";
52
+ declarationKind = "type";
53
+ } else if (trimmedLine.includes("export enum ")) {
54
+ const match = trimmedLine.match(/export enum (\w+)/);
55
+ exportName = match ? match[1] : "enum";
56
+ declarationKind = "enum";
57
+ }
58
+ return {
59
+ exportName,
60
+ declarationKind
61
+ };
70
62
  };
71
63
  /**
72
- * Vérifie si une ligne d'export contient une déclaration et non pas un simple re-export
73
- */
64
+ * Vérifie si une ligne d'export contient une déclaration et non pas un simple re-export
65
+ */
74
66
  const hasDeclaration = (exportLine) => {
75
- const trimmed = exportLine.trim();
76
- const falsy = trimmed.startsWith('export {') || // export { something }
77
- trimmed.startsWith('export *') || // export * from
78
- trimmed.includes('} from ') || // export { a, b } from
79
- trimmed.match(/^export\s+\{[^}]*\}\s*;?\s*$/) || // export { a, b };
80
- trimmed.match(/^export\s+default\s+[a-zA-Z_$][a-zA-Z0-9_$]*\s*;?\s*$/); // export default identifier;
81
- // Re-exports et exports simples à exclure
82
- if (falsy)
83
- return false;
84
- // Déclarations à inclure (avec mots-clés de déclaration)
85
- const keywords = [
86
- 'export const ',
87
- 'export let ',
88
- 'export var ',
89
- 'export function ',
90
- 'export class ',
91
- 'export interface ',
92
- 'export type ',
93
- 'export enum ',
94
- 'export namespace ',
95
- 'export default function ',
96
- 'export default class ',
97
- 'export default interface ',
98
- 'export default enum ',
99
- 'export default const ',
100
- 'export default let ',
101
- 'export default var ',
102
- ];
103
- return keywords.some(kw => trimmed.includes(kw));
67
+ const trimmed = exportLine.trim();
68
+ if (trimmed.startsWith("export {") || trimmed.startsWith("export *") || trimmed.includes("} from ") || trimmed.match(/^export\s+\{[^}]*\}\s*;?\s*$/) || trimmed.match(/^export\s+default\s+[a-zA-Z_$][a-zA-Z0-9_$]*\s*;?\s*$/)) return false;
69
+ return [
70
+ "export const ",
71
+ "export let ",
72
+ "export var ",
73
+ "export function ",
74
+ "export class ",
75
+ "export interface ",
76
+ "export type ",
77
+ "export enum ",
78
+ "export namespace ",
79
+ "export default function ",
80
+ "export default class ",
81
+ "export default interface ",
82
+ "export default enum ",
83
+ "export default const ",
84
+ "export default let ",
85
+ "export default var "
86
+ ].some((kw) => trimmed.includes(kw));
104
87
  };
105
88
  /**
106
- * Extrait le nom d'une déclaration (const, function, etc.)
107
- */
89
+ * Extrait le nom d'une déclaration (const, function, etc.)
90
+ */
108
91
  const extractDeclarationName = (line) => {
109
- const trimmed = line.trim();
110
- if (trimmed.startsWith('const ')) {
111
- const match = trimmed.match(/const\s+(\w+)/);
112
- return match ? match[1] : null;
113
- }
114
- if (trimmed.startsWith('function ')) {
115
- const match = trimmed.match(/function\s+(\w+)/);
116
- return match ? match[1] : null;
117
- }
118
- if (trimmed.startsWith('class ')) {
119
- const match = trimmed.match(/class\s+(\w+)/);
120
- return match ? match[1] : null;
121
- }
122
- if (trimmed.startsWith('interface ')) {
123
- const match = trimmed.match(/interface\s+(\w+)/);
124
- return match ? match[1] : null;
125
- }
126
- if (trimmed.startsWith('type ')) {
127
- const match = trimmed.match(/type\s+(\w+)/);
128
- return match ? match[1] : null;
129
- }
130
- if (trimmed.startsWith('enum ')) {
131
- const match = trimmed.match(/enum\s+(\w+)/);
132
- return match ? match[1] : null;
133
- }
134
- return null;
92
+ const trimmed = line.trim();
93
+ if (trimmed.startsWith("const ")) {
94
+ const match = trimmed.match(/const\s+(\w+)/);
95
+ return match ? match[1] : null;
96
+ }
97
+ if (trimmed.startsWith("function ")) {
98
+ const match = trimmed.match(/function\s+(\w+)/);
99
+ return match ? match[1] : null;
100
+ }
101
+ if (trimmed.startsWith("class ")) {
102
+ const match = trimmed.match(/class\s+(\w+)/);
103
+ return match ? match[1] : null;
104
+ }
105
+ if (trimmed.startsWith("interface ")) {
106
+ const match = trimmed.match(/interface\s+(\w+)/);
107
+ return match ? match[1] : null;
108
+ }
109
+ if (trimmed.startsWith("type ")) {
110
+ const match = trimmed.match(/type\s+(\w+)/);
111
+ return match ? match[1] : null;
112
+ }
113
+ if (trimmed.startsWith("enum ")) {
114
+ const match = trimmed.match(/enum\s+(\w+)/);
115
+ return match ? match[1] : null;
116
+ }
117
+ return null;
135
118
  };
136
119
  /**
137
- * Vérifie si une déclaration est exportée plus tard dans le fichier
138
- */
120
+ * Vérifie si une déclaration est exportée plus tard dans le fichier
121
+ */
139
122
  const isExportedLater = (lines, declarationName) => {
140
- return lines.some(line => {
141
- const trimmed = line.trim();
142
- return (trimmed === `export default ${declarationName};` ||
143
- trimmed.includes(`export { ${declarationName}`) ||
144
- trimmed.includes(`export * as ${declarationName}`));
145
- });
123
+ return lines.some((line) => {
124
+ const trimmed = line.trim();
125
+ return trimmed === `export default ${declarationName};` || trimmed.includes(`export { ${declarationName}`) || trimmed.includes(`export * as ${declarationName}`);
126
+ });
146
127
  };
147
128
  /**
148
- * Détermine le type de déclaration
149
- */
129
+ * Détermine le type de déclaration
130
+ */
150
131
  const getDeclarationKind = (line) => {
151
- const trimmed = line.trim();
152
- if (trimmed.startsWith('const '))
153
- return 'const';
154
- if (trimmed.startsWith('let '))
155
- return 'let';
156
- if (trimmed.startsWith('var '))
157
- return 'var';
158
- if (trimmed.startsWith('function '))
159
- return 'function';
160
- if (trimmed.startsWith('class '))
161
- return 'class';
162
- if (trimmed.startsWith('interface '))
163
- return 'interface';
164
- if (trimmed.startsWith('type '))
165
- return 'type';
166
- if (trimmed.startsWith('enum '))
167
- return 'enum';
168
- return 'variable';
132
+ const trimmed = line.trim();
133
+ if (trimmed.startsWith("const ")) return "const";
134
+ if (trimmed.startsWith("let ")) return "let";
135
+ if (trimmed.startsWith("var ")) return "var";
136
+ if (trimmed.startsWith("function ")) return "function";
137
+ if (trimmed.startsWith("class ")) return "class";
138
+ if (trimmed.startsWith("interface ")) return "interface";
139
+ if (trimmed.startsWith("type ")) return "type";
140
+ if (trimmed.startsWith("enum ")) return "enum";
141
+ return "variable";
169
142
  };
170
143
  /**
171
- * Ajoute des JSDoc aux expressions exportées dans le texte source
172
- */
144
+ * Ajoute des JSDoc aux expressions exportées dans le texte source
145
+ */
173
146
  const addJSDocToSourceText = (sourceFile) => {
174
- // Obtenir le texte sans les imports dès le début
175
- const fullText = sourceFile.getText();
176
- const imports = sourceFile
177
- .getImportDeclarations()
178
- .map(importDecl => importDecl.getText());
179
- const linesWithoutImports = fullText
180
- .replace(imports.join('\n'), '')
181
- .trimStart();
182
- let modifiedText = linesWithoutImports;
183
- // Collecter toutes les positions d'insertion avec leurs JSDoc
184
- const insertions = [];
185
- // Une approche plus simple : analyser le texte directement pour trouver les exports
186
- const lines = modifiedText.split('\n');
187
- lines.forEach((line, lineIndex) => {
188
- const trimmedLine = line.trim();
189
- // Détecter les lignes qui commencent par export ET contiennent une déclaration
190
- if (trimmedLine.startsWith('export ') && hasDeclaration(trimmedLine)) {
191
- // Calculer la position dans le texte original
192
- const position = lines.slice(0, lineIndex).join('\n').length +
193
- (lineIndex > 0 ? 1 : 0);
194
- // Déterminer le nom et le type d'export
195
- const { exportName, declarationKind } = extractExportDetails(trimmedLine);
196
- const jsdoc = generateJSDoc(exportName, declarationKind);
197
- insertions.push({ position, jsdoc: `${jsdoc}\n` });
198
- }
199
- // Détecter les déclarations internes (const, function, etc.) qui sont ensuite exportées
200
- if (!trimmedLine.startsWith('export ') &&
201
- (trimmedLine.startsWith('const ') ||
202
- trimmedLine.startsWith('function ') ||
203
- trimmedLine.startsWith('class ') ||
204
- trimmedLine.startsWith('interface ') ||
205
- trimmedLine.startsWith('type ') ||
206
- trimmedLine.startsWith('enum '))) {
207
- // Vérifier si cette déclaration est exportée plus tard dans le fichier
208
- const declarationName = extractDeclarationName(trimmedLine);
209
- if (declarationName && isExportedLater(lines, declarationName)) {
210
- // Calculer la position dans le texte original
211
- const position = lines.slice(0, lineIndex).join('\n').length +
212
- (lineIndex > 0 ? 1 : 0);
213
- const declarationKind = getDeclarationKind(trimmedLine);
214
- const jsdoc = generateJSDoc(declarationName, declarationKind);
215
- insertions.push({ position, jsdoc: `${jsdoc}\n` });
216
- }
217
- }
218
- });
219
- // Trier par position décroissante pour insérer de la fin vers le début
220
- insertions.sort((a, b) => b.position - a.position);
221
- // Insérer les JSDoc
222
- for (const insertion of insertions) {
223
- modifiedText =
224
- modifiedText.slice(0, insertion.position) +
225
- insertion.jsdoc +
226
- modifiedText.slice(insertion.position);
227
- }
228
- return modifiedText;
147
+ const fullText = sourceFile.getText();
148
+ const imports = sourceFile.getImportDeclarations().map((importDecl) => importDecl.getText());
149
+ let modifiedText = fullText.replace(imports.join("\n"), "").trimStart();
150
+ const insertions = [];
151
+ const lines = modifiedText.split("\n");
152
+ lines.forEach((line, lineIndex) => {
153
+ const trimmedLine = line.trim();
154
+ if (trimmedLine.startsWith("export ") && hasDeclaration(trimmedLine)) {
155
+ const position = lines.slice(0, lineIndex).join("\n").length + (lineIndex > 0 ? 1 : 0);
156
+ const { exportName, declarationKind } = extractExportDetails(trimmedLine);
157
+ const jsdoc = generateJSDoc(exportName, declarationKind);
158
+ insertions.push({
159
+ position,
160
+ jsdoc: `${jsdoc}\n`
161
+ });
162
+ }
163
+ if (!trimmedLine.startsWith("export ") && (trimmedLine.startsWith("const ") || trimmedLine.startsWith("function ") || trimmedLine.startsWith("class ") || trimmedLine.startsWith("interface ") || trimmedLine.startsWith("type ") || trimmedLine.startsWith("enum "))) {
164
+ const declarationName = extractDeclarationName(trimmedLine);
165
+ if (declarationName && isExportedLater(lines, declarationName)) {
166
+ const position = lines.slice(0, lineIndex).join("\n").length + (lineIndex > 0 ? 1 : 0);
167
+ const jsdoc = generateJSDoc(declarationName, getDeclarationKind(trimmedLine));
168
+ insertions.push({
169
+ position,
170
+ jsdoc: `${jsdoc}\n`
171
+ });
172
+ }
173
+ }
174
+ });
175
+ insertions.sort((a, b) => b.position - a.position);
176
+ for (const insertion of insertions) modifiedText = modifiedText.slice(0, insertion.position) + insertion.jsdoc + modifiedText.slice(insertion.position);
177
+ return modifiedText;
229
178
  };
230
-
179
+ //#endregion
231
180
  export { addJSDocToSourceText, extractDeclarationName, extractExportDetails, generateJSDoc, getDeclarationKind, hasDeclaration, isExportedLater };
232
- //# sourceMappingURL=analyse.utils.js.map
181
+
182
+ //# sourceMappingURL=analyse.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analyse.utils.js","sources":["../src/analyse.utils.ts"],"sourcesContent":["import type { SourceFile } from 'ts-morph';\n\n/**\n * Génère un JSDoc pour une expression exportée générée automatiquement\n */\nexport const generateJSDoc = (\n exportName: string,\n declarationKind?: string,\n): string => {\n const kindText = declarationKind ? ` ${declarationKind}` : '';\n return `/**\n * ${exportName}${kindText} - Auto-generated expression\n * \n * ⚠️ WARNING: This expression is auto-generated and should not be modified.\n * Any manual changes will be overwritten during the next generation.\n * \n * @generated\n * @readonly\n * @author chlbri (bri_lvi@icloud.com)\n */`;\n};\n\nexport const extractExportDetails = (trimmedLine: string) => {\n let exportName = 'export';\n let declarationKind: string | undefined;\n\n if (trimmedLine.includes('export default ')) {\n exportName = 'default';\n if (trimmedLine.includes('function')) declarationKind = 'function';\n else if (trimmedLine.includes('class')) declarationKind = 'class';\n else declarationKind = 'value';\n } else if (trimmedLine.includes('export const ')) {\n const match = trimmedLine.match(/export const (\\w+)/);\n exportName = match ? match[1] : 'const';\n declarationKind = 'variable';\n } else if (trimmedLine.includes('export let ')) {\n const match = trimmedLine.match(/export let (\\w+)/);\n exportName = match ? match[1] : 'let';\n declarationKind = 'variable';\n } else if (trimmedLine.includes('export var ')) {\n const match = trimmedLine.match(/export var (\\w+)/);\n exportName = match ? match[1] : 'var';\n declarationKind = 'variable';\n } else if (trimmedLine.includes('export function ')) {\n const match = trimmedLine.match(/export function (\\w+)/);\n exportName = match ? match[1] : 'function';\n declarationKind = 'function';\n } else if (trimmedLine.includes('export class ')) {\n const match = trimmedLine.match(/export class (\\w+)/);\n exportName = match ? match[1] : 'class';\n declarationKind = 'class';\n } else if (trimmedLine.includes('export interface ')) {\n const match = trimmedLine.match(/export interface (\\w+)/);\n exportName = match ? match[1] : 'interface';\n declarationKind = 'interface';\n } else if (trimmedLine.includes('export type ')) {\n const match = trimmedLine.match(/export type (\\w+)/);\n exportName = match ? match[1] : 'type';\n declarationKind = 'type';\n } else if (trimmedLine.includes('export enum ')) {\n const match = trimmedLine.match(/export enum (\\w+)/);\n exportName = match ? match[1] : 'enum';\n declarationKind = 'enum';\n }\n return { exportName, declarationKind };\n};\n\n/**\n * Vérifie si une ligne d'export contient une déclaration et non pas un simple re-export\n */\nexport const hasDeclaration = (exportLine: string): boolean => {\n const trimmed = exportLine.trim();\n const falsy =\n trimmed.startsWith('export {') || // export { something }\n trimmed.startsWith('export *') || // export * from\n trimmed.includes('} from ') || // export { a, b } from\n trimmed.match(/^export\\s+\\{[^}]*\\}\\s*;?\\s*$/) || // export { a, b };\n trimmed.match(/^export\\s+default\\s+[a-zA-Z_$][a-zA-Z0-9_$]*\\s*;?\\s*$/); // export default identifier;\n\n // Re-exports et exports simples à exclure\n if (falsy) return false;\n\n // Déclarations à inclure (avec mots-clés de déclaration)\n const keywords = [\n 'export const ',\n 'export let ',\n 'export var ',\n 'export function ',\n 'export class ',\n 'export interface ',\n 'export type ',\n 'export enum ',\n 'export namespace ',\n 'export default function ',\n 'export default class ',\n 'export default interface ',\n 'export default enum ',\n 'export default const ',\n 'export default let ',\n 'export default var ',\n ];\n\n return keywords.some(kw => trimmed.includes(kw));\n};\n\n/**\n * Extrait le nom d'une déclaration (const, function, etc.)\n */\nexport const extractDeclarationName = (line: string): string | null => {\n const trimmed = line.trim();\n\n if (trimmed.startsWith('const ')) {\n const match = trimmed.match(/const\\s+(\\w+)/);\n return match ? match[1] : null;\n }\n if (trimmed.startsWith('function ')) {\n const match = trimmed.match(/function\\s+(\\w+)/);\n return match ? match[1] : null;\n }\n if (trimmed.startsWith('class ')) {\n const match = trimmed.match(/class\\s+(\\w+)/);\n return match ? match[1] : null;\n }\n if (trimmed.startsWith('interface ')) {\n const match = trimmed.match(/interface\\s+(\\w+)/);\n return match ? match[1] : null;\n }\n if (trimmed.startsWith('type ')) {\n const match = trimmed.match(/type\\s+(\\w+)/);\n return match ? match[1] : null;\n }\n if (trimmed.startsWith('enum ')) {\n const match = trimmed.match(/enum\\s+(\\w+)/);\n return match ? match[1] : null;\n }\n\n return null;\n};\n\n/**\n * Vérifie si une déclaration est exportée plus tard dans le fichier\n */\nexport const isExportedLater = (\n lines: string[],\n declarationName: string,\n): boolean => {\n return lines.some(line => {\n const trimmed = line.trim();\n return (\n trimmed === `export default ${declarationName};` ||\n trimmed.includes(`export { ${declarationName}`) ||\n trimmed.includes(`export * as ${declarationName}`)\n );\n });\n};\n\n/**\n * Détermine le type de déclaration\n */\nexport const getDeclarationKind = (line: string): string => {\n const trimmed = line.trim();\n\n if (trimmed.startsWith('const ')) return 'const';\n if (trimmed.startsWith('let ')) return 'let';\n if (trimmed.startsWith('var ')) return 'var';\n if (trimmed.startsWith('function ')) return 'function';\n if (trimmed.startsWith('class ')) return 'class';\n if (trimmed.startsWith('interface ')) return 'interface';\n if (trimmed.startsWith('type ')) return 'type';\n if (trimmed.startsWith('enum ')) return 'enum';\n\n return 'variable';\n};\n\n/**\n * Ajoute des JSDoc aux expressions exportées dans le texte source\n */\nexport const addJSDocToSourceText = (sourceFile: SourceFile): string => {\n // Obtenir le texte sans les imports dès le début\n const fullText = sourceFile.getText();\n const imports = sourceFile\n .getImportDeclarations()\n .map(importDecl => importDecl.getText());\n\n const linesWithoutImports = fullText\n .replace(imports.join('\\n'), '')\n .trimStart();\n\n let modifiedText = linesWithoutImports;\n\n // Collecter toutes les positions d'insertion avec leurs JSDoc\n const insertions: Array<{ position: number; jsdoc: string }> = [];\n\n // Une approche plus simple : analyser le texte directement pour trouver les exports\n const lines = modifiedText.split('\\n');\n\n lines.forEach((line, lineIndex) => {\n const trimmedLine = line.trim();\n\n // Détecter les lignes qui commencent par export ET contiennent une déclaration\n if (trimmedLine.startsWith('export ') && hasDeclaration(trimmedLine)) {\n // Calculer la position dans le texte original\n const position =\n lines.slice(0, lineIndex).join('\\n').length +\n (lineIndex > 0 ? 1 : 0);\n\n // Déterminer le nom et le type d'export\n const { exportName, declarationKind } =\n extractExportDetails(trimmedLine);\n\n const jsdoc = generateJSDoc(exportName, declarationKind);\n insertions.push({ position, jsdoc: `${jsdoc}\\n` });\n }\n\n // Détecter les déclarations internes (const, function, etc.) qui sont ensuite exportées\n if (\n !trimmedLine.startsWith('export ') &&\n (trimmedLine.startsWith('const ') ||\n trimmedLine.startsWith('function ') ||\n trimmedLine.startsWith('class ') ||\n trimmedLine.startsWith('interface ') ||\n trimmedLine.startsWith('type ') ||\n trimmedLine.startsWith('enum '))\n ) {\n // Vérifier si cette déclaration est exportée plus tard dans le fichier\n const declarationName = extractDeclarationName(trimmedLine);\n if (declarationName && isExportedLater(lines, declarationName)) {\n // Calculer la position dans le texte original\n const position =\n lines.slice(0, lineIndex).join('\\n').length +\n (lineIndex > 0 ? 1 : 0);\n\n const declarationKind = getDeclarationKind(trimmedLine);\n const jsdoc = generateJSDoc(declarationName, declarationKind);\n insertions.push({ position, jsdoc: `${jsdoc}\\n` });\n }\n }\n });\n\n // Trier par position décroissante pour insérer de la fin vers le début\n insertions.sort((a, b) => b.position - a.position);\n\n // Insérer les JSDoc\n for (const insertion of insertions) {\n modifiedText =\n modifiedText.slice(0, insertion.position) +\n insertion.jsdoc +\n modifiedText.slice(insertion.position);\n }\n\n return modifiedText;\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyse.utils.js","names":[],"sources":["../src/analyse.utils.ts"],"sourcesContent":["import type { SourceFile } from \"ts-morph\";\n\n/**\n * Génère un JSDoc pour une expression exportée générée automatiquement\n */\nexport const generateJSDoc = (\n exportName: string,\n declarationKind?: string,\n): string => {\n const kindText = declarationKind ? ` ${declarationKind}` : \"\";\n return `/**\n * ${exportName}${kindText} - Auto-generated expression\n * \n * ⚠️ WARNING: This expression is auto-generated and should not be modified.\n * Any manual changes will be overwritten during the next generation.\n * \n * @generated\n * @readonly\n * @author chlbri (bri_lvi@icloud.com)\n */`;\n};\n\nexport const extractExportDetails = (trimmedLine: string) => {\n let exportName = \"export\";\n let declarationKind: string | undefined;\n\n if (trimmedLine.includes(\"export default \")) {\n exportName = \"default\";\n if (trimmedLine.includes(\"function\")) declarationKind = \"function\";\n else if (trimmedLine.includes(\"class\")) declarationKind = \"class\";\n else declarationKind = \"value\";\n } else if (trimmedLine.includes(\"export const \")) {\n const match = trimmedLine.match(/export const (\\w+)/);\n exportName = match ? match[1] : \"const\";\n declarationKind = \"variable\";\n } else if (trimmedLine.includes(\"export let \")) {\n const match = trimmedLine.match(/export let (\\w+)/);\n exportName = match ? match[1] : \"let\";\n declarationKind = \"variable\";\n } else if (trimmedLine.includes(\"export var \")) {\n const match = trimmedLine.match(/export var (\\w+)/);\n exportName = match ? match[1] : \"var\";\n declarationKind = \"variable\";\n } else if (trimmedLine.includes(\"export function \")) {\n const match = trimmedLine.match(/export function (\\w+)/);\n exportName = match ? match[1] : \"function\";\n declarationKind = \"function\";\n } else if (trimmedLine.includes(\"export class \")) {\n const match = trimmedLine.match(/export class (\\w+)/);\n exportName = match ? match[1] : \"class\";\n declarationKind = \"class\";\n } else if (trimmedLine.includes(\"export interface \")) {\n const match = trimmedLine.match(/export interface (\\w+)/);\n exportName = match ? match[1] : \"interface\";\n declarationKind = \"interface\";\n } else if (trimmedLine.includes(\"export type \")) {\n const match = trimmedLine.match(/export type (\\w+)/);\n exportName = match ? match[1] : \"type\";\n declarationKind = \"type\";\n } else if (trimmedLine.includes(\"export enum \")) {\n const match = trimmedLine.match(/export enum (\\w+)/);\n exportName = match ? match[1] : \"enum\";\n declarationKind = \"enum\";\n }\n return { exportName, declarationKind };\n};\n\n/**\n * Vérifie si une ligne d'export contient une déclaration et non pas un simple re-export\n */\nexport const hasDeclaration = (exportLine: string): boolean => {\n const trimmed = exportLine.trim();\n const falsy =\n trimmed.startsWith(\"export {\") || // export { something }\n trimmed.startsWith(\"export *\") || // export * from\n trimmed.includes(\"} from \") || // export { a, b } from\n trimmed.match(/^export\\s+\\{[^}]*\\}\\s*;?\\s*$/) || // export { a, b };\n trimmed.match(/^export\\s+default\\s+[a-zA-Z_$][a-zA-Z0-9_$]*\\s*;?\\s*$/); // export default identifier;\n\n // Re-exports et exports simples à exclure\n if (falsy) return false;\n\n // Déclarations à inclure (avec mots-clés de déclaration)\n const keywords = [\n \"export const \",\n \"export let \",\n \"export var \",\n \"export function \",\n \"export class \",\n \"export interface \",\n \"export type \",\n \"export enum \",\n \"export namespace \",\n \"export default function \",\n \"export default class \",\n \"export default interface \",\n \"export default enum \",\n \"export default const \",\n \"export default let \",\n \"export default var \",\n ];\n\n return keywords.some((kw) => trimmed.includes(kw));\n};\n\n/**\n * Extrait le nom d'une déclaration (const, function, etc.)\n */\nexport const extractDeclarationName = (line: string): string | null => {\n const trimmed = line.trim();\n\n if (trimmed.startsWith(\"const \")) {\n const match = trimmed.match(/const\\s+(\\w+)/);\n return match ? match[1] : null;\n }\n if (trimmed.startsWith(\"function \")) {\n const match = trimmed.match(/function\\s+(\\w+)/);\n return match ? match[1] : null;\n }\n if (trimmed.startsWith(\"class \")) {\n const match = trimmed.match(/class\\s+(\\w+)/);\n return match ? match[1] : null;\n }\n if (trimmed.startsWith(\"interface \")) {\n const match = trimmed.match(/interface\\s+(\\w+)/);\n return match ? match[1] : null;\n }\n if (trimmed.startsWith(\"type \")) {\n const match = trimmed.match(/type\\s+(\\w+)/);\n return match ? match[1] : null;\n }\n if (trimmed.startsWith(\"enum \")) {\n const match = trimmed.match(/enum\\s+(\\w+)/);\n return match ? match[1] : null;\n }\n\n return null;\n};\n\n/**\n * Vérifie si une déclaration est exportée plus tard dans le fichier\n */\nexport const isExportedLater = (\n lines: string[],\n declarationName: string,\n): boolean => {\n return lines.some((line) => {\n const trimmed = line.trim();\n return (\n trimmed === `export default ${declarationName};` ||\n trimmed.includes(`export { ${declarationName}`) ||\n trimmed.includes(`export * as ${declarationName}`)\n );\n });\n};\n\n/**\n * Détermine le type de déclaration\n */\nexport const getDeclarationKind = (line: string): string => {\n const trimmed = line.trim();\n\n if (trimmed.startsWith(\"const \")) return \"const\";\n if (trimmed.startsWith(\"let \")) return \"let\";\n if (trimmed.startsWith(\"var \")) return \"var\";\n if (trimmed.startsWith(\"function \")) return \"function\";\n if (trimmed.startsWith(\"class \")) return \"class\";\n if (trimmed.startsWith(\"interface \")) return \"interface\";\n if (trimmed.startsWith(\"type \")) return \"type\";\n if (trimmed.startsWith(\"enum \")) return \"enum\";\n\n return \"variable\";\n};\n\n/**\n * Ajoute des JSDoc aux expressions exportées dans le texte source\n */\nexport const addJSDocToSourceText = (sourceFile: SourceFile): string => {\n // Obtenir le texte sans les imports dès le début\n const fullText = sourceFile.getText();\n const imports = sourceFile\n .getImportDeclarations()\n .map((importDecl) => importDecl.getText());\n\n const linesWithoutImports = fullText\n .replace(imports.join(\"\\n\"), \"\")\n .trimStart();\n\n let modifiedText = linesWithoutImports;\n\n // Collecter toutes les positions d'insertion avec leurs JSDoc\n const insertions: Array<{ position: number; jsdoc: string }> = [];\n\n // Une approche plus simple : analyser le texte directement pour trouver les exports\n const lines = modifiedText.split(\"\\n\");\n\n lines.forEach((line, lineIndex) => {\n const trimmedLine = line.trim();\n\n // Détecter les lignes qui commencent par export ET contiennent une déclaration\n if (trimmedLine.startsWith(\"export \") && hasDeclaration(trimmedLine)) {\n // Calculer la position dans le texte original\n const position =\n lines.slice(0, lineIndex).join(\"\\n\").length + (lineIndex > 0 ? 1 : 0);\n\n // Déterminer le nom et le type d'export\n const { exportName, declarationKind } = extractExportDetails(trimmedLine);\n\n const jsdoc = generateJSDoc(exportName, declarationKind);\n insertions.push({ position, jsdoc: `${jsdoc}\\n` });\n }\n\n // Détecter les déclarations internes (const, function, etc.) qui sont ensuite exportées\n if (\n !trimmedLine.startsWith(\"export \") &&\n (trimmedLine.startsWith(\"const \") ||\n trimmedLine.startsWith(\"function \") ||\n trimmedLine.startsWith(\"class \") ||\n trimmedLine.startsWith(\"interface \") ||\n trimmedLine.startsWith(\"type \") ||\n trimmedLine.startsWith(\"enum \"))\n ) {\n // Vérifier si cette déclaration est exportée plus tard dans le fichier\n const declarationName = extractDeclarationName(trimmedLine);\n if (declarationName && isExportedLater(lines, declarationName)) {\n // Calculer la position dans le texte original\n const position =\n lines.slice(0, lineIndex).join(\"\\n\").length + (lineIndex > 0 ? 1 : 0);\n\n const declarationKind = getDeclarationKind(trimmedLine);\n const jsdoc = generateJSDoc(declarationName, declarationKind);\n insertions.push({ position, jsdoc: `${jsdoc}\\n` });\n }\n }\n });\n\n // Trier par position décroissante pour insérer de la fin vers le début\n insertions.sort((a, b) => b.position - a.position);\n\n // Insérer les JSDoc\n for (const insertion of insertions) {\n modifiedText =\n modifiedText.slice(0, insertion.position) +\n insertion.jsdoc +\n modifiedText.slice(insertion.position);\n }\n\n return modifiedText;\n};\n"],"mappings":"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"}
package/lib/cli/cli.cjs CHANGED
@@ -1,29 +1,30 @@
1
- 'use strict';
2
-
3
- var cmdTs = require('cmd-ts');
4
- var constants = require('../constants.cjs');
5
- var functions_generate = require('../functions/generate.cjs');
6
-
7
- const cli = cmdTs.command({
8
- name: 'generate',
9
- args: {
10
- output: cmdTs.option({
11
- long: 'output',
12
- short: 'o',
13
- type: cmdTs.string,
14
- description: 'Output file path',
15
- defaultValue: () => constants.CODEBASE_FILE,
16
- }),
17
- excludes: cmdTs.multioption({
18
- description: 'The files to exclude, globs',
19
- long: 'excludes',
20
- short: 'x',
21
- type: cmdTs.array(cmdTs.string),
22
- defaultValue: () => [],
23
- }),
24
- },
25
- handler: functions_generate.generate,
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ require("../_virtual/_rolldown/runtime.cjs");
3
+ const require_constants = require("../constants.cjs");
4
+ const require_functions_generate = require("../functions/generate.cjs");
5
+ let cmd_ts = require("cmd-ts");
6
+ //#region src/cli/cli.ts
7
+ const cli = (0, cmd_ts.command)({
8
+ name: "generate",
9
+ args: {
10
+ output: (0, cmd_ts.option)({
11
+ long: "output",
12
+ short: "o",
13
+ type: cmd_ts.string,
14
+ description: "Output file path",
15
+ defaultValue: () => require_constants.CODEBASE_FILE
16
+ }),
17
+ excludes: (0, cmd_ts.multioption)({
18
+ description: "The files to exclude, globs",
19
+ long: "excludes",
20
+ short: "x",
21
+ type: (0, cmd_ts.array)(cmd_ts.string),
22
+ defaultValue: () => []
23
+ })
24
+ },
25
+ handler: require_functions_generate.generate
26
26
  });
27
-
27
+ //#endregion
28
28
  exports.cli = cli;
29
- //# sourceMappingURL=cli.cjs.map
29
+
30
+ //# sourceMappingURL=cli.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.cjs","sources":["../../src/cli/cli.ts"],"sourcesContent":["import { array, command, multioption, option, string } from 'cmd-ts';\nimport { CODEBASE_FILE } from '../constants';\nimport { generate as handler } from '../functions/generate';\n\nexport const cli = command({\n name: 'generate',\n\n args: {\n output: option({\n long: 'output',\n short: 'o',\n type: string,\n description: 'Output file path',\n defaultValue: () => CODEBASE_FILE,\n }),\n excludes: multioption({\n description: 'The files to exclude, globs',\n long: 'excludes',\n short: 'x',\n type: array(string),\n defaultValue: () => [],\n }),\n },\n handler,\n});\n"],"names":["command","option","string","CODEBASE_FILE","multioption","array","handler"],"mappings":";;;;;;AAIO,MAAM,GAAG,GAAGA,aAAO,CAAC;AACzB,IAAA,IAAI,EAAE,UAAU;AAEhB,IAAA,IAAI,EAAE;QACJ,MAAM,EAAEC,YAAM,CAAC;AACb,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,GAAG;AACV,YAAA,IAAI,EAAEC,YAAM;AACZ,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,YAAY,EAAE,MAAMC,uBAAa;SAClC,CAAC;QACF,QAAQ,EAAEC,iBAAW,CAAC;AACpB,YAAA,WAAW,EAAE,6BAA6B;AAC1C,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,KAAK,EAAE,GAAG;AACV,YAAA,IAAI,EAAEC,WAAK,CAACH,YAAM,CAAC;AACnB,YAAA,YAAY,EAAE,MAAM,EAAE;SACvB,CAAC;AACH,KAAA;aACDI,2BAAO;AACR,CAAA;;;;"}
1
+ {"version":3,"file":"cli.cjs","names":["string","CODEBASE_FILE"],"sources":["../../src/cli/cli.ts"],"sourcesContent":["import { array, command, multioption, option, string } from 'cmd-ts';\nimport { CODEBASE_FILE } from '../constants';\nimport { generate as handler } from '../functions/generate';\n\nexport const cli = command({\n name: 'generate',\n\n args: {\n output: option({\n long: 'output',\n short: 'o',\n type: string,\n description: 'Output file path',\n defaultValue: () => CODEBASE_FILE,\n }),\n excludes: multioption({\n description: 'The files to exclude, globs',\n long: 'excludes',\n short: 'x',\n type: array(string),\n defaultValue: () => [],\n }),\n },\n handler,\n});\n"],"mappings":";;;;;;AAIA,MAAa,OAAA,GAAA,OAAA,SAAc;CACzB,MAAM;CAEN,MAAM;EACJ,SAAA,GAAA,OAAA,QAAe;GACb,MAAM;GACN,OAAO;GACP,MAAMA,OAAAA;GACN,aAAa;GACb,oBAAoBC,kBAAAA;GACrB,CAAC;EACF,WAAA,GAAA,OAAA,aAAsB;GACpB,aAAa;GACb,MAAM;GACN,OAAO;GACP,OAAA,GAAA,OAAA,OAAYD,OAAAA,OAAO;GACnB,oBAAoB,EAAE;GACvB,CAAC;EACH;CACD,SAAA,2BAAA;CACD,CAAC"}
package/lib/cli/cli.d.ts CHANGED
@@ -9,4 +9,3 @@ export declare const cli: Partial<import("cmd-ts/dist/cjs/argparser").Register>
9
9
  }, boolean> & {
10
10
  run(context: import("cmd-ts/dist/cjs/argparser").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser").ParsingResult<boolean>>;
11
11
  } & Partial<import("cmd-ts/dist/cjs/helpdoc").Versioned & import("cmd-ts/dist/cjs/helpdoc").Descriptive & import("cmd-ts/dist/cjs/helpdoc").Aliased>;
12
- //# sourceMappingURL=cli.d.ts.map
package/lib/cli/cli.js CHANGED
@@ -1,27 +1,28 @@
1
- import { command, multioption, option, array, string } from 'cmd-ts';
2
- import { CODEBASE_FILE } from '../constants.js';
3
- import { generate } from '../functions/generate.js';
4
-
1
+ import { CODEBASE_FILE } from "../constants.js";
2
+ import { generate } from "../functions/generate.js";
3
+ import { array, command, multioption, option, string } from "cmd-ts";
4
+ //#region src/cli/cli.ts
5
5
  const cli = command({
6
- name: 'generate',
7
- args: {
8
- output: option({
9
- long: 'output',
10
- short: 'o',
11
- type: string,
12
- description: 'Output file path',
13
- defaultValue: () => CODEBASE_FILE,
14
- }),
15
- excludes: multioption({
16
- description: 'The files to exclude, globs',
17
- long: 'excludes',
18
- short: 'x',
19
- type: array(string),
20
- defaultValue: () => [],
21
- }),
22
- },
23
- handler: generate,
6
+ name: "generate",
7
+ args: {
8
+ output: option({
9
+ long: "output",
10
+ short: "o",
11
+ type: string,
12
+ description: "Output file path",
13
+ defaultValue: () => CODEBASE_FILE
14
+ }),
15
+ excludes: multioption({
16
+ description: "The files to exclude, globs",
17
+ long: "excludes",
18
+ short: "x",
19
+ type: array(string),
20
+ defaultValue: () => []
21
+ })
22
+ },
23
+ handler: generate
24
24
  });
25
-
25
+ //#endregion
26
26
  export { cli };
27
- //# sourceMappingURL=cli.js.map
27
+
28
+ //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sources":["../../src/cli/cli.ts"],"sourcesContent":["import { array, command, multioption, option, string } from 'cmd-ts';\nimport { CODEBASE_FILE } from '../constants';\nimport { generate as handler } from '../functions/generate';\n\nexport const cli = command({\n name: 'generate',\n\n args: {\n output: option({\n long: 'output',\n short: 'o',\n type: string,\n description: 'Output file path',\n defaultValue: () => CODEBASE_FILE,\n }),\n excludes: multioption({\n description: 'The files to exclude, globs',\n long: 'excludes',\n short: 'x',\n type: array(string),\n defaultValue: () => [],\n }),\n },\n handler,\n});\n"],"names":["handler"],"mappings":";;;;AAIO,MAAM,GAAG,GAAG,OAAO,CAAC;AACzB,IAAA,IAAI,EAAE,UAAU;AAEhB,IAAA,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;AACb,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,GAAG;AACV,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,WAAW,EAAE,kBAAkB;AAC/B,YAAA,YAAY,EAAE,MAAM,aAAa;SAClC,CAAC;QACF,QAAQ,EAAE,WAAW,CAAC;AACpB,YAAA,WAAW,EAAE,6BAA6B;AAC1C,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,KAAK,EAAE,GAAG;AACV,YAAA,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;AACnB,YAAA,YAAY,EAAE,MAAM,EAAE;SACvB,CAAC;AACH,KAAA;aACDA,QAAO;AACR,CAAA;;;;"}
1
+ {"version":3,"file":"cli.js","names":[],"sources":["../../src/cli/cli.ts"],"sourcesContent":["import { array, command, multioption, option, string } from 'cmd-ts';\nimport { CODEBASE_FILE } from '../constants';\nimport { generate as handler } from '../functions/generate';\n\nexport const cli = command({\n name: 'generate',\n\n args: {\n output: option({\n long: 'output',\n short: 'o',\n type: string,\n description: 'Output file path',\n defaultValue: () => CODEBASE_FILE,\n }),\n excludes: multioption({\n description: 'The files to exclude, globs',\n long: 'excludes',\n short: 'x',\n type: array(string),\n defaultValue: () => [],\n }),\n },\n handler,\n});\n"],"mappings":";;;;AAIA,MAAa,MAAM,QAAQ;CACzB,MAAM;CAEN,MAAM;EACJ,QAAQ,OAAO;GACb,MAAM;GACN,OAAO;GACP,MAAM;GACN,aAAa;GACb,oBAAoB;GACrB,CAAC;EACF,UAAU,YAAY;GACpB,aAAa;GACb,MAAM;GACN,OAAO;GACP,MAAM,MAAM,OAAO;GACnB,oBAAoB,EAAE;GACvB,CAAC;EACH;CACD,SAAA;CACD,CAAC"}
@@ -1,6 +1,7 @@
1
- 'use strict';
2
-
3
- const BIN = 'codebase';
4
-
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ //#region src/cli/constants.ts
3
+ const BIN = "codebase";
4
+ //#endregion
5
5
  exports.BIN = BIN;
6
- //# sourceMappingURL=constants.cjs.map
6
+
7
+ //# sourceMappingURL=constants.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.cjs","sources":["../../src/cli/constants.ts"],"sourcesContent":["export const BIN = 'codebase';\n"],"names":[],"mappings":";;AAAO,MAAM,GAAG,GAAG;;;;"}
1
+ {"version":3,"file":"constants.cjs","names":[],"sources":["../../src/cli/constants.ts"],"sourcesContent":["export const BIN = 'codebase';\n"],"mappings":";;AAAA,MAAa,MAAM"}