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/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 };