@nitpicker/archive 0.0.0-stage → 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.
- package/LICENSE +191 -0
- package/README.md +105 -2
- package/lib/apply-connection-pragmas.d.ts +18 -0
- package/lib/apply-connection-pragmas.js +40 -0
- package/lib/archive-accessor.d.ts +265 -0
- package/lib/archive-accessor.js +477 -0
- package/lib/archive-lock.d.ts +45 -0
- package/lib/archive-lock.js +154 -0
- package/lib/archive.d.ts +736 -0
- package/lib/archive.js +1056 -0
- package/lib/body-hash/compute-body-hash.d.ts +32 -0
- package/lib/body-hash/compute-body-hash.js +35 -0
- package/lib/cache/clear-archive-cache-entry.d.ts +18 -0
- package/lib/cache/clear-archive-cache-entry.js +24 -0
- package/lib/cache/clear-archive-cache-root.d.ts +26 -0
- package/lib/cache/clear-archive-cache-root.js +32 -0
- package/lib/cache/compute-archive-cache-key.d.ts +39 -0
- package/lib/cache/compute-archive-cache-key.js +95 -0
- package/lib/cache/extract-archive-to-cache.d.ts +57 -0
- package/lib/cache/extract-archive-to-cache.js +326 -0
- package/lib/cache/get-archive-cache-root.d.ts +20 -0
- package/lib/cache/get-archive-cache-root.js +53 -0
- package/lib/cache/is-archive-cache-disabled.d.ts +24 -0
- package/lib/cache/is-archive-cache-disabled.js +34 -0
- package/lib/cache/list-archive-cache-entries.d.ts +23 -0
- package/lib/cache/list-archive-cache-entries.js +130 -0
- package/lib/cache/path-exists.d.ts +9 -0
- package/lib/cache/path-exists.js +18 -0
- package/lib/cache/resolve-archive-cache-dir.d.ts +26 -0
- package/lib/cache/resolve-archive-cache-dir.js +32 -0
- package/lib/cache/types.d.ts +33 -0
- package/lib/cache/types.js +1 -0
- package/lib/content-type/is-html-content-type.d.ts +17 -0
- package/lib/content-type/is-html-content-type.js +19 -0
- package/lib/content-type/normalize-content-type.d.ts +14 -0
- package/lib/content-type/normalize-content-type.js +20 -0
- package/lib/create-adjunct-tables.d.ts +66 -0
- package/lib/create-adjunct-tables.js +510 -0
- package/lib/create-entity-tables.d.ts +191 -0
- package/lib/create-entity-tables.js +387 -0
- package/lib/create-progress-reporter.d.ts +30 -0
- package/lib/create-progress-reporter.js +38 -0
- package/lib/create-ref-tables.d.ts +35 -0
- package/lib/create-ref-tables.js +185 -0
- package/lib/create-template-tables.d.ts +28 -0
- package/lib/create-template-tables.js +92 -0
- package/lib/database.d.ts +549 -0
- package/lib/database.js +804 -0
- package/lib/db-ops/_shared/clear-write-ref-caches.d.ts +27 -0
- package/lib/db-ops/_shared/clear-write-ref-caches.js +35 -0
- package/lib/db-ops/_shared/compress-payload.d.ts +26 -0
- package/lib/db-ops/_shared/compress-payload.js +30 -0
- package/lib/db-ops/_shared/create-write-ref-caches.d.ts +17 -0
- package/lib/db-ops/_shared/create-write-ref-caches.js +27 -0
- package/lib/db-ops/_shared/decode-json-ref.d.ts +17 -0
- package/lib/db-ops/_shared/decode-json-ref.js +31 -0
- package/lib/db-ops/_shared/keyset-paginate-by-id.d.ts +49 -0
- package/lib/db-ops/_shared/keyset-paginate-by-id.js +69 -0
- package/lib/db-ops/_shared/load-response-headers-by-set-ids.d.ts +20 -0
- package/lib/db-ops/_shared/load-response-headers-by-set-ids.js +53 -0
- package/lib/db-ops/_shared/resolve-content-item-id.d.ts +62 -0
- package/lib/db-ops/_shared/resolve-content-item-id.js +143 -0
- package/lib/db-ops/_shared/resolve-url-or-blob.d.ts +23 -0
- package/lib/db-ops/_shared/resolve-url-or-blob.js +29 -0
- package/lib/db-ops/_shared/retry-setting.d.ts +16 -0
- package/lib/db-ops/_shared/retry-setting.js +18 -0
- package/lib/db-ops/_shared/safe-parse-json.d.ts +11 -0
- package/lib/db-ops/_shared/safe-parse-json.js +18 -0
- package/lib/db-ops/_shared/types.d.ts +94 -0
- package/lib/db-ops/_shared/types.js +1 -0
- package/lib/db-ops/_shared/upsert-blob-ref.d.ts +25 -0
- package/lib/db-ops/_shared/upsert-blob-ref.js +48 -0
- package/lib/db-ops/_shared/upsert-content-type-ref.d.ts +30 -0
- package/lib/db-ops/_shared/upsert-content-type-ref.js +45 -0
- package/lib/db-ops/_shared/upsert-json-ref.d.ts +22 -0
- package/lib/db-ops/_shared/upsert-json-ref.js +41 -0
- package/lib/db-ops/_shared/upsert-response-headers.d.ts +35 -0
- package/lib/db-ops/_shared/upsert-response-headers.js +49 -0
- package/lib/db-ops/_shared/upsert-url-ref.d.ts +39 -0
- package/lib/db-ops/_shared/upsert-url-ref.js +62 -0
- package/lib/db-ops/anchors/get-anchors-on-page.d.ts +10 -0
- package/lib/db-ops/anchors/get-anchors-on-page.js +21 -0
- package/lib/db-ops/config/get-base-url.d.ts +8 -0
- package/lib/db-ops/config/get-base-url.js +14 -0
- package/lib/db-ops/config/get-config.d.ts +10 -0
- package/lib/db-ops/config/get-config.js +29 -0
- package/lib/db-ops/config/get-created-cwd.d.ts +11 -0
- package/lib/db-ops/config/get-created-cwd.js +13 -0
- package/lib/db-ops/config/get-name.d.ts +8 -0
- package/lib/db-ops/config/get-name.js +14 -0
- package/lib/db-ops/config/info-column-allowlist.d.ts +7 -0
- package/lib/db-ops/config/info-column-allowlist.js +29 -0
- package/lib/db-ops/config/info-json-columns.d.ts +5 -0
- package/lib/db-ops/config/info-json-columns.js +11 -0
- package/lib/db-ops/config/set-config.d.ts +12 -0
- package/lib/db-ops/config/set-config.js +21 -0
- package/lib/db-ops/config/update-config.d.ts +17 -0
- package/lib/db-ops/config/update-config.js +36 -0
- package/lib/db-ops/console-logs/compute-console-log-hash.d.ts +19 -0
- package/lib/db-ops/console-logs/compute-console-log-hash.js +30 -0
- package/lib/db-ops/console-logs/replace-console-logs.d.ts +34 -0
- package/lib/db-ops/console-logs/replace-console-logs.js +123 -0
- package/lib/db-ops/console-logs/stringify-console-log-args.d.ts +16 -0
- package/lib/db-ops/console-logs/stringify-console-log-args.js +26 -0
- package/lib/db-ops/console-logs/types.d.ts +38 -0
- package/lib/db-ops/console-logs/types.js +1 -0
- package/lib/db-ops/console-logs/upsert-console-log-item.d.ts +29 -0
- package/lib/db-ops/console-logs/upsert-console-log-item.js +52 -0
- package/lib/db-ops/dedupe-cap/accumulate-dedupe-cap-rejected-count.d.ts +18 -0
- package/lib/db-ops/dedupe-cap/accumulate-dedupe-cap-rejected-count.js +23 -0
- package/lib/db-ops/dedupe-cap/finalize-dedupe-cap-event.d.ts +12 -0
- package/lib/db-ops/dedupe-cap/finalize-dedupe-cap-event.js +15 -0
- package/lib/db-ops/dedupe-cap/insert-dedupe-cap-event.d.ts +14 -0
- package/lib/db-ops/dedupe-cap/insert-dedupe-cap-event.js +30 -0
- package/lib/db-ops/dedupe-cap/list-dedupe-cap-observations.d.ts +57 -0
- package/lib/db-ops/dedupe-cap/list-dedupe-cap-observations.js +87 -0
- package/lib/db-ops/dedupe-cap/list-dedupe-cap-shape-keys.d.ts +21 -0
- package/lib/db-ops/dedupe-cap/list-dedupe-cap-shape-keys.js +27 -0
- package/lib/db-ops/errors/insert-crawl-error.d.ts +15 -0
- package/lib/db-ops/errors/insert-crawl-error.js +21 -0
- package/lib/db-ops/errors/insert-page-error.d.ts +21 -0
- package/lib/db-ops/errors/insert-page-error.js +30 -0
- package/lib/db-ops/errors/list-dns-burned-host-candidates.d.ts +33 -0
- package/lib/db-ops/errors/list-dns-burned-host-candidates.js +158 -0
- package/lib/db-ops/html/read-page-html-blob.d.ts +17 -0
- package/lib/db-ops/html/read-page-html-blob.js +20 -0
- package/lib/db-ops/lifecycle/checkpoint.d.ts +8 -0
- package/lib/db-ops/lifecycle/checkpoint.js +9 -0
- package/lib/db-ops/lifecycle/destroy.d.ts +6 -0
- package/lib/db-ops/lifecycle/destroy.js +7 -0
- package/lib/db-ops/lifecycle/init.d.ts +58 -0
- package/lib/db-ops/lifecycle/init.js +122 -0
- package/lib/db-ops/list-reconcile/record-list-reconcile-run.d.ts +22 -0
- package/lib/db-ops/list-reconcile/record-list-reconcile-run.js +41 -0
- package/lib/db-ops/meta/get-audios-of-page.d.ts +11 -0
- package/lib/db-ops/meta/get-audios-of-page.js +15 -0
- package/lib/db-ops/meta/get-buttons-of-page.d.ts +11 -0
- package/lib/db-ops/meta/get-buttons-of-page.js +15 -0
- package/lib/db-ops/meta/get-canvases-of-page.d.ts +11 -0
- package/lib/db-ops/meta/get-canvases-of-page.js +15 -0
- package/lib/db-ops/meta/get-custom-elements-of-page.d.ts +11 -0
- package/lib/db-ops/meta/get-custom-elements-of-page.js +15 -0
- package/lib/db-ops/meta/get-headings-of-page.d.ts +11 -0
- package/lib/db-ops/meta/get-headings-of-page.js +15 -0
- package/lib/db-ops/meta/get-iframes-of-page.d.ts +11 -0
- package/lib/db-ops/meta/get-iframes-of-page.js +15 -0
- package/lib/db-ops/meta/get-jsonld-of-page.d.ts +13 -0
- package/lib/db-ops/meta/get-jsonld-of-page.js +27 -0
- package/lib/db-ops/meta/get-main-content-images-of-page.d.ts +11 -0
- package/lib/db-ops/meta/get-main-content-images-of-page.js +15 -0
- package/lib/db-ops/meta/get-main-content-tables-of-page.d.ts +11 -0
- package/lib/db-ops/meta/get-main-content-tables-of-page.js +15 -0
- package/lib/db-ops/meta/get-page-technologies-of-page.d.ts +11 -0
- package/lib/db-ops/meta/get-page-technologies-of-page.js +15 -0
- package/lib/db-ops/meta/get-technology-signals-of-page.d.ts +11 -0
- package/lib/db-ops/meta/get-technology-signals-of-page.js +15 -0
- package/lib/db-ops/meta/get-videos-of-page.d.ts +11 -0
- package/lib/db-ops/meta/get-videos-of-page.js +15 -0
- package/lib/db-ops/outages/close-network-outage.d.ts +12 -0
- package/lib/db-ops/outages/close-network-outage.js +15 -0
- package/lib/db-ops/outages/close-stale-open-network-outages.d.ts +26 -0
- package/lib/db-ops/outages/close-stale-open-network-outages.js +42 -0
- package/lib/db-ops/outages/compute-outage-clamp-timestamp.d.ts +26 -0
- package/lib/db-ops/outages/compute-outage-clamp-timestamp.js +31 -0
- package/lib/db-ops/outages/insert-network-outage.d.ts +14 -0
- package/lib/db-ops/outages/insert-network-outage.js +29 -0
- package/lib/db-ops/outages/list-network-outages.d.ts +28 -0
- package/lib/db-ops/outages/list-network-outages.js +42 -0
- package/lib/db-ops/pages/order/set-url-order.d.ts +13 -0
- package/lib/db-ops/pages/order/set-url-order.js +38 -0
- package/lib/db-ops/pages/read/build-page-query.d.ts +18 -0
- package/lib/db-ops/pages/read/build-page-query.js +40 -0
- package/lib/db-ops/pages/read/get-crawling-state.d.ts +117 -0
- package/lib/db-ops/pages/read/get-crawling-state.js +161 -0
- package/lib/db-ops/pages/read/get-existing-page-urls.d.ts +15 -0
- package/lib/db-ops/pages/read/get-existing-page-urls.js +30 -0
- package/lib/db-ops/pages/read/get-page-count.d.ts +12 -0
- package/lib/db-ops/pages/read/get-page-count.js +21 -0
- package/lib/db-ops/pages/read/get-page-source-by-url.d.ts +24 -0
- package/lib/db-ops/pages/read/get-page-source-by-url.js +28 -0
- package/lib/db-ops/pages/read/get-pages-with-rels.d.ts +38 -0
- package/lib/db-ops/pages/read/get-pages-with-rels.js +107 -0
- package/lib/db-ops/pages/read/get-pages.d.ts +11 -0
- package/lib/db-ops/pages/read/get-pages.js +51 -0
- package/lib/db-ops/pages/read/get-scraped-html-page-count.d.ts +18 -0
- package/lib/db-ops/pages/read/get-scraped-html-page-count.js +25 -0
- package/lib/db-ops/pages/read/reconstruct-page-rows.d.ts +31 -0
- package/lib/db-ops/pages/read/reconstruct-page-rows.js +32 -0
- package/lib/db-ops/pages/reset/clear-page-derived-rows.d.ts +20 -0
- package/lib/db-ops/pages/reset/clear-page-derived-rows.js +37 -0
- package/lib/db-ops/pages/reset/repromote-external-pages.d.ts +30 -0
- package/lib/db-ops/pages/reset/repromote-external-pages.js +91 -0
- package/lib/db-ops/pages/reset/reset-failed-pages.d.ts +88 -0
- package/lib/db-ops/pages/reset/reset-failed-pages.js +216 -0
- package/lib/db-ops/pages/reset/reset-pages-by-urls.d.ts +80 -0
- package/lib/db-ops/pages/reset/reset-pages-by-urls.js +151 -0
- package/lib/db-ops/pages/reset/retryable-image-scan-codes.d.ts +24 -0
- package/lib/db-ops/pages/reset/retryable-image-scan-codes.js +24 -0
- package/lib/db-ops/pages/write/insert-audios.d.ts +14 -0
- package/lib/db-ops/pages/write/insert-audios.js +25 -0
- package/lib/db-ops/pages/write/insert-buttons.d.ts +14 -0
- package/lib/db-ops/pages/write/insert-buttons.js +29 -0
- package/lib/db-ops/pages/write/insert-canvases.d.ts +14 -0
- package/lib/db-ops/pages/write/insert-canvases.js +26 -0
- package/lib/db-ops/pages/write/insert-custom-elements.d.ts +27 -0
- package/lib/db-ops/pages/write/insert-custom-elements.js +40 -0
- package/lib/db-ops/pages/write/insert-headings.d.ts +15 -0
- package/lib/db-ops/pages/write/insert-headings.js +27 -0
- package/lib/db-ops/pages/write/insert-iframes.d.ts +14 -0
- package/lib/db-ops/pages/write/insert-iframes.js +28 -0
- package/lib/db-ops/pages/write/insert-inventory-content-items.d.ts +38 -0
- package/lib/db-ops/pages/write/insert-inventory-content-items.js +60 -0
- package/lib/db-ops/pages/write/insert-inventory-seeds.d.ts +36 -0
- package/lib/db-ops/pages/write/insert-inventory-seeds.js +48 -0
- package/lib/db-ops/pages/write/insert-inventory-skipped-pages.d.ts +42 -0
- package/lib/db-ops/pages/write/insert-inventory-skipped-pages.js +56 -0
- package/lib/db-ops/pages/write/insert-jsonld.d.ts +17 -0
- package/lib/db-ops/pages/write/insert-jsonld.js +49 -0
- package/lib/db-ops/pages/write/insert-main-content-images.d.ts +20 -0
- package/lib/db-ops/pages/write/insert-main-content-images.js +32 -0
- package/lib/db-ops/pages/write/insert-main-content-tables.d.ts +14 -0
- package/lib/db-ops/pages/write/insert-main-content-tables.js +29 -0
- package/lib/db-ops/pages/write/insert-page.d.ts +56 -0
- package/lib/db-ops/pages/write/insert-page.js +259 -0
- package/lib/db-ops/pages/write/insert-technologies.d.ts +25 -0
- package/lib/db-ops/pages/write/insert-technologies.js +45 -0
- package/lib/db-ops/pages/write/insert-videos.d.ts +14 -0
- package/lib/db-ops/pages/write/insert-videos.js +28 -0
- package/lib/db-ops/pages/write/link-redirect-sources.d.ts +42 -0
- package/lib/db-ops/pages/write/link-redirect-sources.js +101 -0
- package/lib/db-ops/pages/write/record-redirect.d.ts +35 -0
- package/lib/db-ops/pages/write/record-redirect.js +100 -0
- package/lib/db-ops/pages/write/set-skipped-page.d.ts +13 -0
- package/lib/db-ops/pages/write/set-skipped-page.js +24 -0
- package/lib/db-ops/pages/write/update-page.d.ts +40 -0
- package/lib/db-ops/pages/write/update-page.js +419 -0
- package/lib/db-ops/pages/write/write-page-html-blob.d.ts +19 -0
- package/lib/db-ops/pages/write/write-page-html-blob.js +41 -0
- package/lib/db-ops/referrers/get-redirects-for-pages.d.ts +9 -0
- package/lib/db-ops/referrers/get-redirects-for-pages.js +15 -0
- package/lib/db-ops/referrers/get-referrers-of-page.d.ts +17 -0
- package/lib/db-ops/referrers/get-referrers-of-page.js +32 -0
- package/lib/db-ops/referrers/get-referrers-of-resource.d.ts +8 -0
- package/lib/db-ops/referrers/get-referrers-of-resource.js +15 -0
- package/lib/db-ops/resources/build-resource-query.d.ts +25 -0
- package/lib/db-ops/resources/build-resource-query.js +29 -0
- package/lib/db-ops/resources/get-existing-resource-urls.d.ts +9 -0
- package/lib/db-ops/resources/get-existing-resource-urls.js +24 -0
- package/lib/db-ops/resources/get-resource-by-url.d.ts +13 -0
- package/lib/db-ops/resources/get-resource-by-url.js +22 -0
- package/lib/db-ops/resources/get-resource-url-list.d.ts +17 -0
- package/lib/db-ops/resources/get-resource-url-list.js +26 -0
- package/lib/db-ops/resources/get-resources.d.ts +8 -0
- package/lib/db-ops/resources/get-resources.js +11 -0
- package/lib/db-ops/resources/insert-inventory-resources.d.ts +24 -0
- package/lib/db-ops/resources/insert-inventory-resources.js +64 -0
- package/lib/db-ops/resources/insert-resource-referrers.d.ts +15 -0
- package/lib/db-ops/resources/insert-resource-referrers.js +54 -0
- package/lib/db-ops/resources/insert-resource.d.ts +34 -0
- package/lib/db-ops/resources/insert-resource.js +73 -0
- package/lib/db-ops/resources/reconstruct-resource-rows.d.ts +26 -0
- package/lib/db-ops/resources/reconstruct-resource-rows.js +30 -0
- package/lib/db-ops/templates/assign-template-labels.d.ts +60 -0
- package/lib/db-ops/templates/assign-template-labels.js +187 -0
- package/lib/db-ops/templates/replace-page-templates.d.ts +44 -0
- package/lib/db-ops/templates/replace-page-templates.js +174 -0
- package/lib/db-ops/templates/serialize-template-cluster-reason.d.ts +16 -0
- package/lib/db-ops/templates/serialize-template-cluster-reason.js +17 -0
- package/lib/db-ops/templates/types.d.ts +103 -0
- package/lib/db-ops/templates/types.js +1 -0
- package/lib/debug.d.ts +8 -0
- package/lib/debug.js +9 -0
- package/lib/decode-html-blob.d.ts +20 -0
- package/lib/decode-html-blob.js +23 -0
- package/lib/decode-page-html-blob-bytes.d.ts +25 -0
- package/lib/decode-page-html-blob-bytes.js +29 -0
- package/lib/decode-stored-blob-bytes.d.ts +25 -0
- package/lib/decode-stored-blob-bytes.js +47 -0
- package/lib/derive-lineage-from-parent.d.ts +37 -0
- package/lib/derive-lineage-from-parent.js +42 -0
- package/lib/drop-legacy-tables.d.ts +45 -0
- package/lib/drop-legacy-tables.js +56 -0
- package/lib/error-kind/classify-error-kind.d.ts +20 -0
- package/lib/error-kind/classify-error-kind.js +136 -0
- package/lib/error-kind/network-related-error-kinds.d.ts +23 -0
- package/lib/error-kind/network-related-error-kinds.js +28 -0
- package/lib/error-kind/permanent-error-kinds.d.ts +48 -0
- package/lib/error-kind/permanent-error-kinds.js +54 -0
- package/lib/error-kind/types.d.ts +54 -0
- package/lib/error-kind/types.js +1 -0
- package/lib/filesystem/append-text.d.ts +9 -0
- package/lib/filesystem/append-text.js +14 -0
- package/lib/filesystem/copy-dir-sync.d.ts +6 -0
- package/lib/filesystem/copy-dir-sync.js +9 -0
- package/lib/filesystem/copy-dir.d.ts +7 -0
- package/lib/filesystem/copy-dir.js +13 -0
- package/lib/filesystem/copy-file-with-progress.d.ts +20 -0
- package/lib/filesystem/copy-file-with-progress.js +34 -0
- package/lib/filesystem/exists.d.ts +6 -0
- package/lib/filesystem/exists.js +9 -0
- package/lib/filesystem/get-file-list.d.ts +8 -0
- package/lib/filesystem/get-file-list.js +12 -0
- package/lib/filesystem/is-dir.d.ts +6 -0
- package/lib/filesystem/is-dir.js +10 -0
- package/lib/filesystem/mkdir.d.ts +8 -0
- package/lib/filesystem/mkdir.js +15 -0
- package/lib/filesystem/output-binary.d.ts +12 -0
- package/lib/filesystem/output-binary.js +17 -0
- package/lib/filesystem/output-json.d.ts +9 -0
- package/lib/filesystem/output-json.js +14 -0
- package/lib/filesystem/output-text.d.ts +11 -0
- package/lib/filesystem/output-text.js +32 -0
- package/lib/filesystem/parse-pax-path.d.ts +18 -0
- package/lib/filesystem/parse-pax-path.js +47 -0
- package/lib/filesystem/parse-tar-size-field.d.ts +13 -0
- package/lib/filesystem/parse-tar-size-field.js +40 -0
- package/lib/filesystem/peek-tar-top-dir.d.ts +35 -0
- package/lib/filesystem/peek-tar-top-dir.js +215 -0
- package/lib/filesystem/read-json.d.ts +7 -0
- package/lib/filesystem/read-json.js +11 -0
- package/lib/filesystem/read-text.d.ts +6 -0
- package/lib/filesystem/read-text.js +10 -0
- package/lib/filesystem/readline.d.ts +11 -0
- package/lib/filesystem/readline.js +26 -0
- package/lib/filesystem/remove.d.ts +5 -0
- package/lib/filesystem/remove.js +10 -0
- package/lib/filesystem/rename.d.ts +16 -0
- package/lib/filesystem/rename.js +48 -0
- package/lib/filesystem/tar.d.ts +23 -0
- package/lib/filesystem/tar.js +78 -0
- package/lib/filesystem/untar.d.ts +33 -0
- package/lib/filesystem/untar.js +84 -0
- package/lib/get-failed-page-messages.d.ts +56 -0
- package/lib/get-failed-page-messages.js +146 -0
- package/lib/get-json.d.ts +10 -0
- package/lib/get-json.js +25 -0
- package/lib/html-snapshot/match-selector-html.d.ts +25 -0
- package/lib/html-snapshot/match-selector-html.js +28 -0
- package/lib/html-snapshot/match-selector-snapshots.d.ts +33 -0
- package/lib/html-snapshot/match-selector-snapshots.js +33 -0
- package/lib/html-snapshot/search-html-document.d.ts +29 -0
- package/lib/html-snapshot/search-html-document.js +27 -0
- package/lib/html-snapshot/search-html-snapshots.d.ts +36 -0
- package/lib/html-snapshot/search-html-snapshots.js +35 -0
- package/lib/html-snapshot/types.d.ts +111 -0
- package/lib/html-snapshot/types.js +7 -0
- package/lib/html-snapshot/validate-search-pattern.d.ts +15 -0
- package/lib/html-snapshot/validate-search-pattern.js +17 -0
- package/lib/init-schema.d.ts +48 -0
- package/lib/init-schema.js +124 -0
- package/lib/is-inventory-source.d.ts +21 -0
- package/lib/is-inventory-source.js +22 -0
- package/lib/is-within-outage-window.d.ts +49 -0
- package/lib/is-within-outage-window.js +33 -0
- package/lib/isolated-cluster/create-isolated-cluster-run.d.ts +24 -0
- package/lib/isolated-cluster/create-isolated-cluster-run.js +26 -0
- package/lib/libsql-dialect.d.ts +115 -0
- package/lib/libsql-dialect.js +116 -0
- package/lib/limited-page-ids.d.ts +9 -0
- package/lib/limited-page-ids.js +18 -0
- package/lib/meta/assert-compatible-version.d.ts +60 -0
- package/lib/meta/assert-compatible-version.js +93 -0
- package/lib/meta/classify-jsonld-type.d.ts +23 -0
- package/lib/meta/classify-jsonld-type.js +43 -0
- package/lib/meta/compare-semver.d.ts +23 -0
- package/lib/meta/compare-semver.js +51 -0
- package/lib/meta/compute-main-contents-denormalized.d.ts +41 -0
- package/lib/meta/compute-main-contents-denormalized.js +88 -0
- package/lib/meta/compute-page-denormalized.d.ts +20 -0
- package/lib/meta/compute-page-denormalized.js +35 -0
- package/lib/meta/derive-flat-from-meta.d.ts +34 -0
- package/lib/meta/derive-flat-from-meta.js +158 -0
- package/lib/meta/derive-meta-extras.d.ts +20 -0
- package/lib/meta/derive-meta-extras.js +23 -0
- package/lib/meta/extract-tags-for-archive.d.ts +17 -0
- package/lib/meta/extract-tags-for-archive.js +36 -0
- package/lib/meta/parse-main-content-class-list.d.ts +19 -0
- package/lib/meta/parse-main-content-class-list.js +34 -0
- package/lib/meta/summarize-jsonld.d.ts +17 -0
- package/lib/meta/summarize-jsonld.js +29 -0
- package/lib/meta/technologies/combine-technology-confidence.d.ts +46 -0
- package/lib/meta/technologies/combine-technology-confidence.js +93 -0
- package/lib/meta/technologies/convert-legacy-page-tags-to-inserts.d.ts +45 -0
- package/lib/meta/technologies/convert-legacy-page-tags-to-inserts.js +53 -0
- package/lib/meta/technologies/convert-tag-row-to-wappalyzer-signal.d.ts +33 -0
- package/lib/meta/technologies/convert-tag-row-to-wappalyzer-signal.js +46 -0
- package/lib/meta/technologies/extract-technologies-for-archive.d.ts +33 -0
- package/lib/meta/technologies/extract-technologies-for-archive.js +30 -0
- package/lib/meta/technologies/match-js-license-comment-signal.d.ts +21 -0
- package/lib/meta/technologies/match-js-license-comment-signal.js +23 -0
- package/lib/meta/technologies/match-structural-technology-signals.d.ts +26 -0
- package/lib/meta/technologies/match-structural-technology-signals.js +48 -0
- package/lib/meta/technologies/normalize-wappalyzer-entries.d.ts +25 -0
- package/lib/meta/technologies/normalize-wappalyzer-entries.js +35 -0
- package/lib/meta/technologies/technology-signal-definitions.d.ts +44 -0
- package/lib/meta/technologies/technology-signal-definitions.js +60 -0
- package/lib/meta/technologies/types.d.ts +70 -0
- package/lib/meta/technologies/types.js +13 -0
- package/lib/meta/types.d.ts +1490 -0
- package/lib/meta/types.js +65 -0
- package/lib/migrate-content-items-alias-of-id.d.ts +52 -0
- package/lib/migrate-content-items-alias-of-id.js +69 -0
- package/lib/migrate-content-items-dedupe-cap-event-id.d.ts +46 -0
- package/lib/migrate-content-items-dedupe-cap-event-id.js +62 -0
- package/lib/migrate-content-items-is-metadata-only.d.ts +44 -0
- package/lib/migrate-content-items-is-metadata-only.js +60 -0
- package/lib/migrate-entity-tables.d.ts +55 -0
- package/lib/migrate-entity-tables.js +66 -0
- package/lib/migrate-info-created-cwd.d.ts +17 -0
- package/lib/migrate-info-created-cwd.js +36 -0
- package/lib/migrate-info-main-content-selector.d.ts +16 -0
- package/lib/migrate-info-main-content-selector.js +35 -0
- package/lib/migrate-info-request-header-names.d.ts +16 -0
- package/lib/migrate-info-request-header-names.js +35 -0
- package/lib/migrate-info-roots.d.ts +20 -0
- package/lib/migrate-info-roots.js +52 -0
- package/lib/migrate-inventory-runs-to-list-reconcile-runs.d.ts +34 -0
- package/lib/migrate-inventory-runs-to-list-reconcile-runs.js +51 -0
- package/lib/migrate-list-reconcile-runs-exclude-skipped.d.ts +25 -0
- package/lib/migrate-list-reconcile-runs-exclude-skipped.js +44 -0
- package/lib/migrate-list-reconcile-runs-invalid-skipped.d.ts +16 -0
- package/lib/migrate-list-reconcile-runs-invalid-skipped.js +35 -0
- package/lib/migrate-main-contents-columns.d.ts +26 -0
- package/lib/migrate-main-contents-columns.js +61 -0
- package/lib/migrate-page-meta-body-hash.d.ts +44 -0
- package/lib/migrate-page-meta-body-hash.js +63 -0
- package/lib/migrate-page-meta-console-error-count.d.ts +27 -0
- package/lib/migrate-page-meta-console-error-count.js +45 -0
- package/lib/migrate-page-meta-custom-element-count.d.ts +33 -0
- package/lib/migrate-page-meta-custom-element-count.js +51 -0
- package/lib/migrate-page-meta-image-scan.d.ts +27 -0
- package/lib/migrate-page-meta-image-scan.js +52 -0
- package/lib/migrate-page-tags-to-page-technologies.d.ts +39 -0
- package/lib/migrate-page-tags-to-page-technologies.js +79 -0
- package/lib/migrate-ref-tables.d.ts +25 -0
- package/lib/migrate-ref-tables.js +38 -0
- package/lib/native-executor/check-native-executor-config.d.ts +17 -0
- package/lib/native-executor/check-native-executor-config.js +20 -0
- package/lib/page-meta-column-maps.d.ts +32 -0
- package/lib/page-meta-column-maps.js +43 -0
- package/lib/page.d.ts +546 -0
- package/lib/page.js +764 -0
- package/lib/peek-archive-lock.d.ts +40 -0
- package/lib/peek-archive-lock.js +62 -0
- package/lib/populate-entity-tables/collapse-anchor-rows.d.ts +41 -0
- package/lib/populate-entity-tables/collapse-anchor-rows.js +87 -0
- package/lib/populate-entity-tables/derive-dom-path.d.ts +35 -0
- package/lib/populate-entity-tables/derive-dom-path.js +72 -0
- package/lib/populate-entity-tables/is-blob-ref-value.d.ts +16 -0
- package/lib/populate-entity-tables/is-blob-ref-value.js +19 -0
- package/lib/populate-entity-tables/match-images-to-dom-paths.d.ts +66 -0
- package/lib/populate-entity-tables/match-images-to-dom-paths.js +96 -0
- package/lib/populate-entity-tables/populate-anchor-edges.d.ts +33 -0
- package/lib/populate-entity-tables/populate-anchor-edges.js +153 -0
- package/lib/populate-entity-tables/populate-content-items.d.ts +40 -0
- package/lib/populate-entity-tables/populate-content-items.js +141 -0
- package/lib/populate-entity-tables/populate-entities.d.ts +81 -0
- package/lib/populate-entity-tables/populate-entities.js +110 -0
- package/lib/populate-entity-tables/populate-image-items.d.ts +91 -0
- package/lib/populate-entity-tables/populate-image-items.js +226 -0
- package/lib/populate-entity-tables/populate-page-meta.d.ts +33 -0
- package/lib/populate-entity-tables/populate-page-meta.js +267 -0
- package/lib/populate-entity-tables/populate-resource-items.d.ts +22 -0
- package/lib/populate-entity-tables/populate-resource-items.js +114 -0
- package/lib/populate-entity-tables/populate-resource-ref-edges.d.ts +31 -0
- package/lib/populate-entity-tables/populate-resource-ref-edges.js +33 -0
- package/lib/populate-entity-tables/resolve-blob-refs.d.ts +31 -0
- package/lib/populate-entity-tables/resolve-blob-refs.js +100 -0
- package/lib/populate-entity-tables/resolve-content-type-refs.d.ts +22 -0
- package/lib/populate-entity-tables/resolve-content-type-refs.js +27 -0
- package/lib/populate-entity-tables/resolve-header-sets.d.ts +49 -0
- package/lib/populate-entity-tables/resolve-header-sets.js +122 -0
- package/lib/populate-entity-tables/resolve-json-refs.d.ts +25 -0
- package/lib/populate-entity-tables/resolve-json-refs.js +67 -0
- package/lib/populate-entity-tables/resolve-text-refs.d.ts +30 -0
- package/lib/populate-entity-tables/resolve-text-refs.js +61 -0
- package/lib/populate-entity-tables/resolve-url-or-blob-from-maps.d.ts +21 -0
- package/lib/populate-entity-tables/resolve-url-or-blob-from-maps.js +27 -0
- package/lib/populate-entity-tables/resolve-url-refs.d.ts +33 -0
- package/lib/populate-entity-tables/resolve-url-refs.js +60 -0
- package/lib/populate-entity-tables/test-utils/count-rows.d.ts +17 -0
- package/lib/populate-entity-tables/test-utils/count-rows.js +20 -0
- package/lib/populate-entity-tables/test-utils/seed-content-items.d.ts +25 -0
- package/lib/populate-entity-tables/test-utils/seed-content-items.js +42 -0
- package/lib/populate-entity-tables/test-utils/setup-entities-db.d.ts +30 -0
- package/lib/populate-entity-tables/test-utils/setup-entities-db.js +175 -0
- package/lib/populate-entity-tables/types.d.ts +157 -0
- package/lib/populate-entity-tables/types.js +12 -0
- package/lib/populate-entity-tables/upsert-text-refs.d.ts +38 -0
- package/lib/populate-entity-tables/upsert-text-refs.js +78 -0
- package/lib/populate-ref-tables/classify-content-type.d.ts +16 -0
- package/lib/populate-ref-tables/classify-content-type.js +52 -0
- package/lib/populate-ref-tables/compute-content-hash.d.ts +22 -0
- package/lib/populate-ref-tables/compute-content-hash.js +26 -0
- package/lib/populate-ref-tables/compute-header-flags.d.ts +16 -0
- package/lib/populate-ref-tables/compute-header-flags.js +70 -0
- package/lib/populate-ref-tables/content-type-rules.d.ts +38 -0
- package/lib/populate-ref-tables/content-type-rules.js +133 -0
- package/lib/populate-ref-tables/create-header-table-caches.d.ts +25 -0
- package/lib/populate-ref-tables/create-header-table-caches.js +49 -0
- package/lib/populate-ref-tables/data-uri-url-refs-limit.d.ts +15 -0
- package/lib/populate-ref-tables/data-uri-url-refs-limit.js +15 -0
- package/lib/populate-ref-tables/decode-data-uri.d.ts +21 -0
- package/lib/populate-ref-tables/decode-data-uri.js +126 -0
- package/lib/populate-ref-tables/decompose-header-set.d.ts +29 -0
- package/lib/populate-ref-tables/decompose-header-set.js +157 -0
- package/lib/populate-ref-tables/decompose-url.d.ts +25 -0
- package/lib/populate-ref-tables/decompose-url.js +70 -0
- package/lib/populate-ref-tables/header-stability.d.ts +19 -0
- package/lib/populate-ref-tables/header-stability.js +22 -0
- package/lib/populate-ref-tables/header-value-cache-key.d.ts +17 -0
- package/lib/populate-ref-tables/header-value-cache-key.js +19 -0
- package/lib/populate-ref-tables/normalize-mime.d.ts +24 -0
- package/lib/populate-ref-tables/normalize-mime.js +36 -0
- package/lib/populate-ref-tables/populate-blob-refs.d.ts +38 -0
- package/lib/populate-ref-tables/populate-blob-refs.js +134 -0
- package/lib/populate-ref-tables/populate-content-type-refs.d.ts +27 -0
- package/lib/populate-ref-tables/populate-content-type-refs.js +70 -0
- package/lib/populate-ref-tables/populate-header-tables.d.ts +35 -0
- package/lib/populate-ref-tables/populate-header-tables.js +80 -0
- package/lib/populate-ref-tables/populate-json-refs.d.ts +29 -0
- package/lib/populate-ref-tables/populate-json-refs.js +101 -0
- package/lib/populate-ref-tables/populate-refs.d.ts +51 -0
- package/lib/populate-ref-tables/populate-refs.js +62 -0
- package/lib/populate-ref-tables/populate-text-refs.d.ts +32 -0
- package/lib/populate-ref-tables/populate-text-refs.js +133 -0
- package/lib/populate-ref-tables/populate-url-refs.d.ts +28 -0
- package/lib/populate-ref-tables/populate-url-refs.js +148 -0
- package/lib/populate-ref-tables/test-utils/count-rows.d.ts +15 -0
- package/lib/populate-ref-tables/test-utils/count-rows.js +17 -0
- package/lib/populate-ref-tables/types.d.ts +197 -0
- package/lib/populate-ref-tables/types.js +7 -0
- package/lib/populate-ref-tables/upsert-one-header-set.d.ts +34 -0
- package/lib/populate-ref-tables/upsert-one-header-set.js +208 -0
- package/lib/populate-ref-tables/volatile-header-names.d.ts +20 -0
- package/lib/populate-ref-tables/volatile-header-names.js +33 -0
- package/lib/redirect-table.d.ts +9 -0
- package/lib/redirect-table.js +28 -0
- package/lib/release-finished-statements.d.ts +42 -0
- package/lib/release-finished-statements.js +45 -0
- package/lib/resolve-redirect-chain.d.ts +33 -0
- package/lib/resolve-redirect-chain.js +27 -0
- package/lib/resource.d.ts +46 -0
- package/lib/resource.js +62 -0
- package/lib/retarget-legacy-fk-tables.d.ts +61 -0
- package/lib/retarget-legacy-fk-tables.js +137 -0
- package/lib/safe-path.d.ts +9 -0
- package/lib/safe-path.js +17 -0
- package/lib/scope/build-scope-map.d.ts +21 -0
- package/lib/scope/build-scope-map.js +32 -0
- package/lib/scope/find-scope-entry.d.ts +25 -0
- package/lib/scope/find-scope-entry.js +45 -0
- package/lib/template-classification/classify-archive-page-templates.d.ts +42 -0
- package/lib/template-classification/classify-archive-page-templates.js +70 -0
- package/lib/template-classification/classify-page-templates.d.ts +33 -0
- package/lib/template-classification/classify-page-templates.js +60 -0
- package/lib/template-classification/collect-page-ids-with-html.d.ts +24 -0
- package/lib/template-classification/collect-page-ids-with-html.js +30 -0
- package/lib/template-classification/collect-page-stylesheet-urls.d.ts +32 -0
- package/lib/template-classification/collect-page-stylesheet-urls.js +130 -0
- package/lib/template-classification/create-content-root-hint.d.ts +41 -0
- package/lib/template-classification/create-content-root-hint.js +51 -0
- package/lib/template-classification/create-page-cluster-factory.d.ts +36 -0
- package/lib/template-classification/create-page-cluster-factory.js +52 -0
- package/lib/template-classification/load-page-cluster-candidates.d.ts +32 -0
- package/lib/template-classification/load-page-cluster-candidates.js +93 -0
- package/lib/template-classification/page-cluster/resolve-page-cluster-keys.d.ts +34 -0
- package/lib/template-classification/page-cluster/resolve-page-cluster-keys.js +236 -0
- package/lib/template-classification/page-cluster/types.d.ts +123 -0
- package/lib/template-classification/page-cluster/types.js +1 -0
- package/lib/template-classification/types.d.ts +234 -0
- package/lib/template-classification/types.js +1 -0
- package/lib/test-utils/build-full-schema-test-db.d.ts +34 -0
- package/lib/test-utils/build-full-schema-test-db.js +74 -0
- package/lib/test-utils/create-legacy-analysis-tables.d.ts +13 -0
- package/lib/test-utils/create-legacy-analysis-tables.js +37 -0
- package/lib/test-utils/fk-parent-tables.d.ts +15 -0
- package/lib/test-utils/fk-parent-tables.js +19 -0
- package/lib/test-utils/seed-content-item.d.ts +35 -0
- package/lib/test-utils/seed-content-item.js +42 -0
- package/lib/test-utils/setup-legacy-fk-db.d.ts +34 -0
- package/lib/test-utils/setup-legacy-fk-db.js +271 -0
- package/lib/transfer/attach-source-database.d.ts +31 -0
- package/lib/transfer/attach-source-database.js +40 -0
- package/lib/transfer/build-split-config.d.ts +30 -0
- package/lib/transfer/build-split-config.js +42 -0
- package/lib/transfer/clear-replaced-page-rows.d.ts +23 -0
- package/lib/transfer/clear-replaced-page-rows.js +61 -0
- package/lib/transfer/concat-archives.d.ts +55 -0
- package/lib/transfer/concat-archives.js +95 -0
- package/lib/transfer/concat-source-transfer-phases.d.ts +10 -0
- package/lib/transfer/concat-source-transfer-phases.js +17 -0
- package/lib/transfer/content-item-rank-sql.d.ts +21 -0
- package/lib/transfer/content-item-rank-sql.js +23 -0
- package/lib/transfer/copy-anchor-edges.d.ts +28 -0
- package/lib/transfer/copy-anchor-edges.js +42 -0
- package/lib/transfer/copy-dictionaries-for-concat.d.ts +39 -0
- package/lib/transfer/copy-dictionaries-for-concat.js +81 -0
- package/lib/transfer/copy-dictionaries-for-split.d.ts +29 -0
- package/lib/transfer/copy-dictionaries-for-split.js +224 -0
- package/lib/transfer/copy-header-set-children.d.ts +27 -0
- package/lib/transfer/copy-header-set-children.js +51 -0
- package/lib/transfer/copy-image-items.d.ts +21 -0
- package/lib/transfer/copy-image-items.js +62 -0
- package/lib/transfer/copy-inventory-source-lists.d.ts +30 -0
- package/lib/transfer/copy-inventory-source-lists.js +61 -0
- package/lib/transfer/copy-journal-tables.d.ts +30 -0
- package/lib/transfer/copy-journal-tables.js +56 -0
- package/lib/transfer/copy-page-console-logs.d.ts +16 -0
- package/lib/transfer/copy-page-console-logs.js +27 -0
- package/lib/transfer/copy-page-html-blobs.d.ts +31 -0
- package/lib/transfer/copy-page-html-blobs.js +43 -0
- package/lib/transfer/copy-page-meta.d.ts +27 -0
- package/lib/transfer/copy-page-meta.js +68 -0
- package/lib/transfer/copy-page-template-clusters.d.ts +31 -0
- package/lib/transfer/copy-page-template-clusters.js +56 -0
- package/lib/transfer/copy-page-template-labels.d.ts +34 -0
- package/lib/transfer/copy-page-template-labels.js +88 -0
- package/lib/transfer/copy-resource-items.d.ts +29 -0
- package/lib/transfer/copy-resource-items.js +89 -0
- package/lib/transfer/copy-resource-ref-edges.d.ts +20 -0
- package/lib/transfer/copy-resource-ref-edges.js +33 -0
- package/lib/transfer/copy-simple-page-scoped-tables.d.ts +15 -0
- package/lib/transfer/copy-simple-page-scoped-tables.js +34 -0
- package/lib/transfer/count-external-pages-in-scope.d.ts +26 -0
- package/lib/transfer/count-external-pages-in-scope.js +40 -0
- package/lib/transfer/create-transfer-temp-tables.d.ts +30 -0
- package/lib/transfer/create-transfer-temp-tables.js +59 -0
- package/lib/transfer/dictionary-copy-specs.d.ts +32 -0
- package/lib/transfer/dictionary-copy-specs.js +28 -0
- package/lib/transfer/drop-transfer-temp-tables.d.ts +9 -0
- package/lib/transfer/drop-transfer-temp-tables.js +18 -0
- package/lib/transfer/flatten-redirect-chains.d.ts +44 -0
- package/lib/transfer/flatten-redirect-chains.js +74 -0
- package/lib/transfer/insert-content-items.d.ts +35 -0
- package/lib/transfer/insert-content-items.js +116 -0
- package/lib/transfer/list-transfer-columns.d.ts +35 -0
- package/lib/transfer/list-transfer-columns.js +45 -0
- package/lib/transfer/mark-in-scope-content-items.d.ts +31 -0
- package/lib/transfer/mark-in-scope-content-items.js +54 -0
- package/lib/transfer/merge-archive-configs.d.ts +51 -0
- package/lib/transfer/merge-archive-configs.js +85 -0
- package/lib/transfer/plan-content-items-for-concat.d.ts +33 -0
- package/lib/transfer/plan-content-items-for-concat.js +51 -0
- package/lib/transfer/plan-content-items-for-split.d.ts +42 -0
- package/lib/transfer/plan-content-items-for-split.js +83 -0
- package/lib/transfer/plan-resource-items.d.ts +40 -0
- package/lib/transfer/plan-resource-items.js +69 -0
- package/lib/transfer/quote-transfer-identifier.d.ts +18 -0
- package/lib/transfer/quote-transfer-identifier.js +20 -0
- package/lib/transfer/reclassify-resource-externality.d.ts +37 -0
- package/lib/transfer/reclassify-resource-externality.js +66 -0
- package/lib/transfer/remap-redirect-dest-ids.d.ts +34 -0
- package/lib/transfer/remap-redirect-dest-ids.js +51 -0
- package/lib/transfer/replace-content-items.d.ts +39 -0
- package/lib/transfer/replace-content-items.js +83 -0
- package/lib/transfer/simple-page-scoped-tables.d.ts +25 -0
- package/lib/transfer/simple-page-scoped-tables.js +38 -0
- package/lib/transfer/split-archive.d.ts +55 -0
- package/lib/transfer/split-archive.js +98 -0
- package/lib/transfer/split-source-transfer-phases.d.ts +11 -0
- package/lib/transfer/split-source-transfer-phases.js +18 -0
- package/lib/transfer/transfer-action.d.ts +34 -0
- package/lib/transfer/transfer-action.js +32 -0
- package/lib/transfer/transfer-archive-rows.d.ts +65 -0
- package/lib/transfer/transfer-archive-rows.js +156 -0
- package/lib/transfer/transfer-dictionary-tables.d.ts +12 -0
- package/lib/transfer/transfer-dictionary-tables.js +22 -0
- package/lib/transfer/transfer-post-phases.d.ts +10 -0
- package/lib/transfer/transfer-post-phases.js +13 -0
- package/lib/transfer/transfer-source-alias.d.ts +9 -0
- package/lib/transfer/transfer-source-alias.js +9 -0
- package/lib/transfer/types.d.ts +111 -0
- package/lib/transfer/types.js +35 -0
- package/lib/types.d.ts +772 -0
- package/lib/types.js +1 -0
- package/lib/url-alias/compute-tier-a-alias-key.d.ts +44 -0
- package/lib/url-alias/compute-tier-a-alias-key.js +47 -0
- package/lib/url-alias/compute-tier-b-alias-key.d.ts +23 -0
- package/lib/url-alias/compute-tier-b-alias-key.js +26 -0
- package/lib/url-alias/group-alias-candidates.d.ts +27 -0
- package/lib/url-alias/group-alias-candidates.js +29 -0
- package/lib/url-alias/types.d.ts +12 -0
- package/lib/url-alias/types.js +1 -0
- package/lib/url-pattern/compute-shape-key.d.ts +58 -0
- package/lib/url-pattern/compute-shape-key.js +129 -0
- package/lib/url-pattern/decompose-url.d.ts +33 -0
- package/lib/url-pattern/decompose-url.js +79 -0
- package/lib/url-pattern/reconstruct-url.d.ts +15 -0
- package/lib/url-pattern/reconstruct-url.js +33 -0
- package/lib/url-sort/compute-url-sort-ranks.d.ts +30 -0
- package/lib/url-sort/compute-url-sort-ranks.js +33 -0
- package/lib/utils/array/each-splitted.d.ts +10 -0
- package/lib/utils/array/each-splitted.js +14 -0
- package/lib/utils/debug.d.ts +8 -0
- package/lib/utils/debug.js +8 -0
- package/lib/utils/error/emit-error-with-retry.d.ts +40 -0
- package/lib/utils/error/emit-error-with-retry.js +44 -0
- package/lib/utils/error/emit-error.d.ts +39 -0
- package/lib/utils/error/emit-error.js +41 -0
- package/lib/utils/object/parse-response-headers.d.ts +12 -0
- package/lib/utils/object/parse-response-headers.js +26 -0
- package/lib/utils/object/redact-request-headers.d.ts +15 -0
- package/lib/utils/object/redact-request-headers.js +27 -0
- package/lib/utils/types/types.d.ts +383 -0
- package/lib/utils/types/types.js +1 -0
- package/lib/verify-migration/capture-rejection.d.ts +24 -0
- package/lib/verify-migration/capture-rejection.js +31 -0
- package/lib/verify-migration/check-anchor-edges-count.d.ts +34 -0
- package/lib/verify-migration/check-anchor-edges-count.js +72 -0
- package/lib/verify-migration/check-anchor-edges-sum.d.ts +13 -0
- package/lib/verify-migration/check-anchor-edges-sum.js +27 -0
- package/lib/verify-migration/check-content-items-count.d.ts +16 -0
- package/lib/verify-migration/check-content-items-count.js +30 -0
- package/lib/verify-migration/check-content-type-preservation.d.ts +22 -0
- package/lib/verify-migration/check-content-type-preservation.js +40 -0
- package/lib/verify-migration/check-foreign-key-integrity.d.ts +31 -0
- package/lib/verify-migration/check-foreign-key-integrity.js +47 -0
- package/lib/verify-migration/check-image-items-count.d.ts +12 -0
- package/lib/verify-migration/check-image-items-count.js +26 -0
- package/lib/verify-migration/check-page-meta-count.d.ts +15 -0
- package/lib/verify-migration/check-page-meta-count.js +31 -0
- package/lib/verify-migration/check-reader-parity.d.ts +23 -0
- package/lib/verify-migration/check-reader-parity.js +182 -0
- package/lib/verify-migration/check-resource-items-count.d.ts +17 -0
- package/lib/verify-migration/check-resource-items-count.js +33 -0
- package/lib/verify-migration/check-url-round-trip.d.ts +43 -0
- package/lib/verify-migration/check-url-round-trip.js +112 -0
- package/lib/verify-migration/types.d.ts +70 -0
- package/lib/verify-migration/types.js +63 -0
- package/lib/verify-migration/verify-migration.d.ts +41 -0
- package/lib/verify-migration/verify-migration.js +120 -0
- package/lib/with-bulk-write-pragmas.d.ts +51 -0
- package/lib/with-bulk-write-pragmas.js +132 -0
- package/lib/write-queue.d.ts +32 -0
- package/lib/write-queue.js +55 -0
- package/package.json +360 -5
|
@@ -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,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
|
+
}
|