@nitpicker/archive 0.0.0 → 0.25.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 (737) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +106 -0
  3. package/lib/apply-connection-pragmas.d.ts +18 -0
  4. package/lib/apply-connection-pragmas.js +40 -0
  5. package/lib/archive-accessor.d.ts +265 -0
  6. package/lib/archive-accessor.js +477 -0
  7. package/lib/archive-lock.d.ts +45 -0
  8. package/lib/archive-lock.js +154 -0
  9. package/lib/archive.d.ts +736 -0
  10. package/lib/archive.js +1056 -0
  11. package/lib/body-hash/compute-body-hash.d.ts +32 -0
  12. package/lib/body-hash/compute-body-hash.js +35 -0
  13. package/lib/cache/clear-archive-cache-entry.d.ts +18 -0
  14. package/lib/cache/clear-archive-cache-entry.js +24 -0
  15. package/lib/cache/clear-archive-cache-root.d.ts +26 -0
  16. package/lib/cache/clear-archive-cache-root.js +32 -0
  17. package/lib/cache/compute-archive-cache-key.d.ts +39 -0
  18. package/lib/cache/compute-archive-cache-key.js +95 -0
  19. package/lib/cache/extract-archive-to-cache.d.ts +57 -0
  20. package/lib/cache/extract-archive-to-cache.js +326 -0
  21. package/lib/cache/get-archive-cache-root.d.ts +20 -0
  22. package/lib/cache/get-archive-cache-root.js +53 -0
  23. package/lib/cache/is-archive-cache-disabled.d.ts +24 -0
  24. package/lib/cache/is-archive-cache-disabled.js +34 -0
  25. package/lib/cache/list-archive-cache-entries.d.ts +23 -0
  26. package/lib/cache/list-archive-cache-entries.js +130 -0
  27. package/lib/cache/path-exists.d.ts +9 -0
  28. package/lib/cache/path-exists.js +18 -0
  29. package/lib/cache/resolve-archive-cache-dir.d.ts +26 -0
  30. package/lib/cache/resolve-archive-cache-dir.js +32 -0
  31. package/lib/cache/types.d.ts +33 -0
  32. package/lib/cache/types.js +1 -0
  33. package/lib/content-type/is-html-content-type.d.ts +17 -0
  34. package/lib/content-type/is-html-content-type.js +19 -0
  35. package/lib/content-type/normalize-content-type.d.ts +14 -0
  36. package/lib/content-type/normalize-content-type.js +20 -0
  37. package/lib/create-adjunct-tables.d.ts +66 -0
  38. package/lib/create-adjunct-tables.js +510 -0
  39. package/lib/create-entity-tables.d.ts +191 -0
  40. package/lib/create-entity-tables.js +387 -0
  41. package/lib/create-progress-reporter.d.ts +30 -0
  42. package/lib/create-progress-reporter.js +38 -0
  43. package/lib/create-ref-tables.d.ts +35 -0
  44. package/lib/create-ref-tables.js +185 -0
  45. package/lib/create-template-tables.d.ts +28 -0
  46. package/lib/create-template-tables.js +92 -0
  47. package/lib/database.d.ts +549 -0
  48. package/lib/database.js +804 -0
  49. package/lib/db-ops/_shared/clear-write-ref-caches.d.ts +27 -0
  50. package/lib/db-ops/_shared/clear-write-ref-caches.js +35 -0
  51. package/lib/db-ops/_shared/compress-payload.d.ts +26 -0
  52. package/lib/db-ops/_shared/compress-payload.js +30 -0
  53. package/lib/db-ops/_shared/create-write-ref-caches.d.ts +17 -0
  54. package/lib/db-ops/_shared/create-write-ref-caches.js +27 -0
  55. package/lib/db-ops/_shared/decode-json-ref.d.ts +17 -0
  56. package/lib/db-ops/_shared/decode-json-ref.js +31 -0
  57. package/lib/db-ops/_shared/keyset-paginate-by-id.d.ts +49 -0
  58. package/lib/db-ops/_shared/keyset-paginate-by-id.js +69 -0
  59. package/lib/db-ops/_shared/load-response-headers-by-set-ids.d.ts +20 -0
  60. package/lib/db-ops/_shared/load-response-headers-by-set-ids.js +53 -0
  61. package/lib/db-ops/_shared/resolve-content-item-id.d.ts +62 -0
  62. package/lib/db-ops/_shared/resolve-content-item-id.js +143 -0
  63. package/lib/db-ops/_shared/resolve-url-or-blob.d.ts +23 -0
  64. package/lib/db-ops/_shared/resolve-url-or-blob.js +29 -0
  65. package/lib/db-ops/_shared/retry-setting.d.ts +16 -0
  66. package/lib/db-ops/_shared/retry-setting.js +18 -0
  67. package/lib/db-ops/_shared/safe-parse-json.d.ts +11 -0
  68. package/lib/db-ops/_shared/safe-parse-json.js +18 -0
  69. package/lib/db-ops/_shared/types.d.ts +94 -0
  70. package/lib/db-ops/_shared/types.js +1 -0
  71. package/lib/db-ops/_shared/upsert-blob-ref.d.ts +25 -0
  72. package/lib/db-ops/_shared/upsert-blob-ref.js +48 -0
  73. package/lib/db-ops/_shared/upsert-content-type-ref.d.ts +30 -0
  74. package/lib/db-ops/_shared/upsert-content-type-ref.js +45 -0
  75. package/lib/db-ops/_shared/upsert-json-ref.d.ts +22 -0
  76. package/lib/db-ops/_shared/upsert-json-ref.js +41 -0
  77. package/lib/db-ops/_shared/upsert-response-headers.d.ts +35 -0
  78. package/lib/db-ops/_shared/upsert-response-headers.js +49 -0
  79. package/lib/db-ops/_shared/upsert-url-ref.d.ts +39 -0
  80. package/lib/db-ops/_shared/upsert-url-ref.js +62 -0
  81. package/lib/db-ops/anchors/get-anchors-on-page.d.ts +10 -0
  82. package/lib/db-ops/anchors/get-anchors-on-page.js +21 -0
  83. package/lib/db-ops/config/get-base-url.d.ts +8 -0
  84. package/lib/db-ops/config/get-base-url.js +14 -0
  85. package/lib/db-ops/config/get-config.d.ts +10 -0
  86. package/lib/db-ops/config/get-config.js +29 -0
  87. package/lib/db-ops/config/get-created-cwd.d.ts +11 -0
  88. package/lib/db-ops/config/get-created-cwd.js +13 -0
  89. package/lib/db-ops/config/get-name.d.ts +8 -0
  90. package/lib/db-ops/config/get-name.js +14 -0
  91. package/lib/db-ops/config/info-column-allowlist.d.ts +7 -0
  92. package/lib/db-ops/config/info-column-allowlist.js +29 -0
  93. package/lib/db-ops/config/info-json-columns.d.ts +5 -0
  94. package/lib/db-ops/config/info-json-columns.js +11 -0
  95. package/lib/db-ops/config/set-config.d.ts +12 -0
  96. package/lib/db-ops/config/set-config.js +21 -0
  97. package/lib/db-ops/config/update-config.d.ts +17 -0
  98. package/lib/db-ops/config/update-config.js +36 -0
  99. package/lib/db-ops/console-logs/compute-console-log-hash.d.ts +19 -0
  100. package/lib/db-ops/console-logs/compute-console-log-hash.js +30 -0
  101. package/lib/db-ops/console-logs/replace-console-logs.d.ts +34 -0
  102. package/lib/db-ops/console-logs/replace-console-logs.js +123 -0
  103. package/lib/db-ops/console-logs/stringify-console-log-args.d.ts +16 -0
  104. package/lib/db-ops/console-logs/stringify-console-log-args.js +26 -0
  105. package/lib/db-ops/console-logs/types.d.ts +38 -0
  106. package/lib/db-ops/console-logs/types.js +1 -0
  107. package/lib/db-ops/console-logs/upsert-console-log-item.d.ts +29 -0
  108. package/lib/db-ops/console-logs/upsert-console-log-item.js +52 -0
  109. package/lib/db-ops/dedupe-cap/accumulate-dedupe-cap-rejected-count.d.ts +18 -0
  110. package/lib/db-ops/dedupe-cap/accumulate-dedupe-cap-rejected-count.js +23 -0
  111. package/lib/db-ops/dedupe-cap/finalize-dedupe-cap-event.d.ts +12 -0
  112. package/lib/db-ops/dedupe-cap/finalize-dedupe-cap-event.js +15 -0
  113. package/lib/db-ops/dedupe-cap/insert-dedupe-cap-event.d.ts +14 -0
  114. package/lib/db-ops/dedupe-cap/insert-dedupe-cap-event.js +30 -0
  115. package/lib/db-ops/dedupe-cap/list-dedupe-cap-observations.d.ts +57 -0
  116. package/lib/db-ops/dedupe-cap/list-dedupe-cap-observations.js +87 -0
  117. package/lib/db-ops/dedupe-cap/list-dedupe-cap-shape-keys.d.ts +21 -0
  118. package/lib/db-ops/dedupe-cap/list-dedupe-cap-shape-keys.js +27 -0
  119. package/lib/db-ops/errors/insert-crawl-error.d.ts +15 -0
  120. package/lib/db-ops/errors/insert-crawl-error.js +21 -0
  121. package/lib/db-ops/errors/insert-page-error.d.ts +21 -0
  122. package/lib/db-ops/errors/insert-page-error.js +30 -0
  123. package/lib/db-ops/errors/list-dns-burned-host-candidates.d.ts +33 -0
  124. package/lib/db-ops/errors/list-dns-burned-host-candidates.js +158 -0
  125. package/lib/db-ops/html/read-page-html-blob.d.ts +17 -0
  126. package/lib/db-ops/html/read-page-html-blob.js +20 -0
  127. package/lib/db-ops/lifecycle/checkpoint.d.ts +8 -0
  128. package/lib/db-ops/lifecycle/checkpoint.js +9 -0
  129. package/lib/db-ops/lifecycle/destroy.d.ts +6 -0
  130. package/lib/db-ops/lifecycle/destroy.js +7 -0
  131. package/lib/db-ops/lifecycle/init.d.ts +58 -0
  132. package/lib/db-ops/lifecycle/init.js +122 -0
  133. package/lib/db-ops/list-reconcile/record-list-reconcile-run.d.ts +22 -0
  134. package/lib/db-ops/list-reconcile/record-list-reconcile-run.js +41 -0
  135. package/lib/db-ops/meta/get-audios-of-page.d.ts +11 -0
  136. package/lib/db-ops/meta/get-audios-of-page.js +15 -0
  137. package/lib/db-ops/meta/get-buttons-of-page.d.ts +11 -0
  138. package/lib/db-ops/meta/get-buttons-of-page.js +15 -0
  139. package/lib/db-ops/meta/get-canvases-of-page.d.ts +11 -0
  140. package/lib/db-ops/meta/get-canvases-of-page.js +15 -0
  141. package/lib/db-ops/meta/get-custom-elements-of-page.d.ts +11 -0
  142. package/lib/db-ops/meta/get-custom-elements-of-page.js +15 -0
  143. package/lib/db-ops/meta/get-headings-of-page.d.ts +11 -0
  144. package/lib/db-ops/meta/get-headings-of-page.js +15 -0
  145. package/lib/db-ops/meta/get-iframes-of-page.d.ts +11 -0
  146. package/lib/db-ops/meta/get-iframes-of-page.js +15 -0
  147. package/lib/db-ops/meta/get-jsonld-of-page.d.ts +13 -0
  148. package/lib/db-ops/meta/get-jsonld-of-page.js +27 -0
  149. package/lib/db-ops/meta/get-main-content-images-of-page.d.ts +11 -0
  150. package/lib/db-ops/meta/get-main-content-images-of-page.js +15 -0
  151. package/lib/db-ops/meta/get-main-content-tables-of-page.d.ts +11 -0
  152. package/lib/db-ops/meta/get-main-content-tables-of-page.js +15 -0
  153. package/lib/db-ops/meta/get-page-technologies-of-page.d.ts +11 -0
  154. package/lib/db-ops/meta/get-page-technologies-of-page.js +15 -0
  155. package/lib/db-ops/meta/get-technology-signals-of-page.d.ts +11 -0
  156. package/lib/db-ops/meta/get-technology-signals-of-page.js +15 -0
  157. package/lib/db-ops/meta/get-videos-of-page.d.ts +11 -0
  158. package/lib/db-ops/meta/get-videos-of-page.js +15 -0
  159. package/lib/db-ops/outages/close-network-outage.d.ts +12 -0
  160. package/lib/db-ops/outages/close-network-outage.js +15 -0
  161. package/lib/db-ops/outages/close-stale-open-network-outages.d.ts +26 -0
  162. package/lib/db-ops/outages/close-stale-open-network-outages.js +42 -0
  163. package/lib/db-ops/outages/compute-outage-clamp-timestamp.d.ts +26 -0
  164. package/lib/db-ops/outages/compute-outage-clamp-timestamp.js +31 -0
  165. package/lib/db-ops/outages/insert-network-outage.d.ts +14 -0
  166. package/lib/db-ops/outages/insert-network-outage.js +29 -0
  167. package/lib/db-ops/outages/list-network-outages.d.ts +28 -0
  168. package/lib/db-ops/outages/list-network-outages.js +42 -0
  169. package/lib/db-ops/pages/order/set-url-order.d.ts +13 -0
  170. package/lib/db-ops/pages/order/set-url-order.js +38 -0
  171. package/lib/db-ops/pages/read/build-page-query.d.ts +18 -0
  172. package/lib/db-ops/pages/read/build-page-query.js +40 -0
  173. package/lib/db-ops/pages/read/get-crawling-state.d.ts +117 -0
  174. package/lib/db-ops/pages/read/get-crawling-state.js +161 -0
  175. package/lib/db-ops/pages/read/get-existing-page-urls.d.ts +15 -0
  176. package/lib/db-ops/pages/read/get-existing-page-urls.js +30 -0
  177. package/lib/db-ops/pages/read/get-page-count.d.ts +12 -0
  178. package/lib/db-ops/pages/read/get-page-count.js +21 -0
  179. package/lib/db-ops/pages/read/get-page-source-by-url.d.ts +24 -0
  180. package/lib/db-ops/pages/read/get-page-source-by-url.js +28 -0
  181. package/lib/db-ops/pages/read/get-pages-with-rels.d.ts +38 -0
  182. package/lib/db-ops/pages/read/get-pages-with-rels.js +107 -0
  183. package/lib/db-ops/pages/read/get-pages.d.ts +11 -0
  184. package/lib/db-ops/pages/read/get-pages.js +51 -0
  185. package/lib/db-ops/pages/read/get-scraped-html-page-count.d.ts +18 -0
  186. package/lib/db-ops/pages/read/get-scraped-html-page-count.js +25 -0
  187. package/lib/db-ops/pages/read/reconstruct-page-rows.d.ts +31 -0
  188. package/lib/db-ops/pages/read/reconstruct-page-rows.js +32 -0
  189. package/lib/db-ops/pages/reset/clear-page-derived-rows.d.ts +20 -0
  190. package/lib/db-ops/pages/reset/clear-page-derived-rows.js +37 -0
  191. package/lib/db-ops/pages/reset/repromote-external-pages.d.ts +30 -0
  192. package/lib/db-ops/pages/reset/repromote-external-pages.js +91 -0
  193. package/lib/db-ops/pages/reset/reset-failed-pages.d.ts +88 -0
  194. package/lib/db-ops/pages/reset/reset-failed-pages.js +216 -0
  195. package/lib/db-ops/pages/reset/reset-pages-by-urls.d.ts +80 -0
  196. package/lib/db-ops/pages/reset/reset-pages-by-urls.js +151 -0
  197. package/lib/db-ops/pages/reset/retryable-image-scan-codes.d.ts +24 -0
  198. package/lib/db-ops/pages/reset/retryable-image-scan-codes.js +24 -0
  199. package/lib/db-ops/pages/write/insert-audios.d.ts +14 -0
  200. package/lib/db-ops/pages/write/insert-audios.js +25 -0
  201. package/lib/db-ops/pages/write/insert-buttons.d.ts +14 -0
  202. package/lib/db-ops/pages/write/insert-buttons.js +29 -0
  203. package/lib/db-ops/pages/write/insert-canvases.d.ts +14 -0
  204. package/lib/db-ops/pages/write/insert-canvases.js +26 -0
  205. package/lib/db-ops/pages/write/insert-custom-elements.d.ts +27 -0
  206. package/lib/db-ops/pages/write/insert-custom-elements.js +40 -0
  207. package/lib/db-ops/pages/write/insert-headings.d.ts +15 -0
  208. package/lib/db-ops/pages/write/insert-headings.js +27 -0
  209. package/lib/db-ops/pages/write/insert-iframes.d.ts +14 -0
  210. package/lib/db-ops/pages/write/insert-iframes.js +28 -0
  211. package/lib/db-ops/pages/write/insert-inventory-content-items.d.ts +38 -0
  212. package/lib/db-ops/pages/write/insert-inventory-content-items.js +60 -0
  213. package/lib/db-ops/pages/write/insert-inventory-seeds.d.ts +36 -0
  214. package/lib/db-ops/pages/write/insert-inventory-seeds.js +48 -0
  215. package/lib/db-ops/pages/write/insert-inventory-skipped-pages.d.ts +42 -0
  216. package/lib/db-ops/pages/write/insert-inventory-skipped-pages.js +56 -0
  217. package/lib/db-ops/pages/write/insert-jsonld.d.ts +17 -0
  218. package/lib/db-ops/pages/write/insert-jsonld.js +49 -0
  219. package/lib/db-ops/pages/write/insert-main-content-images.d.ts +20 -0
  220. package/lib/db-ops/pages/write/insert-main-content-images.js +32 -0
  221. package/lib/db-ops/pages/write/insert-main-content-tables.d.ts +14 -0
  222. package/lib/db-ops/pages/write/insert-main-content-tables.js +29 -0
  223. package/lib/db-ops/pages/write/insert-page.d.ts +56 -0
  224. package/lib/db-ops/pages/write/insert-page.js +259 -0
  225. package/lib/db-ops/pages/write/insert-technologies.d.ts +25 -0
  226. package/lib/db-ops/pages/write/insert-technologies.js +45 -0
  227. package/lib/db-ops/pages/write/insert-videos.d.ts +14 -0
  228. package/lib/db-ops/pages/write/insert-videos.js +28 -0
  229. package/lib/db-ops/pages/write/link-redirect-sources.d.ts +42 -0
  230. package/lib/db-ops/pages/write/link-redirect-sources.js +101 -0
  231. package/lib/db-ops/pages/write/record-redirect.d.ts +35 -0
  232. package/lib/db-ops/pages/write/record-redirect.js +100 -0
  233. package/lib/db-ops/pages/write/set-skipped-page.d.ts +13 -0
  234. package/lib/db-ops/pages/write/set-skipped-page.js +24 -0
  235. package/lib/db-ops/pages/write/update-page.d.ts +40 -0
  236. package/lib/db-ops/pages/write/update-page.js +419 -0
  237. package/lib/db-ops/pages/write/write-page-html-blob.d.ts +19 -0
  238. package/lib/db-ops/pages/write/write-page-html-blob.js +41 -0
  239. package/lib/db-ops/referrers/get-redirects-for-pages.d.ts +9 -0
  240. package/lib/db-ops/referrers/get-redirects-for-pages.js +15 -0
  241. package/lib/db-ops/referrers/get-referrers-of-page.d.ts +17 -0
  242. package/lib/db-ops/referrers/get-referrers-of-page.js +32 -0
  243. package/lib/db-ops/referrers/get-referrers-of-resource.d.ts +8 -0
  244. package/lib/db-ops/referrers/get-referrers-of-resource.js +15 -0
  245. package/lib/db-ops/resources/build-resource-query.d.ts +25 -0
  246. package/lib/db-ops/resources/build-resource-query.js +29 -0
  247. package/lib/db-ops/resources/get-existing-resource-urls.d.ts +9 -0
  248. package/lib/db-ops/resources/get-existing-resource-urls.js +24 -0
  249. package/lib/db-ops/resources/get-resource-by-url.d.ts +13 -0
  250. package/lib/db-ops/resources/get-resource-by-url.js +22 -0
  251. package/lib/db-ops/resources/get-resource-url-list.d.ts +17 -0
  252. package/lib/db-ops/resources/get-resource-url-list.js +26 -0
  253. package/lib/db-ops/resources/get-resources.d.ts +8 -0
  254. package/lib/db-ops/resources/get-resources.js +11 -0
  255. package/lib/db-ops/resources/insert-inventory-resources.d.ts +24 -0
  256. package/lib/db-ops/resources/insert-inventory-resources.js +64 -0
  257. package/lib/db-ops/resources/insert-resource-referrers.d.ts +15 -0
  258. package/lib/db-ops/resources/insert-resource-referrers.js +54 -0
  259. package/lib/db-ops/resources/insert-resource.d.ts +34 -0
  260. package/lib/db-ops/resources/insert-resource.js +73 -0
  261. package/lib/db-ops/resources/reconstruct-resource-rows.d.ts +26 -0
  262. package/lib/db-ops/resources/reconstruct-resource-rows.js +30 -0
  263. package/lib/db-ops/templates/assign-template-labels.d.ts +60 -0
  264. package/lib/db-ops/templates/assign-template-labels.js +187 -0
  265. package/lib/db-ops/templates/replace-page-templates.d.ts +44 -0
  266. package/lib/db-ops/templates/replace-page-templates.js +174 -0
  267. package/lib/db-ops/templates/serialize-template-cluster-reason.d.ts +16 -0
  268. package/lib/db-ops/templates/serialize-template-cluster-reason.js +17 -0
  269. package/lib/db-ops/templates/types.d.ts +103 -0
  270. package/lib/db-ops/templates/types.js +1 -0
  271. package/lib/debug.d.ts +8 -0
  272. package/lib/debug.js +9 -0
  273. package/lib/decode-html-blob.d.ts +20 -0
  274. package/lib/decode-html-blob.js +23 -0
  275. package/lib/decode-page-html-blob-bytes.d.ts +25 -0
  276. package/lib/decode-page-html-blob-bytes.js +29 -0
  277. package/lib/decode-stored-blob-bytes.d.ts +25 -0
  278. package/lib/decode-stored-blob-bytes.js +47 -0
  279. package/lib/derive-lineage-from-parent.d.ts +37 -0
  280. package/lib/derive-lineage-from-parent.js +42 -0
  281. package/lib/drop-legacy-tables.d.ts +45 -0
  282. package/lib/drop-legacy-tables.js +56 -0
  283. package/lib/error-kind/classify-error-kind.d.ts +20 -0
  284. package/lib/error-kind/classify-error-kind.js +136 -0
  285. package/lib/error-kind/network-related-error-kinds.d.ts +23 -0
  286. package/lib/error-kind/network-related-error-kinds.js +28 -0
  287. package/lib/error-kind/permanent-error-kinds.d.ts +48 -0
  288. package/lib/error-kind/permanent-error-kinds.js +54 -0
  289. package/lib/error-kind/types.d.ts +54 -0
  290. package/lib/error-kind/types.js +1 -0
  291. package/lib/filesystem/append-text.d.ts +9 -0
  292. package/lib/filesystem/append-text.js +14 -0
  293. package/lib/filesystem/copy-dir-sync.d.ts +6 -0
  294. package/lib/filesystem/copy-dir-sync.js +9 -0
  295. package/lib/filesystem/copy-dir.d.ts +7 -0
  296. package/lib/filesystem/copy-dir.js +13 -0
  297. package/lib/filesystem/copy-file-with-progress.d.ts +20 -0
  298. package/lib/filesystem/copy-file-with-progress.js +34 -0
  299. package/lib/filesystem/exists.d.ts +6 -0
  300. package/lib/filesystem/exists.js +9 -0
  301. package/lib/filesystem/get-file-list.d.ts +8 -0
  302. package/lib/filesystem/get-file-list.js +12 -0
  303. package/lib/filesystem/is-dir.d.ts +6 -0
  304. package/lib/filesystem/is-dir.js +10 -0
  305. package/lib/filesystem/mkdir.d.ts +8 -0
  306. package/lib/filesystem/mkdir.js +15 -0
  307. package/lib/filesystem/output-binary.d.ts +12 -0
  308. package/lib/filesystem/output-binary.js +17 -0
  309. package/lib/filesystem/output-json.d.ts +9 -0
  310. package/lib/filesystem/output-json.js +14 -0
  311. package/lib/filesystem/output-text.d.ts +11 -0
  312. package/lib/filesystem/output-text.js +32 -0
  313. package/lib/filesystem/parse-pax-path.d.ts +18 -0
  314. package/lib/filesystem/parse-pax-path.js +47 -0
  315. package/lib/filesystem/parse-tar-size-field.d.ts +13 -0
  316. package/lib/filesystem/parse-tar-size-field.js +40 -0
  317. package/lib/filesystem/peek-tar-top-dir.d.ts +35 -0
  318. package/lib/filesystem/peek-tar-top-dir.js +215 -0
  319. package/lib/filesystem/read-json.d.ts +7 -0
  320. package/lib/filesystem/read-json.js +11 -0
  321. package/lib/filesystem/read-text.d.ts +6 -0
  322. package/lib/filesystem/read-text.js +10 -0
  323. package/lib/filesystem/readline.d.ts +11 -0
  324. package/lib/filesystem/readline.js +26 -0
  325. package/lib/filesystem/remove.d.ts +5 -0
  326. package/lib/filesystem/remove.js +10 -0
  327. package/lib/filesystem/rename.d.ts +16 -0
  328. package/lib/filesystem/rename.js +48 -0
  329. package/lib/filesystem/tar.d.ts +23 -0
  330. package/lib/filesystem/tar.js +78 -0
  331. package/lib/filesystem/untar.d.ts +33 -0
  332. package/lib/filesystem/untar.js +84 -0
  333. package/lib/get-failed-page-messages.d.ts +56 -0
  334. package/lib/get-failed-page-messages.js +146 -0
  335. package/lib/get-json.d.ts +10 -0
  336. package/lib/get-json.js +25 -0
  337. package/lib/html-snapshot/match-selector-html.d.ts +25 -0
  338. package/lib/html-snapshot/match-selector-html.js +28 -0
  339. package/lib/html-snapshot/match-selector-snapshots.d.ts +33 -0
  340. package/lib/html-snapshot/match-selector-snapshots.js +33 -0
  341. package/lib/html-snapshot/search-html-document.d.ts +29 -0
  342. package/lib/html-snapshot/search-html-document.js +27 -0
  343. package/lib/html-snapshot/search-html-snapshots.d.ts +36 -0
  344. package/lib/html-snapshot/search-html-snapshots.js +35 -0
  345. package/lib/html-snapshot/types.d.ts +111 -0
  346. package/lib/html-snapshot/types.js +7 -0
  347. package/lib/html-snapshot/validate-search-pattern.d.ts +15 -0
  348. package/lib/html-snapshot/validate-search-pattern.js +17 -0
  349. package/lib/init-schema.d.ts +48 -0
  350. package/lib/init-schema.js +124 -0
  351. package/lib/is-inventory-source.d.ts +21 -0
  352. package/lib/is-inventory-source.js +22 -0
  353. package/lib/is-within-outage-window.d.ts +49 -0
  354. package/lib/is-within-outage-window.js +33 -0
  355. package/lib/isolated-cluster/create-isolated-cluster-run.d.ts +24 -0
  356. package/lib/isolated-cluster/create-isolated-cluster-run.js +26 -0
  357. package/lib/libsql-dialect.d.ts +115 -0
  358. package/lib/libsql-dialect.js +116 -0
  359. package/lib/limited-page-ids.d.ts +9 -0
  360. package/lib/limited-page-ids.js +18 -0
  361. package/lib/meta/assert-compatible-version.d.ts +60 -0
  362. package/lib/meta/assert-compatible-version.js +93 -0
  363. package/lib/meta/classify-jsonld-type.d.ts +23 -0
  364. package/lib/meta/classify-jsonld-type.js +43 -0
  365. package/lib/meta/compare-semver.d.ts +23 -0
  366. package/lib/meta/compare-semver.js +51 -0
  367. package/lib/meta/compute-main-contents-denormalized.d.ts +41 -0
  368. package/lib/meta/compute-main-contents-denormalized.js +88 -0
  369. package/lib/meta/compute-page-denormalized.d.ts +20 -0
  370. package/lib/meta/compute-page-denormalized.js +35 -0
  371. package/lib/meta/derive-flat-from-meta.d.ts +34 -0
  372. package/lib/meta/derive-flat-from-meta.js +158 -0
  373. package/lib/meta/derive-meta-extras.d.ts +20 -0
  374. package/lib/meta/derive-meta-extras.js +23 -0
  375. package/lib/meta/extract-tags-for-archive.d.ts +17 -0
  376. package/lib/meta/extract-tags-for-archive.js +36 -0
  377. package/lib/meta/parse-main-content-class-list.d.ts +19 -0
  378. package/lib/meta/parse-main-content-class-list.js +34 -0
  379. package/lib/meta/summarize-jsonld.d.ts +17 -0
  380. package/lib/meta/summarize-jsonld.js +29 -0
  381. package/lib/meta/technologies/combine-technology-confidence.d.ts +46 -0
  382. package/lib/meta/technologies/combine-technology-confidence.js +93 -0
  383. package/lib/meta/technologies/convert-legacy-page-tags-to-inserts.d.ts +45 -0
  384. package/lib/meta/technologies/convert-legacy-page-tags-to-inserts.js +53 -0
  385. package/lib/meta/technologies/convert-tag-row-to-wappalyzer-signal.d.ts +33 -0
  386. package/lib/meta/technologies/convert-tag-row-to-wappalyzer-signal.js +46 -0
  387. package/lib/meta/technologies/extract-technologies-for-archive.d.ts +33 -0
  388. package/lib/meta/technologies/extract-technologies-for-archive.js +30 -0
  389. package/lib/meta/technologies/match-js-license-comment-signal.d.ts +21 -0
  390. package/lib/meta/technologies/match-js-license-comment-signal.js +23 -0
  391. package/lib/meta/technologies/match-structural-technology-signals.d.ts +26 -0
  392. package/lib/meta/technologies/match-structural-technology-signals.js +48 -0
  393. package/lib/meta/technologies/normalize-wappalyzer-entries.d.ts +25 -0
  394. package/lib/meta/technologies/normalize-wappalyzer-entries.js +35 -0
  395. package/lib/meta/technologies/technology-signal-definitions.d.ts +44 -0
  396. package/lib/meta/technologies/technology-signal-definitions.js +60 -0
  397. package/lib/meta/technologies/types.d.ts +70 -0
  398. package/lib/meta/technologies/types.js +13 -0
  399. package/lib/meta/types.d.ts +1490 -0
  400. package/lib/meta/types.js +65 -0
  401. package/lib/migrate-content-items-alias-of-id.d.ts +52 -0
  402. package/lib/migrate-content-items-alias-of-id.js +69 -0
  403. package/lib/migrate-content-items-dedupe-cap-event-id.d.ts +46 -0
  404. package/lib/migrate-content-items-dedupe-cap-event-id.js +62 -0
  405. package/lib/migrate-content-items-is-metadata-only.d.ts +44 -0
  406. package/lib/migrate-content-items-is-metadata-only.js +60 -0
  407. package/lib/migrate-entity-tables.d.ts +55 -0
  408. package/lib/migrate-entity-tables.js +66 -0
  409. package/lib/migrate-info-created-cwd.d.ts +17 -0
  410. package/lib/migrate-info-created-cwd.js +36 -0
  411. package/lib/migrate-info-main-content-selector.d.ts +16 -0
  412. package/lib/migrate-info-main-content-selector.js +35 -0
  413. package/lib/migrate-info-request-header-names.d.ts +16 -0
  414. package/lib/migrate-info-request-header-names.js +35 -0
  415. package/lib/migrate-info-roots.d.ts +20 -0
  416. package/lib/migrate-info-roots.js +52 -0
  417. package/lib/migrate-inventory-runs-to-list-reconcile-runs.d.ts +34 -0
  418. package/lib/migrate-inventory-runs-to-list-reconcile-runs.js +51 -0
  419. package/lib/migrate-list-reconcile-runs-exclude-skipped.d.ts +25 -0
  420. package/lib/migrate-list-reconcile-runs-exclude-skipped.js +44 -0
  421. package/lib/migrate-list-reconcile-runs-invalid-skipped.d.ts +16 -0
  422. package/lib/migrate-list-reconcile-runs-invalid-skipped.js +35 -0
  423. package/lib/migrate-main-contents-columns.d.ts +26 -0
  424. package/lib/migrate-main-contents-columns.js +61 -0
  425. package/lib/migrate-page-meta-body-hash.d.ts +44 -0
  426. package/lib/migrate-page-meta-body-hash.js +63 -0
  427. package/lib/migrate-page-meta-console-error-count.d.ts +27 -0
  428. package/lib/migrate-page-meta-console-error-count.js +45 -0
  429. package/lib/migrate-page-meta-custom-element-count.d.ts +33 -0
  430. package/lib/migrate-page-meta-custom-element-count.js +51 -0
  431. package/lib/migrate-page-meta-image-scan.d.ts +27 -0
  432. package/lib/migrate-page-meta-image-scan.js +52 -0
  433. package/lib/migrate-page-tags-to-page-technologies.d.ts +39 -0
  434. package/lib/migrate-page-tags-to-page-technologies.js +79 -0
  435. package/lib/migrate-ref-tables.d.ts +25 -0
  436. package/lib/migrate-ref-tables.js +38 -0
  437. package/lib/native-executor/check-native-executor-config.d.ts +17 -0
  438. package/lib/native-executor/check-native-executor-config.js +20 -0
  439. package/lib/page-meta-column-maps.d.ts +32 -0
  440. package/lib/page-meta-column-maps.js +43 -0
  441. package/lib/page.d.ts +546 -0
  442. package/lib/page.js +764 -0
  443. package/lib/peek-archive-lock.d.ts +40 -0
  444. package/lib/peek-archive-lock.js +62 -0
  445. package/lib/populate-entity-tables/collapse-anchor-rows.d.ts +41 -0
  446. package/lib/populate-entity-tables/collapse-anchor-rows.js +87 -0
  447. package/lib/populate-entity-tables/derive-dom-path.d.ts +35 -0
  448. package/lib/populate-entity-tables/derive-dom-path.js +72 -0
  449. package/lib/populate-entity-tables/is-blob-ref-value.d.ts +16 -0
  450. package/lib/populate-entity-tables/is-blob-ref-value.js +19 -0
  451. package/lib/populate-entity-tables/match-images-to-dom-paths.d.ts +66 -0
  452. package/lib/populate-entity-tables/match-images-to-dom-paths.js +96 -0
  453. package/lib/populate-entity-tables/populate-anchor-edges.d.ts +33 -0
  454. package/lib/populate-entity-tables/populate-anchor-edges.js +153 -0
  455. package/lib/populate-entity-tables/populate-content-items.d.ts +40 -0
  456. package/lib/populate-entity-tables/populate-content-items.js +141 -0
  457. package/lib/populate-entity-tables/populate-entities.d.ts +81 -0
  458. package/lib/populate-entity-tables/populate-entities.js +110 -0
  459. package/lib/populate-entity-tables/populate-image-items.d.ts +91 -0
  460. package/lib/populate-entity-tables/populate-image-items.js +226 -0
  461. package/lib/populate-entity-tables/populate-page-meta.d.ts +33 -0
  462. package/lib/populate-entity-tables/populate-page-meta.js +267 -0
  463. package/lib/populate-entity-tables/populate-resource-items.d.ts +22 -0
  464. package/lib/populate-entity-tables/populate-resource-items.js +114 -0
  465. package/lib/populate-entity-tables/populate-resource-ref-edges.d.ts +31 -0
  466. package/lib/populate-entity-tables/populate-resource-ref-edges.js +33 -0
  467. package/lib/populate-entity-tables/resolve-blob-refs.d.ts +31 -0
  468. package/lib/populate-entity-tables/resolve-blob-refs.js +100 -0
  469. package/lib/populate-entity-tables/resolve-content-type-refs.d.ts +22 -0
  470. package/lib/populate-entity-tables/resolve-content-type-refs.js +27 -0
  471. package/lib/populate-entity-tables/resolve-header-sets.d.ts +49 -0
  472. package/lib/populate-entity-tables/resolve-header-sets.js +122 -0
  473. package/lib/populate-entity-tables/resolve-json-refs.d.ts +25 -0
  474. package/lib/populate-entity-tables/resolve-json-refs.js +67 -0
  475. package/lib/populate-entity-tables/resolve-text-refs.d.ts +30 -0
  476. package/lib/populate-entity-tables/resolve-text-refs.js +61 -0
  477. package/lib/populate-entity-tables/resolve-url-or-blob-from-maps.d.ts +21 -0
  478. package/lib/populate-entity-tables/resolve-url-or-blob-from-maps.js +27 -0
  479. package/lib/populate-entity-tables/resolve-url-refs.d.ts +33 -0
  480. package/lib/populate-entity-tables/resolve-url-refs.js +60 -0
  481. package/lib/populate-entity-tables/test-utils/count-rows.d.ts +17 -0
  482. package/lib/populate-entity-tables/test-utils/count-rows.js +20 -0
  483. package/lib/populate-entity-tables/test-utils/seed-content-items.d.ts +25 -0
  484. package/lib/populate-entity-tables/test-utils/seed-content-items.js +42 -0
  485. package/lib/populate-entity-tables/test-utils/setup-entities-db.d.ts +30 -0
  486. package/lib/populate-entity-tables/test-utils/setup-entities-db.js +175 -0
  487. package/lib/populate-entity-tables/types.d.ts +157 -0
  488. package/lib/populate-entity-tables/types.js +12 -0
  489. package/lib/populate-entity-tables/upsert-text-refs.d.ts +38 -0
  490. package/lib/populate-entity-tables/upsert-text-refs.js +78 -0
  491. package/lib/populate-ref-tables/classify-content-type.d.ts +16 -0
  492. package/lib/populate-ref-tables/classify-content-type.js +52 -0
  493. package/lib/populate-ref-tables/compute-content-hash.d.ts +22 -0
  494. package/lib/populate-ref-tables/compute-content-hash.js +26 -0
  495. package/lib/populate-ref-tables/compute-header-flags.d.ts +16 -0
  496. package/lib/populate-ref-tables/compute-header-flags.js +70 -0
  497. package/lib/populate-ref-tables/content-type-rules.d.ts +38 -0
  498. package/lib/populate-ref-tables/content-type-rules.js +133 -0
  499. package/lib/populate-ref-tables/create-header-table-caches.d.ts +25 -0
  500. package/lib/populate-ref-tables/create-header-table-caches.js +49 -0
  501. package/lib/populate-ref-tables/data-uri-url-refs-limit.d.ts +15 -0
  502. package/lib/populate-ref-tables/data-uri-url-refs-limit.js +15 -0
  503. package/lib/populate-ref-tables/decode-data-uri.d.ts +21 -0
  504. package/lib/populate-ref-tables/decode-data-uri.js +126 -0
  505. package/lib/populate-ref-tables/decompose-header-set.d.ts +29 -0
  506. package/lib/populate-ref-tables/decompose-header-set.js +157 -0
  507. package/lib/populate-ref-tables/decompose-url.d.ts +25 -0
  508. package/lib/populate-ref-tables/decompose-url.js +70 -0
  509. package/lib/populate-ref-tables/header-stability.d.ts +19 -0
  510. package/lib/populate-ref-tables/header-stability.js +22 -0
  511. package/lib/populate-ref-tables/header-value-cache-key.d.ts +17 -0
  512. package/lib/populate-ref-tables/header-value-cache-key.js +19 -0
  513. package/lib/populate-ref-tables/normalize-mime.d.ts +24 -0
  514. package/lib/populate-ref-tables/normalize-mime.js +36 -0
  515. package/lib/populate-ref-tables/populate-blob-refs.d.ts +38 -0
  516. package/lib/populate-ref-tables/populate-blob-refs.js +134 -0
  517. package/lib/populate-ref-tables/populate-content-type-refs.d.ts +27 -0
  518. package/lib/populate-ref-tables/populate-content-type-refs.js +70 -0
  519. package/lib/populate-ref-tables/populate-header-tables.d.ts +35 -0
  520. package/lib/populate-ref-tables/populate-header-tables.js +80 -0
  521. package/lib/populate-ref-tables/populate-json-refs.d.ts +29 -0
  522. package/lib/populate-ref-tables/populate-json-refs.js +101 -0
  523. package/lib/populate-ref-tables/populate-refs.d.ts +51 -0
  524. package/lib/populate-ref-tables/populate-refs.js +62 -0
  525. package/lib/populate-ref-tables/populate-text-refs.d.ts +32 -0
  526. package/lib/populate-ref-tables/populate-text-refs.js +133 -0
  527. package/lib/populate-ref-tables/populate-url-refs.d.ts +28 -0
  528. package/lib/populate-ref-tables/populate-url-refs.js +148 -0
  529. package/lib/populate-ref-tables/test-utils/count-rows.d.ts +15 -0
  530. package/lib/populate-ref-tables/test-utils/count-rows.js +17 -0
  531. package/lib/populate-ref-tables/types.d.ts +197 -0
  532. package/lib/populate-ref-tables/types.js +7 -0
  533. package/lib/populate-ref-tables/upsert-one-header-set.d.ts +34 -0
  534. package/lib/populate-ref-tables/upsert-one-header-set.js +208 -0
  535. package/lib/populate-ref-tables/volatile-header-names.d.ts +20 -0
  536. package/lib/populate-ref-tables/volatile-header-names.js +33 -0
  537. package/lib/redirect-table.d.ts +9 -0
  538. package/lib/redirect-table.js +28 -0
  539. package/lib/release-finished-statements.d.ts +42 -0
  540. package/lib/release-finished-statements.js +45 -0
  541. package/lib/resolve-redirect-chain.d.ts +33 -0
  542. package/lib/resolve-redirect-chain.js +27 -0
  543. package/lib/resource.d.ts +46 -0
  544. package/lib/resource.js +62 -0
  545. package/lib/retarget-legacy-fk-tables.d.ts +61 -0
  546. package/lib/retarget-legacy-fk-tables.js +137 -0
  547. package/lib/safe-path.d.ts +9 -0
  548. package/lib/safe-path.js +17 -0
  549. package/lib/scope/build-scope-map.d.ts +21 -0
  550. package/lib/scope/build-scope-map.js +32 -0
  551. package/lib/scope/find-scope-entry.d.ts +25 -0
  552. package/lib/scope/find-scope-entry.js +45 -0
  553. package/lib/template-classification/classify-archive-page-templates.d.ts +42 -0
  554. package/lib/template-classification/classify-archive-page-templates.js +70 -0
  555. package/lib/template-classification/classify-page-templates.d.ts +33 -0
  556. package/lib/template-classification/classify-page-templates.js +60 -0
  557. package/lib/template-classification/collect-page-ids-with-html.d.ts +24 -0
  558. package/lib/template-classification/collect-page-ids-with-html.js +30 -0
  559. package/lib/template-classification/collect-page-stylesheet-urls.d.ts +32 -0
  560. package/lib/template-classification/collect-page-stylesheet-urls.js +130 -0
  561. package/lib/template-classification/create-content-root-hint.d.ts +41 -0
  562. package/lib/template-classification/create-content-root-hint.js +51 -0
  563. package/lib/template-classification/create-page-cluster-factory.d.ts +36 -0
  564. package/lib/template-classification/create-page-cluster-factory.js +52 -0
  565. package/lib/template-classification/load-page-cluster-candidates.d.ts +32 -0
  566. package/lib/template-classification/load-page-cluster-candidates.js +93 -0
  567. package/lib/template-classification/page-cluster/resolve-page-cluster-keys.d.ts +34 -0
  568. package/lib/template-classification/page-cluster/resolve-page-cluster-keys.js +236 -0
  569. package/lib/template-classification/page-cluster/types.d.ts +123 -0
  570. package/lib/template-classification/page-cluster/types.js +1 -0
  571. package/lib/template-classification/types.d.ts +234 -0
  572. package/lib/template-classification/types.js +1 -0
  573. package/lib/test-utils/build-full-schema-test-db.d.ts +34 -0
  574. package/lib/test-utils/build-full-schema-test-db.js +74 -0
  575. package/lib/test-utils/create-legacy-analysis-tables.d.ts +13 -0
  576. package/lib/test-utils/create-legacy-analysis-tables.js +37 -0
  577. package/lib/test-utils/fk-parent-tables.d.ts +15 -0
  578. package/lib/test-utils/fk-parent-tables.js +19 -0
  579. package/lib/test-utils/seed-content-item.d.ts +35 -0
  580. package/lib/test-utils/seed-content-item.js +42 -0
  581. package/lib/test-utils/setup-legacy-fk-db.d.ts +34 -0
  582. package/lib/test-utils/setup-legacy-fk-db.js +271 -0
  583. package/lib/transfer/attach-source-database.d.ts +31 -0
  584. package/lib/transfer/attach-source-database.js +40 -0
  585. package/lib/transfer/build-split-config.d.ts +30 -0
  586. package/lib/transfer/build-split-config.js +42 -0
  587. package/lib/transfer/clear-replaced-page-rows.d.ts +23 -0
  588. package/lib/transfer/clear-replaced-page-rows.js +61 -0
  589. package/lib/transfer/concat-archives.d.ts +55 -0
  590. package/lib/transfer/concat-archives.js +95 -0
  591. package/lib/transfer/concat-source-transfer-phases.d.ts +10 -0
  592. package/lib/transfer/concat-source-transfer-phases.js +17 -0
  593. package/lib/transfer/content-item-rank-sql.d.ts +21 -0
  594. package/lib/transfer/content-item-rank-sql.js +23 -0
  595. package/lib/transfer/copy-anchor-edges.d.ts +28 -0
  596. package/lib/transfer/copy-anchor-edges.js +42 -0
  597. package/lib/transfer/copy-dictionaries-for-concat.d.ts +39 -0
  598. package/lib/transfer/copy-dictionaries-for-concat.js +81 -0
  599. package/lib/transfer/copy-dictionaries-for-split.d.ts +29 -0
  600. package/lib/transfer/copy-dictionaries-for-split.js +224 -0
  601. package/lib/transfer/copy-header-set-children.d.ts +27 -0
  602. package/lib/transfer/copy-header-set-children.js +51 -0
  603. package/lib/transfer/copy-image-items.d.ts +21 -0
  604. package/lib/transfer/copy-image-items.js +62 -0
  605. package/lib/transfer/copy-inventory-source-lists.d.ts +30 -0
  606. package/lib/transfer/copy-inventory-source-lists.js +61 -0
  607. package/lib/transfer/copy-journal-tables.d.ts +30 -0
  608. package/lib/transfer/copy-journal-tables.js +56 -0
  609. package/lib/transfer/copy-page-console-logs.d.ts +16 -0
  610. package/lib/transfer/copy-page-console-logs.js +27 -0
  611. package/lib/transfer/copy-page-html-blobs.d.ts +31 -0
  612. package/lib/transfer/copy-page-html-blobs.js +43 -0
  613. package/lib/transfer/copy-page-meta.d.ts +27 -0
  614. package/lib/transfer/copy-page-meta.js +68 -0
  615. package/lib/transfer/copy-page-template-clusters.d.ts +31 -0
  616. package/lib/transfer/copy-page-template-clusters.js +56 -0
  617. package/lib/transfer/copy-page-template-labels.d.ts +34 -0
  618. package/lib/transfer/copy-page-template-labels.js +88 -0
  619. package/lib/transfer/copy-resource-items.d.ts +29 -0
  620. package/lib/transfer/copy-resource-items.js +89 -0
  621. package/lib/transfer/copy-resource-ref-edges.d.ts +20 -0
  622. package/lib/transfer/copy-resource-ref-edges.js +33 -0
  623. package/lib/transfer/copy-simple-page-scoped-tables.d.ts +15 -0
  624. package/lib/transfer/copy-simple-page-scoped-tables.js +34 -0
  625. package/lib/transfer/count-external-pages-in-scope.d.ts +26 -0
  626. package/lib/transfer/count-external-pages-in-scope.js +40 -0
  627. package/lib/transfer/create-transfer-temp-tables.d.ts +30 -0
  628. package/lib/transfer/create-transfer-temp-tables.js +59 -0
  629. package/lib/transfer/dictionary-copy-specs.d.ts +32 -0
  630. package/lib/transfer/dictionary-copy-specs.js +28 -0
  631. package/lib/transfer/drop-transfer-temp-tables.d.ts +9 -0
  632. package/lib/transfer/drop-transfer-temp-tables.js +18 -0
  633. package/lib/transfer/flatten-redirect-chains.d.ts +44 -0
  634. package/lib/transfer/flatten-redirect-chains.js +74 -0
  635. package/lib/transfer/insert-content-items.d.ts +35 -0
  636. package/lib/transfer/insert-content-items.js +116 -0
  637. package/lib/transfer/list-transfer-columns.d.ts +35 -0
  638. package/lib/transfer/list-transfer-columns.js +45 -0
  639. package/lib/transfer/mark-in-scope-content-items.d.ts +31 -0
  640. package/lib/transfer/mark-in-scope-content-items.js +54 -0
  641. package/lib/transfer/merge-archive-configs.d.ts +51 -0
  642. package/lib/transfer/merge-archive-configs.js +85 -0
  643. package/lib/transfer/plan-content-items-for-concat.d.ts +33 -0
  644. package/lib/transfer/plan-content-items-for-concat.js +51 -0
  645. package/lib/transfer/plan-content-items-for-split.d.ts +42 -0
  646. package/lib/transfer/plan-content-items-for-split.js +83 -0
  647. package/lib/transfer/plan-resource-items.d.ts +40 -0
  648. package/lib/transfer/plan-resource-items.js +69 -0
  649. package/lib/transfer/quote-transfer-identifier.d.ts +18 -0
  650. package/lib/transfer/quote-transfer-identifier.js +20 -0
  651. package/lib/transfer/reclassify-resource-externality.d.ts +37 -0
  652. package/lib/transfer/reclassify-resource-externality.js +66 -0
  653. package/lib/transfer/remap-redirect-dest-ids.d.ts +34 -0
  654. package/lib/transfer/remap-redirect-dest-ids.js +51 -0
  655. package/lib/transfer/replace-content-items.d.ts +39 -0
  656. package/lib/transfer/replace-content-items.js +83 -0
  657. package/lib/transfer/simple-page-scoped-tables.d.ts +25 -0
  658. package/lib/transfer/simple-page-scoped-tables.js +38 -0
  659. package/lib/transfer/split-archive.d.ts +55 -0
  660. package/lib/transfer/split-archive.js +98 -0
  661. package/lib/transfer/split-source-transfer-phases.d.ts +11 -0
  662. package/lib/transfer/split-source-transfer-phases.js +18 -0
  663. package/lib/transfer/transfer-action.d.ts +34 -0
  664. package/lib/transfer/transfer-action.js +32 -0
  665. package/lib/transfer/transfer-archive-rows.d.ts +65 -0
  666. package/lib/transfer/transfer-archive-rows.js +156 -0
  667. package/lib/transfer/transfer-dictionary-tables.d.ts +12 -0
  668. package/lib/transfer/transfer-dictionary-tables.js +22 -0
  669. package/lib/transfer/transfer-post-phases.d.ts +10 -0
  670. package/lib/transfer/transfer-post-phases.js +13 -0
  671. package/lib/transfer/transfer-source-alias.d.ts +9 -0
  672. package/lib/transfer/transfer-source-alias.js +9 -0
  673. package/lib/transfer/types.d.ts +111 -0
  674. package/lib/transfer/types.js +35 -0
  675. package/lib/types.d.ts +772 -0
  676. package/lib/types.js +1 -0
  677. package/lib/url-alias/compute-tier-a-alias-key.d.ts +44 -0
  678. package/lib/url-alias/compute-tier-a-alias-key.js +47 -0
  679. package/lib/url-alias/compute-tier-b-alias-key.d.ts +23 -0
  680. package/lib/url-alias/compute-tier-b-alias-key.js +26 -0
  681. package/lib/url-alias/group-alias-candidates.d.ts +27 -0
  682. package/lib/url-alias/group-alias-candidates.js +29 -0
  683. package/lib/url-alias/types.d.ts +12 -0
  684. package/lib/url-alias/types.js +1 -0
  685. package/lib/url-pattern/compute-shape-key.d.ts +58 -0
  686. package/lib/url-pattern/compute-shape-key.js +129 -0
  687. package/lib/url-pattern/decompose-url.d.ts +33 -0
  688. package/lib/url-pattern/decompose-url.js +79 -0
  689. package/lib/url-pattern/reconstruct-url.d.ts +15 -0
  690. package/lib/url-pattern/reconstruct-url.js +33 -0
  691. package/lib/url-sort/compute-url-sort-ranks.d.ts +30 -0
  692. package/lib/url-sort/compute-url-sort-ranks.js +33 -0
  693. package/lib/utils/array/each-splitted.d.ts +10 -0
  694. package/lib/utils/array/each-splitted.js +14 -0
  695. package/lib/utils/debug.d.ts +8 -0
  696. package/lib/utils/debug.js +8 -0
  697. package/lib/utils/error/emit-error-with-retry.d.ts +40 -0
  698. package/lib/utils/error/emit-error-with-retry.js +44 -0
  699. package/lib/utils/error/emit-error.d.ts +39 -0
  700. package/lib/utils/error/emit-error.js +41 -0
  701. package/lib/utils/object/parse-response-headers.d.ts +12 -0
  702. package/lib/utils/object/parse-response-headers.js +26 -0
  703. package/lib/utils/object/redact-request-headers.d.ts +15 -0
  704. package/lib/utils/object/redact-request-headers.js +27 -0
  705. package/lib/utils/types/types.d.ts +383 -0
  706. package/lib/utils/types/types.js +1 -0
  707. package/lib/verify-migration/capture-rejection.d.ts +24 -0
  708. package/lib/verify-migration/capture-rejection.js +31 -0
  709. package/lib/verify-migration/check-anchor-edges-count.d.ts +34 -0
  710. package/lib/verify-migration/check-anchor-edges-count.js +72 -0
  711. package/lib/verify-migration/check-anchor-edges-sum.d.ts +13 -0
  712. package/lib/verify-migration/check-anchor-edges-sum.js +27 -0
  713. package/lib/verify-migration/check-content-items-count.d.ts +16 -0
  714. package/lib/verify-migration/check-content-items-count.js +30 -0
  715. package/lib/verify-migration/check-content-type-preservation.d.ts +22 -0
  716. package/lib/verify-migration/check-content-type-preservation.js +40 -0
  717. package/lib/verify-migration/check-foreign-key-integrity.d.ts +31 -0
  718. package/lib/verify-migration/check-foreign-key-integrity.js +47 -0
  719. package/lib/verify-migration/check-image-items-count.d.ts +12 -0
  720. package/lib/verify-migration/check-image-items-count.js +26 -0
  721. package/lib/verify-migration/check-page-meta-count.d.ts +15 -0
  722. package/lib/verify-migration/check-page-meta-count.js +31 -0
  723. package/lib/verify-migration/check-reader-parity.d.ts +23 -0
  724. package/lib/verify-migration/check-reader-parity.js +182 -0
  725. package/lib/verify-migration/check-resource-items-count.d.ts +17 -0
  726. package/lib/verify-migration/check-resource-items-count.js +33 -0
  727. package/lib/verify-migration/check-url-round-trip.d.ts +43 -0
  728. package/lib/verify-migration/check-url-round-trip.js +112 -0
  729. package/lib/verify-migration/types.d.ts +70 -0
  730. package/lib/verify-migration/types.js +63 -0
  731. package/lib/verify-migration/verify-migration.d.ts +41 -0
  732. package/lib/verify-migration/verify-migration.js +120 -0
  733. package/lib/with-bulk-write-pragmas.d.ts +51 -0
  734. package/lib/with-bulk-write-pragmas.js +132 -0
  735. package/lib/write-queue.d.ts +32 -0
  736. package/lib/write-queue.js +55 -0
  737. package/package.json +350 -3
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Forces a WAL checkpoint, writing all pending WAL data back to the main database file.
3
+ * Uses TRUNCATE mode to reset the WAL file to zero bytes after checkpointing.
4
+ * This ensures the database is fully self-contained in `db.sqlite` before archiving.
5
+ * @param knex - Knex query builder connected to the archive DB.
6
+ */
7
+ export async function checkpoint(knex) {
8
+ await knex.raw('PRAGMA wal_checkpoint(TRUNCATE)');
9
+ }
@@ -0,0 +1,6 @@
1
+ import type { Knex } from 'knex';
2
+ /**
3
+ * Destroys the database connection, releasing all pooled resources.
4
+ * @param knex - Knex query builder connected to the archive DB.
5
+ */
6
+ export declare function destroy(knex: Knex): Promise<void>;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Destroys the database connection, releasing all pooled resources.
3
+ * @param knex - Knex query builder connected to the archive DB.
4
+ */
5
+ export async function destroy(knex) {
6
+ await knex.destroy();
7
+ }
@@ -0,0 +1,58 @@
1
+ import type { Knex } from 'knex';
2
+ /**
3
+ * Initializes the database schema if tables do not exist, then runs the
4
+ * remaining lightweight migrations (`info.roots`, `info.mainContentSelector`,
5
+ * `page_meta.main_content_*`, `list_reconcile_runs.invalid_skipped`,
6
+ * `list_reconcile_runs.exclude_skipped`).
7
+ *
8
+ * There is deliberately no per-table *table-creation* migration chain here:
9
+ * `assertCompatibleVersion` (called below, before any schema work) rejects
10
+ * every archive older than the current format, so a connection that reaches
11
+ * `initSchema` is either brand new (`initSchema` provisions the full schema)
12
+ * or was produced by `scripts/migrate-to-0.13.mjs` (which guarantees the
13
+ * full table set before it repacks) — and `initSchema` itself re-runs
14
+ * `createEntityTables` / `createAdjunctTables` unconditionally on every
15
+ * open, self-healing any *missing table* via their internal
16
+ * `IF NOT EXISTS` / `hasTable` guards. What that self-healing cannot do is
17
+ * retrofit a *new column* onto an entity table that already exists —
18
+ * `CREATE TABLE IF NOT EXISTS` is a no-op once the table is present. Column
19
+ * additions to an existing 0.13 table are therefore the one case that still
20
+ * needs an explicit `hasColumn`-guarded `ALTER TABLE` here (`migrateInfoRoots`,
21
+ * `migrateInfoCreatedCwd`, `migrateMainContentsColumns`, `migratePageMetaBodyHash`,
22
+ * `migratePageMetaConsoleErrorCount`, `migratePageMetaCustomElementCount`,
23
+ * `migratePageMetaImageScan`, `migrateContentItemsAliasOfId`,
24
+ * `migrateContentItemsIsMetadataOnly`,
25
+ *
26
+ * `migratePageTagsToPageTechnologies` is the one exception to "column adds
27
+ * only": it converts `page_tags` (removed) rows into `technology_signals`/
28
+ * `page_technologies` and DROPS the old table — a one-time table-level ETL,
29
+ * not a column add, but it belongs in this same boot phase for the same
30
+ * reason (self-healing an old archive's schema before any reader runs).
31
+ *
32
+ * `migrateContentItemsDedupeCapEventId`, `migrateListReconcileRunsInvalidSkipped`,
33
+ * `migrateListReconcileRunsExcludeSkipped`) rather than a DDL-string change alone.
34
+ *
35
+ * `migrateInventoryRunsToListReconcileRuns` runs BEFORE `initSchema`
36
+ * (unlike every other migration here) — see its own JSDoc for why: a
37
+ * plain rename must land before `createAdjunctTables`'s
38
+ * `IF NOT EXISTS` guard would otherwise create an empty `list_reconcile_runs`
39
+ * and strand the old table's rows.
40
+ *
41
+ * `closeStaleOpenNetworkOutages` is not a schema migration (no columns
42
+ * change) but belongs at this same boot phase for the same reason the
43
+ * others do: it must run before ANY reader (`resetFailedPages`,
44
+ * `listDnsBurnedHostCandidates`, …) can observe a `network_outages` row
45
+ * left `ended_at = NULL` by a crawl process that was killed mid-outage in a
46
+ * prior session.
47
+ *
48
+ * In read-only mode schema init + migration are SKIPPED so the same DB
49
+ * can be opened safely by a viewer attached to a live (or interrupted)
50
+ * crawl without rewriting the user's tmpDir.
51
+ * @param knex - Knex query builder connected to the archive DB.
52
+ * @param readOnly - When true, skip schema init + migrations.
53
+ * @param onLog - Forwarded to every `migrate*` call below (issue #294) —
54
+ * see {@link import('../../migrate-page-meta-body-hash.js').migratePageMetaBodyHash}'s
55
+ * docs for why a bare `console.error` at this point is unsafe (it can
56
+ * fire while a caller's `Lanes`/`TaskList` display is mid-redraw).
57
+ */
58
+ export declare function init(knex: Knex, readOnly: boolean, onLog?: (message: string) => void): Promise<void>;
@@ -0,0 +1,122 @@
1
+ import { applyConnectionPragmas } from '../../apply-connection-pragmas.js';
2
+ import { initSchema } from '../../init-schema.js';
3
+ import { assertCompatibleVersion } from '../../meta/assert-compatible-version.js';
4
+ import { migrateContentItemsAliasOfId } from '../../migrate-content-items-alias-of-id.js';
5
+ import { migrateContentItemsDedupeCapEventId } from '../../migrate-content-items-dedupe-cap-event-id.js';
6
+ import { migrateContentItemsIsMetadataOnly } from '../../migrate-content-items-is-metadata-only.js';
7
+ import { migrateInfoCreatedCwd } from '../../migrate-info-created-cwd.js';
8
+ import { migrateInfoMainContentSelector } from '../../migrate-info-main-content-selector.js';
9
+ import { migrateInfoRequestHeaderNames } from '../../migrate-info-request-header-names.js';
10
+ import { migrateInfoRoots } from '../../migrate-info-roots.js';
11
+ import { migrateInventoryRunsToListReconcileRuns } from '../../migrate-inventory-runs-to-list-reconcile-runs.js';
12
+ import { migrateListReconcileRunsExcludeSkipped } from '../../migrate-list-reconcile-runs-exclude-skipped.js';
13
+ import { migrateListReconcileRunsInvalidSkipped } from '../../migrate-list-reconcile-runs-invalid-skipped.js';
14
+ import { migrateMainContentsColumns } from '../../migrate-main-contents-columns.js';
15
+ import { migratePageMetaBodyHash } from '../../migrate-page-meta-body-hash.js';
16
+ import { migratePageMetaConsoleErrorCount } from '../../migrate-page-meta-console-error-count.js';
17
+ import { migratePageMetaCustomElementCount } from '../../migrate-page-meta-custom-element-count.js';
18
+ import { migratePageMetaImageScan } from '../../migrate-page-meta-image-scan.js';
19
+ import { migratePageTagsToPageTechnologies } from '../../migrate-page-tags-to-page-technologies.js';
20
+ import { closeStaleOpenNetworkOutages } from '../outages/close-stale-open-network-outages.js';
21
+ /**
22
+ * Initializes the database schema if tables do not exist, then runs the
23
+ * remaining lightweight migrations (`info.roots`, `info.mainContentSelector`,
24
+ * `page_meta.main_content_*`, `list_reconcile_runs.invalid_skipped`,
25
+ * `list_reconcile_runs.exclude_skipped`).
26
+ *
27
+ * There is deliberately no per-table *table-creation* migration chain here:
28
+ * `assertCompatibleVersion` (called below, before any schema work) rejects
29
+ * every archive older than the current format, so a connection that reaches
30
+ * `initSchema` is either brand new (`initSchema` provisions the full schema)
31
+ * or was produced by `scripts/migrate-to-0.13.mjs` (which guarantees the
32
+ * full table set before it repacks) — and `initSchema` itself re-runs
33
+ * `createEntityTables` / `createAdjunctTables` unconditionally on every
34
+ * open, self-healing any *missing table* via their internal
35
+ * `IF NOT EXISTS` / `hasTable` guards. What that self-healing cannot do is
36
+ * retrofit a *new column* onto an entity table that already exists —
37
+ * `CREATE TABLE IF NOT EXISTS` is a no-op once the table is present. Column
38
+ * additions to an existing 0.13 table are therefore the one case that still
39
+ * needs an explicit `hasColumn`-guarded `ALTER TABLE` here (`migrateInfoRoots`,
40
+ * `migrateInfoCreatedCwd`, `migrateMainContentsColumns`, `migratePageMetaBodyHash`,
41
+ * `migratePageMetaConsoleErrorCount`, `migratePageMetaCustomElementCount`,
42
+ * `migratePageMetaImageScan`, `migrateContentItemsAliasOfId`,
43
+ * `migrateContentItemsIsMetadataOnly`,
44
+ *
45
+ * `migratePageTagsToPageTechnologies` is the one exception to "column adds
46
+ * only": it converts `page_tags` (removed) rows into `technology_signals`/
47
+ * `page_technologies` and DROPS the old table — a one-time table-level ETL,
48
+ * not a column add, but it belongs in this same boot phase for the same
49
+ * reason (self-healing an old archive's schema before any reader runs).
50
+ *
51
+ * `migrateContentItemsDedupeCapEventId`, `migrateListReconcileRunsInvalidSkipped`,
52
+ * `migrateListReconcileRunsExcludeSkipped`) rather than a DDL-string change alone.
53
+ *
54
+ * `migrateInventoryRunsToListReconcileRuns` runs BEFORE `initSchema`
55
+ * (unlike every other migration here) — see its own JSDoc for why: a
56
+ * plain rename must land before `createAdjunctTables`'s
57
+ * `IF NOT EXISTS` guard would otherwise create an empty `list_reconcile_runs`
58
+ * and strand the old table's rows.
59
+ *
60
+ * `closeStaleOpenNetworkOutages` is not a schema migration (no columns
61
+ * change) but belongs at this same boot phase for the same reason the
62
+ * others do: it must run before ANY reader (`resetFailedPages`,
63
+ * `listDnsBurnedHostCandidates`, …) can observe a `network_outages` row
64
+ * left `ended_at = NULL` by a crawl process that was killed mid-outage in a
65
+ * prior session.
66
+ *
67
+ * In read-only mode schema init + migration are SKIPPED so the same DB
68
+ * can be opened safely by a viewer attached to a live (or interrupted)
69
+ * crawl without rewriting the user's tmpDir.
70
+ * @param knex - Knex query builder connected to the archive DB.
71
+ * @param readOnly - When true, skip schema init + migrations.
72
+ * @param onLog - Forwarded to every `migrate*` call below (issue #294) —
73
+ * see {@link import('../../migrate-page-meta-body-hash.js').migratePageMetaBodyHash}'s
74
+ * docs for why a bare `console.error` at this point is unsafe (it can
75
+ * fire while a caller's `Lanes`/`TaskList` display is mid-redraw).
76
+ */
77
+ export async function init(knex, readOnly, onLog) {
78
+ // Connection-level PRAGMAs (foreign_keys, mmap_size, …) must be
79
+ // reapplied on every connect — they are not persisted across opens.
80
+ // They are safe in read-only mode because they don't write to the
81
+ // user's tmpDir, just configure the libsql connection.
82
+ await applyConnectionPragmas(knex);
83
+ // Reject incompatible archives before any further work. Runs for both
84
+ // writer and read-only (stub viewer) connections so old
85
+ // `._nitpicker-*` stubs surface a clear error instead of
86
+ // dereferencing missing columns at query time. New archives (no
87
+ // `info` table yet) pass through; the schema is filled in by
88
+ // `initSchema` below.
89
+ await assertCompatibleVersion(knex);
90
+ if (readOnly) {
91
+ return;
92
+ }
93
+ // Must run before `initSchema`: see the function's own JSDoc for why a
94
+ // plain table rename has to land before `createAdjunctTables`'s
95
+ // `IF NOT EXISTS` guard would otherwise create an empty replacement.
96
+ await migrateInventoryRunsToListReconcileRuns(knex, onLog);
97
+ await initSchema(knex);
98
+ await migrateInfoRoots(knex, onLog);
99
+ await migrateInfoMainContentSelector(knex, onLog);
100
+ await migrateInfoRequestHeaderNames(knex, onLog);
101
+ await migrateInfoCreatedCwd(knex, onLog);
102
+ await migrateMainContentsColumns(knex, onLog);
103
+ await migratePageMetaBodyHash(knex, onLog);
104
+ await migratePageMetaConsoleErrorCount(knex, onLog);
105
+ await migratePageMetaCustomElementCount(knex, onLog);
106
+ await migratePageMetaImageScan(knex, onLog);
107
+ // Table-level migration (converts + drops page_tags), not a column
108
+ // add — see its own JSDoc for why it still belongs in this boot phase.
109
+ await migratePageTagsToPageTechnologies(knex, onLog);
110
+ await migrateContentItemsAliasOfId(knex, onLog);
111
+ // Runs after `initSchema` above, which already created
112
+ // `dedupe_cap_events` (an adjunct table) unconditionally — so the new
113
+ // column's `REFERENCES dedupe_cap_events(id)` target always exists by
114
+ // this point, for both fresh and legacy archives.
115
+ await migrateContentItemsDedupeCapEventId(knex, onLog);
116
+ // A plain `hasColumn`-guarded ADD COLUMN, same as `migrateContentItemsAliasOfId`
117
+ // above — no adjunct-table dependency, so ordering relative to it doesn't matter.
118
+ await migrateContentItemsIsMetadataOnly(knex, onLog);
119
+ await migrateListReconcileRunsInvalidSkipped(knex, onLog);
120
+ await migrateListReconcileRunsExcludeSkipped(knex, onLog);
121
+ await closeStaleOpenNetworkOutages(knex);
122
+ }
@@ -0,0 +1,22 @@
1
+ import type { ListReconcileRunMeta } from '../../types.js';
2
+ import type { Knex } from 'knex';
3
+ /**
4
+ * Appends one row to the `list_reconcile_runs` audit log.
5
+ *
6
+ * Called by `CrawlerOrchestrator.inventory` and `CrawlerOrchestrator.recrawl`
7
+ * on every successful `--inventory <list>` / `--recrawl <list>` invocation
8
+ * so the archive carries a durable record of which list was applied when
9
+ * and at what scale — the operational question "did we apply last month's
10
+ * list" the archive itself can answer without consulting external
11
+ * bookkeeping.
12
+ *
13
+ * Append-only. There is intentionally no UPDATE path and no UNIQUE
14
+ * constraint on `source_file_sha256`; two applies of the same list
15
+ * each get their own row. Duplicate detection is left to readers —
16
+ * the hash is recorded as the content-identity key they would use.
17
+ * Field-level NULL semantics live on {@link ListReconcileRunMeta}.
18
+ * @param knex - Knex query builder connected to the archive DB.
19
+ * @param meta - The run metadata to record. Only `ran_at` is required.
20
+ * @returns The autoincremented `id` of the newly-inserted row.
21
+ */
22
+ export declare function recordListReconcileRun(knex: Knex, meta: ListReconcileRunMeta): Promise<number>;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Appends one row to the `list_reconcile_runs` audit log.
3
+ *
4
+ * Called by `CrawlerOrchestrator.inventory` and `CrawlerOrchestrator.recrawl`
5
+ * on every successful `--inventory <list>` / `--recrawl <list>` invocation
6
+ * so the archive carries a durable record of which list was applied when
7
+ * and at what scale — the operational question "did we apply last month's
8
+ * list" the archive itself can answer without consulting external
9
+ * bookkeeping.
10
+ *
11
+ * Append-only. There is intentionally no UPDATE path and no UNIQUE
12
+ * constraint on `source_file_sha256`; two applies of the same list
13
+ * each get their own row. Duplicate detection is left to readers —
14
+ * the hash is recorded as the content-identity key they would use.
15
+ * Field-level NULL semantics live on {@link ListReconcileRunMeta}.
16
+ * @param knex - Knex query builder connected to the archive DB.
17
+ * @param meta - The run metadata to record. Only `ran_at` is required.
18
+ * @returns The autoincremented `id` of the newly-inserted row.
19
+ */
20
+ export async function recordListReconcileRun(knex, meta) {
21
+ const inserted = await knex
22
+ .from('list_reconcile_runs')
23
+ .insert({
24
+ ran_at: meta.ran_at,
25
+ list_label: meta.list_label ?? null,
26
+ source_file_sha256: meta.source_file_sha256 ?? null,
27
+ total_lines: meta.total_lines ?? null,
28
+ new_pages: meta.new_pages ?? null,
29
+ new_resources: meta.new_resources ?? null,
30
+ scope_skipped: meta.scope_skipped ?? null,
31
+ exclude_skipped: meta.exclude_skipped ?? null,
32
+ invalid_skipped: meta.invalid_skipped ?? null,
33
+ notes: meta.notes ?? null,
34
+ })
35
+ .returning('id');
36
+ const id = inserted[0]?.id;
37
+ if (typeof id !== 'number') {
38
+ throw new TypeError('recordListReconcileRun: INSERT returned no row id');
39
+ }
40
+ return id;
41
+ }
@@ -0,0 +1,11 @@
1
+ import type { MainContentAudioRow } from '../../meta/types.js';
2
+ import type { Knex } from 'knex';
3
+ /**
4
+ * Retrieves all `page_main_content_audios` rows for the given page id, in
5
+ * DOM traversal order.
6
+ *
7
+ * Read-side counterpart to `insertAudios`.
8
+ * @param knex - Knex query builder connected to the archive DB.
9
+ * @param pageId
10
+ */
11
+ export declare function getAudiosOfPage(knex: Knex, pageId: number): Promise<MainContentAudioRow[]>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Retrieves all `page_main_content_audios` rows for the given page id, in
3
+ * DOM traversal order.
4
+ *
5
+ * Read-side counterpart to `insertAudios`.
6
+ * @param knex - Knex query builder connected to the archive DB.
7
+ * @param pageId
8
+ */
9
+ export async function getAudiosOfPage(knex, pageId) {
10
+ return knex
11
+ .select('id', 'pageId', 'order', 'src')
12
+ .from('page_main_content_audios')
13
+ .where('pageId', pageId)
14
+ .orderBy('order', 'asc');
15
+ }
@@ -0,0 +1,11 @@
1
+ import type { MainContentButtonRow } from '../../meta/types.js';
2
+ import type { Knex } from 'knex';
3
+ /**
4
+ * Retrieves all `page_main_content_buttons` rows for the given page id, in
5
+ * DOM traversal order.
6
+ *
7
+ * Read-side counterpart to `insertButtons`.
8
+ * @param knex - Knex query builder connected to the archive DB.
9
+ * @param pageId
10
+ */
11
+ export declare function getButtonsOfPage(knex: Knex, pageId: number): Promise<MainContentButtonRow[]>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Retrieves all `page_main_content_buttons` rows for the given page id, in
3
+ * DOM traversal order.
4
+ *
5
+ * Read-side counterpart to `insertButtons`.
6
+ * @param knex - Knex query builder connected to the archive DB.
7
+ * @param pageId
8
+ */
9
+ export async function getButtonsOfPage(knex, pageId) {
10
+ return knex
11
+ .select('id', 'pageId', 'order', 'nodeName', 'role', 'type', 'text', 'disabled')
12
+ .from('page_main_content_buttons')
13
+ .where('pageId', pageId)
14
+ .orderBy('order', 'asc');
15
+ }
@@ -0,0 +1,11 @@
1
+ import type { MainContentCanvasRow } from '../../meta/types.js';
2
+ import type { Knex } from 'knex';
3
+ /**
4
+ * Retrieves all `page_main_content_canvases` rows for the given page id, in
5
+ * DOM traversal order.
6
+ *
7
+ * Read-side counterpart to `insertCanvases`.
8
+ * @param knex - Knex query builder connected to the archive DB.
9
+ * @param pageId
10
+ */
11
+ export declare function getCanvasesOfPage(knex: Knex, pageId: number): Promise<MainContentCanvasRow[]>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Retrieves all `page_main_content_canvases` rows for the given page id, in
3
+ * DOM traversal order.
4
+ *
5
+ * Read-side counterpart to `insertCanvases`.
6
+ * @param knex - Knex query builder connected to the archive DB.
7
+ * @param pageId
8
+ */
9
+ export async function getCanvasesOfPage(knex, pageId) {
10
+ return knex
11
+ .select('id', 'pageId', 'order', 'width', 'height')
12
+ .from('page_main_content_canvases')
13
+ .where('pageId', pageId)
14
+ .orderBy('order', 'asc');
15
+ }
@@ -0,0 +1,11 @@
1
+ import type { MainContentCustomElementRow } from '../../meta/types.js';
2
+ import type { Knex } from 'knex';
3
+ /**
4
+ * Retrieves all `page_main_content_custom_elements` rows for the given page
5
+ * id, in DOM traversal order.
6
+ *
7
+ * Read-side counterpart to `insertCustomElements`.
8
+ * @param knex - Knex query builder connected to the archive DB.
9
+ * @param pageId
10
+ */
11
+ export declare function getCustomElementsOfPage(knex: Knex, pageId: number): Promise<MainContentCustomElementRow[]>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Retrieves all `page_main_content_custom_elements` rows for the given page
3
+ * id, in DOM traversal order.
4
+ *
5
+ * Read-side counterpart to `insertCustomElements`.
6
+ * @param knex - Knex query builder connected to the archive DB.
7
+ * @param pageId
8
+ */
9
+ export async function getCustomElementsOfPage(knex, pageId) {
10
+ return knex
11
+ .select('id', 'pageId', 'order', 'nodeName', 'elementId', 'classList')
12
+ .from('page_main_content_custom_elements')
13
+ .where('pageId', pageId)
14
+ .orderBy('order', 'asc');
15
+ }
@@ -0,0 +1,11 @@
1
+ import type { MainContentHeadingRow } from '../../meta/types.js';
2
+ import type { Knex } from 'knex';
3
+ /**
4
+ * Retrieves all `page_main_content_headings` rows for the given page id, in
5
+ * DOM traversal order.
6
+ *
7
+ * Read-side counterpart to `insertHeadings`.
8
+ * @param knex - Knex query builder connected to the archive DB.
9
+ * @param pageId
10
+ */
11
+ export declare function getHeadingsOfPage(knex: Knex, pageId: number): Promise<MainContentHeadingRow[]>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Retrieves all `page_main_content_headings` rows for the given page id, in
3
+ * DOM traversal order.
4
+ *
5
+ * Read-side counterpart to `insertHeadings`.
6
+ * @param knex - Knex query builder connected to the archive DB.
7
+ * @param pageId
8
+ */
9
+ export async function getHeadingsOfPage(knex, pageId) {
10
+ return knex
11
+ .select('id', 'pageId', 'order', 'text', 'level')
12
+ .from('page_main_content_headings')
13
+ .where('pageId', pageId)
14
+ .orderBy('order', 'asc');
15
+ }
@@ -0,0 +1,11 @@
1
+ import type { MainContentIframeRow } from '../../meta/types.js';
2
+ import type { Knex } from 'knex';
3
+ /**
4
+ * Retrieves all `page_main_content_iframes` rows for the given page id, in
5
+ * DOM traversal order.
6
+ *
7
+ * Read-side counterpart to `insertIframes`.
8
+ * @param knex - Knex query builder connected to the archive DB.
9
+ * @param pageId
10
+ */
11
+ export declare function getIframesOfPage(knex: Knex, pageId: number): Promise<MainContentIframeRow[]>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Retrieves all `page_main_content_iframes` rows for the given page id, in
3
+ * DOM traversal order.
4
+ *
5
+ * Read-side counterpart to `insertIframes`.
6
+ * @param knex - Knex query builder connected to the archive DB.
7
+ * @param pageId
8
+ */
9
+ export async function getIframesOfPage(knex, pageId) {
10
+ return knex
11
+ .select('id', 'pageId', 'order', 'src', 'title', 'width', 'height')
12
+ .from('page_main_content_iframes')
13
+ .where('pageId', pageId)
14
+ .orderBy('order', 'asc');
15
+ }
@@ -0,0 +1,13 @@
1
+ import type { JsonLdRow } from '../../meta/types.js';
2
+ import type { Knex } from 'knex';
3
+ /**
4
+ * Retrieves all `page_jsonld` rows for the given page id, parsed back into
5
+ * {@link JsonLdRow} shape (with `parsed` deserialised from its JSON column).
6
+ *
7
+ * Read-side counterpart to `insertJsonLd`. Returns rows in insertion order
8
+ * by `id` so the order observed by `get-page-jsonld` matches the order the
9
+ * scraper saw them.
10
+ * @param knex - Knex query builder connected to the archive DB.
11
+ * @param pageId
12
+ */
13
+ export declare function getJsonLdOfPage(knex: Knex, pageId: number): Promise<JsonLdRow[]>;
@@ -0,0 +1,27 @@
1
+ import { safeParseJson } from '../_shared/safe-parse-json.js';
2
+ /**
3
+ * Retrieves all `page_jsonld` rows for the given page id, parsed back into
4
+ * {@link JsonLdRow} shape (with `parsed` deserialised from its JSON column).
5
+ *
6
+ * Read-side counterpart to `insertJsonLd`. Returns rows in insertion order
7
+ * by `id` so the order observed by `get-page-jsonld` matches the order the
8
+ * scraper saw them.
9
+ * @param knex - Knex query builder connected to the archive DB.
10
+ * @param pageId
11
+ */
12
+ export async function getJsonLdOfPage(knex, pageId) {
13
+ const rows = await knex
14
+ .select('id', 'pageId', 'kind', 'type', 'raw', 'parsed', 'parseError')
15
+ .from('page_jsonld')
16
+ .where('pageId', pageId)
17
+ .orderBy('id', 'asc');
18
+ return rows.map((r) => ({
19
+ id: r.id,
20
+ pageId: r.pageId,
21
+ kind: r.kind === 'speculationrules' ? 'speculationrules' : 'ld+json',
22
+ type: r.type,
23
+ raw: r.raw,
24
+ parsed: r.parsed === null ? null : safeParseJson(r.parsed),
25
+ parseError: r.parseError,
26
+ }));
27
+ }
@@ -0,0 +1,11 @@
1
+ import type { MainContentImageRow } from '../../meta/types.js';
2
+ import type { Knex } from 'knex';
3
+ /**
4
+ * Retrieves all `page_main_content_images` rows for the given page id, in
5
+ * DOM traversal order.
6
+ *
7
+ * Read-side counterpart to `insertMainContentImages`.
8
+ * @param knex - Knex query builder connected to the archive DB.
9
+ * @param pageId
10
+ */
11
+ export declare function getMainContentImagesOfPage(knex: Knex, pageId: number): Promise<MainContentImageRow[]>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Retrieves all `page_main_content_images` rows for the given page id, in
3
+ * DOM traversal order.
4
+ *
5
+ * Read-side counterpart to `insertMainContentImages`.
6
+ * @param knex - Knex query builder connected to the archive DB.
7
+ * @param pageId
8
+ */
9
+ export async function getMainContentImagesOfPage(knex, pageId) {
10
+ return knex
11
+ .select('id', 'pageId', 'order', 'src', 'alt')
12
+ .from('page_main_content_images')
13
+ .where('pageId', pageId)
14
+ .orderBy('order', 'asc');
15
+ }
@@ -0,0 +1,11 @@
1
+ import type { MainContentTableRow } from '../../meta/types.js';
2
+ import type { Knex } from 'knex';
3
+ /**
4
+ * Retrieves all `page_main_content_tables` rows for the given page id, in
5
+ * DOM traversal order.
6
+ *
7
+ * Read-side counterpart to `insertMainContentTables`.
8
+ * @param knex - Knex query builder connected to the archive DB.
9
+ * @param pageId
10
+ */
11
+ export declare function getMainContentTablesOfPage(knex: Knex, pageId: number): Promise<MainContentTableRow[]>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Retrieves all `page_main_content_tables` rows for the given page id, in
3
+ * DOM traversal order.
4
+ *
5
+ * Read-side counterpart to `insertMainContentTables`.
6
+ * @param knex - Knex query builder connected to the archive DB.
7
+ * @param pageId
8
+ */
9
+ export async function getMainContentTablesOfPage(knex, pageId) {
10
+ return knex
11
+ .select('id', 'pageId', 'order', 'rows', 'cols', 'hasHeader', 'hasFooter', 'hasMergedCell')
12
+ .from('page_main_content_tables')
13
+ .where('pageId', pageId)
14
+ .orderBy('order', 'asc');
15
+ }
@@ -0,0 +1,11 @@
1
+ import type { PageTechnologyRow } from '../../meta/types.js';
2
+ import type { Knex } from 'knex';
3
+ /**
4
+ * Retrieves all `page_technologies` rows for the given page id — the
5
+ * confidence-combined roll-up (one row per detected technology).
6
+ *
7
+ * Read-side counterpart to `insertTechnologies`.
8
+ * @param knex - Knex query builder connected to the archive DB.
9
+ * @param pageId
10
+ */
11
+ export declare function getPageTechnologiesOfPage(knex: Knex, pageId: number): Promise<PageTechnologyRow[]>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Retrieves all `page_technologies` rows for the given page id — the
3
+ * confidence-combined roll-up (one row per detected technology).
4
+ *
5
+ * Read-side counterpart to `insertTechnologies`.
6
+ * @param knex - Knex query builder connected to the archive DB.
7
+ * @param pageId
8
+ */
9
+ export async function getPageTechnologiesOfPage(knex, pageId) {
10
+ return knex
11
+ .select('id', 'pageId', 'technology', 'category', 'version', 'confidence', 'signalCount')
12
+ .from('page_technologies')
13
+ .where('pageId', pageId)
14
+ .orderBy('confidence', 'desc');
15
+ }
@@ -0,0 +1,11 @@
1
+ import type { TechnologySignalRow } from '../../meta/types.js';
2
+ import type { Knex } from 'knex';
3
+ /**
4
+ * Retrieves all `technology_signals` rows for the given page id — the raw,
5
+ * per-signal evidence behind its `page_technologies` roll-up.
6
+ *
7
+ * Read-side counterpart to `insertTechnologies`.
8
+ * @param knex - Knex query builder connected to the archive DB.
9
+ * @param pageId
10
+ */
11
+ export declare function getTechnologySignalsOfPage(knex: Knex, pageId: number): Promise<TechnologySignalRow[]>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Retrieves all `technology_signals` rows for the given page id — the raw,
3
+ * per-signal evidence behind its `page_technologies` roll-up.
4
+ *
5
+ * Read-side counterpart to `insertTechnologies`.
6
+ * @param knex - Knex query builder connected to the archive DB.
7
+ * @param pageId
8
+ */
9
+ export async function getTechnologySignalsOfPage(knex, pageId) {
10
+ return knex
11
+ .select('id', 'pageId', 'technology', 'signalType', 'evidence', 'weight')
12
+ .from('technology_signals')
13
+ .where('pageId', pageId)
14
+ .orderBy('id', 'asc');
15
+ }
@@ -0,0 +1,11 @@
1
+ import type { MainContentVideoRow } from '../../meta/types.js';
2
+ import type { Knex } from 'knex';
3
+ /**
4
+ * Retrieves all `page_main_content_videos` rows for the given page id, in
5
+ * DOM traversal order.
6
+ *
7
+ * Read-side counterpart to `insertVideos`.
8
+ * @param knex - Knex query builder connected to the archive DB.
9
+ * @param pageId
10
+ */
11
+ export declare function getVideosOfPage(knex: Knex, pageId: number): Promise<MainContentVideoRow[]>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Retrieves all `page_main_content_videos` rows for the given page id, in
3
+ * DOM traversal order.
4
+ *
5
+ * Read-side counterpart to `insertVideos`.
6
+ * @param knex - Knex query builder connected to the archive DB.
7
+ * @param pageId
8
+ */
9
+ export async function getVideosOfPage(knex, pageId) {
10
+ return knex
11
+ .select('id', 'pageId', 'order', 'src', 'poster', 'width', 'height')
12
+ .from('page_main_content_videos')
13
+ .where('pageId', pageId)
14
+ .orderBy('order', 'asc');
15
+ }