mppx 0.6.24 → 0.6.26

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 (63) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/Method.d.ts +6 -4
  3. package/dist/Method.d.ts.map +1 -1
  4. package/dist/Method.js +2 -1
  5. package/dist/Method.js.map +1 -1
  6. package/dist/middlewares/internal/mppx.d.ts +3 -2
  7. package/dist/middlewares/internal/mppx.d.ts.map +1 -1
  8. package/dist/middlewares/internal/mppx.js +1 -0
  9. package/dist/middlewares/internal/mppx.js.map +1 -1
  10. package/dist/server/Mppx.d.ts +8 -3
  11. package/dist/server/Mppx.d.ts.map +1 -1
  12. package/dist/server/Mppx.js +4 -1
  13. package/dist/server/Mppx.js.map +1 -1
  14. package/dist/stripe/server/Charge.d.ts +1 -1
  15. package/dist/stripe/server/Charge.d.ts.map +1 -1
  16. package/dist/stripe/server/Methods.d.ts +1 -1
  17. package/dist/stripe/server/Methods.d.ts.map +1 -1
  18. package/dist/tempo/Methods.d.ts +3 -2
  19. package/dist/tempo/Methods.d.ts.map +1 -1
  20. package/dist/tempo/Methods.js +13 -4
  21. package/dist/tempo/Methods.js.map +1 -1
  22. package/dist/tempo/client/Subscription.d.ts +3 -2
  23. package/dist/tempo/client/Subscription.d.ts.map +1 -1
  24. package/dist/tempo/server/Charge.d.ts +19 -1
  25. package/dist/tempo/server/Charge.d.ts.map +1 -1
  26. package/dist/tempo/server/Charge.js +96 -31
  27. package/dist/tempo/server/Charge.js.map +1 -1
  28. package/dist/tempo/server/Methods.d.ts +2 -2
  29. package/dist/tempo/server/Methods.d.ts.map +1 -1
  30. package/dist/tempo/server/Session.d.ts +1 -1
  31. package/dist/tempo/server/Session.d.ts.map +1 -1
  32. package/dist/tempo/server/Subscription.d.ts +28 -12
  33. package/dist/tempo/server/Subscription.d.ts.map +1 -1
  34. package/dist/tempo/server/Subscription.js +82 -30
  35. package/dist/tempo/server/Subscription.js.map +1 -1
  36. package/dist/tempo/server/internal/html.gen.d.ts +1 -1
  37. package/dist/tempo/server/internal/html.gen.d.ts.map +1 -1
  38. package/dist/tempo/server/internal/html.gen.js +1 -1
  39. package/dist/tempo/server/internal/html.gen.js.map +1 -1
  40. package/dist/tempo/subscription/KeyAuthorization.d.ts +3 -14
  41. package/dist/tempo/subscription/KeyAuthorization.d.ts.map +1 -1
  42. package/dist/tempo/subscription/KeyAuthorization.js +11 -20
  43. package/dist/tempo/subscription/KeyAuthorization.js.map +1 -1
  44. package/dist/tempo/subscription/Types.d.ts +2 -2
  45. package/dist/tempo/subscription/Types.d.ts.map +1 -1
  46. package/package.json +1 -1
  47. package/src/Method.ts +21 -5
  48. package/src/middlewares/internal/mppx.test.ts +24 -0
  49. package/src/middlewares/internal/mppx.ts +6 -2
  50. package/src/server/Mppx.ts +17 -4
  51. package/src/tempo/Methods.test.ts +17 -0
  52. package/src/tempo/Methods.ts +12 -4
  53. package/src/tempo/client/Subscription.test.ts +5 -7
  54. package/src/tempo/server/AtomicStore.test-d.ts +11 -0
  55. package/src/tempo/server/Charge.test.ts +189 -0
  56. package/src/tempo/server/Charge.ts +148 -31
  57. package/src/tempo/server/Subscription.test.ts +1 -4
  58. package/src/tempo/server/Subscription.ts +156 -67
  59. package/src/tempo/server/internal/html/package.json +1 -1
  60. package/src/tempo/server/internal/html.gen.ts +1 -1
  61. package/src/tempo/subscription/KeyAuthorization.test.ts +13 -4
  62. package/src/tempo/subscription/KeyAuthorization.ts +11 -20
  63. package/src/tempo/subscription/Types.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"html.gen.js","sourceRoot":"","sources":["../../../../src/tempo/server/internal/html.gen.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,IAAI,GAAG,4mueAA4mue,CAAA"}
1
+ {"version":3,"file":"html.gen.js","sourceRoot":"","sources":["../../../../src/tempo/server/internal/html.gen.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,IAAI,GAAG,o+lfAAo+lf,CAAA"}
@@ -4,7 +4,7 @@ import type * as Methods from '../Methods.js';
4
4
  import type { SubscriptionAccessKey, SubscriptionCredentialPayload, SubscriptionPeriodUnit } from './Types.js';
5
5
  /** 4-byte selector for TIP-20 `transfer(address,uint256)`. */
6
6
  export declare const transferSelector = "0xa9059cbb";
7
- /** 4-byte selector for TIP-20 `transferWithMemo(address,uint256,bytes)`. */
7
+ /** 4-byte selector for TIP-20 `transferWithMemo(address,uint256,bytes32)`. */
8
8
  export declare const transferWithMemoSelector = "0x95777d59";
9
9
  type SubscriptionRequest = ReturnType<typeof Methods.subscription.schema.request.parse>;
10
10
  /**
@@ -30,10 +30,6 @@ export declare function assertSubscriptionTiming(parameters: {
30
30
  }): void;
31
31
  /** Builds the Tempo access-key call scopes required for a subscription payment. */
32
32
  export declare function getSubscriptionScopes(request: Pick<SubscriptionRequest, 'currency' | 'recipient'>): readonly [{
33
- readonly address: `0x${string}`;
34
- readonly selector: "0xa9059cbb";
35
- readonly recipients: readonly [`0x${string}`];
36
- }, {
37
33
  readonly address: `0x${string}`;
38
34
  readonly selector: "0x95777d59";
39
35
  readonly recipients: readonly [`0x${string}`];
@@ -42,9 +38,6 @@ export declare function getSubscriptionScopes(request: Pick<SubscriptionRequest,
42
38
  export declare function getSubscriptionRpcAllowedCalls(request: Pick<SubscriptionRequest, 'currency' | 'recipient'>): readonly [{
43
39
  readonly target: `0x${string}`;
44
40
  readonly selectorRules: readonly [{
45
- readonly selector: "0xa9059cbb";
46
- readonly recipients: readonly [`0x${string}`];
47
- }, {
48
41
  readonly selector: "0x95777d59";
49
42
  readonly recipients: readonly [`0x${string}`];
50
43
  }];
@@ -71,15 +64,11 @@ export declare function signSubscriptionKeyAuthorization(parameters: {
71
64
  readonly limit: bigint;
72
65
  readonly period: number;
73
66
  }[];
74
- readonly scopes: readonly ({
75
- readonly address: `0x${string}`;
76
- readonly selector: "0xa9059cbb";
77
- readonly recipients: readonly `0x${string}`[];
78
- } | {
67
+ readonly scopes: readonly {
79
68
  readonly address: `0x${string}`;
80
69
  readonly selector: "0x95777d59";
81
70
  readonly recipients: readonly `0x${string}`[];
82
- })[];
71
+ }[];
83
72
  readonly type: "secp256k1" | "p256" | "webAuthn";
84
73
  signature: {
85
74
  signature: {
@@ -1 +1 @@
1
- {"version":3,"file":"KeyAuthorization.d.ts","sourceRoot":"","sources":["../../../src/tempo/subscription/KeyAuthorization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAC9D,OAAO,EAA6B,KAAK,OAAO,EAAE,MAAM,MAAM,CAAA;AAG9D,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EACV,qBAAqB,EACrB,6BAA6B,EAC7B,sBAAsB,EACvB,MAAM,YAAY,CAAA;AAEnB,8DAA8D;AAC9D,eAAO,MAAM,gBAAgB,eAAe,CAAA;AAE5C,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,eAAe,CAAA;AAMpD,KAAK,mBAAmB,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAIvF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEjF;AAED,wBAAgB,2BAA2B,CAAC,mBAAmB,EAAE,IAAI,GAAG,MAAM,CAmB7E;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IACnD,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,sBAAsB,CAAA;CACnC,GAAG,MAAM,CAsBT;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE;IACnD,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,aAAa,GAAG,YAAY,GAAG,qBAAqB,CAAC,CAAA;CACzF,QAeA;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,WAAW,CAAC;;;;;;;;GAgB7D;AAED,mFAAmF;AACnF,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,WAAW,CAAC;;;;;;;;;GAkB7D;AAED;;;GAGG;AACH,wBAAsB,gCAAgC,CAAC,UAAU,EAAE;IACjE,SAAS,EAAE,qBAAqB,CAAA;IAChC,OAAO,EAAE;QACP,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE;YAAE,IAAI,EAAE,KAAK,MAAM,EAAE,CAAA;SAAE,KAAK,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAAA;KACrF,CAAA;IACD,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,IAAI,CACX,mBAAmB,EACnB,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,qBAAqB,CAC3F,CAAA;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAeA;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,CAAC,UAAU,EAAE;IAC7D,SAAS,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAA;IAC7C,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,6BAA6B,CAAA;IACtC,OAAO,EAAE,mBAAmB,CAAA;CAC7B;;;iBAsBwB,OAAO;;;EAI/B"}
1
+ {"version":3,"file":"KeyAuthorization.d.ts","sourceRoot":"","sources":["../../../src/tempo/subscription/KeyAuthorization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAC9D,OAAO,EAA6B,KAAK,OAAO,EAAE,MAAM,MAAM,CAAA;AAG9D,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EACV,qBAAqB,EACrB,6BAA6B,EAC7B,sBAAsB,EACvB,MAAM,YAAY,CAAA;AAEnB,8DAA8D;AAC9D,eAAO,MAAM,gBAAgB,eAAe,CAAA;AAE5C,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,eAAe,CAAA;AASpD,KAAK,mBAAmB,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAIvF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEjF;AAED,wBAAgB,2BAA2B,CAAC,mBAAmB,EAAE,IAAI,GAAG,MAAM,CAmB7E;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IACnD,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,sBAAsB,CAAA;CACnC,GAAG,MAAM,CAsBT;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE;IACnD,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,aAAa,GAAG,YAAY,GAAG,qBAAqB,CAAC,CAAA;CACzF,QAeA;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,WAAW,CAAC;;;;GAW7D;AAED,mFAAmF;AACnF,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,WAAW,CAAC;;;;;;GAc7D;AAED;;;GAGG;AACH,wBAAsB,gCAAgC,CAAC,UAAU,EAAE;IACjE,SAAS,EAAE,qBAAqB,CAAA;IAChC,OAAO,EAAE;QACP,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE;YAAE,IAAI,EAAE,KAAK,MAAM,EAAE,CAAA;SAAE,KAAK,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAAA;KACrF,CAAA;IACD,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,IAAI,CACX,mBAAmB,EACnB,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,qBAAqB,CAC3F,CAAA;CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAeA;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,CAAC,UAAU,EAAE;IAC7D,SAAS,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAA;IAC7C,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,6BAA6B,CAAA;IACtC,OAAO,EAAE,mBAAmB,CAAA;CAC7B;;;iBAsBwB,OAAO;;;EAI/B"}
@@ -3,11 +3,14 @@ import { isAddress, isAddressEqual } from 'viem';
3
3
  import { VerificationFailedError } from '../../Errors.js';
4
4
  /** 4-byte selector for TIP-20 `transfer(address,uint256)`. */
5
5
  export const transferSelector = '0xa9059cbb';
6
- /** 4-byte selector for TIP-20 `transferWithMemo(address,uint256,bytes)`. */
6
+ /** 4-byte selector for TIP-20 `transferWithMemo(address,uint256,bytes32)`. */
7
7
  export const transferWithMemoSelector = '0x95777d59';
8
8
  const uint64Max = (1n << 64n) - 1n;
9
- const secondsPerDay = 86400n;
10
- const secondsPerWeek = 604800n;
9
+ const subscriptionPeriodUnitSeconds = {
10
+ dev_second: 1n,
11
+ day: 86400n,
12
+ week: 604800n,
13
+ };
11
14
  /**
12
15
  * Converts a subscription expiry timestamp into the Unix seconds value required by Tempo key
13
16
  * authorizations.
@@ -41,10 +44,10 @@ export function toSubscriptionPeriodSeconds(request) {
41
44
  if (!/^[1-9]\d*$/.test(request.periodCount)) {
42
45
  throw new VerificationFailedError({ reason: 'periodCount is invalid' });
43
46
  }
44
- if (request.periodUnit !== 'day' && request.periodUnit !== 'week') {
47
+ const unitSeconds = subscriptionPeriodUnitSeconds[request.periodUnit];
48
+ if (unitSeconds === undefined) {
45
49
  throw new VerificationFailedError({ reason: 'periodUnit is invalid' });
46
50
  }
47
- const unitSeconds = request.periodUnit === 'day' ? secondsPerDay : secondsPerWeek;
48
51
  const value = BigInt(request.periodCount) * unitSeconds;
49
52
  if (value > uint64Max) {
50
53
  throw new VerificationFailedError({
@@ -79,11 +82,6 @@ export function getSubscriptionScopes(request) {
79
82
  const currency = normalizeAddress(request.currency, 'currency');
80
83
  const recipient = normalizeAddress(request.recipient, 'recipient');
81
84
  return [
82
- {
83
- address: currency,
84
- selector: transferSelector,
85
- recipients: [recipient],
86
- },
87
85
  {
88
86
  address: currency,
89
87
  selector: transferWithMemoSelector,
@@ -93,15 +91,11 @@ export function getSubscriptionScopes(request) {
93
91
  }
94
92
  /** Builds the RPC `allowedCalls` payload passed to `wallet_authorizeAccessKey`. */
95
93
  export function getSubscriptionRpcAllowedCalls(request) {
96
- const [transfer, transferWithMemo] = getSubscriptionScopes(request);
94
+ const [transferWithMemo] = getSubscriptionScopes(request);
97
95
  return [
98
96
  {
99
97
  target: normalizeAddress(request.currency, 'currency'),
100
98
  selectorRules: [
101
- {
102
- selector: transfer.selector,
103
- recipients: transfer.recipients,
104
- },
105
99
  {
106
100
  selector: transferWithMemo.selector,
107
101
  recipients: transferWithMemo.recipients,
@@ -234,9 +228,9 @@ function assertAuthorizationLimit(limit, request) {
234
228
  }
235
229
  }
236
230
  function assertAuthorizationScopes(scopes, request) {
237
- if (!scopes || scopes.length < 1 || scopes.length > 2) {
231
+ if (!scopes || scopes.length !== 1) {
238
232
  throw new VerificationFailedError({
239
- reason: 'keyAuthorization must contain recipient-scoped transfer calls',
233
+ reason: 'keyAuthorization must contain a recipient-scoped transferWithMemo call',
240
234
  });
241
235
  }
242
236
  const currency = normalizeAddress(request.currency, 'currency');
@@ -258,9 +252,6 @@ function assertAuthorizationScopes(scopes, request) {
258
252
  throw new VerificationFailedError({ reason: 'keyAuthorization recipient mismatch' });
259
253
  }
260
254
  }
261
- if (!seen.has(transferSelector)) {
262
- throw new VerificationFailedError({ reason: 'keyAuthorization must allow transfer' });
263
- }
264
255
  if (!seen.has(transferWithMemoSelector)) {
265
256
  throw new VerificationFailedError({ reason: 'keyAuthorization must allow transferWithMemo' });
266
257
  }
@@ -1 +1 @@
1
- {"version":3,"file":"KeyAuthorization.js","sourceRoot":"","sources":["../../../src/tempo/subscription/KeyAuthorization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KeyAuthorization.js","sourceRoot":"","sources":["../../../src/tempo/subscription/KeyAuthorization.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { Address } from 'viem';
2
- /** Tempo-supported subscription period units. The shared intent also defines `month`, but Tempo cannot represent calendar-month periods exactly. */
3
- export type SubscriptionPeriodUnit = 'day' | 'week';
2
+ /** Tempo-supported subscription period units. Use `day` or `week` in production; `dev_*` units are for development and tests. */
3
+ export type SubscriptionPeriodUnit = 'dev_second' | 'day' | 'week';
4
4
  /** Access key information used to authorize recurring Tempo payments. */
5
5
  export type SubscriptionAccessKey = {
6
6
  accessKeyAddress: Address;
@@ -1 +1 @@
1
- {"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../../src/tempo/subscription/Types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,oJAAoJ;AACpJ,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,MAAM,CAAA;AAEnD,yEAAyE;AACzE,MAAM,MAAM,qBAAqB,GAAG;IAClC,gBAAgB,EAAE,OAAO,CAAA;IACzB,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAA;CAC3C,CAAA;AAED,4EAA4E;AAC5E,MAAM,MAAM,2BAA2B,GAAG,qBAAqB,GAAG;IAChE,UAAU,EAAE,KAAK,MAAM,EAAE,CAAA;CAC1B,CAAA;AAED,6EAA6E;AAC7E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAA;IAC7C,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,oDAAoD;AACpD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,SAAS,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAA;IAC7C,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS,CAAA;IAC5C,iBAAiB,EAAE,MAAM,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,uEAAuE;IACvE,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IACzD,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,sBAAsB,CAAA;IAClC,SAAS,EAAE,OAAO,GAAG,MAAM,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC/B,CAAA;AAED,8DAA8D;AAC9D,MAAM,MAAM,6BAA6B,GAAG;IAC1C,SAAS,EAAE,KAAK,MAAM,EAAE,CAAA;IACxB,IAAI,EAAE,kBAAkB,CAAA;CACzB,CAAA;AAED,uEAAuE;AACvE,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,SAAS,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAChC,CAAA"}
1
+ {"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../../src/tempo/subscription/Types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,iIAAiI;AACjI,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,KAAK,GAAG,MAAM,CAAA;AAElE,yEAAyE;AACzE,MAAM,MAAM,qBAAqB,GAAG;IAClC,gBAAgB,EAAE,OAAO,CAAA;IACzB,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAA;CAC3C,CAAA;AAED,4EAA4E;AAC5E,MAAM,MAAM,2BAA2B,GAAG,qBAAqB,GAAG;IAChE,UAAU,EAAE,KAAK,MAAM,EAAE,CAAA;CAC1B,CAAA;AAED,6EAA6E;AAC7E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAA;IAC7C,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,oDAAoD;AACpD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,SAAS,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAA;IAC7C,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS,CAAA;IAC5C,iBAAiB,EAAE,MAAM,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,uEAAuE;IACvE,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IACzD,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,sBAAsB,CAAA;IAClC,SAAS,EAAE,OAAO,GAAG,MAAM,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC/B,CAAA;AAED,8DAA8D;AAC9D,MAAM,MAAM,6BAA6B,GAAG;IAC1C,SAAS,EAAE,KAAK,MAAM,EAAE,CAAA;IACxB,IAAI,EAAE,kBAAkB,CAAA;CACzB,CAAA;AAED,uEAAuE;AACvE,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,SAAS,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAChC,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mppx",
3
3
  "type": "module",
4
- "version": "0.6.24",
4
+ "version": "0.6.26",
5
5
  "main": "./dist/index.js",
6
6
  "license": "MIT",
7
7
  "files": [
package/src/Method.ts CHANGED
@@ -129,9 +129,11 @@ export type Server<
129
129
  method extends Method = Method,
130
130
  defaults extends ExactPartial<z.input<method['schema']['request']>> = {},
131
131
  transportOverride = undefined,
132
+ extensions extends object = {},
132
133
  > = method & {
133
134
  authorize?: AuthorizeFn<method> | undefined
134
135
  defaults?: defaults | undefined
136
+ extensions?: extensions | undefined
135
137
  html?: Html.Options | undefined
136
138
  request?: RequestFn<method> | undefined
137
139
  respond?: RespondFn<method> | undefined
@@ -139,7 +141,7 @@ export type Server<
139
141
  transport?: transportOverride | undefined
140
142
  verify: VerifyFn<method>
141
143
  }
142
- export type AnyServer = Server<any, any, any>
144
+ export type AnyServer = Server<any, any, any, any>
143
145
 
144
146
  /** Credential creation function for a single method. */
145
147
  export type CreateCredentialFn<method extends Method, context = unknown> = (
@@ -288,22 +290,34 @@ export function toServer<
288
290
  const method extends Method,
289
291
  const defaults extends RequestDefaults<method> = {},
290
292
  const transportOverride extends Transport.AnyTransport | undefined = undefined,
293
+ const extensions extends object = {},
291
294
  >(
292
295
  method: method,
293
- options: toServer.Options<method, defaults, transportOverride>,
294
- ): Server<method, defaults, transportOverride> {
295
- const { authorize, defaults, html, request, respond, stableBinding, transport, verify } = options
296
+ options: toServer.Options<method, defaults, transportOverride, extensions>,
297
+ ): Server<method, defaults, transportOverride, extensions> {
298
+ const {
299
+ authorize,
300
+ defaults,
301
+ extensions,
302
+ html,
303
+ request,
304
+ respond,
305
+ stableBinding,
306
+ transport,
307
+ verify,
308
+ } = options
296
309
  return {
297
310
  ...method,
298
311
  authorize,
299
312
  defaults,
313
+ extensions,
300
314
  html,
301
315
  request,
302
316
  respond,
303
317
  stableBinding,
304
318
  transport,
305
319
  verify,
306
- } as Server<method, defaults, transportOverride>
320
+ } as Server<method, defaults, transportOverride, extensions>
307
321
  }
308
322
 
309
323
  export declare namespace toServer {
@@ -311,9 +325,11 @@ export declare namespace toServer {
311
325
  method extends Method,
312
326
  defaults extends RequestDefaults<method> = {},
313
327
  transportOverride extends Transport.AnyTransport | undefined = undefined,
328
+ extensions extends object = {},
314
329
  > = {
315
330
  authorize?: AuthorizeFn<method> | undefined
316
331
  defaults?: defaults | undefined
332
+ extensions?: extensions | undefined
317
333
  html?: Html.Options | undefined
318
334
  request?: RequestFn<method> | undefined
319
335
  respond?: RespondFn<method> | undefined
@@ -60,6 +60,20 @@ const betaMethod = Method.toServer(mockChargeB, {
60
60
  },
61
61
  })
62
62
 
63
+ const alphaMethodWithExtension = Method.toServer<
64
+ typeof mockChargeA,
65
+ {},
66
+ undefined,
67
+ { renew: () => string }
68
+ >(mockChargeA, {
69
+ extensions: {
70
+ renew: () => 'renewed',
71
+ },
72
+ async verify() {
73
+ return mockReceipt('alpha')
74
+ },
75
+ })
76
+
63
77
  const challengeOpts = {
64
78
  amount: '1000',
65
79
  currency: '0x0000000000000000000000000000000000000001',
@@ -150,4 +164,14 @@ describe('wrap: nested handlers', () => {
150
164
  expect(wrapped.realm).toBe(realm)
151
165
  expect(wrapped.transport).toBe(mppx.transport)
152
166
  })
167
+
168
+ test('method extensions are copied to wrapped handlers', () => {
169
+ const mppx = Mppx.create({ methods: [alphaMethodWithExtension], realm, secretKey }) as any
170
+
171
+ const wrapped = wrap(mppx, (_methodFn, _options) => 'wrapped') as any
172
+
173
+ expect(wrapped.charge.renew()).toBe('renewed')
174
+ expect(wrapped.alpha.charge.renew()).toBe('renewed')
175
+ expect(wrapped['alpha/charge'].renew()).toBe('renewed')
176
+ })
153
177
  })
@@ -11,10 +11,13 @@ type DiscoveryMeta = Pick<DiscoveryHandler, '_internal'>
11
11
  /** Recursively wraps nested handler objects one level deep. */
12
12
  type WrapNested<obj, handler> = {
13
13
  [key in keyof obj]: obj[key] extends (options: infer options) => any
14
- ? (o: options) => handler & DiscoveryMeta
14
+ ? WrappedMethod<obj[key], options, handler>
15
15
  : obj[key]
16
16
  }
17
17
 
18
+ type WrappedMethod<method, options, handler> = ((o: options) => handler & DiscoveryMeta) &
19
+ Omit<method, keyof Function>
20
+
18
21
  export type Wrap<mppx, handler> = {
19
22
  // `compose` is omitted — it returns a raw HTTP handler, not a
20
23
  // middleware-shaped result. Use `Mppx.compose()` static instead.
@@ -22,7 +25,7 @@ export type Wrap<mppx, handler> = {
22
25
  [key in keyof mppx as key extends 'compose' ? never : key]: key extends Mppx.ReservedKey
23
26
  ? mppx[key]
24
27
  : mppx[key] extends (options: infer options) => any
25
- ? (o: options) => handler & DiscoveryMeta
28
+ ? WrappedMethod<mppx[key], options, handler>
26
29
  : mppx[key] extends Record<string, (options: any) => any>
27
30
  ? WrapNested<mppx[key], handler>
28
31
  : mppx[key]
@@ -50,6 +53,7 @@ export function wrap<mppx extends Mppx.Mppx<any, any>, handler>(
50
53
  if (configured._internal) handler._internal = configured._internal
51
54
  return handler
52
55
  }
56
+ Object.assign(wrapWithMeta, methodFn)
53
57
  result[key] = wrapWithMeta
54
58
  // Also set shorthand intent key if Mppx registered it (no collision)
55
59
  if (!reservedMppxKeys.has(mi.intent) && (mppx as any)[mi.intent])
@@ -319,7 +319,8 @@ type UniqueIntentHandlers<
319
319
  Extract<methods[number], { intent: method_name }>,
320
320
  EffectiveTransportOf<Extract<methods[number], { intent: method_name }>, transport>,
321
321
  NonNullable<Extract<methods[number], { intent: method_name }>['defaults']>
322
- >
322
+ > &
323
+ MethodExtensions<Extract<methods[number], { intent: method_name }>>
323
324
  }
324
325
 
325
326
  /** Nested handlers: `mppx.tempo.charge(...)`, grouped by method name then intent. */
@@ -332,7 +333,8 @@ type NestedHandlers<
332
333
  mi,
333
334
  EffectiveTransportOf<mi, transport>,
334
335
  NonNullable<mi['defaults']>
335
- > & { _method: mi }
336
+ > &
337
+ MethodExtensions<mi> & { _method: mi }
336
338
  }
337
339
  }
338
340
 
@@ -344,10 +346,19 @@ type Handlers<
344
346
  mi,
345
347
  EffectiveTransportOf<mi, transport>,
346
348
  NonNullable<mi['defaults']>
347
- >
349
+ > &
350
+ MethodExtensions<mi>
348
351
  } & UniqueIntentHandlers<methods, transport> &
349
352
  NestedHandlers<methods, transport>
350
353
 
354
+ type MethodExtensions<method extends Method.AnyServer> = method extends {
355
+ extensions?: (infer extensions) | undefined
356
+ }
357
+ ? NonNullable<extensions> extends object
358
+ ? NonNullable<extensions>
359
+ : {}
360
+ : {}
361
+
351
362
  /** Nested challenge generators: `mppx.challenge.tempo.charge(...)`. */
352
363
  type ChallengeHandlers<methods extends readonly Method.AnyServer[]> = {
353
364
  [name in methods[number]['name']]: {
@@ -407,7 +418,7 @@ export function create<
407
418
  assertNoReservedMppxKeys(methods as readonly Method.AnyServer[])
408
419
 
409
420
  for (const mi of methods) {
410
- handlers[`${mi.name}/${mi.intent}`] = createMethodFn({
421
+ const fn = createMethodFn({
411
422
  authorize: mi.authorize as never,
412
423
  defaults: mi.defaults,
413
424
  method: mi,
@@ -420,6 +431,8 @@ export function create<
420
431
  transport: (mi.transport ?? transport) as never,
421
432
  verify: mi.verify as never,
422
433
  })
434
+ if (mi.extensions) Object.assign(fn, mi.extensions)
435
+ handlers[`${mi.name}/${mi.intent}`] = fn
423
436
  }
424
437
 
425
438
  // Also set shorthand intent key when there's no collision
@@ -313,6 +313,23 @@ describe('subscription', () => {
313
313
  expect(request.periodCount).toBe(expected)
314
314
  })
315
315
 
316
+ test.each(['dev_second'] as const)(
317
+ 'schema: accepts %s subscription periods for development and tests',
318
+ (periodUnit) => {
319
+ const request = Methods.subscription.schema.request.parse({
320
+ amount: '10',
321
+ currency: '0x20c0000000000000000000000000000000000001',
322
+ decimals: 6,
323
+ periodCount: '5',
324
+ periodUnit,
325
+ recipient: '0x1234567890abcdef1234567890abcdef12345678',
326
+ subscriptionExpires: '2026-01-01T00:00:00Z',
327
+ })
328
+
329
+ expect(request.periodUnit).toBe(periodUnit)
330
+ },
331
+ )
332
+
316
333
  test('schema: rejects non-numeric periodCount', () => {
317
334
  const result = Methods.subscription.schema.request.safeParse({
318
335
  amount: '10',
@@ -19,8 +19,11 @@ const split = z.object({
19
19
  })
20
20
 
21
21
  const uint64Max = (1n << 64n) - 1n
22
- const secondsPerDay = 86_400n
23
- const secondsPerWeek = 604_800n
22
+ const subscriptionPeriodUnitSeconds = {
23
+ dev_second: 1n,
24
+ day: 86_400n,
25
+ week: 604_800n,
26
+ } satisfies Record<SubscriptionPeriodUnit, bigint>
24
27
 
25
28
  const normalizedAddress = z.pipe(
26
29
  z.address(),
@@ -46,7 +49,11 @@ const subscriptionExpires = z
46
49
  ),
47
50
  )
48
51
 
49
- const subscriptionPeriodUnits = ['day', 'week'] as const satisfies readonly SubscriptionPeriodUnit[]
52
+ const subscriptionPeriodUnits = [
53
+ 'dev_second',
54
+ 'day',
55
+ 'week',
56
+ ] as const satisfies readonly SubscriptionPeriodUnit[]
50
57
  const subscriptionPeriodUnit = z.enum(subscriptionPeriodUnits)
51
58
 
52
59
  const uint64String = z
@@ -82,7 +89,8 @@ function subscriptionPeriodFitsUint64(value: unknown) {
82
89
  periodUnit: SubscriptionPeriodUnit
83
90
  }
84
91
  try {
85
- const unitSeconds = periodUnit === 'day' ? secondsPerDay : secondsPerWeek
92
+ const unitSeconds = subscriptionPeriodUnitSeconds[periodUnit]
93
+ if (unitSeconds === undefined) return false
86
94
  return BigInt(periodCount) * unitSeconds <= uint64Max
87
95
  } catch {
88
96
  return false
@@ -4,7 +4,10 @@ import { privateKeyToAccount } from 'viem/accounts'
4
4
  import { describe, expect, test } from 'vp/test'
5
5
 
6
6
  import * as Methods from '../Methods.js'
7
- import { signSubscriptionKeyAuthorization } from '../subscription/KeyAuthorization.js'
7
+ import {
8
+ signSubscriptionKeyAuthorization,
9
+ transferWithMemoSelector,
10
+ } from '../subscription/KeyAuthorization.js'
8
11
  import type { SubscriptionAccessKey } from '../subscription/Types.js'
9
12
  import { subscription } from './Subscription.js'
10
13
 
@@ -142,12 +145,7 @@ describe('tempo.subscription client', () => {
142
145
  scopes: [
143
146
  {
144
147
  address: expect.stringMatching(/^0x[0-9a-fA-F]{40}$/),
145
- selector: expect.stringMatching(/^0x/),
146
- recipients: expect.any(Array),
147
- },
148
- {
149
- address: expect.stringMatching(/^0x[0-9a-fA-F]{40}$/),
150
- selector: expect.stringMatching(/^0x/),
148
+ selector: transferWithMemoSelector,
151
149
  recipients: expect.any(Array),
152
150
  },
153
151
  ],
@@ -18,6 +18,17 @@ test('tempo.charge store parameter requires AtomicStore', () => {
18
18
  tempo.charge({ store: Store.memory() })
19
19
  })
20
20
 
21
+ test('tempo.charge validateSender exposes only sender context', () => {
22
+ tempo.charge({
23
+ validateSender({ expectedSender, sender, source }) {
24
+ expectTypeOf(expectedSender).toEqualTypeOf<`0x${string}`>()
25
+ expectTypeOf(sender).toEqualTypeOf<`0x${string}`>()
26
+ expectTypeOf(source).toEqualTypeOf<{ address: `0x${string}`; chainId: number } | undefined>()
27
+ return true
28
+ },
29
+ })
30
+ })
31
+
21
32
  test('tempo.session store parameter requires AtomicStore', () => {
22
33
  type SessionParameters = NonNullable<Parameters<typeof tempo.session>[0]>
23
34
  expectTypeOf<SessionParameters['store']>().toEqualTypeOf<Store.AtomicStore | undefined>()