@domino-sdk/relay 1.69.0 → 1.71.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 +28 -0
- package/build.mjs +3 -0
- package/dist/{accounts-DD4gAOCe.d.ts → accounts-COLmXRbW.d.ts} +144 -13
- package/dist/{attempt-captures-CbuCmthd.d.ts → attempt-captures-CVl161qB.d.ts} +3 -2
- package/dist/authoring.d.ts +68 -25
- package/dist/authoring.js +15 -9
- package/dist/{automatic-outcomes-DE3vfi8g.d.ts → automatic-outcomes-5l68PGr1.d.ts} +2 -2
- package/dist/browser.d.ts +9 -9
- package/dist/browser.js +11 -9
- package/dist/{catalog-Cf3fHDNn.d.ts → catalog-BR3g-1H9.d.ts} +41 -2
- package/dist/{chunk-ME2KUAVJ.js → chunk-3KKRXN5E.js} +1 -1
- package/dist/{chunk-CQVKOD3B.js → chunk-74SMLZZ5.js} +723 -685
- package/dist/{chunk-CZ23KRVK.js → chunk-CVJTIVAP.js} +1 -1
- package/dist/{chunk-TCREFRPK.js → chunk-DDID5QX5.js} +153 -4
- package/dist/{chunk-WVK3G2J2.js → chunk-EMKYDGZ3.js} +1 -1
- package/dist/{chunk-2A3BJ262.js → chunk-FGZGL5PG.js} +1 -1
- package/dist/{chunk-GEVARKEV.js → chunk-GHBYWDEZ.js} +8 -1
- package/dist/{chunk-RKTMSTT7.js → chunk-HN7DE2UN.js} +2 -2
- package/dist/{chunk-LGGD7S5T.js → chunk-IDG2VPYG.js} +32 -6
- package/dist/{chunk-SWLW4VN3.js → chunk-KC4UB4ZX.js} +1 -1
- package/dist/{chunk-ODJGTFPY.js → chunk-KIRXE37T.js} +6 -6
- package/dist/{chunk-VAGGGB6B.js → chunk-MDSSIOBC.js} +58 -1
- package/dist/{chunk-BRROI4CH.js → chunk-OFSJYXGI.js} +12 -4
- package/dist/{chunk-LZXDYSUH.js → chunk-PYZSCFMJ.js} +4 -0
- package/dist/{chunk-UGM6DUB2.js → chunk-QMKTYPK6.js} +4 -3
- package/dist/{chunk-PO2ZDY27.js → chunk-TW4RABVS.js} +1 -1
- package/dist/{chunk-AZDZEQFK.js → chunk-UEVZ3TST.js} +29 -2
- package/dist/{chunk-DIXYVGXO.js → chunk-VFHLMNYV.js} +1 -1
- package/dist/{chunk-WNEQEDMU.js → chunk-W6DBNBMT.js} +2 -2
- package/dist/{client-6eSYOl8h.d.ts → client-B__hMWtK.d.ts} +104 -7
- package/dist/{dashboards-DCOAXL54.d.ts → dashboards-DXpjHnq-.d.ts} +3 -3
- package/dist/{deployments-BIfdCMd5.d.ts → deployments-CT2kQloT.d.ts} +199 -3
- package/dist/{identity-integration-BlfOn8rc.d.ts → identity-integration-ClX4oUAu.d.ts} +4 -4
- package/dist/index.d.ts +10 -10
- package/dist/index.js +7 -7
- package/dist/internal.d.ts +44 -26
- package/dist/internal.js +26 -50
- package/dist/{limits-Ctaeq23J.d.ts → limits-B7wbnWhd.d.ts} +1 -1
- package/dist/{offers-COqHGbHm.d.ts → offers-D4pyeY9b.d.ts} +2 -2
- package/dist/portal-proxy.d.ts +2 -2
- package/dist/portal-proxy.js +11 -10
- package/dist/react/index.d.ts +31 -12
- package/dist/react/index.js +116 -41
- package/dist/{reward-deliveries-DFhYGJdx.d.ts → reward-deliveries-HGpj1VFz.d.ts} +1 -1
- package/dist/runtime/authoring.js +1 -1
- package/dist/runtime/chunks/A7G5P76B.js +1 -0
- package/dist/runtime/manifest.json +3 -3
- package/dist/runtime/schema.js +1 -1
- package/dist/schema.d.ts +40 -16
- package/dist/schema.js +9 -7
- package/dist/server/index.d.ts +12 -12
- package/dist/server/index.js +944 -579
- package/dist/{sign-in-providers-C97mRNbG.d.ts → sign-in-providers-lbOXCF8N.d.ts} +2 -2
- package/dist/solana.d.ts +12 -12
- package/dist/solana.js +8 -8
- package/dist/{telegram-browser-gRMgGs7B.d.ts → station-check-in-qBiaftfE.d.ts} +89 -7
- package/dist/{submission-input-BD7nORuh.d.ts → submission-input-U4aIkJuT.d.ts} +2 -2
- package/dist/telegram.d.ts +7 -7
- package/dist/testing.d.ts +15 -11
- package/dist/testing.js +23 -12
- package/dist/{tracker-data-DQgX3FIc.d.ts → tracker-data-2BYXZjsN.d.ts} +3 -3
- package/dist/{transport-BLU8jrhg.d.ts → transport-fszraZPi.d.ts} +1736 -19
- package/dist/{wallet-CPAjrW4k.d.ts → wallet-BqswMAqZ.d.ts} +3 -1
- package/dist/{wallet-browser-BzPt_Qb5.d.ts → wallet-browser-B5r7u3xB.d.ts} +1 -1
- package/package.json +1 -1
- package/dist/runtime/chunks/HKAI5OQA.js +0 -1
|
@@ -43,6 +43,8 @@ declare const solanaDevnet = "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1";
|
|
|
43
43
|
type SolanaNetwork = typeof solanaMainnet | typeof solanaDevnet;
|
|
44
44
|
/** Whether `value` is the CAIP-2 ID of a Solana cluster Relay reads ({@link SolanaNetwork}). */
|
|
45
45
|
declare function isSolanaNetwork(value: string): value is SolanaNetwork;
|
|
46
|
+
/** Whether `value` is an EVM address: `0x` and 40 hex digits, in either case. */
|
|
47
|
+
declare function isEvmAddress(value: string): value is `0x${string}`;
|
|
46
48
|
declare const evmAddressSchema: z.ZodString;
|
|
47
49
|
/** Bech32 with any prefix, in one case. The server checks the checksum and stores lowercase. */
|
|
48
50
|
declare const cosmosAddressSchema: z.ZodString;
|
|
@@ -1060,5 +1062,5 @@ interface WalletReader {
|
|
|
1060
1062
|
stake?(query: WalletStakeQuery): Promise<WalletStake | null>;
|
|
1061
1063
|
}
|
|
1062
1064
|
|
|
1063
|
-
export { walletEventsSchema as a$, WALLETS_PER_CHAIN as aF, anchorIdlSchema as aG, caip10 as aH, cosmosAddressSchema as aI, cosmosChain as aJ, evmAddressSchema as aK, evmChainIdSchema as aL, isSolanaNetwork as aM, linkedWalletSchema as aN, maxSolanaSeeds as aO, solanaAddressSchema as aP, solanaMemoProgram as aQ, solanaProgramIdlSchema as aR, solanaSeedSchema as aS, solanaSignatureSchema as aT, solanaTransactionFixtureInputSchema as aU, walletAddressInput as aV, walletBalanceSampleSchema as aW, walletBalanceSchema as aX, walletCallSchema as aY, walletChainSchema as aZ, walletDelegationsSchema as a_, cosmosDenomSchema as ab, cosmosNetworkSchema as ac, isContractCall as ad, isContractEvent as ae,
|
|
1065
|
+
export { walletEventsSchema as a$, WALLETS_PER_CHAIN as aF, anchorIdlSchema as aG, caip10 as aH, cosmosAddressSchema as aI, cosmosChain as aJ, evmAddressSchema as aK, evmChainIdSchema as aL, isSolanaNetwork as aM, linkedWalletSchema as aN, maxSolanaSeeds as aO, solanaAddressSchema as aP, solanaMemoProgram as aQ, solanaProgramIdlSchema as aR, solanaSeedSchema as aS, solanaSignatureSchema as aT, solanaTransactionFixtureInputSchema as aU, walletAddressInput as aV, walletBalanceSampleSchema as aW, walletBalanceSchema as aX, walletCallSchema as aY, walletChainSchema as aZ, walletDelegationsSchema as a_, cosmosDenomSchema as ab, cosmosNetworkSchema as ac, isContractCall as ad, isContractEvent as ae, isEvmAddress as af, isEvmChainId as ag, isNftCollection as ah, isSolanaProgram as ai, maxWalletEventLogs as aj, maxWalletEventLookback as ak, maxWalletTransactionLookback as al, maxWalletTransactions as am, parseContractCall as an, parseContractEvent as ao, parseContractFunction as ap, parseNftCollection as aq, walletAddressInputSchema as ar, walletSignatureSchema as as, walletTransactionProofSchema as at, walletMessageChallengeSchema as b0, walletNftsSchema as b1, walletProgramAccountSchema as b2, walletProgramActivitySchema as b3, walletSignInFamilies as b4, walletSignInNetwork as b5, walletSignInNetworkSchema as b6, walletSignInNetworksSchema as b7, walletStakeSchema as b8, walletTransactionChallengeSchema as b9, walletTransactionsSchema as ba, walletUnlinkInputSchema as bb, evmWalletOn as bc, solanaMainnet as m, solanaDevnet as s };
|
|
1064
1066
|
export type { WalletNftSample as $, ContractCallParts as A, ContractCallReturnType as B, CosmosChain as C, ContractEventInput as D, ContractEventParts as E, ContractFunction as F, CosmosDenom as G, EvmChainId as H, NftCollectionParts as I, NftStandard as J, SolanaSeedInteger as K, LinkedWallet as L, WalletBalance as M, NftCollection as N, WalletBalanceChange as O, WalletBalanceSample as P, WalletCall as Q, WalletCallArgument as R, SolanaIdlSource as S, WalletCallQuery as T, WalletDelegations as U, WalletDelegationsQuery as V, WalletAddressInput as W, WalletEventCondition as X, WalletEventValue as Y, WalletEvents as Z, WalletEventsQuery as _, CosmosNetwork as a, WalletNfts as a0, WalletNftsQuery as a1, WalletProgramAccount as a2, WalletProgramAccountQuery as a3, WalletProgramAccountSample as a4, WalletProgramActivity as a5, WalletStake as a6, WalletStakeQuery as a7, WalletStakeSample as a8, WalletTransactions as a9, KnownSolanaIdlSource as aA, KnownStakePointKind as aB, KnownWalletProofKind as aC, SolanaProgramIdl as aD, SolanaTransactionFixtureInput as aE, WalletTransactionsQuery as aa, SolanaCollectionKind as au, ProgramAccountPointKind as av, StakePointKind as aw, AnchorIdl as ax, KnownProgramAccountPointKind as ay, KnownSolanaCollectionKind as az, WalletChain as b, WalletMessageChallenge as c, WalletProofKind as d, WalletSignInNetwork as e, WalletSignature as f, WalletSigner as g, WalletTransactionChallenge as h, WalletTransactionProof as i, WalletUnlinkInput as j, WalletBalanceQuery as k, SolanaNetwork as l, SolanaSeed as n, ContractCall as o, ContractEvent as p, SolanaProgram as q, WalletBalanceSourceQuery as r, WalletProgramActivitySourceQuery as t, WalletNftSourceQuery as u, WalletStakeSourceQuery as v, WalletProgramAccountSourceQuery as w, WalletTransaction as x, WalletInstruction as y, WalletReader as z };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as CosmosChain, a as CosmosNetwork, g as WalletSigner, e as WalletSignInNetwork } from './wallet-
|
|
1
|
+
import { C as CosmosChain, a as CosmosNetwork, g as WalletSigner, e as WalletSignInNetwork } from './wallet-BqswMAqZ.js';
|
|
2
2
|
|
|
3
3
|
/** An EIP-1193 provider, such as `window.ethereum` or an EIP-6963 announcement's provider. */
|
|
4
4
|
type Eip1193Provider = {
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Bb as sr,Cb as o,Dc as et,Dd as $,Ec as p,Ed as Ie,Ga as or,Gc as tt,Hc as s,Jd as ur,Kb as b,Od as R,Vb as oe,Zb as se,_b as cr,b as nr,ca as ar,d as V,dd as rt,ec as He,fc as d,hc as Oe,ia as ir,ic as r,jc as z,kc as ce,lc as Je,mc as g,md as dr,nd as nt,od as mr,qc as h,rc as Ge,sa as ie,tc as Ye,uc as lr,va as t,vc as Xe,vd as le,wc as y}from"./EWU4OKSY.js";var Ua=Symbol.for("@domino-sdk/relay.RequestError");var Na=class extends Error{name="RequestError";[Ua]=!0;kind;uncertain;status;code;operationId;recovery;retryAfter;constructor(e,n){super(e,n.cause===void 0?{}:{cause:n.cause}),this.kind=n.kind,this.uncertain=n.uncertain??!1,this.status=n.status,this.code=n.code,this.operationId=n.operationId,this.retryAfter=n.retryAfter,this.recovery=this.uncertain?n.operationId&&(n.replaySafe??!0)?"replay":"reconcile":void 0}};function Za(e){return[...new Set(e.map(n=>n.path.length?n.path.map(String).join(".")+": "+n.message:n.message))].join("; ")}function qe(e,n,i){let c=n.safeParse(i);if(c.success)return c.data;let l=typeof i=="object"&&i!==null&&"key"in i&&typeof i.key=="string"?` "${i.key}"`:"";throw Da(e+l,c.error)}var zr=e=>e instanceof Error&&Array.isArray(e.issues);function Da(e,n){return zr(n)&&Object.defineProperty(n,"message",{value:`${e} is invalid: ${Za(n.issues)}`,configurable:!0,writable:!0}),n}function Kc(e,n){try{return n()}catch(i){if(zr(i))for(let c of i.issues)c.path.unshift(e);throw i}}var br={NotSignedIn:"not-signed-in",StaleSession:"stale-session",Unauthenticated:"unauthenticated",InvalidInput:"invalid-input",InvalidResponse:"invalid-response",Network:"network",Timeout:"timeout",Aborted:"aborted",NotFound:"not-found",RetryUnavailable:"retry-unavailable",SubmissionStorage:"submission-storage",SubmissionStorageQuota:"submission-storage-quota",SubmissionConflict:"submission-conflict",OperationRetired:"operation-retired",QuestUpdated:"quest-updated",AttemptPending:"attempt-pending",RetryCooldown:"retry-cooldown",CompletionCooldown:"completion-cooldown",StaleQuiz:"stale-quiz",InvalidSubmission:"invalid-submission",InvalidCursor:"invalid-cursor",PointLedgerNotFound:"point-ledger-not-found",NotJoined:"not-joined",OutsideWindow:"outside-window",EnrollmentRequired:"enrollment-required",BudgetExhausted:"budget-exhausted",OfferNotFound:"offer-not-found",OfferPaused:"offer-paused",OfferLimitReached:"offer-limit-reached",OfferOutOfStock:"offer-out-of-stock",InsufficientPoints:"insufficient-points",Credential:"credential",WalletSigner:"wallet-signer",PrerequisitesIncomplete:"prerequisites-incomplete",QuestClosed:"quest-closed",QuestPaused:"quest-paused",MemberBanned:"member-banned",ProfileLocked:"profile-locked",InvitationNotFound:"invitation-not-found",InvalidCode:"invalid-code",CodeExpired:"code-expired",ChallengeExpired:"challenge-expired",RateLimited:"rate-limited",TransactionNotFinal:"transaction-not-final",TransactionNotFound:"transaction-not-found",TransactionFailed:"transaction-failed",ProofMismatch:"proof-mismatch",ChallengeUsed:"challenge-used"},_a=Symbol.for("@domino-sdk/relay.RelayError");var La=class extends Na{name="RelayError";[_a]=!0;window;missing;retryAt;constructor(e,n){super(e,n),this.window=n.window,this.missing=n.missing??[],this.retryAt=n.retryAt}};function pr(e,n,i={}){return new La(e,{...i,kind:"client",code:n})}var at="use 1\u2013100 letters, digits, _ or - (no :, . or spaces)",a=t().min(1,at).max(100,at).regex(/^[a-zA-Z0-9_-]+$/,at),Nr=r({name:t().trim().min(1).max(120),description:t().trim().max(1e3).default(""),image:t().url().max(2048)}).strict(),Zr=Nr.extend({key:a}).strict(),qt=Nr.extend({id:a,key:a.nullable()}).strip(),Hc=qt.extend({archivedAt:o().int().nonnegative().nullable()}),Jc=Zr.extend({actionId:a}).strict(),Gc=g([Zr,r({code:t().min(1).max(2e6)}).strict()]),Ba=r({badge:qt,awardedAt:o().int().nonnegative()}),Yc=r({items:d(Ba)}),Xc=r({items:d(qt)}),el=r({actionId:a,reason:t().trim().min(1).max(1e3)}).strict(),tl=r({badge:a,member:a,awarded:b(),changed:b()}),Ka=Symbol("domino.response.tolerant-v1");function Dr(e){return Object.assign(e,{[Ka]:!0})}var it=new WeakMap;function rl(e){let n=i=>{let c={};for(let[l,m]of Object.entries(e)){let u=f=>(Object.defineProperty(c,l,{value:f,writable:!0,enumerable:!0,configurable:!0}),f);Object.defineProperty(c,l,{get:()=>u(i(m())),set:u,enumerable:!0,configurable:!0})}return c};return{known:n(_r),tolerant:n(Br)}}function k(e){let n=it.get(e);if(n)return n;let i=Object.create(Object.getPrototypeOf(e._zod.def),Object.getOwnPropertyDescriptors(e._zod.def));if(e instanceof Oe){let l;Object.defineProperty(i,"shape",{get:()=>l??=Object.fromEntries(Object.entries(e.shape).map(([m,u])=>[m,k(u)])),configurable:!0,enumerable:!0}),Object.assign(i,{catchall:e._zod.def.catchall instanceof cr||!e._zod.def.catchall?void 0:k(e._zod.def.catchall)})}else e instanceof sr?Object.assign(i,{checks:e._zod.def.checks?.filter(l=>{let m=l._zod.def;return m.check!=="less_than"||!("value"in m)||m.value===Number.MAX_SAFE_INTEGER||m.value===864e13})}):e instanceof He?Object.assign(i,{element:k(e.element),checks:[]}):e instanceof Je?Object.assign(i,{options:e.options.map(k)}):e instanceof Ye?Object.assign(i,{items:e._zod.def.items.map(k),rest:e._zod.def.rest?k(e._zod.def.rest):null}):e instanceof Ge?Object.assign(i,{left:k(e._zod.def.left),right:k(e._zod.def.right)}):e instanceof nt?Object.assign(i,{getter:()=>k(e._zod.def.getter())}):e instanceof Xe?Object.assign(i,{valueType:k(e.valueType)}):e instanceof rt?Object.assign(i,{in:k(e.in),out:k(e.out)}):"innerType"in i&&i.innerType instanceof ie&&Object.assign(i,{innerType:k(i.innerType)});let c=nr(e,i);return it.set(e,c),it.set(c,c),c}function _r(e){return k(e)}function Lr(e){if(e instanceof Oe)return e.shape;if("innerType"in e._zod.def&&e._zod.def.innerType instanceof ie)return Lr(e._zod.def.innerType)}function bt(e){if(e instanceof tt)return[...e.values];if(e instanceof et)return e.options;if("innerType"in e._zod.def&&e._zod.def.innerType instanceof ie)return bt(e._zod.def.innerType)}function U(e,n){if(e instanceof tt)return typeof n=="string"&&[...e.values].every(i=>typeof i=="string")&&!e.values.has(n);if(e instanceof et)return typeof n=="string"&&!e.options.includes(n);if(e instanceof He&&Array.isArray(n))return n.some(i=>U(e.element,i));if(e instanceof Ye&&Array.isArray(n))return n.some((i,c)=>{let l=e._zod.def.items[c]??e._zod.def.rest;return l?U(l,i):!1});if(e instanceof Ge)return U(e._zod.def.left,n)||U(e._zod.def.right,n);if(e instanceof nt)return U(e._zod.def.getter(),n);if(e instanceof Xe&&n!==null&&typeof n=="object"&&!Array.isArray(n))return Object.entries(n).some(([i,c])=>U(e.keyType,i)||U(e.valueType,c));if(e instanceof Je){let i=[...e.options];if(typeof n=="string"){let c=i.flatMap(l=>bt(l)??[]);if(c.some(l=>typeof l=="string")&&!c.includes(n))return!0}if(n!==null&&typeof n=="object"&&!Array.isArray(n)){let c=y(t(),se()).parse(n),l=["kind","status","provider","input","type","mode"];for(let m of l){if(typeof c[m]!="string")continue;let u=i.map(S=>{let C=Lr(S)?.[m];return C?bt(C):void 0});if(u.some(S=>!S))continue;let f=i.filter((S,C)=>u[C]?.includes(c[m]));if(!f.length)return!0;i=f}}return i.every(c=>U(c,n))}if(e instanceof Oe&&n!==null&&typeof n=="object"&&!Array.isArray(n)){let i=y(t(),se()).parse(n);return Object.entries(e.shape).some(([c,l])=>U(l,i[c]))||Object.entries(i).some(([c,l])=>!(c in e.shape)&&!!e._zod.def.catchall&&U(e._zod.def.catchall,l))}if(e instanceof rt){if(U(e.in,n))return!0;let i=ir(e.in,n);return i.success&&U(e.out,i.data)}return"innerType"in e._zod.def&&e._zod.def.innerType instanceof ie?U(e._zod.def.innerType,n):!1}function Br(e){return Dr($().transform((n,i)=>{let c=_r(e),l=c.safeParse(n);if(l.success)return{kind:"supported",value:l.data};if(U(c,n))return{kind:"unsupported",raw:n};for(let m of l.error.issues)i.addIssue({...m});return V}))}function nl(e){return Dr(d(Br(e)).transform(n=>({items:n,unsupportedCount:n.filter(i=>i.kind==="unsupported").length})))}var w=t().min(1).max(4096);var al=z({cursor:w.optional()});async function*il(e){let n;do{let i=await e(n);yield*i.items,n=i.nextCursor??void 0}while(n!==void 0)}var ol=z({cursor:w.optional(),limit:R.number().int().min(1).max(100).default(50)}),Rt=p(["google","apple","x","discord"]),Qa=r({provider:Rt,configured:b(),status:p(["disconnected","connected","reconnect"]),subject:t().nullable(),revision:o().int().nonnegative()}),sl={Google:"google",Apple:"apple",X:"x",Discord:"discord",Telegram:"telegram"},Kr=t(),cl=t().regex(/^[a-z][a-z0-9-]{0,63}$/,"Name a sign-in provider, such as google"),ll={Disconnected:"disconnected",Connected:"connected",Reconnect:"reconnect"},Fa=t(),dl=r({provider:Kr,configured:b()}),ml=r({provider:Kr,configured:b(),status:Fa,subject:t().nullable(),revision:o().int().nonnegative()}),ul=r({}).strict(),zl=r({channelId:t().regex(/^[0-9]{1,20}$/),messageId:t().regex(/^[0-9]{1,20}$/)}).strict(),bl=r({userId:t().regex(/^[0-9]{1,20}$/).nullable().default(null),nickname:t().nullable().default(null),displayName:t().nullable().default(null),boostingSince:t().datetime({offset:!0}).nullable().default(null),roles:d(t().regex(/^[0-9]{1,20}$/)),joinedAt:t().datetime({offset:!0}).nullable(),pending:b()}),Qr="telegram-reactions",Fr="telegram-messages",Va="youtube-shorts",Wa="tiktok-videos",Vr="wallet-balances",Wr="wallet-program-activity",Ha="wallet-nfts",Ja="wallet-stake",Ga="wallet-program-accounts",pl=r({login:b(),miniApp:b()}),gl=Qa.extend({provider:s("telegram")}),Ya=t().min(1,"Pass the Mini App's Telegram.WebApp.initData").max(8192),fl=r({initData:Ya,mode:p(["sign-in","connect"])}).strict(),Hr=t().regex(/^-?[1-9][0-9]{0,19}$/,"Use the chat's numeric ID, such as -1001234567890"),Xa=r({id:Hr,type:t(),title:t(),username:t().nullable(),status:t(),issue:t().nullable(),canPost:b().optional(),connectedAt:o()}),hl=r({configured:b(),bot:r({username:t()}).nullable(),chats:d(Xa)}),vl=r({url:t(),expiresAt:o()}),yl=r({chat:t().regex(/^(-?[1-9][0-9]{0,19}|@[A-Za-z][A-Za-z0-9_]{3,31})$/,"Name a chat the project connected, by its numeric ID or @username")}).strict(),kl=r({operation:s("connection")}).strict(),Sl=r({userId:t()}),jl=r({userId:t(),username:t().nullable(),status:le(e=>typeof e=="string"),isMember:b(),isAdmin:b(),untilDate:o().nullable()}),xl=r({chatId:t(),chatType:t(),messageId:o(),reactionType:t(),emoji:t().nullable(),customEmojiId:t().nullable(),reactorStatus:t(),reactorIsAdmin:b()}),wl=r({chatId:t(),chatType:t(),messageId:o(),replyToMessageId:o().nullable(),threadId:o().nullable()}),I=Object.freeze({quests:1e3,questTypes:200,collections:1e3,sdkRuntime:Object.freeze({modules:200,size:2e6}),memberCompletions:100,dashboardPanels:24,dashboards:20,defer:Object.freeze({minRetryAfterMs:1e3,maxRetryAfterMs:36e5,retryAfterMs:6e4,horizonMs:864e5,maxDefers:100}),retryCooldown:Object.freeze({minMs:1e3,maxMs:6048e5}),analyticsQueryRows:100,apps:Object.freeze({secrets:50,kvStores:5,sqlStores:5,migrations:100,migrationFileBytes:9e4,migrationTotalBytes:1e6,storageRows:50,storagePreviewCharacters:2e3,storageCellCharacters:1e5,storageClearKeys:1e4,storageClearCountKeys:1e5,schedules:10,scheduleMinIntervalMs:3e5,scheduleTimeoutMs:3e4,scheduleResultBytes:16384}),stagedDeployment:Object.freeze({size:64e6,compressedSize:1e7}),capabilityCalls:8,trackerData:Object.freeze({branches:16,entries:256}),trackerPreview:Object.freeze({pages:3,posts:100,days:30}),walletsPerChain:5,walletEventLogs:1e3,walletTransactions:1e3,transactionFixtureSignatures:20}),Jr="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";function ei(e){let n=0;for(;n<e.length&&e[n]===0;)n++;let i=[];for(let l=n;l<e.length;l++){let m=e[l];for(let u=0;u<i.length;u++)m+=i[u]*256,i[u]=m%58,m=Math.floor(m/58);for(;m>0;)i.push(m%58),m=Math.floor(m/58)}let c="1".repeat(n);for(let l=i.length-1;l>=0;l--)c+=Jr[i[l]];return c}function Gr(e,n){if(e.length>Math.ceil(n*Math.log(256)/Math.log(58)))return null;let i=0;for(;i<e.length&&e[i]==="1";)i++;let c=[];for(let m=i;m<e.length;m++){let u=Jr.indexOf(e[m]);if(u<0)return null;for(let f=0;f<c.length;f++)u+=c[f]*58,c[f]=u&255,u>>=8;for(;u>0;)c.push(u&255),u>>=8}let l=new Uint8Array(i+c.length);return l.set(c.reverse(),i),l.length===n&&ei(l)===e?l:null}var Y=t().min(32).max(44).regex(/^[1-9A-HJ-NP-Za-km-z]+$/),ge=p(["solana","eip155","cosmos"]),Yr=/^cosmos:[-_a-zA-Z0-9]{1,32}$/,Pt=le(e=>typeof e=="string"&&Yr.test(e),"Use a Cosmos network: cosmos:<chain ID>"),Al=t().regex(/^[a-zA-Z][a-zA-Z0-9/:._-]{2,127}$/,"Use a Cosmos bank denomination such as uatom or uosmo");function Ol(e){if(typeof e=="string"&&!e.startsWith("cosmos:"))throw new Error('Use a Cosmos network such as "cosmos:cosmoshub-4"');let n=typeof e=="string"?{chainId:e.slice(7)}:e;if(typeof n?.chainId!="string")throw new Error('Pass a Cosmos chain as { chainId } or a network such as "cosmos:cosmoshub-4"');let i=`cosmos:${n.chainId}`;if(!Yr.test(i))throw new Error("A Cosmos chain ID has 1 to 32 letters, digits, hyphens or underscores");if(n.chainInfo&&n.chainInfo.chainId!==n.chainId)throw new Error("The chain info describes another chain ID");return{...n,network:i}}var Ue="solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",Xr="solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1";function en(e){return e===Ue||e===Xr}var ti=t().regex(/^0x[0-9a-fA-F]{40}$/),ri=t().min(8).max(90).regex(/^(?:[a-z][a-z0-9]{0,82}1[02-9ac-hj-np-z]{38,}|[A-Z][A-Z0-9]{0,82}1[02-9AC-HJ-NP-Z]{38,})$/),Il=h("chain",[r({chain:s("solana"),address:Y}).strict(),r({chain:s("eip155"),address:ti,chainId:o().int().positive().safe().optional()}).strict(),r({chain:s("cosmos"),network:Pt,address:ri}).strict()]),ql=r({id:t().min(1).max(200),purpose:p(["link","sign-in"]),chain:ge,network:Pt.nullable(),address:t(),message:t().max(4096),expiresAt:o().int()}),Rl=r({challenge:t().min(1).max(200),signature:t().min(1).max(16384),publicKey:t().max(128).optional()}).strict();function Ct(e){return/^eip155:[1-9][0-9]{0,15}$/.test(e)}var ni=le(e=>typeof e=="string"&&Ct(e),'Use an EVM chain ID such as "eip155:8453"'),Pl="MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr",tn=t().min(64).max(88).refine(e=>Gr(e,64)!==null,{message:"Use a Solana transaction signature: base58, 64 bytes"}),Cl=r({id:t().min(1).max(200),chain:ge,address:t(),memo:t().max(566),memoProgram:t(),expiresAt:o().int()}),$l=r({chain:s("solana"),address:Y,signature:tn}).strict(),Tl=r({chain:ge,network:Pt.nullable(),address:t(),provedOn:ni.optional(),provedBy:t().optional(),proofTransaction:t().optional(),verifiedAt:o().int().nonnegative(),revision:o().int().positive(),signIn:b()}),El=r({chain:ge,address:t().min(1).max(100)}).strict();async function Ml(e){let n=await e.address();switch(e.chain){case"solana":return{chain:"solana",address:n};case"eip155":return{chain:"eip155",address:n,...e.chainId?{chainId:await e.chainId()}:{}};case"cosmos":if(!e.network)throw pr("Choose the Cosmos chain for this wallet",br.InvalidInput);return{chain:"cosmos",network:e.network,address:n}}}var Ul=5,pt=["solana","eip155","cosmos"],ai=p(pt),Nl=d(ai).max(pt.length).refine(e=>new Set(e).size===e.length,{message:"Duplicate wallet family"}).transform(e=>pt.filter(n=>e.includes(n)));function Zl(e){return e.chain}function Dl(e,n){if(e.chain==="eip155"&&e.provedOn){if(n&&n!==e.provedOn)throw new Error(`A smart-contract wallet is an account on ${e.provedOn} only`);return`${e.provedOn}:${e.address}`}if(e.chain==="cosmos"){if(!e.network||n&&n!==e.network)throw new Error("A Cosmos wallet belongs to its own network");return`${e.network}:${e.address}`}let i=n??(e.chain==="solana"?Ue:"eip155:1");if(!(e.chain==="solana"?/^solana:[1-9A-HJ-NP-Za-km-z]{32}$/.test(i):Ct(i)))throw new Error(`Use a ${e.chain} network for this wallet`);return`${i}:${e.address}`}var A=t().regex(/^(0|[1-9][0-9]*)$/),_l=k(r({chain:t(),token:t().nullable(),decimals:o().int().min(0).max(255).nullable(),total:A,wallets:d(r({address:t(),amount:A}).strict()),at:r({kind:p(["slot","block"]),number:A}).strict(),observedAt:o().int().nonnegative()}).strict()),Ll=r({amount:t(),decimals:o().int().min(0).max(255).nullable(),block:t()}),Bl=r({signature:t(),slot:t(),timestamp:o().int().nonnegative(),signer:b(),instruction:t().nullable(),amount:t().nullable(),delta:t().nullable()}),ii=/^(eip155:[1-9][0-9]{0,15})\/(erc721|erc1155):(0x[0-9a-fA-F]{40})(?:\/(0|[1-9][0-9]{0,77}))?$/,oi=/^(solana:[1-9A-HJ-NP-Za-km-z]{32})\/nft:(.*)$/,si=2n**256n-1n;function ci(e){let n=oi.exec(e);if(n){let[,f,S]=n;return en(f)&&Y.safeParse(S).success?{chain:f,standard:"metaplex",mint:S}:null}let i=ii.exec(e);if(!i)return null;let[,c,l,m,u]=i;return l==="erc1155"!=(u!==void 0)||u!==void 0&&BigInt(u)>si?null:{chain:c,standard:l,contract:m,tokenId:u??null}}function rn(e){return ci(e)!==null}var Kl=k(r({collection:t(),chain:t(),standard:p(["erc721","erc1155","metaplex"]),kind:t().optional(),total:A,wallets:d(r({address:t(),count:A}).strict()),at:r({kind:p(["slot","block"]),number:A}).strict(),observedAt:o().int().nonnegative()}).strict()),Ql=r({count:t(),block:t()}),nn=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,li=/^bytes([1-9]|[12][0-9]|3[0-2])?$/;function di(e){let n=nn.exec(e);return n?`${n[1]}${n[2]??"256"}`:e==="address"||e==="bool"||e==="string"||li.test(e)?e:null}function gr(e){let n=/^([a-z0-9]+)(?:\s+[A-Za-z_$][A-Za-z0-9_$]*)?$/.exec(e.trim());return n?di(n[1]):null}function mi(e){let n=/^function\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*\(([^()]*)\)\s+(?:external\s+)?(view|pure)\s+returns\s*\(([^()]*)\)$/.exec(e.trim());if(!n)return null;let[,i,c,l,m]=n,u=c.trim()?c.split(",").map(gr):[],f=m.includes(",")?null:gr(m);return u.length>16||u.some(S=>S===null)||!f||!(f==="bool"||f==="address"||nn.test(f))?null:{name:i,inputs:u,returns:f,mutability:l,signature:`function ${i}(${u.join(",")}) ${l} returns (${f})`}}function ui(e){let n=/^(eip155:[1-9][0-9]{0,15}):(0x[0-9a-fA-F]{40}) (function .+)$/.exec(e),i=n&&e.length<=400?mi(n[3]):null;return i?{chain:n[1],contract:n[2],function:i}:null}function zi(e){return ui(e)!==null}var an=t().regex(/^(0|-?[1-9][0-9]*)$/),Fl=k(r({call:t(),chain:t(),contract:t(),returns:t(),total:an.nullable(),wallets:d(r({address:t(),value:g([t(),b()])}).strict()),at:r({kind:p(["block"]),number:A}).strict(),observedAt:o().int().nonnegative()}).strict()),Vl=k(r({chain:t(),denom:t(),validator:t().nullable(),total:A,wallets:d(r({address:t(),amount:A}).strict()),validators:d(r({validator:t(),amount:A}).strict()),at:r({kind:p(["block"]),number:A}).strict(),observedAt:o().int().nonnegative()}).strict()),bi=/^(eip155:[1-9][0-9]{0,15}):(0x[0-9a-fA-F]{40})\s+(?:event\s+)?([A-Za-z_$][A-Za-z0-9_$]*)\s*\(([^()]*)\)\s*;?$/,pi=/^([a-z0-9]+(?:\[[0-9]*\])*)(\s+indexed)?\s+([A-Za-z_$][A-Za-z0-9_$]*)$/;function gi(e){let n=/^([a-z]+)([0-9]*)((?:\[[0-9]*\])*)$/.exec(e);if(!n)return null;let[,i,c,l]=n,m=c===""?256:Number(c),u=null;return c.startsWith("0")?null:(i==="uint"||i==="int"?u=m>=8&&m<=256&&m%8===0?i+m:null:i==="bytes"?u=c===""||m<=32?i+c:null:(i==="address"||i==="bool"||i==="string")&&c===""&&(u=i),u&&/^(\[([1-9][0-9]*)?\])?$/.test(l)?u+l:null)}function fi(e){let n=bi.exec(e.trim());if(!n)return null;let[,i,c,l,m]=n,u=[];for(let S of m.trim()?m.split(","):[]){let C=pi.exec(S.trim()),ae=C&&gi(C[1]);if(!C||!ae||C[3]==="indexed"||u.some(Ae=>Ae.name===C[3]))return null;u.push({name:C[3],type:ae,indexed:!!C[2]})}let f=u.filter(S=>S.indexed);return f.length>3||!f.some(S=>S.type==="address")?null:{chain:i,contract:c,name:l,inputs:u,signature:`${l}(${u.map(S=>S.type).join(",")})`}}function hi(e){return fi(e)!==null}var Wl=1e3,Hl=720*60*60*1e3,fr=g([t(),b()]),vi=g([fr,d(fr)]),Jl=k(r({event:t(),chain:t(),contract:t(),since:o().int().nonnegative(),at:r({kind:p(["block"]),number:A}).strict(),finality:p(["finalized","safe"]),complete:b().optional(),logs:d(r({wallet:t(),block:A,timestamp:o().int().nonnegative(),tx:t(),logIndex:o().int().nonnegative(),args:y(t(),vi)}).strict()).max(I.walletEventLogs),observedAt:o().int().nonnegative()}).strict());function yi(e){return Y.safeParse(e).success}var Be=y(t(),$()),on=r({program:t(),source:t(),idl:Be}).strict(),Gl=1e3,Yl=720*60*60*1e3,Xl=k(r({program:t(),chain:t(),mint:t().nullable(),since:o().int().nonnegative(),at:r({kind:p(["slot"]),number:A}).strict(),complete:b(),transactions:d(r({wallet:t(),signature:t(),slot:A,timestamp:o().int().nonnegative(),signer:b().default(!1),programs:d(t()),balanceChanges:d(r({mint:t(),delta:an}).strict()),instructions:d(r({name:t(),args:y(t(),$()),accounts:y(t(),t())}).strict()).optional()}).strict()),observedAt:o().int().nonnegative()}).strict()),ed=r({chain:p([Ue,Xr]).default(Ue),program:Y,signatures:d(tn).min(1).max(I.transactionFixtureSignatures).refine(e=>new Set(e).size===e.length,{message:"List each signature once"}),wallet:Y.optional(),idl:Be.optional()}).strict(),Z=g([o().finite(),t().max(64)]),ki=g([z({wallet:s(!0)}),t().max(200),z({pubkey:t().max(64)}),z({u8:Z}),z({u16:Z}),z({u32:Z}),z({u64:Z}),z({u128:Z}),z({i8:Z}),z({i16:Z}),z({i32:Z}),z({i64:Z}),z({i128:Z})]),Si=15,td=k(r({program:t(),chain:t(),account:t(),wallets:d(r({address:t(),pda:t(),fields:y(t(),$()).nullable()})),at:r({kind:t(),number:A}),observedAt:o().int().nonnegative()})),hr={amount:A,activating:A,deactivating:A},rd=k(r({chain:t(),voteAccount:t().nullable(),epoch:o().int().nonnegative(),total:A,activating:A,deactivating:A,wallets:d(r({address:t(),...hr})),voteAccounts:d(r({voteAccount:t(),...hr})),at:r({kind:t(),number:A}),observedAt:o().int().nonnegative()})),nd=r({amount:t(),activating:t(),deactivating:t(),block:t()}),ad=r({amount:t().nullable(),pda:t(),block:t()}),id=r({guildId:t(),channelId:t(),messageId:t(),userId:t(),content:t().nullable(),replyTo:t().nullable(),publishedAt:o()}).strict(),$t=z({kind:s("discord-messages"),text:b().optional()}),Tt=z({kind:s("discord-reactions")}),ji=r({guildId:t(),channelId:t(),parentChannelId:t().nullable().optional(),messageId:t(),replyTo:t().nullable(),publishedAt:o()}),od=ji.extend({text:t().nullable()}),sd=r({guildId:t(),channelId:t(),parentChannelId:t().nullable().optional(),messageId:t(),emoji:r({id:t().nullable(),name:t()}),reactorRoles:d(t()),messagePublishedAt:o()}),xi=z({kind:s("integration"),provider:s("discord"),action:s("grant-role"),roleId:t().regex(/^[0-9]{1,20}$/)}),wi=g([z({provider:s("discord"),resource:s("channel"),types:d(p(["text","announcement"])).min(1),postable:s(!0).optional()}),z({provider:s("discord"),resource:s("role"),assignable:b().default(!1)})]),Ai=16,Oi=32768,cd=16,ld=256,vr=g([t(),o().finite(),b(),oe()]),Re=o().int().safe().nonnegative(),Pe=o().finite(),ot=()=>d(me).min(1).max(I.trackerData.branches),me=mr(()=>z({type:p(["object","array","string","number","integer","boolean","null"]).optional(),properties:y(t(),me).refine(e=>Object.keys(e).length<=I.trackerData.entries,`An object schema lists at most ${I.trackerData.entries} properties`).optional(),required:d(t()).max(I.trackerData.entries).optional(),additionalProperties:g([b(),me]).optional(),propertyNames:z({type:s("string"),enum:d(t()).max(I.trackerData.entries).optional()}).optional(),items:me.optional(),minItems:Re.optional(),maxItems:Re.optional(),minLength:Re.optional(),maxLength:Re.optional(),minimum:Pe.optional(),maximum:Pe.optional(),exclusiveMinimum:Pe.optional(),exclusiveMaximum:Pe.optional(),enum:d(vr).min(1).max(I.trackerData.entries).optional(),const:vr.optional(),anyOf:ot().optional(),oneOf:ot().optional(),allOf:ot().optional()}));function Ii(e){let n=[[e,0]];for(;n.length;){let[i,c]=n.pop();if(!(typeof i!="object"||i===null)){if(c>=Ai)return"Tracker data schemas are at most 32 KB and 16 levels deep";if(!Array.isArray(i)&&Object.hasOwn(i,"__proto__"))return"Tracker data schemas cannot name a property __proto__";for(let l of Object.values(i))n.push([l,c+1])}}return new TextEncoder().encode(JSON.stringify(e)).byteLength>Oi?"Tracker data schemas are at most 32 KB and 16 levels deep":null}var sn=e=>[...e.anyOf??[],...e.oneOf??[],...e.allOf??[]],qi=e=>e.properties!==void 0||e.items!==void 0||typeof e.additionalProperties=="object"||sn(e).length>0;function gt(e,n,i){let c=sn(e);if(i&&c.filter(qi).length>1)return n;let l=[...Object.entries(e.properties??{}).map(([m,u])=>[u,`${n}.${m}`])];e.items&&l.push([e.items,n]),typeof e.additionalProperties=="object"&&l.push([e.additionalProperties,n]);for(let[m,u]of l){let f=gt(m,u,i);if(f)return f}for(let m of c){let u=gt(m,n,!0);if(u)return u}return null}var cn=se().superRefine((e,n)=>{let i=Ii(e);i&&n.addIssue({code:"custom",message:i,abort:!0})}).pipe(me).refine(e=>e.type==="object","A tracker's record data is an object: declare it with z.object({ ... })").superRefine((e,n)=>{let i=gt(e,"data",!1);i&&n.addIssue({code:"custom",message:`Tracker data schemas cannot nest a union with several object, array or union branches inside another union's branch (${i}): flatten it into one union`})}),yr={pattern:"check string patterns in your evaluator",format:"use z.string() and check the format in your evaluator",prefixItems:"use an array or an object instead of a tuple",multipleOf:"check divisibility in your evaluator",not:"describe the allowed values instead",$ref:"inline the schema instead of registering or reusing it by ID",$defs:"inline the schema instead of registering or reusing it by ID",definitions:"inline the schema instead of registering or reusing it by ID",if:"use a union instead",then:"use a union instead",else:"use a union instead",contains:"check array contents in your evaluator",minContains:"check array contents in your evaluator",maxContains:"check array contents in your evaluator",uniqueItems:"check uniqueness in your evaluator",minProperties:"check key counts in your evaluator",maxProperties:"check key counts in your evaluator",patternProperties:"use z.record(z.string(), value) instead",dependentRequired:"use a union instead",dependentSchemas:"use a union instead",unevaluatedProperties:"use a strict object instead",unevaluatedItems:"use an array instead"},ln=new Set(["additionalProperties","items","propertyNames"]),dn=new Set(["anyOf","oneOf","allOf"]),Ri=new Set(["type","properties","required","minItems","maxItems","minLength","maxLength","minimum","maximum","exclusiveMinimum","exclusiveMaximum","enum","const",...ln,...dn]),Pi=new Set(["$schema","$id","$comment","title","description","default","examples","deprecated","readOnly","writeOnly"]);function ft(e){if(Array.isArray(e))return e.map(ft);if(typeof e!="object"||e===null)return e;let n=Object.fromEntries(Object.entries(e).map(([l,m])=>[l,ft(m)]));if(!Array.isArray(n.type))return n;let{type:i,...c}=n;return{anyOf:i.map(l=>l==="null"?{type:l}:{...c,type:l})}}function Me(e,n){if(typeof e!="object"||e===null||Array.isArray(e))return e;let i={};for(let[c,l]of Object.entries(e)){if(Object.hasOwn(yr,c))throw new Error(`Tracker data schemas cannot use ${c} (${n}): ${yr[c]}`);if(!Pi.has(c)){if(!Ri.has(c))throw new Error(`Tracker data schemas cannot use the keyword ${c} (${n}): keep metadata to title, description, default and examples`);if(c==="properties"&&Object.hasOwn(l,"__proto__")||c==="required"&&l.includes("__proto__"))throw new Error(`Tracker data schemas cannot name a property __proto__ (${n})`);i[c]=c==="properties"?Object.fromEntries(Object.entries(l).map(([m,u])=>[m,Me(u,`${n}.${m}`)])):ln.has(c)?Me(l,n):dn.has(c)?l.map(m=>Me(m,n)):l}}return i}function dd(e){let n;try{n=ar(e,{target:"draft-2020-12",io:"input",unrepresentable:"throw",cycles:"throw",reused:"inline",override:({zodSchema:c,path:l})=>{let m=c._zod.def,u=["data",...l].join(".");if(m.type==="pipe"||m.type==="transform")throw new Error(`Tracker data schemas cannot transform values (${u}): records are stored as sent`);if(m.checks?.some(f=>f._zod.def.check==="custom"))throw new Error(`Tracker data schemas cannot use refinements (${u}): check the value in your evaluator`)}})}catch(c){let l=c instanceof Error?c.message:String(c);throw new Error(l.startsWith("Tracker data schemas")?l:`Tracker data schemas describe JSON: ${l}. Use z.unknown() for any JSON value.`)}let i=cn.safeParse(Me(ft(n),"data"));if(!i.success)throw new Error(i.error.issues.map(c=>c.message).join("; "));return i.data}var mn=25e4,Ci=6e6,un=class extends Error{};function Ce(e,n){if(e.steps-=n,e.steps<0)throw new un}var zn=64,$i=256;function ht(e,n){return e.length>n?e.slice(0,n-1)+"\u2026":e}function Ti(e){let n=[];for(let i=e;i;i=i.parent)n.push(ht(String(i.key),zn));return ht(["data",...n.reverse()].join("."),$i)}var H=e=>e===null?"null":Array.isArray(e)?"an array":typeof e,st=10;function Ei(e){let n=e.slice(0,st).map(i=>JSON.stringify(i)).join(", ");return e.length>st?`expected one of ${n}, or ${e.length-st} more`:`expected one of ${n}`}var kr=new WeakMap,Sr=new WeakMap;function jr(e,n){let i=kr.get(e);return i||(i=new Set(n),kr.set(e,i)),i}function Mi(e){let n=Sr.get(e);return n||(n=Object.entries(e.properties??{}).filter(([,i])=>i.const!==void 0),Sr.set(e,n)),n}function G(e,n,i,c){Ce(c,1);let l=m=>({at:i,reason:m});if(e.const!==void 0&&n!==e.const)return l(()=>`expected ${JSON.stringify(e.const)}`);if(e.enum&&!jr(e,e.enum).has(n)){let m=e.enum;return l(()=>Ei(m))}switch(e.type){case"null":if(n!==null)return l(()=>`expected null, got ${H(n)}`);break;case"boolean":case"string":if(typeof n!==e.type){let m=e.type;return l(()=>`expected a ${m}, got ${H(n)}`)}break;case"number":if(typeof n!="number")return l(()=>`expected a number, got ${H(n)}`);break;case"integer":if(!Number.isInteger(n))return l(()=>typeof n=="number"?"expected an integer":`expected an integer, got ${H(n)}`);break;case"array":if(!Array.isArray(n))return l(()=>`expected an array, got ${H(n)}`);break;case"object":if(typeof n!="object"||n===null||Array.isArray(n))return l(()=>`expected an object, got ${H(n)}`);break}if(typeof n=="string"){let{minLength:m,maxLength:u}=e;if(m!==void 0&&n.length<m)return l(()=>`expected at least ${m} characters`);if(u!==void 0&&n.length>u)return l(()=>`expected at most ${u} characters`)}if(typeof n=="number"){let m=[[e.minimum,u=>n>=u,"at least"],[e.exclusiveMinimum,u=>n>u,"more than"],[e.maximum,u=>n<=u,"at most"],[e.exclusiveMaximum,u=>n<u,"less than"]];for(let[u,f,S]of m)if(u!==void 0&&!f(u))return l(()=>`expected ${S} ${u}`)}if(Array.isArray(n)){let{minItems:m,maxItems:u}=e;if(m!==void 0&&n.length<m)return l(()=>`expected at least ${m} items`);if(u!==void 0&&n.length>u)return l(()=>`expected at most ${u} items`);if(e.items)for(let f=0;f<n.length;f++){let S=G(e.items,n[f],{parent:i,key:f},c);if(S)return S}}if(typeof n=="object"&&n!==null&&!Array.isArray(n)){let m=n,u=e.properties??{},f=e.required??[];Ce(c,f.length);for(let M of f)if(!Object.hasOwn(m,M))return l(()=>`missing required key "${ht(M,zn)}"`);let S=Mi(e);Ce(c,S.length);for(let[M,F]of S)if(Object.hasOwn(m,M)&&m[M]!==F.const)return{at:{parent:i,key:M},reason:()=>`expected ${JSON.stringify(F.const)}`};let C=Object.keys(m);Ce(c,C.length);let ae=e.propertyNames?.enum,Ae=ae&&jr(e.propertyNames,ae);for(let M of C){if(Ae&&!Ae.has(M))return{at:{parent:i,key:M},reason:()=>"is not an allowed key"};let F=Object.hasOwn(u,M)?u[M]:e.additionalProperties;if(F===!1)return{at:{parent:i,key:M},reason:()=>"is not an allowed key"};if(F&&F!==!0){let rr=G(F,m[M],{parent:i,key:M},c);if(rr)return rr}}}for(let m of e.allOf??[]){let u=G(m,n,i,c);if(u)return u}if(e.anyOf&&!e.anyOf.some(m=>!G(m,n,i,c)))return l(()=>"matches none of the allowed shapes");if(e.oneOf){let m=0;for(let u of e.oneOf)if(!G(u,n,i,c)&&++m>1)return l(()=>"matches more than one of the allowed shapes");if(!m)return l(()=>"matches none of the allowed shapes")}return null}function Ui(e,n,i={steps:mn}){try{let c=G(e,n,null,i);return c&&{kind:"mismatch",path:Ti(c.at),reason:c.reason()}}catch(c){if(c instanceof un)return{kind:"too-complex",path:"data",reason:"is too complex to validate against the tracker's schema"};throw c}}function Ni(e,n){let i={steps:Ci};return n.map(c=>{let l={steps:Math.min(mn,i.steps)},m=l.steps,u=Ui(e,c,l);return i.steps-=m-Math.max(l.steps,0),u})}function vt(e){return e.flatMap(n=>n.anyOf||n.oneOf||n.allOf?vt([...n.anyOf??[],...n.oneOf??[],...n.allOf??[]]):[n])}var xr=e=>e.type===void 0&&e.properties===void 0&&e.const===void 0&&e.enum===void 0;function Zi(e,n){let i=new Set(["string","number","boolean","null","object","array"]),c=[e];for(let m of n.split(".")){let u=[];for(let f of vt(c))if(xr(f))u.push({});else{if(f.type!=="object")continue;f.properties&&Object.hasOwn(f.properties,m)?u.push(f.properties[m]):f.additionalProperties===!0?u.push({}):f.additionalProperties&&u.push(f.additionalProperties)}if(!u.length)return null;c=u}let l=new Set;for(let m of vt(c)){if(xr(m))return i;m.type&&l.add(m.type==="integer"?"number":m.type);for(let u of[...m.const!==void 0?[m.const]:[],...m.enum??[]])l.add(u===null?"null":typeof u)}return l}function md(e){return{content:(n,i)=>e.content(n,i),summary:(n,i)=>e.summary(n,i),records:(async(n,i)=>{let c=await e.records(n,i),l=n.source,m=l?.kind==="custom"?l.data:void 0;if(!m)return c;let u=Ni(m,c.items.map(S=>S.data)),f=c.items.filter((S,C)=>!u[C]);return{...c,items:f,excluded:c.items.length-f.length}})}}function ud(e,n){let i=n===void 0?[]:Array.isArray(n)?n:[n];for(let c of i){let l=Zi(e,c.path);if(!l)return`The tracker filter reads data.${c.path}, which the tracker's data schema does not declare`;if(!("equals"in c?[typeof c.equals]:["number","string"]).some(u=>l.has(u)))return`The tracker filter compares data.${c.path} with ${"equals"in c?JSON.stringify(c.equals):"a number"}, but the field holds ${[...l].join(" or ")}`}return null}var bn=t().trim().min(1).max(500),Di=/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/;function pn(){return ur.datetime({offset:!0,pattern:Di})}var x=o().int().safe().nonnegative().max(864e13),P=o().int().safe().nonnegative(),N=t().min(1).max(256),J=P.nullable().default(null),_i=ce({id:N,userId:N,content:t(),createdAt:pn(),author:ce({id:N,username:t(),name:t(),verified:b().nullable().default(null)}),likeCount:J,replyCount:J,retweetCount:J,quoteCount:J,viewCount:J,bookmarkCount:J,isReply:b(),isRetweet:b(),isQuoteTweet:b()}),Li=z({version:s(1),id:t().min(1),authorId:t().min(1),publishedAt:x,text:t(),isReply:b(),isRetweet:b(),isQuoteTweet:b(),media:d(z({type:t(),url:t()})).nullable(),mentionedAuthorIds:d(t().min(1)).nullable(),videoLengthSeconds:o().nonnegative().nullable(),references:z({replyId:t().nullable(),replyAuthorId:t().nullable(),quoteId:t().nullable(),quoteAuthorId:t().nullable(),repostId:t().nullable(),repostAuthorId:t().nullable()})}),Bi=z({id:N,observation:t().regex(/^observation_[a-f0-9]{64}$/)}),zd=Bi.extend({member:a}),ct={member:a,capturedAt:x},gn=z({contentRevision:a,observation:a}),bd=z({tracker:a,source:s("x"),evidence:gn,content:Li,observedAt:x,removed:b(),attribution:h("kind",[z({...ct,kind:s("linked"),account:z({provider:s("x"),issuer:t().min(1),subject:N,revision:P,linkedAt:x.nullable()})}),z({...ct,kind:s("unlinked")}),z({...ct,kind:s("different-author")})])}),Ki=["wallet","x","discord","member"],fn=dr(["app:",t().regex(/^[a-z0-9][a-z0-9_-]{0,39}$/,"Name an app identity kind like app:game: lowercase letters, digits, _ or -, at most 40")]),Et=g([p(Ki),fn]),pd=e=>e.startsWith("app:"),fe=t().min(1).max(64),gd=r({kind:fe,subject:N,revision:P,linkedAt:x.nullable()}),he=t().regex(/^[a-zA-Z][a-zA-Z0-9_]{0,39}$/,"Name roles like author or recipient: a letter, then letters, digits or underscores"),fd=["author","inReplyTo","quoted","reposted"],yt=e=>new Set(e).size===e.length,hn=t().regex(/^[a-z][a-zA-Z0-9]{0,39}$/,"Name metrics like likes or watchTime: a lowercase letter, then letters or digits"),Qi=["likes","replies","reposts","quotes","views","bookmarks"],Fi=z({metrics:d(hn).max(10).refine(yt,"List each metric once")}),vn=z({chain:t().regex(/^(?:solana:(?:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp|EtWTRABZaYq6iMfeYKouRu166VU2xqa1)|eip155:[1-9][0-9]{0,15}|cosmos:[-_a-zA-Z0-9]{1,32})$/,'Use "solana", Solana devnet ("solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1"), an EVM chain such as "eip155:8453" or a Cosmos network such as "cosmos:cosmoshub-4"'),token:t().min(1).max(128).nullable()}),Mt=t().regex(/^solana:(?:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp|EtWTRABZaYq6iMfeYKouRu166VU2xqa1)$/,'Use "solana" or Solana devnet ("solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1")'),Ut=z({chain:Mt,program:t().regex(/^[1-9A-HJ-NP-Za-km-z]{32,44}$/,"Use a base58 program address"),instruction:t().regex(/^[A-Za-z_][A-Za-z0-9_]{0,63}$/,"Use the instruction's name as the program's IDL spells it").nullable(),mint:t().regex(/^[1-9A-HJ-NP-Za-km-z]{32,44}$/,"Use a base58 SPL mint address").nullable(),minAmount:t().regex(/^[1-9][0-9]{0,77}$/,"Use a positive whole number of base units").nullable(),anySigner:b()}).refine(e=>e.minAmount===null||e.mint!==null,"minAmount needs a mint"),yn=z({collection:t().max(200).refine(e=>rn(e),"Use an NFT collection")}),kn=z({chain:Mt,voteAccount:t().refine(e=>Gr(e,32)!==null,"Use a base58 vote account address").nullable()}),Sn=z({chain:Mt,program:t().regex(/^[1-9A-HJ-NP-Za-km-z]{32,44}$/,"Use a base58 program address"),account:t().min(1).max(128),seeds:d(ki).min(1).max(Si).refine(e=>e.some(n=>typeof n=="object"&&"wallet"in n),"Place the member's wallet in the seeds with { wallet: true }"),field:t().min(1).max(128),idl:on.optional()}),ee=r({kind:s("x-search"),query:t().trim().min(1).max(2e3)}).strict(),jn=r({kind:s("custom"),namespace:a,identities:d(Et).min(1).max(8).refine(yt,"List each identity kind once").optional(),accounts:d(he).min(1).max(10).refine(yt,"List each account role once").refine(e=>!e.includes("author"),"author is every record's own role; name other accounts").optional(),data:cn.optional(),content:Fi.optional(),balance:vn.optional(),activity:Ut.optional(),nfts:yn.optional(),stake:kn.optional(),programAccount:Sn.optional()}).strict().refine(e=>e.balance===void 0||e.namespace===Vr,"Only wallet.balances() samples a balance").refine(e=>e.activity===void 0||e.namespace===Wr,"Only wallet.programActivity() records program activity").refine(e=>e.nfts===void 0||e.namespace===Ha,"Only wallet.nfts() samples NFTs").refine(e=>e.stake===void 0||e.namespace===Ja,"Only wallet.stake() samples stake").refine(e=>e.programAccount===void 0||e.namespace===Ga,"Only wallet.programAccounts() samples program accounts").refine(e=>!e.content||e.data?.properties?.body?.type==="object"&&(e.data.required??[]).includes("body"),"A content source's data schema has a required object body").refine(e=>!e.accounts||e.identities,"Named accounts need identities"),Vi=h("kind",[ee,jn,$t,Tt]),Wi=["x-search","custom","discord-messages","discord-reactions"];function hd(e){if(wn(e))switch(e.kind){case"x-search":return["x"];case"discord-messages":case"discord-reactions":return["discord"];case"custom":return e.identities}}function vd(e){switch(e.kind){case"x-search":return{metrics:Qi};case"custom":return e.content;case"discord-messages":case"discord-reactions":return}}var Nt=r({start:x,end:x.optional()}).strict().refine(e=>e.end===void 0||e.end>e.start,"End must follow start"),W=r({key:a,title:t().trim().min(1).max(120),source:Vi,window:Nt,refreshSeconds:o().int().min(300).max(86400).default(21600),maxPages:o().int().min(1).max(1e3).default(60)}).strict(),yd=g([W,r({code:t().min(1).max(2e6)}).strict()]),xn=h("kind",[r(ee.shape),r({...jn.shape,identities:d(fe).optional(),activity:r(Ut.shape).optional(),nfts:r({collection:t()}).optional(),stake:r({chain:t(),voteAccount:t().nullable()}).optional(),programAccount:r({chain:t(),program:t(),account:t(),seeds:d($()),field:t(),idl:r({program:t(),source:t(),idl:$()}).optional()}).optional()}),r($t.shape),r(Tt.shape)]),Hi=g([xn,r({kind:t().min(1).refine(e=>!Wi.some(n=>n===e),"Known source kinds must match their schema")}).catchall($())]);function wn(e){return xn.safeParse(e).success}var Ji=r({...W.shape,source:Hi,window:r(Nt.shape)}),Gi=r({id:a,version:a,definition:Ji,publishedAt:x,actor:t().nullable()}),An=r({archivedAt:o().int().nonnegative().nullable().optional(),published:Gi,paused:b(),pauseReason:t().nullable().optional(),resumesAt:x.nullable().optional(),effectiveRefreshSeconds:o().int().positive().optional(),state:p(["idle","syncing","error","complete"]),lastStartedAt:x.nullable(),lastCompletedAt:x.nullable(),nextSyncAt:x.nullable(),coverage:p(["unknown","partial","complete"]),error:t().nullable(),records:P,origin:p(["code","data"]).optional()}),On=h("kind",[ee,$t,Tt,z({kind:s("telegram-messages")}),z({kind:s("telegram-reactions")}),z({kind:s("youtube-shorts")}),z({kind:s("tiktok-videos")}),z({kind:s("wallet-balances"),...vn.shape})]),kd=["x-search","discord-messages","discord-reactions","telegram-messages","telegram-reactions","youtube-shorts","tiktok-videos","wallet-balances"],wr={[Fr]:"telegram-messages",[Qr]:"telegram-reactions",[Va]:"youtube-shorts",[Wa]:"tiktok-videos"};function Sd(e){if(wn(e))switch(e.kind){case"x-search":return{kind:"x-search",query:e.query};case"discord-messages":return{kind:"discord-messages",text:e.text??!1};case"discord-reactions":return{kind:"discord-reactions"};case"custom":return e.namespace===Vr?e.balance?{kind:"wallet-balances",...e.balance}:void 0:Object.hasOwn(wr,e.namespace)?{kind:wr[e.namespace]}:void 0}}var In=r({title:W.shape.title,query:ee.shape.query,window:Nt,refreshSeconds:W.shape.refreshSeconds.unwrap(),maxPages:W.shape.maxPages.unwrap()}).strict(),ve=In.extend({key:a,refreshSeconds:W.shape.refreshSeconds,maxPages:W.shape.maxPages,actionId:a}).strict(),jd=ve.extend({query:ee.shape.query.optional(),source:On.optional()}).refine(e=>e.query===void 0!=(e.source===void 0),"Name the source with source, or an X search with query, not both"),Yi=z({kind:s("wallet-program-activity"),...Ut.shape}).refine(e=>e.minAmount===null||e.mint!==null,"minAmount needs a mint"),xd=ve.omit({query:!0}).extend({source:Yi}),Xi=z({kind:s("wallet-nfts"),...yn.shape}),wd=ve.omit({query:!0}).extend({source:Xi}),eo=z({kind:s("wallet-stake"),...kn.shape}),Ad=ve.omit({query:!0}).extend({source:eo}),to=z({kind:s("wallet-program-accounts"),...Sn.shape,idl:Be.optional()}),Od=ve.omit({query:!0}).extend({source:to}),Id=In.partial().extend({source:On.optional(),actionId:a}).strict().refine(({actionId:e,...n})=>Object.values(n).some(i=>i!==void 0),"Change at least one field").refine(e=>e.query===void 0||e.source===void 0,"Change the query with source or query, not both"),qd=r({actionId:a,action:p(["pause","resume","refresh"]),reason:bn.optional()}).strict(),ro=z({kind:Et.optional(),id:N}),no=r({id:N,occurredAt:x,observedAt:x,author:r({id:N,verified:b().nullable().default(null),kind:Et.optional()}).strict().nullable().default(null),accounts:y(he,ro).refine(e=>Object.keys(e).length<=10,"At most 10 accounts").optional(),data:y(t(),$()),removed:b().default(!1)}).strict().refine(e=>new TextEncoder().encode(JSON.stringify(e.data)).byteLength<=131072,"Record exceeds 128 KB"),qn=r({kind:fe.optional(),id:t()}),ao=r({id:t(),occurredAt:x,observedAt:x,author:r({id:t(),verified:b().nullable().default(null),kind:fe.optional()}).nullable().default(null),accounts:y(t(),qn).optional(),data:y(t(),$()),removed:b().default(!1),source:t(),firstSeenAt:x,synthetic:s(!0).optional(),evidence:gn.nullable().optional()}),Rd=r({actionId:a,records:d(no).min(1).max(100)}).strict(),Pd=r({stored:P,admissions:r({admitted:P,skipped:P,filtered:P.optional()}).optional()}),Ar={quest:a,tracker:a,record:N,observedAt:x,release:a,account:t().nullable(),createdAt:x,updatedAt:x,actor:t().nullable()},Cd=["quest-paused","before-activation","outside-window","future-record","record-removed","invalid-record-data","content-unavailable","no-account","beneficiary-is-author","unlinked-account","ambiguous-account","not-joined","member-banned","already-completed","not-enrolled","before-enrollment","historical","prerequisites-incomplete"],io=t().optional(),Rn=h("state",[r({...Ar,state:s("admitted"),code:oe(),reason:oe(),member:a,attempt:a}),r({...Ar,state:s("skipped"),code:t().min(1),reason:t(),window:p(["tracker","quest"]).optional(),enrollment:io,member:a.nullable(),attempt:a.nullable()})]),Pn={quest:a.optional(),record:N.optional(),member:a.optional(),state:p(["admitted","skipped"]).optional(),code:t().min(1).max(100).optional(),limit:R.number().int().min(1).max(100).default(25)},$d=z({...Pn,cursor:w.optional()}),Td=r({items:d(Rn).max(100),nextCursor:w.nullable()}),Ed=z({...Pn,before:t().max(512).optional()}),Md=z({items:d(Rn).max(100),next:t().nullable()}),Ud=z({actionId:a,quest:a,record:N,observedAt:x}),lt=g([b(),p(["true","false"]).transform(e=>e==="true")]),Nd=r({author:N.optional(),member:a.optional(),verified:lt.optional(),since:R.number().int().safe().nonnegative().optional(),until:R.number().int().safe().nonnegative().optional(),removed:lt.default(!1),minLikes:R.number().int().safe().nonnegative().optional(),minViews:R.number().int().safe().nonnegative().optional(),limit:R.number().int().min(1).max(100).default(25),cursor:t().max(2048).optional(),includeEvidence:lt.optional()}).strict().refine(e=>e.since===void 0||e.until===void 0||e.until>e.since,"Until must follow since"),Zd=r({tracker:a,items:d(ao),nextCursor:t().nullable(),total:P,status:An}),Dd=r({records:P,authors:P,metrics:r({likes:P,replies:P,reposts:P,quotes:P,views:P,bookmarks:P}),missingMetrics:P,status:An}),_d={pages:3,posts:100,days:30},Ld=r({query:ee.shape.query,since:x}).strict(),Bd=r({query:t(),since:x,fetchedAt:x,pages:P,posts:d(_i).max(I.trackerPreview.posts),more:b()}),Kd=z({kind:p(["accept","reject","review","defer","progress","superseded"]),reason:t().nullable()}),oo=z({quest:a,member:a.optional(),content:t().min(1).max(256).optional(),cursor:w.optional()}),Cn=z({quest:a,content:t(),member:a,release:a,attempt:a,revision:a,observation:a,current:b(),state:p(["pending","qualified","unqualified","needs-review","failed","superseded","stale","blocked","unavailable"]),reason:t().nullable(),reward:z({attempt:a.nullable(),completion:a.nullable(),state:p(["unresolved","awarded","excluded"])})}),Qd=z({items:d(Cn),nextCursor:w.nullable()}),Ke=hn,K=y(Ke,o().int().safe().nonnegative()),so=z({metrics:d(Ke).min(1).max(10).refine(e=>new Set(e).size===e.length,"Metrics must be unique"),maxAgeMs:o().int().positive().max(864e5).default(36e5)}),dt=864e5,co=r({kind:s("count"),count:o().int().min(1).max(1e4)}).strict(),lo=h("kind",[r({kind:s("lifetime")}).strict(),r({kind:s("calendar"),period:p(["day","week","month"]),latenessMs:o().int().min(0).max(90*dt).default(7*dt)}).strict(),r({kind:s("rolling"),durationMs:o().int().min(1).max(365*dt)}).strict()]),mo=r({kind:s("progress"),goal:co,window:lo,repeat:p(["once","repeat"]).default("once")}).strict(),mt=r({id:a,ordinal:o().int().positive(),achievedAt:o().int(),window:t()}),$n=h("status",[mt.extend({status:s("revoked"),completion:a,revokedAt:o().int()}),mt.extend({status:s("awarded"),completion:a}),mt.extend({status:s("budget-exhausted"),budget:a})]),uo=r({goal:o().int().positive(),current:o().int().nonnegative(),window:r({key:t(),start:o().int().nullable(),end:o().int().nullable()}),repeat:p(["once","repeat"]),settled:o().int().nonnegative(),latest:$n.nullable()}),zo=r({id:a,distinct:t(),attempt:a,occurredAt:o().int(),recordedAt:o().int(),window:t(),status:p(["counted","late","future","excluded"]),achievement:$n.nullable(),reason:t().nullable()}),Fd=r({items:d(zo),nextCursor:t().nullable()}),Vd=r({actionId:or(),excluded:b(),reason:t().trim().min(1).max(2e3)}).strict(),Wd=r({cursor:t().max(2e3).optional(),limit:R.number().int().min(1).max(100).optional()}).strict(),Hd=r({excluded:b()}),Or=o().int().safe(),kt=/^(?:[+-]|(?:Etc\/)?GMT[+-]\d|(?:EST|MST|HST)$)/i;function bo(e){let n;try{n=new Intl.DateTimeFormat("en",{timeZone:e}).resolvedOptions().timeZone}catch{return null}return n==="UTC"?"UTC":kt.test(e)||kt.test(n)?null:n}var Tn=t().min(1).max(100).transform((e,n)=>{let i=bo(e);return i===null?(n.addIssue({code:"custom",message:kt.test(e)?"Use a named IANA timezone, such as Europe/Budapest or UTC. Fixed offsets have no daylight-saving rules.":"Use an IANA timezone name, such as Europe/Budapest or UTC"}),V):i}),ue=t().min(1).max(100),En=e=>`${e} no longer take a timeZone: they follow the project calendar. Set calendar.timeZone in relay.json or in Console settings.`,St=e=>typeof e=="object"&&e!==null;function po(e,n){return St(e)&&e.kind==="streak"&&"timeZone"in e&&n.addIssue({code:"custom",path:["timeZone"],message:En("Streaks")}),e}function go(e,n){let i=St(e)?e.window:void 0;return St(i)&&i.kind==="calendar"&&"timeZone"in i&&n.addIssue({code:"custom",path:["window","timeZone"],message:En("Calendar leaderboard windows")}),e}var te=p(["lifetime","day","week","month"]),Jd=r({timeZone:ue,today:t(),nextBoundary:Or,pending:r({timeZone:ue,effectiveAt:Or}).nullable(),declared:ue.nullable(),unsupported:t().nullable().default(null)}),Gd=r({actionId:a,timeZone:Tn,reason:t().trim().min(1).max(500)}).strict(),Yd=r({timeZone:Tn}).strict(),fo=r({kind:s("streak"),days:o().int().min(1).max(3650)}),ho=r({goal:o().int().positive(),current:o().int().nonnegative(),best:o().int().nonnegative(),today:t(),todayQualified:b(),timeZone:ue,nextBoundary:o().int(),pendingTimeZone:r({timeZone:ue,effectiveAt:o().int()}).nullable(),days:d(r({day:o().int(),date:t(),timeZone:t(),occurredAt:o().int()})),milestone:h("status",[r({status:s("pending")}),r({status:s("awarded"),completion:t(),achievedAt:o().int()}),r({status:s("budget-exhausted"),budget:t(),achievedAt:o().int()})])}),L=o().int().safe().nonnegative().max(864e13),jt=o().int().safe().nonnegative(),vo=p(["new-record","new-observation","data-changed"]);function Xd(e,n){return e==="custom"&&n!==Fr&&n!==Qr&&n!==Wr?"new-observation":"new-record"}var $e=g([o().finite(),z({setting:t().regex(/^[a-zA-Z][a-zA-Z0-9_]*$/)})]),Ir=t().max(200).regex(/^[^.\s]+(\.[^.\s]+)*$/,"Use dot-separated keys, such as metrics.likes"),qr=g([z({path:Ir,equals:g([t().max(1e3),o().finite(),b()])}),z({path:Ir,gt:$e.optional(),gte:$e.optional(),lt:$e.optional(),lte:$e.optional()}).refine(e=>[e.gt,e.gte,e.lt,e.lte].some(n=>n!==void 0),"Compare with equals, gt, gte, lt or lte")]),yo=g([qr,d(qr).min(1).max(10)]);function ko(e){return e===void 0?[]:Array.isArray(e)?e:[e]}function em(e){return ko(e).flatMap(n=>"equals"in n?[]:[n.gt,n.gte,n.lt,n.lte].flatMap(i=>typeof i=="object"?[i.setting]:[]))}var So=p(["none","required"]),jo=p(["activation","window","enrollment"]),xo=p(["staff","claim","automatic"]),wo=z({tracker:a,source:t().min(1).max(100),on:vo,where:yo.optional(),beneficiary:he,enrollment:So.optional(),since:jo.optional(),historical:xo.optional(),content:s(!0).optional()}).refine(e=>e.since!=="enrollment"||e.enrollment==="required",'since: "enrollment" needs enrollment: "required"');function tm(e){return e.on}function rm(e){return{enrollment:e.enrollment??"none",since:e.since??"activation",historical:e.historical??(e.content?"claim":"staff")}}function nm(e){return e.beneficiary}var Rr={issuer:t().min(1),subject:t().min(1).max(256),revision:jt,linkedAt:L.nullable()},Ao=r({member:a,capturedAt:L,account:g([r({provider:s("wallet"),id:t().min(5).max(256),revision:jt,linkedAt:L.nullable()}),r({provider:s("x"),...Rr}),r({provider:s("discord"),...Rr}),r({provider:s("member"),id:a}),r({provider:fn,subject:t().min(1).max(256),revision:jt,linkedAt:L.nullable()}),r({provider:t().min(1)})])}),Oo=r({id:t().min(1).max(256),source:t(),occurredAt:L,observedAt:L,firstSeenAt:L,author:r({id:t().min(1).max(256),verified:b().nullable(),kind:fe.optional()}).nullable(),accounts:y(he,qn).optional(),data:y(t(),$()),removed:b()}),Io=r({revision:a,observation:a,body:y(t(),$())}),am=r({tracker:a,key:a,beneficiary:he,record:Oo,content:Io.optional(),attribution:Ao,enrolledAt:L.optional()}),Pr=Object.freeze(["budget-exhausted","defer-expired","defer-limit-exceeded","evaluator-deferred","evaluator-progress","imported","integration-required","not-linked","provider-unavailable","author-error","evaluator-error","capability-limit"]),Cr=64,qo=/^[a-z0-9-]+$/;function Ro(e){return typeof e!="string"||e.length===0||e.length>Cr||!qo.test(e)?`Invalid reject code ${JSON.stringify(e)}: use lowercase letters, digits and hyphens, at most ${Cr} characters, such as "wrong-answers"`:Pr.includes(e)?`Invalid reject code ${JSON.stringify(e)}: Relay writes it itself. A reject code cannot be ${Pr.join(", ")}`:null}var Po=t().superRefine((e,n)=>{let i=Ro(e);i&&n.addIssue({code:"custom",message:i})}),im={quests:1e3,questTypes:200,collections:1e3},om={modules:200,size:2e6},Co=t().regex(/^[0-9a-f]{64}$/),$o=t().max(200).regex(/^[a-z0-9_][a-z0-9_.-]*(\/[a-z0-9_][a-z0-9_.-]*)*\.js$/i).refine(e=>!e.split("/").some(n=>n==="."||n===".."),"Runtime module paths cannot contain . or .. segments"),Zt=r({digest:Co,sdkVersion:t().min(1).max(64)}).strict(),To=y($o,t().min(1)).refine(e=>{let n=Object.values(e);return n.length>0&&n.length<=I.sdkRuntime.modules&&n.reduce((i,c)=>i+c.length,0)<=I.sdkRuntime.size},`A runtime has 1 to ${I.sdkRuntime.modules} modules and at most ${I.sdkRuntime.size} characters of source`),sm=Zt.extend({zodVersion:t().min(1).max(64),modules:To}).strict();async function cm(e){let n=JSON.stringify(Object.entries(e).sort(([c],[l])=>c<l?-1:c>l?1:0)),i=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(n));return[...new Uint8Array(i)].map(c=>c.toString(16).padStart(2,"0")).join("")}var $r=t().regex(/^[a-zA-Z0-9][a-zA-Z0-9._:-]{0,199}$/),Dt=h("kind",[fo,mo,r({kind:s("once")}).strict(),r({kind:s("keyed"),across:s("members").optional()}).strict()]),xt=t().min(1).max(500),Mn=r({id:$r,scope:p(["member","project"]),period:te,limit:o().int().positive().max(Number.MAX_SAFE_INTEGER),cost:g([o().int().positive().max(Number.MAX_SAFE_INTEGER),r({balance:$r}).strict()])}).strict(),Eo=Mn.extend({scope:s("author")}).strict(),lm=r({quest:t().min(1).max(200),key:xt,completedAt:o().int().nonnegative().safe().nullable()}),dm=100,Mo=p(["discord","x"]),Uo=t().regex(/^[a-z][a-z0-9-]{0,63}$/,"Name an integration module provider, such as discord"),No=p(["discord"]),Un=r({id:t().regex(/^[0-9]{1,20}$/),name:t().min(1),icon:t().nullable()}),mm=r({provider:No,configured:b(),status:p(["disconnected","ready","attention"]),revision:o().int().nonnegative(),server:Un.nullable(),issue:t().nullable(),connectedAt:o().default(0)}),um=r({servers:d(Un)}),Nn=["beneficiary","author","quest","points","rewards"],Zo=new Set(Nn);function Do(e){let n=[],i="",c=0;for(;c<e.length;){let l=e[c];if(l==="{"&&e[c+1]==="{"){i+="{",c+=2;continue}if(l==="}"&&e[c+1]==="}"){i+="}",c+=2;continue}if(l==="}")return{error:"Write }} for a literal } in an announcement"};if(l!=="{"){i+=l,c+=1;continue}let m=e.indexOf("}",c),u=m===-1?"":e.slice(c+1,m);if(!Zo.has(u))return{error:`Unknown announcement placeholder {${u}}: use ${Nn.map(f=>`{${f}}`).join(", ")}, or {{ for a literal {`};i&&(n.push({kind:"text",text:i}),i=""),n.push({kind:"placeholder",name:u}),c=m+1}return i&&n.push({kind:"text",text:i}),{segments:n}}var _o=t().trim().min(1).max(1e3).superRefine((e,n)=>{let i=Do(e);"error"in i&&n.addIssue({code:"custom",message:i.error})}),Zn={action:s("post-message"),text:_o,replyToTriggeringMessage:b().optional()},Lo=z({provider:s("telegram"),chat:Hr,...Zn}),Bo=z({provider:s("discord"),channel:t().regex(/^[0-9]{1,20}$/),...Zn}),Ko=h("provider",[Lo,Bo]),Qo=r({required:b().default(!0),minLength:o().int().min(0).max(1e4).default(1),maxLength:o().int().min(1).max(1e4).default(1e4)}).strict().refine(e=>e.minLength<=e.maxLength,"minLength must not exceed maxLength"),Fo=t().min(1).max(253).refine(e=>{if(!/^[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?$/i.test(e)||e.includes(".."))return!1;try{let n=new URL(`https://${e}`);return n.hostname===e.toLowerCase()&&!n.port&&!n.username&&!n.password&&n.pathname==="/"&&!n.search&&!n.hash}catch{return!1}},"Use a hostname without a scheme, path, port, or wildcard"),Vo=r({required:b().default(!0),allowedHosts:d(Fo).min(1).max(100).optional()}).strict(),Dn=r({kind:s("text"),value:t().max(1e4)}).strict(),_n=r({kind:s("url"),value:t().max(2048)}).strict(),zm=h("kind",[Dn,_n]);function bm(e,n){let i=e.kind==="text"?1e4:2048;if(e.value.length>i)return`Enter no more than ${i} characters`;if(e.kind!==n.input)return`This quest requires ${n.input} input`;if(!e.value.trim())return n.constraints.required?"This field is required":null;if(n.input==="text")return e.value.length<n.constraints.minLength?`Enter at least ${n.constraints.minLength} characters`:e.value.length>n.constraints.maxLength?`Enter no more than ${n.constraints.maxLength} characters`:null;let c=Ln(e.value);return c?n.constraints.allowedHosts&&!n.constraints.allowedHosts.some(l=>l.toLowerCase()===c.hostname.toLowerCase())?`Use a URL hosted on: ${n.constraints.allowedHosts.join(", ")}`:null:"Enter a valid HTTP or HTTPS URL without credentials"}function Ln(e){if(e!==e.trim()||/[\\\s]/.test(e)||!/^https?:\/\//i.test(e))return null;try{let n=new URL(e);return["http:","https:"].includes(n.protocol)&&!n.username&&!n.password?n:null}catch{return null}}function pm(e){let n=Ln(e);return!n||n.port||!["x.com","www.x.com","twitter.com","www.twitter.com","mobile.twitter.com"].includes(n.hostname)?null:/^\/(?:[A-Za-z0-9_]+|i\/web)\/status\/([0-9]{1,20})\/?$/.exec(n.pathname)?.[1]??null}var _t=t().regex(/^[a-zA-Z0-9_-]+$/).max(100),Wo=r({id:_t,label:t().trim().min(1).max(500)}).strict(),Bn=r({id:_t,prompt:t().trim().min(1).max(1e3),choices:d(Wo).min(2).max(8).refine(e=>new Set(e.map(n=>n.id)).size===e.length,"Choice IDs must be unique")}).strict(),Ho=d(Bn).min(1).max(20).refine(e=>new Set(e.map(n=>n.id)).size===e.length,"Question IDs must be unique"),Lt=d(Bn.extend({correct:_t}).refine(e=>e.choices.some(n=>n.id===e.correct),"Choose a correct answer from the available choices")).min(1).max(20).refine(e=>new Set(e.map(n=>n.id)).size===e.length,"Question IDs must be unique"),B=o().int().safe().nonnegative(),Kn=e=>e.from===void 0||e.until===void 0||e.until>e.from;var Jo=64;var Go=t().min(1).max(Jo).regex(/^[a-zA-Z0-9_-]+$/,"use letters, digits, _ or -");function gm(e){return e.kind==="manual"&&e.actor!=="staff"&&e.input==="none"}var Yo=r({key:Go,label:t().trim().min(1).max(120),opensAt:B.optional(),closesAt:B.optional()}).strict().refine(e=>Kn({from:e.opensAt,until:e.closesAt}),{message:"A station must close after it opens",path:["closesAt"]}),Xo=d(Yo).min(1).max(200).refine(e=>new Set(e.map(n=>n.key)).size===e.length,"Give each station its own key");var es=r({kind:t(),chain:t(),signature:t(),wallet:t(),reference:t().nullable()}),Qn=g([z({provider:s("domino"),resource:s("point-ledger")}),wi]),fm=r({source:Qn,query:t().max(100).optional(),cursor:t().regex(/^\d{1,6}$/).optional(),ids:d(t().min(1).max(100)).max(50).optional()}).strict(),hm=r({revision:o().int(),options:d(r({id:t(),label:t(),description:t().optional(),group:t().optional(),disabledReason:t().optional()})),nextCursor:t().nullable().default(null),cursor:t().nullable()}),Fn=pn().transform(e=>new Date(e).toISOString()),wt=g([s(""),t().regex(/^\S{1,200}$/)]),_={label:t().min(1),description:t().optional()},ts=h("kind",[r({..._,kind:s("point-ledger"),default:a.or(s(""))}).strict(),r({..._,kind:s("datetime"),default:Fn}).strict(),r({..._,kind:s("resource"),default:wt,source:Qn}).strict(),r({..._,kind:s("quiz"),default:Lt}).strict(),r({..._,kind:s("text"),default:t(),minLength:o().int().nonnegative(),maxLength:o().int().positive(),multiline:b(),picker:t().optional(),decimals:o().int().min(0).max(255).optional(),secret:s(!0).optional()}).strict(),r({..._,kind:s("integer"),default:o().int(),min:o().int(),max:o().int()}).strict(),r({..._,kind:s("boolean"),default:b()}).strict(),r({..._,kind:s("choice"),default:t(),options:d(t().min(1)).min(1)}).strict()]),rs=y(t().regex(/^[a-zA-Z][a-zA-Z0-9_]*$/),ts),X=y(t(),g([t(),o().finite(),b(),Lt]));function ns(e){return e.length<=100&&/^(0|[1-9][0-9]*)$/.test(e)}function as(e){return e==="solana"||en(e)||Ct(e)}function vm(e){return e?.kind==="integer"||e?.kind==="text"&&e.picker==="amount"}function is(e){let n=e.secret?t().max(e.maxLength).refine(i=>i===""||i.length>=e.minLength,`Use at least ${e.minLength} characters`):t().min(e.minLength).max(e.maxLength);switch(e.picker){case"amount":return n.refine(ns,"Use a whole number of base units, such as 1000000");case"chain":return n.refine(as,'Use "solana", a Solana cluster ID such as "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1" (devnet), or an EVM chain ID such as "eip155:8453"');case"nft":return n.refine(rn,'Use an NFT collection such as "eip155:1/erc721:0x\u2026", "eip155:8453/erc1155:0x\u2026/1" for one ERC-1155 token ID, or "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/nft:<collection>" (mainnet; devnet is "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1/nft:<collection>")');case"contract-call":return n.refine(zi,`Use a contract call: the contract's CAIP-10 ID and a view or pure function returning one uint, int, bool or address, such as "eip155:8453:0x\u2026 function stakedOf(address) view returns (uint256)"`);case"contract-event":return n.refine(hi,'Use a contract event such as "eip155:8453:0x\u2026 Transfer(address indexed from, address indexed to, uint256 value)": name every argument, and index at least one address argument');case"solana-program":return n.refine(yi,'Use a Solana program address in base58, such as "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"');default:return n}}function ym(e,n){let i={};for(let[c,l]of Object.entries(e))switch(l.kind){case"point-ledger":i[c]=wt.default(l.default);break;case"datetime":i[c]=Fn.default(l.default);break;case"resource":i[c]=wt.default(l.default);break;case"quiz":i[c]=Lt.default(l.default);break;case"text":i[c]=is(l).default(l.default);break;case"integer":i[c]=o().int().min(l.min).max(l.max).default(l.default);break;case"boolean":i[c]=b().default(l.default);break;case"choice":i[c]=p(l.options).default(l.default);break}return X.parse(r(i).strict().parse(n))}function km(e,n){return Object.entries(e).filter(([i,c])=>(c.kind==="resource"||c.kind==="point-ledger")&&!n[i]).map(([i])=>i)}function Sm(e,n){return e.kind===n.kind||e.kind==="resource"&&e.source.provider==="domino"&&n.kind==="point-ledger"||n.kind==="resource"&&n.source.provider==="domino"&&e.kind==="point-ledger"||e.kind==="text"&&(n.kind==="resource"||n.kind==="datetime"||n.kind==="point-ledger")}var re={key:a};function jm(e){if("id"in e)throw new Error("Authoring definitions use key, not id");return a.parse(e.key)}var Bt=r({from:B,until:B}).strict().refine(Kn,{message:"Window end must follow its start",path:["until"]}),Ne=r({key:a,title:t().trim().min(1).max(120),window:Bt.optional(),enrollment:p(["none","required"]).default("none")}).strict(),os=Ne.omit({key:!0,title:!0}).extend({...re,title:t().trim().min(1).max(120).optional()}).strict().transform(e=>{let n=e;return Ne.parse({...n,title:e.title??n.key})});function xm(e){return os.parse(e)}var ss=Ne.extend({enrolledAt:B.nullable(),withdrawnAt:B.nullable().default(null),withdrawalReason:t().nullable().default(null)}),Vn=r({actionId:a,campaign:a}).strict(),wm=Vn.extend({member:a}),cs=Vn,Am=cs.extend({member:a,reason:t().trim().min(1).max(500)}),Om=r({campaign:a,member:a,enrolledAt:B,withdrawnAt:B.nullable().default(null),withdrawalReason:t().nullable().default(null)});function ye(e,n){return n}var Im=a.or(s("")).brand();function ls(e){return typeof e=="string"?e:e.key}var Tr=r({key:a,title:t().trim().min(1).max(120)}).strict(),ds=Tr.omit({key:!0,title:!0}).extend({...re,title:t().trim().min(1).max(120).optional()}).strict().transform(e=>Tr.parse({...e,title:e.title??e.key}));function qm(e){return ye("group",ds.parse(e))}function ms(e){return a.parse(e.key)}var Wn=t().trim().min(1).max(120),Hn=t().trim().min(1).max(1e3),At=o().int().nonnegative().max(864e13),Rm=r({actionId:a,key:a,title:Wn}).strict(),Pm=r({title:Wn}).strict(),Cm=r({actionId:a,member:a,reason:Hn}).strict(),$m=r({actionId:a,reason:Hn}).strict(),Tm=r({reason:bn.optional()}).strict(),Em=z({cursor:w.optional(),limit:o().int().min(1).max(100).optional()}),us=r({key:a,title:t(),members:o().int().nonnegative(),createdAt:At,archivedAt:At.nullable()}),Mm=r({items:d(us),nextCursor:w.nullable()}),zs=r({member:a,addedAt:At.nullable()}),Um=r({items:d(zs),nextCursor:w.nullable()}),Jn=o().int().safe().nonnegative(),Gn=Jn.positive(),Yn=h("scope",[r({kind:s("completion"),quest:a,scope:s("ever")}).strict(),r({kind:s("completion"),quest:a,scope:s("period"),period:te.exclude(["lifetime"])}).strict()]),Xn=r({kind:s("balance"),balance:a,minimum:Gn}).strict(),ea=r({kind:s("group"),group:a,title:t()}).strict(),Kt=h("kind",[Yn,Xn,ea]),ke=g([r({kind:s("completion"),quest:a,title:t(),scope:s("ever")}),r({kind:s("completion"),quest:a,title:t(),scope:s("period"),period:te.exclude(["lifetime"]),resetsAt:o().int().safe()}),r({kind:s("balance"),balance:a,title:t(),minimum:Gn,current:Jn}),r({kind:s("group"),group:a,title:t()})]);function Nm(e,n={}){let i=e.key;return Yn.parse({kind:"completion",quest:i,scope:n.scope??"ever",..."period"in n?{period:n.period}:{}})}function Zm(e,n){return Xn.parse({kind:"balance",balance:ls(e),minimum:n})}function Dm(e){return ea.parse({kind:"group",group:ms(e),title:e.title})}var be=2147483647,Se=r({kind:s("points").default("points"),balance:a,amount:o().int().min(0).max(be)}).strict(),Qt=r({badge:a.optional(),group:a.optional(),id:a,title:t().min(1).max(120),tiers:d(r({id:a,title:t().min(1).max(120)}).strict()).min(1).max(20).refine(e=>new Set(e.map(n=>n.id)).size===e.length,"Tier IDs must be unique"),inventory:r({kind:s("untracked")}).strict(),fulfillment:h("kind",[r({kind:s("staff-handover")}).strict(),r({kind:s("automatic")}).strict()])}).strict().refine(e=>e.badge===void 0&&e.group===void 0||e.fulfillment.kind==="automatic"&&e.tiers.length===1&&e.tiers[0].id==="awarded","Badge and group rewards require the fixed automatic achievement envelope").refine(e=>e.badge===void 0||e.group===void 0,"A reward is either a badge or a group membership"),_m=r({id:a,key:a.nullable()}),Q=r({kind:s("tier"),reward:Qt,tier:a}).strict().refine(e=>e.reward.tiers.some(n=>n.id===e.tier),"Unknown reward tier"),bs=Q.transform((e,n)=>{let i=e.reward.badge;return!i||e.reward.fulfillment.kind!=="automatic"||e.reward.tiers.length!==1||e.tier!=="awarded"?(n.addIssue({code:"custom",message:"Invalid badge reward"}),V):{...e,reward:{...e.reward,badge:i}}});function Lm(e,n){return bs.parse({kind:"tier",tier:"awarded",reward:{id:e,badge:e,title:n,tiers:[{id:"awarded",title:"Awarded"}],inventory:{kind:"untracked"},fulfillment:{kind:"automatic"}}})}var ps=Q.transform((e,n)=>{let i=e.reward.group;return!i||e.reward.fulfillment.kind!=="automatic"||e.reward.tiers.length!==1||e.tier!=="awarded"?(n.addIssue({code:"custom",message:"Invalid group reward"}),V):{...e,reward:{...e.reward,group:i}}});function Bm(e,n){return ps.parse({kind:"tier",tier:"awarded",reward:{id:e,group:e,title:n,tiers:[{id:"awarded",title:"Awarded"}],inventory:{kind:"untracked"},fulfillment:{kind:"automatic"}}})}var gs=xi,Ot=g([Se,Q,gs]),fs=t(),hs=r({type:fs,data:y(t(),$())});function ta(e){return e.kind==="tier"&&e.reward.badge?"badge:"+e.reward.badge:e.kind==="tier"&&e.reward.group?"group:"+e.reward.group:e.kind==="integration"?`integration:${e.provider}:${e.action}:${e.roleId}`:e.kind==="points"?"points:"+e.balance:"tier:"+e.reward.id}var ra=g([r({kind:s("manual"),input:s("text"),constraints:Qo,actor:p(["member","staff"]).optional()}).strict(),r({kind:s("manual"),input:s("url"),constraints:Vo,actor:p(["member","staff"]).optional()}).strict(),r({kind:s("manual"),input:p(["photo","quiz","none"]),actor:p(["member","staff"]).optional()}).strict(),r({kind:s("automatic"),tracker:wo.optional()}).strict()]),vs=g(ra.options.map(e=>e.strip())),na=r({kind:p(["pass","fail","unclear"]),reason:t().min(1).max(2e3)}).strict(),Km=r({text:t().min(1).max(16e3).refine(e=>e.trim().length>0,"Text must not be blank"),criteria:t().trim().min(1).max(2e3)}).strict(),Qm=na,Fm={minRetryAfterMs:1e3,maxRetryAfterMs:36e5,retryAfterMs:6e4,horizonMs:864e5,maxDefers:100},Vm={minMs:1e3,maxMs:6048e5},Er=o().int().min(I.retryCooldown.minMs).max(I.retryCooldown.maxMs),Ft=r({current:o().finite().nonnegative(),target:o().finite().positive(),reason:t().min(1).max(2e3)}).refine(e=>e.current<=e.target,{message:"Progress current must not exceed target"}),Wm=h("kind",[z({kind:s("defer"),reason:t().min(1).max(2e3),retryAfterMs:o().int().min(I.defer.minRetryAfterMs).max(I.defer.maxRetryAfterMs).optional(),until:o().int().safe().nonnegative().optional()}),Ft.safeExtend({kind:s("progress")}).strict(),r({kind:s("accept"),rewards:d(Ot).max(10),completionKey:xt.optional()}).strict(),r({kind:s("reject"),reason:t().min(1).max(2e3),code:Po.optional(),requestedReview:s(!0).optional()}).strict(),r({kind:s("review"),reason:t().min(1).max(2e3),rewards:d(Ot).max(10).optional(),completionKey:xt.optional()}).strict()]),ys=p(["workers-ai"]),ks=p(["fixture-pass","fixture-fail","fixture-unclear","fixture-error","workers-ai"]),Vt=d(Ot).max(10).refine(e=>new Set(e.map(ta)).size===e.length,"Use one entry per balance or shared reward"),ze=t().max(2e3).refine(e=>{if(/^\/(?!\/)[^\\\s]*$/.test(e))return!0;try{return new URL(e).protocol==="https:"}catch{return!1}},"Use an HTTPS URL or a same-site path beginning with /"),Ss=h("kind",[r({kind:s("link"),url:ze.refine(e=>e.startsWith("https://"),"Use an HTTPS URL"),label:t().trim().min(1).max(120)}).strict()]),js=r({title:t().trim().min(1).max(120),description:t().max(4e3).optional(),action:Ss.optional()}).strict(),xs=h("kind",[r({kind:s("account"),provider:Rt}).strict(),r({kind:s("wallet"),chain:ge.optional()}).strict()]),Ze=r({steps:d(js).max(30).optional(),image:ze.optional(),imageAlt:t().max(500).optional(),requirements:d(xs).max(10).optional()}).strict(),aa=Ze.extend({quiz:Ho.optional(),instructions:t().max(4e3).optional(),video:r({url:ze,poster:ze.optional(),captions:r({url:ze,language:t().min(2).max(20),label:t().min(1).max(80)}).strict().optional()}).strict().optional()}).strict(),ws=r({visible:b()}).strict(),As=2,Os=s(As),ia=r({quest:a,evaluatorProtocol:Os,title:t().min(1).max(120),presentation:aa.default({}),integrations:d(Mo).max(10).default([]),integrationModules:d(Uo).max(10).optional(),fields:rs,values:X,rewards:Vt,announcements:d(Ko).max(3).optional(),humanReview:b(),trigger:ra,performance:so.optional(),requires:d(Kt).max(30).default([]),campaign:Ne.optional(),availability:Bt.optional(),completion:Ie(po,Dt),visibility:p(["visible","hidden"]).default("visible"),profile:ws.default({visible:!1}),budgets:d(Mn).max(20).default([]),authorBudgets:d(Eo).max(20).optional(),retryCooldownMs:Er.optional(),completionCooldownMs:Er.optional(),stations:Xo.optional()}).strict(),Is=r({code:t().min(1).max(1e6)}).strict(),qs=Is.extend({runtime:Zt.optional(),settings:X,provider:ys,expectedRelease:a.nullable().optional(),settingRenames:y(t(),t()).optional()}).strict(),Hm=r({releases:d(qs).min(1).max(I.quests)}).strict(),Jm=r({quest:a,expectedRelease:a,set:X,reset:d(t()),presentation:Ze.nullable().optional(),solanaIdls:y(t(),Be.nullable()).optional()}).strict(),Rs=ia.extend({completion:Dt}),Ps=k(Rs.extend({rewardEntries:d(hs).optional(),key:a.optional(),code:t(),runtime:Zt.optional(),provider:ks,id:a,createdAt:o(),origin:r({typeVersion:a}).strict().optional(),lifecycle:p(["active","paused","archived"]).default("active"),configuration:r({defaults:X,overrides:X,preserved:d(t()),presentation:Ze.optional(),presentationDefaults:Ze.optional()}).strict().optional(),solanaIdls:y(t(),on).optional(),withheldSettings:d(t()).optional()})),Gm=r({code:t(),definition:ia}),Cs=y(a,a).refine(e=>Object.keys(e).length>0&&Object.keys(e).length<=50,"Provide between 1 and 50 answers").transform(e=>Object.fromEntries(Object.entries(e).sort(([n],[i])=>n.localeCompare(i)))),$s=r({kind:s("quiz"),release:a.optional(),answers:Cs}).strict(),Qe=g([$s,Dn,_n]),Ym=r({actionId:a,quest:a,member:a,evidence:a.optional(),input:Qe.optional(),release:a.optional(),faultAfterReview:b().optional()}).strict(),Xm={Queued:"queued",Evaluating:"evaluating",Deferred:"deferred",Accepted:"accepted",Progressed:"progressed",Rejected:"rejected",NeedsReview:"needs-review",Failed:"failed"},Ts=t(),eu={Relay:"relay",Evaluator:"evaluator"},Es=t(),Fe=r({id:a,release:a,quest:a,member:a,evidence:a.nullable(),input:Qe.optional(),status:Ts,reason:t().nullable(),retries:o(),generation:o(),completion:t().nullable(),reviewRewards:Vt.nullable().default(null),evaluationRun:o().int().nonnegative().default(0),deferCount:o().int().nonnegative().default(0),deferUntil:o().int().safe().nullable().default(null),nextEvaluationAt:o().int().safe().nullable().default(null),code:t().nullable().default(null),codeSource:Es.nullable().optional(),progress:Ft.nullable().default(null),requestedReview:b().default(!1),createdAt:o(),action:es.nullable().optional()}),tu={Open:"open",Submitted:"submitted",Discarded:"discarded",Expired:"expired"},Ms=t(),Us=k(r({id:a,quest:a,member:a,release:a.nullable(),input:Qe.nullable(),evidence:a.nullable(),reviewRequired:b(),status:Ms,attempt:a.nullable(),createdAt:o(),updatedAt:o(),expiresAt:o()})),ru=r({release:a.nullable().optional(),input:Qe.nullable().optional(),evidence:a.nullable().optional()}).strict(),nu=k(r({submission:Us,attempt:Fe,replayed:b()})),Ns=r({id:o(),attempt:t().nullable(),kind:t(),detail:t(),actor:t().nullable().default(null),at:o()}),Zs=r({item:a,revision:o().int().nonnegative()}).strict(),pe=r({item:a,label:t().min(1).max(80)}).strict(),Ds=h("kind",[r({kind:s("untracked")}).strict(),r({kind:s("at-pickup"),tiers:d(r({tier:a,variants:d(pe).min(1).max(100)}).strict()).min(1).max(100)}).strict()]),au=r({reward:Qt,revision:o().int().nonnegative(),policy:Ds}),iu=h("kind",[r({kind:s("untracked")}).strict(),r({kind:s("at-pickup"),revision:o().int().nonnegative(),variants:d(pe.extend({available:o().int().nonnegative()}))}).strict()]),ou=r({reward:a,revision:o().int().nonnegative(),actionId:a,policy:h("kind",[r({kind:s("untracked")}).strict(),r({kind:s("at-pickup"),tiers:d(r({tier:a,variants:d(pe.extend({item:a.optional()})).min(1).max(100)}).strict()).min(1).max(100)}).strict()])}).strict(),oa=r({completion:a,reason:t(),flaggedAt:o(),remainingTier:a.nullable()}),Te={id:a,member:a,reward:Qt,earnedTier:a,tier:a,revision:o().int().positive()},su=h("status",[r({...Te,status:s("available")}).strict(),r({...Te,status:s("handing-over"),handover:a,startedAt:o(),allocation:pe.optional()}).strict(),r({...Te,status:s("collected"),handover:a,startedAt:o(),allocation:pe.optional(),collectedAt:o(),recovery:oa.optional()}).strict(),r({...Te,status:s("void"),voidedAt:o()}).strict()]),_s=r({id:a,title:t(),tiers:d(r({id:a,title:t()}).loose()),inventory:r({kind:t()}).loose(),fulfillment:r({kind:t()}).loose(),key:a.nullish()}).loose(),de={id:a,member:a,reward:_s,earnedTier:a,tier:a,revision:o().int()},Mr=r({item:a,label:t()}).loose(),sa=g([h("status",[r({...de,status:s("available")}).loose(),r({...de,status:s("handing-over"),handover:a,startedAt:o(),allocation:Mr.optional()}).loose(),r({...de,status:s("collected"),handover:a,startedAt:o(),allocation:Mr.optional(),collectedAt:o(),recovery:oa.optional()}).loose(),r({...de,status:s("void"),voidedAt:o()}).loose()]),r({...de,status:t()}).loose().transform(({status:e,...n})=>({...n,status:"unsupported",reportedStatus:e}))]),cu=r({actionId:a,revision:o().int().positive(),selection:Zs.optional()}).strict(),lu=r({actionId:a,handover:a}).strict(),du=r({actionId:a,revision:o().int().positive(),reason:t().trim().min(1).max(500)}).strict(),mu={Quest:"quest",Leaderboard:"leaderboard"},Ls=t().min(1).max(64),Bs=r({kind:Ls,id:a}),Ks=r({key:t().default("once"),id:a,quest:a,member:a,source:Bs.optional()}),Qs=h("kind",[r({kind:s("available"),input:p(["photo","quiz","none","text","url"])}).strict(),r({kind:s("completed")}).strict(),r({kind:s("locked"),missing:d(ke).min(1)}).strict(),r({kind:s("blocked"),reason:p(["budget-exhausted","connection-required","wallet-required","paused","outside-window","enrollment-required"]),window:p(["tracker","quest"]).optional(),resetsAt:o().int().safe().optional()}).strict(),r({kind:s("staff-required")}).strict(),r({kind:s("automatic")}).strict(),r({kind:s("checking"),attempt:a}).strict(),r({kind:s("needs-review"),attempt:a}).strict(),r({kind:s("retryable"),attempt:a}).strict()]),Fs=g(Qs.options.map(e=>e.strip())),Vs=r({id:a,scope:p(["member","project"]),period:p(["day","week","month","lifetime"]),remaining:o().int().safe().nonnegative(),resetsAt:o().int().safe().nullable()}),uu=k(r({member:a,quests:d(r({quest:a,key:a.optional(),release:a.optional(),title:t(),presentation:aa.default({}),connections:d(Rt).default([]),trigger:vs,availability:Fs,completed:b(),completion:Dt.default({kind:"once"}),streak:ho.nullable().optional(),counter:uo.nullable().optional(),progress:Ft.nullable().default(null),completionCount:o().int().nonnegative().default(0),visibility:p(["visible","hidden"]).default("visible"),missing:d(ke),campaign:ss.nullable().default(null),window:Bt.nullable().default(null),budgets:d(Vs).default([]),retryAt:o().int().safe().optional(),nextAvailableAt:o().int().safe().optional(),attempt:Fe.nullable()})),entitlements:d(sa)})),zu=k(r({releases:d(Ps),completions:d(Ks),entitlements:d(sa),attempts:d(Fe),balances:d(r({member:t(),balance:t(),earned:o(),held:o(),available:o()})),events:d(Ns)})),bu=r({id:a,member:a,type:p(["image/jpeg","image/png"]),size:o()}),pu=r({error:t(),code:t().optional(),window:p(["tracker","quest"]).optional(),missing:d(ke).optional(),retryAt:o().int().safe().optional()}),gu=r({actionId:a,generation:o().int().nonnegative(),decision:p(["accept","reject"]),reason:t().trim().min(1).max(2e3)}).strict(),fu=r({actionId:a,reason:t().trim().min(1).max(2e3)}).strict(),hu=r({actionId:a,reason:t().trim().min(1).max(2e3)}).strict(),vu=r({actionId:a,quest:a,decidedBefore:o().int().nonnegative(),reason:t().trim().min(1).max(2e3)}).strict(),Ws=g([r({days:o().int().min(1).max(3650)}).strict(),s("keep")]),yu=r({actionId:a,evidenceRetention:Ws}).strict(),ku=r({item:a,quantity:o().int().min(0).max(1e4)}).strict(),Su=r({actionId:a,member:a,item:a,balance:a,price:o().int().positive().max(1e4)}).strict(),ca={limit:o().int().min(1).max(100).default(25),cursor:t().min(1).max(4096).optional()},ju=r({...ca,member:a.optional(),quest:a.optional()}).strict(),xu=r({...ca,prefix:a.optional()}).strict(),Hs=r({attempt:Fe,title:t(),checks:d(r({criteria:t(),result:na}))}),wu=r({items:d(Hs).max(100),nextCursor:t().nullable()}),Au=r({items:d(r({member:a})).max(100),nextCursor:t().nullable()}),Ou=r({actionId:a,name:t().trim().min(1).max(80)}).strict(),Iu=r({id:a,name:t()}),qu=z({contentAttempt:a,observation:a,observedAt:o().int().safe().nonnegative(),metrics:K,rewards:Vt}),Ru=oo.extend({content:t().min(1).max(256)}),Pu=z({current:z({state:p(["content-pending","content-unqualified","waiting","pending","qualified","unqualified","needs-review","failed","superseded"]),reason:t().nullable(),contentAttempt:a,attempt:a.nullable(),reward:Cn.shape.reward}),items:d(z({attempt:a,contentAttempt:a,observation:a,observedAt:o(),metrics:K,state:p(["pending","qualified","unqualified","needs-review","failed","superseded"]),reason:t().nullable()})),nextCursor:w.nullable()}),Wt=r({name:t().trim().min(1).max(120),description:t().trim().max(1e3).default("")}).strict(),Cu=Wt.extend({actionId:a,key:a.optional()}).strict(),Js=Wt.extend({id:a}),$u=Js.extend({archivedAt:o().int().nonnegative().nullable()}),Gs=Wt.extend({key:a}).strict(),Tu=g([Gs,r({code:t().min(1).max(2e6)}).strict()]),Ys=r({id:a,key:a.nullable(),name:t()}),De=o().int().safe(),Xs=r({ledger:Ys,balance:De,available:De}),Eu=r({items:d(Xs)}),Mu={Award:"award",Spend:"spend",Adjust:"adjust",Reverse:"reverse"},ec=t().min(1).max(64),la=r({id:a,amount:De,kind:ec,at:De.nonnegative(),quest:a.nullable(),reverses:a.nullable(),imported:b().optional()}),Uu=z({ledger:a,cursor:w.optional()}),Nu=r({items:d(la),nextCursor:w.nullable()}),D=o().int().nonnegative().safe(),da=p(["private","participants","public"]),_e=p(["x","discord","google"]),tc=p(["x","discord"]);function ma(e){return d(e).max(e.options.length).refine(n=>new Set(n).size===n.length,"List each provider once")}var rc=ma(tc),nc=["x","discord","sol"],ac=ma(p(nc)),ic=p(["sol"]),It=t().min(1).max(64),ut=t().min(1).max(100),oc=h("source",[r({source:s("upload"),url:t().url(),seed:ut}),r({source:s("account"),provider:_e,url:t().url(),seed:ut}),r({source:s("generated"),seed:ut})]),ua=r({id:a,name:t(),avatar:oc}),sc=/[\p{Cc}----]/u,cc=t().max(200).transform(e=>e.normalize("NFC").replace(/\s+/g," ").trim()).pipe(t().min(1,"Enter a name").max(40,"Use at most 40 characters").refine(e=>!sc.test(e),"Use visible characters only")),Zu=r({displayName:cc.nullable().optional(),nameSource:ic.nullable().optional(),avatar:h("source",[r({source:s("account"),provider:_e}).strict(),r({source:s("generated")}).strict()]).nullable().optional(),hidden:b().optional()}).strict().refine(e=>Object.values(e).some(n=>n!==void 0),"Change at least one field").refine(e=>!(e.displayName!==void 0&&e.nameSource),{message:"Choose a name or a name source, not both",path:["nameSource"]}),lc=ua.extend({displayName:t().nullable(),avatarChoice:p(["default","upload","account","generated"]),avatarProvider:_e.nullable(),hidden:b(),locked:b(),visibility:da,options:d(r({provider:_e,name:t().nullable(),givenName:t().nullable().default(null),imageUrl:t().url().nullable()})),nameSource:It.nullable().optional(),nameOptions:d(r({source:It,name:t()})).optional()}),za=t().min(1).max(512),Du=r({limit:R.number().int().min(1).max(100).default(20),cursor:za.optional()}).strict(),dc=r({quest:a,key:a.optional(),title:t(),completions:D.positive(),lastCompletedAt:D.nullable()}),_u=r({items:d(dc),nextCursor:za.nullable()}),Lu=r({program:a,key:a.optional(),title:t(),invited:D,qualified:D,milestones:d(r({id:a,count:D,reached:b()}))}),mc=r({visibility:da,defaults:rc,defaultSources:d(It).optional(),revision:D,actor:t().nullable(),updatedAt:D.nullable()}),Bu=mc.omit({revision:!0,actor:!0,updatedAt:!0,defaultSources:!0}).extend({defaultSources:ac.optional(),actionId:a,expectedRevision:D,reason:t().trim().min(1).max(500)}).strict().refine(e=>!e.defaultSources||e.defaultSources.filter(n=>n!=="sol").join()===e.defaults.join(),{message:"List defaultSources' accounts in defaults, in the same order",path:["defaults"]}),Ku=r({actionId:a,resetName:b().default(!1),removeAvatar:b().default(!1),lock:b().optional(),reason:t().trim().min(1).max(1e3)}).strict().refine(e=>e.resetName||e.removeAvatar||e.lock!==void 0,"Choose an action"),Qu=lc.omit({options:!0,nameOptions:!0}).extend({member:a,lockedAt:D.nullable(),lockedBy:t().nullable(),lockedReason:t().nullable(),updatedAt:D}),Fu=5*1024*1024,Vu=["image/jpeg","image/png","image/webp"],j=o().int().safe(),q=j.nonnegative().max(864e13),ba=h("kind",[r({kind:s("all-time")}).strict(),r({kind:s("fixed"),start:q,end:q}).strict().refine(e=>e.end>e.start,"Window end must follow its start"),r({kind:s("rolling"),days:j.min(1).max(3660)}).strict(),r({kind:s("calendar"),period:te.exclude(["lifetime"])})]),uc={window:ba.default({kind:"all-time"}),quests:d(a).min(1).max(100).optional()},pa=h("kind",[r({kind:s("balance")}).strict(),r({kind:s("earned"),...uc}).strict(),r({kind:s("net"),window:ba.default({kind:"all-time"})}).strict()]).default({kind:"balance"}),zc=g([Se,Q]),ga=r({ranks:lr([j.positive(),j.positive()]).refine(([e,n])=>n>=e,{message:"Prize rank range must end at or after it starts"}),rewards:d(zc).min(1).max(20)}).strict(),Le=t().regex(/^(0|[1-9]\d{0,77})$/,'Use a whole number of base units, such as "1000000"'),bc=g([s("points"),r({code:t().trim().min(1).max(32),decimals:j.min(0).max(36)}).strict()]),fa={amount:Le.refine(e=>e!=="0",{message:"A pool must hold a positive amount"}),unit:bc,ledger:a.optional(),minScore:j.optional()},pc=(e,n)=>{e.unit==="points"?(e.ledger||n.addIssue({code:"custom",message:"A points pool names the point ledger it pays into",path:["ledger"]}),/^\d+$/.test(e.amount)&&BigInt(e.amount)>be&&n.addIssue({code:"custom",message:`A points pool holds at most ${be} points`,path:["amount"]})):e.ledger!==void 0&&n.addIssue({code:"custom",message:"Only a points pool pays into a point ledger",path:["ledger"]})},gc=r(fa).strict().superRefine(pc),fc=r({at:s("window-end"),ties:p(["shared","earliest"]),prizes:d(ga).max(50),pool:gc.optional()}).strict().superRefine((e,n)=>{!e.prizes.length&&!e.pool&&n.addIssue({code:"custom",message:"A settlement awards rank prizes, a pool, or both",path:["prizes"]});for(let[i,c]of e.prizes.entries()){let l=c.rewards.map(ta);new Set(l).size!==l.length&&n.addIssue({code:"custom",message:"A prize may grant each point ledger or tiered reward only once",path:["prizes",i,"rewards"]})}for(let i=1;i<e.prizes.length;i++){let c=e.prizes[i-1];e.prizes[i].ranks[0]<=c.ranks[1]&&n.addIssue({code:"custom",message:"Prize rank ranges must be ordered and must not overlap",path:["prizes",i,"ranks"]})}}),ha=r({id:a,key:a.optional(),title:t().trim().min(1).max(120),balance:a,score:pa,access:p(["participants","public"]).default("participants"),group:a.optional(),includeUnscored:b().optional(),ties:p(["shared","earliest"]).optional(),settle:fc.optional()}).strict(),va=(e,n)=>{e.settle&&(e.score.kind==="balance"||!["fixed","calendar"].includes(e.score.window.kind))&&n.addIssue({code:"custom",message:"Leaderboard prizes require an earned or net score with a fixed or calendar window",path:["settle"]})},hc=ha.superRefine(va),vc=k(hc),yc=ha.omit({id:!0}).extend({...re,score:Ie(go,pa),group:a.optional()}).strict().superRefine(va),Wu=g([yc,r({code:t().min(1).max(2e6)}).strict()]),kc=r({archivedAt:o().int().nonnegative().nullable().optional(),version:a,definition:vc,publishedAt:q,actor:t().nullable()}),Hu=r({limit:R.number().int().min(1).max(100).default(25),cursor:t().max(4096).optional()}).strict(),zt=r({participant:a,member:a.optional(),name:t(),score:j,rank:j.positive(),profile:ua.nullable()}),Ur=r({leaderboard:a,title:t(),version:a,calculation:p(["balance","earned","net"]),period:r({start:q.nullable(),end:q.nullable()}),calculatedAt:q,lastEntryAt:q.nullable(),total:j.nonnegative(),items:d(zt),me:zt.nullable(),nearby:d(zt),nextCursor:t().nullable()}),Ju=r({leaderboard:a,key:a.optional(),title:t(),profile:a,rank:j.positive().nullable(),score:j.nullable(),total:j.nonnegative()}),Gu=z({board:a,cursor:w.optional()}),Yu=r({leaderboard:a,period:r({start:q.nullable(),end:q.nullable()}),items:d(la),nextCursor:w.nullable()}),Xu=r({published:kc,before:Ur.nullable(),after:Ur}),ya={actionId:a,member:a,balance:a,reason:t().trim().min(1).max(1e3)},Ee={...ya,effectiveAt:q.optional()},ez=h("kind",[r({...Ee,kind:s("award"),referralEligible:b().optional(),amount:j.positive()}).strict(),r({...Ee,kind:s("spend"),amount:j.positive()}).strict(),r({...Ee,kind:s("adjust"),amount:j.refine(e=>e!==0)}).strict(),r({...Ee,kind:s("set"),total:j.nonnegative(),expectedTotal:j.nonnegative(),classification:p(["earned","spend"])}).strict(),r({...ya,kind:s("reverse"),entry:a,amount:j.positive()}).strict()]),ka=r({id:a,completion:t().nullable(),member:a,balance:a,amount:j,kind:p(["award","spend","adjust","reverse"]),effectiveAt:q,receivedAt:q,quest:a.nullable(),original:a.nullable(),reason:t(),actor:t().nullable(),import:a.nullable().optional()}),tz=r({items:d(ka),nextCursor:w.nullable(),next:o().nullable()}),rz=r({entry:ka,total:j.nonnegative()}),nz=r({member:a,balance:a,total:j.nonnegative(),held:j.nonnegative()}),az=r({actionId:a,member:a,excluded:b(),reason:t().trim().min(1).max(1e3)}).strict(),iz=r({leaderboard:a,group:a,generated:b(),boundAt:q.nullable()}),oz=r({actionId:a,group:a,reason:t().trim().min(1).max(1e3)}).strict(),sz=r({actionId:a,member:a,included:b(),reason:t().trim().min(1).max(1e3)}).strict(),Sc=p(["pending","approved"]),jc=r({id:a,leaderboard:a,version:a,title:t(),period:r({start:q,end:q}),ties:p(["shared","earliest"]),status:Sc,total:j.nonnegative(),winners:j.nonnegative(),createdAt:q,approvedAt:q.nullable(),approvedBy:t().nullable(),approvalReason:t().nullable()}),xc=r({status:t(),network:t().nullable(),signature:t().nullable(),paidAt:q.nullable()}),wc=r({member:a,score:j,rank:j.positive(),position:j.positive(),scoredAt:q,prizes:d(j.nonnegative()),completion:a.nullable(),revokedAt:q.nullable(),share:Le.optional(),payment:xc.optional()}),Ac=r({...fa,allocated:Le,unallocated:Le}),Oc=r({content:t(),member:a,observedAt:q.nullable()}),cz=jc.extend({prizes:d(ga),excluded:d(a),unmeasured:d(Oc).optional(),pool:Ac.nullable().optional(),rows:d(wc)}),lz=r({actionId:a,reason:t().trim().min(1).max(500)}).strict();var xa=["7d","30d","90d","all"];var Ic=["number","line","bar","table"],T=["number","line","bar","table"],Sa=["number","line","table"],qc=["number","bar","table"],je=["quest","group","tracker"],ja={"members.signUps":{definition:"Members who joined the project, by when they joined.",kind:"count",breakdowns:[],filters:["group"],charts:T,ledger:!1},"members.active":{definition:"Distinct members with an attempt, by when it was created; the total counts each member once.",kind:"distinct",breakdowns:[],filters:["group"],charts:T,ledger:!1},"quests.attempts":{definition:"Attempts, by when they were created.",kind:"count",breakdowns:["quest"],filters:je,charts:T,ledger:!1},"quests.completions":{definition:"Quest completions never revoked, by when they completed.",kind:"count",breakdowns:["quest"],filters:je,charts:T,ledger:!1},"quests.needsReview":{definition:"Attempts the evaluator sent to staff review, by when they were created, whatever staff decided later.",kind:"count",breakdowns:["quest"],filters:je,charts:T,ledger:!1},"quests.rejections":{definition:"Rejected attempts, by when they were decided.",kind:"count",breakdowns:["quest","source","reason"],filters:je,charts:T,ledger:!1},"quests.rejectionRate":{definition:"Rejected attempts divided by decided attempts (accepted, progressed or rejected), by when they were decided; empty below 10 decided.",kind:"rate",breakdowns:["quest"],filters:je,charts:Sa,ledger:!1,minimumDenominator:10},"points.awarded":{definition:"Points in the ledger's award entries, by effective date.",kind:"count",breakdowns:[],filters:["group"],charts:T,ledger:!0},"points.spent":{definition:"Points in the ledger's spend entries, as a positive number, by effective date.",kind:"count",breakdowns:[],filters:["group"],charts:T,ledger:!0},"points.net":{definition:"Every entry's signed amount in the ledger, by effective date; a reversal takes its original entry's date.",kind:"count",breakdowns:[],filters:["group"],charts:T,ledger:!0},"points.membersEarning":{definition:"Distinct members awarded more than 0 points in the ledger, by effective date; the total counts each member once.",kind:"distinct",breakdowns:[],filters:["group"],charts:T,ledger:!0},"offers.redemptions":{definition:"Fulfilled offer redemptions, by when they were redeemed.",kind:"count",breakdowns:["offer"],filters:["offer","group"],charts:T,ledger:!1},"referrals.accepted":{definition:"Accepted referrals, by when they were accepted. A referral belongs to no program, so it takes no program breakdown or filter.",kind:"count",breakdowns:[],filters:[],charts:T,ledger:!1},"referrals.qualified":{definition:"Active referral qualifications, one per program and friend, by when they first qualified; suspended referrals count.",kind:"count",breakdowns:["program"],filters:["program"],charts:T,ledger:!1},"referrals.qualificationRate":{definition:"Of the referrals accepted in a bucket, the share whose friend has an active qualification now (in the program, for a program row or filter), by acceptance; empty below 10 accepted.",kind:"rate",breakdowns:["program"],filters:["program"],charts:Sa,ledger:!1,minimumDenominator:10},"groups.joins":{definition:"Members added to a group, by when they were added. A change that left membership as it was, and a membership recorded without a date, don't count. The group filter keeps changes in those groups.",kind:"count",breakdowns:["group"],filters:["group"],charts:T,ledger:!1},"groups.leaves":{definition:"Members removed from a group, by when they were removed. A change that left membership as it was, and a membership recorded without a date, don't count. The group filter keeps changes in those groups.",kind:"count",breakdowns:["group"],filters:["group"],charts:T,ledger:!1},"trackers.records":{definition:"Tracker trigger outcomes, one per quest and record observation, by when the record was observed, counted by their current outcome (admitted or skipped). A retry overwrites an outcome, so a bucket shows today's outcome of its records, not the outcome they had then.",kind:"count",breakdowns:["outcome","tracker"],filters:["tracker"],charts:T,ledger:!1},"leaderboards.settledParticipants":{definition:"Participants in leaderboard settlements, one per member and settlement, by the settlement's cutoff. Pending and approved settlements count; a rejected settlement leaves its bucket.",kind:"count",breakdowns:["leaderboard"],filters:["leaderboard"],charts:qc,ledger:!1}};var bz={panels:24,dashboards:20},Rc={number:1,line:2,bar:2,table:4},xe=t().trim().min(1).max(120),Jt=t().trim().min(1).max(500),Pc=g([a,d(a).min(1).max(100)]),Cc=y(t().min(1).max(100),Pc),wa={key:a,title:xe,description:Jt.optional(),metric:t().min(1).max(100),breakdown:t().min(1).max(100).optional(),filter:Cc.optional(),ledger:a.optional(),chart:p(Ic)},$c=z({...wa,width:o().int().min(1).max(4).optional()}),Gt=z({key:a,title:xe,description:Jt.optional(),defaultRange:p(xa).optional(),position:o().int().min(0).max(1e3).optional(),sections:d(z({title:xe.optional(),panels:d($c).min(1).max(100)})).min(1).max(100)}),Aa=z({key:a,title:xe,description:Jt.optional(),defaultRange:p(xa),position:o().int().min(0).max(1e3).optional(),sections:d(z({title:xe.optional(),panels:d(z({...wa,width:o().int().min(1).max(4)}))}))}),pz=g([Gt,r({code:t().min(1).max(2e6)}).strict()]);function gz(e){let n=Gt.parse(e);return Aa.parse({key:n.key,title:n.title,...n.description===void 0?{}:{description:n.description},defaultRange:n.defaultRange??"30d",...n.position===void 0?{}:{position:n.position},sections:n.sections.map(i=>({...i.title===void 0?{}:{title:i.title},panels:i.panels.map(c=>({...c,width:c.width??Rc[c.chart]}))}))})}function fz(e){return e.sections.flatMap(n=>[...n.panels])}function hz(e){let n=e.sections.flatMap(l=>[...l.panels]),i=`dashboard "${e.key}"`;if(n.length>I.dashboardPanels)return{code:"too-many-panels",message:`The ${i} has ${n.length} panels; a dashboard holds at most ${I.dashboardPanels}.`};let c=new Set;for(let l of n){let m=`Panel "${l.key}" of ${i}`;if(c.has(l.key))return{code:"duplicate-key",panel:l.key,message:`The ${i} has two panels with the key "${l.key}".`};if(c.add(l.key),!Object.hasOwn(ja,l.metric))return{code:"unknown-metric",panel:l.key,message:`${m} names the unknown metric "${l.metric}". Run domino analytics metrics for the catalog.`};let u=ja[l.metric];if(l.breakdown!==void 0&&!u.breakdowns.includes(l.breakdown))return{code:"breakdown-not-accepted",panel:l.key,message:`${m}: ${l.metric} has no "${l.breakdown}" breakdown; it takes ${u.breakdowns.join(", ")||"none"}.`};for(let f of Object.keys(l.filter??{}))if(!u.filters.includes(f))return{code:"filter-not-accepted",panel:l.key,message:`${m}: ${l.metric} takes no "${f}" filter; it takes ${u.filters.join(", ")||"none"}.`};if(!u.charts.includes(l.chart))return{code:"chart-not-accepted",panel:l.key,message:`${m}: ${l.metric} can't be drawn as "${l.chart}"; it takes ${u.charts.join(", ")}.`};if(l.chart==="number"&&l.breakdown!==void 0)return{code:"breakdown-not-accepted",panel:l.key,message:`${m}: a number panel shows one value and takes no breakdown.`};if(l.chart==="table"&&l.breakdown===void 0)return{code:"breakdown-required",panel:l.key,message:`${m}: a table panel needs a breakdown; ${l.metric} takes ${u.breakdowns.join(", ")||"none"}.`};if(u.ledger&&l.ledger===void 0)return{code:"ledger-required",panel:l.key,message:`${m}: ${l.metric} needs a point ledger; set ledger to its key.`};if(!u.ledger&&l.ledger!==void 0)return{code:"ledger-not-accepted",panel:l.key,message:`${m}: ${l.metric} reads no point ledger; remove ledger.`}}return null}var vz=k(r({key:a,title:t(),change:p(["created","updated","unchanged"]),definition:Aa})),Ht=e=>typeof e=="string"?e:e.key;function yz(e){let n=qe("Dashboard",Gt,{...e,sections:e.sections.map(i=>({...i,panels:i.panels.map(c=>({...c,...c.ledger===void 0?{}:{ledger:Ht(c.ledger)},...c.filter===void 0?{}:{filter:Object.fromEntries(Object.entries(c.filter).map(([l,m])=>[l,Array.isArray(m)?m.map(Ht):Ht(m)]))}}))}))});return ye("dashboard",n)}var kz=r({title:t(),description:t(),tags:d(t()),durationSeconds:o().int().nonnegative(),publishedAt:o().int().nonnegative()}),Sz=["views","likes","comments"],jz=r({title:t(),description:t(),durationSeconds:o().int().nonnegative(),width:o().int().nonnegative(),height:o().int().nonnegative(),createdAt:o().int().nonnegative(),shareUrl:t(),isAigc:b()}),xz=["views","likes","comments","shares"];var Tc=["not-linked","provider-unavailable","author-error"],Ec=e=>Tc.includes(e),Az=ce({code:t().min(1),message:t().min(1),retryable:b()}),Oa=Symbol.for("@domino-sdk/relay/CapabilityError"),Oz=class Ia extends Error{code;retryable;constructor(n,i,c={}){super(i),this.name="CapabilityError",this.code=n,this.retryable=c.retryable??n==="provider-unavailable",Object.defineProperty(this,Oa,{value:!0})}static[Symbol.hasInstance](n){return typeof n=="object"&&n!==null&&n[Oa]===!0}static from(n){return new Ia(n.code,n.message,{retryable:Ec(n.code)&&n.retryable})}};var O=o().int().safe().nonnegative(),Ra=z({scope:p(["member","project"]),period:te,limit:O}),er=z({key:a,qualifiedBy:a,balance:a,metrics:d(Ke).min(1).max(10).refine(e=>new Set(e).size===e.length,"Metrics must be unique"),baseline:s("historical"),maxAgeMs:o().int().positive().max(864e5).default(36e5),budgets:d(Ra).max(8).default([]).refine(e=>new Set(e.map(n=>n.scope+":"+n.period)).size===e.length,"Give each scope and period one budget")}),Pz=z({metrics:K,baseline:K}),Cz=z({target:O,baseline:O}),Pa=z({actionId:a,code:t().min(1).max(1e6)}),we=z({version:a,definition:er,publishedAt:O}),$z=z({rule:a,content:t().min(1).max(256),member:a.optional(),cursor:w.optional()}),Ca=z({id:a,day:t(),observation:a,qualification:a,earned:O,growth:O,paid:O,excluded:O,entry:a.nullable(),createdAt:O}),Tz=z({rule:we,account:z({member:a,earned:O,accounted:O,paid:O,excluded:O,pending:O,counters:K,baseline:K,observation:a.nullable(),nextSettlementAt:O.nullable(),reason:t().nullable()}).nullable(),items:d(Ca),nextCursor:w.nullable()}),Ez=z({code:t().min(1).max(1e6)}),Mz=Pa.extend({expectedVersion:a,previewHash:a}),Ve=t().regex(/^(0|[1-9][0-9]*)$/),Mc=z({rule:a,fromVersion:a,toVersion:a,previewHash:a,definition:er,boundary:s("available-eligible-observation"),settlement:s("deferred"),summary:z({knownAdmissions:O,accounts:O,uninitialized:O,pendingTransitions:O,earned:Ve,paid:Ve,excluded:Ve,pending:Ve})}),Uc=we.extend({previousVersion:a.nullable()}),Uz=r({items:d(r({version:a,definition:r({...er.shape,budgets:d(r(Ra.shape)).max(8).default([])}),publishedAt:O,previousVersion:a.nullable()})),nextCursor:w.nullable()}),Nz=z({items:d(Uc),next:O.nullable()}),Zz=z({rule:a,before:R.number().int().positive().safe().optional()}),Dz=z({current:we.nullable(),requested:we,items:d(z({from:a,to:a,baseline:K,observedAt:O,settlement:Ca})),nextCursor:w.nullable()}),Nc=Pa.omit({actionId:!0}),Yt=Nc.extend({rule:we}),_z=h("kind",[Yt.extend({kind:s("create")}),Yt.extend({kind:s("unchanged")}),Yt.extend({kind:s("change"),change:Mc})]),Xt=g([Se,Q]),E=o().int().safe().nonnegative(),ne=t().trim().min(1).max(1e3),tr=r({id:a,key:a.optional(),title:t().trim().min(1).max(120),enabled:b().default(!0),qualification:h("kind",[r({kind:s("signup")}).strict(),r({kind:s("quest"),quest:a}).strict(),r({kind:s("external")}).strict()]),inviterGroup:a.optional(),rewards:r({inviter:d(Xt).max(10).default([]),invitee:d(Xt).max(10).default([])}).strict().default({inviter:[],invitee:[]}),milestones:d(r({id:a,count:E.min(1),rewards:d(Xt).min(1).max(10)}).strict()).max(30).default([]),bonuses:d(r({id:a,balance:a,basisPoints:E.min(1).max(1e4),quests:d(a).min(1).max(100).optional(),external:b().default(!1),durationDays:E.min(1).max(36500).optional(),maxPoints:E.min(1).optional()}).strict()).max(20).default([])}).strict().superRefine((e,n)=>{for(let i of[e.milestones,e.bonuses])new Set(i.map(c=>c.id)).size!==i.length&&n.addIssue({code:"custom",message:"Rule IDs must be unique"})}),Zc=r(tr.shape).omit({id:!0}).extend({...re,inviterGroup:a.optional()}).strict().superRefine((e,n)=>{for(let i of[e.milestones,e.bonuses])new Set(i.map(c=>c.id)).size!==i.length&&n.addIssue({code:"custom",message:"Rule keys must be unique"})}),Lz=g([Zc,r({code:t().min(1).max(2e6)}).strict()]),Bz=r({archivedAt:o().int().nonnegative().nullable().optional(),version:a,definition:tr,publishedAt:E,actor:t().nullable()}),Kz=r({actionId:a,code:a}).strict(),Qz=r({actionId:a,suspended:b(),reason:ne}).strict(),Fz=r({actionId:a,qualified:b(),reason:ne}).strict(),Vz=r({actionId:a,reason:ne}).strict(),Wz=h("kind",[r({kind:s("suspend"),actionId:a,member:a,suspended:b(),reason:ne}).strict(),r({kind:s("qualify"),actionId:a,member:a,program:a,qualified:b(),reason:ne}).strict(),r({kind:s("resolve-reward"),actionId:a,entitlement:a,reason:ne}).strict()]),Dc=r({member:a,inviter:a,acceptedAt:E,suspended:b(),import:a.nullable().optional()}),$a=r({id:a,program:a,kind:p(["bonus","fixed","milestone"]),balance:a,earned:E,settled:E,outstanding:E}),Hz=r({code:a,attributed:E,programs:d(r({definition:tr,qualified:E,milestones:d(r({id:a,count:E,reached:b()}))})),accounts:d($a)}),Jz=r({items:d(r({id:E,program:a,balance:a,amount:o().int().safe(),at:E,reason:t()})),nextCursor:w.nullable()}),Gz=r({relationships:d(Dc),qualifications:d(r({member:a,program:a,qualified:b(),qualifiedAt:E,import:a.nullable().optional()})),accounts:d($a.extend({member:a,invitee:t()})),reviews:d(r({entitlement:a,member:a,program:a,reason:t()})),nextCursor:w.nullable().default(null),next:E.nullable()}),We=o().int().safe().nonnegative(),Ta=Se.extend({amount:o().int().positive().max(be)}),_c=r({perMember:o().int().positive().max(1e4)}).strict(),Ea=r({id:a,key:a.optional(),title:t().trim().min(1).max(120),price:Ta,reward:Q,stock:We.max(1e6),limit:_c.default({perMember:1}),requires:d(Kt).max(30).optional(),enabled:b().default(!0)}).strict(),Ma=Ea.omit({id:!0,title:!0,enabled:!0}).extend({...re,title:t().trim().min(1).max(120).optional(),enabled:s(!0).optional()}).strict().transform(({enabled:e,...n})=>({...n,title:n.title??n.reward.reward.title,enabled:!0})),Yz=g([Ma,r({code:t().min(1).max(2e6)}).strict()]),Lc=k(h("kind",[r({kind:s("available"),remaining:We}).strict(),r({kind:s("out-of-stock")}).strict(),r({kind:s("limit-reached")}).strict(),r({kind:s("paused")}).strict()])),Xz=k(Ea.extend({revision:o().int().positive(),available:We,redeemed:We,availability:Lc,archivedAt:o().int().nonnegative().nullable().optional(),missing:d(ke).default([])})),eb=r({actionId:a}).strict(),qa={id:a,offer:a,member:a,reservation:a,price:Ta,reward:Q,entitlement:a,revision:o().int().positive(),redeemedAt:o().int().safe().nonnegative()},Bc=k(h("status",[r({...qa,status:s("fulfilled")}).strict(),r({...qa,status:s("canceled"),canceledAt:o().int().safe().nonnegative(),reason:t().min(1).max(500)}).strict()])),tb=z({member:a.optional(),cursor:w.optional(),limit:R.number().int().min(1).max(100).optional()}),rb=r({items:d(Bc),nextCursor:w.nullable()}),nb=r({actionId:a,revision:o().int().positive(),enabled:b(),reason:t().trim().min(1).max(500)}).strict(),ab=r({actionId:a,revision:o().int().positive(),reason:t().trim().min(1).max(500)}).strict();function ib(e){return ye("offer",qe("Offer",Ma,e))}export{qe as a,Da as b,Kc as c,a as d,Nr as e,Zr as f,qt as g,Hc as h,Jc as i,Gc as j,Ba as k,Yc as l,Xc as m,el as n,tl as o,Dr as p,rl as q,k as r,Br as s,nl as t,w as u,al as v,il as w,ol as x,Rt as y,Qa as z,sl as A,Kr as B,cl as C,ll as D,dl as E,ml as F,ul as G,zl as H,bl as I,Qr as J,Fr as K,Va as L,Wa as M,Vr as N,Wr as O,Ha as P,Ja as Q,Ga as R,pl as S,gl as T,Ya as U,fl as V,Hr as W,Xa as X,hl as Y,vl as Z,yl as _,kl as $,Sl as aa,jl as ba,xl as ca,wl as da,I as ea,Y as fa,ge as ga,Pt as ha,Al as ia,Ol as ja,Ue as ka,Xr as la,en as ma,ti as na,ri as oa,Il as pa,ql as qa,Rl as ra,Ct as sa,ni as ta,Pl as ua,tn as va,Cl as wa,$l as xa,Tl as ya,El as za,Ml as Aa,Ul as Ba,pt as Ca,ai as Da,Nl as Ea,Zl as Fa,Dl as Ga,_l as Ha,Ll as Ia,Bl as Ja,ci as Ka,rn as La,Kl as Ma,Ql as Na,mi as Oa,ui as Pa,zi as Qa,Fl as Ra,Vl as Sa,fi as Ta,hi as Ua,Wl as Va,Hl as Wa,Jl as Xa,yi as Ya,Be as Za,on as _a,Gl as $a,Yl as ab,Xl as bb,ed as cb,ki as db,Si as eb,td as fb,rd as gb,nd as hb,ad as ib,id as jb,$t as kb,Tt as lb,ji as mb,od as nb,sd as ob,xi as pb,wi as qb,cd as rb,ld as sb,cn as tb,dd as ub,Ui as vb,md as wb,ud as xb,_i as yb,Li as zb,Bi as Ab,zd as Bb,gn as Cb,bd as Db,Ki as Eb,fn as Fb,Et as Gb,pd as Hb,fe as Ib,gd as Jb,he as Kb,fd as Lb,hn as Mb,Qi as Nb,Fi as Ob,vn as Pb,Ut as Qb,yn as Rb,kn as Sb,Sn as Tb,ee as Ub,jn as Vb,Vi as Wb,Wi as Xb,hd as Yb,vd as Zb,W as _b,yd as $b,Hi as ac,wn as bc,Ji as cc,Gi as dc,An as ec,On as fc,kd as gc,Sd as hc,In as ic,ve as jc,jd as kc,Yi as lc,xd as mc,Xi as nc,wd as oc,eo as pc,Ad as qc,to as rc,Od as sc,Id as tc,qd as uc,ro as vc,no as wc,qn as xc,ao as yc,Rd as zc,Pd as Ac,Cd as Bc,io as Cc,Rn as Dc,$d as Ec,Td as Fc,Ed as Gc,Md as Hc,Ud as Ic,Nd as Jc,Zd as Kc,Dd as Lc,_d as Mc,Ld as Nc,Bd as Oc,Kd as Pc,oo as Qc,Cn as Rc,Qd as Sc,Ke as Tc,K as Uc,so as Vc,co as Wc,lo as Xc,mo as Yc,$n as Zc,uo as _c,zo as $c,Fd as ad,Vd as bd,Wd as cd,Hd as dd,bo as ed,Tn as fd,ue as gd,po as hd,go as id,te as jd,Jd as kd,Gd as ld,Yd as md,fo as nd,ho as od,vo as pd,Xd as qd,$e as rd,qr as sd,yo as td,ko as ud,em as vd,So as wd,jo as xd,xo as yd,wo as zd,tm as Ad,rm as Bd,nm as Cd,Ao as Dd,Oo as Ed,Io as Fd,am as Gd,Pr as Hd,Ro as Id,im as Jd,om as Kd,$o as Ld,Zt as Md,To as Nd,sm as Od,cm as Pd,Dt as Qd,xt as Rd,Mn as Sd,Eo as Td,lm as Ud,dm as Vd,Mo as Wd,Uo as Xd,No as Yd,Un as Zd,mm as _d,um as $d,Nn as ae,Do as be,_o as ce,Lo as de,Bo as ee,Ko as fe,Qo as ge,Vo as he,Dn as ie,_n as je,zm as ke,bm as le,pm as me,Wo as ne,Bn as oe,Ho as pe,Lt as qe,gm as re,Xo as se,es as te,Qn as ue,fm as ve,hm as we,Fn as xe,wt as ye,ts as ze,rs as Ae,X as Be,ns as Ce,as as De,vm as Ee,is as Fe,ym as Ge,km as He,Sm as Ie,re as Je,jm as Ke,Bt as Le,Ne as Me,xm as Ne,ss as Oe,Vn as Pe,wm as Qe,cs as Re,Am as Se,Om as Te,ye as Ue,Im as Ve,ls as We,Tr as Xe,qm as Ye,ms as Ze,Rm as _e,Pm as $e,Cm as af,$m as bf,Tm as cf,Em as df,us as ef,Mm as ff,zs as gf,Um as hf,Yn as if,Xn as jf,ea as kf,Kt as lf,ke as mf,Nm as nf,Zm as of,Dm as pf,Se as qf,Qt as rf,_m as sf,Q as tf,bs as uf,Lm as vf,ps as wf,Bm as xf,gs as yf,Ot as zf,hs as Af,ta as Bf,ra as Cf,na as Df,Km as Ef,Qm as Ff,Fm as Gf,Vm as Hf,Er as If,Ft as Jf,Wm as Kf,ys as Lf,ks as Mf,Vt as Nf,ze as Of,Ss as Pf,js as Qf,xs as Rf,Ze as Sf,aa as Tf,ws as Uf,As as Vf,Os as Wf,ia as Xf,Is as Yf,qs as Zf,Hm as _f,Jm as $f,Rs as ag,Ps as bg,Gm as cg,Cs as dg,$s as eg,Qe as fg,Ym as gg,Xm as hg,eu as ig,Fe as jg,tu as kg,Us as lg,ru as mg,nu as ng,Ns as og,Zs as pg,pe as qg,Ds as rg,au as sg,iu as tg,ou as ug,oa as vg,su as wg,sa as xg,cu as yg,lu as zg,du as Ag,mu as Bg,Bs as Cg,Ks as Dg,Qs as Eg,Vs as Fg,uu as Gg,zu as Hg,bu as Ig,pu as Jg,gu as Kg,fu as Lg,hu as Mg,vu as Ng,Ws as Og,yu as Pg,ku as Qg,Su as Rg,ju as Sg,xu as Tg,Hs as Ug,wu as Vg,Au as Wg,Ou as Xg,Iu as Yg,qu as Zg,Ru as _g,Pu as $g,Wt as ah,Cu as bh,Js as ch,$u as dh,Gs as eh,Tu as fh,Ys as gh,Xs as hh,Eu as ih,Mu as jh,la as kh,Uu as lh,Nu as mh,da as nh,_e as oh,tc as ph,rc as qh,nc as rh,ac as sh,ic as th,ut as uh,oc as vh,ua as wh,cc as xh,Zu as yh,lc as zh,Du as Ah,dc as Bh,_u as Ch,Lu as Dh,mc as Eh,Bu as Fh,Ku as Gh,Qu as Hh,Fu as Ih,Vu as Jh,ba as Kh,zc as Lh,ga as Mh,Le as Nh,bc as Oh,gc as Ph,fc as Qh,hc as Rh,vc as Sh,yc as Th,Wu as Uh,kc as Vh,Hu as Wh,zt as Xh,Ur as Yh,Ju as Zh,Gu as _h,Yu as $h,Xu as ai,ez as bi,ka as ci,tz as di,rz as ei,nz as fi,az as gi,iz as hi,oz as ii,sz as ji,Sc as ki,jc as li,xc as mi,wc as ni,Ac as oi,Oc as pi,cz as qi,lz as ri,bz as si,Rc as ti,$c as ui,Gt as vi,Aa as wi,pz as xi,gz as yi,fz as zi,hz as Ai,vz as Bi,yz as Ci,kz as Di,Sz as Ei,jz as Fi,xz as Gi,Tc as Hi,Az as Ii,Oz as Ji,Ra as Ki,er as Li,Pz as Mi,Cz as Ni,Pa as Oi,we as Pi,$z as Qi,Ca as Ri,Tz as Si,Ez as Ti,Mz as Ui,Mc as Vi,Uz as Wi,Nz as Xi,Zz as Yi,Dz as Zi,Nc as _i,_z as $i,tr as aj,Zc as bj,Lz as cj,Bz as dj,Kz as ej,Qz as fj,Fz as gj,Vz as hj,Wz as ij,Dc as jj,$a as kj,Hz as lj,Jz as mj,Gz as nj,Ta as oj,_c as pj,Ea as qj,Ma as rj,Yz as sj,Lc as tj,Xz as uj,eb as vj,Bc as wj,tb as xj,rb as yj,nb as zj,ab as Aj,ib as Bj};
|