mppx 0.6.19 → 0.6.21
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 +14 -0
- package/dist/Challenge.d.ts +2 -2
- package/dist/Challenge.d.ts.map +1 -1
- package/dist/Challenge.js +1 -1
- package/dist/Challenge.js.map +1 -1
- package/dist/Method.d.ts +34 -0
- package/dist/Method.d.ts.map +1 -1
- package/dist/Method.js +3 -1
- package/dist/Method.js.map +1 -1
- package/dist/Receipt.d.ts +1 -0
- package/dist/Receipt.d.ts.map +1 -1
- package/dist/Receipt.js +2 -0
- package/dist/Receipt.js.map +1 -1
- package/dist/client/Methods.d.ts +1 -0
- package/dist/client/Methods.d.ts.map +1 -1
- package/dist/client/Methods.js +1 -0
- package/dist/client/Methods.js.map +1 -1
- package/dist/client/Mppx.d.ts +12 -1
- package/dist/client/Mppx.d.ts.map +1 -1
- package/dist/client/Mppx.js +127 -10
- package/dist/client/Mppx.js.map +1 -1
- package/dist/client/internal/Fetch.d.ts +69 -1
- package/dist/client/internal/Fetch.d.ts.map +1 -1
- package/dist/client/internal/Fetch.js +250 -20
- package/dist/client/internal/Fetch.js.map +1 -1
- package/dist/middlewares/elysia.d.ts.map +1 -1
- package/dist/middlewares/elysia.js +14 -0
- package/dist/middlewares/elysia.js.map +1 -1
- package/dist/middlewares/express.d.ts.map +1 -1
- package/dist/middlewares/express.js +1 -2
- package/dist/middlewares/express.js.map +1 -1
- package/dist/middlewares/hono.d.ts.map +1 -1
- package/dist/middlewares/hono.js +14 -0
- package/dist/middlewares/hono.js.map +1 -1
- package/dist/middlewares/internal/mppx.d.ts +1 -1
- package/dist/middlewares/internal/mppx.d.ts.map +1 -1
- package/dist/middlewares/internal/mppx.js +2 -1
- package/dist/middlewares/internal/mppx.js.map +1 -1
- package/dist/middlewares/nextjs.d.ts.map +1 -1
- package/dist/middlewares/nextjs.js +14 -0
- package/dist/middlewares/nextjs.js.map +1 -1
- package/dist/proxy/Proxy.d.ts.map +1 -1
- package/dist/proxy/Proxy.js +2 -2
- package/dist/proxy/Proxy.js.map +1 -1
- package/dist/proxy/Service.d.ts.map +1 -1
- package/dist/proxy/Service.js +1 -1
- package/dist/proxy/Service.js.map +1 -1
- package/dist/server/Mppx.d.ts +96 -5
- package/dist/server/Mppx.d.ts.map +1 -1
- package/dist/server/Mppx.js +739 -115
- package/dist/server/Mppx.js.map +1 -1
- package/dist/stripe/server/internal/html.gen.d.ts +1 -1
- package/dist/stripe/server/internal/html.gen.d.ts.map +1 -1
- package/dist/stripe/server/internal/html.gen.js +1 -1
- package/dist/stripe/server/internal/html.gen.js.map +1 -1
- package/dist/tempo/Methods.d.ts +96 -0
- package/dist/tempo/Methods.d.ts.map +1 -1
- package/dist/tempo/Methods.js +97 -0
- package/dist/tempo/Methods.js.map +1 -1
- package/dist/tempo/client/Methods.d.ts +3 -0
- package/dist/tempo/client/Methods.d.ts.map +1 -1
- package/dist/tempo/client/Methods.js +3 -0
- package/dist/tempo/client/Methods.js.map +1 -1
- package/dist/tempo/client/Subscription.d.ts +114 -0
- package/dist/tempo/client/Subscription.d.ts.map +1 -0
- package/dist/tempo/client/Subscription.js +100 -0
- package/dist/tempo/client/Subscription.js.map +1 -0
- package/dist/tempo/client/index.d.ts +1 -0
- package/dist/tempo/client/index.d.ts.map +1 -1
- package/dist/tempo/client/index.js +1 -0
- package/dist/tempo/client/index.js.map +1 -1
- package/dist/tempo/index.d.ts +1 -0
- package/dist/tempo/index.d.ts.map +1 -1
- package/dist/tempo/index.js +1 -0
- package/dist/tempo/index.js.map +1 -1
- package/dist/tempo/server/Methods.d.ts +5 -0
- package/dist/tempo/server/Methods.d.ts.map +1 -1
- package/dist/tempo/server/Methods.js +5 -0
- package/dist/tempo/server/Methods.js.map +1 -1
- package/dist/tempo/server/Subscription.d.ts +221 -0
- package/dist/tempo/server/Subscription.d.ts.map +1 -0
- package/dist/tempo/server/Subscription.js +637 -0
- package/dist/tempo/server/Subscription.js.map +1 -0
- package/dist/tempo/server/index.d.ts +1 -0
- package/dist/tempo/server/index.d.ts.map +1 -1
- package/dist/tempo/server/index.js +1 -0
- package/dist/tempo/server/index.js.map +1 -1
- package/dist/tempo/server/internal/html.gen.d.ts +1 -1
- package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
- package/dist/tempo/server/internal/html.gen.js +1 -1
- package/dist/tempo/server/internal/html.gen.js.map +1 -1
- package/dist/tempo/subscription/KeyAuthorization.d.ts +282 -0
- package/dist/tempo/subscription/KeyAuthorization.d.ts.map +1 -0
- package/dist/tempo/subscription/KeyAuthorization.js +297 -0
- package/dist/tempo/subscription/KeyAuthorization.js.map +1 -0
- package/dist/tempo/subscription/Receipt.d.ts +10 -0
- package/dist/tempo/subscription/Receipt.d.ts.map +1 -0
- package/dist/tempo/subscription/Receipt.js +16 -0
- package/dist/tempo/subscription/Receipt.js.map +1 -0
- package/dist/tempo/subscription/Store.d.ts +99 -0
- package/dist/tempo/subscription/Store.d.ts.map +1 -0
- package/dist/tempo/subscription/Store.js +292 -0
- package/dist/tempo/subscription/Store.js.map +1 -0
- package/dist/tempo/subscription/Types.d.ts +65 -0
- package/dist/tempo/subscription/Types.d.ts.map +1 -0
- package/dist/tempo/subscription/Types.js +2 -0
- package/dist/tempo/subscription/Types.js.map +1 -0
- package/dist/tempo/subscription/index.d.ts +6 -0
- package/dist/tempo/subscription/index.d.ts.map +1 -0
- package/dist/tempo/subscription/index.js +4 -0
- package/dist/tempo/subscription/index.js.map +1 -0
- package/dist/zod.d.ts +7 -0
- package/dist/zod.d.ts.map +1 -1
- package/dist/zod.js +18 -0
- package/dist/zod.js.map +1 -1
- package/package.json +3 -3
- package/src/Challenge.test.ts +13 -0
- package/src/Challenge.ts +3 -3
- package/src/Method.ts +46 -1
- package/src/Receipt.ts +2 -0
- package/src/client/Methods.ts +1 -0
- package/src/client/Mppx.test-d.ts +55 -0
- package/src/client/Mppx.test.ts +181 -0
- package/src/client/Mppx.ts +248 -16
- package/src/client/internal/Fetch.test-d.ts +31 -0
- package/src/client/internal/Fetch.test.ts +261 -0
- package/src/client/internal/Fetch.ts +467 -24
- package/src/middlewares/elysia.test.ts +31 -1
- package/src/middlewares/elysia.ts +13 -0
- package/src/middlewares/express.ts +1 -5
- package/src/middlewares/hono.test.ts +30 -1
- package/src/middlewares/hono.ts +13 -0
- package/src/middlewares/internal/mppx.ts +5 -6
- package/src/middlewares/nextjs.test.ts +28 -1
- package/src/middlewares/nextjs.ts +13 -0
- package/src/proxy/Proxy.test.ts +69 -0
- package/src/proxy/Proxy.ts +2 -5
- package/src/proxy/Service.test.ts +34 -0
- package/src/proxy/Service.ts +7 -0
- package/src/server/Mppx.authorize.test.ts +210 -0
- package/src/server/Mppx.test-d.ts +73 -1
- package/src/server/Mppx.test.ts +965 -3
- package/src/server/Mppx.ts +1138 -140
- package/src/stripe/server/internal/html/package.json +1 -1
- package/src/stripe/server/internal/html.gen.ts +1 -1
- package/src/tempo/Methods.test.ts +131 -0
- package/src/tempo/Methods.ts +136 -0
- package/src/tempo/Subscription.integration.test.ts +591 -0
- package/src/tempo/client/Methods.ts +3 -0
- package/src/tempo/client/Subscription.test.ts +131 -0
- package/src/tempo/client/Subscription.ts +155 -0
- package/src/tempo/client/index.ts +1 -0
- package/src/tempo/index.ts +1 -0
- package/src/tempo/server/Methods.ts +5 -0
- package/src/tempo/server/Subscription.test.ts +1410 -0
- package/src/tempo/server/Subscription.ts +1014 -0
- package/src/tempo/server/index.ts +1 -0
- package/src/tempo/server/internal/html/package.json +1 -1
- package/src/tempo/server/internal/html.gen.ts +1 -1
- package/src/tempo/subscription/KeyAuthorization.test.ts +204 -0
- package/src/tempo/subscription/KeyAuthorization.ts +394 -0
- package/src/tempo/subscription/Receipt.ts +28 -0
- package/src/tempo/subscription/Store.test.ts +554 -0
- package/src/tempo/subscription/Store.ts +431 -0
- package/src/tempo/subscription/Types.ts +68 -0
- package/src/tempo/subscription/index.ts +23 -0
- package/src/zod.test.ts +23 -1
- package/src/zod.ts +24 -0
package/dist/tempo/Methods.d.ts
CHANGED
|
@@ -2,6 +2,15 @@ import type { Account } from 'viem';
|
|
|
2
2
|
import * as z from '../zod.js';
|
|
3
3
|
export declare const chargeModes: readonly ["push", "pull"];
|
|
4
4
|
export type ChargeMode = (typeof chargeModes)[number];
|
|
5
|
+
export type SubscriptionPeriodCountInput = string | number | bigint;
|
|
6
|
+
declare const subscriptionAccessKey: z.ZodMiniObject<{
|
|
7
|
+
accessKeyAddress: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>;
|
|
8
|
+
keyType: z.ZodMiniEnum<{
|
|
9
|
+
secp256k1: "secp256k1";
|
|
10
|
+
p256: "p256";
|
|
11
|
+
webAuthn: "webAuthn";
|
|
12
|
+
}>;
|
|
13
|
+
}, z.core.$strip>;
|
|
5
14
|
/**
|
|
6
15
|
* Tempo charge intent for one-time TIP-20 token transfers.
|
|
7
16
|
*
|
|
@@ -155,4 +164,91 @@ export declare const session: {
|
|
|
155
164
|
}>>;
|
|
156
165
|
};
|
|
157
166
|
};
|
|
167
|
+
/**
|
|
168
|
+
* Tempo subscription intent for recurring TIP-20 token transfers.
|
|
169
|
+
*
|
|
170
|
+
* Uses a signed key authorization that delegates one transfer per billing period.
|
|
171
|
+
*/
|
|
172
|
+
export declare const subscription: {
|
|
173
|
+
readonly name: "tempo";
|
|
174
|
+
readonly intent: "subscription";
|
|
175
|
+
readonly schema: {
|
|
176
|
+
readonly credential: {
|
|
177
|
+
readonly payload: z.ZodMiniObject<{
|
|
178
|
+
signature: z.ZodMiniString<string>;
|
|
179
|
+
type: z.ZodMiniLiteral<"keyAuthorization">;
|
|
180
|
+
}, z.core.$strip>;
|
|
181
|
+
};
|
|
182
|
+
readonly request: z.ZodMiniPipe<z.ZodMiniObject<{
|
|
183
|
+
amount: z.ZodMiniString<string>;
|
|
184
|
+
accessKey: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
185
|
+
accessKeyAddress: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>;
|
|
186
|
+
keyType: z.ZodMiniEnum<{
|
|
187
|
+
secp256k1: "secp256k1";
|
|
188
|
+
p256: "p256";
|
|
189
|
+
webAuthn: "webAuthn";
|
|
190
|
+
}>;
|
|
191
|
+
}, z.core.$strip>>;
|
|
192
|
+
chainId: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
193
|
+
currency: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>;
|
|
194
|
+
decimals: z.ZodMiniNumber<number>;
|
|
195
|
+
description: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
196
|
+
externalId: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
197
|
+
methodDetails: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
198
|
+
accessKey: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
199
|
+
accessKeyAddress: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>;
|
|
200
|
+
keyType: z.ZodMiniEnum<{
|
|
201
|
+
secp256k1: "secp256k1";
|
|
202
|
+
p256: "p256";
|
|
203
|
+
webAuthn: "webAuthn";
|
|
204
|
+
}>;
|
|
205
|
+
}, z.core.$strip>>;
|
|
206
|
+
chainId: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
207
|
+
}, z.core.$strip>>;
|
|
208
|
+
periodCount: z.ZodMiniPipe<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniBigInt<bigint>, z.ZodMiniCustom<number, number>]>, z.ZodMiniTransform<string, string | number | bigint>>;
|
|
209
|
+
periodUnit: z.ZodMiniEnum<{
|
|
210
|
+
day: "day";
|
|
211
|
+
week: "week";
|
|
212
|
+
}>;
|
|
213
|
+
recipient: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>;
|
|
214
|
+
subscriptionExpires: z.ZodMiniPipe<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniCustom<Date, Date>]>, z.ZodMiniTransform<Date, z.DatetimeInput>>;
|
|
215
|
+
}, z.core.$strip>, z.ZodMiniTransform<{
|
|
216
|
+
methodDetails?: {
|
|
217
|
+
accessKey?: z.infer<typeof subscriptionAccessKey> | undefined;
|
|
218
|
+
chainId?: number | undefined;
|
|
219
|
+
} | undefined;
|
|
220
|
+
amount: string;
|
|
221
|
+
subscriptionExpires: string;
|
|
222
|
+
currency: `0x${string}`;
|
|
223
|
+
periodCount: string;
|
|
224
|
+
periodUnit: "day" | "week";
|
|
225
|
+
recipient: `0x${string}`;
|
|
226
|
+
description?: string | undefined;
|
|
227
|
+
externalId?: string | undefined;
|
|
228
|
+
}, {
|
|
229
|
+
amount: string;
|
|
230
|
+
currency: `0x${string}`;
|
|
231
|
+
decimals: number;
|
|
232
|
+
periodCount: string;
|
|
233
|
+
periodUnit: "day" | "week";
|
|
234
|
+
recipient: `0x${string}`;
|
|
235
|
+
subscriptionExpires: Date;
|
|
236
|
+
accessKey?: {
|
|
237
|
+
accessKeyAddress: `0x${string}`;
|
|
238
|
+
keyType: "secp256k1" | "p256" | "webAuthn";
|
|
239
|
+
} | undefined;
|
|
240
|
+
chainId?: number | undefined;
|
|
241
|
+
description?: string | undefined;
|
|
242
|
+
externalId?: string | undefined;
|
|
243
|
+
methodDetails?: {
|
|
244
|
+
accessKey?: {
|
|
245
|
+
accessKeyAddress: `0x${string}`;
|
|
246
|
+
keyType: "secp256k1" | "p256" | "webAuthn";
|
|
247
|
+
} | undefined;
|
|
248
|
+
chainId?: number | undefined;
|
|
249
|
+
} | undefined;
|
|
250
|
+
}>>;
|
|
251
|
+
};
|
|
252
|
+
};
|
|
253
|
+
export {};
|
|
158
254
|
//# sourceMappingURL=Methods.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Methods.d.ts","sourceRoot":"","sources":["../../src/tempo/Methods.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,MAAM,CAAA;AAI5C,OAAO,KAAK,CAAC,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"Methods.d.ts","sourceRoot":"","sources":["../../src/tempo/Methods.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,MAAM,CAAA;AAI5C,OAAO,KAAK,CAAC,MAAM,WAAW,CAAA;AAG9B,eAAO,MAAM,WAAW,2BAA4B,CAAA;AACpD,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AACrD,MAAM,MAAM,4BAA4B,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAoBnE,QAAA,MAAM,qBAAqB;;;;;;;iBAGzB,CAAA;AA2DF;;;;GAIG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2EjB,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8FlB,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAkCD,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,GAAG,SAAS;0BACnD,MAAM,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqBtC,CAAA"}
|
package/dist/tempo/Methods.js
CHANGED
|
@@ -7,6 +7,53 @@ const split = z.object({
|
|
|
7
7
|
memo: z.optional(z.hash()),
|
|
8
8
|
recipient: z.pipe(z.string(), z.transform((v) => v)),
|
|
9
9
|
});
|
|
10
|
+
const uint64Max = (1n << 64n) - 1n;
|
|
11
|
+
const secondsPerDay = 86400n;
|
|
12
|
+
const secondsPerWeek = 604800n;
|
|
13
|
+
const normalizedAddress = z.pipe(z.address(), z.transform((value) => value.toLowerCase()));
|
|
14
|
+
const subscriptionAccessKey = z.object({
|
|
15
|
+
accessKeyAddress: normalizedAddress,
|
|
16
|
+
keyType: z.enum(['p256', 'secp256k1', 'webAuthn']),
|
|
17
|
+
});
|
|
18
|
+
const subscriptionMethodDetails = z.object({
|
|
19
|
+
accessKey: z.optional(subscriptionAccessKey),
|
|
20
|
+
chainId: z.optional(z.number()),
|
|
21
|
+
});
|
|
22
|
+
const subscriptionExpires = z
|
|
23
|
+
.datetimeInput('subscriptionExpires must be a valid date')
|
|
24
|
+
.check(z.refine((value) => value.getTime() % 1_000 === 0, 'subscriptionExpires must be representable as whole seconds'));
|
|
25
|
+
const subscriptionPeriodUnits = ['day', 'week'];
|
|
26
|
+
const subscriptionPeriodUnit = z.enum(subscriptionPeriodUnits);
|
|
27
|
+
const uint64String = z
|
|
28
|
+
.pipe(z.union([
|
|
29
|
+
z.string(),
|
|
30
|
+
z.bigint(),
|
|
31
|
+
z.custom((value) => typeof value === 'number' && Number.isSafeInteger(value)),
|
|
32
|
+
]), z.transform((value) => value.toString()))
|
|
33
|
+
.check(z.regex(/^[1-9]\d*$/, 'Invalid periodCount'), z.refine((value) => {
|
|
34
|
+
try {
|
|
35
|
+
return BigInt(value) <= uint64Max;
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
}, 'periodCount exceeds uint64'));
|
|
41
|
+
function positiveParsedAmount(message) {
|
|
42
|
+
return z.refine((value) => {
|
|
43
|
+
const { amount, decimals } = value;
|
|
44
|
+
return parseUnits(amount, decimals) > 0n;
|
|
45
|
+
}, message);
|
|
46
|
+
}
|
|
47
|
+
function subscriptionPeriodFitsUint64(value) {
|
|
48
|
+
const { periodCount, periodUnit } = value;
|
|
49
|
+
try {
|
|
50
|
+
const unitSeconds = periodUnit === 'day' ? secondsPerDay : secondsPerWeek;
|
|
51
|
+
return BigInt(periodCount) * unitSeconds <= uint64Max;
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
10
57
|
/**
|
|
11
58
|
* Tempo charge intent for one-time TIP-20 token transfers.
|
|
12
59
|
*
|
|
@@ -146,4 +193,54 @@ export const session = Method.from({
|
|
|
146
193
|
}))),
|
|
147
194
|
},
|
|
148
195
|
});
|
|
196
|
+
/**
|
|
197
|
+
* Tempo subscription intent for recurring TIP-20 token transfers.
|
|
198
|
+
*
|
|
199
|
+
* Uses a signed key authorization that delegates one transfer per billing period.
|
|
200
|
+
*/
|
|
201
|
+
export const subscription = Method.from({
|
|
202
|
+
name: 'tempo',
|
|
203
|
+
intent: 'subscription',
|
|
204
|
+
schema: {
|
|
205
|
+
credential: {
|
|
206
|
+
payload: z.object({
|
|
207
|
+
signature: z.signature(),
|
|
208
|
+
type: z.literal('keyAuthorization'),
|
|
209
|
+
}),
|
|
210
|
+
},
|
|
211
|
+
request: z.pipe(z
|
|
212
|
+
.object({
|
|
213
|
+
amount: z.amount(),
|
|
214
|
+
accessKey: z.optional(subscriptionAccessKey),
|
|
215
|
+
chainId: z.optional(z.number()),
|
|
216
|
+
currency: normalizedAddress,
|
|
217
|
+
decimals: z.number(),
|
|
218
|
+
description: z.optional(z.string()),
|
|
219
|
+
externalId: z.optional(z.string()),
|
|
220
|
+
methodDetails: z.optional(subscriptionMethodDetails),
|
|
221
|
+
periodCount: uint64String,
|
|
222
|
+
periodUnit: subscriptionPeriodUnit,
|
|
223
|
+
recipient: normalizedAddress,
|
|
224
|
+
subscriptionExpires,
|
|
225
|
+
})
|
|
226
|
+
.check(positiveParsedAmount('Subscription amount must be greater than 0'), z.refine(subscriptionPeriodFitsUint64, 'Subscription period exceeds uint64')), z.transform(({ accessKey, amount, chainId, decimals, methodDetails, subscriptionExpires, ...rest }) => {
|
|
227
|
+
// Accept top-level convenience input, but serialize Tempo-specific fields under methodDetails.
|
|
228
|
+
const nextMethodDetails = {
|
|
229
|
+
...methodDetails,
|
|
230
|
+
...(accessKey !== undefined && { accessKey }),
|
|
231
|
+
...(chainId !== undefined && { chainId }),
|
|
232
|
+
};
|
|
233
|
+
return {
|
|
234
|
+
...rest,
|
|
235
|
+
amount: parseUnits(amount, decimals).toString(),
|
|
236
|
+
subscriptionExpires: subscriptionExpires.toISOString(),
|
|
237
|
+
...(Object.keys(nextMethodDetails).length > 0
|
|
238
|
+
? {
|
|
239
|
+
methodDetails: nextMethodDetails,
|
|
240
|
+
}
|
|
241
|
+
: {}),
|
|
242
|
+
};
|
|
243
|
+
})),
|
|
244
|
+
},
|
|
245
|
+
});
|
|
149
246
|
//# sourceMappingURL=Methods.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Methods.js","sourceRoot":"","sources":["../../src/tempo/Methods.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAEjC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,CAAC,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"Methods.js","sourceRoot":"","sources":["../../src/tempo/Methods.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { charge as charge_ } from './Charge.js';
|
|
2
2
|
import { session as sessionIntent_ } from './Session.js';
|
|
3
3
|
import { sessionManager as session_ } from './SessionManager.js';
|
|
4
|
+
import { subscription as subscription_ } from './Subscription.js';
|
|
4
5
|
/**
|
|
5
6
|
* Creates both Tempo `charge` and `session` client methods from shared parameters.
|
|
6
7
|
*
|
|
@@ -183,5 +184,7 @@ export declare namespace tempo {
|
|
|
183
184
|
const charge: typeof charge_;
|
|
184
185
|
/** Creates a client-side streaming session for managing payment channels. */
|
|
185
186
|
const session: typeof session_;
|
|
187
|
+
/** Creates a Tempo `subscription` client method for recurring TIP-20 payments. */
|
|
188
|
+
const subscription: typeof subscription_;
|
|
186
189
|
}
|
|
187
190
|
//# sourceMappingURL=Methods.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Methods.d.ts","sourceRoot":"","sources":["../../../src/tempo/client/Methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"Methods.d.ts","sourceRoot":"","sources":["../../../src/tempo/client/Methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjE;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,CAAC,UAAU,GAAE,KAAK,CAAC,UAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAEtD;AAED,yBAAiB,KAAK,CAAC;IACrB,KAAY,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,cAAc,CAAC,UAAU,CAAA;IAEvE,kFAAkF;IAC3E,MAAM,MAAM,gBAAU,CAAA;IAC7B,6EAA6E;IACtE,MAAM,OAAO,iBAAW,CAAA;IAC/B,kFAAkF;IAC3E,MAAM,YAAY,sBAAgB,CAAA;CAC1C"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { charge as charge_ } from './Charge.js';
|
|
2
2
|
import { session as sessionIntent_ } from './Session.js';
|
|
3
3
|
import { sessionManager as session_ } from './SessionManager.js';
|
|
4
|
+
import { subscription as subscription_ } from './Subscription.js';
|
|
4
5
|
/**
|
|
5
6
|
* Creates both Tempo `charge` and `session` client methods from shared parameters.
|
|
6
7
|
*
|
|
@@ -21,5 +22,7 @@ export function tempo(parameters = {}) {
|
|
|
21
22
|
tempo.charge = charge_;
|
|
22
23
|
/** Creates a client-side streaming session for managing payment channels. */
|
|
23
24
|
tempo.session = session_;
|
|
25
|
+
/** Creates a Tempo `subscription` client method for recurring TIP-20 payments. */
|
|
26
|
+
tempo.subscription = subscription_;
|
|
24
27
|
})(tempo || (tempo = {}));
|
|
25
28
|
//# sourceMappingURL=Methods.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Methods.js","sourceRoot":"","sources":["../../../src/tempo/client/Methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"Methods.js","sourceRoot":"","sources":["../../../src/tempo/client/Methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,KAAK,CAAC,aAA+B,EAAE;IACrD,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAU,CAAA;AACnE,CAAC;AAED,WAAiB,KAAK;IAGpB,kFAAkF;IACrE,YAAM,GAAG,OAAO,CAAA;IAC7B,6EAA6E;IAChE,aAAO,GAAG,QAAQ,CAAA;IAC/B,kFAAkF;IACrE,kBAAY,GAAG,aAAa,CAAA;AAC3C,CAAC,EATgB,KAAK,KAAL,KAAK,QASrB"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { MaybePromise } from '../../internal/types.js';
|
|
2
|
+
import * as Method from '../../Method.js';
|
|
3
|
+
import * as Account from '../../viem/Account.js';
|
|
4
|
+
import * as Client from '../../viem/Client.js';
|
|
5
|
+
import * as z from '../../zod.js';
|
|
6
|
+
import * as Methods from '../Methods.js';
|
|
7
|
+
import type { SubscriptionAccessKey } from '../subscription/Types.js';
|
|
8
|
+
/** Context accepted by the Tempo subscription client method. */
|
|
9
|
+
export declare const subscriptionContextSchema: z.ZodMiniObject<{
|
|
10
|
+
accessKey: z.ZodMiniOptional<z.ZodMiniCustom<SubscriptionAccessKey, SubscriptionAccessKey>>;
|
|
11
|
+
account: z.ZodMiniOptional<z.ZodMiniCustom<`0x${string}` | Account.Account | undefined, `0x${string}` | Account.Account | undefined>>;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
/** Runtime context for creating a Tempo subscription credential. */
|
|
14
|
+
export type SubscriptionContext = z.infer<typeof subscriptionContextSchema>;
|
|
15
|
+
/** Creates a Tempo subscription client method. */
|
|
16
|
+
export declare function subscription(parameters?: subscription.Parameters): Method.Client<{
|
|
17
|
+
readonly name: "tempo";
|
|
18
|
+
readonly intent: "subscription";
|
|
19
|
+
readonly schema: {
|
|
20
|
+
readonly credential: {
|
|
21
|
+
readonly payload: z.ZodMiniObject<{
|
|
22
|
+
signature: z.ZodMiniString<string>;
|
|
23
|
+
type: z.ZodMiniLiteral<"keyAuthorization">;
|
|
24
|
+
}, z.core.$strip>;
|
|
25
|
+
};
|
|
26
|
+
readonly request: z.ZodMiniPipe<z.ZodMiniObject<{
|
|
27
|
+
amount: z.ZodMiniString<string>;
|
|
28
|
+
accessKey: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
29
|
+
accessKeyAddress: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>;
|
|
30
|
+
keyType: z.ZodMiniEnum<{
|
|
31
|
+
secp256k1: "secp256k1";
|
|
32
|
+
p256: "p256";
|
|
33
|
+
webAuthn: "webAuthn";
|
|
34
|
+
}>;
|
|
35
|
+
}, z.core.$strip>>;
|
|
36
|
+
chainId: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
37
|
+
currency: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>;
|
|
38
|
+
decimals: z.ZodMiniNumber<number>;
|
|
39
|
+
description: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
40
|
+
externalId: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
41
|
+
methodDetails: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
42
|
+
accessKey: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
43
|
+
accessKeyAddress: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>;
|
|
44
|
+
keyType: z.ZodMiniEnum<{
|
|
45
|
+
secp256k1: "secp256k1";
|
|
46
|
+
p256: "p256";
|
|
47
|
+
webAuthn: "webAuthn";
|
|
48
|
+
}>;
|
|
49
|
+
}, z.core.$strip>>;
|
|
50
|
+
chainId: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
|
|
51
|
+
}, z.core.$strip>>;
|
|
52
|
+
periodCount: z.ZodMiniPipe<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniBigInt<bigint>, z.ZodMiniCustom<number, number>]>, z.ZodMiniTransform<string, string | number | bigint>>;
|
|
53
|
+
periodUnit: z.ZodMiniEnum<{
|
|
54
|
+
day: "day";
|
|
55
|
+
week: "week";
|
|
56
|
+
}>;
|
|
57
|
+
recipient: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>;
|
|
58
|
+
subscriptionExpires: z.ZodMiniPipe<z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniCustom<Date, Date>]>, z.ZodMiniTransform<Date, z.DatetimeInput>>;
|
|
59
|
+
}, z.core.$strip>, z.ZodMiniTransform<{
|
|
60
|
+
methodDetails?: {
|
|
61
|
+
accessKey?: z.infer<z.ZodMiniObject<{
|
|
62
|
+
accessKeyAddress: z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`0x${string}`, string>>;
|
|
63
|
+
keyType: z.ZodMiniEnum<{
|
|
64
|
+
secp256k1: "secp256k1";
|
|
65
|
+
p256: "p256";
|
|
66
|
+
webAuthn: "webAuthn";
|
|
67
|
+
}>;
|
|
68
|
+
}, z.core.$strip>> | undefined;
|
|
69
|
+
chainId?: number | undefined;
|
|
70
|
+
} | undefined;
|
|
71
|
+
amount: string;
|
|
72
|
+
subscriptionExpires: string;
|
|
73
|
+
currency: `0x${string}`;
|
|
74
|
+
periodCount: string;
|
|
75
|
+
periodUnit: "day" | "week";
|
|
76
|
+
recipient: `0x${string}`;
|
|
77
|
+
description?: string | undefined;
|
|
78
|
+
externalId?: string | undefined;
|
|
79
|
+
}, {
|
|
80
|
+
amount: string;
|
|
81
|
+
currency: `0x${string}`;
|
|
82
|
+
decimals: number;
|
|
83
|
+
periodCount: string;
|
|
84
|
+
periodUnit: "day" | "week";
|
|
85
|
+
recipient: `0x${string}`;
|
|
86
|
+
subscriptionExpires: Date;
|
|
87
|
+
accessKey?: {
|
|
88
|
+
accessKeyAddress: `0x${string}`;
|
|
89
|
+
keyType: "secp256k1" | "p256" | "webAuthn";
|
|
90
|
+
} | undefined;
|
|
91
|
+
chainId?: number | undefined;
|
|
92
|
+
description?: string | undefined;
|
|
93
|
+
externalId?: string | undefined;
|
|
94
|
+
methodDetails?: {
|
|
95
|
+
accessKey?: {
|
|
96
|
+
accessKeyAddress: `0x${string}`;
|
|
97
|
+
keyType: "secp256k1" | "p256" | "webAuthn";
|
|
98
|
+
} | undefined;
|
|
99
|
+
chainId?: number | undefined;
|
|
100
|
+
} | undefined;
|
|
101
|
+
}>>;
|
|
102
|
+
};
|
|
103
|
+
}, z.ZodMiniObject<{
|
|
104
|
+
accessKey: z.ZodMiniOptional<z.ZodMiniCustom<SubscriptionAccessKey, SubscriptionAccessKey>>;
|
|
105
|
+
account: z.ZodMiniOptional<z.ZodMiniCustom<`0x${string}` | Account.Account | undefined, `0x${string}` | Account.Account | undefined>>;
|
|
106
|
+
}, z.core.$strip>>;
|
|
107
|
+
export declare namespace subscription {
|
|
108
|
+
/** Parameters for creating a Tempo subscription credential. */
|
|
109
|
+
type Parameters = Account.getResolver.Parameters & Client.getResolver.Parameters & {
|
|
110
|
+
accessKey?: SubscriptionAccessKey | undefined;
|
|
111
|
+
validateRequest?: ((request: ReturnType<typeof Methods.subscription.schema.request.parse>) => MaybePromise<void>) | undefined;
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=Subscription.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Subscription.d.ts","sourceRoot":"","sources":["../../../src/tempo/client/Subscription.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,OAAO,MAAM,uBAAuB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAEjC,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AASxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAIrE,gEAAgE;AAChE,eAAO,MAAM,yBAAyB;;;iBAGpC,CAAA;AAEF,oEAAoE;AACpE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE3E,kDAAkD;AAClD,wBAAgB,YAAY,CAAC,UAAU,GAAE,YAAY,CAAC,UAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAwDpE;AAqDD,MAAM,CAAC,OAAO,WAAW,YAAY,CAAC;IACpC,+DAA+D;IAC/D,KAAK,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,GAC9C,MAAM,CAAC,WAAW,CAAC,UAAU,GAAG;QAC9B,SAAS,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAA;QAC7C,eAAe,CAAC,EACZ,CAAC,CACC,OAAO,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAClE,YAAY,CAAC,IAAI,CAAC,CAAC,GACxB,SAAS,CAAA;KACd,CAAA;CACJ"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { KeyAuthorization } from 'ox/tempo';
|
|
2
|
+
import { isAddressEqual } from 'viem';
|
|
3
|
+
import { tempo as tempo_chain } from 'viem/chains';
|
|
4
|
+
import * as Credential from '../../Credential.js';
|
|
5
|
+
import * as Method from '../../Method.js';
|
|
6
|
+
import * as Account from '../../viem/Account.js';
|
|
7
|
+
import * as Client from '../../viem/Client.js';
|
|
8
|
+
import * as z from '../../zod.js';
|
|
9
|
+
import * as defaults from '../internal/defaults.js';
|
|
10
|
+
import * as Methods from '../Methods.js';
|
|
11
|
+
import { getSubscriptionRpcAllowedCalls, signSubscriptionKeyAuthorization, toSubscriptionExpiryDate, toSubscriptionExpirySeconds, toSubscriptionPeriodSeconds, verifySubscriptionKeyAuthorization, } from '../subscription/KeyAuthorization.js';
|
|
12
|
+
/** Context accepted by the Tempo subscription client method. */
|
|
13
|
+
export const subscriptionContextSchema = z.object({
|
|
14
|
+
accessKey: z.optional(z.custom()),
|
|
15
|
+
account: z.optional(z.custom()),
|
|
16
|
+
});
|
|
17
|
+
/** Creates a Tempo subscription client method. */
|
|
18
|
+
export function subscription(parameters = {}) {
|
|
19
|
+
const getClient = Client.getResolver({
|
|
20
|
+
chain: tempo_chain,
|
|
21
|
+
getClient: parameters.getClient,
|
|
22
|
+
rpcUrl: defaults.rpcUrl,
|
|
23
|
+
});
|
|
24
|
+
const getAccount = Account.getResolver({ account: parameters.account });
|
|
25
|
+
return Method.toClient(Methods.subscription, {
|
|
26
|
+
context: subscriptionContextSchema,
|
|
27
|
+
async createCredential({ challenge, context }) {
|
|
28
|
+
const chainId = challenge.request.methodDetails?.chainId ?? defaults.chainId.testnet;
|
|
29
|
+
const client = await getClient({ chainId });
|
|
30
|
+
const account = getAccount(client, context);
|
|
31
|
+
const accessKey = context?.accessKey ?? parameters.accessKey ?? challenge.request.methodDetails?.accessKey;
|
|
32
|
+
if (!accessKey) {
|
|
33
|
+
throw new Error('No `accessKey` provided. The subscription challenge must include `accessKey`, or the client must pass one to parameters/context.');
|
|
34
|
+
}
|
|
35
|
+
assertSubscriptionRequestRepresentable(challenge.request);
|
|
36
|
+
await parameters.validateRequest?.(challenge.request);
|
|
37
|
+
const keyAuthorization = await authorizeAccessKey(client, {
|
|
38
|
+
accessKey,
|
|
39
|
+
account,
|
|
40
|
+
chainId,
|
|
41
|
+
request: challenge.request,
|
|
42
|
+
});
|
|
43
|
+
const verified = verifySubscriptionKeyAuthorization({
|
|
44
|
+
accessKey,
|
|
45
|
+
chainId,
|
|
46
|
+
payload: {
|
|
47
|
+
signature: KeyAuthorization.serialize(keyAuthorization),
|
|
48
|
+
type: 'keyAuthorization',
|
|
49
|
+
},
|
|
50
|
+
request: challenge.request,
|
|
51
|
+
});
|
|
52
|
+
if (!isAddressEqual(verified.source.address, account.address)) {
|
|
53
|
+
throw new Error('keyAuthorization signer does not match the selected account');
|
|
54
|
+
}
|
|
55
|
+
return Credential.serialize({
|
|
56
|
+
challenge,
|
|
57
|
+
payload: {
|
|
58
|
+
signature: KeyAuthorization.serialize(keyAuthorization),
|
|
59
|
+
type: 'keyAuthorization',
|
|
60
|
+
},
|
|
61
|
+
source: `did:pkh:eip155:${chainId}:${account.address.toLowerCase()}`,
|
|
62
|
+
});
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
async function authorizeAccessKey(client, parameters) {
|
|
67
|
+
const { accessKey, account, chainId, request } = parameters;
|
|
68
|
+
const local = await signSubscriptionKeyAuthorization({
|
|
69
|
+
accessKey,
|
|
70
|
+
account,
|
|
71
|
+
chainId,
|
|
72
|
+
request,
|
|
73
|
+
});
|
|
74
|
+
if (local)
|
|
75
|
+
return local;
|
|
76
|
+
const result = (await client.request({
|
|
77
|
+
method: 'wallet_authorizeAccessKey',
|
|
78
|
+
params: [
|
|
79
|
+
{
|
|
80
|
+
address: accessKey.accessKeyAddress,
|
|
81
|
+
allowedCalls: getSubscriptionRpcAllowedCalls(request),
|
|
82
|
+
expiry: toSubscriptionExpirySeconds(toSubscriptionExpiryDate(request.subscriptionExpires)),
|
|
83
|
+
keyType: accessKey.keyType,
|
|
84
|
+
limits: [
|
|
85
|
+
{
|
|
86
|
+
token: request.currency,
|
|
87
|
+
limit: BigInt(request.amount),
|
|
88
|
+
period: toSubscriptionPeriodSeconds(request),
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
},
|
|
92
|
+
],
|
|
93
|
+
}));
|
|
94
|
+
return KeyAuthorization.fromRpc(result.keyAuthorization);
|
|
95
|
+
}
|
|
96
|
+
function assertSubscriptionRequestRepresentable(request) {
|
|
97
|
+
toSubscriptionPeriodSeconds(request);
|
|
98
|
+
toSubscriptionExpirySeconds(toSubscriptionExpiryDate(request.subscriptionExpires));
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=Subscription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Subscription.js","sourceRoot":"","sources":["../../../src/tempo/client/Subscription.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { charge } from './Charge.js';
|
|
2
2
|
export { tempo } from './Methods.js';
|
|
3
3
|
export { session } from './Session.js';
|
|
4
|
+
export { subscription } from './Subscription.js';
|
|
4
5
|
export type { PaymentResponse, SessionManager } from './SessionManager.js';
|
|
5
6
|
export { sessionManager } from './SessionManager.js';
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tempo/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tempo/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tempo/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tempo/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
|
package/dist/tempo/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tempo/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tempo/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAA"}
|
package/dist/tempo/index.js
CHANGED
package/dist/tempo/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tempo/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tempo/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as Ws_ from '../session/Ws.js';
|
|
2
2
|
import { charge as charge_ } from './Charge.js';
|
|
3
3
|
import { session as session_, settle as settle_ } from './Session.js';
|
|
4
|
+
import { renew as renewSubscription_, subscription as subscription_ } from './Subscription.js';
|
|
4
5
|
/**
|
|
5
6
|
* Creates both Tempo `charge` and `session` methods from shared parameters.
|
|
6
7
|
*
|
|
@@ -160,6 +161,10 @@ export declare namespace tempo {
|
|
|
160
161
|
const charge: typeof charge_;
|
|
161
162
|
/** Creates a Tempo `session` method for session-based TIP-20 token payments. */
|
|
162
163
|
const session: typeof session_;
|
|
164
|
+
/** Creates a Tempo `subscription` method for recurring TIP-20 token payments. */
|
|
165
|
+
const subscription: typeof subscription_;
|
|
166
|
+
/** Renews an overdue Tempo subscription outside of the HTTP request path. */
|
|
167
|
+
const renewSubscription: typeof renewSubscription_;
|
|
163
168
|
/** One-shot settle: reads highest voucher from storage and submits on-chain. */
|
|
164
169
|
const settle: typeof settle_;
|
|
165
170
|
/** Experimental websocket helpers for Tempo sessions. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Methods.d.ts","sourceRoot":"","sources":["../../../src/tempo/server/Methods.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"Methods.d.ts","sourceRoot":"","sources":["../../../src/tempo/server/Methods.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,cAAc,CAAA;AACrE,OAAO,EAAE,KAAK,IAAI,kBAAkB,EAAE,YAAY,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAE9F;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,CAAC,KAAK,CAAC,UAAU,SAAS,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAKvF;AAED,yBAAiB,KAAK,CAAC;IACrB,KAAY,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAA;IAEjE,2EAA2E;IACpE,MAAM,MAAM,gBAAU,CAAA;IAC7B,gFAAgF;IACzE,MAAM,OAAO,iBAAW,CAAA;IAC/B,iFAAiF;IAC1E,MAAM,YAAY,sBAAgB,CAAA;IACzC,6EAA6E;IACtE,MAAM,iBAAiB,2BAAqB,CAAA;IACnD,gFAAgF;IACzE,MAAM,MAAM,gBAAU,CAAA;IAC7B,yDAAyD;IAClD,MAAM,EAAE,YAAM,CAAA;CACtB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as Ws_ from '../session/Ws.js';
|
|
2
2
|
import { charge as charge_ } from './Charge.js';
|
|
3
3
|
import { session as session_, settle as settle_ } from './Session.js';
|
|
4
|
+
import { renew as renewSubscription_, subscription as subscription_ } from './Subscription.js';
|
|
4
5
|
/**
|
|
5
6
|
* Creates both Tempo `charge` and `session` methods from shared parameters.
|
|
6
7
|
*
|
|
@@ -24,6 +25,10 @@ export function tempo(parameters) {
|
|
|
24
25
|
tempo.charge = charge_;
|
|
25
26
|
/** Creates a Tempo `session` method for session-based TIP-20 token payments. */
|
|
26
27
|
tempo.session = session_;
|
|
28
|
+
/** Creates a Tempo `subscription` method for recurring TIP-20 token payments. */
|
|
29
|
+
tempo.subscription = subscription_;
|
|
30
|
+
/** Renews an overdue Tempo subscription outside of the HTTP request path. */
|
|
31
|
+
tempo.renewSubscription = renewSubscription_;
|
|
27
32
|
/** One-shot settle: reads highest voucher from storage and submits on-chain. */
|
|
28
33
|
tempo.settle = settle_;
|
|
29
34
|
/** Experimental websocket helpers for Tempo sessions. */
|