documents.js 1.57.0 → 1.58.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 (454) hide show
  1. package/README.md +38 -0
  2. package/dist/blr-types-CYYC3yYU.d.cts +35 -0
  3. package/dist/blr-types-CYYC3yYU.d.ts +35 -0
  4. package/dist/cell-CNHPsDEk.d.cts +17 -0
  5. package/dist/cell-CNHPsDEk.d.ts +17 -0
  6. package/dist/color-71eoF1Up.d.cts +2 -0
  7. package/dist/color-Bo228AY2.d.ts +2 -0
  8. package/dist/convert/codec.cjs +51 -0
  9. package/dist/convert/codec.d.cts +13 -0
  10. package/dist/convert/codec.d.ts +13 -0
  11. package/dist/convert/codec.js +42 -0
  12. package/dist/convert/convert.cjs +443 -0
  13. package/dist/convert/convert.d.cts +55 -0
  14. package/dist/convert/convert.d.ts +55 -0
  15. package/dist/convert/convert.js +419 -0
  16. package/dist/convert/local.cjs +393 -0
  17. package/dist/convert/local.d.cts +5 -0
  18. package/dist/convert/local.d.ts +5 -0
  19. package/dist/convert/local.js +392 -0
  20. package/dist/convert/port.cjs +0 -0
  21. package/dist/convert/port.d.cts +34 -0
  22. package/dist/convert/port.d.ts +34 -0
  23. package/dist/convert/port.js +0 -0
  24. package/dist/edit/docx/content.cjs +71 -0
  25. package/dist/edit/docx/content.d.cts +6 -0
  26. package/dist/edit/docx/content.d.ts +6 -0
  27. package/dist/edit/docx/content.js +70 -0
  28. package/dist/edit/docx/editor.cjs +116 -0
  29. package/dist/edit/docx/editor.d.cts +23 -0
  30. package/dist/edit/docx/editor.d.ts +23 -0
  31. package/dist/edit/docx/editor.js +113 -0
  32. package/dist/edit/docx/image.cjs +74 -0
  33. package/dist/edit/docx/image.d.cts +2 -0
  34. package/dist/edit/docx/image.d.ts +2 -0
  35. package/dist/edit/docx/image.js +72 -0
  36. package/dist/edit/docx/paragraph.cjs +132 -0
  37. package/dist/edit/docx/paragraph.d.cts +40 -0
  38. package/dist/edit/docx/paragraph.d.ts +40 -0
  39. package/dist/edit/docx/paragraph.js +130 -0
  40. package/dist/edit/docx/props.cjs +132 -0
  41. package/dist/edit/docx/props.d.cts +20 -0
  42. package/dist/edit/docx/props.d.ts +20 -0
  43. package/dist/edit/docx/props.js +117 -0
  44. package/dist/edit/docx/run.cjs +143 -0
  45. package/dist/edit/docx/run.d.cts +2 -0
  46. package/dist/edit/docx/run.d.ts +2 -0
  47. package/dist/edit/docx/run.js +141 -0
  48. package/dist/edit/docx/scaffold.cjs +97 -0
  49. package/dist/edit/docx/scaffold.d.cts +5 -0
  50. package/dist/edit/docx/scaffold.d.ts +5 -0
  51. package/dist/edit/docx/scaffold.js +96 -0
  52. package/dist/edit/docx/table.cjs +99 -0
  53. package/dist/edit/docx/table.d.cts +34 -0
  54. package/dist/edit/docx/table.d.ts +34 -0
  55. package/dist/edit/docx/table.js +95 -0
  56. package/dist/edit/odg/content.cjs +65 -0
  57. package/dist/edit/odg/content.d.cts +6 -0
  58. package/dist/edit/odg/content.d.ts +6 -0
  59. package/dist/edit/odg/content.js +64 -0
  60. package/dist/edit/odg/editor.cjs +96 -0
  61. package/dist/edit/odg/editor.d.cts +19 -0
  62. package/dist/edit/odg/editor.d.ts +19 -0
  63. package/dist/edit/odg/editor.js +93 -0
  64. package/dist/edit/odg/page.cjs +70 -0
  65. package/dist/edit/odg/page.d.cts +34 -0
  66. package/dist/edit/odg/page.d.ts +34 -0
  67. package/dist/edit/odg/page.js +69 -0
  68. package/dist/edit/odg/scaffold.cjs +106 -0
  69. package/dist/edit/odg/scaffold.d.cts +7 -0
  70. package/dist/edit/odg/scaffold.d.ts +7 -0
  71. package/dist/edit/odg/scaffold.js +103 -0
  72. package/dist/edit/odg/style.cjs +83 -0
  73. package/dist/edit/odg/style.d.cts +14 -0
  74. package/dist/edit/odg/style.d.ts +14 -0
  75. package/dist/edit/odg/style.js +78 -0
  76. package/dist/edit/odg/svg-path.cjs +30 -0
  77. package/dist/edit/odg/svg-path.d.cts +7 -0
  78. package/dist/edit/odg/svg-path.d.ts +7 -0
  79. package/dist/edit/odg/svg-path.js +27 -0
  80. package/dist/edit/odg/vector.cjs +208 -0
  81. package/dist/edit/odg/vector.d.cts +2 -0
  82. package/dist/edit/odg/vector.d.ts +2 -0
  83. package/dist/edit/odg/vector.js +201 -0
  84. package/dist/edit/odp/content.cjs +42 -0
  85. package/dist/edit/odp/content.d.cts +6 -0
  86. package/dist/edit/odp/content.d.ts +6 -0
  87. package/dist/edit/odp/content.js +41 -0
  88. package/dist/edit/odp/editor.cjs +113 -0
  89. package/dist/edit/odp/editor.d.cts +20 -0
  90. package/dist/edit/odp/editor.d.ts +20 -0
  91. package/dist/edit/odp/editor.js +110 -0
  92. package/dist/edit/odp/image.cjs +10 -0
  93. package/dist/edit/odp/image.d.cts +2 -0
  94. package/dist/edit/odp/image.d.ts +2 -0
  95. package/dist/edit/odp/image.js +9 -0
  96. package/dist/edit/odp/scaffold.cjs +108 -0
  97. package/dist/edit/odp/scaffold.d.cts +7 -0
  98. package/dist/edit/odp/scaffold.d.ts +7 -0
  99. package/dist/edit/odp/scaffold.js +105 -0
  100. package/dist/edit/odp/shape.cjs +133 -0
  101. package/dist/edit/odp/shape.d.cts +2 -0
  102. package/dist/edit/odp/shape.d.ts +2 -0
  103. package/dist/edit/odp/shape.js +130 -0
  104. package/dist/edit/odp/slide.cjs +80 -0
  105. package/dist/edit/odp/slide.d.cts +31 -0
  106. package/dist/edit/odp/slide.d.ts +31 -0
  107. package/dist/edit/odp/slide.js +79 -0
  108. package/dist/edit/ods/address.cjs +108 -0
  109. package/dist/edit/ods/address.d.cts +15 -0
  110. package/dist/edit/ods/address.d.ts +15 -0
  111. package/dist/edit/ods/address.js +97 -0
  112. package/dist/edit/ods/cell.cjs +177 -0
  113. package/dist/edit/ods/cell.d.cts +2 -0
  114. package/dist/edit/ods/cell.d.ts +2 -0
  115. package/dist/edit/ods/cell.js +176 -0
  116. package/dist/edit/ods/content.cjs +26 -0
  117. package/dist/edit/ods/content.d.cts +6 -0
  118. package/dist/edit/ods/content.d.ts +6 -0
  119. package/dist/edit/ods/content.js +25 -0
  120. package/dist/edit/ods/editor.cjs +84 -0
  121. package/dist/edit/ods/editor.d.cts +17 -0
  122. package/dist/edit/ods/editor.d.ts +17 -0
  123. package/dist/edit/ods/editor.js +81 -0
  124. package/dist/edit/ods/print-settings.cjs +90 -0
  125. package/dist/edit/ods/print-settings.d.cts +7 -0
  126. package/dist/edit/ods/print-settings.d.ts +7 -0
  127. package/dist/edit/ods/print-settings.js +88 -0
  128. package/dist/edit/ods/scaffold.cjs +129 -0
  129. package/dist/edit/ods/scaffold.d.cts +9 -0
  130. package/dist/edit/ods/scaffold.d.ts +9 -0
  131. package/dist/edit/ods/scaffold.js +124 -0
  132. package/dist/edit/ods/sheet.cjs +70 -0
  133. package/dist/edit/ods/sheet.d.cts +22 -0
  134. package/dist/edit/ods/sheet.d.ts +22 -0
  135. package/dist/edit/ods/sheet.js +69 -0
  136. package/dist/edit/odt/automatic-styles.cjs +49 -0
  137. package/dist/edit/odt/automatic-styles.d.cts +8 -0
  138. package/dist/edit/odt/automatic-styles.d.ts +8 -0
  139. package/dist/edit/odt/automatic-styles.js +45 -0
  140. package/dist/edit/odt/content.cjs +110 -0
  141. package/dist/edit/odt/content.d.cts +9 -0
  142. package/dist/edit/odt/content.d.ts +9 -0
  143. package/dist/edit/odt/content.js +108 -0
  144. package/dist/edit/odt/editor.cjs +98 -0
  145. package/dist/edit/odt/editor.d.cts +25 -0
  146. package/dist/edit/odt/editor.d.ts +25 -0
  147. package/dist/edit/odt/editor.js +95 -0
  148. package/dist/edit/odt/list.cjs +82 -0
  149. package/dist/edit/odt/list.d.cts +2 -0
  150. package/dist/edit/odt/list.d.ts +2 -0
  151. package/dist/edit/odt/list.js +79 -0
  152. package/dist/edit/odt/paragraph.cjs +84 -0
  153. package/dist/edit/odt/paragraph.d.cts +2 -0
  154. package/dist/edit/odt/paragraph.d.ts +2 -0
  155. package/dist/edit/odt/paragraph.js +82 -0
  156. package/dist/edit/odt/props.cjs +26 -0
  157. package/dist/edit/odt/props.d.cts +7 -0
  158. package/dist/edit/odt/props.d.ts +7 -0
  159. package/dist/edit/odt/props.js +23 -0
  160. package/dist/edit/odt/run.cjs +82 -0
  161. package/dist/edit/odt/run.d.cts +2 -0
  162. package/dist/edit/odt/run.d.ts +2 -0
  163. package/dist/edit/odt/run.js +80 -0
  164. package/dist/edit/odt/scaffold.cjs +109 -0
  165. package/dist/edit/odt/scaffold.d.cts +5 -0
  166. package/dist/edit/odt/scaffold.d.ts +5 -0
  167. package/dist/edit/odt/scaffold.js +108 -0
  168. package/dist/edit/odt/table.cjs +123 -0
  169. package/dist/edit/odt/table.d.cts +37 -0
  170. package/dist/edit/odt/table.d.ts +37 -0
  171. package/dist/edit/odt/table.js +119 -0
  172. package/dist/edit/pptx/content.cjs +49 -0
  173. package/dist/edit/pptx/content.d.cts +6 -0
  174. package/dist/edit/pptx/content.d.ts +6 -0
  175. package/dist/edit/pptx/content.js +48 -0
  176. package/dist/edit/pptx/editor.cjs +187 -0
  177. package/dist/edit/pptx/editor.d.cts +20 -0
  178. package/dist/edit/pptx/editor.d.ts +20 -0
  179. package/dist/edit/pptx/editor.js +184 -0
  180. package/dist/edit/pptx/image.cjs +27 -0
  181. package/dist/edit/pptx/image.d.cts +2 -0
  182. package/dist/edit/pptx/image.d.ts +2 -0
  183. package/dist/edit/pptx/image.js +26 -0
  184. package/dist/edit/pptx/scaffold.cjs +292 -0
  185. package/dist/edit/pptx/scaffold.d.cts +13 -0
  186. package/dist/edit/pptx/scaffold.d.ts +13 -0
  187. package/dist/edit/pptx/scaffold.js +283 -0
  188. package/dist/edit/pptx/shape.cjs +182 -0
  189. package/dist/edit/pptx/shape.d.cts +2 -0
  190. package/dist/edit/pptx/shape.d.ts +2 -0
  191. package/dist/edit/pptx/shape.js +179 -0
  192. package/dist/edit/pptx/slide.cjs +146 -0
  193. package/dist/edit/pptx/slide.d.cts +33 -0
  194. package/dist/edit/pptx/slide.d.ts +33 -0
  195. package/dist/edit/pptx/slide.js +145 -0
  196. package/dist/firebird/backup.cjs +150 -0
  197. package/dist/firebird/backup.d.cts +21 -0
  198. package/dist/firebird/backup.d.ts +21 -0
  199. package/dist/firebird/backup.js +145 -0
  200. package/dist/firebird/blr-types.cjs +118 -0
  201. package/dist/firebird/blr-types.d.cts +2 -0
  202. package/dist/firebird/blr-types.d.ts +2 -0
  203. package/dist/firebird/blr-types.js +90 -0
  204. package/dist/firebird/data.cjs +231 -0
  205. package/dist/firebird/data.d.cts +17 -0
  206. package/dist/firebird/data.d.ts +17 -0
  207. package/dist/firebird/data.js +228 -0
  208. package/dist/firebird/date.cjs +63 -0
  209. package/dist/firebird/date.d.cts +17 -0
  210. package/dist/firebird/date.d.ts +17 -0
  211. package/dist/firebird/date.js +58 -0
  212. package/dist/firebird/reader.cjs +157 -0
  213. package/dist/firebird/reader.d.cts +2 -0
  214. package/dist/firebird/reader.d.ts +2 -0
  215. package/dist/firebird/reader.js +154 -0
  216. package/dist/firebird/schema.cjs +91 -0
  217. package/dist/firebird/schema.d.cts +2 -0
  218. package/dist/firebird/schema.d.ts +2 -0
  219. package/dist/firebird/schema.js +89 -0
  220. package/dist/geometry-DvwdrIij.d.cts +5 -0
  221. package/dist/geometry-DvwdrIij.d.ts +5 -0
  222. package/dist/hsqldb/cache.cjs +88 -0
  223. package/dist/hsqldb/cache.d.cts +13 -0
  224. package/dist/hsqldb/cache.d.ts +13 -0
  225. package/dist/hsqldb/cache.js +84 -0
  226. package/dist/hsqldb/rowformat.cjs +222 -0
  227. package/dist/hsqldb/rowformat.d.cts +21 -0
  228. package/dist/hsqldb/rowformat.d.ts +21 -0
  229. package/dist/hsqldb/rowformat.js +218 -0
  230. package/dist/hsqldb/script.cjs +450 -0
  231. package/dist/hsqldb/script.d.cts +19 -0
  232. package/dist/hsqldb/script.d.ts +19 -0
  233. package/dist/hsqldb/script.js +447 -0
  234. package/dist/image-B-xQWYYS.d.ts +16 -0
  235. package/dist/image-BZDy72Jb.d.cts +16 -0
  236. package/dist/image-BfRLAD9B.d.cts +18 -0
  237. package/dist/image-BfRLAD9B.d.ts +18 -0
  238. package/dist/image-CeqwL-Qs.d.ts +14 -0
  239. package/dist/image-DWX6cNOD.d.cts +14 -0
  240. package/dist/index.cjs +201 -10863
  241. package/dist/index.d.cts +71 -1406
  242. package/dist/index.d.ts +71 -1406
  243. package/dist/index.js +67 -10727
  244. package/dist/layout/drawing.cjs +117 -0
  245. package/dist/layout/drawing.d.cts +13 -0
  246. package/dist/layout/drawing.d.ts +13 -0
  247. package/dist/layout/drawing.js +116 -0
  248. package/dist/layout/engine.cjs +216 -0
  249. package/dist/layout/engine.d.cts +19 -0
  250. package/dist/layout/engine.d.ts +19 -0
  251. package/dist/layout/engine.js +215 -0
  252. package/dist/layout/reconstruct.cjs +809 -0
  253. package/dist/layout/reconstruct.d.cts +12 -0
  254. package/dist/layout/reconstruct.d.ts +12 -0
  255. package/dist/layout/reconstruct.js +805 -0
  256. package/dist/layout/shared.cjs +104 -0
  257. package/dist/layout/shared.d.cts +15 -0
  258. package/dist/layout/shared.d.ts +15 -0
  259. package/dist/layout/shared.js +96 -0
  260. package/dist/layout/sheets.cjs +413 -0
  261. package/dist/layout/sheets.d.cts +14 -0
  262. package/dist/layout/sheets.d.ts +14 -0
  263. package/dist/layout/sheets.js +414 -0
  264. package/dist/layout/slides.cjs +194 -0
  265. package/dist/layout/slides.d.cts +25 -0
  266. package/dist/layout/slides.d.ts +25 -0
  267. package/dist/layout/slides.js +192 -0
  268. package/dist/list-BuBM9rwQ.d.cts +24 -0
  269. package/dist/list-CvKxhy3y.d.ts +24 -0
  270. package/dist/mathml/compose.cjs +53 -0
  271. package/dist/mathml/compose.d.cts +8 -0
  272. package/dist/mathml/compose.d.ts +8 -0
  273. package/dist/mathml/compose.js +49 -0
  274. package/dist/mathml/layout-types.cjs +0 -0
  275. package/dist/mathml/layout-types.d.cts +50 -0
  276. package/dist/mathml/layout-types.d.ts +50 -0
  277. package/dist/mathml/layout-types.js +0 -0
  278. package/dist/mathml/layout.cjs +373 -0
  279. package/dist/mathml/layout.d.cts +24 -0
  280. package/dist/mathml/layout.d.ts +24 -0
  281. package/dist/mathml/layout.js +371 -0
  282. package/dist/mathml/length.cjs +41 -0
  283. package/dist/mathml/length.d.cts +4 -0
  284. package/dist/mathml/length.d.ts +4 -0
  285. package/dist/mathml/length.js +40 -0
  286. package/dist/mathml/metrics.cjs +0 -0
  287. package/dist/mathml/metrics.d.cts +44 -0
  288. package/dist/mathml/metrics.d.ts +44 -0
  289. package/dist/mathml/metrics.js +0 -0
  290. package/dist/mathml/nodes.cjs +39 -0
  291. package/dist/mathml/nodes.d.cts +2 -0
  292. package/dist/mathml/nodes.d.ts +2 -0
  293. package/dist/mathml/nodes.js +32 -0
  294. package/dist/mathml/operators.cjs +189 -0
  295. package/dist/mathml/operators.d.cts +13 -0
  296. package/dist/mathml/operators.d.ts +13 -0
  297. package/dist/mathml/operators.js +188 -0
  298. package/dist/mathml/radical.cjs +46 -0
  299. package/dist/mathml/radical.d.cts +10 -0
  300. package/dist/mathml/radical.d.ts +10 -0
  301. package/dist/mathml/radical.js +45 -0
  302. package/dist/mathml/variant.cjs +1160 -0
  303. package/dist/mathml/variant.d.cts +7 -0
  304. package/dist/mathml/variant.d.ts +7 -0
  305. package/dist/mathml/variant.js +1157 -0
  306. package/dist/model/bytes.cjs +88 -0
  307. package/dist/model/bytes.d.cts +12 -0
  308. package/dist/model/bytes.d.ts +12 -0
  309. package/dist/model/bytes.js +80 -0
  310. package/dist/model/color.cjs +26 -0
  311. package/dist/model/color.d.cts +2 -0
  312. package/dist/model/color.d.ts +2 -0
  313. package/dist/model/color.js +2 -0
  314. package/dist/model/content.cjs +34 -0
  315. package/dist/model/content.d.cts +362 -0
  316. package/dist/model/content.d.ts +362 -0
  317. package/dist/model/content.js +32 -0
  318. package/dist/model/formula.cjs +0 -0
  319. package/dist/model/formula.d.cts +8 -0
  320. package/dist/model/formula.d.ts +8 -0
  321. package/dist/model/formula.js +0 -0
  322. package/dist/model/geometry.cjs +55 -0
  323. package/dist/model/geometry.d.cts +2 -0
  324. package/dist/model/geometry.d.ts +2 -0
  325. package/dist/model/geometry.js +12 -0
  326. package/dist/model/style.cjs +20 -0
  327. package/dist/model/style.d.cts +2 -0
  328. package/dist/model/style.d.ts +2 -0
  329. package/dist/model/style.js +2 -0
  330. package/dist/model/units.cjs +55 -0
  331. package/dist/model/units.d.cts +20 -0
  332. package/dist/model/units.d.ts +20 -0
  333. package/dist/model/units.js +38 -0
  334. package/dist/nodes-pArN9ilm.d.cts +27 -0
  335. package/dist/nodes-pArN9ilm.d.ts +27 -0
  336. package/dist/odb/csv.cjs +48 -0
  337. package/dist/odb/csv.d.cts +14 -0
  338. package/dist/odb/csv.d.ts +14 -0
  339. package/dist/odb/csv.js +45 -0
  340. package/dist/odb/read.cjs +87 -0
  341. package/dist/odb/read.d.cts +15 -0
  342. package/dist/odb/read.d.ts +15 -0
  343. package/dist/odb/read.js +85 -0
  344. package/dist/odb/spreadsheet.cjs +68 -0
  345. package/dist/odb/spreadsheet.d.cts +6 -0
  346. package/dist/odb/spreadsheet.d.ts +6 -0
  347. package/dist/odb/spreadsheet.js +67 -0
  348. package/dist/odf/formula/detect.cjs +29 -0
  349. package/dist/odf/formula/detect.d.cts +12 -0
  350. package/dist/odf/formula/detect.d.ts +12 -0
  351. package/dist/odf/formula/detect.js +28 -0
  352. package/dist/odf/formula/placeholder.cjs +37 -0
  353. package/dist/odf/formula/placeholder.d.cts +14 -0
  354. package/dist/odf/formula/placeholder.d.ts +14 -0
  355. package/dist/odf/formula/placeholder.js +36 -0
  356. package/dist/odf/formula/read.cjs +32 -0
  357. package/dist/odf/formula/read.d.cts +11 -0
  358. package/dist/odf/formula/read.d.ts +11 -0
  359. package/dist/odf/formula/read.js +30 -0
  360. package/dist/odf/odg/read.cjs +15 -0
  361. package/dist/odf/odg/read.d.cts +6 -0
  362. package/dist/odf/odg/read.d.ts +6 -0
  363. package/dist/odf/odg/read.js +14 -0
  364. package/dist/odf/odp/read.cjs +45 -0
  365. package/dist/odf/odp/read.d.cts +11 -0
  366. package/dist/odf/odp/read.d.ts +11 -0
  367. package/dist/odf/odp/read.js +44 -0
  368. package/dist/odf/ods/read.cjs +15 -0
  369. package/dist/odf/ods/read.d.cts +6 -0
  370. package/dist/odf/ods/read.d.ts +6 -0
  371. package/dist/odf/ods/read.js +14 -0
  372. package/dist/odf/odt/read.cjs +43 -0
  373. package/dist/odf/odt/read.d.cts +11 -0
  374. package/dist/odf/odt/read.d.ts +11 -0
  375. package/dist/odf/odt/read.js +42 -0
  376. package/dist/odf-package/manifest.cjs +62 -0
  377. package/dist/odf-package/manifest.d.cts +2 -0
  378. package/dist/odf-package/manifest.d.ts +2 -0
  379. package/dist/odf-package/manifest.js +2 -0
  380. package/dist/odf-package/media.cjs +34 -0
  381. package/dist/odf-package/media.d.cts +8 -0
  382. package/dist/odf-package/media.d.ts +8 -0
  383. package/dist/odf-package/media.js +34 -0
  384. package/dist/ooxml/docx/read.cjs +15 -0
  385. package/dist/ooxml/docx/read.d.cts +6 -0
  386. package/dist/ooxml/docx/read.d.ts +6 -0
  387. package/dist/ooxml/docx/read.js +14 -0
  388. package/dist/ooxml/pptx/read.cjs +15 -0
  389. package/dist/ooxml/pptx/read.d.cts +6 -0
  390. package/dist/ooxml/pptx/read.d.ts +6 -0
  391. package/dist/ooxml/pptx/read.js +14 -0
  392. package/dist/opc/content-types.cjs +47 -0
  393. package/dist/opc/content-types.d.cts +7 -0
  394. package/dist/opc/content-types.d.ts +7 -0
  395. package/dist/opc/content-types.js +44 -0
  396. package/dist/opc/media.cjs +45 -0
  397. package/dist/opc/media.d.cts +10 -0
  398. package/dist/opc/media.d.ts +10 -0
  399. package/dist/opc/media.js +44 -0
  400. package/dist/opc/paths.cjs +28 -0
  401. package/dist/opc/paths.d.cts +5 -0
  402. package/dist/opc/paths.d.ts +5 -0
  403. package/dist/opc/paths.js +26 -0
  404. package/dist/opc/rels.cjs +47 -0
  405. package/dist/opc/rels.d.cts +10 -0
  406. package/dist/opc/rels.d.ts +10 -0
  407. package/dist/opc/rels.js +46 -0
  408. package/dist/paragraph-BXbXKPy3.d.cts +30 -0
  409. package/dist/paragraph-CoUi_88j.d.ts +30 -0
  410. package/dist/ports/abort.cjs +7 -0
  411. package/dist/ports/abort.d.cts +4 -0
  412. package/dist/ports/abort.d.ts +4 -0
  413. package/dist/ports/abort.js +6 -0
  414. package/dist/ports/clock.cjs +9 -0
  415. package/dist/ports/clock.d.cts +8 -0
  416. package/dist/ports/clock.d.ts +8 -0
  417. package/dist/ports/clock.js +7 -0
  418. package/dist/reader-DP0Mbaj4.d.cts +41 -0
  419. package/dist/reader-DP0Mbaj4.d.ts +41 -0
  420. package/dist/run-B3GNScJH.d.cts +38 -0
  421. package/dist/run-CJfh8rv3.d.ts +38 -0
  422. package/dist/run-D2rTWHbt.d.ts +38 -0
  423. package/dist/run-F8JN7Vy4.d.cts +38 -0
  424. package/dist/schema-Acco3Ezi.d.cts +22 -0
  425. package/dist/schema-VkAA6pF5.d.ts +22 -0
  426. package/dist/shape-BUfjw5eZ.d.cts +35 -0
  427. package/dist/shape-BfN3m52m.d.ts +30 -0
  428. package/dist/shape-CN2ycxOo.d.cts +30 -0
  429. package/dist/shape-CTkl6kt8.d.ts +35 -0
  430. package/dist/style-DkamR3aY.d.cts +2 -0
  431. package/dist/style-DkamR3aY.d.ts +2 -0
  432. package/dist/vector-ClohqsOe.d.cts +76 -0
  433. package/dist/vector-ClohqsOe.d.ts +76 -0
  434. package/dist/xml/edit.cjs +65 -0
  435. package/dist/xml/edit.d.cts +12 -0
  436. package/dist/xml/edit.d.ts +12 -0
  437. package/dist/xml/edit.js +57 -0
  438. package/dist/xml/entities.cjs +12 -0
  439. package/dist/xml/entities.d.cts +5 -0
  440. package/dist/xml/entities.d.ts +5 -0
  441. package/dist/xml/entities.js +10 -0
  442. package/dist/xml/fragment.cjs +22 -0
  443. package/dist/xml/fragment.d.cts +6 -0
  444. package/dist/xml/fragment.d.ts +6 -0
  445. package/dist/xml/fragment.js +20 -0
  446. package/dist/xml/odf-text.cjs +53 -0
  447. package/dist/xml/odf-text.d.cts +6 -0
  448. package/dist/xml/odf-text.d.ts +6 -0
  449. package/dist/xml/odf-text.js +51 -0
  450. package/dist/xml/query.cjs +33 -0
  451. package/dist/xml/query.d.cts +12 -0
  452. package/dist/xml/query.d.ts +12 -0
  453. package/dist/xml/query.js +29 -0
  454. package/package.json +9 -1
@@ -0,0 +1,13 @@
1
+ import { HsqldbColumn, HsqldbTable } from "./script.js";
2
+ import { ContentCellValue } from "document-schema.js";
3
+ //#region src/hsqldb/cache.d.ts
4
+ interface HsqldbCacheFileInfo {
5
+ readonly cacheFileScale: number;
6
+ readonly compatibleVersion: string | undefined;
7
+ }
8
+ declare function parseHsqldbProperties(text: string): HsqldbCacheFileInfo;
9
+ declare function parseHsqldbIndexRoots(scriptText: string): ReadonlyMap<string, number>;
10
+ declare function readHsqldbCachedTableRows(dataBytes: Uint8Array<ArrayBuffer>, rootPos: number, cacheFileScale: number, columns: readonly HsqldbColumn[]): (readonly ContentCellValue[])[];
11
+ declare function decodeHsqldbCachedTables(tables: readonly HsqldbTable[], scriptText: string, dataBytes: Uint8Array<ArrayBuffer>, propertiesText: string): readonly HsqldbTable[];
12
+ //#endregion
13
+ export { HsqldbCacheFileInfo, decodeHsqldbCachedTables, parseHsqldbIndexRoots, parseHsqldbProperties, readHsqldbCachedTableRows };
@@ -0,0 +1,84 @@
1
+ import { HsqldbDataCursor, HsqldbRowFormatError, readHsqldbColumnValue, resolveHsqldbTypeCode } from "./rowformat.js";
2
+ //#region src/hsqldb/cache.ts
3
+ const SUPPORTED_COMPATIBLE_VERSION_PREFIXES = ["1.7.", "1.8."];
4
+ function parseHsqldbProperties(text) {
5
+ const props = /* @__PURE__ */ new Map();
6
+ for (const rawLine of text.split("\n")) {
7
+ const line = rawLine.trim();
8
+ if (line.length === 0 || line.startsWith("#")) continue;
9
+ const eq = line.indexOf("=");
10
+ if (eq === -1) continue;
11
+ props.set(line.slice(0, eq).trim(), line.slice(eq + 1).trim());
12
+ }
13
+ const compatibleVersion = props.get("hsqldb.compatible_version");
14
+ if (compatibleVersion !== void 0 && !SUPPORTED_COMPATIBLE_VERSION_PREFIXES.some((prefix) => compatibleVersion.startsWith(prefix))) throw new HsqldbRowFormatError(`database/properties declares hsqldb.compatible_version "${compatibleVersion}" -- this decoder is scoped to the HSQLDB 1.7.x/1.8.x CACHED-table row-store format (the version LibreOffice's own embedded driver ships) and does not know this version's own on-disk row-store layout`);
15
+ return {
16
+ cacheFileScale: Number(props.get("hsqldb.cache_file_scale") ?? "1") === 1 ? 1 : 8,
17
+ compatibleVersion
18
+ };
19
+ }
20
+ const SET_TABLE_INDEX_RE = /^SET\s+TABLE\s+("(?:[^"]|"")*"|[A-Za-z_][A-Za-z0-9_$#]*)\s+INDEX'((?:[^']|'')*)'\s*$/i;
21
+ function unquoteIdentifier(raw) {
22
+ if (raw.length >= 2 && raw.startsWith("\"") && raw.endsWith("\"")) return raw.slice(1, -1).replace(/""/g, "\"");
23
+ return raw;
24
+ }
25
+ function parseHsqldbIndexRoots(scriptText) {
26
+ const roots = /* @__PURE__ */ new Map();
27
+ for (const rawLine of scriptText.split("\n")) {
28
+ const match = SET_TABLE_INDEX_RE.exec(rawLine.trim());
29
+ if (match === null) continue;
30
+ const rawName = match[1] ?? "";
31
+ const tokensText = match[2] ?? "";
32
+ const tableName = unquoteIdentifier(rawName).toUpperCase();
33
+ const tokens = tokensText.trim().length === 0 ? [] : tokensText.trim().split(/\s+/);
34
+ if (tokens.length !== 2) throw new HsqldbRowFormatError(`table "${tableName}" declares ${Math.max(tokens.length - 1, 0)} index root(s) in its SET TABLE...INDEX line -- only a single-index (primary-key-only) CACHED table is supported`);
35
+ const rootToken = tokens[0] ?? "";
36
+ const rootPos = Number(rootToken);
37
+ if (!Number.isInteger(rootPos)) throw new HsqldbRowFormatError(`table "${tableName}"'s SET TABLE...INDEX line has a non-integer root position "${rootToken}"`);
38
+ roots.set(tableName, rootPos);
39
+ }
40
+ return roots;
41
+ }
42
+ function readHsqldbCachedTableRows(dataBytes, rootPos, cacheFileScale, columns) {
43
+ const typeCodes = columns.map((column) => resolveHsqldbTypeCode(column.type));
44
+ const results = [];
45
+ function visit(pos) {
46
+ if (pos <= 0) return;
47
+ const byteOffset = pos * cacheFileScale;
48
+ if (byteOffset < 0 || byteOffset + 4 > dataBytes.length) throw new HsqldbRowFormatError(`row position ${pos} (byte offset ${byteOffset}) falls outside database/data (${dataBytes.length} bytes)`);
49
+ const cursor = new HsqldbDataCursor(dataBytes, byteOffset);
50
+ const storageSize = cursor.readInt32();
51
+ const rowEnd = byteOffset + storageSize;
52
+ if (storageSize <= 0 || rowEnd > dataBytes.length) throw new HsqldbRowFormatError(`row at position ${pos} declares an invalid storage size ${storageSize}`);
53
+ cursor.readInt32();
54
+ const iLeft = cursor.readInt32();
55
+ const iRight = cursor.readInt32();
56
+ cursor.readInt32();
57
+ const values = columns.map((_column, index) => {
58
+ const typeCode = typeCodes[index];
59
+ if (typeCode === void 0) throw new HsqldbRowFormatError("internal error: column/type-code alignment failure");
60
+ return readHsqldbColumnValue(cursor, typeCode);
61
+ });
62
+ if (cursor.position > rowEnd) throw new HsqldbRowFormatError(`row at position ${pos} overran its own declared storage size (consumed ${cursor.position - byteOffset} bytes, declared ${storageSize})`);
63
+ visit(iLeft);
64
+ results.push(values);
65
+ visit(iRight);
66
+ }
67
+ visit(rootPos);
68
+ return results;
69
+ }
70
+ function decodeHsqldbCachedTables(tables, scriptText, dataBytes, propertiesText) {
71
+ const { cacheFileScale } = parseHsqldbProperties(propertiesText);
72
+ const roots = parseHsqldbIndexRoots(scriptText);
73
+ return tables.map((table) => {
74
+ const rootPos = roots.get(table.tableName.toUpperCase());
75
+ if (rootPos === void 0) return table;
76
+ const rows = readHsqldbCachedTableRows(dataBytes, rootPos, cacheFileScale, table.columns);
77
+ return {
78
+ ...table,
79
+ rows
80
+ };
81
+ });
82
+ }
83
+ //#endregion
84
+ export { decodeHsqldbCachedTables, parseHsqldbIndexRoots, parseHsqldbProperties, readHsqldbCachedTableRows };
@@ -0,0 +1,222 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ //#region src/hsqldb/rowformat.ts
3
+ var HsqldbRowFormatError = class extends Error {
4
+ constructor(message) {
5
+ super(`HSQLDB binary row format error: ${message}`);
6
+ this.name = "HsqldbRowFormatError";
7
+ }
8
+ };
9
+ const SQL_TYPE_NAME_TO_CODE = {
10
+ INTEGER: 4,
11
+ INT: 4,
12
+ IDENTITY: 4,
13
+ DOUBLE: 8,
14
+ FLOAT: 6,
15
+ REAL: 7,
16
+ VARCHAR: 12,
17
+ CHAR: 1,
18
+ CHARACTER: 1,
19
+ LONGVARCHAR: -1,
20
+ VARCHAR_IGNORECASE: 100,
21
+ DATE: 91,
22
+ TIME: 92,
23
+ TIMESTAMP: 93,
24
+ DATETIME: 93,
25
+ DECIMAL: 3,
26
+ NUMERIC: 2,
27
+ BIT: 16,
28
+ BOOLEAN: 16,
29
+ TINYINT: -6,
30
+ SMALLINT: 5,
31
+ BIGINT: -5
32
+ };
33
+ const UNSUPPORTED_SQL_TYPE_NAMES = /* @__PURE__ */ new Set([
34
+ "BINARY",
35
+ "VARBINARY",
36
+ "LONGVARBINARY",
37
+ "OTHER",
38
+ "OBJECT"
39
+ ]);
40
+ const LEADING_WORD_RE = /^([A-Za-z_][A-Za-z0-9_]*)/;
41
+ function resolveHsqldbTypeCode(declaredType) {
42
+ const word = LEADING_WORD_RE.exec(declaredType.trim())?.[1]?.toUpperCase();
43
+ if (word === void 0) throw new HsqldbRowFormatError(`cannot resolve a SQL type name from column type clause "${declaredType}"`);
44
+ if (UNSUPPORTED_SQL_TYPE_NAMES.has(word)) throw new HsqldbRowFormatError(`column type "${word}" has no document-schema.js ContentCellValue equivalent (binary/object column types are not representable) -- from declared type "${declaredType}"`);
45
+ const code = SQL_TYPE_NAME_TO_CODE[word];
46
+ if (code === void 0) throw new HsqldbRowFormatError(`unrecognised HSQLDB column type "${word}" -- from declared type "${declaredType}"`);
47
+ return code;
48
+ }
49
+ var HsqldbDataCursor = class {
50
+ bytes;
51
+ view;
52
+ position;
53
+ constructor(bytes, offset = 0) {
54
+ this.bytes = bytes;
55
+ this.view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
56
+ this.position = offset;
57
+ }
58
+ readUint8() {
59
+ const value = this.view.getUint8(this.position);
60
+ this.position += 1;
61
+ return value;
62
+ }
63
+ readInt16() {
64
+ const value = this.view.getInt16(this.position, false);
65
+ this.position += 2;
66
+ return value;
67
+ }
68
+ readInt32() {
69
+ const value = this.view.getInt32(this.position, false);
70
+ this.position += 4;
71
+ return value;
72
+ }
73
+ readBigInt64() {
74
+ const value = this.view.getBigInt64(this.position, false);
75
+ this.position += 8;
76
+ return value;
77
+ }
78
+ readFloat64() {
79
+ const value = this.view.getFloat64(this.position, false);
80
+ this.position += 8;
81
+ return value;
82
+ }
83
+ readBytes(length) {
84
+ const slice = this.bytes.subarray(this.position, this.position + length);
85
+ this.position += length;
86
+ return slice;
87
+ }
88
+ };
89
+ function readModifiedUtf8(bytes) {
90
+ let result = "";
91
+ let i = 0;
92
+ while (i < bytes.length) {
93
+ const b0 = bytes[i];
94
+ if (b0 === void 0) throw new HsqldbRowFormatError("truncated modified-UTF-8 byte sequence");
95
+ if (b0 > 0 && b0 < 128) {
96
+ result += String.fromCharCode(b0);
97
+ i += 1;
98
+ continue;
99
+ }
100
+ const leadNibble = b0 >> 4;
101
+ if (leadNibble === 12 || leadNibble === 13) {
102
+ const b1 = bytes[i + 1];
103
+ if (b1 === void 0 || (b1 & 192) !== 128) throw new HsqldbRowFormatError("malformed modified-UTF-8 2-byte sequence");
104
+ result += String.fromCharCode((b0 & 31) << 6 | b1 & 63);
105
+ i += 2;
106
+ continue;
107
+ }
108
+ if (leadNibble === 14) {
109
+ const b1 = bytes[i + 1];
110
+ const b2 = bytes[i + 2];
111
+ if (b1 === void 0 || b2 === void 0 || (b1 & 192) !== 128 || (b2 & 192) !== 128) throw new HsqldbRowFormatError("malformed modified-UTF-8 3-byte sequence");
112
+ result += String.fromCharCode((b0 & 15) << 12 | (b1 & 63) << 6 | b2 & 63);
113
+ i += 3;
114
+ continue;
115
+ }
116
+ throw new HsqldbRowFormatError(`malformed modified-UTF-8 lead byte 0x${b0.toString(16)}`);
117
+ }
118
+ return result;
119
+ }
120
+ function signedBigIntFromBytes(bytes) {
121
+ if (bytes.length === 0) return 0n;
122
+ let magnitude = 0n;
123
+ for (const byte of bytes) magnitude = magnitude << 8n | BigInt(byte);
124
+ const firstByte = bytes[0];
125
+ return firstByte !== void 0 && (firstByte & 128) !== 0 ? magnitude - (1n << BigInt(8 * bytes.length)) : magnitude;
126
+ }
127
+ function decimalNumberFromUnscaled(unscaled, scale) {
128
+ const isNegative = unscaled < 0n;
129
+ const magnitudeDigits = (isNegative ? -unscaled : unscaled).toString();
130
+ const sign = isNegative ? "-" : "";
131
+ if (scale <= 0) return Number(`${sign}${magnitudeDigits}${"0".repeat(-scale)}`);
132
+ const padded = magnitudeDigits.padStart(scale + 1, "0");
133
+ const wholePart = padded.slice(0, padded.length - scale);
134
+ const fractionPart = padded.slice(padded.length - scale);
135
+ return Number(`${sign}${wholePart}.${fractionPart}`);
136
+ }
137
+ function pad2(n) {
138
+ return String(n).padStart(2, "0");
139
+ }
140
+ function epochMillisToLocalDate(epochMillis) {
141
+ return new Date(Number(epochMillis));
142
+ }
143
+ function formatLocalDate(epochMillis) {
144
+ const date = epochMillisToLocalDate(epochMillis);
145
+ return `${date.getFullYear()}-${pad2(date.getMonth() + 1)}-${pad2(date.getDate())}`;
146
+ }
147
+ function formatLocalTime(epochMillis) {
148
+ const date = epochMillisToLocalDate(epochMillis);
149
+ const base = `${pad2(date.getHours())}:${pad2(date.getMinutes())}:${pad2(date.getSeconds())}`;
150
+ return date.getMilliseconds() === 0 ? base : `${base}.${String(date.getMilliseconds()).padStart(3, "0")}`;
151
+ }
152
+ function formatLocalTimestamp(epochMillis, nanos) {
153
+ const date = epochMillisToLocalDate(epochMillis);
154
+ const base = `${date.getFullYear()}-${pad2(date.getMonth() + 1)}-${pad2(date.getDate())} ${pad2(date.getHours())}:${pad2(date.getMinutes())}:${pad2(date.getSeconds())}`;
155
+ return nanos === 0 ? base : `${base}.${String(nanos).padStart(9, "0")}`;
156
+ }
157
+ function readHsqldbColumnValue(cursor, typeCode) {
158
+ if (cursor.readUint8() === 0) return { kind: "empty" };
159
+ switch (typeCode) {
160
+ case 1:
161
+ case 12:
162
+ case -1:
163
+ case 100: {
164
+ const byteLength = cursor.readInt32();
165
+ return {
166
+ kind: "string",
167
+ value: readModifiedUtf8(cursor.readBytes(byteLength))
168
+ };
169
+ }
170
+ case 5:
171
+ case -6: return {
172
+ kind: "number",
173
+ value: cursor.readInt16()
174
+ };
175
+ case 4: return {
176
+ kind: "number",
177
+ value: cursor.readInt32()
178
+ };
179
+ case -5: return {
180
+ kind: "number",
181
+ value: Number(cursor.readBigInt64())
182
+ };
183
+ case 6:
184
+ case 7:
185
+ case 8: return {
186
+ kind: "number",
187
+ value: cursor.readFloat64()
188
+ };
189
+ case 2:
190
+ case 3: {
191
+ const byteLength = cursor.readInt32();
192
+ const magnitudeBytes = cursor.readBytes(byteLength);
193
+ const scale = cursor.readInt32();
194
+ return {
195
+ kind: "number",
196
+ value: decimalNumberFromUnscaled(signedBigIntFromBytes(magnitudeBytes), scale)
197
+ };
198
+ }
199
+ case 16: return {
200
+ kind: "boolean",
201
+ value: cursor.readUint8() !== 0
202
+ };
203
+ case 91: return {
204
+ kind: "date",
205
+ value: formatLocalDate(cursor.readBigInt64())
206
+ };
207
+ case 92: return {
208
+ kind: "time",
209
+ value: formatLocalTime(cursor.readBigInt64())
210
+ };
211
+ case 93: return {
212
+ kind: "date",
213
+ value: formatLocalTimestamp(cursor.readBigInt64(), cursor.readInt32())
214
+ };
215
+ default: throw new HsqldbRowFormatError(`unsupported SQL type code ${typeCode} while decoding a row value`);
216
+ }
217
+ }
218
+ //#endregion
219
+ exports.HsqldbDataCursor = HsqldbDataCursor;
220
+ exports.HsqldbRowFormatError = HsqldbRowFormatError;
221
+ exports.readHsqldbColumnValue = readHsqldbColumnValue;
222
+ exports.resolveHsqldbTypeCode = resolveHsqldbTypeCode;
@@ -0,0 +1,21 @@
1
+ import { ContentCellValue } from "document-schema.js";
2
+ //#region src/hsqldb/rowformat.d.ts
3
+ declare class HsqldbRowFormatError extends Error {
4
+ constructor(message: string);
5
+ }
6
+ declare function resolveHsqldbTypeCode(declaredType: string): number;
7
+ declare class HsqldbDataCursor {
8
+ private readonly bytes;
9
+ private readonly view;
10
+ position: number;
11
+ constructor(bytes: Uint8Array<ArrayBuffer>, offset?: number);
12
+ readUint8(): number;
13
+ readInt16(): number;
14
+ readInt32(): number;
15
+ readBigInt64(): bigint;
16
+ readFloat64(): number;
17
+ readBytes(length: number): Uint8Array<ArrayBuffer>;
18
+ }
19
+ declare function readHsqldbColumnValue(cursor: HsqldbDataCursor, typeCode: number): ContentCellValue;
20
+ //#endregion
21
+ export { HsqldbDataCursor, HsqldbRowFormatError, readHsqldbColumnValue, resolveHsqldbTypeCode };
@@ -0,0 +1,21 @@
1
+ import { ContentCellValue } from "document-schema.js";
2
+ //#region src/hsqldb/rowformat.d.ts
3
+ declare class HsqldbRowFormatError extends Error {
4
+ constructor(message: string);
5
+ }
6
+ declare function resolveHsqldbTypeCode(declaredType: string): number;
7
+ declare class HsqldbDataCursor {
8
+ private readonly bytes;
9
+ private readonly view;
10
+ position: number;
11
+ constructor(bytes: Uint8Array<ArrayBuffer>, offset?: number);
12
+ readUint8(): number;
13
+ readInt16(): number;
14
+ readInt32(): number;
15
+ readBigInt64(): bigint;
16
+ readFloat64(): number;
17
+ readBytes(length: number): Uint8Array<ArrayBuffer>;
18
+ }
19
+ declare function readHsqldbColumnValue(cursor: HsqldbDataCursor, typeCode: number): ContentCellValue;
20
+ //#endregion
21
+ export { HsqldbDataCursor, HsqldbRowFormatError, readHsqldbColumnValue, resolveHsqldbTypeCode };
@@ -0,0 +1,218 @@
1
+ //#region src/hsqldb/rowformat.ts
2
+ var HsqldbRowFormatError = class extends Error {
3
+ constructor(message) {
4
+ super(`HSQLDB binary row format error: ${message}`);
5
+ this.name = "HsqldbRowFormatError";
6
+ }
7
+ };
8
+ const SQL_TYPE_NAME_TO_CODE = {
9
+ INTEGER: 4,
10
+ INT: 4,
11
+ IDENTITY: 4,
12
+ DOUBLE: 8,
13
+ FLOAT: 6,
14
+ REAL: 7,
15
+ VARCHAR: 12,
16
+ CHAR: 1,
17
+ CHARACTER: 1,
18
+ LONGVARCHAR: -1,
19
+ VARCHAR_IGNORECASE: 100,
20
+ DATE: 91,
21
+ TIME: 92,
22
+ TIMESTAMP: 93,
23
+ DATETIME: 93,
24
+ DECIMAL: 3,
25
+ NUMERIC: 2,
26
+ BIT: 16,
27
+ BOOLEAN: 16,
28
+ TINYINT: -6,
29
+ SMALLINT: 5,
30
+ BIGINT: -5
31
+ };
32
+ const UNSUPPORTED_SQL_TYPE_NAMES = /* @__PURE__ */ new Set([
33
+ "BINARY",
34
+ "VARBINARY",
35
+ "LONGVARBINARY",
36
+ "OTHER",
37
+ "OBJECT"
38
+ ]);
39
+ const LEADING_WORD_RE = /^([A-Za-z_][A-Za-z0-9_]*)/;
40
+ function resolveHsqldbTypeCode(declaredType) {
41
+ const word = LEADING_WORD_RE.exec(declaredType.trim())?.[1]?.toUpperCase();
42
+ if (word === void 0) throw new HsqldbRowFormatError(`cannot resolve a SQL type name from column type clause "${declaredType}"`);
43
+ if (UNSUPPORTED_SQL_TYPE_NAMES.has(word)) throw new HsqldbRowFormatError(`column type "${word}" has no document-schema.js ContentCellValue equivalent (binary/object column types are not representable) -- from declared type "${declaredType}"`);
44
+ const code = SQL_TYPE_NAME_TO_CODE[word];
45
+ if (code === void 0) throw new HsqldbRowFormatError(`unrecognised HSQLDB column type "${word}" -- from declared type "${declaredType}"`);
46
+ return code;
47
+ }
48
+ var HsqldbDataCursor = class {
49
+ bytes;
50
+ view;
51
+ position;
52
+ constructor(bytes, offset = 0) {
53
+ this.bytes = bytes;
54
+ this.view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
55
+ this.position = offset;
56
+ }
57
+ readUint8() {
58
+ const value = this.view.getUint8(this.position);
59
+ this.position += 1;
60
+ return value;
61
+ }
62
+ readInt16() {
63
+ const value = this.view.getInt16(this.position, false);
64
+ this.position += 2;
65
+ return value;
66
+ }
67
+ readInt32() {
68
+ const value = this.view.getInt32(this.position, false);
69
+ this.position += 4;
70
+ return value;
71
+ }
72
+ readBigInt64() {
73
+ const value = this.view.getBigInt64(this.position, false);
74
+ this.position += 8;
75
+ return value;
76
+ }
77
+ readFloat64() {
78
+ const value = this.view.getFloat64(this.position, false);
79
+ this.position += 8;
80
+ return value;
81
+ }
82
+ readBytes(length) {
83
+ const slice = this.bytes.subarray(this.position, this.position + length);
84
+ this.position += length;
85
+ return slice;
86
+ }
87
+ };
88
+ function readModifiedUtf8(bytes) {
89
+ let result = "";
90
+ let i = 0;
91
+ while (i < bytes.length) {
92
+ const b0 = bytes[i];
93
+ if (b0 === void 0) throw new HsqldbRowFormatError("truncated modified-UTF-8 byte sequence");
94
+ if (b0 > 0 && b0 < 128) {
95
+ result += String.fromCharCode(b0);
96
+ i += 1;
97
+ continue;
98
+ }
99
+ const leadNibble = b0 >> 4;
100
+ if (leadNibble === 12 || leadNibble === 13) {
101
+ const b1 = bytes[i + 1];
102
+ if (b1 === void 0 || (b1 & 192) !== 128) throw new HsqldbRowFormatError("malformed modified-UTF-8 2-byte sequence");
103
+ result += String.fromCharCode((b0 & 31) << 6 | b1 & 63);
104
+ i += 2;
105
+ continue;
106
+ }
107
+ if (leadNibble === 14) {
108
+ const b1 = bytes[i + 1];
109
+ const b2 = bytes[i + 2];
110
+ if (b1 === void 0 || b2 === void 0 || (b1 & 192) !== 128 || (b2 & 192) !== 128) throw new HsqldbRowFormatError("malformed modified-UTF-8 3-byte sequence");
111
+ result += String.fromCharCode((b0 & 15) << 12 | (b1 & 63) << 6 | b2 & 63);
112
+ i += 3;
113
+ continue;
114
+ }
115
+ throw new HsqldbRowFormatError(`malformed modified-UTF-8 lead byte 0x${b0.toString(16)}`);
116
+ }
117
+ return result;
118
+ }
119
+ function signedBigIntFromBytes(bytes) {
120
+ if (bytes.length === 0) return 0n;
121
+ let magnitude = 0n;
122
+ for (const byte of bytes) magnitude = magnitude << 8n | BigInt(byte);
123
+ const firstByte = bytes[0];
124
+ return firstByte !== void 0 && (firstByte & 128) !== 0 ? magnitude - (1n << BigInt(8 * bytes.length)) : magnitude;
125
+ }
126
+ function decimalNumberFromUnscaled(unscaled, scale) {
127
+ const isNegative = unscaled < 0n;
128
+ const magnitudeDigits = (isNegative ? -unscaled : unscaled).toString();
129
+ const sign = isNegative ? "-" : "";
130
+ if (scale <= 0) return Number(`${sign}${magnitudeDigits}${"0".repeat(-scale)}`);
131
+ const padded = magnitudeDigits.padStart(scale + 1, "0");
132
+ const wholePart = padded.slice(0, padded.length - scale);
133
+ const fractionPart = padded.slice(padded.length - scale);
134
+ return Number(`${sign}${wholePart}.${fractionPart}`);
135
+ }
136
+ function pad2(n) {
137
+ return String(n).padStart(2, "0");
138
+ }
139
+ function epochMillisToLocalDate(epochMillis) {
140
+ return new Date(Number(epochMillis));
141
+ }
142
+ function formatLocalDate(epochMillis) {
143
+ const date = epochMillisToLocalDate(epochMillis);
144
+ return `${date.getFullYear()}-${pad2(date.getMonth() + 1)}-${pad2(date.getDate())}`;
145
+ }
146
+ function formatLocalTime(epochMillis) {
147
+ const date = epochMillisToLocalDate(epochMillis);
148
+ const base = `${pad2(date.getHours())}:${pad2(date.getMinutes())}:${pad2(date.getSeconds())}`;
149
+ return date.getMilliseconds() === 0 ? base : `${base}.${String(date.getMilliseconds()).padStart(3, "0")}`;
150
+ }
151
+ function formatLocalTimestamp(epochMillis, nanos) {
152
+ const date = epochMillisToLocalDate(epochMillis);
153
+ const base = `${date.getFullYear()}-${pad2(date.getMonth() + 1)}-${pad2(date.getDate())} ${pad2(date.getHours())}:${pad2(date.getMinutes())}:${pad2(date.getSeconds())}`;
154
+ return nanos === 0 ? base : `${base}.${String(nanos).padStart(9, "0")}`;
155
+ }
156
+ function readHsqldbColumnValue(cursor, typeCode) {
157
+ if (cursor.readUint8() === 0) return { kind: "empty" };
158
+ switch (typeCode) {
159
+ case 1:
160
+ case 12:
161
+ case -1:
162
+ case 100: {
163
+ const byteLength = cursor.readInt32();
164
+ return {
165
+ kind: "string",
166
+ value: readModifiedUtf8(cursor.readBytes(byteLength))
167
+ };
168
+ }
169
+ case 5:
170
+ case -6: return {
171
+ kind: "number",
172
+ value: cursor.readInt16()
173
+ };
174
+ case 4: return {
175
+ kind: "number",
176
+ value: cursor.readInt32()
177
+ };
178
+ case -5: return {
179
+ kind: "number",
180
+ value: Number(cursor.readBigInt64())
181
+ };
182
+ case 6:
183
+ case 7:
184
+ case 8: return {
185
+ kind: "number",
186
+ value: cursor.readFloat64()
187
+ };
188
+ case 2:
189
+ case 3: {
190
+ const byteLength = cursor.readInt32();
191
+ const magnitudeBytes = cursor.readBytes(byteLength);
192
+ const scale = cursor.readInt32();
193
+ return {
194
+ kind: "number",
195
+ value: decimalNumberFromUnscaled(signedBigIntFromBytes(magnitudeBytes), scale)
196
+ };
197
+ }
198
+ case 16: return {
199
+ kind: "boolean",
200
+ value: cursor.readUint8() !== 0
201
+ };
202
+ case 91: return {
203
+ kind: "date",
204
+ value: formatLocalDate(cursor.readBigInt64())
205
+ };
206
+ case 92: return {
207
+ kind: "time",
208
+ value: formatLocalTime(cursor.readBigInt64())
209
+ };
210
+ case 93: return {
211
+ kind: "date",
212
+ value: formatLocalTimestamp(cursor.readBigInt64(), cursor.readInt32())
213
+ };
214
+ default: throw new HsqldbRowFormatError(`unsupported SQL type code ${typeCode} while decoding a row value`);
215
+ }
216
+ }
217
+ //#endregion
218
+ export { HsqldbDataCursor, HsqldbRowFormatError, readHsqldbColumnValue, resolveHsqldbTypeCode };