@opensip-cli/checks-universal 0.1.10 → 0.1.11

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 (206) hide show
  1. package/README.md +4 -2
  2. package/dist/__tests__/all-checks-execute.test.d.ts.map +1 -1
  3. package/dist/__tests__/all-checks-execute.test.js +0 -1
  4. package/dist/__tests__/all-checks-execute.test.js.map +1 -1
  5. package/dist/__tests__/behavior-fixtures-10.test.d.ts.map +1 -1
  6. package/dist/__tests__/behavior-fixtures-10.test.js +0 -1
  7. package/dist/__tests__/behavior-fixtures-10.test.js.map +1 -1
  8. package/dist/__tests__/behavior-fixtures-11.test.d.ts.map +1 -1
  9. package/dist/__tests__/behavior-fixtures-11.test.js +0 -1
  10. package/dist/__tests__/behavior-fixtures-11.test.js.map +1 -1
  11. package/dist/__tests__/behavior-fixtures-12.test.d.ts.map +1 -1
  12. package/dist/__tests__/behavior-fixtures-12.test.js +0 -1
  13. package/dist/__tests__/behavior-fixtures-12.test.js.map +1 -1
  14. package/dist/__tests__/behavior-fixtures-2.test.d.ts.map +1 -1
  15. package/dist/__tests__/behavior-fixtures-2.test.js +0 -1
  16. package/dist/__tests__/behavior-fixtures-2.test.js.map +1 -1
  17. package/dist/__tests__/behavior-fixtures-3.test.d.ts.map +1 -1
  18. package/dist/__tests__/behavior-fixtures-3.test.js +0 -1
  19. package/dist/__tests__/behavior-fixtures-3.test.js.map +1 -1
  20. package/dist/__tests__/behavior-fixtures-4.test.d.ts.map +1 -1
  21. package/dist/__tests__/behavior-fixtures-4.test.js +0 -1
  22. package/dist/__tests__/behavior-fixtures-4.test.js.map +1 -1
  23. package/dist/__tests__/behavior-fixtures-5.test.d.ts.map +1 -1
  24. package/dist/__tests__/behavior-fixtures-5.test.js +0 -1
  25. package/dist/__tests__/behavior-fixtures-5.test.js.map +1 -1
  26. package/dist/__tests__/behavior-fixtures-6.test.d.ts.map +1 -1
  27. package/dist/__tests__/behavior-fixtures-6.test.js +0 -1
  28. package/dist/__tests__/behavior-fixtures-6.test.js.map +1 -1
  29. package/dist/__tests__/behavior-fixtures-7.test.d.ts.map +1 -1
  30. package/dist/__tests__/behavior-fixtures-7.test.js +0 -1
  31. package/dist/__tests__/behavior-fixtures-7.test.js.map +1 -1
  32. package/dist/__tests__/behavior-fixtures-8.test.d.ts.map +1 -1
  33. package/dist/__tests__/behavior-fixtures-8.test.js +2 -3
  34. package/dist/__tests__/behavior-fixtures-8.test.js.map +1 -1
  35. package/dist/__tests__/behavior-fixtures-9.test.d.ts.map +1 -1
  36. package/dist/__tests__/behavior-fixtures-9.test.js +0 -1
  37. package/dist/__tests__/behavior-fixtures-9.test.js.map +1 -1
  38. package/dist/__tests__/behavior-fixtures.test.d.ts.map +1 -1
  39. package/dist/__tests__/behavior-fixtures.test.js +10 -9
  40. package/dist/__tests__/behavior-fixtures.test.js.map +1 -1
  41. package/dist/__tests__/file-length-limit.test.js +12 -1
  42. package/dist/__tests__/file-length-limit.test.js.map +1 -1
  43. package/dist/checks/architecture/__tests__/tool-identity-single-source.test.d.ts +2 -0
  44. package/dist/checks/architecture/__tests__/tool-identity-single-source.test.d.ts.map +1 -0
  45. package/dist/checks/architecture/__tests__/tool-identity-single-source.test.js +61 -0
  46. package/dist/checks/architecture/__tests__/tool-identity-single-source.test.js.map +1 -0
  47. package/dist/checks/architecture/docker-best-practices-analyze.d.ts +7 -0
  48. package/dist/checks/architecture/docker-best-practices-analyze.d.ts.map +1 -0
  49. package/dist/checks/architecture/docker-best-practices-analyze.js +301 -0
  50. package/dist/checks/architecture/docker-best-practices-analyze.js.map +1 -0
  51. package/dist/checks/architecture/docker-best-practices-patterns.d.ts +50 -0
  52. package/dist/checks/architecture/docker-best-practices-patterns.d.ts.map +1 -0
  53. package/dist/checks/architecture/docker-best-practices-patterns.js +51 -0
  54. package/dist/checks/architecture/docker-best-practices-patterns.js.map +1 -0
  55. package/dist/checks/architecture/docker-best-practices.d.ts.map +1 -1
  56. package/dist/checks/architecture/docker-best-practices.js +1 -367
  57. package/dist/checks/architecture/docker-best-practices.js.map +1 -1
  58. package/dist/checks/architecture/docker-ignore-validation.d.ts.map +1 -1
  59. package/dist/checks/architecture/docker-ignore-validation.js +0 -1
  60. package/dist/checks/architecture/docker-ignore-validation.js.map +1 -1
  61. package/dist/checks/architecture/docker-version-sync.d.ts.map +1 -1
  62. package/dist/checks/architecture/docker-version-sync.js +0 -1
  63. package/dist/checks/architecture/docker-version-sync.js.map +1 -1
  64. package/dist/checks/architecture/heavy-import-detection.d.ts.map +1 -1
  65. package/dist/checks/architecture/heavy-import-detection.js +1 -0
  66. package/dist/checks/architecture/heavy-import-detection.js.map +1 -1
  67. package/dist/checks/architecture/index.d.ts +1 -0
  68. package/dist/checks/architecture/index.d.ts.map +1 -1
  69. package/dist/checks/architecture/index.js +1 -0
  70. package/dist/checks/architecture/index.js.map +1 -1
  71. package/dist/checks/architecture/modules/empty-package-detection.d.ts.map +1 -1
  72. package/dist/checks/architecture/modules/empty-package-detection.js +0 -1
  73. package/dist/checks/architecture/modules/empty-package-detection.js.map +1 -1
  74. package/dist/checks/architecture/modules/interface-implementation-consistency-constants.d.ts +16 -0
  75. package/dist/checks/architecture/modules/interface-implementation-consistency-constants.d.ts.map +1 -0
  76. package/dist/checks/architecture/modules/interface-implementation-consistency-constants.js +182 -0
  77. package/dist/checks/architecture/modules/interface-implementation-consistency-constants.js.map +1 -0
  78. package/dist/checks/architecture/modules/interface-implementation-consistency-parse.d.ts +23 -0
  79. package/dist/checks/architecture/modules/interface-implementation-consistency-parse.d.ts.map +1 -0
  80. package/dist/checks/architecture/modules/interface-implementation-consistency-parse.js +235 -0
  81. package/dist/checks/architecture/modules/interface-implementation-consistency-parse.js.map +1 -0
  82. package/dist/checks/architecture/modules/interface-implementation-consistency.d.ts.map +1 -1
  83. package/dist/checks/architecture/modules/interface-implementation-consistency.js +4 -462
  84. package/dist/checks/architecture/modules/interface-implementation-consistency.js.map +1 -1
  85. package/dist/checks/architecture/node-version-consistency.d.ts.map +1 -1
  86. package/dist/checks/architecture/node-version-consistency.js +0 -2
  87. package/dist/checks/architecture/node-version-consistency.js.map +1 -1
  88. package/dist/checks/architecture/stale-build-artifacts.d.ts.map +1 -1
  89. package/dist/checks/architecture/stale-build-artifacts.js +0 -1
  90. package/dist/checks/architecture/stale-build-artifacts.js.map +1 -1
  91. package/dist/checks/architecture/tool-has-manifest.d.ts.map +1 -1
  92. package/dist/checks/architecture/tool-has-manifest.js +0 -1
  93. package/dist/checks/architecture/tool-has-manifest.js.map +1 -1
  94. package/dist/checks/architecture/tool-identity-single-source.d.ts +23 -0
  95. package/dist/checks/architecture/tool-identity-single-source.d.ts.map +1 -0
  96. package/dist/checks/architecture/tool-identity-single-source.js +126 -0
  97. package/dist/checks/architecture/tool-identity-single-source.js.map +1 -0
  98. package/dist/checks/documentation/_public-api-graph.d.ts +3 -26
  99. package/dist/checks/documentation/_public-api-graph.d.ts.map +1 -1
  100. package/dist/checks/documentation/_public-api-graph.js +3 -300
  101. package/dist/checks/documentation/_public-api-graph.js.map +1 -1
  102. package/dist/checks/documentation/directive-audit.d.ts.map +1 -1
  103. package/dist/checks/documentation/directive-audit.js +0 -1
  104. package/dist/checks/documentation/directive-audit.js.map +1 -1
  105. package/dist/checks/file-length-limit.d.ts +7 -0
  106. package/dist/checks/file-length-limit.d.ts.map +1 -1
  107. package/dist/checks/file-length-limit.js +14 -2
  108. package/dist/checks/file-length-limit.js.map +1 -1
  109. package/dist/checks/quality/code-structure/dead-code.d.ts.map +1 -1
  110. package/dist/checks/quality/code-structure/dead-code.js +0 -1
  111. package/dist/checks/quality/code-structure/dead-code.js.map +1 -1
  112. package/dist/checks/quality/dependency-version-consistency.d.ts.map +1 -1
  113. package/dist/checks/quality/dependency-version-consistency.js +0 -2
  114. package/dist/checks/quality/dependency-version-consistency.js.map +1 -1
  115. package/dist/checks/quality/frontend/navigation-typing.d.ts.map +1 -1
  116. package/dist/checks/quality/frontend/navigation-typing.js +0 -1
  117. package/dist/checks/quality/frontend/navigation-typing.js.map +1 -1
  118. package/dist/checks/quality/index.d.ts +1 -0
  119. package/dist/checks/quality/index.d.ts.map +1 -1
  120. package/dist/checks/quality/index.js +1 -0
  121. package/dist/checks/quality/index.js.map +1 -1
  122. package/dist/checks/quality/linting/eslint-justifications.d.ts.map +1 -1
  123. package/dist/checks/quality/linting/eslint-justifications.js +0 -1
  124. package/dist/checks/quality/linting/eslint-justifications.js.map +1 -1
  125. package/dist/checks/quality/no-raw-regex-on-code.d.ts.map +1 -1
  126. package/dist/checks/quality/no-raw-regex-on-code.js +2 -3
  127. package/dist/checks/quality/no-raw-regex-on-code.js.map +1 -1
  128. package/dist/checks/quality/patterns/__tests__/performance-anti-patterns-fp.test.d.ts +5 -0
  129. package/dist/checks/quality/patterns/__tests__/performance-anti-patterns-fp.test.d.ts.map +1 -0
  130. package/dist/checks/quality/patterns/__tests__/performance-anti-patterns-fp.test.js +66 -0
  131. package/dist/checks/quality/patterns/__tests__/performance-anti-patterns-fp.test.js.map +1 -0
  132. package/dist/checks/quality/patterns/performance-anti-patterns.d.ts +3 -0
  133. package/dist/checks/quality/patterns/performance-anti-patterns.d.ts.map +1 -1
  134. package/dist/checks/quality/patterns/performance-anti-patterns.js +47 -30
  135. package/dist/checks/quality/patterns/performance-anti-patterns.js.map +1 -1
  136. package/dist/checks/quality/yagni-ignore-hygiene.d.ts +10 -0
  137. package/dist/checks/quality/yagni-ignore-hygiene.d.ts.map +1 -0
  138. package/dist/checks/quality/yagni-ignore-hygiene.js +87 -0
  139. package/dist/checks/quality/yagni-ignore-hygiene.js.map +1 -0
  140. package/dist/checks/quality/yagni-ignore-hygiene.test.d.ts +5 -0
  141. package/dist/checks/quality/yagni-ignore-hygiene.test.d.ts.map +1 -0
  142. package/dist/checks/quality/yagni-ignore-hygiene.test.js +37 -0
  143. package/dist/checks/quality/yagni-ignore-hygiene.test.js.map +1 -0
  144. package/dist/checks/resilience/batch-operation-limits.d.ts +13 -0
  145. package/dist/checks/resilience/batch-operation-limits.d.ts.map +1 -0
  146. package/dist/checks/resilience/batch-operation-limits.js +160 -0
  147. package/dist/checks/resilience/batch-operation-limits.js.map +1 -0
  148. package/dist/checks/resilience/batch-operations.d.ts +2 -21
  149. package/dist/checks/resilience/batch-operations.d.ts.map +1 -1
  150. package/dist/checks/resilience/batch-operations.js +2 -420
  151. package/dist/checks/resilience/batch-operations.js.map +1 -1
  152. package/dist/checks/resilience/dangerous-config-defaults.d.ts.map +1 -1
  153. package/dist/checks/resilience/dangerous-config-defaults.js +0 -1
  154. package/dist/checks/resilience/dangerous-config-defaults.js.map +1 -1
  155. package/dist/checks/resilience/exit-code-correctness.d.ts.map +1 -1
  156. package/dist/checks/resilience/exit-code-correctness.js +0 -1
  157. package/dist/checks/resilience/exit-code-correctness.js.map +1 -1
  158. package/dist/checks/resilience/no-process-exit-in-finally.d.ts.map +1 -1
  159. package/dist/checks/resilience/no-process-exit-in-finally.js +0 -1
  160. package/dist/checks/resilience/no-process-exit-in-finally.js.map +1 -1
  161. package/dist/checks/resilience/readline-cleanup.d.ts.map +1 -1
  162. package/dist/checks/resilience/readline-cleanup.js +0 -1
  163. package/dist/checks/resilience/readline-cleanup.js.map +1 -1
  164. package/dist/checks/resilience/reentrancy-guard.d.ts.map +1 -1
  165. package/dist/checks/resilience/reentrancy-guard.js +0 -1
  166. package/dist/checks/resilience/reentrancy-guard.js.map +1 -1
  167. package/dist/checks/resilience/service-patterns.d.ts.map +1 -1
  168. package/dist/checks/resilience/service-patterns.js +0 -1
  169. package/dist/checks/resilience/service-patterns.js.map +1 -1
  170. package/dist/checks/resilience/unbounded-memory.d.ts +13 -0
  171. package/dist/checks/resilience/unbounded-memory.d.ts.map +1 -0
  172. package/dist/checks/resilience/unbounded-memory.js +229 -0
  173. package/dist/checks/resilience/unbounded-memory.js.map +1 -0
  174. package/dist/checks/security/csp-headers.d.ts.map +1 -1
  175. package/dist/checks/security/csp-headers.js +0 -1
  176. package/dist/checks/security/csp-headers.js.map +1 -1
  177. package/dist/checks/security/hasura-production-config.d.ts.map +1 -1
  178. package/dist/checks/security/hasura-production-config.js +0 -1
  179. package/dist/checks/security/hasura-production-config.js.map +1 -1
  180. package/dist/checks/security/jwt-validation.d.ts.map +1 -1
  181. package/dist/checks/security/jwt-validation.js +0 -2
  182. package/dist/checks/security/jwt-validation.js.map +1 -1
  183. package/dist/checks/security/package-supply-chain-policy.d.ts.map +1 -1
  184. package/dist/checks/security/package-supply-chain-policy.js +9 -15
  185. package/dist/checks/security/package-supply-chain-policy.js.map +1 -1
  186. package/dist/checks/security/semgrep-scan.d.ts.map +1 -1
  187. package/dist/checks/security/semgrep-scan.js +0 -1
  188. package/dist/checks/security/semgrep-scan.js.map +1 -1
  189. package/dist/checks/security/use-centralized-crypto.d.ts.map +1 -1
  190. package/dist/checks/security/use-centralized-crypto.js +2 -3
  191. package/dist/checks/security/use-centralized-crypto.js.map +1 -1
  192. package/dist/checks/testing/test-convention-consistency.d.ts.map +1 -1
  193. package/dist/checks/testing/test-convention-consistency.js +0 -1
  194. package/dist/checks/testing/test-convention-consistency.js.map +1 -1
  195. package/dist/checks/testing/test-file-pairing.js +3 -6
  196. package/dist/checks/testing/test-file-pairing.js.map +1 -1
  197. package/dist/display/architecture.d.ts.map +1 -1
  198. package/dist/display/architecture.js +1 -0
  199. package/dist/display/architecture.js.map +1 -1
  200. package/dist/display/quality.d.ts.map +1 -1
  201. package/dist/display/quality.js +1 -0
  202. package/dist/display/quality.js.map +1 -1
  203. package/dist/display/types.d.ts.map +1 -1
  204. package/dist/display/types.js +0 -1
  205. package/dist/display/types.js.map +1 -1
  206. package/package.json +4 -4
@@ -1,468 +1,12 @@
1
- // @fitness-ignore-file file-length-limit -- Fitness check with TypeScript AST traversal and interface consistency analysis
2
- // @fitness-ignore-file toctou-race-condition -- TOCTOU acceptable in this non-concurrent context
3
1
  // @fitness-ignore-file interface-implementation-consistency -- Fitness check definition file; references interface patterns for detection, not actual implementations
4
- // @fitness-ignore-file performance-anti-patterns -- sequential file reading and bounded violation loops; not hot paths
5
2
  /**
6
3
  * @fileoverview Interface Implementation Consistency check
7
4
  */
8
5
  import { defineCheck } from '@opensip-cli/fitness';
9
- // Pre-compiled regex patterns for better performance and to avoid ReDoS
10
- // Using bounded quantifiers to prevent super-linear runtime
11
- // Note: the interface header may span multiple lines (a generic-parameter
12
- // declaration on one line, `extends OtherIface<TParam> {` on the next). The
13
- // regex matches the first line; the parser scans forward for an `extends`
14
- // clause until it finds `{`. See `tryStartInterface` / `parseInterfaces`.
15
- //
16
- // The `extends` capture uses a greedy character class that includes `<>`
17
- // so generic type arguments (e.g. `extends IFoo<TParam>`) are captured
18
- // alongside the bare name. `parseTypeList` / `stripGenerics` handle the
19
- // downstream normalisation.
20
- const INTERFACE_PATTERN = /^(?:export\s+)?interface\s+(\w+)(?:<[^>]{1,200}>)?(?:\s+extends\s+([\w,\s<>]+))?/;
21
- // Standalone `extends` clause continuation for multi-line interface headers
22
- // — captures the type list (which may include generics like
23
- // `IFoo<TParam>, IBar`).
24
- // eslint-disable-next-line sonarjs/slow-regex -- anchored line match with bounded prefix; `[\w,\s<>]+?` is followed by `\s*\{?\s*$` and exhausts on bounded input
25
- const INTERFACE_EXTENDS_CONTINUATION = /^\s{0,40}extends\s+([\w,\s<>]+?)\s*\{?\s*$/;
26
- const CLASS_PATTERN =
27
- // eslint-disable-next-line sonarjs/regex-complexity -- single regex captures class name + optional extends + optional implements; splitting requires multiple anchored matches
28
- /^(?:export\s+)?class\s+(\w+)(?:\s+extends\s+\w+(?:<[^>]{1,200}>)?)?(?:\s+implements\s+([\w,\s<>]+))?/;
29
- const METHOD_IN_INTERFACE_PATTERN = /^\s{0,20}(\w+)\??\s{0,5}\(/;
30
- const METHOD_IN_CLASS_PATTERN = /^\s{0,20}(?:(?:public|private|protected)\s+)?(?:async\s+)?(?:static\s+)?(\w+)\s{0,5}\(/;
31
- // Detects the `static` modifier on a class method declaration (after any
32
- // visibility modifier and before the method name). Interfaces cannot declare
33
- // statics, so `static fromX()` factories must be skipped — comparing them
34
- // against an interface's instance methods is always a false positive.
35
- const STATIC_MODIFIER_PATTERN = /^\s{0,20}(?:(?:public|private|protected)\s+)?(?:async\s+)?static\s+\w+\s{0,5}\(/;
36
- // Pre-compiled patterns for isMethodDefinition
37
- const VISIBILITY_MODIFIER_PATTERN = /^(?:public|protected)\s/;
38
- const ASYNC_STATIC_METHOD_PATTERN = /^(?:async|static)\s{1,5}[a-zA-Z_]\w{0,99}\s{0,5}\(/;
39
- const TYPE_ANNOTATION_PATTERN = /\):\s{0,5}[a-zA-Z]/;
40
- const METHOD_BODY_PATTERN = /\)\s{0,5}\{/;
41
- const CLASS_LEVEL_METHOD_PATTERN = /^[a-zA-Z_]\w{0,99}\s{0,5}\(/;
42
- const JS_KEYWORDS = new Set([
43
- 'if',
44
- 'else',
45
- 'while',
46
- 'for',
47
- 'do',
48
- 'switch',
49
- 'case',
50
- 'break',
51
- 'continue',
52
- 'return',
53
- 'throw',
54
- 'try',
55
- 'catch',
56
- 'finally',
57
- 'new',
58
- 'delete',
59
- 'typeof',
60
- 'instanceof',
61
- 'void',
62
- 'in',
63
- 'of',
64
- 'function',
65
- 'class',
66
- 'extends',
67
- 'super',
68
- 'this',
69
- 'import',
70
- 'export',
71
- 'default',
72
- 'const',
73
- 'let',
74
- 'var',
75
- 'await',
76
- 'yield',
77
- 'static',
78
- 'get',
79
- 'set',
80
- 'async',
81
- ]);
82
- const ALLOWED_EXTRA_METHODS = new Set([
83
- 'dispose',
84
- 'destroy',
85
- 'cleanup',
86
- 'close',
87
- 'shutdown',
88
- 'terminate',
89
- 'initialize',
90
- 'init',
91
- 'setup',
92
- 'configure',
93
- 'start',
94
- 'stop',
95
- 'toJSON',
96
- 'toString',
97
- 'valueOf',
98
- 'clone',
99
- 'copy',
100
- 'getStatus',
101
- 'getStats',
102
- 'getHealthStatus',
103
- 'getMetrics',
104
- 'getSuccessRate',
105
- 'subscribe',
106
- 'unsubscribe',
107
- 'publish',
108
- 'emit',
109
- 'on',
110
- 'off',
111
- 'once',
112
- 'listeners',
113
- 'recordMetric',
114
- 'recordMetrics',
115
- 'flush',
116
- 'recordActivity',
117
- 'exists',
118
- 'validate',
119
- 'isValid',
120
- 'isExpired',
121
- 'isEnabled',
122
- 'validateRecipient',
123
- 'send',
124
- 'receive',
125
- 'healthCheck',
126
- 'isHealthy',
127
- 'getDeliveryStatus',
128
- 'trace',
129
- 'debug',
130
- 'info',
131
- 'warn',
132
- 'error',
133
- 'fatal',
134
- 'log',
135
- 'authenticate',
136
- 'refresh',
137
- 'revoke',
138
- 'invalidate',
139
- 'invalidateAll',
140
- 'clearCache',
141
- 'warmCache',
142
- 'getCacheStats',
143
- 'getCacheStatistics',
144
- 'getConfig',
145
- 'clear',
146
- 'reset',
147
- 'resetMetrics',
148
- 'getInstance',
149
- 'isInitialized',
150
- 'getInitializationState',
151
- 'getName',
152
- 'getLogLevel',
153
- 'hasTarget',
154
- 'getFilePath',
155
- 'getLogGroupName',
156
- 'listDomains',
157
- 'listPolicies',
158
- 'isRegistered',
159
- 'create',
160
- 'createWithStoreConfig',
161
- 'createStore',
162
- 'createAlgorithmStrategy',
163
- 'createStoreStrategy',
164
- 'createValidationStrategy',
165
- 'getProviderInstance',
166
- 'add',
167
- 'remove',
168
- 'getChildren',
169
- 'getComponentInfo',
170
- 'getMostUsedFallback',
171
- 'hasHealthCheck',
172
- 'hasFallback',
173
- 'isSensitiveField',
174
- 'recommendStrategy',
175
- 'supportsTimestamp',
176
- 'getConnectionStatus',
177
- 'updateConnectionStatus',
178
- 'getPermissions',
179
- 'addPermission',
180
- 'removePermission',
181
- 'getHealthCheckError',
182
- 'getAllEvents',
183
- 'archiveEvents',
184
- 'listObjects',
185
- 'setProvider',
186
- 'setSecret',
187
- 'deleteSecret',
188
- 'getAllSessions',
189
- 'createSession',
190
- 'query',
191
- 'getEventCount',
192
- 'size',
193
- 'createInvalidation',
194
- 'getInvalidation',
195
- 'waitForInvalidation',
196
- 'createRateLimiter',
197
- 'fromConfig',
198
- 'createCacheKey',
199
- 'toEnvVarName',
200
- ]);
201
- /**
202
- * Strips generic type-parameter clauses from a type reference. Handles
203
- * nested generics (`Foo<Bar<Baz>>`) by repeatedly removing innermost
204
- * `<...>` until idempotent. Used both for resolving interface lookups
205
- * (`IFoo<T>` -> `IFoo`) and for the `extends` / `implements` clause text
206
- * which may carry generic args.
207
- */
208
- function stripGenerics(typeRef) {
209
- let prev = typeRef;
210
- for (;;) {
211
- const next = prev.replaceAll(/<[^<>]*>/g, '');
212
- if (next === prev)
213
- return next.trim();
214
- prev = next;
215
- }
216
- }
217
- function countBraces(line) {
218
- let open = 0;
219
- let close = 0;
220
- for (const char of line) {
221
- if (char === '{')
222
- open++;
223
- if (char === '}')
224
- close++;
225
- }
226
- return { open, close };
227
- }
228
- /**
229
- * Splits a comma-separated type list at angle-bracket depth 0 only. Naive
230
- * `.split(',')` would shred multi-arg generics like
231
- * `TypedPipelineStep<Input, Output>` into `TypedPipelineStep<Input` and
232
- * `Output>` — both garbage.
233
- */
234
- function splitTopLevel(raw) {
235
- const segments = [];
236
- let depth = 0;
237
- let buf = '';
238
- for (const ch of raw) {
239
- if (ch === '<')
240
- depth++;
241
- else if (ch === '>')
242
- depth = Math.max(0, depth - 1);
243
- if (ch === ',' && depth === 0) {
244
- segments.push(buf);
245
- buf = '';
246
- continue;
247
- }
248
- buf += ch;
249
- }
250
- if (buf.length > 0)
251
- segments.push(buf);
252
- return segments;
253
- }
254
- function parseTypeList(raw) {
255
- return splitTopLevel(raw)
256
- .map((segment) => stripGenerics(segment.trim()))
257
- .filter(Boolean);
258
- }
259
- function tryStartInterface(line, lineIndex) {
260
- const match = INTERFACE_PATTERN.exec(line);
261
- if (!match?.[1])
262
- return null;
263
- return {
264
- name: match[1],
265
- extends: parseTypeList(match[2] ?? ''),
266
- startLine: lineIndex + 1,
267
- methods: [],
268
- braces: 0,
269
- };
270
- }
271
- function extractInterfaceMethod(line) {
272
- const methodMatch = METHOD_IN_INTERFACE_PATTERN.exec(line);
273
- if (!methodMatch?.[1])
274
- return null;
275
- /* v8 ignore next 2 -- defensive: rare edge cases for keyword names and inline comments in interfaces */
276
- if (JS_KEYWORDS.has(methodMatch[1]))
277
- return null;
278
- if (line.includes('//'))
279
- return null;
280
- return methodMatch[1];
281
- }
282
- function parseInterfaces(content, file) {
283
- const interfaces = [];
284
- const lines = content.split('\n');
285
- let current = null;
286
- for (const [i, line_] of lines.entries()) {
287
- /* v8 ignore next -- defensive: lines.entries() never yields undefined */
288
- const line = line_ ?? '';
289
- const justStarted = current === null;
290
- current ??= tryStartInterface(line, i);
291
- if (!current)
292
- continue;
293
- // Multi-line interface header: when an `extends` clause appears on a
294
- // continuation line before the opening `{`, capture it. The first
295
- // line's extends (if any) was parsed by `tryStartInterface`; we only
296
- // pick up the continuation when the body has not yet opened.
297
- if (!justStarted && current.braces === 0 && current.extends.length === 0) {
298
- const continuationMatch = INTERFACE_EXTENDS_CONTINUATION.exec(line);
299
- if (continuationMatch?.[1]) {
300
- current.extends = parseTypeList(continuationMatch[1]);
301
- }
302
- }
303
- const hadBraces = current.braces > 0;
304
- const { open, close } = countBraces(line);
305
- current.braces += open - close;
306
- const method = extractInterfaceMethod(line);
307
- if (method) {
308
- current.methods.push(method);
309
- }
310
- if (current.braces === 0 && (hadBraces || open > 0)) {
311
- interfaces.push({
312
- name: current.name,
313
- extends: current.extends,
314
- methods: current.methods,
315
- startLine: current.startLine,
316
- file,
317
- });
318
- current = null;
319
- }
320
- }
321
- return interfaces;
322
- }
323
- /* v8 ignore start -- method-definition heuristic with many edge-case branches; covered indirectly via class parsing tests */
324
- function isMethodDefinition(line) {
325
- const trimmed = line.trim();
326
- const leadingWhitespace = line.length - line.trimStart().length;
327
- if (leadingWhitespace > 4)
328
- return false;
329
- if (trimmed.endsWith(');'))
330
- return false;
331
- if (trimmed.endsWith('),') || trimmed.endsWith('(,'))
332
- return false;
333
- if (VISIBILITY_MODIFIER_PATTERN.test(trimmed))
334
- return true;
335
- if (ASYNC_STATIC_METHOD_PATTERN.test(trimmed))
336
- return true;
337
- if (TYPE_ANNOTATION_PATTERN.test(trimmed) || METHOD_BODY_PATTERN.test(trimmed))
338
- return true;
339
- if (leadingWhitespace <= 2 && CLASS_LEVEL_METHOD_PATTERN.test(trimmed))
340
- return true;
341
- return false;
342
- }
343
- function tryStartClass(line, lineIndex) {
344
- const match = CLASS_PATTERN.exec(line);
345
- if (!match?.[1])
346
- return null;
347
- return {
348
- name: match[1],
349
- // `parseTypeList` strips generic args so `implements IFoo<T>` is keyed
350
- // by the bare interface name, matching the `allInterfaces` map.
351
- /* v8 ignore next -- defensive: regex group [2] may be undefined when no implements clause is present */
352
- implements: parseTypeList(match[2] ?? ''),
353
- startLine: lineIndex + 1,
354
- methods: [],
355
- braces: 0,
356
- };
357
- }
358
- /* v8 ignore start -- class-method extraction has many edge-case skip paths; covered indirectly */
359
- function extractClassMethod(line) {
360
- const trimmed = line.trim();
361
- if (trimmed.startsWith('private') || trimmed.startsWith('protected'))
362
- return null;
363
- if (line.includes('//'))
364
- return null;
365
- // Skip static methods. Interfaces cannot declare static members, so
366
- // a class's `static fromX()` factory or `static create()` would always
367
- // appear to be an "extra" method — that's a false positive.
368
- if (STATIC_MODIFIER_PATTERN.test(line))
369
- return null;
370
- const methodMatch = METHOD_IN_CLASS_PATTERN.exec(line);
371
- if (!methodMatch?.[1])
372
- return null;
373
- if (methodMatch[1] === 'constructor')
374
- return null;
375
- if (JS_KEYWORDS.has(methodMatch[1]))
376
- return null;
377
- if (!isMethodDefinition(line))
378
- return null;
379
- return methodMatch[1];
380
- }
381
- /* v8 ignore stop */
382
- function parseClasses(content, file) {
383
- const classes = [];
384
- const lines = content.split('\n');
385
- let current = null;
386
- for (const [i, line_] of lines.entries()) {
387
- /* v8 ignore next -- defensive: lines.entries() never yields undefined */
388
- const line = line_ ?? '';
389
- current ??= tryStartClass(line, i);
390
- if (!current)
391
- continue;
392
- const hadBraces = current.braces > 0;
393
- const { open, close } = countBraces(line);
394
- current.braces += open - close;
395
- const method = extractClassMethod(line);
396
- if (method) {
397
- current.methods.push(method);
398
- }
399
- if (current.braces === 0 && (hadBraces || open > 0)) {
400
- classes.push({
401
- name: current.name,
402
- implements: current.implements,
403
- methods: [...new Set(current.methods)],
404
- startLine: current.startLine,
405
- file,
406
- });
407
- current = null;
408
- }
409
- }
410
- return classes;
411
- }
412
- function mergeInterface(allInterfaces, iface) {
413
- const existing = allInterfaces.get(iface.name);
414
- if (!existing) {
415
- allInterfaces.set(iface.name, iface);
416
- return;
417
- }
418
- const methodSet = new Set(existing.methods);
419
- for (const method of iface.methods)
420
- methodSet.add(method);
421
- allInterfaces.set(iface.name, { ...existing, methods: [...methodSet] });
422
- }
423
- /* v8 ignore start -- interface-name resolution heuristic with multiple fallback paths; covered via integration */
424
- function resolveInterface(allInterfaces, name) {
425
- // Defensive: callers strip generics on parse, but if a generic slips
426
- // through here we still want the lookup to succeed.
427
- const bare = stripGenerics(name);
428
- let iface = allInterfaces.get(bare);
429
- if (iface)
430
- return iface;
431
- if (bare.startsWith('I') && bare.length > 1 && bare[1] === bare[1]?.toUpperCase()) {
432
- iface = allInterfaces.get(bare.slice(1));
433
- if (iface)
434
- return iface;
435
- }
436
- return allInterfaces.get('I' + bare);
437
- }
438
- /* v8 ignore stop */
439
- function createInterfaceMethodsResolver(allInterfaces) {
440
- return function getInterfaceMethods(name, visited = new Set()) {
441
- if (visited.has(name))
442
- return [];
443
- visited.add(name);
444
- const iface = resolveInterface(allInterfaces, name);
445
- if (!iface)
446
- return [];
447
- const methods = [...iface.methods];
448
- for (const ext of iface.extends) {
449
- for (const method of getInterfaceMethods(ext, visited))
450
- methods.push(method);
451
- }
452
- return methods;
453
- };
454
- }
455
- /**
456
- * Test fakes (`class Fake<X> implements I<X>`) intentionally extend the
457
- * production interface with helper methods that drive the fake's state
458
- * (`queueError`, `setEvents`, `reset`, etc.). Flagging these as
459
- * "extra methods" produces noise without surfacing real interface drift.
460
- * Detected by class-name prefix rather than file path so the rule fires
461
- * uniformly regardless of where fakes live.
462
- */
463
- const TEST_DOUBLE_CLASS_NAME_PATTERN = /^(Fake|Mock|Stub|Spy)[A-Z]/;
6
+ import { isAllowedExtraMethod, TEST_DOUBLE_CLASS_NAME_PATTERN, } from './interface-implementation-consistency-constants.js';
7
+ import { createInterfaceMethodsResolver, mergeInterface, parseClasses, parseInterfaces, } from './interface-implementation-consistency-parse.js';
464
8
  function checkConsistencyForClass(cls, getInterfaceMethods, issues) {
465
- /* v8 ignore next -- defensive: callers always pass an array */
9
+ /* v8 ignore next */
466
10
  if (!Array.isArray(issues))
467
11
  return;
468
12
  if (cls.implements.length === 0)
@@ -476,7 +20,7 @@ function checkConsistencyForClass(cls, getInterfaceMethods, issues) {
476
20
  }
477
21
  }
478
22
  const reportInterface = cls.implements[0] ?? 'unknown';
479
- const extraMethods = cls.methods.filter((method) => !ALLOWED_EXTRA_METHODS.has(method) && !allowedMethods.has(method));
23
+ const extraMethods = cls.methods.filter((method) => !isAllowedExtraMethod(method) && !allowedMethods.has(method));
480
24
  for (const method of extraMethods) {
481
25
  issues.push({
482
26
  file: cls.file,
@@ -519,7 +63,6 @@ export const interfaceImplementationConsistency = defineCheck({
519
63
  const allInterfaces = new Map();
520
64
  const allClasses = new Map();
521
65
  // @lazy-ok -- validations inside loop depend on file content from await
522
- // Collect interfaces and classes
523
66
  for (const file of files.paths) {
524
67
  const content = await files.read(file);
525
68
  if (!content)
@@ -537,7 +80,6 @@ export const interfaceImplementationConsistency = defineCheck({
537
80
  }
538
81
  const getInterfaceMethods = createInterfaceMethodsResolver(allInterfaces);
539
82
  const issues = [];
540
- // Check each class against its interfaces
541
83
  allClasses.forEach((cls) => {
542
84
  checkConsistencyForClass(cls, getInterfaceMethods, issues);
543
85
  });
@@ -1 +1 @@
1
- {"version":3,"file":"interface-implementation-consistency.js","sourceRoot":"","sources":["../../../../src/checks/architecture/modules/interface-implementation-consistency.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interface-implementation-consistency.js","sourceRoot":"","sources":["../../../../src/checks/architecture/modules/interface-implementation-consistency.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"node-version-consistency.d.ts","sourceRoot":"","sources":["../../../src/checks/architecture/node-version-consistency.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAkMH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,sCAqEjC,CAAC"}
1
+ {"version":3,"file":"node-version-consistency.d.ts","sourceRoot":"","sources":["../../../src/checks/architecture/node-version-consistency.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAkMH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,sCAoEjC,CAAC"}
@@ -1,5 +1,4 @@
1
1
  // @fitness-ignore-file fitness-check-standards -- Uses fs for package.json reading, not source file content
2
- // @fitness-ignore-file detached-promises -- helpers (checkNvmrc, checkWorkspaceEngines, checkTypesNode, checkCiWorkflow) are synchronous violation-collectors; heuristic flags them despite returning void
3
2
  /**
4
3
  * @fileoverview Node version consistency fitness check
5
4
  * @invariants
@@ -202,7 +201,6 @@ export const nodeVersionConsistency = defineCheck({
202
201
  if (expectedMajor === null)
203
202
  return violations;
204
203
  for (const filePath of files.paths) {
205
- // @fitness-ignore-next-line performance-anti-patterns -- sequential file reading to control memory; FileAccessor is lazy
206
204
  const content = await files.read(filePath);
207
205
  const basename = path.basename(filePath);
208
206
  if (basename === '.nvmrc') {
@@ -1 +1 @@
1
- {"version":3,"file":"node-version-consistency.js","sourceRoot":"","sources":["../../../src/checks/architecture/node-version-consistency.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-version-consistency.js","sourceRoot":"","sources":["../../../src/checks/architecture/node-version-consistency.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stale-build-artifacts.d.ts","sourceRoot":"","sources":["../../../src/checks/architecture/stale-build-artifacts.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AA0BH,eAAO,MAAM,mBAAmB,sCA6B9B,CAAC"}
1
+ {"version":3,"file":"stale-build-artifacts.d.ts","sourceRoot":"","sources":["../../../src/checks/architecture/stale-build-artifacts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA0BH,eAAO,MAAM,mBAAmB,sCA6B9B,CAAC"}
@@ -1,4 +1,3 @@
1
- // @fitness-ignore-file batch-operation-limits -- iterates bounded collection (workspace package roots and their dist/ siblings; small N per repo)
2
1
  /**
3
2
  * @fileoverview Stale build artifact detection
4
3
  * @module checks-builtin/checks/architecture/stale-build-artifacts
@@ -1 +1 @@
1
- {"version":3,"file":"stale-build-artifacts.js","sourceRoot":"","sources":["../../../src/checks/architecture/stale-build-artifacts.ts"],"names":[],"mappings":"AAAA,kJAAkJ;AAClJ;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAA0C,MAAM,sBAAsB,CAAC;AAE3F,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACrC,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAExD,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,gCAAgC;IAChC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,kDAAkD;IAClD,IACE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC3B,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACnC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;QAE7B,OAAO,IAAI,CAAC;IAEd,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACtC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAC;IAC7C,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,uBAAuB;IAC7B,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE;IAC9E,UAAU,EAAE,MAAM;IAClB,WAAW,EACT,gGAAgG;IAClG,IAAI,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,SAAS,CAAC;IAE1C,4JAA4J;IAC5J,KAAK,CAAC,UAAU,CAAC,KAAmB;QAClC,MAAM,UAAU,GAAqB,EAAE,CAAC;QAExC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,MAAM,EAAE,CAAC;gBACX,UAAU,CAAC,IAAI,CAAC;oBACd,QAAQ;oBACR,IAAI,EAAE,CAAC;oBACP,OAAO,EAAE,yBAAyB,MAAM,CAAC,GAAG,oEAAoE;oBAChH,QAAQ,EAAE,OAAO;oBACjB,UAAU,EAAE,UAAU,QAAQ,yEAAyE;oBACvG,IAAI,EAAE,gBAAgB;iBACvB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"stale-build-artifacts.js","sourceRoot":"","sources":["../../../src/checks/architecture/stale-build-artifacts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAA0C,MAAM,sBAAsB,CAAC;AAE3F,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACrC,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAExD,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,gCAAgC;IAChC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,kDAAkD;IAClD,IACE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC3B,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACnC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;QAE7B,OAAO,IAAI,CAAC;IAEd,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACtC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAC;IAC7C,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,uBAAuB;IAC7B,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE;IAC9E,UAAU,EAAE,MAAM;IAClB,WAAW,EACT,gGAAgG;IAClG,IAAI,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,SAAS,CAAC;IAE1C,4JAA4J;IAC5J,KAAK,CAAC,UAAU,CAAC,KAAmB;QAClC,MAAM,UAAU,GAAqB,EAAE,CAAC;QAExC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,MAAM,EAAE,CAAC;gBACX,UAAU,CAAC,IAAI,CAAC;oBACd,QAAQ;oBACR,IAAI,EAAE,CAAC;oBACP,OAAO,EAAE,yBAAyB,MAAM,CAAC,GAAG,oEAAoE;oBAChH,QAAQ,EAAE,OAAO;oBACjB,UAAU,EAAE,UAAU,QAAQ,yEAAyE;oBACvG,IAAI,EAAE,gBAAgB;iBACvB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-has-manifest.d.ts","sourceRoot":"","sources":["../../../src/checks/architecture/tool-has-manifest.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAe,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAQ3F,gFAAgF;AAChF,UAAU,iBAAiB;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,UAAU,WAAW;IACnB,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAC3C;AA4ED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CAI3F;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAmB5F;AAED,eAAO,MAAM,eAAe,sCAS1B,CAAC"}
1
+ {"version":3,"file":"tool-has-manifest.d.ts","sourceRoot":"","sources":["../../../src/checks/architecture/tool-has-manifest.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAe,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAQ3F,gFAAgF;AAChF,UAAU,iBAAiB;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,UAAU,WAAW;IACnB,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAC3C;AA4ED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CAI3F;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAmB5F;AAED,eAAO,MAAM,eAAe,sCAS1B,CAAC"}
@@ -1,4 +1,3 @@
1
- // @fitness-ignore-file performance-anti-patterns -- the only async op is reading the analyzed workspace's package.json files in parallel; concurrency is bounded by the package.json count (a handful, not attacker-controlled), matching register-tools.ts's identical bounded-IO waiver.
2
1
  /**
3
2
  * @fileoverview Every first-party tool package must declare a conformant
4
3
  * static plugin manifest (release 2.9.0, identity & compatibility — Phase 5).
@@ -1 +1 @@
1
- {"version":3,"file":"tool-has-manifest.js","sourceRoot":"","sources":["../../../src/checks/architecture/tool-has-manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-has-manifest.js","sourceRoot":"","sources":["../../../src/checks/architecture/tool-has-manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { type CheckViolation, type FileAccessor } from '@opensip-cli/fitness';
2
+ interface ManifestIdentity {
3
+ readonly name?: unknown;
4
+ readonly aliases?: unknown;
5
+ readonly layoutKey?: unknown;
6
+ }
7
+ interface OpensipToolsBlock {
8
+ readonly kind?: unknown;
9
+ readonly id?: unknown;
10
+ readonly identity?: ManifestIdentity;
11
+ readonly commands?: unknown;
12
+ readonly pluginLayout?: {
13
+ readonly domain?: unknown;
14
+ };
15
+ }
16
+ interface PackageJson {
17
+ readonly opensipTools?: OpensipToolsBlock;
18
+ }
19
+ export declare function analyzeToolIdentitySingleSource(pkg: PackageJson, filePath: string): CheckViolation[];
20
+ export declare function analyzeAllToolIdentityManifests(files: FileAccessor): Promise<CheckViolation[]>;
21
+ export declare const toolIdentitySingleSource: import("@opensip-cli/fitness").Check;
22
+ export {};
23
+ //# sourceMappingURL=tool-identity-single-source.d.ts.map