@groma/scanner-angular 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 (105) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +90 -0
  3. package/dist/index.js +226871 -0
  4. package/dist/lib.d.ts +22 -0
  5. package/dist/lib.decorators.d.ts +384 -0
  6. package/dist/lib.decorators.legacy.d.ts +22 -0
  7. package/dist/lib.dom.asynciterable.d.ts +41 -0
  8. package/dist/lib.dom.d.ts +39429 -0
  9. package/dist/lib.dom.iterable.d.ts +571 -0
  10. package/dist/lib.es2015.collection.d.ts +147 -0
  11. package/dist/lib.es2015.core.d.ts +597 -0
  12. package/dist/lib.es2015.d.ts +28 -0
  13. package/dist/lib.es2015.generator.d.ts +77 -0
  14. package/dist/lib.es2015.iterable.d.ts +605 -0
  15. package/dist/lib.es2015.promise.d.ts +81 -0
  16. package/dist/lib.es2015.proxy.d.ts +128 -0
  17. package/dist/lib.es2015.reflect.d.ts +144 -0
  18. package/dist/lib.es2015.symbol.d.ts +46 -0
  19. package/dist/lib.es2015.symbol.wellknown.d.ts +326 -0
  20. package/dist/lib.es2016.array.include.d.ts +116 -0
  21. package/dist/lib.es2016.d.ts +21 -0
  22. package/dist/lib.es2016.full.d.ts +23 -0
  23. package/dist/lib.es2016.intl.d.ts +31 -0
  24. package/dist/lib.es2017.arraybuffer.d.ts +21 -0
  25. package/dist/lib.es2017.d.ts +26 -0
  26. package/dist/lib.es2017.date.d.ts +31 -0
  27. package/dist/lib.es2017.full.d.ts +23 -0
  28. package/dist/lib.es2017.intl.d.ts +44 -0
  29. package/dist/lib.es2017.object.d.ts +49 -0
  30. package/dist/lib.es2017.sharedmemory.d.ts +135 -0
  31. package/dist/lib.es2017.string.d.ts +45 -0
  32. package/dist/lib.es2017.typedarrays.d.ts +53 -0
  33. package/dist/lib.es2018.asyncgenerator.d.ts +77 -0
  34. package/dist/lib.es2018.asynciterable.d.ts +53 -0
  35. package/dist/lib.es2018.d.ts +24 -0
  36. package/dist/lib.es2018.full.d.ts +24 -0
  37. package/dist/lib.es2018.intl.d.ts +83 -0
  38. package/dist/lib.es2018.promise.d.ts +30 -0
  39. package/dist/lib.es2018.regexp.d.ts +37 -0
  40. package/dist/lib.es2019.array.d.ts +79 -0
  41. package/dist/lib.es2019.d.ts +24 -0
  42. package/dist/lib.es2019.full.d.ts +24 -0
  43. package/dist/lib.es2019.intl.d.ts +23 -0
  44. package/dist/lib.es2019.object.d.ts +33 -0
  45. package/dist/lib.es2019.string.d.ts +37 -0
  46. package/dist/lib.es2019.symbol.d.ts +24 -0
  47. package/dist/lib.es2020.bigint.d.ts +765 -0
  48. package/dist/lib.es2020.d.ts +27 -0
  49. package/dist/lib.es2020.date.d.ts +42 -0
  50. package/dist/lib.es2020.full.d.ts +24 -0
  51. package/dist/lib.es2020.intl.d.ts +474 -0
  52. package/dist/lib.es2020.number.d.ts +28 -0
  53. package/dist/lib.es2020.promise.d.ts +47 -0
  54. package/dist/lib.es2020.sharedmemory.d.ts +99 -0
  55. package/dist/lib.es2020.string.d.ts +44 -0
  56. package/dist/lib.es2020.symbol.wellknown.d.ts +41 -0
  57. package/dist/lib.es2021.d.ts +23 -0
  58. package/dist/lib.es2021.full.d.ts +24 -0
  59. package/dist/lib.es2021.intl.d.ts +166 -0
  60. package/dist/lib.es2021.promise.d.ts +48 -0
  61. package/dist/lib.es2021.string.d.ts +33 -0
  62. package/dist/lib.es2021.weakref.d.ts +78 -0
  63. package/dist/lib.es2022.array.d.ts +121 -0
  64. package/dist/lib.es2022.d.ts +25 -0
  65. package/dist/lib.es2022.error.d.ts +75 -0
  66. package/dist/lib.es2022.full.d.ts +24 -0
  67. package/dist/lib.es2022.intl.d.ts +145 -0
  68. package/dist/lib.es2022.object.d.ts +26 -0
  69. package/dist/lib.es2022.regexp.d.ts +39 -0
  70. package/dist/lib.es2022.string.d.ts +25 -0
  71. package/dist/lib.es2023.array.d.ts +924 -0
  72. package/dist/lib.es2023.collection.d.ts +21 -0
  73. package/dist/lib.es2023.d.ts +22 -0
  74. package/dist/lib.es2023.full.d.ts +24 -0
  75. package/dist/lib.es2023.intl.d.ts +56 -0
  76. package/dist/lib.es2024.arraybuffer.d.ts +65 -0
  77. package/dist/lib.es2024.collection.d.ts +29 -0
  78. package/dist/lib.es2024.d.ts +26 -0
  79. package/dist/lib.es2024.full.d.ts +24 -0
  80. package/dist/lib.es2024.object.d.ts +29 -0
  81. package/dist/lib.es2024.promise.d.ts +35 -0
  82. package/dist/lib.es2024.regexp.d.ts +25 -0
  83. package/dist/lib.es2024.sharedmemory.d.ts +68 -0
  84. package/dist/lib.es2024.string.d.ts +29 -0
  85. package/dist/lib.es5.d.ts +4601 -0
  86. package/dist/lib.es6.d.ts +23 -0
  87. package/dist/lib.esnext.array.d.ts +35 -0
  88. package/dist/lib.esnext.collection.d.ts +96 -0
  89. package/dist/lib.esnext.d.ts +29 -0
  90. package/dist/lib.esnext.decorators.d.ts +28 -0
  91. package/dist/lib.esnext.disposable.d.ts +193 -0
  92. package/dist/lib.esnext.error.d.ts +24 -0
  93. package/dist/lib.esnext.float16.d.ts +445 -0
  94. package/dist/lib.esnext.full.d.ts +24 -0
  95. package/dist/lib.esnext.intl.d.ts +21 -0
  96. package/dist/lib.esnext.iterator.d.ts +148 -0
  97. package/dist/lib.esnext.promise.d.ts +34 -0
  98. package/dist/lib.esnext.sharedmemory.d.ts +25 -0
  99. package/dist/lib.scripthost.d.ts +322 -0
  100. package/dist/lib.webworker.asynciterable.d.ts +41 -0
  101. package/dist/lib.webworker.d.ts +13150 -0
  102. package/dist/lib.webworker.importscripts.d.ts +23 -0
  103. package/dist/lib.webworker.iterable.d.ts +340 -0
  104. package/package.json +43 -0
  105. package/validation.md +76 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Alex Gavrilescu
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,90 @@
1
+ # Angular scanner
2
+
3
+ The Angular scanner adds concrete external-template output bindings to the
4
+ TypeScript scanner evidence. Enable it alongside the Java scanner for the
5
+ supported Maven and Angular application. All enabled scanners must complete
6
+ before Groma updates the map.
7
+
8
+ ## Build and install
9
+
10
+ From the Groma checkout:
11
+
12
+ ```sh
13
+ bun install --frozen-lockfile --ignore-scripts
14
+ bun plugins/scanners/angular/build.ts
15
+ ```
16
+
17
+ From the project being scanned:
18
+
19
+ ```sh
20
+ groma scanner add /absolute/path/to/groma/plugins/scanners/angular/dist/package
21
+ groma scan
22
+ ```
23
+
24
+ The package contains a bundled ESM entry and TypeScript standard-library
25
+ declarations. Consumers do not run a package build or installation script.
26
+ The prototype package name is not a public publication commitment.
27
+
28
+ Prepare the application's ordinary dependencies using its package manager.
29
+ The scanner reads the root `tsconfig.json`, its configured source entry points,
30
+ and the Angular resources reachable from that program. It does not install
31
+ dependencies, compile application output, or run application code.
32
+
33
+ ## Compiler tooling
34
+
35
+ The package pins `@angular/compiler` and `@angular/compiler-cli` to 21.2.17
36
+ and its own TypeScript to 5.9.3. Angular 21.2 supports TypeScript 5.9;
37
+ see the [official compatibility table](https://angular.dev/reference/versions).
38
+ The TypeScript scanner uses its own 7.1 SDK. The package build resolves every
39
+ compiler TypeScript import to the scanner's 5.9.3 installation before bundling,
40
+ so workspace dependency hoisting cannot substitute Groma's compiler.
41
+
42
+ The adapter uses `NgtscProgram`, its template type checker, and the compiler's
43
+ template and TypeScript symbols. These version-specific compiler APIs are
44
+ pinned with the package. Angular owns template parsing, directive matching,
45
+ output binding, and handler resolution; the adapter does not recreate them.
46
+ See [Angular template type checking](https://angular.dev/tools/cli/template-typecheck).
47
+
48
+ ## Supported evidence
49
+
50
+ A direct method call in an external template can bind a single resolved
51
+ source output property to a source method with a body. TypeScript locates
52
+ `emit()` calls on that exact property declaration. An emit inside an arrow
53
+ callback belongs to that callback, not to the surrounding method.
54
+
55
+ The observation includes the emitting operation, handler operation, emit
56
+ position, and HTML event attribute position. Positions are zero-based UTF-16
57
+ offsets; binding and invocation lines are one-based. Named bindings use the
58
+ existing shared supplied-callback rule. Ordinary TypeScript evidence can remain
59
+ unresolved while Angular establishes the concrete binding.
60
+
61
+ Angular reports `angular` Code provenance for its source contribution.
62
+ The exact source path keeps one curated owner across both scanners. HTML edits
63
+ participate in the existing watch lifecycle. Repeat scans retain authored
64
+ architecture, and compiler errors leave the previous complete map in place.
65
+
66
+ In OKF, the result remains ordinary Code links and readable relationship rows.
67
+ In C4, an Angular component is source evidence, not a new architecture level
68
+ or an automatic architecture component. Core owns relationship interpretation;
69
+ the plugin does not write architecture or introduce metadata.
70
+
71
+ ## Coverage limits
72
+
73
+ This revision qualifies the CompanyMergeDialog output-to-parent-handler flow.
74
+ It does not establish injected service receivers, routing, HTTP matching,
75
+ automatic Spring wiring, inline-template bindings, arbitrary handler
76
+ expressions, output mutation, or exhaustive Angular runtime behavior.
77
+ Unresolved or unsupported event bindings produce
78
+ `unsupported-angular-binding` diagnostics rather than relationships.
79
+ DOM events and dependency-library outputs have no supported source output
80
+ provider in this rule. TypeScript semantic errors, including incompatible types,
81
+ fail readiness and scanning alongside syntax and Angular compiler errors.
82
+ Compiler errors fail the scan instead of yielding a
83
+ partial observation. Template strictness follows the project's Angular compiler
84
+ options. Groma enables the template-checker API to resolve output bindings but
85
+ does not enable stricter template checks than the project requests.
86
+
87
+ Independent fixture tests load the built package and cover concrete callback
88
+ endpoints, complementary TypeScript evidence, curated ownership, HTML-triggered
89
+ rescan, and failure preservation. See [validation](validation.md) for the
90
+ real-project result and remaining release gates.