mppx 0.6.27 → 0.6.28

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 (39) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/Store.d.ts +32 -9
  3. package/dist/Store.d.ts.map +1 -1
  4. package/dist/Store.js +42 -10
  5. package/dist/Store.js.map +1 -1
  6. package/dist/proxy/internal/Headers.d.ts +13 -1
  7. package/dist/proxy/internal/Headers.d.ts.map +1 -1
  8. package/dist/proxy/internal/Headers.js +14 -1
  9. package/dist/proxy/internal/Headers.js.map +1 -1
  10. package/dist/stripe/server/Charge.d.ts +31 -1
  11. package/dist/stripe/server/Charge.d.ts.map +1 -1
  12. package/dist/stripe/server/Charge.js +88 -11
  13. package/dist/stripe/server/Charge.js.map +1 -1
  14. package/dist/tempo/server/Charge.d.ts +6 -0
  15. package/dist/tempo/server/Charge.d.ts.map +1 -1
  16. package/dist/tempo/server/Charge.js +7 -2
  17. package/dist/tempo/server/Charge.js.map +1 -1
  18. package/dist/tempo/server/Session.d.ts +6 -0
  19. package/dist/tempo/server/Session.d.ts.map +1 -1
  20. package/dist/tempo/server/Session.js +1 -1
  21. package/dist/tempo/server/Session.js.map +1 -1
  22. package/dist/tempo/server/Subscription.d.ts +6 -0
  23. package/dist/tempo/server/Subscription.d.ts.map +1 -1
  24. package/dist/tempo/server/Subscription.js +1 -1
  25. package/dist/tempo/server/Subscription.js.map +1 -1
  26. package/package.json +1 -1
  27. package/src/Store.test-d.ts +58 -0
  28. package/src/Store.test.ts +77 -0
  29. package/src/Store.ts +155 -74
  30. package/src/proxy/internal/Headers.test.ts +18 -0
  31. package/src/proxy/internal/Headers.ts +14 -1
  32. package/src/stripe/server/Charge.test.ts +215 -1
  33. package/src/stripe/server/Charge.ts +150 -20
  34. package/src/tempo/server/Charge.test.ts +22 -1
  35. package/src/tempo/server/Charge.ts +16 -2
  36. package/src/tempo/server/Session.ts +9 -1
  37. package/src/tempo/server/Subscription.ts +7 -1
  38. package/src/tempo/session/ChannelStore.test.ts +21 -0
  39. package/src/tempo/subscription/Store.test.ts +55 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # mppx
2
2
 
3
+ ## 0.6.28
4
+
5
+ ### Patch Changes
6
+
7
+ - 6c789fa: Added store key prefix options for Store constructors and Tempo charge, session, and subscription stores.
8
+ - b051e6c: Stripped `Set-Cookie` from upstream responses in `Proxy.scrubResponse` so an upstream service cannot set cookies under the proxy's origin.
9
+ - 1ee47a2: Added server-side Stripe Connect settlement options for Stripe charges.
10
+
3
11
  ## 0.6.27
4
12
 
5
13
  ### Patch Changes
package/dist/Store.d.ts CHANGED
@@ -54,13 +54,22 @@ export type Store<itemMap extends StoreItemMap = StoreItemMap, extended extends
54
54
  * Equivalent to `Store<itemMap, AtomicActions<itemMap>>`.
55
55
  */
56
56
  export type AtomicStore<itemMap extends StoreItemMap = StoreItemMap> = Store<itemMap, AtomicActions<itemMap>>;
57
+ /** Options shared by store constructors. */
58
+ export type Options = {
59
+ /** Prefix prepended to every backing store key. */
60
+ keyPrefix?: string | undefined;
61
+ };
57
62
  /** Creates a {@link Store} from an existing implementation. */
58
- export declare function from<store extends Store>(store: store): store;
59
- export declare function from<store extends AtomicStore>(store: store): store;
63
+ export declare function from<store extends AtomicStore<any>>(store: store, options?: Options): store;
64
+ export declare function from<store extends Store<any>>(store: store, options?: Options): store;
60
65
  /** Wraps a Cloudflare KV namespace. */
61
- export declare function cloudflare(kv: cloudflare.AtomicParameters): AtomicStore;
62
- export declare function cloudflare(kv: cloudflare.Parameters): Store;
66
+ export declare function cloudflare(kv: cloudflare.AtomicParameters, options?: cloudflare.Options): AtomicStore;
67
+ export declare function cloudflare(kv: cloudflare.Parameters, options?: cloudflare.Options): Store;
63
68
  export declare namespace cloudflare {
69
+ type Options = {
70
+ /** Prefix prepended to every backing store key. */
71
+ keyPrefix?: string | undefined;
72
+ };
64
73
  type Parameters = {
65
74
  get: (key: string) => Promise<unknown>;
66
75
  put: (key: string, value: string) => Promise<void>;
@@ -72,11 +81,21 @@ export declare namespace cloudflare {
72
81
  };
73
82
  }
74
83
  /** In-memory store backed by a `Map`. JSON-roundtrips values to match production behavior. */
75
- export declare function memory(): AtomicStore;
84
+ export declare function memory(options?: memory.Options): AtomicStore;
85
+ export declare namespace memory {
86
+ type Options = {
87
+ /** Prefix prepended to every backing store key. */
88
+ keyPrefix?: string | undefined;
89
+ };
90
+ }
76
91
  /** Wraps a standard Redis client (ioredis, node-redis, Valkey). */
77
- export declare function redis(client: redis.AtomicParameters): AtomicStore;
78
- export declare function redis(client: redis.Parameters): Store;
92
+ export declare function redis(client: redis.AtomicParameters, options?: redis.Options): AtomicStore;
93
+ export declare function redis(client: redis.Parameters, options?: redis.Options): Store;
79
94
  export declare namespace redis {
95
+ type Options = {
96
+ /** Prefix prepended to every backing store key. */
97
+ keyPrefix?: string | undefined;
98
+ };
80
99
  type Parameters = {
81
100
  get: (key: string) => Promise<string | null>;
82
101
  set: (key: string, value: string) => Promise<unknown>;
@@ -88,9 +107,13 @@ export declare namespace redis {
88
107
  };
89
108
  }
90
109
  /** Wraps an Upstash Redis instance (e.g. Vercel KV). */
91
- export declare function upstash(redis: upstash.AtomicParameters): AtomicStore;
92
- export declare function upstash(redis: upstash.Parameters): Store;
110
+ export declare function upstash(redis: upstash.AtomicParameters, options?: upstash.Options): AtomicStore;
111
+ export declare function upstash(redis: upstash.Parameters, options?: upstash.Options): Store;
93
112
  export declare namespace upstash {
113
+ type Options = {
114
+ /** Prefix prepended to every backing store key. */
115
+ keyPrefix?: string | undefined;
116
+ };
94
117
  type Parameters = {
95
118
  get: (key: string) => Promise<unknown>;
96
119
  set: (key: string, value: unknown) => Promise<unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"Store.d.ts","sourceRoot":"","sources":["../src/Store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Store.d.ts","sourceRoot":"","sources":["../src/Store.ts"],"names":[],"mappings":"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"}
package/dist/Store.js CHANGED
@@ -15,8 +15,40 @@
15
15
  * `AtomicActions`, just like Viem's `PublicClient = Client<..., PublicActions>`.
16
16
  */
17
17
  import { Json } from 'ox';
18
- export function from(store) {
19
- return store;
18
+ const keyPrefixCache = new WeakMap();
19
+ export function from(store, options) {
20
+ return withKeyPrefix(store, options?.keyPrefix);
21
+ }
22
+ function withKeyPrefix(store, keyPrefix = '') {
23
+ if (!keyPrefix)
24
+ return store;
25
+ const cached = keyPrefixCache.get(store)?.get(keyPrefix);
26
+ if (cached)
27
+ return cached;
28
+ const backing = store;
29
+ const prefixedKey = (key) => `${keyPrefix}${key}`;
30
+ const prefixed = from({
31
+ async get(key) {
32
+ return backing.get(prefixedKey(key));
33
+ },
34
+ async put(key, value) {
35
+ await backing.put(prefixedKey(key), value);
36
+ },
37
+ async delete(key) {
38
+ await backing.delete(prefixedKey(key));
39
+ },
40
+ ...('update' in store
41
+ ? {
42
+ async update(key, fn) {
43
+ return store.update(prefixedKey(key), fn);
44
+ },
45
+ }
46
+ : {}),
47
+ });
48
+ const cachedByPrefix = keyPrefixCache.get(store) ?? new Map();
49
+ cachedByPrefix.set(keyPrefix, prefixed);
50
+ keyPrefixCache.set(store, cachedByPrefix);
51
+ return prefixed;
20
52
  }
21
53
  function wrapJsonUpdate(update) {
22
54
  if (!update)
@@ -33,7 +65,7 @@ function wrapJsonUpdate(update) {
33
65
  },
34
66
  };
35
67
  }
36
- export function cloudflare(kv) {
68
+ export function cloudflare(kv, options) {
37
69
  return from({
38
70
  async get(key) {
39
71
  const raw = await kv.get(key);
@@ -48,10 +80,10 @@ export function cloudflare(kv) {
48
80
  await kv.delete(key);
49
81
  },
50
82
  ...wrapJsonUpdate(kv.update),
51
- });
83
+ }, options);
52
84
  }
53
85
  /** In-memory store backed by a `Map`. JSON-roundtrips values to match production behavior. */
54
- export function memory() {
86
+ export function memory(options) {
55
87
  const store = new Map();
56
88
  return from({
57
89
  async get(key) {
@@ -75,9 +107,9 @@ export function memory() {
75
107
  store.delete(key);
76
108
  return change.result;
77
109
  },
78
- });
110
+ }, options);
79
111
  }
80
- export function redis(client) {
112
+ export function redis(client, options) {
81
113
  return from({
82
114
  async get(key) {
83
115
  const raw = await client.get(key);
@@ -92,9 +124,9 @@ export function redis(client) {
92
124
  await client.del(key);
93
125
  },
94
126
  ...wrapJsonUpdate(client.update),
95
- });
127
+ }, options);
96
128
  }
97
- export function upstash(redis) {
129
+ export function upstash(redis, options) {
98
130
  return from({
99
131
  async get(key) {
100
132
  return (await redis.get(key));
@@ -110,6 +142,6 @@ export function upstash(redis) {
110
142
  update: redis.update,
111
143
  }
112
144
  : {}),
113
- });
145
+ }, options);
114
146
  }
115
147
  //# sourceMappingURL=Store.js.map
package/dist/Store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Store.js","sourceRoot":"","sources":["../src/Store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Store.js","sourceRoot":"","sources":["../src/Store.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,17 @@
1
1
  /** Strips hop-by-hop, auth, encoding, cookie, and forwarding headers from a request before proxying upstream. */
2
2
  export declare function scrub(headers: Headers): Headers;
3
- /** Strips `content-encoding` and `content-length` from an upstream response so the proxy can re-stream it. */
3
+ /**
4
+ * Strips re-streaming headers (`content-encoding`, `content-length`) and
5
+ * security-sensitive headers (`set-cookie`) from an upstream response.
6
+ *
7
+ * `set-cookie` is dropped because a paid API proxy must never let an upstream
8
+ * service set cookies in the user's browser under the proxy's origin. If a
9
+ * compromised, misbehaving, or attacker-influenced upstream returned
10
+ * `Set-Cookie: session=evil; Domain=.example.com`, the browser would honor it
11
+ * for every sibling subdomain of the proxy — turning any future path-confusion
12
+ * or open-redirect bug in the surrounding deployment into a session-fixation
13
+ * primitive. Proxied services authenticate via bearer tokens / signed
14
+ * payloads, never cookies, so dropping `set-cookie` is purely defensive.
15
+ */
4
16
  export declare function scrubResponse(response: Response): Response;
5
17
  //# sourceMappingURL=Headers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Headers.d.ts","sourceRoot":"","sources":["../../../src/proxy/internal/Headers.ts"],"names":[],"mappings":"AAWA,iHAAiH;AACjH,wBAAgB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAiB/C;AAED,8GAA8G;AAC9G,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAS1D"}
1
+ {"version":3,"file":"Headers.d.ts","sourceRoot":"","sources":["../../../src/proxy/internal/Headers.ts"],"names":[],"mappings":"AAWA,iHAAiH;AACjH,wBAAgB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAiB/C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAU1D"}
@@ -29,11 +29,24 @@ export function scrub(headers) {
29
29
  }
30
30
  return scrubbed;
31
31
  }
32
- /** Strips `content-encoding` and `content-length` from an upstream response so the proxy can re-stream it. */
32
+ /**
33
+ * Strips re-streaming headers (`content-encoding`, `content-length`) and
34
+ * security-sensitive headers (`set-cookie`) from an upstream response.
35
+ *
36
+ * `set-cookie` is dropped because a paid API proxy must never let an upstream
37
+ * service set cookies in the user's browser under the proxy's origin. If a
38
+ * compromised, misbehaving, or attacker-influenced upstream returned
39
+ * `Set-Cookie: session=evil; Domain=.example.com`, the browser would honor it
40
+ * for every sibling subdomain of the proxy — turning any future path-confusion
41
+ * or open-redirect bug in the surrounding deployment into a session-fixation
42
+ * primitive. Proxied services authenticate via bearer tokens / signed
43
+ * payloads, never cookies, so dropping `set-cookie` is purely defensive.
44
+ */
33
45
  export function scrubResponse(response) {
34
46
  const headers = new Headers(response.headers);
35
47
  headers.delete('content-encoding');
36
48
  headers.delete('content-length');
49
+ headers.delete('set-cookie');
37
50
  return new Response(response.body, {
38
51
  status: response.status,
39
52
  statusText: response.statusText,
@@ -1 +1 @@
1
- {"version":3,"file":"Headers.js","sourceRoot":"","sources":["../../../src/proxy/internal/Headers.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,YAAY;IACZ,YAAY;IACZ,mBAAmB;IACnB,SAAS;IACT,oBAAoB;IACpB,qBAAqB;IACrB,IAAI;IACJ,SAAS;CACV,CAAC,CAAA;AAEF,iHAAiH;AACjH,MAAM,UAAU,KAAK,CAAC,OAAgB;IACpC,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAA;IAE9B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAEhC,IAAI,KAAK,KAAK,eAAe;YAAE,SAAQ;QACvC,IAAI,KAAK,KAAK,iBAAiB;YAAE,SAAQ;QACzC,IAAI,KAAK,KAAK,gBAAgB;YAAE,SAAQ;QACxC,IAAI,KAAK,KAAK,QAAQ;YAAE,SAAQ;QAChC,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAQ;QACxC,IAAI,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,SAAQ;QAE9C,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,8GAA8G;AAC9G,MAAM,UAAU,aAAa,CAAC,QAAkB;IAC9C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC7C,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAClC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAChC,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;QACjC,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,OAAO;KACR,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"Headers.js","sourceRoot":"","sources":["../../../src/proxy/internal/Headers.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,YAAY;IACZ,YAAY;IACZ,mBAAmB;IACnB,SAAS;IACT,oBAAoB;IACpB,qBAAqB;IACrB,IAAI;IACJ,SAAS;CACV,CAAC,CAAA;AAEF,iHAAiH;AACjH,MAAM,UAAU,KAAK,CAAC,OAAgB;IACpC,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAA;IAE9B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAEhC,IAAI,KAAK,KAAK,eAAe;YAAE,SAAQ;QACvC,IAAI,KAAK,KAAK,iBAAiB;YAAE,SAAQ;QACzC,IAAI,KAAK,KAAK,gBAAgB;YAAE,SAAQ;QACxC,IAAI,KAAK,KAAK,QAAQ;YAAE,SAAQ;QAChC,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAQ;QACxC,IAAI,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,SAAQ;QAE9C,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAAC,QAAkB;IAC9C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC7C,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAClC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAChC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAC5B,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;QACjC,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,OAAO;KACR,CAAC,CAAA;AACJ,CAAC"}
@@ -1,4 +1,6 @@
1
- import type { LooseOmit, OneOf } from '../../internal/types.js';
1
+ import type * as Challenge from '../../Challenge.js';
2
+ import type * as Credential from '../../Credential.js';
3
+ import type { LooseOmit, MaybePromise, OneOf } from '../../internal/types.js';
2
4
  import * as Method from '../../Method.js';
3
5
  import type * as Html from '../../server/internal/html/config.ts';
4
6
  import type * as z from '../../zod.js';
@@ -88,6 +90,8 @@ export declare namespace charge {
88
90
  } & Html.Config) | undefined;
89
91
  /** Optional metadata to include in SPT creation requests. */
90
92
  metadata?: Record<string, string> | undefined;
93
+ /** Optional server-side Stripe Connect settlement policy. Not included in MPP challenges. */
94
+ connect?: ConnectSettlement | ResolveConnectSettlement | undefined;
91
95
  } & Defaults & OneOf<{
92
96
  /** Pre-configured Stripe SDK instance. Any object matching the duck-typed `StripeClient` shape works. */
93
97
  client: StripeClient;
@@ -98,5 +102,31 @@ export declare namespace charge {
98
102
  type DeriveDefaults<parameters extends Parameters> = Pick<parameters, Extract<keyof parameters, keyof Defaults>> & {
99
103
  decimals: number;
100
104
  };
105
+ /**
106
+ * Server-side Stripe Connect settlement parameters.
107
+ *
108
+ * @see https://docs.stripe.com/connect/destination-charges
109
+ */
110
+ type ConnectSettlement = {
111
+ /** Connected account used as the Stripe account context for the request. */
112
+ stripeAccount?: string | undefined;
113
+ /** Platform application fee amount in the smallest currency unit. */
114
+ applicationFeeAmount?: number | undefined;
115
+ /** Connected account used as the business of record. */
116
+ onBehalfOf?: string | undefined;
117
+ /** Destination transfer created from the PaymentIntent. */
118
+ transferData?: {
119
+ amount?: number | undefined;
120
+ destination: string;
121
+ } | undefined;
122
+ /** Reconciliation token linking related charges and transfers. */
123
+ transferGroup?: string | undefined;
124
+ };
125
+ type ResolveConnectSettlement = (parameters: {
126
+ challenge: Challenge.Challenge<z.output<typeof Methods.charge.schema.request>, 'charge', 'stripe'>;
127
+ credential: Credential.Credential<z.output<typeof Methods.charge.schema.credential.payload>, Challenge.Challenge<z.output<typeof Methods.charge.schema.request>, 'charge', 'stripe'>>;
128
+ envelope?: Method.VerifiedChallengeEnvelope<z.output<typeof Methods.charge.schema.request>, z.output<typeof Methods.charge.schema.credential.payload>, 'charge', 'stripe'> | undefined;
129
+ request: z.output<typeof Methods.charge.schema.request>;
130
+ }) => MaybePromise<ConnectSettlement | undefined>;
101
131
  }
102
132
  //# sourceMappingURL=Charge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Charge.d.ts","sourceRoot":"","sources":["../../../src/stripe/server/Charge.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,KAAK,IAAI,MAAM,sCAAsC,CAAA;AACjE,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,EACV,YAAY,EACZ,+BAA+B,EAC/B,yBAAyB,EACzB,2BAA2B,EAC5B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAGxC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,MAAM,CAAC,KAAK,CAAC,UAAU,SAAS,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qDA6GxF;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,6EAA6E;QAC7E,IAAI,CAAC,EACD,CAAC;YACC,cAAc,EAAE,MAAM,CAAA;YACtB,QAAQ,CAAC,EACL;gBACE,OAAO,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAA;gBAC/C,cAAc,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAA;gBACxD,0BAA0B,CAAC,EAAE,+BAA+B,GAAG,SAAS,CAAA;aACzE,GACD,SAAS,CAAA;YACb,cAAc,EAAE,MAAM,CAAA;SACvB,GAAG,IAAI,CAAC,MAAM,CAAC,GAChB,SAAS,CAAA;QACb,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"}
1
+ {"version":3,"file":"Charge.d.ts","sourceRoot":"","sources":["../../../src/stripe/server/Charge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,SAAS,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,KAAK,UAAU,MAAM,qBAAqB,CAAA;AAGtD,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC7E,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,KAAK,IAAI,MAAM,sCAAsC,CAAA;AACjE,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,EACV,YAAY,EACZ,+BAA+B,EAC/B,yBAAyB,EACzB,2BAA2B,EAC5B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAGxC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,MAAM,CAAC,KAAK,CAAC,UAAU,SAAS,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qDAuHxF;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,6EAA6E;QAC7E,IAAI,CAAC,EACD,CAAC;YACC,cAAc,EAAE,MAAM,CAAA;YACtB,QAAQ,CAAC,EACL;gBACE,OAAO,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAA;gBAC/C,cAAc,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAA;gBACxD,0BAA0B,CAAC,EAAE,+BAA+B,GAAG,SAAS,CAAA;aACzE,GACD,SAAS,CAAA;YACb,cAAc,EAAE,MAAM,CAAA;SACvB,GAAG,IAAI,CAAC,MAAM,CAAC,GAChB,SAAS,CAAA;QACb,6DAA6D;QAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;QAC7C,6FAA6F;QAC7F,OAAO,CAAC,EAAE,iBAAiB,GAAG,wBAAwB,GAAG,SAAS,CAAA;KACnE,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;IAExB;;;;OAIG;IACH,KAAK,iBAAiB,GAAG;QACvB,4EAA4E;QAC5E,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAClC,qEAAqE;QACrE,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzC,wDAAwD;QACxD,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC/B,2DAA2D;QAC3D,YAAY,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS,CAAA;QAC/E,kEAAkE;QAClE,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACnC,CAAA;IAED,KAAK,wBAAwB,GAAG,CAAC,UAAU,EAAE;QAC3C,SAAS,EAAE,SAAS,CAAC,SAAS,CAC5B,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAC9C,QAAQ,EACR,QAAQ,CACT,CAAA;QACD,UAAU,EAAE,UAAU,CAAC,UAAU,CAC/B,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EACzD,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CACxF,CAAA;QACD,QAAQ,CAAC,EACL,MAAM,CAAC,yBAAyB,CAC9B,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAC9C,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EACzD,QAAQ,EACR,QAAQ,CACT,GACD,SAAS,CAAA;QACb,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;KACxD,KAAK,YAAY,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAA;CAClD"}
@@ -32,6 +32,7 @@ import { html as htmlContent } from './internal/html.gen.js';
32
32
  export function charge(parameters) {
33
33
  const { amount, currency, decimals, description, externalId, html: { text: htmlText, theme: htmlTheme, ...htmlConfig } = {}, metadata, networkId, paymentMethodTypes, } = parameters;
34
34
  const client = 'client' in parameters ? parameters.client : undefined;
35
+ const connect = parameters.connect;
35
36
  const secretKey = 'secretKey' in parameters ? parameters.secretKey : undefined;
36
37
  return Method.toServer(Methods.charge, {
37
38
  defaults: {
@@ -66,7 +67,7 @@ export function charge(parameters) {
66
67
  theme: htmlTheme,
67
68
  }
68
69
  : undefined,
69
- async verify({ credential, request }) {
70
+ async verify({ credential, envelope, request }) {
70
71
  const { challenge } = credential;
71
72
  const resolvedRequest = (() => {
72
73
  const parsed = Methods.charge.schema.request.safeParse(request);
@@ -83,6 +84,12 @@ export function charge(parameters) {
83
84
  const { spt, externalId: credentialExternalId } = parsed.data;
84
85
  const userMetadata = resolvedRequest.methodDetails?.metadata;
85
86
  const resolvedMetadata = { ...buildAnalytics({ credential }), ...userMetadata };
87
+ const settlement = validateConnectSettlement({
88
+ amount: resolvedRequest.amount,
89
+ settlement: typeof connect === 'function'
90
+ ? await connect({ challenge, credential, envelope, request: resolvedRequest })
91
+ : connect,
92
+ });
86
93
  const pi = client
87
94
  ? await createWithClient({
88
95
  client,
@@ -90,6 +97,7 @@ export function charge(parameters) {
90
97
  request: resolvedRequest,
91
98
  spt,
92
99
  metadata: resolvedMetadata,
100
+ settlement,
93
101
  })
94
102
  : await createWithSecretKey({
95
103
  secretKey: secretKey,
@@ -97,6 +105,7 @@ export function charge(parameters) {
97
105
  request: resolvedRequest,
98
106
  spt,
99
107
  metadata: resolvedMetadata,
108
+ settlement,
100
109
  });
101
110
  if (pi.replayed)
102
111
  throw new VerificationFailedError({ reason: 'Payment has already been processed.' });
@@ -117,17 +126,36 @@ export function charge(parameters) {
117
126
  }
118
127
  /** Creates a PaymentIntent using the Stripe SDK client. */
119
128
  async function createWithClient(parameters) {
120
- const { client, challenge, metadata, request, spt } = parameters;
129
+ const { client, challenge, metadata, request, settlement, spt } = parameters;
121
130
  try {
122
- const result = await client.paymentIntents.create({
131
+ const paymentIntentParams = {
123
132
  amount: Number(request.amount),
124
133
  automatic_payment_methods: { allow_redirects: 'never', enabled: true },
125
134
  confirm: true,
126
135
  currency: request.currency,
127
136
  metadata,
137
+ ...(settlement?.applicationFeeAmount !== undefined && {
138
+ application_fee_amount: settlement.applicationFeeAmount,
139
+ }),
140
+ ...(settlement?.onBehalfOf !== undefined && { on_behalf_of: settlement.onBehalfOf }),
141
+ ...(settlement?.transferData !== undefined && {
142
+ transfer_data: {
143
+ destination: settlement.transferData.destination,
144
+ ...(settlement.transferData.amount !== undefined && {
145
+ amount: settlement.transferData.amount,
146
+ }),
147
+ },
148
+ }),
149
+ ...(settlement?.transferGroup !== undefined && { transfer_group: settlement.transferGroup }),
128
150
  // `shared_payment_granted_token` is not yet in the Stripe SDK types (SPTs are in private preview).
129
151
  shared_payment_granted_token: spt,
130
- }, { idempotencyKey: `mppx_${challenge.id}_${spt}`, apiVersion: stripePreviewVersion });
152
+ };
153
+ const paymentIntentOptions = {
154
+ apiVersion: stripePreviewVersion,
155
+ idempotencyKey: `mppx_${challenge.id}_${spt}`,
156
+ ...(settlement?.stripeAccount !== undefined && { stripeAccount: settlement.stripeAccount }),
157
+ };
158
+ const result = await client.paymentIntents.create(paymentIntentParams, paymentIntentOptions);
131
159
  // https://docs.stripe.com/error-low-level#idempotency
132
160
  const replayed = result.lastResponse?.headers?.['idempotent-replayed'] === 'true';
133
161
  return { id: result.id, status: result.status, replayed };
@@ -141,7 +169,7 @@ async function createWithClient(parameters) {
141
169
  }
142
170
  /** Creates a PaymentIntent using a raw secret key and fetch. */
143
171
  async function createWithSecretKey(parameters) {
144
- const { secretKey, challenge, metadata, request, spt } = parameters;
172
+ const { secretKey, challenge, metadata, request, settlement, spt } = parameters;
145
173
  const body = new URLSearchParams({
146
174
  amount: request.amount,
147
175
  'automatic_payment_methods[allow_redirects]': 'never',
@@ -153,14 +181,27 @@ async function createWithSecretKey(parameters) {
153
181
  for (const [key, value] of Object.entries(metadata)) {
154
182
  body.set(`metadata[${key}]`, value);
155
183
  }
184
+ if (settlement?.applicationFeeAmount !== undefined)
185
+ body.set('application_fee_amount', String(settlement.applicationFeeAmount));
186
+ if (settlement?.onBehalfOf !== undefined)
187
+ body.set('on_behalf_of', settlement.onBehalfOf);
188
+ if (settlement?.transferData !== undefined) {
189
+ body.set('transfer_data[destination]', settlement.transferData.destination);
190
+ if (settlement.transferData.amount !== undefined)
191
+ body.set('transfer_data[amount]', String(settlement.transferData.amount));
192
+ }
193
+ if (settlement?.transferGroup !== undefined)
194
+ body.set('transfer_group', settlement.transferGroup);
195
+ const headers = {
196
+ Authorization: `Basic ${btoa(`${secretKey}:`)}`,
197
+ 'Content-Type': 'application/x-www-form-urlencoded',
198
+ 'Idempotency-Key': `mppx_${challenge.id}_${spt}`,
199
+ 'Stripe-Version': stripePreviewVersion,
200
+ ...(settlement?.stripeAccount !== undefined && { 'Stripe-Account': settlement.stripeAccount }),
201
+ };
156
202
  const response = await fetch('https://api.stripe.com/v1/payment_intents', {
157
203
  method: 'POST',
158
- headers: {
159
- Authorization: `Basic ${btoa(`${secretKey}:`)}`,
160
- 'Content-Type': 'application/x-www-form-urlencoded',
161
- 'Idempotency-Key': `mppx_${challenge.id}_${spt}`,
162
- 'Stripe-Version': stripePreviewVersion,
163
- },
204
+ headers,
164
205
  body,
165
206
  });
166
207
  if (!response.ok) {
@@ -196,4 +237,40 @@ function buildAnalytics(parameters) {
196
237
  ...(credential.source ? { mpp_client_id: credential.source } : {}),
197
238
  };
198
239
  }
240
+ function validateConnectSettlement(parameters) {
241
+ const { amount, settlement } = parameters;
242
+ if (settlement === undefined)
243
+ return undefined;
244
+ const paymentAmount = Number(amount);
245
+ if (!Number.isSafeInteger(paymentAmount) || paymentAmount < 0)
246
+ throw new VerificationFailedError({ reason: 'Stripe amount must be a non-negative integer.' });
247
+ validateAccountId(settlement.stripeAccount, 'stripeAccount');
248
+ validateAccountId(settlement.onBehalfOf, 'onBehalfOf');
249
+ validateAmount(settlement.applicationFeeAmount, paymentAmount, 'applicationFeeAmount');
250
+ if (settlement.transferData !== undefined) {
251
+ validateRequiredAccountId(settlement.transferData.destination, 'transferData.destination');
252
+ validateAmount(settlement.transferData.amount, paymentAmount, 'transferData.amount');
253
+ }
254
+ return settlement;
255
+ }
256
+ function validateAccountId(value, name) {
257
+ if (value !== undefined && value.length === 0)
258
+ throw new VerificationFailedError({ reason: `Stripe Connect ${name} must be non-empty.` });
259
+ }
260
+ function validateRequiredAccountId(value, name) {
261
+ if (value === undefined || value.length === 0)
262
+ throw new VerificationFailedError({ reason: `Stripe Connect ${name} must be non-empty.` });
263
+ }
264
+ function validateAmount(value, paymentAmount, name) {
265
+ if (value === undefined)
266
+ return;
267
+ if (!Number.isSafeInteger(value) || value < 0)
268
+ throw new VerificationFailedError({
269
+ reason: `Stripe Connect ${name} must be a non-negative integer.`,
270
+ });
271
+ if (value > paymentAmount)
272
+ throw new VerificationFailedError({
273
+ reason: `Stripe Connect ${name} must be less than or equal to the PaymentIntent amount.`,
274
+ });
275
+ }
199
276
  //# sourceMappingURL=Charge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Charge.js","sourceRoot":"","sources":["../../../src/stripe/server/Charge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Charge.js","sourceRoot":"","sources":["../../../src/stripe/server/Charge.ts"],"names":[],"mappings":"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"}
@@ -141,6 +141,12 @@ export declare namespace charge {
141
141
  * memo binding, transaction success, and replay protection.
142
142
  */
143
143
  validateSender?: ValidateSender | undefined;
144
+ /**
145
+ * Prefix prepended to charge replay-protection store keys.
146
+ *
147
+ * By default, no prefix is applied.
148
+ */
149
+ storeKeyPrefix?: string | undefined;
144
150
  /**
145
151
  * Whether to wait for the charge transaction to confirm on-chain before
146
152
  * responding. @default true
@@ -1 +1 @@
1
- {"version":3,"file":"Charge.d.ts","sourceRoot":"","sources":["../../../src/tempo/server/Charge.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,KAAK,IAAI,MAAM,sCAAsC,CAAA;AACjE,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AAIjD,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAA;AAGpD,OAAO,KAAK,KAAK,KAAK,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAGxC;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,KAAK,CAAC,UAAU,SAAS,MAAM,CAAC,UAAU,EAC/D,UAAU,GAAE,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAGpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qDAkbF;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,YAAY,GAAG;QAAE,CAAC,GAAG,EAAE,eAAe,MAAM,EAAE,GAAG,MAAM,CAAA;KAAE,CAAA;IAE9D,KAAK,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,CAAA;IAElG,KAAK,cAAc,GAAG,CAAC,UAAU,EAAE,wBAAwB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE1F,KAAK,wBAAwB,GAAG;QAC9B,6CAA6C;QAC7C,MAAM,EAAE,KAAK,MAAM,EAAE,CAAA;QACrB,8DAA8D;QAC9D,cAAc,EAAE,KAAK,MAAM,EAAE,CAAA;QAC7B,sEAAsE;QACtE,MAAM,CAAC,EAAE;YAAE,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS,CAAA;KACjE,CAAA;IAED,KAAK,UAAU,GAAG;QAChB,6EAA6E;QAC7E,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;QACxC;;;;;;;WAOG;QACH,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;QAC3C,oBAAoB;QACpB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC7B;;;;;;;;;;;;;WAaG;QACH,KAAK,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,SAAS,CAAA;QACrC;;;;WAIG;QACH,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;QAC3C;;;;;;;;;;WAUG;QACH,mBAAmB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAC1C,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,GAC/B,OAAO,CAAC,OAAO,CAAC,UAAU,GAC1B,QAAQ,CAAA;IAEV,KAAK,cAAc,CAAC,UAAU,SAAS,UAAU,IAAI,KAAK,CAAC,cAAc,CACvE,UAAU,EACV,QAAQ,CACT,GAAG;QACF,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;IAED,KAAK,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;CAC/C"}
1
+ {"version":3,"file":"Charge.d.ts","sourceRoot":"","sources":["../../../src/tempo/server/Charge.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,KAAK,IAAI,MAAM,sCAAsC,CAAA;AACjE,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AAIjD,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAA;AAGpD,OAAO,KAAK,KAAK,KAAK,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAGxC;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,KAAK,CAAC,UAAU,SAAS,MAAM,CAAC,UAAU,EAC/D,UAAU,GAAE,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAGpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qDA0bF;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,YAAY,GAAG;QAAE,CAAC,GAAG,EAAE,eAAe,MAAM,EAAE,GAAG,MAAM,CAAA;KAAE,CAAA;IAE9D,KAAK,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,CAAA;IAElG,KAAK,cAAc,GAAG,CAAC,UAAU,EAAE,wBAAwB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE1F,KAAK,wBAAwB,GAAG;QAC9B,6CAA6C;QAC7C,MAAM,EAAE,KAAK,MAAM,EAAE,CAAA;QACrB,8DAA8D;QAC9D,cAAc,EAAE,KAAK,MAAM,EAAE,CAAA;QAC7B,sEAAsE;QACtE,MAAM,CAAC,EAAE;YAAE,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS,CAAA;KACjE,CAAA;IAED,KAAK,UAAU,GAAG;QAChB,6EAA6E;QAC7E,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;QACxC;;;;;;;WAOG;QACH,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;QAC3C,oBAAoB;QACpB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC7B;;;;;;;;;;;;;WAaG;QACH,KAAK,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,SAAS,CAAA;QACrC;;;;WAIG;QACH,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;QAC3C;;;;WAIG;QACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACnC;;;;;;;;;;WAUG;QACH,mBAAmB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAC1C,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,GAC/B,OAAO,CAAC,OAAO,CAAC,UAAU,GAC1B,QAAQ,CAAA;IAEV,KAAK,cAAc,CAAC,UAAU,SAAS,UAAU,IAAI,KAAK,CAAC,cAAc,CACvE,UAAU,EACV,QAAQ,CACT,GAAG;QACF,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;IAED,KAAK,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;CAC/C"}
@@ -30,8 +30,13 @@ import { html as htmlContent } from './internal/html.gen.js';
30
30
  */
31
31
  export function charge(parameters = {}) {
32
32
  const { amount, currency = defaults.resolveCurrency(parameters), decimals = defaults.decimals, description, externalId, feePayerPolicy, html, memo, validateSender, waitForConfirmation = true, } = parameters;
33
- const store = (parameters.store ?? Store.memory());
34
- const proofStore = parameters.store;
33
+ const storeKeyPrefix = parameters.storeKeyPrefix ?? '';
34
+ const store = Store.from((parameters.store ?? Store.memory()), { keyPrefix: storeKeyPrefix });
35
+ const proofStore = parameters.store
36
+ ? Store.from(parameters.store, {
37
+ keyPrefix: storeKeyPrefix,
38
+ })
39
+ : undefined;
35
40
  const { recipient, feePayer, feePayerUrl } = Account.resolve(parameters);
36
41
  const getClient = Client.getResolver({
37
42
  chain: { ...tempo_chain, experimental_preconfirmationTime: 500 },