open-agreements 0.1.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 (243) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +161 -0
  3. package/bin/open-agreements.js +2 -0
  4. package/dist/cli/index.d.ts +2 -0
  5. package/dist/cli/index.d.ts.map +1 -0
  6. package/dist/cli/index.js +102 -0
  7. package/dist/cli/index.js.map +1 -0
  8. package/dist/commands/fill.d.ts +7 -0
  9. package/dist/commands/fill.d.ts.map +1 -0
  10. package/dist/commands/fill.js +84 -0
  11. package/dist/commands/fill.js.map +1 -0
  12. package/dist/commands/list.d.ts +6 -0
  13. package/dist/commands/list.d.ts.map +1 -0
  14. package/dist/commands/list.js +202 -0
  15. package/dist/commands/list.js.map +1 -0
  16. package/dist/commands/recipe.d.ts +21 -0
  17. package/dist/commands/recipe.d.ts.map +1 -0
  18. package/dist/commands/recipe.js +71 -0
  19. package/dist/commands/recipe.js.map +1 -0
  20. package/dist/commands/scan.d.ts +12 -0
  21. package/dist/commands/scan.d.ts.map +1 -0
  22. package/dist/commands/scan.js +122 -0
  23. package/dist/commands/scan.js.map +1 -0
  24. package/dist/commands/validate.d.ts +6 -0
  25. package/dist/commands/validate.d.ts.map +1 -0
  26. package/dist/commands/validate.js +139 -0
  27. package/dist/commands/validate.js.map +1 -0
  28. package/dist/core/command-generation/adapters/claude.d.ts +11 -0
  29. package/dist/core/command-generation/adapters/claude.d.ts.map +1 -0
  30. package/dist/core/command-generation/adapters/claude.js +85 -0
  31. package/dist/core/command-generation/adapters/claude.js.map +1 -0
  32. package/dist/core/command-generation/types.d.ts +14 -0
  33. package/dist/core/command-generation/types.d.ts.map +1 -0
  34. package/dist/core/command-generation/types.js +2 -0
  35. package/dist/core/command-generation/types.js.map +1 -0
  36. package/dist/core/engine.d.ts +13 -0
  37. package/dist/core/engine.d.ts.map +1 -0
  38. package/dist/core/engine.js +149 -0
  39. package/dist/core/engine.js.map +1 -0
  40. package/dist/core/external/index.d.ts +8 -0
  41. package/dist/core/external/index.d.ts.map +1 -0
  42. package/dist/core/external/index.js +92 -0
  43. package/dist/core/external/index.js.map +1 -0
  44. package/dist/core/external/types.d.ts +18 -0
  45. package/dist/core/external/types.d.ts.map +1 -0
  46. package/dist/core/external/types.js +2 -0
  47. package/dist/core/external/types.js.map +1 -0
  48. package/dist/core/fill-pipeline.d.ts +61 -0
  49. package/dist/core/fill-pipeline.d.ts.map +1 -0
  50. package/dist/core/fill-pipeline.js +279 -0
  51. package/dist/core/fill-pipeline.js.map +1 -0
  52. package/dist/core/fill-utils.d.ts +39 -0
  53. package/dist/core/fill-utils.d.ts.map +1 -0
  54. package/dist/core/fill-utils.js +127 -0
  55. package/dist/core/fill-utils.js.map +1 -0
  56. package/dist/core/metadata.d.ts +396 -0
  57. package/dist/core/metadata.d.ts.map +1 -0
  58. package/dist/core/metadata.js +126 -0
  59. package/dist/core/metadata.js.map +1 -0
  60. package/dist/core/recipe/cleaner.d.ts +13 -0
  61. package/dist/core/recipe/cleaner.d.ts.map +1 -0
  62. package/dist/core/recipe/cleaner.js +106 -0
  63. package/dist/core/recipe/cleaner.js.map +1 -0
  64. package/dist/core/recipe/downloader.d.ts +8 -0
  65. package/dist/core/recipe/downloader.d.ts.map +1 -0
  66. package/dist/core/recipe/downloader.js +58 -0
  67. package/dist/core/recipe/downloader.js.map +1 -0
  68. package/dist/core/recipe/index.d.ts +14 -0
  69. package/dist/core/recipe/index.d.ts.map +1 -0
  70. package/dist/core/recipe/index.js +91 -0
  71. package/dist/core/recipe/index.js.map +1 -0
  72. package/dist/core/recipe/ooxml-parts.d.ts +21 -0
  73. package/dist/core/recipe/ooxml-parts.d.ts.map +1 -0
  74. package/dist/core/recipe/ooxml-parts.js +33 -0
  75. package/dist/core/recipe/ooxml-parts.js.map +1 -0
  76. package/dist/core/recipe/patcher.d.ts +17 -0
  77. package/dist/core/recipe/patcher.d.ts.map +1 -0
  78. package/dist/core/recipe/patcher.js +240 -0
  79. package/dist/core/recipe/patcher.js.map +1 -0
  80. package/dist/core/recipe/types.d.ts +28 -0
  81. package/dist/core/recipe/types.d.ts.map +1 -0
  82. package/dist/core/recipe/types.js +2 -0
  83. package/dist/core/recipe/types.js.map +1 -0
  84. package/dist/core/recipe/verifier.d.ts +24 -0
  85. package/dist/core/recipe/verifier.d.ts.map +1 -0
  86. package/dist/core/recipe/verifier.js +143 -0
  87. package/dist/core/recipe/verifier.js.map +1 -0
  88. package/dist/core/validation/external.d.ts +16 -0
  89. package/dist/core/validation/external.d.ts.map +1 -0
  90. package/dist/core/validation/external.js +106 -0
  91. package/dist/core/validation/external.js.map +1 -0
  92. package/dist/core/validation/license.d.ts +15 -0
  93. package/dist/core/validation/license.d.ts.map +1 -0
  94. package/dist/core/validation/license.js +30 -0
  95. package/dist/core/validation/license.js.map +1 -0
  96. package/dist/core/validation/output.d.ts +12 -0
  97. package/dist/core/validation/output.d.ts.map +1 -0
  98. package/dist/core/validation/output.js +47 -0
  99. package/dist/core/validation/output.js.map +1 -0
  100. package/dist/core/validation/recipe.d.ts +19 -0
  101. package/dist/core/validation/recipe.d.ts.map +1 -0
  102. package/dist/core/validation/recipe.js +148 -0
  103. package/dist/core/validation/recipe.js.map +1 -0
  104. package/dist/core/validation/template.d.ts +11 -0
  105. package/dist/core/validation/template.d.ts.map +1 -0
  106. package/dist/core/validation/template.js +159 -0
  107. package/dist/core/validation/template.js.map +1 -0
  108. package/dist/index.d.ts +13 -0
  109. package/dist/index.d.ts.map +1 -0
  110. package/dist/index.js +19 -0
  111. package/dist/index.js.map +1 -0
  112. package/dist/utils/paths.d.ts +15 -0
  113. package/dist/utils/paths.d.ts.map +1 -0
  114. package/dist/utils/paths.js +43 -0
  115. package/dist/utils/paths.js.map +1 -0
  116. package/external/LICENSE +27 -0
  117. package/external/README.md +38 -0
  118. package/external/yc-safe-discount/README.md +16 -0
  119. package/external/yc-safe-discount/clean.json +4 -0
  120. package/external/yc-safe-discount/metadata.yaml +71 -0
  121. package/external/yc-safe-discount/replacements.json +13 -0
  122. package/external/yc-safe-discount/template.docx +0 -0
  123. package/external/yc-safe-mfn/README.md +16 -0
  124. package/external/yc-safe-mfn/clean.json +4 -0
  125. package/external/yc-safe-mfn/metadata.yaml +64 -0
  126. package/external/yc-safe-mfn/replacements.json +12 -0
  127. package/external/yc-safe-mfn/template.docx +0 -0
  128. package/external/yc-safe-pro-rata-side-letter/README.md +16 -0
  129. package/external/yc-safe-pro-rata-side-letter/clean.json +4 -0
  130. package/external/yc-safe-pro-rata-side-letter/metadata.yaml +49 -0
  131. package/external/yc-safe-pro-rata-side-letter/replacements.json +9 -0
  132. package/external/yc-safe-pro-rata-side-letter/template.docx +0 -0
  133. package/external/yc-safe-valuation-cap/README.md +16 -0
  134. package/external/yc-safe-valuation-cap/clean.json +4 -0
  135. package/external/yc-safe-valuation-cap/metadata.yaml +64 -0
  136. package/external/yc-safe-valuation-cap/replacements.json +12 -0
  137. package/external/yc-safe-valuation-cap/template.docx +0 -0
  138. package/package.json +77 -0
  139. package/recipes/nvca-certificate-of-incorporation/clean.json +8 -0
  140. package/recipes/nvca-certificate-of-incorporation/metadata.yaml +43 -0
  141. package/recipes/nvca-certificate-of-incorporation/replacements.json +9 -0
  142. package/recipes/nvca-certificate-of-incorporation/schema.json +11 -0
  143. package/recipes/nvca-indemnification-agreement/clean.json +7 -0
  144. package/recipes/nvca-indemnification-agreement/metadata.yaml +83 -0
  145. package/recipes/nvca-indemnification-agreement/replacements.json +17 -0
  146. package/recipes/nvca-indemnification-agreement/schema.json +19 -0
  147. package/recipes/nvca-investors-rights-agreement/clean.json +12 -0
  148. package/recipes/nvca-investors-rights-agreement/metadata.yaml +75 -0
  149. package/recipes/nvca-investors-rights-agreement/replacements.json +18 -0
  150. package/recipes/nvca-investors-rights-agreement/schema.json +18 -0
  151. package/recipes/nvca-management-rights-letter/clean.json +7 -0
  152. package/recipes/nvca-management-rights-letter/metadata.yaml +50 -0
  153. package/recipes/nvca-management-rights-letter/replacements.json +11 -0
  154. package/recipes/nvca-management-rights-letter/schema.json +13 -0
  155. package/recipes/nvca-rofr-co-sale-agreement/clean.json +7 -0
  156. package/recipes/nvca-rofr-co-sale-agreement/metadata.yaml +80 -0
  157. package/recipes/nvca-rofr-co-sale-agreement/replacements.json +17 -0
  158. package/recipes/nvca-rofr-co-sale-agreement/schema.json +19 -0
  159. package/recipes/nvca-stock-purchase-agreement/clean.json +10 -0
  160. package/recipes/nvca-stock-purchase-agreement/metadata.yaml +74 -0
  161. package/recipes/nvca-stock-purchase-agreement/replacements.json +20 -0
  162. package/recipes/nvca-stock-purchase-agreement/schema.json +19 -0
  163. package/recipes/nvca-voting-agreement/README.md +53 -0
  164. package/recipes/nvca-voting-agreement/clean.json +7 -0
  165. package/recipes/nvca-voting-agreement/metadata.yaml +70 -0
  166. package/recipes/nvca-voting-agreement/replacements.json +18 -0
  167. package/recipes/nvca-voting-agreement/schema.json +28 -0
  168. package/skills/open-agreements/SKILL.md +166 -0
  169. package/templates/bonterms-mutual-nda/README.md +27 -0
  170. package/templates/bonterms-mutual-nda/metadata.yaml +58 -0
  171. package/templates/bonterms-mutual-nda/template.docx +0 -0
  172. package/templates/bonterms-professional-services-agreement/README.md +24 -0
  173. package/templates/bonterms-professional-services-agreement/metadata.yaml +40 -0
  174. package/templates/bonterms-professional-services-agreement/template.docx +0 -0
  175. package/templates/common-paper-ai-addendum/README.md +23 -0
  176. package/templates/common-paper-ai-addendum/metadata.yaml +33 -0
  177. package/templates/common-paper-ai-addendum/template.docx +0 -0
  178. package/templates/common-paper-ai-addendum-in-app/README.md +21 -0
  179. package/templates/common-paper-ai-addendum-in-app/metadata.yaml +23 -0
  180. package/templates/common-paper-ai-addendum-in-app/template.docx +0 -0
  181. package/templates/common-paper-amendment/README.md +27 -0
  182. package/templates/common-paper-amendment/metadata.yaml +53 -0
  183. package/templates/common-paper-amendment/template.docx +0 -0
  184. package/templates/common-paper-business-associate-agreement/README.md +29 -0
  185. package/templates/common-paper-business-associate-agreement/metadata.yaml +63 -0
  186. package/templates/common-paper-business-associate-agreement/template.docx +0 -0
  187. package/templates/common-paper-cloud-service-agreement/README.md +32 -0
  188. package/templates/common-paper-cloud-service-agreement/metadata.yaml +488 -0
  189. package/templates/common-paper-cloud-service-agreement/template.docx +0 -0
  190. package/templates/common-paper-csa-click-through/README.md +33 -0
  191. package/templates/common-paper-csa-click-through/metadata.yaml +83 -0
  192. package/templates/common-paper-csa-click-through/template.docx +0 -0
  193. package/templates/common-paper-csa-with-ai/README.md +49 -0
  194. package/templates/common-paper-csa-with-ai/metadata.yaml +166 -0
  195. package/templates/common-paper-csa-with-ai/template.docx +0 -0
  196. package/templates/common-paper-csa-with-sla/README.md +53 -0
  197. package/templates/common-paper-csa-with-sla/metadata.yaml +185 -0
  198. package/templates/common-paper-csa-with-sla/template.docx +0 -0
  199. package/templates/common-paper-csa-without-sla/README.md +47 -0
  200. package/templates/common-paper-csa-without-sla/metadata.yaml +155 -0
  201. package/templates/common-paper-csa-without-sla/template.docx +0 -0
  202. package/templates/common-paper-data-processing-agreement/README.md +46 -0
  203. package/templates/common-paper-data-processing-agreement/metadata.yaml +149 -0
  204. package/templates/common-paper-data-processing-agreement/template.docx +0 -0
  205. package/templates/common-paper-design-partner-agreement/README.md +29 -0
  206. package/templates/common-paper-design-partner-agreement/metadata.yaml +65 -0
  207. package/templates/common-paper-design-partner-agreement/template.docx +0 -0
  208. package/templates/common-paper-independent-contractor-agreement/README.md +27 -0
  209. package/templates/common-paper-independent-contractor-agreement/metadata.yaml +55 -0
  210. package/templates/common-paper-independent-contractor-agreement/template.docx +0 -0
  211. package/templates/common-paper-letter-of-intent/README.md +25 -0
  212. package/templates/common-paper-letter-of-intent/metadata.yaml +43 -0
  213. package/templates/common-paper-letter-of-intent/template.docx +0 -0
  214. package/templates/common-paper-mutual-nda/README.md +29 -0
  215. package/templates/common-paper-mutual-nda/metadata.yaml +59 -0
  216. package/templates/common-paper-mutual-nda/template.docx +0 -0
  217. package/templates/common-paper-one-way-nda/README.md +27 -0
  218. package/templates/common-paper-one-way-nda/metadata.yaml +60 -0
  219. package/templates/common-paper-one-way-nda/template.docx +0 -0
  220. package/templates/common-paper-order-form/README.md +36 -0
  221. package/templates/common-paper-order-form/metadata.yaml +98 -0
  222. package/templates/common-paper-order-form/template.docx +0 -0
  223. package/templates/common-paper-order-form-with-sla/README.md +42 -0
  224. package/templates/common-paper-order-form-with-sla/metadata.yaml +129 -0
  225. package/templates/common-paper-order-form-with-sla/template.docx +0 -0
  226. package/templates/common-paper-partnership-agreement/README.md +34 -0
  227. package/templates/common-paper-partnership-agreement/metadata.yaml +90 -0
  228. package/templates/common-paper-partnership-agreement/template.docx +0 -0
  229. package/templates/common-paper-pilot-agreement/README.md +34 -0
  230. package/templates/common-paper-pilot-agreement/metadata.yaml +90 -0
  231. package/templates/common-paper-pilot-agreement/template.docx +0 -0
  232. package/templates/common-paper-professional-services-agreement/README.md +44 -0
  233. package/templates/common-paper-professional-services-agreement/metadata.yaml +141 -0
  234. package/templates/common-paper-professional-services-agreement/template.docx +0 -0
  235. package/templates/common-paper-software-license-agreement/README.md +18 -0
  236. package/templates/common-paper-software-license-agreement/metadata.yaml +13 -0
  237. package/templates/common-paper-software-license-agreement/template.docx +0 -0
  238. package/templates/common-paper-statement-of-work/README.md +32 -0
  239. package/templates/common-paper-statement-of-work/metadata.yaml +78 -0
  240. package/templates/common-paper-statement-of-work/template.docx +0 -0
  241. package/templates/common-paper-term-sheet/README.md +22 -0
  242. package/templates/common-paper-term-sheet/metadata.yaml +28 -0
  243. package/templates/common-paper-term-sheet/template.docx +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fill-pipeline.js","sourceRoot":"","sources":["../../src/core/fill-pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Shared utilities for the fill stage of all pipelines (template, recipe, external).
3
+ */
4
+ import type { VerifyResult } from './recipe/types.js';
5
+ /**
6
+ * Visible placeholder rendered for fields the user hasn't filled yet.
7
+ * Makes it obvious what still needs attention in the output document.
8
+ */
9
+ export declare const BLANK_PLACEHOLDER = "_______";
10
+ /**
11
+ * Scan a DOCX template buffer for fields that have a literal `$` immediately
12
+ * before the `{field_name}` tag. Returns the set of field names.
13
+ *
14
+ * Works by parsing OOXML text parts and concatenating `<w:t>` elements per
15
+ * paragraph, then matching `$` + `{field_name}` patterns. Handles cross-run
16
+ * splits because text is concatenated at the paragraph level.
17
+ */
18
+ export declare function detectCurrencyFields(docxBuffer: Buffer): Set<string>;
19
+ /**
20
+ * Strip leading `$` from user values where the DOCX template already has
21
+ * a literal `$` before the `{field_name}` tag. Prevents double-dollar
22
+ * output like `$$1,000,000`.
23
+ *
24
+ * This is the DOCX-aware version that works for all pipelines — it scans
25
+ * the template buffer directly instead of requiring a replacements map.
26
+ */
27
+ export declare function sanitizeCurrencyValuesFromDocx(values: Record<string, string | boolean>, docxBuffer: Buffer): Record<string, string | boolean>;
28
+ /**
29
+ * Verify a filled template DOCX output.
30
+ * Runs a subset of checks that are safe for templates:
31
+ * - No double dollar signs (catches currency sanitization failures)
32
+ * - No unrendered {template_tags} (catches fill failures)
33
+ *
34
+ * Does NOT check: leftover brackets (templates don't use them),
35
+ * context values present (templates use {IF} conditionals that hide values),
36
+ * drafting notes (stripped by fillDocx), footnotes (may be legitimate).
37
+ */
38
+ export declare function verifyTemplateFill(outputPath: string): VerifyResult;
39
+ //# sourceMappingURL=fill-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fill-utils.d.ts","sourceRoot":"","sources":["../../src/core/fill-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CA8BpE;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EACxC,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAYlC;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAmDnE"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Shared utilities for the fill stage of all pipelines (template, recipe, external).
3
+ */
4
+ import AdmZip from 'adm-zip';
5
+ import { DOMParser } from '@xmldom/xmldom';
6
+ import { enumerateTextParts, getGeneralTextPartNames } from './recipe/ooxml-parts.js';
7
+ const W_NS = 'http://schemas.openxmlformats.org/wordprocessingml/2006/main';
8
+ /**
9
+ * Visible placeholder rendered for fields the user hasn't filled yet.
10
+ * Makes it obvious what still needs attention in the output document.
11
+ */
12
+ export const BLANK_PLACEHOLDER = '_______';
13
+ /**
14
+ * Scan a DOCX template buffer for fields that have a literal `$` immediately
15
+ * before the `{field_name}` tag. Returns the set of field names.
16
+ *
17
+ * Works by parsing OOXML text parts and concatenating `<w:t>` elements per
18
+ * paragraph, then matching `$` + `{field_name}` patterns. Handles cross-run
19
+ * splits because text is concatenated at the paragraph level.
20
+ */
21
+ export function detectCurrencyFields(docxBuffer) {
22
+ const zip = new AdmZip(docxBuffer);
23
+ const parser = new DOMParser();
24
+ const parts = enumerateTextParts(zip);
25
+ const partNames = getGeneralTextPartNames(parts);
26
+ const currencyFields = new Set();
27
+ for (const partName of partNames) {
28
+ const entry = zip.getEntry(partName);
29
+ if (!entry)
30
+ continue;
31
+ const xml = entry.getData().toString('utf-8');
32
+ const doc = parser.parseFromString(xml, 'text/xml');
33
+ const paras = doc.getElementsByTagNameNS(W_NS, 'p');
34
+ for (let i = 0; i < paras.length; i++) {
35
+ const tElements = paras[i].getElementsByTagNameNS(W_NS, 't');
36
+ let fullText = '';
37
+ for (let j = 0; j < tElements.length; j++) {
38
+ fullText += tElements[j].textContent ?? '';
39
+ }
40
+ const matches = fullText.matchAll(/\$\{(\w+)\}/g);
41
+ for (const m of matches) {
42
+ currencyFields.add(m[1]);
43
+ }
44
+ }
45
+ }
46
+ return currencyFields;
47
+ }
48
+ /**
49
+ * Strip leading `$` from user values where the DOCX template already has
50
+ * a literal `$` before the `{field_name}` tag. Prevents double-dollar
51
+ * output like `$$1,000,000`.
52
+ *
53
+ * This is the DOCX-aware version that works for all pipelines — it scans
54
+ * the template buffer directly instead of requiring a replacements map.
55
+ */
56
+ export function sanitizeCurrencyValuesFromDocx(values, docxBuffer) {
57
+ const currencyFields = detectCurrencyFields(docxBuffer);
58
+ if (currencyFields.size === 0)
59
+ return values;
60
+ const sanitized = { ...values };
61
+ for (const field of currencyFields) {
62
+ const v = sanitized[field];
63
+ if (typeof v === 'string' && v.startsWith('$')) {
64
+ sanitized[field] = v.slice(1);
65
+ }
66
+ }
67
+ return sanitized;
68
+ }
69
+ /**
70
+ * Verify a filled template DOCX output.
71
+ * Runs a subset of checks that are safe for templates:
72
+ * - No double dollar signs (catches currency sanitization failures)
73
+ * - No unrendered {template_tags} (catches fill failures)
74
+ *
75
+ * Does NOT check: leftover brackets (templates don't use them),
76
+ * context values present (templates use {IF} conditionals that hide values),
77
+ * drafting notes (stripped by fillDocx), footnotes (may be legitimate).
78
+ */
79
+ export function verifyTemplateFill(outputPath) {
80
+ const zip = new AdmZip(outputPath);
81
+ const parser = new DOMParser();
82
+ const parts = enumerateTextParts(zip);
83
+ const partNames = getGeneralTextPartNames(parts);
84
+ const allParagraphs = [];
85
+ for (const partName of partNames) {
86
+ const entry = zip.getEntry(partName);
87
+ if (!entry)
88
+ continue;
89
+ const xml = entry.getData().toString('utf-8');
90
+ const doc = parser.parseFromString(xml, 'text/xml');
91
+ const paras = doc.getElementsByTagNameNS(W_NS, 'p');
92
+ for (let i = 0; i < paras.length; i++) {
93
+ const tElements = paras[i].getElementsByTagNameNS(W_NS, 't');
94
+ const textParts = [];
95
+ for (let j = 0; j < tElements.length; j++) {
96
+ textParts.push(tElements[j].textContent ?? '');
97
+ }
98
+ if (textParts.length > 0) {
99
+ allParagraphs.push(textParts.join(''));
100
+ }
101
+ }
102
+ }
103
+ const rawFullText = allParagraphs.join('\n');
104
+ const checks = [];
105
+ // Check 1: No double dollar signs ($$ or $ $)
106
+ const doubleDollarPattern = /\$[\s\u00A0\t]*\$/;
107
+ const doubleDollarLines = rawFullText.split('\n').filter((line) => doubleDollarPattern.test(line));
108
+ checks.push({
109
+ name: 'No double dollar signs',
110
+ passed: doubleDollarLines.length === 0,
111
+ details: doubleDollarLines.length > 0
112
+ ? `Found ${doubleDollarLines.length} occurrence(s): "${doubleDollarLines[0].trim().slice(0, 80)}"`
113
+ : undefined,
114
+ });
115
+ // Check 2: No unrendered {template_tags}
116
+ const unrenderedTags = rawFullText.match(/\{[a-z_][a-z0-9_]*\}/gi) ?? [];
117
+ checks.push({
118
+ name: 'No unrendered template tags',
119
+ passed: unrenderedTags.length === 0,
120
+ details: unrenderedTags.length > 0 ? `Found: ${unrenderedTags.join(', ')}` : undefined,
121
+ });
122
+ return {
123
+ passed: checks.every((c) => c.passed),
124
+ checks,
125
+ };
126
+ }
127
+ //# sourceMappingURL=fill-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fill-utils.js","sourceRoot":"","sources":["../../src/core/fill-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,396 @@
1
+ import { z } from 'zod';
2
+ export declare const LicenseEnum: z.ZodEnum<["CC-BY-4.0", "CC0-1.0", "CC-BY-ND-4.0"]>;
3
+ export type License = z.infer<typeof LicenseEnum>;
4
+ export declare const FieldDefinitionSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
5
+ name: z.ZodString;
6
+ type: z.ZodEnum<["string", "date", "number", "boolean", "enum"]>;
7
+ description: z.ZodString;
8
+ required: z.ZodBoolean;
9
+ default: z.ZodOptional<z.ZodString>;
10
+ options: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
11
+ section: z.ZodOptional<z.ZodString>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ type: "string" | "number" | "boolean" | "date" | "enum";
14
+ name: string;
15
+ description: string;
16
+ required: boolean;
17
+ options?: string[] | undefined;
18
+ default?: string | undefined;
19
+ section?: string | undefined;
20
+ }, {
21
+ type: "string" | "number" | "boolean" | "date" | "enum";
22
+ name: string;
23
+ description: string;
24
+ required: boolean;
25
+ options?: string[] | undefined;
26
+ default?: string | undefined;
27
+ section?: string | undefined;
28
+ }>, {
29
+ type: "string" | "number" | "boolean" | "date" | "enum";
30
+ name: string;
31
+ description: string;
32
+ required: boolean;
33
+ options?: string[] | undefined;
34
+ default?: string | undefined;
35
+ section?: string | undefined;
36
+ }, {
37
+ type: "string" | "number" | "boolean" | "date" | "enum";
38
+ name: string;
39
+ description: string;
40
+ required: boolean;
41
+ options?: string[] | undefined;
42
+ default?: string | undefined;
43
+ section?: string | undefined;
44
+ }>, {
45
+ type: "string" | "number" | "boolean" | "date" | "enum";
46
+ name: string;
47
+ description: string;
48
+ required: boolean;
49
+ options?: string[] | undefined;
50
+ default?: string | undefined;
51
+ section?: string | undefined;
52
+ }, {
53
+ type: "string" | "number" | "boolean" | "date" | "enum";
54
+ name: string;
55
+ description: string;
56
+ required: boolean;
57
+ options?: string[] | undefined;
58
+ default?: string | undefined;
59
+ section?: string | undefined;
60
+ }>;
61
+ export type FieldDefinition = z.infer<typeof FieldDefinitionSchema>;
62
+ export declare const TemplateMetadataSchema: z.ZodObject<{
63
+ name: z.ZodString;
64
+ description: z.ZodOptional<z.ZodString>;
65
+ source_url: z.ZodString;
66
+ version: z.ZodString;
67
+ license: z.ZodEnum<["CC-BY-4.0", "CC0-1.0", "CC-BY-ND-4.0"]>;
68
+ allow_derivatives: z.ZodBoolean;
69
+ attribution_text: z.ZodString;
70
+ fields: z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodObject<{
71
+ name: z.ZodString;
72
+ type: z.ZodEnum<["string", "date", "number", "boolean", "enum"]>;
73
+ description: z.ZodString;
74
+ required: z.ZodBoolean;
75
+ default: z.ZodOptional<z.ZodString>;
76
+ options: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
77
+ section: z.ZodOptional<z.ZodString>;
78
+ }, "strip", z.ZodTypeAny, {
79
+ type: "string" | "number" | "boolean" | "date" | "enum";
80
+ name: string;
81
+ description: string;
82
+ required: boolean;
83
+ options?: string[] | undefined;
84
+ default?: string | undefined;
85
+ section?: string | undefined;
86
+ }, {
87
+ type: "string" | "number" | "boolean" | "date" | "enum";
88
+ name: string;
89
+ description: string;
90
+ required: boolean;
91
+ options?: string[] | undefined;
92
+ default?: string | undefined;
93
+ section?: string | undefined;
94
+ }>, {
95
+ type: "string" | "number" | "boolean" | "date" | "enum";
96
+ name: string;
97
+ description: string;
98
+ required: boolean;
99
+ options?: string[] | undefined;
100
+ default?: string | undefined;
101
+ section?: string | undefined;
102
+ }, {
103
+ type: "string" | "number" | "boolean" | "date" | "enum";
104
+ name: string;
105
+ description: string;
106
+ required: boolean;
107
+ options?: string[] | undefined;
108
+ default?: string | undefined;
109
+ section?: string | undefined;
110
+ }>, {
111
+ type: "string" | "number" | "boolean" | "date" | "enum";
112
+ name: string;
113
+ description: string;
114
+ required: boolean;
115
+ options?: string[] | undefined;
116
+ default?: string | undefined;
117
+ section?: string | undefined;
118
+ }, {
119
+ type: "string" | "number" | "boolean" | "date" | "enum";
120
+ name: string;
121
+ description: string;
122
+ required: boolean;
123
+ options?: string[] | undefined;
124
+ default?: string | undefined;
125
+ section?: string | undefined;
126
+ }>, "many">;
127
+ }, "strip", z.ZodTypeAny, {
128
+ name: string;
129
+ source_url: string;
130
+ version: string;
131
+ license: "CC-BY-4.0" | "CC0-1.0" | "CC-BY-ND-4.0";
132
+ allow_derivatives: boolean;
133
+ attribution_text: string;
134
+ fields: {
135
+ type: "string" | "number" | "boolean" | "date" | "enum";
136
+ name: string;
137
+ description: string;
138
+ required: boolean;
139
+ options?: string[] | undefined;
140
+ default?: string | undefined;
141
+ section?: string | undefined;
142
+ }[];
143
+ description?: string | undefined;
144
+ }, {
145
+ name: string;
146
+ source_url: string;
147
+ version: string;
148
+ license: "CC-BY-4.0" | "CC0-1.0" | "CC-BY-ND-4.0";
149
+ allow_derivatives: boolean;
150
+ attribution_text: string;
151
+ fields: {
152
+ type: "string" | "number" | "boolean" | "date" | "enum";
153
+ name: string;
154
+ description: string;
155
+ required: boolean;
156
+ options?: string[] | undefined;
157
+ default?: string | undefined;
158
+ section?: string | undefined;
159
+ }[];
160
+ description?: string | undefined;
161
+ }>;
162
+ export type TemplateMetadata = z.infer<typeof TemplateMetadataSchema>;
163
+ export declare const ExternalMetadataSchema: z.ZodObject<{
164
+ name: z.ZodString;
165
+ description: z.ZodOptional<z.ZodString>;
166
+ source_url: z.ZodString;
167
+ version: z.ZodString;
168
+ license: z.ZodEnum<["CC-BY-4.0", "CC0-1.0", "CC-BY-ND-4.0"]>;
169
+ allow_derivatives: z.ZodBoolean;
170
+ attribution_text: z.ZodString;
171
+ fields: z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodObject<{
172
+ name: z.ZodString;
173
+ type: z.ZodEnum<["string", "date", "number", "boolean", "enum"]>;
174
+ description: z.ZodString;
175
+ required: z.ZodBoolean;
176
+ default: z.ZodOptional<z.ZodString>;
177
+ options: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
178
+ section: z.ZodOptional<z.ZodString>;
179
+ }, "strip", z.ZodTypeAny, {
180
+ type: "string" | "number" | "boolean" | "date" | "enum";
181
+ name: string;
182
+ description: string;
183
+ required: boolean;
184
+ options?: string[] | undefined;
185
+ default?: string | undefined;
186
+ section?: string | undefined;
187
+ }, {
188
+ type: "string" | "number" | "boolean" | "date" | "enum";
189
+ name: string;
190
+ description: string;
191
+ required: boolean;
192
+ options?: string[] | undefined;
193
+ default?: string | undefined;
194
+ section?: string | undefined;
195
+ }>, {
196
+ type: "string" | "number" | "boolean" | "date" | "enum";
197
+ name: string;
198
+ description: string;
199
+ required: boolean;
200
+ options?: string[] | undefined;
201
+ default?: string | undefined;
202
+ section?: string | undefined;
203
+ }, {
204
+ type: "string" | "number" | "boolean" | "date" | "enum";
205
+ name: string;
206
+ description: string;
207
+ required: boolean;
208
+ options?: string[] | undefined;
209
+ default?: string | undefined;
210
+ section?: string | undefined;
211
+ }>, {
212
+ type: "string" | "number" | "boolean" | "date" | "enum";
213
+ name: string;
214
+ description: string;
215
+ required: boolean;
216
+ options?: string[] | undefined;
217
+ default?: string | undefined;
218
+ section?: string | undefined;
219
+ }, {
220
+ type: "string" | "number" | "boolean" | "date" | "enum";
221
+ name: string;
222
+ description: string;
223
+ required: boolean;
224
+ options?: string[] | undefined;
225
+ default?: string | undefined;
226
+ section?: string | undefined;
227
+ }>, "many">;
228
+ } & {
229
+ source_sha256: z.ZodString;
230
+ }, "strip", z.ZodTypeAny, {
231
+ name: string;
232
+ source_url: string;
233
+ version: string;
234
+ license: "CC-BY-4.0" | "CC0-1.0" | "CC-BY-ND-4.0";
235
+ allow_derivatives: boolean;
236
+ attribution_text: string;
237
+ fields: {
238
+ type: "string" | "number" | "boolean" | "date" | "enum";
239
+ name: string;
240
+ description: string;
241
+ required: boolean;
242
+ options?: string[] | undefined;
243
+ default?: string | undefined;
244
+ section?: string | undefined;
245
+ }[];
246
+ source_sha256: string;
247
+ description?: string | undefined;
248
+ }, {
249
+ name: string;
250
+ source_url: string;
251
+ version: string;
252
+ license: "CC-BY-4.0" | "CC0-1.0" | "CC-BY-ND-4.0";
253
+ allow_derivatives: boolean;
254
+ attribution_text: string;
255
+ fields: {
256
+ type: "string" | "number" | "boolean" | "date" | "enum";
257
+ name: string;
258
+ description: string;
259
+ required: boolean;
260
+ options?: string[] | undefined;
261
+ default?: string | undefined;
262
+ section?: string | undefined;
263
+ }[];
264
+ source_sha256: string;
265
+ description?: string | undefined;
266
+ }>;
267
+ export type ExternalMetadata = z.infer<typeof ExternalMetadataSchema>;
268
+ export declare const CleanConfigSchema: z.ZodObject<{
269
+ removeFootnotes: z.ZodDefault<z.ZodBoolean>;
270
+ removeParagraphPatterns: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
271
+ }, "strip", z.ZodTypeAny, {
272
+ removeFootnotes: boolean;
273
+ removeParagraphPatterns: string[];
274
+ }, {
275
+ removeFootnotes?: boolean | undefined;
276
+ removeParagraphPatterns?: string[] | undefined;
277
+ }>;
278
+ export type CleanConfig = z.infer<typeof CleanConfigSchema>;
279
+ export declare const RecipeMetadataSchema: z.ZodObject<{
280
+ name: z.ZodString;
281
+ description: z.ZodOptional<z.ZodString>;
282
+ source_url: z.ZodString;
283
+ source_version: z.ZodString;
284
+ license_note: z.ZodString;
285
+ optional: z.ZodDefault<z.ZodBoolean>;
286
+ source_sha256: z.ZodOptional<z.ZodString>;
287
+ fields: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodObject<{
288
+ name: z.ZodString;
289
+ type: z.ZodEnum<["string", "date", "number", "boolean", "enum"]>;
290
+ description: z.ZodString;
291
+ required: z.ZodBoolean;
292
+ default: z.ZodOptional<z.ZodString>;
293
+ options: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
294
+ section: z.ZodOptional<z.ZodString>;
295
+ }, "strip", z.ZodTypeAny, {
296
+ type: "string" | "number" | "boolean" | "date" | "enum";
297
+ name: string;
298
+ description: string;
299
+ required: boolean;
300
+ options?: string[] | undefined;
301
+ default?: string | undefined;
302
+ section?: string | undefined;
303
+ }, {
304
+ type: "string" | "number" | "boolean" | "date" | "enum";
305
+ name: string;
306
+ description: string;
307
+ required: boolean;
308
+ options?: string[] | undefined;
309
+ default?: string | undefined;
310
+ section?: string | undefined;
311
+ }>, {
312
+ type: "string" | "number" | "boolean" | "date" | "enum";
313
+ name: string;
314
+ description: string;
315
+ required: boolean;
316
+ options?: string[] | undefined;
317
+ default?: string | undefined;
318
+ section?: string | undefined;
319
+ }, {
320
+ type: "string" | "number" | "boolean" | "date" | "enum";
321
+ name: string;
322
+ description: string;
323
+ required: boolean;
324
+ options?: string[] | undefined;
325
+ default?: string | undefined;
326
+ section?: string | undefined;
327
+ }>, {
328
+ type: "string" | "number" | "boolean" | "date" | "enum";
329
+ name: string;
330
+ description: string;
331
+ required: boolean;
332
+ options?: string[] | undefined;
333
+ default?: string | undefined;
334
+ section?: string | undefined;
335
+ }, {
336
+ type: "string" | "number" | "boolean" | "date" | "enum";
337
+ name: string;
338
+ description: string;
339
+ required: boolean;
340
+ options?: string[] | undefined;
341
+ default?: string | undefined;
342
+ section?: string | undefined;
343
+ }>, "many">>;
344
+ }, "strip", z.ZodTypeAny, {
345
+ name: string;
346
+ source_url: string;
347
+ fields: {
348
+ type: "string" | "number" | "boolean" | "date" | "enum";
349
+ name: string;
350
+ description: string;
351
+ required: boolean;
352
+ options?: string[] | undefined;
353
+ default?: string | undefined;
354
+ section?: string | undefined;
355
+ }[];
356
+ source_version: string;
357
+ license_note: string;
358
+ optional: boolean;
359
+ description?: string | undefined;
360
+ source_sha256?: string | undefined;
361
+ }, {
362
+ name: string;
363
+ source_url: string;
364
+ source_version: string;
365
+ license_note: string;
366
+ description?: string | undefined;
367
+ fields?: {
368
+ type: "string" | "number" | "boolean" | "date" | "enum";
369
+ name: string;
370
+ description: string;
371
+ required: boolean;
372
+ options?: string[] | undefined;
373
+ default?: string | undefined;
374
+ section?: string | undefined;
375
+ }[] | undefined;
376
+ source_sha256?: string | undefined;
377
+ optional?: boolean | undefined;
378
+ }>;
379
+ export type RecipeMetadata = z.infer<typeof RecipeMetadataSchema>;
380
+ export declare function loadMetadata(templateDir: string): TemplateMetadata;
381
+ export declare function validateMetadata(templateDir: string): {
382
+ valid: boolean;
383
+ errors: string[];
384
+ };
385
+ export declare function loadExternalMetadata(externalDir: string): ExternalMetadata;
386
+ export declare function validateExternalMetadata(externalDir: string): {
387
+ valid: boolean;
388
+ errors: string[];
389
+ };
390
+ export declare function loadRecipeMetadata(recipeDir: string): RecipeMetadata;
391
+ export declare function loadCleanConfig(recipeDir: string): CleanConfig;
392
+ export declare function validateRecipeMetadata(recipeDir: string): {
393
+ valid: boolean;
394
+ errors: string[];
395
+ };
396
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/core/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,WAAW,qDAAmD,CAAC;AAC5E,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAElD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBjC,CAAC;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAItE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAItE,eAAO,MAAM,iBAAiB;;;;;;;;;EAG5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIlE,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,CAKlE;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAe1F;AAID,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,CAK1E;AAED,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAelG;AAID,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAKpE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAO9D;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAe9F"}