mppx 0.7.0 → 0.8.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 +33 -0
- package/README.md +20 -11
- package/dist/Challenge.d.ts.map +1 -1
- package/dist/Challenge.js +18 -6
- package/dist/Challenge.js.map +1 -1
- package/dist/Mcp.d.ts +3 -0
- package/dist/Mcp.d.ts.map +1 -1
- package/dist/Mcp.js +2 -0
- package/dist/Mcp.js.map +1 -1
- package/dist/PaymentRequest.d.ts +10 -10
- package/dist/PaymentRequest.js +8 -8
- package/dist/client/Mppx.js +2 -2
- package/dist/client/Mppx.js.map +1 -1
- package/dist/client/Transport.d.ts +11 -16
- package/dist/client/Transport.d.ts.map +1 -1
- package/dist/client/Transport.js +55 -75
- package/dist/client/Transport.js.map +1 -1
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/internal/Fetch.d.ts.map +1 -1
- package/dist/client/internal/Fetch.js +46 -7
- package/dist/client/internal/Fetch.js.map +1 -1
- package/dist/client/internal/protocols/Mcp.d.ts +7 -0
- package/dist/client/internal/protocols/Mcp.d.ts.map +1 -0
- package/dist/client/internal/protocols/Mcp.js +159 -0
- package/dist/client/internal/protocols/Mcp.js.map +1 -0
- package/dist/client/internal/protocols/Mpp.d.ts +4 -0
- package/dist/client/internal/protocols/Mpp.d.ts.map +1 -0
- package/dist/client/internal/protocols/Mpp.js +18 -0
- package/dist/client/internal/protocols/Mpp.js.map +1 -0
- package/dist/client/internal/protocols/Protocol.d.ts +10 -0
- package/dist/client/internal/protocols/Protocol.d.ts.map +1 -0
- package/dist/client/internal/protocols/Protocol.js +2 -0
- package/dist/client/internal/protocols/Protocol.js.map +1 -0
- package/dist/client/internal/protocols/Shared.d.ts +5 -0
- package/dist/client/internal/protocols/Shared.d.ts.map +1 -0
- package/dist/client/internal/protocols/Shared.js +20 -0
- package/dist/client/internal/protocols/Shared.js.map +1 -0
- package/dist/client/internal/protocols/X402.d.ts +8 -0
- package/dist/client/internal/protocols/X402.d.ts.map +1 -0
- package/dist/client/internal/protocols/X402.js +39 -0
- package/dist/client/internal/protocols/X402.js.map +1 -0
- package/dist/evm/client/index.d.ts +1 -0
- package/dist/evm/client/index.d.ts.map +1 -1
- package/dist/evm/client/index.js +1 -0
- package/dist/evm/client/index.js.map +1 -1
- package/dist/evm/index.d.ts +2 -0
- package/dist/evm/index.d.ts.map +1 -1
- package/dist/evm/index.js +2 -0
- package/dist/evm/index.js.map +1 -1
- package/dist/evm/server/index.d.ts +1 -0
- package/dist/evm/server/index.d.ts.map +1 -1
- package/dist/evm/server/index.js +1 -0
- package/dist/evm/server/index.js.map +1 -1
- package/dist/mcp/client/McpClient.d.ts +101 -0
- package/dist/mcp/client/McpClient.d.ts.map +1 -0
- package/dist/mcp/client/McpClient.js +162 -0
- package/dist/mcp/client/McpClient.js.map +1 -0
- package/dist/mcp/client/index.d.ts.map +1 -0
- package/dist/mcp/client/index.js.map +1 -0
- package/dist/mcp/server/Transport.d.ts.map +1 -0
- package/dist/mcp/server/Transport.js.map +1 -0
- package/dist/mcp/server/index.d.ts.map +1 -0
- package/dist/mcp/server/index.js.map +1 -0
- package/dist/server/Mppx.d.ts +1 -1
- package/dist/server/Mppx.d.ts.map +1 -1
- package/dist/server/Mppx.js +9 -0
- package/dist/server/Mppx.js.map +1 -1
- package/dist/server/Transport.d.ts +1 -1
- package/dist/server/Transport.d.ts.map +1 -1
- package/dist/server/Transport.js +1 -1
- package/dist/server/Transport.js.map +1 -1
- package/dist/stripe/server/internal/html.gen.d.ts +1 -1
- package/dist/stripe/server/internal/html.gen.d.ts.map +1 -1
- package/dist/stripe/server/internal/html.gen.js +1 -1
- package/dist/stripe/server/internal/html.gen.js.map +1 -1
- package/dist/tempo/Proof.d.ts +85 -1
- package/dist/tempo/Proof.d.ts.map +1 -1
- package/dist/tempo/Proof.js +35 -0
- package/dist/tempo/Proof.js.map +1 -1
- package/dist/tempo/client/Charge.d.ts +13 -1
- package/dist/tempo/client/Charge.d.ts.map +1 -1
- package/dist/tempo/client/Charge.js +38 -25
- package/dist/tempo/client/Charge.js.map +1 -1
- package/dist/tempo/client/Methods.d.ts +5 -3
- package/dist/tempo/client/Methods.d.ts.map +1 -1
- package/dist/tempo/client/Methods.js +4 -2
- package/dist/tempo/client/Methods.js.map +1 -1
- package/dist/tempo/client/ResolveAccount.d.ts +40 -0
- package/dist/tempo/client/ResolveAccount.d.ts.map +1 -0
- package/dist/tempo/client/ResolveAccount.js +2 -0
- package/dist/tempo/client/ResolveAccount.js.map +1 -0
- package/dist/tempo/internal/fee-payer.d.ts +9 -1
- package/dist/tempo/internal/fee-payer.d.ts.map +1 -1
- package/dist/tempo/internal/fee-payer.js +35 -6
- package/dist/tempo/internal/fee-payer.js.map +1 -1
- package/dist/tempo/internal/proof.d.ts +71 -5
- package/dist/tempo/internal/proof.d.ts.map +1 -1
- package/dist/tempo/internal/proof.js +42 -6
- package/dist/tempo/internal/proof.js.map +1 -1
- package/dist/tempo/legacy/client/SessionManager.d.ts.map +1 -1
- package/dist/tempo/legacy/client/SessionManager.js +10 -3
- package/dist/tempo/legacy/client/SessionManager.js.map +1 -1
- package/dist/tempo/server/Charge.d.ts.map +1 -1
- package/dist/tempo/server/Charge.js +42 -18
- package/dist/tempo/server/Charge.js.map +1 -1
- package/dist/tempo/server/Methods.d.ts +4 -2
- package/dist/tempo/server/Methods.d.ts.map +1 -1
- package/dist/tempo/server/Methods.js +4 -2
- package/dist/tempo/server/Methods.js.map +1 -1
- package/dist/tempo/server/Subscription.d.ts +10 -0
- package/dist/tempo/server/Subscription.d.ts.map +1 -1
- package/dist/tempo/server/Subscription.js +135 -23
- package/dist/tempo/server/Subscription.js.map +1 -1
- package/dist/tempo/server/internal/html.gen.d.ts +1 -1
- package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
- package/dist/tempo/server/internal/html.gen.js +1 -1
- package/dist/tempo/server/internal/html.gen.js.map +1 -1
- package/dist/tempo/session/client/ChannelOps.d.ts +2 -3
- package/dist/tempo/session/client/ChannelOps.d.ts.map +1 -1
- package/dist/tempo/session/client/ChannelOps.js +7 -10
- package/dist/tempo/session/client/ChannelOps.js.map +1 -1
- package/dist/tempo/session/client/ChannelStore.d.ts +51 -0
- package/dist/tempo/session/client/ChannelStore.d.ts.map +1 -0
- package/dist/tempo/session/client/ChannelStore.js +63 -0
- package/dist/tempo/session/client/ChannelStore.js.map +1 -0
- package/dist/tempo/session/client/CredentialState.d.ts +7 -24
- package/dist/tempo/session/client/CredentialState.d.ts.map +1 -1
- package/dist/tempo/session/client/CredentialState.js +51 -49
- package/dist/tempo/session/client/CredentialState.js.map +1 -1
- package/dist/tempo/session/client/Session.d.ts +8 -2
- package/dist/tempo/session/client/Session.d.ts.map +1 -1
- package/dist/tempo/session/client/Session.js +22 -8
- package/dist/tempo/session/client/Session.js.map +1 -1
- package/dist/tempo/session/client/SessionManager.d.ts +4 -40
- package/dist/tempo/session/client/SessionManager.d.ts.map +1 -1
- package/dist/tempo/session/client/SessionManager.js +124 -174
- package/dist/tempo/session/client/SessionManager.js.map +1 -1
- package/dist/tempo/session/client/index.d.ts +3 -4
- package/dist/tempo/session/client/index.d.ts.map +1 -1
- package/dist/tempo/session/client/index.js +1 -0
- package/dist/tempo/session/client/index.js.map +1 -1
- package/dist/tempo/session/precompile/Voucher.d.ts +3 -3
- package/dist/tempo/session/precompile/Voucher.d.ts.map +1 -1
- package/dist/tempo/session/precompile/Voucher.js +24 -25
- package/dist/tempo/session/precompile/Voucher.js.map +1 -1
- package/dist/tempo/session/server/Settlement.d.ts.map +1 -1
- package/dist/tempo/session/server/Settlement.js +4 -2
- package/dist/tempo/session/server/Settlement.js.map +1 -1
- package/dist/tempo/session/server/Sse.d.ts.map +1 -1
- package/dist/tempo/session/server/Sse.js.map +1 -1
- package/dist/tempo/session/server/Ws.d.ts.map +1 -1
- package/dist/tempo/session/server/Ws.js.map +1 -1
- package/dist/tempo/subscription/KeyAuthorization.d.ts +712 -1
- package/dist/tempo/subscription/KeyAuthorization.d.ts.map +1 -1
- package/dist/tempo/subscription/Store.d.ts +2 -0
- package/dist/tempo/subscription/Store.d.ts.map +1 -1
- package/dist/tempo/subscription/Store.js +16 -1
- package/dist/tempo/subscription/Store.js.map +1 -1
- package/dist/x402/index.d.ts +1 -0
- package/dist/x402/index.d.ts.map +1 -1
- package/dist/x402/index.js +1 -0
- package/dist/x402/index.js.map +1 -1
- package/package.json +21 -10
- package/src/Challenge.test.ts +40 -0
- package/src/Challenge.ts +19 -6
- package/src/Mcp.ts +4 -0
- package/src/PaymentRequest.ts +10 -10
- package/src/cli/cli.test.ts +15 -15
- package/src/client/Mppx.test-d.ts +21 -1
- package/src/client/Mppx.test.ts +1 -1
- package/src/client/Mppx.ts +2 -2
- package/src/client/Transport.test.ts +225 -178
- package/src/client/Transport.ts +77 -83
- package/src/client/index.ts +14 -0
- package/src/client/internal/Fetch.test.ts +207 -2
- package/src/client/internal/Fetch.ts +52 -6
- package/src/client/internal/protocols/Mcp.test.ts +220 -0
- package/src/client/internal/protocols/Mcp.ts +162 -0
- package/src/client/internal/protocols/Mpp.ts +21 -0
- package/src/client/internal/protocols/Protocol.ts +10 -0
- package/src/client/internal/protocols/Shared.ts +25 -0
- package/src/client/internal/protocols/X402.ts +42 -0
- package/src/discovery/OpenApi.test.ts +1 -1
- package/src/evm/PublicInterface.test-d.ts +1 -1
- package/src/evm/client/index.ts +1 -0
- package/src/evm/index.ts +2 -0
- package/src/evm/server/Charge.test.ts +1 -1
- package/src/evm/server/index.ts +1 -0
- package/src/{mcp-sdk → mcp}/client/McpClient.integration.test.ts +10 -4
- package/src/{mcp-sdk → mcp}/client/McpClient.test-d.ts +45 -18
- package/src/{mcp-sdk → mcp}/client/McpClient.test.ts +211 -5
- package/src/mcp/client/McpClient.ts +307 -0
- package/src/{mcp-sdk → mcp}/client/McpClient.unit.test.ts +9 -5
- package/src/middlewares/elysia.test.ts +1 -1
- package/src/middlewares/express.test.ts +1 -1
- package/src/middlewares/hono.test.ts +1 -1
- package/src/middlewares/internal/mppx.test.ts +1 -1
- package/src/middlewares/nextjs.test.ts +1 -1
- package/src/proxy/Proxy.test.ts +1 -1
- package/src/proxy/services/anthropic.test.ts +1 -1
- package/src/proxy/services/openai.test.ts +1 -1
- package/src/proxy/services/stripe.test.ts +1 -1
- package/src/server/Mppx.authorize.test.ts +1 -1
- package/src/server/Mppx.test-d.ts +1 -1
- package/src/server/Mppx.test.ts +20 -2
- package/src/server/Mppx.ts +14 -1
- package/src/server/Transport.test.ts +6 -6
- package/src/server/Transport.ts +1 -1
- package/src/stripe/Charge.integration.test.ts +1 -1
- package/src/stripe/client/Charge.test.ts +1 -1
- package/src/stripe/server/Charge.test.ts +1 -1
- package/src/stripe/server/internal/html/package.json +1 -1
- package/src/stripe/server/internal/html.gen.ts +1 -1
- package/src/tempo/Proof.conformance.test.ts +146 -0
- package/src/tempo/Proof.test-d.ts +15 -0
- package/src/tempo/Proof.ts +52 -1
- package/src/tempo/Subscription.integration.test.ts +1 -1
- package/src/tempo/client/Charge.test.ts +173 -0
- package/src/tempo/client/Charge.ts +65 -36
- package/src/tempo/client/Methods.ts +4 -2
- package/src/tempo/client/ResolveAccount.ts +46 -0
- package/src/tempo/internal/fee-payer.test.ts +65 -10
- package/src/tempo/internal/fee-payer.ts +42 -6
- package/src/tempo/internal/proof.test.ts +12 -4
- package/src/tempo/internal/proof.ts +55 -6
- package/src/tempo/legacy/client/SessionManager.ts +11 -3
- package/src/tempo/legacy/server/Session.test.ts +91 -26
- package/src/tempo/server/Charge.test.ts +388 -17
- package/src/tempo/server/Charge.ts +46 -24
- package/src/tempo/server/Methods.ts +4 -2
- package/src/tempo/server/Subscription.test.ts +465 -3
- package/src/tempo/server/Subscription.ts +174 -19
- package/src/tempo/server/internal/html/package.json +2 -2
- package/src/tempo/server/internal/html.gen.ts +1 -1
- package/src/tempo/session/client/ChannelOps.ts +5 -19
- package/src/tempo/session/client/ChannelStore.ts +111 -0
- package/src/tempo/session/client/CredentialState.test.ts +206 -62
- package/src/tempo/session/client/CredentialState.ts +58 -73
- package/src/tempo/session/client/Session.test.ts +41 -1
- package/src/tempo/session/client/Session.ts +36 -10
- package/src/tempo/session/client/SessionManager.test.ts +154 -65
- package/src/tempo/session/client/SessionManager.ts +141 -235
- package/src/tempo/session/client/index.ts +8 -5
- package/src/tempo/session/precompile/Voucher.test.ts +45 -7
- package/src/tempo/session/precompile/Voucher.ts +27 -25
- package/src/tempo/session/server/Session.test.ts +4 -4
- package/src/tempo/session/server/Settlement.test.ts +88 -1
- package/src/tempo/session/server/Settlement.ts +2 -1
- package/src/tempo/session/server/Sse.ts +0 -2
- package/src/tempo/session/server/Ws.ts +0 -4
- package/src/tempo/subscription/Store.ts +27 -9
- package/src/x402/Exact.e2e.test.ts +1 -1
- package/src/x402/PublicInterface.test-d.ts +1 -1
- package/src/x402/index.ts +1 -0
- package/dist/mcp-sdk/client/McpClient.d.ts +0 -85
- package/dist/mcp-sdk/client/McpClient.d.ts.map +0 -1
- package/dist/mcp-sdk/client/McpClient.js +0 -118
- package/dist/mcp-sdk/client/McpClient.js.map +0 -1
- package/dist/mcp-sdk/client/index.d.ts.map +0 -1
- package/dist/mcp-sdk/client/index.js.map +0 -1
- package/dist/mcp-sdk/server/Transport.d.ts.map +0 -1
- package/dist/mcp-sdk/server/Transport.js.map +0 -1
- package/dist/mcp-sdk/server/index.d.ts.map +0 -1
- package/dist/mcp-sdk/server/index.js.map +0 -1
- package/src/mcp-sdk/client/McpClient.ts +0 -228
- /package/dist/{mcp-sdk → mcp}/client/index.d.ts +0 -0
- /package/dist/{mcp-sdk → mcp}/client/index.js +0 -0
- /package/dist/{mcp-sdk → mcp}/server/Transport.d.ts +0 -0
- /package/dist/{mcp-sdk → mcp}/server/Transport.js +0 -0
- /package/dist/{mcp-sdk → mcp}/server/index.d.ts +0 -0
- /package/dist/{mcp-sdk → mcp}/server/index.js +0 -0
- /package/src/{mcp-sdk → mcp}/client/index.ts +0 -0
- /package/src/{mcp-sdk → mcp}/server/Transport.test.ts +0 -0
- /package/src/{mcp-sdk → mcp}/server/Transport.ts +0 -0
- /package/src/{mcp-sdk → mcp}/server/index.ts +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as SignatureEnvelope from 'ox/tempo/SignatureEnvelope';
|
|
2
|
-
import { decodeFunctionData, formatUnits,
|
|
2
|
+
import { decodeFunctionData, formatUnits, keccak256, parseEventLogs, } from 'viem';
|
|
3
3
|
import { getTransactionReceipt, sendRawTransaction, sendRawTransactionSync, signTransaction, verifyTypedData, call as viem_call, } from 'viem/actions';
|
|
4
4
|
import { Abis, Actions, Transaction } from 'viem/tempo';
|
|
5
5
|
import { tempo as tempo_chain } from 'viem/tempo/chains';
|
|
@@ -226,11 +226,15 @@ export function charge(parameters = {}) {
|
|
|
226
226
|
throw new MismatchError('Proof credential source is invalid.', {});
|
|
227
227
|
}
|
|
228
228
|
const valid = await verifyTypedData(client, {
|
|
229
|
+
// Bind verification to the claimed payer (`source.address`): the
|
|
230
|
+
// signer may be the payer itself or an access key authorized for it.
|
|
229
231
|
address: source.address,
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
232
|
+
...Proof.typedData({
|
|
233
|
+
account: source.address,
|
|
234
|
+
chainId: resolvedChainId,
|
|
235
|
+
challengeId: challenge.id,
|
|
236
|
+
realm: challenge.realm,
|
|
237
|
+
}),
|
|
234
238
|
signature: payload.signature,
|
|
235
239
|
});
|
|
236
240
|
if (!valid) {
|
|
@@ -311,6 +315,9 @@ export function charge(parameters = {}) {
|
|
|
311
315
|
const allowedFeeTokens = FeePayer.defaultAllowedFeeTokens(chainId);
|
|
312
316
|
if (isFeePayerTx)
|
|
313
317
|
FeePayer.assertAllowedFeeToken(transaction, allowedFeeTokens);
|
|
318
|
+
// Request for the pre-broadcast simulation; for sponsored payments
|
|
319
|
+
// this is overwritten below with the co-signed shape.
|
|
320
|
+
let simulationRequest = FeePayer.simulationTransaction(transaction, { feePayer: isFeePayerTx });
|
|
314
321
|
const serializedTransaction_final = await (async () => {
|
|
315
322
|
if (feePayerAccount && methodDetails?.feePayer !== false) {
|
|
316
323
|
const sponsored = FeePayer.prepareSponsoredTransaction({
|
|
@@ -325,18 +332,41 @@ export function charge(parameters = {}) {
|
|
|
325
332
|
feeToken: transaction.feeToken ?? defaults.tokens.pathUsd,
|
|
326
333
|
},
|
|
327
334
|
});
|
|
335
|
+
// `account` is the sender (eth_call `from`); `feePayer` is the
|
|
336
|
+
// sponsor that pays gas.
|
|
337
|
+
simulationRequest = {
|
|
338
|
+
...sponsored,
|
|
339
|
+
account: transaction.from,
|
|
340
|
+
feePayer: feePayerAccount.address,
|
|
341
|
+
feePayerSignature: undefined,
|
|
342
|
+
signature: undefined,
|
|
343
|
+
};
|
|
328
344
|
return signTransaction(client, sponsored);
|
|
329
345
|
}
|
|
330
|
-
if (feePayerUrl && isFeePayerTx)
|
|
331
|
-
|
|
346
|
+
if (feePayerUrl && isFeePayerTx) {
|
|
347
|
+
const hosted = await FeePayer.fillHostedFeePayerTransaction({
|
|
332
348
|
allowedFeeTokens,
|
|
333
349
|
transaction,
|
|
334
350
|
url: feePayerUrl,
|
|
335
351
|
});
|
|
352
|
+
// Simulate the co-signed envelope (concrete fee payer + chosen
|
|
353
|
+
// fee token), mirroring the local-sponsor path.
|
|
354
|
+
simulationRequest = {
|
|
355
|
+
...transaction,
|
|
356
|
+
account: transaction.from,
|
|
357
|
+
feePayer: hosted.feePayer,
|
|
358
|
+
feePayerSignature: undefined,
|
|
359
|
+
feeToken: hosted.feeToken,
|
|
360
|
+
signature: undefined,
|
|
361
|
+
};
|
|
362
|
+
return hosted.serializedTransaction;
|
|
363
|
+
}
|
|
336
364
|
return serializedTransaction;
|
|
337
365
|
})();
|
|
366
|
+
// Pre-broadcast simulation: fail closed before broadcast so the
|
|
367
|
+
// sponsor never pays gas for a transaction that would revert.
|
|
368
|
+
await viem_call(client, simulationRequest);
|
|
338
369
|
if (waitForConfirmation) {
|
|
339
|
-
await viem_call(client, FeePayer.simulationTransaction(transaction, { feePayer: isFeePayerTx }));
|
|
340
370
|
const receipt = await sendRawTransactionSync(client, {
|
|
341
371
|
serializedTransaction: serializedTransaction_final,
|
|
342
372
|
});
|
|
@@ -363,10 +393,9 @@ export function charge(parameters = {}) {
|
|
|
363
393
|
releaseReservation = false;
|
|
364
394
|
return toReceipt(receipt);
|
|
365
395
|
}
|
|
366
|
-
// Optimistic path:
|
|
367
|
-
//
|
|
368
|
-
//
|
|
369
|
-
await viem_call(client, FeePayer.simulationTransaction(transaction, { feePayer: isFeePayerTx }));
|
|
396
|
+
// Optimistic path: broadcast without waiting for confirmation
|
|
397
|
+
// (simulation above already ran). The returned receipt assumes
|
|
398
|
+
// success — callers opt in via waitForConfirmation: false.
|
|
370
399
|
const reference = await sendRawTransaction(client, {
|
|
371
400
|
serializedTransaction: serializedTransaction_final,
|
|
372
401
|
});
|
|
@@ -690,12 +719,7 @@ function recoverAuthorizedProofSigner(parameters) {
|
|
|
690
719
|
const { chainId, challengeId, realm, signature, sourceAddress } = parameters;
|
|
691
720
|
try {
|
|
692
721
|
const envelope = SignatureEnvelope.from(signature);
|
|
693
|
-
const proofHash =
|
|
694
|
-
domain: Proof.domain(chainId),
|
|
695
|
-
types: Proof.types,
|
|
696
|
-
primaryType: 'Proof',
|
|
697
|
-
message: Proof.message(challengeId, realm),
|
|
698
|
-
});
|
|
722
|
+
const proofHash = Proof.hash({ account: sourceAddress, chainId, challengeId, realm });
|
|
699
723
|
if (envelope.type === 'keychain') {
|
|
700
724
|
if (!TempoAddress.isEqual(envelope.userAddress, sourceAddress))
|
|
701
725
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Charge.js","sourceRoot":"","sources":["../../../src/tempo/server/Charge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,iBAAiB,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,SAAS,EACT,cAAc,GAEf,MAAM,MAAM,CAAA;AACb,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,IAAI,IAAI,SAAS,GAClB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAExD,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AACvE,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAE3C,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AAEzC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAE9C,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACjD,OAAO,KAAK,YAAY,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,eAAe,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAA;AACnD,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAA;AAC7C,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAA;AAErD,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAE5D;;;;;;;;;GASG;AACH,MAAM,UAAU,MAAM,CACpB,aAAyD,EAGxD;IAED,MAAM,EACJ,MAAM,EACN,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,EAC/C,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAC5B,WAAW,EACX,UAAU,EACV,cAAc,EACd,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,cAAc,EACd,cAAc,EACd,mBAAmB,GAAG,IAAI,GAC3B,GAAG,UAAU,CAAA;IACd,MAAM,cAAc,GAAG,UAAU,CAAC,cAAc,IAAI,EAAE,CAAA;IACtD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CACtB,CAAC,UAAU,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAA2C,EAC9E,EAAE,SAAS,EAAE,cAAc,EAAE,CAC9B,CAAA;IACD,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK;QACjC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAA+C,EAAE;YACrE,SAAS,EAAE,cAAc;SAC1B,CAAC;QACJ,CAAC,CAAC,SAAS,CAAA;IAEb,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAExE,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;QACnC,KAAK,EAAE,EAAE,GAAG,WAAW,EAAE,gCAAgC,EAAE,GAAG,EAAE;QAChE,WAAW;QACX,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM;KACxB,CAAC,CAAA;IAGF,OAAO,MAAM,CAAC,QAAQ,CAAkC,OAAO,CAAC,MAAM,EAAE;QACtE,QAAQ,EAAE;YACR,MAAM;YACN,QAAQ;YACR,QAAQ;YACR,WAAW;YACX,UAAU;YACV,IAAI;YACJ,SAAS;YACT,MAAM;YACN,cAAc;SACQ;QAExB,aAAa,EAAE,aAAa;QAE5B,IAAI,EAAE,IAAI;YACR,CAAC,CAAC;gBACE,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,WAAW;gBACpB,YAAY,EAAE,KAAK,EAAE,OAAuD,EAAE,EAAE;oBAC9E,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE,OAAO,CAAA;wBAC9C,IAAI,OAAO,KAAK,SAAS;4BAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;wBACxD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;wBAC3C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE;4BACvD,KAAK,EAAE,OAAO,CAAC,QAAyB;yBACzC,CAAC,CAAA;wBACF,MAAM,MAAM,GACV,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;4BAC1B,KAAK,EAAE,UAAU;4BACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;4BAC3B,eAAe,EAAE,cAAc;yBAChC,CAAC;6BACC,aAAa,CAAC,CAAC,CAAC;6BAChB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAAA;wBACnE,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAA;oBAC7E,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAA;oBAC7B,CAAC;gBACH,CAAC;gBACD,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBACtD,KAAK,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;aACzD;YACH,CAAC,CAAC,SAAS;QAEb,0CAA0C;QAC1C,KAAK,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE;YACnC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;gBAChC,IAAI,OAAO,CAAC,OAAO;oBAAE,OAAO,OAAO,CAAC,OAAO,CAAA;gBAC3C,IAAI,UAAU,CAAC,OAAO;oBAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAA;gBACvD,OAAO,CAAC,MAAM,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAA;YACxC,CAAC,CAAC,EAAE,CAAA;YAEJ,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;gBAC/B,IAAI,CAAC;oBACH,OAAO,MAAM,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;gBACrC,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,GAAG,CAAC,CAAA;gBAClE,CAAC;YACH,CAAC,CAAC,EAAE,CAAA;YACJ,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,OAAO;gBAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,GAAG,CAAC,CAAA;YAEnE,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE;gBAC7B,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK;oBAAE,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;gBACrE,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAA;gBAClF,MAAM,SAAS,GAAG,OAAO,IAAI,QAAQ,IAAI,WAAW,CAAA;gBACpD,IAAI,UAAU;oBAAE,OAAO,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;gBAClE,IAAI,SAAS;oBAAE,OAAO,IAAI,CAAA;gBAC1B,OAAO,SAAS,CAAA;YAClB,CAAC,CAAC,EAAE,CAAA;YAEJ,OAAO;gBACL,GAAG,OAAO;gBACV,OAAO;gBACP,QAAQ,EAAE,gBAAgB;gBAC1B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,SAAS;aAChC,CAAA;QACH,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE;YAClC,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAA;YAChC,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE;gBAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;gBAC/D,IAAI,MAAM,CAAC,OAAO;oBAAE,OAAO,MAAM,CAAC,IAAI,CAAA;gBACtC,uEAAuE;gBACvE,wEAAwE;gBACxE,OAAO,OAAoE,CAAA;YAC7E,CAAC,CAAC,EAAE,CAAA;YACJ,MAAM,OAAO,GAAG,eAAe,CAAC,aAAa,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAA;YAEzE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;YAE3C,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,eAAe,CAAA;YACjD,MAAM,qBAAqB,GACzB,OAAO,CAAC,QAAQ,KAAK,KAAK;gBAC1B,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;oBAC7B,OAAO,CAAC,QAAQ,KAAK,IAAI;oBACzB,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;YACzC,MAAM,eAAe,GACnB,aAAa,EAAE,QAAQ,KAAK,IAAI,IAAI,qBAAqB;gBACvD,CAAC,CAAC,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;oBACpC,CAAC,CAAC,OAAO,CAAC,QAAQ;oBAClB,CAAC,CAAC,QAAQ;gBACZ,CAAC,CAAC,SAAS,CAAA;YACf,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;YACjC,MAAM,cAAc,GAAG,aAAa,EAAE,cAEzB,CAAA;YAEb,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAyB,CAAA;YAC1D,MAAM,SAAS,GAAG,eAAe,CAAC,SAA0B,CAAA;YAE5D,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,CAAA;YAErC,MAAM,IAAI,GAAG,aAAa,EAAE,IAAiC,CAAA;YAE7D,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;YAClC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;YAE1C,IAAI,YAAY,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;gBAC1C,MAAM,IAAI,aAAa,CAAC,oDAAoD,EAAE,EAAE,CAAC,CAAA;YAEnF,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,IAAI,cAAc,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC;wBACpD,MAAM,IAAI,aAAa,CAAC,wDAAwD,EAAE,EAAE,CAAC,CAAA;oBAEvF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAqB,CAAA;oBAC1C,mEAAmE;oBACnE,mEAAmE;oBACnE,MAAM,MAAM,GAAG,yBAAyB,CAAC;wBACvC,OAAO,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE;wBACpC,MAAM,EAAE,UAAU,CAAC,MAAM;qBAC1B,CAAC,CAAA;oBACF,8DAA8D;oBAC9D,2DAA2D;oBAC3D,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;wBACvC,MAAM,IAAI,uBAAuB,CAAC,EAAE,MAAM,EAAE,wCAAwC,EAAE,CAAC,CAAA;oBACzF,CAAC;oBAED,mEAAmE;oBACnE,iEAAiE;oBACjE,oEAAoE;oBACpE,mDAAmD;oBACnD,IAAI,kBAAkB,GAAG,IAAI,CAAA;oBAE7B,IAAI,CAAC;wBACH,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;4BAC7C,MAAM;4BACN,IAAI;4BACJ,aAAa;4BACb,SAAS;yBACV,CAAC,CAAA;wBACF,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;wBAC7D,MAAM,MAAM,GAAG,MAAM,EAAE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAA;wBAC9C,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE;4BACpD,QAAQ;4BACR,MAAM;4BACN,MAAM;4BACN,SAAS,EAAE,iBAAiB;4BAC5B,cAAc;yBACf,CAAC,CAAA;wBACF,6EAA6E;wBAC7E,gFAAgF;wBAChF,gFAAgF;wBAChF,oFAAoF;wBACpF,IAAI,CAAC,IAAI;4BACP,wBAAwB,CAAC,WAAW,EAAE;gCACpC,WAAW,EAAE,SAAS,CAAC,EAAE;gCACzB,KAAK,EAAE,SAAS,CAAC,KAAK;6BACvB,CAAC,CAAA;wBAEJ,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;wBACzC,iEAAiE;wBACjE,oEAAoE;wBACpE,kBAAkB,GAAG,KAAK,CAAA;wBAC1B,OAAO,cAAc,CAAA;oBACvB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,kBAAkB;4BAAE,MAAM,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;wBACzD,MAAM,KAAK,CAAA;oBACb,CAAC;gBACH,CAAC;gBAED,KAAK,OAAO,CAAC,CAAC,CAAC;oBACb,IAAI,CAAC,YAAY;wBACf,MAAM,IAAI,aAAa,CACrB,8DAA8D,EAC9D,EAAE,CACH,CAAA;oBAEH,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAA;oBACxC,IAAI,CAAC,cAAc;wBACjB,MAAM,IAAI,aAAa,CAAC,yCAAyC,EAAE,EAAE,CAAC,CAAA;oBAExE,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,IAAI,OAAQ,CAAA;oBAC5E,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;oBAEnD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,eAAe,EAAE,CAAC;wBAClD,MAAM,IAAI,aAAa,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAA;oBACpE,CAAC;oBAED,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE;wBAC1C,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;wBACrC,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,WAAW,EAAE,OAAO;wBACpB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC;wBACrD,SAAS,EAAE,OAAO,CAAC,SAA0B;qBAC9C,CAAC,CAAA;oBACF,IAAI,CAAC,KAAK,EAAE,CAAC;wBACX,MAAM,WAAW,GAAG,4BAA4B,CAAC;4BAC/C,OAAO,EAAE,eAAe;4BACxB,WAAW,EAAE,SAAS,CAAC,EAAE;4BACzB,KAAK,EAAE,SAAS,CAAC,KAAK;4BACtB,SAAS,EAAE,OAAO,CAAC,SAA0B;4BAC7C,aAAa,EAAE,MAAM,CAAC,OAAO;yBAC9B,CAAC,CAAA;wBACF,MAAM,UAAU,GAAG,WAAW;4BAC5B,CAAC,CAAC,MAAM,iBAAiB,CAAC,MAAM,EAAE;gCAC9B,SAAS,EAAE,WAAW;gCACtB,OAAO,EAAE,MAAM,CAAC,OAAO;6BACxB,CAAC;4BACJ,CAAC,CAAC,KAAK,CAAA;wBACT,IAAI,CAAC,UAAU;4BAAE,MAAM,IAAI,aAAa,CAAC,wCAAwC,EAAE,EAAE,CAAC,CAAA;oBACxF,CAAC;oBAED,IAAI,UAAU,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;wBACnE,MAAM,IAAI,uBAAuB,CAAC,EAAE,MAAM,EAAE,wCAAwC,EAAE,CAAC,CAAA;oBACzF,CAAC;oBAED,OAAO;wBACL,MAAM,EAAE,OAAO;wBACf,MAAM,EAAE,SAAS;wBACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBACnC,SAAS,EAAE,SAAS,CAAC,EAAE;qBACf,CAAA;gBACZ,CAAC;gBAED,KAAK,aAAa,CAAC,CAAC,CAAC;oBACnB,IAAI,cAAc,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC;wBACpD,MAAM,IAAI,aAAa,CACrB,+DAA+D,EAC/D,EAAE,CACH,CAAA;oBAEH,MAAM,qBAAqB,GAAG,OAAO,CAAC,SAAmD,CAAA;oBAEzF,gEAAgE;oBAChE,MAAM,IAAI,GAAG,SAAS,CAAC,qBAAqB,CAAC,CAAA;oBAC7C,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;wBACvC,MAAM,IAAI,uBAAuB,CAAC,EAAE,MAAM,EAAE,wCAAwC,EAAE,CAAC,CAAA;oBACzF,CAAC;oBAED,IAAI,kBAAkB,GAAG,IAAI,CAAA;oBAC7B,IAAI,0BAAkF,CAAA;oBAEtF,IAAI,CAAC;wBACH,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,qBAAqB,CAAC;4BACrD,MAAM,IAAI,aAAa,CAAC,oDAAoD,EAAE,EAAE,CAAC,CAAA;wBAEnF,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAA;wBAClE,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI;4BAC7C,MAAM,IAAI,aAAa,CACrB,uEAAuE,EACvE,EAAE,CACH,CAAA;wBAEH,MAAM,KAAK,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAGnC,CAAA;wBACH,MAAM,SAAS,GAAG,oBAAoB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAA;wBAClF,MAAM,YAAY,GAChB,aAAa,EAAE,QAAQ,KAAK,IAAI;4BAChC,qBAAqB;4BACrB,CAAC,CAAC,CAAC,eAAe,IAAI,WAAW,CAAC,CAAA;wBACpC,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,EAAE;4BAC9C,QAAQ;4BACR,UAAU,EAAE,YAAY;4BACxB,SAAS;yBACV,CAAC,CAAA;wBACF,IAAI,CAAC,IAAI;4BACP,4BAA4B,CAAC,YAAY,EAAE;gCACzC,WAAW,EAAE,SAAS,CAAC,EAAE;gCACzB,KAAK,EAAE,SAAS,CAAC,KAAK;6BACvB,CAAC,CAAA;wBAEJ,IAAI,YAAY,EAAE,CAAC;4BACjB,MAAM,kBAAkB,GAAG,OAAO,IAAI,MAAM,CAAC,KAAM,CAAC,EAAE,CAAA;4BACtD,IACE,CAAC,CAAC,MAAM,2BAA2B,CAAC,KAAK,EAAE;gCACzC,OAAO,EAAE,kBAAkB;gCAC3B,MAAM,EAAE,WAAW,CAAC,IAAqB;6BAC1C,CAAC,CAAC,EACH,CAAC;gCACD,MAAM,IAAI,uBAAuB,CAAC;oCAChC,MAAM,EAAE,6DAA6D;iCACtE,CAAC,CAAA;4BACJ,CAAC;4BACD,0BAA0B,GAAG;gCAC3B,OAAO,EAAE,kBAAkB;gCAC3B,MAAM,EAAE,WAAW,CAAC,IAAqB;6BAC1C,CAAA;4BACD,QAAQ,CAAC,aAAa,CACpB,WAAW,CAAC,KAAK,EACjB,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAC/B,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,CAC3C,CAAA;wBACH,CAAC;wBAED,MAAM,gBAAgB,GAAG,QAAQ,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAA;wBAClE,IAAI,YAAY;4BAAE,QAAQ,CAAC,qBAAqB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAA;wBAE/E,MAAM,2BAA2B,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;4BACpD,IAAI,eAAe,IAAI,aAAa,EAAE,QAAQ,KAAK,KAAK,EAAE,CAAC;gCACzD,MAAM,SAAS,GAAG,QAAQ,CAAC,2BAA2B,CAAC;oCACrD,OAAO,EAAE,eAAe;oCACxB,gBAAgB;oCAChB,gBAAgB,EAAE,OAAO;oCACzB,OAAO,EAAE,OAAO,IAAI,MAAM,CAAC,KAAM,CAAC,EAAE;oCACpC,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE;oCACxC,MAAM,EAAE,cAAc;oCACtB,WAAW,EAAE;wCACX,GAAG,WAAW;wCACd,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO;qCAC1D;iCACF,CAAC,CAAA;gCACF,OAAO,eAAe,CAAC,MAAM,EAAE,SAAkB,CAAC,CAAA;4BACpD,CAAC;4BACD,IAAI,WAAW,IAAI,YAAY;gCAC7B,OAAO,QAAQ,CAAC,6BAA6B,CAAC;oCAC5C,gBAAgB;oCAChB,WAAW;oCACX,GAAG,EAAE,WAAW;iCACjB,CAAC,CAAA;4BACJ,OAAO,qBAAqB,CAAA;wBAC9B,CAAC,CAAC,EAAE,CAAA;wBAEJ,IAAI,mBAAmB,EAAE,CAAC;4BACxB,MAAM,SAAS,CACb,MAAM,EACN,QAAQ,CAAC,qBAAqB,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CACxE,CAAA;4BACD,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE;gCACnD,qBAAqB,EAAE,2BAA2B;6BACnD,CAAC,CAAA;4BACF,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE;gCACpD,QAAQ;gCACR,MAAM,EAAE,WAAW,CAAC,IAAsB;gCAC1C,SAAS;6BACV,CAAC,CAAA;4BACF,IAAI,CAAC,IAAI;gCACP,wBAAwB,CAAC,WAAW,EAAE;oCACpC,WAAW,EAAE,SAAS,CAAC,EAAE;oCACzB,KAAK,EAAE,SAAS,CAAC,KAAK;iCACvB,CAAC,CAAA;4BACJ,uDAAuD;4BACvD,wDAAwD;4BACxD,wDAAwD;4BACxD,sDAAsD;4BACtD,IACE,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE;gCAC5D,CAAC,CAAC,MAAM,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,EACrD,CAAC;gCACD,MAAM,IAAI,uBAAuB,CAAC;oCAChC,MAAM,EAAE,wCAAwC;iCACjD,CAAC,CAAA;4BACJ,CAAC;4BACD,kBAAkB,GAAG,KAAK,CAAA;4BAC1B,OAAO,SAAS,CAAC,OAAO,CAAC,CAAA;wBAC3B,CAAC;wBAED,qEAAqE;wBACrE,kEAAkE;wBAClE,+EAA+E;wBAC/E,MAAM,SAAS,CACb,MAAM,EACN,QAAQ,CAAC,qBAAqB,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CACxE,CAAA;wBACD,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE;4BACjD,qBAAqB,EAAE,2BAA2B;yBACnD,CAAC,CAAA;wBACF,6BAA6B;wBAC7B,IACE,SAAS,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE;4BAC9C,CAAC,CAAC,MAAM,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EACvC,CAAC;4BACD,MAAM,IAAI,uBAAuB,CAAC;gCAChC,MAAM,EAAE,wCAAwC;6BACjD,CAAC,CAAA;wBACJ,CAAC;wBACD,kBAAkB,GAAG,KAAK,CAAA;wBAC1B,OAAO;4BACL,MAAM,EAAE,OAAO;4BACf,MAAM,EAAE,SAAS;4BACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BACnC,SAAS;yBACD,CAAA;oBACZ,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,kBAAkB;4BAAE,MAAM,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;wBACzD,MAAM,KAAK,CAAA;oBACb,CAAC;4BAAS,CAAC;wBACT,IAAI,0BAA0B;4BAC5B,MAAM,8BAA8B,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAA;oBAC3E,CAAC;gBACH,CAAC;gBAED;oBACE,MAAM,IAAI,KAAK,CAAC,gCAAiC,OAA4B,CAAC,IAAI,IAAI,CAAC,CAAA;YAC3F,CAAC;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAuFD,SAAS,aAAa,CAAC,OAAsB;IAC3C,8FAA8F;IAC9F,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,GAC3F,OAAO,CAAA;IACT,WAA2C,CAAA;IAE3C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,iBAAiB,EAAE,GAC7E,aAAa,IAAI,EAAE,CAAA;IACrB,iBAAiD,CAAA;IACjD,KAAK,QAAQ,CAAA;IAEb,OAAO;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,WAAW;QACX,UAAU;QACV,IAAI;QACJ,SAAS;QACT,MAAM;QACN,cAAc;KACf,CAAA;AACH,CAAC;AASD,SAAS,oBAAoB,CAAC,UAK7B;IACC,OAAO,eAAe,CAAC,YAAY,CAAC;QAClC,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,aAAa,EAAE;YACb,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,MAAM,EAAE,UAAU,CAAC,aAAa,EAAE,MAAM;SACzC;QACD,SAAS,EAAE,UAAU,CAAC,SAAS;KAChC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpB,GAAG,QAAQ;QACX,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClD,CAAC,CAAuB,CAAA;AAC3B,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAsF,EACtF,UAIC;IAED,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;IAE7C,IAAI,UAAU,CAAC,UAAU,IAAI,aAAa,CAAC,MAAM,KAAK,UAAU,CAAC,SAAS,CAAC,MAAM;QAC/E,MAAM,IAAI,aAAa,CAAC,qDAAqD,EAAE;YAC7E,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;YAClD,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;SAC1C,CAAC,CAAA;IAEJ,iEAAiE;IACjE,6DAA6D;IAC7D,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACrD,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,CAAA;QAChC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,CAAA;QAC/B,OAAO,CAAC,CAAA;IACV,CAAC,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,OAAO,GAA+B,EAAE,CAAA;IAC9C,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACzD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;YACjC,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;YAC7D,IAAI,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAA;YAE1B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC;gBAAE,OAAO,KAAK,CAAA;YAC9E,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAA;YACpD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAClB,OAAO,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;YACpE,CAAC;YACD,IAAI,QAAQ,CAAC,YAAY;gBAAE,OAAO,IAAI,CAAA;YACtC,OAAO,OAAO,CAAC,IAAI,KAAK,SAAS,CAAA;QACnC,CAAC,CAAC,CAAA;QAEF,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,aAAa,CAAC,qDAAqD,EAAE;gBAC7E,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;aAC9B,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACpB,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAE,EAAE,UAAU,CAAC,QAAQ,CAAE,CAAC,CAAA;IACpF,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAsF;IAEtF,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAC9D,MAAM,MAAM,GACV,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7F,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAEzC,IACE,aAAa,CAAC,MAAM,KAAK,CAAC;QAC1B,SAAS;aACN,KAAK,CAAC,MAAM,CAAC;aACb,IAAI,CACH,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,IAAI,QAAQ,KAAK,SAAS,CAAC,gBAAgB,CACzF,EACH,CAAC;QACD,MAAM,IAAI,aAAa,CAAC,qDAAqD,EAAE,EAAE,CAAC,CAAA;IACpF,CAAC;IAED,OAAO,aAAa,CAAA;AACtB,CAAC;AAED,SAAS,kBAAkB,CACzB,IAA0E,EAC1E,QAAuB;IAEvB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IAEnF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QACvC,IAAI,QAAQ,KAAK,SAAS,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YACzE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,IAA+B,CAAA;YAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAA;QACjD,CAAC;QAED,IAAI,QAAQ,KAAK,SAAS,CAAC,gBAAgB,EAAE,CAAC;YAC5C,MAAM,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YACzE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,IAA8C,CAAA;YAChF,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;QACvD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAcD,KAAK,UAAU,kBAAkB,CAC/B,OAA2B,EAC3B,UAMC;IAED,MAAM,IAAI,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAC3C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,OAAO,GAAkB,EAAE,CAAA;IAEjC,iEAAiE;IACjE,4DAA4D;IAC5D,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACrD,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,CAAA;QAChC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,CAAA;QAC/B,OAAO,CAAC,CAAA;IACV,CAAC,CAAC,CAAA;IAEF,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;QAC9B,IAAI,UAAU,GAAG,CAAC,CAAC,CAAA;QACnB,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAQ;YAC7B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC;gBAAE,SAAQ;YACrE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC;gBAAE,SAAQ;YACpE,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,MAAM;gBAAE,SAAQ;YAC5D,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE;gBACxB,IAAI,QAAQ,CAAC,IAAI;oBACf,OAAO,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;gBAC3F,IAAI,QAAQ,CAAC,YAAY;oBAAE,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,CAAA;gBAChF,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,CAAA;YAChC,CAAC,CAAC,EAAE,CAAA;YACJ,IAAI,CAAC,WAAW;gBAAE,SAAQ;YAC1B,IACE,CAAC,CAAC,MAAM,qBAAqB,CAAC;gBAC5B,cAAc,EAAE,UAAU,CAAC,MAAM;gBACjC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI;gBACrB,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,cAAc,EAAE,UAAU,CAAC,cAAc;aAC1C,CAAC,CAAC;gBAEH,SAAQ;YACV,UAAU,GAAG,KAAK,CAAA;YAClB,MAAK;QACP,CAAC;QAED,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,aAAa,CAAC,0DAA0D,EAAE;gBAClF,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;aAC9B,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACpB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAiB,CAAC,CAAA;IAChD,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAgBD,SAAS,qBAAqB,CAAC,OAA2B;IACxD,MAAM,YAAY,GAAG,cAAc,CAAC;QAClC,GAAG,EAAE,IAAI,CAAC,KAAK;QACf,SAAS,EAAE,UAAU;QACrB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC,CAAC,GAAG,CACJ,CAAC,GAAG,EAAE,EAAE,CACN,CAAC;QACC,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACvB,CAAsB,CAC1B,CAAA;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC;QAC9B,GAAG,EAAE,IAAI,CAAC,KAAK;QACf,SAAS,EAAE,kBAAkB;QAC7B,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC,CAAC,GAAG,CACJ,CAAC,GAAG,EAAE,EAAE,CACN,CAAC;QACC,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACvB,CAAsB,CAC1B,CAAA;IAED,MAAM,IAAI,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;IACnF,MAAM,OAAO,GAAkB,EAAE,CAAA;IAEjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAE,CAAA;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAC5B,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;YACnE,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;YACnF,IAAI,CAAC,OAAO;gBAAE,SAAQ;YACtB,OAAO,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,MAAM;aACb,CAAC,CAAA;YACF,KAAK,EAAE,CAAA;YACP,SAAQ;QACV,CAAC;QAED,OAAO,CAAC,IAAI,CAAC;YACX,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;SACA,CAAC,CAAA;IACnB,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAoB,EAAE,CAAoB;IACnE,OAAO,CACL,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC;QAC1C,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9C,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM;QAC/B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CACxC,CAAA;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,UAKpC;IACC,IAAI,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,cAAc,CAAC;QAAE,OAAO,IAAI,CAAA;IACnF,IAAI,CAAC,UAAU,CAAC,cAAc;QAAE,OAAO,KAAK,CAAA;IAC5C,OAAO,UAAU,CAAC,cAAc,CAAC;QAC/B,cAAc,EAAE,UAAU,CAAC,cAAc;QACzC,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC,CAAA;AACJ,CAAC;AAED,gBAAgB;AAChB,SAAS,eAAe,CAAC,IAAmB;IAC1C,OAAO,eAAe,IAAI,CAAC,WAAW,EAAE,EAAE,CAAA;AAC5C,CAAC;AAED,gBAAgB;AAChB,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,OAAO,qBAAqB,WAAW,EAAE,CAAA;AAC3C,CAAC;AAED,gBAAgB;AAChB,SAAS,0BAA0B,CAAC,UAGnC;IACC,OAAO,uBAAuB,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAA;AACvF,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,KAA6C,EAC7C,IAAmB;IAEnB,OAAO,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE;QACrD,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;QAC1D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACvD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,gBAAgB;AAChB,KAAK,UAAU,cAAc,CAC3B,KAA6C,EAC7C,IAAmB;IAEnB,MAAM,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAA;AAC3C,CAAC;AAED,SAAS,yBAAyB,CAAC,UAGlC;IACC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;IACtC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAE7B,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;IAC3C,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,aAAa,CAAC,oCAAoC,EAAE,EAAE,CAAC,CAAA;IACnE,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,gBAAgB;AAChB,KAAK,UAAU,2BAA2B,CACxC,KAA6C,EAC7C,UAAsD;IAEtD,OAAO,KAAK,CAAC,MAAM,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE;QACtE,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;QAC1D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACvD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,gBAAgB;AAChB,KAAK,UAAU,8BAA8B,CAC3C,KAA6C,EAC7C,UAAsD;IAEtD,MAAM,KAAK,CAAC,MAAM,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC,CAAA;AAC5D,CAAC;AAED,gBAAgB;AAChB,KAAK,UAAU,aAAa,CAC1B,KAA6C,EAC7C,WAAmB;IAEnB,OAAO,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE;QAC7D,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;QAC1D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACvD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,UAMrC;IACC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,UAAU,CAAA;IAE5E,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAClD,MAAM,SAAS,GAAG,aAAa,CAAC;YAC9B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;YAC7B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,WAAW,EAAE,OAAO;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC;SAC3C,CAAC,CAAA;QAEF,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;gBAAE,OAAO,IAAI,CAAA;YAE3E,MAAM,eAAe,GACnB,QAAQ,CAAC,OAAO,KAAK,IAAI;gBACvB,CAAC,CAAC,SAAS,CAAC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAmB,CAAC;gBAClF,CAAC,CAAC,SAAS,CAAA;YAEf,MAAM,MAAM,GAAG,iBAAiB,CAAC,cAAc,CAAC;gBAC9C,OAAO,EAAE,eAAe;gBACxB,SAAS,EAAE,QAAQ,CAAC,KAAK;aAC1B,CAAC,CAAA;YACF,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE;gBACrD,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,eAAe;aACzB,CAAC,CAAA;YACF,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAA;YAEvB,OAAO,MAAM,CAAA;QACf,CAAC;QAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,cAAc,CAAC;YAC9C,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,QAAQ;SACpB,CAAC,CAAA;QACF,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC/C,OAAO,EAAE,MAAM;YACf,OAAO,EAAE,SAAS;SACnB,CAAC,CAAA;QACF,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAA;QAEvB,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,MAAkE,EAClE,UAAgE;IAEhE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QACxE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;QACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAA;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,gBAAgB;AAChB,SAAS,SAAS,CAAC,OAA2B;IAC5C,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAA;IAC3C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,eAAe,EAAE,CAAC,CAAA;IAC7D,CAAC;IACD,OAAO;QACL,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,eAAe;KAClB,CAAA;AACZ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,wBAAwB,CAC/B,WAAmC,EACnC,UAAkD;IAElD,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACrC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,KAAK,CAAA;QACrC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QAC5E,OAAO,WAAW,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAA;IAClF,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,KAAK;QACR,MAAM,IAAI,aAAa,CAAC,mEAAmE,EAAE,EAAE,CAAC,CAAA;AACpG,CAAC;AAED,SAAS,4BAA4B,CACnC,YAAiD,EACjD,UAAkD;IAElD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACvC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAA;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAqB,CAAA;QACvC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QACnE,OAAO,WAAW,CAAC,sBAAsB,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAA;IACzE,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,KAAK;QACR,MAAM,IAAI,aAAa,CAAC,mEAAmE,EAAE,EAAE,CAAC,CAAA;AACpG,CAAC;AAED,gBAAgB;AAChB,MAAM,aAAc,SAAQ,YAAY;IACpB,IAAI,GAAG,eAAe,CAAA;IAC/B,KAAK,GAAG,qBAAqB,CAAA;IAC7B,IAAI,GAAG,sDAAsD,CAAA;IAEtE,YAAY,MAAc,EAAE,OAA+B;QACzD,KAAK,CACH;YACE,MAAM,CAAC,UAAU,CAAC,6BAA6B,CAAC;gBAC9C,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,gCAAgC,MAAM,EAAE;YAC5C,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;SAC7D,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"Charge.js","sourceRoot":"","sources":["../../../src/tempo/server/Charge.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,14 +12,14 @@ export declare const sessionLegacy: typeof createSessionLegacyMethod & {
|
|
|
12
12
|
/** Settles a legacy contract-backed Tempo session channel. */
|
|
13
13
|
export declare const settleLegacy: typeof settleLegacy_;
|
|
14
14
|
/**
|
|
15
|
-
* Creates
|
|
15
|
+
* Creates the common Tempo `charge` and `session` methods from shared parameters.
|
|
16
16
|
*
|
|
17
17
|
* @example
|
|
18
18
|
* ```ts
|
|
19
19
|
* import { Mppx, tempo } from 'mppx/server'
|
|
20
20
|
*
|
|
21
21
|
* const mppx = Mppx.create({
|
|
22
|
-
* methods: [tempo({ currency: '0x...', recipient: '0x...' })],
|
|
22
|
+
* methods: [tempo.common({ currency: '0x...', recipient: '0x...' })],
|
|
23
23
|
* })
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
@@ -204,6 +204,8 @@ export declare namespace tempo {
|
|
|
204
204
|
type Parameters = charge_.Parameters & session_.Parameters;
|
|
205
205
|
/** Creates a Tempo `charge` method for one-time TIP-20 token transfers. */
|
|
206
206
|
const charge: typeof charge_;
|
|
207
|
+
/** Creates the common Tempo `charge` and `session` methods from shared parameters. */
|
|
208
|
+
const common: typeof tempo;
|
|
207
209
|
/** Creates a TIP-1034 Tempo `session` method for session-based TIP-20 token payments. */
|
|
208
210
|
const session: typeof session_ & {
|
|
209
211
|
charge: typeof sessionCharge_;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Methods.d.ts","sourceRoot":"","sources":["../../../src/tempo/server/Methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9F,OAAO,EACL,MAAM,IAAI,cAAc,EACxB,OAAO,IAAI,QAAQ,EACnB,MAAM,IAAI,OAAO,EACjB,WAAW,IAAI,YAAY,EAC5B,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,yBAAyB,CAAA;AAC9C,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,KAAK,IAAI,kBAAkB,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAQ9F,iBAAS,yBAAyB,CAChC,KAAK,CAAC,UAAU,SAAS,WAAW,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAC1E,UAAU,CAAC,EAAE,UAAU,SAExB;AAOD,sEAAsE;AACtE,eAAO,MAAM,aAAa;;;CAAsB,CAAA;AAEhD,8DAA8D;AAC9D,eAAO,MAAM,YAAY,sBAAgB,CAAA;AAkBzC;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,CAAC,KAAK,CAAC,UAAU,SAAS,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6LAEvF;AAED,yBAAiB,KAAK,CAAC;IACrB,KAAY,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAA;IAEjE,2EAA2E;IACpE,MAAM,MAAM,gBAAU,CAAA;IAC7B,yFAAyF;IAClF,MAAM,OAAO;;;;KAAgB,CAAA;IACpC,gFAAgF;IACzE,MAAM,aAAa;;;KAAsB,CAAA;IAChD,iFAAiF;IAC1E,MAAM,YAAY,sBAAgB,CAAA;IACzC,6EAA6E;IACtE,MAAM,iBAAiB,2BAAqB,CAAA;IACnD,gFAAgF;IACzE,MAAM,MAAM,gBAAU,CAAA;IAC7B,uDAAuD;IAChD,MAAM,WAAW,qBAAe,CAAA;IACvC,yDAAyD;IAClD,MAAM,EAAE,YAAM,CAAA;CACtB"}
|
|
1
|
+
{"version":3,"file":"Methods.d.ts","sourceRoot":"","sources":["../../../src/tempo/server/Methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9F,OAAO,EACL,MAAM,IAAI,cAAc,EACxB,OAAO,IAAI,QAAQ,EACnB,MAAM,IAAI,OAAO,EACjB,WAAW,IAAI,YAAY,EAC5B,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,yBAAyB,CAAA;AAC9C,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,KAAK,IAAI,kBAAkB,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAQ9F,iBAAS,yBAAyB,CAChC,KAAK,CAAC,UAAU,SAAS,WAAW,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAC1E,UAAU,CAAC,EAAE,UAAU,SAExB;AAOD,sEAAsE;AACtE,eAAO,MAAM,aAAa;;;CAAsB,CAAA;AAEhD,8DAA8D;AAC9D,eAAO,MAAM,YAAY,sBAAgB,CAAA;AAkBzC;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,CAAC,KAAK,CAAC,UAAU,SAAS,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6LAEvF;AAED,yBAAiB,KAAK,CAAC;IACrB,KAAY,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAA;IAEjE,2EAA2E;IACpE,MAAM,MAAM,gBAAU,CAAA;IAC7B,sFAAsF;IAC/E,MAAM,MAAM,cAAQ,CAAA;IAC3B,yFAAyF;IAClF,MAAM,OAAO;;;;KAAgB,CAAA;IACpC,gFAAgF;IACzE,MAAM,aAAa;;;KAAsB,CAAA;IAChD,iFAAiF;IAC1E,MAAM,YAAY,sBAAgB,CAAA;IACzC,6EAA6E;IACtE,MAAM,iBAAiB,2BAAqB,CAAA;IACnD,gFAAgF;IACzE,MAAM,MAAM,gBAAU,CAAA;IAC7B,uDAAuD;IAChD,MAAM,WAAW,qBAAe,CAAA;IACvC,yDAAyD;IAClD,MAAM,EAAE,YAAM,CAAA;CACtB"}
|
|
@@ -30,14 +30,14 @@ function createSessionMethod(parameters) {
|
|
|
30
30
|
return sessionServer(parameters);
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
|
-
* Creates
|
|
33
|
+
* Creates the common Tempo `charge` and `session` methods from shared parameters.
|
|
34
34
|
*
|
|
35
35
|
* @example
|
|
36
36
|
* ```ts
|
|
37
37
|
* import { Mppx, tempo } from 'mppx/server'
|
|
38
38
|
*
|
|
39
39
|
* const mppx = Mppx.create({
|
|
40
|
-
* methods: [tempo({ currency: '0x...', recipient: '0x...' })],
|
|
40
|
+
* methods: [tempo.common({ currency: '0x...', recipient: '0x...' })],
|
|
41
41
|
* })
|
|
42
42
|
* ```
|
|
43
43
|
*/
|
|
@@ -47,6 +47,8 @@ export function tempo(parameters) {
|
|
|
47
47
|
(function (tempo) {
|
|
48
48
|
/** Creates a Tempo `charge` method for one-time TIP-20 token transfers. */
|
|
49
49
|
tempo.charge = charge_;
|
|
50
|
+
/** Creates the common Tempo `charge` and `session` methods from shared parameters. */
|
|
51
|
+
tempo.common = tempo;
|
|
50
52
|
/** Creates a TIP-1034 Tempo `session` method for session-based TIP-20 token payments. */
|
|
51
53
|
tempo.session = sessionServer;
|
|
52
54
|
/** @deprecated Use `tempo.session()` for the TIP-1034 session server method. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Methods.js","sourceRoot":"","sources":["../../../src/tempo/server/Methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9F,OAAO,EACL,MAAM,IAAI,cAAc,EACxB,OAAO,IAAI,QAAQ,EACnB,MAAM,IAAI,OAAO,EACjB,WAAW,IAAI,YAAY,GAC5B,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,yBAAyB,CAAA;AAC9C,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,KAAK,IAAI,kBAAkB,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAE9F,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;IAC5C,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,OAAO;IACf,WAAW,EAAE,YAAY;CAC1B,CAAC,CAAA;AAEF,SAAS,yBAAyB,CAEhC,UAAuB;IACvB,OAAO,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,UAAmB,CAAC,EAAE,EAAE,KAAK,EAAE,eAAwB,EAAE,CAAC,CAAA;AAChG,CAAC;AAED,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE;IACnE,MAAM,EAAE,aAAa;IACrB,EAAE,EAAE,GAAG;CACR,CAAC,CAAA;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAA;AAEhD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAA;AAEzC,SAAS,kBAAkB,CACzB,UAAkC;IAElC,wEAAwE;IACxE,4EAA4E;IAC5E,uCAAuC;IACvC,OAAO,KAAK,CAAC,MAAM,CAAC,UAAgC,CAAC,CAAA;AACvD,CAAC;AAED,SAAS,mBAAmB,CAC1B,UAAkC;IAElC,8EAA8E;IAC9E,OAAO,aAAa,CAAC,UAAiC,CAAC,CAAA;AACzD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,KAAK,CAA4C,UAAuB;IACtF,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAU,CAAA;AACnF,CAAC;AAED,WAAiB,KAAK;IAGpB,2EAA2E;IAC9D,YAAM,GAAG,OAAO,CAAA;IAC7B,yFAAyF;IAC5E,aAAO,GAAG,aAAa,CAAA;IACpC,gFAAgF;IACnE,mBAAa,GAAG,mBAAmB,CAAA;IAChD,iFAAiF;IACpE,kBAAY,GAAG,aAAa,CAAA;IACzC,6EAA6E;IAChE,uBAAiB,GAAG,kBAAkB,CAAA;IACnD,gFAAgF;IACnE,YAAM,GAAG,OAAO,CAAA;IAC7B,uDAAuD;IAC1C,iBAAW,GAAG,YAAY,CAAA;IACvC,yDAAyD;IAC5C,QAAE,GAAG,GAAG,CAAA;AACvB,CAAC,
|
|
1
|
+
{"version":3,"file":"Methods.js","sourceRoot":"","sources":["../../../src/tempo/server/Methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9F,OAAO,EACL,MAAM,IAAI,cAAc,EACxB,OAAO,IAAI,QAAQ,EACnB,MAAM,IAAI,OAAO,EACjB,WAAW,IAAI,YAAY,GAC5B,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,yBAAyB,CAAA;AAC9C,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,KAAK,IAAI,kBAAkB,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAE9F,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;IAC5C,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,OAAO;IACf,WAAW,EAAE,YAAY;CAC1B,CAAC,CAAA;AAEF,SAAS,yBAAyB,CAEhC,UAAuB;IACvB,OAAO,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,UAAmB,CAAC,EAAE,EAAE,KAAK,EAAE,eAAwB,EAAE,CAAC,CAAA;AAChG,CAAC;AAED,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE;IACnE,MAAM,EAAE,aAAa;IACrB,EAAE,EAAE,GAAG;CACR,CAAC,CAAA;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAA;AAEhD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAA;AAEzC,SAAS,kBAAkB,CACzB,UAAkC;IAElC,wEAAwE;IACxE,4EAA4E;IAC5E,uCAAuC;IACvC,OAAO,KAAK,CAAC,MAAM,CAAC,UAAgC,CAAC,CAAA;AACvD,CAAC;AAED,SAAS,mBAAmB,CAC1B,UAAkC;IAElC,8EAA8E;IAC9E,OAAO,aAAa,CAAC,UAAiC,CAAC,CAAA;AACzD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,KAAK,CAA4C,UAAuB;IACtF,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAU,CAAA;AACnF,CAAC;AAED,WAAiB,KAAK;IAGpB,2EAA2E;IAC9D,YAAM,GAAG,OAAO,CAAA;IAC7B,sFAAsF;IACzE,YAAM,GAAG,KAAK,CAAA;IAC3B,yFAAyF;IAC5E,aAAO,GAAG,aAAa,CAAA;IACpC,gFAAgF;IACnE,mBAAa,GAAG,mBAAmB,CAAA;IAChD,iFAAiF;IACpE,kBAAY,GAAG,aAAa,CAAA;IACzC,6EAA6E;IAChE,uBAAiB,GAAG,kBAAkB,CAAA;IACnD,gFAAgF;IACnE,YAAM,GAAG,OAAO,CAAA;IAC7B,uDAAuD;IAC1C,iBAAW,GAAG,YAAY,CAAA;IACvC,yDAAyD;IAC5C,QAAE,GAAG,GAAG,CAAA;AACvB,CAAC,EArBgB,KAAK,KAAL,KAAK,QAqBrB"}
|
|
@@ -181,6 +181,11 @@ export declare namespace subscription {
|
|
|
181
181
|
* Keeps concurrent renewal safe while allowing recovery from abandoned attempts.
|
|
182
182
|
*/
|
|
183
183
|
renewalTimeoutMs?: number | undefined;
|
|
184
|
+
/**
|
|
185
|
+
* Requires a fresh subscription Credential even when a subscription is active.
|
|
186
|
+
* This binds access reuse to the stored payer instead of trusting request metadata alone.
|
|
187
|
+
*/
|
|
188
|
+
requireCredential?: boolean | undefined;
|
|
184
189
|
/**
|
|
185
190
|
* Override the fee-payer policy for sponsored subscription payments.
|
|
186
191
|
* Useful when the access key + key authorization tx requires more gas
|
|
@@ -223,6 +228,11 @@ export declare namespace subscription {
|
|
|
223
228
|
resolve: (parameters: {
|
|
224
229
|
input: Request;
|
|
225
230
|
request: SubscriptionRequest;
|
|
231
|
+
/** Verified payer identity recovered from a signed subscription credential. */
|
|
232
|
+
source?: {
|
|
233
|
+
address: Address;
|
|
234
|
+
chainId: number;
|
|
235
|
+
} | undefined;
|
|
226
236
|
}) => MaybePromise<ResolvedSubscription | null>;
|
|
227
237
|
renew?: (parameters: {
|
|
228
238
|
/** Stable idempotency/reconciliation reference persisted before the renewal hook runs. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subscription.d.ts","sourceRoot":"","sources":["../../../src/tempo/server/Subscription.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"Subscription.d.ts","sourceRoot":"","sources":["../../../src/tempo/server/Subscription.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Base64 } from 'ox';
|
|
2
2
|
import { KeyAuthorization } from 'ox/tempo';
|
|
3
|
-
import { encodeFunctionData, isAddressEqual } from 'viem';
|
|
3
|
+
import { encodeFunctionData, isAddressEqual, parseEventLogs, } from 'viem';
|
|
4
4
|
import { call as viem_call, prepareTransactionRequest, sendRawTransaction, sendRawTransactionSync, signTransaction, } from 'viem/actions';
|
|
5
5
|
import { Abis, Account as TempoAccount, Transaction } from 'viem/tempo';
|
|
6
6
|
import { tempo as tempo_chain } from 'viem/tempo/chains';
|
|
@@ -64,6 +64,8 @@ export function subscription(p) {
|
|
|
64
64
|
}),
|
|
65
65
|
},
|
|
66
66
|
async authorize({ input, request }) {
|
|
67
|
+
if (parameters.requireCredential)
|
|
68
|
+
return undefined;
|
|
67
69
|
const resolved = await parameters.resolve({ input, request });
|
|
68
70
|
if (!resolved)
|
|
69
71
|
return undefined;
|
|
@@ -132,15 +134,19 @@ export function subscription(p) {
|
|
|
132
134
|
const input = requestFromCaptured(capturedRequest);
|
|
133
135
|
const resolved = await parameters.resolve({ input, request: parsedRequest });
|
|
134
136
|
const existing = resolved ? await store.getByKey(resolved.key) : null;
|
|
135
|
-
const accessKey =
|
|
136
|
-
?
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
137
|
+
const accessKey = !credential
|
|
138
|
+
? resolved
|
|
139
|
+
? await resolveChallengeAccessKey({
|
|
140
|
+
existing,
|
|
141
|
+
input,
|
|
142
|
+
parameters,
|
|
143
|
+
request: parsedRequest,
|
|
144
|
+
resolved,
|
|
145
|
+
store,
|
|
146
|
+
})
|
|
147
|
+
: parameters.requireCredential && !parameters.activate
|
|
148
|
+
? await createUnboundChallengeAccessKey({ store })
|
|
149
|
+
: undefined
|
|
144
150
|
: (credentialRequest?.methodDetails?.accessKey ?? parsedRequest.methodDetails?.accessKey);
|
|
145
151
|
if (!accessKey) {
|
|
146
152
|
throw new VerificationFailedError({ reason: 'subscription accessKey is missing' });
|
|
@@ -164,14 +170,16 @@ export function subscription(p) {
|
|
|
164
170
|
challengeExpires: credential.challenge.expires,
|
|
165
171
|
request: parsedRequest,
|
|
166
172
|
});
|
|
167
|
-
const resolved = await parameters.resolve({ input, request: parsedRequest });
|
|
168
|
-
if (!resolved) {
|
|
169
|
-
throw new VerificationFailedError({ reason: 'subscription could not be resolved' });
|
|
170
|
-
}
|
|
171
173
|
const challengeRequest = credential.challenge.request;
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
174
|
+
let resolved = null;
|
|
175
|
+
let accessKey = challengeRequest.methodDetails?.accessKey ?? parsedRequest.methodDetails?.accessKey;
|
|
176
|
+
if (!accessKey) {
|
|
177
|
+
resolved = await parameters.resolve({ input, request: parsedRequest });
|
|
178
|
+
if (!resolved) {
|
|
179
|
+
throw new VerificationFailedError({ reason: 'subscription could not be resolved' });
|
|
180
|
+
}
|
|
181
|
+
accessKey = await resolveAccessKey({ input, parameters, request: parsedRequest, resolved });
|
|
182
|
+
}
|
|
175
183
|
if (!accessKey) {
|
|
176
184
|
throw new VerificationFailedError({ reason: 'subscription accessKey is missing' });
|
|
177
185
|
}
|
|
@@ -189,9 +197,17 @@ export function subscription(p) {
|
|
|
189
197
|
reason: 'credential source does not match signature',
|
|
190
198
|
});
|
|
191
199
|
}
|
|
200
|
+
resolved =
|
|
201
|
+
(await parameters.resolve({ input, request: parsedRequest, source: verified.source })) ??
|
|
202
|
+
resolved;
|
|
203
|
+
if (!resolved) {
|
|
204
|
+
throw new VerificationFailedError({ reason: 'subscription could not be resolved' });
|
|
205
|
+
}
|
|
192
206
|
const activation = await store.activate({
|
|
193
207
|
challengeId: credential.challenge.id,
|
|
194
|
-
isReusable: (subscription) =>
|
|
208
|
+
isReusable: (subscription) => parameters.requireCredential
|
|
209
|
+
? isActiveSubscriptionForRequest(subscription, parsedRequest)
|
|
210
|
+
: isReusableSubscription(subscription, parsedRequest),
|
|
195
211
|
lookupKey: resolved.key,
|
|
196
212
|
async create() {
|
|
197
213
|
const activation = withSubscriptionAccessKey(await activateSubscription({
|
|
@@ -235,7 +251,46 @@ export function subscription(p) {
|
|
|
235
251
|
throw new VerificationFailedError({ reason: 'subscription activation claim mismatch' });
|
|
236
252
|
}
|
|
237
253
|
if (activation.status === 'existing') {
|
|
238
|
-
|
|
254
|
+
const subscription = activation.subscription;
|
|
255
|
+
assertSubscriptionPayer(subscription, verified.source, {
|
|
256
|
+
required: parameters.requireCredential,
|
|
257
|
+
});
|
|
258
|
+
const periodIndex = getPeriodIndex(subscription);
|
|
259
|
+
if (periodIndex > subscription.lastChargedPeriod) {
|
|
260
|
+
const renew = resolveRenewalHandler({
|
|
261
|
+
feePayer,
|
|
262
|
+
feePayerPolicy,
|
|
263
|
+
getClient,
|
|
264
|
+
parameters,
|
|
265
|
+
store,
|
|
266
|
+
subscription,
|
|
267
|
+
waitForConfirmation,
|
|
268
|
+
});
|
|
269
|
+
if (!renew) {
|
|
270
|
+
throw new VerificationFailedError({ reason: 'subscription renewal is required' });
|
|
271
|
+
}
|
|
272
|
+
const renewal = await settleRenewal({
|
|
273
|
+
expectedLookupKey: resolved.key,
|
|
274
|
+
periodIndex,
|
|
275
|
+
renew,
|
|
276
|
+
request: parsedRequest,
|
|
277
|
+
store,
|
|
278
|
+
subscription,
|
|
279
|
+
});
|
|
280
|
+
if (!renewal) {
|
|
281
|
+
throw new VerificationFailedError({ reason: 'subscription renewal failed' });
|
|
282
|
+
}
|
|
283
|
+
if (renewal.status === 'charged' || renewal.status === 'inFlight') {
|
|
284
|
+
return renewal.receipt;
|
|
285
|
+
}
|
|
286
|
+
await parameters.hooks?.renewed?.({
|
|
287
|
+
periodIndex,
|
|
288
|
+
receipt: renewal.result.receipt,
|
|
289
|
+
subscription: renewal.result.subscription,
|
|
290
|
+
});
|
|
291
|
+
return renewal.result.receipt;
|
|
292
|
+
}
|
|
293
|
+
return SubscriptionReceipt.fromRecord(subscription);
|
|
239
294
|
}
|
|
240
295
|
await parameters.hooks?.activated?.({
|
|
241
296
|
receipt: activation.result.receipt,
|
|
@@ -285,6 +340,13 @@ async function resolveChallengeAccessKey(parameters) {
|
|
|
285
340
|
return ((await resolveAccessKey({ input, parameters: subscriptionParameters, request, resolved })) ??
|
|
286
341
|
(existing && isActive(existing) ? existing.accessKey : undefined));
|
|
287
342
|
}
|
|
343
|
+
async function createUnboundChallengeAccessKey(parameters) {
|
|
344
|
+
const accessKey = await parameters.store.getOrCreateAccessKey(`challenge:${createSubscriptionId()}`);
|
|
345
|
+
return {
|
|
346
|
+
accessKeyAddress: accessKey.accessKeyAddress,
|
|
347
|
+
keyType: accessKey.keyType,
|
|
348
|
+
};
|
|
349
|
+
}
|
|
288
350
|
async function activateSubscription(parameters) {
|
|
289
351
|
const { accessKey, auto, credential, input, parameters: subscriptionParameters, request, resolved, source, } = parameters;
|
|
290
352
|
if (subscriptionParameters.activate) {
|
|
@@ -414,16 +476,30 @@ function isActive(subscription) {
|
|
|
414
476
|
return false;
|
|
415
477
|
return new Date(subscription.subscriptionExpires).getTime() > Date.now();
|
|
416
478
|
}
|
|
479
|
+
function isActiveSubscriptionForRequest(subscription, request) {
|
|
480
|
+
return isActive(subscription) && subscriptionMatchesRequest(subscription, request);
|
|
481
|
+
}
|
|
417
482
|
function isReusableSubscription(subscription, request) {
|
|
418
|
-
return (
|
|
419
|
-
getPeriodIndex(subscription) <= subscription.lastChargedPeriod
|
|
420
|
-
subscriptionMatchesRequest(subscription, request));
|
|
483
|
+
return (isActiveSubscriptionForRequest(subscription, request) &&
|
|
484
|
+
getPeriodIndex(subscription) <= subscription.lastChargedPeriod);
|
|
421
485
|
}
|
|
422
486
|
function subscriptionMatchesRequest(subscription, request) {
|
|
423
487
|
const actual = comparableSubscriptionBinding(subscription);
|
|
424
488
|
const expected = comparableSubscriptionBinding(request);
|
|
425
489
|
return Object.keys(expected).every((key) => actual[key] === expected[key]);
|
|
426
490
|
}
|
|
491
|
+
function assertSubscriptionPayer(subscription, source, options) {
|
|
492
|
+
if (!subscription.payer) {
|
|
493
|
+
if (options?.required) {
|
|
494
|
+
throw new VerificationFailedError({ reason: 'subscription payer is missing' });
|
|
495
|
+
}
|
|
496
|
+
return;
|
|
497
|
+
}
|
|
498
|
+
if (subscription.payer.chainId !== source.chainId ||
|
|
499
|
+
!isAddressEqual(subscription.payer.address, source.address)) {
|
|
500
|
+
throw new VerificationFailedError({ reason: 'subscription payer mismatch' });
|
|
501
|
+
}
|
|
502
|
+
}
|
|
427
503
|
function comparableSubscriptionBinding(value) {
|
|
428
504
|
const chainId = 'chainId' in value ? value.chainId : value.methodDetails?.chainId;
|
|
429
505
|
return {
|
|
@@ -558,7 +634,8 @@ function resolveRenewalHandler(parameters) {
|
|
|
558
634
|
}
|
|
559
635
|
async function submitSubscriptionPayment(parameters) {
|
|
560
636
|
const { accessKey, feePayer, feePayerPolicy, getClient, keyAuthorization, lookupKey, request, settlementReference, source, store, waitForConfirmation, } = parameters;
|
|
561
|
-
const stored = await store.getAccessKey(lookupKey)
|
|
637
|
+
const stored = (await store.getAccessKey(lookupKey)) ??
|
|
638
|
+
(await store.getAccessKeyByAddress(accessKey.accessKeyAddress));
|
|
562
639
|
if (!stored) {
|
|
563
640
|
throw new VerificationFailedError({ reason: 'subscription access key is missing' });
|
|
564
641
|
}
|
|
@@ -633,6 +710,8 @@ async function submitSubscriptionPayment(parameters) {
|
|
|
633
710
|
feePayerSignature: undefined,
|
|
634
711
|
});
|
|
635
712
|
if (!waitForConfirmation) {
|
|
713
|
+
// Optimistic mode has no receipt to inspect, so it cannot detect a T6
|
|
714
|
+
// (TIP-1028) held transfer. Use `waitForConfirmation: true` for T6-safe proof.
|
|
636
715
|
return sendRawTransaction(client, {
|
|
637
716
|
serializedTransaction: serializedTransaction,
|
|
638
717
|
});
|
|
@@ -645,8 +724,41 @@ async function submitSubscriptionPayment(parameters) {
|
|
|
645
724
|
reason: `subscription transaction reverted: ${receipt.transactionHash}`,
|
|
646
725
|
});
|
|
647
726
|
}
|
|
727
|
+
assertSubscriptionTransfer(receipt, {
|
|
728
|
+
amount: BigInt(request.amount),
|
|
729
|
+
currency: request.currency,
|
|
730
|
+
memo,
|
|
731
|
+
recipient: request.recipient,
|
|
732
|
+
});
|
|
648
733
|
return receipt.transactionHash;
|
|
649
734
|
}
|
|
735
|
+
/**
|
|
736
|
+
* Asserts a confirmed subscription payment credited the recipient.
|
|
737
|
+
*
|
|
738
|
+
* Transaction success alone is not proof: under Tempo T6 (TIP-1028) a recipient
|
|
739
|
+
* receive policy can hold the funds in `ReceivePolicyGuard` while the tx still
|
|
740
|
+
* succeeds. Settlement always emits one `transferWithMemo(recipient, amount,
|
|
741
|
+
* memo)`, so this requires a matching `TransferWithMemo` log on the expected
|
|
742
|
+
* token. A held transfer fails because its `to` is the guard, and the memo
|
|
743
|
+
* binding excludes unrelated transfer effects in the same receipt.
|
|
744
|
+
*/
|
|
745
|
+
function assertSubscriptionTransfer(receipt, parameters) {
|
|
746
|
+
const { amount, currency, memo, recipient } = parameters;
|
|
747
|
+
const credited = parseEventLogs({
|
|
748
|
+
abi: Abis.tip20,
|
|
749
|
+
eventName: 'TransferWithMemo',
|
|
750
|
+
logs: receipt.logs,
|
|
751
|
+
}).some((log) => isAddressEqual(log.address, currency) &&
|
|
752
|
+
isAddressEqual(log.args.to, recipient) &&
|
|
753
|
+
log.args.amount === amount &&
|
|
754
|
+
log.args.memo.toLowerCase() === memo.toLowerCase());
|
|
755
|
+
if (!credited) {
|
|
756
|
+
throw new VerificationFailedError({
|
|
757
|
+
reason: `subscription transfer was not credited to the recipient ` +
|
|
758
|
+
`(funds may have been held by a receive policy): ${receipt.transactionHash}`,
|
|
759
|
+
});
|
|
760
|
+
}
|
|
761
|
+
}
|
|
650
762
|
function createSubscriptionId() {
|
|
651
763
|
const bytes = new Uint8Array(18);
|
|
652
764
|
globalThis.crypto.getRandomValues(bytes);
|