@stripe/stripe-js 1.46.0 → 1.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/pure.esm.js CHANGED
@@ -54,7 +54,7 @@ var registerWrapper = function registerWrapper(stripe, startTime) {
54
54
 
55
55
  stripe._registerWrapper({
56
56
  name: 'stripe-js',
57
- version: "1.46.0",
57
+ version: "1.47.0",
58
58
  startTime: startTime
59
59
  });
60
60
  };
@@ -67,7 +67,7 @@ var loadScript = function loadScript(params) {
67
67
  }
68
68
 
69
69
  stripePromise = new Promise(function (resolve, reject) {
70
- if (typeof window === 'undefined') {
70
+ if (typeof window === 'undefined' || typeof document === 'undefined') {
71
71
  // Resolve to null when imported server side. This makes the module
72
72
  // safe to import in an isomorphic code base.
73
73
  resolve(null);
@@ -148,6 +148,21 @@ var loadStripe = function loadStripe() {
148
148
  };
149
149
 
150
150
  loadStripe.setLoadParameters = function (params) {
151
+ // we won't throw an error if setLoadParameters is called with the same values as before
152
+ if (loadStripeCalled && loadParams) {
153
+ var validatedParams = validateLoadParams(params);
154
+ var parameterKeys = Object.keys(validatedParams);
155
+ var sameParameters = parameterKeys.reduce(function (previousValue, currentValue) {
156
+ var _loadParams;
157
+
158
+ return previousValue && params[currentValue] === ((_loadParams = loadParams) === null || _loadParams === void 0 ? void 0 : _loadParams[currentValue]);
159
+ }, true);
160
+
161
+ if (sameParameters) {
162
+ return;
163
+ }
164
+ }
165
+
151
166
  if (loadStripeCalled) {
152
167
  throw new Error('You cannot change load parameters after calling loadStripe');
153
168
  }
package/dist/pure.js CHANGED
@@ -58,7 +58,7 @@ var registerWrapper = function registerWrapper(stripe, startTime) {
58
58
 
59
59
  stripe._registerWrapper({
60
60
  name: 'stripe-js',
61
- version: "1.46.0",
61
+ version: "1.47.0",
62
62
  startTime: startTime
63
63
  });
64
64
  };
@@ -71,7 +71,7 @@ var loadScript = function loadScript(params) {
71
71
  }
72
72
 
73
73
  stripePromise = new Promise(function (resolve, reject) {
74
- if (typeof window === 'undefined') {
74
+ if (typeof window === 'undefined' || typeof document === 'undefined') {
75
75
  // Resolve to null when imported server side. This makes the module
76
76
  // safe to import in an isomorphic code base.
77
77
  resolve(null);
@@ -152,6 +152,21 @@ var loadStripe = function loadStripe() {
152
152
  };
153
153
 
154
154
  loadStripe.setLoadParameters = function (params) {
155
+ // we won't throw an error if setLoadParameters is called with the same values as before
156
+ if (loadStripeCalled && loadParams) {
157
+ var validatedParams = validateLoadParams(params);
158
+ var parameterKeys = Object.keys(validatedParams);
159
+ var sameParameters = parameterKeys.reduce(function (previousValue, currentValue) {
160
+ var _loadParams;
161
+
162
+ return previousValue && params[currentValue] === ((_loadParams = loadParams) === null || _loadParams === void 0 ? void 0 : _loadParams[currentValue]);
163
+ }, true);
164
+
165
+ if (sameParameters) {
166
+ return;
167
+ }
168
+ }
169
+
155
170
  if (loadStripeCalled) {
156
171
  throw new Error('You cannot change load parameters after calling loadStripe');
157
172
  }
@@ -38,7 +38,7 @@ var registerWrapper = function registerWrapper(stripe, startTime) {
38
38
 
39
39
  stripe._registerWrapper({
40
40
  name: 'stripe-js',
41
- version: "1.46.0",
41
+ version: "1.47.0",
42
42
  startTime: startTime
43
43
  });
44
44
  };
@@ -51,7 +51,7 @@ var loadScript = function loadScript(params) {
51
51
  }
52
52
 
53
53
  stripePromise = new Promise(function (resolve, reject) {
54
- if (typeof window === 'undefined') {
54
+ if (typeof window === 'undefined' || typeof document === 'undefined') {
55
55
  // Resolve to null when imported server side. This makes the module
56
56
  // safe to import in an isomorphic code base.
57
57
  resolve(null);
package/dist/stripe.js CHANGED
@@ -42,7 +42,7 @@ var registerWrapper = function registerWrapper(stripe, startTime) {
42
42
 
43
43
  stripe._registerWrapper({
44
44
  name: 'stripe-js',
45
- version: "1.46.0",
45
+ version: "1.47.0",
46
46
  startTime: startTime
47
47
  });
48
48
  };
@@ -55,7 +55,7 @@ var loadScript = function loadScript(params) {
55
55
  }
56
56
 
57
57
  stripePromise = new Promise(function (resolve, reject) {
58
- if (typeof window === 'undefined') {
58
+ if (typeof window === 'undefined' || typeof document === 'undefined') {
59
59
  // Resolve to null when imported server side. This makes the module
60
60
  // safe to import in an isomorphic code base.
61
61
  resolve(null);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stripe/stripe-js",
3
- "version": "1.46.0",
3
+ "version": "1.47.0",
4
4
  "description": "Stripe.js loading utility",
5
5
  "main": "dist/stripe.js",
6
6
  "module": "dist/stripe.esm.js",
package/src/pure.test.ts CHANGED
@@ -127,7 +127,18 @@ describe('pure module', () => {
127
127
  loadStripe('pk_foo');
128
128
 
129
129
  expect(() => {
130
- loadStripe.setLoadParameters({advancedFraudSignals: false});
130
+ loadStripe.setLoadParameters({advancedFraudSignals: true});
131
131
  }).toThrow('cannot change load parameters');
132
132
  });
133
+
134
+ test('does not throw an error if calling setLoadParameters after loadStripe but the parameters are the same', () => {
135
+ const {loadStripe} = require('./pure');
136
+
137
+ loadStripe.setLoadParameters({advancedFraudSignals: false});
138
+ loadStripe('pk_foo');
139
+
140
+ expect(() => {
141
+ loadStripe.setLoadParameters({advancedFraudSignals: false});
142
+ }).not.toThrow('cannot change load parameters');
143
+ });
133
144
  });
package/src/pure.ts CHANGED
@@ -23,6 +23,27 @@ export const loadStripe: LoadStripe & {setLoadParameters: SetLoadParams} = (
23
23
  };
24
24
 
25
25
  loadStripe.setLoadParameters = (params): void => {
26
+ // we won't throw an error if setLoadParameters is called with the same values as before
27
+ if (loadStripeCalled && loadParams) {
28
+ const validatedParams = validateLoadParams(params);
29
+ const parameterKeys = Object.keys(validatedParams) as Array<
30
+ keyof LoadParams
31
+ >;
32
+
33
+ const sameParameters = parameterKeys.reduce(
34
+ (previousValue, currentValue) => {
35
+ return (
36
+ previousValue && params[currentValue] === loadParams?.[currentValue]
37
+ );
38
+ },
39
+ true
40
+ );
41
+
42
+ if (sameParameters) {
43
+ return;
44
+ }
45
+ }
46
+
26
47
  if (loadStripeCalled) {
27
48
  throw new Error(
28
49
  'You cannot change load parameters after calling loadStripe'
package/src/shared.ts CHANGED
@@ -73,7 +73,7 @@ export const loadScript = (
73
73
  }
74
74
 
75
75
  stripePromise = new Promise((resolve, reject) => {
76
- if (typeof window === 'undefined') {
76
+ if (typeof window === 'undefined' || typeof document === 'undefined') {
77
77
  // Resolve to null when imported server side. This makes the module
78
78
  // safe to import in an isomorphic code base.
79
79
  resolve(null);
@@ -124,8 +124,10 @@ export type CheckoutLocale =
124
124
  | 'es-419'
125
125
  | 'et'
126
126
  | 'fi'
127
+ | 'fil'
127
128
  | 'fr'
128
129
  | 'fr-CA'
130
+ | 'hr'
129
131
  | 'hu'
130
132
  | 'id'
131
133
  | 'it'
@@ -119,6 +119,13 @@ export type StripeAddressElement = StripeElementBase & {
119
119
  * Updates are merged into the existing configuration.
120
120
  */
121
121
  update(options: Partial<StripeAddressElementOptions>): StripeAddressElement;
122
+
123
+ /**
124
+ * Validates and retrieves form values from the `AddressElement`.
125
+ */
126
+ getValue(): Promise<
127
+ Pick<StripeAddressElementChangeEvent, 'complete' | 'isNewAddress' | 'value'>
128
+ >;
122
129
  };
123
130
 
124
131
  export interface ContactOption {
@@ -9,6 +9,14 @@ export type StripeIssuingCardNumberDisplayElement = StripeElementBase & {
9
9
  * This method can be used to simulate CSS media queries that automatically adjust the size of elements when viewed on different devices.
10
10
  */
11
11
  update(options: Partial<StripeIssuingCardNumberDisplayElementOptions>): void;
12
+
13
+ /**
14
+ * Triggered when the element is fully rendered and can accept `element.focus` calls.
15
+ */
16
+ on(
17
+ eventType: 'ready',
18
+ handler: (event: {elementType: 'issuingCardNumberDisplay'}) => any
19
+ ): StripeIssuingCardNumberDisplayElement;
12
20
  };
13
21
 
14
22
  export interface StripeIssuingCardNumberDisplayElementOptions {
@@ -580,10 +580,13 @@ export type StripeElementLocale =
580
580
  | 'es-419'
581
581
  | 'et'
582
582
  | 'fi'
583
+ | 'fil'
583
584
  | 'fr'
585
+ | 'fr-CA'
584
586
  | 'fr-FR'
585
587
  | 'he'
586
588
  | 'hu'
589
+ | 'hr'
587
590
  | 'id'
588
591
  | 'it'
589
592
  | 'it-IT'
@@ -1,6 +1,9 @@
1
1
  export * from './checkout';
2
2
  export * from './elements';
3
3
  export * from './elements-group';
4
+ export * from './ephemeral-keys';
5
+ export * from './financial-connections';
6
+ export * from './orders';
4
7
  export * from './payment-intents';
5
8
  export * from './payment-request';
6
9
  export * from './setup-intents';
@@ -804,7 +804,7 @@ export interface Stripe {
804
804
  verifyMicrodepositsForSetup(
805
805
  clientSecret: string,
806
806
  data?: setupIntents.VerifyMicrodepositsForSetupData
807
- ): Promise<PaymentIntentResult>;
807
+ ): Promise<SetupIntentResult>;
808
808
 
809
809
  /**
810
810
  * Use `stripe.collectBankAccountForSetup` in the [Save bank details](https://stripe.com/docs/payments/ach-debit/set-up-payment) flow for the [ACH Direct Debit](https://stripe.com/docs/payments/ach-debit)