@angular-modernizer/api 0.1.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/LICENSE +21 -0
  2. package/README.md +507 -0
  3. package/dist/analysis/complexity-metrics-calculator.d.ts +99 -0
  4. package/dist/analysis/complexity-metrics-calculator.d.ts.map +1 -0
  5. package/dist/analysis/complexity-metrics-calculator.js +195 -0
  6. package/dist/analysis/complexity-metrics-calculator.js.map +1 -0
  7. package/dist/analysis/dependency-analyzer.d.ts +227 -0
  8. package/dist/analysis/dependency-analyzer.d.ts.map +1 -0
  9. package/dist/analysis/dependency-analyzer.js +451 -0
  10. package/dist/analysis/dependency-analyzer.js.map +1 -0
  11. package/dist/analysis/external-template-loader.d.ts +44 -0
  12. package/dist/analysis/external-template-loader.d.ts.map +1 -0
  13. package/dist/analysis/external-template-loader.js +69 -0
  14. package/dist/analysis/external-template-loader.js.map +1 -0
  15. package/dist/analysis/selector-mapper.d.ts +77 -0
  16. package/dist/analysis/selector-mapper.d.ts.map +1 -0
  17. package/dist/analysis/selector-mapper.js +146 -0
  18. package/dist/analysis/selector-mapper.js.map +1 -0
  19. package/dist/analysis/service-detector.d.ts +164 -0
  20. package/dist/analysis/service-detector.d.ts.map +1 -0
  21. package/dist/analysis/service-detector.js +231 -0
  22. package/dist/analysis/service-detector.js.map +1 -0
  23. package/dist/analysis/service-pattern-recognizer.d.ts +247 -0
  24. package/dist/analysis/service-pattern-recognizer.d.ts.map +1 -0
  25. package/dist/analysis/service-pattern-recognizer.js +444 -0
  26. package/dist/analysis/service-pattern-recognizer.js.map +1 -0
  27. package/dist/analysis/symbol-locator.d.ts +81 -0
  28. package/dist/analysis/symbol-locator.d.ts.map +1 -0
  29. package/dist/analysis/symbol-locator.js +128 -0
  30. package/dist/analysis/symbol-locator.js.map +1 -0
  31. package/dist/analysis/template-analyzer-usage.d.ts +144 -0
  32. package/dist/analysis/template-analyzer-usage.d.ts.map +1 -0
  33. package/dist/analysis/template-analyzer-usage.js +474 -0
  34. package/dist/analysis/template-analyzer-usage.js.map +1 -0
  35. package/dist/analysis/template-analyzer.d.ts +80 -0
  36. package/dist/analysis/template-analyzer.d.ts.map +1 -0
  37. package/dist/analysis/template-analyzer.js +146 -0
  38. package/dist/analysis/template-analyzer.js.map +1 -0
  39. package/dist/index.d.ts +23 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +22 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/investigation/angular-symbol-finder.d.ts +76 -0
  44. package/dist/investigation/angular-symbol-finder.d.ts.map +1 -0
  45. package/dist/investigation/angular-symbol-finder.js +199 -0
  46. package/dist/investigation/angular-symbol-finder.js.map +1 -0
  47. package/dist/investigation/call-graph-builder.d.ts +85 -0
  48. package/dist/investigation/call-graph-builder.d.ts.map +1 -0
  49. package/dist/investigation/call-graph-builder.js +196 -0
  50. package/dist/investigation/call-graph-builder.js.map +1 -0
  51. package/dist/investigation/codebase-searcher.d.ts +99 -0
  52. package/dist/investigation/codebase-searcher.d.ts.map +1 -0
  53. package/dist/investigation/codebase-searcher.js +201 -0
  54. package/dist/investigation/codebase-searcher.js.map +1 -0
  55. package/dist/investigation/stack-trace-parser.d.ts +70 -0
  56. package/dist/investigation/stack-trace-parser.d.ts.map +1 -0
  57. package/dist/investigation/stack-trace-parser.js +117 -0
  58. package/dist/investigation/stack-trace-parser.js.map +1 -0
  59. package/dist/investigation/type-resolver.d.ts +59 -0
  60. package/dist/investigation/type-resolver.d.ts.map +1 -0
  61. package/dist/investigation/type-resolver.js +111 -0
  62. package/dist/investigation/type-resolver.js.map +1 -0
  63. package/dist/investigation/usage-finder.d.ts +69 -0
  64. package/dist/investigation/usage-finder.d.ts.map +1 -0
  65. package/dist/investigation/usage-finder.js +132 -0
  66. package/dist/investigation/usage-finder.js.map +1 -0
  67. package/dist/metrics/complexity-metrics.d.ts +196 -0
  68. package/dist/metrics/complexity-metrics.d.ts.map +1 -0
  69. package/dist/metrics/complexity-metrics.js +445 -0
  70. package/dist/metrics/complexity-metrics.js.map +1 -0
  71. package/dist/public-api.d.ts +77 -0
  72. package/dist/public-api.d.ts.map +1 -0
  73. package/dist/public-api.js +50 -0
  74. package/dist/public-api.js.map +1 -0
  75. package/dist/transformation/import-manager.d.ts +276 -0
  76. package/dist/transformation/import-manager.d.ts.map +1 -0
  77. package/dist/transformation/import-manager.js +488 -0
  78. package/dist/transformation/import-manager.js.map +1 -0
  79. package/dist/transformation/ng-morph-adapter.d.ts +111 -0
  80. package/dist/transformation/ng-morph-adapter.d.ts.map +1 -0
  81. package/dist/transformation/ng-morph-adapter.js +179 -0
  82. package/dist/transformation/ng-morph-adapter.js.map +1 -0
  83. package/dist/transformation/ngmodule-manager.d.ts +145 -0
  84. package/dist/transformation/ngmodule-manager.d.ts.map +1 -0
  85. package/dist/transformation/ngmodule-manager.js +356 -0
  86. package/dist/transformation/ngmodule-manager.js.map +1 -0
  87. package/package.json +62 -0
  88. package/src/analysis/complexity-metrics-calculator.ts +253 -0
  89. package/src/analysis/dependency-analyzer.ts +720 -0
  90. package/src/analysis/external-template-loader.ts +79 -0
  91. package/src/analysis/selector-mapper.ts +186 -0
  92. package/src/analysis/service-detector.ts +280 -0
  93. package/src/analysis/service-pattern-recognizer.ts +545 -0
  94. package/src/analysis/symbol-locator.ts +170 -0
  95. package/src/analysis/template-analyzer-usage.ts +614 -0
  96. package/src/analysis/template-analyzer.ts +208 -0
  97. package/src/index.ts +51 -0
  98. package/src/investigation/angular-symbol-finder.ts +263 -0
  99. package/src/investigation/call-graph-builder.ts +298 -0
  100. package/src/investigation/codebase-searcher.ts +286 -0
  101. package/src/investigation/stack-trace-parser.ts +166 -0
  102. package/src/investigation/type-resolver.ts +144 -0
  103. package/src/investigation/usage-finder.ts +198 -0
  104. package/src/metrics/complexity-metrics.ts +617 -0
  105. package/src/public-api.ts +119 -0
  106. package/src/transformation/import-manager.ts +626 -0
  107. package/src/transformation/ng-morph-adapter.ts +252 -0
  108. package/src/transformation/ngmodule-manager.ts +450 -0
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Public API for @angular-modernizer/api
3
+ *
4
+ * This file exports the main interfaces and classes that plugins and tools
5
+ * can use for Angular analysis and transformation.
6
+ */
7
+
8
+ import {
9
+ NgMorphAdapter,
10
+ type NgMorphAdapterOptions,
11
+ } from './transformation/ng-morph-adapter.js';
12
+ import { NgModuleManager } from './transformation/ngmodule-manager.js';
13
+ import { ImportManager } from './transformation/import-manager.js';
14
+ import { ServicePatternRecognizer } from './analysis/service-pattern-recognizer.js';
15
+ import { ServiceDetector } from './analysis/service-detector.js';
16
+ import { SymbolLocator } from './analysis/symbol-locator.js';
17
+ import { TemplateAnalyzer } from './analysis/template-analyzer.js';
18
+ import type { Project } from 'ts-morph';
19
+
20
+ /**
21
+ * Public API interface that provides access to all analysis and transformation tools
22
+ */
23
+ export interface PublicApi {
24
+ /**
25
+ * Analysis tools for code inspection and pattern detection
26
+ */
27
+ analysis: {
28
+ /**
29
+ * Service pattern recognizer for classifying Angular service patterns
30
+ */
31
+ servicePatternRecognizer: ServicePatternRecognizer;
32
+
33
+ /**
34
+ * Service detector with caching and bulk operations
35
+ */
36
+ serviceDetector: ServiceDetector;
37
+
38
+ /**
39
+ * Symbol locator for resolving symbols across the project
40
+ */
41
+ symbolLocator: SymbolLocator;
42
+
43
+ /**
44
+ * Template analyzer for analyzing Angular templates
45
+ */
46
+ templateAnalyzer: TemplateAnalyzer;
47
+ };
48
+
49
+ /**
50
+ * Transformation tools for code modification
51
+ */
52
+ transformation: {
53
+ /**
54
+ * NgModule manager for managing NgModule declarations and exports
55
+ */
56
+ ngModuleManager: NgModuleManager;
57
+
58
+ /**
59
+ * Import manager for managing imports with hybrid ng-morph approach
60
+ */
61
+ importManager: ImportManager;
62
+ };
63
+
64
+ /**
65
+ * ng-morph adapter for Angular-specific AST operations
66
+ */
67
+ ngMorph: NgMorphAdapter;
68
+
69
+ /**
70
+ * The underlying ts-morph Project instance
71
+ */
72
+ project: Project;
73
+ }
74
+
75
+ /**
76
+ * Factory function to create a PublicApi instance
77
+ *
78
+ * @param project - The ts-morph Project instance
79
+ * @param options - Optional configuration for the adapters
80
+ */
81
+ export function createPublicApi(
82
+ project: Project,
83
+ options?: {
84
+ rootPath?: string;
85
+ pattern?: string;
86
+ },
87
+ ): PublicApi {
88
+ const ngMorphOptions: NgMorphAdapterOptions = {
89
+ project,
90
+ rootPath: options?.rootPath,
91
+ pattern: options?.pattern,
92
+ };
93
+
94
+ const ngMorphAdapter = new NgMorphAdapter(ngMorphOptions);
95
+ const servicePatternRecognizer = new ServicePatternRecognizer(ngMorphAdapter);
96
+ const serviceDetector = new ServiceDetector(servicePatternRecognizer);
97
+
98
+ return {
99
+ analysis: {
100
+ servicePatternRecognizer,
101
+ serviceDetector,
102
+ symbolLocator: new SymbolLocator(),
103
+ templateAnalyzer: new TemplateAnalyzer(),
104
+ },
105
+ transformation: {
106
+ ngModuleManager: new NgModuleManager(ngMorphAdapter),
107
+ importManager: new ImportManager(ngMorphAdapter),
108
+ },
109
+ ngMorph: ngMorphAdapter,
110
+ project,
111
+ };
112
+ }
113
+
114
+ // Re-export key types and classes
115
+ export { NgMorphAdapter, type NgMorphAdapterOptions } from './transformation/ng-morph-adapter.js';
116
+ export { NgModuleManager } from './transformation/ngmodule-manager.js';
117
+ export { ImportManager } from './transformation/import-manager.js';
118
+ export { ServiceDetector } from './analysis/service-detector.js';
119
+ export { ServicePatternRecognizer } from './analysis/service-pattern-recognizer.js';