@hawkeyexl/manni 4.8.1 → 4.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/README.md +1 -1
  2. package/dist/{batch-QMHYWGUA.js → batch-6NICDKRE.js} +12 -12
  3. package/dist/{build-ZGA3O3P4.js → build-3KP2K3XN.js} +11 -11
  4. package/dist/{calibrate-KBMFGKP3.js → calibrate-LUA3DWKD.js} +13 -13
  5. package/dist/{capture-C46UXFRK.js → capture-NETOHCB4.js} +12 -12
  6. package/dist/{check-UMI5ACCE.js → check-7B77ZD2N.js} +11 -11
  7. package/dist/{check-OAJWC3WD.js → check-E4QCB7LS.js} +5 -5
  8. package/dist/{check-CORYIW76.js → check-NLL4NRYA.js} +13 -13
  9. package/dist/{check-LLQ6PJV3.js → check-PTECPIIB.js} +10 -10
  10. package/dist/{chunk-N7J5C35C.js → chunk-2BV4FBC7.js} +2 -2
  11. package/dist/chunk-2BV4FBC7.js.map +1 -0
  12. package/dist/{chunk-PO5W6JAP.js → chunk-2JV7C4YV.js} +7 -7
  13. package/dist/{chunk-Z27GYQOY.js → chunk-2UCC26MO.js} +8 -8
  14. package/dist/{chunk-WBETAXO2.js → chunk-2W34HX2U.js} +5 -5
  15. package/dist/{chunk-ZIGIJBXG.js → chunk-2YJ5H5E6.js} +9 -9
  16. package/dist/{chunk-HWNSIEZK.js → chunk-3E2X2RBU.js} +6 -6
  17. package/dist/{chunk-Q3GFZJTY.js → chunk-4DLF5SA4.js} +35 -17
  18. package/dist/chunk-4DLF5SA4.js.map +1 -0
  19. package/dist/{chunk-BYVH727K.js → chunk-55GMOVKW.js} +2 -2
  20. package/dist/{chunk-C2JPBQCJ.js → chunk-5REEVKGH.js} +2 -2
  21. package/dist/{chunk-XXDXIIQ4.js → chunk-6AGESHHM.js} +2 -2
  22. package/dist/{chunk-GQBVZS5G.js → chunk-6LR73NMO.js} +6 -6
  23. package/dist/{chunk-XKBEHKWO.js → chunk-6M5VJOC2.js} +2 -1
  24. package/dist/{chunk-F734HIHT.js → chunk-7Y3N4Y72.js} +3 -3
  25. package/dist/{chunk-WUFP4V7B.js → chunk-ABHG6I3G.js} +1292 -126
  26. package/dist/chunk-ABHG6I3G.js.map +1 -0
  27. package/dist/{chunk-FEALEYSE.js → chunk-AO5TSDKT.js} +4 -4
  28. package/dist/{chunk-LF6FOF6U.js → chunk-BD7IXBWE.js} +15 -26
  29. package/dist/{chunk-LF6FOF6U.js.map → chunk-BD7IXBWE.js.map} +1 -1
  30. package/dist/{chunk-NB4ILZMQ.js → chunk-CCWMACJL.js} +8 -8
  31. package/dist/{chunk-K43X5VDR.js → chunk-D2UW3ZCK.js} +6 -6
  32. package/dist/{chunk-SV6UEQCU.js → chunk-DFCQ6BMI.js} +4 -4
  33. package/dist/{chunk-ECVQNGTH.js → chunk-DNZUBCGZ.js} +3 -3
  34. package/dist/{chunk-POGYWOJ2.js → chunk-EAUIQADY.js} +3 -3
  35. package/dist/{chunk-XDS3KQCK.js → chunk-G6FNWRAI.js} +4 -4
  36. package/dist/{chunk-6HMLYFEU.js → chunk-G7XD4QH5.js} +810 -5
  37. package/dist/chunk-G7XD4QH5.js.map +1 -0
  38. package/dist/{chunk-WUXD6VBD.js → chunk-GB2XPITA.js} +2 -2
  39. package/dist/{chunk-KPXOJMQ6.js → chunk-GCKHSBEN.js} +2 -2
  40. package/dist/{chunk-6QBJHRFC.js → chunk-GDLHTI5R.js} +129 -26
  41. package/dist/chunk-GDLHTI5R.js.map +1 -0
  42. package/dist/{chunk-NNFSIRVE.js → chunk-GXN7RRHR.js} +3 -3
  43. package/dist/{chunk-RCS5YFY2.js → chunk-H26VDFDS.js} +2 -2
  44. package/dist/{chunk-4VQBHTGA.js → chunk-IJ62BB2T.js} +5 -5
  45. package/dist/{chunk-WT6HMEEF.js → chunk-KBG463UK.js} +35 -8
  46. package/dist/{chunk-WT6HMEEF.js.map → chunk-KBG463UK.js.map} +1 -1
  47. package/dist/{chunk-UWY4B2PM.js → chunk-LQZQ5KGG.js} +4 -4
  48. package/dist/{chunk-VSOYZ7QH.js → chunk-PK7EKJ5T.js} +4 -4
  49. package/dist/{chunk-YVVMC4SZ.js → chunk-QBVP3SQP.js} +4 -4
  50. package/dist/{chunk-6MNOMHFI.js → chunk-QJRQ4BRC.js} +11 -11
  51. package/dist/{chunk-7LC4YJJ3.js → chunk-RODZ7MB7.js} +3 -3
  52. package/dist/{chunk-SXODK43S.js → chunk-RZVCWX5R.js} +4 -4
  53. package/dist/{chunk-5LAKRYXU.js → chunk-SUTMSDQ2.js} +3 -3
  54. package/dist/{chunk-6KKZXB2O.js → chunk-VVVKBUBO.js} +2 -2
  55. package/dist/{chunk-6ZR24A4S.js → chunk-VZVEP2OZ.js} +2 -2
  56. package/dist/{chunk-3FG2UU3H.js → chunk-WN47MNSK.js} +4 -4
  57. package/dist/{chunk-LAU6SVTJ.js → chunk-XU73V5XT.js} +7 -7
  58. package/dist/{chunk-77L5GNVO.js → chunk-Z5YHMRLF.js} +2 -2
  59. package/dist/{chunk-AO66Q66S.js → chunk-ZHRPH52H.js} +2 -2
  60. package/dist/chunk-ZMECS2IJ.js +27 -0
  61. package/dist/chunk-ZMECS2IJ.js.map +1 -0
  62. package/dist/{chunk-VD3EQSBI.js → chunk-ZXXFP2LA.js} +2 -2
  63. package/dist/{cli-SBJY2NQH.js → cli-4YYC6LCY.js} +15 -15
  64. package/dist/{cli-4B5RWL7P.js → cli-BIIUKPTE.js} +13 -12
  65. package/dist/{cli-4B5RWL7P.js.map → cli-BIIUKPTE.js.map} +1 -1
  66. package/dist/{cli-XIQKPNA7.js → cli-EH3I4IUX.js} +32 -32
  67. package/dist/cli-EH3I4IUX.js.map +1 -0
  68. package/dist/{cli-MNNOXWYU.js → cli-HO62TOM2.js} +8 -8
  69. package/dist/cli-LWST5FQH.js +839 -0
  70. package/dist/cli-LWST5FQH.js.map +1 -0
  71. package/dist/{cli-UB5W75GJ.js → cli-P2X7PNY6.js} +12 -12
  72. package/dist/{cli-QR3ZQZA4.js → cli-SGVFZOAW.js} +19 -19
  73. package/dist/{cli-5AML7QR2.js → cli-TELPAMJO.js} +14 -14
  74. package/dist/{cli-I4GBPLRM.js → cli-UETKXHJN.js} +3 -3
  75. package/dist/{cli-WWDARAWS.js → cli-V2DI3K2R.js} +14 -14
  76. package/dist/cli.js +18 -11
  77. package/dist/cli.js.map +1 -1
  78. package/dist/{config-YWSNBFEE.js → config-TYXYQK3I.js} +3 -3
  79. package/dist/docmeta.js +7 -7
  80. package/dist/{github-TIZ3ZR3D.js → github-ESK45CEZ.js} +10 -10
  81. package/dist/{github-WKOJRW7P.js → github-WER7JUTN.js} +12 -12
  82. package/dist/index.js +35 -34
  83. package/dist/index.js.map +1 -1
  84. package/dist/{json-4FUOZ3XX.js → json-QR4G35KA.js} +10 -10
  85. package/dist/{lint-7VQFESHK.js → lint-QTI7XK2A.js} +11 -10
  86. package/dist/{list-7U2MBDIM.js → list-JO4G3TS3.js} +10 -10
  87. package/dist/{list-W6EUAOBV.js → list-O2MJUP5V.js} +10 -10
  88. package/dist/{page-WZLBKSCD.js → page-FSXDXCDD.js} +9 -9
  89. package/dist/{prepare-FPEWAHJH.js → prepare-UPIBTFNS.js} +11 -11
  90. package/dist/{pretty-7M4X4TCY.js → pretty-4IONWSEP.js} +10 -10
  91. package/dist/{pretty-CUCMQU5R.js → pretty-R4BQD2VH.js} +11 -11
  92. package/dist/{reporters-DQVSDXV6.js → reporters-DHO2BXAD.js} +5 -5
  93. package/dist/{reporters-KYJE54JS.js → reporters-FPP6JNDP.js} +9 -9
  94. package/dist/{run-ABGXGOGQ.js → run-YH5Z7RJ7.js} +10 -10
  95. package/dist/{term-HTIG3YDC.js → term-ASM4LVYC.js} +279 -150
  96. package/dist/term-ASM4LVYC.js.map +1 -0
  97. package/dist/{validate-HWNU3MDY.js → validate-7JI3H57P.js} +5 -5
  98. package/package.json +1 -1
  99. package/plugin/manni/.claude-plugin/plugin.json +1 -1
  100. package/dist/chunk-6HMLYFEU.js.map +0 -1
  101. package/dist/chunk-6QBJHRFC.js.map +0 -1
  102. package/dist/chunk-N7J5C35C.js.map +0 -1
  103. package/dist/chunk-Q3GFZJTY.js.map +0 -1
  104. package/dist/chunk-WUFP4V7B.js.map +0 -1
  105. package/dist/cli-XIQKPNA7.js.map +0 -1
  106. package/dist/term-HTIG3YDC.js.map +0 -1
  107. /package/dist/{batch-QMHYWGUA.js.map → batch-6NICDKRE.js.map} +0 -0
  108. /package/dist/{build-ZGA3O3P4.js.map → build-3KP2K3XN.js.map} +0 -0
  109. /package/dist/{calibrate-KBMFGKP3.js.map → calibrate-LUA3DWKD.js.map} +0 -0
  110. /package/dist/{capture-C46UXFRK.js.map → capture-NETOHCB4.js.map} +0 -0
  111. /package/dist/{check-LLQ6PJV3.js.map → check-7B77ZD2N.js.map} +0 -0
  112. /package/dist/{check-OAJWC3WD.js.map → check-E4QCB7LS.js.map} +0 -0
  113. /package/dist/{check-CORYIW76.js.map → check-NLL4NRYA.js.map} +0 -0
  114. /package/dist/{check-UMI5ACCE.js.map → check-PTECPIIB.js.map} +0 -0
  115. /package/dist/{chunk-PO5W6JAP.js.map → chunk-2JV7C4YV.js.map} +0 -0
  116. /package/dist/{chunk-Z27GYQOY.js.map → chunk-2UCC26MO.js.map} +0 -0
  117. /package/dist/{chunk-WBETAXO2.js.map → chunk-2W34HX2U.js.map} +0 -0
  118. /package/dist/{chunk-ZIGIJBXG.js.map → chunk-2YJ5H5E6.js.map} +0 -0
  119. /package/dist/{chunk-HWNSIEZK.js.map → chunk-3E2X2RBU.js.map} +0 -0
  120. /package/dist/{chunk-BYVH727K.js.map → chunk-55GMOVKW.js.map} +0 -0
  121. /package/dist/{chunk-C2JPBQCJ.js.map → chunk-5REEVKGH.js.map} +0 -0
  122. /package/dist/{chunk-XXDXIIQ4.js.map → chunk-6AGESHHM.js.map} +0 -0
  123. /package/dist/{chunk-GQBVZS5G.js.map → chunk-6LR73NMO.js.map} +0 -0
  124. /package/dist/{chunk-XKBEHKWO.js.map → chunk-6M5VJOC2.js.map} +0 -0
  125. /package/dist/{chunk-F734HIHT.js.map → chunk-7Y3N4Y72.js.map} +0 -0
  126. /package/dist/{chunk-FEALEYSE.js.map → chunk-AO5TSDKT.js.map} +0 -0
  127. /package/dist/{chunk-NB4ILZMQ.js.map → chunk-CCWMACJL.js.map} +0 -0
  128. /package/dist/{chunk-K43X5VDR.js.map → chunk-D2UW3ZCK.js.map} +0 -0
  129. /package/dist/{chunk-SV6UEQCU.js.map → chunk-DFCQ6BMI.js.map} +0 -0
  130. /package/dist/{chunk-ECVQNGTH.js.map → chunk-DNZUBCGZ.js.map} +0 -0
  131. /package/dist/{chunk-POGYWOJ2.js.map → chunk-EAUIQADY.js.map} +0 -0
  132. /package/dist/{chunk-XDS3KQCK.js.map → chunk-G6FNWRAI.js.map} +0 -0
  133. /package/dist/{chunk-WUXD6VBD.js.map → chunk-GB2XPITA.js.map} +0 -0
  134. /package/dist/{chunk-KPXOJMQ6.js.map → chunk-GCKHSBEN.js.map} +0 -0
  135. /package/dist/{chunk-NNFSIRVE.js.map → chunk-GXN7RRHR.js.map} +0 -0
  136. /package/dist/{chunk-RCS5YFY2.js.map → chunk-H26VDFDS.js.map} +0 -0
  137. /package/dist/{chunk-4VQBHTGA.js.map → chunk-IJ62BB2T.js.map} +0 -0
  138. /package/dist/{chunk-UWY4B2PM.js.map → chunk-LQZQ5KGG.js.map} +0 -0
  139. /package/dist/{chunk-VSOYZ7QH.js.map → chunk-PK7EKJ5T.js.map} +0 -0
  140. /package/dist/{chunk-YVVMC4SZ.js.map → chunk-QBVP3SQP.js.map} +0 -0
  141. /package/dist/{chunk-6MNOMHFI.js.map → chunk-QJRQ4BRC.js.map} +0 -0
  142. /package/dist/{chunk-7LC4YJJ3.js.map → chunk-RODZ7MB7.js.map} +0 -0
  143. /package/dist/{chunk-SXODK43S.js.map → chunk-RZVCWX5R.js.map} +0 -0
  144. /package/dist/{chunk-5LAKRYXU.js.map → chunk-SUTMSDQ2.js.map} +0 -0
  145. /package/dist/{chunk-6KKZXB2O.js.map → chunk-VVVKBUBO.js.map} +0 -0
  146. /package/dist/{chunk-6ZR24A4S.js.map → chunk-VZVEP2OZ.js.map} +0 -0
  147. /package/dist/{chunk-3FG2UU3H.js.map → chunk-WN47MNSK.js.map} +0 -0
  148. /package/dist/{chunk-LAU6SVTJ.js.map → chunk-XU73V5XT.js.map} +0 -0
  149. /package/dist/{chunk-77L5GNVO.js.map → chunk-Z5YHMRLF.js.map} +0 -0
  150. /package/dist/{chunk-AO66Q66S.js.map → chunk-ZHRPH52H.js.map} +0 -0
  151. /package/dist/{chunk-VD3EQSBI.js.map → chunk-ZXXFP2LA.js.map} +0 -0
  152. /package/dist/{cli-SBJY2NQH.js.map → cli-4YYC6LCY.js.map} +0 -0
  153. /package/dist/{cli-MNNOXWYU.js.map → cli-HO62TOM2.js.map} +0 -0
  154. /package/dist/{cli-UB5W75GJ.js.map → cli-P2X7PNY6.js.map} +0 -0
  155. /package/dist/{cli-QR3ZQZA4.js.map → cli-SGVFZOAW.js.map} +0 -0
  156. /package/dist/{cli-5AML7QR2.js.map → cli-TELPAMJO.js.map} +0 -0
  157. /package/dist/{cli-I4GBPLRM.js.map → cli-UETKXHJN.js.map} +0 -0
  158. /package/dist/{cli-WWDARAWS.js.map → cli-V2DI3K2R.js.map} +0 -0
  159. /package/dist/{config-YWSNBFEE.js.map → config-TYXYQK3I.js.map} +0 -0
  160. /package/dist/{github-TIZ3ZR3D.js.map → github-ESK45CEZ.js.map} +0 -0
  161. /package/dist/{github-WKOJRW7P.js.map → github-WER7JUTN.js.map} +0 -0
  162. /package/dist/{json-4FUOZ3XX.js.map → json-QR4G35KA.js.map} +0 -0
  163. /package/dist/{lint-7VQFESHK.js.map → lint-QTI7XK2A.js.map} +0 -0
  164. /package/dist/{list-7U2MBDIM.js.map → list-JO4G3TS3.js.map} +0 -0
  165. /package/dist/{list-W6EUAOBV.js.map → list-O2MJUP5V.js.map} +0 -0
  166. /package/dist/{page-WZLBKSCD.js.map → page-FSXDXCDD.js.map} +0 -0
  167. /package/dist/{prepare-FPEWAHJH.js.map → prepare-UPIBTFNS.js.map} +0 -0
  168. /package/dist/{pretty-7M4X4TCY.js.map → pretty-4IONWSEP.js.map} +0 -0
  169. /package/dist/{pretty-CUCMQU5R.js.map → pretty-R4BQD2VH.js.map} +0 -0
  170. /package/dist/{reporters-DQVSDXV6.js.map → reporters-DHO2BXAD.js.map} +0 -0
  171. /package/dist/{reporters-KYJE54JS.js.map → reporters-FPP6JNDP.js.map} +0 -0
  172. /package/dist/{run-ABGXGOGQ.js.map → run-YH5Z7RJ7.js.map} +0 -0
  173. /package/dist/{validate-HWNU3MDY.js.map → validate-7JI3H57P.js.map} +0 -0
@@ -12,7 +12,7 @@ import {
12
12
  shortCommit,
13
13
  toValidationResult,
14
14
  unitText
15
- } from "./chunk-SXODK43S.js";
15
+ } from "./chunk-RZVCWX5R.js";
16
16
  import {
17
17
  SEVERITIES
18
18
  } from "./chunk-77AINBYM.js";
@@ -34,7 +34,7 @@ import {
34
34
  sliceLines,
35
35
  sourceRange,
36
36
  spellSource
37
- } from "./chunk-VSOYZ7QH.js";
37
+ } from "./chunk-PK7EKJ5T.js";
38
38
  import {
39
39
  MAX_RANGE_LINES,
40
40
  MOVE_BUDGET_BYTES,
@@ -56,7 +56,7 @@ import {
56
56
  spellLines,
57
57
  splitLines,
58
58
  toBodyLines
59
- } from "./chunk-WT6HMEEF.js";
59
+ } from "./chunk-KBG463UK.js";
60
60
  import {
61
61
  STDIN_LABEL,
62
62
  STDIN_TOKEN,
@@ -70,7 +70,7 @@ import {
70
70
  resolveTargetSet,
71
71
  settleBaseline,
72
72
  supportedExtensions
73
- } from "./chunk-6HMLYFEU.js";
73
+ } from "./chunk-G7XD4QH5.js";
74
74
  import {
75
75
  decryptValue,
76
76
  encryptValue,
@@ -81,7 +81,7 @@ import {
81
81
  pageManifestPath,
82
82
  readConfigFile,
83
83
  selectCollections
84
- } from "./chunk-XKBEHKWO.js";
84
+ } from "./chunk-6M5VJOC2.js";
85
85
  import {
86
86
  warn
87
87
  } from "./chunk-HX44GB4Z.js";
@@ -1648,4 +1648,4 @@ export {
1648
1648
  sayNotices,
1649
1649
  runCheck
1650
1650
  };
1651
- //# sourceMappingURL=chunk-HWNSIEZK.js.map
1651
+ //# sourceMappingURL=chunk-3E2X2RBU.js.map
@@ -4,16 +4,17 @@ import {
4
4
  DEFAULT_TERM_BASELINE_PATH,
5
5
  TERM_RULES,
6
6
  TermError,
7
+ languageKey,
7
8
  loadTerms
8
- } from "./chunk-WUFP4V7B.js";
9
+ } from "./chunk-ABHG6I3G.js";
9
10
  import {
10
11
  TERM_RELATION_FIELDS
11
- } from "./chunk-WBETAXO2.js";
12
+ } from "./chunk-2W34HX2U.js";
12
13
  import {
13
14
  isErrorSeverity,
14
15
  resolveBaselineRequest,
15
16
  settleBaseline
16
- } from "./chunk-6HMLYFEU.js";
17
+ } from "./chunk-G7XD4QH5.js";
17
18
 
18
19
  // src/term/commands/check.ts
19
20
  import { existsSync } from "node:fs";
@@ -67,13 +68,30 @@ function checkTermSet(set, opts = {}) {
67
68
  });
68
69
  const byLabel = /* @__PURE__ */ new Map();
69
70
  const byId = /* @__PURE__ */ new Map();
71
+ const inLanguage = /* @__PURE__ */ new Map();
72
+ const labelled = /* @__PURE__ */ new Map();
73
+ const claim = (map, key, index) => {
74
+ if (!map.has(key)) map.set(key, index);
75
+ };
70
76
  terms.forEach((t, index) => {
71
- const label = fold(t.record.label);
72
- if (!byLabel.has(label)) byLabel.set(label, index);
73
- const id = fold(t.id);
74
- if (!byId.has(id)) byId.set(id, index);
77
+ claim(byLabel, fold(t.record.label), index);
78
+ const group = labelled.get(fold(t.record.label));
79
+ if (group === void 0) labelled.set(fold(t.record.label), [index]);
80
+ else group.push(index);
81
+ claim(byId, fold(t.id), index);
82
+ claim(inLanguage, `${languageKey(t)} label ${fold(t.record.label)}`, index);
83
+ claim(inLanguage, `${languageKey(t)} id ${fold(t.id)}`, index);
75
84
  });
76
- const resolveReference = (value) => byLabel.get(fold(value)) ?? byId.get(fold(value));
85
+ const clash = (t, a, other, b) => fold(a) === fold(b) && (languageKey(t) === languageKey(other) || a !== b);
86
+ const collider = (t, index, value, before) => {
87
+ for (const otherIndex of labelled.get(fold(value)) ?? []) {
88
+ if (otherIndex === index || before && otherIndex > index) continue;
89
+ const other = terms[otherIndex];
90
+ if (other !== void 0 && clash(t, value, other, other.record.label)) return other;
91
+ }
92
+ return void 0;
93
+ };
94
+ const resolveReference = (from, value) => inLanguage.get(`${languageKey(from)} label ${fold(value)}`) ?? inLanguage.get(`${languageKey(from)} id ${fold(value)}`) ?? byLabel.get(fold(value)) ?? byId.get(fold(value));
77
95
  const referenced = /* @__PURE__ */ new Set();
78
96
  for (const reference of set.references) {
79
97
  const label = fold(reference.label);
@@ -91,9 +109,10 @@ function checkTermSet(set, opts = {}) {
91
109
  ...reference.line === void 0 ? {} : { line: reference.line }
92
110
  });
93
111
  }
112
+ const usedIds = new Set(terms.filter((t) => referenced.has(fold(t.record.label))).map((t) => fold(t.id)));
94
113
  const sharing = /* @__PURE__ */ new Map();
95
114
  for (const t of terms) {
96
- const id = fold(t.id);
115
+ const id = `${languageKey(t)} ${fold(t.id)}`;
97
116
  const group = sharing.get(id);
98
117
  if (group === void 0) sharing.set(id, [t]);
99
118
  else group.push(t);
@@ -106,9 +125,8 @@ function checkTermSet(set, opts = {}) {
106
125
  }
107
126
  }
108
127
  terms.forEach((t, index) => {
109
- const first = byLabel.get(fold(t.record.label));
110
- const firstTerm = first === void 0 ? void 0 : terms[first];
111
- if (first !== void 0 && first !== index && firstTerm !== void 0) {
128
+ const firstTerm = collider(t, index, t.record.label, true);
129
+ if (firstTerm !== void 0) {
112
130
  drafts.push(
113
131
  onEntry(
114
132
  t,
@@ -119,7 +137,7 @@ function checkTermSet(set, opts = {}) {
119
137
  );
120
138
  }
121
139
  for (const alt of t.record["alt-labels"] ?? []) {
122
- const owner = terms.find((other, otherIndex) => otherIndex !== index && fold(other.record.label) === fold(alt));
140
+ const owner = collider(t, index, alt, false);
123
141
  if (owner !== void 0) {
124
142
  drafts.push(
125
143
  onEntry(t, "alt-label-collision", `alt-labels: "${alt}" is the label of ${where(owner)}`, "alt-labels")
@@ -128,7 +146,7 @@ function checkTermSet(set, opts = {}) {
128
146
  }
129
147
  for (const field of REFERENCE_FIELDS) {
130
148
  for (const value of referenceValues(t, field)) {
131
- if (resolveReference(value) === void 0) {
149
+ if (resolveReference(t, value) === void 0) {
132
150
  drafts.push(onEntry(t, "dangling-reference", `${field}: "${value}" names no entry`, field));
133
151
  }
134
152
  }
@@ -149,14 +167,14 @@ function checkTermSet(set, opts = {}) {
149
167
  )
150
168
  );
151
169
  }
152
- if (!referenced.has(fold(t.record.label))) {
170
+ if (!usedIds.has(fold(t.id))) {
153
171
  drafts.push(onEntry(t, "unused-term", "no page's concepts: names this term"));
154
172
  }
155
173
  });
156
174
  const edges = (field) => terms.map((t) => {
157
175
  const targets = /* @__PURE__ */ new Set();
158
176
  for (const value of referenceValues(t, field)) {
159
- const target = resolveReference(value);
177
+ const target = resolveReference(t, value);
160
178
  if (target !== void 0) targets.add(target);
161
179
  }
162
180
  return targets;
@@ -371,4 +389,4 @@ export {
371
389
  reportedFindings,
372
390
  runCheck
373
391
  };
374
- //# sourceMappingURL=chunk-Q3GFZJTY.js.map
392
+ //# sourceMappingURL=chunk-4DLF5SA4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/term/commands/check.ts","../src/term/core/severity.ts","../src/term/core/check.ts","../src/term/commands/findings.ts"],"sourcesContent":["/**\n * `manni term check`: the referential integrity of the set (proposal 0052 § 7),\n * with the baseline ratchet meta and cite use.\n *\n * `--baseline` is one flag for both halves of the ratchet. When the baseline\n * file is not there yet, the run records one and exits 0: that is how a docset\n * whose terms were never checked ramps in. When it is there, the run fails only\n * on findings it does not hold. A configured `term.baseline` compares without\n * the flag, as `cite.baseline` does.\n */\nimport { existsSync } from \"node:fs\";\nimport { resolveBaselineRequest, settleBaseline } from \"../../meta/internal.js\";\nimport { checkTermSet } from \"../core/check.js\";\nimport { DEFAULT_TERM_BASELINE_PATH } from \"../core/config.js\";\nimport { TermError } from \"../errors.js\";\nimport { reportedFindings, summarize, toResults, type TermReport } from \"./findings.js\";\nimport { loadTerms, type TermCommandOptions } from \"./run.js\";\n\nexport interface CheckOptions extends TermCommandOptions {\n /** `--baseline`. */\n baseline?: boolean;\n}\n\nexport async function runCheck(opts: CheckOptions): Promise<TermReport> {\n const { cwd, run, set } = await loadTerms(opts);\n const config = run.config;\n const findings = checkTermSet(set, {\n ...(config?.severity === undefined ? {} : { severity: config.severity }),\n ...(config?.abstractMaxLength === undefined ? {} : { abstractMaxLength: config.abstractMaxLength }),\n });\n const { results, origin } = toResults(set, findings);\n\n // Fingerprints must not depend on where the command was run from.\n const frame = { cwd, base: run.configDir ?? cwd, runBase: run.base };\n let request = resolveBaselineRequest(\n opts.baseline === true ? { baseline: true } : {},\n config?.baseline,\n run.configDir,\n cwd,\n { current: DEFAULT_TERM_BASELINE_PATH },\n );\n if (request !== null && !existsSync(request.absPath)) {\n if (opts.baseline !== true) {\n throw new TermError(\n `Baseline \"${request.label}\" not found. Record one with \\`manni term check --baseline\\`.`,\n );\n }\n request = { ...request, write: true };\n }\n const { results: reported, baseline } = await settleBaseline(results, request, frame);\n\n return {\n findings: reportedFindings(reported, origin),\n results: reported,\n summary: summarize(reported, baseline),\n frame,\n terms: set.terms.length,\n references: set.references.length,\n ...(baseline === undefined ? {} : { baseline }),\n found: findings.length,\n cwd,\n };\n}\n","/**\n * Rule ids and levels for the term tool (proposal 0052). `check` findings are\n * `manni:term/<rule>`. A `lint` finding keeps Vale's own rule name,\n * `manni:term/prose/<Style.Rule>`, in the shape lint's proposal 0050 set for\n * its prose job, because that is the name Vale's documentation uses.\n */\nimport type { Severity } from \"../../shared/severity.js\";\nimport { TERM_RULES, type TermRule, type TermSeverity, type ValeSeverity } from \"../types.js\";\n\nexport const RULE_ID_PREFIX = \"manni:term\";\n\nexport const DEFAULT_SEVERITY: Readonly<Record<TermRule, TermSeverity>> = {\n \"undefined-term\": \"error\",\n \"duplicate-id\": \"error\",\n \"label-collision\": \"error\",\n \"alt-label-collision\": \"error\",\n \"dangling-reference\": \"error\",\n \"broader-cycle\": \"error\",\n \"see-not-empty\": \"error\",\n \"asymmetric-hierarchy\": \"warning\",\n \"abstract-too-long\": \"notice\",\n \"unused-term\": \"notice\",\n};\n\nexport function ruleId(rule: TermRule): string {\n return `${RULE_ID_PREFIX}/${rule}`;\n}\n\nexport function proseRuleId(check: string): string {\n return `${RULE_ID_PREFIX}/prose/${check}`;\n}\n\nexport function isTermRule(value: string): value is TermRule {\n return (TERM_RULES as readonly string[]).includes(value);\n}\n\n/** The defaults with config's overrides laid over them. */\nexport function resolveSeverity(\n overrides?: Partial<Record<TermRule, TermSeverity>>,\n): Record<TermRule, TermSeverity> {\n return { ...DEFAULT_SEVERITY, ...overrides };\n}\n\n/**\n * Vale's scale onto the family's. A finding keeps Vale's own value beside the\n * folded one, as an a11y violation keeps axe's `impact`.\n */\nexport function foldValeSeverity(severity: ValeSeverity): Severity {\n return severity === \"suggestion\" ? \"notice\" : severity;\n}\n","/**\n * `term check`'s rules (proposal 0052 § 7): the referential integrity of a term\n * set. Pure: it reads records and references and returns findings, so the\n * command core owns every file and the rules are tested on sets built inline.\n *\n * Every label comparison ignores case, because the Vale style `write -f vale`\n * renders is a `swap` map keyed on the lowercased term. Two labels that differ\n * only in case collide there silently, so they collide here out loud. Ids\n * compare ignoring case too, because references resolve them that way.\n *\n * A set may hold one term per language, joined on `id` (proposal 0084). A term\n * with no language counts as `en`, and languages compare ignoring case. Across\n * languages, two labels collide only when they differ in spelling but not in\n * case: `API` in en and de is one word, `Kubernetes`/`kubernetes` is a clash.\n */\nimport { TERM_RELATION_FIELDS } from \"../../shared/reference-fields.js\";\nimport { DEFAULT_ABSTRACT_MAX_LENGTH } from \"./config.js\";\nimport { languageKey as language } from \"./writers/render-util.js\";\nimport { resolveSeverity, ruleId } from \"./severity.js\";\nimport type { Term, TermField, TermFinding, TermRule, TermSet, TermSeverity } from \"../types.js\";\n\nexport interface CheckTermSetOptions {\n severity?: Partial<Record<TermRule, TermSeverity>>;\n /** Default `DEFAULT_ABSTRACT_MAX_LENGTH`. */\n abstractMaxLength?: number;\n}\n\n/** The fields whose values name other entries. */\nconst REFERENCE_FIELDS = TERM_RELATION_FIELDS;\ntype ReferenceField = (typeof REFERENCE_FIELDS)[number];\n\ninterface Draft {\n rule: TermRule;\n message: string;\n file: string;\n line?: number;\n id?: string;\n field?: TermField;\n}\n\nexport function checkTermSet(set: TermSet, opts: CheckTermSetOptions = {}): TermFinding[] {\n const levels = resolveSeverity(opts.severity);\n const maxLength = opts.abstractMaxLength ?? DEFAULT_ABSTRACT_MAX_LENGTH;\n const { terms } = set;\n const drafts: Draft[] = [];\n\n const fold = (value: string): string => value.toLowerCase();\n const where = (t: Term): string => `${t.location.file}:${String(t.location.line)}`;\n const onEntry = (t: Term, rule: TermRule, message: string, field?: TermField): Draft => ({\n rule,\n message,\n file: t.location.file,\n line: (field === undefined ? undefined : t.location.fieldLines[field]) ?? t.location.line,\n id: t.id,\n ...(field === undefined ? {} : { field }),\n });\n\n // The first entry claiming each folded label, and each folded id, overall\n // and per language.\n const byLabel = new Map<string, number>();\n const byId = new Map<string, number>();\n const inLanguage = new Map<string, number>();\n // Every entry per folded label, in set order, for the collision rules.\n const labelled = new Map<string, number[]>();\n const claim = (map: Map<string, number>, key: string, index: number): void => {\n if (!map.has(key)) map.set(key, index);\n };\n terms.forEach((t, index) => {\n claim(byLabel, fold(t.record.label), index);\n const group = labelled.get(fold(t.record.label));\n if (group === undefined) labelled.set(fold(t.record.label), [index]);\n else group.push(index);\n claim(byId, fold(t.id), index);\n claim(inLanguage, `${language(t)} label ${fold(t.record.label)}`, index);\n claim(inLanguage, `${language(t)} id ${fold(t.id)}`, index);\n });\n /** Whether `t`'s label `a` collides with `other`'s label `b`: within a language when they fold alike, across languages only when their spelling differs too. */\n const clash = (t: Term, a: string, other: Term, b: string): boolean =>\n fold(a) === fold(b) && (language(t) === language(other) || a !== b);\n /** The first entry other than `index` whose label collides with `value` on `t`, among those `before` allows. */\n const collider = (t: Term, index: number, value: string, before: boolean): Term | undefined => {\n for (const otherIndex of labelled.get(fold(value)) ?? []) {\n if (otherIndex === index || (before && otherIndex > index)) continue;\n const other = terms[otherIndex];\n if (other !== undefined && clash(t, value, other, other.record.label)) return other;\n }\n return undefined;\n };\n\n // A same-language label, then a same-language id, then any language.\n const resolveReference = (from: Term, value: string): number | undefined =>\n inLanguage.get(`${language(from)} label ${fold(value)}`) ??\n inLanguage.get(`${language(from)} id ${fold(value)}`) ??\n byLabel.get(fold(value)) ??\n byId.get(fold(value));\n\n // undefined-term, and the folded labels some page names, for unused-term.\n const referenced = new Set<string>();\n for (const reference of set.references) {\n const label = fold(reference.label);\n referenced.add(label);\n if (byLabel.has(label)) continue;\n let message = `concepts: \"${reference.label}\" names no entry.`;\n const synonym = terms.find((t) => (t.record[\"alt-labels\"] ?? []).some((alt) => fold(alt) === label));\n if (synonym !== undefined) {\n message += ` \"${synonym.record.label}\" lists it as an alt-label.`;\n }\n drafts.push({\n rule: \"undefined-term\",\n message,\n file: reference.file,\n ...(reference.line === undefined ? {} : { line: reference.line }),\n });\n }\n\n // unused-term: a term is used when a page names any term sharing its id.\n const usedIds = new Set(terms.filter((t) => referenced.has(fold(t.record.label))).map((t) => fold(t.id)));\n\n // duplicate-id: ignoring case, as references resolve ids, on every entry\n // sharing the id in one language.\n const sharing = new Map<string, Term[]>();\n for (const t of terms) {\n const id = `${language(t)} ${fold(t.id)}`;\n const group = sharing.get(id);\n if (group === undefined) sharing.set(id, [t]);\n else group.push(t);\n }\n for (const group of sharing.values()) {\n if (group.length < 2) continue;\n for (const t of group) {\n const others = group.filter((other) => other !== t).map(where);\n drafts.push(onEntry(t, \"duplicate-id\", `id: \"${t.id}\" is also used by ${others.join(\", \")}`));\n }\n }\n\n terms.forEach((t, index) => {\n // label-collision: on each later entry, naming the first.\n const firstTerm = collider(t, index, t.record.label, true);\n if (firstTerm !== undefined) {\n drafts.push(\n onEntry(\n t,\n \"label-collision\",\n `\"${t.record.label}\" is claimed by ${where(firstTerm)} as \"${firstTerm.record.label}\"`,\n \"label\",\n ),\n );\n }\n\n // alt-label-collision: an alt-label that is another entry's label.\n for (const alt of t.record[\"alt-labels\"] ?? []) {\n const owner = collider(t, index, alt, false);\n if (owner !== undefined) {\n drafts.push(\n onEntry(t, \"alt-label-collision\", `alt-labels: \"${alt}\" is the label of ${where(owner)}`, \"alt-labels\"),\n );\n }\n }\n\n // dangling-reference: one finding per value that resolves to nothing.\n for (const field of REFERENCE_FIELDS) {\n for (const value of referenceValues(t, field)) {\n if (resolveReference(t, value) === undefined) {\n drafts.push(onEntry(t, \"dangling-reference\", `${field}: \"${value}\" names no entry`, field));\n }\n }\n }\n\n // see-not-empty: a redirect carries no definition.\n if (t.record.see !== undefined && t.record.definition !== undefined) {\n drafts.push(\n onEntry(t, \"see-not-empty\", `see: \"${t.record.see}\" redirects this entry, so remove its definition`, \"see\"),\n );\n }\n\n // abstract-too-long.\n const abstract = t.record.abstract;\n if (abstract !== undefined && abstract.length > maxLength) {\n drafts.push(\n onEntry(\n t,\n \"abstract-too-long\",\n `abstract: ${String(abstract.length)} characters is over the limit of ${String(maxLength)}, so shorten it`,\n \"abstract\",\n ),\n );\n }\n\n // unused-term: no reference names the label of any term sharing the id.\n if (!usedIds.has(fold(t.id))) {\n drafts.push(onEntry(t, \"unused-term\", \"no page's concepts: names this term\"));\n }\n });\n\n // The resolved hierarchy, one edge per pair.\n const edges = (field: \"broader\" | \"narrower\"): Set<number>[] =>\n terms.map((t) => {\n const targets = new Set<number>();\n for (const value of referenceValues(t, field)) {\n const target = resolveReference(t, value);\n if (target !== undefined) targets.add(target);\n }\n return targets;\n });\n const broader = edges(\"broader\");\n const narrower = edges(\"narrower\");\n\n // asymmetric-hierarchy: each missing half, on the entry that should carry it.\n terms.forEach((t, index) => {\n for (const parent of broader[index] ?? []) {\n const parentTerm = terms[parent];\n if (parentTerm !== undefined && !(narrower[parent]?.has(index) ?? false)) {\n drafts.push(\n onEntry(\n parentTerm,\n \"asymmetric-hierarchy\",\n `narrower: omits \"${t.record.label}\", which lists this entry as broader`,\n \"narrower\",\n ),\n );\n }\n }\n for (const child of narrower[index] ?? []) {\n const childTerm = terms[child];\n if (childTerm !== undefined && !(broader[child]?.has(index) ?? false)) {\n drafts.push(\n onEntry(\n childTerm,\n \"asymmetric-hierarchy\",\n `broader: omits \"${t.record.label}\", which lists this entry as narrower`,\n \"broader\",\n ),\n );\n }\n }\n });\n\n // broader-cycle: every elementary cycle once, found from its earliest entry.\n for (const [start, path] of broaderCycles(broader)) {\n const startTerm = terms[start];\n if (startTerm === undefined) continue;\n const labels = [...path, start].map((index) => terms[index]?.record.label ?? \"\");\n drafts.push(onEntry(startTerm, \"broader-cycle\", `broader: ${labels.join(\" > \")}`, \"broader\"));\n }\n\n const findings: TermFinding[] = [];\n for (const draft of drafts) {\n const level = levels[draft.rule];\n if (level === \"off\") continue;\n findings.push({\n rule: draft.rule,\n ruleId: ruleId(draft.rule),\n severity: level,\n message: draft.message,\n file: draft.file,\n ...(draft.line === undefined ? {} : { line: draft.line }),\n ...(draft.id === undefined ? {} : { id: draft.id }),\n ...(draft.field === undefined ? {} : { field: draft.field }),\n });\n }\n return findings.sort(compareFindings);\n}\n\nfunction referenceValues(t: Term, field: ReferenceField): string[] {\n const value = t.record[field];\n if (value === undefined) return [];\n return typeof value === \"string\" ? [value] : value;\n}\n\n/**\n * Each elementary cycle of the `broader` graph, as its start and the path from\n * it. A search from `start` only visits later entries, so a cycle is found\n * exactly once, from the entry of it that comes first in set order.\n */\nfunction broaderCycles(broader: readonly Set<number>[]): [number, number[]][] {\n const cycles: [number, number[]][] = [];\n for (let start = 0; start < broader.length; start++) {\n const path: number[] = [start];\n const onPath = new Set<number>([start]);\n const walk = (node: number): void => {\n for (const next of broader[node] ?? []) {\n if (next === start) {\n cycles.push([start, [...path]]);\n } else if (next > start && !onPath.has(next)) {\n path.push(next);\n onPath.add(next);\n walk(next);\n path.pop();\n onPath.delete(next);\n }\n }\n };\n walk(start);\n }\n return cycles;\n}\n\nfunction compareText(a: string, b: string): number {\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\nfunction compareFindings(a: TermFinding, b: TermFinding): number {\n return (\n compareText(a.file, b.file) ||\n (a.line ?? 0) - (b.line ?? 0) ||\n compareText(a.ruleId, b.ruleId) ||\n compareText(a.message, b.message)\n );\n}\n","/**\n * The report `check` and `lint` share, and the bridge from term findings to\n * meta's `ValidationResult`, so the SARIF and JUnit renderers and the baseline\n * ratchet work unchanged, as cite's adapter does for citations.\n *\n * FieldError: schema `manni:term` (a builtin-shaped ref, so fingerprints and\n * rule ids never depend on where the command ran), keyword = the rule id after\n * `manni:term/`, instancePath `/<field>` when the finding concerns one field\n * and `\"\"` when it concerns none (`undefined-term`, `duplicate-id`,\n * `unused-term`). A check finding and a lint finding carry the field the same\n * way. The subject is the entry, the field, and what the finding says, with any\n * `file:line` taken out: a line moves when a page is edited above the entry,\n * and a moved finding is not a new one.\n */\nimport {\n isErrorSeverity,\n type BaselineSummary,\n type FieldError,\n type FingerprintContext,\n type RunSummary,\n type ValidationResult,\n} from \"../../meta/index.js\";\nimport { RULE_ID_PREFIX } from \"../core/severity.js\";\nimport type { TermFinding, TermSet } from \"../types.js\";\n\nexport const FINDING_FORMATS = [\"pretty\", \"json\", \"github\", \"sarif\", \"junit\"] as const;\nexport type FindingFormat = (typeof FINDING_FORMATS)[number];\n\n/** JUnit `classname` for the term tool's findings. */\nexport const JUNIT_CLASSNAME = \"manni.term\";\n\n/** What `check` and `lint` return. */\nexport interface TermReport {\n /** The findings reported: a baselined one is not among them. */\n findings: TermFinding[];\n /** The same findings as meta's results, for SARIF and JUnit. One per file. */\n results: ValidationResult[];\n summary: RunSummary;\n frame: FingerprintContext;\n /** Entries in the set. */\n terms: number;\n /** `concepts:` values the run read. */\n references: number;\n /** How a baseline shaped the run, when one did. */\n baseline?: BaselineSummary;\n /** Findings before the baseline, for the line a recording run prints. */\n found: number;\n /** Where the run stood, for the paths the reporters print. */\n cwd: string;\n}\n\nconst LINE_REFERENCE = /:\\d+\\b/g;\n\nfunction toFieldError(finding: TermFinding): FieldError {\n const keyword = finding.ruleId.startsWith(`${RULE_ID_PREFIX}/`)\n ? finding.ruleId.slice(RULE_ID_PREFIX.length + 1)\n : finding.ruleId;\n const { field } = finding;\n const subject = [finding.id ?? \"\", field ?? \"\", finding.message.replace(LINE_REFERENCE, \"\")].join(\"\\u0000\");\n const error: FieldError = {\n schema: RULE_ID_PREFIX,\n instancePath: field === undefined ? \"\" : `/${field}`,\n message: finding.message,\n keyword,\n subject,\n severity: finding.severity,\n };\n if (finding.line !== undefined) error.line = finding.line;\n return error;\n}\n\n/**\n * One result per file: every file a term was read from, clean or not, and\n * every file a finding sits in. `origin` maps each error back to its finding.\n */\nexport function toResults(\n set: TermSet,\n findings: readonly TermFinding[],\n): { results: ValidationResult[]; origin: Map<FieldError, TermFinding> } {\n const origin = new Map<FieldError, TermFinding>();\n const byFile = new Map<string, FieldError[]>();\n for (const term of set.terms) {\n if (!byFile.has(term.location.file)) byFile.set(term.location.file, []);\n }\n for (const finding of findings) {\n const error = toFieldError(finding);\n origin.set(error, finding);\n const list = byFile.get(finding.file) ?? [];\n list.push(error);\n byFile.set(finding.file, list);\n }\n const results = [...byFile.keys()].sort().map((file): ValidationResult => {\n const errors = byFile.get(file) ?? [];\n return { file, format: \"term\", ok: !errors.some(isErrorSeverity), schemas: [RULE_ID_PREFIX], errors };\n });\n return { results, origin };\n}\n\n/** The run summary meta's renderers read, from results a baseline may have thinned. */\nexport function summarize(results: readonly ValidationResult[], baseline?: BaselineSummary): RunSummary {\n const failed = results.filter((r) => !r.ok).length;\n const count = (keep: (e: FieldError) => boolean): number =>\n results.reduce((n, r) => n + r.errors.filter(keep).length, 0);\n const warnings = count((e) => e.severity === \"warning\");\n const notices = count((e) => e.severity === \"notice\");\n return {\n files: results.length,\n passed: results.length - failed,\n failed,\n errors: count(isErrorSeverity),\n ...(warnings > 0 ? { warnings } : {}),\n ...(notices > 0 ? { notices } : {}),\n ...(baseline ? { baseline } : {}),\n };\n}\n\n/** The findings still reported once a baseline has thinned the results. */\nexport function reportedFindings(\n results: readonly ValidationResult[],\n origin: ReadonlyMap<FieldError, TermFinding>,\n): TermFinding[] {\n const kept: TermFinding[] = [];\n for (const result of results) {\n for (const error of result.errors) {\n const finding = origin.get(error);\n if (finding !== undefined) kept.push(finding);\n }\n }\n return kept.sort(compareFindings);\n}\n\nfunction compareFindings(a: TermFinding, b: TermFinding): number {\n if (a.file !== b.file) return a.file < b.file ? -1 : 1;\n const lineA = a.line ?? 0;\n const lineB = b.line ?? 0;\n if (lineA !== lineB) return lineA - lineB;\n if (a.ruleId !== b.ruleId) return a.ruleId < b.ruleId ? -1 : 1;\n return a.message < b.message ? -1 : a.message > b.message ? 1 : 0;\n}\n"],"mappings":"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","names":["compareFindings"]}
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  displayPath
4
- } from "./chunk-WUFP4V7B.js";
4
+ } from "./chunk-ABHG6I3G.js";
5
5
  import {
6
6
  escapeWorkflowCommandMessage,
7
7
  escapeWorkflowCommandProperty
@@ -20,4 +20,4 @@ function renderFindingsGithub(report) {
20
20
  export {
21
21
  renderFindingsGithub
22
22
  };
23
- //# sourceMappingURL=chunk-BYVH727K.js.map
23
+ //# sourceMappingURL=chunk-55GMOVKW.js.map
@@ -8,7 +8,7 @@ import {
8
8
  newAvailability,
9
9
  newReplay,
10
10
  remapAvailability
11
- } from "./chunk-POGYWOJ2.js";
11
+ } from "./chunk-EAUIQADY.js";
12
12
  import {
13
13
  makeRedactor
14
14
  } from "./chunk-CU57HT2E.js";
@@ -864,4 +864,4 @@ export {
864
864
  parseTraceContent,
865
865
  renderTrace
866
866
  };
867
- //# sourceMappingURL=chunk-C2JPBQCJ.js.map
867
+ //# sourceMappingURL=chunk-5REEVKGH.js.map
@@ -4,7 +4,7 @@ import {
4
4
  NS,
5
5
  PREFIXES,
6
6
  byCodeUnit
7
- } from "./chunk-6KKZXB2O.js";
7
+ } from "./chunk-VVVKBUBO.js";
8
8
  import {
9
9
  packageRoot
10
10
  } from "./chunk-TIUTIOFB.js";
@@ -384,4 +384,4 @@ export {
384
384
  bundledShapesPath,
385
385
  validateGraph
386
386
  };
387
- //# sourceMappingURL=chunk-XXDXIIQ4.js.map
387
+ //# sourceMappingURL=chunk-6AGESHHM.js.map
@@ -22,7 +22,7 @@ import {
22
22
  runRelocate,
23
23
  runVendorSchema,
24
24
  terminalConfirm
25
- } from "./chunk-WBETAXO2.js";
25
+ } from "./chunk-2W34HX2U.js";
26
26
  import {
27
27
  LOCATION_EXTERNAL_SCHEMA,
28
28
  LOCATION_PAGE_SCHEMA,
@@ -42,7 +42,7 @@ import {
42
42
  rowsToFindings,
43
43
  runValidate,
44
44
  splitList
45
- } from "./chunk-WT6HMEEF.js";
45
+ } from "./chunk-KBG463UK.js";
46
46
  import {
47
47
  COMMON_FORMATS,
48
48
  COMMON_FORMAT_LIST,
@@ -58,7 +58,7 @@ import {
58
58
  isQueryFormat,
59
59
  isReportFormat,
60
60
  render
61
- } from "./chunk-YVVMC4SZ.js";
61
+ } from "./chunk-QBVP3SQP.js";
62
62
  import {
63
63
  DocmetaError,
64
64
  STDIN_LABEL,
@@ -68,7 +68,7 @@ import {
68
68
  schemaLoadOptions,
69
69
  supportedExtensions,
70
70
  toJsonText
71
- } from "./chunk-6HMLYFEU.js";
71
+ } from "./chunk-G7XD4QH5.js";
72
72
  import {
73
73
  fail
74
74
  } from "./chunk-YEUYKR62.js";
@@ -85,7 +85,7 @@ import {
85
85
  } from "./chunk-QCHVR4ZM.js";
86
86
  import {
87
87
  package_default
88
- } from "./chunk-N7J5C35C.js";
88
+ } from "./chunk-2BV4FBC7.js";
89
89
  import {
90
90
  programName
91
91
  } from "./chunk-OWBRDNRZ.js";
@@ -1523,4 +1523,4 @@ export {
1523
1523
  parseQueryParams,
1524
1524
  buildProgram
1525
1525
  };
1526
- //# sourceMappingURL=chunk-GQBVZS5G.js.map
1526
+ //# sourceMappingURL=chunk-6LR73NMO.js.map
@@ -952,6 +952,7 @@ export {
952
952
  isMember,
953
953
  matchesCollectionPaths,
954
954
  findGitRoot,
955
+ searchPath,
955
956
  valeConfigPath,
956
957
  ditaOtHome,
957
958
  FAMILY_CONFIG_NAMES,
@@ -964,4 +965,4 @@ export {
964
965
  findFamilyConfigFile,
965
966
  readFamilyConfigFile
966
967
  };
967
- //# sourceMappingURL=chunk-XKBEHKWO.js.map
968
+ //# sourceMappingURL=chunk-6M5VJOC2.js.map
@@ -6,10 +6,10 @@ import {
6
6
  shortPin,
7
7
  shortSrc,
8
8
  spellAt
9
- } from "./chunk-SXODK43S.js";
9
+ } from "./chunk-RZVCWX5R.js";
10
10
  import {
11
11
  parseSrc
12
- } from "./chunk-VSOYZ7QH.js";
12
+ } from "./chunk-PK7EKJ5T.js";
13
13
  import {
14
14
  palette
15
15
  } from "./chunk-RNVYGWIC.js";
@@ -452,4 +452,4 @@ export {
452
452
  removalLine,
453
453
  renderRemovePretty
454
454
  };
455
- //# sourceMappingURL=chunk-F734HIHT.js.map
455
+ //# sourceMappingURL=chunk-7Y3N4Y72.js.map