@northern.tech/store 0.3.2 → 0.3.4
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/BillingProfile-ChP2_Sqw.d.cts +45 -0
- package/dist/BillingProfile-ChP2_Sqw.d.ts +45 -0
- package/dist/actions.cjs +22 -23
- package/dist/actions.cjs.map +1 -1
- package/dist/actions.js +12 -12
- package/dist/api/general-api.cjs.map +1 -1
- package/dist/api/general-api.js +5 -5
- package/dist/api/types/Tenant.ts +17 -12
- package/dist/api/users-api.cjs.map +1 -1
- package/dist/api/users-api.js +6 -6
- package/dist/appSlice/constants.cjs +18 -10
- package/dist/appSlice/constants.cjs.map +1 -1
- package/dist/appSlice/constants.d.cts +41 -84
- package/dist/appSlice/constants.d.ts +41 -84
- package/dist/appSlice/constants.js +1 -1
- package/dist/appSlice/index.cjs +1 -3
- package/dist/appSlice/index.cjs.map +1 -1
- package/dist/appSlice/index.js +4 -4
- package/dist/appSlice/thunks.cjs +153 -120
- package/dist/appSlice/thunks.cjs.map +1 -1
- package/dist/appSlice/thunks.js +28 -27
- package/dist/auth.cjs.map +1 -1
- package/dist/auth.js +4 -4
- package/dist/{chunk-NI4SZOCF.js → chunk-4RWZR3BN.js} +23 -25
- package/dist/{chunk-NI4SZOCF.js.map → chunk-4RWZR3BN.js.map} +1 -1
- package/dist/{chunk-YGBFDXXA.js → chunk-7YZCUAXZ.js} +2 -2
- package/dist/{chunk-7PVGDMNM.js → chunk-AFICTIVU.js} +3 -5
- package/dist/{chunk-7PVGDMNM.js.map → chunk-AFICTIVU.js.map} +1 -1
- package/dist/{chunk-YT73QWCN.js → chunk-AUBJUUP3.js} +3 -3
- package/dist/{chunk-UEP36GCI.js → chunk-AVX7VVOK.js} +3 -3
- package/dist/{chunk-4B3IMP4I.js → chunk-BSN2TOQC.js} +1 -1
- package/dist/{chunk-4B3IMP4I.js.map → chunk-BSN2TOQC.js.map} +1 -1
- package/dist/{chunk-VOCOFE4I.js → chunk-DCEKU6UV.js} +2 -2
- package/dist/{chunk-E5LEU5PF.js → chunk-DGQKXSRI.js} +3 -3
- package/dist/{chunk-74OJIKXF.js → chunk-EQLHIPPR.js} +182 -142
- package/dist/chunk-EQLHIPPR.js.map +1 -0
- package/dist/{chunk-MDC7Y3EX.js → chunk-EYCORLYU.js} +44 -40
- package/dist/chunk-EYCORLYU.js.map +1 -0
- package/dist/{chunk-KAQJH2YL.js → chunk-FQDSV3NK.js} +13 -5
- package/dist/chunk-FQDSV3NK.js.map +1 -0
- package/dist/{chunk-XTRPX7JZ.js → chunk-FRSA2YB5.js} +3 -3
- package/dist/chunk-FRSA2YB5.js.map +1 -0
- package/dist/{chunk-ANB5BM5J.js → chunk-FVCYB5OP.js} +37 -32
- package/dist/chunk-FVCYB5OP.js.map +1 -0
- package/dist/{chunk-AMGWP7A4.js → chunk-GAI4VYRZ.js} +2 -2
- package/dist/{chunk-YETZPQFR.js → chunk-GWJIY56H.js} +19 -20
- package/dist/chunk-GWJIY56H.js.map +1 -0
- package/dist/{chunk-Q6M5TTDQ.js → chunk-JO33IORF.js} +2 -2
- package/dist/chunk-JO33IORF.js.map +1 -0
- package/dist/chunk-K4MMUDYT.js +391 -0
- package/dist/chunk-K4MMUDYT.js.map +1 -0
- package/dist/{chunk-XXHONFSQ.js → chunk-L3SY3J5M.js} +4 -4
- package/dist/{chunk-XXHONFSQ.js.map → chunk-L3SY3J5M.js.map} +1 -1
- package/dist/{chunk-JAROCU6M.js → chunk-NCSKCF2S.js} +3 -3
- package/dist/{chunk-CYV6632F.js → chunk-NOQR3TE7.js} +2 -2
- package/dist/{chunk-A6CT6GTI.js → chunk-OEP2D6QL.js} +18 -12
- package/dist/chunk-OEP2D6QL.js.map +1 -0
- package/dist/{chunk-2RJIDREZ.js → chunk-PAIB5V27.js} +32 -23
- package/dist/chunk-PAIB5V27.js.map +1 -0
- package/dist/{chunk-FGKMJS3B.js → chunk-RX32WLVJ.js} +2 -4
- package/dist/chunk-RX32WLVJ.js.map +1 -0
- package/dist/{chunk-YTQUNAZP.js → chunk-X3GZILYD.js} +3 -3
- package/dist/{chunk-25AKG5HH.js → chunk-Y575RZHR.js} +19 -11
- package/dist/chunk-Y575RZHR.js.map +1 -0
- package/dist/{chunk-RX55KAKX.js → chunk-ZWOAFHAR.js} +2 -2
- package/dist/{chunk-NNADGHSL.js → chunk-ZZMFXRQK.js} +14 -14
- package/dist/commonConstants.cjs.map +1 -1
- package/dist/commonConstants.d.cts +1 -1
- package/dist/commonConstants.d.ts +1 -1
- package/dist/commonConstants.js +1 -1
- package/dist/commonSelectors.cjs +47 -29
- package/dist/commonSelectors.cjs.map +1 -1
- package/dist/commonSelectors.d.cts +55 -46
- package/dist/commonSelectors.d.ts +55 -46
- package/dist/commonSelectors.js +11 -11
- package/dist/constants.cjs +35 -19
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +3 -3
- package/dist/constants.d.ts +3 -3
- package/dist/constants.js +7 -3
- package/dist/deploymentdevicehook.cjs +159 -125
- package/dist/deploymentdevicehook.cjs.map +1 -1
- package/dist/deploymentdevicehook.d.cts +1 -1
- package/dist/deploymentdevicehook.d.ts +1 -1
- package/dist/deploymentdevicehook.js +34 -31
- package/dist/deploymentdevicehook.js.map +1 -1
- package/dist/deploymentsSlice/constants.cjs +8 -8
- package/dist/deploymentsSlice/constants.cjs.map +1 -1
- package/dist/deploymentsSlice/constants.js +3 -3
- package/dist/deploymentsSlice/index.cjs +8 -8
- package/dist/deploymentsSlice/index.cjs.map +1 -1
- package/dist/deploymentsSlice/index.js +4 -4
- package/dist/deploymentsSlice/selectors.cjs +8 -8
- package/dist/deploymentsSlice/selectors.cjs.map +1 -1
- package/dist/deploymentsSlice/selectors.js +4 -4
- package/dist/deploymentsSlice/thunks.cjs +153 -120
- package/dist/deploymentsSlice/thunks.cjs.map +1 -1
- package/dist/deploymentsSlice/thunks.js +28 -27
- package/dist/devicesSlice/constants.cjs +11 -8
- package/dist/devicesSlice/constants.cjs.map +1 -1
- package/dist/devicesSlice/constants.d.cts +2 -1
- package/dist/devicesSlice/constants.d.ts +2 -1
- package/dist/devicesSlice/constants.js +5 -3
- package/dist/devicesSlice/index.cjs +8 -8
- package/dist/devicesSlice/index.cjs.map +1 -1
- package/dist/devicesSlice/index.js +4 -4
- package/dist/devicesSlice/selectors.cjs +9 -9
- package/dist/devicesSlice/selectors.cjs.map +1 -1
- package/dist/devicesSlice/selectors.js +4 -4
- package/dist/devicesSlice/thunks.cjs +155 -120
- package/dist/devicesSlice/thunks.cjs.map +1 -1
- package/dist/devicesSlice/thunks.d.cts +12 -2
- package/dist/devicesSlice/thunks.d.ts +12 -2
- package/dist/devicesSlice/thunks.js +30 -27
- package/dist/flag-eu-5477R2P4.svg +130 -0
- package/dist/flag-us-HNQAF66I.svg +63 -0
- package/dist/liststatehook.cjs +971 -0
- package/dist/liststatehook.cjs.map +1 -0
- package/dist/liststatehook.d.cts +246 -0
- package/dist/liststatehook.d.ts +246 -0
- package/dist/liststatehook.js +88 -0
- package/dist/liststatehook.js.map +1 -0
- package/dist/locationutils.cjs +942 -0
- package/dist/locationutils.cjs.map +1 -0
- package/dist/locationutils.d.cts +113 -0
- package/dist/locationutils.d.ts +113 -0
- package/dist/locationutils.js +46 -0
- package/dist/locationutils.js.map +1 -0
- package/dist/monitorSlice/constants.cjs +8 -8
- package/dist/monitorSlice/constants.cjs.map +1 -1
- package/dist/monitorSlice/constants.js +3 -3
- package/dist/monitorSlice/index.cjs +8 -8
- package/dist/monitorSlice/index.cjs.map +1 -1
- package/dist/monitorSlice/index.js +4 -4
- package/dist/monitorSlice/thunks.cjs +74 -62
- package/dist/monitorSlice/thunks.cjs.map +1 -1
- package/dist/monitorSlice/thunks.js +24 -24
- package/dist/onboardingSlice/index.cjs +1 -3
- package/dist/onboardingSlice/index.cjs.map +1 -1
- package/dist/onboardingSlice/index.js +1 -1
- package/dist/onboardingSlice/thunks.cjs +157 -124
- package/dist/onboardingSlice/thunks.cjs.map +1 -1
- package/dist/onboardingSlice/thunks.d.cts +2 -34
- package/dist/onboardingSlice/thunks.d.ts +2 -34
- package/dist/onboardingSlice/thunks.js +28 -29
- package/dist/organizationSlice/constants.cjs +22 -17
- package/dist/organizationSlice/constants.cjs.map +1 -1
- package/dist/organizationSlice/constants.d.cts +33 -1
- package/dist/organizationSlice/constants.d.ts +33 -1
- package/dist/organizationSlice/constants.js +5 -3
- package/dist/organizationSlice/index.cjs +18 -15
- package/dist/organizationSlice/index.cjs.map +1 -1
- package/dist/organizationSlice/index.d.cts +27 -1012
- package/dist/organizationSlice/index.d.ts +27 -1012
- package/dist/organizationSlice/index.js +4 -4
- package/dist/organizationSlice/selectors.cjs.map +1 -1
- package/dist/organizationSlice/selectors.d.cts +10 -1
- package/dist/organizationSlice/selectors.d.ts +10 -1
- package/dist/organizationSlice/selectors.js +4 -4
- package/dist/organizationSlice/thunks.cjs +1619 -1559
- package/dist/organizationSlice/thunks.cjs.map +1 -1
- package/dist/organizationSlice/thunks.d.cts +62 -37
- package/dist/organizationSlice/thunks.d.ts +62 -37
- package/dist/organizationSlice/thunks.js +28 -27
- package/dist/organizationSlice/types.cjs +19 -0
- package/dist/organizationSlice/types.cjs.map +1 -0
- package/dist/organizationSlice/types.d.cts +5 -0
- package/dist/organizationSlice/types.d.ts +5 -0
- package/dist/organizationSlice/types.js +1 -0
- package/dist/organizationSlice/types.js.map +1 -0
- package/dist/releasesSlice/index.cjs.map +1 -1
- package/dist/releasesSlice/index.js +4 -4
- package/dist/releasesSlice/selectors.cjs +17 -8
- package/dist/releasesSlice/selectors.cjs.map +1 -1
- package/dist/releasesSlice/selectors.js +5 -5
- package/dist/releasesSlice/thunks.cjs +123 -94
- package/dist/releasesSlice/thunks.cjs.map +1 -1
- package/dist/releasesSlice/thunks.d.cts +1 -4
- package/dist/releasesSlice/thunks.d.ts +1 -4
- package/dist/releasesSlice/thunks.js +25 -24
- package/dist/selectors.cjs +53 -29
- package/dist/selectors.cjs.map +1 -1
- package/dist/selectors.d.cts +10 -1
- package/dist/selectors.d.ts +10 -1
- package/dist/selectors.js +49 -43
- package/dist/sockethook.cjs +529 -0
- package/dist/sockethook.cjs.map +1 -0
- package/dist/sockethook.d.cts +10 -0
- package/dist/sockethook.d.ts +10 -0
- package/dist/sockethook.js +141 -0
- package/dist/sockethook.js.map +1 -0
- package/dist/store.cjs +38 -29
- package/dist/store.cjs.map +1 -1
- package/dist/store.d.cts +13 -231
- package/dist/store.d.ts +13 -231
- package/dist/store.js +18 -16
- package/dist/storehooks.cjs +273 -198
- package/dist/storehooks.cjs.map +1 -1
- package/dist/storehooks.js +38 -37
- package/dist/storehooks.js.map +1 -1
- package/dist/thunks.cjs +259 -184
- package/dist/thunks.cjs.map +1 -1
- package/dist/thunks.d.cts +6 -2
- package/dist/thunks.d.ts +6 -2
- package/dist/thunks.js +30 -29
- package/dist/types-DBj17FZO.d.cts +135 -0
- package/dist/types-DnfZa6xd.d.ts +135 -0
- package/dist/usersSlice/constants.cjs +10 -10
- package/dist/usersSlice/constants.cjs.map +1 -1
- package/dist/usersSlice/constants.d.cts +6 -6
- package/dist/usersSlice/constants.d.ts +6 -6
- package/dist/usersSlice/constants.js +3 -3
- package/dist/usersSlice/index.cjs +10 -10
- package/dist/usersSlice/index.cjs.map +1 -1
- package/dist/usersSlice/index.js +4 -4
- package/dist/usersSlice/selectors.cjs +35 -13
- package/dist/usersSlice/selectors.cjs.map +1 -1
- package/dist/usersSlice/selectors.d.cts +44 -1
- package/dist/usersSlice/selectors.d.ts +44 -1
- package/dist/usersSlice/selectors.js +13 -7
- package/dist/usersSlice/thunks.cjs +151 -120
- package/dist/usersSlice/thunks.cjs.map +1 -1
- package/dist/usersSlice/thunks.d.cts +10 -9
- package/dist/usersSlice/thunks.d.ts +10 -9
- package/dist/usersSlice/thunks.js +28 -27
- package/dist/utils.cjs +23 -24
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.js +4 -4
- package/package.json +7 -6
- package/dist/chunk-25AKG5HH.js.map +0 -1
- package/dist/chunk-2RJIDREZ.js.map +0 -1
- package/dist/chunk-74OJIKXF.js.map +0 -1
- package/dist/chunk-A6CT6GTI.js.map +0 -1
- package/dist/chunk-ANB5BM5J.js.map +0 -1
- package/dist/chunk-FGKMJS3B.js.map +0 -1
- package/dist/chunk-KAQJH2YL.js.map +0 -1
- package/dist/chunk-MDC7Y3EX.js.map +0 -1
- package/dist/chunk-Q6M5TTDQ.js.map +0 -1
- package/dist/chunk-XTRPX7JZ.js.map +0 -1
- package/dist/chunk-YETZPQFR.js.map +0 -1
- /package/dist/{chunk-YGBFDXXA.js.map → chunk-7YZCUAXZ.js.map} +0 -0
- /package/dist/{chunk-YT73QWCN.js.map → chunk-AUBJUUP3.js.map} +0 -0
- /package/dist/{chunk-UEP36GCI.js.map → chunk-AVX7VVOK.js.map} +0 -0
- /package/dist/{chunk-VOCOFE4I.js.map → chunk-DCEKU6UV.js.map} +0 -0
- /package/dist/{chunk-E5LEU5PF.js.map → chunk-DGQKXSRI.js.map} +0 -0
- /package/dist/{chunk-AMGWP7A4.js.map → chunk-GAI4VYRZ.js.map} +0 -0
- /package/dist/{chunk-JAROCU6M.js.map → chunk-NCSKCF2S.js.map} +0 -0
- /package/dist/{chunk-CYV6632F.js.map → chunk-NOQR3TE7.js.map} +0 -0
- /package/dist/{chunk-YTQUNAZP.js.map → chunk-X3GZILYD.js.map} +0 -0
- /package/dist/{chunk-RX55KAKX.js.map → chunk-ZWOAFHAR.js.map} +0 -0
- /package/dist/{chunk-NNADGHSL.js.map → chunk-ZZMFXRQK.js.map} +0 -0
|
@@ -27,14 +27,14 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
|
|
30
|
-
// src/deploymentdevicehook.
|
|
30
|
+
// src/deploymentdevicehook.ts
|
|
31
31
|
var deploymentdevicehook_exports = {};
|
|
32
32
|
__export(deploymentdevicehook_exports, {
|
|
33
33
|
useDeploymentDevice: () => useDeploymentDevice
|
|
34
34
|
});
|
|
35
35
|
module.exports = __toCommonJS(deploymentdevicehook_exports);
|
|
36
36
|
var import_react = require("react");
|
|
37
|
-
var
|
|
37
|
+
var import_react_redux2 = require("react-redux");
|
|
38
38
|
|
|
39
39
|
// src/appSlice/selectors.ts
|
|
40
40
|
var import_helpers = require("@northern.tech/utils/helpers");
|
|
@@ -86,28 +86,28 @@ var PLANS = {
|
|
|
86
86
|
id: "os",
|
|
87
87
|
name: "Basic",
|
|
88
88
|
offer: true,
|
|
89
|
-
price: "$32/month",
|
|
89
|
+
price: "$32 / month",
|
|
90
90
|
deviceCount: startingDeviceCount.os,
|
|
91
|
-
offerprice: "$23/month for first 50 devices",
|
|
91
|
+
offerprice: "$23 / month for first 50 devices",
|
|
92
92
|
price2: "for first 6 months;\n$29/month thereafter",
|
|
93
|
-
features: ["
|
|
93
|
+
features: ["Access to core features of Mender", "Basic support"]
|
|
94
94
|
},
|
|
95
95
|
professional: {
|
|
96
96
|
id: "professional",
|
|
97
97
|
name: "Professional",
|
|
98
98
|
offer: true,
|
|
99
|
-
price: "$269/month",
|
|
99
|
+
price: "$269 / month",
|
|
100
100
|
deviceCount: startingDeviceCount.professional,
|
|
101
|
-
offerprice: "$200/month for first 50 devices",
|
|
101
|
+
offerprice: "$200 / month for first 50 devices",
|
|
102
102
|
price2: "for first 6 months;\n$249/month thereafter",
|
|
103
|
-
features: ["
|
|
103
|
+
features: ["Advanced OTA features", "Higher priority support"]
|
|
104
104
|
},
|
|
105
105
|
enterprise: {
|
|
106
106
|
id: "enterprise",
|
|
107
107
|
name: "Enterprise",
|
|
108
108
|
price: "Custom pricing",
|
|
109
|
-
deviceCount: "
|
|
110
|
-
features: ["
|
|
109
|
+
deviceCount: "Unlimited devices",
|
|
110
|
+
features: ["All Mender features", "Advanced security features", "SLA-backed support"]
|
|
111
111
|
}
|
|
112
112
|
};
|
|
113
113
|
var ADDONS = {
|
|
@@ -440,6 +440,7 @@ var DEVICE_STATES = {
|
|
|
440
440
|
rejected: "rejected"
|
|
441
441
|
};
|
|
442
442
|
var geoAttributes = ["geo-lat", "geo-lon"].map((attribute) => ({ attribute, scope: "inventory" }));
|
|
443
|
+
var REPORT_CHART_SIZE_LIMIT = 6;
|
|
443
444
|
|
|
444
445
|
// src/monitorSlice/constants.ts
|
|
445
446
|
var alertChannels = { email: "email" };
|
|
@@ -521,13 +522,16 @@ var SSO_TYPES = {
|
|
|
521
522
|
configDetails: [{ key: "startURL", label: "Start Url", getValue: getOidcStartUrl }]
|
|
522
523
|
}
|
|
523
524
|
};
|
|
524
|
-
var
|
|
525
|
-
{ title: "Artifact", queryParameter: "object_type", value: "artifact" },
|
|
526
|
-
{ title: "Deployment", queryParameter: "object_deployment_name", value: "deployment" },
|
|
527
|
-
{ title: "Device", queryParameter: "object_id", value: "device" },
|
|
528
|
-
{ title: "
|
|
529
|
-
|
|
530
|
-
|
|
525
|
+
var auditlogTypes = {
|
|
526
|
+
artifact: { title: "Artifact", queryParameter: "object_type", value: "artifact" },
|
|
527
|
+
deployment: { title: "Deployment", queryParameter: "object_deployment_name", value: "deployment" },
|
|
528
|
+
device: { title: "Device", queryParameter: "object_id", value: "device" },
|
|
529
|
+
user_access_token: { title: "Personal Access Token", queryParameter: "user_access_token", value: "user_access_token" },
|
|
530
|
+
user: { title: "User", queryParameter: "object_id", value: "user" },
|
|
531
|
+
tenant: { title: "Tenant", queryParameter: "object_id", value: "tenant" }
|
|
532
|
+
};
|
|
533
|
+
var AUDIT_LOGS_TYPES = [auditlogTypes.artifact, auditlogTypes.deployment, auditlogTypes.device, auditlogTypes.user_access_token, auditlogTypes.user];
|
|
534
|
+
var SP_AUDIT_LOGS_TYPES = [auditlogTypes.user, auditlogTypes.tenant];
|
|
531
535
|
var emptyWebhook = {
|
|
532
536
|
description: "",
|
|
533
537
|
enabled: true,
|
|
@@ -660,7 +664,7 @@ var uiPermissionsByArea = {
|
|
|
660
664
|
explanation: "Granting access to the audit log will allow tracing changes to devices, releases and user accounts, as well as providing information about deployments.",
|
|
661
665
|
key: "auditlog",
|
|
662
666
|
uiPermissions: [uiPermissionsById.read],
|
|
663
|
-
title: "System
|
|
667
|
+
title: "System Audit Log"
|
|
664
668
|
},
|
|
665
669
|
deployments: {
|
|
666
670
|
endpoints: [
|
|
@@ -811,7 +815,7 @@ var serviceProviderRolesById = {
|
|
|
811
815
|
},
|
|
812
816
|
readOnly: {
|
|
813
817
|
name: "Read access",
|
|
814
|
-
value: staticRolesByName.
|
|
818
|
+
value: staticRolesByName.readOnly,
|
|
815
819
|
description: "This role can see all linked organizations but cannot make any changes",
|
|
816
820
|
permissions: [],
|
|
817
821
|
uiPermissions: {
|
|
@@ -1183,7 +1187,7 @@ var getGroups = (0, import_toolkit3.createSelector)([getGroupsById], (groupsById
|
|
|
1183
1187
|
(accu, [groupname, group]) => {
|
|
1184
1188
|
const name = groupname === UNGROUPED_GROUP.id ? UNGROUPED_GROUP.name : groupname;
|
|
1185
1189
|
const groupItem = { ...group, groupId: name, name: groupname };
|
|
1186
|
-
if (group.filters
|
|
1190
|
+
if (group.filters?.length > 0) {
|
|
1187
1191
|
if (groupname !== UNGROUPED_GROUP.id) {
|
|
1188
1192
|
accu.dynamic.push(groupItem);
|
|
1189
1193
|
} else {
|
|
@@ -1256,14 +1260,15 @@ var getAuditLogEntry = (0, import_toolkit4.createSelector)([getAuditLog, getAudi
|
|
|
1256
1260
|
// src/utils.ts
|
|
1257
1261
|
var import_helpers3 = require("@northern.tech/utils/helpers");
|
|
1258
1262
|
var filterProcessors = {
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1263
|
+
[DEVICE_FILTERING_OPTIONS.$gt.key]: (val) => Number(val) || val,
|
|
1264
|
+
[DEVICE_FILTERING_OPTIONS.$gte.key]: (val) => Number(val) || val,
|
|
1265
|
+
[DEVICE_FILTERING_OPTIONS.$lt.key]: (val) => Number(val) || val,
|
|
1266
|
+
[DEVICE_FILTERING_OPTIONS.$lte.key]: (val) => Number(val) || val,
|
|
1267
|
+
[DEVICE_FILTERING_OPTIONS.$ltne.key]: (val) => Number(val) || val,
|
|
1268
|
+
[DEVICE_FILTERING_OPTIONS.$in.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
1269
|
+
[DEVICE_FILTERING_OPTIONS.$nin.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
1270
|
+
[DEVICE_FILTERING_OPTIONS.$exists.key]: import_helpers3.yes,
|
|
1271
|
+
[DEVICE_FILTERING_OPTIONS.$nexists.key]: () => false
|
|
1267
1272
|
};
|
|
1268
1273
|
var filterAliases = {
|
|
1269
1274
|
$nexists: { alias: DEVICE_FILTERING_OPTIONS.$exists.key, value: false }
|
|
@@ -1307,14 +1312,12 @@ var filtersFilter = (item, index, array) => {
|
|
|
1307
1312
|
const firstIndex = array.findIndex((filter) => filterCompare(filter, item));
|
|
1308
1313
|
return firstIndex === index;
|
|
1309
1314
|
};
|
|
1310
|
-
var listItemMapper = (byId, ids, { defaultObject = {}, cutOffSize = DEVICE_LIST_MAXIMUM_LENGTH }) => {
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
}, []);
|
|
1317
|
-
};
|
|
1315
|
+
var listItemMapper = (byId, ids, { defaultObject = {}, cutOffSize = DEVICE_LIST_MAXIMUM_LENGTH }) => ids.slice(0, cutOffSize).reduce((accu, id) => {
|
|
1316
|
+
if (id && byId[id]) {
|
|
1317
|
+
accu.push({ ...defaultObject, ...byId[id] });
|
|
1318
|
+
}
|
|
1319
|
+
return accu;
|
|
1320
|
+
}, []);
|
|
1318
1321
|
var mergePermissions = (existingPermissions = { ...emptyUiPermissions }, addedPermissions) => Object.entries(existingPermissions).reduce(
|
|
1319
1322
|
(accu, [key, value]) => {
|
|
1320
1323
|
let values;
|
|
@@ -1387,8 +1390,13 @@ var getTooltipsById = (state) => state.users.tooltips.byId;
|
|
|
1387
1390
|
var getGlobalSettings = (state) => state.users.globalSettings;
|
|
1388
1391
|
var getCurrentUserId = (state) => state.users.currentUser;
|
|
1389
1392
|
var getUsersById = (state) => state.users.byId;
|
|
1393
|
+
var getUsersList = (0, import_toolkit6.createSelector)([getUsersById], (usersById) => Object.values(usersById));
|
|
1390
1394
|
var getCurrentUser = (0, import_toolkit6.createSelector)([getUsersById, getCurrentUserId], (usersById, userId) => usersById[userId] ?? {});
|
|
1391
1395
|
var getUserSettings = (state) => state.users.userSettings;
|
|
1396
|
+
var getSelectedDeviceAttribute = (0, import_toolkit6.createSelector)(
|
|
1397
|
+
[getUserSettings],
|
|
1398
|
+
({ columnSelection }) => columnSelection.map((attribute) => ({ attribute: attribute.key, scope: attribute.scope }))
|
|
1399
|
+
);
|
|
1392
1400
|
var getIsDarkMode = (0, import_toolkit6.createSelector)([getUserSettings], ({ mode }) => isDarkMode(mode));
|
|
1393
1401
|
var getShowHelptips = (0, import_toolkit6.createSelector)(
|
|
1394
1402
|
[getTooltipsById],
|
|
@@ -1413,7 +1421,7 @@ var getOfflineThresholdSettings = (0, import_toolkit6.createSelector)([getGlobal
|
|
|
1413
1421
|
interval: offlineThreshold?.interval || DEVICE_ONLINE_CUTOFF.interval,
|
|
1414
1422
|
intervalUnit: offlineThreshold?.intervalUnit || DEVICE_ONLINE_CUTOFF.intervalName
|
|
1415
1423
|
}));
|
|
1416
|
-
var getRolesList = (0, import_toolkit6.createSelector)([getRolesById], (rolesById2) => Object.entries(rolesById2).map(([
|
|
1424
|
+
var getRolesList = (0, import_toolkit6.createSelector)([getRolesById], (rolesById2) => Object.entries(rolesById2).map(([value, role]) => ({ value, ...role })));
|
|
1417
1425
|
|
|
1418
1426
|
// src/commonSelectors.ts
|
|
1419
1427
|
var getIsEnterprise = (0, import_toolkit7.createSelector)(
|
|
@@ -1474,12 +1482,18 @@ var getUserCapabilities = (0, import_toolkit7.createSelector)([getUserRoles, get
|
|
|
1474
1482
|
});
|
|
1475
1483
|
var getTenantCapabilities = (0, import_toolkit7.createSelector)(
|
|
1476
1484
|
[getFeatures, getOrganization, getIsEnterprise],
|
|
1477
|
-
({
|
|
1485
|
+
({
|
|
1486
|
+
hasAuditlogs: isAuditlogEnabled,
|
|
1487
|
+
hasDeviceConfig: isDeviceConfigEnabled,
|
|
1488
|
+
hasDeviceConnect: isDeviceConnectEnabled,
|
|
1489
|
+
hasMonitor: isMonitorEnabled,
|
|
1490
|
+
isHosted
|
|
1491
|
+
}, { addons = [], plan = PLANS.os.id }, isEnterprise) => {
|
|
1478
1492
|
const canDelta = isEnterprise || plan === PLANS.professional.id;
|
|
1479
1493
|
const hasAuditlogs = isAuditlogEnabled && isEnterprise;
|
|
1480
|
-
const hasDeviceConfig =
|
|
1481
|
-
const hasDeviceConnect =
|
|
1482
|
-
const hasMonitor = isMonitorEnabled && addons.some((addon) => addon.name ===
|
|
1494
|
+
const hasDeviceConfig = addons.some((addon) => addon.name === ADDONS.configure.id && addon.enabled) || isDeviceConfigEnabled && !isHosted;
|
|
1495
|
+
const hasDeviceConnect = addons.some((addon) => addon.name === ADDONS.troubleshoot.id && addon.enabled) || isDeviceConnectEnabled && !isHosted;
|
|
1496
|
+
const hasMonitor = isMonitorEnabled && addons.some((addon) => addon.name === ADDONS.monitor.id && addon.enabled);
|
|
1483
1497
|
return {
|
|
1484
1498
|
canDelta,
|
|
1485
1499
|
canRetry: canDelta,
|
|
@@ -1583,9 +1597,7 @@ var getGroupNames = (0, import_toolkit7.createSelector)([getGroupsById, getUserR
|
|
|
1583
1597
|
});
|
|
1584
1598
|
var getDeviceReportsForUser = (0, import_toolkit7.createSelector)(
|
|
1585
1599
|
[getUserSettings, getCurrentUser, getGlobalSettings, getDevicesById],
|
|
1586
|
-
({ reports }, { id: currentUserId }, globalSettings, devicesById) => {
|
|
1587
|
-
return reports || globalSettings[`${currentUserId}-reports`] || (Object.keys(devicesById).length ? defaultReports : []);
|
|
1588
|
-
}
|
|
1600
|
+
({ reports }, { id: currentUserId }, globalSettings, devicesById) => reports || globalSettings[`${currentUserId}-reports`] || (Object.keys(devicesById).length ? defaultReports : [])
|
|
1589
1601
|
);
|
|
1590
1602
|
var listTypeDeviceIdMap = {
|
|
1591
1603
|
deviceList: getListedDevices,
|
|
@@ -1609,7 +1621,7 @@ var getAuditlogDevice = (0, import_toolkit7.createSelector)([getAuditLogEntry, g
|
|
|
1609
1621
|
var getRelevantRoles = (0, import_toolkit7.createSelector)([getOrganization, getRolesList], ({ service_provider }, roles) => {
|
|
1610
1622
|
if (service_provider) {
|
|
1611
1623
|
return roles.reduce((accu, role) => {
|
|
1612
|
-
if (rolesById[role.
|
|
1624
|
+
if (rolesById[role.value]) {
|
|
1613
1625
|
return accu;
|
|
1614
1626
|
}
|
|
1615
1627
|
accu.push(role);
|
|
@@ -1617,7 +1629,7 @@ var getRelevantRoles = (0, import_toolkit7.createSelector)([getOrganization, get
|
|
|
1617
1629
|
}, Object.values(serviceProviderRolesById));
|
|
1618
1630
|
}
|
|
1619
1631
|
return Object.keys(rolesById).reverse().reduce((accu, key) => {
|
|
1620
|
-
const index = accu.findIndex(({
|
|
1632
|
+
const index = accu.findIndex(({ value }) => value === key);
|
|
1621
1633
|
accu = [accu[index], ...accu.filter((item, itemIndex) => index !== itemIndex)];
|
|
1622
1634
|
return accu;
|
|
1623
1635
|
}, roles);
|
|
@@ -1842,9 +1854,7 @@ var appSlice = (0, import_toolkit8.createSlice)({
|
|
|
1842
1854
|
...action.payload
|
|
1843
1855
|
};
|
|
1844
1856
|
},
|
|
1845
|
-
setEnvironmentData: (state, action) => {
|
|
1846
|
-
return { ...state, ...action.payload };
|
|
1847
|
-
}
|
|
1857
|
+
setEnvironmentData: (state, action) => ({ ...state, ...action.payload })
|
|
1848
1858
|
}
|
|
1849
1859
|
});
|
|
1850
1860
|
var actions = appSlice.actions;
|
|
@@ -2324,9 +2334,7 @@ var onboardingSlice = (0, import_toolkit13.createSlice)({
|
|
|
2324
2334
|
name: sliceName5,
|
|
2325
2335
|
initialState: initialState5,
|
|
2326
2336
|
reducers: {
|
|
2327
|
-
setOnboardingState: (state, action) => {
|
|
2328
|
-
return { ...state, ...action.payload };
|
|
2329
|
-
},
|
|
2337
|
+
setOnboardingState: (state, action) => ({ ...state, ...action.payload }),
|
|
2330
2338
|
setDemoArtifactPort: (state, action) => {
|
|
2331
2339
|
state.demoArtifactPort = action.payload;
|
|
2332
2340
|
},
|
|
@@ -2685,13 +2693,12 @@ var actions_default = {
|
|
|
2685
2693
|
};
|
|
2686
2694
|
|
|
2687
2695
|
// src/store.ts
|
|
2696
|
+
var import_react_redux = require("react-redux");
|
|
2688
2697
|
var import_helpers7 = require("@northern.tech/utils/helpers");
|
|
2689
2698
|
var import_toolkit17 = require("@reduxjs/toolkit");
|
|
2690
2699
|
var { setSnackbar, uploadProgress } = actions_default;
|
|
2691
2700
|
var keys = ["sessionDeploymentChecker", settingsKeys.initialized];
|
|
2692
|
-
var resetEnvironment = () =>
|
|
2693
|
-
keys.map((key) => window.sessionStorage.removeItem(key));
|
|
2694
|
-
};
|
|
2701
|
+
var resetEnvironment = () => keys.forEach((key) => window.sessionStorage.removeItem(key));
|
|
2695
2702
|
resetEnvironment();
|
|
2696
2703
|
var commonErrorFallback = "Please check your connection.";
|
|
2697
2704
|
var commonErrorHandler = (err, errorContext, dispatch, fallback, mightBeAuthRelated = false) => {
|
|
@@ -2717,6 +2724,14 @@ var sessionReducer = (state, action) => {
|
|
|
2717
2724
|
}
|
|
2718
2725
|
return rootReducer(state, action);
|
|
2719
2726
|
};
|
|
2727
|
+
var rejectionLoggerMiddleware = () => (next) => (action) => {
|
|
2728
|
+
if (action.type.endsWith("/rejected")) {
|
|
2729
|
+
const { error } = action;
|
|
2730
|
+
console.error("Rejection in action:", action);
|
|
2731
|
+
console.error(error.stack);
|
|
2732
|
+
}
|
|
2733
|
+
return next(action);
|
|
2734
|
+
};
|
|
2720
2735
|
var getConfiguredStore = (options = {}) => {
|
|
2721
2736
|
const { preloadedState = {}, ...config } = options;
|
|
2722
2737
|
return (0, import_toolkit17.configureStore)({
|
|
@@ -2732,21 +2747,23 @@ var getConfiguredStore = (options = {}) => {
|
|
|
2732
2747
|
ignoredActionPaths: ["uploads", "snackbar", /payload\..*$/],
|
|
2733
2748
|
ignoredPaths: ["app.uploadsById", "app.snackbar", "organization.externalDeviceIntegrations"]
|
|
2734
2749
|
}
|
|
2735
|
-
})
|
|
2750
|
+
}).concat(rejectionLoggerMiddleware)
|
|
2736
2751
|
});
|
|
2737
2752
|
};
|
|
2738
2753
|
var store = getConfiguredStore({
|
|
2739
2754
|
preloadedState: {}
|
|
2740
2755
|
});
|
|
2756
|
+
var useAppDispatch = import_react_redux.useDispatch;
|
|
2741
2757
|
|
|
2742
2758
|
// src/deploymentsSlice/thunks.ts
|
|
2743
2759
|
var import_helpers8 = require("@northern.tech/utils/helpers");
|
|
2760
|
+
var import_tracking = __toESM(require("@northern.tech/utils/tracking"), 1);
|
|
2744
2761
|
var import_toolkit18 = require("@reduxjs/toolkit");
|
|
2745
2762
|
var import_validator = require("validator");
|
|
2746
2763
|
var { receivedDevice, setSnackbar: setSnackbar2 } = actions_default;
|
|
2747
2764
|
var { page: defaultPage, perPage: defaultPerPage } = DEVICE_LIST_DEFAULTS;
|
|
2748
2765
|
var deriveDeploymentGroup = ({ filter = {}, group, groups = [], name }) => group || groups.length === 1 && !(0, import_validator.isUUID)(name) ? groups[0] : filter.name;
|
|
2749
|
-
var transformDeployments = (deployments, deploymentsById) => deployments.sort(import_helpers8.
|
|
2766
|
+
var transformDeployments = (deployments, deploymentsById) => deployments.sort((0, import_helpers8.customSort)(true, "created")).reduce(
|
|
2750
2767
|
(accu, item) => {
|
|
2751
2768
|
const filter = item.filter ?? {};
|
|
2752
2769
|
let deployment = {
|
|
@@ -2797,6 +2814,26 @@ var getDeploymentsByStatus2 = (0, import_toolkit18.createAsyncThunk)(`${sliceNam
|
|
|
2797
2814
|
return Promise.all(tasks);
|
|
2798
2815
|
});
|
|
2799
2816
|
});
|
|
2817
|
+
var isWithinFirstMonth = (expirationDate) => {
|
|
2818
|
+
if (!expirationDate) {
|
|
2819
|
+
return false;
|
|
2820
|
+
}
|
|
2821
|
+
const endOfFirstMonth = new Date(expirationDate);
|
|
2822
|
+
endOfFirstMonth.setMonth(endOfFirstMonth.getMonth() - 11);
|
|
2823
|
+
return endOfFirstMonth > /* @__PURE__ */ new Date();
|
|
2824
|
+
};
|
|
2825
|
+
var trackDeploymentCreation = (totalDeploymentCount, hasDeployments, trial_expiration) => {
|
|
2826
|
+
import_tracking.default.event({ category: "deployments", action: "create" });
|
|
2827
|
+
if (!totalDeploymentCount) {
|
|
2828
|
+
if (!hasDeployments) {
|
|
2829
|
+
import_tracking.default.event({ category: "deployments", action: "create_initial_deployment" });
|
|
2830
|
+
if (isWithinFirstMonth(trial_expiration)) {
|
|
2831
|
+
import_tracking.default.event({ category: "deployments", action: "create_initial_deployment_first_month" });
|
|
2832
|
+
}
|
|
2833
|
+
}
|
|
2834
|
+
import_tracking.default.event({ category: "deployments", action: "create_initial_deployment_user" });
|
|
2835
|
+
}
|
|
2836
|
+
};
|
|
2800
2837
|
var MAX_PREVIOUS_PHASES_COUNT = 5;
|
|
2801
2838
|
var createDeployment = (0, import_toolkit18.createAsyncThunk)(`${sliceName2}/createDeployment`, ({ newDeployment, hasNewRetryDefault = false }, { dispatch, getState }) => {
|
|
2802
2839
|
let request;
|
|
@@ -2807,6 +2844,9 @@ var createDeployment = (0, import_toolkit18.createAsyncThunk)(`${sliceName2}/cre
|
|
|
2807
2844
|
} else {
|
|
2808
2845
|
request = general_api_default.post(`${deploymentsApiUrl}/deployments`, newDeployment);
|
|
2809
2846
|
}
|
|
2847
|
+
const totalDeploymentCount = Object.values(getDeploymentsByStatus(getState())).reduce((accu, item) => accu + item.total, 0);
|
|
2848
|
+
const { hasDeployments } = getGlobalSettings(getState());
|
|
2849
|
+
const { trial_expiration } = getOrganization(getState());
|
|
2810
2850
|
return request.catch((err) => commonErrorHandler(err, "Error creating deployment.", dispatch)).then((data) => {
|
|
2811
2851
|
const lastslashindex = data.headers.location.lastIndexOf("/");
|
|
2812
2852
|
const deploymentId = data.headers.location.substring(lastslashindex + 1);
|
|
@@ -2821,6 +2861,7 @@ var createDeployment = (0, import_toolkit18.createAsyncThunk)(`${sliceName2}/cre
|
|
|
2821
2861
|
dispatch(getSingleDeployment(deploymentId)),
|
|
2822
2862
|
dispatch(setSnackbar2("Deployment created successfully", TIMEOUTS.fiveSeconds))
|
|
2823
2863
|
];
|
|
2864
|
+
trackDeploymentCreation(totalDeploymentCount, hasDeployments, trial_expiration);
|
|
2824
2865
|
const { canManageUsers } = getUserCapabilities(getState());
|
|
2825
2866
|
if (canManageUsers) {
|
|
2826
2867
|
const { phases, retries } = newDeployment;
|
|
@@ -3495,7 +3536,7 @@ var getDevicesByStatus2 = (0, import_toolkit19.createAsyncThunk)(`${sliceName3}/
|
|
|
3495
3536
|
page = defaultPage2,
|
|
3496
3537
|
perPage = defaultPerPage2,
|
|
3497
3538
|
sortOptions = [],
|
|
3498
|
-
selectedAttributes =
|
|
3539
|
+
selectedAttributes = getSelectedDeviceAttribute(getState())
|
|
3499
3540
|
} = options;
|
|
3500
3541
|
const state = getState();
|
|
3501
3542
|
const { applicableFilters, filterTerms } = convertDeviceListStateToFilters({
|
|
@@ -3608,7 +3649,6 @@ var getReportingLimits = (0, import_toolkit19.createAsyncThunk)(
|
|
|
3608
3649
|
})
|
|
3609
3650
|
);
|
|
3610
3651
|
var ensureVersionString = (software, fallback) => software.length && software !== "artifact_name" ? software.endsWith(".version") ? software : `${software}.version` : fallback;
|
|
3611
|
-
var REPORT_CHART_SIZE_LIMIT = 6;
|
|
3612
3652
|
var getSingleReportData = (reportConfig, groups) => {
|
|
3613
3653
|
const { attribute, group, software = "" } = reportConfig;
|
|
3614
3654
|
const filters = [{ key: "status", scope: "identity", operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: "accepted" }];
|
|
@@ -3688,6 +3728,13 @@ var getDeviceConnect = (0, import_toolkit19.createAsyncThunk)(
|
|
|
3688
3728
|
({ data }) => Promise.all([dispatch(actions3.receivedDevice({ connect_status: data.status, connect_updated_ts: data.updated_ts, id })), Promise.resolve(data)])
|
|
3689
3729
|
)
|
|
3690
3730
|
);
|
|
3731
|
+
var updateTypeMap = { deploymentUpdate: "check-update", inventoryUpdate: "send-inventory" };
|
|
3732
|
+
var triggerDeviceUpdate = (0, import_toolkit19.createAsyncThunk)(
|
|
3733
|
+
`${sliceName3}/triggerDeviceUpdate`,
|
|
3734
|
+
({ id, type }, { dispatch }) => general_api_default.post(`${deviceConnect}/devices/${id}/${updateTypeMap[type] ?? updateTypeMap.deploymentUpdate}`).then(
|
|
3735
|
+
() => new Promise((resolve) => setTimeout(() => resolve(dispatch(getDeviceById2(id))), TIMEOUTS.threeSeconds))
|
|
3736
|
+
)
|
|
3737
|
+
);
|
|
3691
3738
|
var getSessionDetails = (0, import_toolkit19.createAsyncThunk)(`${sliceName3}/getSessionDetails`, ({ sessionId, deviceId, userId, startDate, endDate }) => {
|
|
3692
3739
|
const { start: startUnix, end: endUnix } = (0, import_helpers9.dateRangeToUnix)(startDate, endDate);
|
|
3693
3740
|
const createdAfter = startDate ? `&created_after=${startUnix}` : "";
|
|
@@ -3790,12 +3837,12 @@ var deleteAuthset = (0, import_toolkit19.createAsyncThunk)(
|
|
|
3790
3837
|
);
|
|
3791
3838
|
var preauthDevice = (0, import_toolkit19.createAsyncThunk)(
|
|
3792
3839
|
`${sliceName3}/preauthDevice`,
|
|
3793
|
-
(authset, { dispatch }) => general_api_default.post(`${deviceAuthV2}/devices`, authset).catch((err) => {
|
|
3840
|
+
(authset, { dispatch, rejectWithValue }) => general_api_default.post(`${deviceAuthV2}/devices`, authset).then(() => Promise.resolve(dispatch(setSnackbar3("Device was successfully added to the preauthorization list", TIMEOUTS.fiveSeconds)))).catch((err) => {
|
|
3794
3841
|
if (err.response.status === 409) {
|
|
3795
|
-
return
|
|
3842
|
+
return rejectWithValue("A device with a matching identity data set already exists");
|
|
3796
3843
|
}
|
|
3797
3844
|
return commonErrorHandler(err, "The device could not be added:", dispatch);
|
|
3798
|
-
})
|
|
3845
|
+
})
|
|
3799
3846
|
);
|
|
3800
3847
|
var decommissionDevice = (0, import_toolkit19.createAsyncThunk)(
|
|
3801
3848
|
`${sliceName3}/decommissionDevice`,
|
|
@@ -4012,16 +4059,17 @@ var getDeviceMonitorConfig = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4012
4059
|
);
|
|
4013
4060
|
var changeNotificationSetting = (0, import_toolkit20.createAsyncThunk)(
|
|
4014
4061
|
`${sliceName4}/changeNotificationSetting`,
|
|
4015
|
-
({ enabled, channel = alertChannels.email }, { dispatch }) => {
|
|
4016
|
-
|
|
4017
|
-
(
|
|
4018
|
-
|
|
4019
|
-
|
|
4020
|
-
|
|
4021
|
-
);
|
|
4022
|
-
}
|
|
4062
|
+
({ enabled, channel = alertChannels.email }, { dispatch }) => general_api_default.put(`${monitorApiUrlv1}/settings/global/channel/alerts/${channel}/status`, { enabled }).catch((err) => commonErrorHandler(err, `${enabled ? "En" : "Dis"}abling ${channel} alerts failed:`, dispatch)).then(
|
|
4063
|
+
() => Promise.all([
|
|
4064
|
+
dispatch(actions4.changeAlertChannel({ channel, enabled })),
|
|
4065
|
+
dispatch(actions_default.setSnackbar(`Successfully ${enabled ? "en" : "dis"}abled ${channel} alerts`, TIMEOUTS.fiveSeconds))
|
|
4066
|
+
])
|
|
4067
|
+
)
|
|
4023
4068
|
);
|
|
4024
4069
|
|
|
4070
|
+
// src/usersSlice/thunks.ts
|
|
4071
|
+
var import_helptips = require("@northern.tech/common-ui/helptips");
|
|
4072
|
+
|
|
4025
4073
|
// src/api/users-api.ts
|
|
4026
4074
|
var import_axios3 = __toESM(require("axios"), 1);
|
|
4027
4075
|
var Api2 = {
|
|
@@ -4055,7 +4103,7 @@ var handleLoginError = (err, { token2fa: has2FA, password }, rejectWithValue) =>
|
|
|
4055
4103
|
}
|
|
4056
4104
|
const twoFAError = is2FABackend ? " and verification code" : "";
|
|
4057
4105
|
const errorMessage = `There was a problem logging in. Please check your email${twoFAError ? "," : " and"} password${twoFAError}. If you still have problems, contact an administrator.`;
|
|
4058
|
-
return Promise.reject(dispatch(setSnackbar4((0, import_helpers10.preformatWithRequestID)(err.response, errorMessage),
|
|
4106
|
+
return Promise.reject(dispatch(setSnackbar4({ message: (0, import_helpers10.preformatWithRequestID)(err.response, errorMessage), action: "Copy to clipboard" })));
|
|
4059
4107
|
};
|
|
4060
4108
|
var loginUser = (0, import_toolkit21.createAsyncThunk)(
|
|
4061
4109
|
`${sliceName8}/loginUser`,
|
|
@@ -4079,19 +4127,16 @@ var loginUser = (0, import_toolkit21.createAsyncThunk)(
|
|
|
4079
4127
|
const expiresAt = stayLoggedIn ? void 0 : now.toISOString();
|
|
4080
4128
|
setSessionInfo({ token, expiresAt });
|
|
4081
4129
|
cookies3.remove("JWT", { path: "/" });
|
|
4082
|
-
return (
|
|
4083
|
-
|
|
4084
|
-
Promise.
|
|
4085
|
-
|
|
4086
|
-
|
|
4087
|
-
|
|
4088
|
-
window.
|
|
4089
|
-
|
|
4090
|
-
|
|
4091
|
-
|
|
4092
|
-
return Promise.resolve(dispatch(actions8.successfullyLoggedIn({ expiresAt, token })));
|
|
4093
|
-
})
|
|
4094
|
-
);
|
|
4130
|
+
return dispatch(getUser(OWN_USER_ID)).unwrap().catch((e) => {
|
|
4131
|
+
cleanUp();
|
|
4132
|
+
return Promise.reject(dispatch(setSnackbar4((0, import_helpers10.extractErrorMessage)(e))));
|
|
4133
|
+
}).then(() => {
|
|
4134
|
+
window.sessionStorage.removeItem("pendings-redirect");
|
|
4135
|
+
if (window.location.pathname !== "/ui/") {
|
|
4136
|
+
window.location.replace("/ui/");
|
|
4137
|
+
}
|
|
4138
|
+
return Promise.resolve(dispatch(actions8.successfullyLoggedIn({ expiresAt, token })));
|
|
4139
|
+
});
|
|
4095
4140
|
})
|
|
4096
4141
|
);
|
|
4097
4142
|
var logoutUser = (0, import_toolkit21.createAsyncThunk)(`${sliceName8}/logoutUser`, (_, { dispatch, getState }) => {
|
|
@@ -4109,6 +4154,7 @@ var switchUserOrganization = (0, import_toolkit21.createAsyncThunk)(`${sliceName
|
|
|
4109
4154
|
return Promise.reject();
|
|
4110
4155
|
}
|
|
4111
4156
|
return general_api_default.get(`${useradmApiUrlv1}/users/tenants/${tenantId}/token`).then(({ data: token }) => {
|
|
4157
|
+
window.sessionStorage.setItem("tenantChanged", "true");
|
|
4112
4158
|
setSessionInfo({ ...getSessionInfo(), token });
|
|
4113
4159
|
window.location.reload();
|
|
4114
4160
|
});
|
|
@@ -4149,11 +4195,18 @@ var verify2FA = (0, import_toolkit21.createAsyncThunk)(
|
|
|
4149
4195
|
);
|
|
4150
4196
|
var getUserList = (0, import_toolkit21.createAsyncThunk)(
|
|
4151
4197
|
`${sliceName8}/getUserList`,
|
|
4152
|
-
(_, { dispatch }) => general_api_default.get(`${useradmApiUrlv1}/users`).then((res) => {
|
|
4153
|
-
const
|
|
4154
|
-
|
|
4155
|
-
|
|
4156
|
-
|
|
4198
|
+
(_, { dispatch, getState }) => general_api_default.get(`${useradmApiUrlv1}/users`).then((res) => {
|
|
4199
|
+
const currentUsersById = getUsersById(getState());
|
|
4200
|
+
const users = res.data.reduce(
|
|
4201
|
+
(accu, item) => {
|
|
4202
|
+
accu[item.id] = {
|
|
4203
|
+
...accu[item.id],
|
|
4204
|
+
...item
|
|
4205
|
+
};
|
|
4206
|
+
return accu;
|
|
4207
|
+
},
|
|
4208
|
+
{ ...currentUsersById }
|
|
4209
|
+
);
|
|
4157
4210
|
return dispatch(actions8.receivedUserList(users));
|
|
4158
4211
|
}).catch((err) => commonErrorHandler(err, `Users couldn't be loaded.`, dispatch, commonErrorFallback))
|
|
4159
4212
|
);
|
|
@@ -4162,9 +4215,7 @@ var getUser = (0, import_toolkit21.createAsyncThunk)(
|
|
|
4162
4215
|
(id, { dispatch, rejectWithValue }) => general_api_default.get(`${useradmApiUrlv1}/users/${id}`).then(
|
|
4163
4216
|
({ data: user }) => Promise.all([
|
|
4164
4217
|
dispatch(actions8.receivedUser(user)),
|
|
4165
|
-
// @ts-ignore
|
|
4166
4218
|
dispatch(setHideAnnouncement({ shouldHide: false, userId: user.id })),
|
|
4167
|
-
// @ts-ignore
|
|
4168
4219
|
dispatch(updateUserColumnSettings({ currentUserId: user.id })),
|
|
4169
4220
|
user
|
|
4170
4221
|
])
|
|
@@ -4211,10 +4262,7 @@ var createUser = (0, import_toolkit21.createAsyncThunk)(
|
|
|
4211
4262
|
);
|
|
4212
4263
|
var removeUser = (0, import_toolkit21.createAsyncThunk)(
|
|
4213
4264
|
`${sliceName8}/removeUser`,
|
|
4214
|
-
(userId, { dispatch }) => (
|
|
4215
|
-
// @ts-ignore
|
|
4216
|
-
general_api_default.delete(`${useradmApiUrlv1}/users/${userId}`).then(() => Promise.all([dispatch(actions8.removedUser(userId)), dispatch(getUserList()), dispatch(setSnackbar4(userActions.remove.successMessage))])).catch((err) => userActionErrorHandler(err, "remove", dispatch))
|
|
4217
|
-
)
|
|
4265
|
+
(userId, { dispatch }) => general_api_default.delete(`${useradmApiUrlv1}/users/${userId}`).then(() => Promise.all([dispatch(actions8.removedUser(userId)), dispatch(getUserList()), dispatch(setSnackbar4(userActions.remove.successMessage))])).catch((err) => userActionErrorHandler(err, "remove", dispatch))
|
|
4218
4266
|
);
|
|
4219
4267
|
var editUser = (0, import_toolkit21.createAsyncThunk)(
|
|
4220
4268
|
`${sliceName8}/editUser`,
|
|
@@ -4235,7 +4283,7 @@ var enableUser2fa = (0, import_toolkit21.createAsyncThunk)(
|
|
|
4235
4283
|
);
|
|
4236
4284
|
var disableUser2fa = (0, import_toolkit21.createAsyncThunk)(
|
|
4237
4285
|
`${sliceName8}/disableUser2fa`,
|
|
4238
|
-
(userId = OWN_USER_ID, { dispatch }) => general_api_default.post(`${useradmApiUrlv1}/users/${userId}/2fa/disable`).catch((err) => commonErrorHandler(err, `There was an error disabling Two Factor authentication for the user.`, dispatch)).then(() => Promise.
|
|
4286
|
+
(userId = OWN_USER_ID, { dispatch }) => general_api_default.post(`${useradmApiUrlv1}/users/${userId}/2fa/disable`).catch((err) => commonErrorHandler(err, `There was an error disabling Two Factor authentication for the user.`, dispatch)).then(() => Promise.all([dispatch(getUser(userId)), dispatch(actions8.receivedQrCode(null))]))
|
|
4239
4287
|
);
|
|
4240
4288
|
var mapHttpPermission = (permission) => Object.entries(uiPermissionsByArea).reduce(
|
|
4241
4289
|
(accu, [area, definition]) => {
|
|
@@ -4388,7 +4436,6 @@ var getPermissionSets = (0, import_toolkit21.createAsyncThunk)(
|
|
|
4388
4436
|
accu[permissionSet.name] = permissionSetObject;
|
|
4389
4437
|
return accu;
|
|
4390
4438
|
},
|
|
4391
|
-
// @ts-ignore
|
|
4392
4439
|
{ ...getState().users.permissionSetsById }
|
|
4393
4440
|
);
|
|
4394
4441
|
return Promise.all([dispatch(actions8.receivedPermissionSets(permissionSets)), permissionSets]);
|
|
@@ -4481,7 +4528,6 @@ var transformRoleDataToRole = (roleData, roleState = {}) => {
|
|
|
4481
4528
|
role: {
|
|
4482
4529
|
...emptyRole,
|
|
4483
4530
|
name,
|
|
4484
|
-
// @ts-ignore
|
|
4485
4531
|
description: description ? description : roleState.description,
|
|
4486
4532
|
uiPermissions: {
|
|
4487
4533
|
...emptyUiPermissions,
|
|
@@ -4524,10 +4570,7 @@ var editRole = (0, import_toolkit21.createAsyncThunk)(`${sliceName8}/editRole`,
|
|
|
4524
4570
|
});
|
|
4525
4571
|
var removeRole = (0, import_toolkit21.createAsyncThunk)(
|
|
4526
4572
|
`${sliceName8}/removeRole`,
|
|
4527
|
-
(roleId, { dispatch }) => (
|
|
4528
|
-
// @ts-ignore
|
|
4529
|
-
general_api_default.delete(`${useradmApiUrlv2}/roles/${roleId}`).then(() => Promise.all([dispatch(actions8.removedRole(roleId)), dispatch(getRoles()), dispatch(setSnackbar4(roleActions.remove.successMessage))])).catch((err) => roleActionErrorHandler(err, "remove", dispatch))
|
|
4530
|
-
)
|
|
4573
|
+
(roleId, { dispatch }) => general_api_default.delete(`${useradmApiUrlv2}/roles/${roleId}`).then(() => Promise.all([dispatch(actions8.removedRole(roleId)), dispatch(getRoles()), dispatch(setSnackbar4(roleActions.remove.successMessage))])).catch((err) => roleActionErrorHandler(err, "remove", dispatch))
|
|
4531
4574
|
);
|
|
4532
4575
|
var getGlobalSettings2 = (0, import_toolkit21.createAsyncThunk)(
|
|
4533
4576
|
`${sliceName8}/getGlobalSettings`,
|
|
@@ -4538,7 +4581,6 @@ var getGlobalSettings2 = (0, import_toolkit21.createAsyncThunk)(
|
|
|
4538
4581
|
);
|
|
4539
4582
|
var saveGlobalSettings = (0, import_toolkit21.createAsyncThunk)(
|
|
4540
4583
|
`${sliceName8}/saveGlobalSettings`,
|
|
4541
|
-
// @ts-ignore
|
|
4542
4584
|
({ beOptimistic = false, notify = false, ...settings }, { dispatch, getState }) => {
|
|
4543
4585
|
if (!window.sessionStorage.getItem(settingsKeys.initialized) && !beOptimistic) {
|
|
4544
4586
|
return;
|
|
@@ -4584,11 +4626,9 @@ var saveUserSettings = (0, import_toolkit21.createAsyncThunk)(`${sliceName8}/sav
|
|
|
4584
4626
|
const tooltipState = getTooltipsState(getState());
|
|
4585
4627
|
const updatedSettings = {
|
|
4586
4628
|
...userSettings,
|
|
4587
|
-
// @ts-ignore
|
|
4588
4629
|
...settings,
|
|
4589
4630
|
onboarding: {
|
|
4590
4631
|
...onboardingState,
|
|
4591
|
-
// @ts-ignore
|
|
4592
4632
|
...settings.onboarding
|
|
4593
4633
|
},
|
|
4594
4634
|
tooltips: tooltipState
|
|
@@ -4632,10 +4672,7 @@ var generateToken = (0, import_toolkit21.createAsyncThunk)(
|
|
|
4632
4672
|
);
|
|
4633
4673
|
var revokeToken = (0, import_toolkit21.createAsyncThunk)(
|
|
4634
4674
|
`${sliceName8}/revokeToken`,
|
|
4635
|
-
(token, { dispatch }) => (
|
|
4636
|
-
// @ts-ignore
|
|
4637
|
-
general_api_default.delete(`${useradmApiUrlv1}/settings/tokens/${token.id}`).then(() => Promise.resolve(dispatch(getTokens())))
|
|
4638
|
-
)
|
|
4675
|
+
(token, { dispatch }) => general_api_default.delete(`${useradmApiUrlv1}/settings/tokens/${token.id}`).then(() => Promise.resolve(dispatch(getTokens())))
|
|
4639
4676
|
);
|
|
4640
4677
|
var setTooltipReadState = (0, import_toolkit21.createAsyncThunk)(`${sliceName8}/setTooltipReadState`, ({ persist, ...remainder }, { dispatch }) => {
|
|
4641
4678
|
let tasks = [dispatch(actions8.setTooltipState(remainder))];
|
|
@@ -4644,31 +4681,28 @@ var setTooltipReadState = (0, import_toolkit21.createAsyncThunk)(`${sliceName8}/
|
|
|
4644
4681
|
}
|
|
4645
4682
|
return Promise.all(tasks);
|
|
4646
4683
|
});
|
|
4647
|
-
var setAllTooltipsReadState = (0, import_toolkit21.createAsyncThunk)(`${sliceName8}/toggleHelptips`, (
|
|
4648
|
-
const updatedTips =
|
|
4684
|
+
var setAllTooltipsReadState = (0, import_toolkit21.createAsyncThunk)(`${sliceName8}/toggleHelptips`, (readState = READ_STATES.read, { dispatch }) => {
|
|
4685
|
+
const updatedTips = Object.keys(import_helptips.HELPTOOLTIPS).reduce((accu, id) => ({ ...accu, [id]: { readState } }), {});
|
|
4649
4686
|
return Promise.resolve(dispatch(actions8.setTooltipsState(updatedTips))).then(() => dispatch(saveUserSettings()));
|
|
4650
4687
|
});
|
|
4651
4688
|
var submitFeedback = (0, import_toolkit21.createAsyncThunk)(
|
|
4652
4689
|
`${sliceName8}/submitFeedback`,
|
|
4653
|
-
|
|
4654
|
-
|
|
4655
|
-
|
|
4656
|
-
|
|
4657
|
-
|
|
4658
|
-
|
|
4659
|
-
|
|
4660
|
-
|
|
4661
|
-
setTimeout(() => dispatch(actions8.setShowFeedbackDialog(false)), TIMEOUTS.threeSeconds);
|
|
4662
|
-
});
|
|
4663
|
-
}
|
|
4690
|
+
({ satisfaction, feedback, ...meta }, { dispatch }) => general_api_default.post(`${tenantadmApiUrlv2}/contact/support`, {
|
|
4691
|
+
subject: "feedback submission",
|
|
4692
|
+
body: JSON.stringify({ feedback, satisfaction, meta })
|
|
4693
|
+
}).then(() => {
|
|
4694
|
+
const today = /* @__PURE__ */ new Date();
|
|
4695
|
+
dispatch(saveUserSettings({ feedbackCollectedAt: today.toISOString().split("T")[0] }));
|
|
4696
|
+
setTimeout(() => dispatch(actions8.setShowFeedbackDialog(false)), TIMEOUTS.threeSeconds);
|
|
4697
|
+
})
|
|
4664
4698
|
);
|
|
4665
4699
|
|
|
4666
|
-
// src/deploymentdevicehook.
|
|
4700
|
+
// src/deploymentdevicehook.ts
|
|
4667
4701
|
var import_validator2 = require("validator");
|
|
4668
4702
|
var useDeploymentDevice = (deploymentName) => {
|
|
4669
4703
|
const isLoading = (0, import_react.useRef)(false);
|
|
4670
|
-
const dispatch = (
|
|
4671
|
-
const devicesById = (0,
|
|
4704
|
+
const dispatch = useAppDispatch();
|
|
4705
|
+
const devicesById = (0, import_react_redux2.useSelector)(getDevicesById);
|
|
4672
4706
|
const hasDeviceInfo = !!devicesById[deploymentName];
|
|
4673
4707
|
(0, import_react.useEffect)(() => {
|
|
4674
4708
|
if (isLoading.current) {
|