@ixo/openhands-sdk 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +246 -2
- package/dist/cjs/board.d.ts +20 -0
- package/dist/cjs/board.d.ts.map +1 -0
- package/dist/cjs/board.js +60 -0
- package/dist/cjs/board.js.map +1 -0
- package/dist/cjs/campaign/badges.d.ts +30 -0
- package/dist/cjs/campaign/badges.d.ts.map +1 -0
- package/dist/cjs/campaign/badges.js +69 -0
- package/dist/cjs/campaign/badges.js.map +1 -0
- package/dist/cjs/campaign/bands.d.ts +161 -0
- package/dist/cjs/campaign/bands.d.ts.map +1 -0
- package/dist/cjs/campaign/bands.js +186 -0
- package/dist/cjs/campaign/bands.js.map +1 -0
- package/dist/cjs/campaign/campaign.d.ts +50 -0
- package/dist/cjs/campaign/campaign.d.ts.map +1 -0
- package/dist/cjs/campaign/campaign.js +183 -0
- package/dist/cjs/campaign/campaign.js.map +1 -0
- package/dist/cjs/campaign/campaigns.d.ts +2 -0
- package/dist/cjs/campaign/campaigns.d.ts.map +1 -0
- package/dist/cjs/campaign/campaigns.js +37 -0
- package/dist/cjs/campaign/campaigns.js.map +1 -0
- package/dist/cjs/campaign/cleanable.d.ts +13 -0
- package/dist/cjs/campaign/cleanable.d.ts.map +1 -0
- package/dist/cjs/campaign/cleanable.js +6 -0
- package/dist/cjs/campaign/cleanable.js.map +1 -0
- package/dist/cjs/campaign/cleanup.d.ts +78 -0
- package/dist/cjs/campaign/cleanup.d.ts.map +1 -0
- package/dist/cjs/campaign/cleanup.js +132 -0
- package/dist/cjs/campaign/cleanup.js.map +1 -0
- package/dist/cjs/campaign/commit.d.ts +39 -0
- package/dist/cjs/campaign/commit.d.ts.map +1 -0
- package/dist/cjs/campaign/commit.js +43 -0
- package/dist/cjs/campaign/commit.js.map +1 -0
- package/dist/cjs/campaign/field.d.ts +50 -0
- package/dist/cjs/campaign/field.d.ts.map +1 -0
- package/dist/cjs/campaign/field.js +94 -0
- package/dist/cjs/campaign/field.js.map +1 -0
- package/dist/cjs/campaign/fold.d.ts +227 -0
- package/dist/cjs/campaign/fold.d.ts.map +1 -0
- package/dist/cjs/campaign/fold.js +459 -0
- package/dist/cjs/campaign/fold.js.map +1 -0
- package/dist/cjs/campaign/funding.d.ts +153 -0
- package/dist/cjs/campaign/funding.d.ts.map +1 -0
- package/dist/cjs/campaign/funding.js +168 -0
- package/dist/cjs/campaign/funding.js.map +1 -0
- package/dist/cjs/campaign/landing.d.ts +20 -0
- package/dist/cjs/campaign/landing.d.ts.map +1 -0
- package/dist/cjs/campaign/landing.js +54 -0
- package/dist/cjs/campaign/landing.js.map +1 -0
- package/dist/cjs/campaign/pledges.d.ts +237 -0
- package/dist/cjs/campaign/pledges.d.ts.map +1 -0
- package/dist/cjs/campaign/pledges.js +235 -0
- package/dist/cjs/campaign/pledges.js.map +1 -0
- package/dist/cjs/campaign/pledgesChain.d.ts +58 -0
- package/dist/cjs/campaign/pledgesChain.d.ts.map +1 -0
- package/dist/cjs/campaign/pledgesChain.js +102 -0
- package/dist/cjs/campaign/pledgesChain.js.map +1 -0
- package/dist/cjs/campaign/pool.d.ts +137 -0
- package/dist/cjs/campaign/pool.d.ts.map +1 -0
- package/dist/cjs/campaign/pool.js +237 -0
- package/dist/cjs/campaign/pool.js.map +1 -0
- package/dist/cjs/campaign/record.d.ts +115 -0
- package/dist/cjs/campaign/record.d.ts.map +1 -0
- package/dist/cjs/campaign/record.js +291 -0
- package/dist/cjs/campaign/record.js.map +1 -0
- package/dist/cjs/campaign/rule.d.ts +311 -0
- package/dist/cjs/campaign/rule.d.ts.map +1 -0
- package/dist/cjs/campaign/rule.js +210 -0
- package/dist/cjs/campaign/rule.js.map +1 -0
- package/dist/cjs/campaign/spot.d.ts +37 -0
- package/dist/cjs/campaign/spot.d.ts.map +1 -0
- package/dist/cjs/campaign/spot.js +170 -0
- package/dist/cjs/campaign/spot.js.map +1 -0
- package/dist/cjs/campaign/spots.d.ts +437 -0
- package/dist/cjs/campaign/spots.d.ts.map +1 -0
- package/dist/cjs/campaign/spots.js +790 -0
- package/dist/cjs/campaign/spots.js.map +1 -0
- package/dist/cjs/campaign/standings.d.ts +236 -0
- package/dist/cjs/campaign/standings.d.ts.map +1 -0
- package/dist/cjs/campaign/standings.js +372 -0
- package/dist/cjs/campaign/standings.js.map +1 -0
- package/dist/cjs/campaign/treasurySends.d.ts +116 -0
- package/dist/cjs/campaign/treasurySends.d.ts.map +1 -0
- package/dist/cjs/campaign/treasurySends.js +198 -0
- package/dist/cjs/campaign/treasurySends.js.map +1 -0
- package/dist/cjs/campaign.d.ts +29 -0
- package/dist/cjs/campaign.d.ts.map +1 -0
- package/dist/cjs/campaign.js +44 -0
- package/dist/cjs/campaign.js.map +1 -0
- package/dist/cjs/chain/account.d.ts +47 -0
- package/dist/cjs/chain/account.d.ts.map +1 -0
- package/dist/cjs/chain/account.js +196 -0
- package/dist/cjs/chain/account.js.map +1 -0
- package/dist/cjs/chain/accountProof.d.ts +135 -0
- package/dist/cjs/chain/accountProof.d.ts.map +1 -0
- package/dist/cjs/chain/accountProof.js +199 -0
- package/dist/cjs/chain/accountProof.js.map +1 -0
- package/dist/cjs/chain/allowance.d.ts +17 -0
- package/dist/cjs/chain/allowance.d.ts.map +1 -0
- package/dist/cjs/chain/allowance.js +81 -0
- package/dist/cjs/chain/allowance.js.map +1 -0
- package/dist/cjs/chain/allowanceRead.d.ts +2 -0
- package/dist/cjs/chain/allowanceRead.d.ts.map +1 -0
- package/dist/cjs/chain/allowanceRead.js +59 -0
- package/dist/cjs/chain/allowanceRead.js.map +1 -0
- package/dist/cjs/chain/ask.d.ts +211 -0
- package/dist/cjs/chain/ask.d.ts.map +1 -0
- package/dist/cjs/chain/ask.js +559 -0
- package/dist/cjs/chain/ask.js.map +1 -0
- package/dist/cjs/chain/bridge.d.ts +50 -0
- package/dist/cjs/chain/bridge.d.ts.map +1 -0
- package/dist/cjs/chain/bridge.js +82 -0
- package/dist/cjs/chain/bridge.js.map +1 -0
- package/dist/cjs/chain/broadcast.d.ts +40 -0
- package/dist/cjs/chain/broadcast.d.ts.map +1 -0
- package/dist/cjs/chain/broadcast.js +189 -0
- package/dist/cjs/chain/broadcast.js.map +1 -0
- package/dist/cjs/chain/delegate.d.ts +154 -0
- package/dist/cjs/chain/delegate.d.ts.map +1 -0
- package/dist/cjs/chain/delegate.js +245 -0
- package/dist/cjs/chain/delegate.js.map +1 -0
- package/dist/cjs/chain/encoding.d.ts +7 -0
- package/dist/cjs/chain/encoding.d.ts.map +1 -0
- package/dist/cjs/chain/encoding.js +29 -0
- package/dist/cjs/chain/encoding.js.map +1 -0
- package/dist/cjs/chain/env.d.ts +50 -0
- package/dist/cjs/chain/env.d.ts.map +1 -0
- package/dist/cjs/chain/env.js +89 -0
- package/dist/cjs/chain/env.js.map +1 -0
- package/dist/cjs/chain/gate.d.ts +12 -0
- package/dist/cjs/chain/gate.d.ts.map +1 -0
- package/dist/cjs/chain/gate.js +55 -0
- package/dist/cjs/chain/gate.js.map +1 -0
- package/dist/cjs/chain/grantPending.d.ts +31 -0
- package/dist/cjs/chain/grantPending.d.ts.map +1 -0
- package/dist/cjs/chain/grantPending.js +56 -0
- package/dist/cjs/chain/grantPending.js.map +1 -0
- package/dist/cjs/chain/guest.d.ts +97 -0
- package/dist/cjs/chain/guest.d.ts.map +1 -0
- package/dist/cjs/chain/guest.js +211 -0
- package/dist/cjs/chain/guest.js.map +1 -0
- package/dist/cjs/chain/iid.d.ts +26 -0
- package/dist/cjs/chain/iid.d.ts.map +1 -0
- package/dist/cjs/chain/iid.js +71 -0
- package/dist/cjs/chain/iid.js.map +1 -0
- package/dist/cjs/chain/money.d.ts +48 -0
- package/dist/cjs/chain/money.d.ts.map +1 -0
- package/dist/cjs/chain/money.js +72 -0
- package/dist/cjs/chain/money.js.map +1 -0
- package/dist/cjs/chain/oracle.d.ts +24 -0
- package/dist/cjs/chain/oracle.d.ts.map +1 -0
- package/dist/cjs/chain/oracle.js +46 -0
- package/dist/cjs/chain/oracle.js.map +1 -0
- package/dist/cjs/chain/pendingTransact.d.ts +31 -0
- package/dist/cjs/chain/pendingTransact.d.ts.map +1 -0
- package/dist/cjs/chain/pendingTransact.js +64 -0
- package/dist/cjs/chain/pendingTransact.js.map +1 -0
- package/dist/cjs/chain/query.d.ts +75 -0
- package/dist/cjs/chain/query.d.ts.map +1 -0
- package/dist/cjs/chain/query.js +171 -0
- package/dist/cjs/chain/query.js.map +1 -0
- package/dist/cjs/chain/send.d.ts +42 -0
- package/dist/cjs/chain/send.d.ts.map +1 -0
- package/dist/cjs/chain/send.js +54 -0
- package/dist/cjs/chain/send.js.map +1 -0
- package/dist/cjs/chain/session.d.ts +109 -0
- package/dist/cjs/chain/session.d.ts.map +1 -0
- package/dist/cjs/chain/session.js +145 -0
- package/dist/cjs/chain/session.js.map +1 -0
- package/dist/cjs/chain/signWith.d.ts +69 -0
- package/dist/cjs/chain/signWith.d.ts.map +1 -0
- package/dist/cjs/chain/signWith.js +277 -0
- package/dist/cjs/chain/signWith.js.map +1 -0
- package/dist/cjs/chain/signer.d.ts +38 -0
- package/dist/cjs/chain/signer.d.ts.map +1 -0
- package/dist/cjs/chain/signer.js +78 -0
- package/dist/cjs/chain/signer.js.map +1 -0
- package/dist/cjs/chain/signx.d.ts +233 -0
- package/dist/cjs/chain/signx.d.ts.map +1 -0
- package/dist/cjs/chain/signx.js +490 -0
- package/dist/cjs/chain/signx.js.map +1 -0
- package/dist/cjs/chain/sponsor.d.ts +2 -0
- package/dist/cjs/chain/sponsor.d.ts.map +1 -0
- package/dist/cjs/chain/sponsor.js +76 -0
- package/dist/cjs/chain/sponsor.js.map +1 -0
- package/dist/cjs/chain/store.d.ts +115 -0
- package/dist/cjs/chain/store.d.ts.map +1 -0
- package/dist/cjs/chain/store.js +212 -0
- package/dist/cjs/chain/store.js.map +1 -0
- package/dist/cjs/chain/subscription.d.ts +73 -0
- package/dist/cjs/chain/subscription.d.ts.map +1 -0
- package/dist/cjs/chain/subscription.js +248 -0
- package/dist/cjs/chain/subscription.js.map +1 -0
- package/dist/cjs/chain/takeBack.d.ts +114 -0
- package/dist/cjs/chain/takeBack.d.ts.map +1 -0
- package/dist/cjs/chain/takeBack.js +190 -0
- package/dist/cjs/chain/takeBack.js.map +1 -0
- package/dist/cjs/chain/union.d.ts +125 -0
- package/dist/cjs/chain/union.d.ts.map +1 -0
- package/dist/cjs/chain/union.js +338 -0
- package/dist/cjs/chain/union.js.map +1 -0
- package/dist/cjs/chain/webauthn.d.ts +22 -0
- package/dist/cjs/chain/webauthn.d.ts.map +1 -0
- package/dist/cjs/chain/webauthn.js +70 -0
- package/dist/cjs/chain/webauthn.js.map +1 -0
- package/dist/cjs/chain.d.ts +35 -0
- package/dist/cjs/chain.d.ts.map +1 -0
- package/dist/cjs/chain.js +119 -0
- package/dist/cjs/chain.js.map +1 -0
- package/dist/cjs/config.d.ts +120 -0
- package/dist/cjs/config.d.ts.map +1 -0
- package/dist/cjs/config.js +128 -0
- package/dist/cjs/config.js.map +1 -0
- package/dist/cjs/data/accept.d.ts +69 -0
- package/dist/cjs/data/accept.d.ts.map +1 -0
- package/dist/cjs/data/accept.js +192 -0
- package/dist/cjs/data/accept.js.map +1 -0
- package/dist/cjs/data/agent.d.ts +87 -0
- package/dist/cjs/data/agent.d.ts.map +1 -0
- package/dist/cjs/data/agent.js +112 -0
- package/dist/cjs/data/agent.js.map +1 -0
- package/dist/cjs/data/askFilter.d.ts +45 -0
- package/dist/cjs/data/askFilter.d.ts.map +1 -0
- package/dist/cjs/data/askFilter.js +53 -0
- package/dist/cjs/data/askFilter.js.map +1 -0
- package/dist/cjs/data/authenticators.d.ts +35 -0
- package/dist/cjs/data/authenticators.d.ts.map +1 -0
- package/dist/cjs/data/authenticators.js +76 -0
- package/dist/cjs/data/authenticators.js.map +1 -0
- package/dist/cjs/data/balance.d.ts +39 -0
- package/dist/cjs/data/balance.d.ts.map +1 -0
- package/dist/cjs/data/balance.js +119 -0
- package/dist/cjs/data/balance.js.map +1 -0
- package/dist/cjs/data/board/assemble.d.ts +140 -0
- package/dist/cjs/data/board/assemble.d.ts.map +1 -0
- package/dist/cjs/data/board/assemble.js +556 -0
- package/dist/cjs/data/board/assemble.js.map +1 -0
- package/dist/cjs/data/board/coverage.d.ts +112 -0
- package/dist/cjs/data/board/coverage.d.ts.map +1 -0
- package/dist/cjs/data/board/coverage.js +192 -0
- package/dist/cjs/data/board/coverage.js.map +1 -0
- package/dist/cjs/data/board/facts.d.ts +63 -0
- package/dist/cjs/data/board/facts.d.ts.map +1 -0
- package/dist/cjs/data/board/facts.js +137 -0
- package/dist/cjs/data/board/facts.js.map +1 -0
- package/dist/cjs/data/board/fixtures.d.ts +21 -0
- package/dist/cjs/data/board/fixtures.d.ts.map +1 -0
- package/dist/cjs/data/board/fixtures.js +46 -0
- package/dist/cjs/data/board/fixtures.js.map +1 -0
- package/dist/cjs/data/board/query.d.ts +12 -0
- package/dist/cjs/data/board/query.d.ts.map +1 -0
- package/dist/cjs/data/board/query.js +82 -0
- package/dist/cjs/data/board/query.js.map +1 -0
- package/dist/cjs/data/board/rank.d.ts +22 -0
- package/dist/cjs/data/board/rank.d.ts.map +1 -0
- package/dist/cjs/data/board/rank.js +51 -0
- package/dist/cjs/data/board/rank.js.map +1 -0
- package/dist/cjs/data/board/read.d.ts +102 -0
- package/dist/cjs/data/board/read.d.ts.map +1 -0
- package/dist/cjs/data/board/read.js +211 -0
- package/dist/cjs/data/board/read.js.map +1 -0
- package/dist/cjs/data/board/series.d.ts +50 -0
- package/dist/cjs/data/board/series.d.ts.map +1 -0
- package/dist/cjs/data/board/series.js +161 -0
- package/dist/cjs/data/board/series.js.map +1 -0
- package/dist/cjs/data/board/trust.d.ts +31 -0
- package/dist/cjs/data/board/trust.d.ts.map +1 -0
- package/dist/cjs/data/board/trust.js +53 -0
- package/dist/cjs/data/board/trust.js.map +1 -0
- package/dist/cjs/data/board/types.d.ts +338 -0
- package/dist/cjs/data/board/types.d.ts.map +1 -0
- package/dist/cjs/data/board/types.js +88 -0
- package/dist/cjs/data/board/types.js.map +1 -0
- package/dist/cjs/data/board/url.d.ts +22 -0
- package/dist/cjs/data/board/url.d.ts.map +1 -0
- package/dist/cjs/data/board/url.js +70 -0
- package/dist/cjs/data/board/url.js.map +1 -0
- package/dist/cjs/data/board/words.d.ts +25 -0
- package/dist/cjs/data/board/words.d.ts.map +1 -0
- package/dist/cjs/data/board/words.js +60 -0
- package/dist/cjs/data/board/words.js.map +1 -0
- package/dist/cjs/data/cid.d.ts +49 -0
- package/dist/cjs/data/cid.d.ts.map +1 -0
- package/dist/cjs/data/cid.js +91 -0
- package/dist/cjs/data/cid.js.map +1 -0
- package/dist/cjs/data/concurrency.d.ts +14 -0
- package/dist/cjs/data/concurrency.d.ts.map +1 -0
- package/dist/cjs/data/concurrency.js +32 -0
- package/dist/cjs/data/concurrency.js.map +1 -0
- package/dist/cjs/data/credentials.d.ts +28 -0
- package/dist/cjs/data/credentials.d.ts.map +1 -0
- package/dist/cjs/data/credentials.js +81 -0
- package/dist/cjs/data/credentials.js.map +1 -0
- package/dist/cjs/data/denoms.d.ts +11 -0
- package/dist/cjs/data/denoms.d.ts.map +1 -0
- package/dist/cjs/data/denoms.js +106 -0
- package/dist/cjs/data/denoms.js.map +1 -0
- package/dist/cjs/data/displayNames.d.ts +58 -0
- package/dist/cjs/data/displayNames.d.ts.map +1 -0
- package/dist/cjs/data/displayNames.js +99 -0
- package/dist/cjs/data/displayNames.js.map +1 -0
- package/dist/cjs/data/docPath.d.ts +28 -0
- package/dist/cjs/data/docPath.d.ts.map +1 -0
- package/dist/cjs/data/docPath.js +44 -0
- package/dist/cjs/data/docPath.js.map +1 -0
- package/dist/cjs/data/docUrls.d.ts +38 -0
- package/dist/cjs/data/docUrls.d.ts.map +1 -0
- package/dist/cjs/data/docUrls.js +70 -0
- package/dist/cjs/data/docUrls.js.map +1 -0
- package/dist/cjs/data/docs.d.ts +61 -0
- package/dist/cjs/data/docs.d.ts.map +1 -0
- package/dist/cjs/data/docs.js +199 -0
- package/dist/cjs/data/docs.js.map +1 -0
- package/dist/cjs/data/engine.d.ts +193 -0
- package/dist/cjs/data/engine.d.ts.map +1 -0
- package/dist/cjs/data/engine.js +411 -0
- package/dist/cjs/data/engine.js.map +1 -0
- package/dist/cjs/data/engineUrl.d.ts +19 -0
- package/dist/cjs/data/engineUrl.d.ts.map +1 -0
- package/dist/cjs/data/engineUrl.js +30 -0
- package/dist/cjs/data/engineUrl.js.map +1 -0
- package/dist/cjs/data/envelope.d.ts +69 -0
- package/dist/cjs/data/envelope.d.ts.map +1 -0
- package/dist/cjs/data/envelope.js +77 -0
- package/dist/cjs/data/envelope.js.map +1 -0
- package/dist/cjs/data/format.d.ts +122 -0
- package/dist/cjs/data/format.d.ts.map +1 -0
- package/dist/cjs/data/format.js +272 -0
- package/dist/cjs/data/format.js.map +1 -0
- package/dist/cjs/data/gql.d.ts +56 -0
- package/dist/cjs/data/gql.d.ts.map +1 -0
- package/dist/cjs/data/gql.js +109 -0
- package/dist/cjs/data/gql.js.map +1 -0
- package/dist/cjs/data/granters.d.ts +15 -0
- package/dist/cjs/data/granters.d.ts.map +1 -0
- package/dist/cjs/data/granters.js +76 -0
- package/dist/cjs/data/granters.js.map +1 -0
- package/dist/cjs/data/index.d.ts +18 -0
- package/dist/cjs/data/index.d.ts.map +1 -0
- package/dist/cjs/data/index.js +88 -0
- package/dist/cjs/data/index.js.map +1 -0
- package/dist/cjs/data/install.d.ts +95 -0
- package/dist/cjs/data/install.d.ts.map +1 -0
- package/dist/cjs/data/install.js +123 -0
- package/dist/cjs/data/install.js.map +1 -0
- package/dist/cjs/data/issueMessage.d.ts +20 -0
- package/dist/cjs/data/issueMessage.d.ts.map +1 -0
- package/dist/cjs/data/issueMessage.js +20 -0
- package/dist/cjs/data/issueMessage.js.map +1 -0
- package/dist/cjs/data/linked.d.ts +54 -0
- package/dist/cjs/data/linked.d.ts.map +1 -0
- package/dist/cjs/data/linked.js +142 -0
- package/dist/cjs/data/linked.js.map +1 -0
- package/dist/cjs/data/network.d.ts +21 -0
- package/dist/cjs/data/network.d.ts.map +1 -0
- package/dist/cjs/data/network.js +28 -0
- package/dist/cjs/data/network.js.map +1 -0
- package/dist/cjs/data/openness.d.ts +93 -0
- package/dist/cjs/data/openness.d.ts.map +1 -0
- package/dist/cjs/data/openness.js +145 -0
- package/dist/cjs/data/openness.js.map +1 -0
- package/dist/cjs/data/oracleInfo.d.ts +20 -0
- package/dist/cjs/data/oracleInfo.d.ts.map +1 -0
- package/dist/cjs/data/oracleInfo.js +38 -0
- package/dist/cjs/data/oracleInfo.js.map +1 -0
- package/dist/cjs/data/oracles.d.ts +44 -0
- package/dist/cjs/data/oracles.d.ts.map +1 -0
- package/dist/cjs/data/oracles.js +115 -0
- package/dist/cjs/data/oracles.js.map +1 -0
- package/dist/cjs/data/outbound.d.ts +50 -0
- package/dist/cjs/data/outbound.d.ts.map +1 -0
- package/dist/cjs/data/outbound.js +102 -0
- package/dist/cjs/data/outbound.js.map +1 -0
- package/dist/cjs/data/paged.d.ts +48 -0
- package/dist/cjs/data/paged.d.ts.map +1 -0
- package/dist/cjs/data/paged.js +81 -0
- package/dist/cjs/data/paged.js.map +1 -0
- package/dist/cjs/data/profiles.d.ts +3 -0
- package/dist/cjs/data/profiles.d.ts.map +1 -0
- package/dist/cjs/data/profiles.js +71 -0
- package/dist/cjs/data/profiles.js.map +1 -0
- package/dist/cjs/data/proof.d.ts +93 -0
- package/dist/cjs/data/proof.d.ts.map +1 -0
- package/dist/cjs/data/proof.js +166 -0
- package/dist/cjs/data/proof.js.map +1 -0
- package/dist/cjs/data/queue.d.ts +49 -0
- package/dist/cjs/data/queue.d.ts.map +1 -0
- package/dist/cjs/data/queue.js +118 -0
- package/dist/cjs/data/queue.js.map +1 -0
- package/dist/cjs/data/rates.d.ts +143 -0
- package/dist/cjs/data/rates.d.ts.map +1 -0
- package/dist/cjs/data/rates.js +265 -0
- package/dist/cjs/data/rates.js.map +1 -0
- package/dist/cjs/data/receipt.d.ts +207 -0
- package/dist/cjs/data/receipt.d.ts.map +1 -0
- package/dist/cjs/data/receipt.js +320 -0
- package/dist/cjs/data/receipt.js.map +1 -0
- package/dist/cjs/data/resources.d.ts +30 -0
- package/dist/cjs/data/resources.d.ts.map +1 -0
- package/dist/cjs/data/resources.js +29 -0
- package/dist/cjs/data/resources.js.map +1 -0
- package/dist/cjs/data/sametask.d.ts +35 -0
- package/dist/cjs/data/sametask.d.ts.map +1 -0
- package/dist/cjs/data/sametask.js +45 -0
- package/dist/cjs/data/sametask.js.map +1 -0
- package/dist/cjs/data/shortName.d.ts +52 -0
- package/dist/cjs/data/shortName.d.ts.map +1 -0
- package/dist/cjs/data/shortName.js +122 -0
- package/dist/cjs/data/shortName.js.map +1 -0
- package/dist/cjs/data/threads.d.ts +97 -0
- package/dist/cjs/data/threads.d.ts.map +1 -0
- package/dist/cjs/data/threads.js +214 -0
- package/dist/cjs/data/threads.js.map +1 -0
- package/dist/cjs/data/trace.d.ts +133 -0
- package/dist/cjs/data/trace.d.ts.map +1 -0
- package/dist/cjs/data/trace.js +125 -0
- package/dist/cjs/data/trace.js.map +1 -0
- package/dist/cjs/data/traceWords.d.ts +54 -0
- package/dist/cjs/data/traceWords.d.ts.map +1 -0
- package/dist/cjs/data/traceWords.js +192 -0
- package/dist/cjs/data/traceWords.js.map +1 -0
- package/dist/cjs/data/types.d.ts +50 -0
- package/dist/cjs/data/types.d.ts.map +1 -0
- package/dist/cjs/data/types.js +9 -0
- package/dist/cjs/data/types.js.map +1 -0
- package/dist/cjs/data/verdict.d.ts +37 -0
- package/dist/cjs/data/verdict.d.ts.map +1 -0
- package/dist/cjs/data/verdict.js +57 -0
- package/dist/cjs/data/verdict.js.map +1 -0
- package/dist/cjs/data/work.d.ts +46 -0
- package/dist/cjs/data/work.d.ts.map +1 -0
- package/dist/cjs/data/work.js +105 -0
- package/dist/cjs/data/work.js.map +1 -0
- package/dist/cjs/envRead.d.ts +15 -0
- package/dist/cjs/envRead.d.ts.map +1 -0
- package/dist/cjs/envRead.js +26 -0
- package/dist/cjs/envRead.js.map +1 -0
- package/dist/cjs/geo/box.d.ts +64 -0
- package/dist/cjs/geo/box.d.ts.map +1 -0
- package/dist/cjs/geo/box.js +97 -0
- package/dist/cjs/geo/box.js.map +1 -0
- package/dist/cjs/geo/exif.d.ts +20 -0
- package/dist/cjs/geo/exif.d.ts.map +1 -0
- package/dist/cjs/geo/exif.js +220 -0
- package/dist/cjs/geo/exif.js.map +1 -0
- package/dist/cjs/geo/exifcarry.d.ts +31 -0
- package/dist/cjs/geo/exifcarry.d.ts.map +1 -0
- package/dist/cjs/geo/exifcarry.js +81 -0
- package/dist/cjs/geo/exifcarry.js.map +1 -0
- package/dist/cjs/geo/exifnote.d.ts +86 -0
- package/dist/cjs/geo/exifnote.d.ts.map +1 -0
- package/dist/cjs/geo/exifnote.js +253 -0
- package/dist/cjs/geo/exifnote.js.map +1 -0
- package/dist/cjs/geo/mentions.d.ts +44 -0
- package/dist/cjs/geo/mentions.d.ts.map +1 -0
- package/dist/cjs/geo/mentions.js +199 -0
- package/dist/cjs/geo/mentions.js.map +1 -0
- package/dist/cjs/geo/osm.d.ts +112 -0
- package/dist/cjs/geo/osm.d.ts.map +1 -0
- package/dist/cjs/geo/osm.js +178 -0
- package/dist/cjs/geo/osm.js.map +1 -0
- package/dist/cjs/geo/place.d.ts +51 -0
- package/dist/cjs/geo/place.d.ts.map +1 -0
- package/dist/cjs/geo/place.js +106 -0
- package/dist/cjs/geo/place.js.map +1 -0
- package/dist/cjs/geo/search.d.ts +41 -0
- package/dist/cjs/geo/search.d.ts.map +1 -0
- package/dist/cjs/geo/search.js +187 -0
- package/dist/cjs/geo/search.js.map +1 -0
- package/dist/cjs/geo/sun.d.ts +39 -0
- package/dist/cjs/geo/sun.d.ts.map +1 -0
- package/dist/cjs/geo/sun.js +55 -0
- package/dist/cjs/geo/sun.js.map +1 -0
- package/dist/cjs/geo/tiles.d.ts +89 -0
- package/dist/cjs/geo/tiles.d.ts.map +1 -0
- package/dist/cjs/geo/tiles.js +146 -0
- package/dist/cjs/geo/tiles.js.map +1 -0
- package/dist/cjs/geo.d.ts +20 -0
- package/dist/cjs/geo.d.ts.map +1 -0
- package/dist/cjs/geo.js +35 -0
- package/dist/cjs/geo.js.map +1 -0
- package/dist/cjs/given.d.ts +15 -0
- package/dist/cjs/given.d.ts.map +1 -0
- package/dist/cjs/given.js +25 -0
- package/dist/cjs/given.js.map +1 -0
- package/dist/cjs/network.d.ts +23 -0
- package/dist/cjs/network.d.ts.map +1 -0
- package/dist/cjs/network.js +56 -0
- package/dist/cjs/network.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/protocol.d.ts +40 -0
- package/dist/cjs/protocol.d.ts.map +1 -0
- package/dist/cjs/protocol.js +54 -0
- package/dist/cjs/protocol.js.map +1 -0
- package/dist/cjs/rubric/bridge.d.ts +428 -0
- package/dist/cjs/rubric/bridge.d.ts.map +1 -0
- package/dist/cjs/rubric/bridge.js +917 -0
- package/dist/cjs/rubric/bridge.js.map +1 -0
- package/dist/cjs/rubric/call.d.ts +73 -0
- package/dist/cjs/rubric/call.d.ts.map +1 -0
- package/dist/cjs/rubric/call.js +132 -0
- package/dist/cjs/rubric/call.js.map +1 -0
- package/dist/cjs/rubric/card.d.ts +74 -0
- package/dist/cjs/rubric/card.d.ts.map +1 -0
- package/dist/cjs/rubric/card.js +45 -0
- package/dist/cjs/rubric/card.js.map +1 -0
- package/dist/cjs/rubric/chain.d.ts +44 -0
- package/dist/cjs/rubric/chain.d.ts.map +1 -0
- package/dist/cjs/rubric/chain.js +52 -0
- package/dist/cjs/rubric/chain.js.map +1 -0
- package/dist/cjs/rubric/claimForm.d.ts +142 -0
- package/dist/cjs/rubric/claimForm.d.ts.map +1 -0
- package/dist/cjs/rubric/claimForm.js +112 -0
- package/dist/cjs/rubric/claimForm.js.map +1 -0
- package/dist/cjs/rubric/claimFormResource.d.ts +34 -0
- package/dist/cjs/rubric/claimFormResource.d.ts.map +1 -0
- package/dist/cjs/rubric/claimFormResource.js +38 -0
- package/dist/cjs/rubric/claimFormResource.js.map +1 -0
- package/dist/cjs/rubric/compose.d.ts +99 -0
- package/dist/cjs/rubric/compose.d.ts.map +1 -0
- package/dist/cjs/rubric/compose.js +229 -0
- package/dist/cjs/rubric/compose.js.map +1 -0
- package/dist/cjs/rubric/confidence.d.ts +81 -0
- package/dist/cjs/rubric/confidence.d.ts.map +1 -0
- package/dist/cjs/rubric/confidence.js +87 -0
- package/dist/cjs/rubric/confidence.js.map +1 -0
- package/dist/cjs/rubric/draft.d.ts +224 -0
- package/dist/cjs/rubric/draft.d.ts.map +1 -0
- package/dist/cjs/rubric/draft.js +214 -0
- package/dist/cjs/rubric/draft.js.map +1 -0
- package/dist/cjs/rubric/gateMet.d.ts +46 -0
- package/dist/cjs/rubric/gateMet.d.ts.map +1 -0
- package/dist/cjs/rubric/gateMet.js +110 -0
- package/dist/cjs/rubric/gateMet.js.map +1 -0
- package/dist/cjs/rubric/leg.d.ts +106 -0
- package/dist/cjs/rubric/leg.d.ts.map +1 -0
- package/dist/cjs/rubric/leg.js +147 -0
- package/dist/cjs/rubric/leg.js.map +1 -0
- package/dist/cjs/rubric/publish.d.ts +39 -0
- package/dist/cjs/rubric/publish.d.ts.map +1 -0
- package/dist/cjs/rubric/publish.js +34 -0
- package/dist/cjs/rubric/publish.js.map +1 -0
- package/dist/cjs/rubric/reanchor.d.ts +79 -0
- package/dist/cjs/rubric/reanchor.d.ts.map +1 -0
- package/dist/cjs/rubric/reanchor.js +154 -0
- package/dist/cjs/rubric/reanchor.js.map +1 -0
- package/dist/cjs/rubric/receipt.d.ts +96 -0
- package/dist/cjs/rubric/receipt.d.ts.map +1 -0
- package/dist/cjs/rubric/receipt.js +28 -0
- package/dist/cjs/rubric/receipt.js.map +1 -0
- package/dist/cjs/rubric/roundTrips.d.ts +17 -0
- package/dist/cjs/rubric/roundTrips.d.ts.map +1 -0
- package/dist/cjs/rubric/roundTrips.js +24 -0
- package/dist/cjs/rubric/roundTrips.js.map +1 -0
- package/dist/cjs/rubric/terms.d.ts +611 -0
- package/dist/cjs/rubric/terms.d.ts.map +1 -0
- package/dist/cjs/rubric/terms.js +777 -0
- package/dist/cjs/rubric/terms.js.map +1 -0
- package/dist/cjs/rubric/wants.d.ts +36 -0
- package/dist/cjs/rubric/wants.d.ts.map +1 -0
- package/dist/cjs/rubric/wants.js +57 -0
- package/dist/cjs/rubric/wants.js.map +1 -0
- package/dist/cjs/rubric.d.ts +30 -0
- package/dist/cjs/rubric.d.ts.map +1 -0
- package/dist/cjs/rubric.js +71 -0
- package/dist/cjs/rubric.js.map +1 -0
- package/dist/cjs/udid/base58.d.ts +8 -0
- package/dist/cjs/udid/base58.d.ts.map +1 -0
- package/dist/cjs/udid/base58.js +57 -0
- package/dist/cjs/udid/base58.js.map +1 -0
- package/dist/cjs/udid/canonical.d.ts +17 -0
- package/dist/cjs/udid/canonical.d.ts.map +1 -0
- package/dist/cjs/udid/canonical.js +34 -0
- package/dist/cjs/udid/canonical.js.map +1 -0
- package/dist/cjs/udid/cid.d.ts +22 -0
- package/dist/cjs/udid/cid.d.ts.map +1 -0
- package/dist/cjs/udid/cid.js +54 -0
- package/dist/cjs/udid/cid.js.map +1 -0
- package/dist/cjs/udid/key.d.ts +41 -0
- package/dist/cjs/udid/key.d.ts.map +1 -0
- package/dist/cjs/udid/key.js +64 -0
- package/dist/cjs/udid/key.js.map +1 -0
- package/dist/cjs/udid/resolve.d.ts +56 -0
- package/dist/cjs/udid/resolve.d.ts.map +1 -0
- package/dist/cjs/udid/resolve.js +168 -0
- package/dist/cjs/udid/resolve.js.map +1 -0
- package/dist/cjs/udid/schema.d.ts +150 -0
- package/dist/cjs/udid/schema.d.ts.map +1 -0
- package/dist/cjs/udid/schema.js +155 -0
- package/dist/cjs/udid/schema.js.map +1 -0
- package/dist/cjs/udid/verify.d.ts +35 -0
- package/dist/cjs/udid/verify.d.ts.map +1 -0
- package/dist/cjs/udid/verify.js +97 -0
- package/dist/cjs/udid/verify.js.map +1 -0
- package/dist/cjs/udid/wrapper.d.ts +90 -0
- package/dist/cjs/udid/wrapper.d.ts.map +1 -0
- package/dist/cjs/udid/wrapper.js +41 -0
- package/dist/cjs/udid/wrapper.js.map +1 -0
- package/dist/cjs/udid.d.ts +17 -0
- package/dist/cjs/udid.d.ts.map +1 -0
- package/dist/cjs/udid.js +33 -0
- package/dist/cjs/udid.js.map +1 -0
- package/dist/esm/board.d.ts +20 -0
- package/dist/esm/board.d.ts.map +1 -0
- package/dist/esm/board.js +23 -0
- package/dist/esm/board.js.map +1 -0
- package/dist/esm/campaign/badges.d.ts +30 -0
- package/dist/esm/campaign/badges.d.ts.map +1 -0
- package/dist/esm/campaign/badges.js +65 -0
- package/dist/esm/campaign/badges.js.map +1 -0
- package/dist/esm/campaign/bands.d.ts +161 -0
- package/dist/esm/campaign/bands.d.ts.map +1 -0
- package/dist/esm/campaign/bands.js +176 -0
- package/dist/esm/campaign/bands.js.map +1 -0
- package/dist/esm/campaign/campaign.d.ts +50 -0
- package/dist/esm/campaign/campaign.d.ts.map +1 -0
- package/dist/esm/campaign/campaign.js +147 -0
- package/dist/esm/campaign/campaign.js.map +1 -0
- package/dist/esm/campaign/campaigns.d.ts +2 -0
- package/dist/esm/campaign/campaigns.d.ts.map +1 -0
- package/dist/esm/campaign/campaigns.js +34 -0
- package/dist/esm/campaign/campaigns.js.map +1 -0
- package/dist/esm/campaign/cleanable.d.ts +13 -0
- package/dist/esm/campaign/cleanable.d.ts.map +1 -0
- package/dist/esm/campaign/cleanable.js +2 -0
- package/dist/esm/campaign/cleanable.js.map +1 -0
- package/dist/esm/campaign/cleanup.d.ts +78 -0
- package/dist/esm/campaign/cleanup.d.ts.map +1 -0
- package/dist/esm/campaign/cleanup.js +129 -0
- package/dist/esm/campaign/cleanup.js.map +1 -0
- package/dist/esm/campaign/commit.d.ts +39 -0
- package/dist/esm/campaign/commit.d.ts.map +1 -0
- package/dist/esm/campaign/commit.js +37 -0
- package/dist/esm/campaign/commit.js.map +1 -0
- package/dist/esm/campaign/field.d.ts +50 -0
- package/dist/esm/campaign/field.d.ts.map +1 -0
- package/dist/esm/campaign/field.js +88 -0
- package/dist/esm/campaign/field.js.map +1 -0
- package/dist/esm/campaign/fold.d.ts +227 -0
- package/dist/esm/campaign/fold.d.ts.map +1 -0
- package/dist/esm/campaign/fold.js +403 -0
- package/dist/esm/campaign/fold.js.map +1 -0
- package/dist/esm/campaign/funding.d.ts +153 -0
- package/dist/esm/campaign/funding.d.ts.map +1 -0
- package/dist/esm/campaign/funding.js +160 -0
- package/dist/esm/campaign/funding.js.map +1 -0
- package/dist/esm/campaign/landing.d.ts +20 -0
- package/dist/esm/campaign/landing.d.ts.map +1 -0
- package/dist/esm/campaign/landing.js +49 -0
- package/dist/esm/campaign/landing.js.map +1 -0
- package/dist/esm/campaign/pledges.d.ts +237 -0
- package/dist/esm/campaign/pledges.d.ts.map +1 -0
- package/dist/esm/campaign/pledges.js +210 -0
- package/dist/esm/campaign/pledges.js.map +1 -0
- package/dist/esm/campaign/pledgesChain.d.ts +58 -0
- package/dist/esm/campaign/pledgesChain.d.ts.map +1 -0
- package/dist/esm/campaign/pledgesChain.js +96 -0
- package/dist/esm/campaign/pledgesChain.js.map +1 -0
- package/dist/esm/campaign/pool.d.ts +137 -0
- package/dist/esm/campaign/pool.d.ts.map +1 -0
- package/dist/esm/campaign/pool.js +194 -0
- package/dist/esm/campaign/pool.js.map +1 -0
- package/dist/esm/campaign/record.d.ts +115 -0
- package/dist/esm/campaign/record.d.ts.map +1 -0
- package/dist/esm/campaign/record.js +252 -0
- package/dist/esm/campaign/record.js.map +1 -0
- package/dist/esm/campaign/rule.d.ts +311 -0
- package/dist/esm/campaign/rule.d.ts.map +1 -0
- package/dist/esm/campaign/rule.js +197 -0
- package/dist/esm/campaign/rule.js.map +1 -0
- package/dist/esm/campaign/spot.d.ts +37 -0
- package/dist/esm/campaign/spot.d.ts.map +1 -0
- package/dist/esm/campaign/spot.js +167 -0
- package/dist/esm/campaign/spot.js.map +1 -0
- package/dist/esm/campaign/spots.d.ts +437 -0
- package/dist/esm/campaign/spots.d.ts.map +1 -0
- package/dist/esm/campaign/spots.js +735 -0
- package/dist/esm/campaign/spots.js.map +1 -0
- package/dist/esm/campaign/standings.d.ts +236 -0
- package/dist/esm/campaign/standings.d.ts.map +1 -0
- package/dist/esm/campaign/standings.js +357 -0
- package/dist/esm/campaign/standings.js.map +1 -0
- package/dist/esm/campaign/treasurySends.d.ts +116 -0
- package/dist/esm/campaign/treasurySends.d.ts.map +1 -0
- package/dist/esm/campaign/treasurySends.js +190 -0
- package/dist/esm/campaign/treasurySends.js.map +1 -0
- package/dist/esm/campaign.d.ts +29 -0
- package/dist/esm/campaign.d.ts.map +1 -0
- package/dist/esm/campaign.js +28 -0
- package/dist/esm/campaign.js.map +1 -0
- package/dist/esm/chain/account.d.ts +47 -0
- package/dist/esm/chain/account.d.ts.map +1 -0
- package/dist/esm/chain/account.js +156 -0
- package/dist/esm/chain/account.js.map +1 -0
- package/dist/esm/chain/accountProof.d.ts +135 -0
- package/dist/esm/chain/accountProof.d.ts.map +1 -0
- package/dist/esm/chain/accountProof.js +153 -0
- package/dist/esm/chain/accountProof.js.map +1 -0
- package/dist/esm/chain/allowance.d.ts +17 -0
- package/dist/esm/chain/allowance.d.ts.map +1 -0
- package/dist/esm/chain/allowance.js +74 -0
- package/dist/esm/chain/allowance.js.map +1 -0
- package/dist/esm/chain/allowanceRead.d.ts +2 -0
- package/dist/esm/chain/allowanceRead.d.ts.map +1 -0
- package/dist/esm/chain/allowanceRead.js +56 -0
- package/dist/esm/chain/allowanceRead.js.map +1 -0
- package/dist/esm/chain/ask.d.ts +211 -0
- package/dist/esm/chain/ask.d.ts.map +1 -0
- package/dist/esm/chain/ask.js +509 -0
- package/dist/esm/chain/ask.js.map +1 -0
- package/dist/esm/chain/bridge.d.ts +50 -0
- package/dist/esm/chain/bridge.d.ts.map +1 -0
- package/dist/esm/chain/bridge.js +78 -0
- package/dist/esm/chain/bridge.js.map +1 -0
- package/dist/esm/chain/broadcast.d.ts +40 -0
- package/dist/esm/chain/broadcast.d.ts.map +1 -0
- package/dist/esm/chain/broadcast.js +147 -0
- package/dist/esm/chain/broadcast.js.map +1 -0
- package/dist/esm/chain/delegate.d.ts +154 -0
- package/dist/esm/chain/delegate.d.ts.map +1 -0
- package/dist/esm/chain/delegate.js +230 -0
- package/dist/esm/chain/delegate.js.map +1 -0
- package/dist/esm/chain/encoding.d.ts +7 -0
- package/dist/esm/chain/encoding.d.ts.map +1 -0
- package/dist/esm/chain/encoding.js +22 -0
- package/dist/esm/chain/encoding.js.map +1 -0
- package/dist/esm/chain/env.d.ts +50 -0
- package/dist/esm/chain/env.d.ts.map +1 -0
- package/dist/esm/chain/env.js +83 -0
- package/dist/esm/chain/env.js.map +1 -0
- package/dist/esm/chain/gate.d.ts +12 -0
- package/dist/esm/chain/gate.d.ts.map +1 -0
- package/dist/esm/chain/gate.js +52 -0
- package/dist/esm/chain/gate.js.map +1 -0
- package/dist/esm/chain/grantPending.d.ts +31 -0
- package/dist/esm/chain/grantPending.d.ts.map +1 -0
- package/dist/esm/chain/grantPending.js +50 -0
- package/dist/esm/chain/grantPending.js.map +1 -0
- package/dist/esm/chain/guest.d.ts +97 -0
- package/dist/esm/chain/guest.d.ts.map +1 -0
- package/dist/esm/chain/guest.js +168 -0
- package/dist/esm/chain/guest.js.map +1 -0
- package/dist/esm/chain/iid.d.ts +26 -0
- package/dist/esm/chain/iid.d.ts.map +1 -0
- package/dist/esm/chain/iid.js +62 -0
- package/dist/esm/chain/iid.js.map +1 -0
- package/dist/esm/chain/money.d.ts +48 -0
- package/dist/esm/chain/money.d.ts.map +1 -0
- package/dist/esm/chain/money.js +65 -0
- package/dist/esm/chain/money.js.map +1 -0
- package/dist/esm/chain/oracle.d.ts +24 -0
- package/dist/esm/chain/oracle.d.ts.map +1 -0
- package/dist/esm/chain/oracle.js +41 -0
- package/dist/esm/chain/oracle.js.map +1 -0
- package/dist/esm/chain/pendingTransact.d.ts +31 -0
- package/dist/esm/chain/pendingTransact.d.ts.map +1 -0
- package/dist/esm/chain/pendingTransact.js +59 -0
- package/dist/esm/chain/pendingTransact.js.map +1 -0
- package/dist/esm/chain/query.d.ts +75 -0
- package/dist/esm/chain/query.d.ts.map +1 -0
- package/dist/esm/chain/query.js +160 -0
- package/dist/esm/chain/query.js.map +1 -0
- package/dist/esm/chain/send.d.ts +42 -0
- package/dist/esm/chain/send.d.ts.map +1 -0
- package/dist/esm/chain/send.js +48 -0
- package/dist/esm/chain/send.js.map +1 -0
- package/dist/esm/chain/session.d.ts +109 -0
- package/dist/esm/chain/session.d.ts.map +1 -0
- package/dist/esm/chain/session.js +133 -0
- package/dist/esm/chain/session.js.map +1 -0
- package/dist/esm/chain/signWith.d.ts +69 -0
- package/dist/esm/chain/signWith.d.ts.map +1 -0
- package/dist/esm/chain/signWith.js +238 -0
- package/dist/esm/chain/signWith.js.map +1 -0
- package/dist/esm/chain/signer.d.ts +38 -0
- package/dist/esm/chain/signer.d.ts.map +1 -0
- package/dist/esm/chain/signer.js +73 -0
- package/dist/esm/chain/signer.js.map +1 -0
- package/dist/esm/chain/signx.d.ts +233 -0
- package/dist/esm/chain/signx.d.ts.map +1 -0
- package/dist/esm/chain/signx.js +475 -0
- package/dist/esm/chain/signx.js.map +1 -0
- package/dist/esm/chain/sponsor.d.ts +2 -0
- package/dist/esm/chain/sponsor.d.ts.map +1 -0
- package/dist/esm/chain/sponsor.js +73 -0
- package/dist/esm/chain/sponsor.js.map +1 -0
- package/dist/esm/chain/store.d.ts +115 -0
- package/dist/esm/chain/store.d.ts.map +1 -0
- package/dist/esm/chain/store.js +164 -0
- package/dist/esm/chain/store.js.map +1 -0
- package/dist/esm/chain/subscription.d.ts +73 -0
- package/dist/esm/chain/subscription.d.ts.map +1 -0
- package/dist/esm/chain/subscription.js +206 -0
- package/dist/esm/chain/subscription.js.map +1 -0
- package/dist/esm/chain/takeBack.d.ts +114 -0
- package/dist/esm/chain/takeBack.d.ts.map +1 -0
- package/dist/esm/chain/takeBack.js +177 -0
- package/dist/esm/chain/takeBack.js.map +1 -0
- package/dist/esm/chain/union.d.ts +125 -0
- package/dist/esm/chain/union.d.ts.map +1 -0
- package/dist/esm/chain/union.js +295 -0
- package/dist/esm/chain/union.js.map +1 -0
- package/dist/esm/chain/webauthn.d.ts +22 -0
- package/dist/esm/chain/webauthn.d.ts.map +1 -0
- package/dist/esm/chain/webauthn.js +65 -0
- package/dist/esm/chain/webauthn.js.map +1 -0
- package/dist/esm/chain.d.ts +35 -0
- package/dist/esm/chain.d.ts.map +1 -0
- package/dist/esm/chain.js +50 -0
- package/dist/esm/chain.js.map +1 -0
- package/dist/esm/config.d.ts +120 -0
- package/dist/esm/config.d.ts.map +1 -0
- package/dist/esm/config.js +115 -0
- package/dist/esm/config.js.map +1 -0
- package/dist/esm/data/accept.d.ts +69 -0
- package/dist/esm/data/accept.d.ts.map +1 -0
- package/dist/esm/data/accept.js +151 -0
- package/dist/esm/data/accept.js.map +1 -0
- package/dist/esm/data/agent.d.ts +87 -0
- package/dist/esm/data/agent.d.ts.map +1 -0
- package/dist/esm/data/agent.js +108 -0
- package/dist/esm/data/agent.js.map +1 -0
- package/dist/esm/data/askFilter.d.ts +45 -0
- package/dist/esm/data/askFilter.d.ts.map +1 -0
- package/dist/esm/data/askFilter.js +45 -0
- package/dist/esm/data/askFilter.js.map +1 -0
- package/dist/esm/data/authenticators.d.ts +35 -0
- package/dist/esm/data/authenticators.d.ts.map +1 -0
- package/dist/esm/data/authenticators.js +71 -0
- package/dist/esm/data/authenticators.js.map +1 -0
- package/dist/esm/data/balance.d.ts +39 -0
- package/dist/esm/data/balance.d.ts.map +1 -0
- package/dist/esm/data/balance.js +111 -0
- package/dist/esm/data/balance.js.map +1 -0
- package/dist/esm/data/board/assemble.d.ts +140 -0
- package/dist/esm/data/board/assemble.d.ts.map +1 -0
- package/dist/esm/data/board/assemble.js +539 -0
- package/dist/esm/data/board/assemble.js.map +1 -0
- package/dist/esm/data/board/coverage.d.ts +112 -0
- package/dist/esm/data/board/coverage.d.ts.map +1 -0
- package/dist/esm/data/board/coverage.js +180 -0
- package/dist/esm/data/board/coverage.js.map +1 -0
- package/dist/esm/data/board/facts.d.ts +63 -0
- package/dist/esm/data/board/facts.d.ts.map +1 -0
- package/dist/esm/data/board/facts.js +127 -0
- package/dist/esm/data/board/facts.js.map +1 -0
- package/dist/esm/data/board/fixtures.d.ts +21 -0
- package/dist/esm/data/board/fixtures.d.ts.map +1 -0
- package/dist/esm/data/board/fixtures.js +40 -0
- package/dist/esm/data/board/fixtures.js.map +1 -0
- package/dist/esm/data/board/query.d.ts +12 -0
- package/dist/esm/data/board/query.d.ts.map +1 -0
- package/dist/esm/data/board/query.js +67 -0
- package/dist/esm/data/board/query.js.map +1 -0
- package/dist/esm/data/board/rank.d.ts +22 -0
- package/dist/esm/data/board/rank.d.ts.map +1 -0
- package/dist/esm/data/board/rank.js +45 -0
- package/dist/esm/data/board/rank.js.map +1 -0
- package/dist/esm/data/board/read.d.ts +102 -0
- package/dist/esm/data/board/read.d.ts.map +1 -0
- package/dist/esm/data/board/read.js +163 -0
- package/dist/esm/data/board/read.js.map +1 -0
- package/dist/esm/data/board/series.d.ts +50 -0
- package/dist/esm/data/board/series.d.ts.map +1 -0
- package/dist/esm/data/board/series.js +153 -0
- package/dist/esm/data/board/series.js.map +1 -0
- package/dist/esm/data/board/trust.d.ts +31 -0
- package/dist/esm/data/board/trust.d.ts.map +1 -0
- package/dist/esm/data/board/trust.js +47 -0
- package/dist/esm/data/board/trust.js.map +1 -0
- package/dist/esm/data/board/types.d.ts +338 -0
- package/dist/esm/data/board/types.d.ts.map +1 -0
- package/dist/esm/data/board/types.js +79 -0
- package/dist/esm/data/board/types.js.map +1 -0
- package/dist/esm/data/board/url.d.ts +22 -0
- package/dist/esm/data/board/url.d.ts.map +1 -0
- package/dist/esm/data/board/url.js +65 -0
- package/dist/esm/data/board/url.js.map +1 -0
- package/dist/esm/data/board/words.d.ts +25 -0
- package/dist/esm/data/board/words.d.ts.map +1 -0
- package/dist/esm/data/board/words.js +53 -0
- package/dist/esm/data/board/words.js.map +1 -0
- package/dist/esm/data/cid.d.ts +49 -0
- package/dist/esm/data/cid.d.ts.map +1 -0
- package/dist/esm/data/cid.js +82 -0
- package/dist/esm/data/cid.js.map +1 -0
- package/dist/esm/data/concurrency.d.ts +14 -0
- package/dist/esm/data/concurrency.d.ts.map +1 -0
- package/dist/esm/data/concurrency.js +29 -0
- package/dist/esm/data/concurrency.js.map +1 -0
- package/dist/esm/data/credentials.d.ts +28 -0
- package/dist/esm/data/credentials.d.ts.map +1 -0
- package/dist/esm/data/credentials.js +78 -0
- package/dist/esm/data/credentials.js.map +1 -0
- package/dist/esm/data/denoms.d.ts +11 -0
- package/dist/esm/data/denoms.d.ts.map +1 -0
- package/dist/esm/data/denoms.js +102 -0
- package/dist/esm/data/denoms.js.map +1 -0
- package/dist/esm/data/displayNames.d.ts +58 -0
- package/dist/esm/data/displayNames.d.ts.map +1 -0
- package/dist/esm/data/displayNames.js +94 -0
- package/dist/esm/data/displayNames.js.map +1 -0
- package/dist/esm/data/docPath.d.ts +28 -0
- package/dist/esm/data/docPath.d.ts.map +1 -0
- package/dist/esm/data/docPath.js +37 -0
- package/dist/esm/data/docPath.js.map +1 -0
- package/dist/esm/data/docUrls.d.ts +38 -0
- package/dist/esm/data/docUrls.d.ts.map +1 -0
- package/dist/esm/data/docUrls.js +46 -0
- package/dist/esm/data/docUrls.js.map +1 -0
- package/dist/esm/data/docs.d.ts +61 -0
- package/dist/esm/data/docs.d.ts.map +1 -0
- package/dist/esm/data/docs.js +177 -0
- package/dist/esm/data/docs.js.map +1 -0
- package/dist/esm/data/engine.d.ts +193 -0
- package/dist/esm/data/engine.d.ts.map +1 -0
- package/dist/esm/data/engine.js +362 -0
- package/dist/esm/data/engine.js.map +1 -0
- package/dist/esm/data/engineUrl.d.ts +19 -0
- package/dist/esm/data/engineUrl.d.ts.map +1 -0
- package/dist/esm/data/engineUrl.js +23 -0
- package/dist/esm/data/engineUrl.js.map +1 -0
- package/dist/esm/data/envelope.d.ts +69 -0
- package/dist/esm/data/envelope.d.ts.map +1 -0
- package/dist/esm/data/envelope.js +72 -0
- package/dist/esm/data/envelope.js.map +1 -0
- package/dist/esm/data/format.d.ts +122 -0
- package/dist/esm/data/format.d.ts.map +1 -0
- package/dist/esm/data/format.js +250 -0
- package/dist/esm/data/format.js.map +1 -0
- package/dist/esm/data/gql.d.ts +56 -0
- package/dist/esm/data/gql.d.ts.map +1 -0
- package/dist/esm/data/gql.js +100 -0
- package/dist/esm/data/gql.js.map +1 -0
- package/dist/esm/data/granters.d.ts +15 -0
- package/dist/esm/data/granters.d.ts.map +1 -0
- package/dist/esm/data/granters.js +71 -0
- package/dist/esm/data/granters.js.map +1 -0
- package/dist/esm/data/index.d.ts +18 -0
- package/dist/esm/data/index.d.ts.map +1 -0
- package/dist/esm/data/index.js +39 -0
- package/dist/esm/data/index.js.map +1 -0
- package/dist/esm/data/install.d.ts +95 -0
- package/dist/esm/data/install.d.ts.map +1 -0
- package/dist/esm/data/install.js +116 -0
- package/dist/esm/data/install.js.map +1 -0
- package/dist/esm/data/issueMessage.d.ts +20 -0
- package/dist/esm/data/issueMessage.d.ts.map +1 -0
- package/dist/esm/data/issueMessage.js +15 -0
- package/dist/esm/data/issueMessage.js.map +1 -0
- package/dist/esm/data/linked.d.ts +54 -0
- package/dist/esm/data/linked.d.ts.map +1 -0
- package/dist/esm/data/linked.js +136 -0
- package/dist/esm/data/linked.js.map +1 -0
- package/dist/esm/data/network.d.ts +21 -0
- package/dist/esm/data/network.d.ts.map +1 -0
- package/dist/esm/data/network.js +23 -0
- package/dist/esm/data/network.js.map +1 -0
- package/dist/esm/data/openness.d.ts +93 -0
- package/dist/esm/data/openness.d.ts.map +1 -0
- package/dist/esm/data/openness.js +140 -0
- package/dist/esm/data/openness.js.map +1 -0
- package/dist/esm/data/oracleInfo.d.ts +20 -0
- package/dist/esm/data/oracleInfo.d.ts.map +1 -0
- package/dist/esm/data/oracleInfo.js +35 -0
- package/dist/esm/data/oracleInfo.js.map +1 -0
- package/dist/esm/data/oracles.d.ts +44 -0
- package/dist/esm/data/oracles.d.ts.map +1 -0
- package/dist/esm/data/oracles.js +110 -0
- package/dist/esm/data/oracles.js.map +1 -0
- package/dist/esm/data/outbound.d.ts +50 -0
- package/dist/esm/data/outbound.d.ts.map +1 -0
- package/dist/esm/data/outbound.js +96 -0
- package/dist/esm/data/outbound.js.map +1 -0
- package/dist/esm/data/paged.d.ts +48 -0
- package/dist/esm/data/paged.d.ts.map +1 -0
- package/dist/esm/data/paged.js +75 -0
- package/dist/esm/data/paged.js.map +1 -0
- package/dist/esm/data/profiles.d.ts +3 -0
- package/dist/esm/data/profiles.d.ts.map +1 -0
- package/dist/esm/data/profiles.js +66 -0
- package/dist/esm/data/profiles.js.map +1 -0
- package/dist/esm/data/proof.d.ts +93 -0
- package/dist/esm/data/proof.d.ts.map +1 -0
- package/dist/esm/data/proof.js +128 -0
- package/dist/esm/data/proof.js.map +1 -0
- package/dist/esm/data/queue.d.ts +49 -0
- package/dist/esm/data/queue.d.ts.map +1 -0
- package/dist/esm/data/queue.js +115 -0
- package/dist/esm/data/queue.js.map +1 -0
- package/dist/esm/data/rates.d.ts +143 -0
- package/dist/esm/data/rates.d.ts.map +1 -0
- package/dist/esm/data/rates.js +249 -0
- package/dist/esm/data/rates.js.map +1 -0
- package/dist/esm/data/receipt.d.ts +207 -0
- package/dist/esm/data/receipt.d.ts.map +1 -0
- package/dist/esm/data/receipt.js +305 -0
- package/dist/esm/data/receipt.js.map +1 -0
- package/dist/esm/data/resources.d.ts +30 -0
- package/dist/esm/data/resources.d.ts.map +1 -0
- package/dist/esm/data/resources.js +24 -0
- package/dist/esm/data/resources.js.map +1 -0
- package/dist/esm/data/sametask.d.ts +35 -0
- package/dist/esm/data/sametask.d.ts.map +1 -0
- package/dist/esm/data/sametask.js +40 -0
- package/dist/esm/data/sametask.js.map +1 -0
- package/dist/esm/data/shortName.d.ts +52 -0
- package/dist/esm/data/shortName.d.ts.map +1 -0
- package/dist/esm/data/shortName.js +119 -0
- package/dist/esm/data/shortName.js.map +1 -0
- package/dist/esm/data/threads.d.ts +97 -0
- package/dist/esm/data/threads.d.ts.map +1 -0
- package/dist/esm/data/threads.js +177 -0
- package/dist/esm/data/threads.js.map +1 -0
- package/dist/esm/data/trace.d.ts +133 -0
- package/dist/esm/data/trace.d.ts.map +1 -0
- package/dist/esm/data/trace.js +122 -0
- package/dist/esm/data/trace.js.map +1 -0
- package/dist/esm/data/traceWords.d.ts +54 -0
- package/dist/esm/data/traceWords.d.ts.map +1 -0
- package/dist/esm/data/traceWords.js +178 -0
- package/dist/esm/data/traceWords.js.map +1 -0
- package/dist/esm/data/types.d.ts +50 -0
- package/dist/esm/data/types.d.ts.map +1 -0
- package/dist/esm/data/types.js +6 -0
- package/dist/esm/data/types.js.map +1 -0
- package/dist/esm/data/verdict.d.ts +37 -0
- package/dist/esm/data/verdict.d.ts.map +1 -0
- package/dist/esm/data/verdict.js +51 -0
- package/dist/esm/data/verdict.js.map +1 -0
- package/dist/esm/data/work.d.ts +46 -0
- package/dist/esm/data/work.d.ts.map +1 -0
- package/dist/esm/data/work.js +68 -0
- package/dist/esm/data/work.js.map +1 -0
- package/dist/esm/envRead.d.ts +15 -0
- package/dist/esm/envRead.d.ts.map +1 -0
- package/dist/esm/envRead.js +20 -0
- package/dist/esm/envRead.js.map +1 -0
- package/dist/esm/geo/box.d.ts +64 -0
- package/dist/esm/geo/box.d.ts.map +1 -0
- package/dist/esm/geo/box.js +85 -0
- package/dist/esm/geo/box.js.map +1 -0
- package/dist/esm/geo/exif.d.ts +20 -0
- package/dist/esm/geo/exif.d.ts.map +1 -0
- package/dist/esm/geo/exif.js +215 -0
- package/dist/esm/geo/exif.js.map +1 -0
- package/dist/esm/geo/exifcarry.d.ts +31 -0
- package/dist/esm/geo/exifcarry.d.ts.map +1 -0
- package/dist/esm/geo/exifcarry.js +77 -0
- package/dist/esm/geo/exifcarry.js.map +1 -0
- package/dist/esm/geo/exifnote.d.ts +86 -0
- package/dist/esm/geo/exifnote.d.ts.map +1 -0
- package/dist/esm/geo/exifnote.js +243 -0
- package/dist/esm/geo/exifnote.js.map +1 -0
- package/dist/esm/geo/mentions.d.ts +44 -0
- package/dist/esm/geo/mentions.d.ts.map +1 -0
- package/dist/esm/geo/mentions.js +190 -0
- package/dist/esm/geo/mentions.js.map +1 -0
- package/dist/esm/geo/osm.d.ts +112 -0
- package/dist/esm/geo/osm.d.ts.map +1 -0
- package/dist/esm/geo/osm.js +171 -0
- package/dist/esm/geo/osm.js.map +1 -0
- package/dist/esm/geo/place.d.ts +51 -0
- package/dist/esm/geo/place.d.ts.map +1 -0
- package/dist/esm/geo/place.js +99 -0
- package/dist/esm/geo/place.js.map +1 -0
- package/dist/esm/geo/search.d.ts +41 -0
- package/dist/esm/geo/search.d.ts.map +1 -0
- package/dist/esm/geo/search.js +182 -0
- package/dist/esm/geo/search.js.map +1 -0
- package/dist/esm/geo/sun.d.ts +39 -0
- package/dist/esm/geo/sun.d.ts.map +1 -0
- package/dist/esm/geo/sun.js +51 -0
- package/dist/esm/geo/sun.js.map +1 -0
- package/dist/esm/geo/tiles.d.ts +89 -0
- package/dist/esm/geo/tiles.d.ts.map +1 -0
- package/dist/esm/geo/tiles.js +136 -0
- package/dist/esm/geo/tiles.js.map +1 -0
- package/dist/esm/geo.d.ts +20 -0
- package/dist/esm/geo.d.ts.map +1 -0
- package/dist/esm/geo.js +19 -0
- package/dist/esm/geo.js.map +1 -0
- package/dist/esm/given.d.ts +15 -0
- package/dist/esm/given.d.ts.map +1 -0
- package/dist/esm/given.js +18 -0
- package/dist/esm/given.js.map +1 -0
- package/dist/esm/network.d.ts +23 -0
- package/dist/esm/network.d.ts.map +1 -0
- package/dist/esm/network.js +48 -0
- package/dist/esm/network.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/protocol.d.ts +40 -0
- package/dist/esm/protocol.d.ts.map +1 -0
- package/dist/esm/protocol.js +38 -0
- package/dist/esm/protocol.js.map +1 -0
- package/dist/esm/rubric/bridge.d.ts +428 -0
- package/dist/esm/rubric/bridge.d.ts.map +1 -0
- package/dist/esm/rubric/bridge.js +911 -0
- package/dist/esm/rubric/bridge.js.map +1 -0
- package/dist/esm/rubric/call.d.ts +73 -0
- package/dist/esm/rubric/call.d.ts.map +1 -0
- package/dist/esm/rubric/call.js +120 -0
- package/dist/esm/rubric/call.js.map +1 -0
- package/dist/esm/rubric/card.d.ts +74 -0
- package/dist/esm/rubric/card.d.ts.map +1 -0
- package/dist/esm/rubric/card.js +38 -0
- package/dist/esm/rubric/card.js.map +1 -0
- package/dist/esm/rubric/chain.d.ts +44 -0
- package/dist/esm/rubric/chain.d.ts.map +1 -0
- package/dist/esm/rubric/chain.js +49 -0
- package/dist/esm/rubric/chain.js.map +1 -0
- package/dist/esm/rubric/claimForm.d.ts +142 -0
- package/dist/esm/rubric/claimForm.d.ts.map +1 -0
- package/dist/esm/rubric/claimForm.js +109 -0
- package/dist/esm/rubric/claimForm.js.map +1 -0
- package/dist/esm/rubric/claimFormResource.d.ts +34 -0
- package/dist/esm/rubric/claimFormResource.d.ts.map +1 -0
- package/dist/esm/rubric/claimFormResource.js +33 -0
- package/dist/esm/rubric/claimFormResource.js.map +1 -0
- package/dist/esm/rubric/compose.d.ts +99 -0
- package/dist/esm/rubric/compose.d.ts.map +1 -0
- package/dist/esm/rubric/compose.js +225 -0
- package/dist/esm/rubric/compose.js.map +1 -0
- package/dist/esm/rubric/confidence.d.ts +81 -0
- package/dist/esm/rubric/confidence.d.ts.map +1 -0
- package/dist/esm/rubric/confidence.js +82 -0
- package/dist/esm/rubric/confidence.js.map +1 -0
- package/dist/esm/rubric/draft.d.ts +224 -0
- package/dist/esm/rubric/draft.d.ts.map +1 -0
- package/dist/esm/rubric/draft.js +206 -0
- package/dist/esm/rubric/draft.js.map +1 -0
- package/dist/esm/rubric/gateMet.d.ts +46 -0
- package/dist/esm/rubric/gateMet.d.ts.map +1 -0
- package/dist/esm/rubric/gateMet.js +104 -0
- package/dist/esm/rubric/gateMet.js.map +1 -0
- package/dist/esm/rubric/leg.d.ts +106 -0
- package/dist/esm/rubric/leg.d.ts.map +1 -0
- package/dist/esm/rubric/leg.js +138 -0
- package/dist/esm/rubric/leg.js.map +1 -0
- package/dist/esm/rubric/publish.d.ts +39 -0
- package/dist/esm/rubric/publish.d.ts.map +1 -0
- package/dist/esm/rubric/publish.js +29 -0
- package/dist/esm/rubric/publish.js.map +1 -0
- package/dist/esm/rubric/reanchor.d.ts +79 -0
- package/dist/esm/rubric/reanchor.d.ts.map +1 -0
- package/dist/esm/rubric/reanchor.js +146 -0
- package/dist/esm/rubric/reanchor.js.map +1 -0
- package/dist/esm/rubric/receipt.d.ts +96 -0
- package/dist/esm/rubric/receipt.d.ts.map +1 -0
- package/dist/esm/rubric/receipt.js +25 -0
- package/dist/esm/rubric/receipt.js.map +1 -0
- package/dist/esm/rubric/roundTrips.d.ts +17 -0
- package/dist/esm/rubric/roundTrips.d.ts.map +1 -0
- package/dist/esm/rubric/roundTrips.js +20 -0
- package/dist/esm/rubric/roundTrips.js.map +1 -0
- package/dist/esm/rubric/terms.d.ts +611 -0
- package/dist/esm/rubric/terms.d.ts.map +1 -0
- package/dist/esm/rubric/terms.js +755 -0
- package/dist/esm/rubric/terms.js.map +1 -0
- package/dist/esm/rubric/wants.d.ts +36 -0
- package/dist/esm/rubric/wants.d.ts.map +1 -0
- package/dist/esm/rubric/wants.js +52 -0
- package/dist/esm/rubric/wants.js.map +1 -0
- package/dist/esm/rubric.d.ts +30 -0
- package/dist/esm/rubric.d.ts.map +1 -0
- package/dist/esm/rubric.js +30 -0
- package/dist/esm/rubric.js.map +1 -0
- package/dist/esm/udid/base58.d.ts +8 -0
- package/dist/esm/udid/base58.d.ts.map +1 -0
- package/dist/esm/udid/base58.js +53 -0
- package/dist/esm/udid/base58.js.map +1 -0
- package/dist/esm/udid/canonical.d.ts +17 -0
- package/dist/esm/udid/canonical.d.ts.map +1 -0
- package/dist/esm/udid/canonical.js +28 -0
- package/dist/esm/udid/canonical.js.map +1 -0
- package/dist/esm/udid/cid.d.ts +22 -0
- package/dist/esm/udid/cid.d.ts.map +1 -0
- package/dist/esm/udid/cid.js +46 -0
- package/dist/esm/udid/cid.js.map +1 -0
- package/dist/esm/udid/key.d.ts +41 -0
- package/dist/esm/udid/key.d.ts.map +1 -0
- package/dist/esm/udid/key.js +58 -0
- package/dist/esm/udid/key.js.map +1 -0
- package/dist/esm/udid/resolve.d.ts +56 -0
- package/dist/esm/udid/resolve.d.ts.map +1 -0
- package/dist/esm/udid/resolve.js +162 -0
- package/dist/esm/udid/resolve.js.map +1 -0
- package/dist/esm/udid/schema.d.ts +150 -0
- package/dist/esm/udid/schema.d.ts.map +1 -0
- package/dist/esm/udid/schema.js +151 -0
- package/dist/esm/udid/schema.js.map +1 -0
- package/dist/esm/udid/verify.d.ts +35 -0
- package/dist/esm/udid/verify.d.ts.map +1 -0
- package/dist/esm/udid/verify.js +93 -0
- package/dist/esm/udid/verify.js.map +1 -0
- package/dist/esm/udid/wrapper.d.ts +90 -0
- package/dist/esm/udid/wrapper.d.ts.map +1 -0
- package/dist/esm/udid/wrapper.js +37 -0
- package/dist/esm/udid/wrapper.js.map +1 -0
- package/dist/esm/udid.d.ts +17 -0
- package/dist/esm/udid.d.ts.map +1 -0
- package/dist/esm/udid.js +17 -0
- package/dist/esm/udid.js.map +1 -0
- package/package.json +210 -4
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whose key signed this, asked of whoever signed it.
|
|
3
|
+
*
|
|
4
|
+
* A verifier configured with one issuer's address can check that issuer and
|
|
5
|
+
* nobody else — which is fine until somebody else's oracle rules on one of
|
|
6
|
+
* your claims, and then every surface you own quietly fails to read a
|
|
7
|
+
* perfectly valid verdict. So resolution starts from the determination's own
|
|
8
|
+
* `iss` and dispatches by DID method.
|
|
9
|
+
*
|
|
10
|
+
* Two methods matter today, and they agree on nothing:
|
|
11
|
+
*
|
|
12
|
+
* did:ixo:<address> the chain's resolver · Ed25519VerificationKey2018
|
|
13
|
+
* · publicKeyBase58 (our checker)
|
|
14
|
+
* did:web:<domain> https://<domain>/.well-known/did.json
|
|
15
|
+
* · Ed25519VerificationKey2020
|
|
16
|
+
* · publicKeyMultibase (z6Mk…) (ixo's evals engine)
|
|
17
|
+
*
|
|
18
|
+
* **`assertionMethod` only.** A DID document may carry Ed25519 keys for other
|
|
19
|
+
* jobs — a UCAN key for capability tokens is one, and the engine's own chain
|
|
20
|
+
* identity carries exactly that shape. A key minted to sign a capability must
|
|
21
|
+
* never pass as one that signs verdicts, and the document already says which
|
|
22
|
+
* is which.
|
|
23
|
+
*/
|
|
24
|
+
import { fromBase58 } from "./base58.js";
|
|
25
|
+
import { network as configuredNetwork } from "../network.js";
|
|
26
|
+
const RESOLVERS = {
|
|
27
|
+
testnet: "https://resolver.testnet.ixo.earth/1.0/identifiers",
|
|
28
|
+
devnet: "https://resolver.devnet.ixo.earth/1.0/identifiers",
|
|
29
|
+
mainnet: "https://resolver.ixo.world/1.0/identifiers"
|
|
30
|
+
};
|
|
31
|
+
/** base58btc → bytes, minus the two-byte `ed25519-pub` multicodec prefix. */
|
|
32
|
+
export function fromMultibase(text) {
|
|
33
|
+
if (!text.startsWith("z"))
|
|
34
|
+
return null;
|
|
35
|
+
let raw;
|
|
36
|
+
try {
|
|
37
|
+
raw = fromBase58(text.slice(1));
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
return raw[0] === 0xed && raw[1] === 0x01 ? raw.slice(2) : null;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The asserting Ed25519 keys of a DID document, whatever shape it wrote them
|
|
46
|
+
* in. Pure — the caller fetches, so this is testable without a network.
|
|
47
|
+
*/
|
|
48
|
+
export function assertingKeys(document) {
|
|
49
|
+
/* A relationship entry may be a relative DID URL (`#keys-1`) — did:web
|
|
50
|
+
documents commonly write them that way — which names the same method as
|
|
51
|
+
`<document id>#keys-1`. Both forms are read; neither is guessed at when
|
|
52
|
+
the document carries no id to resolve against. */
|
|
53
|
+
const absolute = (id) => (id.startsWith("#") && document?.id ? `${document.id}${id}` : id);
|
|
54
|
+
const asserting = new Set((document?.assertionMethod ?? [])
|
|
55
|
+
.map((one) => (typeof one === "string" ? one : (one?.id ?? "")))
|
|
56
|
+
.filter(Boolean)
|
|
57
|
+
.map(absolute));
|
|
58
|
+
const out = [];
|
|
59
|
+
for (const method of document?.verificationMethod ?? []) {
|
|
60
|
+
if (!asserting.has(absolute(method.id)))
|
|
61
|
+
continue;
|
|
62
|
+
if (method.type === "Ed25519VerificationKey2018" && method.publicKeyBase58) {
|
|
63
|
+
try {
|
|
64
|
+
const raw = fromBase58(method.publicKeyBase58);
|
|
65
|
+
if (raw.length === 32)
|
|
66
|
+
out.push({ id: method.id, raw, how: "Ed25519VerificationKey2018 · base58" });
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
/* An unreadable method is one we cannot check against. Skip it. */
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (method.type === "Ed25519VerificationKey2020" && method.publicKeyMultibase) {
|
|
73
|
+
const raw = fromMultibase(method.publicKeyMultibase);
|
|
74
|
+
if (raw?.length === 32)
|
|
75
|
+
out.push({ id: method.id, raw, how: "Ed25519VerificationKey2020 · multibase" });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return out;
|
|
79
|
+
}
|
|
80
|
+
const defaultFetch = async (url) => {
|
|
81
|
+
const answer = await fetch(url, { signal: AbortSignal.timeout(20_000) });
|
|
82
|
+
return answer.ok ? await answer.json() : null;
|
|
83
|
+
};
|
|
84
|
+
/*
|
|
85
|
+
* The shape a did:web is allowed to have before it becomes a URL.
|
|
86
|
+
*
|
|
87
|
+
* `iss` is read off a document anybody can publish, and `documentUrl` turns it
|
|
88
|
+
* into a request this server makes. Without a grammar, `did:web:a?b`,
|
|
89
|
+
* `did:web:user@host`, `did:web:host:..:..` and `did:web:169.254.169.254` are
|
|
90
|
+
* all "valid" and each one points the fetch somewhere the spec never meant —
|
|
91
|
+
* a query, a userinfo, a path walk, a metadata endpoint. So: a hostname of
|
|
92
|
+
* RFC 1123 labels whose last label is not all digits (an IP literal is not a
|
|
93
|
+
* domain), an optional percent-encoded port, and path segments of unreserved
|
|
94
|
+
* characters only. Anything else is not a did:web this resolver will fetch.
|
|
95
|
+
*/
|
|
96
|
+
const HOST_LABEL = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/i;
|
|
97
|
+
const PATH_SEGMENT = /^[a-z0-9._~-]+$/i;
|
|
98
|
+
function didWebUrl(did) {
|
|
99
|
+
const [host, ...path] = did.slice("did:web:".length).split(":");
|
|
100
|
+
const [hostname, port, ...more] = (host ?? "").split("%3A");
|
|
101
|
+
const labels = (hostname ?? "").split(".");
|
|
102
|
+
if (more.length > 0 || !labels.every((label) => HOST_LABEL.test(label)))
|
|
103
|
+
throw new Error(`not a did:web hostname: ${did}`);
|
|
104
|
+
if (/^\d+$/.test(labels[labels.length - 1] ?? ""))
|
|
105
|
+
throw new Error(`a did:web must name a domain, not an address: ${did}`);
|
|
106
|
+
if (port !== undefined && !/^\d{1,5}$/.test(port))
|
|
107
|
+
throw new Error(`not a did:web port: ${did}`);
|
|
108
|
+
if (!path.every((segment) => PATH_SEGMENT.test(segment) && segment !== "." && segment !== ".."))
|
|
109
|
+
throw new Error(`not a did:web path: ${did}`);
|
|
110
|
+
const origin = `https://${hostname}${port ? `:${port}` : ""}`;
|
|
111
|
+
return path.length === 0 ? `${origin}/.well-known/did.json` : `${origin}/${path.join("/")}/did.json`;
|
|
112
|
+
}
|
|
113
|
+
/** Where a DID's document is served. Exported so a caller can say so in a log. */
|
|
114
|
+
export function documentUrl(did, network = "testnet") {
|
|
115
|
+
if (did.startsWith("did:web:"))
|
|
116
|
+
return didWebUrl(did);
|
|
117
|
+
if (did.startsWith("did:ixo:")) {
|
|
118
|
+
/* No testnet fallback for a name we do not know: "Mainnet" resolving a
|
|
119
|
+
mainnet issuer against the testnet resolver reads as "no such key",
|
|
120
|
+
which fails verification for the wrong reason (scale review D23). */
|
|
121
|
+
const resolver = RESOLVERS[network];
|
|
122
|
+
if (!resolver)
|
|
123
|
+
throw new Error(`no ixo resolver for network ${JSON.stringify(network)}; expected one of ${Object.keys(RESOLVERS).join(", ")}`);
|
|
124
|
+
return `${resolver}/${encodeURIComponent(did)}`;
|
|
125
|
+
}
|
|
126
|
+
throw new Error(`no resolver for the DID method in ${did}`);
|
|
127
|
+
}
|
|
128
|
+
/*
|
|
129
|
+
* One document per issuer per few minutes, per process.
|
|
130
|
+
*
|
|
131
|
+
* A credential cites up to fifty determinations and nearly all of them name
|
|
132
|
+
* the same issuer; resolving that issuer fifty times per request is fifty
|
|
133
|
+
* round trips to the resolver for one answer. Short-lived, so a rotated key
|
|
134
|
+
* is seen within minutes, and bounded, so a stream of unknown issuers cannot
|
|
135
|
+
* grow it without limit. Only the default fetch is cached — an injected
|
|
136
|
+
* reader is a test's, and a test wants what it injected.
|
|
137
|
+
*/
|
|
138
|
+
const DOCUMENT_TTL_MS = 5 * 60_000;
|
|
139
|
+
const DOCUMENT_CACHE_MAX = 500;
|
|
140
|
+
const documents = new Map();
|
|
141
|
+
export async function keysFor(did, options = {}) {
|
|
142
|
+
/* Unset or empty is the documented default (testnet); `network()` refuses any
|
|
143
|
+
other value that is not a network. Only a did:ixo needs the network, so
|
|
144
|
+
a did:web still resolves under a mis-set one, as it always did. */
|
|
145
|
+
const network = options.network ?? (did.startsWith("did:ixo:") ? configuredNetwork() : "testnet");
|
|
146
|
+
const url = documentUrl(did, network);
|
|
147
|
+
const cacheable = !options.fetchJson;
|
|
148
|
+
const held = cacheable ? documents.get(url) : undefined;
|
|
149
|
+
if (held && Date.now() - held.at < DOCUMENT_TTL_MS)
|
|
150
|
+
return held.keys;
|
|
151
|
+
const read = options.fetchJson ?? defaultFetch;
|
|
152
|
+
const body = (await read(url));
|
|
153
|
+
/* The chain's resolver wraps it; did:web serves it bare. */
|
|
154
|
+
const keys = assertingKeys(body?.didDocument ?? body);
|
|
155
|
+
if (cacheable && keys.length > 0) {
|
|
156
|
+
if (documents.size >= DOCUMENT_CACHE_MAX)
|
|
157
|
+
documents.delete(documents.keys().next().value);
|
|
158
|
+
documents.set(url, { at: Date.now(), keys });
|
|
159
|
+
}
|
|
160
|
+
return keys;
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/udid/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a determination is allowed to say.
|
|
3
|
+
*
|
|
4
|
+
* ixo's `oracle.udid.ixo.v1` schema, mirrored in Zod so the payload is
|
|
5
|
+
* validated **before** it is signed. A payload that fails our own schema is a
|
|
6
|
+
* bug, and signing it would put that bug on chain behind a signature that
|
|
7
|
+
* makes it look deliberate.
|
|
8
|
+
*
|
|
9
|
+
* The top level is strict on purpose: an unknown key at the root is either a
|
|
10
|
+
* typo or a dialect drift, and both are worth failing loudly. Everything
|
|
11
|
+
* project-specific lives in one place — the `ixo` block — which is the escape
|
|
12
|
+
* hatch the standard reserves for exactly this.
|
|
13
|
+
*/
|
|
14
|
+
import { z } from "zod";
|
|
15
|
+
/** The normative outcome codes. 5 is "a person should look at this". */
|
|
16
|
+
export declare const OUTCOME: {
|
|
17
|
+
readonly APPROVED: 1;
|
|
18
|
+
readonly REJECTED: 2;
|
|
19
|
+
readonly DISPUTED: 3;
|
|
20
|
+
readonly INVALIDATED: 4;
|
|
21
|
+
readonly FLAGGED: 5;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* The environment enum the standard actually defines.
|
|
25
|
+
*
|
|
26
|
+
* Two values, and neither of them is `testnet`. Everything that is not the
|
|
27
|
+
* real chain is a simulation, and a determination that says so cannot later
|
|
28
|
+
* be screenshotted as if it moved real money.
|
|
29
|
+
*/
|
|
30
|
+
export declare const ENV: readonly ["production", "simulation"];
|
|
31
|
+
export declare const isAllowedOutBindingKey: (key: string) => boolean;
|
|
32
|
+
export declare const CoinSchema: z.ZodObject<{
|
|
33
|
+
denom: z.ZodString;
|
|
34
|
+
amount: z.ZodString;
|
|
35
|
+
}, z.core.$strip>;
|
|
36
|
+
export declare const UdidPayloadSchema: z.ZodObject<{
|
|
37
|
+
iss: z.ZodString;
|
|
38
|
+
sub: z.ZodString;
|
|
39
|
+
aud: z.ZodString;
|
|
40
|
+
iat: z.ZodNumber;
|
|
41
|
+
jti: z.ZodString;
|
|
42
|
+
kind: z.ZodLiteral<"oracle.eval.v1">;
|
|
43
|
+
ver: z.ZodLiteral<1>;
|
|
44
|
+
sch: z.ZodLiteral<"oracle.udid.ixo.v1">;
|
|
45
|
+
act: z.ZodObject<{
|
|
46
|
+
cap: z.ZodString;
|
|
47
|
+
rub: z.ZodObject<{
|
|
48
|
+
id: z.ZodString;
|
|
49
|
+
digest: z.ZodString;
|
|
50
|
+
}, z.core.$strip>;
|
|
51
|
+
meta: z.ZodObject<{
|
|
52
|
+
env: z.ZodEnum<{
|
|
53
|
+
production: "production";
|
|
54
|
+
simulation: "simulation";
|
|
55
|
+
}>;
|
|
56
|
+
evaluator_version: z.ZodString;
|
|
57
|
+
}, z.core.$strip>;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
res: z.ZodObject<{
|
|
60
|
+
outcome: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>, z.ZodLiteral<5>]>;
|
|
61
|
+
patch: z.ZodUnion<readonly [z.ZodObject<{}, z.core.$strict>, z.ZodObject<{
|
|
62
|
+
evaluationStatus: z.ZodNumber;
|
|
63
|
+
amount: z.ZodArray<z.ZodObject<{
|
|
64
|
+
denom: z.ZodString;
|
|
65
|
+
amount: z.ZodString;
|
|
66
|
+
}, z.core.$strip>>;
|
|
67
|
+
}, z.core.$strict>]>;
|
|
68
|
+
trace: z.ZodObject<{
|
|
69
|
+
uri: z.ZodString;
|
|
70
|
+
cid: z.ZodString;
|
|
71
|
+
}, z.core.$strip>;
|
|
72
|
+
reason: z.ZodString;
|
|
73
|
+
}, z.core.$strip>;
|
|
74
|
+
out: z.ZodObject<{
|
|
75
|
+
summary: z.ZodString;
|
|
76
|
+
bindings: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
77
|
+
}, z.core.$strip>;
|
|
78
|
+
ixo: z.ZodObject<{
|
|
79
|
+
cellNode: z.ZodString;
|
|
80
|
+
oracleDid: z.ZodString;
|
|
81
|
+
collectionId: z.ZodString;
|
|
82
|
+
claimId: z.ZodString;
|
|
83
|
+
entityDid: z.ZodString;
|
|
84
|
+
agentAddress: z.ZodString;
|
|
85
|
+
agentDid: z.ZodString;
|
|
86
|
+
network: z.ZodString;
|
|
87
|
+
verdict: z.ZodString;
|
|
88
|
+
reasonCode: z.ZodNumber;
|
|
89
|
+
criteria: z.ZodArray<z.ZodObject<{
|
|
90
|
+
id: z.ZodString;
|
|
91
|
+
kind: z.ZodString;
|
|
92
|
+
outcome: z.ZodEnum<{
|
|
93
|
+
unverifiable: "unverifiable";
|
|
94
|
+
pass: "pass";
|
|
95
|
+
fail: "fail";
|
|
96
|
+
}>;
|
|
97
|
+
}, z.core.$strip>>;
|
|
98
|
+
receipt: z.ZodString;
|
|
99
|
+
}, z.core.$catchall<z.ZodUnknown>>;
|
|
100
|
+
}, z.core.$strict>;
|
|
101
|
+
export type UdidPayload = z.infer<typeof UdidPayloadSchema>;
|
|
102
|
+
/**
|
|
103
|
+
* What we accept from **anybody**, as opposed to what we ourselves emit.
|
|
104
|
+
*
|
|
105
|
+
* The schema above is our profile: strict, opinionated, and correct for the
|
|
106
|
+
* bytes we sign. Using it to *verify* was a mistake that only showed up when
|
|
107
|
+
* ixo's own evals engine was put beside us — it emits the same `kind` and
|
|
108
|
+
* `ver` under a different `sch`, with no `out`, no `act.meta`, and
|
|
109
|
+
* `res.trace.digest` where we write `res.trace.cid`. Every field of that is
|
|
110
|
+
* legitimate: `sch` is a profile marker over a shared base, and their schema
|
|
111
|
+
* says so in as many words.
|
|
112
|
+
*
|
|
113
|
+
* So this is the base, and only the base. Anything a determination is allowed
|
|
114
|
+
* to add rides through `passthrough`. Both our payload and the engine's
|
|
115
|
+
* validate against ixo's published `udid-payload-v1` unchanged — the base is
|
|
116
|
+
* not ours to invent, and the conformance test holds this one to it.
|
|
117
|
+
*
|
|
118
|
+
* The fields that stay required are the ones a verifier cannot do without:
|
|
119
|
+
* who signed, about what, in what scope, when, and what was decided.
|
|
120
|
+
*/
|
|
121
|
+
export declare const UdidBaseSchema: z.ZodObject<{
|
|
122
|
+
iss: z.ZodString;
|
|
123
|
+
sub: z.ZodString;
|
|
124
|
+
aud: z.ZodString;
|
|
125
|
+
iat: z.ZodNumber;
|
|
126
|
+
jti: z.ZodOptional<z.ZodString>;
|
|
127
|
+
kind: z.ZodLiteral<"oracle.eval.v1">;
|
|
128
|
+
ver: z.ZodLiteral<1>;
|
|
129
|
+
sch: z.ZodOptional<z.ZodString>;
|
|
130
|
+
act: z.ZodObject<{
|
|
131
|
+
cap: z.ZodString;
|
|
132
|
+
rub: z.ZodObject<{
|
|
133
|
+
id: z.ZodString;
|
|
134
|
+
}, z.core.$loose>;
|
|
135
|
+
}, z.core.$loose>;
|
|
136
|
+
res: z.ZodObject<{
|
|
137
|
+
outcome: z.ZodNumber;
|
|
138
|
+
patch: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
139
|
+
trace: z.ZodOptional<z.ZodObject<{
|
|
140
|
+
uri: z.ZodString;
|
|
141
|
+
}, z.core.$loose>>;
|
|
142
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
143
|
+
}, z.core.$loose>;
|
|
144
|
+
out: z.ZodOptional<z.ZodObject<{
|
|
145
|
+
summary: z.ZodString;
|
|
146
|
+
}, z.core.$loose>>;
|
|
147
|
+
ixo: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
148
|
+
}, z.core.$loose>;
|
|
149
|
+
export type UdidBase = z.infer<typeof UdidBaseSchema>;
|
|
150
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/udid/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,wEAAwE;AACxE,eAAO,MAAM,OAAO;;;;;;CAAiF,CAAC;AAEtG;;;;;;GAMG;AACH,eAAO,MAAM,GAAG,uCAAwC,CAAC;AAczD,eAAO,MAAM,sBAAsB,GAAI,KAAK,MAAM,KAAG,OAAgC,CAAC;AAEtF,eAAO,MAAM,UAAU;;;iBAA4E,CAAC;AAEpG,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAgE1B,CAAC;AAEL,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4BX,CAAC;AAEjB,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a determination is allowed to say.
|
|
3
|
+
*
|
|
4
|
+
* ixo's `oracle.udid.ixo.v1` schema, mirrored in Zod so the payload is
|
|
5
|
+
* validated **before** it is signed. A payload that fails our own schema is a
|
|
6
|
+
* bug, and signing it would put that bug on chain behind a signature that
|
|
7
|
+
* makes it look deliberate.
|
|
8
|
+
*
|
|
9
|
+
* The top level is strict on purpose: an unknown key at the root is either a
|
|
10
|
+
* typo or a dialect drift, and both are worth failing loudly. Everything
|
|
11
|
+
* project-specific lives in one place — the `ixo` block — which is the escape
|
|
12
|
+
* hatch the standard reserves for exactly this.
|
|
13
|
+
*/
|
|
14
|
+
import { z } from "zod";
|
|
15
|
+
/** The normative outcome codes. 5 is "a person should look at this". */
|
|
16
|
+
export const OUTCOME = { APPROVED: 1, REJECTED: 2, DISPUTED: 3, INVALIDATED: 4, FLAGGED: 5 };
|
|
17
|
+
/**
|
|
18
|
+
* The environment enum the standard actually defines.
|
|
19
|
+
*
|
|
20
|
+
* Two values, and neither of them is `testnet`. Everything that is not the
|
|
21
|
+
* real chain is a simulation, and a determination that says so cannot later
|
|
22
|
+
* be screenshotted as if it moved real money.
|
|
23
|
+
*/
|
|
24
|
+
export const ENV = ["production", "simulation"];
|
|
25
|
+
const CriterionOutcome = z.enum(["pass", "fail", "unverifiable"]);
|
|
26
|
+
/**
|
|
27
|
+
* What `out.bindings` may name.
|
|
28
|
+
*
|
|
29
|
+
* `sub`, or a dotted path under `res` — and nothing else. `out` is narrative;
|
|
30
|
+
* bindings exist so a reader can check that the narrative echoes the result
|
|
31
|
+
* rather than asserting anything of its own. Letting it point at `act.cap` or
|
|
32
|
+
* `iat` would make the prose load-bearing, which is exactly what the standard
|
|
33
|
+
* is written to prevent. The pattern is ixo's own, character for character.
|
|
34
|
+
*/
|
|
35
|
+
const OUT_BINDING = /^(sub|res(\.[a-zA-Z0-9_]+)+)$/;
|
|
36
|
+
export const isAllowedOutBindingKey = (key) => OUT_BINDING.test(key);
|
|
37
|
+
export const CoinSchema = z.object({ denom: z.string().min(1), amount: z.string().regex(/^\d+$/) });
|
|
38
|
+
export const UdidPayloadSchema = z
|
|
39
|
+
.object({
|
|
40
|
+
iss: z.string().min(1),
|
|
41
|
+
sub: z.string().min(1),
|
|
42
|
+
/** Replay-proof scope. Anything the verifier can pin an expectation to. */
|
|
43
|
+
aud: z.string().min(1),
|
|
44
|
+
iat: z.number().int().positive(),
|
|
45
|
+
jti: z.string().min(1),
|
|
46
|
+
kind: z.literal("oracle.eval.v1"),
|
|
47
|
+
ver: z.literal(1),
|
|
48
|
+
sch: z.literal("oracle.udid.ixo.v1"),
|
|
49
|
+
act: z.object({
|
|
50
|
+
/** Who authorised this evaluation — the ask's entity. */
|
|
51
|
+
cap: z.string().min(1),
|
|
52
|
+
rub: z.object({ id: z.string().min(1), digest: z.string().min(1) }),
|
|
53
|
+
meta: z.object({ env: z.enum(ENV), evaluator_version: z.string().min(1) })
|
|
54
|
+
}),
|
|
55
|
+
res: z.object({
|
|
56
|
+
outcome: z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4), z.literal(5)]),
|
|
57
|
+
/** What the chain was asked to write. Empty when nothing was decided. */
|
|
58
|
+
patch: z.union([
|
|
59
|
+
z.object({}).strict(),
|
|
60
|
+
z.object({ evaluationStatus: z.number().int(), amount: z.array(CoinSchema) }).strict()
|
|
61
|
+
]),
|
|
62
|
+
trace: z.object({ uri: z.string().url(), cid: z.string().min(1) }),
|
|
63
|
+
reason: z.string().min(1)
|
|
64
|
+
}),
|
|
65
|
+
out: z.object({
|
|
66
|
+
summary: z.string().min(1),
|
|
67
|
+
bindings: z.record(z.string(), z.union([z.string(), z.number()]))
|
|
68
|
+
}),
|
|
69
|
+
ixo: z
|
|
70
|
+
.object({
|
|
71
|
+
/* The origin the receipt was published to; the key keeps its old name
|
|
72
|
+
because every verifier of this schema reads `ixo.cellNode`. */
|
|
73
|
+
cellNode: z.string().url(),
|
|
74
|
+
oracleDid: z.string().min(1),
|
|
75
|
+
collectionId: z.string().min(1),
|
|
76
|
+
claimId: z.string().min(1),
|
|
77
|
+
entityDid: z.string().min(1),
|
|
78
|
+
agentAddress: z.string().min(1),
|
|
79
|
+
agentDid: z.string().min(1),
|
|
80
|
+
network: z.string().min(1),
|
|
81
|
+
verdict: z.string().min(1),
|
|
82
|
+
reasonCode: z.number().int(),
|
|
83
|
+
criteria: z.array(z.object({ id: z.string(), kind: z.string(), outcome: CriterionOutcome })),
|
|
84
|
+
receipt: z.string().min(1)
|
|
85
|
+
})
|
|
86
|
+
/* The block the standard reserves for the project. Open, because a
|
|
87
|
+
campaign carries its own words here and this file must not become
|
|
88
|
+
the thing you edit to add one. */
|
|
89
|
+
.catchall(z.unknown())
|
|
90
|
+
})
|
|
91
|
+
.strict()
|
|
92
|
+
.superRefine((payload, ctx) => {
|
|
93
|
+
for (const key of Object.keys(payload.out.bindings)) {
|
|
94
|
+
if (!isAllowedOutBindingKey(key)) {
|
|
95
|
+
ctx.addIssue({ code: "custom", path: ["out", "bindings", key], message: `out.bindings may not name ${key}` });
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/* Flagged decides nothing, so it must not carry a patch that says it did. */
|
|
99
|
+
if (payload.res.outcome === OUTCOME.FLAGGED && Object.keys(payload.res.patch).length > 0) {
|
|
100
|
+
ctx.addIssue({ code: "custom", path: ["res", "patch"], message: "a flagged determination patches nothing" });
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
/**
|
|
104
|
+
* What we accept from **anybody**, as opposed to what we ourselves emit.
|
|
105
|
+
*
|
|
106
|
+
* The schema above is our profile: strict, opinionated, and correct for the
|
|
107
|
+
* bytes we sign. Using it to *verify* was a mistake that only showed up when
|
|
108
|
+
* ixo's own evals engine was put beside us — it emits the same `kind` and
|
|
109
|
+
* `ver` under a different `sch`, with no `out`, no `act.meta`, and
|
|
110
|
+
* `res.trace.digest` where we write `res.trace.cid`. Every field of that is
|
|
111
|
+
* legitimate: `sch` is a profile marker over a shared base, and their schema
|
|
112
|
+
* says so in as many words.
|
|
113
|
+
*
|
|
114
|
+
* So this is the base, and only the base. Anything a determination is allowed
|
|
115
|
+
* to add rides through `passthrough`. Both our payload and the engine's
|
|
116
|
+
* validate against ixo's published `udid-payload-v1` unchanged — the base is
|
|
117
|
+
* not ours to invent, and the conformance test holds this one to it.
|
|
118
|
+
*
|
|
119
|
+
* The fields that stay required are the ones a verifier cannot do without:
|
|
120
|
+
* who signed, about what, in what scope, when, and what was decided.
|
|
121
|
+
*/
|
|
122
|
+
export const UdidBaseSchema = z
|
|
123
|
+
.object({
|
|
124
|
+
iss: z.string().min(1),
|
|
125
|
+
sub: z.string().min(1),
|
|
126
|
+
aud: z.string().min(1),
|
|
127
|
+
iat: z.number().int().positive(),
|
|
128
|
+
jti: z.string().min(1).optional(),
|
|
129
|
+
kind: z.literal("oracle.eval.v1"),
|
|
130
|
+
ver: z.literal(1),
|
|
131
|
+
/** A profile marker, not a gate. We read it; we never require our own. */
|
|
132
|
+
sch: z.string().min(1).optional(),
|
|
133
|
+
act: z
|
|
134
|
+
.object({
|
|
135
|
+
cap: z.string().min(1),
|
|
136
|
+
rub: z.object({ id: z.string().min(1) }).passthrough()
|
|
137
|
+
})
|
|
138
|
+
.passthrough(),
|
|
139
|
+
res: z
|
|
140
|
+
.object({
|
|
141
|
+
outcome: z.number().int().min(0).max(5),
|
|
142
|
+
patch: z.record(z.string(), z.unknown()),
|
|
143
|
+
trace: z.object({ uri: z.string().min(1) }).passthrough().optional(),
|
|
144
|
+
reason: z.string().min(1).optional()
|
|
145
|
+
})
|
|
146
|
+
.passthrough(),
|
|
147
|
+
out: z.object({ summary: z.string().min(1) }).passthrough().optional(),
|
|
148
|
+
ixo: z.record(z.string(), z.unknown()).optional()
|
|
149
|
+
})
|
|
150
|
+
.passthrough();
|
|
151
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/udid/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checking a determination without asking us anything.
|
|
3
|
+
*
|
|
4
|
+
* The point of signing is that this can run somewhere we do not control,
|
|
5
|
+
* against a key published somewhere anyone can read. So the checks are the
|
|
6
|
+
* blunt ones and they are all of them: the signature is real, the payload is
|
|
7
|
+
* the shape the standard defines, and it is about the thing the reader
|
|
8
|
+
* thinks it is about.
|
|
9
|
+
*
|
|
10
|
+
* **`aud` is not decoration.** A determination lifted from one collection and
|
|
11
|
+
* replayed against another verifies perfectly by signature alone; pinning
|
|
12
|
+
* `expectedAud` is what makes that a forgery rather than a fact.
|
|
13
|
+
*/
|
|
14
|
+
import { type UdidBase } from "./schema.ts";
|
|
15
|
+
declare const fromB64url: (text: string) => Uint8Array;
|
|
16
|
+
export interface VerifyOptions {
|
|
17
|
+
/** The 32-byte public point of the issuer, however the reader resolved it. */
|
|
18
|
+
publicKeyRaw: Uint8Array;
|
|
19
|
+
expectedAud?: string;
|
|
20
|
+
expectedSub?: string;
|
|
21
|
+
/** The address the wrapper claims these bytes have. */
|
|
22
|
+
expectedCid?: string;
|
|
23
|
+
/** Seconds since the epoch, for the `exp` check. Defaults to the clock. */
|
|
24
|
+
now?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface VerifyResult {
|
|
27
|
+
valid: boolean;
|
|
28
|
+
/** The **base** payload — anyone's, not only ours. See `UdidBaseSchema`. */
|
|
29
|
+
payload: UdidBase | null;
|
|
30
|
+
/** Why not, in one phrase — for a log or a page, never for a decision. */
|
|
31
|
+
reason?: string;
|
|
32
|
+
}
|
|
33
|
+
export declare function verifyUdid(jws: string, options: VerifyOptions): Promise<VerifyResult>;
|
|
34
|
+
export { fromB64url };
|
|
35
|
+
//# sourceMappingURL=verify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/udid/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5D,QAAA,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,UAGlC,CAAC;AAgBF,MAAM,WAAW,aAAa;IAC5B,8EAA8E;IAC9E,YAAY,EAAE,UAAU,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,4EAA4E;IAC5E,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAC;IACzB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA2D3F;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checking a determination without asking us anything.
|
|
3
|
+
*
|
|
4
|
+
* The point of signing is that this can run somewhere we do not control,
|
|
5
|
+
* against a key published somewhere anyone can read. So the checks are the
|
|
6
|
+
* blunt ones and they are all of them: the signature is real, the payload is
|
|
7
|
+
* the shape the standard defines, and it is about the thing the reader
|
|
8
|
+
* thinks it is about.
|
|
9
|
+
*
|
|
10
|
+
* **`aud` is not decoration.** A determination lifted from one collection and
|
|
11
|
+
* replayed against another verifies perfectly by signature alone; pinning
|
|
12
|
+
* `expectedAud` is what makes that a forgery rather than a fact.
|
|
13
|
+
*/
|
|
14
|
+
import { canonicalJson } from "./canonical.js";
|
|
15
|
+
import { cidV1Raw } from "./cid.js";
|
|
16
|
+
import { UdidBaseSchema } from "./schema.js";
|
|
17
|
+
const fromB64url = (text) => {
|
|
18
|
+
const padded = text.replace(/-/g, "+").replace(/_/g, "/");
|
|
19
|
+
return Uint8Array.from(atob(padded + "=".repeat((4 - (padded.length % 4)) % 4)), (c) => c.charCodeAt(0));
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* A compact JWS segment is base64url with no padding and nothing else.
|
|
23
|
+
*
|
|
24
|
+
* `atob` is forgiving — it skips ASCII whitespace and tolerates padding — so
|
|
25
|
+
* without this check two different strings could decode to the same bytes,
|
|
26
|
+
* verify against the same signature, and carry two different content
|
|
27
|
+
* addresses. The address is the whole point of `expectedCid`, so the string
|
|
28
|
+
* has to be exactly one encoding of the bytes it names.
|
|
29
|
+
*/
|
|
30
|
+
const B64URL = /^[A-Za-z0-9_-]+$/;
|
|
31
|
+
/** An Ed25519 signature is exactly 64 bytes; anything else is not one. */
|
|
32
|
+
const ED25519_SIGNATURE_BYTES = 64;
|
|
33
|
+
export async function verifyUdid(jws, options) {
|
|
34
|
+
const parts = jws.split(".");
|
|
35
|
+
if (parts.length !== 3)
|
|
36
|
+
return { valid: false, payload: null, reason: "not a compact JWS" };
|
|
37
|
+
const [header, body, signature] = parts;
|
|
38
|
+
if (!B64URL.test(header) || !B64URL.test(body) || !B64URL.test(signature)) {
|
|
39
|
+
return { valid: false, payload: null, reason: "a segment is not strict base64url" };
|
|
40
|
+
}
|
|
41
|
+
let head;
|
|
42
|
+
let payload;
|
|
43
|
+
try {
|
|
44
|
+
head = JSON.parse(new TextDecoder().decode(fromB64url(header)));
|
|
45
|
+
/* The base, never our profile — a verifier that only accepts its own
|
|
46
|
+
dialect can only ever check itself. */
|
|
47
|
+
payload = UdidBaseSchema.parse(JSON.parse(new TextDecoder().decode(fromB64url(body))));
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
return { valid: false, payload: null, reason: error instanceof Error ? error.message : "unreadable" };
|
|
51
|
+
}
|
|
52
|
+
if (head.alg !== "EdDSA")
|
|
53
|
+
return { valid: false, payload, reason: `unexpected alg ${String(head.alg)}` };
|
|
54
|
+
/* RFC 7515 §4.1.11: a `crit` header names extensions the verifier MUST
|
|
55
|
+
understand. This verifier understands none, so any `crit` is a refusal. */
|
|
56
|
+
if (head.crit !== undefined)
|
|
57
|
+
return { valid: false, payload, reason: "header names critical extensions this verifier does not implement" };
|
|
58
|
+
const signatureBytes = fromB64url(signature);
|
|
59
|
+
if (signatureBytes.length !== ED25519_SIGNATURE_BYTES)
|
|
60
|
+
return { valid: false, payload, reason: "signature is not 64 bytes" };
|
|
61
|
+
const key = await crypto.subtle.importKey("raw", options.publicKeyRaw, { name: "Ed25519" }, false, ["verify"]);
|
|
62
|
+
const ok = await crypto.subtle.verify({ name: "Ed25519" }, key, signatureBytes, new TextEncoder().encode(`${header}.${body}`));
|
|
63
|
+
if (!ok)
|
|
64
|
+
return { valid: false, payload, reason: "signature does not verify" };
|
|
65
|
+
if (options.expectedAud && payload.aud !== options.expectedAud)
|
|
66
|
+
return { valid: false, payload, reason: "aud is for something else" };
|
|
67
|
+
if (options.expectedSub && payload.sub !== options.expectedSub)
|
|
68
|
+
return { valid: false, payload, reason: "sub is a different claim" };
|
|
69
|
+
/* `exp` is optional in the standard, and a determination that carries one
|
|
70
|
+
has said when it stops being one. The base schema passes it through. */
|
|
71
|
+
const exp = payload.exp;
|
|
72
|
+
if (exp !== undefined) {
|
|
73
|
+
if (typeof exp !== "number" || !Number.isFinite(exp))
|
|
74
|
+
return { valid: false, payload, reason: "exp is not a number" };
|
|
75
|
+
const now = options.now ?? Math.floor(Date.now() / 1000);
|
|
76
|
+
if (exp <= now)
|
|
77
|
+
return { valid: false, payload, reason: "expired" };
|
|
78
|
+
}
|
|
79
|
+
if (options.expectedCid) {
|
|
80
|
+
const cid = await cidV1Raw(new TextEncoder().encode(jws));
|
|
81
|
+
if (cid !== options.expectedCid)
|
|
82
|
+
return { valid: false, payload, reason: "these bytes have a different address" };
|
|
83
|
+
}
|
|
84
|
+
/* The body must be the canonical form, or two readers could hold two
|
|
85
|
+
documents that both verify and differ. */
|
|
86
|
+
const canonical = canonicalJson(payload);
|
|
87
|
+
if (new TextDecoder().decode(fromB64url(body)) !== canonical) {
|
|
88
|
+
return { valid: false, payload, reason: "payload is not in canonical form" };
|
|
89
|
+
}
|
|
90
|
+
return { valid: true, payload };
|
|
91
|
+
}
|
|
92
|
+
export { fromB64url };
|
|
93
|
+
//# sourceMappingURL=verify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/udid/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,cAAc,EAAiB,MAAM,aAAa,CAAC;AAE5D,MAAM,UAAU,GAAG,CAAC,IAAY,EAAc,EAAE;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1D,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3G,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,GAAG,kBAAkB,CAAC;AAElC,0EAA0E;AAC1E,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAqBnC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,OAAsB;IAClE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC5F,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,KAAiC,CAAC;IACpE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAC;IACtF,CAAC;IAED,IAAI,IAAuC,CAAC;IAC5C,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAsC,CAAC;QACrG;iDACyC;QACzC,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;IACxG,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,KAAK,OAAO;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IACzG;iFAC6E;IAC7E,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,mEAAmE,EAAE,CAAC;IAE3I,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,cAAc,CAAC,MAAM,KAAK,uBAAuB;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC;IAE7H,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,YAA4B,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/H,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CACnC,EAAE,IAAI,EAAE,SAAS,EAAE,EACnB,GAAG,EACH,cAA8B,EAC9B,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,CAAiB,CAC9D,CAAC;IACF,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC;IAE/E,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,WAAW;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC;IACtI,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,WAAW;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC;IAErI;8EAC0E;IAC1E,MAAM,GAAG,GAAI,OAA6B,CAAC,GAAG,CAAC;IAC/C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;QACtH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACzD,IAAI,GAAG,IAAI,GAAG;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACtE,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,IAAI,GAAG,KAAK,OAAO,CAAC,WAAW;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,sCAAsC,EAAE,CAAC;IACpH,CAAC;IAED;gDAC4C;IAC5C,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC7D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,kCAAkC,EAAE,CAAC;IAC/E,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAClC,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|