mcp-scraper 0.96.3 → 0.97.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +16 -1
  2. package/README.md +12 -18
  3. package/dist/{actions-FKAX2PYT.js → actions-NCZNPYEY.js} +1 -1
  4. package/dist/bin/api-server.js +1 -1
  5. package/dist/bin/mcp-scraper-cli.js +26 -27
  6. package/dist/bin/mcp-scraper-core.js +1 -1
  7. package/dist/bin/mcp-scraper-install.js +1 -1
  8. package/dist/bin/mcp-stdio-server.js +1 -1
  9. package/dist/{bundle-7JMACIIR.js → bundle-XR6XKYJM.js} +1 -1
  10. package/dist/chunk-4P3LZNVA.js +954 -0
  11. package/dist/chunk-6FAMBNHY.js +1 -0
  12. package/dist/{chunk-3HXMW2UJ.js → chunk-A4UASMEQ.js} +1 -1
  13. package/dist/chunk-AMYPXA2F.js +930 -0
  14. package/dist/chunk-B5Y26E3A.js +1 -0
  15. package/dist/{chunk-WP3QS4CJ.js → chunk-EYGA6LOU.js} +1 -1
  16. package/dist/{chunk-P55O4IDC.js → chunk-JNPM3U3L.js} +1 -1
  17. package/dist/chunk-ND4WIBXT.js +16 -0
  18. package/dist/{chunk-PANT6VEM.js → chunk-NULRGHJ4.js} +1 -1
  19. package/dist/{chunk-42SLBGDI.js → chunk-OOB3RKWD.js} +2 -2
  20. package/dist/{chunk-DJT2547J.js → chunk-OSKCHEVM.js} +1 -1
  21. package/dist/{chunk-U7BZ5KTE.js → chunk-PD7BI7TR.js} +1 -1
  22. package/dist/{chunk-WBJ6Y7WP.js → chunk-PQRT4T2G.js} +2 -2
  23. package/dist/chunk-U3NV72AL.js +8 -0
  24. package/dist/{chunk-4KHDV5E7.js → chunk-WHVK6FUB.js} +1 -1
  25. package/dist/{chunk-E7I3OQHQ.js → chunk-XYUJTIPE.js} +1 -1
  26. package/dist/{chunk-JREMJRSS.js → chunk-YJPFEL2E.js} +1 -1
  27. package/dist/{chunk-CFZXZKFT.js → chunk-Z4EHBBL4.js} +1 -1
  28. package/dist/{core-schema-423BSTE6.js → core-schema-Y47YFKH2.js} +7 -44
  29. package/dist/{dispatch-E6VTNHHS.js → dispatch-ILBBKOSW.js} +1 -1
  30. package/dist/{queue-4XHYUV7J.js → queue-VOGXQDPR.js} +1 -1
  31. package/dist/{reconciliation-43CSC3XD.js → reconciliation-OXBG7JA2.js} +1 -1
  32. package/dist/{server-74VGVXA4.js → server-6HUBN3OR.js} +700 -1016
  33. package/dist/settlement-3PS32LQO.js +1 -0
  34. package/dist/{worker-L5NISZQV.js → worker-NXRU3TT3.js} +1 -1
  35. package/package.json +2 -2
  36. package/dist/chunk-2IATUJO6.js +0 -1
  37. package/dist/chunk-7ZR5IO3B.js +0 -16
  38. package/dist/chunk-JGGQ3UX5.js +0 -1
  39. package/dist/chunk-MJOXIDKF.js +0 -935
  40. package/dist/chunk-OY24ERPV.js +0 -8
  41. package/dist/chunk-QYPSFZK3.js +0 -955
  42. package/dist/settlement-I5IBIK6U.js +0 -1
@@ -1,4 +1,4 @@
1
- import{a as R,c as I,d as X}from"./chunk-IFPION5D.js";import"./chunk-7POHNTVW.js";import"./chunk-4ZVO6GX4.js";import{a as n}from"./chunk-WNUXMPVX.js";var A="2026-10-09-operation-executions.1",v="2026-10-09-operation-debit-plans.1",U="2026-10-10-operation-debit-plans.2",y=["run_id","claim_token","expires_at_ms","phase","result_json","result_status"];async function c(t){let[e,_,E,a,s]=await Promise.all([t.execute("PRAGMA table_info(operation_executions)"),t.execute("PRAGMA index_info(operation_executions_expiry)"),t.execute({sql:"SELECT 1 FROM schema_migrations WHERE version = ?",args:[A]}),t.execute("PRAGMA foreign_key_list(operation_executions)"),t.execute("SELECT sql FROM sqlite_master WHERE type = 'table' AND name = 'operation_executions'")]),l=String(s.rows[0]?.sql??"").replace(/\s+/g," ");return await S(t)&&y.every(r=>e.rows.some(i=>i.name===r))&&e.rows.some(r=>r.name==="run_id"&&Number(r.pk)===1)&&["claim_token","expires_at_ms","phase"].every(r=>e.rows.some(i=>i.name===r&&Number(i.notnull)===1))&&_.rows.map(r=>r.name).join(",")==="phase,expires_at_ms"&&E.rows.length===1&&a.rows.some(r=>r.table==="operation_runs"&&r.from==="run_id"&&r.to==="id"&&r.on_delete==="CASCADE")&&["CHECK (expires_at_ms > 0)","CHECK (phase IN ('claimed', 'effects_started', 'published', 'unknown'))","CHECK (result_json IS NULL OR json_valid(result_json))","CHECK ((phase = 'published' AND result_json IS NOT NULL AND result_status IS NOT NULL)"].every(r=>l.includes(r))}async function O(t){if(!await c(t)&&(await t.batch([`CREATE TABLE IF NOT EXISTS operation_executions (
1
+ import{a as R,c as I,d as A}from"./chunk-IFPION5D.js";import"./chunk-7POHNTVW.js";import"./chunk-4ZVO6GX4.js";import{a as n}from"./chunk-WNUXMPVX.js";var X="2026-10-09-operation-executions.1",v="2026-10-09-operation-debit-plans.1",U="2026-10-10-operation-debit-plans.2",y=["run_id","claim_token","expires_at_ms","phase","result_json","result_status"];async function c(t){let[e,_,E,a,i]=await Promise.all([t.execute("PRAGMA table_info(operation_executions)"),t.execute("PRAGMA index_info(operation_executions_expiry)"),t.execute({sql:"SELECT 1 FROM schema_migrations WHERE version = ?",args:[X]}),t.execute("PRAGMA foreign_key_list(operation_executions)"),t.execute("SELECT sql FROM sqlite_master WHERE type = 'table' AND name = 'operation_executions'")]),l=String(i.rows[0]?.sql??"").replace(/\s+/g," ");return await S(t)&&y.every(r=>e.rows.some(s=>s.name===r))&&e.rows.some(r=>r.name==="run_id"&&Number(r.pk)===1)&&["claim_token","expires_at_ms","phase"].every(r=>e.rows.some(s=>s.name===r&&Number(s.notnull)===1))&&_.rows.map(r=>r.name).join(",")==="phase,expires_at_ms"&&E.rows.length===1&&a.rows.some(r=>r.table==="operation_runs"&&r.from==="run_id"&&r.to==="id"&&r.on_delete==="CASCADE")&&["CHECK (expires_at_ms > 0)","CHECK (phase IN ('claimed', 'effects_started', 'published', 'unknown'))","CHECK (result_json IS NULL OR json_valid(result_json))","CHECK ((phase = 'published' AND result_json IS NOT NULL AND result_status IS NOT NULL)"].every(r=>l.includes(r))}async function m(t){if(!await c(t)&&(await t.batch([`CREATE TABLE IF NOT EXISTS operation_executions (
2
2
  run_id TEXT PRIMARY KEY REFERENCES operation_runs(id) ON DELETE CASCADE,
3
3
  claim_token TEXT NOT NULL,
4
4
  expires_at_ms INTEGER NOT NULL CHECK (expires_at_ms > 0),
@@ -21,7 +21,7 @@ import{a as R,c as I,d as X}from"./chunk-IFPION5D.js";import"./chunk-7POHNTVW.js
21
21
  )`,"CREATE UNIQUE INDEX IF NOT EXISTS operation_debit_plans_key ON operation_debit_plans(debit_key)",`CREATE TABLE IF NOT EXISTS operation_wallet_fences (
22
22
  id TEXT PRIMARY KEY,
23
23
  allowed INTEGER NOT NULL CONSTRAINT operation_wallet_claim_current CHECK (allowed = 1)
24
- )`,{sql:"INSERT OR IGNORE INTO schema_migrations (version) VALUES (?)",args:[A]},{sql:"INSERT OR IGNORE INTO schema_migrations (version) VALUES (?)",args:[v]}],"write"),await k(t),!await c(t)))throw Error("Operation execution schema is incomplete")}async function S(t){let[e,_,E,a,s,l,r]=await Promise.all([t.execute("PRAGMA table_info(operation_debit_plans)"),t.execute("PRAGMA index_info(operation_debit_plans_key)"),t.execute("PRAGMA index_list(operation_debit_plans)"),t.execute("PRAGMA foreign_key_list(operation_debit_plans)"),t.execute("PRAGMA table_info(operation_wallet_fences)"),t.execute("SELECT name, sql FROM sqlite_master WHERE type = 'table' AND name IN ('operation_debit_plans', 'operation_wallet_fences')"),t.execute({sql:"SELECT 1 FROM schema_migrations WHERE version = ?",args:[U]})]),i=T=>String(l.rows.find(u=>u.name===T)?.sql??"").replace(/\s+/g," ");return["run_id","label","debit_key","amount_mc","operation","description","refund_operation","source_surface"].every(T=>e.rows.some(u=>u.name===T&&Number(u.notnull)===1))&&e.rows.some(T=>T.name==="run_id"&&Number(T.pk)===1)&&e.rows.some(T=>T.name==="label"&&Number(T.pk)===2)&&_.rows.map(T=>T.name).join(",")==="debit_key"&&E.rows.some(T=>T.name==="operation_debit_plans_key"&&Number(T.unique)===1)&&a.rows.some(T=>T.table==="operation_runs"&&T.from==="run_id"&&T.to==="id"&&T.on_delete==="CASCADE")&&i("operation_debit_plans").includes("CHECK (amount_mc > 0)")&&i("operation_debit_plans").includes("CHECK (length(debit_key) BETWEEN 1 AND 500)")&&s.rows.some(T=>T.name==="id"&&Number(T.pk)===1)&&s.rows.some(T=>T.name==="allowed"&&Number(T.notnull)===1)&&i("operation_wallet_fences").includes("CONSTRAINT operation_wallet_claim_current CHECK (allowed = 1)")&&r.rows.length===1}async function k(t){let e="CHECK (length(debit_key) BETWEEN 1 AND 500)",E=await(async()=>String((await t.execute("SELECT sql FROM sqlite_master WHERE type='table' AND name='operation_debit_plans'")).rows[0]?.sql??"").replace(/\s+/g," "))();if(!E.includes(e)&&!E.includes("CHECK (debit_key LIKE 'operation-debit:%')"))throw Error("Unrecognized operation debit-plan schema");let a=E.includes(e)?[]:[`CREATE TABLE IF NOT EXISTS operation_debit_plans_v2 (
24
+ )`,{sql:"INSERT OR IGNORE INTO schema_migrations (version) VALUES (?)",args:[X]},{sql:"INSERT OR IGNORE INTO schema_migrations (version) VALUES (?)",args:[v]}],"write"),await f(t),!await c(t)))throw Error("Operation execution schema is incomplete")}async function S(t){let[e,_,E,a,i,l,r]=await Promise.all([t.execute("PRAGMA table_info(operation_debit_plans)"),t.execute("PRAGMA index_info(operation_debit_plans_key)"),t.execute("PRAGMA index_list(operation_debit_plans)"),t.execute("PRAGMA foreign_key_list(operation_debit_plans)"),t.execute("PRAGMA table_info(operation_wallet_fences)"),t.execute("SELECT name, sql FROM sqlite_master WHERE type = 'table' AND name IN ('operation_debit_plans', 'operation_wallet_fences')"),t.execute({sql:"SELECT 1 FROM schema_migrations WHERE version = ?",args:[U]})]),s=T=>String(l.rows.find(u=>u.name===T)?.sql??"").replace(/\s+/g," ");return["run_id","label","debit_key","amount_mc","operation","description","refund_operation","source_surface"].every(T=>e.rows.some(u=>u.name===T&&Number(u.notnull)===1))&&e.rows.some(T=>T.name==="run_id"&&Number(T.pk)===1)&&e.rows.some(T=>T.name==="label"&&Number(T.pk)===2)&&_.rows.map(T=>T.name).join(",")==="debit_key"&&E.rows.some(T=>T.name==="operation_debit_plans_key"&&Number(T.unique)===1)&&a.rows.some(T=>T.table==="operation_runs"&&T.from==="run_id"&&T.to==="id"&&T.on_delete==="CASCADE")&&s("operation_debit_plans").includes("CHECK (amount_mc > 0)")&&s("operation_debit_plans").includes("CHECK (length(debit_key) BETWEEN 1 AND 500)")&&i.rows.some(T=>T.name==="id"&&Number(T.pk)===1)&&i.rows.some(T=>T.name==="allowed"&&Number(T.notnull)===1)&&s("operation_wallet_fences").includes("CONSTRAINT operation_wallet_claim_current CHECK (allowed = 1)")&&r.rows.length===1}async function f(t){let e="CHECK (length(debit_key) BETWEEN 1 AND 500)",E=await(async()=>String((await t.execute("SELECT sql FROM sqlite_master WHERE type='table' AND name='operation_debit_plans'")).rows[0]?.sql??"").replace(/\s+/g," "))();if(!E.includes(e)&&!E.includes("CHECK (debit_key LIKE 'operation-debit:%')"))throw Error("Unrecognized operation debit-plan schema");let a=E.includes(e)?[]:[`CREATE TABLE IF NOT EXISTS operation_debit_plans_v2 (
25
25
  run_id TEXT NOT NULL REFERENCES operation_runs(id) ON DELETE CASCADE,
26
26
  label TEXT NOT NULL,
27
27
  debit_key TEXT NOT NULL CHECK (length(debit_key) BETWEEN 1 AND 500),
@@ -33,7 +33,7 @@ import{a as R,c as I,d as X}from"./chunk-IFPION5D.js";import"./chunk-7POHNTVW.js
33
33
  created_at TEXT NOT NULL DEFAULT (datetime('now')),
34
34
  PRIMARY KEY (run_id, label)
35
35
  )`,`INSERT INTO operation_debit_plans_v2 (run_id,label,debit_key,amount_mc,operation,description,refund_operation,source_surface,created_at)
36
- SELECT run_id,label,debit_key,amount_mc,operation,description,refund_operation,source_surface,created_at FROM operation_debit_plans`,"DROP TABLE operation_debit_plans","ALTER TABLE operation_debit_plans_v2 RENAME TO operation_debit_plans","CREATE UNIQUE INDEX operation_debit_plans_key ON operation_debit_plans(debit_key)"];try{await t.batch([...a,{sql:"INSERT OR IGNORE INTO schema_migrations (version) VALUES (?)",args:[U]}],"write")}catch(s){if(!await S(t).catch(()=>!1))throw s}}var d="2026-10-12.1",C="data-2026-07-28-site-extract-counters.1",w=["admin_credit_adjustment_events","admin_credit_adjustments","billing_authorizations","billing_credits","billing_debits","billing_debit_allocations","billing_events","browser_profile_labels","connected_account_billing","concurrency_locks","credit_lot_expirations","credit_lots","credit_lot_repairs","free_credit_refreshes","harvest_attempts","inbox_messages","jobs","kpo_jobs","kpo_phase_log","ledger","oauth_clients","oauth_codes","oauth_tokens","operation_attempts","operation_billing_links","operation_coverage_defects","operation_runs","mcp_analytics_requests","maps_place_runs","maps_place_attempts","maps_place_run_events","maps_place_reviews","maps_place_images","page_snapshots","password_reset_tokens","rate_limits","request_events","provider_reconciliation_runs","provider_account_windows","provider_usage_receipts","scheduled_run_view_links","serp_identities","site_audit_jobs","site_audit_phase_log","site_extract_jobs","site_extract_pages","stripe_events","users","workflow_artifacts","workflow_runs","workflow_schedules","workflow_webhook_deliveries","workshop_registrations"],D=["admin_credit_adjustment_events_reference","admin_credit_adjustments_user_created","billing_authorizations_user_status","billing_credits_user_status","billing_debits_user_status","billing_events_authorization","billing_events_user_created_at","concurrency_locks_active_user","concurrency_locks_operation","concurrency_locks_user_status","credit_lots_user_active","credit_lot_repairs_user_applied","harvest_attempts_job_id","harvest_attempts_provider_lookup","harvest_attempts_user_created_at","inbox_messages_user_sent_at","jobs_created_at_status_user","jobs_status","jobs_user_created_at_status","jobs_user_id","kpo_jobs_status","kpo_jobs_user_id","kpo_phase_log_job_id","ledger_stripe_pi_unique","ledger_user_id","oauth_tokens_identity","operation_attempts_provider_status","operation_attempts_run_number","operation_billing_links_run","operation_coverage_defects_created","operation_runs_idempotency_scope","operation_runs_status_started","operation_runs_tool_started","operation_runs_user_started","mcp_analytics_requests_user_started","mcp_analytics_requests_started","maps_place_runs_owner_key","maps_place_runs_status_lease","maps_place_attempts_run_number","maps_place_reviews_order","maps_place_images_order","page_snapshots_user_checked_at","prt_user_id","request_events_created_at","request_events_user_created_at","provider_reconciliation_runs_provider_started","provider_account_windows_lookup","provider_usage_receipts_attempt","provider_usage_receipts_pending","provider_usage_receipts_provider_source","scheduled_run_view_links_expiry","scheduled_run_view_links_owner_run","stripe_events_due","serp_identities_user_name","site_audit_jobs_status","site_audit_jobs_user_id","site_audit_phase_log_job_id","site_extract_jobs_status","site_extract_jobs_idempotency","site_extract_jobs_user_id","site_extract_pages_job_id","workflow_artifacts_run","workflow_runs_idempotency","workflow_runs_schedule","workflow_runs_user_created","workflow_schedules_due","workflow_schedules_user_status","workflow_webhook_deliveries_run","workshop_registrations_event_status"],h=["credit_lots_bounds_insert","credit_lots_bounds_update","credit_lots_one_migration_insert","credit_lots_one_migration_update"],f={maps_place_runs:["request_fingerprint","field_states_json","core_json","checkpoint_revision","current_attempt_id","current_fence_token","lease_expires_at","billing_state"],maps_place_attempts:["attempt_number","resume_key_hash","fence_token","hold_key","held_amount_mc","final_amount_mc","billing_state"],maps_place_reviews:["review_key","record_json"],maps_place_images:["media_key","record_json"],credit_lots:["never_expires"],harvest_attempts:["debug_json","browser_provider","provider_session_id","provider_session_observed_at","provider_lookup_status","provider_status","provider_error_code","provider_error_message","provider_reason_source","provider_duration_ms","provider_bandwidth_bytes","provider_captcha","provider_checked_at","provider_detail_json","provider_disconnect_observed","provider_disconnect_message"],jobs:["public_error_json"],oauth_tokens:["replaced_by","rotated_at"],provider_usage_receipts:["provider_product","billing_tier","billable_event","measurement_source","rate_numerator","rate_denominator","rate_policy_version","rate_effective_at"],site_extract_jobs:["dispatch_claim_token","dispatch_claim_until","dispatched_at","settlement_plan_json","settlement_receipt_json","execution_generation","refinalize_until","attempted_urls","successful_urls","failed_urls","idempotency_key","request_fingerprint","dispatch_attempts","next_dispatch_at","dispatch_error","settlement_attempts","next_settlement_at","settlement_error","public_error_json"],stripe_events:["attempt_count","claim_token","claimed_at","completed_at","event_type","last_error","last_error_code","next_attempt_at","received_at","status","stripe_created_at","updated_at"],users:["balance_mc","concurrency_stripe_sub_id","concurrency_pack_quantity","extra_concurrency_slots","key_active","memory_identity","memory_key","memory_plan","memory_provisioned","memory_subscription_id","password_hash","stripe_customer_id","subscription_concurrency","subscription_id","subscription_tier"],workshop_registrations:["field_notes_email_id","reminder_48h_email_id","reminder_24h_email_id","reminder_1h_email_id"],workflow_artifacts:["content"],workflow_runs:["step_index","step_log_json","step_state_json","total_steps","webhook_url"]},o="provider_usage_receipts",N="provider_usage_receipts_measured_v1",x="cost_state IN ('pending', 'estimated', 'measured', 'actual', 'unavailable')";function b(t=o){if(t!==o&&t!==N)throw new Error(`Unsupported provider receipt table name: ${t}`);return`
36
+ SELECT run_id,label,debit_key,amount_mc,operation,description,refund_operation,source_surface,created_at FROM operation_debit_plans`,"DROP TABLE operation_debit_plans","ALTER TABLE operation_debit_plans_v2 RENAME TO operation_debit_plans","CREATE UNIQUE INDEX operation_debit_plans_key ON operation_debit_plans(debit_key)"];try{await t.batch([...a,{sql:"INSERT OR IGNORE INTO schema_migrations (version) VALUES (?)",args:[U]}],"write")}catch(i){if(!await S(t).catch(()=>!1))throw i}}var d="2026-10-12.1",C="data-2026-07-28-site-extract-counters.1",w=["admin_credit_adjustment_events","admin_credit_adjustments","billing_authorizations","billing_credits","billing_debits","billing_debit_allocations","billing_events","browser_profile_labels","connected_account_billing","concurrency_locks","credit_lot_expirations","credit_lots","credit_lot_repairs","free_credit_refreshes","harvest_attempts","inbox_messages","jobs","kpo_jobs","kpo_phase_log","ledger","oauth_clients","oauth_codes","oauth_tokens","operation_attempts","operation_billing_links","operation_coverage_defects","operation_runs","mcp_analytics_requests","maps_place_runs","maps_place_attempts","maps_place_run_events","maps_place_reviews","maps_place_images","page_snapshots","password_reset_tokens","rate_limits","request_events","provider_reconciliation_runs","provider_account_windows","provider_usage_receipts","serp_identities","site_audit_jobs","site_audit_phase_log","site_extract_jobs","site_extract_pages","stripe_events","users","workflow_artifacts","workflow_runs","workflow_webhook_deliveries","workshop_registrations"],D=["admin_credit_adjustment_events_reference","admin_credit_adjustments_user_created","billing_authorizations_user_status","billing_credits_user_status","billing_debits_user_status","billing_events_authorization","billing_events_user_created_at","concurrency_locks_active_user","concurrency_locks_operation","concurrency_locks_user_status","credit_lots_user_active","credit_lot_repairs_user_applied","harvest_attempts_job_id","harvest_attempts_provider_lookup","harvest_attempts_user_created_at","inbox_messages_user_sent_at","jobs_created_at_status_user","jobs_status","jobs_user_created_at_status","jobs_user_id","kpo_jobs_status","kpo_jobs_user_id","kpo_phase_log_job_id","ledger_stripe_pi_unique","ledger_user_id","oauth_tokens_identity","operation_attempts_provider_status","operation_attempts_run_number","operation_billing_links_run","operation_coverage_defects_created","operation_runs_idempotency_scope","operation_runs_status_started","operation_runs_tool_started","operation_runs_user_started","mcp_analytics_requests_user_started","mcp_analytics_requests_started","maps_place_runs_owner_key","maps_place_runs_status_lease","maps_place_attempts_run_number","maps_place_reviews_order","maps_place_images_order","page_snapshots_user_checked_at","prt_user_id","request_events_created_at","request_events_user_created_at","provider_reconciliation_runs_provider_started","provider_account_windows_lookup","provider_usage_receipts_attempt","provider_usage_receipts_pending","provider_usage_receipts_provider_source","stripe_events_due","serp_identities_user_name","site_audit_jobs_status","site_audit_jobs_user_id","site_audit_phase_log_job_id","site_extract_jobs_status","site_extract_jobs_idempotency","site_extract_jobs_user_id","site_extract_pages_job_id","workflow_artifacts_run","workflow_runs_idempotency","workflow_runs_schedule","workflow_runs_user_created","workflow_webhook_deliveries_run","workshop_registrations_event_status"],h=["credit_lots_bounds_insert","credit_lots_bounds_update","credit_lots_one_migration_insert","credit_lots_one_migration_update"],k={maps_place_runs:["request_fingerprint","field_states_json","core_json","checkpoint_revision","current_attempt_id","current_fence_token","lease_expires_at","billing_state"],maps_place_attempts:["attempt_number","resume_key_hash","fence_token","hold_key","held_amount_mc","final_amount_mc","billing_state"],maps_place_reviews:["review_key","record_json"],maps_place_images:["media_key","record_json"],credit_lots:["never_expires"],harvest_attempts:["debug_json","browser_provider","provider_session_id","provider_session_observed_at","provider_lookup_status","provider_status","provider_error_code","provider_error_message","provider_reason_source","provider_duration_ms","provider_bandwidth_bytes","provider_captcha","provider_checked_at","provider_detail_json","provider_disconnect_observed","provider_disconnect_message"],jobs:["public_error_json"],oauth_tokens:["replaced_by","rotated_at"],provider_usage_receipts:["provider_product","billing_tier","billable_event","measurement_source","rate_numerator","rate_denominator","rate_policy_version","rate_effective_at"],site_extract_jobs:["dispatch_claim_token","dispatch_claim_until","dispatched_at","settlement_plan_json","settlement_receipt_json","execution_generation","refinalize_until","attempted_urls","successful_urls","failed_urls","idempotency_key","request_fingerprint","dispatch_attempts","next_dispatch_at","dispatch_error","settlement_attempts","next_settlement_at","settlement_error","public_error_json"],stripe_events:["attempt_count","claim_token","claimed_at","completed_at","event_type","last_error","last_error_code","next_attempt_at","received_at","status","stripe_created_at","updated_at"],users:["balance_mc","concurrency_stripe_sub_id","concurrency_pack_quantity","extra_concurrency_slots","key_active","memory_identity","memory_key","memory_plan","memory_provisioned","memory_subscription_id","password_hash","stripe_customer_id","subscription_concurrency","subscription_id","subscription_tier"],workshop_registrations:["field_notes_email_id","reminder_48h_email_id","reminder_24h_email_id","reminder_1h_email_id"],workflow_artifacts:["content"],workflow_runs:["step_index","step_log_json","step_state_json","total_steps","webhook_url"]},o="provider_usage_receipts",N="provider_usage_receipts_measured_v1",x="cost_state IN ('pending', 'estimated', 'measured', 'actual', 'unavailable')";function b(t=o){if(t!==o&&t!==N)throw new Error(`Unsupported provider receipt table name: ${t}`);return`
37
37
  CREATE TABLE IF NOT EXISTS ${t} (
38
38
  id TEXT PRIMARY KEY,
39
39
  attempt_id TEXT NOT NULL REFERENCES operation_attempts(id) ON DELETE CASCADE,
@@ -75,7 +75,7 @@ import{a as R,c as I,d as X}from"./chunk-IFPION5D.js";import"./chunk-7POHNTVW.js
75
75
  CHECK (cost_state <> 'measured' OR (amount_usd_nanos IS NOT NULL
76
76
  AND (amount_usd_nanos > 0 OR zero_cost_reason IS NOT NULL)))
77
77
  )
78
- `}async function F(t){let e=await t.execute({sql:"SELECT sql FROM sqlite_master WHERE type = 'table' AND name = ?",args:[o]});return e.rows[0]?.sql==null?null:String(e.rows[0].sql)}function g(t){return t==null||t.includes(x)}async function j(t){let e=await F(t);if(g(e))return"not_needed";if((await t.execute({sql:"SELECT 1 AS present FROM sqlite_master WHERE type = 'table' AND name = ? LIMIT 1",args:[N]})).rows.length>0)throw new Error(`Refusing provider receipt migration because ${N} already exists`);let a=(await t.execute(`PRAGMA table_info(${o})`)).rows.map(s=>String(s.name)).map(s=>`"${s.replaceAll('"','""')}"`).join(", ");if(!a)throw new Error("Provider receipt migration found no source columns");return await t.batch([b(N),`INSERT INTO ${N} (${a}) SELECT ${a} FROM ${o}`,`DROP TABLE ${o}`,`ALTER TABLE ${N} RENAME TO ${o}`,"CREATE INDEX provider_usage_receipts_attempt ON provider_usage_receipts(attempt_id, created_at)","CREATE INDEX provider_usage_receipts_pending ON provider_usage_receipts(cost_state, checked_at, created_at) WHERE cost_state = 'pending'","CREATE UNIQUE INDEX provider_usage_receipts_provider_source ON provider_usage_receipts(provider, account_scope_hash, method, provider_source_key_hash) WHERE provider_source_key_hash IS NOT NULL"],"write"),"rebuilt"}function L(t){return t.map(e=>`'${e.replaceAll("'","''")}'`).join(", ")}async function p(t){let e=[`(SELECT COUNT(*) FROM sqlite_master WHERE type = 'table' AND name IN (${L(w)})) = ${w.length}`,`(SELECT COUNT(*) FROM sqlite_master WHERE type = 'index' AND name IN (${L(D)})) = ${D.length}`,`(SELECT COUNT(*) FROM sqlite_master WHERE type = 'trigger' AND name IN (${L(h)})) = ${h.length}`,...Object.entries(f).map(([E,a])=>`(SELECT COUNT(*) FROM pragma_table_info('${E}') WHERE name IN (${L(a)})) = ${a.length}`),`(SELECT COUNT(*) FROM sqlite_master WHERE type = 'table' AND name = '${o}' AND instr(sql, '${x.replaceAll("'","''")}') > 0) = 1`],_=await t.execute(`SELECT ${e.join(" AND ")} AS ready`);return Number(_.rows[0]?.ready??0)===1}async function q(t=n()){let e=!1;try{e=(await t.execute({sql:"SELECT 1 AS applied FROM schema_migrations WHERE version = ? LIMIT 1",args:[d]})).rows.length===1}catch(E){let a=E instanceof Error?E.message.toLowerCase():String(E).toLowerCase();if(!a.includes("no such table")||!a.includes("schema_migrations"))throw E}let _=e?await p(t)&&await c(t):!1;return{coreSchemaVersion:d,migrationApplied:e,schemaReady:_}}async function G(t){await t.execute(`
78
+ `}async function g(t){let e=await t.execute({sql:"SELECT sql FROM sqlite_master WHERE type = 'table' AND name = ?",args:[o]});return e.rows[0]?.sql==null?null:String(e.rows[0].sql)}function F(t){return t==null||t.includes(x)}async function j(t){let e=await g(t);if(F(e))return"not_needed";if((await t.execute({sql:"SELECT 1 AS present FROM sqlite_master WHERE type = 'table' AND name = ? LIMIT 1",args:[N]})).rows.length>0)throw new Error(`Refusing provider receipt migration because ${N} already exists`);let a=(await t.execute(`PRAGMA table_info(${o})`)).rows.map(i=>String(i.name)).map(i=>`"${i.replaceAll('"','""')}"`).join(", ");if(!a)throw new Error("Provider receipt migration found no source columns");return await t.batch([b(N),`INSERT INTO ${N} (${a}) SELECT ${a} FROM ${o}`,`DROP TABLE ${o}`,`ALTER TABLE ${N} RENAME TO ${o}`,"CREATE INDEX provider_usage_receipts_attempt ON provider_usage_receipts(attempt_id, created_at)","CREATE INDEX provider_usage_receipts_pending ON provider_usage_receipts(cost_state, checked_at, created_at) WHERE cost_state = 'pending'","CREATE UNIQUE INDEX provider_usage_receipts_provider_source ON provider_usage_receipts(provider, account_scope_hash, method, provider_source_key_hash) WHERE provider_source_key_hash IS NOT NULL"],"write"),"rebuilt"}function L(t){return t.map(e=>`'${e.replaceAll("'","''")}'`).join(", ")}async function p(t){let e=[`(SELECT COUNT(*) FROM sqlite_master WHERE type = 'table' AND name IN (${L(w)})) = ${w.length}`,`(SELECT COUNT(*) FROM sqlite_master WHERE type = 'index' AND name IN (${L(D)})) = ${D.length}`,`(SELECT COUNT(*) FROM sqlite_master WHERE type = 'trigger' AND name IN (${L(h)})) = ${h.length}`,...Object.entries(k).map(([E,a])=>`(SELECT COUNT(*) FROM pragma_table_info('${E}') WHERE name IN (${L(a)})) = ${a.length}`),`(SELECT COUNT(*) FROM sqlite_master WHERE type = 'table' AND name = '${o}' AND instr(sql, '${x.replaceAll("'","''")}') > 0) = 1`],_=await t.execute(`SELECT ${e.join(" AND ")} AS ready`);return Number(_.rows[0]?.ready??0)===1}async function q(t=n()){let e=!1;try{e=(await t.execute({sql:"SELECT 1 AS applied FROM schema_migrations WHERE version = ? LIMIT 1",args:[d]})).rows.length===1}catch(E){let a=E instanceof Error?E.message.toLowerCase():String(E).toLowerCase();if(!a.includes("no such table")||!a.includes("schema_migrations"))throw E}let _=e?await p(t)&&await c(t):!1;return{coreSchemaVersion:d,migrationApplied:e,schemaReady:_}}async function G(t){await t.execute(`
79
79
  UPDATE site_extract_jobs SET
80
80
  attempted_urls = done_urls,
81
81
  successful_urls = (
@@ -112,12 +112,12 @@ import{a as R,c as I,d as X}from"./chunk-IFPION5D.js";import"./chunk-7POHNTVW.js
112
112
  AND attempted_urls = 0
113
113
  AND successful_urls = 0
114
114
  AND failed_urls = 0
115
- `)}async function m(t){(await t.execute({sql:"SELECT 1 AS applied FROM schema_migrations WHERE version = ? LIMIT 1",args:[C]})).rows.length>0||(await G(t),await t.execute({sql:"INSERT OR IGNORE INTO schema_migrations (version) VALUES (?)",args:[C]}))}async function W(t=n()){if(process.env.OAUTH_MAINTENANCE_MODE!=="true")throw new Error("Secured main OAuth schema migration requires OAUTH_MAINTENANCE_MODE=true");await I(t)}async function $(t=n()){return X(t)}async function M(t={}){let e=n(),_;try{_=await e.execute({sql:"SELECT 1 AS applied FROM schema_migrations WHERE version = ? LIMIT 1",args:[d]})}catch(a){let s=a instanceof Error?a.message.toLowerCase():String(a).toLowerCase();if(!s.includes("no such table")||!s.includes("schema_migrations"))throw a;await e.execute(`
115
+ `)}async function O(t){(await t.execute({sql:"SELECT 1 AS applied FROM schema_migrations WHERE version = ? LIMIT 1",args:[C]})).rows.length>0||(await G(t),await t.execute({sql:"INSERT OR IGNORE INTO schema_migrations (version) VALUES (?)",args:[C]}))}async function W(t=n()){if(process.env.OAUTH_MAINTENANCE_MODE!=="true")throw new Error("Secured main OAuth schema migration requires OAUTH_MAINTENANCE_MODE=true");await I(t)}async function $(t=n()){return A(t)}async function M(t={}){let e=n(),_;try{_=await e.execute({sql:"SELECT 1 AS applied FROM schema_migrations WHERE version = ? LIMIT 1",args:[d]})}catch(a){let i=a instanceof Error?a.message.toLowerCase():String(a).toLowerCase();if(!i.includes("no such table")||!i.includes("schema_migrations"))throw a;await e.execute(`
116
116
  CREATE TABLE IF NOT EXISTS schema_migrations (
117
117
  version TEXT PRIMARY KEY,
118
118
  applied_at TEXT NOT NULL DEFAULT (datetime('now'))
119
119
  )
120
- `),_={rows:[]}}if(_.rows.length>0){if(!t.verifyCurrentSchema)return;if(await p(e)&&await c(e)){t.runDataRepairs&&await m(e);return}}let E=await F(e);if(!g(E))throw new Error("Provider receipt schema requires the explicit operator migration: run npm run db:migrate before starting the new application release");if(await p(e)){await O(e),await m(e),await e.execute({sql:"INSERT OR IGNORE INTO schema_migrations (version) VALUES (?)",args:[d]});return}await e.execute(`
120
+ `),_={rows:[]}}if(_.rows.length>0){if(!t.verifyCurrentSchema)return;if(await p(e)&&await c(e)){t.runDataRepairs&&await O(e);return}}let E=await g(e);if(!F(E))throw new Error("Provider receipt schema requires the explicit operator migration: run npm run db:migrate before starting the new application release");if(await p(e)){await m(e),await O(e),await e.execute({sql:"INSERT OR IGNORE INTO schema_migrations (version) VALUES (?)",args:[d]});return}await e.execute(`
121
121
  CREATE TABLE IF NOT EXISTS users (
122
122
  id INTEGER PRIMARY KEY AUTOINCREMENT,
123
123
  email TEXT UNIQUE NOT NULL,
@@ -709,23 +709,6 @@ import{a as R,c as I,d as X}from"./chunk-IFPION5D.js";import"./chunk-7POHNTVW.js
709
709
  created_at TEXT NOT NULL DEFAULT (datetime('now'))
710
710
  )
711
711
  `),await e.execute("CREATE INDEX IF NOT EXISTS request_events_user_created_at ON request_events(user_id, created_at DESC)"),await e.execute("CREATE INDEX IF NOT EXISTS request_events_created_at ON request_events(created_at)"),await R(e),await e.execute(`
712
- CREATE TABLE IF NOT EXISTS workflow_schedules (
713
- id TEXT PRIMARY KEY,
714
- user_id INTEGER NOT NULL REFERENCES users(id),
715
- workflow_id TEXT NOT NULL,
716
- name TEXT NOT NULL,
717
- input_json TEXT NOT NULL,
718
- cadence TEXT NOT NULL,
719
- cron_expr TEXT,
720
- timezone TEXT NOT NULL DEFAULT 'UTC',
721
- webhook_url TEXT,
722
- status TEXT NOT NULL DEFAULT 'active',
723
- next_run_at TEXT,
724
- last_run_at TEXT,
725
- created_at TEXT NOT NULL DEFAULT (datetime('now')),
726
- updated_at TEXT NOT NULL DEFAULT (datetime('now'))
727
- )
728
- `),await e.execute("CREATE INDEX IF NOT EXISTS workflow_schedules_user_status ON workflow_schedules(user_id, status, created_at DESC)"),await e.execute("CREATE INDEX IF NOT EXISTS workflow_schedules_due ON workflow_schedules(status, next_run_at)"),await e.execute(`
729
712
  CREATE TABLE IF NOT EXISTS workflow_runs (
730
713
  id TEXT PRIMARY KEY,
731
714
  user_id INTEGER NOT NULL REFERENCES users(id),
@@ -773,26 +756,6 @@ import{a as R,c as I,d as X}from"./chunk-IFPION5D.js";import"./chunk-7POHNTVW.js
773
756
  delivered_at TEXT
774
757
  )
775
758
  `),await e.execute("CREATE INDEX IF NOT EXISTS workflow_webhook_deliveries_run ON workflow_webhook_deliveries(run_id)"),await e.execute(`
776
- CREATE TABLE IF NOT EXISTS scheduled_run_view_links (
777
- share_id TEXT PRIMARY KEY,
778
- owner_id TEXT NOT NULL,
779
- run_id TEXT NOT NULL,
780
- artifact_id TEXT NOT NULL,
781
- title TEXT NOT NULL,
782
- summary TEXT NOT NULL,
783
- renderer_key TEXT NOT NULL CHECK (renderer_key IN ('editorial_reading_room_v1','personal_authority_v1','personal_authority_v2','newsroom_publisher_v1','blog_article_v1')),
784
- token_hash TEXT NOT NULL UNIQUE,
785
- expires_at TEXT NOT NULL,
786
- revoked_at TEXT,
787
- created_at TEXT NOT NULL
788
- )
789
- `),await e.execute(`
790
- CREATE INDEX IF NOT EXISTS scheduled_run_view_links_owner_run
791
- ON scheduled_run_view_links(owner_id, run_id, created_at DESC)
792
- `),await e.execute(`
793
- CREATE INDEX IF NOT EXISTS scheduled_run_view_links_expiry
794
- ON scheduled_run_view_links(expires_at, revoked_at)
795
- `),await e.execute(`
796
759
  CREATE TABLE IF NOT EXISTS stripe_events (
797
760
  event_id TEXT PRIMARY KEY,
798
761
  status TEXT NOT NULL DEFAULT 'processed',
@@ -933,4 +896,4 @@ import{a as R,c as I,d as X}from"./chunk-IFPION5D.js";import"./chunk-7POHNTVW.js
933
896
  `),await e.execute(`
934
897
  CREATE UNIQUE INDEX IF NOT EXISTS serp_identities_user_name
935
898
  ON serp_identities(user_id, name)
936
- `),!await p(e))throw new Error("core schema migration finished without all required tables, indexes, and columns");await O(e),await m(e),await e.execute({sql:"INSERT OR IGNORE INTO schema_migrations (version) VALUES (?)",args:[d]})}async function z(t={}){let e=await j(n());return await M(t),{providerUsageReceipts:e}}export{d as CORE_SCHEMA_VERSION,C as SITE_EXTRACT_COUNTER_REPAIR_VERSION,q as inspectCurrentCoreSchema,M as migrate,z as migrateCoreSchemaForRelease,W as migrateSecuredMainOAuthSchema,$ as verifySecuredMainOAuthSchema};
899
+ `),!await p(e))throw new Error("core schema migration finished without all required tables, indexes, and columns");await m(e),await O(e),await e.execute({sql:"INSERT OR IGNORE INTO schema_migrations (version) VALUES (?)",args:[d]})}async function z(t={}){let e=await j(n());return await M(t),{providerUsageReceipts:e}}export{d as CORE_SCHEMA_VERSION,C as SITE_EXTRACT_COUNTER_REPAIR_VERSION,q as inspectCurrentCoreSchema,M as migrate,z as migrateCoreSchemaForRelease,W as migrateSecuredMainOAuthSchema,$ as verifySecuredMainOAuthSchema};
@@ -1 +1 @@
1
- import{f as a,g as b}from"./chunk-JREMJRSS.js";import"./chunk-P55O4IDC.js";import"./chunk-KXJCGV3H.js";import"./chunk-ANQ4JJVI.js";import"./chunk-SEZETSB3.js";import"./chunk-SDQW7IJN.js";import"./chunk-C7MGJUTU.js";import"./chunk-PKQHHCO4.js";import"./chunk-4ZVO6GX4.js";import"./chunk-WNUXMPVX.js";import"./chunk-OILOHQNL.js";import"./chunk-HNNYXMSI.js";export{a as dispatchSiteExtractJob,b as redispatchFundedSiteExtractJobs};
1
+ import{f as a,g as b}from"./chunk-YJPFEL2E.js";import"./chunk-JNPM3U3L.js";import"./chunk-KXJCGV3H.js";import"./chunk-ANQ4JJVI.js";import"./chunk-SEZETSB3.js";import"./chunk-SDQW7IJN.js";import"./chunk-C7MGJUTU.js";import"./chunk-PKQHHCO4.js";import"./chunk-4ZVO6GX4.js";import"./chunk-WNUXMPVX.js";import"./chunk-OILOHQNL.js";import"./chunk-HNNYXMSI.js";export{a as dispatchSiteExtractJob,b as redispatchFundedSiteExtractJobs};
@@ -1 +1 @@
1
- import{t as d,u,v as l,w as f,x as v,xb as S,zb as h}from"./chunk-MJOXIDKF.js";import"./chunk-WBJ6Y7WP.js";import"./chunk-NNOX3FYG.js";import"./chunk-NALXKTUU.js";import"./chunk-DJT2547J.js";import"./chunk-2IATUJO6.js";import"./chunk-OY24ERPV.js";import"./chunk-VVSHZV5S.js";import"./chunk-4ZVO6GX4.js";import"./chunk-WNUXMPVX.js";import"./chunk-WP3QS4CJ.js";var g=12;function b(e){return e&&typeof e=="object"&&"code"in e&&typeof e.code=="string"?e.code:e instanceof Error?e.name:"unknown_error"}function k(e){return Math.min(21600,30*2**Math.max(0,e-1))}async function x(e={}){let w=e.stripeClient??S,E=Math.max(1,Math.min(100,e.limit??100)),r=500,i=0,s=0,c=0,m=0;for(;i<r;){let a=await d(Math.min(E,r-i),e.leaseSeconds??300);if(a.length===0)break;i+=a.length;for(let t of a)try{let n=await w.events.retrieve(t.eventId);await h(n),await u(t.eventId,t.token)&&(s+=1)}catch(n){let p=n instanceof Error?n.message:String(n),o=b(n);t.attemptCount>=g||o==="resource_missing"?await f(t.eventId,t.token,p,o)&&(m+=1):await l(t.eventId,t.token,p,o,k(t.attemptCount))&&(c+=1)}}return{claimed:i,processed:s,retried:c,deadLettered:m,capped:i>=r,health:await v()}}export{x as drainStripeEventQueue};
1
+ import{t as d,u,v as l,w as f,wb as S,x as v,yb as h}from"./chunk-AMYPXA2F.js";import"./chunk-PQRT4T2G.js";import"./chunk-NNOX3FYG.js";import"./chunk-NALXKTUU.js";import"./chunk-OSKCHEVM.js";import"./chunk-B5Y26E3A.js";import"./chunk-U3NV72AL.js";import"./chunk-VVSHZV5S.js";import"./chunk-4ZVO6GX4.js";import"./chunk-WNUXMPVX.js";import"./chunk-EYGA6LOU.js";var g=12;function b(e){return e&&typeof e=="object"&&"code"in e&&typeof e.code=="string"?e.code:e instanceof Error?e.name:"unknown_error"}function k(e){return Math.min(21600,30*2**Math.max(0,e-1))}async function x(e={}){let w=e.stripeClient??S,E=Math.max(1,Math.min(100,e.limit??100)),r=500,i=0,s=0,c=0,m=0;for(;i<r;){let a=await d(Math.min(E,r-i),e.leaseSeconds??300);if(a.length===0)break;i+=a.length;for(let t of a)try{let n=await w.events.retrieve(t.eventId);await h(n),await u(t.eventId,t.token)&&(s+=1)}catch(n){let p=n instanceof Error?n.message:String(n),o=b(n);t.attemptCount>=g||o==="resource_missing"?await f(t.eventId,t.token,p,o)&&(m+=1):await l(t.eventId,t.token,p,o,k(t.attemptCount))&&(c+=1)}}return{claimed:i,processed:s,retried:c,deadLettered:m,capped:i>=r,health:await v()}}export{x as drainStripeEventQueue};
@@ -1 +1 @@
1
- import{j as b,k as c}from"./chunk-3HXMW2UJ.js";import{g as a}from"./chunk-JREMJRSS.js";import"./chunk-U7BZ5KTE.js";import"./chunk-DJT2547J.js";import"./chunk-PANT6VEM.js";import"./chunk-U4WIJZCX.js";import"./chunk-P55O4IDC.js";import"./chunk-KXJCGV3H.js";import"./chunk-JMZIDHYQ.js";import"./chunk-M5QHXNFZ.js";import"./chunk-QER2ELZP.js";import"./chunk-OY24ERPV.js";import"./chunk-CNSVZTTT.js";import"./chunk-K3VDGJNK.js";import"./chunk-7SR7MEU5.js";import"./chunk-ANQ4JJVI.js";import"./chunk-SEZETSB3.js";import"./chunk-SDQW7IJN.js";import"./chunk-C7MGJUTU.js";import"./chunk-PKQHHCO4.js";import"./chunk-4ZVO6GX4.js";import"./chunk-WNUXMPVX.js";import"./chunk-WP3QS4CJ.js";import"./chunk-OLYPLX5C.js";import"./chunk-B3JRL45T.js";import"./chunk-OILOHQNL.js";import"./chunk-HNNYXMSI.js";export{c as reconcileSiteExtractSettlements,a as redispatchFundedSiteExtractJobs,b as refinalizeExtractJob};
1
+ import{j as b,k as c}from"./chunk-A4UASMEQ.js";import{g as a}from"./chunk-YJPFEL2E.js";import"./chunk-PD7BI7TR.js";import"./chunk-OSKCHEVM.js";import"./chunk-NULRGHJ4.js";import"./chunk-U4WIJZCX.js";import"./chunk-JNPM3U3L.js";import"./chunk-KXJCGV3H.js";import"./chunk-JMZIDHYQ.js";import"./chunk-M5QHXNFZ.js";import"./chunk-QER2ELZP.js";import"./chunk-U3NV72AL.js";import"./chunk-CNSVZTTT.js";import"./chunk-K3VDGJNK.js";import"./chunk-7SR7MEU5.js";import"./chunk-ANQ4JJVI.js";import"./chunk-SEZETSB3.js";import"./chunk-SDQW7IJN.js";import"./chunk-C7MGJUTU.js";import"./chunk-PKQHHCO4.js";import"./chunk-4ZVO6GX4.js";import"./chunk-WNUXMPVX.js";import"./chunk-EYGA6LOU.js";import"./chunk-OLYPLX5C.js";import"./chunk-B3JRL45T.js";import"./chunk-OILOHQNL.js";import"./chunk-HNNYXMSI.js";export{c as reconcileSiteExtractSettlements,a as redispatchFundedSiteExtractJobs,b as refinalizeExtractJob};