@shrkcrft/boundaries 0.1.0-alpha.26 → 0.1.0-alpha.28

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 (59) hide show
  1. package/dist/baseline/canonicalize.d.ts +35 -0
  2. package/dist/baseline/canonicalize.d.ts.map +1 -0
  3. package/dist/baseline/canonicalize.js +87 -0
  4. package/dist/baseline/compute-baseline.d.ts +23 -0
  5. package/dist/baseline/compute-baseline.d.ts.map +1 -0
  6. package/dist/baseline/compute-baseline.js +30 -0
  7. package/dist/baseline/diff-baseline.d.ts +68 -0
  8. package/dist/baseline/diff-baseline.d.ts.map +1 -0
  9. package/dist/baseline/diff-baseline.js +110 -0
  10. package/dist/baseline/json-path-keys.d.ts +10 -0
  11. package/dist/baseline/json-path-keys.d.ts.map +1 -0
  12. package/dist/baseline/json-path-keys.js +13 -0
  13. package/dist/extract/code-zones.d.ts +32 -0
  14. package/dist/extract/code-zones.d.ts.map +1 -0
  15. package/dist/extract/code-zones.js +59 -0
  16. package/dist/extract/extract-tokens.d.ts +30 -0
  17. package/dist/extract/extract-tokens.d.ts.map +1 -0
  18. package/dist/extract/extract-tokens.js +328 -0
  19. package/dist/extract/inspect-source.d.ts +24 -0
  20. package/dist/extract/inspect-source.d.ts.map +1 -0
  21. package/dist/extract/inspect-source.js +27 -0
  22. package/dist/extract/scan-literals.d.ts +54 -0
  23. package/dist/extract/scan-literals.d.ts.map +1 -0
  24. package/dist/extract/scan-literals.js +177 -0
  25. package/dist/generated/check-provenance.d.ts +37 -0
  26. package/dist/generated/check-provenance.d.ts.map +1 -0
  27. package/dist/generated/check-provenance.js +89 -0
  28. package/dist/generated/compare-trees.d.ts +26 -0
  29. package/dist/generated/compare-trees.d.ts.map +1 -0
  30. package/dist/generated/compare-trees.js +41 -0
  31. package/dist/generated/scan-generated.d.ts +17 -0
  32. package/dist/generated/scan-generated.d.ts.map +1 -0
  33. package/dist/generated/scan-generated.js +27 -0
  34. package/dist/index.d.ts +11 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +11 -0
  37. package/dist/policy/evaluate-policy.d.ts +41 -5
  38. package/dist/policy/evaluate-policy.d.ts.map +1 -1
  39. package/dist/policy/evaluate-policy.js +112 -10
  40. package/dist/policy/run-policy.d.ts.map +1 -1
  41. package/dist/policy/run-policy.js +24 -3
  42. package/dist/wiring/evaluate-wiring.d.ts +81 -28
  43. package/dist/wiring/evaluate-wiring.d.ts.map +1 -1
  44. package/dist/wiring/evaluate-wiring.js +0 -0
  45. package/dist/wiring/explain-wiring.d.ts +15 -7
  46. package/dist/wiring/explain-wiring.d.ts.map +1 -1
  47. package/dist/wiring/explain-wiring.js +28 -27
  48. package/dist/wiring/registration-graph.d.ts +27 -2
  49. package/dist/wiring/registration-graph.d.ts.map +1 -1
  50. package/dist/wiring/registration-graph.js +51 -2
  51. package/dist/wiring/registry-query.d.ts +9 -0
  52. package/dist/wiring/registry-query.d.ts.map +1 -1
  53. package/dist/wiring/registry-query.js +11 -0
  54. package/dist/wiring/scan-wiring-files.d.ts.map +1 -1
  55. package/dist/wiring/scan-wiring-files.js +4 -7
  56. package/dist/wiring/trace-literal.d.ts +6 -0
  57. package/dist/wiring/trace-literal.d.ts.map +1 -1
  58. package/dist/wiring/trace-literal.js +22 -0
  59. package/package.json +2 -2
@@ -17,13 +17,19 @@ export const TRACE_DEFAULT_GLOBS = [
17
17
  * - `declare` — a canonical definition (`const X = 'lit'`, `kind: 'lit'`, an enum value).
18
18
  * - `register` — added to a collection / mapping (`register('lit')`, an array element, `{ 'lit': … }`).
19
19
  * - `consume` — compared / switched / handled (`=== 'lit'`, `case 'lit':`).
20
+ * - `render` — rendered / emitted at the boundary (JSX child `>{ 'lit' }`, template
21
+ * interpolation `${ 'lit' }`, a `render('lit')` / `res.send('lit')` call).
20
22
  * - `reference`— an occurrence we can't confidently classify (still reported, with context).
23
+ *
24
+ * `render` only ever refines what would otherwise be a `reference`; it never
25
+ * steals a site from `declare` / `register` / `consume`.
21
26
  */
22
27
  export var TraceRole;
23
28
  (function (TraceRole) {
24
29
  TraceRole["Declare"] = "declare";
25
30
  TraceRole["Register"] = "register";
26
31
  TraceRole["Consume"] = "consume";
32
+ TraceRole["Render"] = "render";
27
33
  TraceRole["Reference"] = "reference";
28
34
  })(TraceRole || (TraceRole = {}));
29
35
  function escapeRegex(s) {
@@ -89,6 +95,20 @@ function classifyRole(before, after) {
89
95
  if (/\b(kind|type|id|name|slug|key|tag|code|token|permission|route|event|action|channel|topic|status|provide|providerToken)\s*[:=]$/i.test(b)) {
90
96
  return TraceRole.Declare;
91
97
  }
98
+ // Render/handle site — REACHED ONLY after every higher-precision rule above
99
+ // has declined, so this can only refine an occurrence that would otherwise be
100
+ // `reference`; it never steals from declare/register/consume:
101
+ // - JSX child interpolation: `<tag>{ 'lit' }` (before ends `>{`).
102
+ // - template-literal interpolation: `` `${ 'lit' }` `` (before ends `${`).
103
+ // - a render / send-to-client call: `render('lit')`, `res.render('lit')`, `res.send('lit')`.
104
+ if (/>\s*\{$/.test(b))
105
+ return TraceRole.Render;
106
+ if (/\$\{$/.test(b))
107
+ return TraceRole.Render;
108
+ if (/\brender\w*\s*\($/i.test(b))
109
+ return TraceRole.Render;
110
+ if (/\bsend\w*\s*\($/i.test(b))
111
+ return TraceRole.Render;
92
112
  return TraceRole.Reference;
93
113
  }
94
114
  /** A const name is alias-resolvable only if Pascal/SCREAMING-cased (low collision risk). */
@@ -167,6 +187,7 @@ export function traceLiteral(projectRoot, literal, options = {}) {
167
187
  [TraceRole.Declare]: [],
168
188
  [TraceRole.Register]: [],
169
189
  [TraceRole.Consume]: [],
190
+ [TraceRole.Render]: [],
170
191
  [TraceRole.Reference]: [],
171
192
  };
172
193
  for (const s of sites)
@@ -180,6 +201,7 @@ export function traceLiteral(projectRoot, literal, options = {}) {
180
201
  [TraceRole.Declare]: sortSites(byRole[TraceRole.Declare]),
181
202
  [TraceRole.Register]: sortSites(byRole[TraceRole.Register]),
182
203
  [TraceRole.Consume]: sortSites(byRole[TraceRole.Consume]),
204
+ [TraceRole.Render]: sortSites(byRole[TraceRole.Render]),
183
205
  [TraceRole.Reference]: sortSites(byRole[TraceRole.Reference]),
184
206
  },
185
207
  aliases: [...aliasNames].sort(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shrkcrft/boundaries",
3
- "version": "0.1.0-alpha.26",
3
+ "version": "0.1.0-alpha.28",
4
4
  "description": "SharkCraft boundary rules: detect when a repository violates its own architecture (forbidden imports across folder/package/layer boundaries).",
5
5
  "license": "MIT",
6
6
  "author": "SharkCraft contributors",
@@ -43,7 +43,7 @@
43
43
  "typecheck": "tsc --noEmit -p tsconfig.json"
44
44
  },
45
45
  "dependencies": {
46
- "@shrkcrft/core": "^0.1.0-alpha.26"
46
+ "@shrkcrft/core": "^0.1.0-alpha.28"
47
47
  },
48
48
  "publishConfig": {
49
49
  "access": "public"