@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 +18 -2
- package/dist/index.mjs +18 -2
- package/dist/pure.js +18 -2
- package/dist/pure.mjs +18 -2
- package/package.json +1 -1
- package/src/index.test.ts +30 -35
- package/src/pure.test.ts +10 -5
- package/src/shared.ts +22 -1
- package/src/testUtils.ts +6 -0
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
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
|
|
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
|
-
|
|
37
|
-
)
|
|
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
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
)
|
|
66
|
-
)
|
|
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 =
|
|
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
|
|
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
|
-
|
|
107
|
-
)
|
|
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
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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;
|