mppx 0.1.0 → 0.2.0

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 (231) hide show
  1. package/README.md +1 -1
  2. package/dist/Challenge.d.ts +18 -18
  3. package/dist/Challenge.d.ts.map +1 -1
  4. package/dist/Challenge.js +8 -8
  5. package/dist/Challenge.js.map +1 -1
  6. package/dist/Errors.d.ts +58 -8
  7. package/dist/Errors.d.ts.map +1 -1
  8. package/dist/Errors.js +51 -9
  9. package/dist/Errors.js.map +1 -1
  10. package/dist/Method.d.ts +154 -0
  11. package/dist/Method.d.ts.map +1 -0
  12. package/dist/Method.js +81 -0
  13. package/dist/Method.js.map +1 -0
  14. package/dist/PaymentRequest.d.ts +5 -5
  15. package/dist/PaymentRequest.d.ts.map +1 -1
  16. package/dist/PaymentRequest.js +5 -5
  17. package/dist/cli.js +67 -18
  18. package/dist/cli.js.map +1 -1
  19. package/dist/client/Methods.d.ts +2 -2
  20. package/dist/client/Methods.d.ts.map +1 -1
  21. package/dist/client/Methods.js +2 -2
  22. package/dist/client/Methods.js.map +1 -1
  23. package/dist/client/Mppx.d.ts +12 -7
  24. package/dist/client/Mppx.d.ts.map +1 -1
  25. package/dist/client/Mppx.js +10 -5
  26. package/dist/client/Mppx.js.map +1 -1
  27. package/dist/client/internal/Fetch.d.ts +13 -11
  28. package/dist/client/internal/Fetch.d.ts.map +1 -1
  29. package/dist/client/internal/Fetch.js +8 -4
  30. package/dist/client/internal/Fetch.js.map +1 -1
  31. package/dist/index.d.ts +1 -2
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +1 -2
  34. package/dist/index.js.map +1 -1
  35. package/dist/mcp-sdk/client/McpClient.d.ts +6 -6
  36. package/dist/mcp-sdk/client/McpClient.d.ts.map +1 -1
  37. package/dist/mcp-sdk/client/McpClient.js +4 -4
  38. package/dist/mcp-sdk/client/McpClient.js.map +1 -1
  39. package/dist/middlewares/elysia.d.ts +1 -1
  40. package/dist/middlewares/express.d.ts +1 -1
  41. package/dist/middlewares/hono.d.ts +1 -1
  42. package/dist/middlewares/internal/mppx.d.ts +7 -7
  43. package/dist/middlewares/internal/mppx.d.ts.map +1 -1
  44. package/dist/middlewares/internal/mppx.js +5 -5
  45. package/dist/middlewares/internal/mppx.js.map +1 -1
  46. package/dist/middlewares/nextjs.d.ts +1 -1
  47. package/dist/proxy/Service.js +2 -2
  48. package/dist/proxy/Service.js.map +1 -1
  49. package/dist/server/Methods.d.ts +2 -2
  50. package/dist/server/Methods.d.ts.map +1 -1
  51. package/dist/server/Methods.js +2 -2
  52. package/dist/server/Methods.js.map +1 -1
  53. package/dist/server/Mppx.d.ts +17 -17
  54. package/dist/server/Mppx.d.ts.map +1 -1
  55. package/dist/server/Mppx.js +9 -9
  56. package/dist/server/Mppx.js.map +1 -1
  57. package/dist/stripe/{Intents.d.ts → Methods.d.ts} +22 -22
  58. package/dist/stripe/Methods.d.ts.map +1 -0
  59. package/dist/stripe/Methods.js +42 -0
  60. package/dist/stripe/Methods.js.map +1 -0
  61. package/dist/stripe/client/Charge.d.ts +48 -44
  62. package/dist/stripe/client/Charge.d.ts.map +1 -1
  63. package/dist/stripe/client/Charge.js +22 -17
  64. package/dist/stripe/client/Charge.js.map +1 -1
  65. package/dist/stripe/client/{MethodIntents.d.ts → Methods.d.ts} +25 -24
  66. package/dist/stripe/client/Methods.d.ts.map +1 -0
  67. package/dist/stripe/client/{MethodIntents.js → Methods.js} +4 -4
  68. package/dist/stripe/client/Methods.js.map +1 -0
  69. package/dist/stripe/client/index.d.ts +1 -1
  70. package/dist/stripe/client/index.d.ts.map +1 -1
  71. package/dist/stripe/client/index.js +1 -1
  72. package/dist/stripe/client/index.js.map +1 -1
  73. package/dist/stripe/index.d.ts +1 -1
  74. package/dist/stripe/index.d.ts.map +1 -1
  75. package/dist/stripe/index.js +1 -1
  76. package/dist/stripe/index.js.map +1 -1
  77. package/dist/stripe/internal/types.d.ts +25 -0
  78. package/dist/stripe/internal/types.d.ts.map +1 -0
  79. package/dist/stripe/internal/types.js +2 -0
  80. package/dist/stripe/internal/types.js.map +1 -0
  81. package/dist/stripe/server/Charge.d.ts +47 -28
  82. package/dist/stripe/server/Charge.d.ts.map +1 -1
  83. package/dist/stripe/server/Charge.js +90 -32
  84. package/dist/stripe/server/Charge.js.map +1 -1
  85. package/dist/stripe/server/{MethodIntents.d.ts → Methods.d.ts} +24 -23
  86. package/dist/stripe/server/Methods.d.ts.map +1 -0
  87. package/dist/stripe/server/{MethodIntents.js → Methods.js} +3 -3
  88. package/dist/stripe/server/Methods.js.map +1 -0
  89. package/dist/stripe/server/index.d.ts +1 -1
  90. package/dist/stripe/server/index.d.ts.map +1 -1
  91. package/dist/stripe/server/index.js +1 -1
  92. package/dist/stripe/server/index.js.map +1 -1
  93. package/dist/tempo/{Intents.d.ts → Methods.d.ts} +72 -69
  94. package/dist/tempo/Methods.d.ts.map +1 -0
  95. package/dist/tempo/Methods.js +118 -0
  96. package/dist/tempo/Methods.js.map +1 -0
  97. package/dist/tempo/client/ChannelOps.d.ts +1 -1
  98. package/dist/tempo/client/ChannelOps.js +1 -1
  99. package/dist/tempo/client/Charge.d.ts +25 -25
  100. package/dist/tempo/client/Charge.d.ts.map +1 -1
  101. package/dist/tempo/client/Charge.js +3 -3
  102. package/dist/tempo/client/Charge.js.map +1 -1
  103. package/dist/tempo/client/{MethodIntents.d.ts → Methods.d.ts} +74 -70
  104. package/dist/tempo/client/Methods.d.ts.map +1 -0
  105. package/dist/tempo/client/{MethodIntents.js → Methods.js} +3 -3
  106. package/dist/tempo/client/Methods.js.map +1 -0
  107. package/dist/tempo/client/Session.d.ts +49 -45
  108. package/dist/tempo/client/Session.d.ts.map +1 -1
  109. package/dist/tempo/client/Session.js +4 -4
  110. package/dist/tempo/client/Session.js.map +1 -1
  111. package/dist/tempo/client/SessionManager.d.ts +1 -1
  112. package/dist/tempo/client/SessionManager.d.ts.map +1 -1
  113. package/dist/tempo/client/SessionManager.js +10 -5
  114. package/dist/tempo/client/SessionManager.js.map +1 -1
  115. package/dist/tempo/client/index.d.ts +1 -1
  116. package/dist/tempo/client/index.d.ts.map +1 -1
  117. package/dist/tempo/client/index.js +1 -1
  118. package/dist/tempo/client/index.js.map +1 -1
  119. package/dist/tempo/index.d.ts +1 -1
  120. package/dist/tempo/index.d.ts.map +1 -1
  121. package/dist/tempo/index.js +1 -1
  122. package/dist/tempo/index.js.map +1 -1
  123. package/dist/tempo/internal/defaults.d.ts +1 -1
  124. package/dist/tempo/internal/defaults.js +1 -1
  125. package/dist/tempo/server/Charge.d.ts +27 -27
  126. package/dist/tempo/server/Charge.d.ts.map +1 -1
  127. package/dist/tempo/server/Charge.js +3 -3
  128. package/dist/tempo/server/Charge.js.map +1 -1
  129. package/dist/tempo/server/{MethodIntents.d.ts → Methods.d.ts} +73 -69
  130. package/dist/tempo/server/Methods.d.ts.map +1 -0
  131. package/dist/tempo/server/{MethodIntents.js → Methods.js} +4 -4
  132. package/dist/tempo/server/Methods.js.map +1 -0
  133. package/dist/tempo/server/Session.d.ts +51 -47
  134. package/dist/tempo/server/Session.d.ts.map +1 -1
  135. package/dist/tempo/server/Session.js +4 -4
  136. package/dist/tempo/server/Session.js.map +1 -1
  137. package/dist/tempo/server/index.d.ts +6 -0
  138. package/dist/tempo/server/index.d.ts.map +1 -0
  139. package/dist/tempo/server/index.js +6 -0
  140. package/dist/tempo/server/index.js.map +1 -0
  141. package/dist/tempo/server/internal/transport.d.ts.map +1 -1
  142. package/dist/tempo/server/internal/transport.js +2 -1
  143. package/dist/tempo/server/internal/transport.js.map +1 -1
  144. package/package.json +1 -1
  145. package/src/Challenge.test-d.ts +3 -3
  146. package/src/Challenge.test.ts +6 -6
  147. package/src/Challenge.ts +34 -34
  148. package/src/Errors.test.ts +75 -21
  149. package/src/Errors.ts +74 -9
  150. package/src/Method.test.ts +76 -0
  151. package/src/Method.ts +228 -0
  152. package/src/PaymentRequest.test.ts +4 -4
  153. package/src/PaymentRequest.ts +9 -9
  154. package/src/cli.test.ts +12 -22
  155. package/src/cli.ts +74 -21
  156. package/src/client/Methods.ts +2 -2
  157. package/src/client/Mppx.test-d.ts +6 -6
  158. package/src/client/Mppx.test.ts +26 -22
  159. package/src/client/Mppx.ts +29 -13
  160. package/src/client/Transport.test.ts +2 -2
  161. package/src/client/internal/Fetch.test.ts +35 -1
  162. package/src/client/internal/Fetch.ts +36 -27
  163. package/src/index.ts +1 -2
  164. package/src/mcp-sdk/client/McpClient.ts +11 -13
  165. package/src/middlewares/elysia.ts +1 -1
  166. package/src/middlewares/express.ts +1 -1
  167. package/src/middlewares/hono.ts +1 -1
  168. package/src/middlewares/internal/mppx.ts +10 -10
  169. package/src/middlewares/nextjs.ts +1 -1
  170. package/src/proxy/Service.ts +2 -2
  171. package/src/server/Methods.ts +2 -2
  172. package/src/server/Mppx.test-d.ts +27 -29
  173. package/src/server/Mppx.test.ts +23 -19
  174. package/src/server/Mppx.ts +43 -43
  175. package/src/server/Transport.test.ts +3 -3
  176. package/src/stripe/Charge.integration.test.ts +4 -1
  177. package/src/stripe/{Intents.test.ts → Methods.test.ts} +12 -12
  178. package/src/stripe/Methods.ts +45 -0
  179. package/src/stripe/client/Charge.test.ts +189 -0
  180. package/src/stripe/client/Charge.ts +40 -31
  181. package/src/stripe/client/{MethodIntents.ts → Methods.ts} +3 -3
  182. package/src/stripe/client/index.ts +1 -1
  183. package/src/stripe/index.ts +1 -1
  184. package/src/stripe/internal/types.ts +22 -0
  185. package/src/stripe/server/Charge.test.ts +241 -0
  186. package/src/stripe/server/Charge.ts +124 -38
  187. package/src/stripe/server/{MethodIntents.ts → Methods.ts} +2 -2
  188. package/src/stripe/server/index.ts +1 -1
  189. package/src/tempo/{Intents.test.ts → Methods.test.ts} +15 -15
  190. package/src/tempo/{Intents.ts → Methods.ts} +77 -22
  191. package/src/tempo/client/ChannelOps.ts +1 -1
  192. package/src/tempo/client/Charge.ts +3 -3
  193. package/src/tempo/client/{MethodIntents.ts → Methods.ts} +2 -2
  194. package/src/tempo/client/Session.ts +4 -4
  195. package/src/tempo/client/SessionManager.ts +11 -5
  196. package/src/tempo/client/index.ts +1 -1
  197. package/src/tempo/index.ts +1 -1
  198. package/src/tempo/internal/defaults.ts +1 -1
  199. package/src/tempo/server/Charge.ts +4 -7
  200. package/src/tempo/server/{MethodIntents.ts → Methods.ts} +3 -3
  201. package/src/tempo/server/Session.test.ts +4 -7
  202. package/src/tempo/server/Session.ts +6 -6
  203. package/src/tempo/server/index.ts +1 -1
  204. package/src/tempo/server/internal/transport.ts +3 -2
  205. package/dist/Intent.d.ts +0 -101
  206. package/dist/Intent.d.ts.map +0 -1
  207. package/dist/Intent.js +0 -83
  208. package/dist/Intent.js.map +0 -1
  209. package/dist/MethodIntent.d.ts +0 -225
  210. package/dist/MethodIntent.d.ts.map +0 -1
  211. package/dist/MethodIntent.js +0 -156
  212. package/dist/MethodIntent.js.map +0 -1
  213. package/dist/stripe/Intents.d.ts.map +0 -1
  214. package/dist/stripe/Intents.js +0 -27
  215. package/dist/stripe/Intents.js.map +0 -1
  216. package/dist/stripe/client/MethodIntents.d.ts.map +0 -1
  217. package/dist/stripe/client/MethodIntents.js.map +0 -1
  218. package/dist/stripe/server/MethodIntents.d.ts.map +0 -1
  219. package/dist/stripe/server/MethodIntents.js.map +0 -1
  220. package/dist/tempo/Intents.d.ts.map +0 -1
  221. package/dist/tempo/Intents.js +0 -81
  222. package/dist/tempo/Intents.js.map +0 -1
  223. package/dist/tempo/client/MethodIntents.d.ts.map +0 -1
  224. package/dist/tempo/client/MethodIntents.js.map +0 -1
  225. package/dist/tempo/server/MethodIntents.d.ts.map +0 -1
  226. package/dist/tempo/server/MethodIntents.js.map +0 -1
  227. package/src/Intent.test.ts +0 -180
  228. package/src/Intent.ts +0 -109
  229. package/src/MethodIntent.test.ts +0 -303
  230. package/src/MethodIntent.ts +0 -388
  231. package/src/stripe/Intents.ts +0 -27
@@ -1,20 +1,31 @@
1
- import * as MethodIntent from '../../MethodIntent.js';
1
+ import type * as Challenge from '../../Challenge.js';
2
+ import * as Method from '../../Method.js';
2
3
  import * as z from '../../zod.js';
4
+ import type { StripeJs } from '../internal/types.js';
5
+ import * as Methods from '../Methods.js';
3
6
  /**
4
7
  * Creates a Stripe charge method intent for usage on the client.
5
8
  *
6
- * Accepts a `createSpt` callback that handles SPT creation (requires
7
- * a secret key, so typically proxied through a server endpoint).
9
+ * Accepts a `createToken` callback that handles SPT creation (requires
10
+ * a secret key, so typically proxied through a server endpoint) and
11
+ * returns a credential for retrying the request.
8
12
  *
9
13
  * The `paymentMethod` (e.g. from Stripe Elements) can be provided at
10
14
  * initialization or at credential-creation time via `context`.
11
15
  *
16
+ * Optionally accepts a `client` (a Stripe.js instance from `@stripe/stripe-js`)
17
+ * which is forwarded to the `createToken` callback for use with Elements.
18
+ *
12
19
  * @example
13
20
  * ```ts
21
+ * import { loadStripe } from '@stripe/stripe-js'
14
22
  * import { stripe } from 'mppx/client'
15
23
  *
24
+ * const stripeJs = await loadStripe('pk_...')
25
+ *
16
26
  * const charge = stripe.charge({
17
- * createSpt: async ({ paymentMethod, amount, currency, networkId, expiresAt, metadata }) => {
27
+ * client: stripeJs,
28
+ * createToken: async ({ amount, currency, expiresAt, metadata, networkId, paymentMethod }) => {
18
29
  * const res = await fetch('/api/create-spt', {
19
30
  * method: 'POST',
20
31
  * headers: { 'Content-Type': 'application/json' },
@@ -24,17 +35,18 @@ import * as z from '../../zod.js';
24
35
  * return spt
25
36
  * },
26
37
  * })
27
- *
28
- * // paymentMethod comes from Stripe Elements at credential-creation time
29
- * const credential = await charge.createCredential({
30
- * challenge,
31
- * context: { paymentMethod: 'pm_xxx' },
32
- * })
33
38
  * ```
34
39
  */
35
- export declare function charge(parameters: charge.Parameters): MethodIntent.Client<MethodIntent.MethodIntent<{
36
- readonly name: "charge";
40
+ export declare function charge(parameters: charge.Parameters): Method.Client<{
41
+ readonly name: "stripe";
42
+ readonly intent: "charge";
37
43
  readonly schema: {
44
+ readonly credential: {
45
+ readonly payload: z.ZodMiniObject<{
46
+ externalId: z.ZodMiniOptional<z.ZodMiniString<string>>;
47
+ spt: z.ZodMiniString<string>;
48
+ }, z.core.$strip>;
49
+ };
38
50
  readonly request: z.ZodMiniPipe<z.ZodMiniObject<{
39
51
  amount: z.ZodMiniString<string>;
40
52
  currency: z.ZodMiniString<string>;
@@ -42,9 +54,17 @@ export declare function charge(parameters: charge.Parameters): MethodIntent.Clie
42
54
  description: z.ZodMiniOptional<z.ZodMiniString<string>>;
43
55
  expires: z.ZodMiniDefault<z.ZodMiniString<string>>;
44
56
  externalId: z.ZodMiniOptional<z.ZodMiniString<string>>;
57
+ metadata: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
58
+ networkId: z.ZodMiniString<string>;
59
+ paymentMethodTypes: z.ZodMiniArray<z.ZodMiniString<string>>;
45
60
  recipient: z.ZodMiniOptional<z.ZodMiniString<string>>;
46
61
  }, z.core.$strip>, z.ZodMiniTransform<{
47
62
  amount: string;
63
+ methodDetails: {
64
+ metadata?: Record<string, string> | undefined;
65
+ networkId: string;
66
+ paymentMethodTypes: string[];
67
+ };
48
68
  currency: string;
49
69
  expires: string;
50
70
  description?: string | undefined;
@@ -55,60 +75,44 @@ export declare function charge(parameters: charge.Parameters): MethodIntent.Clie
55
75
  currency: string;
56
76
  decimals: number;
57
77
  expires: string;
78
+ networkId: string;
79
+ paymentMethodTypes: string[];
58
80
  description?: string | undefined;
59
81
  externalId?: string | undefined;
82
+ metadata?: Record<string, string> | undefined;
60
83
  recipient?: string | undefined;
61
84
  }>>;
62
85
  };
63
- }, {
64
- readonly method: "stripe";
65
- readonly schema: {
66
- readonly credential: {
67
- readonly payload: z.ZodMiniObject<{
68
- spt: z.ZodMiniString<string>;
69
- externalId: z.ZodMiniOptional<z.ZodMiniString<string>>;
70
- }, z.core.$strip>;
71
- };
72
- readonly request: {
73
- readonly methodDetails: z.ZodMiniObject<{
74
- networkId: z.ZodMiniString<string>;
75
- paymentMethodTypes: z.ZodMiniArray<z.ZodMiniString<string>>;
76
- metadata: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniString<string>>>;
77
- }, z.core.$strip>;
78
- };
79
- };
80
- }>, z.ZodMiniObject<{
86
+ }, z.ZodMiniObject<{
81
87
  paymentMethod: z.ZodMiniOptional<z.ZodMiniString<string>>;
82
88
  }, z.core.$strip>>;
83
89
  export declare namespace charge {
84
90
  type Parameters = {
85
- /**
86
- * Creates a Shared Payment Token (SPT) for the given parameters.
87
- *
88
- * SPT creation requires a Stripe secret key, so this typically
89
- * proxies through a server endpoint (e.g. `POST /api/create-spt`).
90
- * If you are running a client in an enviroment with a secret key, you can just create the
91
- * SPT directly in this callback.
92
- */
93
- createSpt: (parameters: CreateSptParameters) => Promise<string>;
91
+ /** Stripe.js instance from `@stripe/stripe-js`. Forwarded to `createToken` for use with Elements. */
92
+ client?: StripeJs | undefined;
93
+ /** Called when a Stripe challenge is received. Create an SPT to retry. */
94
+ createToken: (parameters: OnChallengeParameters) => Promise<string>;
94
95
  /** Optional client-side external reference ID for the credential payload. */
95
96
  externalId?: string | undefined;
96
97
  /** Default payment method ID. Overridden by `context.paymentMethod`. */
97
98
  paymentMethod?: string | undefined;
98
99
  };
99
- type CreateSptParameters = {
100
- /** Stripe payment method ID (e.g. from Stripe Elements). */
101
- paymentMethod: string;
100
+ type OnChallengeParameters = {
102
101
  /** Payment amount (in smallest currency unit). */
103
102
  amount: string;
103
+ challenge: Challenge.Challenge<z.output<typeof Methods.charge.schema.request>, typeof Methods.charge.intent, typeof Methods.charge.name>;
104
+ /** Stripe.js instance, if provided to `stripe.charge()`. */
105
+ client?: StripeJs | undefined;
104
106
  /** Three-letter ISO currency code. */
105
107
  currency: string;
106
- /** Stripe Business Network profile ID. */
107
- networkId: string | undefined;
108
108
  /** SPT expiration as a Unix timestamp (seconds). */
109
109
  expiresAt: number;
110
110
  /** Optional metadata to associate with the SPT. */
111
111
  metadata?: Record<string, string> | undefined;
112
+ /** Stripe Business Network profile ID. */
113
+ networkId: string | undefined;
114
+ /** Stripe payment method ID (e.g. from Stripe Elements). */
115
+ paymentMethod?: string | undefined;
112
116
  };
113
117
  }
114
118
  //# sourceMappingURL=Charge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Charge.d.ts","sourceRoot":"","sources":["../../../src/stripe/client/Charge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAGjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAgDnD;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,UAAU,GAAG;QAChB;;;;;;;WAOG;QACH,SAAS,EAAE,CAAC,UAAU,EAAE,mBAAmB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;QAC/D,6EAA6E;QAC7E,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC/B,wEAAwE;QACxE,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACnC,CAAA;IAED,KAAK,mBAAmB,GAAG;QACzB,4DAA4D;QAC5D,aAAa,EAAE,MAAM,CAAA;QACrB,kDAAkD;QAClD,MAAM,EAAE,MAAM,CAAA;QACd,sCAAsC;QACtC,QAAQ,EAAE,MAAM,CAAA;QAChB,0CAA0C;QAC1C,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;QAC7B,oDAAoD;QACpD,SAAS,EAAE,MAAM,CAAA;QACjB,mDAAmD;QACnD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;KAC9C,CAAA;CACF"}
1
+ {"version":3,"file":"Charge.d.ts","sourceRoot":"","sources":["../../../src/stripe/client/Charge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,SAAS,MAAM,oBAAoB,CAAA;AAEpD,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAmDnD;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,UAAU,GAAG;QAChB,qGAAqG;QACrG,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;QAC7B,0EAA0E;QAC1E,WAAW,EAAE,CAAC,UAAU,EAAE,qBAAqB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;QACnE,6EAA6E;QAC7E,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC/B,wEAAwE;QACxE,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACnC,CAAA;IAED,KAAK,qBAAqB,GAAG;QAC3B,kDAAkD;QAClD,MAAM,EAAE,MAAM,CAAA;QACd,SAAS,EAAE,SAAS,CAAC,SAAS,CAC5B,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAC9C,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,EAC5B,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAC3B,CAAA;QACD,4DAA4D;QAC5D,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;QAC7B,sCAAsC;QACtC,QAAQ,EAAE,MAAM,CAAA;QAChB,oDAAoD;QACpD,SAAS,EAAE,MAAM,CAAA;QACjB,mDAAmD;QACnD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;QAC7C,0CAA0C;QAC1C,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;QAC7B,4DAA4D;QAC5D,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACnC,CAAA;CACF"}
@@ -1,22 +1,30 @@
1
1
  import * as Credential from '../../Credential.js';
2
- import * as MethodIntent from '../../MethodIntent.js';
2
+ import * as Method from '../../Method.js';
3
3
  import * as z from '../../zod.js';
4
- import * as Intents from '../Intents.js';
4
+ import * as Methods from '../Methods.js';
5
5
  /**
6
6
  * Creates a Stripe charge method intent for usage on the client.
7
7
  *
8
- * Accepts a `createSpt` callback that handles SPT creation (requires
9
- * a secret key, so typically proxied through a server endpoint).
8
+ * Accepts a `createToken` callback that handles SPT creation (requires
9
+ * a secret key, so typically proxied through a server endpoint) and
10
+ * returns a credential for retrying the request.
10
11
  *
11
12
  * The `paymentMethod` (e.g. from Stripe Elements) can be provided at
12
13
  * initialization or at credential-creation time via `context`.
13
14
  *
15
+ * Optionally accepts a `client` (a Stripe.js instance from `@stripe/stripe-js`)
16
+ * which is forwarded to the `createToken` callback for use with Elements.
17
+ *
14
18
  * @example
15
19
  * ```ts
20
+ * import { loadStripe } from '@stripe/stripe-js'
16
21
  * import { stripe } from 'mppx/client'
17
22
  *
23
+ * const stripeJs = await loadStripe('pk_...')
24
+ *
18
25
  * const charge = stripe.charge({
19
- * createSpt: async ({ paymentMethod, amount, currency, networkId, expiresAt, metadata }) => {
26
+ * client: stripeJs,
27
+ * createToken: async ({ amount, currency, expiresAt, metadata, networkId, paymentMethod }) => {
20
28
  * const res = await fetch('/api/create-spt', {
21
29
  * method: 'POST',
22
30
  * headers: { 'Content-Type': 'application/json' },
@@ -26,24 +34,19 @@ import * as Intents from '../Intents.js';
26
34
  * return spt
27
35
  * },
28
36
  * })
29
- *
30
- * // paymentMethod comes from Stripe Elements at credential-creation time
31
- * const credential = await charge.createCredential({
32
- * challenge,
33
- * context: { paymentMethod: 'pm_xxx' },
34
- * })
35
37
  * ```
36
38
  */
37
39
  export function charge(parameters) {
38
- const { createSpt, externalId, paymentMethod: defaultPaymentMethod } = parameters;
39
- return MethodIntent.toClient(Intents.charge, {
40
+ const { client, createToken, externalId, paymentMethod: defaultPaymentMethod } = parameters;
41
+ return Method.toClient(Methods.charge, {
40
42
  context: z.object({
41
43
  paymentMethod: z.optional(z.string()),
42
44
  }),
43
45
  async createCredential({ challenge, context }) {
44
46
  const paymentMethod = context?.paymentMethod ?? defaultPaymentMethod;
45
- if (!paymentMethod)
47
+ if (!paymentMethod) {
46
48
  throw new Error('paymentMethod is required (pass via context or parameters)');
49
+ }
47
50
  const amount = challenge.request.amount;
48
51
  const currency = challenge.request.currency;
49
52
  const networkId = challenge.request.methodDetails?.networkId;
@@ -56,13 +59,15 @@ export function charge(parameters) {
56
59
  const expiresAt = challenge.request.expires
57
60
  ? Math.floor(new Date(challenge.request.expires).getTime() / 1000)
58
61
  : Math.floor(Date.now() / 1000) + 3600;
59
- const spt = await createSpt({
60
- paymentMethod,
62
+ const spt = await createToken({
61
63
  amount,
64
+ challenge,
65
+ client,
62
66
  currency,
63
- networkId,
64
67
  expiresAt,
65
68
  metadata,
69
+ networkId,
70
+ paymentMethod,
66
71
  });
67
72
  return Credential.serialize({
68
73
  challenge,
@@ -1 +1 @@
1
- {"version":3,"file":"Charge.js","sourceRoot":"","sources":["../../../src/stripe/client/Charge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAA;AACjD,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AACjC,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,MAAM,CAAC,UAA6B;IAClD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,oBAAoB,EAAE,GAAG,UAAU,CAAA;IAEjF,OAAO,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;QAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YAChB,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACtC,CAAC;QAEF,KAAK,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE;YAC3C,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,oBAAoB,CAAA;YACpE,IAAI,CAAC,aAAa;gBAChB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;YAE/E,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAAgB,CAAA;YACjD,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,QAAkB,CAAA;YACrD,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,SAA+B,CAAA;YAClF,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;YACnF,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,QAErC,CAAA;YACb,IAAI,QAAQ,EAAE,UAAU,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAA;YACH,CAAC;YAED,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO;gBACzC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAiB,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;gBAC5E,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;YAExC,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC;gBAC1B,aAAa;gBACb,MAAM;gBACN,QAAQ;gBACR,SAAS;gBACT,SAAS;gBACT,QAAQ;aACT,CAAC,CAAA;YAEF,OAAO,UAAU,CAAC,SAAS,CAAC;gBAC1B,SAAS;gBACT,OAAO,EAAE;oBACP,GAAG;oBACH,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACtC;aACF,CAAC,CAAA;QACJ,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"Charge.js","sourceRoot":"","sources":["../../../src/stripe/client/Charge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAEjC,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,MAAM,CAAC,UAA6B;IAClD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,oBAAoB,EAAE,GAAG,UAAU,CAAA;IAE3F,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;QACrC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YAChB,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACtC,CAAC;QAEF,KAAK,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE;YAC3C,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,oBAAoB,CAAA;YACpE,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;YAC/E,CAAC;YAED,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAAgB,CAAA;YACjD,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,QAAkB,CAAA;YACrD,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,SAA+B,CAAA;YAClF,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;YACnF,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,QAErC,CAAA;YACb,IAAI,QAAQ,EAAE,UAAU,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAA;YACH,CAAC;YAED,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO;gBACzC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAiB,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;gBAC5E,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;YAExC,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC;gBAC5B,MAAM;gBACN,SAAS;gBACT,MAAM;gBACN,QAAQ;gBACR,SAAS;gBACT,QAAQ;gBACR,SAAS;gBACT,aAAa;aACd,CAAC,CAAA;YAEF,OAAO,UAAU,CAAC,SAAS,CAAC;gBAC1B,SAAS;gBACT,OAAO,EAAE;oBACP,GAAG;oBACH,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACtC;aACF,CAAC,CAAA;QACJ,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { charge as charge_ } from './Charge.js';
2
2
  /**
3
- * Creates a Stripe `charge` client method intent.
3
+ * Creates a Stripe `charge` client method.
4
4
  *
5
5
  * @example
6
6
  * ```ts
@@ -9,7 +9,7 @@ import { charge as charge_ } from './Charge.js';
9
9
  * const mppx = Mppx.create({
10
10
  * methods: [
11
11
  * stripe({
12
- * createSpt: async (params) => {
12
+ * createToken: async (params) => {
13
13
  * const res = await fetch('/api/create-spt', {
14
14
  * method: 'POST',
15
15
  * headers: { 'Content-Type': 'application/json' },
@@ -24,9 +24,16 @@ import { charge as charge_ } from './Charge.js';
24
24
  * })
25
25
  * ```
26
26
  */
27
- export declare function stripe(parameters: stripe.Parameters): readonly [import("../../MethodIntent.js").Client<import("../../MethodIntent.js").MethodIntent<{
28
- readonly name: "charge";
27
+ export declare function stripe(parameters: stripe.Parameters): readonly [import("../../Method.js").Client<{
28
+ readonly name: "stripe";
29
+ readonly intent: "charge";
29
30
  readonly schema: {
31
+ readonly credential: {
32
+ readonly payload: import("zod/mini").ZodMiniObject<{
33
+ externalId: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
34
+ spt: import("zod/mini").ZodMiniString<string>;
35
+ }, import("zod/v4/core").$strip>;
36
+ };
30
37
  readonly request: import("zod/mini").ZodMiniPipe<import("zod/mini").ZodMiniObject<{
31
38
  amount: import("zod/mini").ZodMiniString<string>;
32
39
  currency: import("zod/mini").ZodMiniString<string>;
@@ -34,9 +41,17 @@ export declare function stripe(parameters: stripe.Parameters): readonly [import(
34
41
  description: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
35
42
  expires: import("zod/mini").ZodMiniDefault<import("zod/mini").ZodMiniString<string>>;
36
43
  externalId: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
44
+ metadata: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniRecord<import("zod/mini").ZodMiniString<string>, import("zod/mini").ZodMiniString<string>>>;
45
+ networkId: import("zod/mini").ZodMiniString<string>;
46
+ paymentMethodTypes: import("zod/mini").ZodMiniArray<import("zod/mini").ZodMiniString<string>>;
37
47
  recipient: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
38
48
  }, import("zod/v4/core").$strip>, import("zod/mini").ZodMiniTransform<{
39
49
  amount: string;
50
+ methodDetails: {
51
+ metadata?: Record<string, string> | undefined;
52
+ networkId: string;
53
+ paymentMethodTypes: string[];
54
+ };
40
55
  currency: string;
41
56
  expires: string;
42
57
  description?: string | undefined;
@@ -47,34 +62,20 @@ export declare function stripe(parameters: stripe.Parameters): readonly [import(
47
62
  currency: string;
48
63
  decimals: number;
49
64
  expires: string;
65
+ networkId: string;
66
+ paymentMethodTypes: string[];
50
67
  description?: string | undefined;
51
68
  externalId?: string | undefined;
69
+ metadata?: Record<string, string> | undefined;
52
70
  recipient?: string | undefined;
53
71
  }>>;
54
72
  };
55
- }, {
56
- readonly method: "stripe";
57
- readonly schema: {
58
- readonly credential: {
59
- readonly payload: import("zod/mini").ZodMiniObject<{
60
- spt: import("zod/mini").ZodMiniString<string>;
61
- externalId: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
62
- }, import("zod/v4/core").$strip>;
63
- };
64
- readonly request: {
65
- readonly methodDetails: import("zod/mini").ZodMiniObject<{
66
- networkId: import("zod/mini").ZodMiniString<string>;
67
- paymentMethodTypes: import("zod/mini").ZodMiniArray<import("zod/mini").ZodMiniString<string>>;
68
- metadata: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniRecord<import("zod/mini").ZodMiniString<string>, import("zod/mini").ZodMiniString<string>>>;
69
- }, import("zod/v4/core").$strip>;
70
- };
71
- };
72
- }>, import("zod/mini").ZodMiniObject<{
73
+ }, import("zod/mini").ZodMiniObject<{
73
74
  paymentMethod: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
74
75
  }, import("zod/v4/core").$strip>>];
75
76
  export declare namespace stripe {
76
77
  type Parameters = charge_.Parameters;
77
- /** Creates a Stripe `charge` client method intent for SPT-based payments. */
78
+ /** Creates a Stripe `charge` client method for SPT-based payments. */
78
79
  const charge: typeof charge_;
79
80
  }
80
- //# sourceMappingURL=MethodIntents.d.ts.map
81
+ //# sourceMappingURL=Methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Methods.d.ts","sourceRoot":"","sources":["../../../src/stripe/client/Methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAEnD;AAED,yBAAiB,MAAM,CAAC;IACtB,KAAY,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;IAE3C,sEAAsE;IAC/D,MAAM,MAAM,gBAAU,CAAA;CAC9B"}
@@ -1,6 +1,6 @@
1
1
  import { charge as charge_ } from './Charge.js';
2
2
  /**
3
- * Creates a Stripe `charge` client method intent.
3
+ * Creates a Stripe `charge` client method.
4
4
  *
5
5
  * @example
6
6
  * ```ts
@@ -9,7 +9,7 @@ import { charge as charge_ } from './Charge.js';
9
9
  * const mppx = Mppx.create({
10
10
  * methods: [
11
11
  * stripe({
12
- * createSpt: async (params) => {
12
+ * createToken: async (params) => {
13
13
  * const res = await fetch('/api/create-spt', {
14
14
  * method: 'POST',
15
15
  * headers: { 'Content-Type': 'application/json' },
@@ -28,7 +28,7 @@ export function stripe(parameters) {
28
28
  return [charge_(parameters)];
29
29
  }
30
30
  (function (stripe) {
31
- /** Creates a Stripe `charge` client method intent for SPT-based payments. */
31
+ /** Creates a Stripe `charge` client method for SPT-based payments. */
32
32
  stripe.charge = charge_;
33
33
  })(stripe || (stripe = {}));
34
- //# sourceMappingURL=MethodIntents.js.map
34
+ //# sourceMappingURL=Methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Methods.js","sourceRoot":"","sources":["../../../src/stripe/client/Methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,MAAM,CAAC,UAA6B;IAClD,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAU,CAAA;AACvC,CAAC;AAED,WAAiB,MAAM;IAGrB,sEAAsE;IACzD,aAAM,GAAG,OAAO,CAAA;AAC/B,CAAC,EALgB,MAAM,KAAN,MAAM,QAKtB"}
@@ -1,3 +1,3 @@
1
1
  export { charge } from './Charge.js';
2
- export { stripe } from './MethodIntents.js';
2
+ export { stripe } from './Methods.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/stripe/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/stripe/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA"}
@@ -1,3 +1,3 @@
1
1
  export { charge } from './Charge.js';
2
- export { stripe } from './MethodIntents.js';
2
+ export { stripe } from './Methods.js';
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stripe/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/stripe/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA"}
@@ -1,2 +1,2 @@
1
- export * as MethodIntents from './Intents.js';
1
+ export * as Methods from './Methods.js';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stripe/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stripe/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA"}
@@ -1,2 +1,2 @@
1
- export * as MethodIntents from './Intents.js';
1
+ export * as Methods from './Methods.js';
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stripe/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stripe/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Duck-typed interface for the Stripe Node SDK (`stripe` npm package).
3
+ * Matches the subset of the API used by mppx for server-side payment verification.
4
+ *
5
+ * Uses loose signatures so any Stripe SDK version is assignable.
6
+ */
7
+ export type StripeClient = {
8
+ paymentIntents: {
9
+ create(...args: any[]): Promise<{
10
+ id: string;
11
+ status: string;
12
+ }>;
13
+ };
14
+ };
15
+ /**
16
+ * Duck-typed interface for Stripe.js (`@stripe/stripe-js`).
17
+ * Matches the subset of the API used by mppx for client-side payment method creation.
18
+ *
19
+ * Uses loose signatures so any Stripe.js version is assignable.
20
+ */
21
+ export type StripeJs = {
22
+ createPaymentMethod(...args: any[]): Promise<Record<string, unknown>>;
23
+ elements(...args: any[]): unknown;
24
+ };
25
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/stripe/internal/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,cAAc,EAAE;QACd,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAChE,CAAA;CACF,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,mBAAmB,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACrE,QAAQ,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;CAClC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/stripe/internal/types.ts"],"names":[],"mappings":""}
@@ -1,21 +1,42 @@
1
- import type { LooseOmit } from '../../internal/types.js';
2
- import * as MethodIntent from '../../MethodIntent.js';
3
- import * as Intents from '../Intents.js';
1
+ import type { LooseOmit, OneOf } from '../../internal/types.js';
2
+ import * as Method from '../../Method.js';
3
+ import type { StripeClient } from '../internal/types.js';
4
+ import * as Methods from '../Methods.js';
4
5
  /**
5
6
  * Creates a Stripe charge method intent for usage on the server.
6
7
  *
7
8
  * Verifies payment by creating a Stripe PaymentIntent with the provided SPT.
8
9
  *
10
+ * Accepts either a `client` (a pre-configured Stripe SDK instance) or a raw
11
+ * `secretKey`. Using `client` is recommended—it lets you configure retries,
12
+ * API version, and other options on the Stripe instance you control.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * import Stripe from 'stripe'
17
+ * import { stripe } from 'mppx/server'
18
+ *
19
+ * const stripeClient = new Stripe(process.env.STRIPE_SECRET_KEY!)
20
+ * const charge = stripe.charge({ client: stripeClient, networkId: 'internal', paymentMethodTypes: ['card'] })
21
+ * ```
22
+ *
9
23
  * @example
10
24
  * ```ts
11
25
  * import { stripe } from 'mppx/server'
12
26
  *
13
- * const charge = stripe.charge({ secretKey: 'sk_...' })
27
+ * const charge = stripe.charge({ secretKey: 'sk_...', networkId: 'internal', paymentMethodTypes: ['card'] })
14
28
  * ```
15
29
  */
16
- export declare function charge<const parameters extends charge.Parameters>(parameters: parameters): MethodIntent.Server<MethodIntent.MethodIntent<{
17
- readonly name: "charge";
30
+ export declare function charge<const parameters extends charge.Parameters>(parameters: parameters): Method.Server<{
31
+ readonly name: "stripe";
32
+ readonly intent: "charge";
18
33
  readonly schema: {
34
+ readonly credential: {
35
+ readonly payload: import("zod/mini").ZodMiniObject<{
36
+ externalId: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
37
+ spt: import("zod/mini").ZodMiniString<string>;
38
+ }, import("zod/v4/core").$strip>;
39
+ };
19
40
  readonly request: import("zod/mini").ZodMiniPipe<import("zod/mini").ZodMiniObject<{
20
41
  amount: import("zod/mini").ZodMiniString<string>;
21
42
  currency: import("zod/mini").ZodMiniString<string>;
@@ -23,9 +44,17 @@ export declare function charge<const parameters extends charge.Parameters>(param
23
44
  description: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
24
45
  expires: import("zod/mini").ZodMiniDefault<import("zod/mini").ZodMiniString<string>>;
25
46
  externalId: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
47
+ metadata: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniRecord<import("zod/mini").ZodMiniString<string>, import("zod/mini").ZodMiniString<string>>>;
48
+ networkId: import("zod/mini").ZodMiniString<string>;
49
+ paymentMethodTypes: import("zod/mini").ZodMiniArray<import("zod/mini").ZodMiniString<string>>;
26
50
  recipient: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
27
51
  }, import("zod/v4/core").$strip>, import("zod/mini").ZodMiniTransform<{
28
52
  amount: string;
53
+ methodDetails: {
54
+ metadata?: Record<string, string> | undefined;
55
+ networkId: string;
56
+ paymentMethodTypes: string[];
57
+ };
29
58
  currency: string;
30
59
  expires: string;
31
60
  description?: string | undefined;
@@ -36,37 +65,27 @@ export declare function charge<const parameters extends charge.Parameters>(param
36
65
  currency: string;
37
66
  decimals: number;
38
67
  expires: string;
68
+ networkId: string;
69
+ paymentMethodTypes: string[];
39
70
  description?: string | undefined;
40
71
  externalId?: string | undefined;
72
+ metadata?: Record<string, string> | undefined;
41
73
  recipient?: string | undefined;
42
74
  }>>;
43
75
  };
44
- }, {
45
- readonly method: "stripe";
46
- readonly schema: {
47
- readonly credential: {
48
- readonly payload: import("zod/mini").ZodMiniObject<{
49
- spt: import("zod/mini").ZodMiniString<string>;
50
- externalId: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniString<string>>;
51
- }, import("zod/v4/core").$strip>;
52
- };
53
- readonly request: {
54
- readonly methodDetails: import("zod/mini").ZodMiniObject<{
55
- networkId: import("zod/mini").ZodMiniString<string>;
56
- paymentMethodTypes: import("zod/mini").ZodMiniArray<import("zod/mini").ZodMiniString<string>>;
57
- metadata: import("zod/mini").ZodMiniOptional<import("zod/mini").ZodMiniRecord<import("zod/mini").ZodMiniString<string>, import("zod/mini").ZodMiniString<string>>>;
58
- }, import("zod/v4/core").$strip>;
59
- };
60
- };
61
- }>, charge.DeriveDefaults<parameters>, undefined>;
76
+ }, charge.DeriveDefaults<parameters>, undefined>;
62
77
  export declare namespace charge {
63
- type Defaults = LooseOmit<MethodIntent.RequestDefaults<typeof Intents.charge>, 'recipient'>;
78
+ type Defaults = LooseOmit<Method.RequestDefaults<typeof Methods.charge>, 'recipient'>;
64
79
  type Parameters = {
65
- /** Stripe secret API key. */
66
- secretKey: string;
67
80
  /** Optional metadata to include in SPT creation requests. */
68
81
  metadata?: Record<string, string> | undefined;
69
- } & Defaults;
82
+ } & Defaults & OneOf<{
83
+ /** Pre-configured Stripe SDK instance. Any object matching the duck-typed `StripeClient` shape works. */
84
+ client: StripeClient;
85
+ } | {
86
+ /** Stripe secret API key. */
87
+ secretKey: string;
88
+ }>;
70
89
  type DeriveDefaults<parameters extends Parameters> = Pick<parameters, Extract<keyof parameters, keyof Defaults>> & {
71
90
  decimals: number;
72
91
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Charge.d.ts","sourceRoot":"","sources":["../../../src/stripe/server/Charge.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAExC;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,KAAK,CAAC,UAAU,SAAS,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAmFxF;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAA;IAE3F,KAAK,UAAU,GAAG;QAChB,6BAA6B;QAC7B,SAAS,EAAE,MAAM,CAAA;QACjB,6DAA6D;QAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;KAC9C,GAAG,QAAQ,CAAA;IAEZ,KAAK,cAAc,CAAC,UAAU,SAAS,UAAU,IAAI,IAAI,CACvD,UAAU,EACV,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,QAAQ,CAAC,CAC1C,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CACzB"}
1
+ {"version":3,"file":"Charge.d.ts","sourceRoot":"","sources":["../../../src/stripe/server/Charge.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAExC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,MAAM,CAAC,KAAK,CAAC,UAAU,SAAS,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iDAqExF;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAA;IAErF,KAAK,UAAU,GAAG;QAChB,6DAA6D;QAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;KAC9C,GAAG,QAAQ,GACV,KAAK,CACD;QACE,yGAAyG;QACzG,MAAM,EAAE,YAAY,CAAA;KACrB,GACD;QACE,6BAA6B;QAC7B,SAAS,EAAE,MAAM,CAAA;KAClB,CACJ,CAAA;IAEH,KAAK,cAAc,CAAC,UAAU,SAAS,UAAU,IAAI,IAAI,CACvD,UAAU,EACV,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,QAAQ,CAAC,CAC1C,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CACzB"}