wiki-graph-core 0.3.1

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 (576) hide show
  1. package/LICENSE +201 -0
  2. package/data/editor/clue_reviewer.jinja +410 -0
  3. package/data/editor/clue_reviewer_generator.jinja +428 -0
  4. package/data/editor/revision_feedback.jinja +5 -0
  5. package/data/editor/text_compressor.jinja +127 -0
  6. package/data/guaranteed/response_intent_classifier.jinja +8 -0
  7. package/data/help/commands/archive/next.jinja +29 -0
  8. package/data/help/commands/gc.jinja +38 -0
  9. package/data/help/commands/legacy/migrate.jinja +20 -0
  10. package/data/help/commands/legacy.jinja +19 -0
  11. package/data/help/commands/maintenance/chapter/add.jinja +41 -0
  12. package/data/help/commands/maintenance/chapter/list.jinja +33 -0
  13. package/data/help/commands/maintenance/chapter/move.jinja +36 -0
  14. package/data/help/commands/maintenance/chapter/remove.jinja +26 -0
  15. package/data/help/commands/maintenance/chapter/reset.jinja +29 -0
  16. package/data/help/commands/maintenance/chapter/set-source.jinja +34 -0
  17. package/data/help/commands/maintenance/chapter/set-summary.jinja +31 -0
  18. package/data/help/commands/maintenance/chapter/set-title.jinja +29 -0
  19. package/data/help/commands/maintenance/chapter/tree.jinja +58 -0
  20. package/data/help/commands/maintenance/chapter.jinja +59 -0
  21. package/data/help/commands/maintenance/cover.jinja +28 -0
  22. package/data/help/commands/maintenance/meta.jinja +55 -0
  23. package/data/help/commands/predicate.jinja +460 -0
  24. package/data/help/commands/root.jinja +83 -0
  25. package/data/help/commands/transform.jinja +34 -0
  26. package/data/help/commands/uri.jinja +274 -0
  27. package/data/help/topics/config.jinja +88 -0
  28. package/data/help/topics/format.jinja +72 -0
  29. package/data/help/topics/readiness.jinja +99 -0
  30. package/data/help/topics/recipe.jinja +151 -0
  31. package/data/help/topics/runtime.jinja +62 -0
  32. package/data/help/topics/uri.jinja +178 -0
  33. package/data/output/epub/cover.xhtml.jinja +13 -0
  34. package/data/output/epub/nav.xhtml.jinja +12 -0
  35. package/data/output/epub/package.opf.xml.jinja +39 -0
  36. package/data/output/epub/section.xhtml.jinja +12 -0
  37. package/data/topologization/book_coherence_extraction.jinja +223 -0
  38. package/data/topologization/chunk_extraction.jinja +233 -0
  39. package/data/topologization/evidence_choice.jinja +38 -0
  40. package/data/topologization/translate_chunks.jinja +138 -0
  41. package/data/topologization/user_focused_extraction.jinja +378 -0
  42. package/dist/archive/query/archive-view.d.ts +26 -0
  43. package/dist/archive/query/archive-view.js +4540 -0
  44. package/dist/archive/query/archive-view.js.map +1 -0
  45. package/dist/archive/query/continuation-cursor.d.ts +61 -0
  46. package/dist/archive/query/continuation-cursor.js +363 -0
  47. package/dist/archive/query/continuation-cursor.js.map +1 -0
  48. package/dist/archive/query/index.d.ts +29 -0
  49. package/dist/archive/query/index.js +63 -0
  50. package/dist/archive/query/index.js.map +1 -0
  51. package/dist/archive/query/lexical-search.d.ts +22 -0
  52. package/dist/archive/query/lexical-search.js +137 -0
  53. package/dist/archive/query/lexical-search.js.map +1 -0
  54. package/dist/archive/query/search-cache.d.ts +192 -0
  55. package/dist/archive/query/search-cache.js +1248 -0
  56. package/dist/archive/query/search-cache.js.map +1 -0
  57. package/dist/archive/search-index/index.d.ts +26 -0
  58. package/dist/archive/search-index/index.js +29 -0
  59. package/dist/archive/search-index/index.js.map +1 -0
  60. package/dist/archive/search-index/search-index.d.ts +26 -0
  61. package/dist/archive/search-index/search-index.js +555 -0
  62. package/dist/archive/search-index/search-index.js.map +1 -0
  63. package/dist/archive/search-index/search-tokenizer.d.ts +16 -0
  64. package/dist/archive/search-index/search-tokenizer.js +225 -0
  65. package/dist/archive/search-index/search-tokenizer.js.map +1 -0
  66. package/dist/common/cli-command.d.ts +4 -0
  67. package/dist/common/cli-command.js +7 -0
  68. package/dist/common/cli-command.js.map +1 -0
  69. package/dist/common/data-dir.d.ts +3 -0
  70. package/dist/common/data-dir.js +48 -0
  71. package/dist/common/data-dir.js.map +1 -0
  72. package/dist/common/language.d.ts +55 -0
  73. package/dist/common/language.js +208 -0
  74. package/dist/common/language.js.map +1 -0
  75. package/dist/common/llm-scope.d.ts +19 -0
  76. package/dist/common/llm-scope.js +31 -0
  77. package/dist/common/llm-scope.js.map +1 -0
  78. package/dist/common/logging.d.ts +22 -0
  79. package/dist/common/logging.js +141 -0
  80. package/dist/common/logging.js.map +1 -0
  81. package/dist/common/template.d.ts +8 -0
  82. package/dist/common/template.js +54 -0
  83. package/dist/common/template.js.map +1 -0
  84. package/dist/common/tinyld-language.d.ts +6 -0
  85. package/dist/common/tinyld-language.js +34 -0
  86. package/dist/common/tinyld-language.js.map +1 -0
  87. package/dist/common/wiki-graph-dir.d.ts +10 -0
  88. package/dist/common/wiki-graph-dir.js +41 -0
  89. package/dist/common/wiki-graph-dir.js.map +1 -0
  90. package/dist/common/wiki-graph-temp.d.ts +6 -0
  91. package/dist/common/wiki-graph-temp.js +21 -0
  92. package/dist/common/wiki-graph-temp.js.map +1 -0
  93. package/dist/common/wiki-graph-uri.d.ts +28 -0
  94. package/dist/common/wiki-graph-uri.js +171 -0
  95. package/dist/common/wiki-graph-uri.js.map +1 -0
  96. package/dist/context/index.d.ts +1 -0
  97. package/dist/context/index.js +13 -0
  98. package/dist/context/index.js.map +1 -0
  99. package/dist/context/task-context.d.ts +41 -0
  100. package/dist/context/task-context.js +111 -0
  101. package/dist/context/task-context.js.map +1 -0
  102. package/dist/document/database.d.ts +30 -0
  103. package/dist/document/database.js +273 -0
  104. package/dist/document/database.js.map +1 -0
  105. package/dist/document/document.d.ts +153 -0
  106. package/dist/document/document.js +615 -0
  107. package/dist/document/document.js.map +1 -0
  108. package/dist/document/fragments.d.ts +63 -0
  109. package/dist/document/fragments.js +371 -0
  110. package/dist/document/fragments.js.map +1 -0
  111. package/dist/document/index.d.ts +13 -0
  112. package/dist/document/index.js +62 -0
  113. package/dist/document/index.js.map +1 -0
  114. package/dist/document/schema.d.ts +8 -0
  115. package/dist/document/schema.js +472 -0
  116. package/dist/document/schema.js.map +1 -0
  117. package/dist/document/shared-state-database.d.ts +9 -0
  118. package/dist/document/shared-state-database.js +193 -0
  119. package/dist/document/shared-state-database.js.map +1 -0
  120. package/dist/document/stores.d.ts +203 -0
  121. package/dist/document/stores.js +1678 -0
  122. package/dist/document/stores.js.map +1 -0
  123. package/dist/document/text-streams.d.ts +86 -0
  124. package/dist/document/text-streams.js +515 -0
  125. package/dist/document/text-streams.js.map +1 -0
  126. package/dist/document/types.d.ts +148 -0
  127. package/dist/document/types.js +69 -0
  128. package/dist/document/types.js.map +1 -0
  129. package/dist/editor/clue.d.ts +27 -0
  130. package/dist/editor/clue.js +158 -0
  131. package/dist/editor/clue.js.map +1 -0
  132. package/dist/editor/compressor.d.ts +18 -0
  133. package/dist/editor/compressor.js +68 -0
  134. package/dist/editor/compressor.js.map +1 -0
  135. package/dist/editor/editor.d.ts +39 -0
  136. package/dist/editor/editor.js +253 -0
  137. package/dist/editor/editor.js.map +1 -0
  138. package/dist/editor/feedback.d.ts +16 -0
  139. package/dist/editor/feedback.js +104 -0
  140. package/dist/editor/feedback.js.map +1 -0
  141. package/dist/editor/index.d.ts +17 -0
  142. package/dist/editor/index.js +5 -0
  143. package/dist/editor/index.js.map +1 -0
  144. package/dist/editor/language-review.d.ts +14 -0
  145. package/dist/editor/language-review.js +35 -0
  146. package/dist/editor/language-review.js.map +1 -0
  147. package/dist/editor/log.d.ts +37 -0
  148. package/dist/editor/log.js +202 -0
  149. package/dist/editor/log.js.map +1 -0
  150. package/dist/editor/markup.d.ts +20 -0
  151. package/dist/editor/markup.js +294 -0
  152. package/dist/editor/markup.js.map +1 -0
  153. package/dist/editor/prompt-templates.d.ts +6 -0
  154. package/dist/editor/prompt-templates.js +11 -0
  155. package/dist/editor/prompt-templates.js.map +1 -0
  156. package/dist/editor/response.d.ts +5 -0
  157. package/dist/editor/response.js +31 -0
  158. package/dist/editor/response.js.map +1 -0
  159. package/dist/editor/review.d.ts +34 -0
  160. package/dist/editor/review.js +189 -0
  161. package/dist/editor/review.js.map +1 -0
  162. package/dist/editor/types.d.ts +31 -0
  163. package/dist/editor/types.js +21 -0
  164. package/dist/editor/types.js.map +1 -0
  165. package/dist/evidence-selection/anchor-resolver.d.ts +43 -0
  166. package/dist/evidence-selection/anchor-resolver.js +783 -0
  167. package/dist/evidence-selection/anchor-resolver.js.map +1 -0
  168. package/dist/evidence-selection/anchor-types.d.ts +27 -0
  169. package/dist/evidence-selection/anchor-types.js +1 -0
  170. package/dist/evidence-selection/anchor-types.js.map +1 -0
  171. package/dist/evidence-selection/index.d.ts +8 -0
  172. package/dist/evidence-selection/index.js +32 -0
  173. package/dist/evidence-selection/index.js.map +1 -0
  174. package/dist/evidence-selection/prompt.d.ts +18 -0
  175. package/dist/evidence-selection/prompt.js +54 -0
  176. package/dist/evidence-selection/prompt.js.map +1 -0
  177. package/dist/evidence-selection/quote-score.d.ts +29 -0
  178. package/dist/evidence-selection/quote-score.js +331 -0
  179. package/dist/evidence-selection/quote-score.js.map +1 -0
  180. package/dist/evidence-selection/selection-resolver.d.ts +19 -0
  181. package/dist/evidence-selection/selection-resolver.js +303 -0
  182. package/dist/evidence-selection/selection-resolver.js.map +1 -0
  183. package/dist/evidence-selection/text.d.ts +4 -0
  184. package/dist/evidence-selection/text.js +66 -0
  185. package/dist/evidence-selection/text.js.map +1 -0
  186. package/dist/evidence-selection/types.d.ts +36 -0
  187. package/dist/evidence-selection/types.js +1 -0
  188. package/dist/evidence-selection/types.js.map +1 -0
  189. package/dist/facade/app.d.ts +75 -0
  190. package/dist/facade/app.js +141 -0
  191. package/dist/facade/app.js.map +1 -0
  192. package/dist/facade/build-queue.d.ts +181 -0
  193. package/dist/facade/build-queue.js +1442 -0
  194. package/dist/facade/build-queue.js.map +1 -0
  195. package/dist/facade/chapter-build.d.ts +60 -0
  196. package/dist/facade/chapter-build.js +1020 -0
  197. package/dist/facade/chapter-build.js.map +1 -0
  198. package/dist/facade/chapter.d.ts +168 -0
  199. package/dist/facade/chapter.js +944 -0
  200. package/dist/facade/chapter.js.map +1 -0
  201. package/dist/facade/digest.d.ts +55 -0
  202. package/dist/facade/digest.js +168 -0
  203. package/dist/facade/digest.js.map +1 -0
  204. package/dist/facade/graph.d.ts +60 -0
  205. package/dist/facade/graph.js +203 -0
  206. package/dist/facade/graph.js.map +1 -0
  207. package/dist/facade/import.d.ts +49 -0
  208. package/dist/facade/import.js +262 -0
  209. package/dist/facade/import.js.map +1 -0
  210. package/dist/facade/index.d.ts +39 -0
  211. package/dist/facade/index.js +171 -0
  212. package/dist/facade/index.js.map +1 -0
  213. package/dist/facade/knowledge-graph-build.d.ts +75 -0
  214. package/dist/facade/knowledge-graph-build.js +897 -0
  215. package/dist/facade/knowledge-graph-build.js.map +1 -0
  216. package/dist/facade/llm-sampling.d.ts +11 -0
  217. package/dist/facade/llm-sampling.js +58 -0
  218. package/dist/facade/llm-sampling.js.map +1 -0
  219. package/dist/facade/types.d.ts +8 -0
  220. package/dist/facade/types.js +1 -0
  221. package/dist/facade/types.js.map +1 -0
  222. package/dist/facade/wiki-graph-archive.d.ts +41 -0
  223. package/dist/facade/wiki-graph-archive.js +130 -0
  224. package/dist/facade/wiki-graph-archive.js.map +1 -0
  225. package/dist/gc/files.d.ts +15 -0
  226. package/dist/gc/files.js +141 -0
  227. package/dist/gc/files.js.map +1 -0
  228. package/dist/gc/index.d.ts +2 -0
  229. package/dist/gc/index.js +5 -0
  230. package/dist/gc/index.js.map +1 -0
  231. package/dist/gc/lock.d.ts +3 -0
  232. package/dist/gc/lock.js +137 -0
  233. package/dist/gc/lock.js.map +1 -0
  234. package/dist/gc/runner.d.ts +9 -0
  235. package/dist/gc/runner.js +129 -0
  236. package/dist/gc/runner.js.map +1 -0
  237. package/dist/gc/tmp-gc.d.ts +5 -0
  238. package/dist/gc/tmp-gc.js +57 -0
  239. package/dist/gc/tmp-gc.js.map +1 -0
  240. package/dist/gc/types.d.ts +24 -0
  241. package/dist/gc/types.js +1 -0
  242. package/dist/gc/types.js.map +1 -0
  243. package/dist/gc.cjs +10041 -0
  244. package/dist/gc.cjs.map +1 -0
  245. package/dist/gc.d.cts +10 -0
  246. package/dist/gc.d.ts +2 -0
  247. package/dist/gc.js +5 -0
  248. package/dist/gc.js.map +1 -0
  249. package/dist/guaranteed/classifier.d.ts +10 -0
  250. package/dist/guaranteed/classifier.js +88 -0
  251. package/dist/guaranteed/classifier.js.map +1 -0
  252. package/dist/guaranteed/errors.d.ts +38 -0
  253. package/dist/guaranteed/errors.js +73 -0
  254. package/dist/guaranteed/errors.js.map +1 -0
  255. package/dist/guaranteed/index.d.ts +7 -0
  256. package/dist/guaranteed/index.js +21 -0
  257. package/dist/guaranteed/index.js.map +1 -0
  258. package/dist/guaranteed/request.d.ts +8 -0
  259. package/dist/guaranteed/request.js +206 -0
  260. package/dist/guaranteed/request.js.map +1 -0
  261. package/dist/guaranteed/response.d.ts +12 -0
  262. package/dist/guaranteed/response.js +98 -0
  263. package/dist/guaranteed/response.js.map +1 -0
  264. package/dist/guaranteed/types.d.ts +20 -0
  265. package/dist/guaranteed/types.js +1 -0
  266. package/dist/guaranteed/types.js.map +1 -0
  267. package/dist/index-B8NNnQ8P.d.ts +424 -0
  268. package/dist/index.cjs +34774 -0
  269. package/dist/index.cjs.map +1 -0
  270. package/dist/index.d.cts +2462 -0
  271. package/dist/index.d.ts +79 -0
  272. package/dist/index.js +168 -0
  273. package/dist/index.js.map +1 -0
  274. package/dist/legacy-sdpub/upgrade.d.ts +7 -0
  275. package/dist/legacy-sdpub/upgrade.js +795 -0
  276. package/dist/legacy-sdpub/upgrade.js.map +1 -0
  277. package/dist/llm/cache.d.ts +13 -0
  278. package/dist/llm/cache.js +35 -0
  279. package/dist/llm/cache.js.map +1 -0
  280. package/dist/llm/client.d.ts +26 -0
  281. package/dist/llm/client.js +572 -0
  282. package/dist/llm/client.js.map +1 -0
  283. package/dist/llm/context.d.ts +22 -0
  284. package/dist/llm/context.js +78 -0
  285. package/dist/llm/context.js.map +1 -0
  286. package/dist/llm/errors.d.ts +7 -0
  287. package/dist/llm/errors.js +12 -0
  288. package/dist/llm/errors.js.map +1 -0
  289. package/dist/llm/index.d.ts +7 -0
  290. package/dist/llm/index.js +17 -0
  291. package/dist/llm/index.js.map +1 -0
  292. package/dist/llm/request-log.d.ts +9 -0
  293. package/dist/llm/request-log.js +35 -0
  294. package/dist/llm/request-log.js.map +1 -0
  295. package/dist/llm/sampling.d.ts +11 -0
  296. package/dist/llm/sampling.js +67 -0
  297. package/dist/llm/sampling.js.map +1 -0
  298. package/dist/llm/types.d.ts +50 -0
  299. package/dist/llm/types.js +1 -0
  300. package/dist/llm/types.js.map +1 -0
  301. package/dist/output/epub/archive.d.ts +9 -0
  302. package/dist/output/epub/archive.js +81 -0
  303. package/dist/output/epub/archive.js.map +1 -0
  304. package/dist/output/epub/book.d.ts +15 -0
  305. package/dist/output/epub/book.js +76 -0
  306. package/dist/output/epub/book.js.map +1 -0
  307. package/dist/output/epub/content.d.ts +9 -0
  308. package/dist/output/epub/content.js +35 -0
  309. package/dist/output/epub/content.js.map +1 -0
  310. package/dist/output/epub/index.d.ts +20 -0
  311. package/dist/output/epub/index.js +14 -0
  312. package/dist/output/epub/index.js.map +1 -0
  313. package/dist/output/epub/model.d.ts +24 -0
  314. package/dist/output/epub/model.js +1 -0
  315. package/dist/output/epub/model.js.map +1 -0
  316. package/dist/output/epub/navigation.d.ts +10 -0
  317. package/dist/output/epub/navigation.js +39 -0
  318. package/dist/output/epub/navigation.js.map +1 -0
  319. package/dist/output/epub/package.d.ts +17 -0
  320. package/dist/output/epub/package.js +29 -0
  321. package/dist/output/epub/package.js.map +1 -0
  322. package/dist/output/epub/shared.d.ts +4 -0
  323. package/dist/output/epub/shared.js +12 -0
  324. package/dist/output/epub/shared.js.map +1 -0
  325. package/dist/output/epub/templates.d.ts +35 -0
  326. package/dist/output/epub/templates.js +26 -0
  327. package/dist/output/epub/templates.js.map +1 -0
  328. package/dist/output/index.d.ts +14 -0
  329. package/dist/output/index.js +11 -0
  330. package/dist/output/index.js.map +1 -0
  331. package/dist/output/plain-text.d.ts +18 -0
  332. package/dist/output/plain-text.js +56 -0
  333. package/dist/output/plain-text.js.map +1 -0
  334. package/dist/progress/index.d.ts +3 -0
  335. package/dist/progress/index.js +14 -0
  336. package/dist/progress/index.js.map +1 -0
  337. package/dist/progress/reporter.d.ts +10 -0
  338. package/dist/progress/reporter.js +79 -0
  339. package/dist/progress/reporter.js.map +1 -0
  340. package/dist/progress/tracker.d.ts +37 -0
  341. package/dist/progress/tracker.js +119 -0
  342. package/dist/progress/tracker.js.map +1 -0
  343. package/dist/progress/types.d.ts +28 -0
  344. package/dist/progress/types.js +1 -0
  345. package/dist/progress/types.js.map +1 -0
  346. package/dist/reader/attention/attention.d.ts +39 -0
  347. package/dist/reader/attention/attention.js +123 -0
  348. package/dist/reader/attention/attention.js.map +1 -0
  349. package/dist/reader/attention/index.d.ts +9 -0
  350. package/dist/reader/attention/index.js +5 -0
  351. package/dist/reader/attention/index.js.map +1 -0
  352. package/dist/reader/attention/wave-reflection.d.ts +21 -0
  353. package/dist/reader/attention/wave-reflection.js +153 -0
  354. package/dist/reader/attention/wave-reflection.js.map +1 -0
  355. package/dist/reader/attention/working-memory.d.ts +28 -0
  356. package/dist/reader/attention/working-memory.js +62 -0
  357. package/dist/reader/attention/working-memory.js.map +1 -0
  358. package/dist/reader/chunk-batch/extract.d.ts +13 -0
  359. package/dist/reader/chunk-batch/extract.js +14 -0
  360. package/dist/reader/chunk-batch/extract.js.map +1 -0
  361. package/dist/reader/chunk-batch/extractor.d.ts +17 -0
  362. package/dist/reader/chunk-batch/extractor.js +337 -0
  363. package/dist/reader/chunk-batch/extractor.js.map +1 -0
  364. package/dist/reader/chunk-batch/fragment-projection.d.ts +34 -0
  365. package/dist/reader/chunk-batch/fragment-projection.js +94 -0
  366. package/dist/reader/chunk-batch/fragment-projection.js.map +1 -0
  367. package/dist/reader/chunk-batch/index.d.ts +12 -0
  368. package/dist/reader/chunk-batch/index.js +13 -0
  369. package/dist/reader/chunk-batch/index.js.map +1 -0
  370. package/dist/reader/chunk-batch/language.d.ts +9 -0
  371. package/dist/reader/chunk-batch/language.js +23 -0
  372. package/dist/reader/chunk-batch/language.js.map +1 -0
  373. package/dist/reader/chunk-batch/parser.d.ts +94 -0
  374. package/dist/reader/chunk-batch/parser.js +640 -0
  375. package/dist/reader/chunk-batch/parser.js.map +1 -0
  376. package/dist/reader/chunk-batch/prompt-templates.d.ts +6 -0
  377. package/dist/reader/chunk-batch/prompt-templates.js +11 -0
  378. package/dist/reader/chunk-batch/prompt-templates.js.map +1 -0
  379. package/dist/reader/chunk-batch/types.d.ts +85 -0
  380. package/dist/reader/chunk-batch/types.js +1 -0
  381. package/dist/reader/chunk-batch/types.js.map +1 -0
  382. package/dist/reader/index.d.ts +13 -0
  383. package/dist/reader/index.js +7 -0
  384. package/dist/reader/index.js.map +1 -0
  385. package/dist/reader/reader.d.ts +37 -0
  386. package/dist/reader/reader.js +82 -0
  387. package/dist/reader/reader.js.map +1 -0
  388. package/dist/reader/segment/index.d.ts +2 -0
  389. package/dist/reader/segment/index.js +5 -0
  390. package/dist/reader/segment/index.js.map +1 -0
  391. package/dist/reader/segment/intl-segmenter.d.ts +5 -0
  392. package/dist/reader/segment/intl-segmenter.js +102 -0
  393. package/dist/reader/segment/intl-segmenter.js.map +1 -0
  394. package/dist/reader/segment/segment.d.ts +5 -0
  395. package/dist/reader/segment/segment.js +9 -0
  396. package/dist/reader/segment/segment.js.map +1 -0
  397. package/dist/reader/segment/types.d.ts +14 -0
  398. package/dist/reader/segment/types.js +1 -0
  399. package/dist/reader/segment/types.js.map +1 -0
  400. package/dist/reader/types.d.ts +29 -0
  401. package/dist/reader/types.js +1 -0
  402. package/dist/reader/types.js.map +1 -0
  403. package/dist/serial.d.ts +89 -0
  404. package/dist/serial.js +476 -0
  405. package/dist/serial.js.map +1 -0
  406. package/dist/source/adapter.d.ts +15 -0
  407. package/dist/source/adapter.js +1 -0
  408. package/dist/source/adapter.js.map +1 -0
  409. package/dist/source/epub/archive.d.ts +27 -0
  410. package/dist/source/epub/archive.js +189 -0
  411. package/dist/source/epub/archive.js.map +1 -0
  412. package/dist/source/epub/content.d.ts +22 -0
  413. package/dist/source/epub/content.js +183 -0
  414. package/dist/source/epub/content.js.map +1 -0
  415. package/dist/source/epub/document.d.ts +55 -0
  416. package/dist/source/epub/document.js +179 -0
  417. package/dist/source/epub/document.js.map +1 -0
  418. package/dist/source/epub/index.d.ts +10 -0
  419. package/dist/source/epub/index.js +6 -0
  420. package/dist/source/epub/index.js.map +1 -0
  421. package/dist/source/epub/navigation.d.ts +16 -0
  422. package/dist/source/epub/navigation.js +215 -0
  423. package/dist/source/epub/navigation.js.map +1 -0
  424. package/dist/source/epub/package.d.ts +33 -0
  425. package/dist/source/epub/package.js +237 -0
  426. package/dist/source/epub/package.js.map +1 -0
  427. package/dist/source/epub/xml.d.ts +16 -0
  428. package/dist/source/epub/xml.js +111 -0
  429. package/dist/source/epub/xml.js.map +1 -0
  430. package/dist/source/index.d.ts +12 -0
  431. package/dist/source/index.js +32 -0
  432. package/dist/source/index.js.map +1 -0
  433. package/dist/source/meta.d.ts +30 -0
  434. package/dist/source/meta.js +22 -0
  435. package/dist/source/meta.js.map +1 -0
  436. package/dist/source/plain-text.d.ts +16 -0
  437. package/dist/source/plain-text.js +86 -0
  438. package/dist/source/plain-text.js.map +1 -0
  439. package/dist/source/toc.d.ts +16 -0
  440. package/dist/source/toc.js +17 -0
  441. package/dist/source/toc.js.map +1 -0
  442. package/dist/source/types.d.ts +16 -0
  443. package/dist/source/types.js +1 -0
  444. package/dist/source/types.js.map +1 -0
  445. package/dist/topology/grouping.d.ts +15 -0
  446. package/dist/topology/grouping.js +18 -0
  447. package/dist/topology/grouping.js.map +1 -0
  448. package/dist/topology/index.d.ts +21 -0
  449. package/dist/topology/index.js +5 -0
  450. package/dist/topology/index.js.map +1 -0
  451. package/dist/topology/resource-segmentation.d.ts +13 -0
  452. package/dist/topology/resource-segmentation.js +111 -0
  453. package/dist/topology/resource-segmentation.js.map +1 -0
  454. package/dist/topology/segment-incision.d.ts +18 -0
  455. package/dist/topology/segment-incision.js +197 -0
  456. package/dist/topology/segment-incision.js.map +1 -0
  457. package/dist/topology/snake-detector.d.ts +13 -0
  458. package/dist/topology/snake-detector.js +520 -0
  459. package/dist/topology/snake-detector.js.map +1 -0
  460. package/dist/topology/snake-graph-builder.d.ts +14 -0
  461. package/dist/topology/snake-graph-builder.js +76 -0
  462. package/dist/topology/snake-graph-builder.js.map +1 -0
  463. package/dist/topology/topology.d.ts +29 -0
  464. package/dist/topology/topology.js +348 -0
  465. package/dist/topology/topology.js.map +1 -0
  466. package/dist/topology/weights.d.ts +10 -0
  467. package/dist/topology/weights.js +84 -0
  468. package/dist/topology/weights.js.map +1 -0
  469. package/dist/types-FVIqiLC9.d.cts +24 -0
  470. package/dist/utils/async-semaphore.d.ts +7 -0
  471. package/dist/utils/async-semaphore.js +40 -0
  472. package/dist/utils/async-semaphore.js.map +1 -0
  473. package/dist/utils/enum.d.ts +5 -0
  474. package/dist/utils/enum.js +18 -0
  475. package/dist/utils/enum.js.map +1 -0
  476. package/dist/utils/hash.d.ts +3 -0
  477. package/dist/utils/hash.js +132 -0
  478. package/dist/utils/hash.js.map +1 -0
  479. package/dist/utils/node-error.d.ts +4 -0
  480. package/dist/utils/node-error.js +59 -0
  481. package/dist/utils/node-error.js.map +1 -0
  482. package/dist/wikg/archive-uri.d.ts +1 -0
  483. package/dist/wikg/archive-uri.js +37 -0
  484. package/dist/wikg/archive-uri.js.map +1 -0
  485. package/dist/wikg/archive.d.ts +28 -0
  486. package/dist/wikg/archive.js +496 -0
  487. package/dist/wikg/archive.js.map +1 -0
  488. package/dist/wikg/index.d.ts +31 -0
  489. package/dist/wikg/index.js +60 -0
  490. package/dist/wikg/index.js.map +1 -0
  491. package/dist/wikg/wikg-coordinator.d.ts +45 -0
  492. package/dist/wikg/wikg-coordinator.js +1687 -0
  493. package/dist/wikg/wikg-coordinator.js.map +1 -0
  494. package/dist/wikg/wiki-graph-archive-file.d.ts +42 -0
  495. package/dist/wikg/wiki-graph-archive-file.js +78 -0
  496. package/dist/wikg/wiki-graph-archive-file.js.map +1 -0
  497. package/dist/wikilink/index.d.ts +10 -0
  498. package/dist/wikilink/index.js +7 -0
  499. package/dist/wikilink/index.js.map +1 -0
  500. package/dist/wikilink/relation-discovery.d.ts +31 -0
  501. package/dist/wikilink/relation-discovery.js +477 -0
  502. package/dist/wikilink/relation-discovery.js.map +1 -0
  503. package/dist/wikilink/types.d.ts +23 -0
  504. package/dist/wikilink/types.js +1 -0
  505. package/dist/wikilink/types.js.map +1 -0
  506. package/dist/wikilink/window.d.ts +7 -0
  507. package/dist/wikilink/window.js +53 -0
  508. package/dist/wikilink/window.js.map +1 -0
  509. package/dist/wikimatch/enrichment.d.ts +10 -0
  510. package/dist/wikimatch/enrichment.js +55 -0
  511. package/dist/wikimatch/enrichment.js.map +1 -0
  512. package/dist/wikimatch/index.d.ts +16 -0
  513. package/dist/wikimatch/index.js +66 -0
  514. package/dist/wikimatch/index.js.map +1 -0
  515. package/dist/wikimatch/option-narrowing.d.ts +17 -0
  516. package/dist/wikimatch/option-narrowing.js +208 -0
  517. package/dist/wikimatch/option-narrowing.js.map +1 -0
  518. package/dist/wikimatch/options.d.ts +14 -0
  519. package/dist/wikimatch/options.js +155 -0
  520. package/dist/wikimatch/options.js.map +1 -0
  521. package/dist/wikimatch/policy-judge.d.ts +17 -0
  522. package/dist/wikimatch/policy-judge.js +430 -0
  523. package/dist/wikimatch/policy-judge.js.map +1 -0
  524. package/dist/wikimatch/range-suppression.d.ts +9 -0
  525. package/dist/wikimatch/range-suppression.js +27 -0
  526. package/dist/wikimatch/range-suppression.js.map +1 -0
  527. package/dist/wikimatch/surface-screening.d.ts +16 -0
  528. package/dist/wikimatch/surface-screening.js +168 -0
  529. package/dist/wikimatch/surface-screening.js.map +1 -0
  530. package/dist/wikimatch/surface-window.d.ts +6 -0
  531. package/dist/wikimatch/surface-window.js +44 -0
  532. package/dist/wikimatch/surface-window.js.map +1 -0
  533. package/dist/wikimatch/types.d.ts +151 -0
  534. package/dist/wikimatch/types.js +1 -0
  535. package/dist/wikimatch/types.js.map +1 -0
  536. package/dist/wikimatch/wikispine.d.ts +43 -0
  537. package/dist/wikimatch/wikispine.js +399 -0
  538. package/dist/wikimatch/wikispine.js.map +1 -0
  539. package/dist/wikimatch/window.d.ts +6 -0
  540. package/dist/wikimatch/window.js +83 -0
  541. package/dist/wikimatch/window.js.map +1 -0
  542. package/dist/wikimatch/words.d.ts +16 -0
  543. package/dist/wikimatch/words.js +66 -0
  544. package/dist/wikimatch/words.js.map +1 -0
  545. package/dist/wikipage/cache.d.ts +18 -0
  546. package/dist/wikipage/cache.js +404 -0
  547. package/dist/wikipage/cache.js.map +1 -0
  548. package/dist/wikipage/fetch-log.d.ts +17 -0
  549. package/dist/wikipage/fetch-log.js +143 -0
  550. package/dist/wikipage/fetch-log.js.map +1 -0
  551. package/dist/wikipage/index.d.ts +14 -0
  552. package/dist/wikipage/index.js +17 -0
  553. package/dist/wikipage/index.js.map +1 -0
  554. package/dist/wikipage/normalizer.d.ts +14 -0
  555. package/dist/wikipage/normalizer.js +147 -0
  556. package/dist/wikipage/normalizer.js.map +1 -0
  557. package/dist/wikipage/rate-limiter.d.ts +13 -0
  558. package/dist/wikipage/rate-limiter.js +84 -0
  559. package/dist/wikipage/rate-limiter.js.map +1 -0
  560. package/dist/wikipage/resolver.d.ts +26 -0
  561. package/dist/wikipage/resolver.js +325 -0
  562. package/dist/wikipage/resolver.js.map +1 -0
  563. package/dist/wikipage/types.d.ts +96 -0
  564. package/dist/wikipage/types.js +1 -0
  565. package/dist/wikipage/types.js.map +1 -0
  566. package/dist/wikipage/wikimedia-client.d.ts +48 -0
  567. package/dist/wikipage/wikimedia-client.js +397 -0
  568. package/dist/wikipage/wikimedia-client.js.map +1 -0
  569. package/dist/worker-BgQ0Xl8T.d.cts +181 -0
  570. package/dist/worker.cjs +5259 -0
  571. package/dist/worker.cjs.map +1 -0
  572. package/dist/worker.d.cts +2 -0
  573. package/dist/worker.d.ts +2 -0
  574. package/dist/worker.js +5 -0
  575. package/dist/worker.js.map +1 -0
  576. package/package.json +78 -0
@@ -0,0 +1,40 @@
1
+ class AsyncSemaphore {
2
+ #activeCount = 0;
3
+ #concurrency;
4
+ #pendingResolvers = [];
5
+ constructor(concurrency) {
6
+ if (!Number.isInteger(concurrency) || concurrency < 1) {
7
+ throw new RangeError("concurrency must be a positive integer");
8
+ }
9
+ this.#concurrency = concurrency;
10
+ }
11
+ async use(operation) {
12
+ await this.#acquire();
13
+ try {
14
+ return await operation();
15
+ } finally {
16
+ this.#release();
17
+ }
18
+ }
19
+ async #acquire() {
20
+ if (this.#activeCount < this.#concurrency) {
21
+ this.#activeCount += 1;
22
+ return;
23
+ }
24
+ await new Promise((resolve) => {
25
+ this.#pendingResolvers.push(() => {
26
+ this.#activeCount += 1;
27
+ resolve();
28
+ });
29
+ });
30
+ }
31
+ #release() {
32
+ this.#activeCount -= 1;
33
+ const next = this.#pendingResolvers.shift();
34
+ next?.();
35
+ }
36
+ }
37
+ export {
38
+ AsyncSemaphore
39
+ };
40
+ //# sourceMappingURL=async-semaphore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/async-semaphore.ts"],"sourcesContent":["export class AsyncSemaphore {\n #activeCount = 0;\n readonly #concurrency: number;\n readonly #pendingResolvers: Array<() => void> = [];\n\n public constructor(concurrency: number) {\n if (!Number.isInteger(concurrency) || concurrency < 1) {\n throw new RangeError(\"concurrency must be a positive integer\");\n }\n\n this.#concurrency = concurrency;\n }\n\n public async use<T>(operation: () => Promise<T> | T): Promise<T> {\n await this.#acquire();\n\n try {\n return await operation();\n } finally {\n this.#release();\n }\n }\n\n async #acquire(): Promise<void> {\n if (this.#activeCount < this.#concurrency) {\n this.#activeCount += 1;\n return;\n }\n\n await new Promise<void>((resolve) => {\n this.#pendingResolvers.push(() => {\n this.#activeCount += 1;\n resolve();\n });\n });\n }\n\n #release(): void {\n this.#activeCount -= 1;\n\n const next = this.#pendingResolvers.shift();\n next?.();\n }\n}\n"],"mappings":"AAAO,MAAM,eAAe;AAAA,EAC1B,eAAe;AAAA,EACN;AAAA,EACA,oBAAuC,CAAC;AAAA,EAE1C,YAAY,aAAqB;AACtC,QAAI,CAAC,OAAO,UAAU,WAAW,KAAK,cAAc,GAAG;AACrD,YAAM,IAAI,WAAW,wCAAwC;AAAA,IAC/D;AAEA,SAAK,eAAe;AAAA,EACtB;AAAA,EAEA,MAAa,IAAO,WAA6C;AAC/D,UAAM,KAAK,SAAS;AAEpB,QAAI;AACF,aAAO,MAAM,UAAU;AAAA,IACzB,UAAE;AACA,WAAK,SAAS;AAAA,IAChB;AAAA,EACF;AAAA,EAEA,MAAM,WAA0B;AAC9B,QAAI,KAAK,eAAe,KAAK,cAAc;AACzC,WAAK,gBAAgB;AACrB;AAAA,IACF;AAEA,UAAM,IAAI,QAAc,CAAC,YAAY;AACnC,WAAK,kBAAkB,KAAK,MAAM;AAChC,aAAK,gBAAgB;AACrB,gBAAQ;AAAA,MACV,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEA,WAAiB;AACf,SAAK,gBAAgB;AAErB,UAAM,OAAO,KAAK,kBAAkB,MAAM;AAC1C,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -0,0 +1,5 @@
1
+ type EnumLike = Record<string, string>;
2
+ declare function createEnumValueGuard<TEnum extends EnumLike>(enumType: TEnum): (value: string) => value is TEnum[keyof TEnum];
3
+ declare function createEnumValueAsserter<TEnum extends EnumLike>(enumType: TEnum, label: string): (value: string) => TEnum[keyof TEnum];
4
+
5
+ export { createEnumValueAsserter, createEnumValueGuard };
@@ -0,0 +1,18 @@
1
+ function createEnumValueGuard(enumType) {
2
+ const valueSet = new Set(Object.values(enumType));
3
+ return (value) => valueSet.has(value);
4
+ }
5
+ function createEnumValueAsserter(enumType, label) {
6
+ const isEnumValue = createEnumValueGuard(enumType);
7
+ return (value) => {
8
+ if (isEnumValue(value)) {
9
+ return value;
10
+ }
11
+ throw new Error(`Unknown ${label}: ${value}`);
12
+ };
13
+ }
14
+ export {
15
+ createEnumValueAsserter,
16
+ createEnumValueGuard
17
+ };
18
+ //# sourceMappingURL=enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/enum.ts"],"sourcesContent":["type EnumLike = Record<string, string>;\n\nexport function createEnumValueGuard<TEnum extends EnumLike>(enumType: TEnum) {\n const valueSet = new Set<string>(Object.values(enumType));\n\n return (value: string): value is TEnum[keyof TEnum] => valueSet.has(value);\n}\n\nexport function createEnumValueAsserter<TEnum extends EnumLike>(\n enumType: TEnum,\n label: string,\n) {\n const isEnumValue = createEnumValueGuard(enumType);\n\n return (value: string): TEnum[keyof TEnum] => {\n if (isEnumValue(value)) {\n return value;\n }\n\n throw new Error(`Unknown ${label}: ${value}`);\n };\n}\n"],"mappings":"AAEO,SAAS,qBAA6C,UAAiB;AAC5E,QAAM,WAAW,IAAI,IAAY,OAAO,OAAO,QAAQ,CAAC;AAExD,SAAO,CAAC,UAA+C,SAAS,IAAI,KAAK;AAC3E;AAEO,SAAS,wBACd,UACA,OACA;AACA,QAAM,cAAc,qBAAqB,QAAQ;AAEjD,SAAO,CAAC,UAAsC;AAC5C,QAAI,YAAY,KAAK,GAAG;AACtB,aAAO;AAAA,IACT;AAEA,UAAM,IAAI,MAAM,WAAW,KAAK,KAAK,KAAK,EAAE;AAAA,EAC9C;AACF;","names":[]}
@@ -0,0 +1,3 @@
1
+ declare function createHash(value: unknown): string;
2
+
3
+ export { createHash };
@@ -0,0 +1,132 @@
1
+ import { createHash as createNodeHash } from "crypto";
2
+ const UNSERIALIZABLE = /* @__PURE__ */ Symbol("UNSERIALIZABLE");
3
+ function createHash(value) {
4
+ return new HashComputation().run(value);
5
+ }
6
+ class HashComputation {
7
+ #activeObjects = /* @__PURE__ */ new Set();
8
+ #hash = createNodeHash("sha512");
9
+ #resolvingObjects = /* @__PURE__ */ new Set();
10
+ run(value) {
11
+ const hasSerializedValue = this.#writeValue(value, "");
12
+ if (!hasSerializedValue) {
13
+ throw new TypeError("Hash input must be JSON-serializable");
14
+ }
15
+ return this.#hash.digest("hex");
16
+ }
17
+ #writeValue(value, key) {
18
+ const resolvedValue = this.#resolveValue(value, key);
19
+ if (resolvedValue === UNSERIALIZABLE) {
20
+ return false;
21
+ }
22
+ this.#writeResolvedValue(resolvedValue);
23
+ return true;
24
+ }
25
+ #writeResolvedValue(value) {
26
+ if (value === null) {
27
+ this.#hash.update("null", "utf8");
28
+ return;
29
+ }
30
+ if (typeof value === "string") {
31
+ this.#hash.update(JSON.stringify(value), "utf8");
32
+ return;
33
+ }
34
+ if (typeof value === "number") {
35
+ this.#hash.update(
36
+ Number.isFinite(value) ? String(value) : "null",
37
+ "utf8"
38
+ );
39
+ return;
40
+ }
41
+ if (typeof value === "boolean") {
42
+ this.#hash.update(value ? "true" : "false", "utf8");
43
+ return;
44
+ }
45
+ if (this.#activeObjects.has(value)) {
46
+ throw new TypeError("Hash input must be JSON-serializable");
47
+ }
48
+ this.#activeObjects.add(value);
49
+ try {
50
+ if (Array.isArray(value)) {
51
+ this.#writeArray(value);
52
+ return;
53
+ }
54
+ this.#writeObject(value);
55
+ } finally {
56
+ this.#activeObjects.delete(value);
57
+ }
58
+ }
59
+ #writeArray(values) {
60
+ this.#hash.update("[", "utf8");
61
+ for (const [index, value] of values.entries()) {
62
+ if (index > 0) {
63
+ this.#hash.update(",", "utf8");
64
+ }
65
+ const resolvedValue = this.#resolveValue(value, String(index));
66
+ if (resolvedValue === UNSERIALIZABLE) {
67
+ this.#hash.update("null", "utf8");
68
+ continue;
69
+ }
70
+ this.#writeResolvedValue(resolvedValue);
71
+ }
72
+ this.#hash.update("]", "utf8");
73
+ }
74
+ #writeObject(value) {
75
+ this.#hash.update("{", "utf8");
76
+ let hasWrittenProperty = false;
77
+ for (const key of Object.keys(value)) {
78
+ const propertyValue = value[key];
79
+ const resolvedValue = this.#resolveValue(propertyValue, key);
80
+ if (resolvedValue === UNSERIALIZABLE) {
81
+ continue;
82
+ }
83
+ if (hasWrittenProperty) {
84
+ this.#hash.update(",", "utf8");
85
+ }
86
+ this.#hash.update(JSON.stringify(key), "utf8");
87
+ this.#hash.update(":", "utf8");
88
+ this.#writeResolvedValue(resolvedValue);
89
+ hasWrittenProperty = true;
90
+ }
91
+ this.#hash.update("}", "utf8");
92
+ }
93
+ #resolveValue(value, key) {
94
+ if (value === null) {
95
+ return null;
96
+ }
97
+ if (typeof value === "string" || typeof value === "boolean") {
98
+ return value;
99
+ }
100
+ if (typeof value === "number") {
101
+ return Number.isFinite(value) ? value : null;
102
+ }
103
+ if (value === void 0 || typeof value === "function" || typeof value === "symbol") {
104
+ return UNSERIALIZABLE;
105
+ }
106
+ if (typeof value === "bigint") {
107
+ throw new TypeError("Hash input must be JSON-serializable");
108
+ }
109
+ if (value instanceof String || value instanceof Number || value instanceof Boolean) {
110
+ return this.#resolveValue(value.valueOf(), key);
111
+ }
112
+ if (!hasToJson(value)) {
113
+ return value;
114
+ }
115
+ if (this.#resolvingObjects.has(value)) {
116
+ throw new TypeError("Hash input must be JSON-serializable");
117
+ }
118
+ this.#resolvingObjects.add(value);
119
+ try {
120
+ return this.#resolveValue(value.toJSON(key), key);
121
+ } finally {
122
+ this.#resolvingObjects.delete(value);
123
+ }
124
+ }
125
+ }
126
+ function hasToJson(value) {
127
+ return "toJSON" in value && typeof value.toJSON === "function";
128
+ }
129
+ export {
130
+ createHash
131
+ };
132
+ //# sourceMappingURL=hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/hash.ts"],"sourcesContent":["import { createHash as createNodeHash } from \"crypto\";\n\nconst UNSERIALIZABLE = Symbol(\"UNSERIALIZABLE\");\n\ntype ResolvedHashValue = boolean | number | object | string | null;\n\nexport function createHash(value: unknown): string {\n return new HashComputation().run(value);\n}\n\nclass HashComputation {\n readonly #activeObjects = new Set<object>();\n readonly #hash = createNodeHash(\"sha512\");\n readonly #resolvingObjects = new Set<object>();\n\n public run(value: unknown): string {\n const hasSerializedValue = this.#writeValue(value, \"\");\n\n if (!hasSerializedValue) {\n throw new TypeError(\"Hash input must be JSON-serializable\");\n }\n\n return this.#hash.digest(\"hex\");\n }\n\n #writeValue(value: unknown, key: string): boolean {\n const resolvedValue = this.#resolveValue(value, key);\n\n if (resolvedValue === UNSERIALIZABLE) {\n return false;\n }\n\n this.#writeResolvedValue(resolvedValue);\n return true;\n }\n\n #writeResolvedValue(value: ResolvedHashValue): void {\n if (value === null) {\n this.#hash.update(\"null\", \"utf8\");\n return;\n }\n\n if (typeof value === \"string\") {\n this.#hash.update(JSON.stringify(value), \"utf8\");\n return;\n }\n\n if (typeof value === \"number\") {\n this.#hash.update(\n Number.isFinite(value) ? String(value) : \"null\",\n \"utf8\",\n );\n return;\n }\n\n if (typeof value === \"boolean\") {\n this.#hash.update(value ? \"true\" : \"false\", \"utf8\");\n return;\n }\n\n if (this.#activeObjects.has(value)) {\n throw new TypeError(\"Hash input must be JSON-serializable\");\n }\n\n this.#activeObjects.add(value);\n\n try {\n if (Array.isArray(value)) {\n this.#writeArray(value);\n return;\n }\n\n this.#writeObject(value);\n } finally {\n this.#activeObjects.delete(value);\n }\n }\n\n #writeArray(values: readonly unknown[]): void {\n this.#hash.update(\"[\", \"utf8\");\n\n for (const [index, value] of values.entries()) {\n if (index > 0) {\n this.#hash.update(\",\", \"utf8\");\n }\n\n const resolvedValue = this.#resolveValue(value, String(index));\n\n if (resolvedValue === UNSERIALIZABLE) {\n this.#hash.update(\"null\", \"utf8\");\n continue;\n }\n\n this.#writeResolvedValue(resolvedValue);\n }\n\n this.#hash.update(\"]\", \"utf8\");\n }\n\n #writeObject(value: object): void {\n this.#hash.update(\"{\", \"utf8\");\n\n let hasWrittenProperty = false;\n\n for (const key of Object.keys(value)) {\n const propertyValue = (value as Record<string, unknown>)[key];\n const resolvedValue = this.#resolveValue(propertyValue, key);\n\n if (resolvedValue === UNSERIALIZABLE) {\n continue;\n }\n\n if (hasWrittenProperty) {\n this.#hash.update(\",\", \"utf8\");\n }\n\n this.#hash.update(JSON.stringify(key), \"utf8\");\n this.#hash.update(\":\", \"utf8\");\n this.#writeResolvedValue(resolvedValue);\n hasWrittenProperty = true;\n }\n\n this.#hash.update(\"}\", \"utf8\");\n }\n\n #resolveValue(\n value: unknown,\n key: string,\n ): ResolvedHashValue | typeof UNSERIALIZABLE {\n if (value === null) {\n return null;\n }\n\n if (typeof value === \"string\" || typeof value === \"boolean\") {\n return value;\n }\n\n if (typeof value === \"number\") {\n return Number.isFinite(value) ? value : null;\n }\n\n if (\n value === undefined ||\n typeof value === \"function\" ||\n typeof value === \"symbol\"\n ) {\n return UNSERIALIZABLE;\n }\n\n if (typeof value === \"bigint\") {\n throw new TypeError(\"Hash input must be JSON-serializable\");\n }\n\n if (\n value instanceof String ||\n value instanceof Number ||\n value instanceof Boolean\n ) {\n return this.#resolveValue(value.valueOf(), key);\n }\n\n if (!hasToJson(value)) {\n return value;\n }\n\n if (this.#resolvingObjects.has(value)) {\n throw new TypeError(\"Hash input must be JSON-serializable\");\n }\n\n this.#resolvingObjects.add(value);\n\n try {\n return this.#resolveValue(value.toJSON(key), key);\n } finally {\n this.#resolvingObjects.delete(value);\n }\n }\n}\n\nfunction hasToJson(\n value: object,\n): value is object & { toJSON(key: string): unknown } {\n return \"toJSON\" in value && typeof value.toJSON === \"function\";\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,4 @@
1
+ declare function isNodeError(error: unknown): error is NodeJS.ErrnoException;
2
+ declare function formatError(error: unknown): string;
3
+
4
+ export { formatError, isNodeError };
@@ -0,0 +1,59 @@
1
+ function isNodeError(error) {
2
+ return error instanceof Error;
3
+ }
4
+ function formatError(error) {
5
+ const messages = [];
6
+ const visited = /* @__PURE__ */ new Set();
7
+ let current = error;
8
+ while (current !== void 0 && !visited.has(current)) {
9
+ visited.add(current);
10
+ if (current instanceof Error) {
11
+ pushErrorMessage(messages, describeError(current));
12
+ current = current.cause;
13
+ continue;
14
+ }
15
+ pushErrorMessage(messages, String(current));
16
+ break;
17
+ }
18
+ return messages.join(": ");
19
+ }
20
+ function describeError(error) {
21
+ const errnoError = error;
22
+ const message = error.message.trim();
23
+ const code = typeof errnoError.code === "string" && errnoError.code !== "" ? errnoError.code : void 0;
24
+ const path = typeof errnoError.path === "string" && errnoError.path !== "" ? errnoError.path : void 0;
25
+ if (code === "ENOENT") {
26
+ return path === void 0 ? "File not found (ENOENT)" : `File not found: ${path} (ENOENT)`;
27
+ }
28
+ if (code === "EACCES" || code === "EPERM") {
29
+ return path === void 0 ? `Permission denied (${code})` : `Permission denied: ${path} (${code})`;
30
+ }
31
+ if (message === "") {
32
+ return code === void 0 ? error.name : `${error.name} (${code})`;
33
+ }
34
+ return code === void 0 ? message : `${message} (${code})`;
35
+ }
36
+ function pushErrorMessage(messages, message) {
37
+ const normalizedMessage = message.trim();
38
+ if (normalizedMessage === "") {
39
+ return;
40
+ }
41
+ const lastMessage = messages.at(-1);
42
+ if (lastMessage === void 0) {
43
+ messages.push(normalizedMessage);
44
+ return;
45
+ }
46
+ if (lastMessage === normalizedMessage || lastMessage.includes(normalizedMessage)) {
47
+ return;
48
+ }
49
+ if (normalizedMessage.includes(lastMessage)) {
50
+ messages[messages.length - 1] = normalizedMessage;
51
+ return;
52
+ }
53
+ messages.push(normalizedMessage);
54
+ }
55
+ export {
56
+ formatError,
57
+ isNodeError
58
+ };
59
+ //# sourceMappingURL=node-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/node-error.ts"],"sourcesContent":["export function isNodeError(error: unknown): error is NodeJS.ErrnoException {\n return error instanceof Error;\n}\n\nexport function formatError(error: unknown): string {\n const messages: string[] = [];\n const visited = new Set<unknown>();\n let current: unknown = error;\n\n while (current !== undefined && !visited.has(current)) {\n visited.add(current);\n\n if (current instanceof Error) {\n pushErrorMessage(messages, describeError(current));\n current = current.cause;\n continue;\n }\n\n pushErrorMessage(messages, String(current as unknown));\n break;\n }\n\n return messages.join(\": \");\n}\n\nfunction describeError(error: Error): string {\n const errnoError = error as NodeJS.ErrnoException;\n const message = error.message.trim();\n const code =\n typeof errnoError.code === \"string\" && errnoError.code !== \"\"\n ? errnoError.code\n : undefined;\n const path =\n typeof errnoError.path === \"string\" && errnoError.path !== \"\"\n ? errnoError.path\n : undefined;\n\n if (code === \"ENOENT\") {\n return path === undefined\n ? \"File not found (ENOENT)\"\n : `File not found: ${path} (ENOENT)`;\n }\n\n if (code === \"EACCES\" || code === \"EPERM\") {\n return path === undefined\n ? `Permission denied (${code})`\n : `Permission denied: ${path} (${code})`;\n }\n\n if (message === \"\") {\n return code === undefined ? error.name : `${error.name} (${code})`;\n }\n\n return code === undefined ? message : `${message} (${code})`;\n}\n\nfunction pushErrorMessage(messages: string[], message: string): void {\n const normalizedMessage = message.trim();\n\n if (normalizedMessage === \"\") {\n return;\n }\n\n const lastMessage = messages.at(-1);\n\n if (lastMessage === undefined) {\n messages.push(normalizedMessage);\n return;\n }\n\n if (\n lastMessage === normalizedMessage ||\n lastMessage.includes(normalizedMessage)\n ) {\n return;\n }\n\n if (normalizedMessage.includes(lastMessage)) {\n messages[messages.length - 1] = normalizedMessage;\n return;\n }\n\n messages.push(normalizedMessage);\n}\n"],"mappings":"AAAO,SAAS,YAAY,OAAgD;AAC1E,SAAO,iBAAiB;AAC1B;AAEO,SAAS,YAAY,OAAwB;AAClD,QAAM,WAAqB,CAAC;AAC5B,QAAM,UAAU,oBAAI,IAAa;AACjC,MAAI,UAAmB;AAEvB,SAAO,YAAY,UAAa,CAAC,QAAQ,IAAI,OAAO,GAAG;AACrD,YAAQ,IAAI,OAAO;AAEnB,QAAI,mBAAmB,OAAO;AAC5B,uBAAiB,UAAU,cAAc,OAAO,CAAC;AACjD,gBAAU,QAAQ;AAClB;AAAA,IACF;AAEA,qBAAiB,UAAU,OAAO,OAAkB,CAAC;AACrD;AAAA,EACF;AAEA,SAAO,SAAS,KAAK,IAAI;AAC3B;AAEA,SAAS,cAAc,OAAsB;AAC3C,QAAM,aAAa;AACnB,QAAM,UAAU,MAAM,QAAQ,KAAK;AACnC,QAAM,OACJ,OAAO,WAAW,SAAS,YAAY,WAAW,SAAS,KACvD,WAAW,OACX;AACN,QAAM,OACJ,OAAO,WAAW,SAAS,YAAY,WAAW,SAAS,KACvD,WAAW,OACX;AAEN,MAAI,SAAS,UAAU;AACrB,WAAO,SAAS,SACZ,4BACA,mBAAmB,IAAI;AAAA,EAC7B;AAEA,MAAI,SAAS,YAAY,SAAS,SAAS;AACzC,WAAO,SAAS,SACZ,sBAAsB,IAAI,MAC1B,sBAAsB,IAAI,KAAK,IAAI;AAAA,EACzC;AAEA,MAAI,YAAY,IAAI;AAClB,WAAO,SAAS,SAAY,MAAM,OAAO,GAAG,MAAM,IAAI,KAAK,IAAI;AAAA,EACjE;AAEA,SAAO,SAAS,SAAY,UAAU,GAAG,OAAO,KAAK,IAAI;AAC3D;AAEA,SAAS,iBAAiB,UAAoB,SAAuB;AACnE,QAAM,oBAAoB,QAAQ,KAAK;AAEvC,MAAI,sBAAsB,IAAI;AAC5B;AAAA,EACF;AAEA,QAAM,cAAc,SAAS,GAAG,EAAE;AAElC,MAAI,gBAAgB,QAAW;AAC7B,aAAS,KAAK,iBAAiB;AAC/B;AAAA,EACF;AAEA,MACE,gBAAgB,qBAChB,YAAY,SAAS,iBAAiB,GACtC;AACA;AAAA,EACF;AAEA,MAAI,kBAAkB,SAAS,WAAW,GAAG;AAC3C,aAAS,SAAS,SAAS,CAAC,IAAI;AAChC;AAAA,EACF;AAEA,WAAS,KAAK,iBAAiB;AACjC;","names":[]}
@@ -0,0 +1 @@
1
+ export { LocatedWikiGraphUri, WIKI_GRAPH_ARCHIVE_EXTENSION, WIKI_GRAPH_JOB_URI_PREFIX, WIKI_GRAPH_URI_PREFIX, formatLocatedChapterResourceUri, formatLocatedChapterSourceCollectionUri, formatLocatedChapterUri, formatLocatedWikiGraphUri, formatWikiGraphCommandUri, formatWikiGraphObjectUri, formatWikiGraphUriExpectedError, isWikiGraphJobUri, isWikiGraphUri, parseLocatedWikiGraphUri, requireArchiveUri, requireLocatedObjectOrArchiveUri, requireLocatedObjectUri } from '../common/wiki-graph-uri.js';
@@ -0,0 +1,37 @@
1
+ import {
2
+ formatLocatedChapterResourceUri,
3
+ formatLocatedChapterSourceCollectionUri,
4
+ formatLocatedChapterUri,
5
+ formatLocatedWikiGraphUri,
6
+ formatWikiGraphCommandUri,
7
+ formatWikiGraphObjectUri,
8
+ formatWikiGraphUriExpectedError,
9
+ isWikiGraphJobUri,
10
+ isWikiGraphUri,
11
+ parseLocatedWikiGraphUri,
12
+ requireArchiveUri,
13
+ requireLocatedObjectOrArchiveUri,
14
+ requireLocatedObjectUri,
15
+ WIKI_GRAPH_ARCHIVE_EXTENSION,
16
+ WIKI_GRAPH_JOB_URI_PREFIX,
17
+ WIKI_GRAPH_URI_PREFIX
18
+ } from "../common/wiki-graph-uri.js";
19
+ export {
20
+ WIKI_GRAPH_ARCHIVE_EXTENSION,
21
+ WIKI_GRAPH_JOB_URI_PREFIX,
22
+ WIKI_GRAPH_URI_PREFIX,
23
+ formatLocatedChapterResourceUri,
24
+ formatLocatedChapterSourceCollectionUri,
25
+ formatLocatedChapterUri,
26
+ formatLocatedWikiGraphUri,
27
+ formatWikiGraphCommandUri,
28
+ formatWikiGraphObjectUri,
29
+ formatWikiGraphUriExpectedError,
30
+ isWikiGraphJobUri,
31
+ isWikiGraphUri,
32
+ parseLocatedWikiGraphUri,
33
+ requireArchiveUri,
34
+ requireLocatedObjectOrArchiveUri,
35
+ requireLocatedObjectUri
36
+ };
37
+ //# sourceMappingURL=archive-uri.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/wikg/archive-uri.ts"],"sourcesContent":["export {\n formatLocatedChapterResourceUri,\n formatLocatedChapterSourceCollectionUri,\n formatLocatedChapterUri,\n formatLocatedWikiGraphUri,\n formatWikiGraphCommandUri,\n formatWikiGraphObjectUri,\n formatWikiGraphUriExpectedError,\n isWikiGraphJobUri,\n isWikiGraphUri,\n parseLocatedWikiGraphUri,\n requireArchiveUri,\n requireLocatedObjectOrArchiveUri,\n requireLocatedObjectUri,\n WIKI_GRAPH_ARCHIVE_EXTENSION,\n WIKI_GRAPH_JOB_URI_PREFIX,\n WIKI_GRAPH_URI_PREFIX,\n type LocatedWikiGraphUri,\n} from \"../common/wiki-graph-uri.js\";\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;","names":[]}
@@ -0,0 +1,28 @@
1
+ import { ZipFile, Entry } from 'yauzl';
2
+
3
+ declare const WIKG_FORMAT_VERSION = 1;
4
+ type WikgArchiveOverlay = {
5
+ readonly entryPath: string;
6
+ readonly kind: "deleted";
7
+ } | {
8
+ readonly entryPath: string;
9
+ readonly kind: "file";
10
+ readonly workspacePath: string;
11
+ };
12
+ declare class WikgArchiveReader {
13
+ #private;
14
+ constructor(path: string, zipFile: ZipFile, entries: readonly Entry[]);
15
+ static open(inputPath: string): Promise<WikgArchiveReader>;
16
+ close(): void;
17
+ listEntries(): readonly string[];
18
+ readEntry(entryPath: string): Promise<Buffer | undefined>;
19
+ }
20
+ declare function extractWikgArchive(inputPath: string, outputDirectoryPath: string): Promise<void>;
21
+ declare function writeWikgArchive(documentDirectoryPath: string, outputPath: string): Promise<void>;
22
+ declare function listWikgArchiveEntries(inputPath: string): Promise<readonly string[]>;
23
+ declare function readWikgArchiveEntry(inputPath: string, entryPath: string): Promise<Buffer | undefined>;
24
+ declare function readWikgArchiveMutationToken(inputPath: string): Promise<string>;
25
+ declare function writeWikgArchiveWithOverlays(inputPath: string, outputPath: string, overlays: readonly WikgArchiveOverlay[]): Promise<void>;
26
+ declare function readWikgArchiveFormatVersion(documentDirectoryPath: string): Promise<number>;
27
+
28
+ export { WIKG_FORMAT_VERSION, type WikgArchiveOverlay, WikgArchiveReader, extractWikgArchive, listWikgArchiveEntries, readWikgArchiveEntry, readWikgArchiveFormatVersion, readWikgArchiveMutationToken, writeWikgArchive, writeWikgArchiveWithOverlays };