@aifinpay/agent 1.8.4 → 2.0.0-rc.12

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.
Files changed (97) hide show
  1. package/PAYMENT_RECEIPTS.md +110 -0
  2. package/README.md +93 -35
  3. package/dist/agent.d.ts +6 -1
  4. package/dist/agent.d.ts.map +1 -1
  5. package/dist/agent.js +50 -12
  6. package/dist/agent.js.map +1 -1
  7. package/dist/agentHistory.d.ts +15 -0
  8. package/dist/agentHistory.d.ts.map +1 -0
  9. package/dist/agentHistory.js +47 -0
  10. package/dist/agentHistory.js.map +1 -0
  11. package/dist/agentPassport.d.ts +95 -0
  12. package/dist/agentPassport.d.ts.map +1 -0
  13. package/dist/agentPassport.js +177 -0
  14. package/dist/agentPassport.js.map +1 -0
  15. package/dist/aifp1.d.ts +135 -8
  16. package/dist/aifp1.d.ts.map +1 -1
  17. package/dist/aifp1.js +317 -50
  18. package/dist/aifp1.js.map +1 -1
  19. package/dist/apiUrl.d.ts +3 -0
  20. package/dist/apiUrl.d.ts.map +1 -0
  21. package/dist/apiUrl.js +8 -0
  22. package/dist/apiUrl.js.map +1 -0
  23. package/dist/chains.d.ts +4 -0
  24. package/dist/chains.d.ts.map +1 -0
  25. package/dist/chains.js +24 -0
  26. package/dist/chains.js.map +1 -0
  27. package/dist/deploymentResolver.d.ts +87 -0
  28. package/dist/deploymentResolver.d.ts.map +1 -0
  29. package/dist/deploymentResolver.js +145 -0
  30. package/dist/deploymentResolver.js.map +1 -0
  31. package/dist/facilitators/aifinpay.d.ts +4 -5
  32. package/dist/facilitators/aifinpay.d.ts.map +1 -1
  33. package/dist/facilitators/aifinpay.js +49 -19
  34. package/dist/facilitators/aifinpay.js.map +1 -1
  35. package/dist/facilitators/base.d.ts +12 -1
  36. package/dist/facilitators/base.d.ts.map +1 -1
  37. package/dist/facilitators/detect.d.ts +3 -3
  38. package/dist/facilitators/detect.d.ts.map +1 -1
  39. package/dist/facilitators/detect.js +3 -22
  40. package/dist/facilitators/detect.js.map +1 -1
  41. package/dist/facilitators/standard-x402.d.ts +4 -8
  42. package/dist/facilitators/standard-x402.d.ts.map +1 -1
  43. package/dist/facilitators/standard-x402.js +218 -92
  44. package/dist/facilitators/standard-x402.js.map +1 -1
  45. package/dist/index.d.ts +24 -18
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +22 -34
  48. package/dist/index.js.map +1 -1
  49. package/dist/localIdentity.d.ts +17 -0
  50. package/dist/localIdentity.d.ts.map +1 -0
  51. package/dist/localIdentity.js +81 -0
  52. package/dist/localIdentity.js.map +1 -0
  53. package/dist/settlement.d.ts +198 -0
  54. package/dist/settlement.d.ts.map +1 -0
  55. package/dist/settlement.js +429 -0
  56. package/dist/settlement.js.map +1 -0
  57. package/dist/settlementHttp.d.ts +10 -0
  58. package/dist/settlementHttp.d.ts.map +1 -0
  59. package/dist/settlementHttp.js +70 -0
  60. package/dist/settlementHttp.js.map +1 -0
  61. package/dist/settlementV14.d.ts +136 -0
  62. package/dist/settlementV14.d.ts.map +1 -0
  63. package/dist/settlementV14.js +170 -0
  64. package/dist/settlementV14.js.map +1 -0
  65. package/dist/solanaDeploymentResolver.d.ts +90 -0
  66. package/dist/solanaDeploymentResolver.d.ts.map +1 -0
  67. package/dist/solanaDeploymentResolver.js +143 -0
  68. package/dist/solanaDeploymentResolver.js.map +1 -0
  69. package/dist/solanaV14Deployments.generated.d.ts +35 -0
  70. package/dist/solanaV14Deployments.generated.d.ts.map +1 -0
  71. package/dist/solanaV14Deployments.generated.js +61 -0
  72. package/dist/solanaV14Deployments.generated.js.map +1 -0
  73. package/dist/splitterRoutes.d.ts +120 -0
  74. package/dist/splitterRoutes.d.ts.map +1 -0
  75. package/dist/splitterRoutes.generated.d.ts +22 -0
  76. package/dist/splitterRoutes.generated.d.ts.map +1 -0
  77. package/dist/splitterRoutes.generated.js +459 -0
  78. package/dist/splitterRoutes.generated.js.map +1 -0
  79. package/dist/splitterRoutes.js +73 -0
  80. package/dist/splitterRoutes.js.map +1 -0
  81. package/dist/unifiedAgent.d.ts +28 -18
  82. package/dist/unifiedAgent.d.ts.map +1 -1
  83. package/dist/unifiedAgent.js +85 -325
  84. package/dist/unifiedAgent.js.map +1 -1
  85. package/dist/v14Deployments.generated.d.ts +53 -0
  86. package/dist/v14Deployments.generated.d.ts.map +1 -0
  87. package/dist/v14Deployments.generated.js +89 -0
  88. package/dist/v14Deployments.generated.js.map +1 -0
  89. package/dist/wallet.d.ts +11 -52
  90. package/dist/wallet.d.ts.map +1 -1
  91. package/dist/wallet.js +27 -51
  92. package/dist/wallet.js.map +1 -1
  93. package/package.json +7 -4
  94. package/dist/cli.d.ts +0 -3
  95. package/dist/cli.d.ts.map +0 -1
  96. package/dist/cli.js +0 -127
  97. package/dist/cli.js.map +0 -1
@@ -0,0 +1,61 @@
1
+ // DO NOT EDIT BY HAND. Bundled copy of the Solana splitter v1.4 deployment
2
+ // artifacts from AiFinPay/solana-contract, so a shipped build resolves the
3
+ // Solana program id without a runtime GitHub fetch — the same discipline as
4
+ // v14Deployments.generated.ts (EVM) and splitterRoutes.generated.ts.
5
+ //
6
+ // Source: AiFinPay/solana-contract @ dev (commit
7
+ // 8a13d10d6210cd37345f7ae6684068bf849e24b1), files:
8
+ // deployments/splitter_v14/splitter.mainnet.20260910-170049.json (mainnet IDL)
9
+ // deployments/splitter_v14/splitter-mainnet-deploy-20260910-170049.log
10
+ // deployments/splitter_v14/splitter.devnet.20260910-143306.json (devnet IDL)
11
+ // deployments/splitter_v14/splitter-deploy-20260910-143306.log
12
+ //
13
+ // To refresh: read the same files off solana-contract's dev branch, e.g.
14
+ // git show origin/dev:deployments/splitter_v14/splitter.mainnet.<ts>.json
15
+ // and update the program ids below. Development deployments are, by design,
16
+ // devnet; production is mainnet-beta. The program id in each entry is the
17
+ // canonical program id confirmed in the deploy log for that cluster.
18
+ //
19
+ // NOTE ON FALLBACK: unlike EVM (which falls back v1.4 -> v1.2), Solana has NO
20
+ // v1.2-equivalent splitter to fall back to. The previous Solana program
21
+ // (5g9zWHF1Vv6GiGpA2ZbJQbSCDZd5hAk9AyvabRJvKFx2) was closed and removed from
22
+ // mainnet, and the SDK never bundled it — it takes the program id at runtime
23
+ // from the bridge's pay_solana challenge. So the Solana resolver offers v1.4
24
+ // only; "auto" resolves v1.4 and raises a typed no-deployment error where v1.4
25
+ // is absent rather than inventing a downgrade.
26
+ /** Where this table came from, so a build can be traced to a commit. */
27
+ export const SOLANA_V14_DEPLOYMENTS_SOURCE = {
28
+ repo: "AiFinPay/solana-contract",
29
+ branch: "dev",
30
+ commit: "8a13d10d6210cd37345f7ae6684068bf849e24b1",
31
+ path: "deployments/splitter_v14/",
32
+ };
33
+ /** Solana v1.4 deployments, keyed by cluster. Devnet is dev-only; mainnet is
34
+ * prod-only. Absence of a cluster here means no v1.4 deployment for it. */
35
+ export const SOLANA_V14_DEPLOYMENTS = {
36
+ devnet: {
37
+ network: "devnet",
38
+ environment: "dev",
39
+ splitterVersion: "1.4",
40
+ programId: "Dg9v95m6ofTwaU9V69PNAyRaKeELwxrne4THUYuUTeon",
41
+ idl: {
42
+ name: "splitter",
43
+ version: "1.4.1",
44
+ artifact: "deployments/splitter_v14/splitter.devnet.20260910-143306.json",
45
+ },
46
+ },
47
+ mainnet: {
48
+ network: "mainnet",
49
+ environment: "prod",
50
+ splitterVersion: "1.4",
51
+ programId: "8dty5bD738Z9TzEkDu8vLSnhpJNWtEGMUEcYaKCUTY6y",
52
+ idl: {
53
+ name: "splitter",
54
+ version: "1.4.1",
55
+ artifact: "deployments/splitter_v14/splitter.mainnet.20260910-170049.json",
56
+ },
57
+ },
58
+ };
59
+ /** The single development cluster Solana v1.4 supports today. */
60
+ export const SOLANA_DEV_NETWORKS = ["devnet"];
61
+ //# sourceMappingURL=solanaV14Deployments.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solanaV14Deployments.generated.js","sourceRoot":"","sources":["../src/solanaV14Deployments.generated.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,2EAA2E;AAC3E,4EAA4E;AAC5E,qEAAqE;AACrE,EAAE;AACF,iDAAiD;AACjD,oDAAoD;AACpD,kFAAkF;AAClF,yEAAyE;AACzE,iFAAiF;AACjF,iEAAiE;AACjE,EAAE;AACF,yEAAyE;AACzE,4EAA4E;AAC5E,4EAA4E;AAC5E,0EAA0E;AAC1E,qEAAqE;AACrE,EAAE;AACF,8EAA8E;AAC9E,wEAAwE;AACxE,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,+EAA+E;AAC/E,+CAA+C;AA2B/C,wEAAwE;AACxE,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,IAAI,EAAE,0BAA0B;IAChC,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,0CAA0C;IAClD,IAAI,EAAE,2BAA2B;CACzB,CAAC;AAEX;4EAC4E;AAC5E,MAAM,CAAC,MAAM,sBAAsB,GAAwC;IACzE,MAAM,EAAE;QACN,OAAO,EAAE,QAAQ;QACjB,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,KAAK;QACtB,SAAS,EAAE,8CAA8C;QACzD,GAAG,EAAE;YACH,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,OAAO;YAChB,QAAQ,EACN,+DAA+D;SAClE;KACF;IACD,OAAO,EAAE;QACP,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,MAAM;QACnB,eAAe,EAAE,KAAK;QACtB,SAAS,EAAE,8CAA8C;QACzD,GAAG,EAAE;YACH,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,OAAO;YAChB,QAAQ,EACN,gEAAgE;SACnE;KACF;CACF,CAAC;AAEF,iEAAiE;AACjE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAQ,CAAU,CAAC"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * v1.3 splitter selection, keyed by chain AND protocol route.
3
+ *
4
+ * From v1.3 a chain carries one splitter per protocol route, because the fee
5
+ * split is immutable at construction and the two protocols need different
6
+ * economics:
7
+ *
8
+ * merchant-aifp1 (100/0) — the agent pays the quoted gross amount, the
9
+ * AiFinPay treasury receives 1%, the merchant receives 99%.
10
+ * agent-x402 (0/0) — the provider receives 100% of the provider-defined
11
+ * price and the AiFinPay fee is 0% for now. This route is NOT fee-on-top;
12
+ * fee-on-top semantics arrive in a future contract version.
13
+ *
14
+ * Selection must use both chain and route, and must never fall back from one
15
+ * route to the other. That is not a style preference. The splitters were
16
+ * deployed with CREATE, so an address derives from deployer and nonce and the
17
+ * same address recurs on other chains for the other route:
18
+ *
19
+ * 0x1Fe2021336596655Fac72bC7bC40F7FFFA501d55
20
+ * is OP's merchant-aifp1 AND Base's agent-x402
21
+ * 0xF03B3387415D557b6ab709D06E8aF0b4ABD6Eb74
22
+ * is Unichain's merchant-aifp1, Avalanche's agent-x402, AND the legacy
23
+ * v1.2 splitter on Optimism
24
+ *
25
+ * An address on its own therefore says nothing about which economics apply.
26
+ * Resolving by chain alone would settle at the wrong fee split, silently,
27
+ * and the amounts would still look plausible in every log.
28
+ *
29
+ * The table itself is NOT in this file. It is generated into
30
+ * splitterRoutes.generated.ts from registry/splitter-table.json, a byte-for-byte
31
+ * copy of the canonical artifact in AiFinPay/evm-contract, where every
32
+ * payment-critical field — splitter, owner, treasury, both bps values, the
33
+ * runtime code hash — was read from the chain by verify-registry.mjs. Two
34
+ * repositories hand-maintaining the same payout addresses is the failure this
35
+ * split prevents; `npm run registry:check` fails CI if they disagree.
36
+ *
37
+ * What stays here is the part worth reading: the types, the errors, and the two
38
+ * resolvers. Logic belongs in a reviewed file, not in a generated one.
39
+ */
40
+ import type { Chain } from "viem/chains";
41
+ export { SPLITTER_ROUTES, SPLITTER_GOVERNANCE, SPLITTER_REGISTRY_SOURCE, } from "./splitterRoutes.generated.js";
42
+ /** Protocol routes. A route is a fee profile fixed at construction. */
43
+ export type SplitterRoute = "merchant-aifp1" | "agent-x402";
44
+ /** Chains carrying v1.3 route splitters. */
45
+ export type SplitterRouteChain = "amoy" | "polygon" | "optimism" | "bnb" | "unichain" | "botchain" | "base" | "arbitrum" | "avalanche" | "xrplevm";
46
+ /** Key into SPLITTER_ROUTES. Both halves are required. */
47
+ export type SplitterRouteKey = `${SplitterRouteChain}:${SplitterRoute}`;
48
+ export interface SplitterRouteDeployment {
49
+ chain: SplitterRouteChain;
50
+ route: SplitterRoute;
51
+ chainId: number;
52
+ viemChain: Chain;
53
+ splitter: `0x${string}`;
54
+ /**
55
+ * The governance Safe, read from the contract's own owner(). It controls
56
+ * pause/unpause, the treasury address and the stablecoin whitelist, so it is
57
+ * carried here rather than assumed: every other field is only as trustworthy
58
+ * as whoever can change it.
59
+ */
60
+ owner: `0x${string}`;
61
+ /** Owner and treasury are the same governance Safe on every chain. */
62
+ treasury: `0x${string}`;
63
+ /** Immutable, baked into runtime code. 100 = 1%. */
64
+ treasuryBps: number;
65
+ ipCreatorBps: number;
66
+ /** keccak-256 of the deployed runtime bytecode, read from chain. */
67
+ runtimeCodeHash: `0x${string}`;
68
+ /**
69
+ * Deployed and verified is not the same as payable. A route is enabled
70
+ * individually, and only after a successful mainnet paid end-to-end
71
+ * settlement on that exact route with verified balance deltas.
72
+ */
73
+ settlementEnabled: boolean;
74
+ /** Testnet entries require an explicit opt-in; they never activate mainnet. */
75
+ testnet: boolean;
76
+ /**
77
+ * How many independent RPC providers agreed on every field above when the
78
+ * registry was verified. A route verified from one provider can never be
79
+ * enabled — BOT Chain and XRPL EVM have exactly one public provider each.
80
+ */
81
+ rpcQuorum: number;
82
+ /**
83
+ * Stablecoins the splitter accepts, read live via whitelistedTokens() and
84
+ * owner-mutable, so pinned separately from the runtime hash. null = not
85
+ * accepted on this chain; a chain with both null settles native only.
86
+ */
87
+ stablecoins: {
88
+ USDC: `0x${string}` | null;
89
+ USDT: `0x${string}` | null;
90
+ };
91
+ /** Policy review window. Outside it, a route must not settle. */
92
+ validFrom: string;
93
+ validUntil: string;
94
+ defaultRpc: string;
95
+ explorer: string;
96
+ /** The date the fields above were last read from the chain. */
97
+ verifiedAt: string;
98
+ }
99
+ export declare class UnknownSplitterRouteError extends Error {
100
+ constructor(chain: string, route: string);
101
+ }
102
+ export declare class SplitterRouteNotSettlingError extends Error {
103
+ constructor(key: string, reason: string);
104
+ }
105
+ /**
106
+ * Resolve a splitter by chain AND route. Throws on an unknown pair rather
107
+ * than falling back, because the fallback is the bug: every route resolves to
108
+ * a real, deployed, working contract with the wrong economics.
109
+ */
110
+ export declare function resolveSplitterRoute(chain: SplitterRouteChain | string, route: SplitterRoute | string): SplitterRouteDeployment;
111
+ /**
112
+ * Resolve a route that is cleared to move money. Separate from
113
+ * resolveSplitterRoute on purpose: reading the registry and being allowed to
114
+ * settle are different questions, and conflating them is how a disabled route
115
+ * ends up paying.
116
+ */
117
+ export declare function resolveSettlingSplitterRoute(chain: SplitterRouteChain | string, route: SplitterRoute | string, now?: Date, options?: {
118
+ allowTestnet?: boolean;
119
+ }): SplitterRouteDeployment;
120
+ //# sourceMappingURL=splitterRoutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splitterRoutes.d.ts","sourceRoot":"","sources":["../src/splitterRoutes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AAEvC,uEAAuE;AACvE,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,YAAY,CAAC;AAE5D,4CAA4C;AAC5C,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,SAAS,GACT,UAAU,GACV,KAAK,GACL,UAAU,GACV,UAAU,GACV,MAAM,GACN,UAAU,GACV,WAAW,GACX,SAAS,CAAC;AAEd,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GAAG,GAAG,kBAAkB,IAAI,aAAa,EAAE,CAAC;AAExE,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,KAAK,CAAC;IACjB,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAC;IACxB;;;;;OAKG;IACH,KAAK,EAAE,KAAK,MAAM,EAAE,CAAC;IACrB,sEAAsE;IACtE,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAC;IACxB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,eAAe,EAAE,KAAK,MAAM,EAAE,CAAC;IAC/B;;;;OAIG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B,+EAA+E;IAC/E,OAAO,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,WAAW,EAAE;QAAE,IAAI,EAAE,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,KAAK,MAAM,EAAE,GAAG,IAAI,CAAA;KAAE,CAAC;IACxE,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAUzC;AAED,qBAAa,6BAA8B,SAAQ,KAAK;gBAC1C,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAIxC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,kBAAkB,GAAG,MAAM,EAClC,KAAK,EAAE,aAAa,GAAG,MAAM,GAC5B,uBAAuB,CAMzB;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,kBAAkB,GAAG,MAAM,EAClC,KAAK,EAAE,aAAa,GAAG,MAAM,EAC7B,GAAG,GAAE,IAAiB,EACtB,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GACvC,uBAAuB,CAoDzB"}
@@ -0,0 +1,22 @@
1
+ import type { SplitterRouteDeployment, SplitterRouteKey } from "./splitterRoutes.js";
2
+ /** Where this table came from, so a deployed build can be traced to a commit. */
3
+ export declare const SPLITTER_REGISTRY_SOURCE: {
4
+ readonly repo: "AiFinPay/evm-contract";
5
+ readonly path: "registry/generated/splitter-table.json";
6
+ readonly commit: "64e245fd613e97f95195239238d6ac75484a8a21";
7
+ readonly artifactSha256: "36ee672b1deccd7b851460b459af26984ca07802477bc8c1e78018f5d5154827";
8
+ readonly schemaVersion: 4;
9
+ readonly registryUpdatedAt: "2026-08-30";
10
+ };
11
+ /**
12
+ * The governance Safe that owns every splitter below, and the exact signer
13
+ * shape it was verified under. Read from the chain by verify-registry.mjs, which
14
+ * compares the signer set and threshold exactly rather than as a floor.
15
+ */
16
+ export declare const SPLITTER_GOVERNANCE: {
17
+ readonly safe: "0xFd936f75D9221949f2FEaB54Cd342F7527154eD5";
18
+ readonly threshold: 3;
19
+ readonly owners: readonly ["0x2118c57dEBD53f614DDfE464Ff2941BE6646cA82", "0x3C31dd9daCeC5473cC9B660CD69247A20701cF19", "0x25A834b6fEC79e9ee6ED04Ef5b97440149C6Cc24", "0x1D5eF769A024B3157c76884fbd10302d8d83fAB9", "0x849930eB20ED0a697c71BcE565f18702D202C0F8"];
20
+ };
21
+ export declare const SPLITTER_ROUTES: Record<SplitterRouteKey, SplitterRouteDeployment>;
22
+ //# sourceMappingURL=splitterRoutes.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splitterRoutes.generated.d.ts","sourceRoot":"","sources":["../src/splitterRoutes.generated.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAErF,iFAAiF;AACjF,eAAO,MAAM,wBAAwB;;;;;;;CAO3B,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;CAUtB,CAAC;AAEX,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,gBAAgB,EAAE,uBAAuB,CAqa7E,CAAC"}