@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
package/dist/appSlice/thunks.cjs
CHANGED
|
@@ -71,28 +71,28 @@ var PLANS = {
|
|
|
71
71
|
id: "os",
|
|
72
72
|
name: "Basic",
|
|
73
73
|
offer: true,
|
|
74
|
-
price: "$32/month",
|
|
74
|
+
price: "$32 / month",
|
|
75
75
|
deviceCount: startingDeviceCount.os,
|
|
76
|
-
offerprice: "$23/month for first 50 devices",
|
|
76
|
+
offerprice: "$23 / month for first 50 devices",
|
|
77
77
|
price2: "for first 6 months;\n$29/month thereafter",
|
|
78
|
-
features: ["
|
|
78
|
+
features: ["Access to core features of Mender", "Basic support"]
|
|
79
79
|
},
|
|
80
80
|
professional: {
|
|
81
81
|
id: "professional",
|
|
82
82
|
name: "Professional",
|
|
83
83
|
offer: true,
|
|
84
|
-
price: "$269/month",
|
|
84
|
+
price: "$269 / month",
|
|
85
85
|
deviceCount: startingDeviceCount.professional,
|
|
86
|
-
offerprice: "$200/month for first 50 devices",
|
|
86
|
+
offerprice: "$200 / month for first 50 devices",
|
|
87
87
|
price2: "for first 6 months;\n$249/month thereafter",
|
|
88
|
-
features: ["
|
|
88
|
+
features: ["Advanced OTA features", "Higher priority support"]
|
|
89
89
|
},
|
|
90
90
|
enterprise: {
|
|
91
91
|
id: "enterprise",
|
|
92
92
|
name: "Enterprise",
|
|
93
93
|
price: "Custom pricing",
|
|
94
|
-
deviceCount: "
|
|
95
|
-
features: ["
|
|
94
|
+
deviceCount: "Unlimited devices",
|
|
95
|
+
features: ["All Mender features", "Advanced security features", "SLA-backed support"]
|
|
96
96
|
}
|
|
97
97
|
};
|
|
98
98
|
var ADDONS = {
|
|
@@ -563,6 +563,7 @@ var DEVICE_STATES = {
|
|
|
563
563
|
rejected: "rejected"
|
|
564
564
|
};
|
|
565
565
|
var geoAttributes = ["geo-lat", "geo-lon"].map((attribute) => ({ attribute, scope: "inventory" }));
|
|
566
|
+
var REPORT_CHART_SIZE_LIMIT = 6;
|
|
566
567
|
|
|
567
568
|
// src/monitorSlice/constants.ts
|
|
568
569
|
var alertChannels = { email: "email" };
|
|
@@ -644,13 +645,16 @@ var SSO_TYPES = {
|
|
|
644
645
|
configDetails: [{ key: "startURL", label: "Start Url", getValue: getOidcStartUrl }]
|
|
645
646
|
}
|
|
646
647
|
};
|
|
647
|
-
var
|
|
648
|
-
{ title: "Artifact", queryParameter: "object_type", value: "artifact" },
|
|
649
|
-
{ title: "Deployment", queryParameter: "object_deployment_name", value: "deployment" },
|
|
650
|
-
{ title: "Device", queryParameter: "object_id", value: "device" },
|
|
651
|
-
{ title: "
|
|
652
|
-
|
|
653
|
-
|
|
648
|
+
var auditlogTypes = {
|
|
649
|
+
artifact: { title: "Artifact", queryParameter: "object_type", value: "artifact" },
|
|
650
|
+
deployment: { title: "Deployment", queryParameter: "object_deployment_name", value: "deployment" },
|
|
651
|
+
device: { title: "Device", queryParameter: "object_id", value: "device" },
|
|
652
|
+
user_access_token: { title: "Personal Access Token", queryParameter: "user_access_token", value: "user_access_token" },
|
|
653
|
+
user: { title: "User", queryParameter: "object_id", value: "user" },
|
|
654
|
+
tenant: { title: "Tenant", queryParameter: "object_id", value: "tenant" }
|
|
655
|
+
};
|
|
656
|
+
var AUDIT_LOGS_TYPES = [auditlogTypes.artifact, auditlogTypes.deployment, auditlogTypes.device, auditlogTypes.user_access_token, auditlogTypes.user];
|
|
657
|
+
var SP_AUDIT_LOGS_TYPES = [auditlogTypes.user, auditlogTypes.tenant];
|
|
654
658
|
var emptyWebhook = {
|
|
655
659
|
description: "",
|
|
656
660
|
enabled: true,
|
|
@@ -783,7 +787,7 @@ var uiPermissionsByArea = {
|
|
|
783
787
|
explanation: "Granting access to the audit log will allow tracing changes to devices, releases and user accounts, as well as providing information about deployments.",
|
|
784
788
|
key: "auditlog",
|
|
785
789
|
uiPermissions: [uiPermissionsById.read],
|
|
786
|
-
title: "System
|
|
790
|
+
title: "System Audit Log"
|
|
787
791
|
},
|
|
788
792
|
deployments: {
|
|
789
793
|
endpoints: [
|
|
@@ -934,7 +938,7 @@ var serviceProviderRolesById = {
|
|
|
934
938
|
},
|
|
935
939
|
readOnly: {
|
|
936
940
|
name: "Read access",
|
|
937
|
-
value: staticRolesByName.
|
|
941
|
+
value: staticRolesByName.readOnly,
|
|
938
942
|
description: "This role can see all linked organizations but cannot make any changes",
|
|
939
943
|
permissions: [],
|
|
940
944
|
uiPermissions: {
|
|
@@ -1266,7 +1270,7 @@ var getGroups = (0, import_toolkit3.createSelector)([getGroupsById], (groupsById
|
|
|
1266
1270
|
(accu, [groupname, group]) => {
|
|
1267
1271
|
const name = groupname === UNGROUPED_GROUP.id ? UNGROUPED_GROUP.name : groupname;
|
|
1268
1272
|
const groupItem = { ...group, groupId: name, name: groupname };
|
|
1269
|
-
if (group.filters
|
|
1273
|
+
if (group.filters?.length > 0) {
|
|
1270
1274
|
if (groupname !== UNGROUPED_GROUP.id) {
|
|
1271
1275
|
accu.dynamic.push(groupItem);
|
|
1272
1276
|
} else {
|
|
@@ -1339,14 +1343,15 @@ var getAuditLogEntry = (0, import_toolkit4.createSelector)([getAuditLog, getAudi
|
|
|
1339
1343
|
// src/utils.ts
|
|
1340
1344
|
var import_helpers3 = require("@northern.tech/utils/helpers");
|
|
1341
1345
|
var filterProcessors = {
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1346
|
+
[DEVICE_FILTERING_OPTIONS.$gt.key]: (val) => Number(val) || val,
|
|
1347
|
+
[DEVICE_FILTERING_OPTIONS.$gte.key]: (val) => Number(val) || val,
|
|
1348
|
+
[DEVICE_FILTERING_OPTIONS.$lt.key]: (val) => Number(val) || val,
|
|
1349
|
+
[DEVICE_FILTERING_OPTIONS.$lte.key]: (val) => Number(val) || val,
|
|
1350
|
+
[DEVICE_FILTERING_OPTIONS.$ltne.key]: (val) => Number(val) || val,
|
|
1351
|
+
[DEVICE_FILTERING_OPTIONS.$in.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
1352
|
+
[DEVICE_FILTERING_OPTIONS.$nin.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
1353
|
+
[DEVICE_FILTERING_OPTIONS.$exists.key]: import_helpers3.yes,
|
|
1354
|
+
[DEVICE_FILTERING_OPTIONS.$nexists.key]: () => false
|
|
1350
1355
|
};
|
|
1351
1356
|
var filterAliases = {
|
|
1352
1357
|
$nexists: { alias: DEVICE_FILTERING_OPTIONS.$exists.key, value: false }
|
|
@@ -1390,14 +1395,12 @@ var filtersFilter = (item, index, array) => {
|
|
|
1390
1395
|
const firstIndex = array.findIndex((filter) => filterCompare(filter, item));
|
|
1391
1396
|
return firstIndex === index;
|
|
1392
1397
|
};
|
|
1393
|
-
var listItemMapper = (byId, ids, { defaultObject = {}, cutOffSize = DEVICE_LIST_MAXIMUM_LENGTH }) => {
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
}, []);
|
|
1400
|
-
};
|
|
1398
|
+
var listItemMapper = (byId, ids, { defaultObject = {}, cutOffSize = DEVICE_LIST_MAXIMUM_LENGTH }) => ids.slice(0, cutOffSize).reduce((accu, id) => {
|
|
1399
|
+
if (id && byId[id]) {
|
|
1400
|
+
accu.push({ ...defaultObject, ...byId[id] });
|
|
1401
|
+
}
|
|
1402
|
+
return accu;
|
|
1403
|
+
}, []);
|
|
1401
1404
|
var mergePermissions = (existingPermissions = { ...emptyUiPermissions }, addedPermissions) => Object.entries(existingPermissions).reduce(
|
|
1402
1405
|
(accu, [key, value]) => {
|
|
1403
1406
|
let values;
|
|
@@ -1470,8 +1473,13 @@ var getTooltipsById = (state) => state.users.tooltips.byId;
|
|
|
1470
1473
|
var getGlobalSettings = (state) => state.users.globalSettings;
|
|
1471
1474
|
var getCurrentUserId = (state) => state.users.currentUser;
|
|
1472
1475
|
var getUsersById = (state) => state.users.byId;
|
|
1476
|
+
var getUsersList = (0, import_toolkit6.createSelector)([getUsersById], (usersById) => Object.values(usersById));
|
|
1473
1477
|
var getCurrentUser = (0, import_toolkit6.createSelector)([getUsersById, getCurrentUserId], (usersById, userId) => usersById[userId] ?? {});
|
|
1474
1478
|
var getUserSettings = (state) => state.users.userSettings;
|
|
1479
|
+
var getSelectedDeviceAttribute = (0, import_toolkit6.createSelector)(
|
|
1480
|
+
[getUserSettings],
|
|
1481
|
+
({ columnSelection }) => columnSelection.map((attribute) => ({ attribute: attribute.key, scope: attribute.scope }))
|
|
1482
|
+
);
|
|
1475
1483
|
var getIsDarkMode = (0, import_toolkit6.createSelector)([getUserSettings], ({ mode }) => isDarkMode(mode));
|
|
1476
1484
|
var getShowHelptips = (0, import_toolkit6.createSelector)(
|
|
1477
1485
|
[getTooltipsById],
|
|
@@ -1496,7 +1504,7 @@ var getOfflineThresholdSettings = (0, import_toolkit6.createSelector)([getGlobal
|
|
|
1496
1504
|
interval: offlineThreshold?.interval || DEVICE_ONLINE_CUTOFF.interval,
|
|
1497
1505
|
intervalUnit: offlineThreshold?.intervalUnit || DEVICE_ONLINE_CUTOFF.intervalName
|
|
1498
1506
|
}));
|
|
1499
|
-
var getRolesList = (0, import_toolkit6.createSelector)([getRolesById], (rolesById2) => Object.entries(rolesById2).map(([
|
|
1507
|
+
var getRolesList = (0, import_toolkit6.createSelector)([getRolesById], (rolesById2) => Object.entries(rolesById2).map(([value, role]) => ({ value, ...role })));
|
|
1500
1508
|
|
|
1501
1509
|
// src/commonSelectors.ts
|
|
1502
1510
|
var getIsEnterprise = (0, import_toolkit7.createSelector)(
|
|
@@ -1557,12 +1565,18 @@ var getUserCapabilities = (0, import_toolkit7.createSelector)([getUserRoles, get
|
|
|
1557
1565
|
});
|
|
1558
1566
|
var getTenantCapabilities = (0, import_toolkit7.createSelector)(
|
|
1559
1567
|
[getFeatures, getOrganization, getIsEnterprise],
|
|
1560
|
-
({
|
|
1568
|
+
({
|
|
1569
|
+
hasAuditlogs: isAuditlogEnabled,
|
|
1570
|
+
hasDeviceConfig: isDeviceConfigEnabled,
|
|
1571
|
+
hasDeviceConnect: isDeviceConnectEnabled,
|
|
1572
|
+
hasMonitor: isMonitorEnabled,
|
|
1573
|
+
isHosted
|
|
1574
|
+
}, { addons = [], plan = PLANS.os.id }, isEnterprise) => {
|
|
1561
1575
|
const canDelta = isEnterprise || plan === PLANS.professional.id;
|
|
1562
1576
|
const hasAuditlogs = isAuditlogEnabled && isEnterprise;
|
|
1563
|
-
const hasDeviceConfig =
|
|
1564
|
-
const hasDeviceConnect =
|
|
1565
|
-
const hasMonitor = isMonitorEnabled && addons.some((addon) => addon.name ===
|
|
1577
|
+
const hasDeviceConfig = addons.some((addon) => addon.name === ADDONS.configure.id && addon.enabled) || isDeviceConfigEnabled && !isHosted;
|
|
1578
|
+
const hasDeviceConnect = addons.some((addon) => addon.name === ADDONS.troubleshoot.id && addon.enabled) || isDeviceConnectEnabled && !isHosted;
|
|
1579
|
+
const hasMonitor = isMonitorEnabled && addons.some((addon) => addon.name === ADDONS.monitor.id && addon.enabled);
|
|
1566
1580
|
return {
|
|
1567
1581
|
canDelta,
|
|
1568
1582
|
canRetry: canDelta,
|
|
@@ -1666,9 +1680,7 @@ var getGroupNames = (0, import_toolkit7.createSelector)([getGroupsById, getUserR
|
|
|
1666
1680
|
});
|
|
1667
1681
|
var getDeviceReportsForUser = (0, import_toolkit7.createSelector)(
|
|
1668
1682
|
[getUserSettings, getCurrentUser, getGlobalSettings, getDevicesById],
|
|
1669
|
-
({ reports }, { id: currentUserId }, globalSettings, devicesById) => {
|
|
1670
|
-
return reports || globalSettings[`${currentUserId}-reports`] || (Object.keys(devicesById).length ? defaultReports : []);
|
|
1671
|
-
}
|
|
1683
|
+
({ reports }, { id: currentUserId }, globalSettings, devicesById) => reports || globalSettings[`${currentUserId}-reports`] || (Object.keys(devicesById).length ? defaultReports : [])
|
|
1672
1684
|
);
|
|
1673
1685
|
var listTypeDeviceIdMap = {
|
|
1674
1686
|
deviceList: getListedDevices,
|
|
@@ -1692,7 +1704,7 @@ var getAuditlogDevice = (0, import_toolkit7.createSelector)([getAuditLogEntry, g
|
|
|
1692
1704
|
var getRelevantRoles = (0, import_toolkit7.createSelector)([getOrganization, getRolesList], ({ service_provider }, roles) => {
|
|
1693
1705
|
if (service_provider) {
|
|
1694
1706
|
return roles.reduce((accu, role) => {
|
|
1695
|
-
if (rolesById[role.
|
|
1707
|
+
if (rolesById[role.value]) {
|
|
1696
1708
|
return accu;
|
|
1697
1709
|
}
|
|
1698
1710
|
accu.push(role);
|
|
@@ -1700,7 +1712,7 @@ var getRelevantRoles = (0, import_toolkit7.createSelector)([getOrganization, get
|
|
|
1700
1712
|
}, Object.values(serviceProviderRolesById));
|
|
1701
1713
|
}
|
|
1702
1714
|
return Object.keys(rolesById).reverse().reduce((accu, key) => {
|
|
1703
|
-
const index = accu.findIndex(({
|
|
1715
|
+
const index = accu.findIndex(({ value }) => value === key);
|
|
1704
1716
|
accu = [accu[index], ...accu.filter((item, itemIndex) => index !== itemIndex)];
|
|
1705
1717
|
return accu;
|
|
1706
1718
|
}, roles);
|
|
@@ -1838,9 +1850,7 @@ var appSlice = (0, import_toolkit8.createSlice)({
|
|
|
1838
1850
|
...action.payload
|
|
1839
1851
|
};
|
|
1840
1852
|
},
|
|
1841
|
-
setEnvironmentData: (state, action) => {
|
|
1842
|
-
return { ...state, ...action.payload };
|
|
1843
|
-
}
|
|
1853
|
+
setEnvironmentData: (state, action) => ({ ...state, ...action.payload })
|
|
1844
1854
|
}
|
|
1845
1855
|
});
|
|
1846
1856
|
var actions = appSlice.actions;
|
|
@@ -2215,9 +2225,7 @@ var onboardingSlice = (0, import_toolkit12.createSlice)({
|
|
|
2215
2225
|
name: sliceName5,
|
|
2216
2226
|
initialState: initialState5,
|
|
2217
2227
|
reducers: {
|
|
2218
|
-
setOnboardingState: (state, action) => {
|
|
2219
|
-
return { ...state, ...action.payload };
|
|
2220
|
-
},
|
|
2228
|
+
setOnboardingState: (state, action) => ({ ...state, ...action.payload }),
|
|
2221
2229
|
setDemoArtifactPort: (state, action) => {
|
|
2222
2230
|
state.demoArtifactPort = action.payload;
|
|
2223
2231
|
},
|
|
@@ -2576,13 +2584,12 @@ var actions_default = {
|
|
|
2576
2584
|
};
|
|
2577
2585
|
|
|
2578
2586
|
// src/store.ts
|
|
2587
|
+
var import_react_redux = require("react-redux");
|
|
2579
2588
|
var import_helpers6 = require("@northern.tech/utils/helpers");
|
|
2580
2589
|
var import_toolkit16 = require("@reduxjs/toolkit");
|
|
2581
2590
|
var { setSnackbar, uploadProgress } = actions_default;
|
|
2582
2591
|
var keys = ["sessionDeploymentChecker", settingsKeys.initialized];
|
|
2583
|
-
var resetEnvironment = () =>
|
|
2584
|
-
keys.map((key) => window.sessionStorage.removeItem(key));
|
|
2585
|
-
};
|
|
2592
|
+
var resetEnvironment = () => keys.forEach((key) => window.sessionStorage.removeItem(key));
|
|
2586
2593
|
resetEnvironment();
|
|
2587
2594
|
var commonErrorFallback = "Please check your connection.";
|
|
2588
2595
|
var commonErrorHandler = (err, errorContext, dispatch, fallback, mightBeAuthRelated = false) => {
|
|
@@ -2608,6 +2615,14 @@ var sessionReducer = (state, action) => {
|
|
|
2608
2615
|
}
|
|
2609
2616
|
return rootReducer(state, action);
|
|
2610
2617
|
};
|
|
2618
|
+
var rejectionLoggerMiddleware = () => (next) => (action) => {
|
|
2619
|
+
if (action.type.endsWith("/rejected")) {
|
|
2620
|
+
const { error } = action;
|
|
2621
|
+
console.error("Rejection in action:", action);
|
|
2622
|
+
console.error(error.stack);
|
|
2623
|
+
}
|
|
2624
|
+
return next(action);
|
|
2625
|
+
};
|
|
2611
2626
|
var getConfiguredStore = (options = {}) => {
|
|
2612
2627
|
const { preloadedState = {}, ...config } = options;
|
|
2613
2628
|
return (0, import_toolkit16.configureStore)({
|
|
@@ -2623,7 +2638,7 @@ var getConfiguredStore = (options = {}) => {
|
|
|
2623
2638
|
ignoredActionPaths: ["uploads", "snackbar", /payload\..*$/],
|
|
2624
2639
|
ignoredPaths: ["app.uploadsById", "app.snackbar", "organization.externalDeviceIntegrations"]
|
|
2625
2640
|
}
|
|
2626
|
-
})
|
|
2641
|
+
}).concat(rejectionLoggerMiddleware)
|
|
2627
2642
|
});
|
|
2628
2643
|
};
|
|
2629
2644
|
var store = getConfiguredStore({
|
|
@@ -2632,12 +2647,13 @@ var store = getConfiguredStore({
|
|
|
2632
2647
|
|
|
2633
2648
|
// src/deploymentsSlice/thunks.ts
|
|
2634
2649
|
var import_helpers7 = require("@northern.tech/utils/helpers");
|
|
2650
|
+
var import_tracking = __toESM(require("@northern.tech/utils/tracking"), 1);
|
|
2635
2651
|
var import_toolkit17 = require("@reduxjs/toolkit");
|
|
2636
2652
|
var import_validator = require("validator");
|
|
2637
2653
|
var { receivedDevice, setSnackbar: setSnackbar2 } = actions_default;
|
|
2638
2654
|
var { page: defaultPage, perPage: defaultPerPage } = DEVICE_LIST_DEFAULTS;
|
|
2639
2655
|
var deriveDeploymentGroup = ({ filter = {}, group, groups = [], name }) => group || groups.length === 1 && !(0, import_validator.isUUID)(name) ? groups[0] : filter.name;
|
|
2640
|
-
var transformDeployments = (deployments, deploymentsById) => deployments.sort(import_helpers7.
|
|
2656
|
+
var transformDeployments = (deployments, deploymentsById) => deployments.sort((0, import_helpers7.customSort)(true, "created")).reduce(
|
|
2641
2657
|
(accu, item) => {
|
|
2642
2658
|
const filter = item.filter ?? {};
|
|
2643
2659
|
let deployment = {
|
|
@@ -2688,6 +2704,26 @@ var getDeploymentsByStatus2 = (0, import_toolkit17.createAsyncThunk)(`${sliceNam
|
|
|
2688
2704
|
return Promise.all(tasks);
|
|
2689
2705
|
});
|
|
2690
2706
|
});
|
|
2707
|
+
var isWithinFirstMonth = (expirationDate) => {
|
|
2708
|
+
if (!expirationDate) {
|
|
2709
|
+
return false;
|
|
2710
|
+
}
|
|
2711
|
+
const endOfFirstMonth = new Date(expirationDate);
|
|
2712
|
+
endOfFirstMonth.setMonth(endOfFirstMonth.getMonth() - 11);
|
|
2713
|
+
return endOfFirstMonth > /* @__PURE__ */ new Date();
|
|
2714
|
+
};
|
|
2715
|
+
var trackDeploymentCreation = (totalDeploymentCount, hasDeployments, trial_expiration) => {
|
|
2716
|
+
import_tracking.default.event({ category: "deployments", action: "create" });
|
|
2717
|
+
if (!totalDeploymentCount) {
|
|
2718
|
+
if (!hasDeployments) {
|
|
2719
|
+
import_tracking.default.event({ category: "deployments", action: "create_initial_deployment" });
|
|
2720
|
+
if (isWithinFirstMonth(trial_expiration)) {
|
|
2721
|
+
import_tracking.default.event({ category: "deployments", action: "create_initial_deployment_first_month" });
|
|
2722
|
+
}
|
|
2723
|
+
}
|
|
2724
|
+
import_tracking.default.event({ category: "deployments", action: "create_initial_deployment_user" });
|
|
2725
|
+
}
|
|
2726
|
+
};
|
|
2691
2727
|
var MAX_PREVIOUS_PHASES_COUNT = 5;
|
|
2692
2728
|
var createDeployment = (0, import_toolkit17.createAsyncThunk)(`${sliceName2}/createDeployment`, ({ newDeployment, hasNewRetryDefault = false }, { dispatch, getState }) => {
|
|
2693
2729
|
let request;
|
|
@@ -2698,6 +2734,9 @@ var createDeployment = (0, import_toolkit17.createAsyncThunk)(`${sliceName2}/cre
|
|
|
2698
2734
|
} else {
|
|
2699
2735
|
request = general_api_default.post(`${deploymentsApiUrl}/deployments`, newDeployment);
|
|
2700
2736
|
}
|
|
2737
|
+
const totalDeploymentCount = Object.values(getDeploymentsByStatus(getState())).reduce((accu, item) => accu + item.total, 0);
|
|
2738
|
+
const { hasDeployments } = getGlobalSettings(getState());
|
|
2739
|
+
const { trial_expiration } = getOrganization(getState());
|
|
2701
2740
|
return request.catch((err) => commonErrorHandler(err, "Error creating deployment.", dispatch)).then((data) => {
|
|
2702
2741
|
const lastslashindex = data.headers.location.lastIndexOf("/");
|
|
2703
2742
|
const deploymentId = data.headers.location.substring(lastslashindex + 1);
|
|
@@ -2712,6 +2751,7 @@ var createDeployment = (0, import_toolkit17.createAsyncThunk)(`${sliceName2}/cre
|
|
|
2712
2751
|
dispatch(getSingleDeployment(deploymentId)),
|
|
2713
2752
|
dispatch(setSnackbar2("Deployment created successfully", TIMEOUTS.fiveSeconds))
|
|
2714
2753
|
];
|
|
2754
|
+
trackDeploymentCreation(totalDeploymentCount, hasDeployments, trial_expiration);
|
|
2715
2755
|
const { canManageUsers } = getUserCapabilities(getState());
|
|
2716
2756
|
if (canManageUsers) {
|
|
2717
2757
|
const { phases, retries } = newDeployment;
|
|
@@ -3386,7 +3426,7 @@ var getDevicesByStatus2 = (0, import_toolkit18.createAsyncThunk)(`${sliceName3}/
|
|
|
3386
3426
|
page = defaultPage2,
|
|
3387
3427
|
perPage = defaultPerPage2,
|
|
3388
3428
|
sortOptions = [],
|
|
3389
|
-
selectedAttributes =
|
|
3429
|
+
selectedAttributes = getSelectedDeviceAttribute(getState())
|
|
3390
3430
|
} = options;
|
|
3391
3431
|
const state = getState();
|
|
3392
3432
|
const { applicableFilters, filterTerms } = convertDeviceListStateToFilters({
|
|
@@ -3499,7 +3539,6 @@ var getReportingLimits = (0, import_toolkit18.createAsyncThunk)(
|
|
|
3499
3539
|
})
|
|
3500
3540
|
);
|
|
3501
3541
|
var ensureVersionString = (software, fallback) => software.length && software !== "artifact_name" ? software.endsWith(".version") ? software : `${software}.version` : fallback;
|
|
3502
|
-
var REPORT_CHART_SIZE_LIMIT = 6;
|
|
3503
3542
|
var getSingleReportData = (reportConfig, groups) => {
|
|
3504
3543
|
const { attribute, group, software = "" } = reportConfig;
|
|
3505
3544
|
const filters = [{ key: "status", scope: "identity", operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: "accepted" }];
|
|
@@ -3579,6 +3618,13 @@ var getDeviceConnect = (0, import_toolkit18.createAsyncThunk)(
|
|
|
3579
3618
|
({ data }) => Promise.all([dispatch(actions3.receivedDevice({ connect_status: data.status, connect_updated_ts: data.updated_ts, id })), Promise.resolve(data)])
|
|
3580
3619
|
)
|
|
3581
3620
|
);
|
|
3621
|
+
var updateTypeMap = { deploymentUpdate: "check-update", inventoryUpdate: "send-inventory" };
|
|
3622
|
+
var triggerDeviceUpdate = (0, import_toolkit18.createAsyncThunk)(
|
|
3623
|
+
`${sliceName3}/triggerDeviceUpdate`,
|
|
3624
|
+
({ id, type }, { dispatch }) => general_api_default.post(`${deviceConnect}/devices/${id}/${updateTypeMap[type] ?? updateTypeMap.deploymentUpdate}`).then(
|
|
3625
|
+
() => new Promise((resolve) => setTimeout(() => resolve(dispatch(getDeviceById2(id))), TIMEOUTS.threeSeconds))
|
|
3626
|
+
)
|
|
3627
|
+
);
|
|
3582
3628
|
var getSessionDetails = (0, import_toolkit18.createAsyncThunk)(`${sliceName3}/getSessionDetails`, ({ sessionId, deviceId, userId, startDate, endDate }) => {
|
|
3583
3629
|
const { start: startUnix, end: endUnix } = (0, import_helpers8.dateRangeToUnix)(startDate, endDate);
|
|
3584
3630
|
const createdAfter = startDate ? `&created_after=${startUnix}` : "";
|
|
@@ -3681,12 +3727,12 @@ var deleteAuthset = (0, import_toolkit18.createAsyncThunk)(
|
|
|
3681
3727
|
);
|
|
3682
3728
|
var preauthDevice = (0, import_toolkit18.createAsyncThunk)(
|
|
3683
3729
|
`${sliceName3}/preauthDevice`,
|
|
3684
|
-
(authset, { dispatch }) => general_api_default.post(`${deviceAuthV2}/devices`, authset).catch((err) => {
|
|
3730
|
+
(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) => {
|
|
3685
3731
|
if (err.response.status === 409) {
|
|
3686
|
-
return
|
|
3732
|
+
return rejectWithValue("A device with a matching identity data set already exists");
|
|
3687
3733
|
}
|
|
3688
3734
|
return commonErrorHandler(err, "The device could not be added:", dispatch);
|
|
3689
|
-
})
|
|
3735
|
+
})
|
|
3690
3736
|
);
|
|
3691
3737
|
var decommissionDevice = (0, import_toolkit18.createAsyncThunk)(
|
|
3692
3738
|
`${sliceName3}/decommissionDevice`,
|
|
@@ -3903,16 +3949,17 @@ var getDeviceMonitorConfig = (0, import_toolkit19.createAsyncThunk)(
|
|
|
3903
3949
|
);
|
|
3904
3950
|
var changeNotificationSetting = (0, import_toolkit19.createAsyncThunk)(
|
|
3905
3951
|
`${sliceName4}/changeNotificationSetting`,
|
|
3906
|
-
({ enabled, channel = alertChannels.email }, { dispatch }) => {
|
|
3907
|
-
|
|
3908
|
-
(
|
|
3909
|
-
|
|
3910
|
-
|
|
3911
|
-
|
|
3912
|
-
);
|
|
3913
|
-
}
|
|
3952
|
+
({ 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(
|
|
3953
|
+
() => Promise.all([
|
|
3954
|
+
dispatch(actions4.changeAlertChannel({ channel, enabled })),
|
|
3955
|
+
dispatch(actions_default.setSnackbar(`Successfully ${enabled ? "en" : "dis"}abled ${channel} alerts`, TIMEOUTS.fiveSeconds))
|
|
3956
|
+
])
|
|
3957
|
+
)
|
|
3914
3958
|
);
|
|
3915
3959
|
|
|
3960
|
+
// src/usersSlice/thunks.ts
|
|
3961
|
+
var import_helptips = require("@northern.tech/common-ui/helptips");
|
|
3962
|
+
|
|
3916
3963
|
// src/api/users-api.ts
|
|
3917
3964
|
var import_axios3 = __toESM(require("axios"), 1);
|
|
3918
3965
|
var Api2 = {
|
|
@@ -3946,7 +3993,7 @@ var handleLoginError = (err, { token2fa: has2FA, password }, rejectWithValue) =>
|
|
|
3946
3993
|
}
|
|
3947
3994
|
const twoFAError = is2FABackend ? " and verification code" : "";
|
|
3948
3995
|
const errorMessage = `There was a problem logging in. Please check your email${twoFAError ? "," : " and"} password${twoFAError}. If you still have problems, contact an administrator.`;
|
|
3949
|
-
return Promise.reject(dispatch(setSnackbar4((0, import_helpers9.preformatWithRequestID)(err.response, errorMessage),
|
|
3996
|
+
return Promise.reject(dispatch(setSnackbar4({ message: (0, import_helpers9.preformatWithRequestID)(err.response, errorMessage), action: "Copy to clipboard" })));
|
|
3950
3997
|
};
|
|
3951
3998
|
var loginUser = (0, import_toolkit20.createAsyncThunk)(
|
|
3952
3999
|
`${sliceName8}/loginUser`,
|
|
@@ -3970,19 +4017,16 @@ var loginUser = (0, import_toolkit20.createAsyncThunk)(
|
|
|
3970
4017
|
const expiresAt = stayLoggedIn ? void 0 : now.toISOString();
|
|
3971
4018
|
setSessionInfo({ token, expiresAt });
|
|
3972
4019
|
cookies2.remove("JWT", { path: "/" });
|
|
3973
|
-
return (
|
|
3974
|
-
|
|
3975
|
-
Promise.
|
|
3976
|
-
|
|
3977
|
-
|
|
3978
|
-
|
|
3979
|
-
window.
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
return Promise.resolve(dispatch(actions8.successfullyLoggedIn({ expiresAt, token })));
|
|
3984
|
-
})
|
|
3985
|
-
);
|
|
4020
|
+
return dispatch(getUser(OWN_USER_ID)).unwrap().catch((e) => {
|
|
4021
|
+
cleanUp();
|
|
4022
|
+
return Promise.reject(dispatch(setSnackbar4((0, import_helpers9.extractErrorMessage)(e))));
|
|
4023
|
+
}).then(() => {
|
|
4024
|
+
window.sessionStorage.removeItem("pendings-redirect");
|
|
4025
|
+
if (window.location.pathname !== "/ui/") {
|
|
4026
|
+
window.location.replace("/ui/");
|
|
4027
|
+
}
|
|
4028
|
+
return Promise.resolve(dispatch(actions8.successfullyLoggedIn({ expiresAt, token })));
|
|
4029
|
+
});
|
|
3986
4030
|
})
|
|
3987
4031
|
);
|
|
3988
4032
|
var logoutUser = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/logoutUser`, (_, { dispatch, getState }) => {
|
|
@@ -4000,6 +4044,7 @@ var switchUserOrganization = (0, import_toolkit20.createAsyncThunk)(`${sliceName
|
|
|
4000
4044
|
return Promise.reject();
|
|
4001
4045
|
}
|
|
4002
4046
|
return general_api_default.get(`${useradmApiUrlv1}/users/tenants/${tenantId}/token`).then(({ data: token }) => {
|
|
4047
|
+
window.sessionStorage.setItem("tenantChanged", "true");
|
|
4003
4048
|
setSessionInfo({ ...getSessionInfo(), token });
|
|
4004
4049
|
window.location.reload();
|
|
4005
4050
|
});
|
|
@@ -4040,11 +4085,18 @@ var verify2FA = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4040
4085
|
);
|
|
4041
4086
|
var getUserList = (0, import_toolkit20.createAsyncThunk)(
|
|
4042
4087
|
`${sliceName8}/getUserList`,
|
|
4043
|
-
(_, { dispatch }) => general_api_default.get(`${useradmApiUrlv1}/users`).then((res) => {
|
|
4044
|
-
const
|
|
4045
|
-
|
|
4046
|
-
|
|
4047
|
-
|
|
4088
|
+
(_, { dispatch, getState }) => general_api_default.get(`${useradmApiUrlv1}/users`).then((res) => {
|
|
4089
|
+
const currentUsersById = getUsersById(getState());
|
|
4090
|
+
const users = res.data.reduce(
|
|
4091
|
+
(accu, item) => {
|
|
4092
|
+
accu[item.id] = {
|
|
4093
|
+
...accu[item.id],
|
|
4094
|
+
...item
|
|
4095
|
+
};
|
|
4096
|
+
return accu;
|
|
4097
|
+
},
|
|
4098
|
+
{ ...currentUsersById }
|
|
4099
|
+
);
|
|
4048
4100
|
return dispatch(actions8.receivedUserList(users));
|
|
4049
4101
|
}).catch((err) => commonErrorHandler(err, `Users couldn't be loaded.`, dispatch, commonErrorFallback))
|
|
4050
4102
|
);
|
|
@@ -4053,9 +4105,7 @@ var getUser = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4053
4105
|
(id, { dispatch, rejectWithValue }) => general_api_default.get(`${useradmApiUrlv1}/users/${id}`).then(
|
|
4054
4106
|
({ data: user }) => Promise.all([
|
|
4055
4107
|
dispatch(actions8.receivedUser(user)),
|
|
4056
|
-
// @ts-ignore
|
|
4057
4108
|
dispatch(setHideAnnouncement({ shouldHide: false, userId: user.id })),
|
|
4058
|
-
// @ts-ignore
|
|
4059
4109
|
dispatch(updateUserColumnSettings({ currentUserId: user.id })),
|
|
4060
4110
|
user
|
|
4061
4111
|
])
|
|
@@ -4102,10 +4152,7 @@ var createUser = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4102
4152
|
);
|
|
4103
4153
|
var removeUser = (0, import_toolkit20.createAsyncThunk)(
|
|
4104
4154
|
`${sliceName8}/removeUser`,
|
|
4105
|
-
(userId, { dispatch }) => (
|
|
4106
|
-
// @ts-ignore
|
|
4107
|
-
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))
|
|
4108
|
-
)
|
|
4155
|
+
(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))
|
|
4109
4156
|
);
|
|
4110
4157
|
var editUser = (0, import_toolkit20.createAsyncThunk)(
|
|
4111
4158
|
`${sliceName8}/editUser`,
|
|
@@ -4126,7 +4173,7 @@ var enableUser2fa = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4126
4173
|
);
|
|
4127
4174
|
var disableUser2fa = (0, import_toolkit20.createAsyncThunk)(
|
|
4128
4175
|
`${sliceName8}/disableUser2fa`,
|
|
4129
|
-
(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.
|
|
4176
|
+
(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))]))
|
|
4130
4177
|
);
|
|
4131
4178
|
var mapHttpPermission = (permission) => Object.entries(uiPermissionsByArea).reduce(
|
|
4132
4179
|
(accu, [area, definition]) => {
|
|
@@ -4279,7 +4326,6 @@ var getPermissionSets = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4279
4326
|
accu[permissionSet.name] = permissionSetObject;
|
|
4280
4327
|
return accu;
|
|
4281
4328
|
},
|
|
4282
|
-
// @ts-ignore
|
|
4283
4329
|
{ ...getState().users.permissionSetsById }
|
|
4284
4330
|
);
|
|
4285
4331
|
return Promise.all([dispatch(actions8.receivedPermissionSets(permissionSets)), permissionSets]);
|
|
@@ -4372,7 +4418,6 @@ var transformRoleDataToRole = (roleData, roleState = {}) => {
|
|
|
4372
4418
|
role: {
|
|
4373
4419
|
...emptyRole,
|
|
4374
4420
|
name,
|
|
4375
|
-
// @ts-ignore
|
|
4376
4421
|
description: description ? description : roleState.description,
|
|
4377
4422
|
uiPermissions: {
|
|
4378
4423
|
...emptyUiPermissions,
|
|
@@ -4415,10 +4460,7 @@ var editRole = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/editRole`,
|
|
|
4415
4460
|
});
|
|
4416
4461
|
var removeRole = (0, import_toolkit20.createAsyncThunk)(
|
|
4417
4462
|
`${sliceName8}/removeRole`,
|
|
4418
|
-
(roleId, { dispatch }) => (
|
|
4419
|
-
// @ts-ignore
|
|
4420
|
-
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))
|
|
4421
|
-
)
|
|
4463
|
+
(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))
|
|
4422
4464
|
);
|
|
4423
4465
|
var getGlobalSettings2 = (0, import_toolkit20.createAsyncThunk)(
|
|
4424
4466
|
`${sliceName8}/getGlobalSettings`,
|
|
@@ -4429,7 +4471,6 @@ var getGlobalSettings2 = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4429
4471
|
);
|
|
4430
4472
|
var saveGlobalSettings = (0, import_toolkit20.createAsyncThunk)(
|
|
4431
4473
|
`${sliceName8}/saveGlobalSettings`,
|
|
4432
|
-
// @ts-ignore
|
|
4433
4474
|
({ beOptimistic = false, notify = false, ...settings }, { dispatch, getState }) => {
|
|
4434
4475
|
if (!window.sessionStorage.getItem(settingsKeys.initialized) && !beOptimistic) {
|
|
4435
4476
|
return;
|
|
@@ -4475,11 +4516,9 @@ var saveUserSettings = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/sav
|
|
|
4475
4516
|
const tooltipState = getTooltipsState(getState());
|
|
4476
4517
|
const updatedSettings = {
|
|
4477
4518
|
...userSettings,
|
|
4478
|
-
// @ts-ignore
|
|
4479
4519
|
...settings,
|
|
4480
4520
|
onboarding: {
|
|
4481
4521
|
...onboardingState,
|
|
4482
|
-
// @ts-ignore
|
|
4483
4522
|
...settings.onboarding
|
|
4484
4523
|
},
|
|
4485
4524
|
tooltips: tooltipState
|
|
@@ -4523,10 +4562,7 @@ var generateToken = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4523
4562
|
);
|
|
4524
4563
|
var revokeToken = (0, import_toolkit20.createAsyncThunk)(
|
|
4525
4564
|
`${sliceName8}/revokeToken`,
|
|
4526
|
-
(token, { dispatch }) => (
|
|
4527
|
-
// @ts-ignore
|
|
4528
|
-
general_api_default.delete(`${useradmApiUrlv1}/settings/tokens/${token.id}`).then(() => Promise.resolve(dispatch(getTokens())))
|
|
4529
|
-
)
|
|
4565
|
+
(token, { dispatch }) => general_api_default.delete(`${useradmApiUrlv1}/settings/tokens/${token.id}`).then(() => Promise.resolve(dispatch(getTokens())))
|
|
4530
4566
|
);
|
|
4531
4567
|
var setTooltipReadState = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/setTooltipReadState`, ({ persist, ...remainder }, { dispatch }) => {
|
|
4532
4568
|
let tasks = [dispatch(actions8.setTooltipState(remainder))];
|
|
@@ -4535,23 +4571,20 @@ var setTooltipReadState = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/
|
|
|
4535
4571
|
}
|
|
4536
4572
|
return Promise.all(tasks);
|
|
4537
4573
|
});
|
|
4538
|
-
var setAllTooltipsReadState = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/toggleHelptips`, (
|
|
4539
|
-
const updatedTips =
|
|
4574
|
+
var setAllTooltipsReadState = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/toggleHelptips`, (readState = READ_STATES.read, { dispatch }) => {
|
|
4575
|
+
const updatedTips = Object.keys(import_helptips.HELPTOOLTIPS).reduce((accu, id) => ({ ...accu, [id]: { readState } }), {});
|
|
4540
4576
|
return Promise.resolve(dispatch(actions8.setTooltipsState(updatedTips))).then(() => dispatch(saveUserSettings()));
|
|
4541
4577
|
});
|
|
4542
4578
|
var submitFeedback = (0, import_toolkit20.createAsyncThunk)(
|
|
4543
4579
|
`${sliceName8}/submitFeedback`,
|
|
4544
|
-
|
|
4545
|
-
|
|
4546
|
-
|
|
4547
|
-
|
|
4548
|
-
|
|
4549
|
-
|
|
4550
|
-
|
|
4551
|
-
|
|
4552
|
-
setTimeout(() => dispatch(actions8.setShowFeedbackDialog(false)), TIMEOUTS.threeSeconds);
|
|
4553
|
-
});
|
|
4554
|
-
}
|
|
4580
|
+
({ satisfaction, feedback, ...meta }, { dispatch }) => general_api_default.post(`${tenantadmApiUrlv2}/contact/support`, {
|
|
4581
|
+
subject: "feedback submission",
|
|
4582
|
+
body: JSON.stringify({ feedback, satisfaction, meta })
|
|
4583
|
+
}).then(() => {
|
|
4584
|
+
const today = /* @__PURE__ */ new Date();
|
|
4585
|
+
dispatch(saveUserSettings({ feedbackCollectedAt: today.toISOString().split("T")[0] }));
|
|
4586
|
+
setTimeout(() => dispatch(actions8.setShowFeedbackDialog(false)), TIMEOUTS.threeSeconds);
|
|
4587
|
+
})
|
|
4555
4588
|
);
|
|
4556
4589
|
|
|
4557
4590
|
// src/appSlice/thunks.ts
|