@stripe/stripe-js 5.9.2 → 5.10.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/index.js CHANGED
@@ -2,8 +2,14 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var RELEASE_TRAIN = 'v3';
6
+
7
+ var runtimeVersionToUrlVersion = function runtimeVersionToUrlVersion(version) {
8
+ return version === 3 ? 'v3' : version;
9
+ };
10
+
5
11
  var ORIGIN = 'https://js.stripe.com';
6
- var STRIPE_JS_URL = "".concat(ORIGIN, "/v3");
12
+ var STRIPE_JS_URL = "".concat(ORIGIN, "/v3") ;
7
13
  var V3_URL_REGEX = /^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/;
8
14
  var STRIPE_JS_URL_REGEX = /^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/;
9
15
  var EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';
@@ -49,7 +55,7 @@ var registerWrapper = function registerWrapper(stripe, startTime) {
49
55
 
50
56
  stripe._registerWrapper({
51
57
  name: 'stripe-js',
52
- version: "5.9.2",
58
+ version: "5.10.0",
53
59
  startTime: startTime
54
60
  });
55
61
  };
@@ -138,6 +144,16 @@ var initStripe = function initStripe(maybeStripe, args, startTime) {
138
144
  return null;
139
145
  }
140
146
 
147
+ var pk = args[0];
148
+ var isTestKey = pk.match(/^pk_test/); // @ts-expect-error this is not publicly typed
149
+
150
+ var version = runtimeVersionToUrlVersion(maybeStripe.version);
151
+ var expectedVersion = RELEASE_TRAIN;
152
+
153
+ if (isTestKey && version !== expectedVersion) {
154
+ console.warn("Stripe.js@".concat(version, " was loaded on the page, but @stripe/stripe-js@").concat("5.10.0", " expected Stripe.js@").concat(expectedVersion, ". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning"));
155
+ }
156
+
141
157
  var stripe = maybeStripe.apply(undefined, args);
142
158
  registerWrapper(stripe, startTime);
143
159
  return stripe;
package/dist/index.mjs CHANGED
@@ -1,5 +1,11 @@
1
+ var RELEASE_TRAIN = 'v3';
2
+
3
+ var runtimeVersionToUrlVersion = function runtimeVersionToUrlVersion(version) {
4
+ return version === 3 ? 'v3' : version;
5
+ };
6
+
1
7
  var ORIGIN = 'https://js.stripe.com';
2
- var STRIPE_JS_URL = "".concat(ORIGIN, "/v3");
8
+ var STRIPE_JS_URL = "".concat(ORIGIN, "/v3") ;
3
9
  var V3_URL_REGEX = /^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/;
4
10
  var STRIPE_JS_URL_REGEX = /^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/;
5
11
  var EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';
@@ -45,7 +51,7 @@ var registerWrapper = function registerWrapper(stripe, startTime) {
45
51
 
46
52
  stripe._registerWrapper({
47
53
  name: 'stripe-js',
48
- version: "5.9.2",
54
+ version: "5.10.0",
49
55
  startTime: startTime
50
56
  });
51
57
  };
@@ -134,6 +140,16 @@ var initStripe = function initStripe(maybeStripe, args, startTime) {
134
140
  return null;
135
141
  }
136
142
 
143
+ var pk = args[0];
144
+ var isTestKey = pk.match(/^pk_test/); // @ts-expect-error this is not publicly typed
145
+
146
+ var version = runtimeVersionToUrlVersion(maybeStripe.version);
147
+ var expectedVersion = RELEASE_TRAIN;
148
+
149
+ if (isTestKey && version !== expectedVersion) {
150
+ console.warn("Stripe.js@".concat(version, " was loaded on the page, but @stripe/stripe-js@").concat("5.10.0", " expected Stripe.js@").concat(expectedVersion, ". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning"));
151
+ }
152
+
137
153
  var stripe = maybeStripe.apply(undefined, args);
138
154
  registerWrapper(stripe, startTime);
139
155
  return stripe;
package/dist/pure.js CHANGED
@@ -18,8 +18,14 @@ function _typeof(obj) {
18
18
  return _typeof(obj);
19
19
  }
20
20
 
21
+ var RELEASE_TRAIN = 'v3';
22
+
23
+ var runtimeVersionToUrlVersion = function runtimeVersionToUrlVersion(version) {
24
+ return version === 3 ? 'v3' : version;
25
+ };
26
+
21
27
  var ORIGIN = 'https://js.stripe.com';
22
- var STRIPE_JS_URL = "".concat(ORIGIN, "/v3");
28
+ var STRIPE_JS_URL = "".concat(ORIGIN, "/v3") ;
23
29
  var V3_URL_REGEX = /^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/;
24
30
  var STRIPE_JS_URL_REGEX = /^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/;
25
31
  var EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';
@@ -65,7 +71,7 @@ var registerWrapper = function registerWrapper(stripe, startTime) {
65
71
 
66
72
  stripe._registerWrapper({
67
73
  name: 'stripe-js',
68
- version: "5.9.2",
74
+ version: "5.10.0",
69
75
  startTime: startTime
70
76
  });
71
77
  };
@@ -154,6 +160,16 @@ var initStripe = function initStripe(maybeStripe, args, startTime) {
154
160
  return null;
155
161
  }
156
162
 
163
+ var pk = args[0];
164
+ var isTestKey = pk.match(/^pk_test/); // @ts-expect-error this is not publicly typed
165
+
166
+ var version = runtimeVersionToUrlVersion(maybeStripe.version);
167
+ var expectedVersion = RELEASE_TRAIN;
168
+
169
+ if (isTestKey && version !== expectedVersion) {
170
+ console.warn("Stripe.js@".concat(version, " was loaded on the page, but @stripe/stripe-js@").concat("5.10.0", " expected Stripe.js@").concat(expectedVersion, ". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning"));
171
+ }
172
+
157
173
  var stripe = maybeStripe.apply(undefined, args);
158
174
  registerWrapper(stripe, startTime);
159
175
  return stripe;
package/dist/pure.mjs CHANGED
@@ -14,8 +14,14 @@ function _typeof(obj) {
14
14
  return _typeof(obj);
15
15
  }
16
16
 
17
+ var RELEASE_TRAIN = 'v3';
18
+
19
+ var runtimeVersionToUrlVersion = function runtimeVersionToUrlVersion(version) {
20
+ return version === 3 ? 'v3' : version;
21
+ };
22
+
17
23
  var ORIGIN = 'https://js.stripe.com';
18
- var STRIPE_JS_URL = "".concat(ORIGIN, "/v3");
24
+ var STRIPE_JS_URL = "".concat(ORIGIN, "/v3") ;
19
25
  var V3_URL_REGEX = /^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/;
20
26
  var STRIPE_JS_URL_REGEX = /^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/;
21
27
  var EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';
@@ -61,7 +67,7 @@ var registerWrapper = function registerWrapper(stripe, startTime) {
61
67
 
62
68
  stripe._registerWrapper({
63
69
  name: 'stripe-js',
64
- version: "5.9.2",
70
+ version: "5.10.0",
65
71
  startTime: startTime
66
72
  });
67
73
  };
@@ -150,6 +156,16 @@ var initStripe = function initStripe(maybeStripe, args, startTime) {
150
156
  return null;
151
157
  }
152
158
 
159
+ var pk = args[0];
160
+ var isTestKey = pk.match(/^pk_test/); // @ts-expect-error this is not publicly typed
161
+
162
+ var version = runtimeVersionToUrlVersion(maybeStripe.version);
163
+ var expectedVersion = RELEASE_TRAIN;
164
+
165
+ if (isTestKey && version !== expectedVersion) {
166
+ console.warn("Stripe.js@".concat(version, " was loaded on the page, but @stripe/stripe-js@").concat("5.10.0", " expected Stripe.js@").concat(expectedVersion, ". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning"));
167
+ }
168
+
153
169
  var stripe = maybeStripe.apply(undefined, args);
154
170
  registerWrapper(stripe, startTime);
155
171
  return stripe;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stripe/stripe-js",
3
- "version": "5.9.2",
3
+ "version": "5.10.0",
4
4
  "description": "Stripe.js loading utility",
5
5
  "repository": "github:stripe/stripe-js",
6
6
  "main": "lib/index.js",
package/src/index.test.ts CHANGED
@@ -1,9 +1,9 @@
1
+ import {SCRIPT_SRC} from './testUtils';
2
+ import {RELEASE_TRAIN} from './shared';
1
3
  /* eslint-disable @typescript-eslint/no-var-requires */
2
4
 
3
5
  const dispatchScriptEvent = (eventType: string): void => {
4
- const injectedScript = document.querySelector(
5
- 'script[src="https://js.stripe.com/v3"]'
6
- );
6
+ const injectedScript = document.querySelector(`script[src="${SCRIPT_SRC}"]`);
7
7
 
8
8
  if (!injectedScript) {
9
9
  throw new Error('could not find Stripe.js script element');
@@ -15,11 +15,12 @@ const dispatchScriptEvent = (eventType: string): void => {
15
15
  describe('Stripe module loader', () => {
16
16
  afterEach(() => {
17
17
  const script = document.querySelector(
18
- 'script[src="https://js.stripe.com/v3"], script[src="https://js.stripe.com/v3/"]'
18
+ 'script[src^="https://js.stripe.com/"]'
19
19
  );
20
20
  if (script && script.parentElement) {
21
21
  script.parentElement.removeChild(script);
22
22
  }
23
+
23
24
  delete window.Stripe;
24
25
  jest.resetModules();
25
26
  });
@@ -27,14 +28,12 @@ describe('Stripe module loader', () => {
27
28
  it('injects the Stripe script as a side effect after a tick', () => {
28
29
  require('./index');
29
30
 
30
- expect(
31
- document.querySelector('script[src="https://js.stripe.com/v3"]')
32
- ).toBe(null);
31
+ expect(document.querySelector(`script[src="${SCRIPT_SRC}"]`)).toBe(null);
33
32
 
34
33
  return Promise.resolve().then(() => {
35
- expect(
36
- document.querySelector('script[src="https://js.stripe.com/v3"]')
37
- ).not.toBe(null);
34
+ expect(document.querySelector(`script[src="${SCRIPT_SRC}"]`)).not.toBe(
35
+ null
36
+ );
38
37
  });
39
38
  });
40
39
 
@@ -44,41 +43,37 @@ describe('Stripe module loader', () => {
44
43
  window.Stripe = jest.fn((key) => ({key})) as any;
45
44
 
46
45
  return new Promise((resolve) => setTimeout(resolve)).then(() => {
47
- expect(
48
- document.querySelector('script[src="https://js.stripe.com/v3"]')
49
- ).toBe(null);
46
+ expect(document.querySelector(`script[src="${SCRIPT_SRC}"]`)).toBe(null);
50
47
  });
51
48
  });
52
49
 
53
50
  describe('does not inject a duplicate script when one is already present', () => {
54
- test('when the script does not have a trailing slash', () => {
55
- require('./index');
56
-
57
- const script = document.createElement('script');
58
- script.src = 'https://js.stripe.com/v3';
59
- document.body.appendChild(script);
60
-
61
- return Promise.resolve().then(() => {
62
- expect(
63
- document.querySelectorAll(
64
- 'script[src="https://js.stripe.com/v3"], script[src="https://js.stripe.com/v3/"]'
65
- )
66
- ).toHaveLength(1);
51
+ if (RELEASE_TRAIN === 'v3') {
52
+ test('when the script does not have a trailing slash', () => {
53
+ require('./index');
54
+
55
+ const script = document.createElement('script');
56
+ script.src = 'https://js.stripe.com/v3';
57
+ document.body.appendChild(script);
58
+
59
+ return Promise.resolve().then(() => {
60
+ expect(
61
+ document.querySelectorAll(`script[src="${SCRIPT_SRC}"]`)
62
+ ).toHaveLength(1);
63
+ });
67
64
  });
68
- });
65
+ }
69
66
 
70
67
  test('when the script has a trailing slash', () => {
71
68
  require('./index');
72
69
 
73
70
  const script = document.createElement('script');
74
- script.src = 'https://js.stripe.com/v3/';
71
+ script.src = SCRIPT_SRC;
75
72
  document.body.appendChild(script);
76
73
 
77
74
  return Promise.resolve().then(() => {
78
75
  expect(
79
- document.querySelectorAll(
80
- 'script[src="https://js.stripe.com/v3"], script[src="https://js.stripe.com/v3/"]'
81
- )
76
+ document.querySelectorAll(`script[src="${SCRIPT_SRC}"]`)
82
77
  ).toHaveLength(1);
83
78
  });
84
79
  });
@@ -93,7 +88,7 @@ describe('Stripe module loader', () => {
93
88
  await Promise.resolve();
94
89
 
95
90
  expect(
96
- document.querySelectorAll('script[src^="https://js.stripe.com/v3"]')
91
+ document.querySelectorAll('script[src^="https://js.stripe.com"]')
97
92
  ).toHaveLength(2);
98
93
 
99
94
  expect(
@@ -102,9 +97,9 @@ describe('Stripe module loader', () => {
102
97
  )
103
98
  ).not.toBe(null);
104
99
 
105
- expect(
106
- document.querySelector('script[src="https://js.stripe.com/v3"]')
107
- ).not.toBe(null);
100
+ expect(document.querySelector(`script[src="${SCRIPT_SRC}"]`)).not.toBe(
101
+ null
102
+ );
108
103
  });
109
104
  });
110
105
 
package/src/pure.test.ts CHANGED
@@ -1,6 +1,11 @@
1
1
  /* eslint-disable @typescript-eslint/no-var-requires */
2
+ import {RELEASE_TRAIN} from './shared';
2
3
 
3
- const SCRIPT_SELECTOR = 'script[src^="https://js.stripe.com/v3"]';
4
+ const SCRIPT_SRC =
5
+ RELEASE_TRAIN === 'v3'
6
+ ? `https://js.stripe.com/v3`
7
+ : `https://js.stripe.com/acacia/stripe.js`;
8
+ const SCRIPT_SELECTOR = `script[src^="${SCRIPT_SRC}"]`;
4
9
 
5
10
  describe('pure module', () => {
6
11
  beforeEach(() => {
@@ -43,7 +48,7 @@ describe('pure module', () => {
43
48
 
44
49
  expect(
45
50
  document.querySelector(
46
- 'script[src^="https://js.stripe.com/v3?advancedFraudSignals=false"]'
51
+ `script[src^="${SCRIPT_SRC}?advancedFraudSignals=false"]`
47
52
  )
48
53
  ).not.toBe(null);
49
54
  });
@@ -58,7 +63,7 @@ describe('pure module', () => {
58
63
 
59
64
  test('it should warn when calling loadStripe if a script already exists when parameters are set', () => {
60
65
  const script = document.createElement('script');
61
- script.src = 'https://js.stripe.com/v3';
66
+ script.src = SCRIPT_SRC;
62
67
  document.body.appendChild(script);
63
68
 
64
69
  const {loadStripe} = require('./pure');
@@ -76,7 +81,7 @@ describe('pure module', () => {
76
81
  loadStripe.setLoadParameters({advancedFraudSignals: true});
77
82
 
78
83
  const script = document.createElement('script');
79
- script.src = 'https://js.stripe.com/v3';
84
+ script.src = SCRIPT_SRC;
80
85
  document.body.appendChild(script);
81
86
 
82
87
  loadStripe('pk_test_123');
@@ -102,7 +107,7 @@ describe('pure module', () => {
102
107
 
103
108
  test('it should not warn when a script already exists if parameters are not set', () => {
104
109
  const script = document.createElement('script');
105
- script.src = 'https://js.stripe.com/v3';
110
+ script.src = SCRIPT_SRC;
106
111
  document.body.appendChild(script);
107
112
 
108
113
  const {loadStripe} = require('./pure');
package/src/shared.ts CHANGED
@@ -12,8 +12,17 @@ export interface LoadParams {
12
12
  // containing the package.json version
13
13
  declare const _VERSION: string;
14
14
 
15
+ export const RELEASE_TRAIN = 'v3';
16
+
17
+ const runtimeVersionToUrlVersion = (version: string | number) =>
18
+ version === 3 ? 'v3' : version;
19
+
15
20
  const ORIGIN = 'https://js.stripe.com';
16
- const STRIPE_JS_URL = `${ORIGIN}/v3`;
21
+ const STRIPE_JS_URL =
22
+ RELEASE_TRAIN === 'v3'
23
+ ? `${ORIGIN}/v3`
24
+ : `${ORIGIN}/${RELEASE_TRAIN}/stripe.js`;
25
+
17
26
  const V3_URL_REGEX = /^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/;
18
27
  const STRIPE_JS_URL_REGEX = /^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/;
19
28
  const EXISTING_SCRIPT_MESSAGE =
@@ -162,6 +171,18 @@ export const initStripe = (
162
171
  return null;
163
172
  }
164
173
 
174
+ const pk = args[0];
175
+ const isTestKey = pk.match(/^pk_test/);
176
+
177
+ // @ts-expect-error this is not publicly typed
178
+ const version = runtimeVersionToUrlVersion(maybeStripe.version);
179
+ const expectedVersion = RELEASE_TRAIN;
180
+ if (isTestKey && version !== expectedVersion) {
181
+ console.warn(
182
+ `Stripe.js@${version} was loaded on the page, but @stripe/stripe-js@${_VERSION} expected Stripe.js@${expectedVersion}. This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning`
183
+ );
184
+ }
185
+
165
186
  const stripe = maybeStripe.apply(undefined, args);
166
187
  registerWrapper(stripe, startTime);
167
188
  return stripe;
@@ -0,0 +1,6 @@
1
+ import {RELEASE_TRAIN} from './shared';
2
+
3
+ export const SCRIPT_SRC =
4
+ RELEASE_TRAIN === 'v3'
5
+ ? `https://js.stripe.com/v3`
6
+ : `https://js.stripe.com/${RELEASE_TRAIN}/stripe.js`;