mppx 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +1 -1
  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/client/Mppx.d.ts +5 -0
  7. package/dist/client/Mppx.d.ts.map +1 -1
  8. package/dist/client/Mppx.js +7 -2
  9. package/dist/client/Mppx.js.map +1 -1
  10. package/dist/client/internal/Fetch.d.ts +3 -1
  11. package/dist/client/internal/Fetch.d.ts.map +1 -1
  12. package/dist/client/internal/Fetch.js +6 -2
  13. package/dist/client/internal/Fetch.js.map +1 -1
  14. package/dist/stripe/client/Charge.d.ts +11 -20
  15. package/dist/stripe/client/Charge.d.ts.map +1 -1
  16. package/dist/stripe/client/Charge.js +9 -12
  17. package/dist/stripe/client/Charge.js.map +1 -1
  18. package/dist/stripe/client/MethodIntents.d.ts +1 -1
  19. package/dist/stripe/client/MethodIntents.js +1 -1
  20. package/dist/tempo/client/SessionManager.d.ts.map +1 -1
  21. package/dist/tempo/client/SessionManager.js +9 -4
  22. package/dist/tempo/client/SessionManager.js.map +1 -1
  23. package/dist/tempo/internal/defaults.d.ts +1 -1
  24. package/dist/tempo/internal/defaults.js +1 -1
  25. package/dist/tempo/server/internal/transport.d.ts.map +1 -1
  26. package/dist/tempo/server/internal/transport.js +2 -1
  27. package/dist/tempo/server/internal/transport.js.map +1 -1
  28. package/package.json +1 -1
  29. package/src/Challenge.ts +2 -2
  30. package/src/client/Mppx.ts +19 -3
  31. package/src/client/internal/Fetch.test.ts +35 -1
  32. package/src/client/internal/Fetch.ts +15 -3
  33. package/src/stripe/Charge.integration.test.ts +4 -1
  34. package/src/stripe/client/Charge.ts +19 -23
  35. package/src/stripe/client/MethodIntents.ts +1 -1
  36. package/src/tempo/client/SessionManager.ts +10 -4
  37. package/src/tempo/internal/defaults.ts +1 -1
  38. package/src/tempo/server/internal/transport.ts +3 -2
package/README.md CHANGED
@@ -25,7 +25,7 @@ import { Mppx, tempo } from 'mppx/server'
25
25
  const mppx = Mppx.create({
26
26
  methods: [
27
27
  tempo({
28
- currency: '0x20c0000000000000000000000000000000000001',
28
+ currency: '0x20c0000000000000000000000000000000000000',
29
29
  recipient: '0x742d35Cc6634c0532925a3b844bC9e7595F8fE00',
30
30
  }),
31
31
  ],
@@ -21,7 +21,7 @@ export declare const Schema: z.ZodMiniObject<{
21
21
  expires: z.ZodMiniOptional<z.ZodMiniString<string>>;
22
22
  /** Unique challenge identifier (HMAC-bound). */
23
23
  id: z.ZodMiniString<string>;
24
- /** Intent type (e.g., "charge", "authorize"). */
24
+ /** Intent type (e.g., "charge", "session"). */
25
25
  intent: z.ZodMiniString<string>;
26
26
  /** Payment method (e.g., "tempo", "stripe"). */
27
27
  method: z.ZodMiniString<string>;
@@ -111,7 +111,7 @@ export declare namespace from {
111
111
  digest?: string | undefined;
112
112
  /** Optional expiration timestamp (ISO 8601). */
113
113
  expires?: string | undefined;
114
- /** Intent type (e.g., "charge", "authorize"). */
114
+ /** Intent type (e.g., "charge", "session"). */
115
115
  intent: string;
116
116
  /** Payment method (e.g., "tempo", "stripe"). */
117
117
  method: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Challenge.d.ts","sourceRoot":"","sources":["../src/Challenge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Challenge.d.ts","sourceRoot":"","sources":["../src/Challenge.ts"],"names":[],"mappings":"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"}
package/dist/Challenge.js CHANGED
@@ -20,7 +20,7 @@ export const Schema = z.object({
20
20
  expires: z.optional(z.datetime()),
21
21
  /** Unique challenge identifier (HMAC-bound). */
22
22
  id: z.string(),
23
- /** Intent type (e.g., "charge", "authorize"). */
23
+ /** Intent type (e.g., "charge", "session"). */
24
24
  intent: z.string(),
25
25
  /** Payment method (e.g., "tempo", "stripe"). */
26
26
  method: z.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"Challenge.js","sourceRoot":"","sources":["../src/Challenge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Challenge.js","sourceRoot":"","sources":["../src/Challenge.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type * as Challenge from '../Challenge.js';
1
2
  import type * as MethodIntent from '../MethodIntent.js';
2
3
  import type * as z from '../zod.js';
3
4
  import * as Fetch from './internal/Fetch.js';
@@ -57,6 +58,10 @@ export declare namespace create {
57
58
  type Config<methods extends Methods = Methods, transport extends Transport.Transport = Transport.Transport> = {
58
59
  /** Custom fetch function to wrap. Defaults to `globalThis.fetch`. */
59
60
  fetch?: typeof globalThis.fetch;
61
+ /** Called when a 402 challenge is received, before credential creation. */
62
+ onChallenge?: ((challenge: Challenge.Challenge, helpers: {
63
+ createCredential: (context?: AnyContextFor<FlattenMethods<methods>>) => Promise<string>;
64
+ }) => Promise<string | undefined>) | undefined;
60
65
  /** Array of method intents to use. Accepts individual clients or tuples (e.g. from `tempo()`). */
61
66
  methods: methods;
62
67
  /** Whether to polyfill `globalThis.fetch` with the payment-aware wrapper. @default true */
@@ -1 +1 @@
1
- {"version":3,"file":"Mppx.d.ts","sourceRoot":"","sources":["../../src/client/Mppx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Mppx.d.ts","sourceRoot":"","sources":["../../src/client/Mppx.ts"],"names":[],"mappings":"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"}
@@ -22,9 +22,14 @@ import * as Transport from './Transport.js';
22
22
  * ```
23
23
  */
24
24
  export function create(config) {
25
- const { polyfill = true, transport = Transport.http() } = config;
25
+ const { onChallenge, polyfill = true, transport = Transport.http() } = config;
26
26
  const methods = config.methods.flat();
27
- const config_fetch = { ...(config.fetch && { fetch: config.fetch }), methods };
27
+ const resolvedOnChallenge = onChallenge;
28
+ const config_fetch = {
29
+ ...(config.fetch && { fetch: config.fetch }),
30
+ ...(resolvedOnChallenge && { onChallenge: resolvedOnChallenge }),
31
+ methods,
32
+ };
28
33
  const fetch = Fetch.from(config_fetch);
29
34
  if (polyfill)
30
35
  Fetch.polyfill(config_fetch);
@@ -1 +1 @@
1
- {"version":3,"file":"Mppx.js","sourceRoot":"","sources":["../../src/client/Mppx.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAA;AAC5C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAwB3C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,MAAM,CAMpB,MAAyC;IACzC,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC,IAAI,EAAe,EAAE,GAAG,MAAM,CAAA;IAE7E,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAwC,CAAA;IAE3E,MAAM,YAAY,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAA;IAC9E,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAEtC,IAAI,QAAQ;QAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;IAC1C,OAAO;QACL,KAAK;QACL,OAAO;QACP,SAAS;QACT,KAAK,CAAC,gBAAgB,CAAC,QAAyC,EAAE,OAAiB;YACjF,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,QAAiB,CAAwB,CAAA;YAElF,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CAAC,CAAA;YAC5F,IAAI,CAAC,EAAE;gBACL,MAAM,IAAI,KAAK,CACb,+BAA+B,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,iBAAiB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7I,CAAA;YAEH,MAAM,aAAa,GACjB,EAAE,CAAC,OAAO,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAE7E,OAAO,EAAE,CAAC,gBAAgB,CACxB,aAAa,KAAK,SAAS;gBACzB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE;gBACvC,CAAC,CAAE,EAAE,SAAS,EAAY,CAC7B,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,OAAO;IACrB,KAAK,CAAC,OAAO,EAAE,CAAA;AACjB,CAAC"}
1
+ {"version":3,"file":"Mppx.js","sourceRoot":"","sources":["../../src/client/Mppx.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAA;AAC5C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAwB3C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,MAAM,CAMpB,MAAyC;IACzC,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAG,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC,IAAI,EAAe,EAAE,GAAG,MAAM,CAAA;IAE1F,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAwC,CAAA;IAE3E,MAAM,mBAAmB,GAAG,WAEZ,CAAA;IAChB,MAAM,YAAY,GAAG;QACnB,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAC5C,GAAG,CAAC,mBAAmB,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;QAChE,OAAO;KAC6C,CAAA;IACtD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAA0B,YAAY,CAAC,CAAA;IAE/D,IAAI,QAAQ;QAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;IAC1C,OAAO;QACL,KAAK;QACL,OAAO;QACP,SAAS;QACT,KAAK,CAAC,gBAAgB,CAAC,QAAyC,EAAE,OAAiB;YACjF,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,QAAiB,CAAwB,CAAA;YAElF,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CAAC,CAAA;YAC5F,IAAI,CAAC,EAAE;gBACL,MAAM,IAAI,KAAK,CACb,+BAA+B,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,iBAAiB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7I,CAAA;YAEH,MAAM,aAAa,GACjB,EAAE,CAAC,OAAO,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAE7E,OAAO,EAAE,CAAC,gBAAgB,CACxB,aAAa,KAAK,SAAS;gBACzB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE;gBACvC,CAAC,CAAE,EAAE,SAAS,EAAY,CAC7B,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,OAAO;IACrB,KAAK,CAAC,OAAO,EAAE,CAAA;AACjB,CAAC"}
@@ -34,7 +34,9 @@ export declare namespace from {
34
34
  /** Array of method intents to use. */
35
35
  methods: methods;
36
36
  /** Called when a 402 challenge is received, before credential creation. */
37
- onChallenge?: ((challenge: Challenge.Challenge) => void) | undefined;
37
+ onChallenge?: ((challenge: Challenge.Challenge, helpers: {
38
+ createCredential: (context?: AnyContextFor<methods>) => Promise<string>;
39
+ }) => Promise<string | undefined>) | undefined;
38
40
  };
39
41
  type Fetch<methods extends readonly MethodIntent.AnyClient[] = readonly MethodIntent.AnyClient[]> = (input: RequestInfo | URL, init?: RequestInit<methods>) => Promise<Response>;
40
42
  type RequestInit<methods extends readonly MethodIntent.AnyClient[] = readonly MethodIntent.AnyClient[]> = globalThis.RequestInit & {
@@ -1 +1 @@
1
- {"version":3,"file":"Fetch.d.ts","sourceRoot":"","sources":["../../../src/client/internal/Fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,KAAK,YAAY,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAA;AAItC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,IAAI,CAAC,KAAK,CAAC,OAAO,SAAS,SAAS,YAAY,CAAC,SAAS,EAAE,EAC1E,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CA4BrB;AAED,6EAA6E;AAC7E,KAAK,aAAa,CAAC,OAAO,SAAS,SAAS,YAAY,CAAC,SAAS,EAAE,IAAI;KACrE,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,aAAa,CAAC,GAClF,aAAa,SAAS,CAAC,CAAC,WAAW,GACjC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,GACtB,SAAS,GACX,SAAS;CACd,CAAC,MAAM,CAAC,CAAA;AAET,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,KAAK,MAAM,CACT,OAAO,SAAS,SAAS,YAAY,CAAC,SAAS,EAAE,GAAG,SAAS,YAAY,CAAC,SAAS,EAAE,IACnF;QACF,qEAAqE;QACrE,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;QAC/B,sCAAsC;QACtC,OAAO,EAAE,OAAO,CAAA;QAChB,2EAA2E;QAC3E,WAAW,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;KACrE,CAAA;IAED,KAAK,KAAK,CACR,OAAO,SAAS,SAAS,YAAY,CAAC,SAAS,EAAE,GAAG,SAAS,YAAY,CAAC,SAAS,EAAE,IACnF,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAEhF,KAAK,WAAW,CACd,OAAO,SAAS,SAAS,YAAY,CAAC,SAAS,EAAE,GAAG,SAAS,YAAY,CAAC,SAAS,EAAE,IACnF,UAAU,CAAC,WAAW,GAAG;QAC3B,+DAA+D;QAC/D,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;KACjC,CAAA;CACF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,CAAC,OAAO,SAAS,SAAS,YAAY,CAAC,SAAS,EAAE,EAC9E,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAC/B,IAAI,CAGN;AAED,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,KAAK,MAAM,CACT,OAAO,SAAS,SAAS,YAAY,CAAC,SAAS,EAAE,GAAG,SAAS,YAAY,CAAC,SAAS,EAAE,IACnF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;CACzB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAK9B"}
1
+ {"version":3,"file":"Fetch.d.ts","sourceRoot":"","sources":["../../../src/client/internal/Fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,KAAK,YAAY,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAA;AAItC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,IAAI,CAAC,KAAK,CAAC,OAAO,SAAS,SAAS,YAAY,CAAC,SAAS,EAAE,EAC1E,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAiCrB;AAED,6EAA6E;AAC7E,KAAK,aAAa,CAAC,OAAO,SAAS,SAAS,YAAY,CAAC,SAAS,EAAE,IAAI;KACrE,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,aAAa,CAAC,GAClF,aAAa,SAAS,CAAC,CAAC,WAAW,GACjC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,GACtB,SAAS,GACX,SAAS;CACd,CAAC,MAAM,CAAC,CAAA;AAET,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,KAAK,MAAM,CACT,OAAO,SAAS,SAAS,YAAY,CAAC,SAAS,EAAE,GAAG,SAAS,YAAY,CAAC,SAAS,EAAE,IACnF;QACF,qEAAqE;QACrE,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;QAC/B,sCAAsC;QACtC,OAAO,EAAE,OAAO,CAAA;QAChB,2EAA2E;QAC3E,WAAW,CAAC,EACR,CAAC,CACC,SAAS,EAAE,SAAS,CAAC,SAAS,EAC9B,OAAO,EAAE;YACP,gBAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;SACxE,KACE,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,GACjC,SAAS,CAAA;KACd,CAAA;IAED,KAAK,KAAK,CACR,OAAO,SAAS,SAAS,YAAY,CAAC,SAAS,EAAE,GAAG,SAAS,YAAY,CAAC,SAAS,EAAE,IACnF,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IAEhF,KAAK,WAAW,CACd,OAAO,SAAS,SAAS,YAAY,CAAC,SAAS,EAAE,GAAG,SAAS,YAAY,CAAC,SAAS,EAAE,IACnF,UAAU,CAAC,WAAW,GAAG;QAC3B,+DAA+D;QAC/D,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;KACjC,CAAA;CACF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,CAAC,OAAO,SAAS,SAAS,YAAY,CAAC,SAAS,EAAE,EAC9E,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAC/B,IAAI,CAGN;AAED,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,KAAK,MAAM,CACT,OAAO,SAAS,SAAS,YAAY,CAAC,SAAS,EAAE,GAAG,SAAS,YAAY,CAAC,SAAS,EAAE,IACnF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;CACzB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAK9B"}
@@ -29,11 +29,15 @@ export function from(config) {
29
29
  if (response.status !== 402)
30
30
  return response;
31
31
  const challenge = Challenge.fromResponse(response);
32
- onChallenge?.(challenge);
33
32
  const mi = methods.find((m) => m.method === challenge.method && m.name === challenge.intent);
34
33
  if (!mi)
35
34
  throw new Error(`No method intent found for "${challenge.method}.${challenge.intent}". Available: ${methods.map((m) => `${m.method}.${m.name}`).join(', ')}`);
36
- const credential = await resolveCredential(challenge, mi, context);
35
+ const onChallengeCredential = onChallenge
36
+ ? await onChallenge(challenge, {
37
+ createCredential: async (overrideContext) => resolveCredential(challenge, mi, overrideContext ?? context),
38
+ })
39
+ : undefined;
40
+ const credential = onChallengeCredential ?? (await resolveCredential(challenge, mi, context));
37
41
  return fetch(input, {
38
42
  ...fetchInit,
39
43
  headers: {
@@ -1 +1 @@
1
- {"version":3,"file":"Fetch.js","sourceRoot":"","sources":["../../../src/client/internal/Fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAA;AAI/C,IAAI,aAAkD,CAAA;AAEtD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,IAAI,CAClB,MAA4B;IAE5B,MAAM,EAAE,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAA;IAEjE,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;QAC5C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QAE9C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,QAAQ,CAAA;QAE5C,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;QAClD,WAAW,EAAE,CAAC,SAAS,CAAC,CAAA;QAExB,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CAAC,CAAA;QAC5F,IAAI,CAAC,EAAE;YACL,MAAM,IAAI,KAAK,CACb,+BAA+B,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,iBAAiB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7I,CAAA;QAEH,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;QAElE,OAAO,KAAK,CAAC,KAAK,EAAE;YAClB,GAAG,SAAS;YACZ,OAAO,EAAE;gBACP,GAAG,SAAS,CAAC,OAAO;gBACpB,aAAa,EAAE,UAAU;aAC1B;SACF,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC;AAmCD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAgC;IAEhC,aAAa,GAAG,UAAU,CAAC,KAAK,CAAA;IAChC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAA4B,CAAA;AAC5D,CAAC;AAQD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,OAAO;IACrB,IAAI,aAAa,EAAE,CAAC;QAClB,UAAU,CAAC,KAAK,GAAG,aAAa,CAAA;QAChC,aAAa,GAAG,SAAS,CAAA;IAC3B,CAAC;AACH,CAAC;AAED,gBAAgB;AAChB,KAAK,UAAU,iBAAiB,CAC9B,SAA8B,EAC9B,EAA0B,EAC1B,OAAgB;IAEhB,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACjG,OAAO,EAAE,CAAC,gBAAgB,CACxB,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAE,EAAE,SAAS,EAAY,CAC/F,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"Fetch.js","sourceRoot":"","sources":["../../../src/client/internal/Fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAA;AAI/C,IAAI,aAAkD,CAAA;AAEtD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,IAAI,CAClB,MAA4B;IAE5B,MAAM,EAAE,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAA;IAEjE,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;QAC5C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QAE9C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,QAAQ,CAAA;QAE5C,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;QAElD,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CAAC,CAAA;QAC5F,IAAI,CAAC,EAAE;YACL,MAAM,IAAI,KAAK,CACb,+BAA+B,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,iBAAiB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7I,CAAA;QAEH,MAAM,qBAAqB,GAAG,WAAW;YACvC,CAAC,CAAC,MAAM,WAAW,CAAC,SAAS,EAAE;gBAC3B,gBAAgB,EAAE,KAAK,EAAE,eAAwC,EAAE,EAAE,CACnE,iBAAiB,CAAC,SAAS,EAAE,EAAE,EAAE,eAAe,IAAI,OAAO,CAAC;aAC/D,CAAC;YACJ,CAAC,CAAC,SAAS,CAAA;QACb,MAAM,UAAU,GAAG,qBAAqB,IAAI,CAAC,MAAM,iBAAiB,CAAC,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;QAE7F,OAAO,KAAK,CAAC,KAAK,EAAE;YAClB,GAAG,SAAS;YACZ,OAAO,EAAE;gBACP,GAAG,SAAS,CAAC,OAAO;gBACpB,aAAa,EAAE,UAAU;aAC1B;SACF,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC;AA0CD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAgC;IAEhC,aAAa,GAAG,UAAU,CAAC,KAAK,CAAA;IAChC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAA4B,CAAA;AAC5D,CAAC;AAQD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,OAAO;IACrB,IAAI,aAAa,EAAE,CAAC;QAClB,UAAU,CAAC,KAAK,GAAG,aAAa,CAAA;QAChC,aAAa,GAAG,SAAS,CAAA;IAC3B,CAAC;AACH,CAAC;AAED,gBAAgB;AAChB,KAAK,UAAU,iBAAiB,CAC9B,SAA8B,EAC9B,EAA0B,EAC1B,OAAgB;IAEhB,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACjG,OAAO,EAAE,CAAC,gBAAgB,CACxB,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAE,EAAE,SAAS,EAAY,CAC/F,CAAA;AACH,CAAC"}
@@ -1,10 +1,13 @@
1
+ import type * as Challenge from '../../Challenge.js';
1
2
  import * as MethodIntent from '../../MethodIntent.js';
2
3
  import * as z from '../../zod.js';
4
+ import * as Intents from '../Intents.js';
3
5
  /**
4
6
  * Creates a Stripe charge method intent for usage on the client.
5
7
  *
6
- * Accepts a `createSpt` callback that handles SPT creation (requires
7
- * 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.
8
11
  *
9
12
  * The `paymentMethod` (e.g. from Stripe Elements) can be provided at
10
13
  * initialization or at credential-creation time via `context`.
@@ -14,7 +17,7 @@ import * as z from '../../zod.js';
14
17
  * import { stripe } from 'mppx/client'
15
18
  *
16
19
  * const charge = stripe.charge({
17
- * createSpt: async ({ paymentMethod, amount, currency, networkId, expiresAt, metadata }) => {
20
+ * createToken: async ({ amount, currency, expiresAt, metadata, networkId, paymentMethod }) => {
18
21
  * const res = await fetch('/api/create-spt', {
19
22
  * method: 'POST',
20
23
  * headers: { 'Content-Type': 'application/json' },
@@ -24,12 +27,6 @@ import * as z from '../../zod.js';
24
27
  * return spt
25
28
  * },
26
29
  * })
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
30
  * ```
34
31
  */
35
32
  export declare function charge(parameters: charge.Parameters): MethodIntent.Client<MethodIntent.MethodIntent<{
@@ -82,23 +79,17 @@ export declare function charge(parameters: charge.Parameters): MethodIntent.Clie
82
79
  }, z.core.$strip>>;
83
80
  export declare namespace charge {
84
81
  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>;
82
+ /** Called when a Stripe challenge is received. Create an SPT to retry. */
83
+ createToken: (parameters: OnChallengeParameters) => Promise<string>;
94
84
  /** Optional client-side external reference ID for the credential payload. */
95
85
  externalId?: string | undefined;
96
86
  /** Default payment method ID. Overridden by `context.paymentMethod`. */
97
87
  paymentMethod?: string | undefined;
98
88
  };
99
- type CreateSptParameters = {
89
+ type OnChallengeParameters = {
90
+ challenge: Challenge.Challenge<z.output<typeof Intents.charge.schema.request>, typeof Intents.charge.name, typeof Intents.charge.method>;
100
91
  /** Stripe payment method ID (e.g. from Stripe Elements). */
101
- paymentMethod: string;
92
+ paymentMethod?: string | undefined;
102
93
  /** Payment amount (in smallest currency unit). */
103
94
  amount: string;
104
95
  /** Three-letter ISO currency code. */
@@ -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,YAAY,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AACjC,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAkDnD;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,UAAU,GAAG;QAChB,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,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,IAAI,EAC1B,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAC7B,CAAA;QACD,4DAA4D;QAC5D,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAClC,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"}
@@ -5,8 +5,9 @@ import * as Intents from '../Intents.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`.
@@ -16,7 +17,7 @@ import * as Intents from '../Intents.js';
16
17
  * import { stripe } from 'mppx/client'
17
18
  *
18
19
  * const charge = stripe.charge({
19
- * createSpt: async ({ paymentMethod, amount, currency, networkId, expiresAt, metadata }) => {
20
+ * createToken: async ({ amount, currency, expiresAt, metadata, networkId, paymentMethod }) => {
20
21
  * const res = await fetch('/api/create-spt', {
21
22
  * method: 'POST',
22
23
  * headers: { 'Content-Type': 'application/json' },
@@ -26,24 +27,19 @@ import * as Intents from '../Intents.js';
26
27
  * return spt
27
28
  * },
28
29
  * })
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
30
  * ```
36
31
  */
37
32
  export function charge(parameters) {
38
- const { createSpt, externalId, paymentMethod: defaultPaymentMethod } = parameters;
33
+ const { createToken, externalId, paymentMethod: defaultPaymentMethod } = parameters;
39
34
  return MethodIntent.toClient(Intents.charge, {
40
35
  context: z.object({
41
36
  paymentMethod: z.optional(z.string()),
42
37
  }),
43
38
  async createCredential({ challenge, context }) {
44
39
  const paymentMethod = context?.paymentMethod ?? defaultPaymentMethod;
45
- if (!paymentMethod)
40
+ if (!paymentMethod) {
46
41
  throw new Error('paymentMethod is required (pass via context or parameters)');
42
+ }
47
43
  const amount = challenge.request.amount;
48
44
  const currency = challenge.request.currency;
49
45
  const networkId = challenge.request.methodDetails?.networkId;
@@ -56,7 +52,8 @@ export function charge(parameters) {
56
52
  const expiresAt = challenge.request.expires
57
53
  ? Math.floor(new Date(challenge.request.expires).getTime() / 1000)
58
54
  : Math.floor(Date.now() / 1000) + 3600;
59
- const spt = await createSpt({
55
+ const spt = await createToken({
56
+ challenge,
60
57
  paymentMethod,
61
58
  amount,
62
59
  currency,
@@ -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,YAAY,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AACjC,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,MAAM,CAAC,UAA6B;IAClD,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,oBAAoB,EAAE,GAAG,UAAU,CAAA;IAEnF,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,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,SAAS;gBACT,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"}
@@ -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' },
@@ -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' },
@@ -1 +1 @@
1
- {"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../../src/tempo/client/SessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AAC7B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,KAAK,SAAS,MAAM,oBAAoB,CAAA;AAEpD,OAAO,KAAK,KAAK,OAAO,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAGnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAIvD,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IAExB,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAC7E,GAAG,CACD,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,GAAG;QACnB,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;QAC1D,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;KACjC,GACA,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;IACjC,KAAK,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAA;CAC5C,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG;IACvC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAA;IAC7B,SAAS,EAAE,SAAS,CAAC,SAAS,GAAG,IAAI,CAAA;IACrC,SAAS,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,UAAU,GAAG,cAAc,CAqMpF;AAED,MAAM,CAAC,OAAO,WAAW,cAAc,CAAC;IACtC,KAAK,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,GAC9C,MAAM,CAAC,WAAW,CAAC,UAAU,GAAG;QAC9B,4EAA4E;QAC5E,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACtC,qEAAqE;QACrE,MAAM,CAAC,EAAE,OAAO,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;QAC1C,iFAAiF;QACjF,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC7B,+BAA+B;QAC/B,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACpC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,GAAG,SAAS,CAAA;QAC3C,kHAAkH;QAClH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAChC,CAAA;CACJ"}
1
+ {"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../../src/tempo/client/SessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AAC7B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,KAAK,SAAS,MAAM,oBAAoB,CAAA;AAEpD,OAAO,KAAK,KAAK,OAAO,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAGnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAIvD,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IAExB,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAC7E,GAAG,CACD,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,GAAG;QACnB,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;QAC1D,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;KACjC,GACA,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;IACjC,KAAK,IAAI,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAA;CAC5C,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG;IACvC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAA;IAC7B,SAAS,EAAE,SAAS,CAAC,SAAS,GAAG,IAAI,CAAA;IACrC,SAAS,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,UAAU,GAAG,cAAc,CA2MpF;AAED,MAAM,CAAC,OAAO,WAAW,cAAc,CAAC;IACtC,KAAK,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,GAC9C,MAAM,CAAC,WAAW,CAAC,UAAU,GAAG;QAC9B,4EAA4E;QAC5E,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACtC,qEAAqE;QACrE,MAAM,CAAC,EAAE,OAAO,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;QAC1C,iFAAiF;QACjF,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC7B,+BAA+B;QAC/B,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACpC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,GAAG,SAAS,CAAA;QAC3C,kHAAkH;QAClH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAChC,CAAA;CACJ"}
@@ -40,8 +40,9 @@ export function sessionManager(parameters) {
40
40
  const wrappedFetch = Fetch.from({
41
41
  fetch: fetchFn,
42
42
  methods: [method],
43
- onChallenge(c) {
44
- lastChallenge = c;
43
+ onChallenge: async (challenge, _helpers) => {
44
+ lastChallenge = challenge;
45
+ return undefined;
45
46
  },
46
47
  });
47
48
  function toPaymentResponse(response) {
@@ -103,8 +104,12 @@ export function sessionManager(parameters) {
103
104
  ...fetchInit.headers,
104
105
  Accept: 'text/event-stream',
105
106
  },
107
+ ...(signal ? { signal } : {}),
106
108
  };
107
109
  const response = await doFetch(input, sseInit);
110
+ // Snapshot the challenge at SSE open time so concurrent
111
+ // calls don't overwrite it.
112
+ const sseChallenge = lastChallenge;
108
113
  if (!response.body)
109
114
  throw new Error('Response has no body.');
110
115
  const reader = response.body.getReader();
@@ -132,13 +137,13 @@ export function sessionManager(parameters) {
132
137
  yield event.data;
133
138
  break;
134
139
  case 'payment-need-voucher': {
135
- if (!channel || !lastChallenge)
140
+ if (!channel || !sseChallenge)
136
141
  break;
137
142
  const required = BigInt(event.data.requiredCumulative);
138
143
  channel.cumulativeAmount =
139
144
  channel.cumulativeAmount > required ? channel.cumulativeAmount : required;
140
145
  const credential = await method.createCredential({
141
- challenge: lastChallenge,
146
+ challenge: sseChallenge,
142
147
  context: {
143
148
  action: 'voucher',
144
149
  channelId: channel.channelId,
@@ -1 +1 @@
1
- {"version":3,"file":"SessionManager.js","sourceRoot":"","sources":["../../../src/tempo/client/SessionManager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,gCAAgC,CAAA;AAGvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAG7C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,cAAc,CAAA;AA0BvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,cAAc,CAAC,UAAqC;IAClE,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAA;IAEpD,IAAI,OAAO,GAAwB,IAAI,CAAA;IACvC,IAAI,aAAa,GAA+B,IAAI,CAAA;IACpD,IAAI,OAAO,GAA6B,IAAI,CAAA;IAE5C,MAAM,MAAM,GAAG,aAAa,CAAC;QAC3B,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;QAC7C,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAO,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS;QAC9E,cAAc,EAAE,UAAU,CAAC,cAAc;QACzC,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,eAAe,CAAC,KAAK;YACnB,OAAO,GAAG,KAAK,CAAA;QACjB,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC;QAC9B,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,CAAC,MAAM,CAAC;QACjB,WAAW,CAAC,CAAC;YACX,aAAa,GAAG,CAAC,CAAA;QACnB,CAAC;KACF,CAAC,CAAA;IAEF,SAAS,iBAAiB,CAAC,QAAkB;QAC3C,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAC7D,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC9E,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC7B,OAAO;YACP,SAAS,EAAE,aAAa;YACxB,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI;YACrC,UAAU,EAAE,OAAO,EAAE,gBAAgB,IAAI,EAAE;SAC5C,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,UAAU,OAAO,CAAC,KAAwB,EAAE,IAAkB;QACjE,OAAO,GAAG,KAAK,CAAA;QACf,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAChD,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACpC,CAAC;IAED,MAAM,IAAI,GAAmB;QAC3B,IAAI,SAAS;YACX,OAAO,OAAO,EAAE,SAAS,CAAA;QAC3B,CAAC;QACD,IAAI,UAAU;YACZ,OAAO,OAAO,EAAE,gBAAgB,IAAI,EAAE,CAAA;QACxC,CAAC;QACD,IAAI,MAAM;YACR,OAAO,OAAO,EAAE,MAAM,IAAI,KAAK,CAAA;QACjC,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,OAAO;YAChB,IAAI,OAAO,EAAE,MAAM;gBAAE,OAAM;YAE3B,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CACb,mHAAmH,CACpH,CAAA;YACH,CAAC;YAED,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAA;YAChC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC;gBAC/C,SAAS,EAAE,aAAsB;gBACjC,OAAO,EAAE;oBACP,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;iBACjE;aACF,CAAC,CAAA;YAEF,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;YACxF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE;gBACtC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE;aACvC,CAAC,CAAA;YACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;gBAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAA;gBAC9D,MAAM,IAAI,KAAK,CACb,mCAAmC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,uBAAuB,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAClI,CAAA;YACH,CAAC;QACH,CAAC;QAED,KAAK,EAAE,OAAO;QAEd,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI;YACnB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;YAEtD,MAAM,OAAO,GAAG;gBACd,GAAG,SAAS;gBACZ,OAAO,EAAE;oBACP,GAAG,SAAS,CAAC,OAAO;oBACpB,MAAM,EAAE,mBAAmB;iBAC5B;aACF,CAAA;YAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YAE9C,IAAI,CAAC,QAAQ,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;YAE5D,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;YACxC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;YAEjC,KAAK,SAAS,CAAC,CAAC,OAAO;gBACrB,IAAI,MAAM,GAAG,EAAE,CAAA;gBAEf,IAAI,CAAC;oBACH,OAAO,IAAI,EAAE,CAAC;wBACZ,IAAI,MAAM,EAAE,OAAO;4BAAE,MAAK;wBAE1B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;wBAC3C,IAAI,IAAI;4BAAE,MAAK;wBAEf,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;wBAEjD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;wBAClC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;wBAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;4BACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gCAAE,SAAQ;4BAE1B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;4BAC9B,IAAI,CAAC,KAAK;gCAAE,SAAQ;4BAEpB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gCACnB,KAAK,SAAS;oCACZ,MAAM,KAAK,CAAC,IAAI,CAAA;oCAChB,MAAK;gCAEP,KAAK,sBAAsB,CAAC,CAAC,CAAC;oCAC5B,IAAI,CAAC,OAAO,IAAI,CAAC,aAAa;wCAAE,MAAK;oCACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;oCACtD,OAAO,CAAC,gBAAgB;wCACtB,OAAO,CAAC,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAA;oCAE3E,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC;wCAC/C,SAAS,EAAE,aAAsB;wCACjC,OAAO,EAAE;4CACP,MAAM,EAAE,SAAS;4CACjB,SAAS,EAAE,OAAO,CAAC,SAAS;4CAC5B,mBAAmB,EAAE,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE;yCACzD;qCACF,CAAC,CAAA;oCACF,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE;wCAC3C,MAAM,EAAE,MAAM;wCACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE;qCACvC,CAAC,CAAA;oCACF,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC;wCACxB,MAAM,IAAI,KAAK,CAAC,mCAAmC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAA;oCAC9E,CAAC;oCACD,MAAK;gCACP,CAAC;gCAED,KAAK,iBAAiB;oCACpB,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oCACvB,MAAK;4BACT,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,MAAM,CAAC,WAAW,EAAE,CAAA;gBACtB,CAAC;YACH,CAAC;YAED,OAAO,OAAO,EAAE,CAAA;QAClB,CAAC;QAED,KAAK,CAAC,KAAK;YACT,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,aAAa;gBAAE,OAAO,SAAS,CAAA;YAExD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC;gBAC/C,SAAS,EAAE,aAAsB;gBACjC,OAAO,EAAE;oBACP,MAAM,EAAE,OAAO;oBACf,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,mBAAmB,EAAE,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE;iBACzD;aACF,CAAC,CAAA;YAEF,IAAI,OAAkC,CAAA;YACtC,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE;oBACtC,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE;iBACvC,CAAC,CAAA;gBACF,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;gBAC7D,IAAI,aAAa;oBAAE,OAAO,GAAG,wBAAwB,CAAC,aAAa,CAAC,CAAA;YACtE,CAAC;YAED,OAAO,OAAO,CAAA;QAChB,CAAC;KACF,CAAA;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"SessionManager.js","sourceRoot":"","sources":["../../../src/tempo/client/SessionManager.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export declare const escrowContract: {
8
8
  };
9
9
  export declare const testnetChainId = 42431;
10
10
  /**
11
- * Default token decimals for TIP-20 stablecoins (e.g. alphaUSD).
11
+ * Default token decimals for TIP-20 stablecoins (e.g. pathUSD).
12
12
  *
13
13
  * All TIP-20 tokens on Tempo use 6 decimals, so there is no risk of
14
14
  * client/server mismatch within the Tempo ecosystem. Other chains and
@@ -8,7 +8,7 @@ export const escrowContract = {
8
8
  };
9
9
  export const testnetChainId = 42431;
10
10
  /**
11
- * Default token decimals for TIP-20 stablecoins (e.g. alphaUSD).
11
+ * Default token decimals for TIP-20 stablecoins (e.g. pathUSD).
12
12
  *
13
13
  * All TIP-20 tokens on Tempo use 6 decimals, so there is no risk of
14
14
  * client/server mismatch within the Tempo ecosystem. Other chains and
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/tempo/server/internal/transport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,SAAS,MAAM,8BAA8B,CAAA;AACzD,OAAO,KAAK,KAAK,YAAY,MAAM,8BAA8B,CAAA;AACjE,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAE/C,kDAAkD;AAClD,MAAM,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;AAE1D;;;;;;;;GAQG;AACH,wBAAgB,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG;IAAE,KAAK,EAAE,YAAY,CAAC,YAAY,CAAA;CAAE,GAAG,GAAG,CAsEpF;AAED,MAAM,CAAC,OAAO,WAAW,GAAG,CAAC;IAC3B,KAAK,OAAO,GAAG;QACb;;;;;;;;;WASG;QACH,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC1B,sDAAsD;QACtD,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACrC,CAAA;CACF;AAED,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,OAAO,EAAE;IACpC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;IAC7E,WAAW,EAAE,MAAM,CAAA;CACpB,GAAG,QAAQ,CAwBX"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/tempo/server/internal/transport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,SAAS,MAAM,8BAA8B,CAAA;AACzD,OAAO,KAAK,KAAK,YAAY,MAAM,8BAA8B,CAAA;AACjE,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAE/C,kDAAkD;AAClD,MAAM,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;AAE1D;;;;;;;;GAQG;AACH,wBAAgB,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG;IAAE,KAAK,EAAE,YAAY,CAAC,YAAY,CAAA;CAAE,GAAG,GAAG,CAuEpF;AAED,MAAM,CAAC,OAAO,WAAW,GAAG,CAAC;IAC3B,KAAK,OAAO,GAAG;QACb;;;;;;;;;WASG;QACH,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC1B,sDAAsD;QACtD,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACrC,CAAA;CACF;AAED,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,OAAO,EAAE;IACpC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;IAC7E,WAAW,EAAE,MAAM,CAAA;CACpB,GAAG,QAAQ,CAwBX"}
@@ -36,7 +36,7 @@ export function sse(options) {
36
36
  if (credential) {
37
37
  try {
38
38
  const ctx = Sse_core.fromRequest(request);
39
- contextMap.set(ctx.challengeId, ctx);
39
+ contextMap.set(ctx.challengeId, { ...ctx, signal: request.signal });
40
40
  }
41
41
  catch {
42
42
  // ignore — non-SSE credentials won't have stream context
@@ -73,6 +73,7 @@ export function sse(options) {
73
73
  tickCost: ctx.tickCost,
74
74
  pollIntervalMs: pollingInterval,
75
75
  generate,
76
+ signal: ctx.signal,
76
77
  });
77
78
  return Sse_core.toResponse(stream);
78
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/tempo/server/internal/transport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,SAAS,MAAM,8BAA8B,CAAA;AAEzD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAK/C;;;;;;;;GAQG;AACH,MAAM,UAAU,GAAG,CAAC,OAA2D;IAC7E,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IAEzC,oEAAoE;IACpE,6EAA6E;IAC7E,qEAAqE;IACrE,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC,IAAI;YAAE,OAAO,OAAO,CAAC,KAAK,CAAA;QAC/B,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QACpD,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,UAAU,GAAG,IAAI,GAAG,EAAwC,CAAA;IAElE,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;IAC7B,OAAO,SAAS,CAAC,IAAI,CAAgE;QACnF,IAAI,EAAE,KAAK;QAEX,aAAa,CAAC,OAAO;YACnB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YAC9C,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;oBACzC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;gBACtC,CAAC;gBAAC,MAAM,CAAC;oBACP,yDAAyD;gBAC3D,CAAC;YACH,CAAC;YACD,OAAO,UAAU,CAAA;QACnB,CAAC;QAED,gBAAgB,CAAC,OAAO;YACtB,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAa,CAAA;QACnD,CAAC;QAED,cAAc,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE;YAC/C,4DAA4D;YAC5D,2DAA2D;YAC3D,0EAA0E;YAC1E,4CAA4C;YAC5C,MAAM,QAAQ,GACZ,QAAQ,YAAY,QAAQ,IAAI,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI;gBAC/E,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACjE,CAAC,CAAC,QAAQ,CAAA;YAEd,IAAI,wBAAwB,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpE,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;gBACvC,IAAI,CAAC,GAAG;oBAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;gBACjF,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;gBAE9B,kEAAkE;gBAClE,kEAAkE;gBAClE,qDAAqD;gBACrD,MAAM,QAAQ,GAAuC,wBAAwB,CAAC,QAAQ,CAAC;oBACrF,CAAC,CAAE,QAA+C;oBAClD,CAAC,CAAE,QAAkC,CAAA;gBACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC;oBAC5B,KAAK;oBACL,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,WAAW;oBACX,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,cAAc,EAAE,eAAe;oBAC/B,QAAQ;iBACT,CAAC,CAAA;gBACF,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YACpC,CAAC;YAED,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAoB,EAAE,WAAW,EAAE,CAAC,CAAA;QACtF,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAoBD,+EAA+E;AAC/E,MAAM,UAAU,YAAY,CAAC,OAG5B;IACC,MAAM,QAAQ,GACZ,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAA;IAChG,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;IACjC,MAAM,MAAM,GAAG,IAAI,cAAc,CAAa;QAC5C,KAAK,CAAC,KAAK,CAAC,UAAU;YACpB,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;oBACnC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,yBAAyB,KAAK,MAAM,CAAC,CAAC,CAAA;gBAC1E,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACrB,CAAC;oBAAS,CAAC;gBACT,UAAU,CAAC,KAAK,EAAE,CAAA;YACpB,CAAC;QACH,CAAC;KACF,CAAC,CAAA;IACF,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE;QAC1B,OAAO,EAAE;YACP,cAAc,EAAE,kCAAkC;YAClD,eAAe,EAAE,wBAAwB;YACzC,UAAU,EAAE,YAAY;SACzB;KACF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAc;IAEd,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO,KAAK,CAAA;IAC7C,OAAO,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,wBAAwB,CAAA;AAC7D,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,IAAK,KAAgB,CAAA;AACjG,CAAC"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/tempo/server/internal/transport.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mppx",
3
3
  "type": "module",
4
- "version": "0.1.0",
4
+ "version": "0.1.1",
5
5
  "main": "./dist/index.js",
6
6
  "license": "MIT",
7
7
  "files": [
package/src/Challenge.ts CHANGED
@@ -23,7 +23,7 @@ export const Schema = z.object({
23
23
  expires: z.optional(z.datetime()),
24
24
  /** Unique challenge identifier (HMAC-bound). */
25
25
  id: z.string(),
26
- /** Intent type (e.g., "charge", "authorize"). */
26
+ /** Intent type (e.g., "charge", "session"). */
27
27
  intent: z.string(),
28
28
  /** Payment method (e.g., "tempo", "stripe"). */
29
29
  method: z.string(),
@@ -151,7 +151,7 @@ export declare namespace from {
151
151
  digest?: string | undefined
152
152
  /** Optional expiration timestamp (ISO 8601). */
153
153
  expires?: string | undefined
154
- /** Intent type (e.g., "charge", "authorize"). */
154
+ /** Intent type (e.g., "charge", "session"). */
155
155
  intent: string
156
156
  /** Payment method (e.g., "tempo", "stripe"). */
157
157
  method: string
@@ -54,12 +54,19 @@ export function create<
54
54
  Response
55
55
  >,
56
56
  >(config: create.Config<methods, transport>): Mppx<methods, transport> {
57
- const { polyfill = true, transport = Transport.http() as transport } = config
57
+ const { onChallenge, polyfill = true, transport = Transport.http() as transport } = config
58
58
 
59
59
  const methods = config.methods.flat() as unknown as FlattenMethods<methods>
60
60
 
61
- const config_fetch = { ...(config.fetch && { fetch: config.fetch }), methods }
62
- const fetch = Fetch.from(config_fetch)
61
+ const resolvedOnChallenge = onChallenge as Fetch.from.Config<
62
+ FlattenMethods<methods>
63
+ >['onChallenge']
64
+ const config_fetch = {
65
+ ...(config.fetch && { fetch: config.fetch }),
66
+ ...(resolvedOnChallenge && { onChallenge: resolvedOnChallenge }),
67
+ methods,
68
+ } satisfies Fetch.from.Config<FlattenMethods<methods>>
69
+ const fetch = Fetch.from<FlattenMethods<methods>>(config_fetch)
63
70
 
64
71
  if (polyfill) Fetch.polyfill(config_fetch)
65
72
  return {
@@ -112,6 +119,15 @@ export declare namespace create {
112
119
  > = {
113
120
  /** Custom fetch function to wrap. Defaults to `globalThis.fetch`. */
114
121
  fetch?: typeof globalThis.fetch
122
+ /** Called when a 402 challenge is received, before credential creation. */
123
+ onChallenge?:
124
+ | ((
125
+ challenge: Challenge.Challenge,
126
+ helpers: {
127
+ createCredential: (context?: AnyContextFor<FlattenMethods<methods>>) => Promise<string>
128
+ },
129
+ ) => Promise<string | undefined>)
130
+ | undefined
115
131
  /** Array of method intents to use. Accepts individual clients or tuples (e.g. from `tempo()`). */
116
132
  methods: methods
117
133
  /** Whether to polyfill `globalThis.fetch` with the payment-aware wrapper. @default true */
@@ -2,7 +2,7 @@ import { Receipt } from 'mppx'
2
2
  import { tempo } from 'mppx/client'
3
3
  import { Mppx as Mppx_server, tempo as tempo_server } from 'mppx/server'
4
4
  import { createClient } from 'viem'
5
- import { describe, expect, test } from 'vitest'
5
+ import { describe, expect, test, vi } from 'vitest'
6
6
  import * as Http from '~test/Http.js'
7
7
  import { accounts, asset, chain, client, http } from '~test/tempo/viem.js'
8
8
  import * as Fetch from './Fetch.js'
@@ -232,6 +232,40 @@ describe('Fetch.from', () => {
232
232
 
233
233
  httpServer.close()
234
234
  })
235
+
236
+ test('behavior: onChallenge can create credential', async () => {
237
+ const onChallenge = vi.fn(async (_challenge, { createCredential }) =>
238
+ createCredential({ account: accounts[1] }),
239
+ )
240
+
241
+ const fetch = Fetch.from({
242
+ methods: [
243
+ tempo.charge({
244
+ getClient: () => client,
245
+ }),
246
+ ],
247
+ onChallenge,
248
+ })
249
+
250
+ const httpServer = await Http.createServer(async (req, res) => {
251
+ const result = await Mppx_server.toNodeListener(
252
+ server.charge({
253
+ amount: '1',
254
+ currency: asset,
255
+ expires: new Date(Date.now() + 60_000).toISOString(),
256
+ recipient: accounts[0].address,
257
+ }),
258
+ )(req, res)
259
+ if (result.status === 402) return
260
+ res.end('OK')
261
+ })
262
+
263
+ const response = await fetch(httpServer.url)
264
+ expect(response.status).toBe(200)
265
+ expect(onChallenge).toHaveBeenCalledTimes(1)
266
+
267
+ httpServer.close()
268
+ })
235
269
  })
236
270
 
237
271
  describe('Fetch.polyfill', () => {
@@ -37,7 +37,6 @@ export function from<const methods extends readonly MethodIntent.AnyClient[]>(
37
37
  if (response.status !== 402) return response
38
38
 
39
39
  const challenge = Challenge.fromResponse(response)
40
- onChallenge?.(challenge)
41
40
 
42
41
  const mi = methods.find((m) => m.method === challenge.method && m.name === challenge.intent)
43
42
  if (!mi)
@@ -45,7 +44,13 @@ export function from<const methods extends readonly MethodIntent.AnyClient[]>(
45
44
  `No method intent found for "${challenge.method}.${challenge.intent}". Available: ${methods.map((m) => `${m.method}.${m.name}`).join(', ')}`,
46
45
  )
47
46
 
48
- const credential = await resolveCredential(challenge, mi, context)
47
+ const onChallengeCredential = onChallenge
48
+ ? await onChallenge(challenge, {
49
+ createCredential: async (overrideContext?: AnyContextFor<methods>) =>
50
+ resolveCredential(challenge, mi, overrideContext ?? context),
51
+ })
52
+ : undefined
53
+ const credential = onChallengeCredential ?? (await resolveCredential(challenge, mi, context))
49
54
 
50
55
  return fetch(input, {
51
56
  ...fetchInit,
@@ -75,7 +80,14 @@ export declare namespace from {
75
80
  /** Array of method intents to use. */
76
81
  methods: methods
77
82
  /** Called when a 402 challenge is received, before credential creation. */
78
- onChallenge?: ((challenge: Challenge.Challenge) => void) | undefined
83
+ onChallenge?:
84
+ | ((
85
+ challenge: Challenge.Challenge,
86
+ helpers: {
87
+ createCredential: (context?: AnyContextFor<methods>) => Promise<string>
88
+ },
89
+ ) => Promise<string | undefined>)
90
+ | undefined
79
91
  }
80
92
 
81
93
  type Fetch<
@@ -87,7 +87,10 @@ describe.skipIf(!stripeSecretKey)('stripe', () => {
87
87
  })
88
88
 
89
89
  const clientCharge = stripe_client.charge({
90
- createSpt: createTestSpt,
90
+ createToken: async (params) => {
91
+ if (!params.paymentMethod) throw new Error('paymentMethod is required')
92
+ return createTestSpt({ ...params, paymentMethod: params.paymentMethod })
93
+ },
91
94
  paymentMethod: 'pm_card_visa',
92
95
  externalId: 'client_order_789',
93
96
  })
@@ -1,3 +1,4 @@
1
+ import type * as Challenge from '../../Challenge.js'
1
2
  import * as Credential from '../../Credential.js'
2
3
  import * as MethodIntent from '../../MethodIntent.js'
3
4
  import * as z from '../../zod.js'
@@ -6,8 +7,9 @@ import * as Intents from '../Intents.js'
6
7
  /**
7
8
  * Creates a Stripe charge method intent for usage on the client.
8
9
  *
9
- * Accepts a `createSpt` callback that handles SPT creation (requires
10
- * a secret key, so typically proxied through a server endpoint).
10
+ * Accepts a `createToken` callback that handles SPT creation (requires
11
+ * a secret key, so typically proxied through a server endpoint) and
12
+ * returns a credential for retrying the request.
11
13
  *
12
14
  * The `paymentMethod` (e.g. from Stripe Elements) can be provided at
13
15
  * initialization or at credential-creation time via `context`.
@@ -17,7 +19,7 @@ import * as Intents from '../Intents.js'
17
19
  * import { stripe } from 'mppx/client'
18
20
  *
19
21
  * const charge = stripe.charge({
20
- * createSpt: async ({ paymentMethod, amount, currency, networkId, expiresAt, metadata }) => {
22
+ * createToken: async ({ amount, currency, expiresAt, metadata, networkId, paymentMethod }) => {
21
23
  * const res = await fetch('/api/create-spt', {
22
24
  * method: 'POST',
23
25
  * headers: { 'Content-Type': 'application/json' },
@@ -27,16 +29,10 @@ import * as Intents from '../Intents.js'
27
29
  * return spt
28
30
  * },
29
31
  * })
30
- *
31
- * // paymentMethod comes from Stripe Elements at credential-creation time
32
- * const credential = await charge.createCredential({
33
- * challenge,
34
- * context: { paymentMethod: 'pm_xxx' },
35
- * })
36
32
  * ```
37
33
  */
38
34
  export function charge(parameters: charge.Parameters) {
39
- const { createSpt, externalId, paymentMethod: defaultPaymentMethod } = parameters
35
+ const { createToken, externalId, paymentMethod: defaultPaymentMethod } = parameters
40
36
 
41
37
  return MethodIntent.toClient(Intents.charge, {
42
38
  context: z.object({
@@ -45,8 +41,9 @@ export function charge(parameters: charge.Parameters) {
45
41
 
46
42
  async createCredential({ challenge, context }) {
47
43
  const paymentMethod = context?.paymentMethod ?? defaultPaymentMethod
48
- if (!paymentMethod)
44
+ if (!paymentMethod) {
49
45
  throw new Error('paymentMethod is required (pass via context or parameters)')
46
+ }
50
47
 
51
48
  const amount = challenge.request.amount as string
52
49
  const currency = challenge.request.currency as string
@@ -65,7 +62,8 @@ export function charge(parameters: charge.Parameters) {
65
62
  ? Math.floor(new Date(challenge.request.expires as string).getTime() / 1000)
66
63
  : Math.floor(Date.now() / 1000) + 3600
67
64
 
68
- const spt = await createSpt({
65
+ const spt = await createToken({
66
+ challenge,
69
67
  paymentMethod,
70
68
  amount,
71
69
  currency,
@@ -87,24 +85,22 @@ export function charge(parameters: charge.Parameters) {
87
85
 
88
86
  export declare namespace charge {
89
87
  type Parameters = {
90
- /**
91
- * Creates a Shared Payment Token (SPT) for the given parameters.
92
- *
93
- * SPT creation requires a Stripe secret key, so this typically
94
- * proxies through a server endpoint (e.g. `POST /api/create-spt`).
95
- * If you are running a client in an enviroment with a secret key, you can just create the
96
- * SPT directly in this callback.
97
- */
98
- createSpt: (parameters: CreateSptParameters) => Promise<string>
88
+ /** Called when a Stripe challenge is received. Create an SPT to retry. */
89
+ createToken: (parameters: OnChallengeParameters) => Promise<string>
99
90
  /** Optional client-side external reference ID for the credential payload. */
100
91
  externalId?: string | undefined
101
92
  /** Default payment method ID. Overridden by `context.paymentMethod`. */
102
93
  paymentMethod?: string | undefined
103
94
  }
104
95
 
105
- type CreateSptParameters = {
96
+ type OnChallengeParameters = {
97
+ challenge: Challenge.Challenge<
98
+ z.output<typeof Intents.charge.schema.request>,
99
+ typeof Intents.charge.name,
100
+ typeof Intents.charge.method
101
+ >
106
102
  /** Stripe payment method ID (e.g. from Stripe Elements). */
107
- paymentMethod: string
103
+ paymentMethod?: string | undefined
108
104
  /** Payment amount (in smallest currency unit). */
109
105
  amount: string
110
106
  /** Three-letter ISO currency code. */
@@ -10,7 +10,7 @@ import { charge as charge_ } from './Charge.js'
10
10
  * const mppx = Mppx.create({
11
11
  * methods: [
12
12
  * stripe({
13
- * createSpt: async (params) => {
13
+ * createToken: async (params) => {
14
14
  * const res = await fetch('/api/create-spt', {
15
15
  * method: 'POST',
16
16
  * headers: { 'Content-Type': 'application/json' },
@@ -75,8 +75,9 @@ export function sessionManager(parameters: sessionManager.Parameters): SessionMa
75
75
  const wrappedFetch = Fetch.from({
76
76
  fetch: fetchFn,
77
77
  methods: [method],
78
- onChallenge(c) {
79
- lastChallenge = c
78
+ onChallenge: async (challenge, _helpers) => {
79
+ lastChallenge = challenge
80
+ return undefined
80
81
  },
81
82
  })
82
83
 
@@ -150,10 +151,15 @@ export function sessionManager(parameters: sessionManager.Parameters): SessionMa
150
151
  ...fetchInit.headers,
151
152
  Accept: 'text/event-stream',
152
153
  },
154
+ ...(signal ? { signal } : {}),
153
155
  }
154
156
 
155
157
  const response = await doFetch(input, sseInit)
156
158
 
159
+ // Snapshot the challenge at SSE open time so concurrent
160
+ // calls don't overwrite it.
161
+ const sseChallenge = lastChallenge
162
+
157
163
  if (!response.body) throw new Error('Response has no body.')
158
164
 
159
165
  const reader = response.body.getReader()
@@ -186,13 +192,13 @@ export function sessionManager(parameters: sessionManager.Parameters): SessionMa
186
192
  break
187
193
 
188
194
  case 'payment-need-voucher': {
189
- if (!channel || !lastChallenge) break
195
+ if (!channel || !sseChallenge) break
190
196
  const required = BigInt(event.data.requiredCumulative)
191
197
  channel.cumulativeAmount =
192
198
  channel.cumulativeAmount > required ? channel.cumulativeAmount : required
193
199
 
194
200
  const credential = await method.createCredential({
195
- challenge: lastChallenge as never,
201
+ challenge: sseChallenge as never,
196
202
  context: {
197
203
  action: 'voucher',
198
204
  channelId: channel.channelId,
@@ -11,7 +11,7 @@ export const escrowContract = {
11
11
  export const testnetChainId = 42431
12
12
 
13
13
  /**
14
- * Default token decimals for TIP-20 stablecoins (e.g. alphaUSD).
14
+ * Default token decimals for TIP-20 stablecoins (e.g. pathUSD).
15
15
  *
16
16
  * All TIP-20 tokens on Tempo use 6 decimals, so there is no risk of
17
17
  * client/server mismatch within the Tempo ecosystem. Other chains and
@@ -33,7 +33,7 @@ export function sse(options: sse.Options & { store: ChannelStore.ChannelStore })
33
33
  return store
34
34
  })()
35
35
 
36
- const contextMap = new Map<string, Sse_core.fromRequest.Context>()
36
+ const contextMap = new Map<string, Sse_core.fromRequest.Context & { signal?: AbortSignal }>()
37
37
 
38
38
  const base = Transport.http()
39
39
  return Transport.from<Request, Response, Transport.ReceiptResponseOf<Sse>, Response>({
@@ -44,7 +44,7 @@ export function sse(options: sse.Options & { store: ChannelStore.ChannelStore })
44
44
  if (credential) {
45
45
  try {
46
46
  const ctx = Sse_core.fromRequest(request)
47
- contextMap.set(ctx.challengeId, ctx)
47
+ contextMap.set(ctx.challengeId, { ...ctx, signal: request.signal })
48
48
  } catch {
49
49
  // ignore — non-SSE credentials won't have stream context
50
50
  }
@@ -84,6 +84,7 @@ export function sse(options: sse.Options & { store: ChannelStore.ChannelStore })
84
84
  tickCost: ctx.tickCost,
85
85
  pollIntervalMs: pollingInterval,
86
86
  generate,
87
+ signal: ctx.signal,
87
88
  })
88
89
  return Sse_core.toResponse(stream)
89
90
  }