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
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { AnalyzerPlugin } from "../types.js";
2
- /**
3
- * Angular Plugin
4
- * Handles Angular-specific decorators and patterns.
5
- */
6
- export declare const AngularPlugin: AnalyzerPlugin;
7
- export default AngularPlugin;
@@ -1,60 +0,0 @@
1
- import { t } from "../ast-utils.js";
2
- /**
3
- * Angular Plugin
4
- * Handles Angular-specific decorators and patterns.
5
- */
6
- export const AngularPlugin = {
7
- name: "angular-plugin",
8
- version: "1.0.0",
9
- detect: async (adapter) => {
10
- const pkg = await adapter.readJson('package.json');
11
- if (pkg) {
12
- const hasDep = !!(pkg.dependencies?.['@angular/core'] || pkg.devDependencies?.['@angular/core']);
13
- if (hasDep)
14
- return true;
15
- }
16
- // Fallback: If we see Angular-like files, enable it
17
- const angularJson = await adapter.readFile('angular.json');
18
- return !!angularJson;
19
- },
20
- lifecycle: {
21
- onFileStart: (fileId, adapter) => {
22
- if (fileId.endsWith('component.ts') || fileId.endsWith('module.ts') || fileId.endsWith('service.ts')) {
23
- adapter.markAsUsed(fileId);
24
- }
25
- },
26
- onASTNode: (node, fileId, adapter) => {
27
- // Angular Decorators (Babel parser might put them in 'decorators' or 'modifiers')
28
- const decorators = node.decorators || node.modifiers?.filter((m) => m.type === 'Decorator');
29
- if ((t.isClassDeclaration(node) || t.isClassExpression(node)) && decorators) {
30
- const hasAngularDecorator = decorators.some((dec) => {
31
- const expr = dec.expression;
32
- const callee = t.isCallExpression(expr) ? expr.callee : expr;
33
- const name = t.isIdentifier(callee) ? callee.name : (t.isMemberExpression(callee) && t.isIdentifier(callee.property) ? callee.property.name : null);
34
- return name && ['Component', 'Directive', 'Injectable', 'NgModule', 'Pipe'].includes(name);
35
- });
36
- if (hasAngularDecorator) {
37
- adapter.markAsUsed(fileId, node.id?.name);
38
- adapter.markAsUsed(fileId); // Mark the whole file as reachable
39
- }
40
- }
41
- // Input/Output Decorators
42
- if ((t.isClassProperty(node) || t.isClassMethod(node) || t.isPropertyDefinition?.(node)) && decorators) {
43
- const isAngularIo = decorators.some((dec) => {
44
- const expr = dec.expression;
45
- const callee = t.isCallExpression(expr) ? expr.callee : expr;
46
- const name = t.isIdentifier(callee) ? callee.name : (t.isMemberExpression(callee) && t.isIdentifier(callee.property) ? callee.property.name : null);
47
- return name && ['Input', 'Output', 'ViewChild', 'ContentChild', 'HostListener', 'HostBinding'].includes(name);
48
- });
49
- if (isAngularIo) {
50
- const key = node.key || node.id;
51
- if (t.isIdentifier(key)) {
52
- adapter.markAsUsed(fileId, key.name);
53
- }
54
- }
55
- }
56
- }
57
- }
58
- };
59
- export default AngularPlugin;
60
- //# sourceMappingURL=angular-plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"angular-plugin.js","sourceRoot":"","sources":["../../src/plugins/angular-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { AnalyzerPlugin } from "../types.js";
2
- /**
3
- * Astro Plugin
4
- * Handles Astro-specific patterns: .astro components, API routes, layouts, etc.
5
- */
6
- export declare const AstroPlugin: AnalyzerPlugin;
7
- export default AstroPlugin;
@@ -1,88 +0,0 @@
1
- import { t } from "../ast-utils.js";
2
- /**
3
- * Astro Plugin
4
- * Handles Astro-specific patterns: .astro components, API routes, layouts, etc.
5
- */
6
- export const AstroPlugin = {
7
- name: "astro-plugin",
8
- version: "1.0.0",
9
- detect: async (adapter) => {
10
- const pkg = await adapter.readJson('package.json');
11
- if (pkg) {
12
- const hasDep = !!(pkg.dependencies?.['astro'] || pkg.devDependencies?.['astro']);
13
- if (hasDep)
14
- return true;
15
- }
16
- // Fallback: If we see astro.config.mjs, enable it
17
- const astroConfig = await adapter.readFile('astro.config.mjs');
18
- return !!astroConfig;
19
- },
20
- lifecycle: {
21
- onFileStart: (fileId, adapter) => {
22
- // Mark Astro conventional files as entry points
23
- const astroPatterns = [
24
- '.astro',
25
- 'pages/', 'layouts/', 'components/', 'api/'
26
- ];
27
- if (astroPatterns.some(pattern => fileId.includes(pattern) || fileId.endsWith(pattern))) {
28
- adapter.markAsUsed(fileId);
29
- }
30
- // Mark .astro files
31
- if (fileId.endsWith('.astro')) {
32
- adapter.markAsUsed(fileId);
33
- }
34
- // Mark API route files
35
- if (fileId.includes('pages/api/') || fileId.includes('api/')) {
36
- adapter.markAsUsed(fileId);
37
- }
38
- },
39
- onASTNode: (node, fileId, adapter) => {
40
- // Astro API exports (GET, POST, PUT, DELETE, PATCH, etc.)
41
- if (t.isExportNamedDeclaration(node)) {
42
- if (t.isFunctionDeclaration(node.declaration) || t.isFunctionExpression(node.declaration)) {
43
- const funcName = node.declaration.id?.name;
44
- if (funcName && ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS'].includes(funcName)) {
45
- adapter.markAsUsed(fileId, funcName);
46
- }
47
- }
48
- }
49
- // Astro getStaticPaths
50
- if (t.isExportNamedDeclaration(node)) {
51
- if (t.isFunctionDeclaration(node.declaration) || t.isFunctionExpression(node.declaration)) {
52
- const funcName = node.declaration.id?.name;
53
- if (funcName === 'getStaticPaths') {
54
- adapter.markAsUsed(fileId, funcName);
55
- }
56
- }
57
- }
58
- // Astro.props, Astro.redirect, Astro.response
59
- if (t.isIdentifier(node) && node.name === 'Astro') {
60
- adapter.markAsUsed(fileId);
61
- }
62
- // Astro client-side directives (client:load, client:idle, etc.)
63
- if (t.isJSXAttribute(node)) {
64
- const attrName = node.name.name;
65
- if (attrName && attrName.startsWith('client:')) {
66
- adapter.markAsUsed(fileId);
67
- }
68
- }
69
- // Astro slots
70
- if (t.isJSXElement(node) && t.isJSXIdentifier(node.openingElement.name)) {
71
- const tagName = node.openingElement.name.name;
72
- if (tagName === 'slot') {
73
- adapter.markAsUsed(fileId);
74
- }
75
- }
76
- // Astro.glob() for dynamic imports
77
- if (t.isCallExpression(node) && t.isMemberExpression(node.callee)) {
78
- const obj = node.callee.object;
79
- const prop = node.callee.property;
80
- if (t.isIdentifier(obj) && obj.name === 'Astro' && t.isIdentifier(prop) && prop.name === 'glob') {
81
- adapter.markAsUsed(fileId);
82
- }
83
- }
84
- }
85
- }
86
- };
87
- export default AstroPlugin;
88
- //# sourceMappingURL=astro-plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"astro-plugin.js","sourceRoot":"","sources":["../../src/plugins/astro-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { AnalyzerPlugin } from "../types.js";
2
- /**
3
- * Babel Plugin
4
- * Handles Babel-specific patterns: babel.config.js, .babelrc, CLI usage, and preset/plugin references
5
- * This plugin detects Babel packages used via configuration files and build scripts
6
- */
7
- export declare const BabelPlugin: AnalyzerPlugin;
8
- export default BabelPlugin;
@@ -1,132 +0,0 @@
1
- import { t } from "../ast-utils.js";
2
- /**
3
- * Babel Plugin
4
- * Handles Babel-specific patterns: babel.config.js, .babelrc, CLI usage, and preset/plugin references
5
- * This plugin detects Babel packages used via configuration files and build scripts
6
- */
7
- export const BabelPlugin = {
8
- name: "babel-plugin",
9
- version: "1.0.0",
10
- detect: async (adapter) => {
11
- const pkg = await adapter.readJson('package.json');
12
- if (pkg) {
13
- const hasDep = !!(pkg.dependencies?.['@babel/core'] ||
14
- pkg.dependencies?.['@babel/cli'] ||
15
- pkg.devDependencies?.['@babel/core'] ||
16
- pkg.devDependencies?.['@babel/cli']);
17
- if (hasDep)
18
- return true;
19
- }
20
- // Fallback: Check for Babel config files
21
- const babelConfig = await adapter.readFile('babel.config.js') ||
22
- await adapter.readFile('babel.config.cjs') ||
23
- await adapter.readFile('.babelrc') ||
24
- await adapter.readFile('.babelrc.js') ||
25
- await adapter.readFile('.babelrc.cjs');
26
- return !!babelConfig;
27
- },
28
- lifecycle: {
29
- onFileStart: (fileId, adapter) => {
30
- // Mark Babel config files as entry points
31
- const babelConfigFiles = [
32
- 'babel.config.js',
33
- 'babel.config.cjs',
34
- 'babel.config.mjs',
35
- '.babelrc',
36
- '.babelrc.js',
37
- '.babelrc.cjs',
38
- '.babelrc.json'
39
- ];
40
- if (babelConfigFiles.some(pattern => fileId.endsWith(pattern))) {
41
- adapter.markAsUsed(fileId);
42
- }
43
- },
44
- onASTNode: (node, fileId, adapter) => {
45
- // Detect Babel preset/plugin usage in config files
46
- if (fileId.includes('babel.config') || fileId.includes('.babelrc')) {
47
- // Mark @babel/preset-* and @babel/plugin-* as used
48
- if (t.isStringLiteral(node)) {
49
- const value = node.value;
50
- if (value.includes('@babel/preset-') || value.includes('@babel/plugin-')) {
51
- adapter.markAsUsed(fileId);
52
- }
53
- }
54
- // Detect preset/plugin object references
55
- if (t.isObjectProperty(node) || t.isObjectMethod(node)) {
56
- const key = node.key;
57
- if (t.isIdentifier(key) && ['presets', 'plugins'].includes(key.name)) {
58
- adapter.markAsUsed(fileId);
59
- }
60
- }
61
- }
62
- // Detect Babel API usage in source files
63
- if (t.isCallExpression(node)) {
64
- // @babel/core API: transformFileSync, transformSync, parseSync, etc.
65
- if (t.isMemberExpression(node.callee)) {
66
- const obj = node.callee.object;
67
- const prop = node.callee.property;
68
- if (t.isIdentifier(obj) && t.isIdentifier(prop)) {
69
- const babelMethods = [
70
- 'transformFileSync',
71
- 'transformSync',
72
- 'parseSync',
73
- 'transformFile',
74
- 'transform',
75
- 'parse'
76
- ];
77
- if (babelMethods.includes(prop.name)) {
78
- adapter.markAsUsed(fileId);
79
- }
80
- }
81
- }
82
- // Direct Babel function calls
83
- if (t.isIdentifier(node.callee)) {
84
- const funcName = node.callee.name;
85
- if (['transformFileSync', 'transformSync', 'parseSync', 'transform', 'parse'].includes(funcName)) {
86
- adapter.markAsUsed(fileId);
87
- }
88
- }
89
- }
90
- // Detect @babel/traverse usage
91
- if (t.isCallExpression(node) && t.isIdentifier(node.callee)) {
92
- if (node.callee.name === 'traverse') {
93
- adapter.markAsUsed(fileId);
94
- }
95
- }
96
- // Detect @babel/types usage (t.isXxx, t.createXxx patterns)
97
- if (t.isMemberExpression(node)) {
98
- const obj = node.object;
99
- const prop = node.property;
100
- if (t.isIdentifier(obj) && obj.name === 't' && t.isIdentifier(prop)) {
101
- const typeMethods = ['is', 'create', 'clone', 'removeProperties', 'removePropertiesDeep'];
102
- if (typeMethods.some(method => prop.name.startsWith(method))) {
103
- adapter.markAsUsed(fileId);
104
- }
105
- }
106
- }
107
- // Detect @babel/helper-* usage
108
- if (t.isImportDeclaration(node)) {
109
- const source = node.source.value;
110
- if (source.includes('@babel/helper-')) {
111
- adapter.markAsUsed(fileId);
112
- }
113
- }
114
- // Detect @babel/plugin-proposal-* and @babel/plugin-transform-* usage
115
- if (t.isImportDeclaration(node)) {
116
- const source = node.source.value;
117
- if (source.includes('@babel/plugin-')) {
118
- adapter.markAsUsed(fileId);
119
- }
120
- }
121
- // Detect @babel/preset-* usage
122
- if (t.isImportDeclaration(node)) {
123
- const source = node.source.value;
124
- if (source.includes('@babel/preset-')) {
125
- adapter.markAsUsed(fileId);
126
- }
127
- }
128
- }
129
- }
130
- };
131
- export default BabelPlugin;
132
- //# sourceMappingURL=babel-plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"babel-plugin.js","sourceRoot":"","sources":["../../src/plugins/babel-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { AnalyzerPlugin } from "../types.js";
2
- /**
3
- * ESBuild Plugin
4
- * Handles ESBuild-specific patterns: esbuild.config.js, CLI usage, and build script references
5
- * This plugin detects esbuild packages used via configuration files and build scripts
6
- */
7
- export declare const ESBuildPlugin: AnalyzerPlugin;
8
- export default ESBuildPlugin;
@@ -1,121 +0,0 @@
1
- import { t } from "../ast-utils.js";
2
- /**
3
- * ESBuild Plugin
4
- * Handles ESBuild-specific patterns: esbuild.config.js, CLI usage, and build script references
5
- * This plugin detects esbuild packages used via configuration files and build scripts
6
- */
7
- export const ESBuildPlugin = {
8
- name: "esbuild-plugin",
9
- version: "1.0.0",
10
- detect: async (adapter) => {
11
- const pkg = await adapter.readJson('package.json');
12
- if (pkg) {
13
- const hasDep = !!(pkg.dependencies?.['esbuild'] || pkg.devDependencies?.['esbuild']);
14
- if (hasDep)
15
- return true;
16
- }
17
- // Fallback: Check for esbuild config files
18
- const esbuildConfig = await adapter.readFile('esbuild.config.js') ||
19
- await adapter.readFile('esbuild.config.mjs') ||
20
- await adapter.readFile('esbuild.config.ts');
21
- return !!esbuildConfig;
22
- },
23
- lifecycle: {
24
- onFileStart: (fileId, adapter) => {
25
- // Mark esbuild config files as entry points
26
- const esbuildConfigFiles = [
27
- 'esbuild.config.js',
28
- 'esbuild.config.mjs',
29
- 'esbuild.config.ts',
30
- 'esbuild.config.cjs'
31
- ];
32
- if (esbuildConfigFiles.some(pattern => fileId.endsWith(pattern))) {
33
- adapter.markAsUsed(fileId);
34
- }
35
- // Mark build script files that use esbuild
36
- if (fileId.endsWith('build.js') || fileId.endsWith('build.ts') || fileId.endsWith('build.mjs')) {
37
- adapter.markAsUsed(fileId);
38
- }
39
- },
40
- onASTNode: (node, fileId, adapter) => {
41
- // Detect esbuild API usage: build(), buildSync(), transform(), transformSync()
42
- if (t.isCallExpression(node)) {
43
- // esbuild.build(), esbuild.buildSync(), etc.
44
- if (t.isMemberExpression(node.callee)) {
45
- const obj = node.callee.object;
46
- const prop = node.callee.property;
47
- if (t.isIdentifier(obj) && t.isIdentifier(prop)) {
48
- const esbuildMethods = [
49
- 'build',
50
- 'buildSync',
51
- 'transform',
52
- 'transformSync',
53
- 'serve',
54
- 'analyzeMetafile',
55
- 'formatMessages',
56
- 'initialize'
57
- ];
58
- if (esbuildMethods.includes(prop.name)) {
59
- adapter.markAsUsed(fileId);
60
- }
61
- }
62
- }
63
- // Direct esbuild function calls
64
- if (t.isIdentifier(node.callee)) {
65
- const funcName = node.callee.name;
66
- if (['build', 'buildSync', 'transform', 'transformSync', 'serve'].includes(funcName)) {
67
- adapter.markAsUsed(fileId);
68
- }
69
- }
70
- }
71
- // Detect esbuild import statements
72
- if (t.isImportDeclaration(node)) {
73
- const source = node.source.value;
74
- if (source === 'esbuild') {
75
- adapter.markAsUsed(fileId);
76
- }
77
- }
78
- // Detect esbuild require statements
79
- if (t.isCallExpression(node) && t.isIdentifier(node.callee)) {
80
- if (node.callee.name === 'require') {
81
- const arg = node.arguments[0];
82
- if (t.isStringLiteral(arg) && arg.value === 'esbuild') {
83
- adapter.markAsUsed(fileId);
84
- }
85
- }
86
- }
87
- // Detect esbuild plugin definitions
88
- if (t.isObjectProperty(node)) {
89
- const key = node.key;
90
- if (t.isIdentifier(key) && ['plugins', 'loader', 'format', 'target'].includes(key.name)) {
91
- adapter.markAsUsed(fileId);
92
- }
93
- }
94
- // Detect esbuild configuration object
95
- if (t.isObjectExpression(node)) {
96
- const properties = node.properties;
97
- const esbuildConfigKeys = ['entryPoints', 'outfile', 'outdir', 'bundle', 'minify', 'sourcemap', 'target', 'format', 'loader', 'plugins', 'external', 'define', 'inject', 'banner', 'footer', 'globalName', 'assetNames', 'chunkNames', 'entryNames'];
98
- const hasEsbuildConfig = properties?.some((prop) => {
99
- const key = prop.key?.name;
100
- return esbuildConfigKeys.includes(key);
101
- });
102
- if (hasEsbuildConfig) {
103
- adapter.markAsUsed(fileId);
104
- }
105
- }
106
- // Detect esbuild plugin object pattern
107
- if (t.isObjectExpression(node)) {
108
- const properties = node.properties;
109
- const hasPluginPattern = properties?.some((prop) => {
110
- const key = prop.key?.name;
111
- return ['setup', 'name'].includes(key);
112
- });
113
- if (hasPluginPattern) {
114
- adapter.markAsUsed(fileId);
115
- }
116
- }
117
- }
118
- }
119
- };
120
- export default ESBuildPlugin;
121
- //# sourceMappingURL=esbuild-plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"esbuild-plugin.js","sourceRoot":"","sources":["../../src/plugins/esbuild-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { AnalyzerPlugin } from "../types.js";
2
- /**
3
- * NestJS Plugin
4
- * Handles NestJS-specific decorators: @Controller, @Injectable, @Module, @Guard, @Interceptor, etc.
5
- */
6
- export declare const NestJsPlugin: AnalyzerPlugin;
7
- export default NestJsPlugin;
@@ -1,69 +0,0 @@
1
- import { t } from "../ast-utils.js";
2
- /**
3
- * NestJS Plugin
4
- * Handles NestJS-specific decorators: @Controller, @Injectable, @Module, @Guard, @Interceptor, etc.
5
- */
6
- export const NestJsPlugin = {
7
- name: "nestjs-plugin",
8
- version: "1.0.0",
9
- detect: async (adapter) => {
10
- const pkg = await adapter.readJson('package.json');
11
- if (pkg) {
12
- const hasDep = !!(pkg.dependencies?.['@nestjs/core'] || pkg.devDependencies?.['@nestjs/core']);
13
- if (hasDep)
14
- return true;
15
- }
16
- // Fallback: If we see nest-cli.json, enable it
17
- const nestCli = await adapter.readFile('nest-cli.json');
18
- return !!nestCli;
19
- },
20
- lifecycle: {
21
- onFileStart: (fileId, adapter) => {
22
- // Mark NestJS module files as entry points
23
- if (fileId.endsWith('.module.ts') || fileId.endsWith('.controller.ts') || fileId.endsWith('.service.ts')) {
24
- adapter.markAsUsed(fileId);
25
- }
26
- },
27
- onASTNode: (node, fileId, adapter) => {
28
- // NestJS Decorators (Babel parser might put them in 'decorators' or 'modifiers')
29
- const decorators = node.decorators || node.modifiers?.filter((m) => m.type === 'Decorator');
30
- if ((t.isClassDeclaration(node) || t.isClassExpression(node)) && decorators) {
31
- const hasNestJsDecorator = decorators.some((dec) => {
32
- const expr = dec.expression;
33
- const callee = t.isCallExpression(expr) ? expr.callee : expr;
34
- const name = t.isIdentifier(callee) ? callee.name : (t.isMemberExpression(callee) && t.isIdentifier(callee.property) ? callee.property.name : null);
35
- return name && ['Controller', 'Injectable', 'Module', 'Guard', 'Interceptor', 'Pipe', 'Filter', 'Middleware'].includes(name);
36
- });
37
- if (hasNestJsDecorator) {
38
- adapter.markAsUsed(fileId, node.id?.name);
39
- adapter.markAsUsed(fileId);
40
- }
41
- }
42
- // NestJS method decorators (@Get, @Post, @Put, @Delete, @Patch, etc.)
43
- if (t.isClassMethod(node) && decorators) {
44
- const hasRouteDecorator = decorators.some((dec) => {
45
- const expr = dec.expression;
46
- const callee = t.isCallExpression(expr) ? expr.callee : expr;
47
- const name = t.isIdentifier(callee) ? callee.name : null;
48
- return name && ['Get', 'Post', 'Put', 'Delete', 'Patch', 'Options', 'Head'].includes(name);
49
- });
50
- if (hasRouteDecorator) {
51
- adapter.markAsUsed(fileId, node.key?.name);
52
- }
53
- }
54
- // NestJS dependency injection via @Inject decorator
55
- if (t.isClassProperty(node) && decorators) {
56
- const hasInjectDecorator = decorators.some((dec) => {
57
- const expr = dec.expression;
58
- const name = t.isIdentifier(expr) ? expr.name : (t.isCallExpression(expr) && t.isIdentifier(expr.callee) ? expr.callee.name : null);
59
- return name === 'Inject';
60
- });
61
- if (hasInjectDecorator) {
62
- adapter.markAsUsed(fileId, node.key?.name);
63
- }
64
- }
65
- }
66
- }
67
- };
68
- export default NestJsPlugin;
69
- //# sourceMappingURL=nestjs-plugin.js.map