optiprune 2.1.4 → 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 (102) hide show
  1. package/README.md +52 -22
  2. package/bin/runner.js +26 -0
  3. package/package.json +10 -37
  4. package/dist/ast-utils.d.ts +0 -149
  5. package/dist/ast-utils.js +0 -36
  6. package/dist/ast-utils.js.map +0 -1
  7. package/dist/cache.d.ts +0 -14
  8. package/dist/cache.js +0 -36
  9. package/dist/cache.js.map +0 -1
  10. package/dist/cli.d.ts +0 -2
  11. package/dist/cli.js +0 -68
  12. package/dist/cli.js.map +0 -1
  13. package/dist/config-loader.d.ts +0 -4
  14. package/dist/config-loader.js +0 -84
  15. package/dist/config-loader.js.map +0 -1
  16. package/dist/coverage-tracker.d.ts +0 -39
  17. package/dist/coverage-tracker.js +0 -61
  18. package/dist/coverage-tracker.js.map +0 -1
  19. package/dist/engine.d.ts +0 -17
  20. package/dist/engine.js +0 -215
  21. package/dist/engine.js.map +0 -1
  22. package/dist/framework-plugins.d.ts +0 -16
  23. package/dist/framework-plugins.js +0 -127
  24. package/dist/framework-plugins.js.map +0 -1
  25. package/dist/fs-utils.d.ts +0 -32
  26. package/dist/fs-utils.js +0 -415
  27. package/dist/fs-utils.js.map +0 -1
  28. package/dist/graph.d.ts +0 -42
  29. package/dist/graph.js +0 -583
  30. package/dist/graph.js.map +0 -1
  31. package/dist/index.d.ts +0 -3
  32. package/dist/index.js +0 -451
  33. package/dist/index.js.map +0 -1
  34. package/dist/instrument.d.ts +0 -5
  35. package/dist/instrument.js +0 -108
  36. package/dist/instrument.js.map +0 -1
  37. package/dist/layer2.d.ts +0 -6
  38. package/dist/layer2.js +0 -224
  39. package/dist/layer2.js.map +0 -1
  40. package/dist/layer3.d.ts +0 -7
  41. package/dist/layer3.js +0 -346
  42. package/dist/layer3.js.map +0 -1
  43. package/dist/layer4.d.ts +0 -8
  44. package/dist/layer4.js +0 -627
  45. package/dist/layer4.js.map +0 -1
  46. package/dist/layer5.d.ts +0 -6
  47. package/dist/layer5.js +0 -141
  48. package/dist/layer5.js.map +0 -1
  49. package/dist/layer6.d.ts +0 -26
  50. package/dist/layer6.js +0 -268
  51. package/dist/layer6.js.map +0 -1
  52. package/dist/layer7.d.ts +0 -28
  53. package/dist/layer7.js +0 -267
  54. package/dist/layer7.js.map +0 -1
  55. package/dist/parser.d.ts +0 -20
  56. package/dist/parser.js +0 -832
  57. package/dist/parser.js.map +0 -1
  58. package/dist/plugins/angular-plugin.d.ts +0 -7
  59. package/dist/plugins/angular-plugin.js +0 -60
  60. package/dist/plugins/angular-plugin.js.map +0 -1
  61. package/dist/plugins/astro-plugin.d.ts +0 -7
  62. package/dist/plugins/astro-plugin.js +0 -88
  63. package/dist/plugins/astro-plugin.js.map +0 -1
  64. package/dist/plugins/babel-plugin.d.ts +0 -8
  65. package/dist/plugins/babel-plugin.js +0 -132
  66. package/dist/plugins/babel-plugin.js.map +0 -1
  67. package/dist/plugins/esbuild-plugin.d.ts +0 -8
  68. package/dist/plugins/esbuild-plugin.js +0 -121
  69. package/dist/plugins/esbuild-plugin.js.map +0 -1
  70. package/dist/plugins/nestjs-plugin.d.ts +0 -7
  71. package/dist/plugins/nestjs-plugin.js +0 -69
  72. package/dist/plugins/nestjs-plugin.js.map +0 -1
  73. package/dist/plugins/nextjs-plugin.d.ts +0 -7
  74. package/dist/plugins/nextjs-plugin.js +0 -66
  75. package/dist/plugins/nextjs-plugin.js.map +0 -1
  76. package/dist/plugins/nuxtjs-plugin.d.ts +0 -7
  77. package/dist/plugins/nuxtjs-plugin.js +0 -80
  78. package/dist/plugins/nuxtjs-plugin.js.map +0 -1
  79. package/dist/plugins/svelte-plugin.d.ts +0 -7
  80. package/dist/plugins/svelte-plugin.js +0 -38
  81. package/dist/plugins/svelte-plugin.js.map +0 -1
  82. package/dist/plugins/vuejs-plugin.d.ts +0 -7
  83. package/dist/plugins/vuejs-plugin.js +0 -63
  84. package/dist/plugins/vuejs-plugin.js.map +0 -1
  85. package/dist/reporters.d.ts +0 -3
  86. package/dist/reporters.js +0 -75
  87. package/dist/reporters.js.map +0 -1
  88. package/dist/semantic-graph.d.ts +0 -44
  89. package/dist/semantic-graph.js +0 -88
  90. package/dist/semantic-graph.js.map +0 -1
  91. package/dist/symbolic-engine.d.ts +0 -19
  92. package/dist/symbolic-engine.js +0 -51
  93. package/dist/symbolic-engine.js.map +0 -1
  94. package/dist/topology-manager.d.ts +0 -23
  95. package/dist/topology-manager.js +0 -144
  96. package/dist/topology-manager.js.map +0 -1
  97. package/dist/types.d.ts +0 -265
  98. package/dist/types.js +0 -11
  99. package/dist/types.js.map +0 -1
  100. package/dist/workspace.d.ts +0 -6
  101. package/dist/workspace.js +0 -105
  102. package/dist/workspace.js.map +0 -1
package/dist/layer7.js DELETED
@@ -1,267 +0,0 @@
1
- import { walkAst } from "./parser.js";
2
- import path from "pathe";
3
- export async function analyzeLayer7(context) {
4
- const findings = [];
5
- const implicitEdges = [];
6
- const resolvedDynamicImports = [];
7
- // 1. DI Topology Engine
8
- const diEdges = analyzeDITopology(context);
9
- implicitEdges.push(...diEdges);
10
- // 2. Cross-Repository / Event Bus Contract Engine
11
- const eventEdges = analyzeEventContracts(context);
12
- implicitEdges.push(...eventEdges);
13
- // 3. Dynamic Specifier & Template Literal Engine
14
- const dynamicResults = await analyzeDynamicSpecifiers(context);
15
- resolvedDynamicImports.push(...dynamicResults);
16
- // Merge results into the main graph and findings
17
- applyLayer7Results(context, implicitEdges, resolvedDynamicImports, findings);
18
- return findings;
19
- }
20
- /**
21
- * Sub-Engine A: Dependency Injection Topology Engine
22
- */
23
- function analyzeDITopology(context) {
24
- const providers = new Map();
25
- const consumers = [];
26
- const edges = [];
27
- for (const module of context.modules.values()) {
28
- if (!module.ast)
29
- continue;
30
- walkAst(module.ast, (rawNode) => {
31
- const node = rawNode;
32
- // Extract classNode whether it's standalone or exported
33
- const classNode = node.type === "ClassDeclaration"
34
- ? node
35
- : node.type === "ExportNamedDeclaration" && node.declaration?.type === "ClassDeclaration"
36
- ? node.declaration
37
- : null;
38
- if (classNode) {
39
- // Gather decorators from both outer Export declaration AND inner Class declaration
40
- const decorators = [
41
- ...getDecorators(node),
42
- ...getDecorators(classNode),
43
- ];
44
- const isProvider = decorators.some((d) => ["Injectable", "Module", "Service"].includes(d.name));
45
- const className = classNode.id?.name;
46
- if (isProvider && className) {
47
- providers.set(className, { file: module.id, symbol: className });
48
- }
49
- // Check constructor parameters for @Inject('TOKEN')
50
- const constructor = classNode.body?.body?.find((m) => m.kind === "constructor");
51
- if (constructor) {
52
- const params = constructor.params || constructor.value?.params || [];
53
- for (const rawParam of params) {
54
- const param = rawParam.type === "TSParameterProperty" ? rawParam.parameter : rawParam;
55
- const paramDecorators = [
56
- ...getDecorators(rawParam),
57
- ...getDecorators(param),
58
- ];
59
- const injectDecorator = paramDecorators.find((d) => d.name === "Inject");
60
- if (injectDecorator && injectDecorator.args.length > 0) {
61
- const token = injectDecorator.args[0];
62
- if (typeof token === "string" && className) {
63
- consumers.push({ file: module.id, symbol: className, token });
64
- }
65
- }
66
- }
67
- }
68
- }
69
- // container.bind('TOKEN').to(Service)
70
- if (node.type === "CallExpression" && node.callee.type === "MemberExpression") {
71
- if (node.callee.property.name === "bind" && node.arguments.length > 0) {
72
- const token = getLiteralValue(node.arguments[0]);
73
- if (token) {
74
- // Simplified chain traversal
75
- }
76
- }
77
- }
78
- });
79
- }
80
- // Matching logic
81
- for (const consumer of consumers) {
82
- const provider = providers.get(consumer.token);
83
- if (provider) {
84
- edges.push({
85
- id: `di-${consumer.file}-${consumer.token}`,
86
- type: "DI_INJECTION",
87
- provider: { ...provider, token: consumer.token },
88
- consumer: { file: consumer.file, symbol: consumer.symbol },
89
- status: "ACTIVE",
90
- });
91
- }
92
- }
93
- return edges;
94
- }
95
- /**
96
- * Sub-Engine B: Cross-Repository / Event Bus Contract Engine
97
- */
98
- function analyzeEventContracts(context) {
99
- const producers = [];
100
- const consumers = [];
101
- const edges = [];
102
- for (const module of context.modules.values()) {
103
- if (!module.ast)
104
- continue;
105
- walkAst(module.ast, (rawNode) => {
106
- const node = rawNode;
107
- // Consumer: @EventPattern('topic'), @MessagePattern('topic')
108
- if (node.type === 'ClassMethod' || node.type === 'MethodDefinition') {
109
- const decorators = getDecorators(node);
110
- const eventDecorator = decorators.find(d => ['EventPattern', 'MessagePattern', 'OnEvent'].includes(d.name));
111
- if (eventDecorator && eventDecorator.args.length > 0) {
112
- const topic = eventDecorator.args[0];
113
- if (typeof topic === 'string') {
114
- consumers.push({
115
- file: module.id,
116
- symbol: 'unknown',
117
- handler: node.key.name,
118
- topic
119
- });
120
- }
121
- }
122
- }
123
- // Producer: emitter.emit('topic'), client.send('topic')
124
- if (node.type === 'CallExpression' && node.callee.type === 'MemberExpression') {
125
- if (['emit', 'send', 'publish'].includes(node.callee.property.name) && node.arguments.length > 0) {
126
- const topic = getLiteralValue(node.arguments[0]);
127
- if (topic) {
128
- producers.push({ file: module.id, topic });
129
- }
130
- }
131
- }
132
- });
133
- }
134
- // Match Producers to Consumers
135
- const producerTopics = new Set(producers.map(p => p.topic));
136
- for (const consumer of consumers) {
137
- const isActive = producerTopics.has(consumer.topic);
138
- edges.push({
139
- id: `event-${consumer.file}-${consumer.topic}`,
140
- type: 'EVENT_CONTRACT',
141
- topic: consumer.topic,
142
- consumer: { file: consumer.file, symbol: consumer.symbol, handler: consumer.handler },
143
- status: isActive ? 'ACTIVE' : 'DEAD_ORPHANED_CONSUMER'
144
- });
145
- }
146
- return edges;
147
- }
148
- /**
149
- * Sub-Engine C: Dynamic Specifier & Template Literal Engine
150
- */
151
- async function analyzeDynamicSpecifiers(context) {
152
- const results = [];
153
- const allFiles = Array.from(context.modules.keys());
154
- for (const module of context.modules.values()) {
155
- for (const edge of module.edges) {
156
- if (edge.kind === 'dynamic-pattern' && edge.dynamicPattern) {
157
- const { prefix, suffix } = edge.dynamicPattern;
158
- // Bounded glob search over mapped modules
159
- const resolvedFiles = allFiles.filter(f => {
160
- const relative = path.relative(path.dirname(module.id), f);
161
- const normalizedRelative = relative.startsWith('.') ? relative : './' + relative;
162
- return normalizedRelative.startsWith(prefix) && normalizedRelative.endsWith(suffix);
163
- });
164
- if (resolvedFiles.length > 0) {
165
- results.push({
166
- sourceFile: module.id,
167
- template: edge.rawSpecifier,
168
- resolvedFiles
169
- });
170
- }
171
- }
172
- }
173
- }
174
- return results;
175
- }
176
- /**
177
- * Merges Layer 7 results into the AnalysisContext
178
- */
179
- function applyLayer7Results(context, implicitEdges, resolvedDynamicImports, findings) {
180
- // 1. Add implicit edges to reachability
181
- for (const edge of implicitEdges) {
182
- if (edge.status === 'ACTIVE') {
183
- if (edge.type === 'DI_INJECTION' && edge.provider) {
184
- if (context.reachable.has(edge.consumer.file)) {
185
- context.reachable.add(edge.provider.file);
186
- context.usedExports.add(`${edge.provider.file}:${edge.provider.symbol}`);
187
- }
188
- }
189
- else if (edge.type === 'EVENT_CONTRACT') {
190
- context.reachable.add(edge.consumer.file);
191
- context.usedExports.add(`${edge.consumer.file}:${edge.consumer.handler}`);
192
- }
193
- }
194
- else if (edge.status === 'DEAD_ORPHANED_CONSUMER') {
195
- findings.push({
196
- rule: "protected-contract",
197
- severity: "warning",
198
- confidence: "high",
199
- message: `Orphaned Event Consumer: No producers found for topic '${edge.topic}'.`,
200
- file: edge.consumer.file,
201
- evidence: { topic: edge.topic, handler: edge.consumer.handler }
202
- });
203
- }
204
- }
205
- // 2. Resolve dynamic imports
206
- for (const resolved of resolvedDynamicImports) {
207
- if (context.reachable.has(resolved.sourceFile)) {
208
- for (const file of resolved.resolvedFiles) {
209
- context.reachable.add(file);
210
- }
211
- }
212
- }
213
- }
214
- // --- Utilities ---
215
- function getDecorators(node) {
216
- if (!node)
217
- return [];
218
- const decorators = [
219
- ...(Array.isArray(node?.decorators) ? node.decorators : []),
220
- ...(Array.isArray(node?.modifiers)
221
- ? node.modifiers.filter((m) => m.type === 'Decorator' || m.kind === 'Decorator')
222
- : []),
223
- ];
224
- return decorators.map(d => {
225
- const expr = d.expression || d;
226
- if (expr.type === 'CallExpression') {
227
- let name = 'unknown';
228
- if (expr.callee.type === 'Identifier') {
229
- name = expr.callee.name;
230
- }
231
- else if (expr.callee.type === 'MemberExpression' && expr.callee.property.type === 'Identifier') {
232
- name = expr.callee.property.name;
233
- }
234
- return {
235
- name,
236
- args: expr.arguments.map((a) => getLiteralOrIdentifierValue(a))
237
- };
238
- }
239
- return {
240
- name: expr.name || (expr.type === 'Identifier' ? expr.name : 'unknown'),
241
- args: []
242
- };
243
- });
244
- }
245
- function getLiteralOrIdentifierValue(node) {
246
- if (!node)
247
- return undefined;
248
- if (node.type === 'Identifier')
249
- return node.name;
250
- return getLiteralValue(node);
251
- }
252
- function getLiteralValue(node) {
253
- if (!node)
254
- return undefined;
255
- // ESTree Literal (Yuku)
256
- if (node.type === 'Literal')
257
- return node.value;
258
- // Babel Compatibility
259
- if (node.type === 'StringLiteral' || node.type === 'NumericLiteral' || node.type === 'BooleanLiteral')
260
- return node.value;
261
- if (node.type === 'TemplateLiteral') {
262
- if (node.expressions.length === 0)
263
- return node.quasis[0].value.cooked;
264
- }
265
- return undefined;
266
- }
267
- //# sourceMappingURL=layer7.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"layer7.js","sourceRoot":"","sources":["../src/layer7.ts"],"names":[],"mappings":"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"}
package/dist/parser.d.ts DELETED
@@ -1,20 +0,0 @@
1
- import type { ModuleRecord, Position, Range } from "./types.js";
2
- interface AstNode {
3
- type?: string;
4
- start?: number;
5
- end?: number;
6
- loc?: {
7
- start?: Position;
8
- end?: Position;
9
- };
10
- [key: string]: unknown;
11
- }
12
- export declare function parseModule(sourceText: string, file: string): ModuleRecord;
13
- export declare function getNodeRange(node: unknown): Range | undefined;
14
- export declare function getNodeType(node: unknown): string | undefined;
15
- export declare function getNodeProperty(node: unknown, property: string): unknown;
16
- export declare function getStringLiteral(node: unknown): string | undefined;
17
- export declare function getIdentifier(node: unknown): string | undefined;
18
- export declare function isAstNode(node: unknown): boolean;
19
- export declare function walkAst(node: unknown, visitor: (node: AstNode, stack: AstNode[]) => void): void;
20
- export type { AstNode };