@perkos/agent-sdk 0.3.2 → 0.5.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/CHANGELOG.md +39 -1
- package/README.md +101 -6
- package/SECURITY.md +20 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mpp.d.ts +135 -0
- package/dist/mpp.d.ts.map +1 -0
- package/dist/mpp.js +784 -0
- package/dist/mpp.js.map +1 -0
- package/dist/partner.d.ts +79 -0
- package/dist/partner.d.ts.map +1 -0
- package/dist/partner.js +195 -0
- package/dist/partner.js.map +1 -0
- package/docs/ARCHITECTURE.md +20 -1
- package/docs/MPP_PAYMENTS.md +155 -0
- package/docs/PARTNER_PILOT.md +95 -0
- package/examples/mpp-usdcx.ts +91 -0
- package/package.json +7 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,7 +4,45 @@ All notable changes to `@perkos/agent-sdk` are documented here.
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## 0.5.0 - 2026-08-28
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- A standards-based MPP PaymentAuth adapter for `method="usdc"`, `intent="charge"` and the direct
|
|
12
|
+
USDCx on Stacks profile, separate from the existing x402 routes.
|
|
13
|
+
- RFC 8785 canonical challenge, credential and receipt codecs; `WWW-Authenticate: Payment`
|
|
14
|
+
challenges select `Payment-Authorization` so OAuth Bearer credentials remain independent.
|
|
15
|
+
- Official mainnet and testnet USDCx method details, CAIP-10 payer sources, base64 SIP-005
|
|
16
|
+
transaction credentials and `Payment-Receipt` settlement pointers.
|
|
17
|
+
- An MPP-specific unsigned transaction builder that reuses the existing payer intent and spending
|
|
18
|
+
policy while selecting the required `OnChainOnly` anchor mode.
|
|
19
|
+
- Public integration documentation and a safe offline MPP/USDCx quickstart.
|
|
20
|
+
|
|
21
|
+
### Security
|
|
22
|
+
|
|
23
|
+
- Bind each MPP challenge to a trusted Nayori quote and actual protected request, including HTTP
|
|
24
|
+
body digest, amount, recipient, asset, merchant and expiry.
|
|
25
|
+
- Reuse exact SIP-010 transfer, memo, signature and post-condition verification, adding strict
|
|
26
|
+
profile fields, canonical envelopes, standard single-signature authorization and low-s signing.
|
|
27
|
+
- Keep sponsorship disabled and leave live nonce/balance checks, durable replay reservation,
|
|
28
|
+
broadcast, confirmation and delivery at the hosted Platform boundary.
|
|
29
|
+
|
|
30
|
+
## 0.4.0 - 2026-08-28
|
|
31
|
+
|
|
32
|
+
### Added
|
|
33
|
+
|
|
34
|
+
- `NayoriPartnerClient` for invitation-bound wallet challenges, one-time OAuth client enrollment,
|
|
35
|
+
minimum-scope client-credentials tokens and authenticated MCP JSON-RPC calls.
|
|
36
|
+
- `createStacksConnectPartnerSigner` adapter for Leather-compatible `stx_signMessage` responses
|
|
37
|
+
without giving the SDK wallet key material.
|
|
38
|
+
- Partner-pilot documentation covering exact-message review, one-time secret handling, scopes,
|
|
39
|
+
MCP tools and the separate wallet payment-signing boundary.
|
|
40
|
+
|
|
41
|
+
### Security
|
|
42
|
+
|
|
43
|
+
- Normalize and validate recoverable signatures and compressed public keys before registration.
|
|
44
|
+
- Keep OAuth credentials caller-owned: the SDK does not persist, log, refresh or treat them as
|
|
45
|
+
payment authorization.
|
|
8
46
|
|
|
9
47
|
## 0.3.2 - 2026-08-27
|
|
10
48
|
|
package/README.md
CHANGED
|
@@ -9,14 +9,17 @@ This repository is the continuation of `PerkOS-xyz/PerkOS-Agent-SDK`, renamed to
|
|
|
9
9
|
public SDK with the Nayori product identity. The npm package remains `@perkos/agent-sdk` and the
|
|
10
10
|
complete Git history, releases, issues, and pull requests are preserved.
|
|
11
11
|
|
|
12
|
-
> Status: 0.
|
|
12
|
+
> Status: 0.5.0 developer release. Read clients, transaction builders, browser and headless signer
|
|
13
13
|
> adapters, confirmation receipts, safety policies, and a transactional testnet quickstart are
|
|
14
|
-
> implemented. The x402 v2 client and Stacks facilitator foundations are implemented;
|
|
15
|
-
>
|
|
16
|
-
> external review
|
|
14
|
+
> implemented. The x402 v2 client and Stacks facilitator foundations are implemented; this release
|
|
15
|
+
> adds wallet-linked OAuth and MCP support for the planned invite-only testnet pilot. Hosted rollout,
|
|
16
|
+
> external review and adoption evidence remain before Milestone 2 completion. The direct x402
|
|
17
17
|
> profile includes request-bound pure verification
|
|
18
18
|
> and payer-side intent, policy, Leather, and remote-signer foundations for STX, sBTC, and USDCx.
|
|
19
|
-
>
|
|
19
|
+
> The SDK also implements the MPP PaymentAuth `usdc`/`charge` Stacks profile for direct USDCx,
|
|
20
|
+
> including canonical challenges, credentials, pure verification and settlement receipts.
|
|
21
|
+
> Every payment signature remains delegated to the configured wallet or custody boundary. Mainnet
|
|
22
|
+
> facilitator settlement remains disabled.
|
|
20
23
|
|
|
21
24
|
## Requirements
|
|
22
25
|
|
|
@@ -65,6 +68,14 @@ network call, and does not request a wallet signature or broadcast:
|
|
|
65
68
|
npm run quickstart:x402:payer
|
|
66
69
|
```
|
|
67
70
|
|
|
71
|
+
The MPP PaymentAuth quickstart creates a standard `WWW-Authenticate: Payment` USDCx challenge,
|
|
72
|
+
applies the same payer policy and builds an unsigned `OnChainOnly` Stacks transaction. It is
|
|
73
|
+
offline, contains no private key and does not request a wallet signature or broadcast:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
npm run quickstart:mpp
|
|
77
|
+
```
|
|
78
|
+
|
|
68
79
|
The transactional quickstart is also safe by default: it only prints a seven-step sBTC testnet
|
|
69
80
|
lifecycle and its funding-policy decision.
|
|
70
81
|
|
|
@@ -148,6 +159,43 @@ const perkos = new PerkOSClient({ network: "mainnet", signer });
|
|
|
148
159
|
Install `@stacks/connect` in the browser application. Wallet discovery and account selection stay
|
|
149
160
|
at the application boundary so the SDK cannot silently choose an account.
|
|
150
161
|
|
|
162
|
+
## Invite-only partner OAuth and MCP
|
|
163
|
+
|
|
164
|
+
`NayoriPartnerClient` enrolls an invited partner without taking custody of a wallet. It requests a
|
|
165
|
+
single-use challenge, delegates the exact plaintext to Leather through `stx_signMessage`, submits
|
|
166
|
+
the signature and returns the generated OAuth client secret once. OAuth authorizes API/MCP access
|
|
167
|
+
only; every payment remains a separate wallet-signed transaction.
|
|
168
|
+
|
|
169
|
+
```ts
|
|
170
|
+
import { request } from "@stacks/connect";
|
|
171
|
+
import {
|
|
172
|
+
NayoriPartnerClient,
|
|
173
|
+
createStacksConnectPartnerSigner,
|
|
174
|
+
} from "@perkos/agent-sdk";
|
|
175
|
+
|
|
176
|
+
const partners = new NayoriPartnerClient();
|
|
177
|
+
const credentials = await partners.enroll({
|
|
178
|
+
invitationToken,
|
|
179
|
+
walletAddress: connectedTestnetAddress,
|
|
180
|
+
signMessage: createStacksConnectPartnerSigner(request),
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
// Move the one-time secret directly into the application's secret manager.
|
|
184
|
+
const token = await partners.requestToken({
|
|
185
|
+
clientId: credentials.clientId,
|
|
186
|
+
clientSecret: credentials.clientSecret,
|
|
187
|
+
scopes: ["mcp:invoke"],
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
const tools = await partners.callMcp({
|
|
191
|
+
accessToken: token.accessToken,
|
|
192
|
+
method: "tools/list",
|
|
193
|
+
});
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
See [Partner pilot](docs/PARTNER_PILOT.md) for the complete enrollment, scope and secret-handling
|
|
197
|
+
boundary.
|
|
198
|
+
|
|
151
199
|
## Headless signer
|
|
152
200
|
|
|
153
201
|
`HeadlessSigner` requests key material only when deriving the public address or signing. It caches
|
|
@@ -331,6 +379,44 @@ facilitator request body. See [`docs/X402_PAYMENTS.md`](docs/X402_PAYMENTS.md) f
|
|
|
331
379
|
Direct payments and `perkos-escrow-v1` are complementary. Use direct payments for immediate
|
|
332
380
|
resources and escrow for jobs that require delivery, evaluation, payout, or reputation.
|
|
333
381
|
|
|
382
|
+
## MPP PaymentAuth with USDCx on Stacks
|
|
383
|
+
|
|
384
|
+
MPP is a separate standards-based commerce path beside x402. Nayori implements the official
|
|
385
|
+
`Payment` HTTP authentication scheme with `method="usdc"`, `intent="charge"` and the direct Stacks
|
|
386
|
+
USDCx profile. The server issues a canonical `WWW-Authenticate: Payment` challenge and selects
|
|
387
|
+
`Payment-Authorization` for the payment credential, leaving `Authorization: Bearer` available for
|
|
388
|
+
OAuth.
|
|
389
|
+
|
|
390
|
+
```ts
|
|
391
|
+
import {
|
|
392
|
+
createNayoriMppUsdcStacksChallenge,
|
|
393
|
+
createNayoriMppUsdcStacksCredential,
|
|
394
|
+
encodeNayoriMppCredentialHeader,
|
|
395
|
+
} from "@perkos/agent-sdk";
|
|
396
|
+
|
|
397
|
+
const { challenge, wwwAuthenticate } =
|
|
398
|
+
await createNayoriMppUsdcStacksChallenge({
|
|
399
|
+
quote: trustedUsdcxQuote,
|
|
400
|
+
realm: "api.nayori.ai",
|
|
401
|
+
description: "Nayori paid agent request",
|
|
402
|
+
});
|
|
403
|
+
|
|
404
|
+
const credential = createNayoriMppUsdcStacksCredential({
|
|
405
|
+
challenge,
|
|
406
|
+
source: `stacks:2147483648:${payerAddress}`,
|
|
407
|
+
transaction: walletSignedTransactionHex,
|
|
408
|
+
});
|
|
409
|
+
|
|
410
|
+
console.log(wwwAuthenticate);
|
|
411
|
+
console.log(encodeNayoriMppCredentialHeader(credential));
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
The verifier reuses Nayori's exact request-bound Stacks transaction checks and adds the MPP rules:
|
|
415
|
+
RFC 8785 envelopes, CAIP-10 source, canonical official USDCx identity, `OnChainOnly`, standard
|
|
416
|
+
single-signature authorization and low-s signing. Replay persistence, nonce/balance preflight,
|
|
417
|
+
broadcast, confirmations, receipt delivery and merchant authentication remain hosted Platform
|
|
418
|
+
responsibilities. See [MPP payments](docs/MPP_PAYMENTS.md) for the complete flow and trust boundary.
|
|
419
|
+
|
|
334
420
|
## x402 v2 Stacks facilitator
|
|
335
421
|
|
|
336
422
|
`PerkOSX402Facilitator` implements the official `SchemeNetworkFacilitator` interface. It reloads
|
|
@@ -391,11 +477,20 @@ or facilitator-submitted signed transaction.
|
|
|
391
477
|
- Automated workflows can wait for an explicit terminal confirmation before their next action.
|
|
392
478
|
- x402 quotes are bound to the configured network, escrow contract, asset, job, and exact budget.
|
|
393
479
|
- x402 settlement verifies current chain evidence and atomically consumes each funding txid once.
|
|
480
|
+
- MPP USDCx credentials echo a request-bound challenge and require a canonical, low-s,
|
|
481
|
+
`OnChainOnly` Stacks transfer; hosted settlement must still consume challenge and replay keys
|
|
482
|
+
atomically before broadcast.
|
|
483
|
+
- Partner OAuth enrollment signs an exact, short-lived, invitation-bound message in the wallet;
|
|
484
|
+
the SDK normalizes the public signature but never receives a private key.
|
|
485
|
+
- OAuth client secrets and access tokens are application secrets. The SDK returns them to the
|
|
486
|
+
caller but does not persist, log or refresh them automatically.
|
|
394
487
|
|
|
395
488
|
This package has not yet completed the external security review required for PerkOS Milestone 2.
|
|
396
489
|
Do not treat the developer release as audited software.
|
|
397
490
|
|
|
398
|
-
See [Architecture](docs/ARCHITECTURE.md)
|
|
491
|
+
See [Architecture](docs/ARCHITECTURE.md), [x402 payments](docs/X402_PAYMENTS.md),
|
|
492
|
+
[MPP payments](docs/MPP_PAYMENTS.md), [Partner pilot](docs/PARTNER_PILOT.md) and
|
|
493
|
+
[Security](SECURITY.md) for the trust boundaries and
|
|
399
494
|
responsible disclosure process.
|
|
400
495
|
|
|
401
496
|
## Development
|
package/SECURITY.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Release status
|
|
4
4
|
|
|
5
|
-
`@perkos/agent-sdk` 0.
|
|
5
|
+
`@perkos/agent-sdk` 0.5.0 is an M2 developer release and has not completed the external security
|
|
6
6
|
review required for the PerkOS Stacks Endowment milestone.
|
|
7
7
|
|
|
8
8
|
Do not use this developer release to control material funds without your own review. Inspect every
|
|
@@ -40,6 +40,14 @@ disclosure.
|
|
|
40
40
|
- Explicit direct-payment recipient, HTTPS origin, merchant, amount, fee, and session limits.
|
|
41
41
|
- Concurrent payment reservations that prevent asynchronous agents from oversubscribing a budget.
|
|
42
42
|
- Independent verification of every signed direct-payment transaction before facilitator submission.
|
|
43
|
+
- MPP PaymentAuth challenge binding, canonical JCS/base64url envelopes, CAIP-10 source matching,
|
|
44
|
+
official USDCx identity, `OnChainOnly`, standard single-signature authorization and low-s checks.
|
|
45
|
+
- MPP sponsorship is disabled; the pure verifier never represents a wallet approval, broadcast or
|
|
46
|
+
mempool response as confirmed settlement.
|
|
47
|
+
- Invitation-bound partner enrollment through exact Stacks message signing, with compressed public
|
|
48
|
+
key and recoverable-signature validation before API submission.
|
|
49
|
+
- OAuth client secrets and tokens remain caller-owned and are never persisted or automatically
|
|
50
|
+
refreshed by the SDK.
|
|
43
51
|
|
|
44
52
|
## Key handling
|
|
45
53
|
|
|
@@ -62,6 +70,12 @@ in-process policy is defense in depth and can be bypassed by a malicious host ap
|
|
|
62
70
|
custody service must independently authenticate callers, revalidate intent, enforce durable limits,
|
|
63
71
|
and keep keys outside the agent/LLM process.
|
|
64
72
|
|
|
73
|
+
`createStacksConnectPartnerSigner` uses `stx_signMessage` only for the exact partner-enrollment
|
|
74
|
+
challenge. This signature authorizes OAuth client creation, not a payment. The host must show the
|
|
75
|
+
message, network and selected address to the user, move the returned one-time client secret into a
|
|
76
|
+
secret manager and keep invitations, signatures, secrets and access tokens out of telemetry and
|
|
77
|
+
prompts.
|
|
78
|
+
|
|
65
79
|
## Confirmation handling
|
|
66
80
|
|
|
67
81
|
A broadcast receipt means a node accepted the transaction, not that the contract call succeeded.
|
|
@@ -76,3 +90,8 @@ The SDK prepares, validates, and submits transaction plans through an applicatio
|
|
|
76
90
|
signer. It does not prove that the signer implementation is safe. Applications must protect
|
|
77
91
|
private keys, verify wallet prompts, authenticate agent commands, and treat external tool or
|
|
78
92
|
model output as untrusted.
|
|
93
|
+
|
|
94
|
+
The MPP verifier does not authenticate merchants, check live nonces or balances, inspect token
|
|
95
|
+
pause/blocklist controls, persist challenge or transaction replay state, broadcast, reconcile,
|
|
96
|
+
confirm or deliver resources. A hosted deployment must enforce those controls atomically and must
|
|
97
|
+
only issue `Payment-Receipt` after its configured confirmation threshold is met.
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export { SpendingPolicy } from "./policy.js";
|
|
|
4
4
|
export { HeadlessSigner, StacksConnectSigner } from "./signers.js";
|
|
5
5
|
export { TransactionTracker } from "./tracker.js";
|
|
6
6
|
export { PerkOSError } from "./errors.js";
|
|
7
|
+
export { NAYORI_PARTNER_SCOPES, NayoriPartnerApiError, NayoriPartnerClient, createStacksConnectPartnerSigner, } from "./partner.js";
|
|
7
8
|
export { DEFAULT_DEPLOYMENTS, JOB_STATUS, CLARITY_ERROR_MESSAGES } from "./constants.js";
|
|
8
9
|
export { resolveConfig, toUint } from "./validation.js";
|
|
9
10
|
export { normalizeTxid } from "./txid.js";
|
|
@@ -11,12 +12,15 @@ export { PERKOS_X402_ASSET_TRANSFER_METHOD, PERKOS_X402_PAYMENT_FLOW, PERKOS_X40
|
|
|
11
12
|
export { HiroX402TransactionSource, InMemoryX402ReplayStore, PerkOSX402Facilitator, PerkOSX402VerificationError, perkosX402ReplayKey, } from "./x402-facilitator.js";
|
|
12
13
|
export { NAYORI_X402_DIRECT_ASSETS, NAYORI_X402_DIRECT_ASSET_TRANSFER_METHOD, NAYORI_X402_DIRECT_PAYMENT_FLOW, NAYORI_X402_QUOTE_FINGERPRINT_PREFIX, NAYORI_X402_QUOTE_VERSION, NayoriX402DirectVerificationError, canonicalizeNayoriX402Quote, canonicalizeNayoriX402ResourceUrl, createNayoriX402DirectPaymentPayload, createNayoriX402PaymentRequirements, createNayoriX402Quote, createNayoriX402QuoteFingerprint, getNayoriX402Asset, hashNayoriX402RequestBody, verifyNayoriX402DirectPayment, validateNayoriX402PaymentContext, } from "./x402-direct.js";
|
|
13
14
|
export { LeatherSigner, NAYORI_X402_PAYMENT_INTENT_PREFIX, NAYORI_X402_PAYMENT_INTENT_VERSION, NayoriX402PaymentClient, NayoriX402PaymentPolicy, PolicySigner, buildNayoriX402UnsignedPaymentTransaction, createNayoriX402PaymentIntent, } from "./x402-paying.js";
|
|
15
|
+
export { MPP_PAYMENT_SCHEME, NAYORI_MPP_CREDENTIAL_HEADER, NAYORI_MPP_INTENT, NAYORI_MPP_METHOD, NAYORI_MPP_PROFILE, NAYORI_MPP_TRANSACTION_FORMAT, NayoriMppVerificationError, buildNayoriMppUnsignedPaymentTransaction, canonicalizeNayoriMppJson, createNayoriMppUsdcStacksChallenge, createNayoriMppUsdcStacksCredential, createNayoriMppUsdcStacksReceipt, decodeNayoriMppChallengeHeader, decodeNayoriMppCredentialHeader, decodeNayoriMppJson, decodeNayoriMppReceiptHeader, decodeNayoriMppUsdcStacksRequest, encodeNayoriMppChallengeHeader, encodeNayoriMppCredentialHeader, encodeNayoriMppJson, encodeNayoriMppReceiptHeader, nayoriMppStacksReplayKey, verifyNayoriMppUsdcStacksPayment, } from "./mpp.js";
|
|
14
16
|
export type { HeadlessSignerOptions, HeadlessTransactionExecutor, HeadlessTransactionRequest, PrivateKeyMaterial, PrivateKeyProvider, StacksConnectContractCallParams, StacksConnectRequest, StacksConnectSignerOptions, } from "./signers.js";
|
|
15
17
|
export type { TrackerFetch, TransactionTrackerOptions, } from "./tracker.js";
|
|
16
18
|
export type { AgentEndpoint, AgentRecord, Amount, AmountLike, AssignProviderInput, ConfirmationOptions, ConfirmedTransactionReceipt, ContractCallPlan, ContractId, CreateJobInput, FundJobInput, JobAmountInput, JobRecord, JobStatus, PaymentAsset, PerkOSConfig, PerkOSContracts, PerkOSNetwork, PerkOSOperation, PerkOSSigner, RateProviderInput, ReadOnlyCall, ReadOnlyTransport, RegisterAgentInput, ReputationRecord, ResolvedPerkOSConfig, SettleJobInput, SignerResult, SpendingApproval, SpendingPolicyInput, SubmitWorkInput, TransactionIntent, TransactionConfirmation, TransactionConfirmationStatus, TransactionReceipt, TransactionResultValue, TransactionTrackerLike, UpdateAgentInput, } from "./types.js";
|
|
17
19
|
export type { PerkOSErrorCode, PerkOSErrorDetails } from "./errors.js";
|
|
20
|
+
export type { NayoriPartnerAccessToken, NayoriPartnerChallenge, NayoriPartnerCredentials, NayoriPartnerFetch, NayoriPartnerMessageSignature, NayoriPartnerMessageSigner, NayoriPartnerNetwork, NayoriPartnerScope, StacksConnectMessageRequest, } from "./partner.js";
|
|
18
21
|
export type { ParsedPerkOSX402Requirement, PaymentPayload, PaymentRequired, PaymentRequirements, PerkOSX402ClientLike, PerkOSX402PaymentProof, PerkOSX402PaymentRequiredInput, PerkOSX402SchemeClientOptions, ResourceInfo, SettleResponse, } from "./x402.js";
|
|
19
22
|
export type { HiroX402TransactionSourceOptions, PerkOSX402FacilitatorOptions, PerkOSX402ReplayRecord, PerkOSX402ReplayStore, PerkOSX402TransactionSource, PerkOSX402VerifiedPayment, X402VerifierFetch, } from "./x402-facilitator.js";
|
|
20
23
|
export type { NayoriStacksX402Network, NayoriX402AssetDefinition, NayoriX402DirectPaymentPayloadInput, NayoriX402PaymentAsset, NayoriX402ProtectedRequest, NayoriX402Quote, NayoriX402QuoteInput, NayoriX402VerifiedDirectPayment, NayoriX402ValidatedPaymentContext, ValidateNayoriX402PaymentContextInput, VerifyNayoriX402DirectPaymentInput, } from "./x402-direct.js";
|
|
24
|
+
export type { CreateNayoriMppChallengeInput, CreateNayoriMppCredentialInput, CreateNayoriMppReceiptInput, NayoriMppChallenge, NayoriMppChallengeBundle, NayoriMppJsonValue, NayoriMppUsdcStacksCredential, NayoriMppUsdcStacksDetails, NayoriMppUsdcStacksPayload, NayoriMppUsdcStacksReceipt, NayoriMppUsdcStacksRequest, NayoriMppVerifiedUsdcStacksPayment, VerifyNayoriMppUsdcStacksPaymentInput, } from "./mpp.js";
|
|
21
25
|
export type { LeatherRequest, LeatherSignTransactionParams, LeatherSignerOptions, NayoriX402PaymentAuthorization, NayoriX402PaymentClientOptions, NayoriX402PaymentIntent, NayoriX402PaymentIntentInput, NayoriX402PaymentPolicyInput, NayoriX402PaymentSessionUsage, NayoriX402PaymentSignRequest, NayoriX402PaymentSigner, NayoriX402PreparePaymentInput, NayoriX402PreparedPayment, NayoriX402SettlementRequest, NayoriX402SignedTransaction, PolicySignerCallback, PolicySignerOptions, PolicySignerRequest, } from "./x402-paying.js";
|
|
22
26
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,iCAAiC,EACjC,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,+BAA+B,EAC/B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,EACrB,6BAA6B,EAC7B,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,yBAAyB,EACzB,wCAAwC,EACxC,+BAA+B,EAC/B,oCAAoC,EACpC,yBAAyB,EACzB,iCAAiC,EACjC,2BAA2B,EAC3B,iCAAiC,EACjC,oCAAoC,EACpC,mCAAmC,EACnC,qBAAqB,EACrB,gCAAgC,EAChC,kBAAkB,EAClB,yBAAyB,EACzB,6BAA6B,EAC7B,gCAAgC,GACjC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,EACb,iCAAiC,EACjC,kCAAkC,EAClC,uBAAuB,EACvB,uBAAuB,EACvB,YAAY,EACZ,yCAAyC,EACzC,6BAA6B,GAC9B,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export { SpendingPolicy } from "./policy.js";
|
|
|
4
4
|
export { HeadlessSigner, StacksConnectSigner } from "./signers.js";
|
|
5
5
|
export { TransactionTracker } from "./tracker.js";
|
|
6
6
|
export { PerkOSError } from "./errors.js";
|
|
7
|
+
export { NAYORI_PARTNER_SCOPES, NayoriPartnerApiError, NayoriPartnerClient, createStacksConnectPartnerSigner, } from "./partner.js";
|
|
7
8
|
export { DEFAULT_DEPLOYMENTS, JOB_STATUS, CLARITY_ERROR_MESSAGES } from "./constants.js";
|
|
8
9
|
export { resolveConfig, toUint } from "./validation.js";
|
|
9
10
|
export { normalizeTxid } from "./txid.js";
|
|
@@ -11,4 +12,5 @@ export { PERKOS_X402_ASSET_TRANSFER_METHOD, PERKOS_X402_PAYMENT_FLOW, PERKOS_X40
|
|
|
11
12
|
export { HiroX402TransactionSource, InMemoryX402ReplayStore, PerkOSX402Facilitator, PerkOSX402VerificationError, perkosX402ReplayKey, } from "./x402-facilitator.js";
|
|
12
13
|
export { NAYORI_X402_DIRECT_ASSETS, NAYORI_X402_DIRECT_ASSET_TRANSFER_METHOD, NAYORI_X402_DIRECT_PAYMENT_FLOW, NAYORI_X402_QUOTE_FINGERPRINT_PREFIX, NAYORI_X402_QUOTE_VERSION, NayoriX402DirectVerificationError, canonicalizeNayoriX402Quote, canonicalizeNayoriX402ResourceUrl, createNayoriX402DirectPaymentPayload, createNayoriX402PaymentRequirements, createNayoriX402Quote, createNayoriX402QuoteFingerprint, getNayoriX402Asset, hashNayoriX402RequestBody, verifyNayoriX402DirectPayment, validateNayoriX402PaymentContext, } from "./x402-direct.js";
|
|
13
14
|
export { LeatherSigner, NAYORI_X402_PAYMENT_INTENT_PREFIX, NAYORI_X402_PAYMENT_INTENT_VERSION, NayoriX402PaymentClient, NayoriX402PaymentPolicy, PolicySigner, buildNayoriX402UnsignedPaymentTransaction, createNayoriX402PaymentIntent, } from "./x402-paying.js";
|
|
15
|
+
export { MPP_PAYMENT_SCHEME, NAYORI_MPP_CREDENTIAL_HEADER, NAYORI_MPP_INTENT, NAYORI_MPP_METHOD, NAYORI_MPP_PROFILE, NAYORI_MPP_TRANSACTION_FORMAT, NayoriMppVerificationError, buildNayoriMppUnsignedPaymentTransaction, canonicalizeNayoriMppJson, createNayoriMppUsdcStacksChallenge, createNayoriMppUsdcStacksCredential, createNayoriMppUsdcStacksReceipt, decodeNayoriMppChallengeHeader, decodeNayoriMppCredentialHeader, decodeNayoriMppJson, decodeNayoriMppReceiptHeader, decodeNayoriMppUsdcStacksRequest, encodeNayoriMppChallengeHeader, encodeNayoriMppCredentialHeader, encodeNayoriMppJson, encodeNayoriMppReceiptHeader, nayoriMppStacksReplayKey, verifyNayoriMppUsdcStacksPayment, } from "./mpp.js";
|
|
14
16
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,iCAAiC,EACjC,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,+BAA+B,EAC/B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,EACrB,6BAA6B,EAC7B,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,yBAAyB,EACzB,wCAAwC,EACxC,+BAA+B,EAC/B,oCAAoC,EACpC,yBAAyB,EACzB,iCAAiC,EACjC,2BAA2B,EAC3B,iCAAiC,EACjC,oCAAoC,EACpC,mCAAmC,EACnC,qBAAqB,EACrB,gCAAgC,EAChC,kBAAkB,EAClB,yBAAyB,EACzB,6BAA6B,EAC7B,gCAAgC,GACjC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,EACb,iCAAiC,EACjC,kCAAkC,EAClC,uBAAuB,EACvB,uBAAuB,EACvB,YAAY,EACZ,yCAAyC,EACzC,6BAA6B,GAC9B,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,gCAAgC,GACjC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,iCAAiC,EACjC,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,+BAA+B,EAC/B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,EACrB,6BAA6B,EAC7B,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,yBAAyB,EACzB,wCAAwC,EACxC,+BAA+B,EAC/B,oCAAoC,EACpC,yBAAyB,EACzB,iCAAiC,EACjC,2BAA2B,EAC3B,iCAAiC,EACjC,oCAAoC,EACpC,mCAAmC,EACnC,qBAAqB,EACrB,gCAAgC,EAChC,kBAAkB,EAClB,yBAAyB,EACzB,6BAA6B,EAC7B,gCAAgC,GACjC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,EACb,iCAAiC,EACjC,kCAAkC,EAClC,uBAAuB,EACvB,uBAAuB,EACvB,YAAY,EACZ,yCAAyC,EACzC,6BAA6B,GAC9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,6BAA6B,EAC7B,0BAA0B,EAC1B,wCAAwC,EACxC,yBAAyB,EACzB,kCAAkC,EAClC,mCAAmC,EACnC,gCAAgC,EAChC,8BAA8B,EAC9B,+BAA+B,EAC/B,mBAAmB,EACnB,4BAA4B,EAC5B,gCAAgC,EAChC,8BAA8B,EAC9B,+BAA+B,EAC/B,mBAAmB,EACnB,4BAA4B,EAC5B,wBAAwB,EACxB,gCAAgC,GACjC,MAAM,UAAU,CAAC"}
|
package/dist/mpp.d.ts
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import type { NayoriX402PaymentIntent } from "./x402-paying.js";
|
|
2
|
+
import type { NayoriX402ProtectedRequest, NayoriX402Quote, NayoriX402VerifiedDirectPayment } from "./x402-direct.js";
|
|
3
|
+
export declare const MPP_PAYMENT_SCHEME = "Payment";
|
|
4
|
+
export declare const NAYORI_MPP_METHOD = "usdc";
|
|
5
|
+
export declare const NAYORI_MPP_INTENT = "charge";
|
|
6
|
+
export declare const NAYORI_MPP_PROFILE = "stacks";
|
|
7
|
+
export declare const NAYORI_MPP_CREDENTIAL_HEADER = "Payment-Authorization";
|
|
8
|
+
export declare const NAYORI_MPP_TRANSACTION_FORMAT = "stacks_transaction_v1";
|
|
9
|
+
type JsonPrimitive = string | number | boolean | null;
|
|
10
|
+
export type NayoriMppJsonValue = JsonPrimitive | readonly NayoriMppJsonValue[] | {
|
|
11
|
+
readonly [key: string]: NayoriMppJsonValue;
|
|
12
|
+
};
|
|
13
|
+
export interface NayoriMppUsdcStacksDetails {
|
|
14
|
+
readonly network: "mainnet" | "testnet";
|
|
15
|
+
readonly chainId: "1" | "2147483648";
|
|
16
|
+
readonly contractAddress: string;
|
|
17
|
+
readonly contractName: string;
|
|
18
|
+
readonly assetName: "usdcx-token";
|
|
19
|
+
readonly functionName: "transfer";
|
|
20
|
+
readonly decimals: 6;
|
|
21
|
+
readonly feePayer: false;
|
|
22
|
+
}
|
|
23
|
+
export interface NayoriMppUsdcStacksRequest {
|
|
24
|
+
readonly amount: string;
|
|
25
|
+
readonly currency: string;
|
|
26
|
+
readonly recipient: string;
|
|
27
|
+
readonly description?: string;
|
|
28
|
+
readonly externalId: string;
|
|
29
|
+
readonly methodDetails: {
|
|
30
|
+
readonly type: typeof NAYORI_MPP_PROFILE;
|
|
31
|
+
readonly stacks: NayoriMppUsdcStacksDetails;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export interface NayoriMppChallenge {
|
|
35
|
+
readonly id: string;
|
|
36
|
+
readonly realm: string;
|
|
37
|
+
readonly method: typeof NAYORI_MPP_METHOD;
|
|
38
|
+
readonly intent: typeof NAYORI_MPP_INTENT;
|
|
39
|
+
readonly request: string;
|
|
40
|
+
readonly expires: string;
|
|
41
|
+
readonly digest: string;
|
|
42
|
+
readonly header: typeof NAYORI_MPP_CREDENTIAL_HEADER;
|
|
43
|
+
readonly description?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface NayoriMppChallengeBundle {
|
|
46
|
+
readonly challenge: NayoriMppChallenge;
|
|
47
|
+
readonly paymentRequest: NayoriMppUsdcStacksRequest;
|
|
48
|
+
readonly wwwAuthenticate: string;
|
|
49
|
+
}
|
|
50
|
+
export interface NayoriMppUsdcStacksPayload {
|
|
51
|
+
readonly type: "transaction";
|
|
52
|
+
readonly transaction: string;
|
|
53
|
+
readonly transactionFormat?: typeof NAYORI_MPP_TRANSACTION_FORMAT;
|
|
54
|
+
}
|
|
55
|
+
export interface NayoriMppUsdcStacksCredential {
|
|
56
|
+
readonly challenge: NayoriMppChallenge;
|
|
57
|
+
readonly source: string;
|
|
58
|
+
readonly payload: NayoriMppUsdcStacksPayload;
|
|
59
|
+
}
|
|
60
|
+
export interface NayoriMppUsdcStacksReceipt {
|
|
61
|
+
readonly method: typeof NAYORI_MPP_METHOD;
|
|
62
|
+
readonly type: typeof NAYORI_MPP_PROFILE;
|
|
63
|
+
readonly challengeId: string;
|
|
64
|
+
readonly reference: string;
|
|
65
|
+
readonly status: "success";
|
|
66
|
+
readonly timestamp: string;
|
|
67
|
+
readonly network: "stacks:1" | "stacks:2147483648";
|
|
68
|
+
readonly externalId?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface CreateNayoriMppChallengeInput {
|
|
71
|
+
/** Trusted, server-issued Nayori quote. Its quoteId becomes the stateful MPP challenge id. */
|
|
72
|
+
readonly quote: NayoriX402Quote;
|
|
73
|
+
readonly realm: string;
|
|
74
|
+
readonly description?: string;
|
|
75
|
+
}
|
|
76
|
+
export interface CreateNayoriMppCredentialInput {
|
|
77
|
+
readonly challenge: NayoriMppChallenge;
|
|
78
|
+
/** CAIP-10 account: stacks:<chainId>:<standard-principal>. */
|
|
79
|
+
readonly source: string;
|
|
80
|
+
/** Signed Stacks transaction encoded as hexadecimal consensus bytes. */
|
|
81
|
+
readonly transaction: string;
|
|
82
|
+
}
|
|
83
|
+
export interface VerifyNayoriMppUsdcStacksPaymentInput {
|
|
84
|
+
readonly credential: unknown;
|
|
85
|
+
readonly expectedChallenge: NayoriMppChallenge;
|
|
86
|
+
/** The hosted layer must authenticate the merchant and validate the quote signature first. */
|
|
87
|
+
readonly trustedQuote: NayoriX402Quote;
|
|
88
|
+
readonly request: NayoriX402ProtectedRequest;
|
|
89
|
+
readonly nowSeconds?: number;
|
|
90
|
+
readonly clockSkewSeconds?: number;
|
|
91
|
+
}
|
|
92
|
+
export interface NayoriMppVerifiedUsdcStacksPayment extends NayoriX402VerifiedDirectPayment {
|
|
93
|
+
readonly protocol: "mpp";
|
|
94
|
+
readonly method: typeof NAYORI_MPP_METHOD;
|
|
95
|
+
readonly intent: typeof NAYORI_MPP_INTENT;
|
|
96
|
+
readonly profile: typeof NAYORI_MPP_PROFILE;
|
|
97
|
+
readonly challengeId: string;
|
|
98
|
+
readonly source: string;
|
|
99
|
+
}
|
|
100
|
+
export interface CreateNayoriMppReceiptInput {
|
|
101
|
+
readonly challengeId: string;
|
|
102
|
+
readonly reference: string;
|
|
103
|
+
readonly network: "mainnet" | "testnet";
|
|
104
|
+
readonly settledAt?: Date | string;
|
|
105
|
+
readonly externalId?: string;
|
|
106
|
+
}
|
|
107
|
+
export declare class NayoriMppVerificationError extends Error {
|
|
108
|
+
readonly reason: string;
|
|
109
|
+
readonly details: Readonly<Record<string, unknown>> | undefined;
|
|
110
|
+
constructor(reason: string, message: string, details?: Readonly<Record<string, unknown>>);
|
|
111
|
+
}
|
|
112
|
+
/** RFC 8785 JSON Canonicalization Scheme for JSON-compatible values. */
|
|
113
|
+
export declare function canonicalizeNayoriMppJson(value: unknown): string;
|
|
114
|
+
export declare function encodeNayoriMppJson(value: unknown): string;
|
|
115
|
+
export declare function decodeNayoriMppJson(value: string, field?: string): unknown;
|
|
116
|
+
export declare function decodeNayoriMppUsdcStacksRequest(encoded: string): NayoriMppUsdcStacksRequest;
|
|
117
|
+
export declare function encodeNayoriMppChallengeHeader(challengeInput: NayoriMppChallenge): string;
|
|
118
|
+
export declare function decodeNayoriMppChallengeHeader(value: string): NayoriMppChallenge;
|
|
119
|
+
export declare function createNayoriMppUsdcStacksChallenge(input: CreateNayoriMppChallengeInput): Promise<NayoriMppChallengeBundle>;
|
|
120
|
+
export declare function createNayoriMppUsdcStacksCredential(input: CreateNayoriMppCredentialInput): NayoriMppUsdcStacksCredential;
|
|
121
|
+
/**
|
|
122
|
+
* Builds the canonical Nayori USDCx transfer and selects the OnChainOnly
|
|
123
|
+
* anchor mode required by the MPP USDC Stacks profile. The returned
|
|
124
|
+
* transaction is unsigned and can be passed to Leather or another signer.
|
|
125
|
+
*/
|
|
126
|
+
export declare function buildNayoriMppUnsignedPaymentTransaction(intent: NayoriX402PaymentIntent): Promise<string>;
|
|
127
|
+
export declare function encodeNayoriMppCredentialHeader(credentialInput: NayoriMppUsdcStacksCredential): string;
|
|
128
|
+
export declare function decodeNayoriMppCredentialHeader(value: string): NayoriMppUsdcStacksCredential;
|
|
129
|
+
export declare function verifyNayoriMppUsdcStacksPayment(input: VerifyNayoriMppUsdcStacksPaymentInput): Promise<NayoriMppVerifiedUsdcStacksPayment>;
|
|
130
|
+
export declare function createNayoriMppUsdcStacksReceipt(input: CreateNayoriMppReceiptInput): NayoriMppUsdcStacksReceipt;
|
|
131
|
+
export declare function encodeNayoriMppReceiptHeader(receipt: NayoriMppUsdcStacksReceipt): string;
|
|
132
|
+
export declare function decodeNayoriMppReceiptHeader(value: string): NayoriMppUsdcStacksReceipt;
|
|
133
|
+
export declare function nayoriMppStacksReplayKey(payment: Pick<NayoriMppVerifiedUsdcStacksPayment, "network" | "payer" | "originNonce" | "transactionHash">): string;
|
|
134
|
+
export {};
|
|
135
|
+
//# sourceMappingURL=mpp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mpp.d.ts","sourceRoot":"","sources":["../src/mpp.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAGhE,OAAO,KAAK,EACV,0BAA0B,EAC1B,eAAe,EACf,+BAA+B,EAChC,MAAM,kBAAkB,CAAC;AAE1B,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAC1C,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAC3C,eAAO,MAAM,4BAA4B,0BAA0B,CAAC;AACpE,eAAO,MAAM,6BAA6B,0BAA0B,CAAC;AAYrE,KAAK,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AACtD,MAAM,MAAM,kBAAkB,GAC1B,aAAa,GACb,SAAS,kBAAkB,EAAE,GAC7B;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAA;CAAE,CAAC;AAEnD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,GAAG,GAAG,YAAY,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE;QACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,kBAAkB,CAAC;QACzC,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;KAC7C,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,OAAO,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,4BAA4B,CAAC;IACrD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,cAAc,EAAE,0BAA0B,CAAC;IACpD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,6BAA6B,CAAC;CACnE;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;CAC9C;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,EAAE,OAAO,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,OAAO,kBAAkB,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,mBAAmB,CAAC;IACnD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,6BAA6B;IAC5C,8FAA8F;IAC9F,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,wEAAwE;IACxE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,qCAAqC;IACpD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAC/C,8FAA8F;IAC9F,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,kCACf,SAAQ,+BAA+B;IACvC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,OAAO,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,OAAO,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,kBAAkB,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;gBAG9D,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAO9C;AA2GD,wEAAwE;AACxE,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEhE;AA+CD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE1D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAiB,GAAG,OAAO,CAkBlF;AAsED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,MAAM,GACd,0BAA0B,CA+F5B;AAuBD,wBAAgB,8BAA8B,CAAC,cAAc,EAAE,kBAAkB,GAAG,MAAM,CAgBzF;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CA2EhF;AAED,wBAAsB,kCAAkC,CACtD,KAAK,EAAE,6BAA6B,GACnC,OAAO,CAAC,wBAAwB,CAAC,CAmDnC;AAmHD,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,8BAA8B,GACpC,6BAA6B,CAgB/B;AAED;;;;GAIG;AACH,wBAAsB,wCAAwC,CAC5D,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,MAAM,CAAC,CASjB;AAED,wBAAgB,+BAA+B,CAC7C,eAAe,EAAE,6BAA6B,GAC7C,MAAM,CAGR;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,MAAM,GAAG,6BAA6B,CAM5F;AA4BD,wBAAsB,gCAAgC,CACpD,KAAK,EAAE,qCAAqC,GAC3C,OAAO,CAAC,kCAAkC,CAAC,CAoE7C;AAYD,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,2BAA2B,GACjC,0BAA0B,CAwB5B;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM,CAExF;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,0BAA0B,CA+BtF;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,IAAI,CACX,kCAAkC,EAClC,SAAS,GAAG,OAAO,GAAG,aAAa,GAAG,iBAAiB,CACxD,GACA,MAAM,CAER"}
|