@waiaas/core 2.0.0-rc.1

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 (173) hide show
  1. package/dist/enums/audit.d.ts +5 -0
  2. package/dist/enums/audit.d.ts.map +1 -0
  3. package/dist/enums/audit.js +31 -0
  4. package/dist/enums/audit.js.map +1 -0
  5. package/dist/enums/chain.d.ts +50 -0
  6. package/dist/enums/chain.d.ts.map +1 -0
  7. package/dist/enums/chain.js +123 -0
  8. package/dist/enums/chain.js.map +1 -0
  9. package/dist/enums/index.d.ts +10 -0
  10. package/dist/enums/index.d.ts.map +1 -0
  11. package/dist/enums/index.js +10 -0
  12. package/dist/enums/index.js.map +1 -0
  13. package/dist/enums/notification.d.ts +8 -0
  14. package/dist/enums/notification.d.ts.map +1 -0
  15. package/dist/enums/notification.js +34 -0
  16. package/dist/enums/notification.js.map +1 -0
  17. package/dist/enums/owner.d.ts +5 -0
  18. package/dist/enums/owner.d.ts.map +1 -0
  19. package/dist/enums/owner.js +5 -0
  20. package/dist/enums/owner.js.map +1 -0
  21. package/dist/enums/policy.d.ts +8 -0
  22. package/dist/enums/policy.d.ts.map +1 -0
  23. package/dist/enums/policy.js +19 -0
  24. package/dist/enums/policy.js.map +1 -0
  25. package/dist/enums/session.d.ts +5 -0
  26. package/dist/enums/session.d.ts.map +1 -0
  27. package/dist/enums/session.js +5 -0
  28. package/dist/enums/session.js.map +1 -0
  29. package/dist/enums/system.d.ts +5 -0
  30. package/dist/enums/system.d.ts.map +1 -0
  31. package/dist/enums/system.js +4 -0
  32. package/dist/enums/system.js.map +1 -0
  33. package/dist/enums/transaction.d.ts +8 -0
  34. package/dist/enums/transaction.d.ts.map +1 -0
  35. package/dist/enums/transaction.js +25 -0
  36. package/dist/enums/transaction.js.map +1 -0
  37. package/dist/enums/wallet.d.ts +5 -0
  38. package/dist/enums/wallet.d.ts.map +1 -0
  39. package/dist/enums/wallet.js +10 -0
  40. package/dist/enums/wallet.js.map +1 -0
  41. package/dist/errors/base-error.d.ts +25 -0
  42. package/dist/errors/base-error.d.ts.map +1 -0
  43. package/dist/errors/base-error.js +33 -0
  44. package/dist/errors/base-error.js.map +1 -0
  45. package/dist/errors/chain-error.d.ts +48 -0
  46. package/dist/errors/chain-error.d.ts.map +1 -0
  47. package/dist/errors/chain-error.js +83 -0
  48. package/dist/errors/chain-error.js.map +1 -0
  49. package/dist/errors/error-codes.d.ts +667 -0
  50. package/dist/errors/error-codes.d.ts.map +1 -0
  51. package/dist/errors/error-codes.js +671 -0
  52. package/dist/errors/error-codes.js.map +1 -0
  53. package/dist/errors/index.d.ts +4 -0
  54. package/dist/errors/index.d.ts.map +1 -0
  55. package/dist/errors/index.js +4 -0
  56. package/dist/errors/index.js.map +1 -0
  57. package/dist/events/event-bus.d.ts +36 -0
  58. package/dist/events/event-bus.d.ts.map +1 -0
  59. package/dist/events/event-bus.js +74 -0
  60. package/dist/events/event-bus.js.map +1 -0
  61. package/dist/events/event-types.d.ts +59 -0
  62. package/dist/events/event-types.d.ts.map +1 -0
  63. package/dist/events/event-types.js +16 -0
  64. package/dist/events/event-types.js.map +1 -0
  65. package/dist/events/index.d.ts +3 -0
  66. package/dist/events/index.d.ts.map +1 -0
  67. package/dist/events/index.js +3 -0
  68. package/dist/events/index.js.map +1 -0
  69. package/dist/i18n/en.d.ts +57 -0
  70. package/dist/i18n/en.d.ts.map +1 -0
  71. package/dist/i18n/en.js +194 -0
  72. package/dist/i18n/en.js.map +1 -0
  73. package/dist/i18n/index.d.ts +5 -0
  74. package/dist/i18n/index.d.ts.map +1 -0
  75. package/dist/i18n/index.js +7 -0
  76. package/dist/i18n/index.js.map +1 -0
  77. package/dist/i18n/ko.d.ts +3 -0
  78. package/dist/i18n/ko.d.ts.map +1 -0
  79. package/dist/i18n/ko.js +194 -0
  80. package/dist/i18n/ko.js.map +1 -0
  81. package/dist/index.d.ts +14 -0
  82. package/dist/index.d.ts.map +1 -0
  83. package/dist/index.js +26 -0
  84. package/dist/index.js.map +1 -0
  85. package/dist/interfaces/IChainAdapter.d.ts +61 -0
  86. package/dist/interfaces/IChainAdapter.d.ts.map +1 -0
  87. package/dist/interfaces/IChainAdapter.js +2 -0
  88. package/dist/interfaces/IChainAdapter.js.map +1 -0
  89. package/dist/interfaces/ILocalKeyStore.d.ts +24 -0
  90. package/dist/interfaces/ILocalKeyStore.d.ts.map +1 -0
  91. package/dist/interfaces/ILocalKeyStore.js +2 -0
  92. package/dist/interfaces/ILocalKeyStore.js.map +1 -0
  93. package/dist/interfaces/INotificationChannel.d.ts +32 -0
  94. package/dist/interfaces/INotificationChannel.d.ts.map +1 -0
  95. package/dist/interfaces/INotificationChannel.js +2 -0
  96. package/dist/interfaces/INotificationChannel.js.map +1 -0
  97. package/dist/interfaces/IPolicyEngine.d.ts +44 -0
  98. package/dist/interfaces/IPolicyEngine.d.ts.map +1 -0
  99. package/dist/interfaces/IPolicyEngine.js +2 -0
  100. package/dist/interfaces/IPolicyEngine.js.map +1 -0
  101. package/dist/interfaces/action-provider.types.d.ts +123 -0
  102. package/dist/interfaces/action-provider.types.d.ts.map +1 -0
  103. package/dist/interfaces/action-provider.types.js +65 -0
  104. package/dist/interfaces/action-provider.types.js.map +1 -0
  105. package/dist/interfaces/chain-adapter.types.d.ts +216 -0
  106. package/dist/interfaces/chain-adapter.types.d.ts.map +1 -0
  107. package/dist/interfaces/chain-adapter.types.js +2 -0
  108. package/dist/interfaces/chain-adapter.types.js.map +1 -0
  109. package/dist/interfaces/forex-rate.types.d.ts +63 -0
  110. package/dist/interfaces/forex-rate.types.d.ts.map +1 -0
  111. package/dist/interfaces/forex-rate.types.js +41 -0
  112. package/dist/interfaces/forex-rate.types.js.map +1 -0
  113. package/dist/interfaces/index.d.ts +15 -0
  114. package/dist/interfaces/index.d.ts.map +1 -0
  115. package/dist/interfaces/index.js +5 -0
  116. package/dist/interfaces/index.js.map +1 -0
  117. package/dist/interfaces/price-oracle.types.d.ts +99 -0
  118. package/dist/interfaces/price-oracle.types.d.ts.map +1 -0
  119. package/dist/interfaces/price-oracle.types.js +48 -0
  120. package/dist/interfaces/price-oracle.types.js.map +1 -0
  121. package/dist/interfaces/x402.types.d.ts +112 -0
  122. package/dist/interfaces/x402.types.d.ts.map +1 -0
  123. package/dist/interfaces/x402.types.js +69 -0
  124. package/dist/interfaces/x402.types.js.map +1 -0
  125. package/dist/schemas/asset.schema.d.ts +32 -0
  126. package/dist/schemas/asset.schema.d.ts.map +1 -0
  127. package/dist/schemas/asset.schema.js +15 -0
  128. package/dist/schemas/asset.schema.js.map +1 -0
  129. package/dist/schemas/config.schema.d.ts +58 -0
  130. package/dist/schemas/config.schema.d.ts.map +1 -0
  131. package/dist/schemas/config.schema.js +23 -0
  132. package/dist/schemas/config.schema.js.map +1 -0
  133. package/dist/schemas/index.d.ts +7 -0
  134. package/dist/schemas/index.d.ts.map +1 -0
  135. package/dist/schemas/index.js +9 -0
  136. package/dist/schemas/index.js.map +1 -0
  137. package/dist/schemas/policy.schema.d.ts +192 -0
  138. package/dist/schemas/policy.schema.d.ts.map +1 -0
  139. package/dist/schemas/policy.schema.js +157 -0
  140. package/dist/schemas/policy.schema.js.map +1 -0
  141. package/dist/schemas/session.schema.d.ts +51 -0
  142. package/dist/schemas/session.schema.d.ts.map +1 -0
  143. package/dist/schemas/session.schema.js +19 -0
  144. package/dist/schemas/session.schema.js.map +1 -0
  145. package/dist/schemas/transaction.schema.d.ts +834 -0
  146. package/dist/schemas/transaction.schema.d.ts.map +1 -0
  147. package/dist/schemas/transaction.schema.js +112 -0
  148. package/dist/schemas/transaction.schema.js.map +1 -0
  149. package/dist/schemas/wallet.schema.d.ts +54 -0
  150. package/dist/schemas/wallet.schema.d.ts.map +1 -0
  151. package/dist/schemas/wallet.schema.js +21 -0
  152. package/dist/schemas/wallet.schema.js.map +1 -0
  153. package/dist/testing/chain-adapter-contract.d.ts +42 -0
  154. package/dist/testing/chain-adapter-contract.d.ts.map +1 -0
  155. package/dist/testing/chain-adapter-contract.js +370 -0
  156. package/dist/testing/chain-adapter-contract.js.map +1 -0
  157. package/dist/testing/index.d.ts +8 -0
  158. package/dist/testing/index.d.ts.map +1 -0
  159. package/dist/testing/index.js +7 -0
  160. package/dist/testing/index.js.map +1 -0
  161. package/dist/utils/format-amount.d.ts +41 -0
  162. package/dist/utils/format-amount.d.ts.map +1 -0
  163. package/dist/utils/format-amount.js +60 -0
  164. package/dist/utils/format-amount.js.map +1 -0
  165. package/dist/utils/format-currency.d.ts +42 -0
  166. package/dist/utils/format-currency.d.ts.map +1 -0
  167. package/dist/utils/format-currency.js +92 -0
  168. package/dist/utils/format-currency.js.map +1 -0
  169. package/dist/utils/index.d.ts +3 -0
  170. package/dist/utils/index.d.ts.map +1 -0
  171. package/dist/utils/index.js +5 -0
  172. package/dist/utils/index.js.map +1 -0
  173. package/package.json +50 -0
@@ -0,0 +1,112 @@
1
+ import { z } from 'zod';
2
+ import type { ChainType, NetworkType } from '../enums/chain.js';
3
+ import { PaymentRequiredV2Schema, PaymentPayloadV2Schema, PaymentRequirementsV2Schema } from '@x402/core/schemas';
4
+ import type { PaymentRequired, PaymentPayload, PaymentRequirements } from '@x402/core/types';
5
+ export declare const CAIP2_TO_NETWORK: Record<string, {
6
+ chain: ChainType;
7
+ network: NetworkType;
8
+ }>;
9
+ export declare const NETWORK_TO_CAIP2: Record<NetworkType, string>;
10
+ /**
11
+ * Parse a CAIP-2 identifier into namespace and reference.
12
+ * @example parseCaip2('eip155:1') => { namespace: 'eip155', reference: '1' }
13
+ */
14
+ export declare function parseCaip2(caip2Network: string): {
15
+ namespace: string;
16
+ reference: string;
17
+ };
18
+ /**
19
+ * Resolve a CAIP-2 network identifier to WAIaaS chain+network.
20
+ * Throws if the CAIP-2 identifier is not supported.
21
+ */
22
+ export declare function resolveX402Network(caip2: string): {
23
+ chain: ChainType;
24
+ network: NetworkType;
25
+ };
26
+ export declare const X402FetchRequestSchema: z.ZodObject<{
27
+ url: z.ZodString;
28
+ method: z.ZodDefault<z.ZodEnum<["GET", "POST", "PUT", "DELETE", "PATCH"]>>;
29
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
30
+ body: z.ZodOptional<z.ZodString>;
31
+ }, "strip", z.ZodTypeAny, {
32
+ url: string;
33
+ method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
34
+ headers?: Record<string, string> | undefined;
35
+ body?: string | undefined;
36
+ }, {
37
+ url: string;
38
+ method?: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | undefined;
39
+ headers?: Record<string, string> | undefined;
40
+ body?: string | undefined;
41
+ }>;
42
+ export type X402FetchRequest = z.infer<typeof X402FetchRequestSchema>;
43
+ export declare const X402PaymentInfoSchema: z.ZodObject<{
44
+ amount: z.ZodString;
45
+ asset: z.ZodString;
46
+ network: z.ZodString;
47
+ payTo: z.ZodString;
48
+ txId: z.ZodString;
49
+ }, "strip", z.ZodTypeAny, {
50
+ network: string;
51
+ amount: string;
52
+ asset: string;
53
+ payTo: string;
54
+ txId: string;
55
+ }, {
56
+ network: string;
57
+ amount: string;
58
+ asset: string;
59
+ payTo: string;
60
+ txId: string;
61
+ }>;
62
+ export type X402PaymentInfo = z.infer<typeof X402PaymentInfoSchema>;
63
+ export declare const X402FetchResponseSchema: z.ZodObject<{
64
+ status: z.ZodNumber;
65
+ headers: z.ZodRecord<z.ZodString, z.ZodString>;
66
+ body: z.ZodString;
67
+ payment: z.ZodOptional<z.ZodObject<{
68
+ amount: z.ZodString;
69
+ asset: z.ZodString;
70
+ network: z.ZodString;
71
+ payTo: z.ZodString;
72
+ txId: z.ZodString;
73
+ }, "strip", z.ZodTypeAny, {
74
+ network: string;
75
+ amount: string;
76
+ asset: string;
77
+ payTo: string;
78
+ txId: string;
79
+ }, {
80
+ network: string;
81
+ amount: string;
82
+ asset: string;
83
+ payTo: string;
84
+ txId: string;
85
+ }>>;
86
+ }, "strip", z.ZodTypeAny, {
87
+ status: number;
88
+ headers: Record<string, string>;
89
+ body: string;
90
+ payment?: {
91
+ network: string;
92
+ amount: string;
93
+ asset: string;
94
+ payTo: string;
95
+ txId: string;
96
+ } | undefined;
97
+ }, {
98
+ status: number;
99
+ headers: Record<string, string>;
100
+ body: string;
101
+ payment?: {
102
+ network: string;
103
+ amount: string;
104
+ asset: string;
105
+ payTo: string;
106
+ txId: string;
107
+ } | undefined;
108
+ }>;
109
+ export type X402FetchResponse = z.infer<typeof X402FetchResponseSchema>;
110
+ export { PaymentRequiredV2Schema, PaymentPayloadV2Schema, PaymentRequirementsV2Schema };
111
+ export type { PaymentRequired, PaymentPayload, PaymentRequirements };
112
+ //# sourceMappingURL=x402.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x402.types.d.ts","sourceRoot":"","sources":["../../src/interfaces/x402.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhE,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC5B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAI1B,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAgBvF,CAAC;AAGF,eAAO,MAAM,gBAAgB,EAExB,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAEjC;;;GAGG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAOzF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAI5F;AAID,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;EAKjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;EAMhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAGxE,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,CAAC;AACxF,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { z } from 'zod';
2
+ // @x402/core Zod schemas (v2)
3
+ import { PaymentRequiredV2Schema, PaymentPayloadV2Schema, PaymentRequirementsV2Schema, } from '@x402/core/schemas';
4
+ // ── CAIP-2 <-> WAIaaS NetworkType Mapping ────────────────────
5
+ export const CAIP2_TO_NETWORK = {
6
+ // EVM
7
+ 'eip155:1': { chain: 'ethereum', network: 'ethereum-mainnet' },
8
+ 'eip155:11155111': { chain: 'ethereum', network: 'ethereum-sepolia' },
9
+ 'eip155:137': { chain: 'ethereum', network: 'polygon-mainnet' },
10
+ 'eip155:80002': { chain: 'ethereum', network: 'polygon-amoy' },
11
+ 'eip155:42161': { chain: 'ethereum', network: 'arbitrum-mainnet' },
12
+ 'eip155:421614': { chain: 'ethereum', network: 'arbitrum-sepolia' },
13
+ 'eip155:10': { chain: 'ethereum', network: 'optimism-mainnet' },
14
+ 'eip155:11155420': { chain: 'ethereum', network: 'optimism-sepolia' },
15
+ 'eip155:8453': { chain: 'ethereum', network: 'base-mainnet' },
16
+ 'eip155:84532': { chain: 'ethereum', network: 'base-sepolia' },
17
+ // Solana
18
+ 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp': { chain: 'solana', network: 'mainnet' },
19
+ 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1': { chain: 'solana', network: 'devnet' },
20
+ 'solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z': { chain: 'solana', network: 'testnet' },
21
+ };
22
+ // Reverse mapping (WAIaaS NetworkType -> CAIP-2)
23
+ export const NETWORK_TO_CAIP2 = Object.fromEntries(Object.entries(CAIP2_TO_NETWORK).map(([caip2, { network }]) => [network, caip2]));
24
+ /**
25
+ * Parse a CAIP-2 identifier into namespace and reference.
26
+ * @example parseCaip2('eip155:1') => { namespace: 'eip155', reference: '1' }
27
+ */
28
+ export function parseCaip2(caip2Network) {
29
+ const colonIndex = caip2Network.indexOf(':');
30
+ if (colonIndex === -1)
31
+ throw new Error(`Invalid CAIP-2 identifier: ${caip2Network}`);
32
+ return {
33
+ namespace: caip2Network.slice(0, colonIndex),
34
+ reference: caip2Network.slice(colonIndex + 1),
35
+ };
36
+ }
37
+ /**
38
+ * Resolve a CAIP-2 network identifier to WAIaaS chain+network.
39
+ * Throws if the CAIP-2 identifier is not supported.
40
+ */
41
+ export function resolveX402Network(caip2) {
42
+ const resolved = CAIP2_TO_NETWORK[caip2];
43
+ if (!resolved)
44
+ throw new Error(`Unsupported x402 network: ${caip2}`);
45
+ return resolved;
46
+ }
47
+ // ── WAIaaS X402 Request/Response Schemas (Zod SSoT) ──────────
48
+ export const X402FetchRequestSchema = z.object({
49
+ url: z.string().url(),
50
+ method: z.enum(['GET', 'POST', 'PUT', 'DELETE', 'PATCH']).default('GET'),
51
+ headers: z.record(z.string()).optional(),
52
+ body: z.string().optional(),
53
+ });
54
+ export const X402PaymentInfoSchema = z.object({
55
+ amount: z.string(),
56
+ asset: z.string(),
57
+ network: z.string(),
58
+ payTo: z.string(),
59
+ txId: z.string(),
60
+ });
61
+ export const X402FetchResponseSchema = z.object({
62
+ status: z.number().int(),
63
+ headers: z.record(z.string()),
64
+ body: z.string(),
65
+ payment: X402PaymentInfoSchema.optional(),
66
+ });
67
+ // @x402/core re-exports
68
+ export { PaymentRequiredV2Schema, PaymentPayloadV2Schema, PaymentRequirementsV2Schema };
69
+ //# sourceMappingURL=x402.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x402.types.js","sourceRoot":"","sources":["../../src/interfaces/x402.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * AssetInfo Zod schema for JSON serialization.
4
+ * Note: balance is string (bigint serialized) for JSON transport.
5
+ */
6
+ export declare const AssetInfoSchema: z.ZodObject<{
7
+ mint: z.ZodString;
8
+ symbol: z.ZodString;
9
+ name: z.ZodString;
10
+ balance: z.ZodString;
11
+ decimals: z.ZodNumber;
12
+ isNative: z.ZodBoolean;
13
+ usdValue: z.ZodOptional<z.ZodNumber>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ symbol: string;
16
+ name: string;
17
+ decimals: number;
18
+ mint: string;
19
+ balance: string;
20
+ isNative: boolean;
21
+ usdValue?: number | undefined;
22
+ }, {
23
+ symbol: string;
24
+ name: string;
25
+ decimals: number;
26
+ mint: string;
27
+ balance: string;
28
+ isNative: boolean;
29
+ usdValue?: number | undefined;
30
+ }>;
31
+ export type AssetInfoDto = z.infer<typeof AssetInfoSchema>;
32
+ //# sourceMappingURL=asset.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/asset.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;EAQ1B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * AssetInfo Zod schema for JSON serialization.
4
+ * Note: balance is string (bigint serialized) for JSON transport.
5
+ */
6
+ export const AssetInfoSchema = z.object({
7
+ mint: z.string(),
8
+ symbol: z.string(),
9
+ name: z.string(),
10
+ balance: z.string(), // bigint as string for JSON
11
+ decimals: z.number().int(),
12
+ isNative: z.boolean(),
13
+ usdValue: z.number().optional(),
14
+ });
15
+ //# sourceMappingURL=asset.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset.schema.js","sourceRoot":"","sources":["../../src/schemas/asset.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,4BAA4B;IACjD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC1B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { z } from 'zod';
2
+ export declare const ConfigSchema: z.ZodObject<{
3
+ server_port: z.ZodDefault<z.ZodNumber>;
4
+ server_host: z.ZodDefault<z.ZodString>;
5
+ data_dir: z.ZodDefault<z.ZodString>;
6
+ log_level: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error"]>>;
7
+ session_default_ttl: z.ZodDefault<z.ZodNumber>;
8
+ session_max_ttl: z.ZodDefault<z.ZodNumber>;
9
+ session_max_renewals: z.ZodDefault<z.ZodNumber>;
10
+ session_absolute_lifetime: z.ZodDefault<z.ZodNumber>;
11
+ security_master_password_max_attempts: z.ZodDefault<z.ZodNumber>;
12
+ security_master_password_lockout_duration: z.ZodDefault<z.ZodNumber>;
13
+ security_auto_stop_enabled: z.ZodDefault<z.ZodBoolean>;
14
+ rpc_solana_mainnet: z.ZodDefault<z.ZodString>;
15
+ rpc_solana_devnet: z.ZodDefault<z.ZodString>;
16
+ rpc_solana_testnet: z.ZodDefault<z.ZodString>;
17
+ policy_default_tier: z.ZodDefault<z.ZodEnum<["INSTANT", "NOTIFY", "DELAY", "APPROVAL"]>>;
18
+ notification_channels: z.ZodDefault<z.ZodArray<z.ZodEnum<["TELEGRAM", "DISCORD", "NTFY"]>, "many">>;
19
+ kill_switch_recovery_timeout: z.ZodDefault<z.ZodNumber>;
20
+ }, "strip", z.ZodTypeAny, {
21
+ server_port: number;
22
+ server_host: string;
23
+ data_dir: string;
24
+ log_level: "debug" | "info" | "warn" | "error";
25
+ session_default_ttl: number;
26
+ session_max_ttl: number;
27
+ session_max_renewals: number;
28
+ session_absolute_lifetime: number;
29
+ security_master_password_max_attempts: number;
30
+ security_master_password_lockout_duration: number;
31
+ security_auto_stop_enabled: boolean;
32
+ rpc_solana_mainnet: string;
33
+ rpc_solana_devnet: string;
34
+ rpc_solana_testnet: string;
35
+ policy_default_tier: "INSTANT" | "NOTIFY" | "DELAY" | "APPROVAL";
36
+ notification_channels: ("TELEGRAM" | "DISCORD" | "NTFY")[];
37
+ kill_switch_recovery_timeout: number;
38
+ }, {
39
+ server_port?: number | undefined;
40
+ server_host?: string | undefined;
41
+ data_dir?: string | undefined;
42
+ log_level?: "debug" | "info" | "warn" | "error" | undefined;
43
+ session_default_ttl?: number | undefined;
44
+ session_max_ttl?: number | undefined;
45
+ session_max_renewals?: number | undefined;
46
+ session_absolute_lifetime?: number | undefined;
47
+ security_master_password_max_attempts?: number | undefined;
48
+ security_master_password_lockout_duration?: number | undefined;
49
+ security_auto_stop_enabled?: boolean | undefined;
50
+ rpc_solana_mainnet?: string | undefined;
51
+ rpc_solana_devnet?: string | undefined;
52
+ rpc_solana_testnet?: string | undefined;
53
+ policy_default_tier?: "INSTANT" | "NOTIFY" | "DELAY" | "APPROVAL" | undefined;
54
+ notification_channels?: ("TELEGRAM" | "DISCORD" | "NTFY")[] | undefined;
55
+ kill_switch_recovery_timeout?: number | undefined;
56
+ }>;
57
+ export type Config = z.infer<typeof ConfigSchema>;
58
+ //# sourceMappingURL=config.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBvB,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+ import { PolicyTierEnum } from '../enums/policy.js';
3
+ // 17 flattened config keys (24-monorepo-data-directory section 3)
4
+ export const ConfigSchema = z.object({
5
+ server_port: z.number().int().min(1).max(65535).default(3100),
6
+ server_host: z.string().default('127.0.0.1'),
7
+ data_dir: z.string().default('~/.waiaas'),
8
+ log_level: z.enum(['debug', 'info', 'warn', 'error']).default('info'),
9
+ session_default_ttl: z.number().int().min(60).default(3600),
10
+ session_max_ttl: z.number().int().min(300).default(86400),
11
+ session_max_renewals: z.number().int().min(0).default(24),
12
+ session_absolute_lifetime: z.number().int().min(3600).default(604800),
13
+ security_master_password_max_attempts: z.number().int().min(1).default(5),
14
+ security_master_password_lockout_duration: z.number().int().min(60).default(1800),
15
+ security_auto_stop_enabled: z.boolean().default(true),
16
+ rpc_solana_mainnet: z.string().url().default('https://api.mainnet-beta.solana.com'),
17
+ rpc_solana_devnet: z.string().url().default('https://api.devnet.solana.com'),
18
+ rpc_solana_testnet: z.string().url().default('https://api.testnet.solana.com'),
19
+ policy_default_tier: PolicyTierEnum.default('INSTANT'),
20
+ notification_channels: z.array(z.enum(['TELEGRAM', 'DISCORD', 'NTFY'])).default([]),
21
+ kill_switch_recovery_timeout: z.number().int().min(60).default(86400),
22
+ });
23
+ //# sourceMappingURL=config.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../src/schemas/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,kEAAkE;AAClE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IACzC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACrE,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3D,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACzD,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACzD,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACrE,qCAAqC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACzE,yCAAyC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACjF,0BAA0B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACrD,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC;IACnF,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC;IAC5E,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC;IAC9E,mBAAmB,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;IACtD,qBAAqB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACnF,4BAA4B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;CACtE,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { WalletSchema, type Wallet, CreateWalletRequestSchema, type CreateWalletRequest } from './wallet.schema.js';
2
+ export { SessionSchema, type Session, CreateSessionRequestSchema, type CreateSessionRequest } from './session.schema.js';
3
+ export { TransactionSchema, type Transaction, SendTransactionRequestSchema, type SendTransactionRequest, TransactionRequestSchema, type TransactionRequest, TransferRequestSchema, type TransferRequestInput, TokenTransferRequestSchema, type TokenTransferRequest, ContractCallRequestSchema, type ContractCallRequest, ApproveRequestSchema, type ApproveRequest, BatchRequestSchema, type BatchRequest, } from './transaction.schema.js';
4
+ export { PolicySchema, type Policy, CreatePolicyRequestSchema, type CreatePolicyRequest, UpdatePolicyRequestSchema, type UpdatePolicyRequest, SpendingLimitRulesSchema, type SpendingLimitRules, WhitelistRulesSchema, type WhitelistRules, RateLimitRulesSchema, type RateLimitRules, TimeRestrictionRulesSchema, type TimeRestrictionRules, X402AllowedDomainsRulesSchema, type X402AllowedDomainsRules, } from './policy.schema.js';
5
+ export { ConfigSchema, type Config } from './config.schema.js';
6
+ export { AssetInfoSchema, type AssetInfoDto } from './asset.schema.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,MAAM,EAAE,yBAAyB,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACpH,OAAO,EAAE,aAAa,EAAE,KAAK,OAAO,EAAE,0BAA0B,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACzH,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,EAChB,4BAA4B,EAC5B,KAAK,sBAAsB,EAE3B,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,0BAA0B,EAC1B,KAAK,oBAAoB,EACzB,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,oBAAoB,EACpB,KAAK,cAAc,EACnB,kBAAkB,EAClB,KAAK,YAAY,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,YAAY,EACZ,KAAK,MAAM,EACX,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,oBAAoB,EACpB,KAAK,cAAc,EACnB,oBAAoB,EACpB,KAAK,cAAc,EACnB,0BAA0B,EAC1B,KAAK,oBAAoB,EACzB,6BAA6B,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { WalletSchema, CreateWalletRequestSchema } from './wallet.schema.js';
2
+ export { SessionSchema, CreateSessionRequestSchema } from './session.schema.js';
3
+ export { TransactionSchema, SendTransactionRequestSchema,
4
+ // v1.4 discriminatedUnion 5-type transaction request schemas
5
+ TransactionRequestSchema, TransferRequestSchema, TokenTransferRequestSchema, ContractCallRequestSchema, ApproveRequestSchema, BatchRequestSchema, } from './transaction.schema.js';
6
+ export { PolicySchema, CreatePolicyRequestSchema, UpdatePolicyRequestSchema, SpendingLimitRulesSchema, WhitelistRulesSchema, RateLimitRulesSchema, TimeRestrictionRulesSchema, X402AllowedDomainsRulesSchema, } from './policy.schema.js';
7
+ export { ConfigSchema } from './config.schema.js';
8
+ export { AssetInfoSchema } from './asset.schema.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAe,yBAAyB,EAA4B,MAAM,oBAAoB,CAAC;AACpH,OAAO,EAAE,aAAa,EAAgB,0BAA0B,EAA6B,MAAM,qBAAqB,CAAC;AACzH,OAAO,EACL,iBAAiB,EAEjB,4BAA4B;AAE5B,6DAA6D;AAC7D,wBAAwB,EAExB,qBAAqB,EAErB,0BAA0B,EAE1B,yBAAyB,EAEzB,oBAAoB,EAEpB,kBAAkB,GAEnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,YAAY,EAEZ,yBAAyB,EAEzB,yBAAyB,EAEzB,wBAAwB,EAExB,oBAAoB,EAEpB,oBAAoB,EAEpB,0BAA0B,EAE1B,6BAA6B,GAE9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAe,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAqB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,192 @@
1
+ import { z } from 'zod';
2
+ export declare const PolicySchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ walletId: z.ZodString;
5
+ type: z.ZodEnum<["SPENDING_LIMIT", "WHITELIST", "TIME_RESTRICTION", "RATE_LIMIT", "ALLOWED_TOKENS", "CONTRACT_WHITELIST", "METHOD_WHITELIST", "APPROVED_SPENDERS", "APPROVE_AMOUNT_LIMIT", "APPROVE_TIER_OVERRIDE", "ALLOWED_NETWORKS", "X402_ALLOWED_DOMAINS"]>;
6
+ ruleConfig: z.ZodRecord<z.ZodString, z.ZodUnknown>;
7
+ enabled: z.ZodBoolean;
8
+ network: z.ZodNullable<z.ZodEnum<["mainnet", "devnet", "testnet", "ethereum-mainnet", "ethereum-sepolia", "polygon-mainnet", "polygon-amoy", "arbitrum-mainnet", "arbitrum-sepolia", "optimism-mainnet", "optimism-sepolia", "base-mainnet", "base-sepolia"]>>;
9
+ createdAt: z.ZodNumber;
10
+ updatedAt: z.ZodNumber;
11
+ }, "strip", z.ZodTypeAny, {
12
+ id: string;
13
+ createdAt: number;
14
+ updatedAt: number;
15
+ type: "SPENDING_LIMIT" | "WHITELIST" | "TIME_RESTRICTION" | "RATE_LIMIT" | "ALLOWED_TOKENS" | "CONTRACT_WHITELIST" | "METHOD_WHITELIST" | "APPROVED_SPENDERS" | "APPROVE_AMOUNT_LIMIT" | "APPROVE_TIER_OVERRIDE" | "ALLOWED_NETWORKS" | "X402_ALLOWED_DOMAINS";
16
+ walletId: string;
17
+ network: "mainnet" | "devnet" | "testnet" | "ethereum-mainnet" | "ethereum-sepolia" | "polygon-mainnet" | "polygon-amoy" | "arbitrum-mainnet" | "arbitrum-sepolia" | "optimism-mainnet" | "optimism-sepolia" | "base-mainnet" | "base-sepolia" | null;
18
+ ruleConfig: Record<string, unknown>;
19
+ enabled: boolean;
20
+ }, {
21
+ id: string;
22
+ createdAt: number;
23
+ updatedAt: number;
24
+ type: "SPENDING_LIMIT" | "WHITELIST" | "TIME_RESTRICTION" | "RATE_LIMIT" | "ALLOWED_TOKENS" | "CONTRACT_WHITELIST" | "METHOD_WHITELIST" | "APPROVED_SPENDERS" | "APPROVE_AMOUNT_LIMIT" | "APPROVE_TIER_OVERRIDE" | "ALLOWED_NETWORKS" | "X402_ALLOWED_DOMAINS";
25
+ walletId: string;
26
+ network: "mainnet" | "devnet" | "testnet" | "ethereum-mainnet" | "ethereum-sepolia" | "polygon-mainnet" | "polygon-amoy" | "arbitrum-mainnet" | "arbitrum-sepolia" | "optimism-mainnet" | "optimism-sepolia" | "base-mainnet" | "base-sepolia" | null;
27
+ ruleConfig: Record<string, unknown>;
28
+ enabled: boolean;
29
+ }>;
30
+ export type Policy = z.infer<typeof PolicySchema>;
31
+ /** SPENDING_LIMIT: 금액 기반 4-티어 보안 분류. */
32
+ export declare const SpendingLimitRulesSchema: z.ZodObject<{
33
+ /** INSTANT 티어 최대 금액 (lamports/wei 문자열) */
34
+ instant_max: z.ZodString;
35
+ /** NOTIFY 티어 최대 금액 */
36
+ notify_max: z.ZodString;
37
+ /** DELAY 티어 최대 금액 */
38
+ delay_max: z.ZodString;
39
+ /** INSTANT 티어 최대 USD 금액 (optional, 미설정 시 네이티브만 사용) */
40
+ instant_max_usd: z.ZodOptional<z.ZodNumber>;
41
+ /** NOTIFY 티어 최대 USD 금액 */
42
+ notify_max_usd: z.ZodOptional<z.ZodNumber>;
43
+ /** DELAY 티어 최대 USD 금액 */
44
+ delay_max_usd: z.ZodOptional<z.ZodNumber>;
45
+ /** DELAY 티어 쿨다운 시간 (초) */
46
+ delay_seconds: z.ZodDefault<z.ZodNumber>;
47
+ /** 24시간 롤링 윈도우 내 누적 USD 지출 상한 (optional, 미설정 시 누적 한도 없음) */
48
+ daily_limit_usd: z.ZodOptional<z.ZodNumber>;
49
+ /** 30일 롤링 윈도우 내 누적 USD 지출 상한 */
50
+ monthly_limit_usd: z.ZodOptional<z.ZodNumber>;
51
+ }, "strip", z.ZodTypeAny, {
52
+ instant_max: string;
53
+ notify_max: string;
54
+ delay_max: string;
55
+ delay_seconds: number;
56
+ instant_max_usd?: number | undefined;
57
+ notify_max_usd?: number | undefined;
58
+ delay_max_usd?: number | undefined;
59
+ daily_limit_usd?: number | undefined;
60
+ monthly_limit_usd?: number | undefined;
61
+ }, {
62
+ instant_max: string;
63
+ notify_max: string;
64
+ delay_max: string;
65
+ instant_max_usd?: number | undefined;
66
+ notify_max_usd?: number | undefined;
67
+ delay_max_usd?: number | undefined;
68
+ delay_seconds?: number | undefined;
69
+ daily_limit_usd?: number | undefined;
70
+ monthly_limit_usd?: number | undefined;
71
+ }>;
72
+ export type SpendingLimitRules = z.infer<typeof SpendingLimitRulesSchema>;
73
+ /** WHITELIST: rules.allowed_addresses array (permitted destination addresses). */
74
+ export declare const WhitelistRulesSchema: z.ZodObject<{
75
+ allowed_addresses: z.ZodArray<z.ZodString, "many">;
76
+ }, "strip", z.ZodTypeAny, {
77
+ allowed_addresses: string[];
78
+ }, {
79
+ allowed_addresses: string[];
80
+ }>;
81
+ export type WhitelistRules = z.infer<typeof WhitelistRulesSchema>;
82
+ /** RATE_LIMIT: rules.max_requests + window_seconds. */
83
+ export declare const RateLimitRulesSchema: z.ZodObject<{
84
+ max_requests: z.ZodNumber;
85
+ window_seconds: z.ZodNumber;
86
+ }, "strip", z.ZodTypeAny, {
87
+ max_requests: number;
88
+ window_seconds: number;
89
+ }, {
90
+ max_requests: number;
91
+ window_seconds: number;
92
+ }>;
93
+ export type RateLimitRules = z.infer<typeof RateLimitRulesSchema>;
94
+ /** TIME_RESTRICTION: rules.allowed_hours + allowed_days. */
95
+ export declare const TimeRestrictionRulesSchema: z.ZodObject<{
96
+ allowed_hours: z.ZodObject<{
97
+ start: z.ZodNumber;
98
+ end: z.ZodNumber;
99
+ }, "strip", z.ZodTypeAny, {
100
+ start: number;
101
+ end: number;
102
+ }, {
103
+ start: number;
104
+ end: number;
105
+ }>;
106
+ allowed_days: z.ZodArray<z.ZodNumber, "many">;
107
+ }, "strip", z.ZodTypeAny, {
108
+ allowed_hours: {
109
+ start: number;
110
+ end: number;
111
+ };
112
+ allowed_days: number[];
113
+ }, {
114
+ allowed_hours: {
115
+ start: number;
116
+ end: number;
117
+ };
118
+ allowed_days: number[];
119
+ }>;
120
+ export type TimeRestrictionRules = z.infer<typeof TimeRestrictionRulesSchema>;
121
+ /** X402_ALLOWED_DOMAINS: rules.domains array (permitted x402 payment domains). */
122
+ export declare const X402AllowedDomainsRulesSchema: z.ZodObject<{
123
+ domains: z.ZodArray<z.ZodString, "many">;
124
+ }, "strip", z.ZodTypeAny, {
125
+ domains: string[];
126
+ }, {
127
+ domains: string[];
128
+ }>;
129
+ export type X402AllowedDomainsRules = z.infer<typeof X402AllowedDomainsRulesSchema>;
130
+ /**
131
+ * CreatePolicyRequestSchema - body for POST /v1/policies.
132
+ *
133
+ * walletId is optional (null = global policy).
134
+ * rules is validated per-type via superRefine for all 12 PolicyTypes.
135
+ */
136
+ export declare const CreatePolicyRequestSchema: z.ZodEffects<z.ZodObject<{
137
+ walletId: z.ZodOptional<z.ZodString>;
138
+ type: z.ZodEnum<["SPENDING_LIMIT", "WHITELIST", "TIME_RESTRICTION", "RATE_LIMIT", "ALLOWED_TOKENS", "CONTRACT_WHITELIST", "METHOD_WHITELIST", "APPROVED_SPENDERS", "APPROVE_AMOUNT_LIMIT", "APPROVE_TIER_OVERRIDE", "ALLOWED_NETWORKS", "X402_ALLOWED_DOMAINS"]>;
139
+ rules: z.ZodRecord<z.ZodString, z.ZodUnknown>;
140
+ priority: z.ZodDefault<z.ZodNumber>;
141
+ enabled: z.ZodDefault<z.ZodBoolean>;
142
+ network: z.ZodOptional<z.ZodEnum<["mainnet", "devnet", "testnet", "ethereum-mainnet", "ethereum-sepolia", "polygon-mainnet", "polygon-amoy", "arbitrum-mainnet", "arbitrum-sepolia", "optimism-mainnet", "optimism-sepolia", "base-mainnet", "base-sepolia"]>>;
143
+ }, "strip", z.ZodTypeAny, {
144
+ type: "SPENDING_LIMIT" | "WHITELIST" | "TIME_RESTRICTION" | "RATE_LIMIT" | "ALLOWED_TOKENS" | "CONTRACT_WHITELIST" | "METHOD_WHITELIST" | "APPROVED_SPENDERS" | "APPROVE_AMOUNT_LIMIT" | "APPROVE_TIER_OVERRIDE" | "ALLOWED_NETWORKS" | "X402_ALLOWED_DOMAINS";
145
+ enabled: boolean;
146
+ rules: Record<string, unknown>;
147
+ priority: number;
148
+ walletId?: string | undefined;
149
+ network?: "mainnet" | "devnet" | "testnet" | "ethereum-mainnet" | "ethereum-sepolia" | "polygon-mainnet" | "polygon-amoy" | "arbitrum-mainnet" | "arbitrum-sepolia" | "optimism-mainnet" | "optimism-sepolia" | "base-mainnet" | "base-sepolia" | undefined;
150
+ }, {
151
+ type: "SPENDING_LIMIT" | "WHITELIST" | "TIME_RESTRICTION" | "RATE_LIMIT" | "ALLOWED_TOKENS" | "CONTRACT_WHITELIST" | "METHOD_WHITELIST" | "APPROVED_SPENDERS" | "APPROVE_AMOUNT_LIMIT" | "APPROVE_TIER_OVERRIDE" | "ALLOWED_NETWORKS" | "X402_ALLOWED_DOMAINS";
152
+ rules: Record<string, unknown>;
153
+ walletId?: string | undefined;
154
+ network?: "mainnet" | "devnet" | "testnet" | "ethereum-mainnet" | "ethereum-sepolia" | "polygon-mainnet" | "polygon-amoy" | "arbitrum-mainnet" | "arbitrum-sepolia" | "optimism-mainnet" | "optimism-sepolia" | "base-mainnet" | "base-sepolia" | undefined;
155
+ enabled?: boolean | undefined;
156
+ priority?: number | undefined;
157
+ }>, {
158
+ type: "SPENDING_LIMIT" | "WHITELIST" | "TIME_RESTRICTION" | "RATE_LIMIT" | "ALLOWED_TOKENS" | "CONTRACT_WHITELIST" | "METHOD_WHITELIST" | "APPROVED_SPENDERS" | "APPROVE_AMOUNT_LIMIT" | "APPROVE_TIER_OVERRIDE" | "ALLOWED_NETWORKS" | "X402_ALLOWED_DOMAINS";
159
+ enabled: boolean;
160
+ rules: Record<string, unknown>;
161
+ priority: number;
162
+ walletId?: string | undefined;
163
+ network?: "mainnet" | "devnet" | "testnet" | "ethereum-mainnet" | "ethereum-sepolia" | "polygon-mainnet" | "polygon-amoy" | "arbitrum-mainnet" | "arbitrum-sepolia" | "optimism-mainnet" | "optimism-sepolia" | "base-mainnet" | "base-sepolia" | undefined;
164
+ }, {
165
+ type: "SPENDING_LIMIT" | "WHITELIST" | "TIME_RESTRICTION" | "RATE_LIMIT" | "ALLOWED_TOKENS" | "CONTRACT_WHITELIST" | "METHOD_WHITELIST" | "APPROVED_SPENDERS" | "APPROVE_AMOUNT_LIMIT" | "APPROVE_TIER_OVERRIDE" | "ALLOWED_NETWORKS" | "X402_ALLOWED_DOMAINS";
166
+ rules: Record<string, unknown>;
167
+ walletId?: string | undefined;
168
+ network?: "mainnet" | "devnet" | "testnet" | "ethereum-mainnet" | "ethereum-sepolia" | "polygon-mainnet" | "polygon-amoy" | "arbitrum-mainnet" | "arbitrum-sepolia" | "optimism-mainnet" | "optimism-sepolia" | "base-mainnet" | "base-sepolia" | undefined;
169
+ enabled?: boolean | undefined;
170
+ priority?: number | undefined;
171
+ }>;
172
+ export type CreatePolicyRequest = z.infer<typeof CreatePolicyRequestSchema>;
173
+ /**
174
+ * UpdatePolicyRequestSchema - body for PUT /v1/policies/:id.
175
+ *
176
+ * All fields optional (partial update).
177
+ */
178
+ export declare const UpdatePolicyRequestSchema: z.ZodObject<{
179
+ rules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
180
+ priority: z.ZodOptional<z.ZodNumber>;
181
+ enabled: z.ZodOptional<z.ZodBoolean>;
182
+ }, "strip", z.ZodTypeAny, {
183
+ enabled?: boolean | undefined;
184
+ rules?: Record<string, unknown> | undefined;
185
+ priority?: number | undefined;
186
+ }, {
187
+ enabled?: boolean | undefined;
188
+ rules?: Record<string, unknown> | undefined;
189
+ priority?: number | undefined;
190
+ }>;
191
+ export type UpdatePolicyRequest = z.infer<typeof UpdatePolicyRequestSchema>;
192
+ //# sourceMappingURL=policy.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/policy.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;EASvB,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAqDlD,wCAAwC;AACxC,eAAO,MAAM,wBAAwB;IACnC,0CAA0C;;IAE1C,sBAAsB;;IAEtB,qBAAqB;;IAErB,sDAAsD;;IAEtD,0BAA0B;;IAE1B,yBAAyB;;IAEzB,0BAA0B;;IAE1B,4DAA4D;;IAE5D,gCAAgC;;;;;;;;;;;;;;;;;;;;;;EAEhC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAU1E,kFAAkF;AAClF,eAAO,MAAM,oBAAoB;;;;;;EAE/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,uDAAuD;AACvD,eAAO,MAAM,oBAAoB;;;;;;;;;EAG/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,4DAA4D;AAC5D,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;EAMrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,kFAAkF;AAClF,eAAO,MAAM,6BAA6B;;;;;;EAExC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAmBpF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;EAIpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}