@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.
- package/dist/enums/audit.d.ts +5 -0
- package/dist/enums/audit.d.ts.map +1 -0
- package/dist/enums/audit.js +31 -0
- package/dist/enums/audit.js.map +1 -0
- package/dist/enums/chain.d.ts +50 -0
- package/dist/enums/chain.d.ts.map +1 -0
- package/dist/enums/chain.js +123 -0
- package/dist/enums/chain.js.map +1 -0
- package/dist/enums/index.d.ts +10 -0
- package/dist/enums/index.d.ts.map +1 -0
- package/dist/enums/index.js +10 -0
- package/dist/enums/index.js.map +1 -0
- package/dist/enums/notification.d.ts +8 -0
- package/dist/enums/notification.d.ts.map +1 -0
- package/dist/enums/notification.js +34 -0
- package/dist/enums/notification.js.map +1 -0
- package/dist/enums/owner.d.ts +5 -0
- package/dist/enums/owner.d.ts.map +1 -0
- package/dist/enums/owner.js +5 -0
- package/dist/enums/owner.js.map +1 -0
- package/dist/enums/policy.d.ts +8 -0
- package/dist/enums/policy.d.ts.map +1 -0
- package/dist/enums/policy.js +19 -0
- package/dist/enums/policy.js.map +1 -0
- package/dist/enums/session.d.ts +5 -0
- package/dist/enums/session.d.ts.map +1 -0
- package/dist/enums/session.js +5 -0
- package/dist/enums/session.js.map +1 -0
- package/dist/enums/system.d.ts +5 -0
- package/dist/enums/system.d.ts.map +1 -0
- package/dist/enums/system.js +4 -0
- package/dist/enums/system.js.map +1 -0
- package/dist/enums/transaction.d.ts +8 -0
- package/dist/enums/transaction.d.ts.map +1 -0
- package/dist/enums/transaction.js +25 -0
- package/dist/enums/transaction.js.map +1 -0
- package/dist/enums/wallet.d.ts +5 -0
- package/dist/enums/wallet.d.ts.map +1 -0
- package/dist/enums/wallet.js +10 -0
- package/dist/enums/wallet.js.map +1 -0
- package/dist/errors/base-error.d.ts +25 -0
- package/dist/errors/base-error.d.ts.map +1 -0
- package/dist/errors/base-error.js +33 -0
- package/dist/errors/base-error.js.map +1 -0
- package/dist/errors/chain-error.d.ts +48 -0
- package/dist/errors/chain-error.d.ts.map +1 -0
- package/dist/errors/chain-error.js +83 -0
- package/dist/errors/chain-error.js.map +1 -0
- package/dist/errors/error-codes.d.ts +667 -0
- package/dist/errors/error-codes.d.ts.map +1 -0
- package/dist/errors/error-codes.js +671 -0
- package/dist/errors/error-codes.js.map +1 -0
- package/dist/errors/index.d.ts +4 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +4 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/events/event-bus.d.ts +36 -0
- package/dist/events/event-bus.d.ts.map +1 -0
- package/dist/events/event-bus.js +74 -0
- package/dist/events/event-bus.js.map +1 -0
- package/dist/events/event-types.d.ts +59 -0
- package/dist/events/event-types.d.ts.map +1 -0
- package/dist/events/event-types.js +16 -0
- package/dist/events/event-types.js.map +1 -0
- package/dist/events/index.d.ts +3 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +3 -0
- package/dist/events/index.js.map +1 -0
- package/dist/i18n/en.d.ts +57 -0
- package/dist/i18n/en.d.ts.map +1 -0
- package/dist/i18n/en.js +194 -0
- package/dist/i18n/en.js.map +1 -0
- package/dist/i18n/index.d.ts +5 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +7 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/ko.d.ts +3 -0
- package/dist/i18n/ko.d.ts.map +1 -0
- package/dist/i18n/ko.js +194 -0
- package/dist/i18n/ko.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/IChainAdapter.d.ts +61 -0
- package/dist/interfaces/IChainAdapter.d.ts.map +1 -0
- package/dist/interfaces/IChainAdapter.js +2 -0
- package/dist/interfaces/IChainAdapter.js.map +1 -0
- package/dist/interfaces/ILocalKeyStore.d.ts +24 -0
- package/dist/interfaces/ILocalKeyStore.d.ts.map +1 -0
- package/dist/interfaces/ILocalKeyStore.js +2 -0
- package/dist/interfaces/ILocalKeyStore.js.map +1 -0
- package/dist/interfaces/INotificationChannel.d.ts +32 -0
- package/dist/interfaces/INotificationChannel.d.ts.map +1 -0
- package/dist/interfaces/INotificationChannel.js +2 -0
- package/dist/interfaces/INotificationChannel.js.map +1 -0
- package/dist/interfaces/IPolicyEngine.d.ts +44 -0
- package/dist/interfaces/IPolicyEngine.d.ts.map +1 -0
- package/dist/interfaces/IPolicyEngine.js +2 -0
- package/dist/interfaces/IPolicyEngine.js.map +1 -0
- package/dist/interfaces/action-provider.types.d.ts +123 -0
- package/dist/interfaces/action-provider.types.d.ts.map +1 -0
- package/dist/interfaces/action-provider.types.js +65 -0
- package/dist/interfaces/action-provider.types.js.map +1 -0
- package/dist/interfaces/chain-adapter.types.d.ts +216 -0
- package/dist/interfaces/chain-adapter.types.d.ts.map +1 -0
- package/dist/interfaces/chain-adapter.types.js +2 -0
- package/dist/interfaces/chain-adapter.types.js.map +1 -0
- package/dist/interfaces/forex-rate.types.d.ts +63 -0
- package/dist/interfaces/forex-rate.types.d.ts.map +1 -0
- package/dist/interfaces/forex-rate.types.js +41 -0
- package/dist/interfaces/forex-rate.types.js.map +1 -0
- package/dist/interfaces/index.d.ts +15 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +5 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/interfaces/price-oracle.types.d.ts +99 -0
- package/dist/interfaces/price-oracle.types.d.ts.map +1 -0
- package/dist/interfaces/price-oracle.types.js +48 -0
- package/dist/interfaces/price-oracle.types.js.map +1 -0
- package/dist/interfaces/x402.types.d.ts +112 -0
- package/dist/interfaces/x402.types.d.ts.map +1 -0
- package/dist/interfaces/x402.types.js +69 -0
- package/dist/interfaces/x402.types.js.map +1 -0
- package/dist/schemas/asset.schema.d.ts +32 -0
- package/dist/schemas/asset.schema.d.ts.map +1 -0
- package/dist/schemas/asset.schema.js +15 -0
- package/dist/schemas/asset.schema.js.map +1 -0
- package/dist/schemas/config.schema.d.ts +58 -0
- package/dist/schemas/config.schema.d.ts.map +1 -0
- package/dist/schemas/config.schema.js +23 -0
- package/dist/schemas/config.schema.js.map +1 -0
- package/dist/schemas/index.d.ts +7 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +9 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/policy.schema.d.ts +192 -0
- package/dist/schemas/policy.schema.d.ts.map +1 -0
- package/dist/schemas/policy.schema.js +157 -0
- package/dist/schemas/policy.schema.js.map +1 -0
- package/dist/schemas/session.schema.d.ts +51 -0
- package/dist/schemas/session.schema.d.ts.map +1 -0
- package/dist/schemas/session.schema.js +19 -0
- package/dist/schemas/session.schema.js.map +1 -0
- package/dist/schemas/transaction.schema.d.ts +834 -0
- package/dist/schemas/transaction.schema.d.ts.map +1 -0
- package/dist/schemas/transaction.schema.js +112 -0
- package/dist/schemas/transaction.schema.js.map +1 -0
- package/dist/schemas/wallet.schema.d.ts +54 -0
- package/dist/schemas/wallet.schema.d.ts.map +1 -0
- package/dist/schemas/wallet.schema.js +21 -0
- package/dist/schemas/wallet.schema.js.map +1 -0
- package/dist/testing/chain-adapter-contract.d.ts +42 -0
- package/dist/testing/chain-adapter-contract.d.ts.map +1 -0
- package/dist/testing/chain-adapter-contract.js +370 -0
- package/dist/testing/chain-adapter-contract.js.map +1 -0
- package/dist/testing/index.d.ts +8 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +7 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/utils/format-amount.d.ts +41 -0
- package/dist/utils/format-amount.d.ts.map +1 -0
- package/dist/utils/format-amount.js +60 -0
- package/dist/utils/format-amount.js.map +1 -0
- package/dist/utils/format-currency.d.ts +42 -0
- package/dist/utils/format-currency.d.ts.map +1 -0
- package/dist/utils/format-currency.js +92 -0
- package/dist/utils/format-currency.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +5 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { PolicyTypeEnum, PolicyTierEnum } from '../enums/policy.js';
|
|
3
|
+
import { ChainTypeEnum, NetworkTypeEnum } from '../enums/chain.js';
|
|
4
|
+
export const PolicySchema = z.object({
|
|
5
|
+
id: z.string().uuid(),
|
|
6
|
+
walletId: z.string().uuid(),
|
|
7
|
+
type: PolicyTypeEnum,
|
|
8
|
+
ruleConfig: z.record(z.unknown()),
|
|
9
|
+
enabled: z.boolean(),
|
|
10
|
+
network: NetworkTypeEnum.nullable(),
|
|
11
|
+
createdAt: z.number().int(),
|
|
12
|
+
updatedAt: z.number().int(),
|
|
13
|
+
});
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
// v1.4 Policy type-specific rules schemas (internal, not exported).
|
|
16
|
+
// Used by superRefine to validate rules per PolicyType.
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
/** ALLOWED_TOKENS: rules.tokens array (mint/contract addresses). */
|
|
19
|
+
const AllowedTokensRulesSchema = z.object({
|
|
20
|
+
tokens: z.array(z.object({
|
|
21
|
+
address: z.string().min(1),
|
|
22
|
+
symbol: z.string().min(1).max(10).optional(),
|
|
23
|
+
chain: ChainTypeEnum.optional(),
|
|
24
|
+
})).min(1, 'At least one token required'),
|
|
25
|
+
});
|
|
26
|
+
/** CONTRACT_WHITELIST: rules.contracts array. */
|
|
27
|
+
const ContractWhitelistRulesSchema = z.object({
|
|
28
|
+
contracts: z.array(z.object({
|
|
29
|
+
address: z.string().min(1),
|
|
30
|
+
name: z.string().optional(),
|
|
31
|
+
chain: ChainTypeEnum.optional(),
|
|
32
|
+
})).min(1, 'At least one contract required'),
|
|
33
|
+
});
|
|
34
|
+
/** METHOD_WHITELIST: rules.methods array (contract-specific allowed methods). */
|
|
35
|
+
const MethodWhitelistRulesSchema = z.object({
|
|
36
|
+
methods: z.array(z.object({
|
|
37
|
+
contractAddress: z.string().min(1),
|
|
38
|
+
selectors: z.array(z.string().min(1)).min(1),
|
|
39
|
+
})).min(1, 'At least one method entry required'),
|
|
40
|
+
});
|
|
41
|
+
/** APPROVED_SPENDERS: rules.spenders array. */
|
|
42
|
+
const ApprovedSpendersRulesSchema = z.object({
|
|
43
|
+
spenders: z.array(z.object({
|
|
44
|
+
address: z.string().min(1),
|
|
45
|
+
name: z.string().optional(),
|
|
46
|
+
maxAmount: z.string().regex(/^\d+$/).optional(),
|
|
47
|
+
})).min(1, 'At least one spender required'),
|
|
48
|
+
});
|
|
49
|
+
/** APPROVE_AMOUNT_LIMIT: rules.maxAmount + rules.blockUnlimited. */
|
|
50
|
+
const ApproveAmountLimitRulesSchema = z.object({
|
|
51
|
+
maxAmount: z.string().regex(/^\d+$/).optional(),
|
|
52
|
+
blockUnlimited: z.boolean().default(true),
|
|
53
|
+
});
|
|
54
|
+
/** APPROVE_TIER_OVERRIDE: rules.tier (forced policy tier). */
|
|
55
|
+
const ApproveTierOverrideRulesSchema = z.object({
|
|
56
|
+
tier: PolicyTierEnum,
|
|
57
|
+
});
|
|
58
|
+
/** SPENDING_LIMIT: 금액 기반 4-티어 보안 분류. */
|
|
59
|
+
export const SpendingLimitRulesSchema = z.object({
|
|
60
|
+
/** INSTANT 티어 최대 금액 (lamports/wei 문자열) */
|
|
61
|
+
instant_max: z.string().regex(/^\d+$/, '양의 정수 문자열이어야 합니다'),
|
|
62
|
+
/** NOTIFY 티어 최대 금액 */
|
|
63
|
+
notify_max: z.string().regex(/^\d+$/, '양의 정수 문자열이어야 합니다'),
|
|
64
|
+
/** DELAY 티어 최대 금액 */
|
|
65
|
+
delay_max: z.string().regex(/^\d+$/, '양의 정수 문자열이어야 합니다'),
|
|
66
|
+
/** INSTANT 티어 최대 USD 금액 (optional, 미설정 시 네이티브만 사용) */
|
|
67
|
+
instant_max_usd: z.number().nonnegative().optional(),
|
|
68
|
+
/** NOTIFY 티어 최대 USD 금액 */
|
|
69
|
+
notify_max_usd: z.number().nonnegative().optional(),
|
|
70
|
+
/** DELAY 티어 최대 USD 금액 */
|
|
71
|
+
delay_max_usd: z.number().nonnegative().optional(),
|
|
72
|
+
/** DELAY 티어 쿨다운 시간 (초) */
|
|
73
|
+
delay_seconds: z.number().int().min(60).default(900),
|
|
74
|
+
/** 24시간 롤링 윈도우 내 누적 USD 지출 상한 (optional, 미설정 시 누적 한도 없음) */
|
|
75
|
+
daily_limit_usd: z.number().positive().optional(),
|
|
76
|
+
/** 30일 롤링 윈도우 내 누적 USD 지출 상한 */
|
|
77
|
+
monthly_limit_usd: z.number().positive().optional(),
|
|
78
|
+
});
|
|
79
|
+
/** ALLOWED_NETWORKS: rules.networks array (permitted networks for wallet). */
|
|
80
|
+
const AllowedNetworksRulesSchema = z.object({
|
|
81
|
+
networks: z.array(z.object({
|
|
82
|
+
network: NetworkTypeEnum,
|
|
83
|
+
name: z.string().optional(),
|
|
84
|
+
})).min(1, 'At least one network required'),
|
|
85
|
+
});
|
|
86
|
+
/** WHITELIST: rules.allowed_addresses array (permitted destination addresses). */
|
|
87
|
+
export const WhitelistRulesSchema = z.object({
|
|
88
|
+
allowed_addresses: z.array(z.string().min(1)).min(1, 'At least one address required'),
|
|
89
|
+
});
|
|
90
|
+
/** RATE_LIMIT: rules.max_requests + window_seconds. */
|
|
91
|
+
export const RateLimitRulesSchema = z.object({
|
|
92
|
+
max_requests: z.number().int().min(1),
|
|
93
|
+
window_seconds: z.number().int().min(1),
|
|
94
|
+
});
|
|
95
|
+
/** TIME_RESTRICTION: rules.allowed_hours + allowed_days. */
|
|
96
|
+
export const TimeRestrictionRulesSchema = z.object({
|
|
97
|
+
allowed_hours: z.object({
|
|
98
|
+
start: z.number().int().min(0).max(23),
|
|
99
|
+
end: z.number().int().min(1).max(24),
|
|
100
|
+
}),
|
|
101
|
+
allowed_days: z.array(z.number().int().min(0).max(6)).min(1, 'At least one day required'),
|
|
102
|
+
});
|
|
103
|
+
/** X402_ALLOWED_DOMAINS: rules.domains array (permitted x402 payment domains). */
|
|
104
|
+
export const X402AllowedDomainsRulesSchema = z.object({
|
|
105
|
+
domains: z.array(z.string().min(1)).min(1, 'At least one domain required'),
|
|
106
|
+
});
|
|
107
|
+
// Map of policy types to their rules schemas for superRefine lookup.
|
|
108
|
+
// All 12 PolicyTypes are now covered.
|
|
109
|
+
const POLICY_RULES_SCHEMAS = {
|
|
110
|
+
ALLOWED_TOKENS: AllowedTokensRulesSchema,
|
|
111
|
+
CONTRACT_WHITELIST: ContractWhitelistRulesSchema,
|
|
112
|
+
METHOD_WHITELIST: MethodWhitelistRulesSchema,
|
|
113
|
+
APPROVED_SPENDERS: ApprovedSpendersRulesSchema,
|
|
114
|
+
APPROVE_AMOUNT_LIMIT: ApproveAmountLimitRulesSchema,
|
|
115
|
+
APPROVE_TIER_OVERRIDE: ApproveTierOverrideRulesSchema,
|
|
116
|
+
ALLOWED_NETWORKS: AllowedNetworksRulesSchema,
|
|
117
|
+
SPENDING_LIMIT: SpendingLimitRulesSchema,
|
|
118
|
+
WHITELIST: WhitelistRulesSchema,
|
|
119
|
+
RATE_LIMIT: RateLimitRulesSchema,
|
|
120
|
+
TIME_RESTRICTION: TimeRestrictionRulesSchema,
|
|
121
|
+
X402_ALLOWED_DOMAINS: X402AllowedDomainsRulesSchema,
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* CreatePolicyRequestSchema - body for POST /v1/policies.
|
|
125
|
+
*
|
|
126
|
+
* walletId is optional (null = global policy).
|
|
127
|
+
* rules is validated per-type via superRefine for all 12 PolicyTypes.
|
|
128
|
+
*/
|
|
129
|
+
export const CreatePolicyRequestSchema = z.object({
|
|
130
|
+
walletId: z.string().uuid().optional(),
|
|
131
|
+
type: PolicyTypeEnum,
|
|
132
|
+
rules: z.record(z.unknown()),
|
|
133
|
+
priority: z.number().int().default(0),
|
|
134
|
+
enabled: z.boolean().default(true),
|
|
135
|
+
network: NetworkTypeEnum.optional(),
|
|
136
|
+
}).superRefine((data, ctx) => {
|
|
137
|
+
const schema = POLICY_RULES_SCHEMAS[data.type];
|
|
138
|
+
if (!schema)
|
|
139
|
+
return; // safety fallback (all 12 types are now registered)
|
|
140
|
+
const result = schema.safeParse(data.rules);
|
|
141
|
+
if (!result.success) {
|
|
142
|
+
for (const issue of result.error.issues) {
|
|
143
|
+
ctx.addIssue({ ...issue, path: ['rules', ...issue.path] });
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
/**
|
|
148
|
+
* UpdatePolicyRequestSchema - body for PUT /v1/policies/:id.
|
|
149
|
+
*
|
|
150
|
+
* All fields optional (partial update).
|
|
151
|
+
*/
|
|
152
|
+
export const UpdatePolicyRequestSchema = z.object({
|
|
153
|
+
rules: z.record(z.unknown()).optional(),
|
|
154
|
+
priority: z.number().int().optional(),
|
|
155
|
+
enabled: z.boolean().optional(),
|
|
156
|
+
});
|
|
157
|
+
//# sourceMappingURL=policy.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.schema.js","sourceRoot":"","sources":["../../src/schemas/policy.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const SessionSchema: z.ZodObject<{
|
|
3
|
+
id: z.ZodString;
|
|
4
|
+
walletId: z.ZodString;
|
|
5
|
+
tokenHash: z.ZodString;
|
|
6
|
+
constraints: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
7
|
+
renewalCount: z.ZodNumber;
|
|
8
|
+
maxRenewals: z.ZodNumber;
|
|
9
|
+
expiresAt: z.ZodNumber;
|
|
10
|
+
absoluteExpiresAt: z.ZodNumber;
|
|
11
|
+
createdAt: z.ZodNumber;
|
|
12
|
+
updatedAt: z.ZodNumber;
|
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
id: string;
|
|
15
|
+
createdAt: number;
|
|
16
|
+
updatedAt: number;
|
|
17
|
+
walletId: string;
|
|
18
|
+
tokenHash: string;
|
|
19
|
+
constraints: Record<string, unknown> | null;
|
|
20
|
+
renewalCount: number;
|
|
21
|
+
maxRenewals: number;
|
|
22
|
+
expiresAt: number;
|
|
23
|
+
absoluteExpiresAt: number;
|
|
24
|
+
}, {
|
|
25
|
+
id: string;
|
|
26
|
+
createdAt: number;
|
|
27
|
+
updatedAt: number;
|
|
28
|
+
walletId: string;
|
|
29
|
+
tokenHash: string;
|
|
30
|
+
constraints: Record<string, unknown> | null;
|
|
31
|
+
renewalCount: number;
|
|
32
|
+
maxRenewals: number;
|
|
33
|
+
expiresAt: number;
|
|
34
|
+
absoluteExpiresAt: number;
|
|
35
|
+
}>;
|
|
36
|
+
export type Session = z.infer<typeof SessionSchema>;
|
|
37
|
+
export declare const CreateSessionRequestSchema: z.ZodObject<{
|
|
38
|
+
walletId: z.ZodString;
|
|
39
|
+
ttl: z.ZodOptional<z.ZodNumber>;
|
|
40
|
+
constraints: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
41
|
+
}, "strip", z.ZodTypeAny, {
|
|
42
|
+
walletId: string;
|
|
43
|
+
constraints?: Record<string, unknown> | null | undefined;
|
|
44
|
+
ttl?: number | undefined;
|
|
45
|
+
}, {
|
|
46
|
+
walletId: string;
|
|
47
|
+
constraints?: Record<string, unknown> | null | undefined;
|
|
48
|
+
ttl?: number | undefined;
|
|
49
|
+
}>;
|
|
50
|
+
export type CreateSessionRequest = z.infer<typeof CreateSessionRequestSchema>;
|
|
51
|
+
//# sourceMappingURL=session.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/session.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWxB,CAAC;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD,eAAO,MAAM,0BAA0B;;;;;;;;;;;;EAIrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const SessionSchema = z.object({
|
|
3
|
+
id: z.string().uuid(),
|
|
4
|
+
walletId: z.string().uuid(),
|
|
5
|
+
tokenHash: z.string(),
|
|
6
|
+
constraints: z.record(z.unknown()).nullable(),
|
|
7
|
+
renewalCount: z.number().int().min(0),
|
|
8
|
+
maxRenewals: z.number().int(),
|
|
9
|
+
expiresAt: z.number().int(),
|
|
10
|
+
absoluteExpiresAt: z.number().int(),
|
|
11
|
+
createdAt: z.number().int(),
|
|
12
|
+
updatedAt: z.number().int(),
|
|
13
|
+
});
|
|
14
|
+
export const CreateSessionRequestSchema = z.object({
|
|
15
|
+
walletId: z.string().uuid(),
|
|
16
|
+
ttl: z.number().int().min(300).max(604800).optional(), // defaults to config security.session_ttl (86400)
|
|
17
|
+
constraints: z.record(z.unknown()).nullable().optional(),
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=session.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.schema.js","sourceRoot":"","sources":["../../src/schemas/session.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC7C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC3B,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACnC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CAC5B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC3B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,kDAAkD;IACzG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACzD,CAAC,CAAC"}
|