@northern.tech/store 0.5.1 → 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions.cjs +53 -3
- package/dist/actions.cjs.map +1 -1
- package/dist/actions.d.cts +6 -2
- package/dist/actions.d.ts +6 -2
- package/dist/actions.js +10 -10
- package/dist/api/general-api.cjs +1 -1
- package/dist/api/general-api.cjs.map +1 -1
- package/dist/api/general-api.d.cts +8 -8
- package/dist/api/general-api.d.ts +8 -8
- package/dist/api/general-api.js +4 -4
- package/dist/api/users-api.cjs +1 -1
- package/dist/api/users-api.cjs.map +1 -1
- package/dist/api/users-api.d.cts +1 -1
- package/dist/api/users-api.d.ts +1 -1
- package/dist/api/users-api.js +5 -5
- package/dist/appSlice/constants.cjs +1 -0
- package/dist/appSlice/constants.cjs.map +1 -1
- package/dist/appSlice/constants.d.cts +5 -0
- package/dist/appSlice/constants.d.ts +5 -0
- package/dist/appSlice/constants.js +1 -1
- package/dist/appSlice/index.cjs +7 -3
- package/dist/appSlice/index.cjs.map +1 -1
- package/dist/appSlice/index.js +3 -3
- package/dist/appSlice/mocks.cjs +7 -3
- package/dist/appSlice/mocks.cjs.map +1 -1
- package/dist/appSlice/mocks.js +3 -3
- package/dist/appSlice/thunks.cjs +82 -23
- package/dist/appSlice/thunks.cjs.map +1 -1
- package/dist/appSlice/thunks.js +25 -25
- package/dist/auth.cjs.map +1 -1
- package/dist/auth.js +3 -3
- package/dist/{chunk-MZNANSS2.js → chunk-4DOSYAJY.js} +2 -2
- package/dist/{chunk-4E7ZSEFL.js → chunk-4UJXT6RF.js} +3 -3
- package/dist/{chunk-VUFRP6P3.js → chunk-5HYHE4HO.js} +2 -2
- package/dist/chunk-5HYHE4HO.js.map +1 -0
- package/dist/{chunk-ZJW3QIPM.js → chunk-66NK2ZV2.js} +2 -2
- package/dist/{chunk-PGFVHKP5.js → chunk-AVCIWAZB.js} +2 -2
- package/dist/{chunk-RS37Y2PQ.js → chunk-BNSSPYCA.js} +4 -4
- package/dist/chunk-BNSSPYCA.js.map +1 -0
- package/dist/{chunk-QEKN5R7E.js → chunk-CEEXZF5E.js} +4 -4
- package/dist/chunk-CEEXZF5E.js.map +1 -0
- package/dist/{chunk-UGSLGUS6.js → chunk-CWZKWW74.js} +2 -2
- package/dist/{chunk-FQW72QFK.js → chunk-DE25YP6N.js} +62 -54
- package/dist/chunk-DE25YP6N.js.map +1 -0
- package/dist/{chunk-6KGTHJKC.js → chunk-DXJ2WS3N.js} +9 -5
- package/dist/chunk-DXJ2WS3N.js.map +1 -0
- package/dist/{chunk-ZIUUV35J.js → chunk-DYN7AU7R.js} +9 -9
- package/dist/{chunk-JXQUFKID.js → chunk-GRVTVLIZ.js} +7 -2
- package/dist/chunk-GRVTVLIZ.js.map +1 -0
- package/dist/{chunk-KC7SKI3U.js → chunk-HLTP624H.js} +8 -5
- package/dist/{chunk-KC7SKI3U.js.map → chunk-HLTP624H.js.map} +1 -1
- package/dist/{chunk-7PRZYHDP.js → chunk-I6JE3OLT.js} +8 -8
- package/dist/{chunk-ABJLRDCO.js → chunk-IY76MO6R.js} +2 -2
- package/dist/{chunk-MPYYSFPL.js → chunk-J74LNK6P.js} +11 -11
- package/dist/{chunk-YWHRAPDQ.js → chunk-JOK26PI7.js} +51 -18
- package/dist/chunk-JOK26PI7.js.map +1 -0
- package/dist/{chunk-KJNNEDRV.js → chunk-JZXNRDO2.js} +2 -2
- package/dist/{chunk-6XVREXI4.js → chunk-KGSJ7CSA.js} +12 -3
- package/dist/{chunk-6XVREXI4.js.map → chunk-KGSJ7CSA.js.map} +1 -1
- package/dist/{chunk-OOICURFL.js → chunk-KJJ47UIO.js} +48 -2
- package/dist/chunk-KJJ47UIO.js.map +1 -0
- package/dist/{chunk-7C4SQBEE.js → chunk-MRXTMI6O.js} +1 -1
- package/dist/chunk-MRXTMI6O.js.map +1 -0
- package/dist/{chunk-HFOTAPIJ.js → chunk-PY6ID7TL.js} +2 -1
- package/dist/chunk-PY6ID7TL.js.map +1 -0
- package/dist/{chunk-NQIP7VFB.js → chunk-VCTZ25Q5.js} +9 -9
- package/dist/{chunk-YY6SKZDF.js → chunk-W37ETKI6.js} +3 -12
- package/dist/chunk-W37ETKI6.js.map +1 -0
- package/dist/{chunk-QHK7GGV4.js → chunk-ZZ3YDCYZ.js} +3 -3
- package/dist/commonConstants.cjs.map +1 -1
- package/dist/commonConstants.d.cts +6 -5
- package/dist/commonConstants.d.ts +6 -5
- package/dist/commonConstants.js +2 -2
- package/dist/commonSelectors.cjs +8 -18
- package/dist/commonSelectors.cjs.map +1 -1
- package/dist/commonSelectors.js +9 -9
- package/dist/constants.cjs +1 -0
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +2 -2
- package/dist/deploymentsSlice/constants.js +2 -2
- package/dist/deploymentsSlice/index.cjs.map +1 -1
- package/dist/deploymentsSlice/index.d.cts +2 -2
- package/dist/deploymentsSlice/index.d.ts +2 -2
- package/dist/deploymentsSlice/index.js +3 -3
- package/dist/deploymentsSlice/mocks.cjs.map +1 -1
- package/dist/deploymentsSlice/mocks.js +3 -3
- package/dist/deploymentsSlice/selectors.cjs +6 -0
- package/dist/deploymentsSlice/selectors.cjs.map +1 -1
- package/dist/deploymentsSlice/selectors.d.cts +22 -1
- package/dist/deploymentsSlice/selectors.d.ts +22 -1
- package/dist/deploymentsSlice/selectors.js +5 -3
- package/dist/deploymentsSlice/thunks.cjs +84 -23
- package/dist/deploymentsSlice/thunks.cjs.map +1 -1
- package/dist/deploymentsSlice/thunks.d.cts +14 -1
- package/dist/deploymentsSlice/thunks.d.ts +14 -1
- package/dist/deploymentsSlice/thunks.js +27 -25
- package/dist/devicesSlice/constants.js +2 -2
- package/dist/devicesSlice/index.js +3 -3
- package/dist/devicesSlice/mocks.js +3 -3
- package/dist/devicesSlice/selectors.cjs.map +1 -1
- package/dist/devicesSlice/selectors.js +3 -3
- package/dist/devicesSlice/thunks.cjs +82 -23
- package/dist/devicesSlice/thunks.cjs.map +1 -1
- package/dist/devicesSlice/thunks.js +25 -25
- package/dist/liststatehook.cjs +6 -3
- package/dist/liststatehook.cjs.map +1 -1
- package/dist/liststatehook.d.cts +4 -2
- package/dist/liststatehook.d.ts +4 -2
- package/dist/liststatehook.js +3 -3
- package/dist/locationutils.cjs +6 -3
- package/dist/locationutils.cjs.map +1 -1
- package/dist/locationutils.d.cts +3 -1
- package/dist/locationutils.d.ts +3 -1
- package/dist/locationutils.js +3 -3
- package/dist/monitorSlice/index.js +3 -3
- package/dist/monitorSlice/mocks.js +3 -3
- package/dist/monitorSlice/thunks.cjs +62 -12
- package/dist/monitorSlice/thunks.cjs.map +1 -1
- package/dist/monitorSlice/thunks.js +21 -21
- package/dist/onboardingSlice/thunks.cjs +82 -23
- package/dist/onboardingSlice/thunks.cjs.map +1 -1
- package/dist/onboardingSlice/thunks.js +25 -25
- package/dist/organizationSlice/constants.js +2 -2
- package/dist/organizationSlice/index.js +3 -3
- package/dist/organizationSlice/mocks.js +3 -3
- package/dist/organizationSlice/selectors.cjs +0 -20
- package/dist/organizationSlice/selectors.cjs.map +1 -1
- package/dist/organizationSlice/selectors.d.cts +1 -155
- package/dist/organizationSlice/selectors.d.ts +1 -155
- package/dist/organizationSlice/selectors.js +3 -5
- package/dist/organizationSlice/thunks.cjs +105 -46
- package/dist/organizationSlice/thunks.cjs.map +1 -1
- package/dist/organizationSlice/thunks.d.cts +5 -5
- package/dist/organizationSlice/thunks.d.ts +5 -5
- package/dist/organizationSlice/thunks.js +25 -25
- package/dist/releasesSlice/index.cjs +46 -0
- package/dist/releasesSlice/index.cjs.map +1 -1
- package/dist/releasesSlice/index.d.cts +51 -3
- package/dist/releasesSlice/index.d.ts +51 -3
- package/dist/releasesSlice/index.js +3 -3
- package/dist/releasesSlice/mocks.cjs +46 -0
- package/dist/releasesSlice/mocks.cjs.map +1 -1
- package/dist/releasesSlice/mocks.d.cts +13 -0
- package/dist/releasesSlice/mocks.d.ts +13 -0
- package/dist/releasesSlice/mocks.js +3 -3
- package/dist/releasesSlice/selectors.cjs +13 -0
- package/dist/releasesSlice/selectors.cjs.map +1 -1
- package/dist/releasesSlice/selectors.d.cts +186 -1
- package/dist/releasesSlice/selectors.d.ts +186 -1
- package/dist/releasesSlice/selectors.js +12 -4
- package/dist/releasesSlice/thunks.cjs +105 -20
- package/dist/releasesSlice/thunks.cjs.map +1 -1
- package/dist/releasesSlice/thunks.d.cts +68 -3
- package/dist/releasesSlice/thunks.d.ts +68 -3
- package/dist/releasesSlice/thunks.js +26 -22
- package/dist/selectors.cjs +19 -20
- package/dist/selectors.cjs.map +1 -1
- package/dist/selectors.d.cts +5 -3
- package/dist/selectors.d.ts +5 -3
- package/dist/selectors.js +19 -11
- package/dist/sockethook.cjs.map +1 -1
- package/dist/sockethook.js +2 -2
- package/dist/store.cjs +53 -3
- package/dist/store.cjs.map +1 -1
- package/dist/store.d.cts +11 -110
- package/dist/store.d.ts +11 -110
- package/dist/store.js +12 -12
- package/dist/storehooks.cjs +149 -60
- package/dist/storehooks.cjs.map +1 -1
- package/dist/storehooks.js +27 -28
- package/dist/storehooks.js.map +1 -1
- package/dist/thunks.cjs +152 -56
- package/dist/thunks.cjs.map +1 -1
- package/dist/thunks.d.cts +3 -3
- package/dist/thunks.d.ts +3 -3
- package/dist/thunks.js +33 -27
- package/dist/useDeploymentDevice.cjs +82 -23
- package/dist/useDeploymentDevice.cjs.map +1 -1
- package/dist/useDeploymentDevice.js +25 -25
- package/dist/usersSlice/constants.js +2 -2
- package/dist/usersSlice/index.js +3 -3
- package/dist/usersSlice/mocks.js +3 -3
- package/dist/usersSlice/selectors.cjs.map +1 -1
- package/dist/usersSlice/selectors.js +4 -4
- package/dist/usersSlice/thunks.cjs +84 -25
- package/dist/usersSlice/thunks.cjs.map +1 -1
- package/dist/usersSlice/thunks.d.cts +18 -10
- package/dist/usersSlice/thunks.d.ts +18 -10
- package/dist/usersSlice/thunks.js +27 -27
- package/dist/utils.cjs +1 -1
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.js +3 -3
- package/package.json +5 -5
- package/dist/chunk-6KGTHJKC.js.map +0 -1
- package/dist/chunk-7C4SQBEE.js.map +0 -1
- package/dist/chunk-FQW72QFK.js.map +0 -1
- package/dist/chunk-HFOTAPIJ.js.map +0 -1
- package/dist/chunk-JXQUFKID.js.map +0 -1
- package/dist/chunk-OOICURFL.js.map +0 -1
- package/dist/chunk-QEKN5R7E.js.map +0 -1
- package/dist/chunk-RS37Y2PQ.js.map +0 -1
- package/dist/chunk-VUFRP6P3.js.map +0 -1
- package/dist/chunk-YWHRAPDQ.js.map +0 -1
- package/dist/chunk-YY6SKZDF.js.map +0 -1
- /package/dist/{chunk-MZNANSS2.js.map → chunk-4DOSYAJY.js.map} +0 -0
- /package/dist/{chunk-4E7ZSEFL.js.map → chunk-4UJXT6RF.js.map} +0 -0
- /package/dist/{chunk-ZJW3QIPM.js.map → chunk-66NK2ZV2.js.map} +0 -0
- /package/dist/{chunk-PGFVHKP5.js.map → chunk-AVCIWAZB.js.map} +0 -0
- /package/dist/{chunk-UGSLGUS6.js.map → chunk-CWZKWW74.js.map} +0 -0
- /package/dist/{chunk-ZIUUV35J.js.map → chunk-DYN7AU7R.js.map} +0 -0
- /package/dist/{chunk-7PRZYHDP.js.map → chunk-I6JE3OLT.js.map} +0 -0
- /package/dist/{chunk-ABJLRDCO.js.map → chunk-IY76MO6R.js.map} +0 -0
- /package/dist/{chunk-MPYYSFPL.js.map → chunk-J74LNK6P.js.map} +0 -0
- /package/dist/{chunk-KJNNEDRV.js.map → chunk-JZXNRDO2.js.map} +0 -0
- /package/dist/{chunk-NQIP7VFB.js.map → chunk-VCTZ25Q5.js.map} +0 -0
- /package/dist/{chunk-QHK7GGV4.js.map → chunk-ZZ3YDCYZ.js.map} +0 -0
package/dist/storehooks.cjs
CHANGED
|
@@ -37,7 +37,7 @@ module.exports = __toCommonJS(storehooks_exports);
|
|
|
37
37
|
var import_react2 = require("react");
|
|
38
38
|
var import_react_redux2 = require("react-redux");
|
|
39
39
|
var import_helpers15 = require("@northern.tech/utils/helpers");
|
|
40
|
-
var
|
|
40
|
+
var import_dayjs2 = __toESM(require("dayjs"), 1);
|
|
41
41
|
var import_duration = __toESM(require("dayjs/plugin/duration.js"), 1);
|
|
42
42
|
var import_universal_cookie6 = __toESM(require("universal-cookie"), 1);
|
|
43
43
|
|
|
@@ -61,6 +61,7 @@ var emptyChartSelection = { software: "", group: "", chartType: chartTypes.bar.k
|
|
|
61
61
|
var defaultReportType = "distribution";
|
|
62
62
|
var defaultReports = [{ ...emptyChartSelection, group: null, attribute: "artifact_name", type: defaultReportType }];
|
|
63
63
|
var locations = {
|
|
64
|
+
cn: { key: "cn", title: "China", location: "cn.hosted.mender.io" },
|
|
64
65
|
eu: { key: "eu", title: "EU", location: "eu.hosted.mender.io" },
|
|
65
66
|
us: { key: "us", title: "US", location: "hosted.mender.io" }
|
|
66
67
|
};
|
|
@@ -783,6 +784,7 @@ var initialState = {
|
|
|
783
784
|
},
|
|
784
785
|
// return boolean rather than organization details
|
|
785
786
|
features: {
|
|
787
|
+
hasAiEnabled: false,
|
|
786
788
|
hasAuditlogs: false,
|
|
787
789
|
hasDeltaProgress: false,
|
|
788
790
|
hasMultitenancy: false,
|
|
@@ -791,7 +793,6 @@ var initialState = {
|
|
|
791
793
|
hasFeedbackEnabled: false,
|
|
792
794
|
hasMonitor: false,
|
|
793
795
|
hasReporting: false,
|
|
794
|
-
isDemoMode: false,
|
|
795
796
|
isHosted: true,
|
|
796
797
|
isEnterprise: false
|
|
797
798
|
},
|
|
@@ -842,8 +843,12 @@ var appSlice = (0, import_toolkit.createSlice)({
|
|
|
842
843
|
};
|
|
843
844
|
},
|
|
844
845
|
setSnackbar: (state, { payload }) => {
|
|
845
|
-
if (typeof payload === "string") {
|
|
846
|
-
state.snackbar
|
|
846
|
+
if (typeof payload === "string" || payload instanceof String) {
|
|
847
|
+
state.snackbar = {
|
|
848
|
+
...initialState.snackbar,
|
|
849
|
+
message: payload,
|
|
850
|
+
open: !!payload
|
|
851
|
+
};
|
|
847
852
|
return;
|
|
848
853
|
}
|
|
849
854
|
const { message, autoHideDuration, action, preventClickToCopy = false } = payload;
|
|
@@ -1435,6 +1440,23 @@ var initialState7 = {
|
|
|
1435
1440
|
}
|
|
1436
1441
|
*/
|
|
1437
1442
|
},
|
|
1443
|
+
deltaJobs: {
|
|
1444
|
+
/*
|
|
1445
|
+
[jobId]: {
|
|
1446
|
+
id: '',
|
|
1447
|
+
...
|
|
1448
|
+
}
|
|
1449
|
+
*/
|
|
1450
|
+
},
|
|
1451
|
+
deltaJobsList: {
|
|
1452
|
+
...import_constants5.DEVICE_LIST_DEFAULTS,
|
|
1453
|
+
jobIds: [],
|
|
1454
|
+
total: 0,
|
|
1455
|
+
sort: {
|
|
1456
|
+
direction: import_constants5.SORTING_OPTIONS.desc,
|
|
1457
|
+
key: "started"
|
|
1458
|
+
}
|
|
1459
|
+
},
|
|
1438
1460
|
releasesList: {
|
|
1439
1461
|
...import_constants5.DEVICE_LIST_DEFAULTS,
|
|
1440
1462
|
searchedIds: [],
|
|
@@ -1453,6 +1475,7 @@ var initialState7 = {
|
|
|
1453
1475
|
},
|
|
1454
1476
|
tags: [],
|
|
1455
1477
|
updateTypes: [],
|
|
1478
|
+
selectedJob: null,
|
|
1456
1479
|
/*
|
|
1457
1480
|
* Return single release with corresponding Artifacts
|
|
1458
1481
|
*/
|
|
@@ -1485,6 +1508,34 @@ var releaseSlice = (0, import_toolkit7.createSlice)({
|
|
|
1485
1508
|
},
|
|
1486
1509
|
setReleaseListState: (state, action) => {
|
|
1487
1510
|
state.releasesList = action.payload;
|
|
1511
|
+
},
|
|
1512
|
+
receivedDeltaJobs: (state, action) => {
|
|
1513
|
+
const { jobs, total } = action.payload;
|
|
1514
|
+
state.deltaJobs = jobs.reduce(
|
|
1515
|
+
(accu, job) => {
|
|
1516
|
+
accu[job.id] = {
|
|
1517
|
+
...accu[job.id],
|
|
1518
|
+
...job
|
|
1519
|
+
};
|
|
1520
|
+
return accu;
|
|
1521
|
+
},
|
|
1522
|
+
{ ...state.deltaJobs }
|
|
1523
|
+
);
|
|
1524
|
+
state.deltaJobsList.jobIds = jobs.map((job) => job.id);
|
|
1525
|
+
state.deltaJobsList.total = total;
|
|
1526
|
+
},
|
|
1527
|
+
receivedDeltaJobDetails: (state, action) => {
|
|
1528
|
+
const job = action.payload;
|
|
1529
|
+
state.deltaJobs[job.id] = {
|
|
1530
|
+
...state.deltaJobs[job.id],
|
|
1531
|
+
...job
|
|
1532
|
+
};
|
|
1533
|
+
},
|
|
1534
|
+
setDeltaJobsListState: (state, action) => {
|
|
1535
|
+
state.deltaJobsList = { ...state.deltaJobsList, ...action.payload };
|
|
1536
|
+
},
|
|
1537
|
+
setSelectedJob: (state, action) => {
|
|
1538
|
+
state.selectedJob = action.payload;
|
|
1488
1539
|
}
|
|
1489
1540
|
}
|
|
1490
1541
|
});
|
|
@@ -1701,6 +1752,10 @@ var getDeploymentsById = (state) => state.deployments.byId;
|
|
|
1701
1752
|
var getDeploymentsByStatus = (state) => state.deployments.byStatus;
|
|
1702
1753
|
var getSelectedDeploymentDeviceIds = (state) => state.deployments.selectedDeviceIds;
|
|
1703
1754
|
var getDeploymentsSelectionState = (state) => state.deployments.selectionState;
|
|
1755
|
+
var getDeploymentById = (0, import_toolkit10.createSelector)(
|
|
1756
|
+
[getDeploymentsById, (_, deploymentId) => deploymentId],
|
|
1757
|
+
(deploymentsById, deploymentId = "") => deploymentsById[deploymentId]
|
|
1758
|
+
);
|
|
1704
1759
|
var getMappedDeploymentSelection = (0, import_toolkit10.createSelector)(
|
|
1705
1760
|
[getDeploymentsSelectionState, (_, deploymentsState) => deploymentsState, getDeploymentsById],
|
|
1706
1761
|
(selectionState, deploymentsState, deploymentsById) => {
|
|
@@ -1850,8 +1905,6 @@ var getOnboarding = (state) => state.onboarding;
|
|
|
1850
1905
|
|
|
1851
1906
|
// src/organizationSlice/selectors.ts
|
|
1852
1907
|
var import_toolkit12 = require("@reduxjs/toolkit");
|
|
1853
|
-
var import_dayjs = __toESM(require("dayjs"), 1);
|
|
1854
|
-
var import_relativeTime = __toESM(require("dayjs/plugin/relativeTime.js"), 1);
|
|
1855
1908
|
var getOrganization = (state) => state.organization.organization;
|
|
1856
1909
|
var getExternalIntegrations = (state) => state.organization.externalDeviceIntegrations;
|
|
1857
1910
|
var getAuditlogState = (state) => state.organization.auditlog.selectionState;
|
|
@@ -1880,12 +1933,6 @@ var getAuditLogEntry = (0, import_toolkit12.createSelector)([getAuditLog, getAud
|
|
|
1880
1933
|
const [eventAction, eventTime] = atob(selectedId).split("|");
|
|
1881
1934
|
return events.find((item) => item.action === eventAction && item.time === eventTime);
|
|
1882
1935
|
});
|
|
1883
|
-
import_dayjs.default.extend(import_relativeTime.default);
|
|
1884
|
-
var newPricingIntroduction = (0, import_dayjs.default)("2025-06-03T00:00");
|
|
1885
|
-
var getHasCurrentPricing = (0, import_toolkit12.createSelector)(
|
|
1886
|
-
[getOrganization],
|
|
1887
|
-
({ id }) => !!id && (0, import_dayjs.default)(parseInt(id.substring(0, 8), 16) * 1e3) >= newPricingIntroduction
|
|
1888
|
-
);
|
|
1889
1936
|
|
|
1890
1937
|
// src/releasesSlice/selectors.ts
|
|
1891
1938
|
var import_toolkit13 = require("@reduxjs/toolkit");
|
|
@@ -2055,6 +2102,10 @@ var getHasReleases = (0, import_toolkit13.createSelector)(
|
|
|
2055
2102
|
);
|
|
2056
2103
|
var getSelectedRelease = (0, import_toolkit13.createSelector)([getReleasesById, getSelectedReleaseId], (byId, id) => byId[id || ""] ?? {});
|
|
2057
2104
|
var getSelectedReleases = (0, import_toolkit13.createSelector)([getReleaseListState, getReleasesList], ({ selection }, releases) => selection.map((index) => releases[index]));
|
|
2105
|
+
var getDeltaJobsById = (state) => state.releases.deltaJobs;
|
|
2106
|
+
var getDeltaJobById = (0, import_toolkit13.createSelector)([getDeltaJobsById, (_, jobId) => jobId], (byId, jobId) => byId[jobId]);
|
|
2107
|
+
var getSelectedJobId = (state) => state.releases.selectedJob;
|
|
2108
|
+
var getSelectedJob = (0, import_toolkit13.createSelector)([getDeltaJobsById, getSelectedJobId], (byId, jobId) => byId[jobId || ""]);
|
|
2058
2109
|
|
|
2059
2110
|
// src/usersSlice/selectors.ts
|
|
2060
2111
|
var import_toolkit14 = require("@reduxjs/toolkit");
|
|
@@ -2314,7 +2365,7 @@ var import_universal_cookie2 = __toESM(require("universal-cookie"), 1);
|
|
|
2314
2365
|
// src/api/general-api.ts
|
|
2315
2366
|
var import_axios = __toESM(require("axios"), 1);
|
|
2316
2367
|
var unauthorizedRedirect = (error) => {
|
|
2317
|
-
if (!(0, import_axios.isCancel)(error) && error.response?.status === 401 && getToken()) {
|
|
2368
|
+
if (!(0, import_axios.isCancel)(error) && error.response?.status === 401 && getToken() && !window.location.pathname.endsWith("/subscription")) {
|
|
2318
2369
|
cleanUp();
|
|
2319
2370
|
window.location.replace("/ui/");
|
|
2320
2371
|
}
|
|
@@ -2904,6 +2955,15 @@ var saveDeltaDeploymentsConfig = createAppAsyncThunk(
|
|
|
2904
2955
|
});
|
|
2905
2956
|
}
|
|
2906
2957
|
);
|
|
2958
|
+
var generateDeploymentLogAnalysis = createAppAsyncThunk(
|
|
2959
|
+
`${sliceName2}/generateDeploymentLogAnalysis`,
|
|
2960
|
+
({ deploymentId, deviceId }, { dispatch, rejectWithValue }) => general_api_default.get(`${import_constants5.apiRoot}/v1alpha1/deployments/deployments/${deploymentId}/devices/${deviceId}/log/explain`).then(({ data: result }) => Promise.resolve(result)).catch((err) => {
|
|
2961
|
+
if (err.response.status === 429) {
|
|
2962
|
+
return rejectWithValue(err.response);
|
|
2963
|
+
}
|
|
2964
|
+
commonErrorHandler(err, "There was an error analysing the deployment log:", dispatch);
|
|
2965
|
+
})
|
|
2966
|
+
);
|
|
2907
2967
|
|
|
2908
2968
|
// src/devicesSlice/thunks.tsx
|
|
2909
2969
|
var import_react_router_dom = require("react-router-dom");
|
|
@@ -2983,15 +3043,15 @@ var removeDevicesFromGroup = createAppAsyncThunk(
|
|
|
2983
3043
|
)
|
|
2984
3044
|
);
|
|
2985
3045
|
var getGroupNotification = (newGroup, selectedGroup) => {
|
|
2986
|
-
const
|
|
3046
|
+
const successMessage = "The group was updated successfully";
|
|
2987
3047
|
if (newGroup === selectedGroup) {
|
|
2988
|
-
return { message:
|
|
3048
|
+
return { message: successMessage, autoHideDuration: TIMEOUTS.fiveSeconds };
|
|
2989
3049
|
}
|
|
2990
3050
|
return {
|
|
2991
3051
|
action: "",
|
|
2992
3052
|
autoHideDuration: TIMEOUTS.fiveSeconds,
|
|
2993
3053
|
message: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
|
|
2994
|
-
|
|
3054
|
+
successMessage,
|
|
2995
3055
|
" - ",
|
|
2996
3056
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_router_dom.Link, { to: `/devices?inventory=group:eq:${newGroup}`, children: "click here" }),
|
|
2997
3057
|
" to see it."
|
|
@@ -3523,9 +3583,10 @@ var getDeviceConnect = createAppAsyncThunk(
|
|
|
3523
3583
|
var updateTypeMap = { deploymentUpdate: "check-update", inventoryUpdate: "send-inventory" };
|
|
3524
3584
|
var triggerDeviceUpdate = createAppAsyncThunk(
|
|
3525
3585
|
`${sliceName3}/triggerDeviceUpdate`,
|
|
3526
|
-
({ id, type }, { dispatch }) => general_api_default.post(`${import_constants5.deviceConnect}/devices/${id}/${updateTypeMap[type] ?? updateTypeMap.deploymentUpdate}`).then(
|
|
3527
|
-
(
|
|
3528
|
-
|
|
3586
|
+
({ id, type }, { dispatch }) => general_api_default.post(`${import_constants5.deviceConnect}/devices/${id}/${updateTypeMap[type] ?? updateTypeMap.deploymentUpdate}`).catch((err) => commonErrorHandler(err, `The request couldn\u2019t be sent.`, dispatch)).then(() => {
|
|
3587
|
+
dispatch(setSnackbar3("Request has been sent."));
|
|
3588
|
+
return new Promise((resolve) => setTimeout(() => resolve(dispatch(getDeviceById2(id))), TIMEOUTS.threeSeconds));
|
|
3589
|
+
})
|
|
3529
3590
|
);
|
|
3530
3591
|
var getSessionDetails = createAppAsyncThunk(
|
|
3531
3592
|
`${sliceName3}/getSessionDetails`,
|
|
@@ -3961,13 +4022,13 @@ var advanceOnboarding = createAppAsyncThunk(`${sliceName5}/advanceOnboarding`, (
|
|
|
3961
4022
|
// src/organizationSlice/thunks.ts
|
|
3962
4023
|
var import_MenderTypes2 = require("@northern.tech/types/MenderTypes");
|
|
3963
4024
|
var import_helpers11 = require("@northern.tech/utils/helpers");
|
|
3964
|
-
var
|
|
4025
|
+
var import_dayjs = __toESM(require("dayjs"), 1);
|
|
3965
4026
|
var import_utc = __toESM(require("dayjs/plugin/utc.js"), 1);
|
|
3966
4027
|
var import_jwt_decode = require("jwt-decode");
|
|
3967
4028
|
var import_md5 = __toESM(require("md5"), 1);
|
|
3968
4029
|
var import_universal_cookie4 = __toESM(require("universal-cookie"), 1);
|
|
3969
4030
|
var cookies4 = new import_universal_cookie4.default();
|
|
3970
|
-
|
|
4031
|
+
import_dayjs.default.extend(import_utc.default);
|
|
3971
4032
|
var { setAnnouncement, setSnackbar: setSnackbar4 } = actions_default;
|
|
3972
4033
|
var { page: defaultPage4, perPage: defaultPerPage4 } = import_constants5.DEVICE_LIST_DEFAULTS;
|
|
3973
4034
|
var cancelRequest = createAppAsyncThunk(`${sliceName6}/cancelRequest`, (reason, { dispatch, getState }) => {
|
|
@@ -3994,10 +4055,12 @@ var createOrganizationTrial = createAppAsyncThunk(`${sliceName6}/createOrganizat
|
|
|
3994
4055
|
const targetLocation = getTargetLocation(key);
|
|
3995
4056
|
const target = `${targetLocation}${import_constants5.tenantadmApiUrlv2}/tenants/trial`;
|
|
3996
4057
|
return general_api_default.postUnauthorized(target, data).catch((err) => {
|
|
3997
|
-
if (err.response
|
|
4058
|
+
if (err.response?.status >= 400 && err.response?.status < 500) {
|
|
3998
4059
|
dispatch(setSnackbar4({ message: err.response.data.error, autoHideDuration: TIMEOUTS.fiveSeconds }));
|
|
3999
|
-
|
|
4060
|
+
} else {
|
|
4061
|
+
dispatch(setSnackbar4({ message: "There was an error creating your account", autoHideDuration: TIMEOUTS.fiveSeconds }));
|
|
4000
4062
|
}
|
|
4063
|
+
return Promise.reject(err);
|
|
4001
4064
|
}).then(({ headers }) => {
|
|
4002
4065
|
cookies4.remove("oauth");
|
|
4003
4066
|
cookies4.remove("externalID");
|
|
@@ -4179,32 +4242,29 @@ var getUserOrganization = createAppAsyncThunk(
|
|
|
4179
4242
|
);
|
|
4180
4243
|
var getUserBilling = createAppAsyncThunk(
|
|
4181
4244
|
`${sliceName6}/getUserBilling`,
|
|
4182
|
-
(_, { dispatch }) => general_api_default.get(`${import_constants5.tenantadmApiUrlv2}/billing/profile`).then((res) => dispatch(actions6.setBillingProfile(res.data)))
|
|
4245
|
+
(_, { dispatch }) => general_api_default.get(`${import_constants5.tenantadmApiUrlv2}/billing/profile`).catch((err) => commonErrorHandler(err, "There was an error getting your billing profile:", dispatch, commonErrorFallback)).then((res) => dispatch(actions6.setBillingProfile(res.data)))
|
|
4183
4246
|
);
|
|
4184
|
-
var getUserSubscription = createAppAsyncThunk(`${sliceName6}/getUserSubscription`, (_, { dispatch }) => {
|
|
4185
|
-
const
|
|
4186
|
-
|
|
4247
|
+
var getUserSubscription = createAppAsyncThunk(`${sliceName6}/getUserSubscription`, async (_, { dispatch }) => {
|
|
4248
|
+
const currentSubscription = await dispatch(getCurrentSubscription()).unwrap();
|
|
4249
|
+
const currentPreview = await dispatch(getBillingPreview({ preview_mode: import_MenderTypes2.PreviewRequest.preview_mode.NEXT })).unwrap();
|
|
4250
|
+
return dispatch(actions6.setSubscription({ ...currentPreview, ...currentSubscription }));
|
|
4187
4251
|
});
|
|
4188
4252
|
var getBillingPreview = createAppAsyncThunk(
|
|
4189
4253
|
`${sliceName6}/getBillingPreview`,
|
|
4190
|
-
(order) => general_api_default.post(`${import_constants5.tenantadmApiUrlv2}/billing/subscription/invoices/preview`, order).then(
|
|
4191
|
-
({ data }) => order.preview_mode === "recurring" ? { ...parseSubscriptionPreview(data.lines), total: data.total } : data
|
|
4192
|
-
)
|
|
4254
|
+
(order, { dispatch }) => general_api_default.post(`${import_constants5.tenantadmApiUrlv2}/billing/subscription/invoices/preview`, order).catch((err) => commonErrorHandler(err, "There was an error getting your billing information:", dispatch, commonErrorFallback)).then(({ data }) => order.preview_mode === "recurring" ? { ...parseSubscriptionPreview(data.lines), total: data.total } : data)
|
|
4193
4255
|
);
|
|
4194
4256
|
var getCurrentSubscription = createAppAsyncThunk(
|
|
4195
4257
|
`${sliceName6}/getCurrentSubscription`,
|
|
4196
|
-
() => general_api_default.get(`${import_constants5.tenantadmApiUrlv2}/billing/subscription`).then((res) => res.data)
|
|
4258
|
+
(_, { dispatch }) => general_api_default.get(`${import_constants5.tenantadmApiUrlv2}/billing/subscription`).then((res) => res.data).catch((err) => {
|
|
4259
|
+
if (err.response && err.response.status === 404) {
|
|
4260
|
+
throw new Error("Request failed with status code 404");
|
|
4261
|
+
}
|
|
4262
|
+
return commonErrorHandler(err, "There was an error retrieving your current subscription", dispatch, commonErrorFallback);
|
|
4263
|
+
})
|
|
4197
4264
|
);
|
|
4198
|
-
var successMessage = (planId) => `Thank you! You have successfully subscribed to the ${PLANS[planId].name} plan. You can view and edit your billing details on the Organization and billing page.`;
|
|
4199
4265
|
var requestPlanUpgrade = createAppAsyncThunk(
|
|
4200
4266
|
`${sliceName6}/requestPlanUpgrade`,
|
|
4201
|
-
(order, { dispatch }) => general_api_default.post(`${import_constants5.tenantadmApiUrlv2}/billing/subscription`, order).catch((err) => commonErrorHandler(err, "There was an error sending your request", dispatch, commonErrorFallback)).then(
|
|
4202
|
-
() => Promise.all([
|
|
4203
|
-
dispatch(setSnackbar4(successMessage(order.plan))),
|
|
4204
|
-
setTimeout(() => dispatch(getDeviceLimit2()), TIMEOUTS.threeSeconds),
|
|
4205
|
-
dispatch(getUserOrganization())
|
|
4206
|
-
])
|
|
4207
|
-
)
|
|
4267
|
+
(order, { dispatch }) => general_api_default.post(`${import_constants5.tenantadmApiUrlv2}/billing/subscription`, order).catch((err) => commonErrorHandler(err, "There was an error sending your request", dispatch, commonErrorFallback)).then(() => Promise.all([setTimeout(() => dispatch(getDeviceLimit2()), TIMEOUTS.threeSeconds), dispatch(getUserOrganization())]))
|
|
4208
4268
|
);
|
|
4209
4269
|
var sendSupportMessage = createAppAsyncThunk(
|
|
4210
4270
|
`${sliceName6}/sendSupportMessage`,
|
|
@@ -4321,7 +4381,7 @@ var commonFields = {
|
|
|
4321
4381
|
issues: { parse: void 0, select: defaultSelector, target: "selectedIssues" },
|
|
4322
4382
|
open: { parse: Boolean, select: defaultSelector, target: "open" }
|
|
4323
4383
|
};
|
|
4324
|
-
var formatReleases = ({ pageState: { searchTerm, selectedTags = [], tab, type } }) => Object.entries({ name: searchTerm, tab, type }).reduce(
|
|
4384
|
+
var formatReleases = ({ pageState: { id, searchTerm, selectedTags = [], tab, type } }) => Object.entries({ name: searchTerm, tab, type, id }).reduce(
|
|
4325
4385
|
(accu, [key, value]) => value ? [...accu, `${key}=${value}`] : accu,
|
|
4326
4386
|
selectedTags.map((tag) => `tag=${tag}`)
|
|
4327
4387
|
).join("&");
|
|
@@ -4417,6 +4477,18 @@ var getArtifactUrl = createAppAsyncThunk(
|
|
|
4417
4477
|
return dispatch(actions7.receiveRelease(release));
|
|
4418
4478
|
})
|
|
4419
4479
|
);
|
|
4480
|
+
var pollLocation = async (location, attempt = 1, maxAttempts = 5, delay = TIMEOUTS.oneSecond) => {
|
|
4481
|
+
try {
|
|
4482
|
+
await general_api_default.get(location);
|
|
4483
|
+
return Promise.resolve();
|
|
4484
|
+
} catch {
|
|
4485
|
+
if (attempt >= maxAttempts) {
|
|
4486
|
+
throw new Error(`Couldn't get ${location} after ${maxAttempts} attempts`);
|
|
4487
|
+
}
|
|
4488
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
4489
|
+
return pollLocation(location, attempt + 1, maxAttempts, delay);
|
|
4490
|
+
}
|
|
4491
|
+
};
|
|
4420
4492
|
var createArtifact = createAppAsyncThunk(`${sliceName7}/createArtifact`, ({ file, meta }, { dispatch }) => {
|
|
4421
4493
|
const formData = Object.entries(meta).reduce((accu, [key, value]) => {
|
|
4422
4494
|
if (Array.isArray(value)) {
|
|
@@ -4441,13 +4513,18 @@ var createArtifact = createAppAsyncThunk(`${sliceName7}/createArtifact`, ({ file
|
|
|
4441
4513
|
(e) => dispatch(uploadProgress3({ id: uploadId, progress: progress(e) })),
|
|
4442
4514
|
cancelSource.signal
|
|
4443
4515
|
)
|
|
4444
|
-
]).then(() => {
|
|
4445
|
-
|
|
4446
|
-
|
|
4447
|
-
|
|
4448
|
-
|
|
4449
|
-
|
|
4450
|
-
|
|
4516
|
+
]).then((tasks) => {
|
|
4517
|
+
const generateResponse = tasks[tasks.length - 1];
|
|
4518
|
+
const generateLocation = generateResponse.headers[import_constants5.headerNames.location];
|
|
4519
|
+
const location = generateLocation.replace("/generate", "");
|
|
4520
|
+
return pollLocation(location);
|
|
4521
|
+
}).then(
|
|
4522
|
+
() => Promise.all([
|
|
4523
|
+
dispatch(getReleases()),
|
|
4524
|
+
dispatch(selectRelease(meta.name)),
|
|
4525
|
+
dispatch(setSnackbar5({ message: "Upload successful", autoHideDuration: TIMEOUTS.fiveSeconds }))
|
|
4526
|
+
])
|
|
4527
|
+
).catch((err) => {
|
|
4451
4528
|
if ((0, import_axios3.isCancel)(err)) {
|
|
4452
4529
|
return dispatch(setSnackbar5({ message: "The artifact generation has been cancelled", autoHideDuration: TIMEOUTS.fiveSeconds }));
|
|
4453
4530
|
}
|
|
@@ -4670,6 +4747,20 @@ var getUpdateTypes = createAppAsyncThunk(
|
|
|
4670
4747
|
`${sliceName7}/getReleaseTypes`,
|
|
4671
4748
|
(_, { dispatch }) => general_api_default.get(`${import_constants5.deploymentsApiUrlV2}/releases/all/types`).catch((err) => commonErrorHandler(err, `Existing update types couldn't be retrieved.`, dispatch)).then(({ data: types }) => Promise.resolve(dispatch(actions7.receiveReleaseTypes(types))))
|
|
4672
4749
|
);
|
|
4750
|
+
var getDeltaGenerationJobs = createAppAsyncThunk(`${sliceName7}/getDeltaGenerationJobs`, (options = {}, { dispatch }) => {
|
|
4751
|
+
const { page = defaultPage5, perPage = defaultPerPage5, sort = {} } = options;
|
|
4752
|
+
const { key: sortKey, direction: sortDirection } = sort;
|
|
4753
|
+
const sortParam = sortKey && sortDirection ? `&sort=${sortKey}:${sortDirection}` : "";
|
|
4754
|
+
return general_api_default.get(`${import_constants5.deploymentsApiUrlV2}/deployments/releases/delta/jobs?page=${page}&per_page=${perPage}${sortParam}`).then(({ data, headers }) => {
|
|
4755
|
+
const total = Number(headers[import_constants5.headerNames.total]) || data.length;
|
|
4756
|
+
const result = { jobs: data, total };
|
|
4757
|
+
return Promise.all([dispatch(actions7.receivedDeltaJobs(result)), result]);
|
|
4758
|
+
}).catch((err) => commonErrorHandler(err, "There was an error retrieving delta generation jobs:", dispatch));
|
|
4759
|
+
});
|
|
4760
|
+
var getDeltaGenerationJobDetails = createAppAsyncThunk(
|
|
4761
|
+
`${sliceName7}/getDeltaGenerationJobDetails`,
|
|
4762
|
+
(jobId, { dispatch }) => general_api_default.get(`${import_constants5.deploymentsApiUrlV2}/deployments/releases/delta/jobs/${jobId}`).then(({ data }) => dispatch(actions7.receivedDeltaJobDetails(data))).catch((err) => commonErrorHandler(err, "There was an error retrieving delta generation job details:", dispatch))
|
|
4763
|
+
);
|
|
4673
4764
|
|
|
4674
4765
|
// src/usersSlice/thunks.ts
|
|
4675
4766
|
var import_helpers14 = require("@northern.tech/utils/helpers");
|
|
@@ -5324,23 +5415,23 @@ var setAllTooltipsReadState = createAppAsyncThunk(
|
|
|
5324
5415
|
return Promise.resolve(dispatch(actions8.setTooltipsState(updatedTips))).then(() => dispatch(saveUserSettings()));
|
|
5325
5416
|
}
|
|
5326
5417
|
);
|
|
5327
|
-
var
|
|
5418
|
+
var submitUserFeedback = createAppAsyncThunk(
|
|
5328
5419
|
`${sliceName8}/submitFeedback`,
|
|
5329
|
-
({
|
|
5330
|
-
|
|
5331
|
-
|
|
5332
|
-
|
|
5333
|
-
|
|
5334
|
-
|
|
5335
|
-
setTimeout(() => dispatch(actions8.setShowFeedbackDialog(false)), TIMEOUTS.threeSeconds);
|
|
5420
|
+
({ formId, feedback }, { dispatch }) => general_api_default.post(`${import_constants5.useradmApiUrlv2}/support/feedback/${formId}`, feedback).then(() => {
|
|
5421
|
+
if (formId === "product") {
|
|
5422
|
+
const today = /* @__PURE__ */ new Date();
|
|
5423
|
+
dispatch(saveUserSettings({ feedbackCollectedAt: today.toISOString().split("T")[0] }));
|
|
5424
|
+
setTimeout(() => dispatch(actions8.setShowFeedbackDialog(false)), TIMEOUTS.threeSeconds);
|
|
5425
|
+
}
|
|
5336
5426
|
})
|
|
5337
5427
|
);
|
|
5338
5428
|
|
|
5339
5429
|
// src/storehooks.ts
|
|
5340
5430
|
var cookies6 = new import_universal_cookie6.default();
|
|
5341
|
-
|
|
5431
|
+
import_dayjs2.default.extend(import_duration.default);
|
|
5342
5432
|
var { setDeviceListState: setDeviceListState2, setFirstLoginAfterSignup: setFirstLoginAfterSignup2, setTooltipsState, setShowStartupNotification } = actions_default;
|
|
5343
5433
|
var featureFlags = [
|
|
5434
|
+
"hasAiEnabled",
|
|
5344
5435
|
"hasAuditlogs",
|
|
5345
5436
|
"hasMultitenancy",
|
|
5346
5437
|
"hasDeltaProgress",
|
|
@@ -5365,7 +5456,6 @@ var parseEnvironmentInfo = () => (dispatch, getState) => {
|
|
|
5365
5456
|
demoArtifactPort: port,
|
|
5366
5457
|
disableOnboarding,
|
|
5367
5458
|
integrationVersion,
|
|
5368
|
-
isDemoMode,
|
|
5369
5459
|
menderVersion,
|
|
5370
5460
|
menderArtifactVersion,
|
|
5371
5461
|
metaMenderVersion
|
|
@@ -5374,8 +5464,7 @@ var parseEnvironmentInfo = () => (dispatch, getState) => {
|
|
|
5374
5464
|
environmentData = environmentDatas.reduce((accu, flag) => ({ ...accu, [flag]: mender_environment[flag] || state.app[flag] }), {});
|
|
5375
5465
|
environmentFeatures = {
|
|
5376
5466
|
...featureFlags.reduce((accu, flag) => ({ ...accu, [flag]: stringToBoolean(features[flag]) }), {}),
|
|
5377
|
-
isHosted: stringToBoolean(features.isHosted) || window.location.hostname.includes("hosted.mender.io")
|
|
5378
|
-
isDemoMode: stringToBoolean(isDemoMode || features.isDemoMode)
|
|
5467
|
+
isHosted: stringToBoolean(features.isHosted) || window.location.hostname.includes("hosted.mender.io")
|
|
5379
5468
|
};
|
|
5380
5469
|
onboardingComplete = !stringToBoolean(environmentFeatures.isHosted) || stringToBoolean(disableOnboarding) || onboardingComplete;
|
|
5381
5470
|
versionInfo = {
|
|
@@ -5468,7 +5557,7 @@ var useAppInit = (userId) => {
|
|
|
5468
5557
|
];
|
|
5469
5558
|
tasks = maybeAddOnboardingTasks({ devicesByStatus, dispatch, tasks, onboardingState });
|
|
5470
5559
|
if (canManageUsers && intervalUnit && intervalUnit !== timeUnits.days) {
|
|
5471
|
-
const duration =
|
|
5560
|
+
const duration = import_dayjs2.default.duration(interval, intervalUnit);
|
|
5472
5561
|
const days = duration.asDays();
|
|
5473
5562
|
if (days < 1) {
|
|
5474
5563
|
tasks.push(Promise.resolve(setTimeout(() => dispatch(setShowStartupNotification(true)), TIMEOUTS.fiveSeconds)));
|