@opensip-cli/checks-universal 0.1.10 → 0.1.12

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 (247) 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/__tests__/resilience-fp.test.js +42 -0
  44. package/dist/__tests__/resilience-fp.test.js.map +1 -1
  45. package/dist/checks/architecture/__tests__/tool-identity-single-source.test.d.ts +2 -0
  46. package/dist/checks/architecture/__tests__/tool-identity-single-source.test.d.ts.map +1 -0
  47. package/dist/checks/architecture/__tests__/tool-identity-single-source.test.js +61 -0
  48. package/dist/checks/architecture/__tests__/tool-identity-single-source.test.js.map +1 -0
  49. package/dist/checks/architecture/dependencies/no-duplicate-packages.d.ts.map +1 -1
  50. package/dist/checks/architecture/dependencies/no-duplicate-packages.js +0 -2
  51. package/dist/checks/architecture/dependencies/no-duplicate-packages.js.map +1 -1
  52. package/dist/checks/architecture/docker-best-practices-analyze.d.ts +7 -0
  53. package/dist/checks/architecture/docker-best-practices-analyze.d.ts.map +1 -0
  54. package/dist/checks/architecture/docker-best-practices-analyze.js +301 -0
  55. package/dist/checks/architecture/docker-best-practices-analyze.js.map +1 -0
  56. package/dist/checks/architecture/docker-best-practices-patterns.d.ts +50 -0
  57. package/dist/checks/architecture/docker-best-practices-patterns.d.ts.map +1 -0
  58. package/dist/checks/architecture/docker-best-practices-patterns.js +51 -0
  59. package/dist/checks/architecture/docker-best-practices-patterns.js.map +1 -0
  60. package/dist/checks/architecture/docker-best-practices.d.ts.map +1 -1
  61. package/dist/checks/architecture/docker-best-practices.js +1 -367
  62. package/dist/checks/architecture/docker-best-practices.js.map +1 -1
  63. package/dist/checks/architecture/docker-ignore-validation.d.ts.map +1 -1
  64. package/dist/checks/architecture/docker-ignore-validation.js +0 -1
  65. package/dist/checks/architecture/docker-ignore-validation.js.map +1 -1
  66. package/dist/checks/architecture/docker-version-sync.d.ts.map +1 -1
  67. package/dist/checks/architecture/docker-version-sync.js +0 -1
  68. package/dist/checks/architecture/docker-version-sync.js.map +1 -1
  69. package/dist/checks/architecture/heavy-import-detection.d.ts.map +1 -1
  70. package/dist/checks/architecture/heavy-import-detection.js +1 -0
  71. package/dist/checks/architecture/heavy-import-detection.js.map +1 -1
  72. package/dist/checks/architecture/index.d.ts +1 -0
  73. package/dist/checks/architecture/index.d.ts.map +1 -1
  74. package/dist/checks/architecture/index.js +1 -0
  75. package/dist/checks/architecture/index.js.map +1 -1
  76. package/dist/checks/architecture/modules/empty-package-detection.d.ts.map +1 -1
  77. package/dist/checks/architecture/modules/empty-package-detection.js +0 -3
  78. package/dist/checks/architecture/modules/empty-package-detection.js.map +1 -1
  79. package/dist/checks/architecture/modules/interface-implementation-consistency-constants.d.ts +16 -0
  80. package/dist/checks/architecture/modules/interface-implementation-consistency-constants.d.ts.map +1 -0
  81. package/dist/checks/architecture/modules/interface-implementation-consistency-constants.js +182 -0
  82. package/dist/checks/architecture/modules/interface-implementation-consistency-constants.js.map +1 -0
  83. package/dist/checks/architecture/modules/interface-implementation-consistency-parse.d.ts +23 -0
  84. package/dist/checks/architecture/modules/interface-implementation-consistency-parse.d.ts.map +1 -0
  85. package/dist/checks/architecture/modules/interface-implementation-consistency-parse.js +235 -0
  86. package/dist/checks/architecture/modules/interface-implementation-consistency-parse.js.map +1 -0
  87. package/dist/checks/architecture/modules/interface-implementation-consistency.d.ts.map +1 -1
  88. package/dist/checks/architecture/modules/interface-implementation-consistency.js +4 -462
  89. package/dist/checks/architecture/modules/interface-implementation-consistency.js.map +1 -1
  90. package/dist/checks/architecture/node-version-consistency.d.ts.map +1 -1
  91. package/dist/checks/architecture/node-version-consistency.js +0 -2
  92. package/dist/checks/architecture/node-version-consistency.js.map +1 -1
  93. package/dist/checks/architecture/project-readme-existence.d.ts.map +1 -1
  94. package/dist/checks/architecture/project-readme-existence.js +0 -1
  95. package/dist/checks/architecture/project-readme-existence.js.map +1 -1
  96. package/dist/checks/architecture/stale-build-artifacts.d.ts.map +1 -1
  97. package/dist/checks/architecture/stale-build-artifacts.js +0 -1
  98. package/dist/checks/architecture/stale-build-artifacts.js.map +1 -1
  99. package/dist/checks/architecture/tool-has-manifest.d.ts.map +1 -1
  100. package/dist/checks/architecture/tool-has-manifest.js +0 -1
  101. package/dist/checks/architecture/tool-has-manifest.js.map +1 -1
  102. package/dist/checks/architecture/tool-identity-single-source.d.ts +23 -0
  103. package/dist/checks/architecture/tool-identity-single-source.d.ts.map +1 -0
  104. package/dist/checks/architecture/tool-identity-single-source.js +126 -0
  105. package/dist/checks/architecture/tool-identity-single-source.js.map +1 -0
  106. package/dist/checks/architecture/vitest-config-required-with-tests.d.ts.map +1 -1
  107. package/dist/checks/architecture/vitest-config-required-with-tests.js +0 -1
  108. package/dist/checks/architecture/vitest-config-required-with-tests.js.map +1 -1
  109. package/dist/checks/documentation/_directives/fitness.d.ts.map +1 -1
  110. package/dist/checks/documentation/_directives/fitness.js +7 -52
  111. package/dist/checks/documentation/_directives/fitness.js.map +1 -1
  112. package/dist/checks/documentation/_directives/graph.d.ts.map +1 -1
  113. package/dist/checks/documentation/_directives/graph.js +7 -52
  114. package/dist/checks/documentation/_directives/graph.js.map +1 -1
  115. package/dist/checks/documentation/_directives/semgrep.d.ts.map +1 -1
  116. package/dist/checks/documentation/_directives/semgrep.js +2 -12
  117. package/dist/checks/documentation/_directives/semgrep.js.map +1 -1
  118. package/dist/checks/documentation/_directives/shared.d.ts +9 -0
  119. package/dist/checks/documentation/_directives/shared.d.ts.map +1 -0
  120. package/dist/checks/documentation/_directives/shared.js +53 -0
  121. package/dist/checks/documentation/_directives/shared.js.map +1 -0
  122. package/dist/checks/documentation/_public-api-graph.d.ts +3 -26
  123. package/dist/checks/documentation/_public-api-graph.d.ts.map +1 -1
  124. package/dist/checks/documentation/_public-api-graph.js +3 -300
  125. package/dist/checks/documentation/_public-api-graph.js.map +1 -1
  126. package/dist/checks/documentation/directive-audit.d.ts.map +1 -1
  127. package/dist/checks/documentation/directive-audit.js +0 -1
  128. package/dist/checks/documentation/directive-audit.js.map +1 -1
  129. package/dist/checks/file-length-limit.d.ts +7 -0
  130. package/dist/checks/file-length-limit.d.ts.map +1 -1
  131. package/dist/checks/file-length-limit.js +14 -2
  132. package/dist/checks/file-length-limit.js.map +1 -1
  133. package/dist/checks/quality/code-structure/dead-code.d.ts.map +1 -1
  134. package/dist/checks/quality/code-structure/dead-code.js +0 -1
  135. package/dist/checks/quality/code-structure/dead-code.js.map +1 -1
  136. package/dist/checks/quality/dependency-version-consistency.d.ts.map +1 -1
  137. package/dist/checks/quality/dependency-version-consistency.js +0 -3
  138. package/dist/checks/quality/dependency-version-consistency.js.map +1 -1
  139. package/dist/checks/quality/frontend/navigation-typing.d.ts.map +1 -1
  140. package/dist/checks/quality/frontend/navigation-typing.js +0 -1
  141. package/dist/checks/quality/frontend/navigation-typing.js.map +1 -1
  142. package/dist/checks/quality/index.d.ts +1 -0
  143. package/dist/checks/quality/index.d.ts.map +1 -1
  144. package/dist/checks/quality/index.js +1 -0
  145. package/dist/checks/quality/index.js.map +1 -1
  146. package/dist/checks/quality/linting/eslint-justifications.d.ts.map +1 -1
  147. package/dist/checks/quality/linting/eslint-justifications.js +1 -1
  148. package/dist/checks/quality/linting/eslint-justifications.js.map +1 -1
  149. package/dist/checks/quality/no-raw-regex-on-code.d.ts.map +1 -1
  150. package/dist/checks/quality/no-raw-regex-on-code.js +2 -3
  151. package/dist/checks/quality/no-raw-regex-on-code.js.map +1 -1
  152. package/dist/checks/quality/patterns/__tests__/performance-anti-patterns-fp.test.d.ts +5 -0
  153. package/dist/checks/quality/patterns/__tests__/performance-anti-patterns-fp.test.d.ts.map +1 -0
  154. package/dist/checks/quality/patterns/__tests__/performance-anti-patterns-fp.test.js +66 -0
  155. package/dist/checks/quality/patterns/__tests__/performance-anti-patterns-fp.test.js.map +1 -0
  156. package/dist/checks/quality/patterns/performance-anti-patterns.d.ts +3 -0
  157. package/dist/checks/quality/patterns/performance-anti-patterns.d.ts.map +1 -1
  158. package/dist/checks/quality/patterns/performance-anti-patterns.js +47 -30
  159. package/dist/checks/quality/patterns/performance-anti-patterns.js.map +1 -1
  160. package/dist/checks/quality/yagni-ignore-hygiene.d.ts +10 -0
  161. package/dist/checks/quality/yagni-ignore-hygiene.d.ts.map +1 -0
  162. package/dist/checks/quality/yagni-ignore-hygiene.js +87 -0
  163. package/dist/checks/quality/yagni-ignore-hygiene.js.map +1 -0
  164. package/dist/checks/quality/yagni-ignore-hygiene.test.d.ts +5 -0
  165. package/dist/checks/quality/yagni-ignore-hygiene.test.d.ts.map +1 -0
  166. package/dist/checks/quality/yagni-ignore-hygiene.test.js +37 -0
  167. package/dist/checks/quality/yagni-ignore-hygiene.test.js.map +1 -0
  168. package/dist/checks/resilience/batch-operation-limits.d.ts +13 -0
  169. package/dist/checks/resilience/batch-operation-limits.d.ts.map +1 -0
  170. package/dist/checks/resilience/batch-operation-limits.js +214 -0
  171. package/dist/checks/resilience/batch-operation-limits.js.map +1 -0
  172. package/dist/checks/resilience/batch-operations.d.ts +2 -21
  173. package/dist/checks/resilience/batch-operations.d.ts.map +1 -1
  174. package/dist/checks/resilience/batch-operations.js +2 -420
  175. package/dist/checks/resilience/batch-operations.js.map +1 -1
  176. package/dist/checks/resilience/dangerous-config-defaults.d.ts.map +1 -1
  177. package/dist/checks/resilience/dangerous-config-defaults.js +0 -1
  178. package/dist/checks/resilience/dangerous-config-defaults.js.map +1 -1
  179. package/dist/checks/resilience/exit-code-correctness.d.ts.map +1 -1
  180. package/dist/checks/resilience/exit-code-correctness.js +0 -1
  181. package/dist/checks/resilience/exit-code-correctness.js.map +1 -1
  182. package/dist/checks/resilience/no-process-exit-in-finally.d.ts.map +1 -1
  183. package/dist/checks/resilience/no-process-exit-in-finally.js +0 -1
  184. package/dist/checks/resilience/no-process-exit-in-finally.js.map +1 -1
  185. package/dist/checks/resilience/readline-cleanup.d.ts.map +1 -1
  186. package/dist/checks/resilience/readline-cleanup.js +0 -1
  187. package/dist/checks/resilience/readline-cleanup.js.map +1 -1
  188. package/dist/checks/resilience/reentrancy-guard.d.ts.map +1 -1
  189. package/dist/checks/resilience/reentrancy-guard.js +0 -1
  190. package/dist/checks/resilience/reentrancy-guard.js.map +1 -1
  191. package/dist/checks/resilience/sentry/_helpers/sentry.d.ts +10 -0
  192. package/dist/checks/resilience/sentry/_helpers/sentry.d.ts.map +1 -1
  193. package/dist/checks/resilience/sentry/_helpers/sentry.js +21 -0
  194. package/dist/checks/resilience/sentry/_helpers/sentry.js.map +1 -1
  195. package/dist/checks/resilience/sentry/sentry-dsn-configured.d.ts.map +1 -1
  196. package/dist/checks/resilience/sentry/sentry-dsn-configured.js +8 -23
  197. package/dist/checks/resilience/sentry/sentry-dsn-configured.js.map +1 -1
  198. package/dist/checks/resilience/sentry/sentry-environment-set.d.ts.map +1 -1
  199. package/dist/checks/resilience/sentry/sentry-environment-set.js +8 -20
  200. package/dist/checks/resilience/sentry/sentry-environment-set.js.map +1 -1
  201. package/dist/checks/resilience/sentry/sentry-release-set.d.ts.map +1 -1
  202. package/dist/checks/resilience/sentry/sentry-release-set.js +8 -20
  203. package/dist/checks/resilience/sentry/sentry-release-set.js.map +1 -1
  204. package/dist/checks/resilience/service-patterns.d.ts.map +1 -1
  205. package/dist/checks/resilience/service-patterns.js +0 -1
  206. package/dist/checks/resilience/service-patterns.js.map +1 -1
  207. package/dist/checks/resilience/unbounded-memory.d.ts +13 -0
  208. package/dist/checks/resilience/unbounded-memory.d.ts.map +1 -0
  209. package/dist/checks/resilience/unbounded-memory.js +274 -0
  210. package/dist/checks/resilience/unbounded-memory.js.map +1 -0
  211. package/dist/checks/security/csp-headers.d.ts.map +1 -1
  212. package/dist/checks/security/csp-headers.js +0 -1
  213. package/dist/checks/security/csp-headers.js.map +1 -1
  214. package/dist/checks/security/hasura-production-config.d.ts.map +1 -1
  215. package/dist/checks/security/hasura-production-config.js +0 -1
  216. package/dist/checks/security/hasura-production-config.js.map +1 -1
  217. package/dist/checks/security/jwt-validation.d.ts.map +1 -1
  218. package/dist/checks/security/jwt-validation.js +0 -2
  219. package/dist/checks/security/jwt-validation.js.map +1 -1
  220. package/dist/checks/security/package-supply-chain-policy.d.ts.map +1 -1
  221. package/dist/checks/security/package-supply-chain-policy.js +9 -16
  222. package/dist/checks/security/package-supply-chain-policy.js.map +1 -1
  223. package/dist/checks/security/semgrep-scan.d.ts.map +1 -1
  224. package/dist/checks/security/semgrep-scan.js +0 -1
  225. package/dist/checks/security/semgrep-scan.js.map +1 -1
  226. package/dist/checks/security/use-centralized-crypto.d.ts.map +1 -1
  227. package/dist/checks/security/use-centralized-crypto.js +2 -3
  228. package/dist/checks/security/use-centralized-crypto.js.map +1 -1
  229. package/dist/checks/testing/test-convention-consistency.d.ts.map +1 -1
  230. package/dist/checks/testing/test-convention-consistency.js +0 -2
  231. package/dist/checks/testing/test-convention-consistency.js.map +1 -1
  232. package/dist/checks/testing/test-file-naming.d.ts.map +1 -1
  233. package/dist/checks/testing/test-file-naming.js +0 -1
  234. package/dist/checks/testing/test-file-naming.js.map +1 -1
  235. package/dist/checks/testing/test-file-pairing.d.ts.map +1 -1
  236. package/dist/checks/testing/test-file-pairing.js +3 -7
  237. package/dist/checks/testing/test-file-pairing.js.map +1 -1
  238. package/dist/display/architecture.d.ts.map +1 -1
  239. package/dist/display/architecture.js +1 -0
  240. package/dist/display/architecture.js.map +1 -1
  241. package/dist/display/quality.d.ts.map +1 -1
  242. package/dist/display/quality.js +1 -0
  243. package/dist/display/quality.js.map +1 -1
  244. package/dist/display/types.d.ts.map +1 -1
  245. package/dist/display/types.js +0 -1
  246. package/dist/display/types.js.map +1 -1
  247. package/package.json +4 -4
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-identity-single-source.d.ts","sourceRoot":"","sources":["../../../src/checks/architecture/tool-identity-single-source.ts"],"names":[],"mappings":"AAMA,OAAO,EAAe,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE3F,UAAU,gBAAgB;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAQD,UAAU,iBAAiB;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACvD;AAED,UAAU,WAAW;IACnB,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAC3C;AAsHD,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,MAAM,GACf,cAAc,EAAE,CAIlB;AAED,wBAAsB,+BAA+B,CACnD,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,cAAc,EAAE,CAAC,CAa3B;AAED,eAAO,MAAM,wBAAwB,sCASnC,CAAC"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * @fileoverview First-party tool packages must declare a single `identity` block
3
+ * in package.json#opensipTools that matches the normalized runtime surface.
4
+ */
5
+ import path from 'node:path';
6
+ import { defineCheck } from '@opensip-cli/fitness';
7
+ function isJsonObject(value) {
8
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
9
+ }
10
+ function checkIdentity(block, push) {
11
+ const identity = block.identity;
12
+ if (!isJsonObject(identity)) {
13
+ push('identity', 'must declare opensipTools.identity { name, aliases?, layoutKey? }');
14
+ return;
15
+ }
16
+ if (typeof identity.name !== 'string' || identity.name === '') {
17
+ push('identity.name', 'must be a non-empty string (canonical CLI + config namespace)');
18
+ }
19
+ if (block.id !== identity.name) {
20
+ push('id', `must equal identity.name (got id=${JSON.stringify(block.id)}, identity.name=${JSON.stringify(identity.name)})`);
21
+ }
22
+ }
23
+ function findPrimaryCommand(commands) {
24
+ for (const entry of commands) {
25
+ if (!isJsonObject(entry))
26
+ continue;
27
+ const cmd = entry;
28
+ if (cmd.parent === undefined)
29
+ return cmd;
30
+ }
31
+ return undefined;
32
+ }
33
+ function checkPrimaryCommandName(primary, identityName, push) {
34
+ if (primary.name === identityName)
35
+ return;
36
+ push('commands', `primary command name must be identity.name (${JSON.stringify(identityName)}), got ${JSON.stringify(primary.name)}`);
37
+ }
38
+ function checkPrimaryCommandAliases(primary, identity, push) {
39
+ const expectedAliases = Array.isArray(identity.aliases) ? identity.aliases : [];
40
+ const declaredAliases = Array.isArray(primary.aliases) ? primary.aliases : [];
41
+ if (JSON.stringify(declaredAliases) === JSON.stringify(expectedAliases))
42
+ return;
43
+ push('commands', 'primary command aliases must equal identity.aliases exactly');
44
+ }
45
+ function layoutKeyForIdentity(identity, identityName) {
46
+ return typeof identity.layoutKey === 'string' && identity.layoutKey !== ''
47
+ ? identity.layoutKey
48
+ : identityName;
49
+ }
50
+ function checkPluginLayoutDomain(block, layoutKey, push) {
51
+ const pluginDomain = block.pluginLayout?.domain;
52
+ if (pluginDomain === undefined || pluginDomain === layoutKey)
53
+ return;
54
+ push('pluginLayout.domain', `must equal identity.layoutKey ?? identity.name (${JSON.stringify(layoutKey)})`);
55
+ }
56
+ function checkManifestCommands(block, push) {
57
+ const identity = block.identity;
58
+ if (!isJsonObject(identity))
59
+ return;
60
+ const identityName = identity.name;
61
+ if (typeof identityName !== 'string')
62
+ return;
63
+ const commands = block.commands;
64
+ if (!Array.isArray(commands))
65
+ return;
66
+ const primary = findPrimaryCommand(commands);
67
+ if (primary === undefined) {
68
+ push('commands', 'must declare exactly one flat primary command matching identity.name');
69
+ return;
70
+ }
71
+ checkPrimaryCommandName(primary, identityName, push);
72
+ checkPrimaryCommandAliases(primary, identity, push);
73
+ checkPluginLayoutDomain(block, layoutKeyForIdentity(identity, identityName), push);
74
+ }
75
+ function checkManifestBlock(block, filePath) {
76
+ const violations = [];
77
+ const relPath = path.relative(process.cwd(), filePath);
78
+ const push = (field, message) => {
79
+ violations.push({
80
+ line: 1,
81
+ filePath,
82
+ message: `${relPath}: opensipTools.${field} — ${message}`,
83
+ severity: 'error',
84
+ suggestion: 'Declare tool identity once: opensipTools.identity { name, aliases?, layoutKey? }; ' +
85
+ 'id must equal identity.name; primary command name/aliases and pluginLayout.domain must derive from it.',
86
+ type: `identity-${field.replaceAll('.', '-')}`,
87
+ });
88
+ };
89
+ if (block.kind !== 'tool')
90
+ return violations;
91
+ checkIdentity(block, push);
92
+ checkManifestCommands(block, push);
93
+ return violations;
94
+ }
95
+ export function analyzeToolIdentitySingleSource(pkg, filePath) {
96
+ const block = pkg.opensipTools;
97
+ if (!isJsonObject(block) || block.kind !== 'tool')
98
+ return [];
99
+ return checkManifestBlock(block, filePath);
100
+ }
101
+ export async function analyzeAllToolIdentityManifests(files) {
102
+ const violations = [];
103
+ for (const filePath of files.paths) {
104
+ if (path.basename(filePath) !== 'package.json')
105
+ continue;
106
+ let pkg;
107
+ try {
108
+ pkg = JSON.parse(await files.read(filePath));
109
+ }
110
+ catch {
111
+ continue;
112
+ }
113
+ violations.push(...analyzeToolIdentitySingleSource(pkg, filePath));
114
+ }
115
+ return violations;
116
+ }
117
+ export const toolIdentitySingleSource = defineCheck({
118
+ id: 'c8f3e1a2-9b4d-4e6f-a1c0-2d8e7f9a3b5c',
119
+ slug: 'tool-identity-single-source',
120
+ description: 'Tool packages declare opensipTools.identity once; manifest id, primary command, aliases, and pluginLayout.domain must match the normalized runtime surface',
121
+ scope: { languages: ['typescript'], concerns: ['config'] },
122
+ tags: ['architecture'],
123
+ contentFilter: 'raw',
124
+ analyzeAll: analyzeAllToolIdentityManifests,
125
+ });
126
+ //# sourceMappingURL=tool-identity-single-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-identity-single-source.js","sourceRoot":"","sources":["../../../src/checks/architecture/tool-identity-single-source.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"vitest-config-required-with-tests.d.ts","sourceRoot":"","sources":["../../../src/checks/architecture/vitest-config-required-with-tests.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAe,KAAK,cAAc,EAAqB,MAAM,sBAAsB,CAAC;AA2B3F;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC;;;;OAIG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3C;AA4CD,mDAAmD;AACnD,eAAO,MAAM,UAAU,EAAE,kBAGxB,CAAC;AAqCF;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,gBAAgB,EAAE,SAAS,MAAM,EAAE,EACnC,IAAI,EAAE,kBAAkB,GACvB,cAAc,EAAE,CAkDlB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,sCA4BxC,CAAC"}
1
+ {"version":3,"file":"vitest-config-required-with-tests.d.ts","sourceRoot":"","sources":["../../../src/checks/architecture/vitest-config-required-with-tests.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAe,KAAK,cAAc,EAAqB,MAAM,sBAAsB,CAAC;AA2B3F;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC;;;;OAIG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3C;AA4CD,mDAAmD;AACnD,eAAO,MAAM,UAAU,EAAE,kBAGxB,CAAC;AAqCF;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,gBAAgB,EAAE,SAAS,MAAM,EAAE,EACnC,IAAI,EAAE,kBAAkB,GACvB,cAAc,EAAE,CAkDlB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,sCA2BxC,CAAC"}
@@ -189,7 +189,6 @@ export const vitestConfigRequiredWithTests = defineCheck({
189
189
 
190
190
  **Scope:** Cross-file analysis via \`analyzeAll\`. Package roots are discovered generically from \`package.json\` files; nested package roots, \`node_modules\`, fixtures, and build output are skipped when scanning for tests.`,
191
191
  tags: ['architecture', 'testing'],
192
- // @fitness-ignore-next-line concurrency-safety -- async keyword required by analyzeAll interface contract; synchronous analysis implementation
193
192
  // eslint-disable-next-line @typescript-eslint/require-await -- AnalyzeAllCheckConfig requires Promise<CheckViolation[]>; this implementation is synchronous
194
193
  async analyzeAll(files) {
195
194
  const packageJsonPaths = files.paths.filter((fp) => path.basename(fp) === 'package.json');
@@ -1 +1 @@
1
- {"version":3,"file":"vitest-config-required-with-tests.js","sourceRoot":"","sources":["../../../src/checks/architecture/vitest-config-required-with-tests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vitest-config-required-with-tests.js","sourceRoot":"","sources":["../../../src/checks/architecture/vitest-config-required-with-tests.ts"],"names":[],"mappings":"AAAA,0HAA0H;AAC1H;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,WAAW,EAA0C,MAAM,sBAAsB,CAAC;AAE3F,wEAAwE;AACxE,MAAM,oBAAoB,GAAG,CAAC,kBAAkB,EAAE,mBAAmB,CAAU,CAAC;AAEhF;;;GAGG;AACH,MAAM,sBAAsB,GAAG;IAC7B,kBAAkB;IAClB,mBAAmB;IACnB,qBAAqB;CACb,CAAC;AAEX,yEAAyE;AACzE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;IACxB,cAAc;IACd,cAAc;IACd,WAAW;IACX,UAAU;IACV,MAAM;IACN,OAAO;IACP,UAAU;IACV,MAAM;CACP,CAAC,CAAC;AAiBH,kDAAkD;AAClD,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACjE,CAAC;AAED,iFAAiF;AACjF,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,wDAAwD;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,SAAS,gBAAgB,CAAC,KAAgB;IACxC,OAAO,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,GAAW,EAAE,MAAe;IAClD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAEnC,mEAAmE;IACnE,MAAM,mBAAmB,GACvB,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;IAC1E,IAAI,mBAAmB;QAAE,OAAO,KAAK,CAAC;IAEtC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvE,OAAO,OAAO;SACX,MAAM,CAAC,gBAAgB,CAAC;SACxB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,mDAAmD;AACnD,MAAM,CAAC,MAAM,UAAU,GAAuB;IAC5C,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;IAC7C,YAAY,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC;CAC/D,CAAC;AAEF;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,KAAwB;IACjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC;YAAE,MAAM;QACtD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,SAAS,uBAAuB,CAAC,WAA8B;IAC7D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9E,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CACvC,gBAAmC,EACnC,IAAwB;IAExB,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjE,+DAA+D;IAC/D,MAAM,cAAc,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,wBAAwB,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC5D,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CACpE,CAAC;IACF,IAAI,wBAAwB,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,UAAU,GAAqB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpE,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAEjD,yEAAyE;QACzE,yEAAyE;QACzE,mEAAmE;QACnE,kEAAkE;QAClE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACpE,SAAS;QACX,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,SAAS;QACX,CAAC;QAED,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACvD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CACtC,CAAC;QACF,IAAI,gBAAgB,EAAE,CAAC;YACrB,SAAS;QACX,CAAC;QAED,UAAU,CAAC,IAAI,CAAC;YACd,QAAQ,EAAE,eAAe;YACzB,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,YAAY,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,uEAAuE;YACrH,QAAQ,EAAE,OAAO;YACjB,UAAU,EACR,yOAAyO;YAC3O,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAChC,IAAI,EAAE,uBAAuB;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,WAAW,CAAC;IACvD,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,mCAAmC;IACzC,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE;IAE9E,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,sEAAsE;IACnF,eAAe,EAAE;;;;;;;;;;;iOAW8M;IAC/N,IAAI,EAAE,CAAC,cAAc,EAAE,SAAS,CAAC;IAEjC,4JAA4J;IAC5J,KAAK,CAAC,UAAU,CAAC,KAAmB;QAClC,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,cAAc,CAAC,CAAC;QAC1F,OAAO,yBAAyB,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IACjE,CAAC;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fitness.d.ts","sourceRoot":"","sources":["../../../../src/checks/documentation/_directives/fitness.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAyDhD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,aAAa,EAAE,CAgBjB"}
1
+ {"version":3,"file":"fitness.d.ts","sourceRoot":"","sources":["../../../../src/checks/documentation/_directives/fitness.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAgBhD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,aAAa,EAAE,CAEjB"}
@@ -4,61 +4,16 @@
4
4
  *
5
5
  * Extracted from `directive-audit.ts` in Phase C4.
6
6
  */
7
+ import { collectDirectives, extractIgnoreDirective } from './shared.js';
7
8
  function extractFitnessDirective(line, lineIndex, filePath, file) {
8
- const fileMarker = '@fitness-ignore-file';
9
- const nextLineMarker = '@fitness-ignore-next-line';
10
- let scopeType;
11
- let markerEnd;
12
- const fileIdx = line.indexOf(fileMarker);
13
- const nextLineIdx = line.indexOf(nextLineMarker);
14
- if (fileIdx !== -1) {
15
- scopeType = 'file';
16
- markerEnd = fileIdx + fileMarker.length;
17
- }
18
- else if (nextLineIdx === -1) {
19
- return null;
20
- }
21
- else {
22
- scopeType = 'next-line';
23
- markerEnd = nextLineIdx + nextLineMarker.length;
24
- }
25
- // Extract check ID and reason
26
- const afterMarker = line.slice(markerEnd).trim();
27
- const spaceIdx = afterMarker.indexOf(' ');
28
- if (spaceIdx === -1) {
29
- return null;
30
- }
31
- const checkId = afterMarker.slice(0, spaceIdx);
32
- const rest = afterMarker.slice(spaceIdx).trim();
33
- // Look for -- separator
34
- const separatorIdx = rest.indexOf('--');
35
- if (separatorIdx === -1) {
36
- return null;
37
- }
38
- const reason = rest.slice(separatorIdx + 2).trim();
39
- return {
40
- file,
41
- filePath,
42
- line: lineIndex + 1,
9
+ return extractIgnoreDirective(line, lineIndex, filePath, file, {
10
+ fileMarker: '@fitness-ignore-file',
11
+ nextLineMarker: '@fitness-ignore-next-line',
43
12
  source: 'fitness',
44
- scope: scopeType,
45
- rule: `fitness/${checkId}`,
46
- reason,
47
- raw: line.trim(),
48
- };
13
+ ruleFor: (checkId) => `fitness/${checkId}`,
14
+ });
49
15
  }
50
16
  export function parseFitnessDirectives(content, filePath, file) {
51
- const directives = [];
52
- const lines = content.split('\n');
53
- for (const [i, line] of lines.entries()) {
54
- if (line === undefined) {
55
- continue;
56
- }
57
- const directive = extractFitnessDirective(line, i, filePath, file);
58
- if (directive) {
59
- directives.push(directive);
60
- }
61
- }
62
- return directives;
17
+ return collectDirectives(content, filePath, file, extractFitnessDirective);
63
18
  }
64
19
  //# sourceMappingURL=fitness.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fitness.js","sourceRoot":"","sources":["../../../../src/checks/documentation/_directives/fitness.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,SAAS,uBAAuB,CAC9B,IAAY,EACZ,SAAiB,EACjB,QAAgB,EAChB,IAAY;IAEZ,MAAM,UAAU,GAAG,sBAAsB,CAAC;IAC1C,MAAM,cAAc,GAAG,2BAA2B,CAAC;IAEnD,IAAI,SAA+B,CAAC;IACpC,IAAI,SAAiB,CAAC;IAEtB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAEjD,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;QACnB,SAAS,GAAG,MAAM,CAAC;QACnB,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC;IAC1C,CAAC;SAAM,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,WAAW,CAAC;QACxB,SAAS,GAAG,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC;IAClD,CAAC;IAED,8BAA8B;IAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IAEhD,wBAAwB;IACxB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEnD,OAAO;QACL,IAAI;QACJ,QAAQ;QACR,IAAI,EAAE,SAAS,GAAG,CAAC;QACnB,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,WAAW,OAAO,EAAE;QAC1B,MAAM;QACN,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,QAAgB,EAChB,IAAY;IAEZ,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACxC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,uBAAuB,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnE,IAAI,SAAS,EAAE,CAAC;YACd,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"fitness.js","sourceRoot":"","sources":["../../../../src/checks/documentation/_directives/fitness.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAIxE,SAAS,uBAAuB,CAC9B,IAAY,EACZ,SAAiB,EACjB,QAAgB,EAChB,IAAY;IAEZ,OAAO,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7D,UAAU,EAAE,sBAAsB;QAClC,cAAc,EAAE,2BAA2B;QAC3C,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,OAAO,EAAE;KAC3C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,QAAgB,EAChB,IAAY;IAEZ,OAAO,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC;AAC7E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../src/checks/documentation/_directives/graph.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAyDhD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,aAAa,EAAE,CAgBjB"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../src/checks/documentation/_directives/graph.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAgBhD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,aAAa,EAAE,CAEjB"}
@@ -5,61 +5,16 @@
5
5
  * Modeled on `./fitness.ts`. Graph rule ids are already namespaced
6
6
  * (`graph:<…>`), so the parsed id is used directly as `rule`.
7
7
  */
8
+ import { collectDirectives, extractIgnoreDirective } from './shared.js';
8
9
  function extractGraphDirective(line, lineIndex, filePath, file) {
9
- const fileMarker = '@graph-ignore-file';
10
- const nextLineMarker = '@graph-ignore-next-line';
11
- let scopeType;
12
- let markerEnd;
13
- const fileIdx = line.indexOf(fileMarker);
14
- const nextLineIdx = line.indexOf(nextLineMarker);
15
- if (fileIdx !== -1) {
16
- scopeType = 'file';
17
- markerEnd = fileIdx + fileMarker.length;
18
- }
19
- else if (nextLineIdx === -1) {
20
- return null;
21
- }
22
- else {
23
- scopeType = 'next-line';
24
- markerEnd = nextLineIdx + nextLineMarker.length;
25
- }
26
- // Extract rule id and reason
27
- const afterMarker = line.slice(markerEnd).trim();
28
- const spaceIdx = afterMarker.indexOf(' ');
29
- if (spaceIdx === -1) {
30
- return null;
31
- }
32
- const ruleId = afterMarker.slice(0, spaceIdx);
33
- const rest = afterMarker.slice(spaceIdx).trim();
34
- // Look for -- separator
35
- const separatorIdx = rest.indexOf('--');
36
- if (separatorIdx === -1) {
37
- return null;
38
- }
39
- const reason = rest.slice(separatorIdx + 2).trim();
40
- return {
41
- file,
42
- filePath,
43
- line: lineIndex + 1,
10
+ return extractIgnoreDirective(line, lineIndex, filePath, file, {
11
+ fileMarker: '@graph-ignore-file',
12
+ nextLineMarker: '@graph-ignore-next-line',
44
13
  source: 'graph',
45
- scope: scopeType,
46
- rule: ruleId,
47
- reason,
48
- raw: line.trim(),
49
- };
14
+ ruleFor: (ruleId) => ruleId,
15
+ });
50
16
  }
51
17
  export function parseGraphDirectives(content, filePath, file) {
52
- const directives = [];
53
- const lines = content.split('\n');
54
- for (const [i, line] of lines.entries()) {
55
- if (line === undefined) {
56
- continue;
57
- }
58
- const directive = extractGraphDirective(line, i, filePath, file);
59
- if (directive) {
60
- directives.push(directive);
61
- }
62
- }
63
- return directives;
18
+ return collectDirectives(content, filePath, file, extractGraphDirective);
64
19
  }
65
20
  //# sourceMappingURL=graph.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../../src/checks/documentation/_directives/graph.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,SAAS,qBAAqB,CAC5B,IAAY,EACZ,SAAiB,EACjB,QAAgB,EAChB,IAAY;IAEZ,MAAM,UAAU,GAAG,oBAAoB,CAAC;IACxC,MAAM,cAAc,GAAG,yBAAyB,CAAC;IAEjD,IAAI,SAA+B,CAAC;IACpC,IAAI,SAAiB,CAAC;IAEtB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAEjD,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;QACnB,SAAS,GAAG,MAAM,CAAC;QACnB,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC;IAC1C,CAAC;SAAM,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,WAAW,CAAC;QACxB,SAAS,GAAG,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC;IAClD,CAAC;IAED,6BAA6B;IAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IAEhD,wBAAwB;IACxB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEnD,OAAO;QACL,IAAI;QACJ,QAAQ;QACR,IAAI,EAAE,SAAS,GAAG,CAAC;QACnB,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,MAAM;QACZ,MAAM;QACN,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,QAAgB,EAChB,IAAY;IAEZ,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACxC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjE,IAAI,SAAS,EAAE,CAAC;YACd,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../../src/checks/documentation/_directives/graph.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAIxE,SAAS,qBAAqB,CAC5B,IAAY,EACZ,SAAiB,EACjB,QAAgB,EAChB,IAAY;IAEZ,OAAO,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7D,UAAU,EAAE,oBAAoB;QAChC,cAAc,EAAE,yBAAyB;QACzC,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM;KAC5B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,QAAgB,EAChB,IAAY;IAEZ,OAAO,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAC;AAC3E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"semgrep.d.ts","sourceRoot":"","sources":["../../../../src/checks/documentation/_directives/semgrep.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAgEhD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,aAAa,EAAE,CAgBjB"}
1
+ {"version":3,"file":"semgrep.d.ts","sourceRoot":"","sources":["../../../../src/checks/documentation/_directives/semgrep.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAgEhD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,aAAa,EAAE,CAEjB"}
@@ -4,6 +4,7 @@
4
4
  *
5
5
  * Extracted from `directive-audit.ts` in Phase C4.
6
6
  */
7
+ import { collectDirectives } from './shared.js';
7
8
  /**
8
9
  * Extract semgrep rule ID and reason from a nosemgrep directive line.
9
10
  *
@@ -56,17 +57,6 @@ function extractSemgrepDirective(line, lineIndex, filePath, file) {
56
57
  };
57
58
  }
58
59
  export function parseSemgrepDirectives(content, filePath, file) {
59
- const directives = [];
60
- const lines = content.split('\n');
61
- for (const [i, line] of lines.entries()) {
62
- if (line === undefined) {
63
- continue;
64
- }
65
- const directive = extractSemgrepDirective(line, i, filePath, file);
66
- if (directive) {
67
- directives.push(directive);
68
- }
69
- }
70
- return directives;
60
+ return collectDirectives(content, filePath, file, extractSemgrepDirective);
71
61
  }
72
62
  //# sourceMappingURL=semgrep.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"semgrep.js","sourceRoot":"","sources":["../../../../src/checks/documentation/_directives/semgrep.ts"],"names":[],"mappings":"AAAA,0JAA0J;AAC1J;;;;GAIG;AAIH;;;;;;;GAOG;AACH,SAAS,uBAAuB,CAC9B,IAAY,EACZ,SAAiB,EACjB,QAAgB,EAChB,IAAY;IAEZ,MAAM,eAAe,GAAG,WAAW,CAAC;IAEpC,yCAAyC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAE/D,6BAA6B;IAC7B,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,uBAAuB;IACzC,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,0CAA0C;IAC1C,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE/C,0CAA0C;QAC1C,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC;YAC5D,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxD,CAAC;IACH,CAAC;SAAM,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,4BAA4B;QAC5B,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,IAAI;QACJ,QAAQ;QACR,IAAI,EAAE,SAAS,GAAG,CAAC;QACnB,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,WAAW,MAAM,EAAE;QACzB,MAAM;QACN,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,QAAgB,EAChB,IAAY;IAEZ,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACxC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,uBAAuB,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnE,IAAI,SAAS,EAAE,CAAC;YACd,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"semgrep.js","sourceRoot":"","sources":["../../../../src/checks/documentation/_directives/semgrep.ts"],"names":[],"mappings":"AAAA,0JAA0J;AAC1J;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIhD;;;;;;;GAOG;AACH,SAAS,uBAAuB,CAC9B,IAAY,EACZ,SAAiB,EACjB,QAAgB,EAChB,IAAY;IAEZ,MAAM,eAAe,GAAG,WAAW,CAAC;IAEpC,yCAAyC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAE/D,6BAA6B;IAC7B,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,uBAAuB;IACzC,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,0CAA0C;IAC1C,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE/C,0CAA0C;QAC1C,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC;YAC5D,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxD,CAAC;IACH,CAAC;SAAM,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,4BAA4B;QAC5B,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,IAAI;QACJ,QAAQ;QACR,IAAI,EAAE,SAAS,GAAG,CAAC;QACnB,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,WAAW,MAAM,EAAE;QACzB,MAAM;QACN,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,QAAgB,EAChB,IAAY;IAEZ,OAAO,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { DirectiveInfo } from './types.js';
2
+ export declare function collectDirectives(content: string, filePath: string, file: string, extract: (line: string, lineIndex: number, filePath: string, file: string) => DirectiveInfo | null): DirectiveInfo[];
3
+ export declare function extractIgnoreDirective(line: string, lineIndex: number, filePath: string, file: string, input: {
4
+ readonly fileMarker: string;
5
+ readonly nextLineMarker: string;
6
+ readonly source: DirectiveInfo['source'];
7
+ readonly ruleFor: (id: string) => string;
8
+ }): DirectiveInfo | null;
9
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/checks/documentation/_directives/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CACP,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,KACT,aAAa,GAAG,IAAI,GACxB,aAAa,EAAE,CAgBjB;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE;IACL,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;CAC1C,GACA,aAAa,GAAG,IAAI,CAwCtB"}
@@ -0,0 +1,53 @@
1
+ export function collectDirectives(content, filePath, file, extract) {
2
+ const directives = [];
3
+ const lines = content.split('\n');
4
+ for (const [i, line] of lines.entries()) {
5
+ if (line === undefined) {
6
+ continue;
7
+ }
8
+ const directive = extract(line, i, filePath, file);
9
+ if (directive) {
10
+ directives.push(directive);
11
+ }
12
+ }
13
+ return directives;
14
+ }
15
+ export function extractIgnoreDirective(line, lineIndex, filePath, file, input) {
16
+ let scopeType;
17
+ let markerEnd;
18
+ const fileIdx = line.indexOf(input.fileMarker);
19
+ const nextLineIdx = line.indexOf(input.nextLineMarker);
20
+ if (fileIdx !== -1) {
21
+ scopeType = 'file';
22
+ markerEnd = fileIdx + input.fileMarker.length;
23
+ }
24
+ else if (nextLineIdx === -1) {
25
+ return null;
26
+ }
27
+ else {
28
+ scopeType = 'next-line';
29
+ markerEnd = nextLineIdx + input.nextLineMarker.length;
30
+ }
31
+ const afterMarker = line.slice(markerEnd).trim();
32
+ const spaceIdx = afterMarker.indexOf(' ');
33
+ if (spaceIdx === -1) {
34
+ return null;
35
+ }
36
+ const id = afterMarker.slice(0, spaceIdx);
37
+ const rest = afterMarker.slice(spaceIdx).trim();
38
+ const separatorIdx = rest.indexOf('--');
39
+ if (separatorIdx === -1) {
40
+ return null;
41
+ }
42
+ return {
43
+ file,
44
+ filePath,
45
+ line: lineIndex + 1,
46
+ source: input.source,
47
+ scope: scopeType,
48
+ rule: input.ruleFor(id),
49
+ reason: rest.slice(separatorIdx + 2).trim(),
50
+ raw: line.trim(),
51
+ };
52
+ }
53
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/checks/documentation/_directives/shared.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,QAAgB,EAChB,IAAY,EACZ,OAKyB;IAEzB,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACxC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,SAAS,EAAE,CAAC;YACd,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,SAAiB,EACjB,QAAgB,EAChB,IAAY,EACZ,KAKC;IAED,IAAI,SAA+B,CAAC;IACpC,IAAI,SAAiB,CAAC;IAEtB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAEvD,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;QACnB,SAAS,GAAG,MAAM,CAAC;QACnB,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;IAChD,CAAC;SAAM,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,WAAW,CAAC;QACxB,SAAS,GAAG,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;IACxD,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI;QACJ,QAAQ;QACR,IAAI,EAAE,SAAS,GAAG,CAAC;QACnB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;QAC3C,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE;KACjB,CAAC;AACJ,CAAC"}
@@ -1,30 +1,7 @@
1
1
  /**
2
- * @fileoverview Public-API reachability graph for the public-api-jsdoc check.
2
+ * @fileoverview Re-export shim implementation lives in @opensip-cli/core.
3
3
  *
4
- * Computes the set of source files reachable from a package's
5
- * `package.json#exports` entry barrels via `export ... from` re-exports.
6
- *
7
- * Why re-exports only (not plain `import`): a file imported by a public
8
- * file is internal to that file — its exports are not part of the
9
- * package's published surface. Only `export ... from './foo.js'`
10
- * re-makes `./foo.ts`'s exports visible to consumers.
11
- *
12
- * Used by `public-api-jsdoc` to scope JSDoc requirements to the actual
13
- * npm-published API surface, not every `export` in every internal file.
14
- */
15
- /**
16
- * Reset all memoized state. Intended for tests.
17
- */
18
- export declare function _resetPublicApiGraphCache(): void;
19
- /**
20
- * Determine whether `filePath` is part of the package's public API
21
- * surface — i.e., reachable from the package's `exports` entries via
22
- * `export ... from` re-export chains.
23
- *
24
- * Returns `true` if reachable; `false` if not. Returns `true` (open
25
- * fail) when the package surface cannot be determined (no
26
- * package.json, no `exports`, etc.) so the check degrades to its
27
- * historical broad behavior rather than silently passing.
4
+ * Keeps `_resetPublicApiGraphCache` on this path for existing tests.
28
5
  */
29
- export declare function isInPublicApiSurface(filePath: string): boolean;
6
+ export { _resetPublicApiGraphCache, isInPublicApiSurface } from '@opensip-cli/core';
30
7
  //# sourceMappingURL=_public-api-graph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_public-api-graph.d.ts","sourceRoot":"","sources":["../../../src/checks/documentation/_public-api-graph.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;GAaG;AA8BH;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAqBD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAI9D"}
1
+ {"version":3,"file":"_public-api-graph.d.ts","sourceRoot":"","sources":["../../../src/checks/documentation/_public-api-graph.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}