optiprune 2.1.5 → 2.1.7

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 (101) hide show
  1. package/bin/runner.js +26 -0
  2. package/package.json +10 -37
  3. package/dist/ast-utils.d.ts +0 -149
  4. package/dist/ast-utils.js +0 -36
  5. package/dist/ast-utils.js.map +0 -1
  6. package/dist/cache.d.ts +0 -14
  7. package/dist/cache.js +0 -36
  8. package/dist/cache.js.map +0 -1
  9. package/dist/cli.d.ts +0 -2
  10. package/dist/cli.js +0 -68
  11. package/dist/cli.js.map +0 -1
  12. package/dist/config-loader.d.ts +0 -4
  13. package/dist/config-loader.js +0 -84
  14. package/dist/config-loader.js.map +0 -1
  15. package/dist/coverage-tracker.d.ts +0 -39
  16. package/dist/coverage-tracker.js +0 -61
  17. package/dist/coverage-tracker.js.map +0 -1
  18. package/dist/engine.d.ts +0 -17
  19. package/dist/engine.js +0 -215
  20. package/dist/engine.js.map +0 -1
  21. package/dist/framework-plugins.d.ts +0 -16
  22. package/dist/framework-plugins.js +0 -127
  23. package/dist/framework-plugins.js.map +0 -1
  24. package/dist/fs-utils.d.ts +0 -32
  25. package/dist/fs-utils.js +0 -415
  26. package/dist/fs-utils.js.map +0 -1
  27. package/dist/graph.d.ts +0 -42
  28. package/dist/graph.js +0 -583
  29. package/dist/graph.js.map +0 -1
  30. package/dist/index.d.ts +0 -3
  31. package/dist/index.js +0 -451
  32. package/dist/index.js.map +0 -1
  33. package/dist/instrument.d.ts +0 -5
  34. package/dist/instrument.js +0 -108
  35. package/dist/instrument.js.map +0 -1
  36. package/dist/layer2.d.ts +0 -6
  37. package/dist/layer2.js +0 -224
  38. package/dist/layer2.js.map +0 -1
  39. package/dist/layer3.d.ts +0 -7
  40. package/dist/layer3.js +0 -346
  41. package/dist/layer3.js.map +0 -1
  42. package/dist/layer4.d.ts +0 -8
  43. package/dist/layer4.js +0 -627
  44. package/dist/layer4.js.map +0 -1
  45. package/dist/layer5.d.ts +0 -6
  46. package/dist/layer5.js +0 -141
  47. package/dist/layer5.js.map +0 -1
  48. package/dist/layer6.d.ts +0 -26
  49. package/dist/layer6.js +0 -268
  50. package/dist/layer6.js.map +0 -1
  51. package/dist/layer7.d.ts +0 -28
  52. package/dist/layer7.js +0 -267
  53. package/dist/layer7.js.map +0 -1
  54. package/dist/parser.d.ts +0 -20
  55. package/dist/parser.js +0 -832
  56. package/dist/parser.js.map +0 -1
  57. package/dist/plugins/angular-plugin.d.ts +0 -7
  58. package/dist/plugins/angular-plugin.js +0 -60
  59. package/dist/plugins/angular-plugin.js.map +0 -1
  60. package/dist/plugins/astro-plugin.d.ts +0 -7
  61. package/dist/plugins/astro-plugin.js +0 -88
  62. package/dist/plugins/astro-plugin.js.map +0 -1
  63. package/dist/plugins/babel-plugin.d.ts +0 -8
  64. package/dist/plugins/babel-plugin.js +0 -132
  65. package/dist/plugins/babel-plugin.js.map +0 -1
  66. package/dist/plugins/esbuild-plugin.d.ts +0 -8
  67. package/dist/plugins/esbuild-plugin.js +0 -121
  68. package/dist/plugins/esbuild-plugin.js.map +0 -1
  69. package/dist/plugins/nestjs-plugin.d.ts +0 -7
  70. package/dist/plugins/nestjs-plugin.js +0 -69
  71. package/dist/plugins/nestjs-plugin.js.map +0 -1
  72. package/dist/plugins/nextjs-plugin.d.ts +0 -7
  73. package/dist/plugins/nextjs-plugin.js +0 -66
  74. package/dist/plugins/nextjs-plugin.js.map +0 -1
  75. package/dist/plugins/nuxtjs-plugin.d.ts +0 -7
  76. package/dist/plugins/nuxtjs-plugin.js +0 -80
  77. package/dist/plugins/nuxtjs-plugin.js.map +0 -1
  78. package/dist/plugins/svelte-plugin.d.ts +0 -7
  79. package/dist/plugins/svelte-plugin.js +0 -38
  80. package/dist/plugins/svelte-plugin.js.map +0 -1
  81. package/dist/plugins/vuejs-plugin.d.ts +0 -7
  82. package/dist/plugins/vuejs-plugin.js +0 -63
  83. package/dist/plugins/vuejs-plugin.js.map +0 -1
  84. package/dist/reporters.d.ts +0 -3
  85. package/dist/reporters.js +0 -75
  86. package/dist/reporters.js.map +0 -1
  87. package/dist/semantic-graph.d.ts +0 -44
  88. package/dist/semantic-graph.js +0 -88
  89. package/dist/semantic-graph.js.map +0 -1
  90. package/dist/symbolic-engine.d.ts +0 -19
  91. package/dist/symbolic-engine.js +0 -51
  92. package/dist/symbolic-engine.js.map +0 -1
  93. package/dist/topology-manager.d.ts +0 -23
  94. package/dist/topology-manager.js +0 -144
  95. package/dist/topology-manager.js.map +0 -1
  96. package/dist/types.d.ts +0 -265
  97. package/dist/types.js +0 -11
  98. package/dist/types.js.map +0 -1
  99. package/dist/workspace.d.ts +0 -6
  100. package/dist/workspace.js +0 -105
  101. package/dist/workspace.js.map +0 -1
package/dist/engine.js DELETED
@@ -1,215 +0,0 @@
1
- import { walkAst as yukuWalk } from "./parser.js";
2
- import { t } from "./ast-utils.js";
3
- import fs from "node:fs/promises";
4
- import path from "pathe";
5
- import { fileURLToPath, pathToFileURL } from "node:url";
6
- export class PluginEngine {
7
- plugins = [];
8
- findings = [];
9
- register(plugin) {
10
- this.plugins.push(plugin);
11
- }
12
- /**
13
- * Dynamically loads all plugins from the src/plugins directory.
14
- * Handles errors gracefully to ensure the core analysis continues.
15
- */
16
- async loadDynamicPlugins() {
17
- try {
18
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
19
- const pluginsDir = path.join(__dirname, "plugins");
20
- let files = [];
21
- try {
22
- files = await fs.readdir(pluginsDir);
23
- }
24
- catch (e) {
25
- // Directory might not exist or be inaccessible
26
- return;
27
- }
28
- for (const file of files) {
29
- if ((file.endsWith(".ts") || file.endsWith(".js")) && !file.endsWith(".d.ts")) {
30
- try {
31
- const pluginPath = pathToFileURL(path.join(pluginsDir, file)).href;
32
- const module = await import(pluginPath);
33
- const keys = Object.keys(module);
34
- const firstKey = keys[0];
35
- const plugin = module.default || (firstKey ? module[firstKey] : null);
36
- if (plugin && typeof plugin === "object" && plugin.name && plugin.lifecycle) {
37
- this.register(plugin);
38
- }
39
- }
40
- catch (err) {
41
- console.warn(`[Plugin Engine] Failed to load plugin ${file}: ${err instanceof Error ? err.message : String(err)}`);
42
- }
43
- }
44
- }
45
- }
46
- catch (err) {
47
- console.warn(`[Plugin Engine] Error during dynamic plugin loading: ${err instanceof Error ? err.message : String(err)}`);
48
- }
49
- }
50
- async run(context) {
51
- const adapter = this.createAdapter(context);
52
- // 0. Dynamic Loading
53
- await this.loadDynamicPlugins();
54
- // 1. Detection Phase
55
- for (const plugin of this.plugins) {
56
- try {
57
- if (plugin.detect) {
58
- plugin.enabled = await plugin.detect(adapter);
59
- }
60
- else {
61
- plugin.enabled = true; // Enabled by default if no detect method
62
- }
63
- }
64
- catch (err) {
65
- console.error(`[Plugin Engine] Error in detect phase for ${plugin.name}:`, err);
66
- plugin.enabled = false;
67
- }
68
- }
69
- // 2. onProjectInit
70
- for (const plugin of this.plugins) {
71
- if (plugin.enabled && plugin.lifecycle.onProjectInit) {
72
- try {
73
- await plugin.lifecycle.onProjectInit(adapter);
74
- }
75
- catch (err) {
76
- console.error(`[Plugin Engine] Error in onProjectInit for ${plugin.name}:`, err);
77
- }
78
- }
79
- }
80
- // 3. File-level processing
81
- for (const module of context.modules.values()) {
82
- if (!module.ast)
83
- continue;
84
- // onFileStart
85
- for (const plugin of this.plugins) {
86
- if (plugin.enabled && plugin.lifecycle.onFileStart) {
87
- try {
88
- await plugin.lifecycle.onFileStart(module.id, adapter);
89
- }
90
- catch (err) {
91
- console.error(`[Plugin Engine] Error in onFileStart for ${plugin.name} on ${module.id}:`, err);
92
- }
93
- }
94
- }
95
- // onASTNode (Traversal)
96
- // Use yuku-parser's walk instead of @babel/traverse
97
- try {
98
- yukuWalk(module.ast, (node) => {
99
- for (const plugin of this.plugins) {
100
- if (plugin.enabled && plugin.lifecycle.onASTNode) {
101
- try {
102
- plugin.lifecycle.onASTNode(node, module.id, adapter);
103
- }
104
- catch (err) {
105
- // Suppress per-node errors to avoid flooding logs, but ensure isolation
106
- }
107
- }
108
- }
109
- });
110
- }
111
- catch (err) {
112
- console.error(`[Plugin Engine] Error during AST traversal for ${module.id}:`, err);
113
- }
114
- }
115
- // 4. onAnalysisComplete
116
- for (const plugin of this.plugins) {
117
- if (plugin.enabled && plugin.lifecycle.onAnalysisComplete) {
118
- try {
119
- await plugin.lifecycle.onAnalysisComplete(adapter);
120
- }
121
- catch (err) {
122
- console.error(`[Plugin Engine] Error in onAnalysisComplete for ${plugin.name}:`, err);
123
- }
124
- }
125
- }
126
- return this.findings;
127
- }
128
- createAdapter(context) {
129
- return {
130
- getAst: (fileId) => context.modules.get(fileId)?.ast,
131
- getSymbol: (name, fileId) => {
132
- const module = context.modules.get(fileId);
133
- return module?.exports.find(e => e.name === name || e.exportedAs === name);
134
- },
135
- getType: (node) => {
136
- // Simplified type inference
137
- if (t.isStringLiteral(node))
138
- return 'string';
139
- if (t.isNumericLiteral(node))
140
- return 'number';
141
- if (t.isBooleanLiteral(node))
142
- return 'boolean';
143
- return undefined;
144
- },
145
- getDependencies: (fileId) => {
146
- const module = context.modules.get(fileId);
147
- return module?.edges.map(e => e.target).filter(Boolean) || [];
148
- },
149
- getConfig: () => context.options,
150
- readFile: async (filename) => {
151
- try {
152
- const fullPath = path.isAbsolute(filename) ? filename : path.join(context.options.rootDir, filename);
153
- return await fs.readFile(fullPath, 'utf8');
154
- }
155
- catch {
156
- return null;
157
- }
158
- },
159
- readJson: async (filename) => {
160
- try {
161
- const fullPath = path.isAbsolute(filename) ? filename : path.join(context.options.rootDir, filename);
162
- const content = await fs.readFile(fullPath, 'utf8');
163
- return JSON.parse(content);
164
- }
165
- catch {
166
- return null;
167
- }
168
- },
169
- emitFinding: (finding) => {
170
- this.findings.push({
171
- rule: 'plugin-finding', // default fallback
172
- ...finding, // overrides 'rule' if finding.rule was provided
173
- });
174
- },
175
- markAsUsed: (fileId, symbol) => {
176
- context.reachable.add(fileId);
177
- if (symbol) {
178
- context.usedExports.add(`${fileId}:${symbol}`);
179
- }
180
- },
181
- attachMetadata: (node, key, value) => {
182
- node.metadata = node.metadata || {};
183
- node.metadata[key] = value;
184
- }
185
- };
186
- }
187
- }
188
- /**
189
- * Legacy ZodPlugin refactored to new architecture
190
- */
191
- export const ZodPlugin = {
192
- name: "zod-plugin",
193
- version: "2.0.0",
194
- lifecycle: {
195
- onASTNode: (node, fileId, adapter) => {
196
- // Pattern: const User = z.object(...)
197
- if (t.isVariableDeclarator(node) && t.isIdentifier(node.id)) {
198
- const init = node.init;
199
- const isZod = t.isCallExpression(init) &&
200
- ((t.isMemberExpression(init.callee) && t.isIdentifier(init.callee.object) && (init.callee.object.name === 'z' || init.callee.object.name === 'zod')) ||
201
- (t.isIdentifier(init.callee) && init.callee.name === 'z'));
202
- if (isZod) {
203
- adapter.markAsUsed(fileId, node.id.name);
204
- }
205
- }
206
- // Dynamic property access: controller[method]()
207
- if (t.isMemberExpression(node) && node.computed) {
208
- if (t.isStringLiteral(node.property)) {
209
- adapter.markAsUsed(fileId, node.property.value);
210
- }
211
- }
212
- }
213
- }
214
- };
215
- //# sourceMappingURL=engine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { AnalyzerPlugin } from "./types.js";
2
- /**
3
- * React Plugin
4
- * Handles React-specific patterns like components and hooks.
5
- */
6
- export declare const ReactPlugin: AnalyzerPlugin;
7
- /**
8
- * Next.js Plugin
9
- * Handles Next.js specific entry points and conventions.
10
- */
11
- export declare const NextjsPlugin: AnalyzerPlugin;
12
- /**
13
- * Nuxt Plugin
14
- * Handles Nuxt-specific directory conventions and auto-imports.
15
- */
16
- export declare const NuxtPlugin: AnalyzerPlugin;
@@ -1,127 +0,0 @@
1
- /**
2
- * Utility to check for dependencies in package.json
3
- */
4
- async function hasDependency(adapter, name) {
5
- const pkg = await adapter.readJson('package.json');
6
- if (!pkg)
7
- return false;
8
- return !!(pkg.dependencies?.[name] || pkg.devDependencies?.[name] || pkg.peerDependencies?.[name]);
9
- }
10
- /**
11
- * React Plugin
12
- * Handles React-specific patterns like components and hooks.
13
- */
14
- export const ReactPlugin = {
15
- name: "react-plugin",
16
- version: "1.1.0",
17
- detect: async (adapter) => {
18
- return await hasDependency(adapter, 'react');
19
- },
20
- lifecycle: {
21
- onASTNode: (node, fileId, adapter) => {
22
- let targetNode = node;
23
- // Unwrap export declarations
24
- if ((node.type === 'ExportNamedDeclaration' || node.type === 'ExportDefaultDeclaration') &&
25
- node.declaration) {
26
- targetNode = node.declaration;
27
- }
28
- // 1. Function Declarations: function MyComponent() {}
29
- if (targetNode.type === 'FunctionDeclaration' && targetNode.id && /^[A-Z]/.test(targetNode.id.name)) {
30
- adapter.markAsUsed(fileId, targetNode.id.name);
31
- }
32
- // 2. Variable Declarations: const MyComponent = () => ... or function expression / JSX
33
- if (targetNode.type === 'VariableDeclaration' && Array.isArray(targetNode.declarations)) {
34
- for (const decl of targetNode.declarations) {
35
- if (decl.id?.type === 'Identifier' && /^[A-Z]/.test(decl.id.name)) {
36
- const init = decl.init;
37
- if (init &&
38
- (init.type === 'ArrowFunctionExpression' ||
39
- init.type === 'FunctionExpression' ||
40
- init.type === 'JSXElement')) {
41
- adapter.markAsUsed(fileId, decl.id.name);
42
- }
43
- }
44
- }
45
- }
46
- // 3. Hooks: useFoo() call expressions
47
- if (node.type === 'CallExpression' &&
48
- node.callee?.type === 'Identifier' &&
49
- typeof node.callee.name === 'string' &&
50
- node.callee.name.startsWith('use')) {
51
- adapter.markAsUsed(fileId);
52
- }
53
- }
54
- }
55
- };
56
- /**
57
- * Next.js Plugin
58
- * Handles Next.js specific entry points and conventions.
59
- */
60
- export const NextjsPlugin = {
61
- name: "nextjs-plugin",
62
- version: "1.1.0",
63
- detect: async (adapter) => {
64
- return await hasDependency(adapter, 'next');
65
- },
66
- lifecycle: {
67
- onProjectInit: async (adapter) => {
68
- const nextConfig = await adapter.readFile('next.config.js') || await adapter.readFile('next.config.mjs');
69
- if (nextConfig) {
70
- // Logged/handled if present
71
- }
72
- },
73
- onFileStart: (fileId, adapter) => {
74
- const filename = fileId.split('/').pop() || '';
75
- if (['page.tsx', 'page.js', 'layout.tsx', 'layout.js', 'route.ts', 'route.js', 'error.tsx', 'loading.tsx'].includes(filename)) {
76
- adapter.markAsUsed(fileId);
77
- }
78
- if (fileId.includes('/pages/api/')) {
79
- adapter.markAsUsed(fileId);
80
- }
81
- },
82
- onASTNode: (node, fileId, adapter) => {
83
- if (node.type === 'ExportNamedDeclaration' && node.declaration) {
84
- const decl = node.declaration;
85
- if (decl.type === 'FunctionDeclaration' && decl.id) {
86
- const name = decl.id.name;
87
- if (['getStaticProps', 'getServerSideProps', 'getStaticPaths', 'generateMetadata', 'generateStaticParams'].includes(name)) {
88
- adapter.markAsUsed(fileId, name);
89
- }
90
- }
91
- }
92
- }
93
- }
94
- };
95
- /**
96
- * Nuxt Plugin
97
- * Handles Nuxt-specific directory conventions and auto-imports.
98
- */
99
- export const NuxtPlugin = {
100
- name: "nuxt-plugin",
101
- version: "1.1.0",
102
- detect: async (adapter) => {
103
- return await hasDependency(adapter, 'nuxt');
104
- },
105
- lifecycle: {
106
- onProjectInit: async (adapter) => {
107
- const nuxtConfig = await adapter.readFile('nuxt.config.ts') || await adapter.readFile('nuxt.config.js');
108
- if (nuxtConfig) {
109
- // Custom directory configs
110
- }
111
- },
112
- onFileStart: (fileId, adapter) => {
113
- const pathParts = fileId.split('/');
114
- if (pathParts.includes('pages') || pathParts.includes('layouts') || pathParts.includes('middleware') || pathParts.includes('server') || pathParts.includes('composables')) {
115
- adapter.markAsUsed(fileId);
116
- }
117
- },
118
- onASTNode: (node, fileId, adapter) => {
119
- if (node.type === 'CallExpression' && node.callee?.type === 'Identifier') {
120
- if (['definePageMeta', 'defineNuxtComponent', 'useNuxtApp', 'useFetch', 'defineEventHandler'].includes(node.callee.name)) {
121
- adapter.markAsUsed(fileId);
122
- }
123
- }
124
- }
125
- }
126
- };
127
- //# sourceMappingURL=framework-plugins.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"framework-plugins.js","sourceRoot":"","sources":["../src/framework-plugins.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- export declare const DEFAULT_EXTENSIONS: string[];
2
- export declare const DEFAULT_IGNORE: string[];
3
- export declare function normalizeCanonicalPath(filePath: string): string;
4
- export declare function toPosix(value: string): string;
5
- export declare function normalizeAbsolute(value: string): string;
6
- export declare function pathInside(parent: string, candidate: string): boolean;
7
- export declare function globToRegExp(pattern: string): RegExp;
8
- export declare function compileGlobs(patterns: string[]): RegExp[];
9
- export declare function matchesAnyGlob(relativePath: string, compiledPatterns: RegExp[]): boolean;
10
- export declare function fileExists(candidate: string): Promise<boolean>;
11
- export declare function directoryExists(candidate: string): Promise<boolean>;
12
- export declare function discoverSourceFiles(rootDir: string, extensions: string[], compiledIgnorePatterns: RegExp[]): Promise<string[]>;
13
- export declare function isLikelyLocalSpecifier(specifier: string): boolean;
14
- export declare function removeQueryAndHash(specifier: string): string;
15
- /**
16
- * Resolves an import specifier against a set of known files.
17
- * Handles .js -> .ts / .tsx extension mapping.
18
- */
19
- export declare function resolveLocalSpecifier(sourceFilePath: string, rawSpecifier: string, knownFiles: Set<string> | Map<string, unknown>, extensions?: string[]): string | undefined;
20
- export declare function resolveDynamicPattern(fromFile: string, prefix: string, suffix: string, knownFiles: Set<string>): string[];
21
- export declare function expandEntryPatterns(sourceFiles: string[], rootDir: string, patterns: string[]): string[];
22
- export declare function discoverPackageEntryPatterns(rootDir: string): Promise<string[]>;
23
- export declare function conventionalEntryPatterns(): string[];
24
- export declare function normalizedConventionalEntryPatterns(): string[];
25
- export declare function readJsonFile<T>(candidate: string): Promise<T | undefined>;
26
- export declare function findNearestConfig(startDirectory: string): Promise<string | undefined>;
27
- export declare function relativeDisplayPath(rootDir: string, candidate: string): string;
28
- export declare function rootLooksValid(rootDir: string): Promise<boolean>;
29
- export declare function ingestTsConfigPaths(rootDir: string, configPath?: string): Promise<{
30
- paths: Map<string, string[]>;
31
- baseUrl: string | undefined;
32
- }>;