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.
Files changed (168) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/Challenge.d.ts +2 -2
  3. package/dist/Challenge.d.ts.map +1 -1
  4. package/dist/Challenge.js +1 -1
  5. package/dist/Challenge.js.map +1 -1
  6. package/dist/Method.d.ts +34 -0
  7. package/dist/Method.d.ts.map +1 -1
  8. package/dist/Method.js +3 -1
  9. package/dist/Method.js.map +1 -1
  10. package/dist/Receipt.d.ts +1 -0
  11. package/dist/Receipt.d.ts.map +1 -1
  12. package/dist/Receipt.js +2 -0
  13. package/dist/Receipt.js.map +1 -1
  14. package/dist/client/Methods.d.ts +1 -0
  15. package/dist/client/Methods.d.ts.map +1 -1
  16. package/dist/client/Methods.js +1 -0
  17. package/dist/client/Methods.js.map +1 -1
  18. package/dist/client/Mppx.d.ts +12 -1
  19. package/dist/client/Mppx.d.ts.map +1 -1
  20. package/dist/client/Mppx.js +127 -10
  21. package/dist/client/Mppx.js.map +1 -1
  22. package/dist/client/internal/Fetch.d.ts +69 -1
  23. package/dist/client/internal/Fetch.d.ts.map +1 -1
  24. package/dist/client/internal/Fetch.js +250 -20
  25. package/dist/client/internal/Fetch.js.map +1 -1
  26. package/dist/middlewares/elysia.d.ts.map +1 -1
  27. package/dist/middlewares/elysia.js +14 -0
  28. package/dist/middlewares/elysia.js.map +1 -1
  29. package/dist/middlewares/express.d.ts.map +1 -1
  30. package/dist/middlewares/express.js +1 -2
  31. package/dist/middlewares/express.js.map +1 -1
  32. package/dist/middlewares/hono.d.ts.map +1 -1
  33. package/dist/middlewares/hono.js +14 -0
  34. package/dist/middlewares/hono.js.map +1 -1
  35. package/dist/middlewares/internal/mppx.d.ts +1 -1
  36. package/dist/middlewares/internal/mppx.d.ts.map +1 -1
  37. package/dist/middlewares/internal/mppx.js +2 -1
  38. package/dist/middlewares/internal/mppx.js.map +1 -1
  39. package/dist/middlewares/nextjs.d.ts.map +1 -1
  40. package/dist/middlewares/nextjs.js +14 -0
  41. package/dist/middlewares/nextjs.js.map +1 -1
  42. package/dist/proxy/Proxy.d.ts.map +1 -1
  43. package/dist/proxy/Proxy.js +2 -2
  44. package/dist/proxy/Proxy.js.map +1 -1
  45. package/dist/proxy/Service.d.ts.map +1 -1
  46. package/dist/proxy/Service.js +1 -1
  47. package/dist/proxy/Service.js.map +1 -1
  48. package/dist/server/Mppx.d.ts +96 -5
  49. package/dist/server/Mppx.d.ts.map +1 -1
  50. package/dist/server/Mppx.js +739 -115
  51. package/dist/server/Mppx.js.map +1 -1
  52. package/dist/stripe/server/internal/html.gen.d.ts +1 -1
  53. package/dist/stripe/server/internal/html.gen.d.ts.map +1 -1
  54. package/dist/stripe/server/internal/html.gen.js +1 -1
  55. package/dist/stripe/server/internal/html.gen.js.map +1 -1
  56. package/dist/tempo/Methods.d.ts +96 -0
  57. package/dist/tempo/Methods.d.ts.map +1 -1
  58. package/dist/tempo/Methods.js +97 -0
  59. package/dist/tempo/Methods.js.map +1 -1
  60. package/dist/tempo/client/Methods.d.ts +3 -0
  61. package/dist/tempo/client/Methods.d.ts.map +1 -1
  62. package/dist/tempo/client/Methods.js +3 -0
  63. package/dist/tempo/client/Methods.js.map +1 -1
  64. package/dist/tempo/client/Subscription.d.ts +114 -0
  65. package/dist/tempo/client/Subscription.d.ts.map +1 -0
  66. package/dist/tempo/client/Subscription.js +100 -0
  67. package/dist/tempo/client/Subscription.js.map +1 -0
  68. package/dist/tempo/client/index.d.ts +1 -0
  69. package/dist/tempo/client/index.d.ts.map +1 -1
  70. package/dist/tempo/client/index.js +1 -0
  71. package/dist/tempo/client/index.js.map +1 -1
  72. package/dist/tempo/index.d.ts +1 -0
  73. package/dist/tempo/index.d.ts.map +1 -1
  74. package/dist/tempo/index.js +1 -0
  75. package/dist/tempo/index.js.map +1 -1
  76. package/dist/tempo/server/Methods.d.ts +5 -0
  77. package/dist/tempo/server/Methods.d.ts.map +1 -1
  78. package/dist/tempo/server/Methods.js +5 -0
  79. package/dist/tempo/server/Methods.js.map +1 -1
  80. package/dist/tempo/server/Subscription.d.ts +221 -0
  81. package/dist/tempo/server/Subscription.d.ts.map +1 -0
  82. package/dist/tempo/server/Subscription.js +637 -0
  83. package/dist/tempo/server/Subscription.js.map +1 -0
  84. package/dist/tempo/server/index.d.ts +1 -0
  85. package/dist/tempo/server/index.d.ts.map +1 -1
  86. package/dist/tempo/server/index.js +1 -0
  87. package/dist/tempo/server/index.js.map +1 -1
  88. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  89. package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
  90. package/dist/tempo/server/internal/html.gen.js +1 -1
  91. package/dist/tempo/server/internal/html.gen.js.map +1 -1
  92. package/dist/tempo/subscription/KeyAuthorization.d.ts +282 -0
  93. package/dist/tempo/subscription/KeyAuthorization.d.ts.map +1 -0
  94. package/dist/tempo/subscription/KeyAuthorization.js +297 -0
  95. package/dist/tempo/subscription/KeyAuthorization.js.map +1 -0
  96. package/dist/tempo/subscription/Receipt.d.ts +10 -0
  97. package/dist/tempo/subscription/Receipt.d.ts.map +1 -0
  98. package/dist/tempo/subscription/Receipt.js +16 -0
  99. package/dist/tempo/subscription/Receipt.js.map +1 -0
  100. package/dist/tempo/subscription/Store.d.ts +99 -0
  101. package/dist/tempo/subscription/Store.d.ts.map +1 -0
  102. package/dist/tempo/subscription/Store.js +292 -0
  103. package/dist/tempo/subscription/Store.js.map +1 -0
  104. package/dist/tempo/subscription/Types.d.ts +65 -0
  105. package/dist/tempo/subscription/Types.d.ts.map +1 -0
  106. package/dist/tempo/subscription/Types.js +2 -0
  107. package/dist/tempo/subscription/Types.js.map +1 -0
  108. package/dist/tempo/subscription/index.d.ts +6 -0
  109. package/dist/tempo/subscription/index.d.ts.map +1 -0
  110. package/dist/tempo/subscription/index.js +4 -0
  111. package/dist/tempo/subscription/index.js.map +1 -0
  112. package/dist/zod.d.ts +7 -0
  113. package/dist/zod.d.ts.map +1 -1
  114. package/dist/zod.js +18 -0
  115. package/dist/zod.js.map +1 -1
  116. package/package.json +3 -3
  117. package/src/Challenge.test.ts +13 -0
  118. package/src/Challenge.ts +3 -3
  119. package/src/Method.ts +46 -1
  120. package/src/Receipt.ts +2 -0
  121. package/src/client/Methods.ts +1 -0
  122. package/src/client/Mppx.test-d.ts +55 -0
  123. package/src/client/Mppx.test.ts +181 -0
  124. package/src/client/Mppx.ts +248 -16
  125. package/src/client/internal/Fetch.test-d.ts +31 -0
  126. package/src/client/internal/Fetch.test.ts +261 -0
  127. package/src/client/internal/Fetch.ts +467 -24
  128. package/src/middlewares/elysia.test.ts +31 -1
  129. package/src/middlewares/elysia.ts +13 -0
  130. package/src/middlewares/express.ts +1 -5
  131. package/src/middlewares/hono.test.ts +30 -1
  132. package/src/middlewares/hono.ts +13 -0
  133. package/src/middlewares/internal/mppx.ts +5 -6
  134. package/src/middlewares/nextjs.test.ts +28 -1
  135. package/src/middlewares/nextjs.ts +13 -0
  136. package/src/proxy/Proxy.test.ts +69 -0
  137. package/src/proxy/Proxy.ts +2 -5
  138. package/src/proxy/Service.test.ts +34 -0
  139. package/src/proxy/Service.ts +7 -0
  140. package/src/server/Mppx.authorize.test.ts +210 -0
  141. package/src/server/Mppx.test-d.ts +73 -1
  142. package/src/server/Mppx.test.ts +965 -3
  143. package/src/server/Mppx.ts +1138 -140
  144. package/src/stripe/server/internal/html/package.json +1 -1
  145. package/src/stripe/server/internal/html.gen.ts +1 -1
  146. package/src/tempo/Methods.test.ts +131 -0
  147. package/src/tempo/Methods.ts +136 -0
  148. package/src/tempo/Subscription.integration.test.ts +591 -0
  149. package/src/tempo/client/Methods.ts +3 -0
  150. package/src/tempo/client/Subscription.test.ts +131 -0
  151. package/src/tempo/client/Subscription.ts +155 -0
  152. package/src/tempo/client/index.ts +1 -0
  153. package/src/tempo/index.ts +1 -0
  154. package/src/tempo/server/Methods.ts +5 -0
  155. package/src/tempo/server/Subscription.test.ts +1410 -0
  156. package/src/tempo/server/Subscription.ts +1014 -0
  157. package/src/tempo/server/index.ts +1 -0
  158. package/src/tempo/server/internal/html/package.json +1 -1
  159. package/src/tempo/server/internal/html.gen.ts +1 -1
  160. package/src/tempo/subscription/KeyAuthorization.test.ts +204 -0
  161. package/src/tempo/subscription/KeyAuthorization.ts +394 -0
  162. package/src/tempo/subscription/Receipt.ts +28 -0
  163. package/src/tempo/subscription/Store.test.ts +554 -0
  164. package/src/tempo/subscription/Store.ts +431 -0
  165. package/src/tempo/subscription/Types.ts +68 -0
  166. package/src/tempo/subscription/index.ts +23 -0
  167. package/src/zod.test.ts +23 -1
  168. package/src/zod.ts +24 -0
@@ -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;AAE9B,eAAO,MAAM,WAAW,2BAA4B,CAAA;AACpD,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAWrD;;;;GAIG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2EjB,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8FlB,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"}
@@ -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":"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"}
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;AAEhE;;;;;;;;;;;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;CAChC"}
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;AAEhE;;;;;;;;;;;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;AACjC,CAAC,EAPgB,KAAK,KAAL,KAAK,QAOrB"}
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,5 +1,6 @@
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 { sessionManager } from './SessionManager.js';
5
6
  //# sourceMappingURL=index.js.map
@@ -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;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,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"}
@@ -1,4 +1,5 @@
1
1
  export * as Proof from './Proof.js';
2
2
  export * as Methods from './Methods.js';
3
3
  export * as Session from './session/index.js';
4
+ export * as Subscription from './subscription/index.js';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -1,4 +1,5 @@
1
1
  export * as Proof from './Proof.js';
2
2
  export * as Methods from './Methods.js';
3
3
  export * as Session from './session/index.js';
4
+ export * as Subscription from './subscription/index.js';
4
5
  //# sourceMappingURL=index.js.map
@@ -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;AAErE;;;;;;;;;;;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,gFAAgF;IACzE,MAAM,MAAM,gBAAU,CAAA;IAC7B,yDAAyD;IAClD,MAAM,EAAE,YAAM,CAAA;CACtB"}
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. */