pretext-pdf 1.1.0 → 1.6.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 (342) hide show
  1. package/CHANGELOG.md +687 -0
  2. package/README.md +83 -8
  3. package/dist/allowed-props.d.ts +76 -0
  4. package/dist/allowed-props.d.ts.map +1 -1
  5. package/dist/allowed-props.js.map +1 -1
  6. package/dist/assets/generators/barcode.d.ts +9 -0
  7. package/dist/assets/generators/barcode.d.ts.map +1 -0
  8. package/dist/assets/generators/barcode.js +24 -0
  9. package/dist/assets/generators/barcode.js.map +1 -0
  10. package/dist/assets/generators/chart.d.ts +13 -0
  11. package/dist/assets/generators/chart.d.ts.map +1 -0
  12. package/dist/assets/generators/chart.js +32 -0
  13. package/dist/assets/generators/chart.js.map +1 -0
  14. package/dist/assets/generators/qr.d.ts +9 -0
  15. package/dist/assets/generators/qr.d.ts.map +1 -0
  16. package/dist/assets/generators/qr.js +25 -0
  17. package/dist/assets/generators/qr.js.map +1 -0
  18. package/dist/assets/index.d.ts +19 -0
  19. package/dist/assets/index.d.ts.map +1 -0
  20. package/dist/assets/index.js +19 -0
  21. package/dist/assets/index.js.map +1 -0
  22. package/dist/assets/loaders/images.d.ts +20 -0
  23. package/dist/assets/loaders/images.d.ts.map +1 -0
  24. package/dist/assets/loaders/images.js +69 -0
  25. package/dist/assets/loaders/images.js.map +1 -0
  26. package/dist/assets/loaders/orchestrator.d.ts +24 -0
  27. package/dist/assets/loaders/orchestrator.d.ts.map +1 -0
  28. package/dist/assets/loaders/orchestrator.js +109 -0
  29. package/dist/assets/loaders/orchestrator.js.map +1 -0
  30. package/dist/assets/loaders/vectors.d.ts +25 -0
  31. package/dist/assets/loaders/vectors.d.ts.map +1 -0
  32. package/dist/assets/loaders/vectors.js +118 -0
  33. package/dist/assets/loaders/vectors.js.map +1 -0
  34. package/dist/assets/loaders/watermark.d.ts +12 -0
  35. package/dist/assets/loaders/watermark.d.ts.map +1 -0
  36. package/dist/assets/loaders/watermark.js +40 -0
  37. package/dist/assets/loaders/watermark.js.map +1 -0
  38. package/dist/assets/security/fetch.d.ts +14 -0
  39. package/dist/assets/security/fetch.d.ts.map +1 -0
  40. package/dist/assets/security/fetch.js +112 -0
  41. package/dist/assets/security/fetch.js.map +1 -0
  42. package/dist/assets/security/ipv4-normalize.d.ts +28 -0
  43. package/dist/assets/security/ipv4-normalize.d.ts.map +1 -0
  44. package/dist/assets/security/ipv4-normalize.js +116 -0
  45. package/dist/assets/security/ipv4-normalize.js.map +1 -0
  46. package/dist/assets/security/path-allowlist.d.ts +12 -0
  47. package/dist/assets/security/path-allowlist.d.ts.map +1 -0
  48. package/dist/assets/security/path-allowlist.js +26 -0
  49. package/dist/assets/security/path-allowlist.js.map +1 -0
  50. package/dist/assets/security/url-validation.d.ts +22 -0
  51. package/dist/assets/security/url-validation.d.ts.map +1 -0
  52. package/dist/assets/security/url-validation.js +164 -0
  53. package/dist/assets/security/url-validation.js.map +1 -0
  54. package/dist/assets/svg/dimensions.d.ts +19 -0
  55. package/dist/assets/svg/dimensions.d.ts.map +1 -0
  56. package/dist/assets/svg/dimensions.js +43 -0
  57. package/dist/assets/svg/dimensions.js.map +1 -0
  58. package/dist/assets/svg/rasterize.d.ts +6 -0
  59. package/dist/assets/svg/rasterize.d.ts.map +1 -0
  60. package/dist/assets/svg/rasterize.js +38 -0
  61. package/dist/assets/svg/rasterize.js.map +1 -0
  62. package/dist/assets/svg/resolve-content.d.ts +16 -0
  63. package/dist/assets/svg/resolve-content.d.ts.map +1 -0
  64. package/dist/assets/svg/resolve-content.js +38 -0
  65. package/dist/assets/svg/resolve-content.js.map +1 -0
  66. package/dist/assets/svg/sanitize.d.ts +22 -0
  67. package/dist/assets/svg/sanitize.d.ts.map +1 -0
  68. package/dist/assets/svg/sanitize.js +46 -0
  69. package/dist/assets/svg/sanitize.js.map +1 -0
  70. package/dist/assets/util/redact-path.d.ts +14 -0
  71. package/dist/assets/util/redact-path.d.ts.map +1 -0
  72. package/dist/assets/util/redact-path.js +16 -0
  73. package/dist/assets/util/redact-path.js.map +1 -0
  74. package/dist/assets.d.ts +10 -27
  75. package/dist/assets.d.ts.map +1 -1
  76. package/dist/assets.js +10 -549
  77. package/dist/assets.js.map +1 -1
  78. package/dist/builder.d.ts.map +1 -1
  79. package/dist/builder.js +2 -1
  80. package/dist/builder.js.map +1 -1
  81. package/dist/cli.js +11 -1
  82. package/dist/cli.js.map +1 -1
  83. package/dist/compat.d.ts +63 -1
  84. package/dist/compat.d.ts.map +1 -1
  85. package/dist/compat.js +42 -5
  86. package/dist/compat.js.map +1 -1
  87. package/dist/errors.d.ts +2 -2
  88. package/dist/errors.d.ts.map +1 -1
  89. package/dist/errors.js +2 -2
  90. package/dist/errors.js.map +1 -1
  91. package/dist/fonts.d.ts.map +1 -1
  92. package/dist/fonts.js +8 -10
  93. package/dist/fonts.js.map +1 -1
  94. package/dist/index.d.ts +1 -1
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +7 -5
  97. package/dist/index.js.map +1 -1
  98. package/dist/layout-state.d.ts +1 -1
  99. package/dist/layout-state.d.ts.map +1 -1
  100. package/dist/layout-state.js +5 -0
  101. package/dist/layout-state.js.map +1 -1
  102. package/dist/measure-blocks/float-group.d.ts +9 -0
  103. package/dist/measure-blocks/float-group.d.ts.map +1 -0
  104. package/dist/measure-blocks/float-group.js +103 -0
  105. package/dist/measure-blocks/float-group.js.map +1 -0
  106. package/dist/measure-blocks/helpers.d.ts +44 -0
  107. package/dist/measure-blocks/helpers.d.ts.map +1 -0
  108. package/dist/measure-blocks/helpers.js +43 -0
  109. package/dist/measure-blocks/helpers.js.map +1 -0
  110. package/dist/measure-blocks/highlight.d.ts +26 -0
  111. package/dist/measure-blocks/highlight.d.ts.map +1 -0
  112. package/dist/measure-blocks/highlight.js +169 -0
  113. package/dist/measure-blocks/highlight.js.map +1 -0
  114. package/dist/measure-blocks/image.d.ts +9 -0
  115. package/dist/measure-blocks/image.d.ts.map +1 -0
  116. package/dist/measure-blocks/image.js +136 -0
  117. package/dist/measure-blocks/image.js.map +1 -0
  118. package/dist/measure-blocks/index.d.ts +24 -0
  119. package/dist/measure-blocks/index.d.ts.map +1 -0
  120. package/dist/measure-blocks/index.js +179 -0
  121. package/dist/measure-blocks/index.js.map +1 -0
  122. package/dist/measure-blocks/list.d.ts +8 -0
  123. package/dist/measure-blocks/list.d.ts.map +1 -0
  124. package/dist/measure-blocks/list.js +108 -0
  125. package/dist/measure-blocks/list.js.map +1 -0
  126. package/dist/measure-blocks/simple-blocks.d.ts +18 -0
  127. package/dist/measure-blocks/simple-blocks.d.ts.map +1 -0
  128. package/dist/measure-blocks/simple-blocks.js +121 -0
  129. package/dist/measure-blocks/simple-blocks.js.map +1 -0
  130. package/dist/measure-blocks/table/columns.d.ts +17 -0
  131. package/dist/measure-blocks/table/columns.d.ts.map +1 -0
  132. package/dist/measure-blocks/table/columns.js +83 -0
  133. package/dist/measure-blocks/table/columns.js.map +1 -0
  134. package/dist/measure-blocks/table/measure.d.ts +8 -0
  135. package/dist/measure-blocks/table/measure.d.ts.map +1 -0
  136. package/dist/measure-blocks/table/measure.js +231 -0
  137. package/dist/measure-blocks/table/measure.js.map +1 -0
  138. package/dist/measure-blocks/table/spans.d.ts +25 -0
  139. package/dist/measure-blocks/table/spans.d.ts.map +1 -0
  140. package/dist/measure-blocks/table/spans.js +55 -0
  141. package/dist/measure-blocks/table/spans.js.map +1 -0
  142. package/dist/measure-blocks/text-blocks.d.ts +17 -0
  143. package/dist/measure-blocks/text-blocks.d.ts.map +1 -0
  144. package/dist/measure-blocks/text-blocks.js +242 -0
  145. package/dist/measure-blocks/text-blocks.js.map +1 -0
  146. package/dist/measure-text.d.ts +21 -3
  147. package/dist/measure-text.d.ts.map +1 -1
  148. package/dist/measure-text.js +87 -36
  149. package/dist/measure-text.js.map +1 -1
  150. package/dist/measure.d.ts +1 -1
  151. package/dist/measure.d.ts.map +1 -1
  152. package/dist/measure.js +8 -6
  153. package/dist/measure.js.map +1 -1
  154. package/dist/node-polyfill.d.ts.map +1 -1
  155. package/dist/node-polyfill.js +9 -0
  156. package/dist/node-polyfill.js.map +1 -1
  157. package/dist/pipeline-footnotes.d.ts +1 -1
  158. package/dist/pipeline-footnotes.d.ts.map +1 -1
  159. package/dist/pipeline-toc.d.ts +1 -1
  160. package/dist/pipeline-toc.d.ts.map +1 -1
  161. package/dist/pipeline.d.ts +3 -3
  162. package/dist/pipeline.d.ts.map +1 -1
  163. package/dist/pipeline.js +4 -5
  164. package/dist/pipeline.js.map +1 -1
  165. package/dist/plugin-types.d.ts +1 -1
  166. package/dist/plugin-types.d.ts.map +1 -1
  167. package/dist/post-process.d.ts +2 -2
  168. package/dist/post-process.d.ts.map +1 -1
  169. package/dist/post-process.js +32 -9
  170. package/dist/post-process.js.map +1 -1
  171. package/dist/render-blocks/blockquote.d.ts +7 -0
  172. package/dist/render-blocks/blockquote.d.ts.map +1 -0
  173. package/dist/render-blocks/blockquote.js +87 -0
  174. package/dist/render-blocks/blockquote.js.map +1 -0
  175. package/dist/render-blocks/callout.d.ts +7 -0
  176. package/dist/render-blocks/callout.d.ts.map +1 -0
  177. package/dist/render-blocks/callout.js +84 -0
  178. package/dist/render-blocks/callout.js.map +1 -0
  179. package/dist/render-blocks/code.d.ts +7 -0
  180. package/dist/render-blocks/code.d.ts.map +1 -0
  181. package/dist/render-blocks/code.js +84 -0
  182. package/dist/render-blocks/code.js.map +1 -0
  183. package/dist/render-blocks/footnote.d.ts +11 -0
  184. package/dist/render-blocks/footnote.d.ts.map +1 -0
  185. package/dist/render-blocks/footnote.js +45 -0
  186. package/dist/render-blocks/footnote.js.map +1 -0
  187. package/dist/render-blocks/header-footer.d.ts +11 -0
  188. package/dist/render-blocks/header-footer.d.ts.map +1 -0
  189. package/dist/render-blocks/header-footer.js +56 -0
  190. package/dist/render-blocks/header-footer.js.map +1 -0
  191. package/dist/render-blocks/hr.d.ts +7 -0
  192. package/dist/render-blocks/hr.d.ts.map +1 -0
  193. package/dist/render-blocks/hr.js +24 -0
  194. package/dist/render-blocks/hr.js.map +1 -0
  195. package/dist/render-blocks/image.d.ts +9 -0
  196. package/dist/render-blocks/image.d.ts.map +1 -0
  197. package/dist/render-blocks/image.js +135 -0
  198. package/dist/render-blocks/image.js.map +1 -0
  199. package/dist/render-blocks/index.d.ts +17 -0
  200. package/dist/render-blocks/index.d.ts.map +1 -0
  201. package/dist/render-blocks/index.js +17 -0
  202. package/dist/render-blocks/index.js.map +1 -0
  203. package/dist/render-blocks/list-item.d.ts +7 -0
  204. package/dist/render-blocks/list-item.d.ts.map +1 -0
  205. package/dist/render-blocks/list-item.js +80 -0
  206. package/dist/render-blocks/list-item.js.map +1 -0
  207. package/dist/render-blocks/rich.d.ts +7 -0
  208. package/dist/render-blocks/rich.d.ts.map +1 -0
  209. package/dist/render-blocks/rich.js +160 -0
  210. package/dist/render-blocks/rich.js.map +1 -0
  211. package/dist/render-blocks/table.d.ts +7 -0
  212. package/dist/render-blocks/table.d.ts.map +1 -0
  213. package/dist/render-blocks/table.js +139 -0
  214. package/dist/render-blocks/table.js.map +1 -0
  215. package/dist/render-blocks/text.d.ts +7 -0
  216. package/dist/render-blocks/text.d.ts.map +1 -0
  217. package/dist/render-blocks/text.js +183 -0
  218. package/dist/render-blocks/text.js.map +1 -0
  219. package/dist/render-blocks/watermark.d.ts +8 -0
  220. package/dist/render-blocks/watermark.d.ts.map +1 -0
  221. package/dist/render-blocks/watermark.js +52 -0
  222. package/dist/render-blocks/watermark.js.map +1 -0
  223. package/dist/render-extras.d.ts.map +1 -1
  224. package/dist/render-extras.js +1 -2
  225. package/dist/render-extras.js.map +1 -1
  226. package/dist/render-utils.d.ts.map +1 -1
  227. package/dist/render-utils.js +10 -6
  228. package/dist/render-utils.js.map +1 -1
  229. package/dist/render.d.ts.map +1 -1
  230. package/dist/render.js +9 -3
  231. package/dist/render.js.map +1 -1
  232. package/dist/rich-text.d.ts +2 -1
  233. package/dist/rich-text.d.ts.map +1 -1
  234. package/dist/rich-text.js +0 -1
  235. package/dist/rich-text.js.map +1 -1
  236. package/dist/types-internal.d.ts +19 -3
  237. package/dist/types-internal.d.ts.map +1 -1
  238. package/dist/types-public/document.d.ts +261 -0
  239. package/dist/types-public/document.d.ts.map +1 -0
  240. package/dist/types-public/document.js +2 -0
  241. package/dist/types-public/document.js.map +1 -0
  242. package/dist/types-public/elements-block.d.ts +246 -0
  243. package/dist/types-public/elements-block.d.ts.map +1 -0
  244. package/dist/types-public/elements-block.js +8 -0
  245. package/dist/types-public/elements-block.js.map +1 -0
  246. package/dist/types-public/elements-media.d.ts +199 -0
  247. package/dist/types-public/elements-media.d.ts.map +1 -0
  248. package/dist/types-public/elements-media.js +2 -0
  249. package/dist/types-public/elements-media.js.map +1 -0
  250. package/dist/types-public/elements-text.d.ts +327 -0
  251. package/dist/types-public/elements-text.d.ts.map +1 -0
  252. package/dist/types-public/elements-text.js +2 -0
  253. package/dist/types-public/elements-text.js.map +1 -0
  254. package/dist/types-public/index.d.ts +14 -0
  255. package/dist/types-public/index.d.ts.map +1 -0
  256. package/dist/types-public/index.js +2 -0
  257. package/dist/types-public/index.js.map +1 -0
  258. package/dist/types-public/render-options.d.ts +38 -0
  259. package/dist/types-public/render-options.d.ts.map +1 -0
  260. package/dist/types-public/render-options.js +2 -0
  261. package/dist/types-public/render-options.js.map +1 -0
  262. package/dist/types-public/union.d.ts +13 -0
  263. package/dist/types-public/union.d.ts.map +1 -0
  264. package/dist/types-public/union.js +2 -0
  265. package/dist/types-public/union.js.map +1 -0
  266. package/dist/types-public/validation.d.ts +64 -0
  267. package/dist/types-public/validation.d.ts.map +1 -0
  268. package/dist/types-public/validation.js +2 -0
  269. package/dist/types-public/validation.js.map +1 -0
  270. package/dist/types-public.d.ts +5 -1081
  271. package/dist/types-public.d.ts.map +1 -1
  272. package/dist/types.d.ts +1 -1
  273. package/dist/types.d.ts.map +1 -1
  274. package/dist/validate/document.d.ts +28 -0
  275. package/dist/validate/document.d.ts.map +1 -0
  276. package/dist/validate/document.js +295 -0
  277. package/dist/validate/document.js.map +1 -0
  278. package/dist/validate/elements/forms-floats.d.ts +19 -0
  279. package/dist/validate/elements/forms-floats.d.ts.map +1 -0
  280. package/dist/validate/elements/forms-floats.js +96 -0
  281. package/dist/validate/elements/forms-floats.js.map +1 -0
  282. package/dist/validate/elements/list.d.ts +10 -0
  283. package/dist/validate/elements/list.d.ts.map +1 -0
  284. package/dist/validate/elements/list.js +66 -0
  285. package/dist/validate/elements/list.js.map +1 -0
  286. package/dist/validate/elements/media.d.ts +23 -0
  287. package/dist/validate/elements/media.d.ts.map +1 -0
  288. package/dist/validate/elements/media.js +179 -0
  289. package/dist/validate/elements/media.js.map +1 -0
  290. package/dist/validate/elements/structural-simple.d.ts +21 -0
  291. package/dist/validate/elements/structural-simple.d.ts.map +1 -0
  292. package/dist/validate/elements/structural-simple.js +63 -0
  293. package/dist/validate/elements/structural-simple.js.map +1 -0
  294. package/dist/validate/elements/structural.d.ts +12 -0
  295. package/dist/validate/elements/structural.d.ts.map +1 -0
  296. package/dist/validate/elements/structural.js +12 -0
  297. package/dist/validate/elements/structural.js.map +1 -0
  298. package/dist/validate/elements/table.d.ts +10 -0
  299. package/dist/validate/elements/table.d.ts.map +1 -0
  300. package/dist/validate/elements/table.js +165 -0
  301. package/dist/validate/elements/table.js.map +1 -0
  302. package/dist/validate/elements/text.d.ts +26 -0
  303. package/dist/validate/elements/text.d.ts.map +1 -0
  304. package/dist/validate/elements/text.js +331 -0
  305. package/dist/validate/elements/text.js.map +1 -0
  306. package/dist/validate/errors.d.ts +9 -0
  307. package/dist/validate/errors.d.ts.map +1 -0
  308. package/dist/validate/errors.js +43 -0
  309. package/dist/validate/errors.js.map +1 -0
  310. package/dist/validate/fonts.d.ts +11 -0
  311. package/dist/validate/fonts.d.ts.map +1 -0
  312. package/dist/validate/fonts.js +118 -0
  313. package/dist/validate/fonts.js.map +1 -0
  314. package/dist/validate/helpers.d.ts +76 -0
  315. package/dist/validate/helpers.d.ts.map +1 -0
  316. package/dist/validate/helpers.js +169 -0
  317. package/dist/validate/helpers.js.map +1 -0
  318. package/dist/validate/index.d.ts +37 -0
  319. package/dist/validate/index.d.ts.map +1 -0
  320. package/dist/validate/index.js +279 -0
  321. package/dist/validate/index.js.map +1 -0
  322. package/dist/validate.d.ts +6 -18
  323. package/dist/validate.d.ts.map +1 -1
  324. package/dist/validate.js +6 -1582
  325. package/dist/validate.js.map +1 -1
  326. package/dist/vendor/pretext/VERSION.d.ts +3 -0
  327. package/dist/vendor/pretext/VERSION.d.ts.map +1 -0
  328. package/dist/vendor/pretext/VERSION.js +12 -0
  329. package/dist/vendor/pretext/VERSION.js.map +1 -0
  330. package/dist/version-check.d.ts +47 -0
  331. package/dist/version-check.d.ts.map +1 -0
  332. package/dist/version-check.js +75 -0
  333. package/dist/version-check.js.map +1 -0
  334. package/package.json +27 -8
  335. package/dist/measure-blocks.d.ts +0 -26
  336. package/dist/measure-blocks.d.ts.map +0 -1
  337. package/dist/measure-blocks.js +0 -1317
  338. package/dist/measure-blocks.js.map +0 -1
  339. package/dist/render-blocks.d.ts +0 -28
  340. package/dist/render-blocks.d.ts.map +0 -1
  341. package/dist/render-blocks.js +0 -1059
  342. package/dist/render-blocks.js.map +0 -1
@@ -0,0 +1,327 @@
1
+ /**
2
+ * pretext-pdf — Text-oriented element types.
3
+ *
4
+ * Paragraph, Heading, RichParagraph (and its InlineSpan member),
5
+ * Blockquote, Callout, CodeBlock.
6
+ */
7
+ import type { AnnotationSpec } from './document.js';
8
+ /** @public */
9
+ export interface ParagraphElement {
10
+ type: 'paragraph';
11
+ text: string;
12
+ /** Text direction: 'ltr' = left-to-right, 'rtl' = right-to-left, 'auto' = detect from character dominance. Default: 'auto' */
13
+ dir?: 'ltr' | 'rtl' | 'auto';
14
+ /** Font size in pt. Default: document.defaultFontSize */
15
+ fontSize?: number;
16
+ /** Line height in pt. Default: fontSize * 1.5 */
17
+ lineHeight?: number;
18
+ /** Font family name. Default: document.defaultFont */
19
+ fontFamily?: string;
20
+ /** Font weight. Default: 400 */
21
+ fontWeight?: 400 | 700;
22
+ /** Text color as 6-digit hex. Default: '#000000' */
23
+ color?: string;
24
+ /** Text alignment. Default: 'left' for LTR, 'right' for RTL (auto-detected) */
25
+ align?: 'left' | 'center' | 'right' | 'justify';
26
+ /** Background color as 6-digit hex. Drawn behind the text block. Default: none */
27
+ bgColor?: string;
28
+ /** Extra space below this element in pt. Default: 0 */
29
+ spaceAfter?: number;
30
+ /** Extra space above this element in pt. Default: 0 */
31
+ spaceBefore?: number;
32
+ /** If true, never break this block across pages. Default: false */
33
+ keepTogether?: boolean;
34
+ /** Underline all text in this element. Default: false */
35
+ underline?: boolean;
36
+ /** Strikethrough all text in this element. Default: false */
37
+ strikethrough?: boolean;
38
+ /** Clickable URL for the entire paragraph. Opens in browser when clicked. */
39
+ url?: string;
40
+ /** Number of columns for multi-column layout. Default: 1 (single column) */
41
+ columns?: number;
42
+ /** Gap between columns in pt. Default: 24 */
43
+ columnGap?: number;
44
+ /** Set to false to disable hyphenation for this element. Default: inherits from doc.hyphenation. */
45
+ hyphenate?: false;
46
+ /** Extra spacing between characters in pt. Default: 0 */
47
+ letterSpacing?: number;
48
+ /** Simulate small-caps: uppercase text at 80% font size. Default: false */
49
+ smallCaps?: boolean;
50
+ /**
51
+ * Render digits (0–9) at a fixed slot width (widest digit in font).
52
+ * Ensures numeric columns align regardless of digit width variation (1 vs 0 etc.).
53
+ */
54
+ tabularNumbers?: boolean;
55
+ /** PDF sticky-note annotation attached to this element. */
56
+ annotation?: AnnotationSpec;
57
+ }
58
+ /** @public */
59
+ export interface HeadingElement {
60
+ type: 'heading';
61
+ level: 1 | 2 | 3 | 4;
62
+ text: string;
63
+ /** Text direction: 'ltr' = left-to-right, 'rtl' = right-to-left, 'auto' = detect from character dominance. Default: 'auto' */
64
+ dir?: 'ltr' | 'rtl' | 'auto';
65
+ /** Font family override. Default: document.defaultFont */
66
+ fontFamily?: string;
67
+ /** Font weight override. Default: 700 */
68
+ fontWeight?: 400 | 700;
69
+ /** Font size override in pt. Default: per-level default (h1=28, h2=22, h3=18, h4=15) */
70
+ fontSize?: number;
71
+ /** Line height override in pt. Default: fontSize * 1.3 */
72
+ lineHeight?: number;
73
+ /** Text alignment. Default: 'left' for LTR, 'right' for RTL (auto-detected) */
74
+ align?: 'left' | 'center' | 'right' | 'justify';
75
+ /** Text color as 6-digit hex. Default: '#000000' */
76
+ color?: string;
77
+ /** Background color as 6-digit hex. Drawn behind the text block. Default: none */
78
+ bgColor?: string;
79
+ /** Extra space above this element in pt. Default: 0 */
80
+ spaceBefore?: number;
81
+ /** Extra space below this element in pt. Default: per-level default */
82
+ spaceAfter?: number;
83
+ /** If true, never break this block across pages. Default: true */
84
+ keepTogether?: boolean;
85
+ /** Underline all text in this element. Default: false */
86
+ underline?: boolean;
87
+ /** Strikethrough all text in this element. Default: false */
88
+ strikethrough?: boolean;
89
+ /** Set to false to exclude this heading from the PDF bookmark outline. Default: included. */
90
+ bookmark?: false;
91
+ /** Set to false to disable hyphenation for this element. Default: inherits from doc.hyphenation. */
92
+ hyphenate?: false;
93
+ /** Clickable URL for the entire heading. Opens in browser when clicked. */
94
+ url?: string;
95
+ /** Named anchor destination for internal links. Allows other spans to link to this heading via href: '#anchorId'. */
96
+ anchor?: string;
97
+ /** Extra spacing between characters in pt. Default: 0 */
98
+ letterSpacing?: number;
99
+ /** Simulate small-caps: uppercase text at 80% font size. Default: false */
100
+ smallCaps?: boolean;
101
+ /**
102
+ * Render digits (0–9) at a fixed slot width (widest digit in font).
103
+ * Ensures numeric columns align regardless of digit width variation (1 vs 0 etc.).
104
+ */
105
+ tabularNumbers?: boolean;
106
+ /** PDF sticky-note annotation attached to this element. */
107
+ annotation?: AnnotationSpec;
108
+ }
109
+ /**
110
+ * A paragraph composed of inline spans with mixed formatting (bold, italic, color, per-span fontSize).
111
+ * @public
112
+ */
113
+ export interface RichParagraphElement {
114
+ type: 'rich-paragraph';
115
+ spans: InlineSpan[];
116
+ /** Text direction: 'ltr', 'rtl', or 'auto'. Default: 'auto' */
117
+ dir?: 'ltr' | 'rtl' | 'auto';
118
+ /** Font size in pt for all spans. Default: doc.defaultFontSize */
119
+ fontSize?: number;
120
+ /** Line height in pt. Default: fontSize * 1.5 */
121
+ lineHeight?: number;
122
+ /** Text alignment. Default: 'left' for LTR, 'right' for RTL (auto-detected) */
123
+ align?: 'left' | 'center' | 'right' | 'justify';
124
+ /** Background color as 6-digit hex. Drawn behind the text block. Default: none */
125
+ bgColor?: string;
126
+ /** Extra space above this element in pt. Default: 0 */
127
+ spaceBefore?: number;
128
+ /** Extra space below this element in pt. Default: 0 */
129
+ spaceAfter?: number;
130
+ /** If true, never break this block across pages. Default: false */
131
+ keepTogether?: boolean;
132
+ /** Number of columns for multi-column layout. Default: 1 (single column) */
133
+ columns?: number;
134
+ /** Gap between columns in pt. Default: 24 */
135
+ columnGap?: number;
136
+ /** Extra spacing between characters in pt. Default: 0 */
137
+ letterSpacing?: number;
138
+ /** Simulate small-caps: uppercase text at 80% font size. Default: false */
139
+ smallCaps?: boolean;
140
+ /**
141
+ * Render digits (0–9) at a fixed slot width (widest digit in font).
142
+ * Ensures numeric columns align regardless of digit width variation (1 vs 0 etc.).
143
+ */
144
+ tabularNumbers?: boolean;
145
+ }
146
+ /** @public */
147
+ export interface InlineSpan {
148
+ text: string;
149
+ /** Text direction for this span: 'ltr', 'rtl', or 'auto'. Default: 'auto' */
150
+ dir?: 'ltr' | 'rtl' | 'auto';
151
+ /** Font family. Default: doc.defaultFont */
152
+ fontFamily?: string;
153
+ /** Font weight. Default: 400 */
154
+ fontWeight?: 400 | 700;
155
+ /** Font style. Default: 'normal'. Requires italic variant in doc.fonts. */
156
+ fontStyle?: 'normal' | 'italic';
157
+ /** Text color (hex). Default: '#000000' */
158
+ color?: string;
159
+ /** Font size override in pt. When set, overrides the element-level fontSize for this span. Default: element fontSize */
160
+ fontSize?: number;
161
+ /** Underline the span text. Default: false */
162
+ underline?: boolean;
163
+ /** Draw a line through the middle of the span text. Default: false */
164
+ strikethrough?: boolean;
165
+ /** Clickable URL. Opens in browser when clicked in PDF viewer. Auto-applies blue color and underline. */
166
+ url?: string;
167
+ /** Internal anchor link: '#anchorId' to jump to a heading with matching anchor. Or external URL. Alias for url. */
168
+ href?: string;
169
+ /** Raise text as superscript or lower as subscript. Default: none */
170
+ verticalAlign?: 'superscript' | 'subscript';
171
+ /** Simulate small-caps: uppercase text at 80% font size. Default: false */
172
+ smallCaps?: boolean;
173
+ /** Extra spacing between characters in pt. Default: 0 */
174
+ letterSpacing?: number;
175
+ /**
176
+ * ID of a matching footnote-def element. When set, this span renders as a
177
+ * superscript number and pins the footnote def to the bottom of this page.
178
+ */
179
+ footnoteRef?: string;
180
+ }
181
+ /** @public */
182
+ export interface BlockquoteElement {
183
+ type: 'blockquote';
184
+ text: string;
185
+ /** Text direction: 'ltr', 'rtl', or 'auto'. Default: 'auto' */
186
+ dir?: 'ltr' | 'rtl' | 'auto';
187
+ /** Left border color (hex). Default: '#0070f3' */
188
+ borderColor?: string;
189
+ /** Left border width in pt. Default: 3 */
190
+ borderWidth?: number;
191
+ /** Background fill color (hex). Default: '#f8f9fa' */
192
+ bgColor?: string;
193
+ /** Text color (hex). Default: '#333333' */
194
+ color?: string;
195
+ /** Font family. Default: document.defaultFont */
196
+ fontFamily?: string;
197
+ /** Font weight. Default: 400 */
198
+ fontWeight?: 400 | 700;
199
+ /** Font style. Default: 'normal'. Requires italic variant in doc.fonts if set to 'italic'. */
200
+ fontStyle?: 'normal' | 'italic';
201
+ /** Font size in pt. Default: document.defaultFontSize */
202
+ fontSize?: number;
203
+ /** Line height in pt. Default: fontSize * 1.5 */
204
+ lineHeight?: number;
205
+ /** Shorthand for paddingH and paddingV. Sets both when they are not individually specified. Per-axis overrides take precedence. */
206
+ padding?: number;
207
+ /** Horizontal padding (left + right) inside the box in pt. Default: padding ?? 16 */
208
+ paddingH?: number;
209
+ /** Vertical padding (top + bottom) inside the box in pt. Default: padding ?? 10 */
210
+ paddingV?: number;
211
+ /** Text alignment. Default: 'left' */
212
+ align?: 'left' | 'center' | 'right' | 'justify';
213
+ /** Space above this element in pt. Default: 0 */
214
+ spaceBefore?: number;
215
+ /** Space below this element in pt. Default: 12 */
216
+ spaceAfter?: number;
217
+ /** If true, never break this block across pages. Default: false */
218
+ keepTogether?: boolean;
219
+ /** Underline all text in this element. Default: false */
220
+ underline?: boolean;
221
+ /** Strikethrough all text in this element. Default: false */
222
+ strikethrough?: boolean;
223
+ }
224
+ /**
225
+ * A highlighted callout box with an optional title and preset color schemes.
226
+ * Useful for info panels, warnings, tips, and notes.
227
+ * @public
228
+ */
229
+ export interface CalloutElement {
230
+ type: 'callout';
231
+ /** Body text content. Required. */
232
+ content: string;
233
+ /**
234
+ * Preset style that sets default colors.
235
+ * - 'info': blue (#EFF6FF bg, #3B82F6 border)
236
+ * - 'warning': amber (#FFFBEB bg, #F59E0B border)
237
+ * - 'tip': green (#F0FDF4 bg, #22C55E border)
238
+ * - 'note': gray (#F9FAFB bg, #9CA3AF border)
239
+ * Default: blue-gray (#F8F9FA bg, #0070F3 border)
240
+ */
241
+ style?: 'info' | 'warning' | 'tip' | 'note';
242
+ /** Optional title rendered above the body (bold, colored). */
243
+ title?: string;
244
+ /** Background color as 6-digit hex. Default: per style. */
245
+ backgroundColor?: string;
246
+ /** Left border color as 6-digit hex. Default: per style. */
247
+ borderColor?: string;
248
+ /** Text color as 6-digit hex. Default: '#1F2937' */
249
+ color?: string;
250
+ /** Title color as 6-digit hex. Default: same as borderColor */
251
+ titleColor?: string;
252
+ /** Font family. Default: document.defaultFont */
253
+ fontFamily?: string;
254
+ /** Font weight. Default: 400 */
255
+ fontWeight?: 400 | 700;
256
+ /** Font size in pt. Default: document.defaultFontSize */
257
+ fontSize?: number;
258
+ /** Line height in pt. Default: fontSize * 1.5 */
259
+ lineHeight?: number;
260
+ /** Shorthand for paddingH and paddingV. Default: 12 */
261
+ padding?: number;
262
+ /** Horizontal padding (left + right) inside the box in pt. Default: padding ?? 16 */
263
+ paddingH?: number;
264
+ /** Vertical padding (top + bottom) inside the box in pt. Default: padding ?? 10 */
265
+ paddingV?: number;
266
+ /** Space below this element in pt. Default: 12 */
267
+ spaceAfter?: number;
268
+ /** Space above this element in pt. Default: 0 */
269
+ spaceBefore?: number;
270
+ /** If true, never break this element across pages. Default: false */
271
+ keepTogether?: boolean;
272
+ /** Text direction. Default: 'auto' */
273
+ dir?: 'ltr' | 'rtl' | 'auto';
274
+ }
275
+ /** @public */
276
+ export interface CodeBlockElement {
277
+ type: 'code';
278
+ /** Preformatted source code. Newlines and indentation are preserved. */
279
+ text: string;
280
+ /** Text direction. Code blocks should always be 'ltr' (logical order). Default: 'ltr' */
281
+ dir?: 'ltr' | 'rtl' | 'auto';
282
+ /**
283
+ * Font family for code text. Must be loaded in doc.fonts as a monospace TTF.
284
+ * There is no default — a font MUST be provided for code blocks.
285
+ * Recommended: JetBrains Mono, Fira Code, Courier Prime, etc.
286
+ */
287
+ fontFamily: string;
288
+ /** Font size in pt. Default: doc.defaultFontSize - 2 (slightly smaller than body text) */
289
+ fontSize?: number;
290
+ /** Line height in pt. Default: fontSize * 1.4 */
291
+ lineHeight?: number;
292
+ /** Background box color (hex). Default: '#f6f8fa' */
293
+ bgColor?: string;
294
+ /** Text color (hex). Default: '#24292f' */
295
+ color?: string;
296
+ /** Padding inside the background box on all 4 sides in pt. Default: 8 */
297
+ padding?: number;
298
+ /** Space below element in pt. Default: 12 */
299
+ spaceAfter?: number;
300
+ /** Space above element in pt. Default: 12 */
301
+ spaceBefore?: number;
302
+ /** If true, never break this block across pages. Default: false */
303
+ keepTogether?: boolean;
304
+ /**
305
+ * Programming language for syntax highlighting. Requires `highlight.js` peer dependency.
306
+ * When set, tokens are colored using the highlight theme. When unset or highlight.js
307
+ * is not installed, renders as plain monospace text (existing behavior).
308
+ * Examples: 'javascript', 'typescript', 'python', 'rust', 'go', 'sql', 'json', 'bash'
309
+ */
310
+ language?: string;
311
+ /**
312
+ * Custom syntax highlight colors (6-digit hex). Overrides the default GitHub-light theme.
313
+ * Only used when `language` is set.
314
+ */
315
+ highlightTheme?: {
316
+ keyword?: string;
317
+ string?: string;
318
+ comment?: string;
319
+ number?: string;
320
+ function?: string;
321
+ punctuation?: string;
322
+ type?: string;
323
+ built_in?: string;
324
+ literal?: string;
325
+ };
326
+ }
327
+ //# sourceMappingURL=elements-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elements-text.d.ts","sourceRoot":"","sources":["../../src/types-public/elements-text.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=elements-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elements-text.js","sourceRoot":"","sources":["../../src/types-public/elements-text.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * pretext-pdf — Public types barrel.
3
+ *
4
+ * Re-exports every public type. The original src/types-public.ts file
5
+ * also re-exports from here for backward compatibility during the split.
6
+ */
7
+ export type * from './document.js';
8
+ export type * from './elements-text.js';
9
+ export type * from './elements-block.js';
10
+ export type * from './elements-media.js';
11
+ export type * from './union.js';
12
+ export type * from './validation.js';
13
+ export type * from './render-options.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types-public/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,mBAAmB,eAAe,CAAA;AAClC,mBAAmB,oBAAoB,CAAA;AACvC,mBAAmB,qBAAqB,CAAA;AACxC,mBAAmB,qBAAqB,CAAA;AACxC,mBAAmB,YAAY,CAAA;AAC/B,mBAAmB,iBAAiB,CAAA;AACpC,mBAAmB,qBAAqB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types-public/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * pretext-pdf — Top-level render options public type.
3
+ */
4
+ import type { Logger } from './validation.js';
5
+ /** @public */
6
+ export type RenderOptions = {
7
+ /** Enable strict validation: reject unknown properties on elements and sub-structures */
8
+ strict?: boolean;
9
+ /**
10
+ * Plugin definitions for custom element types.
11
+ * Each plugin handles one `type` string across all 4 pipeline stages.
12
+ * @beta
13
+ */
14
+ plugins?: import('../plugin-types.js').PluginDefinition[];
15
+ /**
16
+ * Optional logger for diagnostic messages. When provided, advisory warnings
17
+ * from validation, asset loading (images, QR, barcodes, charts, plugins,
18
+ * watermarks), and rendering (form fields) are routed through `logger.warn`
19
+ * instead of `console.warn`.
20
+ *
21
+ * @remarks
22
+ * **Silencing warnings is dangerous.** Passing `{ warn: () => {} }` (or any
23
+ * no-op) suppresses every advisory warning. That includes silent failures
24
+ * for broken images, missing fonts, and unreachable URLs — the document
25
+ * still renders, but the output may be incomplete. Prefer a structured
26
+ * logger (pino, winston, etc.) in production so warnings remain searchable
27
+ * and alertable.
28
+ *
29
+ * Bidi-js fallback warnings from RTL reordering still go to `console.warn`
30
+ * directly. They are extremely rare (only fire when bidi-js itself errors)
31
+ * and routing them requires changes to deferred internal modules. This will
32
+ * be addressed in a future minor release.
33
+ *
34
+ * See {@link Logger} for the interface contract.
35
+ */
36
+ logger?: Logger;
37
+ };
38
+ //# sourceMappingURL=render-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-options.d.ts","sourceRoot":"","sources":["../../src/types-public/render-options.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAI7C,cAAc;AACd,MAAM,MAAM,aAAa,GAAG;IAC1B,yFAAyF;IACzF,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,oBAAoB,EAAE,gBAAgB,EAAE,CAAA;IACzD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=render-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-options.js","sourceRoot":"","sources":["../../src/types-public/render-options.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * pretext-pdf — Discriminated union of every public content element.
3
+ *
4
+ * This module imports element types from elements-text, elements-block,
5
+ * and elements-media. Those modules MUST NOT import from this file, to
6
+ * keep the dependency graph one-directional.
7
+ */
8
+ import type { ParagraphElement, HeadingElement, RichParagraphElement, BlockquoteElement, CalloutElement, CodeBlockElement } from './elements-text.js';
9
+ import type { SpacerElement, TableElement, ListElement, HorizontalRuleElement, PageBreakElement, TocElement, FootnoteDefElement, CommentElement, FormFieldElement } from './elements-block.js';
10
+ import type { ImageElement, SvgElement, QrCodeElement, BarcodeElement, ChartElement, FloatGroupElement } from './elements-media.js';
11
+ /** @public */
12
+ export type ContentElement = ParagraphElement | HeadingElement | SpacerElement | TableElement | ImageElement | SvgElement | QrCodeElement | BarcodeElement | ChartElement | ListElement | HorizontalRuleElement | PageBreakElement | CodeBlockElement | RichParagraphElement | BlockquoteElement | TocElement | CommentElement | FormFieldElement | CalloutElement | FootnoteDefElement | FloatGroupElement;
13
+ //# sourceMappingURL=union.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"union.d.ts","sourceRoot":"","sources":["../../src/types-public/union.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EACjB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EACjB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACZ,iBAAiB,EAClB,MAAM,qBAAqB,CAAA;AAE5B,cAAc;AACd,MAAM,MAAM,cAAc,GACtB,gBAAgB,GAChB,cAAc,GACd,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,UAAU,GACV,aAAa,GACb,cAAc,GACd,YAAY,GACZ,WAAW,GACX,qBAAqB,GACrB,gBAAgB,GAChB,gBAAgB,GAChB,oBAAoB,GACpB,iBAAiB,GACjB,UAAU,GACV,cAAc,GACd,gBAAgB,GAChB,cAAc,GACd,kBAAkB,GAClB,iBAAiB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=union.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"union.js","sourceRoot":"","sources":["../../src/types-public/union.ts"],"names":[],"mappings":""}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * pretext-pdf — Validation and logging public types.
3
+ */
4
+ import type { ErrorCode } from '../errors.js';
5
+ /**
6
+ * A single validation issue returned by {@link validateDocument}.
7
+ * @public
8
+ */
9
+ export interface ValidationError {
10
+ /** JSONPath-style location — e.g. "doc.pageSize" or "doc.content[3].color" */
11
+ path: string;
12
+ /** Human-readable description of the issue */
13
+ message: string;
14
+ /** The unknown property name, when code is UNKNOWN_PROPERTY */
15
+ unknownProp?: string;
16
+ /** Levenshtein-nearest valid property name, when available */
17
+ suggestion?: string;
18
+ /** Severity of the issue */
19
+ severity: 'error' | 'warning';
20
+ /** Machine-readable error code */
21
+ code: ErrorCode;
22
+ }
23
+ /**
24
+ * Return value of {@link validateDocument}.
25
+ * @public
26
+ */
27
+ export interface ValidationResult {
28
+ /** True when the document passed validation with zero errors */
29
+ valid: boolean;
30
+ /** All validation errors found (empty when valid is true) */
31
+ errors: ValidationError[];
32
+ /** Total number of validation issues. May exceed errors.length when errors are capped at 20. */
33
+ errorCount: number;
34
+ /** Warning-severity issue count. Reserved for future use — the validator currently emits only errors, so this is always 0. */
35
+ warningCount: number;
36
+ }
37
+ /**
38
+ * Optional logger interface for routing pretext-pdf diagnostic messages.
39
+ *
40
+ * @remarks
41
+ * Diagnostic messages include asset-loading failures (image, font, QR,
42
+ * barcode, chart, plugin), validation advisories, and rendering warnings
43
+ * (form-field clashes, watermark fallbacks, etc.). They are advisory — the
44
+ * render still completes — but most of them indicate a real problem with
45
+ * input or environment.
46
+ *
47
+ * **Behavior:**
48
+ * - If `logger` is omitted on {@link RenderOptions}, diagnostics route to
49
+ * `console.warn` with sensible defaults.
50
+ * - Passing a no-op (`{ warn: () => {} }`) silences **every** advisory
51
+ * warning. This is convenient for tests but **dangerous in production** —
52
+ * you lose visibility into broken images, missing fonts, and other
53
+ * recoverable failures that you almost certainly want to know about.
54
+ * - For production, prefer a structured logger such as
55
+ * [pino](https://github.com/pinojs/pino) or
56
+ * [winston](https://github.com/winstonjs/winston) and adapt it to the
57
+ * single-method shape — e.g. `{ warn: pino().warn.bind(pino()) }`.
58
+ *
59
+ * @public
60
+ */
61
+ export interface Logger {
62
+ warn(message: string, ...args: unknown[]): void;
63
+ }
64
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/types-public/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAI7C;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAA;IACZ,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAA;IACf,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,4BAA4B;IAC5B,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B,kCAAkC;IAClC,IAAI,EAAE,SAAS,CAAA;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gEAAgE;IAChE,KAAK,EAAE,OAAO,CAAA;IACd,6DAA6D;IAC7D,MAAM,EAAE,eAAe,EAAE,CAAA;IACzB,gGAAgG;IAChG,UAAU,EAAE,MAAM,CAAA;IAClB,8HAA8H;IAC9H,YAAY,EAAE,MAAM,CAAA;CACrB;AAID;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;CAChD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/types-public/validation.ts"],"names":[],"mappings":""}