@ixo/decision-oracle 0.0.0-stage → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +794 -2
- package/dist/act.d.ts +87 -0
- package/dist/act.d.ts.map +1 -0
- package/dist/act.js +20 -0
- package/dist/act.js.map +1 -0
- package/dist/app.d.ts +22 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +128 -0
- package/dist/app.js.map +1 -0
- package/dist/c2pa.wasm +0 -0
- package/dist/cli/commands/api.d.ts +50 -0
- package/dist/cli/commands/api.d.ts.map +1 -0
- package/dist/cli/commands/api.js +737 -0
- package/dist/cli/commands/api.js.map +1 -0
- package/dist/cli/commands/create-collection.d.ts +40 -0
- package/dist/cli/commands/create-collection.d.ts.map +1 -0
- package/dist/cli/commands/create-collection.js +318 -0
- package/dist/cli/commands/create-collection.js.map +1 -0
- package/dist/cli/commands/create-deed.d.ts +31 -0
- package/dist/cli/commands/create-deed.d.ts.map +1 -0
- package/dist/cli/commands/create-deed.js +208 -0
- package/dist/cli/commands/create-deed.js.map +1 -0
- package/dist/cli/commands/delegation.d.ts +26 -0
- package/dist/cli/commands/delegation.d.ts.map +1 -0
- package/dist/cli/commands/delegation.js +162 -0
- package/dist/cli/commands/delegation.js.map +1 -0
- package/dist/cli/commands/derive.d.ts +22 -0
- package/dist/cli/commands/derive.d.ts.map +1 -0
- package/dist/cli/commands/derive.js +53 -0
- package/dist/cli/commands/derive.js.map +1 -0
- package/dist/cli/commands/engine.d.ts +25 -0
- package/dist/cli/commands/engine.d.ts.map +1 -0
- package/dist/cli/commands/engine.js +107 -0
- package/dist/cli/commands/engine.js.map +1 -0
- package/dist/cli/commands/erase.d.ts +17 -0
- package/dist/cli/commands/erase.d.ts.map +1 -0
- package/dist/cli/commands/erase.js +117 -0
- package/dist/cli/commands/erase.js.map +1 -0
- package/dist/cli/commands/facts-run.d.ts +30 -0
- package/dist/cli/commands/facts-run.d.ts.map +1 -0
- package/dist/cli/commands/facts-run.js +409 -0
- package/dist/cli/commands/facts-run.js.map +1 -0
- package/dist/cli/commands/facts-scaffold.d.ts +22 -0
- package/dist/cli/commands/facts-scaffold.d.ts.map +1 -0
- package/dist/cli/commands/facts-scaffold.js +208 -0
- package/dist/cli/commands/facts-scaffold.js.map +1 -0
- package/dist/cli/commands/init.d.ts +18 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +34 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/login.d.ts +9 -0
- package/dist/cli/commands/login.d.ts.map +1 -0
- package/dist/cli/commands/login.js +16 -0
- package/dist/cli/commands/login.js.map +1 -0
- package/dist/cli/commands/logout.d.ts +10 -0
- package/dist/cli/commands/logout.d.ts.map +1 -0
- package/dist/cli/commands/logout.js +28 -0
- package/dist/cli/commands/logout.js.map +1 -0
- package/dist/cli/commands/manifest.d.ts +12 -0
- package/dist/cli/commands/manifest.d.ts.map +1 -0
- package/dist/cli/commands/manifest.js +48 -0
- package/dist/cli/commands/manifest.js.map +1 -0
- package/dist/cli/commands/oracle-init.d.ts +48 -0
- package/dist/cli/commands/oracle-init.d.ts.map +1 -0
- package/dist/cli/commands/oracle-init.js +1122 -0
- package/dist/cli/commands/oracle-init.js.map +1 -0
- package/dist/cli/commands/org.d.ts +28 -0
- package/dist/cli/commands/org.d.ts.map +1 -0
- package/dist/cli/commands/org.js +309 -0
- package/dist/cli/commands/org.js.map +1 -0
- package/dist/cli/commands/protocol-review.d.ts +20 -0
- package/dist/cli/commands/protocol-review.d.ts.map +1 -0
- package/dist/cli/commands/protocol-review.js +162 -0
- package/dist/cli/commands/protocol-review.js.map +1 -0
- package/dist/cli/commands/publish-protocol.d.ts +43 -0
- package/dist/cli/commands/publish-protocol.d.ts.map +1 -0
- package/dist/cli/commands/publish-protocol.js +345 -0
- package/dist/cli/commands/publish-protocol.js.map +1 -0
- package/dist/cli/commands/register.d.ts +16 -0
- package/dist/cli/commands/register.d.ts.map +1 -0
- package/dist/cli/commands/register.js +54 -0
- package/dist/cli/commands/register.js.map +1 -0
- package/dist/cli/commands/relink.d.ts +11 -0
- package/dist/cli/commands/relink.d.ts.map +1 -0
- package/dist/cli/commands/relink.js +36 -0
- package/dist/cli/commands/relink.js.map +1 -0
- package/dist/cli/commands/rubric-fetch-form.d.ts +16 -0
- package/dist/cli/commands/rubric-fetch-form.d.ts.map +1 -0
- package/dist/cli/commands/rubric-fetch-form.js +83 -0
- package/dist/cli/commands/rubric-fetch-form.js.map +1 -0
- package/dist/cli/commands/rubric-validate.d.ts +72 -0
- package/dist/cli/commands/rubric-validate.d.ts.map +1 -0
- package/dist/cli/commands/rubric-validate.js +163 -0
- package/dist/cli/commands/rubric-validate.js.map +1 -0
- package/dist/cli/commands/scan.d.ts +13 -0
- package/dist/cli/commands/scan.d.ts.map +1 -0
- package/dist/cli/commands/scan.js +39 -0
- package/dist/cli/commands/scan.js.map +1 -0
- package/dist/cli/commands/skills.d.ts +11 -0
- package/dist/cli/commands/skills.d.ts.map +1 -0
- package/dist/cli/commands/skills.js +19 -0
- package/dist/cli/commands/skills.js.map +1 -0
- package/dist/cli/commands/submit-claim.d.ts +25 -0
- package/dist/cli/commands/submit-claim.d.ts.map +1 -0
- package/dist/cli/commands/submit-claim.js +155 -0
- package/dist/cli/commands/submit-claim.js.map +1 -0
- package/dist/cli/index.d.ts +15 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +206 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/lib/agent-card-schema.d.ts +8 -0
- package/dist/cli/lib/agent-card-schema.d.ts.map +1 -0
- package/dist/cli/lib/agent-card-schema.js +169 -0
- package/dist/cli/lib/agent-card-schema.js.map +1 -0
- package/dist/cli/lib/ai-rest.d.ts +12 -0
- package/dist/cli/lib/ai-rest.d.ts.map +1 -0
- package/dist/cli/lib/ai-rest.js +36 -0
- package/dist/cli/lib/ai-rest.js.map +1 -0
- package/dist/cli/lib/args.d.ts +33 -0
- package/dist/cli/lib/args.d.ts.map +1 -0
- package/dist/cli/lib/args.js +24 -0
- package/dist/cli/lib/args.js.map +1 -0
- package/dist/cli/lib/authhub.d.ts +7 -0
- package/dist/cli/lib/authhub.d.ts.map +1 -0
- package/dist/cli/lib/authhub.js +210 -0
- package/dist/cli/lib/authhub.js.map +1 -0
- package/dist/cli/lib/chain.d.ts +264 -0
- package/dist/cli/lib/chain.d.ts.map +1 -0
- package/dist/cli/lib/chain.js +584 -0
- package/dist/cli/lib/chain.js.map +1 -0
- package/dist/cli/lib/devvars.d.ts +59 -0
- package/dist/cli/lib/devvars.d.ts.map +1 -0
- package/dist/cli/lib/devvars.js +206 -0
- package/dist/cli/lib/devvars.js.map +1 -0
- package/dist/cli/lib/engine.d.ts +54 -0
- package/dist/cli/lib/engine.d.ts.map +1 -0
- package/dist/cli/lib/engine.js +112 -0
- package/dist/cli/lib/engine.js.map +1 -0
- package/dist/cli/lib/identity-cards.d.ts +188 -0
- package/dist/cli/lib/identity-cards.d.ts.map +1 -0
- package/dist/cli/lib/identity-cards.js +261 -0
- package/dist/cli/lib/identity-cards.js.map +1 -0
- package/dist/cli/lib/matrix-account.d.ts +79 -0
- package/dist/cli/lib/matrix-account.d.ts.map +1 -0
- package/dist/cli/lib/matrix-account.js +228 -0
- package/dist/cli/lib/matrix-account.js.map +1 -0
- package/dist/cli/lib/oracle-account.d.ts +108 -0
- package/dist/cli/lib/oracle-account.d.ts.map +1 -0
- package/dist/cli/lib/oracle-account.js +207 -0
- package/dist/cli/lib/oracle-account.js.map +1 -0
- package/dist/cli/lib/project.d.ts +22 -0
- package/dist/cli/lib/project.d.ts.map +1 -0
- package/dist/cli/lib/project.js +62 -0
- package/dist/cli/lib/project.js.map +1 -0
- package/dist/cli/lib/session.d.ts +109 -0
- package/dist/cli/lib/session.d.ts.map +1 -0
- package/dist/cli/lib/session.js +354 -0
- package/dist/cli/lib/session.js.map +1 -0
- package/dist/cli/lib/workorder.d.ts +57 -0
- package/dist/cli/lib/workorder.d.ts.map +1 -0
- package/dist/cli/lib/workorder.js +101 -0
- package/dist/cli/lib/workorder.js.map +1 -0
- package/dist/config.d.ts +221 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +431 -0
- package/dist/config.js.map +1 -0
- package/dist/context.d.ts +88 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +9 -0
- package/dist/context.js.map +1 -0
- package/dist/contracts/api.d.ts +3367 -0
- package/dist/contracts/api.d.ts.map +1 -0
- package/dist/contracts/api.js +1303 -0
- package/dist/contracts/api.js.map +1 -0
- package/dist/contracts/capabilities.d.ts +126 -0
- package/dist/contracts/capabilities.d.ts.map +1 -0
- package/dist/contracts/capabilities.js +164 -0
- package/dist/contracts/capabilities.js.map +1 -0
- package/dist/contracts/claim-source.d.ts +98 -0
- package/dist/contracts/claim-source.d.ts.map +1 -0
- package/dist/contracts/claim-source.js +17 -0
- package/dist/contracts/claim-source.js.map +1 -0
- package/dist/contracts/errors.d.ts +150 -0
- package/dist/contracts/errors.d.ts.map +1 -0
- package/dist/contracts/errors.js +121 -0
- package/dist/contracts/errors.js.map +1 -0
- package/dist/contracts/index.d.ts +15 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +11 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/payment-gate.d.ts +129 -0
- package/dist/contracts/payment-gate.d.ts.map +1 -0
- package/dist/contracts/payment-gate.js +24 -0
- package/dist/contracts/payment-gate.js.map +1 -0
- package/dist/contracts/start-api-claim.d.ts +90 -0
- package/dist/contracts/start-api-claim.d.ts.map +1 -0
- package/dist/contracts/start-api-claim.js +22 -0
- package/dist/contracts/start-api-claim.js.map +1 -0
- package/dist/contracts/webhooks.d.ts +1487 -0
- package/dist/contracts/webhooks.d.ts.map +1 -0
- package/dist/contracts/webhooks.js +71 -0
- package/dist/contracts/webhooks.js.map +1 -0
- package/dist/contracts/work-order.d.ts +29 -0
- package/dist/contracts/work-order.d.ts.map +1 -0
- package/dist/contracts/work-order.js +12 -0
- package/dist/contracts/work-order.js.map +1 -0
- package/dist/cron/ai-cost.d.ts +29 -0
- package/dist/cron/ai-cost.d.ts.map +1 -0
- package/dist/cron/ai-cost.js +80 -0
- package/dist/cron/ai-cost.js.map +1 -0
- package/dist/cron/api-lane.d.ts +39 -0
- package/dist/cron/api-lane.d.ts.map +1 -0
- package/dist/cron/api-lane.js +203 -0
- package/dist/cron/api-lane.js.map +1 -0
- package/dist/cron/backlog.d.ts +50 -0
- package/dist/cron/backlog.d.ts.map +1 -0
- package/dist/cron/backlog.js +115 -0
- package/dist/cron/backlog.js.map +1 -0
- package/dist/cron/billing.d.ts +11 -0
- package/dist/cron/billing.d.ts.map +1 -0
- package/dist/cron/billing.js +69 -0
- package/dist/cron/billing.js.map +1 -0
- package/dist/cron/collection.d.ts +50 -0
- package/dist/cron/collection.d.ts.map +1 -0
- package/dist/cron/collection.js +118 -0
- package/dist/cron/collection.js.map +1 -0
- package/dist/cron/funding.d.ts +16 -0
- package/dist/cron/funding.d.ts.map +1 -0
- package/dist/cron/funding.js +262 -0
- package/dist/cron/funding.js.map +1 -0
- package/dist/cron/payer-billing.d.ts +38 -0
- package/dist/cron/payer-billing.d.ts.map +1 -0
- package/dist/cron/payer-billing.js +119 -0
- package/dist/cron/payer-billing.js.map +1 -0
- package/dist/cron/scan.d.ts +43 -0
- package/dist/cron/scan.d.ts.map +1 -0
- package/dist/cron/scan.js +250 -0
- package/dist/cron/scan.js.map +1 -0
- package/dist/db/client.d.ts +14 -0
- package/dist/db/client.d.ts.map +1 -0
- package/dist/db/client.js +14 -0
- package/dist/db/client.js.map +1 -0
- package/dist/db/index.d.ts +7 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +7 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/schema.d.ts +6738 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +1433 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/define-oracle.d.ts +32 -0
- package/dist/define-oracle.d.ts.map +1 -0
- package/dist/define-oracle.js +80 -0
- package/dist/define-oracle.js.map +1 -0
- package/dist/dev-oracle.d.ts +9 -0
- package/dist/dev-oracle.d.ts.map +1 -0
- package/dist/dev-oracle.js +19 -0
- package/dist/dev-oracle.js.map +1 -0
- package/dist/dev-worker.d.ts +10 -0
- package/dist/dev-worker.d.ts.map +1 -0
- package/dist/dev-worker.js +12 -0
- package/dist/dev-worker.js.map +1 -0
- package/dist/env.d.ts +146 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +10 -0
- package/dist/env.js.map +1 -0
- package/dist/facts/exif.d.ts +43 -0
- package/dist/facts/exif.d.ts.map +1 -0
- package/dist/facts/exif.js +224 -0
- package/dist/facts/exif.js.map +1 -0
- package/dist/facts/fact.d.ts +62 -0
- package/dist/facts/fact.d.ts.map +1 -0
- package/dist/facts/fact.js +105 -0
- package/dist/facts/fact.js.map +1 -0
- package/dist/facts/geo.d.ts +55 -0
- package/dist/facts/geo.d.ts.map +1 -0
- package/dist/facts/geo.js +267 -0
- package/dist/facts/geo.js.map +1 -0
- package/dist/facts/index.d.ts +31 -0
- package/dist/facts/index.d.ts.map +1 -0
- package/dist/facts/index.js +27 -0
- package/dist/facts/index.js.map +1 -0
- package/dist/facts/linked-doc.d.ts +60 -0
- package/dist/facts/linked-doc.d.ts.map +1 -0
- package/dist/facts/linked-doc.js +101 -0
- package/dist/facts/linked-doc.js.map +1 -0
- package/dist/facts/types.d.ts +278 -0
- package/dist/facts/types.d.ts.map +1 -0
- package/dist/facts/types.js +19 -0
- package/dist/facts/types.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api-lane/accept.d.ts +29 -0
- package/dist/lib/api-lane/accept.d.ts.map +1 -0
- package/dist/lib/api-lane/accept.js +218 -0
- package/dist/lib/api-lane/accept.js.map +1 -0
- package/dist/lib/api-lane/claim-list.d.ts +44 -0
- package/dist/lib/api-lane/claim-list.d.ts.map +1 -0
- package/dist/lib/api-lane/claim-list.js +92 -0
- package/dist/lib/api-lane/claim-list.js.map +1 -0
- package/dist/lib/api-lane/company.d.ts +56 -0
- package/dist/lib/api-lane/company.d.ts.map +1 -0
- package/dist/lib/api-lane/company.js +103 -0
- package/dist/lib/api-lane/company.js.map +1 -0
- package/dist/lib/api-lane/events.d.ts +21 -0
- package/dist/lib/api-lane/events.d.ts.map +1 -0
- package/dist/lib/api-lane/events.js +111 -0
- package/dist/lib/api-lane/events.js.map +1 -0
- package/dist/lib/api-lane/ids.d.ts +39 -0
- package/dist/lib/api-lane/ids.d.ts.map +1 -0
- package/dist/lib/api-lane/ids.js +78 -0
- package/dist/lib/api-lane/ids.js.map +1 -0
- package/dist/lib/api-lane/index.d.ts +16 -0
- package/dist/lib/api-lane/index.d.ts.map +1 -0
- package/dist/lib/api-lane/index.js +16 -0
- package/dist/lib/api-lane/index.js.map +1 -0
- package/dist/lib/api-lane/linked.d.ts +264 -0
- package/dist/lib/api-lane/linked.d.ts.map +1 -0
- package/dist/lib/api-lane/linked.js +272 -0
- package/dist/lib/api-lane/linked.js.map +1 -0
- package/dist/lib/api-lane/media-type.d.ts +15 -0
- package/dist/lib/api-lane/media-type.d.ts.map +1 -0
- package/dist/lib/api-lane/media-type.js +73 -0
- package/dist/lib/api-lane/media-type.js.map +1 -0
- package/dist/lib/api-lane/member-emails.d.ts +83 -0
- package/dist/lib/api-lane/member-emails.d.ts.map +1 -0
- package/dist/lib/api-lane/member-emails.js +213 -0
- package/dist/lib/api-lane/member-emails.js.map +1 -0
- package/dist/lib/api-lane/members.d.ts +42 -0
- package/dist/lib/api-lane/members.d.ts.map +1 -0
- package/dist/lib/api-lane/members.js +75 -0
- package/dist/lib/api-lane/members.js.map +1 -0
- package/dist/lib/api-lane/notify.d.ts +47 -0
- package/dist/lib/api-lane/notify.d.ts.map +1 -0
- package/dist/lib/api-lane/notify.js +240 -0
- package/dist/lib/api-lane/notify.js.map +1 -0
- package/dist/lib/api-lane/pause.d.ts +41 -0
- package/dist/lib/api-lane/pause.d.ts.map +1 -0
- package/dist/lib/api-lane/pause.js +155 -0
- package/dist/lib/api-lane/pause.js.map +1 -0
- package/dist/lib/api-lane/record.d.ts +76 -0
- package/dist/lib/api-lane/record.d.ts.map +1 -0
- package/dist/lib/api-lane/record.js +337 -0
- package/dist/lib/api-lane/record.js.map +1 -0
- package/dist/lib/api-lane/retention.d.ts +43 -0
- package/dist/lib/api-lane/retention.d.ts.map +1 -0
- package/dist/lib/api-lane/retention.js +176 -0
- package/dist/lib/api-lane/retention.js.map +1 -0
- package/dist/lib/api-lane/review.d.ts +76 -0
- package/dist/lib/api-lane/review.d.ts.map +1 -0
- package/dist/lib/api-lane/review.js +355 -0
- package/dist/lib/api-lane/review.js.map +1 -0
- package/dist/lib/api-lane/reviewers.d.ts +109 -0
- package/dist/lib/api-lane/reviewers.d.ts.map +1 -0
- package/dist/lib/api-lane/reviewers.js +755 -0
- package/dist/lib/api-lane/reviewers.js.map +1 -0
- package/dist/lib/api-lane/source-delete.d.ts +16 -0
- package/dist/lib/api-lane/source-delete.d.ts.map +1 -0
- package/dist/lib/api-lane/source-delete.js +50 -0
- package/dist/lib/api-lane/source-delete.js.map +1 -0
- package/dist/lib/api-lane/source.d.ts +19 -0
- package/dist/lib/api-lane/source.d.ts.map +1 -0
- package/dist/lib/api-lane/source.js +226 -0
- package/dist/lib/api-lane/source.js.map +1 -0
- package/dist/lib/api-lane/submitter.d.ts +22 -0
- package/dist/lib/api-lane/submitter.d.ts.map +1 -0
- package/dist/lib/api-lane/submitter.js +34 -0
- package/dist/lib/api-lane/submitter.js.map +1 -0
- package/dist/lib/api-lane/timeline.d.ts +20 -0
- package/dist/lib/api-lane/timeline.d.ts.map +1 -0
- package/dist/lib/api-lane/timeline.js +23 -0
- package/dist/lib/api-lane/timeline.js.map +1 -0
- package/dist/lib/api-lane/webhook-crypto.d.ts +44 -0
- package/dist/lib/api-lane/webhook-crypto.d.ts.map +1 -0
- package/dist/lib/api-lane/webhook-crypto.js +103 -0
- package/dist/lib/api-lane/webhook-crypto.js.map +1 -0
- package/dist/lib/api-lane/webhooks.d.ts +117 -0
- package/dist/lib/api-lane/webhooks.d.ts.map +1 -0
- package/dist/lib/api-lane/webhooks.js +503 -0
- package/dist/lib/api-lane/webhooks.js.map +1 -0
- package/dist/lib/archive.d.ts +64 -0
- package/dist/lib/archive.d.ts.map +1 -0
- package/dist/lib/archive.js +305 -0
- package/dist/lib/archive.js.map +1 -0
- package/dist/lib/bech32.d.ts +8 -0
- package/dist/lib/bech32.d.ts.map +1 -0
- package/dist/lib/bech32.js +39 -0
- package/dist/lib/bech32.js.map +1 -0
- package/dist/lib/claim-erase.d.ts +22 -0
- package/dist/lib/claim-erase.d.ts.map +1 -0
- package/dist/lib/claim-erase.js +44 -0
- package/dist/lib/claim-erase.js.map +1 -0
- package/dist/lib/cursor.d.ts +11 -0
- package/dist/lib/cursor.d.ts.map +1 -0
- package/dist/lib/cursor.js +20 -0
- package/dist/lib/cursor.js.map +1 -0
- package/dist/lib/email/send.d.ts +43 -0
- package/dist/lib/email/send.d.ts.map +1 -0
- package/dist/lib/email/send.js +71 -0
- package/dist/lib/email/send.js.map +1 -0
- package/dist/lib/email/template.d.ts +217 -0
- package/dist/lib/email/template.d.ts.map +1 -0
- package/dist/lib/email/template.js +713 -0
- package/dist/lib/email/template.js.map +1 -0
- package/dist/lib/engine/adr36.d.ts +56 -0
- package/dist/lib/engine/adr36.d.ts.map +1 -0
- package/dist/lib/engine/adr36.js +76 -0
- package/dist/lib/engine/adr36.js.map +1 -0
- package/dist/lib/engine/client.d.ts +162 -0
- package/dist/lib/engine/client.d.ts.map +1 -0
- package/dist/lib/engine/client.js +473 -0
- package/dist/lib/engine/client.js.map +1 -0
- package/dist/lib/engine/types.d.ts +1356 -0
- package/dist/lib/engine/types.d.ts.map +1 -0
- package/dist/lib/engine/types.js +562 -0
- package/dist/lib/engine/types.js.map +1 -0
- package/dist/lib/errors.d.ts +73 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +96 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/facts/builder.d.ts +88 -0
- package/dist/lib/facts/builder.d.ts.map +1 -0
- package/dist/lib/facts/builder.js +239 -0
- package/dist/lib/facts/builder.js.map +1 -0
- package/dist/lib/facts/ctx.d.ts +34 -0
- package/dist/lib/facts/ctx.d.ts.map +1 -0
- package/dist/lib/facts/ctx.js +51 -0
- package/dist/lib/facts/ctx.js.map +1 -0
- package/dist/lib/facts/expected.d.ts +23 -0
- package/dist/lib/facts/expected.d.ts.map +1 -0
- package/dist/lib/facts/expected.js +16 -0
- package/dist/lib/facts/expected.js.map +1 -0
- package/dist/lib/facts/fact-cache.d.ts +469 -0
- package/dist/lib/facts/fact-cache.d.ts.map +1 -0
- package/dist/lib/facts/fact-cache.js +52 -0
- package/dist/lib/facts/fact-cache.js.map +1 -0
- package/dist/lib/facts/factset.d.ts +608 -0
- package/dist/lib/facts/factset.d.ts.map +1 -0
- package/dist/lib/facts/factset.js +226 -0
- package/dist/lib/facts/factset.js.map +1 -0
- package/dist/lib/facts/producer.d.ts +190 -0
- package/dist/lib/facts/producer.d.ts.map +1 -0
- package/dist/lib/facts/producer.js +15 -0
- package/dist/lib/facts/producer.js.map +1 -0
- package/dist/lib/facts/runner.d.ts +111 -0
- package/dist/lib/facts/runner.d.ts.map +1 -0
- package/dist/lib/facts/runner.js +438 -0
- package/dist/lib/facts/runner.js.map +1 -0
- package/dist/lib/facts/stock/ai-check.d.ts +100 -0
- package/dist/lib/facts/stock/ai-check.d.ts.map +1 -0
- package/dist/lib/facts/stock/ai-check.js +526 -0
- package/dist/lib/facts/stock/ai-check.js.map +1 -0
- package/dist/lib/facts/stock/ai-inputs.d.ts +104 -0
- package/dist/lib/facts/stock/ai-inputs.d.ts.map +1 -0
- package/dist/lib/facts/stock/ai-inputs.js +332 -0
- package/dist/lib/facts/stock/ai-inputs.js.map +1 -0
- package/dist/lib/facts/stock/ai-provider.d.ts +105 -0
- package/dist/lib/facts/stock/ai-provider.d.ts.map +1 -0
- package/dist/lib/facts/stock/ai-provider.js +250 -0
- package/dist/lib/facts/stock/ai-provider.js.map +1 -0
- package/dist/lib/facts/stock/ai-unique.d.ts +85 -0
- package/dist/lib/facts/stock/ai-unique.d.ts.map +1 -0
- package/dist/lib/facts/stock/ai-unique.js +208 -0
- package/dist/lib/facts/stock/ai-unique.js.map +1 -0
- package/dist/lib/facts/stock/archive.d.ts +63 -0
- package/dist/lib/facts/stock/archive.d.ts.map +1 -0
- package/dist/lib/facts/stock/archive.js +349 -0
- package/dist/lib/facts/stock/archive.js.map +1 -0
- package/dist/lib/facts/stock/c2pa-trust-list.d.ts +16 -0
- package/dist/lib/facts/stock/c2pa-trust-list.d.ts.map +1 -0
- package/dist/lib/facts/stock/c2pa-trust-list.js +637 -0
- package/dist/lib/facts/stock/c2pa-trust-list.js.map +1 -0
- package/dist/lib/facts/stock/c2pa.d.ts +56 -0
- package/dist/lib/facts/stock/c2pa.d.ts.map +1 -0
- package/dist/lib/facts/stock/c2pa.js +234 -0
- package/dist/lib/facts/stock/c2pa.js.map +1 -0
- package/dist/lib/facts/stock/call.d.ts +91 -0
- package/dist/lib/facts/stock/call.d.ts.map +1 -0
- package/dist/lib/facts/stock/call.js +281 -0
- package/dist/lib/facts/stock/call.js.map +1 -0
- package/dist/lib/facts/stock/capability.d.ts +39 -0
- package/dist/lib/facts/stock/capability.d.ts.map +1 -0
- package/dist/lib/facts/stock/capability.js +59 -0
- package/dist/lib/facts/stock/capability.js.map +1 -0
- package/dist/lib/facts/stock/ext-source.d.ts +51 -0
- package/dist/lib/facts/stock/ext-source.d.ts.map +1 -0
- package/dist/lib/facts/stock/ext-source.js +201 -0
- package/dist/lib/facts/stock/ext-source.js.map +1 -0
- package/dist/lib/facts/stock/frequency-fact.d.ts +59 -0
- package/dist/lib/facts/stock/frequency-fact.d.ts.map +1 -0
- package/dist/lib/facts/stock/frequency-fact.js +86 -0
- package/dist/lib/facts/stock/frequency-fact.js.map +1 -0
- package/dist/lib/facts/stock/frequency.d.ts +32 -0
- package/dist/lib/facts/stock/frequency.d.ts.map +1 -0
- package/dist/lib/facts/stock/frequency.js +48 -0
- package/dist/lib/facts/stock/frequency.js.map +1 -0
- package/dist/lib/facts/stock/index.d.ts +27 -0
- package/dist/lib/facts/stock/index.d.ts.map +1 -0
- package/dist/lib/facts/stock/index.js +28 -0
- package/dist/lib/facts/stock/index.js.map +1 -0
- package/dist/lib/facts/stock/normalize.d.ts +45 -0
- package/dist/lib/facts/stock/normalize.d.ts.map +1 -0
- package/dist/lib/facts/stock/normalize.js +135 -0
- package/dist/lib/facts/stock/normalize.js.map +1 -0
- package/dist/lib/facts/stock/phash.d.ts +55 -0
- package/dist/lib/facts/stock/phash.d.ts.map +1 -0
- package/dist/lib/facts/stock/phash.js +256 -0
- package/dist/lib/facts/stock/phash.js.map +1 -0
- package/dist/lib/facts/stock/rule-defaults.d.ts +72 -0
- package/dist/lib/facts/stock/rule-defaults.d.ts.map +1 -0
- package/dist/lib/facts/stock/rule-defaults.js +55 -0
- package/dist/lib/facts/stock/rule-defaults.js.map +1 -0
- package/dist/lib/facts/stock/send.d.ts +52 -0
- package/dist/lib/facts/stock/send.d.ts.map +1 -0
- package/dist/lib/facts/stock/send.js +148 -0
- package/dist/lib/facts/stock/send.js.map +1 -0
- package/dist/lib/facts/stock/unique-score.d.ts +138 -0
- package/dist/lib/facts/stock/unique-score.d.ts.map +1 -0
- package/dist/lib/facts/stock/unique-score.js +257 -0
- package/dist/lib/facts/stock/unique-score.js.map +1 -0
- package/dist/lib/facts/stock/unique-store.d.ts +420 -0
- package/dist/lib/facts/stock/unique-store.d.ts.map +1 -0
- package/dist/lib/facts/stock/unique-store.js +328 -0
- package/dist/lib/facts/stock/unique-store.js.map +1 -0
- package/dist/lib/facts/stock/unique.d.ts +35 -0
- package/dist/lib/facts/stock/unique.d.ts.map +1 -0
- package/dist/lib/facts/stock/unique.js +327 -0
- package/dist/lib/facts/stock/unique.js.map +1 -0
- package/dist/lib/facts/tools.d.ts +57 -0
- package/dist/lib/facts/tools.d.ts.map +1 -0
- package/dist/lib/facts/tools.js +325 -0
- package/dist/lib/facts/tools.js.map +1 -0
- package/dist/lib/facts/validate.d.ts +33 -0
- package/dist/lib/facts/validate.d.ts.map +1 -0
- package/dist/lib/facts/validate.js +137 -0
- package/dist/lib/facts/validate.js.map +1 -0
- package/dist/lib/hash.d.ts +44 -0
- package/dist/lib/hash.d.ts.map +1 -0
- package/dist/lib/hash.js +80 -0
- package/dist/lib/hash.js.map +1 -0
- package/dist/lib/http/client.d.ts +113 -0
- package/dist/lib/http/client.d.ts.map +1 -0
- package/dist/lib/http/client.js +330 -0
- package/dist/lib/http/client.js.map +1 -0
- package/dist/lib/ids.d.ts +17 -0
- package/dist/lib/ids.d.ts.map +1 -0
- package/dist/lib/ids.js +26 -0
- package/dist/lib/ids.js.map +1 -0
- package/dist/lib/ixo/attachments.d.ts +116 -0
- package/dist/lib/ixo/attachments.d.ts.map +1 -0
- package/dist/lib/ixo/attachments.js +290 -0
- package/dist/lib/ixo/attachments.js.map +1 -0
- package/dist/lib/ixo/authz.d.ts +40 -0
- package/dist/lib/ixo/authz.d.ts.map +1 -0
- package/dist/lib/ixo/authz.js +113 -0
- package/dist/lib/ixo/authz.js.map +1 -0
- package/dist/lib/ixo/blocksync/index.d.ts +90 -0
- package/dist/lib/ixo/blocksync/index.d.ts.map +1 -0
- package/dist/lib/ixo/blocksync/index.js +251 -0
- package/dist/lib/ixo/blocksync/index.js.map +1 -0
- package/dist/lib/ixo/blocksync/queries.d.ts +15 -0
- package/dist/lib/ixo/blocksync/queries.d.ts.map +1 -0
- package/dist/lib/ixo/blocksync/queries.js +144 -0
- package/dist/lib/ixo/blocksync/queries.js.map +1 -0
- package/dist/lib/ixo/blocksync/types.d.ts +184 -0
- package/dist/lib/ixo/blocksync/types.d.ts.map +1 -0
- package/dist/lib/ixo/blocksync/types.js +108 -0
- package/dist/lib/ixo/blocksync/types.js.map +1 -0
- package/dist/lib/ixo/cellnode.d.ts +35 -0
- package/dist/lib/ixo/cellnode.d.ts.map +1 -0
- package/dist/lib/ixo/cellnode.js +43 -0
- package/dist/lib/ixo/cellnode.js.map +1 -0
- package/dist/lib/ixo/chain-write.d.ts +130 -0
- package/dist/lib/ixo/chain-write.d.ts.map +1 -0
- package/dist/lib/ixo/chain-write.js +460 -0
- package/dist/lib/ixo/chain-write.js.map +1 -0
- package/dist/lib/ixo/chain.d.ts +1046 -0
- package/dist/lib/ixo/chain.d.ts.map +1 -0
- package/dist/lib/ixo/chain.js +279 -0
- package/dist/lib/ixo/chain.js.map +1 -0
- package/dist/lib/ixo/claim-bot.d.ts +49 -0
- package/dist/lib/ixo/claim-bot.d.ts.map +1 -0
- package/dist/lib/ixo/claim-bot.js +141 -0
- package/dist/lib/ixo/claim-bot.js.map +1 -0
- package/dist/lib/ixo/delegation-verify.d.ts +44 -0
- package/dist/lib/ixo/delegation-verify.d.ts.map +1 -0
- package/dist/lib/ixo/delegation-verify.js +101 -0
- package/dist/lib/ixo/delegation-verify.js.map +1 -0
- package/dist/lib/ixo/did.d.ts +13 -0
- package/dist/lib/ixo/did.d.ts.map +1 -0
- package/dist/lib/ixo/did.js +85 -0
- package/dist/lib/ixo/did.js.map +1 -0
- package/dist/lib/ixo/grant-chain.d.ts +55 -0
- package/dist/lib/ixo/grant-chain.d.ts.map +1 -0
- package/dist/lib/ixo/grant-chain.js +185 -0
- package/dist/lib/ixo/grant-chain.js.map +1 -0
- package/dist/lib/ixo/identity.d.ts +32 -0
- package/dist/lib/ixo/identity.d.ts.map +1 -0
- package/dist/lib/ixo/identity.js +104 -0
- package/dist/lib/ixo/identity.js.map +1 -0
- package/dist/lib/ixo/index.d.ts +118 -0
- package/dist/lib/ixo/index.d.ts.map +1 -0
- package/dist/lib/ixo/index.js +395 -0
- package/dist/lib/ixo/index.js.map +1 -0
- package/dist/lib/ixo/payment.d.ts +104 -0
- package/dist/lib/ixo/payment.d.ts.map +1 -0
- package/dist/lib/ixo/payment.js +136 -0
- package/dist/lib/ixo/payment.js.map +1 -0
- package/dist/lib/ixo/ucan-store.d.ts +30 -0
- package/dist/lib/ixo/ucan-store.d.ts.map +1 -0
- package/dist/lib/ixo/ucan-store.js +134 -0
- package/dist/lib/ixo/ucan-store.js.map +1 -0
- package/dist/lib/ixo/ucan.d.ts +96 -0
- package/dist/lib/ixo/ucan.d.ts.map +1 -0
- package/dist/lib/ixo/ucan.js +216 -0
- package/dist/lib/ixo/ucan.js.map +1 -0
- package/dist/lib/ixo/verified-read.d.ts +43 -0
- package/dist/lib/ixo/verified-read.d.ts.map +1 -0
- package/dist/lib/ixo/verified-read.js +73 -0
- package/dist/lib/ixo/verified-read.js.map +1 -0
- package/dist/lib/ixo/vfs.d.ts +27 -0
- package/dist/lib/ixo/vfs.d.ts.map +1 -0
- package/dist/lib/ixo/vfs.js +42 -0
- package/dist/lib/ixo/vfs.js.map +1 -0
- package/dist/lib/ixo/web-did.d.ts +7 -0
- package/dist/lib/ixo/web-did.d.ts.map +1 -0
- package/dist/lib/ixo/web-did.js +9 -0
- package/dist/lib/ixo/web-did.js.map +1 -0
- package/dist/lib/logger.d.ts +34 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +126 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/matrix/api.d.ts +57 -0
- package/dist/lib/matrix/api.d.ts.map +1 -0
- package/dist/lib/matrix/api.js +58 -0
- package/dist/lib/matrix/api.js.map +1 -0
- package/dist/lib/matrix/client.d.ts +41 -0
- package/dist/lib/matrix/client.d.ts.map +1 -0
- package/dist/lib/matrix/client.js +104 -0
- package/dist/lib/matrix/client.js.map +1 -0
- package/dist/lib/matrix/deliver.d.ts +224 -0
- package/dist/lib/matrix/deliver.d.ts.map +1 -0
- package/dist/lib/matrix/deliver.js +788 -0
- package/dist/lib/matrix/deliver.js.map +1 -0
- package/dist/lib/matrix/events.d.ts +114 -0
- package/dist/lib/matrix/events.d.ts.map +1 -0
- package/dist/lib/matrix/events.js +143 -0
- package/dist/lib/matrix/events.js.map +1 -0
- package/dist/lib/matrix/mxid.d.ts +24 -0
- package/dist/lib/matrix/mxid.d.ts.map +1 -0
- package/dist/lib/matrix/mxid.js +47 -0
- package/dist/lib/matrix/mxid.js.map +1 -0
- package/dist/lib/metrics.d.ts +105 -0
- package/dist/lib/metrics.d.ts.map +1 -0
- package/dist/lib/metrics.js +204 -0
- package/dist/lib/metrics.js.map +1 -0
- package/dist/lib/oauth/approvals.d.ts +160 -0
- package/dist/lib/oauth/approvals.d.ts.map +1 -0
- package/dist/lib/oauth/approvals.js +273 -0
- package/dist/lib/oauth/approvals.js.map +1 -0
- package/dist/lib/oauth/standing.d.ts +152 -0
- package/dist/lib/oauth/standing.d.ts.map +1 -0
- package/dist/lib/oauth/standing.js +299 -0
- package/dist/lib/oauth/standing.js.map +1 -0
- package/dist/lib/oauth/token.d.ts +60 -0
- package/dist/lib/oauth/token.d.ts.map +1 -0
- package/dist/lib/oauth/token.js +129 -0
- package/dist/lib/oauth/token.js.map +1 -0
- package/dist/lib/payments/extend.d.ts +42 -0
- package/dist/lib/payments/extend.d.ts.map +1 -0
- package/dist/lib/payments/extend.js +98 -0
- package/dist/lib/payments/extend.js.map +1 -0
- package/dist/lib/payments/facilitator.d.ts +220 -0
- package/dist/lib/payments/facilitator.d.ts.map +1 -0
- package/dist/lib/payments/facilitator.js +451 -0
- package/dist/lib/payments/facilitator.js.map +1 -0
- package/dist/lib/payments/gate.d.ts +207 -0
- package/dist/lib/payments/gate.d.ts.map +1 -0
- package/dist/lib/payments/gate.js +481 -0
- package/dist/lib/payments/gate.js.map +1 -0
- package/dist/lib/payments/header-seal.d.ts +33 -0
- package/dist/lib/payments/header-seal.d.ts.map +1 -0
- package/dist/lib/payments/header-seal.js +76 -0
- package/dist/lib/payments/header-seal.js.map +1 -0
- package/dist/lib/payments/index.d.ts +12 -0
- package/dist/lib/payments/index.d.ts.map +1 -0
- package/dist/lib/payments/index.js +11 -0
- package/dist/lib/payments/index.js.map +1 -0
- package/dist/lib/payments/price.d.ts +25 -0
- package/dist/lib/payments/price.d.ts.map +1 -0
- package/dist/lib/payments/price.js +43 -0
- package/dist/lib/payments/price.js.map +1 -0
- package/dist/lib/payments/reconcile.d.ts +77 -0
- package/dist/lib/payments/reconcile.d.ts.map +1 -0
- package/dist/lib/payments/reconcile.js +317 -0
- package/dist/lib/payments/reconcile.js.map +1 -0
- package/dist/lib/payments/refund.d.ts +34 -0
- package/dist/lib/payments/refund.d.ts.map +1 -0
- package/dist/lib/payments/refund.js +123 -0
- package/dist/lib/payments/refund.js.map +1 -0
- package/dist/lib/payments/review-billing.d.ts +222 -0
- package/dist/lib/payments/review-billing.d.ts.map +1 -0
- package/dist/lib/payments/review-billing.js +609 -0
- package/dist/lib/payments/review-billing.js.map +1 -0
- package/dist/lib/payments/settle.d.ts +44 -0
- package/dist/lib/payments/settle.d.ts.map +1 -0
- package/dist/lib/payments/settle.js +306 -0
- package/dist/lib/payments/settle.js.map +1 -0
- package/dist/lib/payments/terms.d.ts +27 -0
- package/dist/lib/payments/terms.d.ts.map +1 -0
- package/dist/lib/payments/terms.js +21 -0
- package/dist/lib/payments/terms.js.map +1 -0
- package/dist/lib/payouts.d.ts +20 -0
- package/dist/lib/payouts.d.ts.map +1 -0
- package/dist/lib/payouts.js +30 -0
- package/dist/lib/payouts.js.map +1 -0
- package/dist/lib/readiness.d.ts +42 -0
- package/dist/lib/readiness.d.ts.map +1 -0
- package/dist/lib/readiness.js +130 -0
- package/dist/lib/readiness.js.map +1 -0
- package/dist/lib/redact.d.ts +23 -0
- package/dist/lib/redact.d.ts.map +1 -0
- package/dist/lib/redact.js +67 -0
- package/dist/lib/redact.js.map +1 -0
- package/dist/lib/register.d.ts +85 -0
- package/dist/lib/register.d.ts.map +1 -0
- package/dist/lib/register.js +390 -0
- package/dist/lib/register.js.map +1 -0
- package/dist/lib/review/attestation.d.ts +92 -0
- package/dist/lib/review/attestation.d.ts.map +1 -0
- package/dist/lib/review/attestation.js +264 -0
- package/dist/lib/review/attestation.js.map +1 -0
- package/dist/lib/review/reviewer-grant.d.ts +146 -0
- package/dist/lib/review/reviewer-grant.d.ts.map +1 -0
- package/dist/lib/review/reviewer-grant.js +359 -0
- package/dist/lib/review/reviewer-grant.js.map +1 -0
- package/dist/lib/review/tasks.d.ts +18 -0
- package/dist/lib/review/tasks.d.ts.map +1 -0
- package/dist/lib/review/tasks.js +36 -0
- package/dist/lib/review/tasks.js.map +1 -0
- package/dist/lib/sentry.d.ts +89 -0
- package/dist/lib/sentry.d.ts.map +1 -0
- package/dist/lib/sentry.js +284 -0
- package/dist/lib/sentry.js.map +1 -0
- package/dist/lib/spans.d.ts +14 -0
- package/dist/lib/spans.d.ts.map +1 -0
- package/dist/lib/spans.js +28 -0
- package/dist/lib/spans.js.map +1 -0
- package/dist/lib/tracing.d.ts +31 -0
- package/dist/lib/tracing.d.ts.map +1 -0
- package/dist/lib/tracing.js +66 -0
- package/dist/lib/tracing.js.map +1 -0
- package/dist/lib/ttl-cache.d.ts +26 -0
- package/dist/lib/ttl-cache.d.ts.map +1 -0
- package/dist/lib/ttl-cache.js +61 -0
- package/dist/lib/ttl-cache.js.map +1 -0
- package/dist/lib/validator.d.ts +19 -0
- package/dist/lib/validator.d.ts.map +1 -0
- package/dist/lib/validator.js +32 -0
- package/dist/lib/validator.js.map +1 -0
- package/dist/lib/work-order/form.d.ts +40 -0
- package/dist/lib/work-order/form.d.ts.map +1 -0
- package/dist/lib/work-order/form.js +316 -0
- package/dist/lib/work-order/form.js.map +1 -0
- package/dist/lib/work-order/index.d.ts +20 -0
- package/dist/lib/work-order/index.d.ts.map +1 -0
- package/dist/lib/work-order/index.js +66 -0
- package/dist/lib/work-order/index.js.map +1 -0
- package/dist/middleware/api/audit.d.ts +9 -0
- package/dist/middleware/api/audit.d.ts.map +1 -0
- package/dist/middleware/api/audit.js +38 -0
- package/dist/middleware/api/audit.js.map +1 -0
- package/dist/middleware/api/auth.d.ts +29 -0
- package/dist/middleware/api/auth.d.ts.map +1 -0
- package/dist/middleware/api/auth.js +105 -0
- package/dist/middleware/api/auth.js.map +1 -0
- package/dist/middleware/api/console.d.ts +92 -0
- package/dist/middleware/api/console.d.ts.map +1 -0
- package/dist/middleware/api/console.js +446 -0
- package/dist/middleware/api/console.js.map +1 -0
- package/dist/middleware/api/errors.d.ts +48 -0
- package/dist/middleware/api/errors.d.ts.map +1 -0
- package/dist/middleware/api/errors.js +133 -0
- package/dist/middleware/api/errors.js.map +1 -0
- package/dist/middleware/api/idempotency.d.ts +23 -0
- package/dist/middleware/api/idempotency.d.ts.map +1 -0
- package/dist/middleware/api/idempotency.js +158 -0
- package/dist/middleware/api/idempotency.js.map +1 -0
- package/dist/middleware/api/keys.d.ts +14 -0
- package/dist/middleware/api/keys.d.ts.map +1 -0
- package/dist/middleware/api/keys.js +66 -0
- package/dist/middleware/api/keys.js.map +1 -0
- package/dist/middleware/api/membership.d.ts +32 -0
- package/dist/middleware/api/membership.d.ts.map +1 -0
- package/dist/middleware/api/membership.js +48 -0
- package/dist/middleware/api/membership.js.map +1 -0
- package/dist/middleware/api/oauth.d.ts +28 -0
- package/dist/middleware/api/oauth.d.ts.map +1 -0
- package/dist/middleware/api/oauth.js +109 -0
- package/dist/middleware/api/oauth.js.map +1 -0
- package/dist/middleware/api/rate-limit.d.ts +23 -0
- package/dist/middleware/api/rate-limit.d.ts.map +1 -0
- package/dist/middleware/api/rate-limit.js +70 -0
- package/dist/middleware/api/rate-limit.js.map +1 -0
- package/dist/middleware/api/types.d.ts +92 -0
- package/dist/middleware/api/types.d.ts.map +1 -0
- package/dist/middleware/api/types.js +7 -0
- package/dist/middleware/api/types.js.map +1 -0
- package/dist/middleware/api/wait.d.ts +21 -0
- package/dist/middleware/api/wait.d.ts.map +1 -0
- package/dist/middleware/api/wait.js +85 -0
- package/dist/middleware/api/wait.js.map +1 -0
- package/dist/middleware/capability.d.ts +32 -0
- package/dist/middleware/capability.d.ts.map +1 -0
- package/dist/middleware/capability.js +113 -0
- package/dist/middleware/capability.js.map +1 -0
- package/dist/middleware/database.d.ts +14 -0
- package/dist/middleware/database.d.ts.map +1 -0
- package/dist/middleware/database.js +18 -0
- package/dist/middleware/database.js.map +1 -0
- package/dist/middleware/error-handler.d.ts +13 -0
- package/dist/middleware/error-handler.d.ts.map +1 -0
- package/dist/middleware/error-handler.js +127 -0
- package/dist/middleware/error-handler.js.map +1 -0
- package/dist/middleware/observability.d.ts +32 -0
- package/dist/middleware/observability.d.ts.map +1 -0
- package/dist/middleware/observability.js +134 -0
- package/dist/middleware/observability.js.map +1 -0
- package/dist/middleware/rate-limit.d.ts +16 -0
- package/dist/middleware/rate-limit.d.ts.map +1 -0
- package/dist/middleware/rate-limit.js +56 -0
- package/dist/middleware/rate-limit.js.map +1 -0
- package/dist/middleware/ucan-auth.d.ts +39 -0
- package/dist/middleware/ucan-auth.d.ts.map +1 -0
- package/dist/middleware/ucan-auth.js +278 -0
- package/dist/middleware/ucan-auth.js.map +1 -0
- package/dist/networks.d.ts +34 -0
- package/dist/networks.d.ts.map +1 -0
- package/dist/networks.js +49 -0
- package/dist/networks.js.map +1 -0
- package/dist/oracle.d.ts +193 -0
- package/dist/oracle.d.ts.map +1 -0
- package/dist/oracle.js +245 -0
- package/dist/oracle.js.map +1 -0
- package/dist/routes/health.d.ts +16 -0
- package/dist/routes/health.d.ts.map +1 -0
- package/dist/routes/health.js +29 -0
- package/dist/routes/health.js.map +1 -0
- package/dist/routes/v1/admin.d.ts +18 -0
- package/dist/routes/v1/admin.d.ts.map +1 -0
- package/dist/routes/v1/admin.js +101 -0
- package/dist/routes/v1/admin.js.map +1 -0
- package/dist/routes/v1/api/admin-claims.d.ts +14 -0
- package/dist/routes/v1/api/admin-claims.d.ts.map +1 -0
- package/dist/routes/v1/api/admin-claims.js +82 -0
- package/dist/routes/v1/api/admin-claims.js.map +1 -0
- package/dist/routes/v1/api/admin-facilitator.d.ts +20 -0
- package/dist/routes/v1/api/admin-facilitator.d.ts.map +1 -0
- package/dist/routes/v1/api/admin-facilitator.js +64 -0
- package/dist/routes/v1/api/admin-facilitator.js.map +1 -0
- package/dist/routes/v1/api/admin.d.ts +9 -0
- package/dist/routes/v1/api/admin.d.ts.map +1 -0
- package/dist/routes/v1/api/admin.js +110 -0
- package/dist/routes/v1/api/admin.js.map +1 -0
- package/dist/routes/v1/api/audit.d.ts +8 -0
- package/dist/routes/v1/api/audit.d.ts.map +1 -0
- package/dist/routes/v1/api/audit.js +56 -0
- package/dist/routes/v1/api/audit.js.map +1 -0
- package/dist/routes/v1/api/batch.d.ts +17 -0
- package/dist/routes/v1/api/batch.d.ts.map +1 -0
- package/dist/routes/v1/api/batch.js +192 -0
- package/dist/routes/v1/api/batch.js.map +1 -0
- package/dist/routes/v1/api/claims-read.d.ts +43 -0
- package/dist/routes/v1/api/claims-read.d.ts.map +1 -0
- package/dist/routes/v1/api/claims-read.js +123 -0
- package/dist/routes/v1/api/claims-read.js.map +1 -0
- package/dist/routes/v1/api/claims.d.ts +131 -0
- package/dist/routes/v1/api/claims.d.ts.map +1 -0
- package/dist/routes/v1/api/claims.js +407 -0
- package/dist/routes/v1/api/claims.js.map +1 -0
- package/dist/routes/v1/api/collections-link.d.ts +14 -0
- package/dist/routes/v1/api/collections-link.d.ts.map +1 -0
- package/dist/routes/v1/api/collections-link.js +97 -0
- package/dist/routes/v1/api/collections-link.js.map +1 -0
- package/dist/routes/v1/api/export.d.ts +48 -0
- package/dist/routes/v1/api/export.d.ts.map +1 -0
- package/dist/routes/v1/api/export.js +251 -0
- package/dist/routes/v1/api/export.js.map +1 -0
- package/dist/routes/v1/api/index.d.ts +16 -0
- package/dist/routes/v1/api/index.d.ts.map +1 -0
- package/dist/routes/v1/api/index.js +68 -0
- package/dist/routes/v1/api/index.js.map +1 -0
- package/dist/routes/v1/api/keys.d.ts +9 -0
- package/dist/routes/v1/api/keys.d.ts.map +1 -0
- package/dist/routes/v1/api/keys.js +95 -0
- package/dist/routes/v1/api/keys.js.map +1 -0
- package/dist/routes/v1/api/me.d.ts +21 -0
- package/dist/routes/v1/api/me.d.ts.map +1 -0
- package/dist/routes/v1/api/me.js +122 -0
- package/dist/routes/v1/api/me.js.map +1 -0
- package/dist/routes/v1/api/members.d.ts +17 -0
- package/dist/routes/v1/api/members.d.ts.map +1 -0
- package/dist/routes/v1/api/members.js +406 -0
- package/dist/routes/v1/api/members.js.map +1 -0
- package/dist/routes/v1/api/meta.d.ts +12 -0
- package/dist/routes/v1/api/meta.d.ts.map +1 -0
- package/dist/routes/v1/api/meta.js +59 -0
- package/dist/routes/v1/api/meta.js.map +1 -0
- package/dist/routes/v1/api/openapi.gen.d.ts +2 -0
- package/dist/routes/v1/api/openapi.gen.d.ts.map +1 -0
- package/dist/routes/v1/api/openapi.gen.js +7 -0
- package/dist/routes/v1/api/openapi.gen.js.map +1 -0
- package/dist/routes/v1/api/protocols.d.ts +22 -0
- package/dist/routes/v1/api/protocols.d.ts.map +1 -0
- package/dist/routes/v1/api/protocols.js +153 -0
- package/dist/routes/v1/api/protocols.js.map +1 -0
- package/dist/routes/v1/api/review-billing.d.ts +18 -0
- package/dist/routes/v1/api/review-billing.d.ts.map +1 -0
- package/dist/routes/v1/api/review-billing.js +196 -0
- package/dist/routes/v1/api/review-billing.js.map +1 -0
- package/dist/routes/v1/api/review.d.ts +30 -0
- package/dist/routes/v1/api/review.d.ts.map +1 -0
- package/dist/routes/v1/api/review.js +302 -0
- package/dist/routes/v1/api/review.js.map +1 -0
- package/dist/routes/v1/api/sources.d.ts +10 -0
- package/dist/routes/v1/api/sources.d.ts.map +1 -0
- package/dist/routes/v1/api/sources.js +293 -0
- package/dist/routes/v1/api/sources.js.map +1 -0
- package/dist/routes/v1/api/uploads.d.ts +37 -0
- package/dist/routes/v1/api/uploads.d.ts.map +1 -0
- package/dist/routes/v1/api/uploads.js +414 -0
- package/dist/routes/v1/api/uploads.js.map +1 -0
- package/dist/routes/v1/api/views.d.ts +18 -0
- package/dist/routes/v1/api/views.d.ts.map +1 -0
- package/dist/routes/v1/api/views.js +95 -0
- package/dist/routes/v1/api/views.js.map +1 -0
- package/dist/routes/v1/api/webhooks.d.ts +14 -0
- package/dist/routes/v1/api/webhooks.d.ts.map +1 -0
- package/dist/routes/v1/api/webhooks.js +282 -0
- package/dist/routes/v1/api/webhooks.js.map +1 -0
- package/dist/routes/v1/api/work-orders.d.ts +45 -0
- package/dist/routes/v1/api/work-orders.d.ts.map +1 -0
- package/dist/routes/v1/api/work-orders.js +171 -0
- package/dist/routes/v1/api/work-orders.js.map +1 -0
- package/dist/routes/v1/claims.d.ts +21 -0
- package/dist/routes/v1/claims.d.ts.map +1 -0
- package/dist/routes/v1/claims.js +153 -0
- package/dist/routes/v1/claims.js.map +1 -0
- package/dist/routes/v1/collections.d.ts +45 -0
- package/dist/routes/v1/collections.d.ts.map +1 -0
- package/dist/routes/v1/collections.js +201 -0
- package/dist/routes/v1/collections.js.map +1 -0
- package/dist/routes/v1/index.d.ts +13 -0
- package/dist/routes/v1/index.d.ts.map +1 -0
- package/dist/routes/v1/index.js +41 -0
- package/dist/routes/v1/index.js.map +1 -0
- package/dist/routes/v1/info.d.ts +14 -0
- package/dist/routes/v1/info.d.ts.map +1 -0
- package/dist/routes/v1/info.js +75 -0
- package/dist/routes/v1/info.js.map +1 -0
- package/dist/routes/v1/mcp/index.d.ts +33 -0
- package/dist/routes/v1/mcp/index.d.ts.map +1 -0
- package/dist/routes/v1/mcp/index.js +252 -0
- package/dist/routes/v1/mcp/index.js.map +1 -0
- package/dist/routes/v1/mcp/oauth.d.ts +27 -0
- package/dist/routes/v1/mcp/oauth.d.ts.map +1 -0
- package/dist/routes/v1/mcp/oauth.js +500 -0
- package/dist/routes/v1/mcp/oauth.js.map +1 -0
- package/dist/routes/v1/mcp/tools.d.ts +71 -0
- package/dist/routes/v1/mcp/tools.d.ts.map +1 -0
- package/dist/routes/v1/mcp/tools.js +432 -0
- package/dist/routes/v1/mcp/tools.js.map +1 -0
- package/dist/routes/v1/mcp/ui.d.ts +45 -0
- package/dist/routes/v1/mcp/ui.d.ts.map +1 -0
- package/dist/routes/v1/mcp/ui.js +454 -0
- package/dist/routes/v1/mcp/ui.js.map +1 -0
- package/dist/routes/v1/oauth.d.ts +29 -0
- package/dist/routes/v1/oauth.d.ts.map +1 -0
- package/dist/routes/v1/oauth.js +256 -0
- package/dist/routes/v1/oauth.js.map +1 -0
- package/dist/routes/v1/reviewers.d.ts +22 -0
- package/dist/routes/v1/reviewers.d.ts.map +1 -0
- package/dist/routes/v1/reviewers.js +165 -0
- package/dist/routes/v1/reviewers.js.map +1 -0
- package/dist/routes/v1/reviews.d.ts +38 -0
- package/dist/routes/v1/reviews.d.ts.map +1 -0
- package/dist/routes/v1/reviews.js +234 -0
- package/dist/routes/v1/reviews.js.map +1 -0
- package/dist/routes/v1/shared.d.ts +586 -0
- package/dist/routes/v1/shared.d.ts.map +1 -0
- package/dist/routes/v1/shared.js +229 -0
- package/dist/routes/v1/shared.js.map +1 -0
- package/dist/routes/well-known.d.ts +15 -0
- package/dist/routes/well-known.d.ts.map +1 -0
- package/dist/routes/well-known.js +35 -0
- package/dist/routes/well-known.js.map +1 -0
- package/dist/runtime.d.ts +100 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +144 -0
- package/dist/runtime.js.map +1 -0
- package/dist/testing/fake-tools.d.ts +104 -0
- package/dist/testing/fake-tools.d.ts.map +1 -0
- package/dist/testing/fake-tools.js +213 -0
- package/dist/testing/fake-tools.js.map +1 -0
- package/dist/testing/index.d.ts +54 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +104 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/samples.d.ts +70 -0
- package/dist/testing/samples.d.ts.map +1 -0
- package/dist/testing/samples.js +92 -0
- package/dist/testing/samples.js.map +1 -0
- package/dist/workflows/claim-ingest.d.ts +250 -0
- package/dist/workflows/claim-ingest.d.ts.map +1 -0
- package/dist/workflows/claim-ingest.js +1020 -0
- package/dist/workflows/claim-ingest.js.map +1 -0
- package/dist/workflows/claim-source.d.ts +25 -0
- package/dist/workflows/claim-source.d.ts.map +1 -0
- package/dist/workflows/claim-source.js +107 -0
- package/dist/workflows/claim-source.js.map +1 -0
- package/dist/workflows/review-complete.d.ts +82 -0
- package/dist/workflows/review-complete.d.ts.map +1 -0
- package/dist/workflows/review-complete.js +455 -0
- package/dist/workflows/review-complete.js.map +1 -0
- package/dist/workflows/steps.d.ts +125 -0
- package/dist/workflows/steps.d.ts.map +1 -0
- package/dist/workflows/steps.js +325 -0
- package/dist/workflows/steps.js.map +1 -0
- package/docs/api.md +2595 -0
- package/docs/guide.md +1525 -0
- package/migrations/0000_init.sql +108 -0
- package/migrations/0001_review_attestation.sql +1 -0
- package/migrations/0002_decisions_facts.sql +1 -0
- package/migrations/0003_api_lane.sql +171 -0
- package/migrations/0004_api_v1_1.sql +19 -0
- package/migrations/0005_member_notify.sql +3 -0
- package/migrations/0006_source_collections.sql +16 -0
- package/migrations/0007_api_settlement.sql +27 -0
- package/migrations/0008_review_extend.sql +1 -0
- package/migrations/0009_card_refunds.sql +4 -0
- package/migrations/0010_even_scorpion.sql +16 -0
- package/migrations/0011_mcp_oauth.sql +27 -0
- package/migrations/0012_mcp_standing.sql +21 -0
- package/migrations/0013_unknown_krista_starr.sql +2 -0
- package/migrations/0014_last_carnage.sql +14 -0
- package/migrations/0015_company_authority.sql +26 -0
- package/migrations/0016_owner_only_links.sql +6 -0
- package/migrations/0017_organisations.sql +35 -0
- package/migrations/0018_remove_app_signed.sql +4 -0
- package/migrations/0019_submitted_via.sql +2 -0
- package/migrations/0020_drop_decision_to_pay.sql +4 -0
- package/migrations/0021_manual_erase.sql +25 -0
- package/migrations/0022_errored_facts.sql +1 -0
- package/migrations/0023_review_billing.sql +20 -0
- package/migrations/0024_pending_task_details.sql +1 -0
- package/migrations/meta/0000_snapshot.json +707 -0
- package/migrations/meta/0001_snapshot.json +714 -0
- package/migrations/meta/0002_snapshot.json +721 -0
- package/migrations/meta/0003_snapshot.json +1845 -0
- package/migrations/meta/0004_snapshot.json +1969 -0
- package/migrations/meta/0005_snapshot.json +1991 -0
- package/migrations/meta/0006_snapshot.json +2097 -0
- package/migrations/meta/0007_snapshot.json +2128 -0
- package/migrations/meta/0008_snapshot.json +2133 -0
- package/migrations/meta/0009_snapshot.json +2161 -0
- package/migrations/meta/0010_snapshot.json +2265 -0
- package/migrations/meta/0011_snapshot.json +2448 -0
- package/migrations/meta/0012_snapshot.json +2577 -0
- package/migrations/meta/0013_snapshot.json +2594 -0
- package/migrations/meta/0014_snapshot.json +2602 -0
- package/migrations/meta/0015_snapshot.json +2778 -0
- package/migrations/meta/0016_snapshot.json +2778 -0
- package/migrations/meta/0017_snapshot.json +2792 -0
- package/migrations/meta/0018_snapshot.json +2778 -0
- package/migrations/meta/0019_snapshot.json +2792 -0
- package/migrations/meta/0020_snapshot.json +2785 -0
- package/migrations/meta/0021_snapshot.json +2762 -0
- package/migrations/meta/0022_snapshot.json +2769 -0
- package/migrations/meta/0023_snapshot.json +2900 -0
- package/migrations/meta/0024_snapshot.json +2907 -0
- package/migrations/meta/_journal.json +181 -0
- package/openapi/decision-api.yaml +12204 -0
- package/package.json +121 -4
- package/skills/README.md +19 -0
- package/skills/add-openhands-support/SKILL.md +113 -0
- package/skills/create-collection/SKILL.md +199 -0
- package/skills/create-collection/reference/claims-stack.md +106 -0
- package/skills/create-collection/reference/collection.md +111 -0
- package/skills/create-oracle/SKILL.md +400 -0
- package/skills/create-rubric/SKILL.md +130 -0
- package/skills/create-rubric/reference/format-cheatsheet.md +186 -0
- package/skills/create-rubric/templates/claim-form.example.json +60 -0
- package/skills/decision-api-client/SKILL.md +236 -0
- package/skills/decision-api-oracle/SKILL.md +336 -0
- package/skills/publish-protocol/SKILL.md +151 -0
- package/skills/publish-protocol/reference/publishing.md +116 -0
- package/skills/reference/engine-contract.md +222 -0
- package/skills/write-facts/SKILL.md +221 -0
- package/skills/write-facts/reference/examples/http-vendor.ts +88 -0
- package/skills/write-facts/reference/examples/price-matches-agreement.ts +67 -0
- package/skills/write-facts/reference/facts-api.md +232 -0
- package/templates/project/.dev.vars.example +93 -0
- package/templates/project/.editorconfig +9 -0
- package/templates/project/CLAUDE.md +45 -0
- package/templates/project/README.md +199 -0
- package/templates/project/biome.json +37 -0
- package/templates/project/gitignore +29 -0
- package/templates/project/package.json +32 -0
- package/templates/project/src/facts/index.ts +19 -0
- package/templates/project/src/index.ts +25 -0
- package/templates/project/test/api-lane.test.ts +57 -0
- package/templates/project/test/facts.test.ts +14 -0
- package/templates/project/tsconfig.json +25 -0
- package/templates/project/vitest.config.ts +13 -0
- package/templates/project/wrangler.jsonc +446 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The claim list both lanes share (Go Prod §4.2, contracts v1.2): `GET /v1/api/claims` — a source's
|
|
3
|
+
* API claims plus its linked collections' chain claims — and the operator's `GET /v1/api/admin/claims`
|
|
4
|
+
* — every source's and every watched collection's. One builder, so the two cannot page differently.
|
|
5
|
+
*
|
|
6
|
+
* ONE keyset stream: a `UNION ALL` of the API branch (`api_claims`, whose ledger row may not exist
|
|
7
|
+
* yet — the list must still show it `queued`) and the chain branch (`claim_ingests` rows of lane
|
|
8
|
+
* `chain` whose collection has a protocol — what `claimRecordsFor` can show, so a page is never
|
|
9
|
+
* shorter than its ids). The branches are disjoint (an API claim's ledger row is lane `api`). The
|
|
10
|
+
* time is the record's own `createdAt` — an API claim's `receivedAt`, a chain claim's ledger
|
|
11
|
+
* `createdAt` — so the cursor is the shared (time, claimId) pair: one position in the merged order,
|
|
12
|
+
* never one per lane. Every filter is pushed into both branches, so each still rides its index.
|
|
13
|
+
*
|
|
14
|
+
* D1 binds at most 100 parameters per statement, so nothing here binds one per list element: a
|
|
15
|
+
* source's linked collections are a subquery on `api_source_collections`, and `nb.protocols` is ONE
|
|
16
|
+
* JSON parameter read through `json_each` (in each branch). The statement binds ~25 parameters
|
|
17
|
+
* whatever the number of links or protocols.
|
|
18
|
+
*/
|
|
19
|
+
import type { ClaimRecord, ListClaimsQuery } from "../../contracts/index.js";
|
|
20
|
+
import type { Database } from "../../db/client.js";
|
|
21
|
+
/** Which claims a list may show. A null branch is left out of the stream entirely. */
|
|
22
|
+
export interface ClaimScope {
|
|
23
|
+
/** API claims: of one source, or (no `sourceId`) of every source. */
|
|
24
|
+
api: {
|
|
25
|
+
sourceId?: string;
|
|
26
|
+
} | null;
|
|
27
|
+
/**
|
|
28
|
+
* Chain claims: of the collections linked to `linkedTo` (a source — every live link: only the
|
|
29
|
+
* re-check's positive drop hides one, never a stale `verifiedAt`), or of every watched one; `collectionId` narrows either to one collection.
|
|
30
|
+
*/
|
|
31
|
+
chain: {
|
|
32
|
+
linkedTo?: string;
|
|
33
|
+
collectionId?: string;
|
|
34
|
+
} | null;
|
|
35
|
+
/** A console member's `nb.protocols` over both branches; null = every protocol. */
|
|
36
|
+
protocols: readonly string[] | null;
|
|
37
|
+
/** Stamped on the chain records' `sourceId` (a source reading its linked collections). */
|
|
38
|
+
sourceId?: string;
|
|
39
|
+
}
|
|
40
|
+
export declare function claimPage(db: Database, q: ListClaimsQuery, scope: ClaimScope): Promise<{
|
|
41
|
+
items: ClaimRecord[];
|
|
42
|
+
nextCursor: string | null;
|
|
43
|
+
}>;
|
|
44
|
+
//# sourceMappingURL=claim-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim-list.d.ts","sourceRoot":"","sources":["../../../src/lib/api-lane/claim-list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAWhD,sFAAsF;AACtF,MAAM,WAAW,UAAU;IACzB,qEAAqE;IACrE,GAAG,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAClC;;;OAGG;IACH,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3D,mFAAmF;IACnF,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IACpC,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,SAAS,CAC7B,EAAE,EAAE,QAAQ,EACZ,CAAC,EAAE,eAAe,EAClB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC;IAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CA8F9D"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The claim list both lanes share (Go Prod §4.2, contracts v1.2): `GET /v1/api/claims` — a source's
|
|
3
|
+
* API claims plus its linked collections' chain claims — and the operator's `GET /v1/api/admin/claims`
|
|
4
|
+
* — every source's and every watched collection's. One builder, so the two cannot page differently.
|
|
5
|
+
*
|
|
6
|
+
* ONE keyset stream: a `UNION ALL` of the API branch (`api_claims`, whose ledger row may not exist
|
|
7
|
+
* yet — the list must still show it `queued`) and the chain branch (`claim_ingests` rows of lane
|
|
8
|
+
* `chain` whose collection has a protocol — what `claimRecordsFor` can show, so a page is never
|
|
9
|
+
* shorter than its ids). The branches are disjoint (an API claim's ledger row is lane `api`). The
|
|
10
|
+
* time is the record's own `createdAt` — an API claim's `receivedAt`, a chain claim's ledger
|
|
11
|
+
* `createdAt` — so the cursor is the shared (time, claimId) pair: one position in the merged order,
|
|
12
|
+
* never one per lane. Every filter is pushed into both branches, so each still rides its index.
|
|
13
|
+
*
|
|
14
|
+
* D1 binds at most 100 parameters per statement, so nothing here binds one per list element: a
|
|
15
|
+
* source's linked collections are a subquery on `api_source_collections`, and `nb.protocols` is ONE
|
|
16
|
+
* JSON parameter read through `json_each` (in each branch). The statement binds ~25 parameters
|
|
17
|
+
* whatever the number of links or protocols.
|
|
18
|
+
*/
|
|
19
|
+
import { and, eq, gte, inArray, isNotNull, isNull, lt, or, sql } from "drizzle-orm";
|
|
20
|
+
import { unionAll } from "drizzle-orm/sqlite-core";
|
|
21
|
+
import { apiClaims, apiSourceCollections, claimIngests, decisions, watchedCollections, } from "../../db/schema.js";
|
|
22
|
+
import { decodeCursor, encodeCursor } from "../cursor.js";
|
|
23
|
+
import { claimRecordsFor } from "./record.js";
|
|
24
|
+
export async function claimPage(db, q, scope) {
|
|
25
|
+
const after = q.cursor ? decodeCursor(q.cursor) : null;
|
|
26
|
+
// The filters every branch shares, over that branch's own protocol / time / id columns.
|
|
27
|
+
const shared = (protocol, time, id) => [
|
|
28
|
+
// One JSON parameter, not one per protocol (the header's parameter bound).
|
|
29
|
+
scope.protocols
|
|
30
|
+
? sql `${protocol} in (select value from json_each(${JSON.stringify(scope.protocols)}))`
|
|
31
|
+
: undefined,
|
|
32
|
+
q.protocol ? eq(protocol, q.protocol) : undefined,
|
|
33
|
+
// The record's status, not the ledger's: a missing or `skipped` ingest reads as `queued`
|
|
34
|
+
// (record.ts), so the filter must find those too.
|
|
35
|
+
q.status === "queued"
|
|
36
|
+
? or(isNull(claimIngests.status), inArray(claimIngests.status, ["queued", "skipped"]))
|
|
37
|
+
: q.status
|
|
38
|
+
? eq(claimIngests.status, q.status)
|
|
39
|
+
: undefined,
|
|
40
|
+
q.decision ? eq(decisions.status, q.decision) : undefined,
|
|
41
|
+
q.verdict ? eq(decisions.verdict, q.verdict) : undefined,
|
|
42
|
+
// `since` inclusive, `until` exclusive: consecutive windows never count a claim twice.
|
|
43
|
+
q.since ? gte(time, new Date(q.since)) : undefined,
|
|
44
|
+
q.until ? lt(time, new Date(q.until)) : undefined,
|
|
45
|
+
after
|
|
46
|
+
? or(lt(time, after.createdAt), and(eq(time, after.createdAt), lt(id, after.claimId)))
|
|
47
|
+
: undefined,
|
|
48
|
+
].filter((w) => w !== undefined);
|
|
49
|
+
const api = scope.api
|
|
50
|
+
? db
|
|
51
|
+
.select({
|
|
52
|
+
id: sql `${apiClaims.claimId}`.as("id"),
|
|
53
|
+
at: sql `${apiClaims.receivedAt}`.as("at"),
|
|
54
|
+
})
|
|
55
|
+
.from(apiClaims)
|
|
56
|
+
.leftJoin(claimIngests, eq(claimIngests.claimId, apiClaims.claimId))
|
|
57
|
+
.leftJoin(decisions, eq(decisions.claimId, apiClaims.claimId))
|
|
58
|
+
.where(and(scope.api.sourceId ? eq(apiClaims.sourceId, scope.api.sourceId) : undefined, ...shared(apiClaims.protocolDid, apiClaims.receivedAt, apiClaims.claimId)))
|
|
59
|
+
: null;
|
|
60
|
+
const chain = scope.chain
|
|
61
|
+
? db
|
|
62
|
+
.select({
|
|
63
|
+
id: sql `${claimIngests.claimId}`.as("id"),
|
|
64
|
+
at: sql `${claimIngests.createdAt}`.as("at"),
|
|
65
|
+
})
|
|
66
|
+
.from(claimIngests)
|
|
67
|
+
.innerJoin(watchedCollections, eq(watchedCollections.collectionId, claimIngests.collectionId))
|
|
68
|
+
.leftJoin(decisions, eq(decisions.claimId, claimIngests.claimId))
|
|
69
|
+
.where(and(eq(claimIngests.lane, "chain"), isNotNull(watchedCollections.protocolDid), scope.chain.collectionId
|
|
70
|
+
? eq(claimIngests.collectionId, scope.chain.collectionId)
|
|
71
|
+
: undefined, scope.chain.linkedTo
|
|
72
|
+
? inArray(claimIngests.collectionId, db
|
|
73
|
+
.select({ id: apiSourceCollections.collectionId })
|
|
74
|
+
.from(apiSourceCollections)
|
|
75
|
+
.where(eq(apiSourceCollections.sourceId, scope.chain.linkedTo)))
|
|
76
|
+
: undefined, ...shared(watchedCollections.protocolDid, claimIngests.createdAt, claimIngests.claimId)))
|
|
77
|
+
: null;
|
|
78
|
+
const stream = api && chain ? unionAll(api, chain) : (api ?? chain);
|
|
79
|
+
if (!stream)
|
|
80
|
+
return { items: [], nextCursor: null };
|
|
81
|
+
// Ids only, one more than the page to know there is a next one; the records are then built in
|
|
82
|
+
// one read per table (`claimRecordsFor`). Ordered by the result's own aliases — a compound
|
|
83
|
+
// SELECT can order by nothing else.
|
|
84
|
+
const rows = await stream.orderBy(sql `"at" desc`, sql `"id" desc`).limit(q.limit + 1);
|
|
85
|
+
const page = rows.slice(0, q.limit);
|
|
86
|
+
const last = page.at(-1);
|
|
87
|
+
return {
|
|
88
|
+
items: await claimRecordsFor(db, page.map((r) => r.id), { sourceId: scope.sourceId }),
|
|
89
|
+
nextCursor: rows.length > q.limit && last ? encodeCursor(new Date(Number(last.at)), last.id) : null,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=claim-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim-list.js","sourceRoot":"","sources":["../../../src/lib/api-lane/claim-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A source's organisation (company authority D1, D10; ENGINE-CONTRACT "The company link (API
|
|
3
|
+
* sources)"). An organisation IS its on-chain entity, and a source never exists without one: it is
|
|
4
|
+
* the organisation's access to this oracle, created by a current controller of the entity
|
|
5
|
+
* (`companyEntityDid`, set at insert, never changed). Its ROOTS are that entity's CURRENT
|
|
6
|
+
* controllers, read live from Blocksync on every check — uncached, so a removed controller loses the
|
|
7
|
+
* source at once and a new one gains it with nothing from anyone else (G13). There is no personal
|
|
8
|
+
* root: `ownerDid` is only the paying account.
|
|
9
|
+
*
|
|
10
|
+
* The link lives at the ENGINE (its only home): the controller signs a `SourceCompanyLink`, the
|
|
11
|
+
* Console PUTs it there, and `POST /v1/api/sources/:id/company/sync` mirrors what the engine then
|
|
12
|
+
* says. This oracle never verifies a link JWS — the engine's stored state is the authority. A source
|
|
13
|
+
* is `pending-link` until the engine holds a link for its own entity, and takes no claims and no
|
|
14
|
+
* keys until then; a link for ANOTHER entity, or the engine's `disputed`, makes it `disputed`.
|
|
15
|
+
*/
|
|
16
|
+
import type { Database } from "../../db/client.js";
|
|
17
|
+
import { type ApiSource } from "../../db/schema.js";
|
|
18
|
+
import type { CompanyLinkState } from "../engine/types.js";
|
|
19
|
+
import type { BlocksyncDeps } from "../ixo/blocksync/types.js";
|
|
20
|
+
export declare function setEntityControllersForTests(fn: ((entityDid: string) => Promise<string[]>) | null): void;
|
|
21
|
+
/** The entity's current account controllers (Blocksync, uncached; trouble is a 503, never []). */
|
|
22
|
+
export declare function entityControllers(chain: BlocksyncDeps, entityDid: string): Promise<string[]>;
|
|
23
|
+
/** Who administers the source NOW: its entity's current controllers (possibly none). */
|
|
24
|
+
export declare function sourceRoots(chain: BlocksyncDeps, source: Pick<ApiSource, "companyEntityDid">): Promise<string[]>;
|
|
25
|
+
/**
|
|
26
|
+
* A `pending-link` source's id must not reach anyone but its organisation's controllers (owner,
|
|
27
|
+
* 2026-10-10: no squatting on a source before its link lands) — not in a log line, a metric label,
|
|
28
|
+
* an alert or an email. Logs carry this instead: the first 12 hex chars of its sha256.
|
|
29
|
+
*/
|
|
30
|
+
export declare function sourceIdHash(sourceId: string): Promise<string>;
|
|
31
|
+
/**
|
|
32
|
+
* What a log line, a metric or an alert may say about a source: its id once it has EVER been active
|
|
33
|
+
* (its members have seen it then), else only its hash — a `pending-link` source, and a `disputed`
|
|
34
|
+
* one that never went active, are known only to their organisation's controllers.
|
|
35
|
+
*/
|
|
36
|
+
export declare function sourceLogId(source: Pick<ApiSource, "sourceId" | "activatedAt">): Promise<{
|
|
37
|
+
sourceId: string;
|
|
38
|
+
} | {
|
|
39
|
+
sourceIdHash: string;
|
|
40
|
+
}>;
|
|
41
|
+
/**
|
|
42
|
+
* Mirror the engine's answer onto the source; null when the source is gone. ONE statement each,
|
|
43
|
+
* and neither ever writes `pausedReason` — a pause is the operator's or the billing lane's, not the
|
|
44
|
+
* link's:
|
|
45
|
+
* - `linked` for the source's own entity ⇒ `active`, or `paused` while the ROW (read in the same
|
|
46
|
+
* statement, so a pause racing the sync stands) has a reason — with the link, its `issuedAt`
|
|
47
|
+
* and `payeeField`, and `activatedAt` the first time — unless the stored link is
|
|
48
|
+
* NEWER: a stale read (two syncs racing, an engine replica behind) never rolls a link back;
|
|
49
|
+
* - `linked` for another entity, or `disputed` ⇒ `disputed`: no authority, so no `payeeField`, no
|
|
50
|
+
* claims, no keys — the organisation deletes the source and adds the oracle again;
|
|
51
|
+
* - `unlinked` ⇒ nothing changes. A pending source stays pending; a linked one reading it is the
|
|
52
|
+
* engine's transient state (a replica behind, a link being replaced), never a reason to drop
|
|
53
|
+
* a live source — the route logs and alerts it.
|
|
54
|
+
*/
|
|
55
|
+
export declare function mirrorCompanyLink(db: Database, source: ApiSource, link: CompanyLinkState): Promise<ApiSource | null>;
|
|
56
|
+
//# sourceMappingURL=company.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"company.d.ts","sourceRoot":"","sources":["../../../src/lib/api-lane/company.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,KAAK,SAAS,EAAc,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAI5D,wBAAgB,4BAA4B,CAC1C,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,GACpD,IAAI,CAEN;AAED,kGAAkG;AAClG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAI5F;AAED,wFAAwF;AACxF,wBAAsB,WAAW,CAC/B,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,GAC1C,OAAO,CAAC,MAAM,EAAE,CAAC,CAInB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEpE;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,aAAa,CAAC,GAClD,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAI1D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAqC3B"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A source's organisation (company authority D1, D10; ENGINE-CONTRACT "The company link (API
|
|
3
|
+
* sources)"). An organisation IS its on-chain entity, and a source never exists without one: it is
|
|
4
|
+
* the organisation's access to this oracle, created by a current controller of the entity
|
|
5
|
+
* (`companyEntityDid`, set at insert, never changed). Its ROOTS are that entity's CURRENT
|
|
6
|
+
* controllers, read live from Blocksync on every check — uncached, so a removed controller loses the
|
|
7
|
+
* source at once and a new one gains it with nothing from anyone else (G13). There is no personal
|
|
8
|
+
* root: `ownerDid` is only the paying account.
|
|
9
|
+
*
|
|
10
|
+
* The link lives at the ENGINE (its only home): the controller signs a `SourceCompanyLink`, the
|
|
11
|
+
* Console PUTs it there, and `POST /v1/api/sources/:id/company/sync` mirrors what the engine then
|
|
12
|
+
* says. This oracle never verifies a link JWS — the engine's stored state is the authority. A source
|
|
13
|
+
* is `pending-link` until the engine holds a link for its own entity, and takes no claims and no
|
|
14
|
+
* keys until then; a link for ANOTHER entity, or the engine's `disputed`, makes it `disputed`.
|
|
15
|
+
*/
|
|
16
|
+
import { and, eq, isNull, lte, or, sql } from "drizzle-orm";
|
|
17
|
+
import { apiSources } from "../../db/schema.js";
|
|
18
|
+
import { sha256Hex } from "../hash.js";
|
|
19
|
+
import { getEntityControllers } from "../ixo/blocksync/index.js";
|
|
20
|
+
/** Where the tests install the chain's answer (it belongs to the read it fakes). */
|
|
21
|
+
let controllersForTests = null;
|
|
22
|
+
export function setEntityControllersForTests(fn) {
|
|
23
|
+
controllersForTests = fn;
|
|
24
|
+
}
|
|
25
|
+
/** The entity's current account controllers (Blocksync, uncached; trouble is a 503, never []). */
|
|
26
|
+
export function entityControllers(chain, entityDid) {
|
|
27
|
+
return controllersForTests
|
|
28
|
+
? controllersForTests(entityDid)
|
|
29
|
+
: getEntityControllers(chain, entityDid);
|
|
30
|
+
}
|
|
31
|
+
/** Who administers the source NOW: its entity's current controllers (possibly none). */
|
|
32
|
+
export async function sourceRoots(chain, source) {
|
|
33
|
+
// Null only on a row the D10 migration should have deleted: nobody administers it.
|
|
34
|
+
if (!source.companyEntityDid)
|
|
35
|
+
return [];
|
|
36
|
+
return entityControllers(chain, source.companyEntityDid);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* A `pending-link` source's id must not reach anyone but its organisation's controllers (owner,
|
|
40
|
+
* 2026-10-10: no squatting on a source before its link lands) — not in a log line, a metric label,
|
|
41
|
+
* an alert or an email. Logs carry this instead: the first 12 hex chars of its sha256.
|
|
42
|
+
*/
|
|
43
|
+
export async function sourceIdHash(sourceId) {
|
|
44
|
+
return (await sha256Hex(sourceId)).slice(0, 12);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* What a log line, a metric or an alert may say about a source: its id once it has EVER been active
|
|
48
|
+
* (its members have seen it then), else only its hash — a `pending-link` source, and a `disputed`
|
|
49
|
+
* one that never went active, are known only to their organisation's controllers.
|
|
50
|
+
*/
|
|
51
|
+
export async function sourceLogId(source) {
|
|
52
|
+
return source.activatedAt === null
|
|
53
|
+
? { sourceIdHash: await sourceIdHash(source.sourceId) }
|
|
54
|
+
: { sourceId: source.sourceId };
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Mirror the engine's answer onto the source; null when the source is gone. ONE statement each,
|
|
58
|
+
* and neither ever writes `pausedReason` — a pause is the operator's or the billing lane's, not the
|
|
59
|
+
* link's:
|
|
60
|
+
* - `linked` for the source's own entity ⇒ `active`, or `paused` while the ROW (read in the same
|
|
61
|
+
* statement, so a pause racing the sync stands) has a reason — with the link, its `issuedAt`
|
|
62
|
+
* and `payeeField`, and `activatedAt` the first time — unless the stored link is
|
|
63
|
+
* NEWER: a stale read (two syncs racing, an engine replica behind) never rolls a link back;
|
|
64
|
+
* - `linked` for another entity, or `disputed` ⇒ `disputed`: no authority, so no `payeeField`, no
|
|
65
|
+
* claims, no keys — the organisation deletes the source and adds the oracle again;
|
|
66
|
+
* - `unlinked` ⇒ nothing changes. A pending source stays pending; a linked one reading it is the
|
|
67
|
+
* engine's transient state (a replica behind, a link being replaced), never a reason to drop
|
|
68
|
+
* a live source — the route logs and alerts it.
|
|
69
|
+
*/
|
|
70
|
+
export async function mirrorCompanyLink(db, source, link) {
|
|
71
|
+
const { sourceId } = source;
|
|
72
|
+
const current = async () => (await db.query.apiSources.findFirst({ where: eq(apiSources.sourceId, sourceId) })) ?? null;
|
|
73
|
+
if (link.state === "unlinked")
|
|
74
|
+
return current();
|
|
75
|
+
if (link.state !== "linked" || link.entityDid !== source.companyEntityDid) {
|
|
76
|
+
const [row] = await db
|
|
77
|
+
.update(apiSources)
|
|
78
|
+
.set({
|
|
79
|
+
status: "disputed",
|
|
80
|
+
companyLink: null,
|
|
81
|
+
companyLinkIssuedAt: null,
|
|
82
|
+
payeeField: null,
|
|
83
|
+
})
|
|
84
|
+
.where(eq(apiSources.sourceId, sourceId))
|
|
85
|
+
.returning();
|
|
86
|
+
return row ?? null;
|
|
87
|
+
}
|
|
88
|
+
const issuedAt = new Date(link.issuedAt);
|
|
89
|
+
const [row] = await db
|
|
90
|
+
.update(apiSources)
|
|
91
|
+
.set({
|
|
92
|
+
status: sql `CASE WHEN ${apiSources.pausedReason} IS NOT NULL THEN 'paused' ELSE 'active' END`,
|
|
93
|
+
activatedAt: sql `COALESCE(${apiSources.activatedAt}, ${Date.now()})`,
|
|
94
|
+
companyLink: link.link,
|
|
95
|
+
companyLinkIssuedAt: issuedAt,
|
|
96
|
+
payeeField: link.payeeField,
|
|
97
|
+
})
|
|
98
|
+
.where(and(eq(apiSources.sourceId, sourceId), or(isNull(apiSources.companyLinkIssuedAt), lte(apiSources.companyLinkIssuedAt, issuedAt))))
|
|
99
|
+
.returning();
|
|
100
|
+
// Stale (or gone): what is stored stands.
|
|
101
|
+
return row ?? current();
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=company.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"company.js","sourceRoot":"","sources":["../../../src/lib/api-lane/company.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A claim's timeline as `GET …/events` shows it (Go Prod §4.2, contracts v1.2), for either lane.
|
|
3
|
+
*
|
|
4
|
+
* An API claim's is its `api_events` rows, written as things happened (notify.ts, webhooks.ts,
|
|
5
|
+
* review.ts, retention.ts). A chain claim has no such rows — the chain lane never wrote a timeline —
|
|
6
|
+
* so its events are DERIVED from the timestamps the ledger already keeps: `claim_ingests`,
|
|
7
|
+
* `decisions`, `claim_reviews`. Derived ids come from `eventIdFor` (ids.ts) over the claim and the
|
|
8
|
+
* event type, so the same step reads back with the same id on every call. Like the API lane's,
|
|
9
|
+
* `data` is names, codes and digests — never an answer.
|
|
10
|
+
*/
|
|
11
|
+
import { type ClaimEvent } from "../../contracts/index.js";
|
|
12
|
+
import type { Database } from "../../db/client.js";
|
|
13
|
+
/** An API claim's stored timeline, oldest first (`evt_<ULID>`: id order is time order). */
|
|
14
|
+
export declare function apiClaimEvents(db: Database, claimId: string): Promise<ClaimEvent[]>;
|
|
15
|
+
/**
|
|
16
|
+
* A chain claim's timeline, derived (see header), oldest first — empty for an id the ledger does
|
|
17
|
+
* not hold. The FULL history, unlike notify's "what the current state owes": a folded claim reads
|
|
18
|
+
* `review_required` → `review_answered` → `folded`, its row now holding only the folded decision.
|
|
19
|
+
*/
|
|
20
|
+
export declare function chainClaimEvents(db: Database, claimId: string): Promise<ClaimEvent[]>;
|
|
21
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/lib/api-lane/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,KAAK,UAAU,EAAkB,MAAM,iBAAiB,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAMhD,2FAA2F;AAC3F,wBAAsB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAezF;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CA4E3F"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A claim's timeline as `GET …/events` shows it (Go Prod §4.2, contracts v1.2), for either lane.
|
|
3
|
+
*
|
|
4
|
+
* An API claim's is its `api_events` rows, written as things happened (notify.ts, webhooks.ts,
|
|
5
|
+
* review.ts, retention.ts). A chain claim has no such rows — the chain lane never wrote a timeline —
|
|
6
|
+
* so its events are DERIVED from the timestamps the ledger already keeps: `claim_ingests`,
|
|
7
|
+
* `decisions`, `claim_reviews`. Derived ids come from `eventIdFor` (ids.ts) over the claim and the
|
|
8
|
+
* event type, so the same step reads back with the same id on every call. Like the API lane's,
|
|
9
|
+
* `data` is names, codes and digests — never an answer.
|
|
10
|
+
*/
|
|
11
|
+
import { asc, eq } from "drizzle-orm";
|
|
12
|
+
import { ClaimEventType } from "../../contracts/index.js";
|
|
13
|
+
import { apiEvents, claimIngests, claimReviews, decisions } from "../../db/schema.js";
|
|
14
|
+
import { eventIdFor } from "./ids.js";
|
|
15
|
+
import { factCost } from "./notify.js";
|
|
16
|
+
import { claimErrorCode, decisionFailure } from "./record.js";
|
|
17
|
+
/** An API claim's stored timeline, oldest first (`evt_<ULID>`: id order is time order). */
|
|
18
|
+
export async function apiClaimEvents(db, claimId) {
|
|
19
|
+
const rows = await db.query.apiEvents.findMany({
|
|
20
|
+
where: eq(apiEvents.claimId, claimId),
|
|
21
|
+
orderBy: asc(apiEvents.eventId),
|
|
22
|
+
columns: { eventId: true, type: true, data: true, createdAt: true },
|
|
23
|
+
});
|
|
24
|
+
// The timeline writers store the wire's type names already. A type the published enum does not
|
|
25
|
+
// know — a later writer's, read by an older build — is dropped rather than failing the whole
|
|
26
|
+
// timeline. `data` is theirs as written: names, codes, durations, never an answer.
|
|
27
|
+
return rows.flatMap((r) => {
|
|
28
|
+
const type = ClaimEventType.safeParse(r.type);
|
|
29
|
+
return type.success
|
|
30
|
+
? [{ id: r.eventId, type: type.data, at: r.createdAt.toISOString(), data: r.data ?? null }]
|
|
31
|
+
: [];
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* A chain claim's timeline, derived (see header), oldest first — empty for an id the ledger does
|
|
36
|
+
* not hold. The FULL history, unlike notify's "what the current state owes": a folded claim reads
|
|
37
|
+
* `review_required` → `review_answered` → `folded`, its row now holding only the folded decision.
|
|
38
|
+
*/
|
|
39
|
+
export async function chainClaimEvents(db, claimId) {
|
|
40
|
+
const [ingest, decision, review] = await Promise.all([
|
|
41
|
+
db.query.claimIngests.findFirst({ where: eq(claimIngests.claimId, claimId) }),
|
|
42
|
+
db.query.decisions.findFirst({ where: eq(decisions.claimId, claimId) }),
|
|
43
|
+
db.query.claimReviews.findFirst({
|
|
44
|
+
where: eq(claimReviews.claimId, claimId),
|
|
45
|
+
columns: { answeredAt: true, foldedAt: true },
|
|
46
|
+
}),
|
|
47
|
+
]);
|
|
48
|
+
if (!ingest)
|
|
49
|
+
return [];
|
|
50
|
+
const steps = [];
|
|
51
|
+
const step = (type, at, data = null) => steps.push({ type, at, data });
|
|
52
|
+
step("accepted", ingest.createdAt, { collectionId: ingest.collectionId });
|
|
53
|
+
const failed = decisionFailure(decision?.status);
|
|
54
|
+
if (decision && failed) {
|
|
55
|
+
step("failed", decision.createdAt, { code: failed });
|
|
56
|
+
}
|
|
57
|
+
else if (decision) {
|
|
58
|
+
// Stamped a millisecond before the decision it fed, as notify.ts does.
|
|
59
|
+
if (decision.facts) {
|
|
60
|
+
step("facts_produced", new Date(decision.createdAt.getTime() - 1), {
|
|
61
|
+
ext: Object.keys(decision.facts.ext),
|
|
62
|
+
ai: Object.keys(decision.facts.ai),
|
|
63
|
+
...factCost(decision.facts),
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
const summary = {
|
|
67
|
+
status: decision.status,
|
|
68
|
+
verdict: decision.verdict,
|
|
69
|
+
resultDigest: decision.resultDigest,
|
|
70
|
+
receiptCid: decision.receiptCid,
|
|
71
|
+
};
|
|
72
|
+
if (review || decision.status === "pending_review") {
|
|
73
|
+
// The row's `createdAt` is the PRE-review decision; after a fold its body is the folded one,
|
|
74
|
+
// so the tasks asked are known only while they are still pending.
|
|
75
|
+
step("review_required", decision.createdAt, decision.status === "pending_review"
|
|
76
|
+
? { pendingTasks: decision.decision?.pendingTasks ?? [] }
|
|
77
|
+
: null);
|
|
78
|
+
if (review)
|
|
79
|
+
step("review_answered", review.answeredAt);
|
|
80
|
+
if (review?.foldedAt) {
|
|
81
|
+
step(decision.status === "unusable" ? "unusable" : "folded", review.foldedAt, summary);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
step(decision.status === "unusable" ? "unusable" : "decided", decision.createdAt, summary);
|
|
86
|
+
}
|
|
87
|
+
// The chain's own step: the `MsgEvaluateClaim` landed — ours, or someone else's first. The
|
|
88
|
+
// row's last write is the delivery (the fold precedes it), so `updatedAt` is when.
|
|
89
|
+
if (decision.chainStatus === "submitted" || decision.chainStatus === "owner_submitted") {
|
|
90
|
+
step("chain_submitted", decision.updatedAt, {
|
|
91
|
+
chainStatus: decision.chainStatus,
|
|
92
|
+
txHash: decision.txHash,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
if (ingest.status === "failed" && !failed) {
|
|
97
|
+
// The code, never the stored message (it can quote answer values — record.ts).
|
|
98
|
+
step("failed", ingest.updatedAt, {
|
|
99
|
+
code: claimErrorCode(ingest.error, decision?.status ?? null),
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
// Stable: equal instants keep the order above, which is the order they happened in.
|
|
103
|
+
steps.sort((a, b) => a.at.getTime() - b.at.getTime());
|
|
104
|
+
return Promise.all(steps.map(async (s) => ({
|
|
105
|
+
id: await eventIdFor(`${claimId}:chain:${s.type}`, s.at),
|
|
106
|
+
type: s.type,
|
|
107
|
+
at: s.at.toISOString(),
|
|
108
|
+
data: s.data,
|
|
109
|
+
})));
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/lib/api-lane/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The API lane's ids (Go Prod §4.6, §6.1): the scope id every reused table carries in its
|
|
3
|
+
* `collectionId`, and the `<prefix>_<ULID>` ids of the lane's own rows.
|
|
4
|
+
*
|
|
5
|
+
* Event ids are DERIVED, not drawn: a workflow step that writes a timeline row or enqueues a webhook
|
|
6
|
+
* may run again (a retry, an operator rerun), and the id is what makes the second write a no-op —
|
|
7
|
+
* `api_events` PK and the `wh:<eventId>:<target>` delivery key both `onConflictDoNothing`. The ULID
|
|
8
|
+
* time part is the event's own instant (so the timeline still sorts by id) and the rest is a hash
|
|
9
|
+
* of what the event is about.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* A path with every lane id (`src_…`, `apc_…`, `upl_…`) masked as `:id` — what a log line or Sentry
|
|
13
|
+
* may carry of a concrete `/v1/api` path, where a pending source's id can sit (D10).
|
|
14
|
+
*/
|
|
15
|
+
export declare const maskIds: (path: string) => string;
|
|
16
|
+
/** `api:<sourceId>:<protocolDid>` — an API claim's `collectionId` everywhere the chain lane's goes. */
|
|
17
|
+
export declare function apiScopeId(sourceId: string, protocolDid: string): string;
|
|
18
|
+
/** The scope id back into its parts; null for anything that is not one (a chain collection). */
|
|
19
|
+
export declare function parseApiScopeId(scopeId: string): {
|
|
20
|
+
sourceId: string;
|
|
21
|
+
protocolDid: string;
|
|
22
|
+
} | null;
|
|
23
|
+
/**
|
|
24
|
+
* Where a row's bytes live in `API_UPLOADS`: `uploads/<sourceId>/<ULID>` for a file a claim may
|
|
25
|
+
* name, `exports/<sourceId>/<ULID>` for a data export. Both are `api_uploads` rows the files route
|
|
26
|
+
* serves alike; only the prefix tells them apart, and a claim may bind an `uploads/` key alone — an
|
|
27
|
+
* export (the source's whole personal data) must never become a claim's attachment.
|
|
28
|
+
*/
|
|
29
|
+
export declare const UPLOAD_KEY_PREFIX = "uploads/";
|
|
30
|
+
export declare const EXPORT_KEY_PREFIX = "exports/";
|
|
31
|
+
/** A fresh `<prefix>_<ULID>`. */
|
|
32
|
+
export declare function newId(prefix: string, at?: Date): string;
|
|
33
|
+
/**
|
|
34
|
+
* The `evt_<ULID>` of one event: `at` is when it happened (the decision's `createdAt`, the fold's
|
|
35
|
+
* `foldedAt`, …) and `key` names it (`<claimId>:decided:<resultDigest>`) — the same event always
|
|
36
|
+
* gets the same id, a different one never does.
|
|
37
|
+
*/
|
|
38
|
+
export declare function eventIdFor(key: string, at: Date): Promise<string>;
|
|
39
|
+
//# sourceMappingURL=ids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../../src/lib/api-lane/ids.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH;;;GAGG;AACH,eAAO,MAAM,OAAO,SAAU,MAAM,KAAG,MACwB,CAAC;AAEhE,uGAAuG;AACvG,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,gGAAgG;AAChG,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMjG;AAyBD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAC5C,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAE5C,iCAAiC;AACjC,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAE,IAAiB,GAAG,MAAM,CAEnE;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAMvE"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The API lane's ids (Go Prod §4.6, §6.1): the scope id every reused table carries in its
|
|
3
|
+
* `collectionId`, and the `<prefix>_<ULID>` ids of the lane's own rows.
|
|
4
|
+
*
|
|
5
|
+
* Event ids are DERIVED, not drawn: a workflow step that writes a timeline row or enqueues a webhook
|
|
6
|
+
* may run again (a retry, an operator rerun), and the id is what makes the second write a no-op —
|
|
7
|
+
* `api_events` PK and the `wh:<eventId>:<target>` delivery key both `onConflictDoNothing`. The ULID
|
|
8
|
+
* time part is the event's own instant (so the timeline still sorts by id) and the rest is a hash
|
|
9
|
+
* of what the event is about.
|
|
10
|
+
*/
|
|
11
|
+
import { sha256Hex } from "../hash.js";
|
|
12
|
+
const SCOPE_PREFIX = "api:";
|
|
13
|
+
/** Crockford base32, the ULID alphabet. */
|
|
14
|
+
const CROCKFORD = "0123456789ABCDEFGHJKMNPQRSTVWXYZ";
|
|
15
|
+
/**
|
|
16
|
+
* A path with every lane id (`src_…`, `apc_…`, `upl_…`) masked as `:id` — what a log line or Sentry
|
|
17
|
+
* may carry of a concrete `/v1/api` path, where a pending source's id can sit (D10).
|
|
18
|
+
*/
|
|
19
|
+
export const maskIds = (path) => path.replace(/\/[a-z]{2,5}_[0-9A-Za-z]{8,}(?=\/|$)/g, "/:id");
|
|
20
|
+
/** `api:<sourceId>:<protocolDid>` — an API claim's `collectionId` everywhere the chain lane's goes. */
|
|
21
|
+
export function apiScopeId(sourceId, protocolDid) {
|
|
22
|
+
return `${SCOPE_PREFIX}${sourceId}:${protocolDid}`;
|
|
23
|
+
}
|
|
24
|
+
/** The scope id back into its parts; null for anything that is not one (a chain collection). */
|
|
25
|
+
export function parseApiScopeId(scopeId) {
|
|
26
|
+
if (!scopeId.startsWith(SCOPE_PREFIX))
|
|
27
|
+
return null;
|
|
28
|
+
const rest = scopeId.slice(SCOPE_PREFIX.length);
|
|
29
|
+
const colon = rest.indexOf(":");
|
|
30
|
+
if (colon <= 0)
|
|
31
|
+
return null;
|
|
32
|
+
return { sourceId: rest.slice(0, colon), protocolDid: rest.slice(colon + 1) };
|
|
33
|
+
}
|
|
34
|
+
/** 48 bits of time + 80 bits of entropy (from `tail`), 26 Crockford chars. */
|
|
35
|
+
function encodeUlid(ms, tail) {
|
|
36
|
+
let out = "";
|
|
37
|
+
let time = ms;
|
|
38
|
+
for (let i = 0; i < 10; i++) {
|
|
39
|
+
out = CROCKFORD[time % 32] + out;
|
|
40
|
+
time = Math.floor(time / 32);
|
|
41
|
+
}
|
|
42
|
+
// 80 bits = 16 chars of 5 bits, read big-endian off the first 10 bytes.
|
|
43
|
+
let bits = 0;
|
|
44
|
+
let value = 0;
|
|
45
|
+
for (let i = 0; i < 10; i++) {
|
|
46
|
+
value = (value << 8) | tail[i];
|
|
47
|
+
bits += 8;
|
|
48
|
+
while (bits >= 5) {
|
|
49
|
+
bits -= 5;
|
|
50
|
+
out += CROCKFORD[(value >> bits) & 31];
|
|
51
|
+
}
|
|
52
|
+
value &= (1 << bits) - 1;
|
|
53
|
+
}
|
|
54
|
+
return out;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Where a row's bytes live in `API_UPLOADS`: `uploads/<sourceId>/<ULID>` for a file a claim may
|
|
58
|
+
* name, `exports/<sourceId>/<ULID>` for a data export. Both are `api_uploads` rows the files route
|
|
59
|
+
* serves alike; only the prefix tells them apart, and a claim may bind an `uploads/` key alone — an
|
|
60
|
+
* export (the source's whole personal data) must never become a claim's attachment.
|
|
61
|
+
*/
|
|
62
|
+
export const UPLOAD_KEY_PREFIX = "uploads/";
|
|
63
|
+
export const EXPORT_KEY_PREFIX = "exports/";
|
|
64
|
+
/** A fresh `<prefix>_<ULID>`. */
|
|
65
|
+
export function newId(prefix, at = new Date()) {
|
|
66
|
+
return `${prefix}_${encodeUlid(at.getTime(), crypto.getRandomValues(new Uint8Array(10)))}`;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* The `evt_<ULID>` of one event: `at` is when it happened (the decision's `createdAt`, the fold's
|
|
70
|
+
* `foldedAt`, …) and `key` names it (`<claimId>:decided:<resultDigest>`) — the same event always
|
|
71
|
+
* gets the same id, a different one never does.
|
|
72
|
+
*/
|
|
73
|
+
export async function eventIdFor(key, at) {
|
|
74
|
+
const hex = await sha256Hex(key);
|
|
75
|
+
const tail = Uint8Array.from(hex.slice(0, 20).match(/../g), (h) => Number.parseInt(h, 16));
|
|
76
|
+
return `evt_${encodeUlid(at.getTime(), tail)}`;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../../src/lib/api-lane/ids.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Decision API lane's core (Go Prod §4.6, §6, §7): what the router (S3), the payment gate and
|
|
3
|
+
* its reconcile job (S4) call into. The HTTP surface lives in `routes/v1/api/`; this is the durable
|
|
4
|
+
* side — accept, the claim source, the record, the timeline, pauses.
|
|
5
|
+
*/
|
|
6
|
+
export { claimContent, recordApiClaims, startApiClaims } from "./accept.js";
|
|
7
|
+
export { apiScopeId, eventIdFor, newId, parseApiScopeId } from "./ids.js";
|
|
8
|
+
export { pauseSource, resumeCreditPausedSources } from "./pause.js";
|
|
9
|
+
export { CLAIM_ERROR_MESSAGES, claimErrorCode, claimRecord, claimRecordsFor } from "./record.js";
|
|
10
|
+
export { eraseClaimBody, sweepHousekeeping } from "./retention.js";
|
|
11
|
+
export { type AnswerReviewResult, answerApiReview } from "./review.js";
|
|
12
|
+
export { apiSource, bodyDigest } from "./source.js";
|
|
13
|
+
export { recordEvents, type TimelineEvent } from "./timeline.js";
|
|
14
|
+
export { decryptWebhookSecret, encryptWebhookSecret, newWebhookSecret, signatureHeader, verifySignature, } from "./webhook-crypto.js";
|
|
15
|
+
export { deliverDueWebhooks, emitBalanceLow, emitPaymentSettled, redeliverWebhook, sendTestEvent, type WebhookDeps, } from "./webhooks.js";
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/api-lane/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,KAAK,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC"}
|