@bemedev/codebase 0.0.3 → 0.0.5
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/CHANGE_LOG.md +25 -0
- package/lib/analyse.cjs.map +1 -1
- package/lib/analyse.d.ts +1 -1
- package/lib/analyse.d.ts.map +1 -1
- package/lib/analyse.js.map +1 -1
- package/lib/exports.cjs.map +1 -1
- package/lib/exports.d.ts +7 -2
- package/lib/exports.d.ts.map +1 -1
- package/lib/exports.js.map +1 -1
- package/lib/functions/add.cjs +2 -2
- package/lib/functions/add.cjs.map +1 -1
- package/lib/functions/add.d.ts.map +1 -1
- package/lib/functions/add.js +4 -4
- package/lib/functions/add.js.map +1 -1
- package/lib/functions/generate.cjs +1 -1
- package/lib/functions/generate.cjs.map +1 -1
- package/lib/functions/generate.d.ts +8 -2
- package/lib/functions/generate.d.ts.map +1 -1
- package/lib/functions/generate.js +1 -1
- package/lib/functions/generate.js.map +1 -1
- package/lib/functions/init.cjs +1 -2
- package/lib/functions/init.cjs.map +1 -1
- package/lib/functions/init.d.ts.map +1 -1
- package/lib/functions/init.js +2 -3
- package/lib/functions/init.js.map +1 -1
- package/lib/functions/remove.cjs +2 -2
- package/lib/functions/remove.cjs.map +1 -1
- package/lib/functions/remove.js +3 -3
- package/lib/functions/remove.js.map +1 -1
- package/lib/helpers.cjs +7 -0
- package/lib/helpers.cjs.map +1 -1
- package/lib/helpers.d.ts +1 -0
- package/lib/helpers.d.ts.map +1 -1
- package/lib/helpers.js +8 -2
- package/lib/helpers.js.map +1 -1
- package/lib/imports.cjs.map +1 -1
- package/lib/imports.d.ts +1 -1
- package/lib/imports.d.ts.map +1 -1
- package/lib/imports.js.map +1 -1
- package/lib/index.cjs +8 -0
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/schemas.cjs +0 -4
- package/lib/schemas.cjs.map +1 -1
- package/lib/schemas.d.ts.map +1 -1
- package/lib/schemas.js +0 -4
- package/lib/schemas.js.map +1 -1
- package/lib/types.d.ts +0 -35
- package/lib/types.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGE_LOG.md
CHANGED
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
## CHANGELOG
|
|
2
2
|
|
|
3
3
|
<br/>
|
|
4
|
+
|
|
5
|
+
<details>
|
|
6
|
+
|
|
7
|
+
<summary>
|
|
8
|
+
|
|
9
|
+
### Version [0.0.5] --> _2025/09/04 23:10_
|
|
10
|
+
|
|
11
|
+
</summary>
|
|
12
|
+
|
|
13
|
+
- Fix folder path in add function
|
|
14
|
+
- Fix folder path in init function
|
|
15
|
+
- Fix folder path in remove function
|
|
16
|
+
|
|
17
|
+
</details>
|
|
18
|
+
|
|
19
|
+
<br/>
|
|
20
|
+
|
|
21
|
+
### Version [0.0.4] --> _2025/09/04 23:10_
|
|
22
|
+
|
|
23
|
+
</summary>
|
|
24
|
+
|
|
25
|
+
- Upgrade files structure
|
|
26
|
+
|
|
27
|
+
</details>
|
|
28
|
+
|
|
4
29
|
<br/>
|
|
5
30
|
|
|
6
31
|
<details>
|
package/lib/analyse.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyse.cjs","sources":["../src/analyse.ts"],"sourcesContent":["import { join, relative } from 'path';\nimport { Project } from 'ts-morph';\nimport { addJSDocToSourceText } from './analyse.utils';\nimport { SRC_DIR } from './constants';\nimport { analyzeExports } from './exports';\nimport { toArray } from './helpers';\nimport { analyzeImports, buildImportStrings } from './imports';\nimport type { CodebaseAnalysis } from './
|
|
1
|
+
{"version":3,"file":"analyse.cjs","sources":["../src/analyse.ts"],"sourcesContent":["import { join, relative } from 'path';\nimport { Project } from 'ts-morph';\nimport { addJSDocToSourceText } from './analyse.utils';\nimport { SRC_DIR } from './constants';\nimport { analyzeExports } from './exports';\nimport { toArray } from './helpers';\nimport { analyzeImports, buildImportStrings } from './imports';\nimport type { CodebaseAnalysis } from './schemas';\nimport { pathToDotNotation } from './utils';\n\nexport type AnalyzeOptions = {\n src?: string;\n excludes?: string | string[];\n};\n\n/**\n * Analyse tous les fichiers TypeScript dans src/ (sauf src/scripts/)\n */\nexport const analyze = ({\n src = SRC_DIR,\n excludes: _excludes,\n}: AnalyzeOptions = {}): CodebaseAnalysis => {\n console.log('🔍 Analyse du codebase en cours...');\n const excludes = toArray(_excludes);\n\n // Initialiser le projet ts-morph\n const project = new Project({\n tsConfigFilePath: join(process.cwd(), 'tsconfig.json'),\n });\n\n // Ajouter tous les fichiers TypeScript du dossier src\n const sourceFiles = project.addSourceFilesAtPaths(\n [\n 'src/**/*.ts',\n '!src/scripts/**/*', // Exclure le dossier scripts\n '!src/**/*.test.ts', // Exclure les fichiers de test\n '!src/**/*.spec.ts', // Exclure les fichiers de spec\n ].concat(excludes.map(exclude => `!${exclude}`)),\n );\n\n const analysis: CodebaseAnalysis = {};\n let processedCount = 0;\n\n for (const sourceFile of sourceFiles) {\n const filePath = sourceFile.getFilePath();\n const relativePath = relative(src, filePath);\n\n // Générer le texte modifié avec JSDoc pour les exports\n\n const _text = addJSDocToSourceText(sourceFile);\n\n // #region Analyser les imports et exports\n const imports = analyzeImports(sourceFile);\n const exports = analyzeExports(sourceFile);\n // #endregion\n\n // Construire les imports à partir de fileAnalysis.imports\n const importsStrings = buildImportStrings(imports);\n\n // Combiner imports et contenu\n const importsSection =\n importsStrings.length > 0 ? importsStrings.join('\\n') : '';\n\n const text =\n importsSection === ''\n ? _text\n : `${importsSection}\n\n${_text}\n `;\n\n analysis[pathToDotNotation(relativePath)] = {\n relativePath,\n imports,\n exports,\n text,\n };\n\n processedCount++;\n\n // #region Afficher l'avancement de l'analyse par palliers de 50\n if (processedCount % 50 === 0) {\n console.log(\n `📊 Analysé ${processedCount}/${sourceFiles.length} fichiers...`,\n );\n }\n // #endregion\n }\n\n console.log(`✅ Analyse terminée: ${processedCount} fichiers analysés`);\n return analysis;\n};\n"],"names":["SRC_DIR","toArray","Project","join","relative","addJSDocToSourceText","imports","analyzeImports","analyzeExports","buildImportStrings","pathToDotNotation"],"mappings":";;;;;;;;;;;AAeA;;AAEG;AACI,MAAM,OAAO,GAAG,CAAC,EACtB,GAAG,GAAGA,iBAAO,EACb,QAAQ,EAAE,SAAS,GAAA,GACD,EAAE,KAAsB;AAC1C,IAAA,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC;AACjD,IAAA,MAAM,QAAQ,GAAGC,eAAO,CAAC,SAAS,CAAC;;AAGnC,IAAA,MAAM,OAAO,GAAG,IAAIC,eAAO,CAAC;QAC1B,gBAAgB,EAAEC,SAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC;AACvD,KAAA,CAAC;;AAGF,IAAA,MAAM,WAAW,GAAG,OAAO,CAAC,qBAAqB,CAC/C;QACE,aAAa;AACb,QAAA,mBAAmB;AACnB,QAAA,mBAAmB;AACnB,QAAA,mBAAmB;AACpB,KAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,OAAO,CAAA,CAAE,CAAC,CAAC,CACjD;IAED,MAAM,QAAQ,GAAqB,EAAE;IACrC,IAAI,cAAc,GAAG,CAAC;AAEtB,IAAA,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AACpC,QAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,EAAE;QACzC,MAAM,YAAY,GAAGC,aAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;;AAI5C,QAAA,MAAM,KAAK,GAAGC,kCAAoB,CAAC,UAAU,CAAC;;AAG9C,QAAA,MAAMC,SAAO,GAAGC,sBAAc,CAAC,UAAU,CAAC;AAC1C,QAAA,MAAM,OAAO,GAAGC,wBAAc,CAAC,UAAU,CAAC;;;AAI1C,QAAA,MAAM,cAAc,GAAGC,0BAAkB,CAACH,SAAO,CAAC;;QAGlD,MAAM,cAAc,GAClB,cAAc,CAAC,MAAM,GAAG,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AAE5D,QAAA,MAAM,IAAI,GACR,cAAc,KAAK;AACjB,cAAE;cACA,GAAG,cAAc;;EAEzB,KAAK;KACF;AAED,QAAA,QAAQ,CAACI,uBAAiB,CAAC,YAAY,CAAC,CAAC,GAAG;YAC1C,YAAY;qBACZJ,SAAO;YACP,OAAO;YACP,IAAI;SACL;AAED,QAAA,cAAc,EAAE;;AAGhB,QAAA,IAAI,cAAc,GAAG,EAAE,KAAK,CAAC,EAAE;YAC7B,OAAO,CAAC,GAAG,CACT,CAAA,WAAA,EAAc,cAAc,CAAA,CAAA,EAAI,WAAW,CAAC,MAAM,CAAA,YAAA,CAAc,CACjE;QACH;;IAEF;AAEA,IAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,cAAc,CAAA,kBAAA,CAAoB,CAAC;AACtE,IAAA,OAAO,QAAQ;AACjB;;;;"}
|
package/lib/analyse.d.ts
CHANGED
package/lib/analyse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyse.d.ts","sourceRoot":"","sources":["../src/analyse.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"analyse.d.ts","sourceRoot":"","sources":["../src/analyse.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAGlD,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,GAAI,gCAGrB,cAAmB,KAAG,gBAsExB,CAAC"}
|
package/lib/analyse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyse.js","sources":["../src/analyse.ts"],"sourcesContent":["import { join, relative } from 'path';\nimport { Project } from 'ts-morph';\nimport { addJSDocToSourceText } from './analyse.utils';\nimport { SRC_DIR } from './constants';\nimport { analyzeExports } from './exports';\nimport { toArray } from './helpers';\nimport { analyzeImports, buildImportStrings } from './imports';\nimport type { CodebaseAnalysis } from './
|
|
1
|
+
{"version":3,"file":"analyse.js","sources":["../src/analyse.ts"],"sourcesContent":["import { join, relative } from 'path';\nimport { Project } from 'ts-morph';\nimport { addJSDocToSourceText } from './analyse.utils';\nimport { SRC_DIR } from './constants';\nimport { analyzeExports } from './exports';\nimport { toArray } from './helpers';\nimport { analyzeImports, buildImportStrings } from './imports';\nimport type { CodebaseAnalysis } from './schemas';\nimport { pathToDotNotation } from './utils';\n\nexport type AnalyzeOptions = {\n src?: string;\n excludes?: string | string[];\n};\n\n/**\n * Analyse tous les fichiers TypeScript dans src/ (sauf src/scripts/)\n */\nexport const analyze = ({\n src = SRC_DIR,\n excludes: _excludes,\n}: AnalyzeOptions = {}): CodebaseAnalysis => {\n console.log('🔍 Analyse du codebase en cours...');\n const excludes = toArray(_excludes);\n\n // Initialiser le projet ts-morph\n const project = new Project({\n tsConfigFilePath: join(process.cwd(), 'tsconfig.json'),\n });\n\n // Ajouter tous les fichiers TypeScript du dossier src\n const sourceFiles = project.addSourceFilesAtPaths(\n [\n 'src/**/*.ts',\n '!src/scripts/**/*', // Exclure le dossier scripts\n '!src/**/*.test.ts', // Exclure les fichiers de test\n '!src/**/*.spec.ts', // Exclure les fichiers de spec\n ].concat(excludes.map(exclude => `!${exclude}`)),\n );\n\n const analysis: CodebaseAnalysis = {};\n let processedCount = 0;\n\n for (const sourceFile of sourceFiles) {\n const filePath = sourceFile.getFilePath();\n const relativePath = relative(src, filePath);\n\n // Générer le texte modifié avec JSDoc pour les exports\n\n const _text = addJSDocToSourceText(sourceFile);\n\n // #region Analyser les imports et exports\n const imports = analyzeImports(sourceFile);\n const exports = analyzeExports(sourceFile);\n // #endregion\n\n // Construire les imports à partir de fileAnalysis.imports\n const importsStrings = buildImportStrings(imports);\n\n // Combiner imports et contenu\n const importsSection =\n importsStrings.length > 0 ? importsStrings.join('\\n') : '';\n\n const text =\n importsSection === ''\n ? _text\n : `${importsSection}\n\n${_text}\n `;\n\n analysis[pathToDotNotation(relativePath)] = {\n relativePath,\n imports,\n exports,\n text,\n };\n\n processedCount++;\n\n // #region Afficher l'avancement de l'analyse par palliers de 50\n if (processedCount % 50 === 0) {\n console.log(\n `📊 Analysé ${processedCount}/${sourceFiles.length} fichiers...`,\n );\n }\n // #endregion\n }\n\n console.log(`✅ Analyse terminée: ${processedCount} fichiers analysés`);\n return analysis;\n};\n"],"names":[],"mappings":";;;;;;;;;AAeA;;AAEG;AACI,MAAM,OAAO,GAAG,CAAC,EACtB,GAAG,GAAG,OAAO,EACb,QAAQ,EAAE,SAAS,GAAA,GACD,EAAE,KAAsB;AAC1C,IAAA,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC;AACjD,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;;AAGnC,IAAA,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;QAC1B,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC;AACvD,KAAA,CAAC;;AAGF,IAAA,MAAM,WAAW,GAAG,OAAO,CAAC,qBAAqB,CAC/C;QACE,aAAa;AACb,QAAA,mBAAmB;AACnB,QAAA,mBAAmB;AACnB,QAAA,mBAAmB;AACpB,KAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,OAAO,CAAA,CAAE,CAAC,CAAC,CACjD;IAED,MAAM,QAAQ,GAAqB,EAAE;IACrC,IAAI,cAAc,GAAG,CAAC;AAEtB,IAAA,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AACpC,QAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,EAAE;QACzC,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;;AAI5C,QAAA,MAAM,KAAK,GAAG,oBAAoB,CAAC,UAAU,CAAC;;AAG9C,QAAA,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC;AAC1C,QAAA,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC;;;AAI1C,QAAA,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC;;QAGlD,MAAM,cAAc,GAClB,cAAc,CAAC,MAAM,GAAG,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AAE5D,QAAA,MAAM,IAAI,GACR,cAAc,KAAK;AACjB,cAAE;cACA,GAAG,cAAc;;EAEzB,KAAK;KACF;AAED,QAAA,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,GAAG;YAC1C,YAAY;YACZ,OAAO;YACP,OAAO;YACP,IAAI;SACL;AAED,QAAA,cAAc,EAAE;;AAGhB,QAAA,IAAI,cAAc,GAAG,EAAE,KAAK,CAAC,EAAE;YAC7B,OAAO,CAAC,GAAG,CACT,CAAA,WAAA,EAAc,cAAc,CAAA,CAAA,EAAI,WAAW,CAAC,MAAM,CAAA,YAAA,CAAc,CACjE;QACH;;IAEF;AAEA,IAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,cAAc,CAAA,kBAAA,CAAoB,CAAC;AACtE,IAAA,OAAO,QAAQ;AACjB;;;;"}
|
package/lib/exports.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.cjs","sources":["../src/exports.ts"],"sourcesContent":["import { SourceFile, SyntaxKind } from 'ts-morph';\nimport type { ExportInfo } from './
|
|
1
|
+
{"version":3,"file":"exports.cjs","sources":["../src/exports.ts"],"sourcesContent":["import { SourceFile, SyntaxKind } from 'ts-morph';\nimport type { ExportInfo } from './schemas';\n\nexport const analyzeExports = (sourceFile: SourceFile) => {\n const exports: ExportInfo[] = [];\n\n // Export declarations (export ...)\n sourceFile.getExportDeclarations().forEach(exportDecl => {\n const moduleSpecifier = exportDecl.getModuleSpecifierValue();\n const exportText = exportDecl.getText();\n\n // Named exports\n const namedExports = exportDecl.getNamedExports();\n namedExports.forEach(namedExport => {\n exports.push({\n name: namedExport.getName(),\n kind: 'named',\n text: exportText,\n moduleSpecifier,\n });\n });\n\n // Namespace export (export * from '...')\n if (exportDecl.isNamespaceExport()) {\n exports.push({\n name: '*',\n kind: 'namespace',\n text: exportText,\n moduleSpecifier,\n });\n }\n });\n\n // Export assignments (export = ...)\n sourceFile.getExportAssignments().forEach(exportAssignment => {\n if (exportAssignment.isExportEquals()) {\n exports.push({\n name: 'default',\n kind: 'default',\n text: exportAssignment.getText(),\n });\n }\n });\n\n // Exported declarations (export function, export class, etc.)\n sourceFile.getExportedDeclarations().forEach((declarations, name) => {\n declarations.forEach(decl => {\n let declarationKind: ExportInfo['declarationKind'];\n\n if (decl.getKind() === SyntaxKind.FunctionDeclaration) {\n declarationKind = 'function';\n } else if (decl.getKind() === SyntaxKind.ClassDeclaration) {\n declarationKind = 'class';\n } else if (decl.getKind() === SyntaxKind.InterfaceDeclaration) {\n declarationKind = 'interface';\n } else if (decl.getKind() === SyntaxKind.TypeAliasDeclaration) {\n declarationKind = 'type';\n } else if (decl.getKind() === SyntaxKind.VariableDeclaration) {\n declarationKind = 'variable';\n } else if (decl.getKind() === SyntaxKind.EnumDeclaration) {\n declarationKind = 'enum';\n }\n\n exports.push({\n name,\n kind: name === 'default' ? 'default' : 'named',\n text: decl.getText(),\n declarationKind,\n });\n });\n });\n\n return exports;\n};\n"],"names":["SyntaxKind"],"mappings":";;;;AAGO,MAAM,cAAc,GAAG,CAAC,UAAsB,KAAI;IACvD,MAAM,OAAO,GAAiB,EAAE;;IAGhC,UAAU,CAAC,qBAAqB,EAAE,CAAC,OAAO,CAAC,UAAU,IAAG;AACtD,QAAA,MAAM,eAAe,GAAG,UAAU,CAAC,uBAAuB,EAAE;AAC5D,QAAA,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE;;AAGvC,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,eAAe,EAAE;AACjD,QAAA,YAAY,CAAC,OAAO,CAAC,WAAW,IAAG;YACjC,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE;AAC3B,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,IAAI,EAAE,UAAU;gBAChB,eAAe;AAChB,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;;AAGF,QAAA,IAAI,UAAU,CAAC,iBAAiB,EAAE,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,IAAI,EAAE,GAAG;AACT,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,IAAI,EAAE,UAAU;gBAChB,eAAe;AAChB,aAAA,CAAC;QACJ;AACF,IAAA,CAAC,CAAC;;IAGF,UAAU,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC,gBAAgB,IAAG;AAC3D,QAAA,IAAI,gBAAgB,CAAC,cAAc,EAAE,EAAE;YACrC,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE;AACjC,aAAA,CAAC;QACJ;AACF,IAAA,CAAC,CAAC;;IAGF,UAAU,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,IAAI,KAAI;AAClE,QAAA,YAAY,CAAC,OAAO,CAAC,IAAI,IAAG;AAC1B,YAAA,IAAI,eAA8C;YAElD,IAAI,IAAI,CAAC,OAAO,EAAE,KAAKA,kBAAU,CAAC,mBAAmB,EAAE;gBACrD,eAAe,GAAG,UAAU;YAC9B;iBAAO,IAAI,IAAI,CAAC,OAAO,EAAE,KAAKA,kBAAU,CAAC,gBAAgB,EAAE;gBACzD,eAAe,GAAG,OAAO;YAC3B;iBAAO,IAAI,IAAI,CAAC,OAAO,EAAE,KAAKA,kBAAU,CAAC,oBAAoB,EAAE;gBAC7D,eAAe,GAAG,WAAW;YAC/B;iBAAO,IAAI,IAAI,CAAC,OAAO,EAAE,KAAKA,kBAAU,CAAC,oBAAoB,EAAE;gBAC7D,eAAe,GAAG,MAAM;YAC1B;iBAAO,IAAI,IAAI,CAAC,OAAO,EAAE,KAAKA,kBAAU,CAAC,mBAAmB,EAAE;gBAC5D,eAAe,GAAG,UAAU;YAC9B;iBAAO,IAAI,IAAI,CAAC,OAAO,EAAE,KAAKA,kBAAU,CAAC,eAAe,EAAE;gBACxD,eAAe,GAAG,MAAM;YAC1B;YAEA,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI;gBACJ,IAAI,EAAE,IAAI,KAAK,SAAS,GAAG,SAAS,GAAG,OAAO;AAC9C,gBAAA,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;gBACpB,eAAe;AAChB,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,OAAO;AAChB;;;;"}
|
package/lib/exports.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { SourceFile } from 'ts-morph';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
export declare const analyzeExports: (sourceFile: SourceFile) => {
|
|
3
|
+
name: string;
|
|
4
|
+
kind: "default" | "named" | "namespace";
|
|
5
|
+
text?: string | undefined;
|
|
6
|
+
moduleSpecifier?: string | undefined;
|
|
7
|
+
declarationKind?: "function" | "type" | "class" | "interface" | "variable" | "const" | "let" | "enum" | undefined;
|
|
8
|
+
}[];
|
|
4
9
|
//# sourceMappingURL=exports.d.ts.map
|
package/lib/exports.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAc,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAc,MAAM,UAAU,CAAC;AAGlD,eAAO,MAAM,cAAc,GAAI,YAAY,UAAU;;;;;;GAsEpD,CAAC"}
|
package/lib/exports.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.js","sources":["../src/exports.ts"],"sourcesContent":["import { SourceFile, SyntaxKind } from 'ts-morph';\nimport type { ExportInfo } from './
|
|
1
|
+
{"version":3,"file":"exports.js","sources":["../src/exports.ts"],"sourcesContent":["import { SourceFile, SyntaxKind } from 'ts-morph';\nimport type { ExportInfo } from './schemas';\n\nexport const analyzeExports = (sourceFile: SourceFile) => {\n const exports: ExportInfo[] = [];\n\n // Export declarations (export ...)\n sourceFile.getExportDeclarations().forEach(exportDecl => {\n const moduleSpecifier = exportDecl.getModuleSpecifierValue();\n const exportText = exportDecl.getText();\n\n // Named exports\n const namedExports = exportDecl.getNamedExports();\n namedExports.forEach(namedExport => {\n exports.push({\n name: namedExport.getName(),\n kind: 'named',\n text: exportText,\n moduleSpecifier,\n });\n });\n\n // Namespace export (export * from '...')\n if (exportDecl.isNamespaceExport()) {\n exports.push({\n name: '*',\n kind: 'namespace',\n text: exportText,\n moduleSpecifier,\n });\n }\n });\n\n // Export assignments (export = ...)\n sourceFile.getExportAssignments().forEach(exportAssignment => {\n if (exportAssignment.isExportEquals()) {\n exports.push({\n name: 'default',\n kind: 'default',\n text: exportAssignment.getText(),\n });\n }\n });\n\n // Exported declarations (export function, export class, etc.)\n sourceFile.getExportedDeclarations().forEach((declarations, name) => {\n declarations.forEach(decl => {\n let declarationKind: ExportInfo['declarationKind'];\n\n if (decl.getKind() === SyntaxKind.FunctionDeclaration) {\n declarationKind = 'function';\n } else if (decl.getKind() === SyntaxKind.ClassDeclaration) {\n declarationKind = 'class';\n } else if (decl.getKind() === SyntaxKind.InterfaceDeclaration) {\n declarationKind = 'interface';\n } else if (decl.getKind() === SyntaxKind.TypeAliasDeclaration) {\n declarationKind = 'type';\n } else if (decl.getKind() === SyntaxKind.VariableDeclaration) {\n declarationKind = 'variable';\n } else if (decl.getKind() === SyntaxKind.EnumDeclaration) {\n declarationKind = 'enum';\n }\n\n exports.push({\n name,\n kind: name === 'default' ? 'default' : 'named',\n text: decl.getText(),\n declarationKind,\n });\n });\n });\n\n return exports;\n};\n"],"names":[],"mappings":";;AAGO,MAAM,cAAc,GAAG,CAAC,UAAsB,KAAI;IACvD,MAAM,OAAO,GAAiB,EAAE;;IAGhC,UAAU,CAAC,qBAAqB,EAAE,CAAC,OAAO,CAAC,UAAU,IAAG;AACtD,QAAA,MAAM,eAAe,GAAG,UAAU,CAAC,uBAAuB,EAAE;AAC5D,QAAA,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE;;AAGvC,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,eAAe,EAAE;AACjD,QAAA,YAAY,CAAC,OAAO,CAAC,WAAW,IAAG;YACjC,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE;AAC3B,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,IAAI,EAAE,UAAU;gBAChB,eAAe;AAChB,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;;AAGF,QAAA,IAAI,UAAU,CAAC,iBAAiB,EAAE,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,IAAI,EAAE,GAAG;AACT,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,IAAI,EAAE,UAAU;gBAChB,eAAe;AAChB,aAAA,CAAC;QACJ;AACF,IAAA,CAAC,CAAC;;IAGF,UAAU,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC,gBAAgB,IAAG;AAC3D,QAAA,IAAI,gBAAgB,CAAC,cAAc,EAAE,EAAE;YACrC,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE;AACjC,aAAA,CAAC;QACJ;AACF,IAAA,CAAC,CAAC;;IAGF,UAAU,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,IAAI,KAAI;AAClE,QAAA,YAAY,CAAC,OAAO,CAAC,IAAI,IAAG;AAC1B,YAAA,IAAI,eAA8C;YAElD,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,mBAAmB,EAAE;gBACrD,eAAe,GAAG,UAAU;YAC9B;iBAAO,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,gBAAgB,EAAE;gBACzD,eAAe,GAAG,OAAO;YAC3B;iBAAO,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,oBAAoB,EAAE;gBAC7D,eAAe,GAAG,WAAW;YAC/B;iBAAO,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,oBAAoB,EAAE;gBAC7D,eAAe,GAAG,MAAM;YAC1B;iBAAO,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,mBAAmB,EAAE;gBAC5D,eAAe,GAAG,UAAU;YAC9B;iBAAO,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,eAAe,EAAE;gBACxD,eAAe,GAAG,MAAM;YAC1B;YAEA,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI;gBACJ,IAAI,EAAE,IAAI,KAAK,SAAS,GAAG,SAAS,GAAG,OAAO;AAC9C,gBAAA,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;gBACpB,eAAe;AAChB,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,OAAO;AAChB;;;;"}
|
package/lib/functions/add.cjs
CHANGED
|
@@ -46,8 +46,8 @@ const add = (CODEBASE_ANALYSIS, ...files) => {
|
|
|
46
46
|
let file = edit(json);
|
|
47
47
|
if (!file)
|
|
48
48
|
return;
|
|
49
|
-
const path$1 = file.get(constants.PATH_PROPERTY);
|
|
50
49
|
const files = file.get(constants.FILES_PROPERTY);
|
|
50
|
+
const root = helpers.getFolderPath(file.get(constants.PATH_PROPERTY));
|
|
51
51
|
// Release resources
|
|
52
52
|
const additionals = [];
|
|
53
53
|
const pathsEntries = Object.entries(CODEBASE_ANALYSIS)
|
|
@@ -62,7 +62,7 @@ const add = (CODEBASE_ANALYSIS, ...files) => {
|
|
|
62
62
|
let success = 0;
|
|
63
63
|
const length = entries.size;
|
|
64
64
|
entries.forEach(([, fileAnalysis]) => {
|
|
65
|
-
const _path = helpers.writeFileAnalysis(fileAnalysis,
|
|
65
|
+
const _path = helpers.writeFileAnalysis(fileAnalysis, root);
|
|
66
66
|
if (_path) {
|
|
67
67
|
files.push(_path);
|
|
68
68
|
file?.set(constants.FILES_PROPERTY, files);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.cjs","sources":["../../src/functions/add.ts"],"sourcesContent":["import edit, { JsonEditor } from 'edit-json-file';\nimport { dirname, join, relative, resolve } from 'node:path';\nimport {\n FILES_PROPERTY,\n JSON_FILE_NAME,\n PATH_PROPERTY,\n} from '../constants';\nimport {\n consoleStars,\n transformModule,\n writeFileAnalysis,\n} from '../helpers';\nimport { CodebaseAnalysis } from '../schemas';\nimport type {
|
|
1
|
+
{"version":3,"file":"add.cjs","sources":["../../src/functions/add.ts"],"sourcesContent":["import edit, { JsonEditor } from 'edit-json-file';\nimport { dirname, join, relative, resolve } from 'node:path';\nimport {\n FILES_PROPERTY,\n JSON_FILE_NAME,\n PATH_PROPERTY,\n} from '../constants';\nimport {\n consoleStars,\n getFolderPath,\n transformModule,\n writeFileAnalysis,\n} from '../helpers';\nimport { CodebaseAnalysis, type FileAnalysis } from '../schemas';\nimport type { NOmit } from '../types';\n\nconst processFileAnalysis = (\n analysis: NOmit<FileAnalysis, 'exports'>,\n cwd: string,\n additionals: [string, NOmit<FileAnalysis, 'exports'>][],\n pathsEntries: [string, NOmit<FileAnalysis, 'exports'>][],\n files: string[],\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n) => {\n const relativePath = analysis.relativePath;\n\n const keys = Object.keys(CODEBASE_ANALYSIS);\n analysis.imports.forEach(({ moduleSpecifier }) => {\n const _path = relative(\n cwd,\n resolve(dirname(relativePath), moduleSpecifier),\n ).replaceAll('/', '.');\n\n const toAdd =\n CODEBASE_ANALYSIS[_path] ?? CODEBASE_ANALYSIS[`${_path}.index`];\n if (!toAdd) return;\n\n additionals.push([_path, toAdd]);\n\n const all = additionals\n .concat(pathsEntries)\n .map(([key]) => key)\n .concat(files);\n\n const imports = toAdd.imports.filter(({ moduleSpecifier }) => {\n const _path = transformModule({\n cwd,\n relativePath: toAdd.relativePath,\n moduleSpecifier,\n });\n\n const array = [_path, `${_path}.index`].filter(p =>\n keys.includes(p),\n );\n\n if (array.length < 1) return false;\n\n return array.every(p => !all.includes(p));\n });\n\n const toAdd2 = { ...toAdd, imports };\n const canRecurse = toAdd2.imports.length > 0;\n\n if (canRecurse) {\n processFileAnalysis(\n toAdd2,\n cwd,\n additionals,\n pathsEntries,\n files,\n CODEBASE_ANALYSIS,\n );\n }\n });\n};\n\nexport const add = (\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n ...files: string[]\n) => {\n const isEmpty = files.length === 0;\n if (isEmpty) return console.warn('No files specified for addition.');\n try {\n const cwd = process.cwd();\n const json = join(cwd, JSON_FILE_NAME);\n let file: JsonEditor | undefined = edit(json);\n\n if (!file) return;\n\n const files = file.get(FILES_PROPERTY) as string[];\n const root = getFolderPath(file.get(PATH_PROPERTY) as string);\n\n // Release resources\n\n const additionals: [string, NOmit<FileAnalysis, 'exports'>][] = [];\n\n const pathsEntries = Object.entries(CODEBASE_ANALYSIS)\n .filter(([key]) => files.some(p => key.startsWith(p)))\n .filter(([key]) => !files.includes(key));\n\n pathsEntries.forEach(([, analysis]) => {\n processFileAnalysis(\n analysis,\n cwd,\n additionals,\n pathsEntries,\n files,\n CODEBASE_ANALYSIS,\n );\n });\n\n const entries = new Set(\n pathsEntries.concat(additionals).filter(([, val]) => !!val),\n );\n\n consoleStars();\n console.log(`🔧 Création des fichiers (${entries.size} fichiers)...`);\n\n let success = 0;\n const length = entries.size;\n\n entries.forEach(([, fileAnalysis]) => {\n const _path = writeFileAnalysis(fileAnalysis, root);\n if (_path) {\n files.push(_path);\n file?.set(FILES_PROPERTY, files);\n success++;\n }\n });\n\n file.save();\n console.log(`✅ Fichiers créés! (${success}/${length})`);\n file = undefined;\n } catch {\n console.error(`❌ Erreur lors de la création des fichiers`);\n return false;\n }\n\n consoleStars();\n return true;\n};\n"],"names":["relative","resolve","dirname","transformModule","join","JSON_FILE_NAME","FILES_PROPERTY","getFolderPath","PATH_PROPERTY","consoleStars","writeFileAnalysis"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/functions/add.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/functions/add.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,gBAAgB,EAAqB,MAAM,YAAY,CAAC;AA+DjE,eAAO,MAAM,GAAG,GACd,mBAAmB,gBAAgB,EACnC,GAAG,OAAO,MAAM,EAAE,mBA8DnB,CAAC"}
|
package/lib/functions/add.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import edit from 'edit-json-file';
|
|
2
2
|
import { join, relative, resolve, dirname } from 'path';
|
|
3
|
-
import { JSON_FILE_NAME,
|
|
4
|
-
import { consoleStars, writeFileAnalysis, transformModule } from '../helpers.js';
|
|
3
|
+
import { JSON_FILE_NAME, FILES_PROPERTY, PATH_PROPERTY } from '../constants.js';
|
|
4
|
+
import { getFolderPath, consoleStars, writeFileAnalysis, transformModule } from '../helpers.js';
|
|
5
5
|
|
|
6
6
|
const processFileAnalysis = (analysis, cwd, additionals, pathsEntries, files, CODEBASE_ANALYSIS) => {
|
|
7
7
|
const relativePath = analysis.relativePath;
|
|
@@ -44,8 +44,8 @@ const add = (CODEBASE_ANALYSIS, ...files) => {
|
|
|
44
44
|
let file = edit(json);
|
|
45
45
|
if (!file)
|
|
46
46
|
return;
|
|
47
|
-
const path = file.get(PATH_PROPERTY);
|
|
48
47
|
const files = file.get(FILES_PROPERTY);
|
|
48
|
+
const root = getFolderPath(file.get(PATH_PROPERTY));
|
|
49
49
|
// Release resources
|
|
50
50
|
const additionals = [];
|
|
51
51
|
const pathsEntries = Object.entries(CODEBASE_ANALYSIS)
|
|
@@ -60,7 +60,7 @@ const add = (CODEBASE_ANALYSIS, ...files) => {
|
|
|
60
60
|
let success = 0;
|
|
61
61
|
const length = entries.size;
|
|
62
62
|
entries.forEach(([, fileAnalysis]) => {
|
|
63
|
-
const _path = writeFileAnalysis(fileAnalysis,
|
|
63
|
+
const _path = writeFileAnalysis(fileAnalysis, root);
|
|
64
64
|
if (_path) {
|
|
65
65
|
files.push(_path);
|
|
66
66
|
file?.set(FILES_PROPERTY, files);
|
package/lib/functions/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sources":["../../src/functions/add.ts"],"sourcesContent":["import edit, { JsonEditor } from 'edit-json-file';\nimport { dirname, join, relative, resolve } from 'node:path';\nimport {\n FILES_PROPERTY,\n JSON_FILE_NAME,\n PATH_PROPERTY,\n} from '../constants';\nimport {\n consoleStars,\n transformModule,\n writeFileAnalysis,\n} from '../helpers';\nimport { CodebaseAnalysis } from '../schemas';\nimport type {
|
|
1
|
+
{"version":3,"file":"add.js","sources":["../../src/functions/add.ts"],"sourcesContent":["import edit, { JsonEditor } from 'edit-json-file';\nimport { dirname, join, relative, resolve } from 'node:path';\nimport {\n FILES_PROPERTY,\n JSON_FILE_NAME,\n PATH_PROPERTY,\n} from '../constants';\nimport {\n consoleStars,\n getFolderPath,\n transformModule,\n writeFileAnalysis,\n} from '../helpers';\nimport { CodebaseAnalysis, type FileAnalysis } from '../schemas';\nimport type { NOmit } from '../types';\n\nconst processFileAnalysis = (\n analysis: NOmit<FileAnalysis, 'exports'>,\n cwd: string,\n additionals: [string, NOmit<FileAnalysis, 'exports'>][],\n pathsEntries: [string, NOmit<FileAnalysis, 'exports'>][],\n files: string[],\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n) => {\n const relativePath = analysis.relativePath;\n\n const keys = Object.keys(CODEBASE_ANALYSIS);\n analysis.imports.forEach(({ moduleSpecifier }) => {\n const _path = relative(\n cwd,\n resolve(dirname(relativePath), moduleSpecifier),\n ).replaceAll('/', '.');\n\n const toAdd =\n CODEBASE_ANALYSIS[_path] ?? CODEBASE_ANALYSIS[`${_path}.index`];\n if (!toAdd) return;\n\n additionals.push([_path, toAdd]);\n\n const all = additionals\n .concat(pathsEntries)\n .map(([key]) => key)\n .concat(files);\n\n const imports = toAdd.imports.filter(({ moduleSpecifier }) => {\n const _path = transformModule({\n cwd,\n relativePath: toAdd.relativePath,\n moduleSpecifier,\n });\n\n const array = [_path, `${_path}.index`].filter(p =>\n keys.includes(p),\n );\n\n if (array.length < 1) return false;\n\n return array.every(p => !all.includes(p));\n });\n\n const toAdd2 = { ...toAdd, imports };\n const canRecurse = toAdd2.imports.length > 0;\n\n if (canRecurse) {\n processFileAnalysis(\n toAdd2,\n cwd,\n additionals,\n pathsEntries,\n files,\n CODEBASE_ANALYSIS,\n );\n }\n });\n};\n\nexport const add = (\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n ...files: string[]\n) => {\n const isEmpty = files.length === 0;\n if (isEmpty) return console.warn('No files specified for addition.');\n try {\n const cwd = process.cwd();\n const json = join(cwd, JSON_FILE_NAME);\n let file: JsonEditor | undefined = edit(json);\n\n if (!file) return;\n\n const files = file.get(FILES_PROPERTY) as string[];\n const root = getFolderPath(file.get(PATH_PROPERTY) as string);\n\n // Release resources\n\n const additionals: [string, NOmit<FileAnalysis, 'exports'>][] = [];\n\n const pathsEntries = Object.entries(CODEBASE_ANALYSIS)\n .filter(([key]) => files.some(p => key.startsWith(p)))\n .filter(([key]) => !files.includes(key));\n\n pathsEntries.forEach(([, analysis]) => {\n processFileAnalysis(\n analysis,\n cwd,\n additionals,\n pathsEntries,\n files,\n CODEBASE_ANALYSIS,\n );\n });\n\n const entries = new Set(\n pathsEntries.concat(additionals).filter(([, val]) => !!val),\n );\n\n consoleStars();\n console.log(`🔧 Création des fichiers (${entries.size} fichiers)...`);\n\n let success = 0;\n const length = entries.size;\n\n entries.forEach(([, fileAnalysis]) => {\n const _path = writeFileAnalysis(fileAnalysis, root);\n if (_path) {\n files.push(_path);\n file?.set(FILES_PROPERTY, files);\n success++;\n }\n });\n\n file.save();\n console.log(`✅ Fichiers créés! (${success}/${length})`);\n file = undefined;\n } catch {\n console.error(`❌ Erreur lors de la création des fichiers`);\n return false;\n }\n\n consoleStars();\n return true;\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ const transformJSON = (data) => {
|
|
|
11
11
|
let files = 0;
|
|
12
12
|
const entries = Object.entries(data).map(([key, { imports: _imports, relativePath, text, exports: _exports },]) => {
|
|
13
13
|
imports += _imports.length;
|
|
14
|
-
exports += _exports
|
|
14
|
+
exports += _exports?.length ?? 0;
|
|
15
15
|
files++;
|
|
16
16
|
const value = {
|
|
17
17
|
imports: _imports,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.cjs","sources":["../../src/functions/generate.ts"],"sourcesContent":["import { writeFileSync } from 'node:fs';\nimport { relative } from 'node:path';\nimport { CODEBASE_FILE, SRC_DIR } from 'src/constants';\nimport { analyze } from '../analyse';\nimport { CodebaseAnalysis } from '../
|
|
1
|
+
{"version":3,"file":"generate.cjs","sources":["../../src/functions/generate.ts"],"sourcesContent":["import { writeFileSync } from 'node:fs';\nimport { relative } from 'node:path';\nimport { CODEBASE_FILE, SRC_DIR } from 'src/constants';\nimport { analyze } from '../analyse';\nimport { CodebaseAnalysis } from '../schemas';\n\nexport const transformJSON = (data: CodebaseAnalysis) => {\n let imports = 0;\n let exports = 0;\n let files = 0;\n\n const entries = Object.entries(data).map(\n ([\n key,\n { imports: _imports, relativePath, text, exports: _exports },\n ]) => {\n imports += _imports.length;\n exports += _exports?.length ?? 0;\n files++;\n\n const value = {\n imports: _imports,\n relativePath,\n text,\n };\n return [key, value] as const;\n },\n );\n\n const CODEBASE_ANALYSIS = Object.fromEntries(entries);\n\n const STATS = {\n files,\n imports,\n exports,\n };\n\n return {\n STATS,\n CODEBASE_ANALYSIS,\n };\n};\n\nexport type GenerateOptions = {\n output?: string;\n excludes?: string[] | string;\n src?: string;\n};\n\n/**\n * Fonction principale d'exécution\n */\nexport const generate = ({\n output = CODEBASE_FILE,\n excludes,\n src = SRC_DIR,\n}: GenerateOptions = {}) => {\n const _output = output.endsWith('codebase.json')\n ? output\n : `${output}.codebase.json`;\n\n try {\n const analysis = analyze({ src, excludes });\n const transformed = transformJSON(analysis);\n\n const json = JSON.stringify(transformed, null, 2);\n writeFileSync(_output, json);\n\n console.log(\n `📁 Analyse sauvegardée dans: ${relative(process.cwd(), _output)}`,\n );\n console.log(`📊 Statistiques:`);\n console.log(` - Fichiers analysés: ${transformed.STATS.files}`);\n console.log(` - Total imports: ${transformed.STATS.imports}`);\n console.log(` - Total exports: ${transformed.STATS.exports}`);\n } catch (error) {\n console.error(\"❌ Erreur lors de l'analyse du codebase:\", error);\n process.exit(1);\n }\n\n return true;\n};\n"],"names":["CODEBASE_FILE","SRC_DIR","analyze","writeFileSync","relative"],"mappings":";;;;;;;AAMO,MAAM,aAAa,GAAG,CAAC,IAAsB,KAAI;IACtD,IAAI,OAAO,GAAG,CAAC;IACf,IAAI,OAAO,GAAG,CAAC;IACf,IAAI,KAAK,GAAG,CAAC;AAEb,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CACtC,CAAC,CACC,GAAG,EACH,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAC7D,KAAI;AACH,QAAA,OAAO,IAAI,QAAQ,CAAC,MAAM;AAC1B,QAAA,OAAO,IAAI,QAAQ,EAAE,MAAM,IAAI,CAAC;AAChC,QAAA,KAAK,EAAE;AAEP,QAAA,MAAM,KAAK,GAAG;AACZ,YAAA,OAAO,EAAE,QAAQ;YACjB,YAAY;YACZ,IAAI;SACL;AACD,QAAA,OAAO,CAAC,GAAG,EAAE,KAAK,CAAU;AAC9B,IAAA,CAAC,CACF;IAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;AAErD,IAAA,MAAM,KAAK,GAAG;QACZ,KAAK;QACL,OAAO;QACP,OAAO;KACR;IAED,OAAO;QACL,KAAK;QACL,iBAAiB;KAClB;AACH;AAQA;;AAEG;AACI,MAAM,QAAQ,GAAG,CAAC,EACvB,MAAM,GAAGA,uBAAa,EACtB,QAAQ,EACR,GAAG,GAAGC,iBAAO,GAAA,GACM,EAAE,KAAI;AACzB,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe;AAC7C,UAAE;AACF,UAAE,CAAA,EAAG,MAAM,CAAA,cAAA,CAAgB;AAE7B,IAAA,IAAI;QACF,MAAM,QAAQ,GAAGC,eAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC3C,QAAA,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC;AAE3C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,QAAAC,gBAAa,CAAC,OAAO,EAAE,IAAI,CAAC;AAE5B,QAAA,OAAO,CAAC,GAAG,CACT,CAAA,6BAAA,EAAgCC,aAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAA,CAAE,CACnE;AACD,QAAA,OAAO,CAAC,GAAG,CAAC,CAAA,gBAAA,CAAkB,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,CAAA,wBAAA,EAA2B,WAAW,CAAC,KAAK,CAAC,KAAK,CAAA,CAAE,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,CAAA,oBAAA,EAAuB,WAAW,CAAC,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,CAAA,oBAAA,EAAuB,WAAW,CAAC,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC;IACjE;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC;AAC/D,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB;AAEA,IAAA,OAAO,IAAI;AACb;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CodebaseAnalysis } from '../
|
|
1
|
+
import { CodebaseAnalysis } from '../schemas';
|
|
2
2
|
export declare const transformJSON: (data: CodebaseAnalysis) => {
|
|
3
3
|
STATS: {
|
|
4
4
|
files: number;
|
|
@@ -7,7 +7,13 @@ export declare const transformJSON: (data: CodebaseAnalysis) => {
|
|
|
7
7
|
};
|
|
8
8
|
CODEBASE_ANALYSIS: {
|
|
9
9
|
[k: string]: {
|
|
10
|
-
imports:
|
|
10
|
+
imports: {
|
|
11
|
+
moduleSpecifier: string;
|
|
12
|
+
kind: "default" | "named" | "namespace" | "side-effect";
|
|
13
|
+
namedImports?: string[] | undefined;
|
|
14
|
+
default?: string | undefined;
|
|
15
|
+
isDynamic?: boolean | undefined;
|
|
16
|
+
}[];
|
|
11
17
|
relativePath: string;
|
|
12
18
|
text: string;
|
|
13
19
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/functions/generate.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/functions/generate.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,aAAa,GAAI,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;CAmCnD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,6BAItB,eAAoB,YAyBtB,CAAC"}
|
|
@@ -9,7 +9,7 @@ const transformJSON = (data) => {
|
|
|
9
9
|
let files = 0;
|
|
10
10
|
const entries = Object.entries(data).map(([key, { imports: _imports, relativePath, text, exports: _exports },]) => {
|
|
11
11
|
imports += _imports.length;
|
|
12
|
-
exports += _exports
|
|
12
|
+
exports += _exports?.length ?? 0;
|
|
13
13
|
files++;
|
|
14
14
|
const value = {
|
|
15
15
|
imports: _imports,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sources":["../../src/functions/generate.ts"],"sourcesContent":["import { writeFileSync } from 'node:fs';\nimport { relative } from 'node:path';\nimport { CODEBASE_FILE, SRC_DIR } from 'src/constants';\nimport { analyze } from '../analyse';\nimport { CodebaseAnalysis } from '../
|
|
1
|
+
{"version":3,"file":"generate.js","sources":["../../src/functions/generate.ts"],"sourcesContent":["import { writeFileSync } from 'node:fs';\nimport { relative } from 'node:path';\nimport { CODEBASE_FILE, SRC_DIR } from 'src/constants';\nimport { analyze } from '../analyse';\nimport { CodebaseAnalysis } from '../schemas';\n\nexport const transformJSON = (data: CodebaseAnalysis) => {\n let imports = 0;\n let exports = 0;\n let files = 0;\n\n const entries = Object.entries(data).map(\n ([\n key,\n { imports: _imports, relativePath, text, exports: _exports },\n ]) => {\n imports += _imports.length;\n exports += _exports?.length ?? 0;\n files++;\n\n const value = {\n imports: _imports,\n relativePath,\n text,\n };\n return [key, value] as const;\n },\n );\n\n const CODEBASE_ANALYSIS = Object.fromEntries(entries);\n\n const STATS = {\n files,\n imports,\n exports,\n };\n\n return {\n STATS,\n CODEBASE_ANALYSIS,\n };\n};\n\nexport type GenerateOptions = {\n output?: string;\n excludes?: string[] | string;\n src?: string;\n};\n\n/**\n * Fonction principale d'exécution\n */\nexport const generate = ({\n output = CODEBASE_FILE,\n excludes,\n src = SRC_DIR,\n}: GenerateOptions = {}) => {\n const _output = output.endsWith('codebase.json')\n ? output\n : `${output}.codebase.json`;\n\n try {\n const analysis = analyze({ src, excludes });\n const transformed = transformJSON(analysis);\n\n const json = JSON.stringify(transformed, null, 2);\n writeFileSync(_output, json);\n\n console.log(\n `📁 Analyse sauvegardée dans: ${relative(process.cwd(), _output)}`,\n );\n console.log(`📊 Statistiques:`);\n console.log(` - Fichiers analysés: ${transformed.STATS.files}`);\n console.log(` - Total imports: ${transformed.STATS.imports}`);\n console.log(` - Total exports: ${transformed.STATS.exports}`);\n } catch (error) {\n console.error(\"❌ Erreur lors de l'analyse du codebase:\", error);\n process.exit(1);\n }\n\n return true;\n};\n"],"names":[],"mappings":";;;;;AAMO,MAAM,aAAa,GAAG,CAAC,IAAsB,KAAI;IACtD,IAAI,OAAO,GAAG,CAAC;IACf,IAAI,OAAO,GAAG,CAAC;IACf,IAAI,KAAK,GAAG,CAAC;AAEb,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CACtC,CAAC,CACC,GAAG,EACH,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAC7D,KAAI;AACH,QAAA,OAAO,IAAI,QAAQ,CAAC,MAAM;AAC1B,QAAA,OAAO,IAAI,QAAQ,EAAE,MAAM,IAAI,CAAC;AAChC,QAAA,KAAK,EAAE;AAEP,QAAA,MAAM,KAAK,GAAG;AACZ,YAAA,OAAO,EAAE,QAAQ;YACjB,YAAY;YACZ,IAAI;SACL;AACD,QAAA,OAAO,CAAC,GAAG,EAAE,KAAK,CAAU;AAC9B,IAAA,CAAC,CACF;IAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;AAErD,IAAA,MAAM,KAAK,GAAG;QACZ,KAAK;QACL,OAAO;QACP,OAAO;KACR;IAED,OAAO;QACL,KAAK;QACL,iBAAiB;KAClB;AACH;AAQA;;AAEG;AACI,MAAM,QAAQ,GAAG,CAAC,EACvB,MAAM,GAAG,aAAa,EACtB,QAAQ,EACR,GAAG,GAAG,OAAO,GAAA,GACM,EAAE,KAAI;AACzB,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe;AAC7C,UAAE;AACF,UAAE,CAAA,EAAG,MAAM,CAAA,cAAA,CAAgB;AAE7B,IAAA,IAAI;QACF,MAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC3C,QAAA,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC;AAE3C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,QAAA,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC;AAE5B,QAAA,OAAO,CAAC,GAAG,CACT,CAAA,6BAAA,EAAgC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAA,CAAE,CACnE;AACD,QAAA,OAAO,CAAC,GAAG,CAAC,CAAA,gBAAA,CAAkB,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,CAAA,wBAAA,EAA2B,WAAW,CAAC,KAAK,CAAC,KAAK,CAAA,CAAE,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,CAAA,oBAAA,EAAuB,WAAW,CAAC,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,CAAA,oBAAA,EAAuB,WAAW,CAAC,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC;IACjE;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC;AAC/D,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB;AAEA,IAAA,OAAO,IAAI;AACb;;;;"}
|
package/lib/functions/init.cjs
CHANGED
|
@@ -25,8 +25,7 @@ const init = (CODEBASE_ANALYSIS, { root, json }) => {
|
|
|
25
25
|
const configExists = fs.existsSync(configFile);
|
|
26
26
|
if (configExists)
|
|
27
27
|
return true;
|
|
28
|
-
const
|
|
29
|
-
const folderPath = srcExists ? path.join(cwd, 'src', root) : path.join(cwd, root);
|
|
28
|
+
const folderPath = helpers.getFolderPath(root);
|
|
30
29
|
// 1. Créer le dossier
|
|
31
30
|
try {
|
|
32
31
|
fs.mkdirSync(folderPath, { recursive: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.cjs","sources":["../../src/functions/init.ts"],"sourcesContent":["import {\n existsSync,\n mkdirSync,\n readFileSync,\n writeFileSync,\n} from 'node:fs';\nimport { join } from 'node:path';\nimport { PATH_KEY, PROPERTIES } from '../constants';\nimport { writeFileAnalysis } from '../helpers';\nimport { CodebaseAnalysis } from '../schemas';\n\nexport interface InitOptions {\n /**\n * Emplacement personnalisé pour le dossier .bemedev\n * Par défaut: 'src/.bemedev' si src existe, sinon '.bemedev' à la racine\n */\n root: string;\n json: string;\n}\n\nexport const createTypesStructure = (\n folderPath: string,\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n) => {\n const entries = Object.entries(CODEBASE_ANALYSIS).filter(([key]) => {\n return key.endsWith('types') || key.endsWith('constants');\n });\n\n const PATHS: string[] = [];\n\n console.log(\n `🔧 Création de la structure de types (${entries.length} fichiers)...`,\n );\n\n for (const [, fileAnalysis] of entries) {\n const file = writeFileAnalysis(fileAnalysis, folderPath);\n if (file) PATHS.push(file);\n }\n\n console.log(`✅ Structure de types créée avec succès!`);\n return PATHS;\n};\n\nexport const init = (\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n { root, json }: InitOptions,\n) => {\n const cwd = process.cwd();\n const configFile = join(cwd, json);\n const configExists = existsSync(configFile);\n\n if (configExists) return true;\n const
|
|
1
|
+
{"version":3,"file":"init.cjs","sources":["../../src/functions/init.ts"],"sourcesContent":["import {\n existsSync,\n mkdirSync,\n readFileSync,\n writeFileSync,\n} from 'node:fs';\nimport { join } from 'node:path';\nimport { PATH_KEY, PROPERTIES } from '../constants';\nimport { getFolderPath, writeFileAnalysis } from '../helpers';\nimport { CodebaseAnalysis } from '../schemas';\n\nexport interface InitOptions {\n /**\n * Emplacement personnalisé pour le dossier .bemedev\n * Par défaut: 'src/.bemedev' si src existe, sinon '.bemedev' à la racine\n */\n root: string;\n json: string;\n}\n\nexport const createTypesStructure = (\n folderPath: string,\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n) => {\n const entries = Object.entries(CODEBASE_ANALYSIS).filter(([key]) => {\n return key.endsWith('types') || key.endsWith('constants');\n });\n\n const PATHS: string[] = [];\n\n console.log(\n `🔧 Création de la structure de types (${entries.length} fichiers)...`,\n );\n\n for (const [, fileAnalysis] of entries) {\n const file = writeFileAnalysis(fileAnalysis, folderPath);\n if (file) PATHS.push(file);\n }\n\n console.log(`✅ Structure de types créée avec succès!`);\n return PATHS;\n};\n\nexport const init = (\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n { root, json }: InitOptions,\n) => {\n const cwd = process.cwd();\n const configFile = join(cwd, json);\n const configExists = existsSync(configFile);\n\n if (configExists) return true;\n const folderPath = getFolderPath(root);\n\n // 1. Créer le dossier\n try {\n mkdirSync(folderPath, { recursive: true });\n console.log(`✅ Dossier .bemedev créé dans: ${root}`);\n } catch (error) {\n console.error(\n `❌ Erreur lors de la création du dossier .bemedev:`,\n error,\n );\n return false;\n }\n\n let files: string[] = [];\n // 1.5. Créer la structure des fichiers types\n try {\n files = createTypesStructure(folderPath, CODEBASE_ANALYSIS);\n } catch {\n console.error(\n `❌ Erreur lors de la création de la structure de types:`,\n );\n return false;\n }\n\n // 2. Mettre à jour le tsconfig.json\n const tsconfigPath = join(cwd, 'tsconfig.json');\n\n if (existsSync(tsconfigPath)) {\n try {\n const tsconfigContent = readFileSync(tsconfigPath, 'utf8');\n const tsconfig = JSON.parse(tsconfigContent);\n\n // Initialiser compilerOptions et paths si ils n'existent pas\n if (!tsconfig.compilerOptions) {\n tsconfig.compilerOptions = {};\n }\n\n if (!tsconfig.compilerOptions.paths) {\n tsconfig.compilerOptions.paths = {};\n }\n\n // Ajouter le path #bemedev/*\n let relativePath = root;\n const baseUrl = tsconfig.compilerOptions.baseUrl;\n\n if (typeof baseUrl === 'string') {\n // Si baseUrl est défini, calculer le chemin relatif par rapport à baseUrl\n\n relativePath = join(baseUrl, relativePath);\n } else {\n // Si baseUrl n'est pas défini, utiliser le chemin absolu\n tsconfig.compilerOptions.baseUrl = '.';\n }\n\n tsconfig.compilerOptions.paths[PATH_KEY] = [`${relativePath}/*`];\n\n writeFileSync(\n tsconfigPath,\n JSON.stringify(tsconfig, null, 2),\n 'utf8',\n );\n console.log(`✅ Path #bemedev/* ajouté au tsconfig.json`);\n } catch (error) {\n console.error(\n `❌ Erreur lors de la mise à jour du tsconfig.json:`,\n error,\n );\n return false;\n }\n } else {\n console.warn(`⚠️ Fichier tsconfig.json introuvable, path non ajouté`);\n }\n\n // 3. Créer le fichier .bemedev.json à la racine\n\n const config = {\n version: '1.0.0',\n [PROPERTIES.PATH]: root,\n [PROPERTIES.FILES]: files,\n };\n\n try {\n writeFileSync(configFile, JSON.stringify(config, null, 2), 'utf8');\n console.log(`✅ Fichier .bemedev.json créé à la racine du projet`);\n } catch (error) {\n console.error(\n `❌ Erreur lors de la création du fichier .bemedev.json:`,\n error,\n );\n return false;\n }\n\n console.log(`🎉 Initialisation de bemedev terminée avec succès!`);\n return true;\n};\n"],"names":["writeFileAnalysis","join","existsSync","getFolderPath","mkdirSync","readFileSync","PATH_KEY","writeFileSync","PROPERTIES"],"mappings":";;;;;;;MAoBa,oBAAoB,GAAG,CAClC,UAAkB,EAClB,iBAAmC,KACjC;AACF,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAI;AACjE,QAAA,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC3D,IAAA,CAAC,CAAC;IAEF,MAAM,KAAK,GAAa,EAAE;IAE1B,OAAO,CAAC,GAAG,CACT,CAAA,sCAAA,EAAyC,OAAO,CAAC,MAAM,CAAA,aAAA,CAAe,CACvE;IAED,KAAK,MAAM,GAAG,YAAY,CAAC,IAAI,OAAO,EAAE;QACtC,MAAM,IAAI,GAAGA,yBAAiB,CAAC,YAAY,EAAE,UAAU,CAAC;AACxD,QAAA,IAAI,IAAI;AAAE,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B;AAEA,IAAA,OAAO,CAAC,GAAG,CAAC,CAAA,uCAAA,CAAyC,CAAC;AACtD,IAAA,OAAO,KAAK;AACd;AAEO,MAAM,IAAI,GAAG,CAClB,iBAAmC,EACnC,EAAE,IAAI,EAAE,IAAI,EAAe,KACzB;AACF,IAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACzB,MAAM,UAAU,GAAGC,SAAI,CAAC,GAAG,EAAE,IAAI,CAAC;AAClC,IAAA,MAAM,YAAY,GAAGC,aAAU,CAAC,UAAU,CAAC;AAE3C,IAAA,IAAI,YAAY;AAAE,QAAA,OAAO,IAAI;AAC7B,IAAA,MAAM,UAAU,GAAGC,qBAAa,CAAC,IAAI,CAAC;;AAGtC,IAAA,IAAI;QACFC,YAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC1C,QAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,CAAA,CAAE,CAAC;IACtD;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,CAAC,KAAK,CACX,mDAAmD,EACnD,KAAK,CACN;AACD,QAAA,OAAO,KAAK;IACd;IAEA,IAAI,KAAK,GAAa,EAAE;;AAExB,IAAA,IAAI;AACF,QAAA,KAAK,GAAG,oBAAoB,CAAC,UAAU,EAAE,iBAAiB,CAAC;IAC7D;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,CAAC,KAAK,CACX,CAAA,sDAAA,CAAwD,CACzD;AACD,QAAA,OAAO,KAAK;IACd;;IAGA,MAAM,YAAY,GAAGH,SAAI,CAAC,GAAG,EAAE,eAAe,CAAC;AAE/C,IAAA,IAAIC,aAAU,CAAC,YAAY,CAAC,EAAE;AAC5B,QAAA,IAAI;YACF,MAAM,eAAe,GAAGG,eAAY,CAAC,YAAY,EAAE,MAAM,CAAC;YAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;;AAG5C,YAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;AAC7B,gBAAA,QAAQ,CAAC,eAAe,GAAG,EAAE;YAC/B;AAEA,YAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE;AACnC,gBAAA,QAAQ,CAAC,eAAe,CAAC,KAAK,GAAG,EAAE;YACrC;;YAGA,IAAI,YAAY,GAAG,IAAI;AACvB,YAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC,OAAO;AAEhD,YAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;;AAG/B,gBAAA,YAAY,GAAGJ,SAAI,CAAC,OAAO,EAAE,YAAY,CAAC;YAC5C;iBAAO;;AAEL,gBAAA,QAAQ,CAAC,eAAe,CAAC,OAAO,GAAG,GAAG;YACxC;AAEA,YAAA,QAAQ,CAAC,eAAe,CAAC,KAAK,CAACK,kBAAQ,CAAC,GAAG,CAAC,CAAA,EAAG,YAAY,CAAA,EAAA,CAAI,CAAC;AAEhE,YAAAC,gBAAa,CACX,YAAY,EACZ,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EACjC,MAAM,CACP;AACD,YAAA,OAAO,CAAC,GAAG,CAAC,CAAA,yCAAA,CAA2C,CAAC;QAC1D;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CACX,mDAAmD,EACnD,KAAK,CACN;AACD,YAAA,OAAO,KAAK;QACd;IACF;SAAO;AACL,QAAA,OAAO,CAAC,IAAI,CAAC,CAAA,qDAAA,CAAuD,CAAC;IACvE;;AAIA,IAAA,MAAM,MAAM,GAAG;AACb,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,CAACC,oBAAU,CAAC,IAAI,GAAG,IAAI;AACvB,QAAA,CAACA,oBAAU,CAAC,KAAK,GAAG,KAAK;KAC1B;AAED,IAAA,IAAI;AACF,QAAAD,gBAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC;AAClE,QAAA,OAAO,CAAC,GAAG,CAAC,CAAA,kDAAA,CAAoD,CAAC;IACnE;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,CAAC,KAAK,CACX,wDAAwD,EACxD,KAAK,CACN;AACD,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,OAAO,CAAC,GAAG,CAAC,CAAA,kDAAA,CAAoD,CAAC;AACjE,IAAA,OAAO,IAAI;AACb;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/functions/init.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,oBAAoB,GAC/B,YAAY,MAAM,EAClB,mBAAmB,gBAAgB,aAmBpC,CAAC;AAEF,eAAO,MAAM,IAAI,GACf,mBAAmB,gBAAgB,EACnC,gBAAgB,WAAW,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/functions/init.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,oBAAoB,GAC/B,YAAY,MAAM,EAClB,mBAAmB,gBAAgB,aAmBpC,CAAC;AAEF,eAAO,MAAM,IAAI,GACf,mBAAmB,gBAAgB,EACnC,gBAAgB,WAAW,YAsG5B,CAAC"}
|
package/lib/functions/init.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
2
2
|
import { join } from 'path';
|
|
3
3
|
import { PATH_KEY, PROPERTIES } from '../constants.js';
|
|
4
|
-
import { writeFileAnalysis } from '../helpers.js';
|
|
4
|
+
import { writeFileAnalysis, getFolderPath } from '../helpers.js';
|
|
5
5
|
|
|
6
6
|
const createTypesStructure = (folderPath, CODEBASE_ANALYSIS) => {
|
|
7
7
|
const entries = Object.entries(CODEBASE_ANALYSIS).filter(([key]) => {
|
|
@@ -23,8 +23,7 @@ const init = (CODEBASE_ANALYSIS, { root, json }) => {
|
|
|
23
23
|
const configExists = existsSync(configFile);
|
|
24
24
|
if (configExists)
|
|
25
25
|
return true;
|
|
26
|
-
const
|
|
27
|
-
const folderPath = srcExists ? join(cwd, 'src', root) : join(cwd, root);
|
|
26
|
+
const folderPath = getFolderPath(root);
|
|
28
27
|
// 1. Créer le dossier
|
|
29
28
|
try {
|
|
30
29
|
mkdirSync(folderPath, { recursive: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sources":["../../src/functions/init.ts"],"sourcesContent":["import {\n existsSync,\n mkdirSync,\n readFileSync,\n writeFileSync,\n} from 'node:fs';\nimport { join } from 'node:path';\nimport { PATH_KEY, PROPERTIES } from '../constants';\nimport { writeFileAnalysis } from '../helpers';\nimport { CodebaseAnalysis } from '../schemas';\n\nexport interface InitOptions {\n /**\n * Emplacement personnalisé pour le dossier .bemedev\n * Par défaut: 'src/.bemedev' si src existe, sinon '.bemedev' à la racine\n */\n root: string;\n json: string;\n}\n\nexport const createTypesStructure = (\n folderPath: string,\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n) => {\n const entries = Object.entries(CODEBASE_ANALYSIS).filter(([key]) => {\n return key.endsWith('types') || key.endsWith('constants');\n });\n\n const PATHS: string[] = [];\n\n console.log(\n `🔧 Création de la structure de types (${entries.length} fichiers)...`,\n );\n\n for (const [, fileAnalysis] of entries) {\n const file = writeFileAnalysis(fileAnalysis, folderPath);\n if (file) PATHS.push(file);\n }\n\n console.log(`✅ Structure de types créée avec succès!`);\n return PATHS;\n};\n\nexport const init = (\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n { root, json }: InitOptions,\n) => {\n const cwd = process.cwd();\n const configFile = join(cwd, json);\n const configExists = existsSync(configFile);\n\n if (configExists) return true;\n const
|
|
1
|
+
{"version":3,"file":"init.js","sources":["../../src/functions/init.ts"],"sourcesContent":["import {\n existsSync,\n mkdirSync,\n readFileSync,\n writeFileSync,\n} from 'node:fs';\nimport { join } from 'node:path';\nimport { PATH_KEY, PROPERTIES } from '../constants';\nimport { getFolderPath, writeFileAnalysis } from '../helpers';\nimport { CodebaseAnalysis } from '../schemas';\n\nexport interface InitOptions {\n /**\n * Emplacement personnalisé pour le dossier .bemedev\n * Par défaut: 'src/.bemedev' si src existe, sinon '.bemedev' à la racine\n */\n root: string;\n json: string;\n}\n\nexport const createTypesStructure = (\n folderPath: string,\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n) => {\n const entries = Object.entries(CODEBASE_ANALYSIS).filter(([key]) => {\n return key.endsWith('types') || key.endsWith('constants');\n });\n\n const PATHS: string[] = [];\n\n console.log(\n `🔧 Création de la structure de types (${entries.length} fichiers)...`,\n );\n\n for (const [, fileAnalysis] of entries) {\n const file = writeFileAnalysis(fileAnalysis, folderPath);\n if (file) PATHS.push(file);\n }\n\n console.log(`✅ Structure de types créée avec succès!`);\n return PATHS;\n};\n\nexport const init = (\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n { root, json }: InitOptions,\n) => {\n const cwd = process.cwd();\n const configFile = join(cwd, json);\n const configExists = existsSync(configFile);\n\n if (configExists) return true;\n const folderPath = getFolderPath(root);\n\n // 1. Créer le dossier\n try {\n mkdirSync(folderPath, { recursive: true });\n console.log(`✅ Dossier .bemedev créé dans: ${root}`);\n } catch (error) {\n console.error(\n `❌ Erreur lors de la création du dossier .bemedev:`,\n error,\n );\n return false;\n }\n\n let files: string[] = [];\n // 1.5. Créer la structure des fichiers types\n try {\n files = createTypesStructure(folderPath, CODEBASE_ANALYSIS);\n } catch {\n console.error(\n `❌ Erreur lors de la création de la structure de types:`,\n );\n return false;\n }\n\n // 2. Mettre à jour le tsconfig.json\n const tsconfigPath = join(cwd, 'tsconfig.json');\n\n if (existsSync(tsconfigPath)) {\n try {\n const tsconfigContent = readFileSync(tsconfigPath, 'utf8');\n const tsconfig = JSON.parse(tsconfigContent);\n\n // Initialiser compilerOptions et paths si ils n'existent pas\n if (!tsconfig.compilerOptions) {\n tsconfig.compilerOptions = {};\n }\n\n if (!tsconfig.compilerOptions.paths) {\n tsconfig.compilerOptions.paths = {};\n }\n\n // Ajouter le path #bemedev/*\n let relativePath = root;\n const baseUrl = tsconfig.compilerOptions.baseUrl;\n\n if (typeof baseUrl === 'string') {\n // Si baseUrl est défini, calculer le chemin relatif par rapport à baseUrl\n\n relativePath = join(baseUrl, relativePath);\n } else {\n // Si baseUrl n'est pas défini, utiliser le chemin absolu\n tsconfig.compilerOptions.baseUrl = '.';\n }\n\n tsconfig.compilerOptions.paths[PATH_KEY] = [`${relativePath}/*`];\n\n writeFileSync(\n tsconfigPath,\n JSON.stringify(tsconfig, null, 2),\n 'utf8',\n );\n console.log(`✅ Path #bemedev/* ajouté au tsconfig.json`);\n } catch (error) {\n console.error(\n `❌ Erreur lors de la mise à jour du tsconfig.json:`,\n error,\n );\n return false;\n }\n } else {\n console.warn(`⚠️ Fichier tsconfig.json introuvable, path non ajouté`);\n }\n\n // 3. Créer le fichier .bemedev.json à la racine\n\n const config = {\n version: '1.0.0',\n [PROPERTIES.PATH]: root,\n [PROPERTIES.FILES]: files,\n };\n\n try {\n writeFileSync(configFile, JSON.stringify(config, null, 2), 'utf8');\n console.log(`✅ Fichier .bemedev.json créé à la racine du projet`);\n } catch (error) {\n console.error(\n `❌ Erreur lors de la création du fichier .bemedev.json:`,\n error,\n );\n return false;\n }\n\n console.log(`🎉 Initialisation de bemedev terminée avec succès!`);\n return true;\n};\n"],"names":[],"mappings":"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"}
|
package/lib/functions/remove.cjs
CHANGED
|
@@ -36,7 +36,7 @@ const remove = (CODEBASE_ANALYSIS, ...paths) => {
|
|
|
36
36
|
let file = edit(json);
|
|
37
37
|
if (!file)
|
|
38
38
|
return;
|
|
39
|
-
const
|
|
39
|
+
const root = helpers.getFolderPath(file.get(constants.PATH_PROPERTY));
|
|
40
40
|
const files = file.get(constants.FILES_PROPERTY);
|
|
41
41
|
// Vérifier les dépendances avant suppression
|
|
42
42
|
const safesToRemove = [];
|
|
@@ -74,7 +74,7 @@ const remove = (CODEBASE_ANALYSIS, ...paths) => {
|
|
|
74
74
|
}
|
|
75
75
|
const formatteds = safesToRemove.map(key => {
|
|
76
76
|
const _path = `${key.replaceAll('.', '/')}.ts`;
|
|
77
|
-
const absolute = path.join(cwd,
|
|
77
|
+
const absolute = path.join(cwd, root, _path);
|
|
78
78
|
return [key, absolute];
|
|
79
79
|
});
|
|
80
80
|
console.log(`🗑️ Suppression des fichiers (${safesToRemove.length} fichiers)...`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove.cjs","sources":["../../src/functions/remove.ts"],"sourcesContent":["import edit, { JsonEditor } from 'edit-json-file';\nimport { unlinkSync } from 'node:fs';\nimport { join } from 'node:path';\nimport {\n FILES_PROPERTY,\n JSON_FILE_NAME,\n PATH_PROPERTY,\n} from '../constants';\nimport { consoleStars, transformModule } from '../helpers';\nimport { CodebaseAnalysis, FileAnalysis } from '../schemas';\n\nconst transformModules = (\n entries: [string, FileAnalysis][],\n ...files: string[]\n) => {\n const cwd = process.cwd();\n const out = entries\n .map(\n ([key, { imports, relativePath }]) =>\n [key, relativePath, imports] as const,\n )\n .map(([key, relativePath, imports]) => {\n const specifiers = imports\n .map(({ moduleSpecifier }) => {\n return transformModule({\n cwd,\n relativePath,\n moduleSpecifier,\n });\n })\n .map(_path => [_path, `${_path}.index`]) // Ajouter les variantes .index\n .flat()\n .filter(s => files.includes(s));\n\n return [key, Array.from(new Set(specifiers))] as const;\n });\n\n return out;\n};\n\nexport const remove = (\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n ...paths: string[]\n) => {\n const isEmpty = paths.length === 0;\n if (isEmpty) return console.warn('No files specified for removal.');\n try {\n const cwd = process.cwd();\n const json = join(cwd, JSON_FILE_NAME);\n let file: JsonEditor | undefined = edit(json);\n\n if (!file) return;\n\n const
|
|
1
|
+
{"version":3,"file":"remove.cjs","sources":["../../src/functions/remove.ts"],"sourcesContent":["import edit, { JsonEditor } from 'edit-json-file';\nimport { unlinkSync } from 'node:fs';\nimport { join } from 'node:path';\nimport {\n FILES_PROPERTY,\n JSON_FILE_NAME,\n PATH_PROPERTY,\n} from '../constants';\nimport { consoleStars, getFolderPath, transformModule } from '../helpers';\nimport { CodebaseAnalysis, FileAnalysis } from '../schemas';\n\nconst transformModules = (\n entries: [string, FileAnalysis][],\n ...files: string[]\n) => {\n const cwd = process.cwd();\n const out = entries\n .map(\n ([key, { imports, relativePath }]) =>\n [key, relativePath, imports] as const,\n )\n .map(([key, relativePath, imports]) => {\n const specifiers = imports\n .map(({ moduleSpecifier }) => {\n return transformModule({\n cwd,\n relativePath,\n moduleSpecifier,\n });\n })\n .map(_path => [_path, `${_path}.index`]) // Ajouter les variantes .index\n .flat()\n .filter(s => files.includes(s));\n\n return [key, Array.from(new Set(specifiers))] as const;\n });\n\n return out;\n};\n\nexport const remove = (\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n ...paths: string[]\n) => {\n const isEmpty = paths.length === 0;\n if (isEmpty) return console.warn('No files specified for removal.');\n try {\n const cwd = process.cwd();\n const json = join(cwd, JSON_FILE_NAME);\n let file: JsonEditor | undefined = edit(json);\n\n if (!file) return;\n\n const root = getFolderPath(file.get(PATH_PROPERTY) as string);\n const files = file.get(FILES_PROPERTY) as string[];\n\n // Vérifier les dépendances avant suppression\n const safesToRemove: string[] = [];\n const cannotRemoves2: [string, string[]][] = [];\n\n const entries2 = Object.entries(CODEBASE_ANALYSIS).filter(([key]) =>\n files.includes(key),\n );\n\n const entries = entries2.filter(([key]) =>\n paths.some(p => key.startsWith(p)),\n );\n\n entries.forEach(([key]) => {\n const modules = transformModules(entries2, ...files);\n const importedFroms = modules\n .filter(([, specifiers]) => specifiers.includes(key))\n .map(([k]) => k);\n\n const check = importedFroms.length > 0;\n\n console.log('modules', '=>', importedFroms);\n console.log('key', '=>', key);\n\n if (check) return cannotRemoves2.push([key, importedFroms]);\n return safesToRemove.push(key);\n });\n\n consoleStars();\n console.log(\n `🔧 Suppression des fichiers (${entries.length} fichiers)...`,\n );\n\n // Afficher les fichiers qui ne peuvent pas être supprimés\n if (cannotRemoves2.length > 0) {\n const len = cannotRemoves2.length;\n const one =\n \"fichier ne peut pas être supprimé (importé dans d'autres fichiers)\";\n const many =\n \"fichiers ne peuvent pas être supprimés (importés dans d'autres fichiers)\";\n\n console.warn(`⚠️ ${len} ${len === 1 ? one : many} :`);\n cannotRemoves2.forEach(([key, modules]) => {\n console.warn(` - ⚠️ ${key} importé par :`);\n modules.forEach(m => console.warn(` -> 📌 ${m}`));\n });\n }\n\n if (safesToRemove.length === 0) {\n console.warn('❌ Aucun fichier ne peut être supprimé.');\n return consoleStars();\n }\n\n const formatteds = safesToRemove.map(key => {\n const _path = `${key.replaceAll('.', '/')}.ts`;\n const absolute = join(cwd, root, _path);\n return [key, absolute] as const;\n });\n\n console.log(\n `🗑️ Suppression des fichiers (${safesToRemove.length} fichiers)...`,\n );\n\n let success = 0;\n const length = formatteds.length;\n\n formatteds.forEach(([key, path]) => {\n try {\n unlinkSync(path);\n console.log(` - 🗑️ ${key}`);\n file?.set(\n FILES_PROPERTY,\n files.filter(key1 => key1 !== key),\n );\n success++;\n } catch (error) {\n console.error(` - ❌ Erreur, ${key} :`, error);\n }\n });\n\n file.save();\n console.log(`🗑️ Fichiers supprimés! (${success}/${length})`);\n file = undefined;\n } catch {\n console.error(`❌ Erreur lors de la création des fichiers`);\n consoleStars();\n return false;\n }\n consoleStars();\n return true;\n};\n"],"names":["transformModule","join","JSON_FILE_NAME","getFolderPath","PATH_PROPERTY","FILES_PROPERTY","consoleStars","unlinkSync"],"mappings":"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"}
|
package/lib/functions/remove.js
CHANGED
|
@@ -2,7 +2,7 @@ import edit from 'edit-json-file';
|
|
|
2
2
|
import { unlinkSync } from 'fs';
|
|
3
3
|
import { join } from 'path';
|
|
4
4
|
import { JSON_FILE_NAME, PATH_PROPERTY, FILES_PROPERTY } from '../constants.js';
|
|
5
|
-
import { consoleStars, transformModule } from '../helpers.js';
|
|
5
|
+
import { getFolderPath, consoleStars, transformModule } from '../helpers.js';
|
|
6
6
|
|
|
7
7
|
const transformModules = (entries, ...files) => {
|
|
8
8
|
const cwd = process.cwd();
|
|
@@ -34,7 +34,7 @@ const remove = (CODEBASE_ANALYSIS, ...paths) => {
|
|
|
34
34
|
let file = edit(json);
|
|
35
35
|
if (!file)
|
|
36
36
|
return;
|
|
37
|
-
const
|
|
37
|
+
const root = getFolderPath(file.get(PATH_PROPERTY));
|
|
38
38
|
const files = file.get(FILES_PROPERTY);
|
|
39
39
|
// Vérifier les dépendances avant suppression
|
|
40
40
|
const safesToRemove = [];
|
|
@@ -72,7 +72,7 @@ const remove = (CODEBASE_ANALYSIS, ...paths) => {
|
|
|
72
72
|
}
|
|
73
73
|
const formatteds = safesToRemove.map(key => {
|
|
74
74
|
const _path = `${key.replaceAll('.', '/')}.ts`;
|
|
75
|
-
const absolute = join(cwd,
|
|
75
|
+
const absolute = join(cwd, root, _path);
|
|
76
76
|
return [key, absolute];
|
|
77
77
|
});
|
|
78
78
|
console.log(`🗑️ Suppression des fichiers (${safesToRemove.length} fichiers)...`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove.js","sources":["../../src/functions/remove.ts"],"sourcesContent":["import edit, { JsonEditor } from 'edit-json-file';\nimport { unlinkSync } from 'node:fs';\nimport { join } from 'node:path';\nimport {\n FILES_PROPERTY,\n JSON_FILE_NAME,\n PATH_PROPERTY,\n} from '../constants';\nimport { consoleStars, transformModule } from '../helpers';\nimport { CodebaseAnalysis, FileAnalysis } from '../schemas';\n\nconst transformModules = (\n entries: [string, FileAnalysis][],\n ...files: string[]\n) => {\n const cwd = process.cwd();\n const out = entries\n .map(\n ([key, { imports, relativePath }]) =>\n [key, relativePath, imports] as const,\n )\n .map(([key, relativePath, imports]) => {\n const specifiers = imports\n .map(({ moduleSpecifier }) => {\n return transformModule({\n cwd,\n relativePath,\n moduleSpecifier,\n });\n })\n .map(_path => [_path, `${_path}.index`]) // Ajouter les variantes .index\n .flat()\n .filter(s => files.includes(s));\n\n return [key, Array.from(new Set(specifiers))] as const;\n });\n\n return out;\n};\n\nexport const remove = (\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n ...paths: string[]\n) => {\n const isEmpty = paths.length === 0;\n if (isEmpty) return console.warn('No files specified for removal.');\n try {\n const cwd = process.cwd();\n const json = join(cwd, JSON_FILE_NAME);\n let file: JsonEditor | undefined = edit(json);\n\n if (!file) return;\n\n const
|
|
1
|
+
{"version":3,"file":"remove.js","sources":["../../src/functions/remove.ts"],"sourcesContent":["import edit, { JsonEditor } from 'edit-json-file';\nimport { unlinkSync } from 'node:fs';\nimport { join } from 'node:path';\nimport {\n FILES_PROPERTY,\n JSON_FILE_NAME,\n PATH_PROPERTY,\n} from '../constants';\nimport { consoleStars, getFolderPath, transformModule } from '../helpers';\nimport { CodebaseAnalysis, FileAnalysis } from '../schemas';\n\nconst transformModules = (\n entries: [string, FileAnalysis][],\n ...files: string[]\n) => {\n const cwd = process.cwd();\n const out = entries\n .map(\n ([key, { imports, relativePath }]) =>\n [key, relativePath, imports] as const,\n )\n .map(([key, relativePath, imports]) => {\n const specifiers = imports\n .map(({ moduleSpecifier }) => {\n return transformModule({\n cwd,\n relativePath,\n moduleSpecifier,\n });\n })\n .map(_path => [_path, `${_path}.index`]) // Ajouter les variantes .index\n .flat()\n .filter(s => files.includes(s));\n\n return [key, Array.from(new Set(specifiers))] as const;\n });\n\n return out;\n};\n\nexport const remove = (\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n ...paths: string[]\n) => {\n const isEmpty = paths.length === 0;\n if (isEmpty) return console.warn('No files specified for removal.');\n try {\n const cwd = process.cwd();\n const json = join(cwd, JSON_FILE_NAME);\n let file: JsonEditor | undefined = edit(json);\n\n if (!file) return;\n\n const root = getFolderPath(file.get(PATH_PROPERTY) as string);\n const files = file.get(FILES_PROPERTY) as string[];\n\n // Vérifier les dépendances avant suppression\n const safesToRemove: string[] = [];\n const cannotRemoves2: [string, string[]][] = [];\n\n const entries2 = Object.entries(CODEBASE_ANALYSIS).filter(([key]) =>\n files.includes(key),\n );\n\n const entries = entries2.filter(([key]) =>\n paths.some(p => key.startsWith(p)),\n );\n\n entries.forEach(([key]) => {\n const modules = transformModules(entries2, ...files);\n const importedFroms = modules\n .filter(([, specifiers]) => specifiers.includes(key))\n .map(([k]) => k);\n\n const check = importedFroms.length > 0;\n\n console.log('modules', '=>', importedFroms);\n console.log('key', '=>', key);\n\n if (check) return cannotRemoves2.push([key, importedFroms]);\n return safesToRemove.push(key);\n });\n\n consoleStars();\n console.log(\n `🔧 Suppression des fichiers (${entries.length} fichiers)...`,\n );\n\n // Afficher les fichiers qui ne peuvent pas être supprimés\n if (cannotRemoves2.length > 0) {\n const len = cannotRemoves2.length;\n const one =\n \"fichier ne peut pas être supprimé (importé dans d'autres fichiers)\";\n const many =\n \"fichiers ne peuvent pas être supprimés (importés dans d'autres fichiers)\";\n\n console.warn(`⚠️ ${len} ${len === 1 ? one : many} :`);\n cannotRemoves2.forEach(([key, modules]) => {\n console.warn(` - ⚠️ ${key} importé par :`);\n modules.forEach(m => console.warn(` -> 📌 ${m}`));\n });\n }\n\n if (safesToRemove.length === 0) {\n console.warn('❌ Aucun fichier ne peut être supprimé.');\n return consoleStars();\n }\n\n const formatteds = safesToRemove.map(key => {\n const _path = `${key.replaceAll('.', '/')}.ts`;\n const absolute = join(cwd, root, _path);\n return [key, absolute] as const;\n });\n\n console.log(\n `🗑️ Suppression des fichiers (${safesToRemove.length} fichiers)...`,\n );\n\n let success = 0;\n const length = formatteds.length;\n\n formatteds.forEach(([key, path]) => {\n try {\n unlinkSync(path);\n console.log(` - 🗑️ ${key}`);\n file?.set(\n FILES_PROPERTY,\n files.filter(key1 => key1 !== key),\n );\n success++;\n } catch (error) {\n console.error(` - ❌ Erreur, ${key} :`, error);\n }\n });\n\n file.save();\n console.log(`🗑️ Fichiers supprimés! (${success}/${length})`);\n file = undefined;\n } catch {\n console.error(`❌ Erreur lors de la création des fichiers`);\n consoleStars();\n return false;\n }\n consoleStars();\n return true;\n};\n"],"names":[],"mappings":"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"}
|
package/lib/helpers.cjs
CHANGED
|
@@ -39,8 +39,15 @@ const consoleStars = () => {
|
|
|
39
39
|
const toArray = (value) => {
|
|
40
40
|
return Array.isArray(value) ? value : !value ? [] : [value];
|
|
41
41
|
};
|
|
42
|
+
const getFolderPath = (root) => {
|
|
43
|
+
const cwd = process.cwd();
|
|
44
|
+
const srcExists = fs.existsSync(path.join(cwd, 'src'));
|
|
45
|
+
const folderPath = srcExists ? path.join(cwd, 'src', root) : path.join(cwd, root);
|
|
46
|
+
return folderPath;
|
|
47
|
+
};
|
|
42
48
|
|
|
43
49
|
exports.consoleStars = consoleStars;
|
|
50
|
+
exports.getFolderPath = getFolderPath;
|
|
44
51
|
exports.toArray = toArray;
|
|
45
52
|
exports.transformModule = transformModule;
|
|
46
53
|
exports.writeFileAnalysis = writeFileAnalysis;
|
package/lib/helpers.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.cjs","sources":["../src/helpers.ts"],"sourcesContent":["import { mkdirSync, writeFileSync } from 'node:fs';\nimport { dirname, join, relative, resolve } from 'node:path';\nimport { REPLACERS } from './constants';\nimport { FileAnalysis } from './schemas';\n\nexport type TransformModuleArgs = {\n cwd?: string;\n relativePath: string;\n moduleSpecifier: string;\n};\n\nexport const transformModule = ({\n cwd = process.cwd(),\n relativePath,\n moduleSpecifier,\n}: TransformModuleArgs) => {\n const out = relative(\n cwd,\n resolve(dirname(relativePath), moduleSpecifier),\n ).replaceAll('/', '.');\n\n return out;\n};\n\nexport const writeFileAnalysis = (\n fileAnalysis: FileAnalysis,\n folderPath: string,\n) => {\n const relativePath = fileAnalysis.relativePath;\n\n // Créer le chemin de destination dans .bemedev en maintenant la structure\n const destPath = join(folderPath, relativePath);\n const destDir = dirname(destPath);\n\n try {\n // Créer le dossier de destination si nécessaire\n mkdirSync(destDir, { recursive: true });\n\n let fileContent = fileAnalysis.text;\n REPLACERS.init\n // .filter(() => false)\n .forEach(([search, replace]) => {\n fileContent = fileContent.replaceAll(search, replace);\n });\n\n // Écrire le contenu du fichier types\n writeFileSync(destPath, fileContent, 'utf8');\n\n console.log(` ✅ ${relativePath}`);\n return relativePath.slice(0, -3).replaceAll('/', '.');\n } catch (error) {\n return console.error(` ❌ Erreur pour ${relativePath}:`, error);\n }\n};\n\nexport const consoleStars = () => {\n console.log();\n console.log('*'.repeat(30));\n console.log();\n};\n\nexport const toArray = <T>(value?: T | T[]): T[] => {\n return Array.isArray(value) ? value : !value ? [] : [value];\n};\n"],"names":["relative","resolve","dirname","join","mkdirSync","REPLACERS","writeFileSync"],"mappings":";;;;;;AAWO,MAAM,eAAe,GAAG,CAAC,EAC9B,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,YAAY,EACZ,eAAe,GACK,KAAI;IACxB,MAAM,GAAG,GAAGA,aAAQ,CAClB,GAAG,EACHC,YAAO,CAACC,YAAO,CAAC,YAAY,CAAC,EAAE,eAAe,CAAC,CAChD,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;AAEtB,IAAA,OAAO,GAAG;AACZ;MAEa,iBAAiB,GAAG,CAC/B,YAA0B,EAC1B,UAAkB,KAChB;AACF,IAAA,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY;;IAG9C,MAAM,QAAQ,GAAGC,SAAI,CAAC,UAAU,EAAE,YAAY,CAAC;AAC/C,IAAA,MAAM,OAAO,GAAGD,YAAO,CAAC,QAAQ,CAAC;AAEjC,IAAA,IAAI;;QAEFE,YAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAEvC,QAAA,IAAI,WAAW,GAAG,YAAY,CAAC,IAAI;AACnC,QAAAC,mBAAS,CAAC;;aAEP,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,KAAI;YAC7B,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;AACvD,QAAA,CAAC,CAAC;;AAGJ,QAAAC,gBAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC;AAE5C,QAAA,OAAO,CAAC,GAAG,CAAC,OAAO,YAAY,CAAA,CAAE,CAAC;AAClC,QAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;IACvD;IAAE,OAAO,KAAK,EAAE;QACd,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA,gBAAA,EAAmB,YAAY,CAAA,CAAA,CAAG,EAAE,KAAK,CAAC;IACjE;AACF;AAEO,MAAM,YAAY,GAAG,MAAK;IAC/B,OAAO,CAAC,GAAG,EAAE;IACb,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,EAAE;AACf;AAEO,MAAM,OAAO,GAAG,CAAI,KAAe,KAAS;IACjD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC;AAC7D
|
|
1
|
+
{"version":3,"file":"helpers.cjs","sources":["../src/helpers.ts"],"sourcesContent":["import { existsSync, mkdirSync, writeFileSync } from 'node:fs';\nimport { dirname, join, relative, resolve } from 'node:path';\nimport { REPLACERS } from './constants';\nimport { FileAnalysis } from './schemas';\n\nexport type TransformModuleArgs = {\n cwd?: string;\n relativePath: string;\n moduleSpecifier: string;\n};\n\nexport const transformModule = ({\n cwd = process.cwd(),\n relativePath,\n moduleSpecifier,\n}: TransformModuleArgs) => {\n const out = relative(\n cwd,\n resolve(dirname(relativePath), moduleSpecifier),\n ).replaceAll('/', '.');\n\n return out;\n};\n\nexport const writeFileAnalysis = (\n fileAnalysis: FileAnalysis,\n folderPath: string,\n) => {\n const relativePath = fileAnalysis.relativePath;\n\n // Créer le chemin de destination dans .bemedev en maintenant la structure\n const destPath = join(folderPath, relativePath);\n const destDir = dirname(destPath);\n\n try {\n // Créer le dossier de destination si nécessaire\n mkdirSync(destDir, { recursive: true });\n\n let fileContent = fileAnalysis.text;\n REPLACERS.init\n // .filter(() => false)\n .forEach(([search, replace]) => {\n fileContent = fileContent.replaceAll(search, replace);\n });\n\n // Écrire le contenu du fichier types\n writeFileSync(destPath, fileContent, 'utf8');\n\n console.log(` ✅ ${relativePath}`);\n return relativePath.slice(0, -3).replaceAll('/', '.');\n } catch (error) {\n return console.error(` ❌ Erreur pour ${relativePath}:`, error);\n }\n};\n\nexport const consoleStars = () => {\n console.log();\n console.log('*'.repeat(30));\n console.log();\n};\n\nexport const toArray = <T>(value?: T | T[]): T[] => {\n return Array.isArray(value) ? value : !value ? [] : [value];\n};\n\nexport const getFolderPath = (root: string) => {\n const cwd = process.cwd();\n const srcExists = existsSync(join(cwd, 'src'));\n const folderPath = srcExists ? join(cwd, 'src', root) : join(cwd, root);\n\n return folderPath;\n};\n"],"names":["relative","resolve","dirname","join","mkdirSync","REPLACERS","writeFileSync","existsSync"],"mappings":";;;;;;AAWO,MAAM,eAAe,GAAG,CAAC,EAC9B,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,YAAY,EACZ,eAAe,GACK,KAAI;IACxB,MAAM,GAAG,GAAGA,aAAQ,CAClB,GAAG,EACHC,YAAO,CAACC,YAAO,CAAC,YAAY,CAAC,EAAE,eAAe,CAAC,CAChD,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;AAEtB,IAAA,OAAO,GAAG;AACZ;MAEa,iBAAiB,GAAG,CAC/B,YAA0B,EAC1B,UAAkB,KAChB;AACF,IAAA,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY;;IAG9C,MAAM,QAAQ,GAAGC,SAAI,CAAC,UAAU,EAAE,YAAY,CAAC;AAC/C,IAAA,MAAM,OAAO,GAAGD,YAAO,CAAC,QAAQ,CAAC;AAEjC,IAAA,IAAI;;QAEFE,YAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAEvC,QAAA,IAAI,WAAW,GAAG,YAAY,CAAC,IAAI;AACnC,QAAAC,mBAAS,CAAC;;aAEP,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,KAAI;YAC7B,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;AACvD,QAAA,CAAC,CAAC;;AAGJ,QAAAC,gBAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC;AAE5C,QAAA,OAAO,CAAC,GAAG,CAAC,OAAO,YAAY,CAAA,CAAE,CAAC;AAClC,QAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;IACvD;IAAE,OAAO,KAAK,EAAE;QACd,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA,gBAAA,EAAmB,YAAY,CAAA,CAAA,CAAG,EAAE,KAAK,CAAC;IACjE;AACF;AAEO,MAAM,YAAY,GAAG,MAAK;IAC/B,OAAO,CAAC,GAAG,EAAE;IACb,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,EAAE;AACf;AAEO,MAAM,OAAO,GAAG,CAAI,KAAe,KAAS;IACjD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC;AAC7D;AAEO,MAAM,aAAa,GAAG,CAAC,IAAY,KAAI;AAC5C,IAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACzB,MAAM,SAAS,GAAGC,aAAU,CAACJ,SAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,SAAS,GAAGA,SAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAGA,SAAI,CAAC,GAAG,EAAE,IAAI,CAAC;AAEvE,IAAA,OAAO,UAAU;AACnB;;;;;;;;"}
|
package/lib/helpers.d.ts
CHANGED
|
@@ -8,4 +8,5 @@ export declare const transformModule: ({ cwd, relativePath, moduleSpecifier, }:
|
|
|
8
8
|
export declare const writeFileAnalysis: (fileAnalysis: FileAnalysis, folderPath: string) => string | void;
|
|
9
9
|
export declare const consoleStars: () => void;
|
|
10
10
|
export declare const toArray: <T>(value?: T | T[]) => T[];
|
|
11
|
+
export declare const getFolderPath: (root: string) => string;
|
|
11
12
|
//# sourceMappingURL=helpers.d.ts.map
|
package/lib/helpers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,yCAI7B,mBAAmB,WAOrB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,cAAc,YAAY,EAC1B,YAAY,MAAM,kBA2BnB,CAAC;AAEF,eAAO,MAAM,YAAY,YAIxB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAG,CAAC,EAE7C,CAAC"}
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,yCAI7B,mBAAmB,WAOrB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,cAAc,YAAY,EAC1B,YAAY,MAAM,kBA2BnB,CAAC;AAEF,eAAO,MAAM,YAAY,YAIxB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAG,CAAC,EAE7C,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,WAMzC,CAAC"}
|
package/lib/helpers.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { mkdirSync, writeFileSync } from 'fs';
|
|
1
|
+
import { mkdirSync, writeFileSync, existsSync } from 'fs';
|
|
2
2
|
import { relative, resolve, dirname, join } from 'path';
|
|
3
3
|
import { REPLACERS } from './constants.js';
|
|
4
4
|
|
|
@@ -37,6 +37,12 @@ const consoleStars = () => {
|
|
|
37
37
|
const toArray = (value) => {
|
|
38
38
|
return Array.isArray(value) ? value : !value ? [] : [value];
|
|
39
39
|
};
|
|
40
|
+
const getFolderPath = (root) => {
|
|
41
|
+
const cwd = process.cwd();
|
|
42
|
+
const srcExists = existsSync(join(cwd, 'src'));
|
|
43
|
+
const folderPath = srcExists ? join(cwd, 'src', root) : join(cwd, root);
|
|
44
|
+
return folderPath;
|
|
45
|
+
};
|
|
40
46
|
|
|
41
|
-
export { consoleStars, toArray, transformModule, writeFileAnalysis };
|
|
47
|
+
export { consoleStars, getFolderPath, toArray, transformModule, writeFileAnalysis };
|
|
42
48
|
//# sourceMappingURL=helpers.js.map
|
package/lib/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../src/helpers.ts"],"sourcesContent":["import { mkdirSync, writeFileSync } from 'node:fs';\nimport { dirname, join, relative, resolve } from 'node:path';\nimport { REPLACERS } from './constants';\nimport { FileAnalysis } from './schemas';\n\nexport type TransformModuleArgs = {\n cwd?: string;\n relativePath: string;\n moduleSpecifier: string;\n};\n\nexport const transformModule = ({\n cwd = process.cwd(),\n relativePath,\n moduleSpecifier,\n}: TransformModuleArgs) => {\n const out = relative(\n cwd,\n resolve(dirname(relativePath), moduleSpecifier),\n ).replaceAll('/', '.');\n\n return out;\n};\n\nexport const writeFileAnalysis = (\n fileAnalysis: FileAnalysis,\n folderPath: string,\n) => {\n const relativePath = fileAnalysis.relativePath;\n\n // Créer le chemin de destination dans .bemedev en maintenant la structure\n const destPath = join(folderPath, relativePath);\n const destDir = dirname(destPath);\n\n try {\n // Créer le dossier de destination si nécessaire\n mkdirSync(destDir, { recursive: true });\n\n let fileContent = fileAnalysis.text;\n REPLACERS.init\n // .filter(() => false)\n .forEach(([search, replace]) => {\n fileContent = fileContent.replaceAll(search, replace);\n });\n\n // Écrire le contenu du fichier types\n writeFileSync(destPath, fileContent, 'utf8');\n\n console.log(` ✅ ${relativePath}`);\n return relativePath.slice(0, -3).replaceAll('/', '.');\n } catch (error) {\n return console.error(` ❌ Erreur pour ${relativePath}:`, error);\n }\n};\n\nexport const consoleStars = () => {\n console.log();\n console.log('*'.repeat(30));\n console.log();\n};\n\nexport const toArray = <T>(value?: T | T[]): T[] => {\n return Array.isArray(value) ? value : !value ? [] : [value];\n};\n"],"names":[],"mappings":";;;;AAWO,MAAM,eAAe,GAAG,CAAC,EAC9B,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,YAAY,EACZ,eAAe,GACK,KAAI;IACxB,MAAM,GAAG,GAAG,QAAQ,CAClB,GAAG,EACH,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,eAAe,CAAC,CAChD,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;AAEtB,IAAA,OAAO,GAAG;AACZ;MAEa,iBAAiB,GAAG,CAC/B,YAA0B,EAC1B,UAAkB,KAChB;AACF,IAAA,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY;;IAG9C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC;AAC/C,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;AAEjC,IAAA,IAAI;;QAEF,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAEvC,QAAA,IAAI,WAAW,GAAG,YAAY,CAAC,IAAI;AACnC,QAAA,SAAS,CAAC;;aAEP,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,KAAI;YAC7B,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;AACvD,QAAA,CAAC,CAAC;;AAGJ,QAAA,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC;AAE5C,QAAA,OAAO,CAAC,GAAG,CAAC,OAAO,YAAY,CAAA,CAAE,CAAC;AAClC,QAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;IACvD;IAAE,OAAO,KAAK,EAAE;QACd,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA,gBAAA,EAAmB,YAAY,CAAA,CAAA,CAAG,EAAE,KAAK,CAAC;IACjE;AACF;AAEO,MAAM,YAAY,GAAG,MAAK;IAC/B,OAAO,CAAC,GAAG,EAAE;IACb,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,EAAE;AACf;AAEO,MAAM,OAAO,GAAG,CAAI,KAAe,KAAS;IACjD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC;AAC7D;;;;"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../src/helpers.ts"],"sourcesContent":["import { existsSync, mkdirSync, writeFileSync } from 'node:fs';\nimport { dirname, join, relative, resolve } from 'node:path';\nimport { REPLACERS } from './constants';\nimport { FileAnalysis } from './schemas';\n\nexport type TransformModuleArgs = {\n cwd?: string;\n relativePath: string;\n moduleSpecifier: string;\n};\n\nexport const transformModule = ({\n cwd = process.cwd(),\n relativePath,\n moduleSpecifier,\n}: TransformModuleArgs) => {\n const out = relative(\n cwd,\n resolve(dirname(relativePath), moduleSpecifier),\n ).replaceAll('/', '.');\n\n return out;\n};\n\nexport const writeFileAnalysis = (\n fileAnalysis: FileAnalysis,\n folderPath: string,\n) => {\n const relativePath = fileAnalysis.relativePath;\n\n // Créer le chemin de destination dans .bemedev en maintenant la structure\n const destPath = join(folderPath, relativePath);\n const destDir = dirname(destPath);\n\n try {\n // Créer le dossier de destination si nécessaire\n mkdirSync(destDir, { recursive: true });\n\n let fileContent = fileAnalysis.text;\n REPLACERS.init\n // .filter(() => false)\n .forEach(([search, replace]) => {\n fileContent = fileContent.replaceAll(search, replace);\n });\n\n // Écrire le contenu du fichier types\n writeFileSync(destPath, fileContent, 'utf8');\n\n console.log(` ✅ ${relativePath}`);\n return relativePath.slice(0, -3).replaceAll('/', '.');\n } catch (error) {\n return console.error(` ❌ Erreur pour ${relativePath}:`, error);\n }\n};\n\nexport const consoleStars = () => {\n console.log();\n console.log('*'.repeat(30));\n console.log();\n};\n\nexport const toArray = <T>(value?: T | T[]): T[] => {\n return Array.isArray(value) ? value : !value ? [] : [value];\n};\n\nexport const getFolderPath = (root: string) => {\n const cwd = process.cwd();\n const srcExists = existsSync(join(cwd, 'src'));\n const folderPath = srcExists ? join(cwd, 'src', root) : join(cwd, root);\n\n return folderPath;\n};\n"],"names":[],"mappings":";;;;AAWO,MAAM,eAAe,GAAG,CAAC,EAC9B,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,YAAY,EACZ,eAAe,GACK,KAAI;IACxB,MAAM,GAAG,GAAG,QAAQ,CAClB,GAAG,EACH,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,eAAe,CAAC,CAChD,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;AAEtB,IAAA,OAAO,GAAG;AACZ;MAEa,iBAAiB,GAAG,CAC/B,YAA0B,EAC1B,UAAkB,KAChB;AACF,IAAA,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY;;IAG9C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC;AAC/C,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;AAEjC,IAAA,IAAI;;QAEF,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAEvC,QAAA,IAAI,WAAW,GAAG,YAAY,CAAC,IAAI;AACnC,QAAA,SAAS,CAAC;;aAEP,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,KAAI;YAC7B,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;AACvD,QAAA,CAAC,CAAC;;AAGJ,QAAA,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC;AAE5C,QAAA,OAAO,CAAC,GAAG,CAAC,OAAO,YAAY,CAAA,CAAE,CAAC;AAClC,QAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;IACvD;IAAE,OAAO,KAAK,EAAE;QACd,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA,gBAAA,EAAmB,YAAY,CAAA,CAAA,CAAG,EAAE,KAAK,CAAC;IACjE;AACF;AAEO,MAAM,YAAY,GAAG,MAAK;IAC/B,OAAO,CAAC,GAAG,EAAE;IACb,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,EAAE;AACf;AAEO,MAAM,OAAO,GAAG,CAAI,KAAe,KAAS;IACjD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC;AAC7D;AAEO,MAAM,aAAa,GAAG,CAAC,IAAY,KAAI;AAC5C,IAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACzB,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;AAEvE,IAAA,OAAO,UAAU;AACnB;;;;"}
|
package/lib/imports.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imports.cjs","sources":["../src/imports.ts"],"sourcesContent":["import { join, relative } from 'node:path';\nimport { SourceFile, SyntaxKind } from 'ts-morph';\nimport type { ImportInfo } from './
|
|
1
|
+
{"version":3,"file":"imports.cjs","sources":["../src/imports.ts"],"sourcesContent":["import { join, relative } from 'node:path';\nimport { SourceFile, SyntaxKind } from 'ts-morph';\nimport type { ImportInfo } from './schemas';\n\n/**\n * Résout le moduleSpecifier en utilisant les paths du tsconfig si il commence par \"#\"\n */\nconst resolveModuleSpecifier = (\n sourceFile: SourceFile,\n moduleSpecifier: string,\n): string => {\n const paths = sourceFile.getProject().getCompilerOptions().paths;\n\n if (!paths) return moduleSpecifier;\n\n const baseUrl = sourceFile.getProject().getCompilerOptions().baseUrl;\n const paths2 = Object.entries(paths);\n\n // Chercher la correspondance dans les paths\n for (const [pattern, mappings] of paths2) {\n // Remplacer * par une regex pour matcher\n const regexPattern = pattern.replace(/\\*/g, '(.*)');\n const regex = new RegExp(`^${regexPattern}$`);\n const match = moduleSpecifier.match(regex);\n\n if (match) {\n // Prendre le premier mapping disponible\n const first = mappings[0];\n\n // Résoudre le chemin absolu\n let relativedPath = baseUrl ? join(baseUrl, first) : first;\n\n if (match[1]) {\n relativedPath = relativedPath.replace('*', match[1]);\n }\n\n // Calculer le chemin relatif depuis le fichier source actuel\n const sourceFileDir = relative(\n process.cwd(),\n sourceFile.getDirectoryPath(),\n );\n const relativePath = relative(sourceFileDir, relativedPath);\n\n // S'assurer que le chemin relatif commence par ./ ou ../\n return relativePath.startsWith('.')\n ? relativePath\n : `./${relativePath}`;\n }\n }\n\n return moduleSpecifier;\n};\n\n/**\n * Analyse les imports d'un fichier\n */\nexport const analyzeImports = (sourceFile: SourceFile): ImportInfo[] => {\n const imports: ImportInfo[] = [];\n\n // Import declarations (import ... from '...')\n sourceFile.getImportDeclarations().forEach(importDecl => {\n const rawModuleSpecifier = importDecl.getModuleSpecifierValue();\n const moduleSpecifier = resolveModuleSpecifier(\n sourceFile,\n rawModuleSpecifier,\n );\n\n // Import default\n const defaultImport = importDecl.getDefaultImport();\n if (defaultImport) {\n imports.push({\n moduleSpecifier,\n kind: 'default',\n default: defaultImport.getText(),\n });\n }\n\n // Import namespace (* as name)\n const namespaceImport = importDecl.getNamespaceImport();\n if (namespaceImport) {\n imports.push({\n moduleSpecifier,\n kind: 'namespace',\n default: namespaceImport.getText(),\n });\n }\n\n // Named imports ({ name1, name2 })\n const namedImports = importDecl.getNamedImports();\n if (namedImports.length > 0) {\n imports.push({\n moduleSpecifier,\n kind: 'named',\n namedImports: namedImports.map(ni => ni.getName()),\n });\n }\n\n // Side-effect import (import '...')\n if (!defaultImport && !namespaceImport && namedImports.length === 0) {\n imports.push({\n moduleSpecifier,\n kind: 'side-effect',\n });\n }\n });\n\n // Dynamic imports (import('...'))\n sourceFile\n .getDescendantsOfKind(SyntaxKind.CallExpression)\n .forEach(callExpr => {\n if (\n callExpr.getExpression().getKind() === SyntaxKind.ImportKeyword\n ) {\n const arg = callExpr.getArguments()[0];\n if (arg && arg.getKind() === SyntaxKind.StringLiteral) {\n const rawModuleSpecifier = arg.getText().replace(/['\"]/g, '');\n const moduleSpecifier = resolveModuleSpecifier(\n sourceFile,\n rawModuleSpecifier,\n );\n imports.push({\n moduleSpecifier,\n kind: 'side-effect',\n isDynamic: true,\n });\n }\n }\n });\n\n return imports;\n};\n\nexport const buildImportStrings = (imports: ImportInfo[]) => {\n return imports.map(imp => {\n switch (imp.kind) {\n case 'named': {\n const namedImports = imp.namedImports?.join(', ') || '';\n return `import { ${namedImports} } from '${imp.moduleSpecifier}';`;\n }\n case 'namespace':\n return `import * as ${imp.default} from '${imp.moduleSpecifier}';`;\n case 'side-effect': {\n if (imp.isDynamic) {\n return `// Dynamic import: import('${imp.moduleSpecifier}')`;\n }\n return `import '${imp.moduleSpecifier}';`;\n }\n\n case 'default':\n return `import ${imp.default} from '${imp.moduleSpecifier}';`;\n default:\n return '';\n }\n });\n};\n"],"names":["join","relative","SyntaxKind"],"mappings":"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"}
|
package/lib/imports.d.ts
CHANGED
package/lib/imports.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../src/imports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAc,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../src/imports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAc,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAmD5C;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,YAAY,UAAU,KAAG,UAAU,EA0EjE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,SAAS,UAAU,EAAE,aAsBvD,CAAC"}
|
package/lib/imports.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imports.js","sources":["../src/imports.ts"],"sourcesContent":["import { join, relative } from 'node:path';\nimport { SourceFile, SyntaxKind } from 'ts-morph';\nimport type { ImportInfo } from './
|
|
1
|
+
{"version":3,"file":"imports.js","sources":["../src/imports.ts"],"sourcesContent":["import { join, relative } from 'node:path';\nimport { SourceFile, SyntaxKind } from 'ts-morph';\nimport type { ImportInfo } from './schemas';\n\n/**\n * Résout le moduleSpecifier en utilisant les paths du tsconfig si il commence par \"#\"\n */\nconst resolveModuleSpecifier = (\n sourceFile: SourceFile,\n moduleSpecifier: string,\n): string => {\n const paths = sourceFile.getProject().getCompilerOptions().paths;\n\n if (!paths) return moduleSpecifier;\n\n const baseUrl = sourceFile.getProject().getCompilerOptions().baseUrl;\n const paths2 = Object.entries(paths);\n\n // Chercher la correspondance dans les paths\n for (const [pattern, mappings] of paths2) {\n // Remplacer * par une regex pour matcher\n const regexPattern = pattern.replace(/\\*/g, '(.*)');\n const regex = new RegExp(`^${regexPattern}$`);\n const match = moduleSpecifier.match(regex);\n\n if (match) {\n // Prendre le premier mapping disponible\n const first = mappings[0];\n\n // Résoudre le chemin absolu\n let relativedPath = baseUrl ? join(baseUrl, first) : first;\n\n if (match[1]) {\n relativedPath = relativedPath.replace('*', match[1]);\n }\n\n // Calculer le chemin relatif depuis le fichier source actuel\n const sourceFileDir = relative(\n process.cwd(),\n sourceFile.getDirectoryPath(),\n );\n const relativePath = relative(sourceFileDir, relativedPath);\n\n // S'assurer que le chemin relatif commence par ./ ou ../\n return relativePath.startsWith('.')\n ? relativePath\n : `./${relativePath}`;\n }\n }\n\n return moduleSpecifier;\n};\n\n/**\n * Analyse les imports d'un fichier\n */\nexport const analyzeImports = (sourceFile: SourceFile): ImportInfo[] => {\n const imports: ImportInfo[] = [];\n\n // Import declarations (import ... from '...')\n sourceFile.getImportDeclarations().forEach(importDecl => {\n const rawModuleSpecifier = importDecl.getModuleSpecifierValue();\n const moduleSpecifier = resolveModuleSpecifier(\n sourceFile,\n rawModuleSpecifier,\n );\n\n // Import default\n const defaultImport = importDecl.getDefaultImport();\n if (defaultImport) {\n imports.push({\n moduleSpecifier,\n kind: 'default',\n default: defaultImport.getText(),\n });\n }\n\n // Import namespace (* as name)\n const namespaceImport = importDecl.getNamespaceImport();\n if (namespaceImport) {\n imports.push({\n moduleSpecifier,\n kind: 'namespace',\n default: namespaceImport.getText(),\n });\n }\n\n // Named imports ({ name1, name2 })\n const namedImports = importDecl.getNamedImports();\n if (namedImports.length > 0) {\n imports.push({\n moduleSpecifier,\n kind: 'named',\n namedImports: namedImports.map(ni => ni.getName()),\n });\n }\n\n // Side-effect import (import '...')\n if (!defaultImport && !namespaceImport && namedImports.length === 0) {\n imports.push({\n moduleSpecifier,\n kind: 'side-effect',\n });\n }\n });\n\n // Dynamic imports (import('...'))\n sourceFile\n .getDescendantsOfKind(SyntaxKind.CallExpression)\n .forEach(callExpr => {\n if (\n callExpr.getExpression().getKind() === SyntaxKind.ImportKeyword\n ) {\n const arg = callExpr.getArguments()[0];\n if (arg && arg.getKind() === SyntaxKind.StringLiteral) {\n const rawModuleSpecifier = arg.getText().replace(/['\"]/g, '');\n const moduleSpecifier = resolveModuleSpecifier(\n sourceFile,\n rawModuleSpecifier,\n );\n imports.push({\n moduleSpecifier,\n kind: 'side-effect',\n isDynamic: true,\n });\n }\n }\n });\n\n return imports;\n};\n\nexport const buildImportStrings = (imports: ImportInfo[]) => {\n return imports.map(imp => {\n switch (imp.kind) {\n case 'named': {\n const namedImports = imp.namedImports?.join(', ') || '';\n return `import { ${namedImports} } from '${imp.moduleSpecifier}';`;\n }\n case 'namespace':\n return `import * as ${imp.default} from '${imp.moduleSpecifier}';`;\n case 'side-effect': {\n if (imp.isDynamic) {\n return `// Dynamic import: import('${imp.moduleSpecifier}')`;\n }\n return `import '${imp.moduleSpecifier}';`;\n }\n\n case 'default':\n return `import ${imp.default} from '${imp.moduleSpecifier}';`;\n default:\n return '';\n }\n });\n};\n"],"names":[],"mappings":"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"}
|
package/lib/index.cjs
CHANGED
|
@@ -4,6 +4,7 @@ var functions_add = require('./functions/add.cjs');
|
|
|
4
4
|
var functions_generate = require('./functions/generate.cjs');
|
|
5
5
|
var functions_init = require('./functions/init.cjs');
|
|
6
6
|
var functions_remove = require('./functions/remove.cjs');
|
|
7
|
+
var schemas = require('./schemas.cjs');
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
|
|
@@ -13,4 +14,11 @@ exports.transformJSON = functions_generate.transformJSON;
|
|
|
13
14
|
exports.createTypesStructure = functions_init.createTypesStructure;
|
|
14
15
|
exports.init = functions_init.init;
|
|
15
16
|
exports.remove = functions_remove.remove;
|
|
17
|
+
exports.AnalysisStatsSchema = schemas.AnalysisStatsSchema;
|
|
18
|
+
exports.CodeAnalysisFileSchema = schemas.CodeAnalysisFileSchema;
|
|
19
|
+
exports.CodebaseAnalysisSchema = schemas.CodebaseAnalysisSchema;
|
|
20
|
+
exports.DeclarationKindSchema = schemas.DeclarationKindSchema;
|
|
21
|
+
exports.ExportInfoSchema = schemas.ExportInfoSchema;
|
|
22
|
+
exports.FileAnalysisSchema = schemas.FileAnalysisSchema;
|
|
23
|
+
exports.ImportInfoSchema = schemas.ImportInfoSchema;
|
|
16
24
|
//# sourceMappingURL=index.cjs.map
|
package/lib/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -2,4 +2,5 @@ export { add } from './functions/add.js';
|
|
|
2
2
|
export { generate, transformJSON } from './functions/generate.js';
|
|
3
3
|
export { createTypesStructure, init } from './functions/init.js';
|
|
4
4
|
export { remove } from './functions/remove.js';
|
|
5
|
+
export { AnalysisStatsSchema, CodeAnalysisFileSchema, CodebaseAnalysisSchema, DeclarationKindSchema, ExportInfoSchema, FileAnalysisSchema, ImportInfoSchema } from './schemas.js';
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
package/lib/schemas.cjs
CHANGED
|
@@ -22,7 +22,6 @@ function _interopNamespaceDefault(e) {
|
|
|
22
22
|
|
|
23
23
|
var v__namespace = /*#__PURE__*/_interopNamespaceDefault(v);
|
|
24
24
|
|
|
25
|
-
// Schema pour DeclarationKind
|
|
26
25
|
const DeclarationKindSchema = v__namespace.picklist([
|
|
27
26
|
'function',
|
|
28
27
|
'class',
|
|
@@ -33,7 +32,6 @@ const DeclarationKindSchema = v__namespace.picklist([
|
|
|
33
32
|
'let',
|
|
34
33
|
'enum',
|
|
35
34
|
]);
|
|
36
|
-
// Schema pour ImportInfo
|
|
37
35
|
const ImportInfoSchema = v__namespace.object({
|
|
38
36
|
moduleSpecifier: v__namespace.string(),
|
|
39
37
|
kind: v__namespace.picklist(['default', 'named', 'namespace', 'side-effect']),
|
|
@@ -41,7 +39,6 @@ const ImportInfoSchema = v__namespace.object({
|
|
|
41
39
|
default: v__namespace.optional(v__namespace.string()),
|
|
42
40
|
isDynamic: v__namespace.optional(v__namespace.boolean()),
|
|
43
41
|
});
|
|
44
|
-
// Schema pour ExportInfo
|
|
45
42
|
const ExportInfoSchema = v__namespace.object({
|
|
46
43
|
name: v__namespace.string(),
|
|
47
44
|
kind: v__namespace.picklist(['default', 'named', 'namespace']),
|
|
@@ -49,7 +46,6 @@ const ExportInfoSchema = v__namespace.object({
|
|
|
49
46
|
moduleSpecifier: v__namespace.optional(v__namespace.string()),
|
|
50
47
|
declarationKind: v__namespace.optional(DeclarationKindSchema),
|
|
51
48
|
});
|
|
52
|
-
// Schema pour FileAnalysis
|
|
53
49
|
const FileAnalysisSchema = v__namespace.object({
|
|
54
50
|
relativePath: v__namespace.string(),
|
|
55
51
|
imports: v__namespace.array(ImportInfoSchema),
|
package/lib/schemas.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.cjs","sources":["../src/schemas.ts"],"sourcesContent":["import * as v from 'valibot';\nimport { PROPERTIES } from './constants';\n\
|
|
1
|
+
{"version":3,"file":"schemas.cjs","sources":["../src/schemas.ts"],"sourcesContent":["import * as v from 'valibot';\nimport { PROPERTIES } from './constants';\n\nexport const DeclarationKindSchema = v.picklist([\n 'function',\n 'class',\n 'interface',\n 'type',\n 'variable',\n 'const',\n 'let',\n 'enum',\n]);\n\nexport const ImportInfoSchema = v.object({\n moduleSpecifier: v.string(),\n kind: v.picklist(['default', 'named', 'namespace', 'side-effect']),\n namedImports: v.optional(v.array(v.string())),\n default: v.optional(v.string()),\n isDynamic: v.optional(v.boolean()),\n});\n\nexport const ExportInfoSchema = v.object({\n name: v.string(),\n kind: v.picklist(['default', 'named', 'namespace']),\n text: v.optional(v.string()),\n moduleSpecifier: v.optional(v.string()),\n declarationKind: v.optional(DeclarationKindSchema),\n});\n\nexport const FileAnalysisSchema = v.object({\n relativePath: v.string(),\n imports: v.array(ImportInfoSchema),\n exports: v.optional(v.array(ExportInfoSchema)),\n text: v.string(),\n});\n\n// Schema pour CodebaseAnalysis\nexport const CodebaseAnalysisSchema = v.record(\n v.string(),\n FileAnalysisSchema,\n);\n\n// Schema pour les statistiques d'analyse\nexport const AnalysisStatsSchema = v.object({\n files: v.number(),\n imports: v.number(),\n exports: v.number(),\n});\n\n// Schema complet pour un fichier .code contenant l'analyse complète\nexport const CodeAnalysisFileSchema = v.object({\n [PROPERTIES.CODEBASE_ANALYSIS]: CodebaseAnalysisSchema,\n [PROPERTIES.STATS]: v.optional(AnalysisStatsSchema),\n});\n\n// Types inférés des schémas\nexport type DeclarationKind = v.InferOutput<typeof DeclarationKindSchema>;\nexport type ImportInfo = v.InferOutput<typeof ImportInfoSchema>;\nexport type ExportInfo = v.InferOutput<typeof ExportInfoSchema>;\nexport type FileAnalysis = v.InferOutput<typeof FileAnalysisSchema>;\nexport type CodebaseAnalysis = v.InferOutput<\n typeof CodebaseAnalysisSchema\n>;\nexport type AnalysisStats = v.InferOutput<typeof AnalysisStatsSchema>;\nexport type CodeAnalysisFile = v.InferOutput<\n typeof CodeAnalysisFileSchema\n>;\n"],"names":["v","PROPERTIES"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGO,MAAM,qBAAqB,GAAGA,YAAC,CAAC,QAAQ,CAAC;IAC9C,UAAU;IACV,OAAO;IACP,WAAW;IACX,MAAM;IACN,UAAU;IACV,OAAO;IACP,KAAK;IACL,MAAM;AACP,CAAA;AAEM,MAAM,gBAAgB,GAAGA,YAAC,CAAC,MAAM,CAAC;AACvC,IAAA,eAAe,EAAEA,YAAC,CAAC,MAAM,EAAE;AAC3B,IAAA,IAAI,EAAEA,YAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;AAClE,IAAA,YAAY,EAAEA,YAAC,CAAC,QAAQ,CAACA,YAAC,CAAC,KAAK,CAACA,YAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,OAAO,EAAEA,YAAC,CAAC,QAAQ,CAACA,YAAC,CAAC,MAAM,EAAE,CAAC;IAC/B,SAAS,EAAEA,YAAC,CAAC,QAAQ,CAACA,YAAC,CAAC,OAAO,EAAE,CAAC;AACnC,CAAA;AAEM,MAAM,gBAAgB,GAAGA,YAAC,CAAC,MAAM,CAAC;AACvC,IAAA,IAAI,EAAEA,YAAC,CAAC,MAAM,EAAE;AAChB,IAAA,IAAI,EAAEA,YAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACnD,IAAI,EAAEA,YAAC,CAAC,QAAQ,CAACA,YAAC,CAAC,MAAM,EAAE,CAAC;IAC5B,eAAe,EAAEA,YAAC,CAAC,QAAQ,CAACA,YAAC,CAAC,MAAM,EAAE,CAAC;AACvC,IAAA,eAAe,EAAEA,YAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;AACnD,CAAA;AAEM,MAAM,kBAAkB,GAAGA,YAAC,CAAC,MAAM,CAAC;AACzC,IAAA,YAAY,EAAEA,YAAC,CAAC,MAAM,EAAE;AACxB,IAAA,OAAO,EAAEA,YAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAClC,OAAO,EAAEA,YAAC,CAAC,QAAQ,CAACA,YAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC9C,IAAA,IAAI,EAAEA,YAAC,CAAC,MAAM,EAAE;AACjB,CAAA;AAED;AACO,MAAM,sBAAsB,GAAGA,YAAC,CAAC,MAAM,CAC5CA,YAAC,CAAC,MAAM,EAAE,EACV,kBAAkB;AAGpB;AACO,MAAM,mBAAmB,GAAGA,YAAC,CAAC,MAAM,CAAC;AAC1C,IAAA,KAAK,EAAEA,YAAC,CAAC,MAAM,EAAE;AACjB,IAAA,OAAO,EAAEA,YAAC,CAAC,MAAM,EAAE;AACnB,IAAA,OAAO,EAAEA,YAAC,CAAC,MAAM,EAAE;AACpB,CAAA;AAED;AACO,MAAM,sBAAsB,GAAGA,YAAC,CAAC,MAAM,CAAC;AAC7C,IAAA,CAACC,oBAAU,CAAC,iBAAiB,GAAG,sBAAsB;IACtD,CAACA,oBAAU,CAAC,KAAK,GAAGD,YAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;AACpD,CAAA;;;;;;;;;;"}
|
package/lib/schemas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAG7B,eAAO,MAAM,qBAAqB,6GAShC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;aAM3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;aAM3B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;aAK7B,CAAC;AAGH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;yBAGlC,CAAC;AAGF,eAAO,MAAM,mBAAmB;;;;aAI9B,CAAC;AAGH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;aAGjC,CAAC;AAGH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC1E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAChE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAChE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACpE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAC1C,OAAO,sBAAsB,CAC9B,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAC1C,OAAO,sBAAsB,CAC9B,CAAC"}
|
package/lib/schemas.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as v from 'valibot';
|
|
2
2
|
import { PROPERTIES } from './constants.js';
|
|
3
3
|
|
|
4
|
-
// Schema pour DeclarationKind
|
|
5
4
|
const DeclarationKindSchema = v.picklist([
|
|
6
5
|
'function',
|
|
7
6
|
'class',
|
|
@@ -12,7 +11,6 @@ const DeclarationKindSchema = v.picklist([
|
|
|
12
11
|
'let',
|
|
13
12
|
'enum',
|
|
14
13
|
]);
|
|
15
|
-
// Schema pour ImportInfo
|
|
16
14
|
const ImportInfoSchema = v.object({
|
|
17
15
|
moduleSpecifier: v.string(),
|
|
18
16
|
kind: v.picklist(['default', 'named', 'namespace', 'side-effect']),
|
|
@@ -20,7 +18,6 @@ const ImportInfoSchema = v.object({
|
|
|
20
18
|
default: v.optional(v.string()),
|
|
21
19
|
isDynamic: v.optional(v.boolean()),
|
|
22
20
|
});
|
|
23
|
-
// Schema pour ExportInfo
|
|
24
21
|
const ExportInfoSchema = v.object({
|
|
25
22
|
name: v.string(),
|
|
26
23
|
kind: v.picklist(['default', 'named', 'namespace']),
|
|
@@ -28,7 +25,6 @@ const ExportInfoSchema = v.object({
|
|
|
28
25
|
moduleSpecifier: v.optional(v.string()),
|
|
29
26
|
declarationKind: v.optional(DeclarationKindSchema),
|
|
30
27
|
});
|
|
31
|
-
// Schema pour FileAnalysis
|
|
32
28
|
const FileAnalysisSchema = v.object({
|
|
33
29
|
relativePath: v.string(),
|
|
34
30
|
imports: v.array(ImportInfoSchema),
|
package/lib/schemas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sources":["../src/schemas.ts"],"sourcesContent":["import * as v from 'valibot';\nimport { PROPERTIES } from './constants';\n\
|
|
1
|
+
{"version":3,"file":"schemas.js","sources":["../src/schemas.ts"],"sourcesContent":["import * as v from 'valibot';\nimport { PROPERTIES } from './constants';\n\nexport const DeclarationKindSchema = v.picklist([\n 'function',\n 'class',\n 'interface',\n 'type',\n 'variable',\n 'const',\n 'let',\n 'enum',\n]);\n\nexport const ImportInfoSchema = v.object({\n moduleSpecifier: v.string(),\n kind: v.picklist(['default', 'named', 'namespace', 'side-effect']),\n namedImports: v.optional(v.array(v.string())),\n default: v.optional(v.string()),\n isDynamic: v.optional(v.boolean()),\n});\n\nexport const ExportInfoSchema = v.object({\n name: v.string(),\n kind: v.picklist(['default', 'named', 'namespace']),\n text: v.optional(v.string()),\n moduleSpecifier: v.optional(v.string()),\n declarationKind: v.optional(DeclarationKindSchema),\n});\n\nexport const FileAnalysisSchema = v.object({\n relativePath: v.string(),\n imports: v.array(ImportInfoSchema),\n exports: v.optional(v.array(ExportInfoSchema)),\n text: v.string(),\n});\n\n// Schema pour CodebaseAnalysis\nexport const CodebaseAnalysisSchema = v.record(\n v.string(),\n FileAnalysisSchema,\n);\n\n// Schema pour les statistiques d'analyse\nexport const AnalysisStatsSchema = v.object({\n files: v.number(),\n imports: v.number(),\n exports: v.number(),\n});\n\n// Schema complet pour un fichier .code contenant l'analyse complète\nexport const CodeAnalysisFileSchema = v.object({\n [PROPERTIES.CODEBASE_ANALYSIS]: CodebaseAnalysisSchema,\n [PROPERTIES.STATS]: v.optional(AnalysisStatsSchema),\n});\n\n// Types inférés des schémas\nexport type DeclarationKind = v.InferOutput<typeof DeclarationKindSchema>;\nexport type ImportInfo = v.InferOutput<typeof ImportInfoSchema>;\nexport type ExportInfo = v.InferOutput<typeof ExportInfoSchema>;\nexport type FileAnalysis = v.InferOutput<typeof FileAnalysisSchema>;\nexport type CodebaseAnalysis = v.InferOutput<\n typeof CodebaseAnalysisSchema\n>;\nexport type AnalysisStats = v.InferOutput<typeof AnalysisStatsSchema>;\nexport type CodeAnalysisFile = v.InferOutput<\n typeof CodeAnalysisFileSchema\n>;\n"],"names":[],"mappings":";;;AAGO,MAAM,qBAAqB,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC9C,UAAU;IACV,OAAO;IACP,WAAW;IACX,MAAM;IACN,UAAU;IACV,OAAO;IACP,KAAK;IACL,MAAM;AACP,CAAA;AAEM,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;AACvC,IAAA,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;AAC3B,IAAA,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;AAClE,IAAA,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC/B,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AACnC,CAAA;AAEM,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;AACvC,IAAA,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;AAChB,IAAA,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACnD,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5B,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AACvC,IAAA,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;AACnD,CAAA;AAEM,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;AACzC,IAAA,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;AACxB,IAAA,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAClC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAC9C,IAAA,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;AACjB,CAAA;AAED;AACO,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAC5C,CAAC,CAAC,MAAM,EAAE,EACV,kBAAkB;AAGpB;AACO,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;AAC1C,IAAA,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;AACjB,IAAA,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;AACnB,IAAA,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;AACpB,CAAA;AAED;AACO,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;AAC7C,IAAA,CAAC,UAAU,CAAC,iBAAiB,GAAG,sBAAsB;IACtD,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;AACpD,CAAA;;;;"}
|
package/lib/types.d.ts
CHANGED
|
@@ -1,38 +1,3 @@
|
|
|
1
|
-
export type DeclarationKind = 'function' | 'class' | 'interface' | 'type' | 'variable' | 'const' | 'let' | 'enum';
|
|
2
|
-
export type ImportInfo = {
|
|
3
|
-
/** Module importé (ex: './utils', 'fs', etc.) */
|
|
4
|
-
moduleSpecifier: string;
|
|
5
|
-
/** Type d'import (default, named, namespace, etc.) */
|
|
6
|
-
kind: 'default' | 'named' | 'namespace' | 'side-effect';
|
|
7
|
-
/** Noms importés pour les imports named */
|
|
8
|
-
namedImports?: string[];
|
|
9
|
-
/** Nom de l'import default ou namespace */
|
|
10
|
-
default?: string;
|
|
11
|
-
/** Import dynamique */
|
|
12
|
-
isDynamic?: boolean;
|
|
13
|
-
};
|
|
14
|
-
export type ExportInfo = {
|
|
15
|
-
/** Nom de l'export */
|
|
16
|
-
name: string;
|
|
17
|
-
/** Type d'export */
|
|
18
|
-
kind: 'default' | 'named' | 'namespace';
|
|
19
|
-
/** Texte complet de l'export */
|
|
20
|
-
text?: string;
|
|
21
|
-
/** Si c'est un re-export, le module source */
|
|
22
|
-
moduleSpecifier?: string;
|
|
23
|
-
/** Si c'est une déclaration (function, class, etc.) */
|
|
24
|
-
declarationKind?: DeclarationKind;
|
|
25
|
-
};
|
|
26
|
-
export type FileAnalysis = {
|
|
27
|
-
/** Chemin relatif du fichier depuis src/ */
|
|
28
|
-
relativePath: string;
|
|
29
|
-
/** Liste des imports du fichier */
|
|
30
|
-
imports: ImportInfo[];
|
|
31
|
-
/** Liste des exports du fichier */
|
|
32
|
-
exports: ExportInfo[];
|
|
33
|
-
text: string;
|
|
34
|
-
};
|
|
35
|
-
export type CodebaseAnalysis = Record<string, FileAnalysis>;
|
|
36
1
|
/**
|
|
37
2
|
* NOmit type - Auto-generated expression
|
|
38
3
|
*
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC"}
|