open-agreements 0.4.0 → 0.6.2

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 (192) hide show
  1. package/README.de.md +6 -1
  2. package/README.es.md +6 -1
  3. package/README.md +15 -1
  4. package/README.pt-br.md +6 -1
  5. package/README.zh.md +6 -1
  6. package/content/external/yc-safe-discount/metadata.yaml +1 -1
  7. package/content/external/yc-safe-mfn/metadata.yaml +1 -1
  8. package/content/external/yc-safe-pro-rata-side-letter/metadata.yaml +1 -1
  9. package/content/external/yc-safe-valuation-cap/metadata.yaml +1 -1
  10. package/content/recipes/QUALITY_TRACKER.md +35 -0
  11. package/content/recipes/nvca-certificate-of-incorporation/clean.json +14 -2
  12. package/content/recipes/nvca-certificate-of-incorporation/computed.json +99 -0
  13. package/content/recipes/nvca-certificate-of-incorporation/metadata.yaml +133 -2
  14. package/content/recipes/nvca-certificate-of-incorporation/replacements.json +95 -2
  15. package/content/recipes/nvca-certificate-of-incorporation/selections-roadmap.md +44 -0
  16. package/content/recipes/nvca-certificate-of-incorporation/selections.json +95 -0
  17. package/content/recipes/nvca-indemnification-agreement/metadata.yaml +9 -1
  18. package/content/recipes/nvca-investors-rights-agreement/clean.json +9 -1
  19. package/content/recipes/nvca-investors-rights-agreement/metadata.yaml +1 -1
  20. package/content/recipes/nvca-investors-rights-agreement/replacements.json +4 -1
  21. package/content/recipes/nvca-management-rights-letter/metadata.yaml +1 -1
  22. package/content/recipes/nvca-rofr-co-sale-agreement/clean.json +11 -1
  23. package/content/recipes/nvca-rofr-co-sale-agreement/metadata.yaml +5 -1
  24. package/content/recipes/nvca-rofr-co-sale-agreement/replacements.json +4 -1
  25. package/content/recipes/nvca-stock-purchase-agreement/clean.json +8 -3
  26. package/content/recipes/nvca-stock-purchase-agreement/computed.json +30 -0
  27. package/content/recipes/nvca-stock-purchase-agreement/metadata.yaml +25 -17
  28. package/content/recipes/nvca-stock-purchase-agreement/normalize.json +0 -16
  29. package/content/recipes/nvca-stock-purchase-agreement/replacements.json +22 -19
  30. package/content/recipes/nvca-stock-purchase-agreement/selections.json +60 -0
  31. package/content/recipes/nvca-voting-agreement/clean.json +11 -1
  32. package/content/recipes/nvca-voting-agreement/metadata.yaml +1 -1
  33. package/content/recipes/nvca-voting-agreement/replacements.json +2 -1
  34. package/content/templates/bonterms-mutual-nda/metadata.yaml +1 -1
  35. package/content/templates/bonterms-professional-services-agreement/metadata.yaml +1 -1
  36. package/content/templates/closing-checklist/metadata.yaml +1 -1
  37. package/content/templates/common-paper-ai-addendum/metadata.yaml +1 -1
  38. package/content/templates/common-paper-ai-addendum-in-app/metadata.yaml +1 -1
  39. package/content/templates/common-paper-amendment/metadata.yaml +1 -1
  40. package/content/templates/common-paper-business-associate-agreement/metadata.yaml +1 -1
  41. package/content/templates/common-paper-cloud-service-agreement/metadata.yaml +1 -1
  42. package/content/templates/common-paper-csa-click-through/metadata.yaml +1 -1
  43. package/content/templates/common-paper-csa-with-ai/metadata.yaml +1 -1
  44. package/content/templates/common-paper-csa-with-sla/metadata.yaml +1 -1
  45. package/content/templates/common-paper-csa-without-sla/metadata.yaml +1 -1
  46. package/content/templates/common-paper-data-processing-agreement/metadata.yaml +1 -1
  47. package/content/templates/common-paper-design-partner-agreement/metadata.yaml +1 -1
  48. package/content/templates/common-paper-independent-contractor-agreement/metadata.yaml +1 -1
  49. package/content/templates/common-paper-letter-of-intent/metadata.yaml +1 -1
  50. package/content/templates/common-paper-mutual-nda/metadata.yaml +1 -1
  51. package/content/templates/common-paper-one-way-nda/metadata.yaml +1 -1
  52. package/content/templates/common-paper-order-form/metadata.yaml +1 -1
  53. package/content/templates/common-paper-order-form-with-sla/metadata.yaml +1 -1
  54. package/content/templates/common-paper-partnership-agreement/metadata.yaml +1 -1
  55. package/content/templates/common-paper-pilot-agreement/metadata.yaml +1 -1
  56. package/content/templates/common-paper-professional-services-agreement/metadata.yaml +1 -1
  57. package/content/templates/common-paper-software-license-agreement/metadata.yaml +1 -1
  58. package/content/templates/common-paper-statement-of-work/metadata.yaml +1 -1
  59. package/content/templates/common-paper-term-sheet/metadata.yaml +1 -1
  60. package/content/templates/openagreements-employee-ip-inventions-assignment/metadata.yaml +1 -1
  61. package/content/templates/openagreements-employment-confidentiality-acknowledgement/metadata.yaml +1 -1
  62. package/content/templates/openagreements-employment-offer-letter/metadata.yaml +1 -1
  63. package/content/templates/working-group-list/metadata.yaml +1 -1
  64. package/dist/cli/index.d.ts.map +1 -1
  65. package/dist/cli/index.js +8 -4
  66. package/dist/cli/index.js.map +1 -1
  67. package/dist/commands/fill.js +3 -3
  68. package/dist/commands/fill.js.map +1 -1
  69. package/dist/commands/list.js +19 -15
  70. package/dist/commands/list.js.map +1 -1
  71. package/dist/core/command-generation/adapters/claude.js +4 -4
  72. package/dist/core/employment/memo.js +3 -3
  73. package/dist/core/engine.js +1 -1
  74. package/dist/core/external/index.js +1 -1
  75. package/dist/core/fill-pipeline.d.ts +3 -3
  76. package/dist/core/fill-pipeline.js +6 -6
  77. package/dist/core/fill-pipeline.js.map +1 -1
  78. package/dist/core/metadata.d.ts +13 -3
  79. package/dist/core/metadata.d.ts.map +1 -1
  80. package/dist/core/metadata.js +19 -11
  81. package/dist/core/metadata.js.map +1 -1
  82. package/dist/core/recipe/bracket-normalizer.d.ts +4 -5
  83. package/dist/core/recipe/bracket-normalizer.d.ts.map +1 -1
  84. package/dist/core/recipe/bracket-normalizer.js +67 -149
  85. package/dist/core/recipe/bracket-normalizer.js.map +1 -1
  86. package/dist/core/recipe/cleaner.d.ts.map +1 -1
  87. package/dist/core/recipe/cleaner.js +91 -7
  88. package/dist/core/recipe/cleaner.js.map +1 -1
  89. package/dist/core/recipe/computed.d.ts +1 -0
  90. package/dist/core/recipe/computed.d.ts.map +1 -1
  91. package/dist/core/recipe/computed.js +8 -0
  92. package/dist/core/recipe/computed.js.map +1 -1
  93. package/dist/core/recipe/downloader.d.ts.map +1 -1
  94. package/dist/core/recipe/downloader.js +8 -3
  95. package/dist/core/recipe/downloader.js.map +1 -1
  96. package/dist/core/recipe/index.d.ts +2 -1
  97. package/dist/core/recipe/index.d.ts.map +1 -1
  98. package/dist/core/recipe/index.js +13 -5
  99. package/dist/core/recipe/index.js.map +1 -1
  100. package/dist/core/recipe/patcher.d.ts +10 -5
  101. package/dist/core/recipe/patcher.d.ts.map +1 -1
  102. package/dist/core/recipe/patcher.js +186 -138
  103. package/dist/core/recipe/patcher.js.map +1 -1
  104. package/dist/core/recipe/replacement-keys.d.ts +9 -7
  105. package/dist/core/recipe/replacement-keys.d.ts.map +1 -1
  106. package/dist/core/recipe/replacement-keys.js +7 -20
  107. package/dist/core/recipe/replacement-keys.js.map +1 -1
  108. package/dist/core/recipe/source-drift.js +1 -1
  109. package/dist/core/recipe/source-drift.js.map +1 -1
  110. package/dist/core/recipe/verifier.d.ts +8 -1
  111. package/dist/core/recipe/verifier.d.ts.map +1 -1
  112. package/dist/core/recipe/verifier.js +69 -3
  113. package/dist/core/recipe/verifier.js.map +1 -1
  114. package/dist/core/selector.d.ts +4 -0
  115. package/dist/core/selector.d.ts.map +1 -1
  116. package/dist/core/selector.js +278 -7
  117. package/dist/core/selector.js.map +1 -1
  118. package/dist/core/template-listing.d.ts +3 -1
  119. package/dist/core/template-listing.d.ts.map +1 -1
  120. package/dist/core/template-listing.js +4 -3
  121. package/dist/core/template-listing.js.map +1 -1
  122. package/dist/core/unified-pipeline.d.ts +5 -2
  123. package/dist/core/unified-pipeline.d.ts.map +1 -1
  124. package/dist/core/unified-pipeline.js +71 -3
  125. package/dist/core/unified-pipeline.js.map +1 -1
  126. package/dist/core/validation/external.d.ts.map +1 -1
  127. package/dist/core/validation/external.js +0 -2
  128. package/dist/core/validation/external.js.map +1 -1
  129. package/dist/core/validation/recipe.d.ts.map +1 -1
  130. package/dist/core/validation/recipe.js +34 -6
  131. package/dist/core/validation/recipe.js.map +1 -1
  132. package/dist/core/validation/scan-metadata.d.ts +2 -1
  133. package/dist/core/validation/scan-metadata.d.ts.map +1 -1
  134. package/dist/core/validation/scan-metadata.js +20 -3
  135. package/dist/core/validation/scan-metadata.js.map +1 -1
  136. package/dist/core/validation/template.js +5 -5
  137. package/node_modules/@usejunior/docx-core/LICENSE +21 -0
  138. package/node_modules/@usejunior/docx-core/README.md +101 -0
  139. package/node_modules/@usejunior/docx-core/dist/.tsbuildinfo +1 -0
  140. package/node_modules/@usejunior/docx-core/dist/cli/index.js +0 -0
  141. package/node_modules/@usejunior/docx-core/dist/primitives/document.d.ts.map +1 -1
  142. package/node_modules/@usejunior/docx-core/dist/primitives/document.js +190 -3
  143. package/node_modules/@usejunior/docx-core/dist/primitives/document.js.map +1 -1
  144. package/node_modules/@usejunior/docx-core/dist/primitives/document_view.d.ts +39 -0
  145. package/node_modules/@usejunior/docx-core/dist/primitives/document_view.d.ts.map +1 -1
  146. package/node_modules/@usejunior/docx-core/dist/primitives/document_view.js +83 -13
  147. package/node_modules/@usejunior/docx-core/dist/primitives/document_view.js.map +1 -1
  148. package/node_modules/@usejunior/docx-core/dist/primitives/dom-helpers.d.ts +11 -0
  149. package/node_modules/@usejunior/docx-core/dist/primitives/dom-helpers.d.ts.map +1 -1
  150. package/node_modules/@usejunior/docx-core/dist/primitives/dom-helpers.js +23 -0
  151. package/node_modules/@usejunior/docx-core/dist/primitives/dom-helpers.js.map +1 -1
  152. package/node_modules/@usejunior/docx-core/dist/primitives/tables.d.ts.map +1 -1
  153. package/node_modules/@usejunior/docx-core/dist/primitives/tables.js +2 -15
  154. package/node_modules/@usejunior/docx-core/dist/primitives/tables.js.map +1 -1
  155. package/node_modules/@usejunior/docx-core/package.json +49 -8
  156. package/package.json +5 -4
  157. package/server.json +31 -0
  158. package/skills/client-email/SKILL.md +143 -0
  159. package/skills/cloud-service-agreement/SKILL.md +8 -99
  160. package/skills/data-privacy-agreement/SKILL.md +10 -97
  161. package/skills/delaware-franchise-tax/SKILL.md +7 -1
  162. package/skills/edit-docx-agreement/SKILL.md +10 -3
  163. package/skills/employment-contract/SKILL.md +10 -95
  164. package/skills/iso-27001-evidence-collection/SKILL.md +7 -1
  165. package/skills/iso-27001-internal-audit/SKILL.md +6 -0
  166. package/skills/nda/SKILL.md +7 -99
  167. package/skills/open-agreements/CONNECTORS.md +1 -1
  168. package/skills/open-agreements/SKILL.md +17 -104
  169. package/skills/recipe-quality-audit/SKILL.md +116 -0
  170. package/skills/safe/SKILL.md +12 -97
  171. package/skills/services-agreement/SKILL.md +8 -99
  172. package/skills/shared/template-filling-execution.md +92 -0
  173. package/skills/soc2-readiness/SKILL.md +7 -1
  174. package/skills/unit-test-philosophy/SKILL.md +12 -1
  175. package/skills/venture-financing/SKILL.md +11 -96
  176. package/node_modules/diff-match-patch/LICENSE +0 -202
  177. package/node_modules/diff-match-patch/README.md +0 -94
  178. package/node_modules/diff-match-patch/index.js +0 -2218
  179. package/node_modules/diff-match-patch/package.json +0 -22
  180. /package/{packages → node_modules/@usejunior}/docx-core/node_modules/@xmldom/xmldom/CHANGELOG.md +0 -0
  181. /package/{packages → node_modules/@usejunior}/docx-core/node_modules/@xmldom/xmldom/LICENSE +0 -0
  182. /package/{packages → node_modules/@usejunior}/docx-core/node_modules/@xmldom/xmldom/SECURITY.md +0 -0
  183. /package/{packages → node_modules/@usejunior}/docx-core/node_modules/@xmldom/xmldom/index.d.ts +0 -0
  184. /package/{packages → node_modules/@usejunior}/docx-core/node_modules/@xmldom/xmldom/lib/.eslintrc.yml +0 -0
  185. /package/{packages → node_modules/@usejunior}/docx-core/node_modules/@xmldom/xmldom/lib/conventions.js +0 -0
  186. /package/{packages → node_modules/@usejunior}/docx-core/node_modules/@xmldom/xmldom/lib/dom-parser.js +0 -0
  187. /package/{packages → node_modules/@usejunior}/docx-core/node_modules/@xmldom/xmldom/lib/dom.js +0 -0
  188. /package/{packages → node_modules/@usejunior}/docx-core/node_modules/@xmldom/xmldom/lib/entities.js +0 -0
  189. /package/{packages → node_modules/@usejunior}/docx-core/node_modules/@xmldom/xmldom/lib/index.js +0 -0
  190. /package/{packages → node_modules/@usejunior}/docx-core/node_modules/@xmldom/xmldom/lib/sax.js +0 -0
  191. /package/{packages → node_modules/@usejunior}/docx-core/node_modules/@xmldom/xmldom/package.json +0 -0
  192. /package/{packages → node_modules/@usejunior}/docx-core/node_modules/@xmldom/xmldom/readme.md +0 -0
@@ -1,5 +1,6 @@
1
1
  import type { VerifyResult } from './types.js';
2
2
  import type { CleanConfig } from '../metadata.js';
3
+ import type { ReplacementValue } from './replacement-keys.js';
3
4
  /**
4
5
  * Normalize text for value comparison:
5
6
  * - Convert non-breaking spaces to regular spaces
@@ -16,7 +17,13 @@ export declare function normalizeText(text: string): string;
16
17
  * - Footnotes removed (if clean config specified)
17
18
  * - Drafting note paragraphs removed (if clean config specified)
18
19
  */
19
- export declare function verifyOutput(outputPath: string, values: Record<string, unknown>, replacements: Record<string, string>, cleanConfig?: CleanConfig): Promise<VerifyResult>;
20
+ export declare function verifyOutput(outputPath: string, values: Record<string, unknown>, replacements: Record<string, ReplacementValue>, cleanConfig?: CleanConfig, cleanedSourcePath?: string): Promise<VerifyResult>;
21
+ /**
22
+ * Count formatting anomalies: single-character underlined runs adjacent to
23
+ * non-underlined runs. This pattern is the hallmark of quota-based text
24
+ * redistribution corrupting run-level formatting.
25
+ */
26
+ export declare function countFormattingAnomalies(docxPath: string): number;
20
27
  /**
21
28
  * Extract all text from general OOXML text parts (document, headers, footers, endnotes).
22
29
  */
@@ -1 +1 @@
1
- {"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../../src/core/recipe/verifier.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAMlD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWlD;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,YAAY,CAAC,CA8FvB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA8BvD"}
1
+ {"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../../src/core/recipe/verifier.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAI9D;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWlD;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC9C,WAAW,CAAC,EAAE,WAAW,EACzB,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,YAAY,CAAC,CA8GvB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA8CjE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA8BvD"}
@@ -30,7 +30,7 @@ export function normalizeText(text) {
30
30
  * - Footnotes removed (if clean config specified)
31
31
  * - Drafting note paragraphs removed (if clean config specified)
32
32
  */
33
- export async function verifyOutput(outputPath, values, replacements, cleanConfig) {
33
+ export async function verifyOutput(outputPath, values, replacements, cleanConfig, cleanedSourcePath) {
34
34
  const checks = [];
35
35
  const rawFullText = extractAllText(outputPath);
36
36
  const normalizedFullText = normalizeText(rawFullText);
@@ -58,11 +58,11 @@ export async function verifyOutput(outputPath, values, replacements, cleanConfig
58
58
  details: unrenderedTags.length > 0 ? `Found: ${unrenderedTags.join(', ')}` : undefined,
59
59
  });
60
60
  // Check 3: No leftover [bracketed placeholders] from replacement map
61
- // Use extractSearchText() to handle qualified keys (context, nth) properly
61
+ // Use extractSearchText() to handle qualified keys (context) properly
62
62
  const searchTexts = [...new Set(Object.keys(replacements).map(extractSearchText))];
63
63
  const leftoverBrackets = searchTexts.filter((text) => rawFullText.includes(text));
64
64
  checks.push({
65
- name: 'No leftover source placeholders',
65
+ name: 'Leftover source placeholders',
66
66
  passed: leftoverBrackets.length === 0,
67
67
  details: leftoverBrackets.length > 0 ? `Found: ${leftoverBrackets.join(', ')}` : undefined,
68
68
  });
@@ -111,11 +111,77 @@ export async function verifyOutput(outputPath, values, replacements, cleanConfig
111
111
  : undefined,
112
112
  });
113
113
  }
114
+ // Check 8: No single-character underlined runs adjacent to non-underlined runs
115
+ // This is a hallmark of quota-based text redistribution corrupting formatting.
116
+ // When cleanedSourcePath is provided, only flag NEW anomalies introduced by fill/patch.
117
+ const outputAnomalyCount = countFormattingAnomalies(outputPath);
118
+ const baselineAnomalyCount = cleanedSourcePath ? countFormattingAnomalies(cleanedSourcePath) : 0;
119
+ const newAnomalyCount = Math.max(0, outputAnomalyCount - baselineAnomalyCount);
120
+ checks.push({
121
+ name: 'No formatting anomalies',
122
+ passed: newAnomalyCount === 0,
123
+ details: newAnomalyCount > 0
124
+ ? `Found ${newAnomalyCount} new single-char underlined run(s) adjacent to non-underlined runs (${outputAnomalyCount} total, ${baselineAnomalyCount} in source)`
125
+ : baselineAnomalyCount > 0
126
+ ? `${baselineAnomalyCount} pre-existing anomaly(ies) in source (baselined)`
127
+ : undefined,
128
+ });
114
129
  return {
115
130
  passed: checks.every((c) => c.passed),
116
131
  checks,
117
132
  };
118
133
  }
134
+ /**
135
+ * Count formatting anomalies: single-character underlined runs adjacent to
136
+ * non-underlined runs. This pattern is the hallmark of quota-based text
137
+ * redistribution corrupting run-level formatting.
138
+ */
139
+ export function countFormattingAnomalies(docxPath) {
140
+ const zip = new AdmZip(docxPath);
141
+ const parser = new DOMParser();
142
+ const parts = enumerateTextParts(zip);
143
+ const partNames = getGeneralTextPartNames(parts);
144
+ let count = 0;
145
+ for (const partName of partNames) {
146
+ const entry = zip.getEntry(partName);
147
+ if (!entry)
148
+ continue;
149
+ const xmlContent = entry.getData().toString('utf-8');
150
+ const doc = parser.parseFromString(xmlContent, 'text/xml');
151
+ const paras = doc.getElementsByTagNameNS(W_NS, 'p');
152
+ for (let i = 0; i < paras.length; i++) {
153
+ const runs = paras[i].getElementsByTagNameNS(W_NS, 'r');
154
+ for (let j = 0; j < runs.length; j++) {
155
+ const run = runs[j];
156
+ const tEls = run.getElementsByTagNameNS(W_NS, 't');
157
+ let runText = '';
158
+ for (let k = 0; k < tEls.length; k++) {
159
+ runText += tEls[k].textContent ?? '';
160
+ }
161
+ if (runText.length !== 1)
162
+ continue;
163
+ // Check if this run is underlined
164
+ const rPr = run.getElementsByTagNameNS(W_NS, 'rPr');
165
+ if (rPr.length === 0)
166
+ continue;
167
+ const uEls = rPr[0].getElementsByTagNameNS(W_NS, 'u');
168
+ if (uEls.length === 0)
169
+ continue;
170
+ // Check adjacent run (next) for non-underlined
171
+ if (j + 1 < runs.length) {
172
+ const nextRun = runs[j + 1];
173
+ const nextRPr = nextRun.getElementsByTagNameNS(W_NS, 'rPr');
174
+ const nextHasUnderline = nextRPr.length > 0 &&
175
+ nextRPr[0].getElementsByTagNameNS(W_NS, 'u').length > 0;
176
+ if (!nextHasUnderline) {
177
+ count++;
178
+ }
179
+ }
180
+ }
181
+ }
182
+ }
183
+ return count;
184
+ }
119
185
  /**
120
186
  * Extract all text from general OOXML text parts (document, headers, footers, endnotes).
121
187
  */
@@ -1 +1 @@
1
- {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../../src/core/recipe/verifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../../src/core/recipe/verifier.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,10 @@ export declare const SelectionsConfigSchema: z.ZodObject<{
14
14
  checkbox: "checkbox";
15
15
  }>;
16
16
  standalone: z.ZodOptional<z.ZodBoolean>;
17
+ markerless: z.ZodOptional<z.ZodBoolean>;
18
+ inline: z.ZodOptional<z.ZodBoolean>;
17
19
  cellContext: z.ZodOptional<z.ZodString>;
20
+ subClauseStopPatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
18
21
  options: z.ZodArray<z.ZodObject<{
19
22
  marker: z.ZodString;
20
23
  trigger: z.ZodUnion<readonly [z.ZodLiteral<"default">, z.ZodObject<{
@@ -23,6 +26,7 @@ export declare const SelectionsConfigSchema: z.ZodObject<{
23
26
  }, z.core.$strip>, z.ZodObject<{
24
27
  field: z.ZodString;
25
28
  }, z.core.$strip>]>;
29
+ replaceWith: z.ZodOptional<z.ZodString>;
26
30
  }, z.core.$strip>>;
27
31
  }, z.core.$strip>>;
28
32
  }, z.core.$strip>;
@@ -1 +1 @@
1
- {"version":3,"file":"selector.d.ts","sourceRoot":"","sources":["../../src/core/selector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqCxB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;iBAEjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAMtE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAGnE;AA0ID;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAkCf"}
1
+ {"version":3,"file":"selector.d.ts","sourceRoot":"","sources":["../../src/core/selector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+DxB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;iBAEjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAMtE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAGnE;AAmND;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAkCf"}
@@ -9,8 +9,15 @@ import { readFileSync, writeFileSync } from 'node:fs';
9
9
  import { z } from 'zod';
10
10
  import AdmZip from 'adm-zip';
11
11
  import { DOMParser, XMLSerializer } from '@xmldom/xmldom';
12
+ import { getParagraphText, replaceParagraphTextRange, SafeDocxError } from '@usejunior/docx-core';
12
13
  import { enumerateTextParts, getGeneralTextPartNames } from './recipe/ooxml-parts.js';
13
14
  const W_NS = 'http://schemas.openxmlformats.org/wordprocessingml/2006/main';
15
+ /** Normalize smart quotes to ASCII equivalents for matching. */
16
+ function normalizeQuotes(text) {
17
+ return text
18
+ .replace(/[\u2018\u2019\u2039\u203A]/g, "'")
19
+ .replace(/[\u201C\u201D\u201A\u201E\u00AB\u00BB]/g, '"');
20
+ }
14
21
  // ---------------------------------------------------------------------------
15
22
  // Schema
16
23
  // ---------------------------------------------------------------------------
@@ -22,16 +29,34 @@ const TriggerSchema = z.union([
22
29
  const OptionSchema = z.object({
23
30
  marker: z.string(),
24
31
  trigger: TriggerSchema,
32
+ replaceWith: z.string().optional(),
25
33
  });
26
34
  const GroupSchema = z
27
35
  .object({
28
36
  id: z.string(),
29
37
  type: z.enum(['radio', 'checkbox']),
30
38
  standalone: z.boolean().optional(),
39
+ markerless: z.boolean().optional(),
40
+ inline: z.boolean().optional(),
31
41
  cellContext: z.string().optional(),
42
+ subClauseStopPatterns: z.array(z.string()).optional(),
32
43
  options: z.array(OptionSchema).min(1),
33
44
  })
34
- .refine((g) => g.standalone === true || g.options.length >= 2, { message: 'Non-standalone groups require at least 2 options' });
45
+ .refine((g) => g.standalone === true || g.markerless === true || g.options.length >= 2, { message: 'Non-standalone/non-markerless groups require at least 2 options' })
46
+ .refine((g) => {
47
+ if (!g.subClauseStopPatterns)
48
+ return true;
49
+ for (const p of g.subClauseStopPatterns) {
50
+ try {
51
+ new RegExp(p, 'i');
52
+ }
53
+ catch {
54
+ return false;
55
+ }
56
+ }
57
+ return true;
58
+ }, { message: 'subClauseStopPatterns must contain valid regular expressions' })
59
+ .refine((g) => !g.inline || g.markerless === true, { message: 'inline: true requires markerless: true' });
35
60
  export const SelectionsConfigSchema = z.object({
36
61
  groups: z.array(GroupSchema).min(1),
37
62
  });
@@ -43,6 +68,77 @@ export function loadSelectionsConfig(path) {
43
68
  return SelectionsConfigSchema.parse(JSON.parse(raw));
44
69
  }
45
70
  // ---------------------------------------------------------------------------
71
+ // Bookmark-aware removal
72
+ // ---------------------------------------------------------------------------
73
+ /**
74
+ * Remove a set of paragraphs from the document, cleaning up any bookmark
75
+ * start/end elements whose counterparts would be orphaned.
76
+ *
77
+ * Phase A: For each doomed paragraph, find bookmarkStart/End elements.
78
+ * If the counterpart (by w:id) lives outside the doomed set, mark it
79
+ * for removal so no orphans remain.
80
+ * Phase B: Remove orphaned counterparts.
81
+ * Phase C: Remove the paragraphs themselves.
82
+ */
83
+ function removeWithBookmarkCleanup(doc, parasToRemove) {
84
+ if (parasToRemove.size === 0)
85
+ return;
86
+ const orphanedCounterparts = [];
87
+ for (const p of parasToRemove) {
88
+ const starts = p.getElementsByTagNameNS(W_NS, 'bookmarkStart');
89
+ for (let i = 0; i < starts.length; i++) {
90
+ const id = starts[i].getAttribute('w:id');
91
+ if (!id)
92
+ continue;
93
+ const allEnds = doc.getElementsByTagNameNS(W_NS, 'bookmarkEnd');
94
+ for (let j = 0; j < allEnds.length; j++) {
95
+ if (allEnds[j].getAttribute('w:id') !== id)
96
+ continue;
97
+ const endParent = findAncestorElement(allEnds[j], 'p');
98
+ if (!endParent || !parasToRemove.has(endParent)) {
99
+ orphanedCounterparts.push(allEnds[j]);
100
+ }
101
+ break;
102
+ }
103
+ }
104
+ const ends = p.getElementsByTagNameNS(W_NS, 'bookmarkEnd');
105
+ for (let i = 0; i < ends.length; i++) {
106
+ const id = ends[i].getAttribute('w:id');
107
+ if (!id)
108
+ continue;
109
+ const allStarts = doc.getElementsByTagNameNS(W_NS, 'bookmarkStart');
110
+ for (let j = 0; j < allStarts.length; j++) {
111
+ if (allStarts[j].getAttribute('w:id') !== id)
112
+ continue;
113
+ const startParent = findAncestorElement(allStarts[j], 'p');
114
+ if (!startParent || !parasToRemove.has(startParent)) {
115
+ orphanedCounterparts.push(allStarts[j]);
116
+ }
117
+ break;
118
+ }
119
+ }
120
+ }
121
+ for (const el of orphanedCounterparts) {
122
+ el.parentNode?.removeChild(el);
123
+ }
124
+ for (const p of parasToRemove) {
125
+ p.parentNode?.removeChild(p);
126
+ }
127
+ }
128
+ /** Find the nearest ancestor element with the given local name (W namespace). */
129
+ function findAncestorElement(node, localName) {
130
+ let current = node.parentNode;
131
+ while (current) {
132
+ if (current.nodeType === 1) {
133
+ const el = current;
134
+ if (el.localName === localName && el.namespaceURI === W_NS)
135
+ return el;
136
+ }
137
+ current = current.parentNode;
138
+ }
139
+ return null;
140
+ }
141
+ // ---------------------------------------------------------------------------
46
142
  // Helpers
47
143
  // ---------------------------------------------------------------------------
48
144
  /** Extract paragraph text by concatenating all <w:t> elements. */
@@ -216,6 +312,9 @@ export async function applySelections(inputPath, outputPath, config, data) {
216
312
  * Returns true if any modifications were made.
217
313
  */
218
314
  function processGroup(doc, group, data) {
315
+ if (group.markerless) {
316
+ return processMarkerlessGroup(doc, group, data);
317
+ }
219
318
  if (group.standalone) {
220
319
  return processStandaloneGroup(doc, group, data);
221
320
  }
@@ -312,6 +411,7 @@ function processGroup(doc, group, data) {
312
411
  const selectedIndices = evaluateTriggers(group, data);
313
412
  // Step 5 & 6: Remove unselected options + sub-clauses, mark selected as checked
314
413
  let madeChanges = false;
414
+ const parasToRemove = new Set();
315
415
  for (const item of classified) {
316
416
  if (item.ownerOptionIndex === -1)
317
417
  continue; // header — always keep
@@ -323,11 +423,12 @@ function processGroup(doc, group, data) {
323
423
  }
324
424
  }
325
425
  else {
326
- // Unselected: remove paragraph
327
- item.para.parentNode?.removeChild(item.para);
426
+ // Unselected: collect for bookmark-aware removal
427
+ parasToRemove.add(item.para);
328
428
  madeChanges = true;
329
429
  }
330
430
  }
431
+ removeWithBookmarkCleanup(doc, parasToRemove);
331
432
  // Ensure at least one <w:p> remains in the cell (OOXML requirement)
332
433
  const remainingParas = cell.getElementsByTagNameNS(W_NS, 'p');
333
434
  if (remainingParas.length === 0) {
@@ -428,9 +529,7 @@ function processStandaloneGroup(doc, group, data) {
428
529
  break; // next option — stop
429
530
  toRemove.push(p);
430
531
  }
431
- for (const p of toRemove) {
432
- p.parentNode?.removeChild(p);
433
- }
532
+ removeWithBookmarkCleanup(doc, new Set(toRemove));
434
533
  // Ensure at least one <w:p> remains in cell
435
534
  const remaining = cell.getElementsByTagNameNS(W_NS, 'p');
436
535
  if (remaining.length === 0) {
@@ -441,13 +540,185 @@ function processStandaloneGroup(doc, group, data) {
441
540
  }
442
541
  else {
443
542
  // No cell parent — just remove the paragraph
444
- markerPara.parentNode?.removeChild(markerPara);
543
+ removeWithBookmarkCleanup(doc, new Set([markerPara]));
544
+ }
545
+ madeChanges = true;
546
+ }
547
+ }
548
+ return madeChanges;
549
+ }
550
+ /** Replace all <w:t> content in a paragraph with new text. First node gets the text, rest get empty string. */
551
+ function replaceParagraphText(para, newText) {
552
+ const tElements = para.getElementsByTagNameNS(W_NS, 't');
553
+ for (let i = 0; i < tElements.length; i++) {
554
+ tElements[i].textContent = i === 0 ? newText : '';
555
+ }
556
+ }
557
+ /**
558
+ * Process a markerless group where option paragraphs are matched by content text
559
+ * without requiring [ ] / ( ) prefix markers.
560
+ *
561
+ * When selected → keep paragraph as-is.
562
+ * When unselected + replaceWith → replace paragraph text, remove sub-clause paragraphs.
563
+ * When unselected + no replaceWith → remove paragraph + sub-clause paragraphs.
564
+ */
565
+ function processMarkerlessGroup(doc, group, data) {
566
+ const selectedIndices = evaluateTriggers(group, data);
567
+ let madeChanges = false;
568
+ const parasToRemove = new Set();
569
+ for (let oi = 0; oi < group.options.length; oi++) {
570
+ const option = group.options[oi];
571
+ // Snapshot all paragraphs before mutating to avoid live NodeList issues
572
+ const allParagraphs = doc.getElementsByTagNameNS(W_NS, 'p');
573
+ const matchedParas = [];
574
+ const normalizedMarkerText = normalizeQuotes(option.marker);
575
+ for (let pi = 0; pi < allParagraphs.length; pi++) {
576
+ const para = allParagraphs[pi];
577
+ const text = extractParagraphText(para);
578
+ if (text && normalizeQuotes(text).includes(normalizedMarkerText)) {
579
+ matchedParas.push(para);
580
+ }
581
+ }
582
+ if (matchedParas.length === 0)
583
+ continue;
584
+ if (selectedIndices.has(oi)) {
585
+ // Selected — keep paragraphs as-is, no changes needed
586
+ continue;
587
+ }
588
+ // Unselected — inline mode: delete/replace marker text within the paragraph
589
+ if (group.inline) {
590
+ for (const markerPara of matchedParas) {
591
+ const normalizedMarker = normalizeQuotes(option.marker);
592
+ const replacement = option.replaceWith ?? '';
593
+ const globalPara = markerPara;
594
+ let text = normalizeQuotes(getParagraphText(globalPara));
595
+ let safety = 0;
596
+ while (safety++ < 50) {
597
+ const idx = text.indexOf(normalizedMarker);
598
+ if (idx === -1)
599
+ break;
600
+ try {
601
+ replaceParagraphTextRange(globalPara, idx, idx + normalizedMarker.length, replacement);
602
+ madeChanges = true;
603
+ }
604
+ catch (e) {
605
+ if (e instanceof SafeDocxError) {
606
+ // Fallback: formatting-destructive text splice via xmldom w:t elements
607
+ const rawText = extractParagraphText(markerPara);
608
+ const rawIdx = normalizeQuotes(rawText).indexOf(normalizedMarker);
609
+ if (rawIdx !== -1) {
610
+ const newText = rawText.slice(0, rawIdx) + replacement + rawText.slice(rawIdx + normalizedMarker.length);
611
+ replaceParagraphText(markerPara, newText);
612
+ madeChanges = true;
613
+ }
614
+ }
615
+ break;
616
+ }
617
+ text = normalizeQuotes(getParagraphText(globalPara));
618
+ }
619
+ }
620
+ continue;
621
+ }
622
+ // Unselected — process each matched paragraph (paragraph-level deletion)
623
+ for (const markerPara of matchedParas) {
624
+ const parent = markerPara.parentNode;
625
+ if (!parent)
626
+ continue;
627
+ // Collect sub-clause paragraphs following the match
628
+ const siblings = [];
629
+ const childNodes = parent.childNodes;
630
+ let foundMarker = false;
631
+ for (let ci = 0; ci < childNodes.length; ci++) {
632
+ const node = childNodes[ci];
633
+ if (node.nodeType !== 1)
634
+ continue;
635
+ const el = node;
636
+ if (el.localName !== 'p' || el.namespaceURI !== W_NS)
637
+ continue;
638
+ siblings.push(el);
639
+ }
640
+ const markerIdx = siblings.indexOf(markerPara);
641
+ if (markerIdx < 0)
642
+ continue;
643
+ // Walk forward to collect sub-clause paragraphs
644
+ const subClauses = [];
645
+ const customStopRe = group.subClauseStopPatterns?.length
646
+ ? new RegExp(group.subClauseStopPatterns.map(p => `(?:${p})`).join('|'), 'i')
647
+ : null;
648
+ // Get marker paragraph's numbering level for level-aware stop
649
+ const markerIlvl = getNumberingLevel(markerPara);
650
+ for (let si = markerIdx + 1; si < siblings.length; si++) {
651
+ const p = siblings[si];
652
+ // Stop at auto-numbered paragraphs at same or higher level
653
+ if (hasAutoNumbering(p, markerIlvl !== -1 ? markerIlvl : undefined))
654
+ break;
655
+ const text = extractParagraphText(p);
656
+ // Stop at next section heading or another option's marker
657
+ if (text) {
658
+ const isAnotherMarker = group.options.some((o) => text.includes(o.marker));
659
+ // Stop at what looks like a section heading (e.g., "(c)", "1.3", "SECTION")
660
+ const isSectionHeading = /^\(?[a-z]\)|^\d+\.\d+|^SECTION\b|^ARTICLE\b/i.test(text);
661
+ const isCustomStop = customStopRe ? customStopRe.test(text) : false;
662
+ if (isAnotherMarker || isSectionHeading || isCustomStop)
663
+ break;
664
+ }
665
+ subClauses.push(p);
666
+ }
667
+ if (option.replaceWith !== undefined) {
668
+ // Replace matched paragraph text; sub-clauses deferred for removal
669
+ replaceParagraphText(markerPara, option.replaceWith);
670
+ }
671
+ else {
672
+ // Marker paragraph deferred for removal
673
+ parasToRemove.add(markerPara);
674
+ }
675
+ for (const p of subClauses) {
676
+ parasToRemove.add(p);
445
677
  }
446
678
  madeChanges = true;
447
679
  }
448
680
  }
681
+ // Deferred removal with bookmark cleanup
682
+ removeWithBookmarkCleanup(doc, parasToRemove);
449
683
  return madeChanges;
450
684
  }
685
+ /** Check if a paragraph has Word auto-numbering at or above the given level. */
686
+ function hasAutoNumbering(para, maxIlvl) {
687
+ for (let i = 0; i < para.childNodes.length; i++) {
688
+ const child = para.childNodes[i];
689
+ if (child.nodeType !== 1)
690
+ continue;
691
+ if (child.localName === 'pPr' && child.namespaceURI === W_NS) {
692
+ const numPrs = child.getElementsByTagNameNS(W_NS, 'numPr');
693
+ if (numPrs.length === 0)
694
+ return false;
695
+ if (maxIlvl === undefined)
696
+ return true;
697
+ const ilvlEl = numPrs[0].getElementsByTagNameNS(W_NS, 'ilvl');
698
+ if (ilvlEl.length === 0)
699
+ return true; // no level = top-level
700
+ const level = parseInt(ilvlEl[0].getAttribute('w:val') ?? '0', 10);
701
+ return level <= maxIlvl;
702
+ }
703
+ }
704
+ return false;
705
+ }
706
+ /** Get the numbering level (ilvl) of a paragraph, or -1 if not numbered. */
707
+ function getNumberingLevel(para) {
708
+ for (let i = 0; i < para.childNodes.length; i++) {
709
+ const child = para.childNodes[i];
710
+ if (child.nodeType !== 1)
711
+ continue;
712
+ if (child.localName === 'pPr' && child.namespaceURI === W_NS) {
713
+ const numPrs = child.getElementsByTagNameNS(W_NS, 'numPr');
714
+ if (numPrs.length === 0)
715
+ return -1;
716
+ const ilvlEl = numPrs[0].getElementsByTagNameNS(W_NS, 'ilvl');
717
+ return parseInt(ilvlEl[0]?.getAttribute('w:val') ?? '0', 10);
718
+ }
719
+ }
720
+ return -1;
721
+ }
451
722
  /** Walk up the DOM to find an ancestor with the given local name. */
452
723
  function findAncestor(node, localName) {
453
724
  let current = node.parentNode;
@@ -1 +1 @@
1
- {"version":3,"file":"selector.js","sourceRoot":"","sources":["../../src/core/selector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selector.js","sourceRoot":"","sources":["../../src/core/selector.ts"],"names":[],"mappings":"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"}