@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
|
@@ -31,7 +31,6 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
31
31
|
var thunks_exports = {};
|
|
32
32
|
__export(thunks_exports, {
|
|
33
33
|
advanceOnboarding: () => advanceOnboarding,
|
|
34
|
-
applyOnboardingFallbacks: () => applyOnboardingFallbacks,
|
|
35
34
|
getOnboardingState: () => getOnboardingState2,
|
|
36
35
|
setOnboardingApproach: () => setOnboardingApproach,
|
|
37
36
|
setOnboardingCanceled: () => setOnboardingCanceled,
|
|
@@ -68,28 +67,28 @@ var PLANS = {
|
|
|
68
67
|
id: "os",
|
|
69
68
|
name: "Basic",
|
|
70
69
|
offer: true,
|
|
71
|
-
price: "$32/month",
|
|
70
|
+
price: "$32 / month",
|
|
72
71
|
deviceCount: startingDeviceCount.os,
|
|
73
|
-
offerprice: "$23/month for first 50 devices",
|
|
72
|
+
offerprice: "$23 / month for first 50 devices",
|
|
74
73
|
price2: "for first 6 months;\n$29/month thereafter",
|
|
75
|
-
features: ["
|
|
74
|
+
features: ["Access to core features of Mender", "Basic support"]
|
|
76
75
|
},
|
|
77
76
|
professional: {
|
|
78
77
|
id: "professional",
|
|
79
78
|
name: "Professional",
|
|
80
79
|
offer: true,
|
|
81
|
-
price: "$269/month",
|
|
80
|
+
price: "$269 / month",
|
|
82
81
|
deviceCount: startingDeviceCount.professional,
|
|
83
|
-
offerprice: "$200/month for first 50 devices",
|
|
82
|
+
offerprice: "$200 / month for first 50 devices",
|
|
84
83
|
price2: "for first 6 months;\n$249/month thereafter",
|
|
85
|
-
features: ["
|
|
84
|
+
features: ["Advanced OTA features", "Higher priority support"]
|
|
86
85
|
},
|
|
87
86
|
enterprise: {
|
|
88
87
|
id: "enterprise",
|
|
89
88
|
name: "Enterprise",
|
|
90
89
|
price: "Custom pricing",
|
|
91
|
-
deviceCount: "
|
|
92
|
-
features: ["
|
|
90
|
+
deviceCount: "Unlimited devices",
|
|
91
|
+
features: ["All Mender features", "Advanced security features", "SLA-backed support"]
|
|
93
92
|
}
|
|
94
93
|
};
|
|
95
94
|
var ADDONS = {
|
|
@@ -560,6 +559,7 @@ var DEVICE_STATES = {
|
|
|
560
559
|
rejected: "rejected"
|
|
561
560
|
};
|
|
562
561
|
var geoAttributes = ["geo-lat", "geo-lon"].map((attribute) => ({ attribute, scope: "inventory" }));
|
|
562
|
+
var REPORT_CHART_SIZE_LIMIT = 6;
|
|
563
563
|
|
|
564
564
|
// src/monitorSlice/constants.ts
|
|
565
565
|
var alertChannels = { email: "email" };
|
|
@@ -641,13 +641,16 @@ var SSO_TYPES = {
|
|
|
641
641
|
configDetails: [{ key: "startURL", label: "Start Url", getValue: getOidcStartUrl }]
|
|
642
642
|
}
|
|
643
643
|
};
|
|
644
|
-
var
|
|
645
|
-
{ title: "Artifact", queryParameter: "object_type", value: "artifact" },
|
|
646
|
-
{ title: "Deployment", queryParameter: "object_deployment_name", value: "deployment" },
|
|
647
|
-
{ title: "Device", queryParameter: "object_id", value: "device" },
|
|
648
|
-
{ title: "
|
|
649
|
-
|
|
650
|
-
|
|
644
|
+
var auditlogTypes = {
|
|
645
|
+
artifact: { title: "Artifact", queryParameter: "object_type", value: "artifact" },
|
|
646
|
+
deployment: { title: "Deployment", queryParameter: "object_deployment_name", value: "deployment" },
|
|
647
|
+
device: { title: "Device", queryParameter: "object_id", value: "device" },
|
|
648
|
+
user_access_token: { title: "Personal Access Token", queryParameter: "user_access_token", value: "user_access_token" },
|
|
649
|
+
user: { title: "User", queryParameter: "object_id", value: "user" },
|
|
650
|
+
tenant: { title: "Tenant", queryParameter: "object_id", value: "tenant" }
|
|
651
|
+
};
|
|
652
|
+
var AUDIT_LOGS_TYPES = [auditlogTypes.artifact, auditlogTypes.deployment, auditlogTypes.device, auditlogTypes.user_access_token, auditlogTypes.user];
|
|
653
|
+
var SP_AUDIT_LOGS_TYPES = [auditlogTypes.user, auditlogTypes.tenant];
|
|
651
654
|
var emptyWebhook = {
|
|
652
655
|
description: "",
|
|
653
656
|
enabled: true,
|
|
@@ -780,7 +783,7 @@ var uiPermissionsByArea = {
|
|
|
780
783
|
explanation: "Granting access to the audit log will allow tracing changes to devices, releases and user accounts, as well as providing information about deployments.",
|
|
781
784
|
key: "auditlog",
|
|
782
785
|
uiPermissions: [uiPermissionsById.read],
|
|
783
|
-
title: "System
|
|
786
|
+
title: "System Audit Log"
|
|
784
787
|
},
|
|
785
788
|
deployments: {
|
|
786
789
|
endpoints: [
|
|
@@ -931,7 +934,7 @@ var serviceProviderRolesById = {
|
|
|
931
934
|
},
|
|
932
935
|
readOnly: {
|
|
933
936
|
name: "Read access",
|
|
934
|
-
value: staticRolesByName.
|
|
937
|
+
value: staticRolesByName.readOnly,
|
|
935
938
|
description: "This role can see all linked organizations but cannot make any changes",
|
|
936
939
|
permissions: [],
|
|
937
940
|
uiPermissions: {
|
|
@@ -1185,7 +1188,7 @@ var getGroups = (0, import_toolkit3.createSelector)([getGroupsById], (groupsById
|
|
|
1185
1188
|
(accu, [groupname, group]) => {
|
|
1186
1189
|
const name = groupname === UNGROUPED_GROUP.id ? UNGROUPED_GROUP.name : groupname;
|
|
1187
1190
|
const groupItem = { ...group, groupId: name, name: groupname };
|
|
1188
|
-
if (group.filters
|
|
1191
|
+
if (group.filters?.length > 0) {
|
|
1189
1192
|
if (groupname !== UNGROUPED_GROUP.id) {
|
|
1190
1193
|
accu.dynamic.push(groupItem);
|
|
1191
1194
|
} else {
|
|
@@ -1258,14 +1261,15 @@ var getAuditLogEntry = (0, import_toolkit4.createSelector)([getAuditLog, getAudi
|
|
|
1258
1261
|
// src/utils.ts
|
|
1259
1262
|
var import_helpers3 = require("@northern.tech/utils/helpers");
|
|
1260
1263
|
var filterProcessors = {
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1264
|
+
[DEVICE_FILTERING_OPTIONS.$gt.key]: (val) => Number(val) || val,
|
|
1265
|
+
[DEVICE_FILTERING_OPTIONS.$gte.key]: (val) => Number(val) || val,
|
|
1266
|
+
[DEVICE_FILTERING_OPTIONS.$lt.key]: (val) => Number(val) || val,
|
|
1267
|
+
[DEVICE_FILTERING_OPTIONS.$lte.key]: (val) => Number(val) || val,
|
|
1268
|
+
[DEVICE_FILTERING_OPTIONS.$ltne.key]: (val) => Number(val) || val,
|
|
1269
|
+
[DEVICE_FILTERING_OPTIONS.$in.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
1270
|
+
[DEVICE_FILTERING_OPTIONS.$nin.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
1271
|
+
[DEVICE_FILTERING_OPTIONS.$exists.key]: import_helpers3.yes,
|
|
1272
|
+
[DEVICE_FILTERING_OPTIONS.$nexists.key]: () => false
|
|
1269
1273
|
};
|
|
1270
1274
|
var filterAliases = {
|
|
1271
1275
|
$nexists: { alias: DEVICE_FILTERING_OPTIONS.$exists.key, value: false }
|
|
@@ -1309,14 +1313,12 @@ var filtersFilter = (item, index, array) => {
|
|
|
1309
1313
|
const firstIndex = array.findIndex((filter) => filterCompare(filter, item));
|
|
1310
1314
|
return firstIndex === index;
|
|
1311
1315
|
};
|
|
1312
|
-
var listItemMapper = (byId, ids, { defaultObject = {}, cutOffSize = DEVICE_LIST_MAXIMUM_LENGTH }) => {
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
}, []);
|
|
1319
|
-
};
|
|
1316
|
+
var listItemMapper = (byId, ids, { defaultObject = {}, cutOffSize = DEVICE_LIST_MAXIMUM_LENGTH }) => ids.slice(0, cutOffSize).reduce((accu, id) => {
|
|
1317
|
+
if (id && byId[id]) {
|
|
1318
|
+
accu.push({ ...defaultObject, ...byId[id] });
|
|
1319
|
+
}
|
|
1320
|
+
return accu;
|
|
1321
|
+
}, []);
|
|
1320
1322
|
var mergePermissions = (existingPermissions = { ...emptyUiPermissions }, addedPermissions) => Object.entries(existingPermissions).reduce(
|
|
1321
1323
|
(accu, [key, value]) => {
|
|
1322
1324
|
let values;
|
|
@@ -1389,8 +1391,13 @@ var getTooltipsById = (state) => state.users.tooltips.byId;
|
|
|
1389
1391
|
var getGlobalSettings = (state) => state.users.globalSettings;
|
|
1390
1392
|
var getCurrentUserId = (state) => state.users.currentUser;
|
|
1391
1393
|
var getUsersById = (state) => state.users.byId;
|
|
1394
|
+
var getUsersList = (0, import_toolkit6.createSelector)([getUsersById], (usersById) => Object.values(usersById));
|
|
1392
1395
|
var getCurrentUser = (0, import_toolkit6.createSelector)([getUsersById, getCurrentUserId], (usersById, userId) => usersById[userId] ?? {});
|
|
1393
1396
|
var getUserSettings = (state) => state.users.userSettings;
|
|
1397
|
+
var getSelectedDeviceAttribute = (0, import_toolkit6.createSelector)(
|
|
1398
|
+
[getUserSettings],
|
|
1399
|
+
({ columnSelection }) => columnSelection.map((attribute) => ({ attribute: attribute.key, scope: attribute.scope }))
|
|
1400
|
+
);
|
|
1394
1401
|
var getIsDarkMode = (0, import_toolkit6.createSelector)([getUserSettings], ({ mode }) => isDarkMode(mode));
|
|
1395
1402
|
var getShowHelptips = (0, import_toolkit6.createSelector)(
|
|
1396
1403
|
[getTooltipsById],
|
|
@@ -1415,7 +1422,7 @@ var getOfflineThresholdSettings = (0, import_toolkit6.createSelector)([getGlobal
|
|
|
1415
1422
|
interval: offlineThreshold?.interval || DEVICE_ONLINE_CUTOFF.interval,
|
|
1416
1423
|
intervalUnit: offlineThreshold?.intervalUnit || DEVICE_ONLINE_CUTOFF.intervalName
|
|
1417
1424
|
}));
|
|
1418
|
-
var getRolesList = (0, import_toolkit6.createSelector)([getRolesById], (rolesById2) => Object.entries(rolesById2).map(([
|
|
1425
|
+
var getRolesList = (0, import_toolkit6.createSelector)([getRolesById], (rolesById2) => Object.entries(rolesById2).map(([value, role]) => ({ value, ...role })));
|
|
1419
1426
|
|
|
1420
1427
|
// src/commonSelectors.ts
|
|
1421
1428
|
var getIsEnterprise = (0, import_toolkit7.createSelector)(
|
|
@@ -1476,12 +1483,18 @@ var getUserCapabilities = (0, import_toolkit7.createSelector)([getUserRoles, get
|
|
|
1476
1483
|
});
|
|
1477
1484
|
var getTenantCapabilities = (0, import_toolkit7.createSelector)(
|
|
1478
1485
|
[getFeatures, getOrganization, getIsEnterprise],
|
|
1479
|
-
({
|
|
1486
|
+
({
|
|
1487
|
+
hasAuditlogs: isAuditlogEnabled,
|
|
1488
|
+
hasDeviceConfig: isDeviceConfigEnabled,
|
|
1489
|
+
hasDeviceConnect: isDeviceConnectEnabled,
|
|
1490
|
+
hasMonitor: isMonitorEnabled,
|
|
1491
|
+
isHosted
|
|
1492
|
+
}, { addons = [], plan = PLANS.os.id }, isEnterprise) => {
|
|
1480
1493
|
const canDelta = isEnterprise || plan === PLANS.professional.id;
|
|
1481
1494
|
const hasAuditlogs = isAuditlogEnabled && isEnterprise;
|
|
1482
|
-
const hasDeviceConfig =
|
|
1483
|
-
const hasDeviceConnect =
|
|
1484
|
-
const hasMonitor = isMonitorEnabled && addons.some((addon) => addon.name ===
|
|
1495
|
+
const hasDeviceConfig = addons.some((addon) => addon.name === ADDONS.configure.id && addon.enabled) || isDeviceConfigEnabled && !isHosted;
|
|
1496
|
+
const hasDeviceConnect = addons.some((addon) => addon.name === ADDONS.troubleshoot.id && addon.enabled) || isDeviceConnectEnabled && !isHosted;
|
|
1497
|
+
const hasMonitor = isMonitorEnabled && addons.some((addon) => addon.name === ADDONS.monitor.id && addon.enabled);
|
|
1485
1498
|
return {
|
|
1486
1499
|
canDelta,
|
|
1487
1500
|
canRetry: canDelta,
|
|
@@ -1585,9 +1598,7 @@ var getGroupNames = (0, import_toolkit7.createSelector)([getGroupsById, getUserR
|
|
|
1585
1598
|
});
|
|
1586
1599
|
var getDeviceReportsForUser = (0, import_toolkit7.createSelector)(
|
|
1587
1600
|
[getUserSettings, getCurrentUser, getGlobalSettings, getDevicesById],
|
|
1588
|
-
({ reports }, { id: currentUserId }, globalSettings, devicesById) => {
|
|
1589
|
-
return reports || globalSettings[`${currentUserId}-reports`] || (Object.keys(devicesById).length ? defaultReports : []);
|
|
1590
|
-
}
|
|
1601
|
+
({ reports }, { id: currentUserId }, globalSettings, devicesById) => reports || globalSettings[`${currentUserId}-reports`] || (Object.keys(devicesById).length ? defaultReports : [])
|
|
1591
1602
|
);
|
|
1592
1603
|
var listTypeDeviceIdMap = {
|
|
1593
1604
|
deviceList: getListedDevices,
|
|
@@ -1611,7 +1622,7 @@ var getAuditlogDevice = (0, import_toolkit7.createSelector)([getAuditLogEntry, g
|
|
|
1611
1622
|
var getRelevantRoles = (0, import_toolkit7.createSelector)([getOrganization, getRolesList], ({ service_provider }, roles) => {
|
|
1612
1623
|
if (service_provider) {
|
|
1613
1624
|
return roles.reduce((accu, role) => {
|
|
1614
|
-
if (rolesById[role.
|
|
1625
|
+
if (rolesById[role.value]) {
|
|
1615
1626
|
return accu;
|
|
1616
1627
|
}
|
|
1617
1628
|
accu.push(role);
|
|
@@ -1619,7 +1630,7 @@ var getRelevantRoles = (0, import_toolkit7.createSelector)([getOrganization, get
|
|
|
1619
1630
|
}, Object.values(serviceProviderRolesById));
|
|
1620
1631
|
}
|
|
1621
1632
|
return Object.keys(rolesById).reverse().reduce((accu, key) => {
|
|
1622
|
-
const index = accu.findIndex(({
|
|
1633
|
+
const index = accu.findIndex(({ value }) => value === key);
|
|
1623
1634
|
accu = [accu[index], ...accu.filter((item, itemIndex) => index !== itemIndex)];
|
|
1624
1635
|
return accu;
|
|
1625
1636
|
}, roles);
|
|
@@ -1844,9 +1855,7 @@ var appSlice = (0, import_toolkit8.createSlice)({
|
|
|
1844
1855
|
...action.payload
|
|
1845
1856
|
};
|
|
1846
1857
|
},
|
|
1847
|
-
setEnvironmentData: (state, action) => {
|
|
1848
|
-
return { ...state, ...action.payload };
|
|
1849
|
-
}
|
|
1858
|
+
setEnvironmentData: (state, action) => ({ ...state, ...action.payload })
|
|
1850
1859
|
}
|
|
1851
1860
|
});
|
|
1852
1861
|
var actions = appSlice.actions;
|
|
@@ -2326,9 +2335,7 @@ var onboardingSlice = (0, import_toolkit13.createSlice)({
|
|
|
2326
2335
|
name: sliceName5,
|
|
2327
2336
|
initialState: initialState5,
|
|
2328
2337
|
reducers: {
|
|
2329
|
-
setOnboardingState: (state, action) => {
|
|
2330
|
-
return { ...state, ...action.payload };
|
|
2331
|
-
},
|
|
2338
|
+
setOnboardingState: (state, action) => ({ ...state, ...action.payload }),
|
|
2332
2339
|
setDemoArtifactPort: (state, action) => {
|
|
2333
2340
|
state.demoArtifactPort = action.payload;
|
|
2334
2341
|
},
|
|
@@ -2687,13 +2694,12 @@ var actions_default = {
|
|
|
2687
2694
|
};
|
|
2688
2695
|
|
|
2689
2696
|
// src/store.ts
|
|
2697
|
+
var import_react_redux = require("react-redux");
|
|
2690
2698
|
var import_helpers7 = require("@northern.tech/utils/helpers");
|
|
2691
2699
|
var import_toolkit17 = require("@reduxjs/toolkit");
|
|
2692
2700
|
var { setSnackbar, uploadProgress } = actions_default;
|
|
2693
2701
|
var keys = ["sessionDeploymentChecker", settingsKeys.initialized];
|
|
2694
|
-
var resetEnvironment = () =>
|
|
2695
|
-
keys.map((key) => window.sessionStorage.removeItem(key));
|
|
2696
|
-
};
|
|
2702
|
+
var resetEnvironment = () => keys.forEach((key) => window.sessionStorage.removeItem(key));
|
|
2697
2703
|
resetEnvironment();
|
|
2698
2704
|
var commonErrorFallback = "Please check your connection.";
|
|
2699
2705
|
var commonErrorHandler = (err, errorContext, dispatch, fallback, mightBeAuthRelated = false) => {
|
|
@@ -2719,6 +2725,14 @@ var sessionReducer = (state, action) => {
|
|
|
2719
2725
|
}
|
|
2720
2726
|
return rootReducer(state, action);
|
|
2721
2727
|
};
|
|
2728
|
+
var rejectionLoggerMiddleware = () => (next) => (action) => {
|
|
2729
|
+
if (action.type.endsWith("/rejected")) {
|
|
2730
|
+
const { error } = action;
|
|
2731
|
+
console.error("Rejection in action:", action);
|
|
2732
|
+
console.error(error.stack);
|
|
2733
|
+
}
|
|
2734
|
+
return next(action);
|
|
2735
|
+
};
|
|
2722
2736
|
var getConfiguredStore = (options = {}) => {
|
|
2723
2737
|
const { preloadedState = {}, ...config } = options;
|
|
2724
2738
|
return (0, import_toolkit17.configureStore)({
|
|
@@ -2734,7 +2748,7 @@ var getConfiguredStore = (options = {}) => {
|
|
|
2734
2748
|
ignoredActionPaths: ["uploads", "snackbar", /payload\..*$/],
|
|
2735
2749
|
ignoredPaths: ["app.uploadsById", "app.snackbar", "organization.externalDeviceIntegrations"]
|
|
2736
2750
|
}
|
|
2737
|
-
})
|
|
2751
|
+
}).concat(rejectionLoggerMiddleware)
|
|
2738
2752
|
});
|
|
2739
2753
|
};
|
|
2740
2754
|
var store = getConfiguredStore({
|
|
@@ -2743,12 +2757,13 @@ var store = getConfiguredStore({
|
|
|
2743
2757
|
|
|
2744
2758
|
// src/deploymentsSlice/thunks.ts
|
|
2745
2759
|
var import_helpers8 = require("@northern.tech/utils/helpers");
|
|
2760
|
+
var import_tracking = __toESM(require("@northern.tech/utils/tracking"), 1);
|
|
2746
2761
|
var import_toolkit18 = require("@reduxjs/toolkit");
|
|
2747
2762
|
var import_validator = require("validator");
|
|
2748
2763
|
var { receivedDevice, setSnackbar: setSnackbar2 } = actions_default;
|
|
2749
2764
|
var { page: defaultPage, perPage: defaultPerPage } = DEVICE_LIST_DEFAULTS;
|
|
2750
2765
|
var deriveDeploymentGroup = ({ filter = {}, group, groups = [], name }) => group || groups.length === 1 && !(0, import_validator.isUUID)(name) ? groups[0] : filter.name;
|
|
2751
|
-
var transformDeployments = (deployments, deploymentsById) => deployments.sort(import_helpers8.
|
|
2766
|
+
var transformDeployments = (deployments, deploymentsById) => deployments.sort((0, import_helpers8.customSort)(true, "created")).reduce(
|
|
2752
2767
|
(accu, item) => {
|
|
2753
2768
|
const filter = item.filter ?? {};
|
|
2754
2769
|
let deployment = {
|
|
@@ -2799,6 +2814,26 @@ var getDeploymentsByStatus2 = (0, import_toolkit18.createAsyncThunk)(`${sliceNam
|
|
|
2799
2814
|
return Promise.all(tasks);
|
|
2800
2815
|
});
|
|
2801
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
|
+
};
|
|
2802
2837
|
var MAX_PREVIOUS_PHASES_COUNT = 5;
|
|
2803
2838
|
var createDeployment = (0, import_toolkit18.createAsyncThunk)(`${sliceName2}/createDeployment`, ({ newDeployment, hasNewRetryDefault = false }, { dispatch, getState }) => {
|
|
2804
2839
|
let request;
|
|
@@ -2809,6 +2844,9 @@ var createDeployment = (0, import_toolkit18.createAsyncThunk)(`${sliceName2}/cre
|
|
|
2809
2844
|
} else {
|
|
2810
2845
|
request = general_api_default.post(`${deploymentsApiUrl}/deployments`, newDeployment);
|
|
2811
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());
|
|
2812
2850
|
return request.catch((err) => commonErrorHandler(err, "Error creating deployment.", dispatch)).then((data) => {
|
|
2813
2851
|
const lastslashindex = data.headers.location.lastIndexOf("/");
|
|
2814
2852
|
const deploymentId = data.headers.location.substring(lastslashindex + 1);
|
|
@@ -2823,6 +2861,7 @@ var createDeployment = (0, import_toolkit18.createAsyncThunk)(`${sliceName2}/cre
|
|
|
2823
2861
|
dispatch(getSingleDeployment(deploymentId)),
|
|
2824
2862
|
dispatch(setSnackbar2("Deployment created successfully", TIMEOUTS.fiveSeconds))
|
|
2825
2863
|
];
|
|
2864
|
+
trackDeploymentCreation(totalDeploymentCount, hasDeployments, trial_expiration);
|
|
2826
2865
|
const { canManageUsers } = getUserCapabilities(getState());
|
|
2827
2866
|
if (canManageUsers) {
|
|
2828
2867
|
const { phases, retries } = newDeployment;
|
|
@@ -3497,7 +3536,7 @@ var getDevicesByStatus2 = (0, import_toolkit19.createAsyncThunk)(`${sliceName3}/
|
|
|
3497
3536
|
page = defaultPage2,
|
|
3498
3537
|
perPage = defaultPerPage2,
|
|
3499
3538
|
sortOptions = [],
|
|
3500
|
-
selectedAttributes =
|
|
3539
|
+
selectedAttributes = getSelectedDeviceAttribute(getState())
|
|
3501
3540
|
} = options;
|
|
3502
3541
|
const state = getState();
|
|
3503
3542
|
const { applicableFilters, filterTerms } = convertDeviceListStateToFilters({
|
|
@@ -3610,7 +3649,6 @@ var getReportingLimits = (0, import_toolkit19.createAsyncThunk)(
|
|
|
3610
3649
|
})
|
|
3611
3650
|
);
|
|
3612
3651
|
var ensureVersionString = (software, fallback) => software.length && software !== "artifact_name" ? software.endsWith(".version") ? software : `${software}.version` : fallback;
|
|
3613
|
-
var REPORT_CHART_SIZE_LIMIT = 6;
|
|
3614
3652
|
var getSingleReportData = (reportConfig, groups) => {
|
|
3615
3653
|
const { attribute, group, software = "" } = reportConfig;
|
|
3616
3654
|
const filters = [{ key: "status", scope: "identity", operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: "accepted" }];
|
|
@@ -3690,6 +3728,13 @@ var getDeviceConnect = (0, import_toolkit19.createAsyncThunk)(
|
|
|
3690
3728
|
({ data }) => Promise.all([dispatch(actions3.receivedDevice({ connect_status: data.status, connect_updated_ts: data.updated_ts, id })), Promise.resolve(data)])
|
|
3691
3729
|
)
|
|
3692
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
|
+
);
|
|
3693
3738
|
var getSessionDetails = (0, import_toolkit19.createAsyncThunk)(`${sliceName3}/getSessionDetails`, ({ sessionId, deviceId, userId, startDate, endDate }) => {
|
|
3694
3739
|
const { start: startUnix, end: endUnix } = (0, import_helpers9.dateRangeToUnix)(startDate, endDate);
|
|
3695
3740
|
const createdAfter = startDate ? `&created_after=${startUnix}` : "";
|
|
@@ -3792,12 +3837,12 @@ var deleteAuthset = (0, import_toolkit19.createAsyncThunk)(
|
|
|
3792
3837
|
);
|
|
3793
3838
|
var preauthDevice = (0, import_toolkit19.createAsyncThunk)(
|
|
3794
3839
|
`${sliceName3}/preauthDevice`,
|
|
3795
|
-
(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) => {
|
|
3796
3841
|
if (err.response.status === 409) {
|
|
3797
|
-
return
|
|
3842
|
+
return rejectWithValue("A device with a matching identity data set already exists");
|
|
3798
3843
|
}
|
|
3799
3844
|
return commonErrorHandler(err, "The device could not be added:", dispatch);
|
|
3800
|
-
})
|
|
3845
|
+
})
|
|
3801
3846
|
);
|
|
3802
3847
|
var decommissionDevice = (0, import_toolkit19.createAsyncThunk)(
|
|
3803
3848
|
`${sliceName3}/decommissionDevice`,
|
|
@@ -4014,16 +4059,17 @@ var getDeviceMonitorConfig = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4014
4059
|
);
|
|
4015
4060
|
var changeNotificationSetting = (0, import_toolkit20.createAsyncThunk)(
|
|
4016
4061
|
`${sliceName4}/changeNotificationSetting`,
|
|
4017
|
-
({ enabled, channel = alertChannels.email }, { dispatch }) => {
|
|
4018
|
-
|
|
4019
|
-
(
|
|
4020
|
-
|
|
4021
|
-
|
|
4022
|
-
|
|
4023
|
-
);
|
|
4024
|
-
}
|
|
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
|
+
)
|
|
4025
4068
|
);
|
|
4026
4069
|
|
|
4070
|
+
// src/usersSlice/thunks.ts
|
|
4071
|
+
var import_helptips = require("@northern.tech/common-ui/helptips");
|
|
4072
|
+
|
|
4027
4073
|
// src/api/users-api.ts
|
|
4028
4074
|
var import_axios3 = __toESM(require("axios"), 1);
|
|
4029
4075
|
var Api2 = {
|
|
@@ -4057,7 +4103,7 @@ var handleLoginError = (err, { token2fa: has2FA, password }, rejectWithValue) =>
|
|
|
4057
4103
|
}
|
|
4058
4104
|
const twoFAError = is2FABackend ? " and verification code" : "";
|
|
4059
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.`;
|
|
4060
|
-
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" })));
|
|
4061
4107
|
};
|
|
4062
4108
|
var loginUser = (0, import_toolkit21.createAsyncThunk)(
|
|
4063
4109
|
`${sliceName8}/loginUser`,
|
|
@@ -4081,19 +4127,16 @@ var loginUser = (0, import_toolkit21.createAsyncThunk)(
|
|
|
4081
4127
|
const expiresAt = stayLoggedIn ? void 0 : now.toISOString();
|
|
4082
4128
|
setSessionInfo({ token, expiresAt });
|
|
4083
4129
|
cookies3.remove("JWT", { path: "/" });
|
|
4084
|
-
return (
|
|
4085
|
-
|
|
4086
|
-
Promise.
|
|
4087
|
-
|
|
4088
|
-
|
|
4089
|
-
|
|
4090
|
-
window.
|
|
4091
|
-
|
|
4092
|
-
|
|
4093
|
-
|
|
4094
|
-
return Promise.resolve(dispatch(actions8.successfullyLoggedIn({ expiresAt, token })));
|
|
4095
|
-
})
|
|
4096
|
-
);
|
|
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
|
+
});
|
|
4097
4140
|
})
|
|
4098
4141
|
);
|
|
4099
4142
|
var logoutUser = (0, import_toolkit21.createAsyncThunk)(`${sliceName8}/logoutUser`, (_, { dispatch, getState }) => {
|
|
@@ -4111,6 +4154,7 @@ var switchUserOrganization = (0, import_toolkit21.createAsyncThunk)(`${sliceName
|
|
|
4111
4154
|
return Promise.reject();
|
|
4112
4155
|
}
|
|
4113
4156
|
return general_api_default.get(`${useradmApiUrlv1}/users/tenants/${tenantId}/token`).then(({ data: token }) => {
|
|
4157
|
+
window.sessionStorage.setItem("tenantChanged", "true");
|
|
4114
4158
|
setSessionInfo({ ...getSessionInfo(), token });
|
|
4115
4159
|
window.location.reload();
|
|
4116
4160
|
});
|
|
@@ -4151,11 +4195,18 @@ var verify2FA = (0, import_toolkit21.createAsyncThunk)(
|
|
|
4151
4195
|
);
|
|
4152
4196
|
var getUserList = (0, import_toolkit21.createAsyncThunk)(
|
|
4153
4197
|
`${sliceName8}/getUserList`,
|
|
4154
|
-
(_, { dispatch }) => general_api_default.get(`${useradmApiUrlv1}/users`).then((res) => {
|
|
4155
|
-
const
|
|
4156
|
-
|
|
4157
|
-
|
|
4158
|
-
|
|
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
|
+
);
|
|
4159
4210
|
return dispatch(actions8.receivedUserList(users));
|
|
4160
4211
|
}).catch((err) => commonErrorHandler(err, `Users couldn't be loaded.`, dispatch, commonErrorFallback))
|
|
4161
4212
|
);
|
|
@@ -4164,9 +4215,7 @@ var getUser = (0, import_toolkit21.createAsyncThunk)(
|
|
|
4164
4215
|
(id, { dispatch, rejectWithValue }) => general_api_default.get(`${useradmApiUrlv1}/users/${id}`).then(
|
|
4165
4216
|
({ data: user }) => Promise.all([
|
|
4166
4217
|
dispatch(actions8.receivedUser(user)),
|
|
4167
|
-
// @ts-ignore
|
|
4168
4218
|
dispatch(setHideAnnouncement({ shouldHide: false, userId: user.id })),
|
|
4169
|
-
// @ts-ignore
|
|
4170
4219
|
dispatch(updateUserColumnSettings({ currentUserId: user.id })),
|
|
4171
4220
|
user
|
|
4172
4221
|
])
|
|
@@ -4213,10 +4262,7 @@ var createUser = (0, import_toolkit21.createAsyncThunk)(
|
|
|
4213
4262
|
);
|
|
4214
4263
|
var removeUser = (0, import_toolkit21.createAsyncThunk)(
|
|
4215
4264
|
`${sliceName8}/removeUser`,
|
|
4216
|
-
(userId, { dispatch }) => (
|
|
4217
|
-
// @ts-ignore
|
|
4218
|
-
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))
|
|
4219
|
-
)
|
|
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))
|
|
4220
4266
|
);
|
|
4221
4267
|
var editUser = (0, import_toolkit21.createAsyncThunk)(
|
|
4222
4268
|
`${sliceName8}/editUser`,
|
|
@@ -4237,7 +4283,7 @@ var enableUser2fa = (0, import_toolkit21.createAsyncThunk)(
|
|
|
4237
4283
|
);
|
|
4238
4284
|
var disableUser2fa = (0, import_toolkit21.createAsyncThunk)(
|
|
4239
4285
|
`${sliceName8}/disableUser2fa`,
|
|
4240
|
-
(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))]))
|
|
4241
4287
|
);
|
|
4242
4288
|
var mapHttpPermission = (permission) => Object.entries(uiPermissionsByArea).reduce(
|
|
4243
4289
|
(accu, [area, definition]) => {
|
|
@@ -4390,7 +4436,6 @@ var getPermissionSets = (0, import_toolkit21.createAsyncThunk)(
|
|
|
4390
4436
|
accu[permissionSet.name] = permissionSetObject;
|
|
4391
4437
|
return accu;
|
|
4392
4438
|
},
|
|
4393
|
-
// @ts-ignore
|
|
4394
4439
|
{ ...getState().users.permissionSetsById }
|
|
4395
4440
|
);
|
|
4396
4441
|
return Promise.all([dispatch(actions8.receivedPermissionSets(permissionSets)), permissionSets]);
|
|
@@ -4483,7 +4528,6 @@ var transformRoleDataToRole = (roleData, roleState = {}) => {
|
|
|
4483
4528
|
role: {
|
|
4484
4529
|
...emptyRole,
|
|
4485
4530
|
name,
|
|
4486
|
-
// @ts-ignore
|
|
4487
4531
|
description: description ? description : roleState.description,
|
|
4488
4532
|
uiPermissions: {
|
|
4489
4533
|
...emptyUiPermissions,
|
|
@@ -4526,10 +4570,7 @@ var editRole = (0, import_toolkit21.createAsyncThunk)(`${sliceName8}/editRole`,
|
|
|
4526
4570
|
});
|
|
4527
4571
|
var removeRole = (0, import_toolkit21.createAsyncThunk)(
|
|
4528
4572
|
`${sliceName8}/removeRole`,
|
|
4529
|
-
(roleId, { dispatch }) => (
|
|
4530
|
-
// @ts-ignore
|
|
4531
|
-
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))
|
|
4532
|
-
)
|
|
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))
|
|
4533
4574
|
);
|
|
4534
4575
|
var getGlobalSettings2 = (0, import_toolkit21.createAsyncThunk)(
|
|
4535
4576
|
`${sliceName8}/getGlobalSettings`,
|
|
@@ -4540,7 +4581,6 @@ var getGlobalSettings2 = (0, import_toolkit21.createAsyncThunk)(
|
|
|
4540
4581
|
);
|
|
4541
4582
|
var saveGlobalSettings = (0, import_toolkit21.createAsyncThunk)(
|
|
4542
4583
|
`${sliceName8}/saveGlobalSettings`,
|
|
4543
|
-
// @ts-ignore
|
|
4544
4584
|
({ beOptimistic = false, notify = false, ...settings }, { dispatch, getState }) => {
|
|
4545
4585
|
if (!window.sessionStorage.getItem(settingsKeys.initialized) && !beOptimistic) {
|
|
4546
4586
|
return;
|
|
@@ -4586,11 +4626,9 @@ var saveUserSettings = (0, import_toolkit21.createAsyncThunk)(`${sliceName8}/sav
|
|
|
4586
4626
|
const tooltipState = getTooltipsState(getState());
|
|
4587
4627
|
const updatedSettings = {
|
|
4588
4628
|
...userSettings,
|
|
4589
|
-
// @ts-ignore
|
|
4590
4629
|
...settings,
|
|
4591
4630
|
onboarding: {
|
|
4592
4631
|
...onboardingState,
|
|
4593
|
-
// @ts-ignore
|
|
4594
4632
|
...settings.onboarding
|
|
4595
4633
|
},
|
|
4596
4634
|
tooltips: tooltipState
|
|
@@ -4634,10 +4672,7 @@ var generateToken = (0, import_toolkit21.createAsyncThunk)(
|
|
|
4634
4672
|
);
|
|
4635
4673
|
var revokeToken = (0, import_toolkit21.createAsyncThunk)(
|
|
4636
4674
|
`${sliceName8}/revokeToken`,
|
|
4637
|
-
(token, { dispatch }) => (
|
|
4638
|
-
// @ts-ignore
|
|
4639
|
-
general_api_default.delete(`${useradmApiUrlv1}/settings/tokens/${token.id}`).then(() => Promise.resolve(dispatch(getTokens())))
|
|
4640
|
-
)
|
|
4675
|
+
(token, { dispatch }) => general_api_default.delete(`${useradmApiUrlv1}/settings/tokens/${token.id}`).then(() => Promise.resolve(dispatch(getTokens())))
|
|
4641
4676
|
);
|
|
4642
4677
|
var setTooltipReadState = (0, import_toolkit21.createAsyncThunk)(`${sliceName8}/setTooltipReadState`, ({ persist, ...remainder }, { dispatch }) => {
|
|
4643
4678
|
let tasks = [dispatch(actions8.setTooltipState(remainder))];
|
|
@@ -4646,27 +4681,25 @@ var setTooltipReadState = (0, import_toolkit21.createAsyncThunk)(`${sliceName8}/
|
|
|
4646
4681
|
}
|
|
4647
4682
|
return Promise.all(tasks);
|
|
4648
4683
|
});
|
|
4649
|
-
var setAllTooltipsReadState = (0, import_toolkit21.createAsyncThunk)(`${sliceName8}/toggleHelptips`, (
|
|
4650
|
-
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 } }), {});
|
|
4651
4686
|
return Promise.resolve(dispatch(actions8.setTooltipsState(updatedTips))).then(() => dispatch(saveUserSettings()));
|
|
4652
4687
|
});
|
|
4653
4688
|
var submitFeedback = (0, import_toolkit21.createAsyncThunk)(
|
|
4654
4689
|
`${sliceName8}/submitFeedback`,
|
|
4655
|
-
|
|
4656
|
-
|
|
4657
|
-
|
|
4658
|
-
|
|
4659
|
-
|
|
4660
|
-
|
|
4661
|
-
|
|
4662
|
-
|
|
4663
|
-
setTimeout(() => dispatch(actions8.setShowFeedbackDialog(false)), TIMEOUTS.threeSeconds);
|
|
4664
|
-
});
|
|
4665
|
-
}
|
|
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
|
+
})
|
|
4666
4698
|
);
|
|
4667
4699
|
|
|
4668
4700
|
// src/onboardingSlice/thunks.ts
|
|
4669
4701
|
var import_helpers11 = require("@northern.tech/utils/helpers");
|
|
4702
|
+
var import_tracking2 = __toESM(require("@northern.tech/utils/tracking"), 1);
|
|
4670
4703
|
var import_toolkit22 = require("@reduxjs/toolkit");
|
|
4671
4704
|
var import_universal_cookie4 = __toESM(require("universal-cookie"), 1);
|
|
4672
4705
|
var cookies4 = new import_universal_cookie4.default();
|
|
@@ -4748,7 +4781,7 @@ var setOnboardingCanceled = (0, import_toolkit22.createAsyncThunk)(
|
|
|
4748
4781
|
Promise.resolve(dispatch(actions5.setShowOnboardingHelp(false))),
|
|
4749
4782
|
Promise.resolve(dispatch(actions5.setShowDismissOnboardingTipsDialog(false))),
|
|
4750
4783
|
Promise.resolve(dispatch(actions5.setOnboardingComplete(true)))
|
|
4751
|
-
]).then(() => dispatch(advanceOnboarding(onboardingSteps.DEPLOYMENTS_PAST_COMPLETED_FAILURE)))
|
|
4784
|
+
]).then(() => dispatch(advanceOnboarding(onboardingSteps.DEPLOYMENTS_PAST_COMPLETED_FAILURE))).then(() => import_tracking2.default.event({ category: "onboarding", action: onboardingSteps.ONBOARDING_CANCELED }))
|
|
4752
4785
|
);
|
|
4753
4786
|
var advanceOnboarding = (0, import_toolkit22.createAsyncThunk)(`${sliceName5}/advanceOnboarding`, (stepId, { dispatch, getState }) => {
|
|
4754
4787
|
const steps = orderedOnboardingSteps;
|
|
@@ -4759,13 +4792,13 @@ var advanceOnboarding = (0, import_toolkit22.createAsyncThunk)(`${sliceName5}/ad
|
|
|
4759
4792
|
}
|
|
4760
4793
|
const madeProgress = steps[stepIndex + 1];
|
|
4761
4794
|
const state = { ...getOnboardingState(getState()), progress: madeProgress };
|
|
4762
|
-
state.complete = stepIndex + 1 >=
|
|
4795
|
+
state.complete = stepIndex + 1 >= orderedOnboardingSteps.findIndex((step) => step === onboardingSteps.DEPLOYMENTS_PAST_COMPLETED_FAILURE) ? true : state.complete;
|
|
4796
|
+
import_tracking2.default.event({ category: "onboarding", action: stepId });
|
|
4763
4797
|
return Promise.all([dispatch(actions5.setOnboardingProgress(madeProgress)), dispatch(saveUserSettings({ onboarding: state }))]);
|
|
4764
4798
|
});
|
|
4765
4799
|
// Annotate the CommonJS export names for ESM import in node:
|
|
4766
4800
|
0 && (module.exports = {
|
|
4767
4801
|
advanceOnboarding,
|
|
4768
|
-
applyOnboardingFallbacks,
|
|
4769
4802
|
getOnboardingState,
|
|
4770
4803
|
setOnboardingApproach,
|
|
4771
4804
|
setOnboardingCanceled,
|