@bemedev/codebase 0.1.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/README.md +8 -8
  2. package/lib/_virtual/_rolldown/runtime.cjs +23 -0
  3. package/lib/analyse.cjs +48 -62
  4. package/lib/analyse.cjs.map +1 -1
  5. package/lib/analyse.d.ts +21 -3
  6. package/lib/analyse.js +45 -60
  7. package/lib/analyse.js.map +1 -1
  8. package/lib/analyse.utils.cjs +154 -205
  9. package/lib/analyse.utils.cjs.map +1 -1
  10. package/lib/analyse.utils.d.ts +1 -2
  11. package/lib/analyse.utils.js +153 -203
  12. package/lib/analyse.utils.js.map +1 -1
  13. package/lib/cli/cli.cjs +28 -27
  14. package/lib/cli/cli.cjs.map +1 -1
  15. package/lib/cli/cli.d.ts +0 -1
  16. package/lib/cli/cli.js +25 -24
  17. package/lib/cli/cli.js.map +1 -1
  18. package/lib/cli/constants.cjs +6 -5
  19. package/lib/cli/constants.cjs.map +1 -1
  20. package/lib/cli/constants.d.ts +0 -1
  21. package/lib/cli/constants.js +5 -3
  22. package/lib/cli/constants.js.map +1 -1
  23. package/lib/cli/index.cjs +6 -6
  24. package/lib/cli/index.cjs.map +1 -1
  25. package/lib/cli/index.d.ts +0 -1
  26. package/lib/cli/index.js +7 -4
  27. package/lib/cli/index.js.map +1 -1
  28. package/lib/constants.cjs +26 -28
  29. package/lib/constants.cjs.map +1 -1
  30. package/lib/constants.d.ts +0 -1
  31. package/lib/constants.js +24 -26
  32. package/lib/constants.js.map +1 -1
  33. package/lib/exports.cjs +51 -72
  34. package/lib/exports.cjs.map +1 -1
  35. package/lib/exports.d.ts +1 -2
  36. package/lib/exports.js +49 -70
  37. package/lib/exports.js.map +1 -1
  38. package/lib/functions/add.cjs +71 -84
  39. package/lib/functions/add.cjs.map +1 -1
  40. package/lib/functions/add.d.ts +1 -2
  41. package/lib/functions/add.js +68 -82
  42. package/lib/functions/add.js.map +1 -1
  43. package/lib/functions/generate.cjs +53 -56
  44. package/lib/functions/generate.cjs.map +1 -1
  45. package/lib/functions/generate.d.ts +1 -2
  46. package/lib/functions/generate.js +51 -54
  47. package/lib/functions/generate.js.map +1 -1
  48. package/lib/functions/index.cjs +11 -16
  49. package/lib/functions/index.d.ts +0 -1
  50. package/lib/functions/index.js +5 -5
  51. package/lib/functions/init.cjs +68 -97
  52. package/lib/functions/init.cjs.map +1 -1
  53. package/lib/functions/init.d.ts +0 -1
  54. package/lib/functions/init.js +66 -95
  55. package/lib/functions/init.js.map +1 -1
  56. package/lib/functions/remove.cjs +85 -103
  57. package/lib/functions/remove.cjs.map +1 -1
  58. package/lib/functions/remove.d.ts +1 -2
  59. package/lib/functions/remove.js +82 -101
  60. package/lib/functions/remove.js.map +1 -1
  61. package/lib/helpers.cjs +32 -38
  62. package/lib/helpers.cjs.map +1 -1
  63. package/lib/helpers.d.ts +3 -4
  64. package/lib/helpers.js +30 -36
  65. package/lib/helpers.js.map +1 -1
  66. package/lib/imports.cjs +88 -124
  67. package/lib/imports.cjs.map +1 -1
  68. package/lib/imports.d.ts +2 -3
  69. package/lib/imports.js +86 -122
  70. package/lib/imports.js.map +1 -1
  71. package/lib/index.cjs +22 -24
  72. package/lib/index.d.ts +4 -4
  73. package/lib/index.js +8 -6
  74. package/lib/schemas.cjs +53 -64
  75. package/lib/schemas.cjs.map +1 -1
  76. package/lib/schemas.d.ts +1 -2
  77. package/lib/schemas.js +43 -36
  78. package/lib/schemas.js.map +1 -1
  79. package/lib/types.d.ts +0 -1
  80. package/lib/utils.cjs +9 -10
  81. package/lib/utils.cjs.map +1 -1
  82. package/lib/utils.d.ts +0 -1
  83. package/lib/utils.js +8 -8
  84. package/lib/utils.js.map +1 -1
  85. package/package.json +56 -44
  86. package/CHANGE_LOG.md +0 -161
  87. package/lib/analyse.d.ts.map +0 -1
  88. package/lib/analyse.utils.d.ts.map +0 -1
  89. package/lib/cli/cli.d.ts.map +0 -1
  90. package/lib/cli/constants.d.ts.map +0 -1
  91. package/lib/cli/index.d.ts.map +0 -1
  92. package/lib/constants.d.ts.map +0 -1
  93. package/lib/exports.d.ts.map +0 -1
  94. package/lib/functions/add.d.ts.map +0 -1
  95. package/lib/functions/generate.d.ts.map +0 -1
  96. package/lib/functions/index.cjs.map +0 -1
  97. package/lib/functions/index.d.ts.map +0 -1
  98. package/lib/functions/index.js.map +0 -1
  99. package/lib/functions/init.d.ts.map +0 -1
  100. package/lib/functions/remove.d.ts.map +0 -1
  101. package/lib/helpers.d.ts.map +0 -1
  102. package/lib/imports.d.ts.map +0 -1
  103. package/lib/index.cjs.map +0 -1
  104. package/lib/index.d.ts.map +0 -1
  105. package/lib/index.js.map +0 -1
  106. package/lib/schemas.d.ts.map +0 -1
  107. package/lib/types.d.ts.map +0 -1
  108. package/lib/utils.d.ts.map +0 -1
package/lib/imports.js CHANGED
@@ -1,131 +1,95 @@
1
- import { join, relative } from 'path';
2
- import { SyntaxKind } from 'ts-morph';
3
-
1
+ import { join, relative } from "path";
2
+ import { SyntaxKind } from "ts-morph";
3
+ //#region src/imports.ts
4
4
  /**
5
- * Résout le moduleSpecifier en utilisant les paths du tsconfig si il commence par "#"
6
- */
5
+ * Résout le moduleSpecifier en utilisant les paths du tsconfig si il commence par "#"
6
+ */
7
7
  const resolveModuleSpecifier = (sourceFile, moduleSpecifier) => {
8
- const paths = sourceFile.getProject().getCompilerOptions().paths;
9
- if (!paths)
10
- return moduleSpecifier;
11
- const baseUrl = sourceFile.getProject().getCompilerOptions().baseUrl;
12
- const paths2 = Object.entries(paths);
13
- // Chercher la correspondance dans les paths
14
- for (const [pattern, mappings] of paths2) {
15
- // Remplacer * par une regex pour matcher
16
- const regexPattern = pattern.replace(/\*/g, '(.*)');
17
- const regex = new RegExp(`^${regexPattern}$`);
18
- const match = moduleSpecifier.match(regex);
19
- if (match) {
20
- // Prendre le premier mapping disponible
21
- const first = mappings[0];
22
- // Résoudre le chemin absolu
23
- let relativedPath = baseUrl ? join(baseUrl, first) : first;
24
- if (match[1]) {
25
- relativedPath = relativedPath.replace('*', match[1]);
26
- }
27
- // Calculer le chemin relatif depuis le fichier source actuel
28
- const sourceFileDir = relative(process.cwd(), sourceFile.getDirectoryPath());
29
- const relativePath = relative(sourceFileDir, relativedPath);
30
- // S'assurer que le chemin relatif commence par ./ ou ../
31
- return relativePath.startsWith('.')
32
- ? relativePath
33
- : `./${relativePath}`;
34
- }
35
- }
36
- return moduleSpecifier;
8
+ const paths = sourceFile.getProject().getCompilerOptions().paths;
9
+ if (!paths) return moduleSpecifier;
10
+ const baseUrl = sourceFile.getProject().getCompilerOptions().baseUrl;
11
+ const paths2 = Object.entries(paths);
12
+ for (const [pattern, mappings] of paths2) {
13
+ const regexPattern = pattern.replace(/\*/g, "(.*)");
14
+ const regex = new RegExp(`^${regexPattern}$`);
15
+ const match = moduleSpecifier.match(regex);
16
+ if (match) {
17
+ const first = mappings[0];
18
+ let relativedPath = baseUrl ? join(baseUrl, first) : first;
19
+ if (match[1]) relativedPath = relativedPath.replace("*", match[1]);
20
+ const relativePath = relative(relative(process.cwd(), sourceFile.getDirectoryPath()), relativedPath);
21
+ return relativePath.startsWith(".") ? relativePath : `./${relativePath}`;
22
+ }
23
+ }
24
+ return moduleSpecifier;
37
25
  };
38
26
  /**
39
- * Analyse les imports d'un fichier
40
- */
27
+ * Analyse les imports d'un fichier
28
+ */
41
29
  const analyzeImports = (sourceFile) => {
42
- const imports = [];
43
- // Import declarations (import ... from '...')
44
- sourceFile.getImportDeclarations().forEach(importDecl => {
45
- // Determine if this is a type-only import
46
- const isTypeOnly = importDecl.isTypeOnly();
47
- const rawModuleSpecifier = importDecl.getModuleSpecifierValue();
48
- const moduleSpecifier = resolveModuleSpecifier(sourceFile, rawModuleSpecifier);
49
- // Import default
50
- const defaultImport = importDecl.getDefaultImport();
51
- if (defaultImport) {
52
- imports.push({
53
- moduleSpecifier,
54
- kind: 'default',
55
- default: defaultImport.getText(),
56
- isTypeOnly,
57
- });
58
- }
59
- // Import namespace (* as name)
60
- const namespaceImport = importDecl.getNamespaceImport();
61
- if (namespaceImport) {
62
- imports.push({
63
- moduleSpecifier,
64
- kind: 'namespace',
65
- default: namespaceImport.getText(),
66
- isTypeOnly,
67
- });
68
- }
69
- // Named imports ({ name1, name2 })
70
- const namedImports = importDecl.getNamedImports();
71
- if (namedImports.length > 0) {
72
- imports.push({
73
- moduleSpecifier,
74
- kind: 'named',
75
- namedImports: namedImports.map(ni => ni.getName()),
76
- isTypeOnly,
77
- });
78
- }
79
- // Side-effect import (import '...')
80
- if (!defaultImport && !namespaceImport && namedImports.length === 0) {
81
- imports.push({
82
- moduleSpecifier,
83
- kind: 'side-effect',
84
- isTypeOnly,
85
- });
86
- }
87
- });
88
- // Dynamic imports (import('...'))
89
- sourceFile
90
- .getDescendantsOfKind(SyntaxKind.CallExpression)
91
- .forEach(callExpr => {
92
- if (callExpr.getExpression().getKind() === SyntaxKind.ImportKeyword) {
93
- const arg = callExpr.getArguments()[0];
94
- if (arg && arg.getKind() === SyntaxKind.StringLiteral) {
95
- const rawModuleSpecifier = arg.getText().replace(/['"]/g, '');
96
- const moduleSpecifier = resolveModuleSpecifier(sourceFile, rawModuleSpecifier);
97
- imports.push({
98
- moduleSpecifier,
99
- kind: 'side-effect',
100
- isDynamic: true,
101
- });
102
- }
103
- }
104
- });
105
- return imports;
30
+ const imports = [];
31
+ sourceFile.getImportDeclarations().forEach((importDecl) => {
32
+ const isTypeOnly = importDecl.isTypeOnly();
33
+ const moduleSpecifier = resolveModuleSpecifier(sourceFile, importDecl.getModuleSpecifierValue());
34
+ const defaultImport = importDecl.getDefaultImport();
35
+ if (defaultImport) imports.push({
36
+ moduleSpecifier,
37
+ kind: "default",
38
+ default: defaultImport.getText(),
39
+ isTypeOnly
40
+ });
41
+ const namespaceImport = importDecl.getNamespaceImport();
42
+ if (namespaceImport) imports.push({
43
+ moduleSpecifier,
44
+ kind: "namespace",
45
+ default: namespaceImport.getText(),
46
+ isTypeOnly
47
+ });
48
+ const namedImports = importDecl.getNamedImports();
49
+ if (namedImports.length > 0) imports.push({
50
+ moduleSpecifier,
51
+ kind: "named",
52
+ namedImports: namedImports.map((ni) => ni.getName()),
53
+ isTypeOnly
54
+ });
55
+ if (!defaultImport && !namespaceImport && namedImports.length === 0) imports.push({
56
+ moduleSpecifier,
57
+ kind: "side-effect",
58
+ isTypeOnly
59
+ });
60
+ });
61
+ sourceFile.getDescendantsOfKind(SyntaxKind.CallExpression).forEach((callExpr) => {
62
+ if (callExpr.getExpression().getKind() === SyntaxKind.ImportKeyword) {
63
+ const arg = callExpr.getArguments()[0];
64
+ if (arg && arg.getKind() === SyntaxKind.StringLiteral) {
65
+ const moduleSpecifier = resolveModuleSpecifier(sourceFile, arg.getText().replace(/['"]/g, ""));
66
+ imports.push({
67
+ moduleSpecifier,
68
+ kind: "side-effect",
69
+ isDynamic: true
70
+ });
71
+ }
72
+ }
73
+ });
74
+ return imports;
106
75
  };
107
76
  const buildImportStrings = (imports) => {
108
- return imports.map(imp => {
109
- switch (imp.kind) {
110
- case 'named': {
111
- const namedImports = imp.namedImports?.join(', ') || '';
112
- return `import ${imp.isTypeOnly ? 'type ' : ''}{ ${namedImports} } from '${imp.moduleSpecifier}';`;
113
- }
114
- case 'namespace':
115
- return `import ${imp.isTypeOnly ? 'type ' : ''}* as ${imp.default} from '${imp.moduleSpecifier}';`;
116
- case 'side-effect': {
117
- if (imp.isDynamic) {
118
- return `// Dynamic import: import('${imp.moduleSpecifier}')`;
119
- }
120
- return `import '${imp.moduleSpecifier}';`;
121
- }
122
- case 'default':
123
- return `import ${imp.isTypeOnly ? 'type ' : ''}${imp.default} from '${imp.moduleSpecifier}';`;
124
- default:
125
- return '';
126
- }
127
- });
77
+ return imports.map((imp) => {
78
+ switch (imp.kind) {
79
+ case "named": {
80
+ const namedImports = imp.namedImports?.join(", ") || "";
81
+ return `import ${imp.isTypeOnly ? "type " : ""}{ ${namedImports} } from '${imp.moduleSpecifier}';`;
82
+ }
83
+ case "namespace": return `import ${imp.isTypeOnly ? "type " : ""}* as ${imp.default} from '${imp.moduleSpecifier}';`;
84
+ case "side-effect":
85
+ if (imp.isDynamic) return `// Dynamic import: import('${imp.moduleSpecifier}')`;
86
+ return `import '${imp.moduleSpecifier}';`;
87
+ case "default": return `import ${imp.isTypeOnly ? "type " : ""}${imp.default} from '${imp.moduleSpecifier}';`;
88
+ default: return "";
89
+ }
90
+ });
128
91
  };
129
-
92
+ //#endregion
130
93
  export { analyzeImports, buildImportStrings };
131
- //# sourceMappingURL=imports.js.map
94
+
95
+ //# sourceMappingURL=imports.js.map
@@ -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 './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 // Determine if this is a type-only import\n const isTypeOnly = importDecl.isTypeOnly();\n\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 isTypeOnly,\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 isTypeOnly,\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 isTypeOnly,\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 isTypeOnly,\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 ${imp.isTypeOnly ? 'type ' : ''}{ ${namedImports} } from '${imp.moduleSpecifier}';`;\n }\n case 'namespace':\n return `import ${imp.isTypeOnly ? 'type ' : ''}* 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.isTypeOnly ? 'type ' : ''}${imp.default} from '${imp.moduleSpecifier}';`;\n default:\n return '';\n }\n });\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imports.js","names":[],"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(\".\") ? relativePath : `./${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 // Determine if this is a type-only import\n const isTypeOnly = importDecl.isTypeOnly();\n\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 isTypeOnly,\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 isTypeOnly,\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 isTypeOnly,\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 isTypeOnly,\n });\n }\n });\n\n // Dynamic imports (import('...'))\n sourceFile\n .getDescendantsOfKind(SyntaxKind.CallExpression)\n .forEach((callExpr) => {\n if (callExpr.getExpression().getKind() === SyntaxKind.ImportKeyword) {\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 ${imp.isTypeOnly ? \"type \" : \"\"}{ ${namedImports} } from '${imp.moduleSpecifier}';`;\n }\n case \"namespace\":\n return `import ${imp.isTypeOnly ? \"type \" : \"\"}* 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.isTypeOnly ? \"type \" : \"\"}${imp.default} from '${imp.moduleSpecifier}';`;\n default:\n return \"\";\n }\n });\n};\n"],"mappings":";;;;;;AAOA,MAAM,0BACJ,YACA,oBACW;CACX,MAAM,QAAQ,WAAW,YAAY,CAAC,oBAAoB,CAAC;AAE3D,KAAI,CAAC,MAAO,QAAO;CAEnB,MAAM,UAAU,WAAW,YAAY,CAAC,oBAAoB,CAAC;CAC7D,MAAM,SAAS,OAAO,QAAQ,MAAM;AAGpC,MAAK,MAAM,CAAC,SAAS,aAAa,QAAQ;EAExC,MAAM,eAAe,QAAQ,QAAQ,OAAO,OAAO;EACnD,MAAM,QAAQ,IAAI,OAAO,IAAI,aAAa,GAAG;EAC7C,MAAM,QAAQ,gBAAgB,MAAM,MAAM;AAE1C,MAAI,OAAO;GAET,MAAM,QAAQ,SAAS;GAGvB,IAAI,gBAAgB,UAAU,KAAK,SAAS,MAAM,GAAG;AAErD,OAAI,MAAM,GACR,iBAAgB,cAAc,QAAQ,KAAK,MAAM,GAAG;GAQtD,MAAM,eAAe,SAJC,SACpB,QAAQ,KAAK,EACb,WAAW,kBAAkB,CAC9B,EAC4C,cAAc;AAG3D,UAAO,aAAa,WAAW,IAAI,GAAG,eAAe,KAAK;;;AAI9D,QAAO;;;;;AAMT,MAAa,kBAAkB,eAAyC;CACtE,MAAM,UAAwB,EAAE;AAGhC,YAAW,uBAAuB,CAAC,SAAS,eAAe;EAEzD,MAAM,aAAa,WAAW,YAAY;EAG1C,MAAM,kBAAkB,uBACtB,YAFyB,WAAW,yBAAyB,CAI9D;EAGD,MAAM,gBAAgB,WAAW,kBAAkB;AACnD,MAAI,cACF,SAAQ,KAAK;GACX;GACA,MAAM;GACN,SAAS,cAAc,SAAS;GAChC;GACD,CAAC;EAIJ,MAAM,kBAAkB,WAAW,oBAAoB;AACvD,MAAI,gBACF,SAAQ,KAAK;GACX;GACA,MAAM;GACN,SAAS,gBAAgB,SAAS;GAClC;GACD,CAAC;EAIJ,MAAM,eAAe,WAAW,iBAAiB;AACjD,MAAI,aAAa,SAAS,EACxB,SAAQ,KAAK;GACX;GACA,MAAM;GACN,cAAc,aAAa,KAAK,OAAO,GAAG,SAAS,CAAC;GACpD;GACD,CAAC;AAIJ,MAAI,CAAC,iBAAiB,CAAC,mBAAmB,aAAa,WAAW,EAChE,SAAQ,KAAK;GACX;GACA,MAAM;GACN;GACD,CAAC;GAEJ;AAGF,YACG,qBAAqB,WAAW,eAAe,CAC/C,SAAS,aAAa;AACrB,MAAI,SAAS,eAAe,CAAC,SAAS,KAAK,WAAW,eAAe;GACnE,MAAM,MAAM,SAAS,cAAc,CAAC;AACpC,OAAI,OAAO,IAAI,SAAS,KAAK,WAAW,eAAe;IAErD,MAAM,kBAAkB,uBACtB,YAFyB,IAAI,SAAS,CAAC,QAAQ,SAAS,GAAG,CAI5D;AACD,YAAQ,KAAK;KACX;KACA,MAAM;KACN,WAAW;KACZ,CAAC;;;GAGN;AAEJ,QAAO;;AAGT,MAAa,sBAAsB,YAA0B;AAC3D,QAAO,QAAQ,KAAK,QAAQ;AAC1B,UAAQ,IAAI,MAAZ;GACE,KAAK,SAAS;IACZ,MAAM,eAAe,IAAI,cAAc,KAAK,KAAK,IAAI;AACrD,WAAO,UAAU,IAAI,aAAa,UAAU,GAAG,IAAI,aAAa,WAAW,IAAI,gBAAgB;;GAEjG,KAAK,YACH,QAAO,UAAU,IAAI,aAAa,UAAU,GAAG,OAAO,IAAI,QAAQ,SAAS,IAAI,gBAAgB;GACjG,KAAK;AACH,QAAI,IAAI,UACN,QAAO,8BAA8B,IAAI,gBAAgB;AAE3D,WAAO,WAAW,IAAI,gBAAgB;GAGxC,KAAK,UACH,QAAO,UAAU,IAAI,aAAa,UAAU,KAAK,IAAI,QAAQ,SAAS,IAAI,gBAAgB;GAC5F,QACE,QAAO;;GAEX"}
package/lib/index.cjs CHANGED
@@ -1,24 +1,22 @@
1
- 'use strict';
2
-
3
- var functions_add = require('./functions/add.cjs');
4
- var functions_generate = require('./functions/generate.cjs');
5
- var functions_init = require('./functions/init.cjs');
6
- var functions_remove = require('./functions/remove.cjs');
7
- var schemas = require('./schemas.cjs');
8
-
9
-
10
-
11
- exports.add = functions_add.add;
12
- exports.generate = functions_generate.generate;
13
- exports.transformJSON = functions_generate.transformJSON;
14
- exports.createTypesStructure = functions_init.createTypesStructure;
15
- exports.init = functions_init.init;
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;
24
- //# sourceMappingURL=index.cjs.map
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_schemas = require("./schemas.cjs");
3
+ const require_analyse = require("./analyse.cjs");
4
+ const require_functions_add = require("./functions/add.cjs");
5
+ const require_functions_generate = require("./functions/generate.cjs");
6
+ const require_functions_init = require("./functions/init.cjs");
7
+ const require_functions_remove = require("./functions/remove.cjs");
8
+ require("./functions/index.cjs");
9
+ exports.AnalysisStatsSchema = require_schemas.AnalysisStatsSchema;
10
+ exports.CodeAnalysisFileSchema = require_schemas.CodeAnalysisFileSchema;
11
+ exports.CodebaseAnalysisSchema = require_schemas.CodebaseAnalysisSchema;
12
+ exports.DeclarationKindSchema = require_schemas.DeclarationKindSchema;
13
+ exports.ExportInfoSchema = require_schemas.ExportInfoSchema;
14
+ exports.FileAnalysisSchema = require_schemas.FileAnalysisSchema;
15
+ exports.ImportInfoSchema = require_schemas.ImportInfoSchema;
16
+ exports.add = require_functions_add.add;
17
+ exports.analyze = require_analyse.analyze;
18
+ exports.createTypesStructure = require_functions_init.createTypesStructure;
19
+ exports.generate = require_functions_generate.generate;
20
+ exports.init = require_functions_init.init;
21
+ exports.remove = require_functions_remove.remove;
22
+ exports.transformJSON = require_functions_generate.transformJSON;
package/lib/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from './functions';
2
- export * from './schemas';
3
- export * from './types';
4
- //# sourceMappingURL=index.d.ts.map
1
+ export * from "./analyse";
2
+ export * from "./functions";
3
+ export * from "./schemas";
4
+ export * from "./types";
package/lib/index.js CHANGED
@@ -1,6 +1,8 @@
1
- export { add } from './functions/add.js';
2
- export { generate, transformJSON } from './functions/generate.js';
3
- export { createTypesStructure, init } from './functions/init.js';
4
- export { remove } from './functions/remove.js';
5
- export { AnalysisStatsSchema, CodeAnalysisFileSchema, CodebaseAnalysisSchema, DeclarationKindSchema, ExportInfoSchema, FileAnalysisSchema, ImportInfoSchema } from './schemas.js';
6
- //# sourceMappingURL=index.js.map
1
+ import { AnalysisStatsSchema, CodeAnalysisFileSchema, CodebaseAnalysisSchema, DeclarationKindSchema, ExportInfoSchema, FileAnalysisSchema, ImportInfoSchema } from "./schemas.js";
2
+ import { analyze } from "./analyse.js";
3
+ import { add } from "./functions/add.js";
4
+ import { generate, transformJSON } from "./functions/generate.js";
5
+ import { createTypesStructure, init } from "./functions/init.js";
6
+ import { remove } from "./functions/remove.js";
7
+ import "./functions/index.js";
8
+ export { AnalysisStatsSchema, CodeAnalysisFileSchema, CodebaseAnalysisSchema, DeclarationKindSchema, ExportInfoSchema, FileAnalysisSchema, ImportInfoSchema, add, analyze, createTypesStructure, generate, init, remove, transformJSON };
package/lib/schemas.cjs CHANGED
@@ -1,72 +1,60 @@
1
- 'use strict';
2
-
3
- var v = require('valibot');
4
- var constants = require('./constants.cjs');
5
-
6
- function _interopNamespaceDefault(e) {
7
- var n = Object.create(null);
8
- if (e) {
9
- Object.keys(e).forEach(function (k) {
10
- if (k !== 'default') {
11
- var d = Object.getOwnPropertyDescriptor(e, k);
12
- Object.defineProperty(n, k, d.get ? d : {
13
- enumerable: true,
14
- get: function () { return e[k]; }
15
- });
16
- }
17
- });
18
- }
19
- n.default = e;
20
- return Object.freeze(n);
21
- }
22
-
23
- var v__namespace = /*#__PURE__*/_interopNamespaceDefault(v);
24
-
25
- const DeclarationKindSchema = v__namespace.picklist([
26
- 'function',
27
- 'class',
28
- 'interface',
29
- 'type',
30
- 'variable',
31
- 'const',
32
- 'let',
33
- 'enum',
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
3
+ const require_constants = require("./constants.cjs");
4
+ let valibot = require("valibot");
5
+ valibot = require_runtime.__toESM(valibot);
6
+ //#region src/schemas.ts
7
+ const DeclarationKindSchema = valibot.picklist([
8
+ "function",
9
+ "class",
10
+ "interface",
11
+ "type",
12
+ "variable",
13
+ "const",
14
+ "let",
15
+ "enum"
34
16
  ]);
35
- const ImportInfoSchema = v__namespace.object({
36
- moduleSpecifier: v__namespace.string(),
37
- kind: v__namespace.picklist(['default', 'named', 'namespace', 'side-effect']),
38
- namedImports: v__namespace.optional(v__namespace.array(v__namespace.string())),
39
- default: v__namespace.optional(v__namespace.string()),
40
- isDynamic: v__namespace.optional(v__namespace.boolean()),
41
- isTypeOnly: v__namespace.optional(v__namespace.boolean()),
17
+ const ImportInfoSchema = valibot.object({
18
+ moduleSpecifier: valibot.string(),
19
+ kind: valibot.picklist([
20
+ "default",
21
+ "named",
22
+ "namespace",
23
+ "side-effect"
24
+ ]),
25
+ namedImports: valibot.optional(valibot.array(valibot.string())),
26
+ default: valibot.optional(valibot.string()),
27
+ isDynamic: valibot.optional(valibot.boolean()),
28
+ isTypeOnly: valibot.optional(valibot.boolean())
42
29
  });
43
- const ExportInfoSchema = v__namespace.object({
44
- name: v__namespace.string(),
45
- kind: v__namespace.picklist(['default', 'named', 'namespace']),
46
- text: v__namespace.optional(v__namespace.string()),
47
- moduleSpecifier: v__namespace.optional(v__namespace.string()),
48
- declarationKind: v__namespace.optional(DeclarationKindSchema),
30
+ const ExportInfoSchema = valibot.object({
31
+ name: valibot.string(),
32
+ kind: valibot.picklist([
33
+ "default",
34
+ "named",
35
+ "namespace"
36
+ ]),
37
+ text: valibot.optional(valibot.string()),
38
+ moduleSpecifier: valibot.optional(valibot.string()),
39
+ declarationKind: valibot.optional(DeclarationKindSchema)
49
40
  });
50
- const FileAnalysisSchema = v__namespace.object({
51
- relativePath: v__namespace.string(),
52
- imports: v__namespace.array(ImportInfoSchema),
53
- exports: v__namespace.optional(v__namespace.array(ExportInfoSchema)),
54
- text: v__namespace.string(),
41
+ const FileAnalysisSchema = valibot.object({
42
+ relativePath: valibot.string(),
43
+ imports: valibot.array(ImportInfoSchema),
44
+ exports: valibot.optional(valibot.array(ExportInfoSchema)),
45
+ text: valibot.string()
55
46
  });
56
- // Schema pour CodebaseAnalysis
57
- const CodebaseAnalysisSchema = v__namespace.record(v__namespace.string(), FileAnalysisSchema);
58
- // Schema pour les statistiques d'analyse
59
- const AnalysisStatsSchema = v__namespace.object({
60
- files: v__namespace.number(),
61
- imports: v__namespace.number(),
62
- exports: v__namespace.number(),
47
+ const CodebaseAnalysisSchema = valibot.record(valibot.string(), FileAnalysisSchema);
48
+ const AnalysisStatsSchema = valibot.object({
49
+ files: valibot.number(),
50
+ imports: valibot.number(),
51
+ exports: valibot.number()
63
52
  });
64
- // Schema complet pour un fichier .code contenant l'analyse complète
65
- const CodeAnalysisFileSchema = v__namespace.object({
66
- [constants.PROPERTIES.CODEBASE_ANALYSIS]: CodebaseAnalysisSchema,
67
- [constants.PROPERTIES.STATS]: v__namespace.optional(AnalysisStatsSchema),
53
+ const CodeAnalysisFileSchema = valibot.object({
54
+ [require_constants.PROPERTIES.CODEBASE_ANALYSIS]: CodebaseAnalysisSchema,
55
+ [require_constants.PROPERTIES.STATS]: valibot.optional(AnalysisStatsSchema)
68
56
  });
69
-
57
+ //#endregion
70
58
  exports.AnalysisStatsSchema = AnalysisStatsSchema;
71
59
  exports.CodeAnalysisFileSchema = CodeAnalysisFileSchema;
72
60
  exports.CodebaseAnalysisSchema = CodebaseAnalysisSchema;
@@ -74,4 +62,5 @@ exports.DeclarationKindSchema = DeclarationKindSchema;
74
62
  exports.ExportInfoSchema = ExportInfoSchema;
75
63
  exports.FileAnalysisSchema = FileAnalysisSchema;
76
64
  exports.ImportInfoSchema = ImportInfoSchema;
77
- //# sourceMappingURL=schemas.cjs.map
65
+
66
+ //# sourceMappingURL=schemas.cjs.map
@@ -1 +1 @@
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 isTypeOnly: 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;IAClC,UAAU,EAAEA,YAAC,CAAC,QAAQ,CAACA,YAAC,CAAC,OAAO,EAAE,CAAC;AACpC,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;;;;;;;;;;"}
1
+ {"version":3,"file":"schemas.cjs","names":["v","PROPERTIES"],"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 isTypeOnly: 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(v.string(), FileAnalysisSchema);\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<typeof CodebaseAnalysisSchema>;\nexport type AnalysisStats = v.InferOutput<typeof AnalysisStatsSchema>;\nexport type CodeAnalysisFile = v.InferOutput<typeof CodeAnalysisFileSchema>;\n"],"mappings":";;;;;;AAGA,MAAa,wBAAwBA,QAAE,SAAS;CAC9C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC;AAEF,MAAa,mBAAmBA,QAAE,OAAO;CACvC,iBAAiBA,QAAE,QAAQ;CAC3B,MAAMA,QAAE,SAAS;EAAC;EAAW;EAAS;EAAa;EAAc,CAAC;CAClE,cAAcA,QAAE,SAASA,QAAE,MAAMA,QAAE,QAAQ,CAAC,CAAC;CAC7C,SAASA,QAAE,SAASA,QAAE,QAAQ,CAAC;CAC/B,WAAWA,QAAE,SAASA,QAAE,SAAS,CAAC;CAClC,YAAYA,QAAE,SAASA,QAAE,SAAS,CAAC;CACpC,CAAC;AAEF,MAAa,mBAAmBA,QAAE,OAAO;CACvC,MAAMA,QAAE,QAAQ;CAChB,MAAMA,QAAE,SAAS;EAAC;EAAW;EAAS;EAAY,CAAC;CACnD,MAAMA,QAAE,SAASA,QAAE,QAAQ,CAAC;CAC5B,iBAAiBA,QAAE,SAASA,QAAE,QAAQ,CAAC;CACvC,iBAAiBA,QAAE,SAAS,sBAAsB;CACnD,CAAC;AAEF,MAAa,qBAAqBA,QAAE,OAAO;CACzC,cAAcA,QAAE,QAAQ;CACxB,SAASA,QAAE,MAAM,iBAAiB;CAClC,SAASA,QAAE,SAASA,QAAE,MAAM,iBAAiB,CAAC;CAC9C,MAAMA,QAAE,QAAQ;CACjB,CAAC;AAGF,MAAa,yBAAyBA,QAAE,OAAOA,QAAE,QAAQ,EAAE,mBAAmB;AAG9E,MAAa,sBAAsBA,QAAE,OAAO;CAC1C,OAAOA,QAAE,QAAQ;CACjB,SAASA,QAAE,QAAQ;CACnB,SAASA,QAAE,QAAQ;CACpB,CAAC;AAGF,MAAa,yBAAyBA,QAAE,OAAO;EAC5CC,kBAAAA,WAAW,oBAAoB;EAC/BA,kBAAAA,WAAW,QAAQD,QAAE,SAAS,oBAAoB;CACpD,CAAC"}
package/lib/schemas.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import * as v from 'valibot';
1
+ import * as v from "valibot";
2
2
  export declare const DeclarationKindSchema: v.PicklistSchema<["function", "class", "interface", "type", "variable", "const", "let", "enum"], undefined>;
3
3
  export declare const ImportInfoSchema: v.ObjectSchema<{
4
4
  readonly moduleSpecifier: v.StringSchema<undefined>;
@@ -91,4 +91,3 @@ export type FileAnalysis = v.InferOutput<typeof FileAnalysisSchema>;
91
91
  export type CodebaseAnalysis = v.InferOutput<typeof CodebaseAnalysisSchema>;
92
92
  export type AnalysisStats = v.InferOutput<typeof AnalysisStatsSchema>;
93
93
  export type CodeAnalysisFile = v.InferOutput<typeof CodeAnalysisFileSchema>;
94
- //# sourceMappingURL=schemas.d.ts.map
package/lib/schemas.js CHANGED
@@ -1,50 +1,57 @@
1
- import * as v from 'valibot';
2
- import { PROPERTIES } from './constants.js';
3
-
1
+ import { PROPERTIES } from "./constants.js";
2
+ import * as v from "valibot";
3
+ //#region src/schemas.ts
4
4
  const DeclarationKindSchema = v.picklist([
5
- 'function',
6
- 'class',
7
- 'interface',
8
- 'type',
9
- 'variable',
10
- 'const',
11
- 'let',
12
- 'enum',
5
+ "function",
6
+ "class",
7
+ "interface",
8
+ "type",
9
+ "variable",
10
+ "const",
11
+ "let",
12
+ "enum"
13
13
  ]);
14
14
  const ImportInfoSchema = v.object({
15
- moduleSpecifier: v.string(),
16
- kind: v.picklist(['default', 'named', 'namespace', 'side-effect']),
17
- namedImports: v.optional(v.array(v.string())),
18
- default: v.optional(v.string()),
19
- isDynamic: v.optional(v.boolean()),
20
- isTypeOnly: v.optional(v.boolean()),
15
+ moduleSpecifier: v.string(),
16
+ kind: v.picklist([
17
+ "default",
18
+ "named",
19
+ "namespace",
20
+ "side-effect"
21
+ ]),
22
+ namedImports: v.optional(v.array(v.string())),
23
+ default: v.optional(v.string()),
24
+ isDynamic: v.optional(v.boolean()),
25
+ isTypeOnly: v.optional(v.boolean())
21
26
  });
22
27
  const ExportInfoSchema = v.object({
23
- name: v.string(),
24
- kind: v.picklist(['default', 'named', 'namespace']),
25
- text: v.optional(v.string()),
26
- moduleSpecifier: v.optional(v.string()),
27
- declarationKind: v.optional(DeclarationKindSchema),
28
+ name: v.string(),
29
+ kind: v.picklist([
30
+ "default",
31
+ "named",
32
+ "namespace"
33
+ ]),
34
+ text: v.optional(v.string()),
35
+ moduleSpecifier: v.optional(v.string()),
36
+ declarationKind: v.optional(DeclarationKindSchema)
28
37
  });
29
38
  const FileAnalysisSchema = v.object({
30
- relativePath: v.string(),
31
- imports: v.array(ImportInfoSchema),
32
- exports: v.optional(v.array(ExportInfoSchema)),
33
- text: v.string(),
39
+ relativePath: v.string(),
40
+ imports: v.array(ImportInfoSchema),
41
+ exports: v.optional(v.array(ExportInfoSchema)),
42
+ text: v.string()
34
43
  });
35
- // Schema pour CodebaseAnalysis
36
44
  const CodebaseAnalysisSchema = v.record(v.string(), FileAnalysisSchema);
37
- // Schema pour les statistiques d'analyse
38
45
  const AnalysisStatsSchema = v.object({
39
- files: v.number(),
40
- imports: v.number(),
41
- exports: v.number(),
46
+ files: v.number(),
47
+ imports: v.number(),
48
+ exports: v.number()
42
49
  });
43
- // Schema complet pour un fichier .code contenant l'analyse complète
44
50
  const CodeAnalysisFileSchema = v.object({
45
- [PROPERTIES.CODEBASE_ANALYSIS]: CodebaseAnalysisSchema,
46
- [PROPERTIES.STATS]: v.optional(AnalysisStatsSchema),
51
+ [PROPERTIES.CODEBASE_ANALYSIS]: CodebaseAnalysisSchema,
52
+ [PROPERTIES.STATS]: v.optional(AnalysisStatsSchema)
47
53
  });
48
-
54
+ //#endregion
49
55
  export { AnalysisStatsSchema, CodeAnalysisFileSchema, CodebaseAnalysisSchema, DeclarationKindSchema, ExportInfoSchema, FileAnalysisSchema, ImportInfoSchema };
50
- //# sourceMappingURL=schemas.js.map
56
+
57
+ //# sourceMappingURL=schemas.js.map