@stytch/vanilla-js 4.13.2 → 4.14.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/CHANGELOG.md +21 -0
- package/dist/SubscriptionService.d.ts +0 -1
- package/dist/adminPortal/AdminPortalWrapper.d.ts +6 -2
- package/dist/adminPortal/StytchClientContext.d.ts +8 -1
- package/dist/adminPortal/components/Autocomplete.d.ts +16 -0
- package/dist/adminPortal/components/Checkbox.d.ts +4 -0
- package/dist/adminPortal/components/EmbeddedTable.d.ts +1 -0
- package/dist/adminPortal/components/Input.d.ts +1 -0
- package/dist/adminPortal/components/ListEditor.d.ts +1 -0
- package/dist/adminPortal/components/MenuItem.d.ts +1 -0
- package/dist/adminPortal/components/PaddingLeft.d.ts +1 -0
- package/dist/adminPortal/components/PaginatedTable.d.ts +2 -1
- package/dist/adminPortal/components/RadioGroup.d.ts +4 -0
- package/dist/adminPortal/components/SearchBar.d.ts +1 -0
- package/dist/adminPortal/components/Select.d.ts +6 -9
- package/dist/adminPortal/components/Switch.d.ts +9 -0
- package/dist/adminPortal/components/Table.d.ts +1 -0
- package/dist/adminPortal/components/TableActions.d.ts +1 -0
- package/dist/adminPortal/components/Tooltip.d.ts +1 -0
- package/dist/adminPortal/index.d.ts +3 -0
- package/dist/adminPortal/index.esm.js +2 -2
- package/dist/adminPortal/index.js +2 -2
- package/dist/adminPortal/makeAdminPortalComponentMountFn.d.ts +1 -0
- package/dist/adminPortal/settings/AdminPortalOrgRouter.d.ts +19 -0
- package/dist/adminPortal/settings/AdminPortalOrgSettings.d.ts +40 -0
- package/dist/adminPortal/settings/OrgSettingsAuthenticationSettingsSection.d.ts +5 -0
- package/dist/adminPortal/settings/OrgSettingsDetailsSection.d.ts +22 -0
- package/dist/adminPortal/settings/OrgSettingsEmailDomainsSection.d.ts +5 -0
- package/dist/adminPortal/settings/OrgSettingsRoleAssignmentsSection.d.ts +5 -0
- package/dist/adminPortal/settings/OrgSettingsScreen.d.ts +2 -0
- package/dist/adminPortal/settings/mountAdminPortalOrgSettings.d.ts +16 -0
- package/dist/adminPortal/shared/components/Checkbox.d.ts +13 -0
- package/dist/adminPortal/shared/components/EmbeddedTable.d.ts +2 -2
- package/dist/adminPortal/shared/components/InfoIcon.d.ts +1 -0
- package/dist/adminPortal/shared/components/Input.d.ts +1 -0
- package/dist/adminPortal/shared/components/ListEditor.d.ts +3 -1
- package/dist/adminPortal/shared/components/PaginatedTable.d.ts +7 -1
- package/dist/adminPortal/shared/components/Radio.d.ts +14 -0
- package/dist/adminPortal/shared/components/RadioGroup.d.ts +12 -0
- package/dist/adminPortal/shared/components/RowItem.d.ts +8 -0
- package/dist/adminPortal/shared/components/SearchBar.d.ts +1 -0
- package/dist/adminPortal/shared/components/Table.d.ts +3 -2
- package/dist/adminPortal/shared/components/componentInjection.d.ts +1 -0
- package/dist/adminPortal/sso/SSOConnectionsScreen.d.ts +1 -0
- package/dist/adminPortal/sso/SSORouter.d.ts +1 -0
- package/dist/adminPortal/sso/useDisplayPagination.d.ts +9 -2
- package/dist/adminPortal/utils/Connection.d.ts +2 -2
- package/dist/adminPortal/utils/FormSectionBody.d.ts +6 -0
- package/dist/adminPortal/utils/arraysHaveSameContents.d.ts +20 -0
- package/dist/adminPortal/utils/isEmptyObject.d.ts +1 -0
- package/dist/adminPortal/utils/useAdminPortalConfig.d.ts +3 -0
- package/dist/adminPortal/utils/useApiNetworkClient.d.ts +2 -2
- package/dist/adminPortal/utils/useFormState.d.ts +1 -0
- package/dist/adminPortal/utils/useLocalStorage.d.ts +1 -0
- package/dist/adminPortal/utils/useOrgInfo.d.ts +1 -1
- package/dist/adminPortal/utils/useSsoConnections.d.ts +1 -1
- package/dist/b2b/index.esm.js +20 -9
- package/dist/b2b/index.headless.esm.js +2 -2
- package/dist/b2b/index.headless.js +2 -2
- package/dist/b2b/index.js +21 -10
- package/dist/{extractErrorMessage-HqH3v6mm.js → extractErrorMessage-BiNdYGfM.js} +5 -2
- package/dist/{extractErrorMessage-Dg5V9q2V.js → extractErrorMessage-DiDD8RjA.js} +5 -1
- package/dist/getLocalStorageKey.d.ts +1 -0
- package/dist/index.esm.js +1 -1
- package/dist/{index.headless-B3xD-OBz.js → index.headless-BLIQW_Q7.js} +2 -7
- package/dist/{index.headless-CL2Gf2QN.js → index.headless-BiqpFlmR.js} +11 -16
- package/dist/index.headless.esm.js +6 -6
- package/dist/index.headless.js +6 -6
- package/dist/index.js +1 -1
- package/dist/{internal-BNX5AEoW.js → internal-B455vZxU.js} +6 -0
- package/dist/{internal-CfUZ681R.js → internal-CDfy9hxd.js} +6 -1
- package/dist/ui/b2b/Container.d.ts +1 -0
- package/dist/ui/b2b/utils.d.ts +1 -0
- package/dist/ui/b2c/Container.d.ts +1 -0
- package/dist/ui/b2c/utils.d.ts +1 -1
- package/package.json +2 -2
package/dist/b2b/index.js
CHANGED
|
@@ -29,9 +29,9 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
29
29
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
30
30
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
31
31
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
32
|
-
var b2b_index_headless = require('../index.headless-
|
|
33
|
-
var extractErrorMessage = require('../extractErrorMessage-
|
|
34
|
-
var internal = require('../internal-
|
|
32
|
+
var b2b_index_headless = require('../index.headless-BiqpFlmR.js');
|
|
33
|
+
var extractErrorMessage = require('../extractErrorMessage-DiDD8RjA.js');
|
|
34
|
+
var internal = require('../internal-B455vZxU.js');
|
|
35
35
|
var DEFAULT_MFA_STATE = {
|
|
36
36
|
primaryInfo: null,
|
|
37
37
|
isEnrolling: false,
|
|
@@ -48,9 +48,6 @@ var DEFAULT_MFA_STATE = {
|
|
|
48
48
|
enrollment: null
|
|
49
49
|
}
|
|
50
50
|
};
|
|
51
|
-
var isTruthy = function isTruthy(value) {
|
|
52
|
-
return Boolean(value);
|
|
53
|
-
};
|
|
54
51
|
var getEnabledMethods = function getEnabledMethods(_ref3) {
|
|
55
52
|
var allMethods = _ref3.allMethods,
|
|
56
53
|
orgSupportedMethods = _ref3.orgSupportedMethods,
|
|
@@ -92,11 +89,11 @@ var mfaReducer = function mfaReducer(state, action) {
|
|
|
92
89
|
var memberEnrolledInSmsOtp = action.response.member.mfa_phone_number_verified;
|
|
93
90
|
var memberEnrolledInTotp = !!action.response.member.totp_registration_id;
|
|
94
91
|
var primaryInfo = {
|
|
95
|
-
enrolledMfaMethods: [memberEnrolledInTotp && internal.B2BMFAProducts.totp, memberEnrolledInSmsOtp && internal.B2BMFAProducts.smsOtp].filter(isTruthy),
|
|
92
|
+
enrolledMfaMethods: [memberEnrolledInTotp && internal.B2BMFAProducts.totp, memberEnrolledInSmsOtp && internal.B2BMFAProducts.smsOtp].filter(extractErrorMessage.isTruthy),
|
|
96
93
|
memberId: action.response.member_id,
|
|
97
94
|
memberPhoneNumber: action.response.member.mfa_phone_number,
|
|
98
95
|
organizationId: action.response.organization.organization_id,
|
|
99
|
-
organizationMfaOptionsSupported: action.response.organization.mfa_methods === 'RESTRICTED' && action.response.organization.allowed_mfa_methods ? (_a = action.response.organization.allowed_mfa_methods) === null || _a === void 0 ? void 0 : _a.map(apiMfaMethodToProduct).filter(isTruthy) : [],
|
|
96
|
+
organizationMfaOptionsSupported: action.response.organization.mfa_methods === 'RESTRICTED' && action.response.organization.allowed_mfa_methods ? (_a = action.response.organization.allowed_mfa_methods) === null || _a === void 0 ? void 0 : _a.map(apiMfaMethodToProduct).filter(extractErrorMessage.isTruthy) : [],
|
|
100
97
|
postAuthScreen: postAuthScreen
|
|
101
98
|
};
|
|
102
99
|
var organizationSupportsMethod = function organizationSupportsMethod(method) {
|
|
@@ -2239,7 +2236,7 @@ var SSOButton = function SSOButton(_ref43) {
|
|
|
2239
2236
|
};
|
|
2240
2237
|
return /*#__PURE__*/extractErrorMessage.y(Button, {
|
|
2241
2238
|
id: "sso-".concat(display_name),
|
|
2242
|
-
type: "
|
|
2239
|
+
type: "button",
|
|
2243
2240
|
onClick: onButtonClick,
|
|
2244
2241
|
variant: "outlined"
|
|
2245
2242
|
}, /*#__PURE__*/extractErrorMessage.y(Flex, {
|
|
@@ -2663,7 +2660,7 @@ var OAuthB2BButton = function OAuthB2BButton(props) {
|
|
|
2663
2660
|
};
|
|
2664
2661
|
return /*#__PURE__*/extractErrorMessage.wn.createElement(Button, {
|
|
2665
2662
|
id: "oauth-".concat(props.providerType),
|
|
2666
|
-
type: "
|
|
2663
|
+
type: "button",
|
|
2667
2664
|
onClick: onButtonClick,
|
|
2668
2665
|
variant: "outlined"
|
|
2669
2666
|
}, /*#__PURE__*/extractErrorMessage.wn.createElement(Flex, {
|
|
@@ -3372,6 +3369,7 @@ var EmailConfirmation$1 = function EmailConfirmation$1(_ref55) {
|
|
|
3372
3369
|
label: 'Outlook',
|
|
3373
3370
|
Icon: /*#__PURE__*/extractErrorMessage.wn.createElement(OutlookIcon, null)
|
|
3374
3371
|
}))), /*#__PURE__*/extractErrorMessage.wn.createElement(Button, {
|
|
3372
|
+
type: "button",
|
|
3375
3373
|
onClick: reset
|
|
3376
3374
|
}, "Try again"));
|
|
3377
3375
|
};
|
|
@@ -3539,6 +3537,7 @@ var DiscoverNoOrganizations = function DiscoverNoOrganizations() {
|
|
|
3539
3537
|
}), /*#__PURE__*/extractErrorMessage.y(Text, {
|
|
3540
3538
|
size: "header"
|
|
3541
3539
|
}, "Create an organization to get started"), /*#__PURE__*/extractErrorMessage.y(Button, {
|
|
3540
|
+
type: "button",
|
|
3542
3541
|
onClick: function onClick() {
|
|
3543
3542
|
return stytchCreateOrganization();
|
|
3544
3543
|
}
|
|
@@ -3552,6 +3551,7 @@ var DiscoverNoOrganizations = function DiscoverNoOrganizations() {
|
|
|
3552
3551
|
}), /*#__PURE__*/extractErrorMessage.y(Text, {
|
|
3553
3552
|
size: "header"
|
|
3554
3553
|
}, state.formState.discoveryState.email, " does not belong to any organizations."), /*#__PURE__*/extractErrorMessage.y(Text, null, "Make sure your email address is correct. Otherwise, you might need to be invited by your admin."), /*#__PURE__*/extractErrorMessage.y(Button, {
|
|
3554
|
+
type: "button",
|
|
3555
3555
|
variant: "outlined",
|
|
3556
3556
|
onClick: goBack
|
|
3557
3557
|
}, "Try a different email address"));
|
|
@@ -3697,6 +3697,7 @@ var Discovery = function Discovery() {
|
|
|
3697
3697
|
direction: "column",
|
|
3698
3698
|
gap: 8
|
|
3699
3699
|
}, /*#__PURE__*/extractErrorMessage.y(Divider, null), /*#__PURE__*/extractErrorMessage.y(Button, {
|
|
3700
|
+
type: "button",
|
|
3700
3701
|
variant: "outlined",
|
|
3701
3702
|
onClick: function onClick() {
|
|
3702
3703
|
return stytchCreateOrganization();
|
|
@@ -3830,6 +3831,7 @@ var MenuButton = function MenuButton(_ref65) {
|
|
|
3830
3831
|
var children = _ref65.children,
|
|
3831
3832
|
onClick = _ref65.onClick;
|
|
3832
3833
|
return /*#__PURE__*/extractErrorMessage.wn.createElement(StyledButton, {
|
|
3834
|
+
type: "button",
|
|
3833
3835
|
onClick: onClick
|
|
3834
3836
|
}, /*#__PURE__*/extractErrorMessage.wn.createElement(MenuText, null, children), /*#__PURE__*/extractErrorMessage.wn.createElement(ChevronContainer, {
|
|
3835
3837
|
"aria-hidden": true
|
|
@@ -4654,10 +4656,13 @@ var RecoveryCodeSaveScreen = function RecoveryCodeSaveScreen() {
|
|
|
4654
4656
|
}))), /*#__PURE__*/extractErrorMessage.wn.createElement(Flex, {
|
|
4655
4657
|
gap: 24
|
|
4656
4658
|
}, /*#__PURE__*/extractErrorMessage.wn.createElement(Button, {
|
|
4659
|
+
type: "button",
|
|
4657
4660
|
onClick: handleCodesDownload
|
|
4658
4661
|
}, "Download file"), /*#__PURE__*/extractErrorMessage.wn.createElement(Button, {
|
|
4662
|
+
type: "button",
|
|
4659
4663
|
onClick: handleCodesCopy
|
|
4660
4664
|
}, "Copy all")), /*#__PURE__*/extractErrorMessage.wn.createElement(Button, {
|
|
4665
|
+
type: "button",
|
|
4661
4666
|
variant: "text",
|
|
4662
4667
|
onClick: handleContinue
|
|
4663
4668
|
}, "Done"));
|
|
@@ -5302,6 +5307,7 @@ var SMSOTPEntryScreen = function SMSOTPEntryScreen() {
|
|
|
5302
5307
|
formattedDestination: (_a = formattedDestination !== null && formattedDestination !== void 0 ? formattedDestination : memberPhoneNumber) !== null && _a !== void 0 ? _a : '',
|
|
5303
5308
|
resendOTP: handleResendOTP
|
|
5304
5309
|
})) : ( /*#__PURE__*/extractErrorMessage.wn.createElement(LoadingScreen, null)), isTotpAvailable && ( /*#__PURE__*/extractErrorMessage.wn.createElement(extractErrorMessage.wn.Fragment, null, /*#__PURE__*/extractErrorMessage.wn.createElement(Divider, null), /*#__PURE__*/extractErrorMessage.wn.createElement(Button, {
|
|
5310
|
+
type: "button",
|
|
5305
5311
|
variant: "text",
|
|
5306
5312
|
onClick: handleSwitchToTotp
|
|
5307
5313
|
}, "Use an authenticator app"))));
|
|
@@ -5384,8 +5390,10 @@ var TOTPEnrollManualScreen = function TOTPEnrollManualScreen() {
|
|
|
5384
5390
|
onClick: handleCodeCopy,
|
|
5385
5391
|
"aria-label": "Copy code"
|
|
5386
5392
|
}, /*#__PURE__*/extractErrorMessage.wn.createElement(Copy, null))), /*#__PURE__*/extractErrorMessage.wn.createElement(Button, {
|
|
5393
|
+
type: "button",
|
|
5387
5394
|
onClick: handleContinue
|
|
5388
5395
|
}, "Continue"), /*#__PURE__*/extractErrorMessage.wn.createElement(Button, {
|
|
5396
|
+
type: "button",
|
|
5389
5397
|
variant: "text",
|
|
5390
5398
|
onClick: handleShowQRCode
|
|
5391
5399
|
}, "Try to scan the QR code again"));
|
|
@@ -5465,9 +5473,11 @@ var TOTPEnrollQRScreen = function TOTPEnrollQRScreen() {
|
|
|
5465
5473
|
alt: "QR code for TOTP enrollment",
|
|
5466
5474
|
src: enrollment.qrCode
|
|
5467
5475
|
}), /*#__PURE__*/extractErrorMessage.wn.createElement(Button, {
|
|
5476
|
+
type: "button",
|
|
5468
5477
|
variant: "text",
|
|
5469
5478
|
onClick: handleShowManualCode
|
|
5470
5479
|
}, "Having trouble scanning?"), /*#__PURE__*/extractErrorMessage.wn.createElement(Button, {
|
|
5480
|
+
type: "button",
|
|
5471
5481
|
onClick: handleContinue
|
|
5472
5482
|
}, "Continue"))) : ( /*#__PURE__*/extractErrorMessage.wn.createElement(LoadingScreen, null)));
|
|
5473
5483
|
};
|
|
@@ -5572,6 +5582,7 @@ var TOTPEntryScreen = function TOTPEntryScreen() {
|
|
|
5572
5582
|
onSubmit: handleSubmit,
|
|
5573
5583
|
errorMessage: errorMessage
|
|
5574
5584
|
}), isSmsOtpAvailable && ( /*#__PURE__*/extractErrorMessage.wn.createElement(extractErrorMessage.wn.Fragment, null, /*#__PURE__*/extractErrorMessage.wn.createElement(Divider, null), /*#__PURE__*/extractErrorMessage.wn.createElement(Button, {
|
|
5585
|
+
type: "button",
|
|
5575
5586
|
variant: "text",
|
|
5576
5587
|
onClick: handleSwitchToSms
|
|
5577
5588
|
}, "Text me a code instead"))));
|
|
@@ -27,7 +27,7 @@ function _isNativeFunction(fn) { try { return Function.toString.call(fn).indexOf
|
|
|
27
27
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
28
28
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
29
29
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
30
|
-
import { O as OAuthProviders } from './internal-
|
|
30
|
+
import { O as OAuthProviders } from './internal-CDfy9hxd.js';
|
|
31
31
|
var n$3,
|
|
32
32
|
l$4,
|
|
33
33
|
u$3,
|
|
@@ -2720,6 +2720,9 @@ function CreateSSRSafeWebComponent(ReactComponent, webComponentName) {
|
|
|
2720
2720
|
}
|
|
2721
2721
|
};
|
|
2722
2722
|
}
|
|
2723
|
+
var isTruthy = function isTruthy(value) {
|
|
2724
|
+
return Boolean(value);
|
|
2725
|
+
};
|
|
2723
2726
|
var lodash_merge = {
|
|
2724
2727
|
exports: {}
|
|
2725
2728
|
};
|
|
@@ -4490,4 +4493,4 @@ var extractErrorMessage = function extractErrorMessage(error) {
|
|
|
4490
4493
|
}
|
|
4491
4494
|
}
|
|
4492
4495
|
};
|
|
4493
|
-
export { A$3 as A,
|
|
4496
|
+
export { A$3 as A, A$4 as B, CreateSSRSafeWebComponent as C, j$1 as D, getAugmentedNamespace as E, F$3 as F, require$$2 as G, He as H, getDefaultExportFromCjs as I, Cn as J, N$1 as N, T$2 as T, UNDEFINED as U, Ze as Z, _$1 as _, w$3 as a, withMiddleware as b, useSWRConfig as c, useStateWithDeps as d, mergeObjects as e, getTimestamp as f, g$5 as g, h$4 as h, isTruthy as i, useIsomorphicLayoutEffect as j, Ue as k, extractErrorMessage as l, merge as m, Fe as n, hoistNonReactStatics$1 as o, p$3 as p, q$5 as q, fn as r, serialize as s, y$2 as t, useSWR as u, vn as v, wn as w, sn as x, y$3 as y, F$4 as z };
|
|
@@ -29,7 +29,7 @@ function _isNativeFunction(fn) { try { return Function.toString.call(fn).indexOf
|
|
|
29
29
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
30
30
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
31
31
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
32
|
-
var internal = require('./internal-
|
|
32
|
+
var internal = require('./internal-B455vZxU.js');
|
|
33
33
|
var n$3,
|
|
34
34
|
l$4,
|
|
35
35
|
u$3,
|
|
@@ -2722,6 +2722,9 @@ function CreateSSRSafeWebComponent(ReactComponent, webComponentName) {
|
|
|
2722
2722
|
}
|
|
2723
2723
|
};
|
|
2724
2724
|
}
|
|
2725
|
+
var isTruthy = function isTruthy(value) {
|
|
2726
|
+
return Boolean(value);
|
|
2727
|
+
};
|
|
2725
2728
|
var lodash_merge = {
|
|
2726
2729
|
exports: {}
|
|
2727
2730
|
};
|
|
@@ -4514,6 +4517,7 @@ exports.getDefaultExportFromCjs = getDefaultExportFromCjs;
|
|
|
4514
4517
|
exports.getTimestamp = getTimestamp;
|
|
4515
4518
|
exports.h = h$4;
|
|
4516
4519
|
exports.hoistNonReactStatics = hoistNonReactStatics$1;
|
|
4520
|
+
exports.isTruthy = isTruthy;
|
|
4517
4521
|
exports.j = j$1;
|
|
4518
4522
|
exports.merge = merge;
|
|
4519
4523
|
exports.mergeObjects = mergeObjects;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getLocalStorageKey: (publicToken: string, key?: string) => string;
|