@wistia/wistia-player-react 0.4.1 → 0.4.3
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/cjs/WistiaPlayer.cjs +41 -16
- package/dist/mjs/WistiaPlayer.mjs +2 -2
- package/dist/mjs/{WistiaPlayerWrapper-JIANX6DC.mjs → WistiaPlayerWrapper-ZVVNZ4Z6.mjs} +2 -2
- package/dist/mjs/{chunk-UAG3PN6D.mjs → chunk-IKNV6C53.mjs} +1 -1
- package/dist/mjs/{wistia-player-LDNTTEZL.mjs → wistia-player-BK7A5CHY.mjs} +40 -15
- package/package.json +3 -3
|
@@ -2399,8 +2399,14 @@ var init_wistia_player = __esm({
|
|
|
2399
2399
|
/* harmony export */
|
|
2400
2400
|
});
|
|
2401
2401
|
var _wistia_type_guards__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__3(9814);
|
|
2402
|
+
var _objectHasOwn = function(object, property) {
|
|
2403
|
+
if (typeof object === "undefined" || object === null) {
|
|
2404
|
+
throw new TypeError("Cannot convert undefined or null to object");
|
|
2405
|
+
}
|
|
2406
|
+
return Object.prototype.hasOwnProperty.call(Object(object), property);
|
|
2407
|
+
};
|
|
2402
2408
|
var isMediaDataError = function isMediaDataError2(mediaData) {
|
|
2403
|
-
if ((0, _wistia_type_guards__WEBPACK_IMPORTED_MODULE_0__.gD)(mediaData.error)) {
|
|
2409
|
+
if (!_objectHasOwn(mediaData, "error") || (0, _wistia_type_guards__WEBPACK_IMPORTED_MODULE_0__.gD)(mediaData.error)) {
|
|
2404
2410
|
return false;
|
|
2405
2411
|
}
|
|
2406
2412
|
if (mediaData.error === "true" || mediaData.error === true) {
|
|
@@ -4239,6 +4245,7 @@ var init_wistia_player = __esm({
|
|
|
4239
4245
|
self2.params = {};
|
|
4240
4246
|
self2.path = [];
|
|
4241
4247
|
self2.host = "";
|
|
4248
|
+
self2.rawPath = "";
|
|
4242
4249
|
if (typeof url === "object") {
|
|
4243
4250
|
self2.fromOptions(url);
|
|
4244
4251
|
} else if (url) {
|
|
@@ -5488,11 +5495,12 @@ var init_wistia_player = __esm({
|
|
|
5488
5495
|
return false;
|
|
5489
5496
|
}
|
|
5490
5497
|
var duration = mediaData.duration, type = mediaData.type;
|
|
5491
|
-
var _ref = (_embedOptions$plugin = embedOptions.plugin) !== null && _embedOptions$plugin !== void 0 ? _embedOptions$plugin : {}, passwordProtectedVideo = _ref.passwordProtectedVideo, turnstilePlugin = _ref["requireEmail-v1"];
|
|
5498
|
+
var _ref = (_embedOptions$plugin = embedOptions.plugin) !== null && _embedOptions$plugin !== void 0 ? _embedOptions$plugin : {}, passwordProtectedVideo = _ref.passwordProtectedVideo, turnstilePlugin = _ref["requireEmail-v1"], form = _ref.form;
|
|
5492
5499
|
var isLiveStream = type === "LiveStream";
|
|
5493
5500
|
var passwordEnabled = (passwordProtectedVideo === null || passwordProtectedVideo === void 0 ? void 0 : passwordProtectedVideo.on) === true || (passwordProtectedVideo === null || passwordProtectedVideo === void 0 ? void 0 : passwordProtectedVideo.on) === "true";
|
|
5494
5501
|
var turnstileBlocksContent = turnstilePlugin && turnstilePlugin.on !== false && turnstilePlugin.time !== "end" && !turnstilePlugin.persistentTurnstile;
|
|
5495
|
-
|
|
5502
|
+
var formBlocksContent = (form === null || form === void 0 ? void 0 : form.on) !== false && (form === null || form === void 0 ? void 0 : form.time) !== "end" && (form === null || form === void 0 ? void 0 : form.displayMode) === "pause";
|
|
5503
|
+
return !passwordEnabled && !turnstileBlocksContent && !formBlocksContent && !isLiveStream && typeof duration === "number" && duration >= MINIMUM_DURATION;
|
|
5496
5504
|
};
|
|
5497
5505
|
var sortedFilteredChapters = function sortedFilteredChapters2(chapterList) {
|
|
5498
5506
|
var chapterExistsAtTime = {};
|
|
@@ -8930,7 +8938,7 @@ var init_wistia_player = __esm({
|
|
|
8930
8938
|
var PROD_SSL_EMBED_HOST = "embed-ssl.wistia.com";
|
|
8931
8939
|
var PROD_FASTLY_SSL_HOST = "embed-fastly.wistia.com";
|
|
8932
8940
|
var SSL_EMBED_HOST = "embed-ssl.wistia.com";
|
|
8933
|
-
var TAGGED_VERSION2 = "0.4.
|
|
8941
|
+
var TAGGED_VERSION2 = "0.4.3";
|
|
8934
8942
|
var CURRENT_SHA2 = (
|
|
8935
8943
|
/* unused pure expression or super */
|
|
8936
8944
|
null
|
|
@@ -9936,6 +9944,12 @@ var init_wistia_player = __esm({
|
|
|
9936
9944
|
/* harmony export */
|
|
9937
9945
|
});
|
|
9938
9946
|
var _hosts_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__3(5857);
|
|
9947
|
+
var _objectHasOwn = function(object, property) {
|
|
9948
|
+
if (typeof object === "undefined" || object === null) {
|
|
9949
|
+
throw new TypeError("Cannot convert undefined or null to object");
|
|
9950
|
+
}
|
|
9951
|
+
return Object.prototype.hasOwnProperty.call(Object(object), property);
|
|
9952
|
+
};
|
|
9939
9953
|
function _regenerator2() {
|
|
9940
9954
|
var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag";
|
|
9941
9955
|
function i2(r2, n2, o2, i3) {
|
|
@@ -10038,13 +10052,12 @@ var init_wistia_player = __esm({
|
|
|
10038
10052
|
}
|
|
10039
10053
|
var dynamicImport2 = /* @__PURE__ */ (function() {
|
|
10040
10054
|
var _ref = _asyncToGenerator2(/* @__PURE__ */ _regenerator2().m(function _callee(filePath) {
|
|
10041
|
-
var _options$host;
|
|
10042
10055
|
var options, host, taggedVersion, _args = arguments;
|
|
10043
10056
|
return _regenerator2().w(function(_context) {
|
|
10044
10057
|
while (1) switch (_context.n) {
|
|
10045
10058
|
case 0:
|
|
10046
10059
|
options = _args.length > 1 && _args[1] !== void 0 ? _args[1] : {};
|
|
10047
|
-
host = (
|
|
10060
|
+
host = _objectHasOwn(options, "host") && options.host != null ? options.host : (0, _hosts_js__WEBPACK_IMPORTED_MODULE_0__.aY)();
|
|
10048
10061
|
taggedVersion = _hosts_js__WEBPACK_IMPORTED_MODULE_0__.U4;
|
|
10049
10062
|
if (!(taggedVersion !== "" && taggedVersion.length > 0 && options.mediaData !== true)) {
|
|
10050
10063
|
_context.n = 1;
|
|
@@ -11831,14 +11844,20 @@ var init_wistia_player = __esm({
|
|
|
11831
11844
|
return document.fullscreenElement || document.webkitFullscreenElement;
|
|
11832
11845
|
};
|
|
11833
11846
|
var elemRequestFullscreen = function elemRequestFullscreen2(elem) {
|
|
11834
|
-
|
|
11835
|
-
|
|
11836
|
-
|
|
11837
|
-
|
|
11838
|
-
|
|
11847
|
+
try {
|
|
11848
|
+
if (elem.requestFullscreen && document.fullscreenEnabled) {
|
|
11849
|
+
return elem.requestFullscreen().catch(function(error) {
|
|
11850
|
+
wlog.notice("requestFullscreen failed", error);
|
|
11851
|
+
return Promise.reject(error);
|
|
11852
|
+
});
|
|
11853
|
+
}
|
|
11854
|
+
if (elem.webkitEnterFullscreen) {
|
|
11839
11855
|
elem.webkitEnterFullscreen();
|
|
11840
|
-
resolve();
|
|
11841
|
-
}
|
|
11856
|
+
return Promise.resolve();
|
|
11857
|
+
}
|
|
11858
|
+
} catch (error) {
|
|
11859
|
+
wlog.notice("requestFullscreen failed", error);
|
|
11860
|
+
return Promise.reject(error);
|
|
11842
11861
|
}
|
|
11843
11862
|
wlog.notice("no requestFullscreen functionality detected");
|
|
11844
11863
|
return Promise.resolve();
|
|
@@ -11920,7 +11939,13 @@ var init_wistia_player = __esm({
|
|
|
11920
11939
|
return requestAnimFrame(fn);
|
|
11921
11940
|
};
|
|
11922
11941
|
var formInputIsFocused = function formInputIsFocused2() {
|
|
11923
|
-
var activeElement = document.activeElement
|
|
11942
|
+
var activeElement = document.activeElement;
|
|
11943
|
+
if (document.activeElement.tagName === "WISTIA-PLAYER") {
|
|
11944
|
+
activeElement = document.activeElement.shadowRoot.activeElement;
|
|
11945
|
+
}
|
|
11946
|
+
if (activeElement.tagName === "WISTIA-FORM-EMBED") {
|
|
11947
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
11948
|
+
}
|
|
11924
11949
|
return /^textarea|input|select$/i.test(activeElement.tagName) || activeElement.isContentEditable;
|
|
11925
11950
|
};
|
|
11926
11951
|
var currentEventSource = function currentEventSource2() {
|
|
@@ -16648,7 +16673,7 @@ var WistiaPlayer2 = (0, import_react2.forwardRef)(
|
|
|
16648
16673
|
);
|
|
16649
16674
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
16650
16675
|
/*
|
|
16651
|
-
* @license @wistia/type-guards v0.9.
|
|
16676
|
+
* @license @wistia/type-guards v0.9.3
|
|
16652
16677
|
*
|
|
16653
16678
|
* Copyright (c) 2023-2025, Wistia, Inc. and its affiliates.
|
|
16654
16679
|
*
|
|
@@ -16658,7 +16683,7 @@ var WistiaPlayer2 = (0, import_react2.forwardRef)(
|
|
|
16658
16683
|
|
|
16659
16684
|
@wistia/type-guards/dist/index.mjs:
|
|
16660
16685
|
(*
|
|
16661
|
-
* @license @wistia/type-guards v0.9.
|
|
16686
|
+
* @license @wistia/type-guards v0.9.3
|
|
16662
16687
|
*
|
|
16663
16688
|
* Copyright (c) 2023-2025, Wistia, Inc. and its affiliates.
|
|
16664
16689
|
*
|
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
getMergedEmbedOption,
|
|
3
3
|
isString,
|
|
4
4
|
wistiaPlayerStyleBlock
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-IKNV6C53.mjs";
|
|
6
6
|
|
|
7
7
|
// src/WistiaPlayer.tsx
|
|
8
8
|
import { forwardRef, Suspense, lazy, Fragment } from "react";
|
|
9
9
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
10
|
var WistiaPlayerWrapper = lazy(
|
|
11
|
-
async () => import("./WistiaPlayerWrapper-
|
|
11
|
+
async () => import("./WistiaPlayerWrapper-ZVVNZ4Z6.mjs").then((module) => ({
|
|
12
12
|
default: module.WistiaPlayerWrapper
|
|
13
13
|
}))
|
|
14
14
|
);
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
isString,
|
|
8
8
|
isValidEmbedOption,
|
|
9
9
|
wistiaPlayerStyleBlock
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-IKNV6C53.mjs";
|
|
11
11
|
|
|
12
12
|
// src/WistiaPlayerWrapper.tsx
|
|
13
13
|
import { forwardRef, useEffect, useRef, useState, Fragment } from "react";
|
|
@@ -37,7 +37,7 @@ var WistiaPlayerWrapper = forwardRef(
|
|
|
37
37
|
setSwatchAspectRatio(ratio);
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
|
-
void import("./wistia-player-
|
|
40
|
+
void import("./wistia-player-BK7A5CHY.mjs");
|
|
41
41
|
void customElements.whenDefined("wistia-player").then(() => {
|
|
42
42
|
setIsWistiaPlayerDefined(true);
|
|
43
43
|
});
|
|
@@ -1537,8 +1537,14 @@ var __webpack_modules__ = {
|
|
|
1537
1537
|
/* harmony export */
|
|
1538
1538
|
});
|
|
1539
1539
|
var _wistia_type_guards__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__3(9814);
|
|
1540
|
+
var _objectHasOwn = function(object, property) {
|
|
1541
|
+
if (typeof object === "undefined" || object === null) {
|
|
1542
|
+
throw new TypeError("Cannot convert undefined or null to object");
|
|
1543
|
+
}
|
|
1544
|
+
return Object.prototype.hasOwnProperty.call(Object(object), property);
|
|
1545
|
+
};
|
|
1540
1546
|
var isMediaDataError = function isMediaDataError2(mediaData) {
|
|
1541
|
-
if ((0, _wistia_type_guards__WEBPACK_IMPORTED_MODULE_0__.gD)(mediaData.error)) {
|
|
1547
|
+
if (!_objectHasOwn(mediaData, "error") || (0, _wistia_type_guards__WEBPACK_IMPORTED_MODULE_0__.gD)(mediaData.error)) {
|
|
1542
1548
|
return false;
|
|
1543
1549
|
}
|
|
1544
1550
|
if (mediaData.error === "true" || mediaData.error === true) {
|
|
@@ -3377,6 +3383,7 @@ var __webpack_modules__ = {
|
|
|
3377
3383
|
self2.params = {};
|
|
3378
3384
|
self2.path = [];
|
|
3379
3385
|
self2.host = "";
|
|
3386
|
+
self2.rawPath = "";
|
|
3380
3387
|
if (typeof url === "object") {
|
|
3381
3388
|
self2.fromOptions(url);
|
|
3382
3389
|
} else if (url) {
|
|
@@ -4626,11 +4633,12 @@ var __webpack_modules__ = {
|
|
|
4626
4633
|
return false;
|
|
4627
4634
|
}
|
|
4628
4635
|
var duration = mediaData.duration, type = mediaData.type;
|
|
4629
|
-
var _ref = (_embedOptions$plugin = embedOptions.plugin) !== null && _embedOptions$plugin !== void 0 ? _embedOptions$plugin : {}, passwordProtectedVideo = _ref.passwordProtectedVideo, turnstilePlugin = _ref["requireEmail-v1"];
|
|
4636
|
+
var _ref = (_embedOptions$plugin = embedOptions.plugin) !== null && _embedOptions$plugin !== void 0 ? _embedOptions$plugin : {}, passwordProtectedVideo = _ref.passwordProtectedVideo, turnstilePlugin = _ref["requireEmail-v1"], form = _ref.form;
|
|
4630
4637
|
var isLiveStream = type === "LiveStream";
|
|
4631
4638
|
var passwordEnabled = (passwordProtectedVideo === null || passwordProtectedVideo === void 0 ? void 0 : passwordProtectedVideo.on) === true || (passwordProtectedVideo === null || passwordProtectedVideo === void 0 ? void 0 : passwordProtectedVideo.on) === "true";
|
|
4632
4639
|
var turnstileBlocksContent = turnstilePlugin && turnstilePlugin.on !== false && turnstilePlugin.time !== "end" && !turnstilePlugin.persistentTurnstile;
|
|
4633
|
-
|
|
4640
|
+
var formBlocksContent = (form === null || form === void 0 ? void 0 : form.on) !== false && (form === null || form === void 0 ? void 0 : form.time) !== "end" && (form === null || form === void 0 ? void 0 : form.displayMode) === "pause";
|
|
4641
|
+
return !passwordEnabled && !turnstileBlocksContent && !formBlocksContent && !isLiveStream && typeof duration === "number" && duration >= MINIMUM_DURATION;
|
|
4634
4642
|
};
|
|
4635
4643
|
var sortedFilteredChapters = function sortedFilteredChapters2(chapterList) {
|
|
4636
4644
|
var chapterExistsAtTime = {};
|
|
@@ -8068,7 +8076,7 @@ var __webpack_modules__ = {
|
|
|
8068
8076
|
var PROD_SSL_EMBED_HOST = "embed-ssl.wistia.com";
|
|
8069
8077
|
var PROD_FASTLY_SSL_HOST = "embed-fastly.wistia.com";
|
|
8070
8078
|
var SSL_EMBED_HOST = "embed-ssl.wistia.com";
|
|
8071
|
-
var TAGGED_VERSION2 = "0.4.
|
|
8079
|
+
var TAGGED_VERSION2 = "0.4.3";
|
|
8072
8080
|
var CURRENT_SHA2 = (
|
|
8073
8081
|
/* unused pure expression or super */
|
|
8074
8082
|
null
|
|
@@ -9074,6 +9082,12 @@ var __webpack_modules__ = {
|
|
|
9074
9082
|
/* harmony export */
|
|
9075
9083
|
});
|
|
9076
9084
|
var _hosts_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__3(5857);
|
|
9085
|
+
var _objectHasOwn = function(object, property) {
|
|
9086
|
+
if (typeof object === "undefined" || object === null) {
|
|
9087
|
+
throw new TypeError("Cannot convert undefined or null to object");
|
|
9088
|
+
}
|
|
9089
|
+
return Object.prototype.hasOwnProperty.call(Object(object), property);
|
|
9090
|
+
};
|
|
9077
9091
|
function _regenerator2() {
|
|
9078
9092
|
var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag";
|
|
9079
9093
|
function i2(r2, n2, o2, i3) {
|
|
@@ -9176,13 +9190,12 @@ var __webpack_modules__ = {
|
|
|
9176
9190
|
}
|
|
9177
9191
|
var dynamicImport2 = /* @__PURE__ */ (function() {
|
|
9178
9192
|
var _ref = _asyncToGenerator2(/* @__PURE__ */ _regenerator2().m(function _callee(filePath) {
|
|
9179
|
-
var _options$host;
|
|
9180
9193
|
var options, host, taggedVersion, _args = arguments;
|
|
9181
9194
|
return _regenerator2().w(function(_context) {
|
|
9182
9195
|
while (1) switch (_context.n) {
|
|
9183
9196
|
case 0:
|
|
9184
9197
|
options = _args.length > 1 && _args[1] !== void 0 ? _args[1] : {};
|
|
9185
|
-
host = (
|
|
9198
|
+
host = _objectHasOwn(options, "host") && options.host != null ? options.host : (0, _hosts_js__WEBPACK_IMPORTED_MODULE_0__.aY)();
|
|
9186
9199
|
taggedVersion = _hosts_js__WEBPACK_IMPORTED_MODULE_0__.U4;
|
|
9187
9200
|
if (!(taggedVersion !== "" && taggedVersion.length > 0 && options.mediaData !== true)) {
|
|
9188
9201
|
_context.n = 1;
|
|
@@ -10969,14 +10982,20 @@ var __webpack_modules__ = {
|
|
|
10969
10982
|
return document.fullscreenElement || document.webkitFullscreenElement;
|
|
10970
10983
|
};
|
|
10971
10984
|
var elemRequestFullscreen = function elemRequestFullscreen2(elem) {
|
|
10972
|
-
|
|
10973
|
-
|
|
10974
|
-
|
|
10975
|
-
|
|
10976
|
-
|
|
10985
|
+
try {
|
|
10986
|
+
if (elem.requestFullscreen && document.fullscreenEnabled) {
|
|
10987
|
+
return elem.requestFullscreen().catch(function(error) {
|
|
10988
|
+
wlog.notice("requestFullscreen failed", error);
|
|
10989
|
+
return Promise.reject(error);
|
|
10990
|
+
});
|
|
10991
|
+
}
|
|
10992
|
+
if (elem.webkitEnterFullscreen) {
|
|
10977
10993
|
elem.webkitEnterFullscreen();
|
|
10978
|
-
resolve();
|
|
10979
|
-
}
|
|
10994
|
+
return Promise.resolve();
|
|
10995
|
+
}
|
|
10996
|
+
} catch (error) {
|
|
10997
|
+
wlog.notice("requestFullscreen failed", error);
|
|
10998
|
+
return Promise.reject(error);
|
|
10980
10999
|
}
|
|
10981
11000
|
wlog.notice("no requestFullscreen functionality detected");
|
|
10982
11001
|
return Promise.resolve();
|
|
@@ -11058,7 +11077,13 @@ var __webpack_modules__ = {
|
|
|
11058
11077
|
return requestAnimFrame(fn);
|
|
11059
11078
|
};
|
|
11060
11079
|
var formInputIsFocused = function formInputIsFocused2() {
|
|
11061
|
-
var activeElement = document.activeElement
|
|
11080
|
+
var activeElement = document.activeElement;
|
|
11081
|
+
if (document.activeElement.tagName === "WISTIA-PLAYER") {
|
|
11082
|
+
activeElement = document.activeElement.shadowRoot.activeElement;
|
|
11083
|
+
}
|
|
11084
|
+
if (activeElement.tagName === "WISTIA-FORM-EMBED") {
|
|
11085
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
11086
|
+
}
|
|
11062
11087
|
return /^textarea|input|select$/i.test(activeElement.tagName) || activeElement.isContentEditable;
|
|
11063
11088
|
};
|
|
11064
11089
|
var currentEventSource = function currentEventSource2() {
|
|
@@ -16378,7 +16403,7 @@ export {
|
|
|
16378
16403
|
};
|
|
16379
16404
|
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
16380
16405
|
/*
|
|
16381
|
-
* @license @wistia/type-guards v0.9.
|
|
16406
|
+
* @license @wistia/type-guards v0.9.3
|
|
16382
16407
|
*
|
|
16383
16408
|
* Copyright (c) 2023-2025, Wistia, Inc. and its affiliates.
|
|
16384
16409
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wistia/wistia-player-react",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"packageManager": "yarn@4.5.3",
|
|
5
5
|
"description": "An embeddable wistia-player web component and React wrapper to add responsive, lightweight, and SEO-friendly videos to your site.",
|
|
6
6
|
"keywords": [
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"start:dev:yalc": "run build:react:dev --watch --yalc"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@wistia/type-guards": "^0.9.
|
|
49
|
-
"@wistia/wistia-player": "0.4.
|
|
48
|
+
"@wistia/type-guards": "^0.9.3",
|
|
49
|
+
"@wistia/wistia-player": "0.4.3"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
52
|
"react": ">=18.0.0 <20.0.0",
|