@nitpicker/archive 0.0.0 → 0.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +191 -0
- package/README.md +106 -0
- 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 +1055 -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 +803 -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 +45 -0
- package/lib/filesystem/parse-tar-size-field.d.ts +13 -0
- package/lib/filesystem/parse-tar-size-field.js +37 -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 +132 -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/compare-strings.d.ts +12 -0
- package/lib/test-utils/compare-strings.js +14 -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 +350 -3
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adds the `page_meta.main_content_custom_element_count` column to archives
|
|
3
|
+
* created before this feature.
|
|
4
|
+
*
|
|
5
|
+
* `page_meta` is provisioned via a bare `CREATE TABLE IF NOT EXISTS` in
|
|
6
|
+
* {@link import('./create-entity-tables.js').createEntityTables}, which
|
|
7
|
+
* self-heals a *missing table* on every `initSchema` call but is a no-op
|
|
8
|
+
* against an *existing* table — adding a column to the DDL string never
|
|
9
|
+
* reaches an archive whose `page_meta` predates this change. Same catch-up
|
|
10
|
+
* shape as {@link import('./migrate-page-meta-console-error-count.js').migratePageMetaConsoleErrorCount}.
|
|
11
|
+
*
|
|
12
|
+
* Deliberately its own file rather than an addition to
|
|
13
|
+
* {@link import('./migrate-main-contents-columns.js').migrateMainContentsColumns}:
|
|
14
|
+
* that migration early-returns once its sentinel column
|
|
15
|
+
* (`main_content_word_count`) already exists, so an archive that predates
|
|
16
|
+
* only this one column (but already has the other sixteen main-content
|
|
17
|
+
* columns) would never reach an appended `ALTER TABLE` inside it.
|
|
18
|
+
*
|
|
19
|
+
* No separate backfill: a page that has never been re-scraped since this
|
|
20
|
+
* feature shipped stays `NULL` (unknown), which is correct — it is not
|
|
21
|
+
* conflated with `0` (capture succeeded, zero custom elements found). See
|
|
22
|
+
* {@link import('./meta/compute-main-contents-denormalized.js').computeMainContentsDenormalized}.
|
|
23
|
+
*
|
|
24
|
+
* Idempotent: adding the column is a no-op once it exists.
|
|
25
|
+
* @param instance - The Knex query builder instance connected to the database.
|
|
26
|
+
* @param onLog - Called instead of `console.error` when this migration
|
|
27
|
+
* actually applies (issue #294: a bare `console.error` here can fire
|
|
28
|
+
* while a `@d-zero/dealer` `Lanes`/`TaskList` display is mid-redraw during
|
|
29
|
+
* `Archive.open`, corrupting its cursor tracking). Falls back to
|
|
30
|
+
* `console.error` when omitted (direct/test callers).
|
|
31
|
+
*/
|
|
32
|
+
export async function migratePageMetaCustomElementCount(instance, onLog) {
|
|
33
|
+
const hasPageMeta = await instance.schema.hasTable('page_meta');
|
|
34
|
+
if (!hasPageMeta) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const hasColumn = await instance.schema.hasColumn('page_meta', 'main_content_custom_element_count');
|
|
38
|
+
if (!hasColumn) {
|
|
39
|
+
await instance.schema.table('page_meta', (t) => {
|
|
40
|
+
t.integer('main_content_custom_element_count');
|
|
41
|
+
});
|
|
42
|
+
const message = '[migrate] page_meta.main_content_custom_element_count column added';
|
|
43
|
+
if (onLog) {
|
|
44
|
+
onLog(message);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
// oxlint-disable-next-line no-console
|
|
48
|
+
console.error(message);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Knex } from 'knex';
|
|
2
|
+
/**
|
|
3
|
+
* Adds the `page_meta.image_scan_desktop` / `page_meta.image_scan_mobile`
|
|
4
|
+
* columns to archives created before this feature.
|
|
5
|
+
*
|
|
6
|
+
* `page_meta` is provisioned via a bare `CREATE TABLE IF NOT EXISTS` in
|
|
7
|
+
* {@link import('./create-entity-tables.js').createEntityTables}, which
|
|
8
|
+
* self-heals a *missing table* on every `initSchema` call but is a no-op
|
|
9
|
+
* against an *existing* table — adding a column to the DDL string never
|
|
10
|
+
* reaches an archive whose `page_meta` predates this change. Same catch-up
|
|
11
|
+
* shape as {@link import('./migrate-page-meta-console-error-count.js').migratePageMetaConsoleErrorCount}.
|
|
12
|
+
*
|
|
13
|
+
* Both columns are added in the same migration since they are always
|
|
14
|
+
* written together (one `@d-zero/beholder` `imageScan` result per page).
|
|
15
|
+
* There is no backfill: a page that has never been re-scraped since this
|
|
16
|
+
* feature shipped has no recorded outcome, so `NULL` (not attempted) is
|
|
17
|
+
* already the correct value.
|
|
18
|
+
*
|
|
19
|
+
* Idempotent: adding a column that already exists is a no-op.
|
|
20
|
+
* @param instance - The Knex query builder instance connected to the database.
|
|
21
|
+
* @param onLog - Called instead of `console.error` when this migration
|
|
22
|
+
* actually applies (issue #294: a bare `console.error` here can fire
|
|
23
|
+
* while a `@d-zero/dealer` `Lanes`/`TaskList` display is mid-redraw during
|
|
24
|
+
* `Archive.open`, corrupting its cursor tracking). Falls back to
|
|
25
|
+
* `console.error` when omitted (direct/test callers).
|
|
26
|
+
*/
|
|
27
|
+
export declare function migratePageMetaImageScan(instance: Knex, onLog?: (message: string) => void): Promise<void>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adds the `page_meta.image_scan_desktop` / `page_meta.image_scan_mobile`
|
|
3
|
+
* columns to archives created before this feature.
|
|
4
|
+
*
|
|
5
|
+
* `page_meta` is provisioned via a bare `CREATE TABLE IF NOT EXISTS` in
|
|
6
|
+
* {@link import('./create-entity-tables.js').createEntityTables}, which
|
|
7
|
+
* self-heals a *missing table* on every `initSchema` call but is a no-op
|
|
8
|
+
* against an *existing* table — adding a column to the DDL string never
|
|
9
|
+
* reaches an archive whose `page_meta` predates this change. Same catch-up
|
|
10
|
+
* shape as {@link import('./migrate-page-meta-console-error-count.js').migratePageMetaConsoleErrorCount}.
|
|
11
|
+
*
|
|
12
|
+
* Both columns are added in the same migration since they are always
|
|
13
|
+
* written together (one `@d-zero/beholder` `imageScan` result per page).
|
|
14
|
+
* There is no backfill: a page that has never been re-scraped since this
|
|
15
|
+
* feature shipped has no recorded outcome, so `NULL` (not attempted) is
|
|
16
|
+
* already the correct value.
|
|
17
|
+
*
|
|
18
|
+
* Idempotent: adding a column that already exists is a no-op.
|
|
19
|
+
* @param instance - The Knex query builder instance connected to the database.
|
|
20
|
+
* @param onLog - Called instead of `console.error` when this migration
|
|
21
|
+
* actually applies (issue #294: a bare `console.error` here can fire
|
|
22
|
+
* while a `@d-zero/dealer` `Lanes`/`TaskList` display is mid-redraw during
|
|
23
|
+
* `Archive.open`, corrupting its cursor tracking). Falls back to
|
|
24
|
+
* `console.error` when omitted (direct/test callers).
|
|
25
|
+
*/
|
|
26
|
+
export async function migratePageMetaImageScan(instance, onLog) {
|
|
27
|
+
const hasPageMeta = await instance.schema.hasTable('page_meta');
|
|
28
|
+
if (!hasPageMeta) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const hasDesktopColumn = await instance.schema.hasColumn('page_meta', 'image_scan_desktop');
|
|
32
|
+
const hasMobileColumn = await instance.schema.hasColumn('page_meta', 'image_scan_mobile');
|
|
33
|
+
if (hasDesktopColumn && hasMobileColumn) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
await instance.schema.table('page_meta', (t) => {
|
|
37
|
+
if (!hasDesktopColumn) {
|
|
38
|
+
t.integer('image_scan_desktop');
|
|
39
|
+
}
|
|
40
|
+
if (!hasMobileColumn) {
|
|
41
|
+
t.integer('image_scan_mobile');
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
const message = '[migrate] page_meta.image_scan_desktop/image_scan_mobile columns added';
|
|
45
|
+
if (onLog) {
|
|
46
|
+
onLog(message);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
// oxlint-disable-next-line no-console
|
|
50
|
+
console.error(message);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { Knex } from 'knex';
|
|
2
|
+
/**
|
|
3
|
+
* Converts every `page_tags` row (the removed Wappalyzer-only detection
|
|
4
|
+
* table) into `technology_signals` + `page_technologies` rows, then drops
|
|
5
|
+
* `page_tags` — for archives crawled before this feature shipped, which
|
|
6
|
+
* still carry the old table.
|
|
7
|
+
*
|
|
8
|
+
* Unlike every other `migrate*` function in this directory (which add a
|
|
9
|
+
* nullable column and never touch existing tables), this one both writes
|
|
10
|
+
* to two NEW tables and DROPS an old one — because `page_technologies`
|
|
11
|
+
* supersedes `page_tags` outright rather than extending it. The conversion
|
|
12
|
+
* itself is shared with `retarget-legacy-fk-tables.ts`'s special-cased
|
|
13
|
+
* `page_tags` handling (0.10→0.13 upgrade path) via
|
|
14
|
+
* `convertLegacyPageTagsToInserts` — a `page_tags` row converts identically
|
|
15
|
+
* regardless of which migration path produced it.
|
|
16
|
+
*
|
|
17
|
+
* No separate backfill step is needed (v0.x policy: read-time migration
|
|
18
|
+
* only, no retroactive re-crawl): only the `wappalyzer` signal survives the
|
|
19
|
+
* conversion — the structural/`js-license-comment` signals this feature
|
|
20
|
+
* also detects require re-crawling to populate, which is the same
|
|
21
|
+
* "existing archives need a re-crawl for new signal types" trade-off
|
|
22
|
+
* already accepted for this feature.
|
|
23
|
+
*
|
|
24
|
+
* Idempotent: a no-op once `page_tags` is gone (either because this
|
|
25
|
+
* function already ran, or because the archive was crawled after this
|
|
26
|
+
* feature shipped and never had `page_tags` at all).
|
|
27
|
+
*
|
|
28
|
+
* Logs a row count before starting (issue #294): on a large legacy archive
|
|
29
|
+
* this SELECT-all-convert-drop runs as one transaction with no per-chunk
|
|
30
|
+
* progress, so without an upfront count it looks indistinguishable from a
|
|
31
|
+
* hang for however long the conversion actually takes.
|
|
32
|
+
* @param instance - The Knex query builder instance connected to the database.
|
|
33
|
+
* @param onLog - Called instead of `console.error` for both the start and
|
|
34
|
+
* end notices (issue #294: a bare `console.error` here can fire while a
|
|
35
|
+
* `@d-zero/dealer` `Lanes`/`TaskList` display is mid-redraw during
|
|
36
|
+
* `Archive.open`, corrupting its cursor tracking). Falls back to
|
|
37
|
+
* `console.error` when omitted (direct/test callers).
|
|
38
|
+
*/
|
|
39
|
+
export declare function migratePageTagsToPageTechnologies(instance: Knex, onLog?: (message: string) => void): Promise<void>;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { convertLegacyPageTagsToInserts } from './meta/technologies/convert-legacy-page-tags-to-inserts.js';
|
|
2
|
+
import { eachSplitted } from './utils/array/each-splitted.js';
|
|
3
|
+
/**
|
|
4
|
+
* Converts every `page_tags` row (the removed Wappalyzer-only detection
|
|
5
|
+
* table) into `technology_signals` + `page_technologies` rows, then drops
|
|
6
|
+
* `page_tags` — for archives crawled before this feature shipped, which
|
|
7
|
+
* still carry the old table.
|
|
8
|
+
*
|
|
9
|
+
* Unlike every other `migrate*` function in this directory (which add a
|
|
10
|
+
* nullable column and never touch existing tables), this one both writes
|
|
11
|
+
* to two NEW tables and DROPS an old one — because `page_technologies`
|
|
12
|
+
* supersedes `page_tags` outright rather than extending it. The conversion
|
|
13
|
+
* itself is shared with `retarget-legacy-fk-tables.ts`'s special-cased
|
|
14
|
+
* `page_tags` handling (0.10→0.13 upgrade path) via
|
|
15
|
+
* `convertLegacyPageTagsToInserts` — a `page_tags` row converts identically
|
|
16
|
+
* regardless of which migration path produced it.
|
|
17
|
+
*
|
|
18
|
+
* No separate backfill step is needed (v0.x policy: read-time migration
|
|
19
|
+
* only, no retroactive re-crawl): only the `wappalyzer` signal survives the
|
|
20
|
+
* conversion — the structural/`js-license-comment` signals this feature
|
|
21
|
+
* also detects require re-crawling to populate, which is the same
|
|
22
|
+
* "existing archives need a re-crawl for new signal types" trade-off
|
|
23
|
+
* already accepted for this feature.
|
|
24
|
+
*
|
|
25
|
+
* Idempotent: a no-op once `page_tags` is gone (either because this
|
|
26
|
+
* function already ran, or because the archive was crawled after this
|
|
27
|
+
* feature shipped and never had `page_tags` at all).
|
|
28
|
+
*
|
|
29
|
+
* Logs a row count before starting (issue #294): on a large legacy archive
|
|
30
|
+
* this SELECT-all-convert-drop runs as one transaction with no per-chunk
|
|
31
|
+
* progress, so without an upfront count it looks indistinguishable from a
|
|
32
|
+
* hang for however long the conversion actually takes.
|
|
33
|
+
* @param instance - The Knex query builder instance connected to the database.
|
|
34
|
+
* @param onLog - Called instead of `console.error` for both the start and
|
|
35
|
+
* end notices (issue #294: a bare `console.error` here can fire while a
|
|
36
|
+
* `@d-zero/dealer` `Lanes`/`TaskList` display is mid-redraw during
|
|
37
|
+
* `Archive.open`, corrupting its cursor tracking). Falls back to
|
|
38
|
+
* `console.error` when omitted (direct/test callers).
|
|
39
|
+
*/
|
|
40
|
+
export async function migratePageTagsToPageTechnologies(instance, onLog) {
|
|
41
|
+
const hasPageTags = await instance.schema.hasTable('page_tags');
|
|
42
|
+
if (!hasPageTags)
|
|
43
|
+
return;
|
|
44
|
+
const [row] = await instance('page_tags').count({ total: '*' });
|
|
45
|
+
const total = row?.total ?? 0;
|
|
46
|
+
const startMessage = `[migrate] converting ${total} page_tags row(s) to technology_signals/page_technologies…`;
|
|
47
|
+
if (onLog) {
|
|
48
|
+
onLog(startMessage);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
// oxlint-disable-next-line no-console
|
|
52
|
+
console.error(startMessage);
|
|
53
|
+
}
|
|
54
|
+
await instance.transaction(async (trx) => {
|
|
55
|
+
const rows = await trx
|
|
56
|
+
.select('pageId', 'provider', 'version', 'confidence', 'categories')
|
|
57
|
+
.from('page_tags');
|
|
58
|
+
const { signalInserts, technologyInserts } = convertLegacyPageTagsToInserts(rows);
|
|
59
|
+
if (signalInserts.length > 0) {
|
|
60
|
+
await eachSplitted(signalInserts, 100, async (chunk) => {
|
|
61
|
+
await trx('technology_signals').insert(chunk);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
if (technologyInserts.length > 0) {
|
|
65
|
+
await eachSplitted(technologyInserts, 100, async (chunk) => {
|
|
66
|
+
await trx('page_technologies').insert(chunk);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
await trx.schema.dropTable('page_tags');
|
|
70
|
+
});
|
|
71
|
+
const endMessage = '[migrate] page_tags converted to technology_signals/page_technologies and dropped';
|
|
72
|
+
if (onLog) {
|
|
73
|
+
onLog(endMessage);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
// oxlint-disable-next-line no-console
|
|
77
|
+
console.error(endMessage);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Knex } from 'knex';
|
|
2
|
+
/**
|
|
3
|
+
* Adds the 0.13 dictionary tables (issue #190) to archives created before
|
|
4
|
+
* the 0.13 format.
|
|
5
|
+
*
|
|
6
|
+
* These are the 10 ref / header dictionary tables that form the
|
|
7
|
+
* durable write-model of the 0.13 format. Fresh archives get them via
|
|
8
|
+
* `initSchema`; this migration is called only by
|
|
9
|
+
* `scripts/migrate-to-0.13.mjs` as its schema catch-up step for pre-0.13
|
|
10
|
+
* input archives. The archive-open path (`db-ops/lifecycle/init.ts`) does
|
|
11
|
+
* not run it — `assertCompatibleVersion` guarantees every openable
|
|
12
|
+
* archive already has the full table set.
|
|
13
|
+
*
|
|
14
|
+
* The migration is intentionally table-only. It does not back-fill any data
|
|
15
|
+
* from `pages` / `resources` / `anchors` / `images` into the ref tables — that
|
|
16
|
+
* is the job of the 0.13 population step, which reads from the legacy
|
|
17
|
+
* tables and writes the ref rows in a single WAL transaction with `.bak`
|
|
18
|
+
* protection. This migration only guarantees the empty tables exist so
|
|
19
|
+
* consumers don't crash with `SQLITE_ERROR: no such table: url_refs`.
|
|
20
|
+
*
|
|
21
|
+
* Idempotent: presence of `url_refs` is used as the sentinel (all 10
|
|
22
|
+
* tables are created together, so any one of them can serve as the sentinel).
|
|
23
|
+
* @param instance - The Knex query builder instance connected to the database.
|
|
24
|
+
*/
|
|
25
|
+
export declare function migrateRefTables(instance: Knex): Promise<void>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { createRefTables } from './create-ref-tables.js';
|
|
2
|
+
/**
|
|
3
|
+
* Adds the 0.13 dictionary tables (issue #190) to archives created before
|
|
4
|
+
* the 0.13 format.
|
|
5
|
+
*
|
|
6
|
+
* These are the 10 ref / header dictionary tables that form the
|
|
7
|
+
* durable write-model of the 0.13 format. Fresh archives get them via
|
|
8
|
+
* `initSchema`; this migration is called only by
|
|
9
|
+
* `scripts/migrate-to-0.13.mjs` as its schema catch-up step for pre-0.13
|
|
10
|
+
* input archives. The archive-open path (`db-ops/lifecycle/init.ts`) does
|
|
11
|
+
* not run it — `assertCompatibleVersion` guarantees every openable
|
|
12
|
+
* archive already has the full table set.
|
|
13
|
+
*
|
|
14
|
+
* The migration is intentionally table-only. It does not back-fill any data
|
|
15
|
+
* from `pages` / `resources` / `anchors` / `images` into the ref tables — that
|
|
16
|
+
* is the job of the 0.13 population step, which reads from the legacy
|
|
17
|
+
* tables and writes the ref rows in a single WAL transaction with `.bak`
|
|
18
|
+
* protection. This migration only guarantees the empty tables exist so
|
|
19
|
+
* consumers don't crash with `SQLITE_ERROR: no such table: url_refs`.
|
|
20
|
+
*
|
|
21
|
+
* Idempotent: presence of `url_refs` is used as the sentinel (all 10
|
|
22
|
+
* tables are created together, so any one of them can serve as the sentinel).
|
|
23
|
+
* @param instance - The Knex query builder instance connected to the database.
|
|
24
|
+
*/
|
|
25
|
+
export async function migrateRefTables(instance) {
|
|
26
|
+
const hasUrlRefs = await instance.schema.hasTable('url_refs');
|
|
27
|
+
if (hasUrlRefs) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const hasPages = await instance.schema.hasTable('pages');
|
|
31
|
+
if (!hasPages) {
|
|
32
|
+
// Empty archive; the regular initSchema path will create the tables.
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
await createRefTables(instance);
|
|
36
|
+
// oxlint-disable-next-line no-console
|
|
37
|
+
console.error('[migrate] 0.13 ref/header tables created');
|
|
38
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks the native thread pool's environment settings
|
|
3
|
+
* (`NITPICKER_NATIVE_THREADS`, `NITPICKER_NATIVE_CONCURRENCY`) before any work
|
|
4
|
+
* starts. The settings, their defaults and when they are read are documented
|
|
5
|
+
* on `@nitpicker/core`'s `checkNativeExecutorConfig`.
|
|
6
|
+
*
|
|
7
|
+
* Why here and not a direct import of core: the CLI and the MCP server reach
|
|
8
|
+
* the addon only through this package (as `query` does for the snapshot
|
|
9
|
+
* scans), so the dependency direction stays `archive ← cli / mcp-server`.
|
|
10
|
+
* @throws {Error} With code `InvalidArg`, naming the variable and its value,
|
|
11
|
+
* when a setting is not a positive integer.
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* checkNativeExecutorConfig(); // throws before the server starts if the env is wrong
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare function checkNativeExecutorConfig(): void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { checkNativeExecutorConfig as checkNativeExecutorConfigNatively } from '@nitpicker/core/check-native-executor-config';
|
|
2
|
+
/**
|
|
3
|
+
* Checks the native thread pool's environment settings
|
|
4
|
+
* (`NITPICKER_NATIVE_THREADS`, `NITPICKER_NATIVE_CONCURRENCY`) before any work
|
|
5
|
+
* starts. The settings, their defaults and when they are read are documented
|
|
6
|
+
* on `@nitpicker/core`'s `checkNativeExecutorConfig`.
|
|
7
|
+
*
|
|
8
|
+
* Why here and not a direct import of core: the CLI and the MCP server reach
|
|
9
|
+
* the addon only through this package (as `query` does for the snapshot
|
|
10
|
+
* scans), so the dependency direction stays `archive ← cli / mcp-server`.
|
|
11
|
+
* @throws {Error} With code `InvalidArg`, naming the variable and its value,
|
|
12
|
+
* when a setting is not a positive integer.
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* checkNativeExecutorConfig(); // throws before the server starts if the env is wrong
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export function checkNativeExecutorConfig() {
|
|
19
|
+
checkNativeExecutorConfigNatively();
|
|
20
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { FlatPageMetaColumns } from './meta/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Flat-meta-field → `page_meta` FK-column mapping, shared by the two
|
|
4
|
+
* writers that materialise `page_meta` rows: the live-crawl upsert
|
|
5
|
+
* (`db-ops/pages/write/insert-page.ts`) and the archive-migration
|
|
6
|
+
* populate (`populate-entity-tables/populate-page-meta.ts`).
|
|
7
|
+
*
|
|
8
|
+
* The two writers MUST agree on this mapping — a fork would make
|
|
9
|
+
* live-crawled archives and migrated archives disagree on which flat
|
|
10
|
+
* meta field feeds which `page_meta` column for structurally identical
|
|
11
|
+
* inputs. Keeping the single definition here is what enforces that;
|
|
12
|
+
* adding, renaming, or removing a flat meta column is a one-place edit.
|
|
13
|
+
*
|
|
14
|
+
* - `text`: text-shaped columns mapped 1:1 to `<name>_text_id` FKs into
|
|
15
|
+
* `text_refs`.
|
|
16
|
+
* - `url`: URL-shaped columns mapped 1:1 to `<name>_url_id` FKs into
|
|
17
|
+
* `url_refs`.
|
|
18
|
+
* @example
|
|
19
|
+
* for (const { source, target } of PAGE_META_COLUMN_MAPS.text) {
|
|
20
|
+
* row[target] = textIds.get(flat[source]) ?? null;
|
|
21
|
+
* }
|
|
22
|
+
*/
|
|
23
|
+
export declare const PAGE_META_COLUMN_MAPS: {
|
|
24
|
+
readonly text: readonly {
|
|
25
|
+
source: keyof FlatPageMetaColumns;
|
|
26
|
+
target: string;
|
|
27
|
+
}[];
|
|
28
|
+
readonly url: readonly {
|
|
29
|
+
source: keyof FlatPageMetaColumns;
|
|
30
|
+
target: string;
|
|
31
|
+
}[];
|
|
32
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flat-meta-field → `page_meta` FK-column mapping, shared by the two
|
|
3
|
+
* writers that materialise `page_meta` rows: the live-crawl upsert
|
|
4
|
+
* (`db-ops/pages/write/insert-page.ts`) and the archive-migration
|
|
5
|
+
* populate (`populate-entity-tables/populate-page-meta.ts`).
|
|
6
|
+
*
|
|
7
|
+
* The two writers MUST agree on this mapping — a fork would make
|
|
8
|
+
* live-crawled archives and migrated archives disagree on which flat
|
|
9
|
+
* meta field feeds which `page_meta` column for structurally identical
|
|
10
|
+
* inputs. Keeping the single definition here is what enforces that;
|
|
11
|
+
* adding, renaming, or removing a flat meta column is a one-place edit.
|
|
12
|
+
*
|
|
13
|
+
* - `text`: text-shaped columns mapped 1:1 to `<name>_text_id` FKs into
|
|
14
|
+
* `text_refs`.
|
|
15
|
+
* - `url`: URL-shaped columns mapped 1:1 to `<name>_url_id` FKs into
|
|
16
|
+
* `url_refs`.
|
|
17
|
+
* @example
|
|
18
|
+
* for (const { source, target } of PAGE_META_COLUMN_MAPS.text) {
|
|
19
|
+
* row[target] = textIds.get(flat[source]) ?? null;
|
|
20
|
+
* }
|
|
21
|
+
*/
|
|
22
|
+
export const PAGE_META_COLUMN_MAPS = {
|
|
23
|
+
text: [
|
|
24
|
+
{ source: 'title', target: 'title_text_id' },
|
|
25
|
+
{ source: 'description', target: 'description_text_id' },
|
|
26
|
+
{ source: 'keywords', target: 'keywords_text_id' },
|
|
27
|
+
{ source: 'robots_raw', target: 'robots_raw_text_id' },
|
|
28
|
+
{ source: 'og_title', target: 'og_title_text_id' },
|
|
29
|
+
{ source: 'og_description', target: 'og_description_text_id' },
|
|
30
|
+
{ source: 'twitter_title', target: 'twitter_title_text_id' },
|
|
31
|
+
{ source: 'twitter_description', target: 'twitter_description_text_id' },
|
|
32
|
+
],
|
|
33
|
+
url: [
|
|
34
|
+
{ source: 'canonical', target: 'canonical_url_id' },
|
|
35
|
+
{ source: 'amphtml', target: 'amphtml_url_id' },
|
|
36
|
+
{ source: 'manifest', target: 'manifest_url_id' },
|
|
37
|
+
{ source: 'icon_href', target: 'icon_url_id' },
|
|
38
|
+
{ source: 'appleTouchIcon_href', target: 'apple_touch_icon_url_id' },
|
|
39
|
+
{ source: 'og_url', target: 'og_url_id' },
|
|
40
|
+
{ source: 'og_image', target: 'og_image_url_id' },
|
|
41
|
+
{ source: 'twitter_image', target: 'twitter_image_url_id' },
|
|
42
|
+
],
|
|
43
|
+
};
|