@northern.tech/store 0.18.0 → 0.19.1

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.
Files changed (106) hide show
  1. package/dist/actions.js +6 -6
  2. package/dist/api/general-api.cjs +13 -9
  3. package/dist/api/general-api.cjs.map +1 -1
  4. package/dist/api/general-api.js +3 -3
  5. package/dist/api/users-api.cjs +13 -9
  6. package/dist/api/users-api.cjs.map +1 -1
  7. package/dist/api/users-api.js +4 -4
  8. package/dist/appSlice/index.js +1 -1
  9. package/dist/appSlice/mocks.js +1 -1
  10. package/dist/appSlice/thunks.cjs +42 -19
  11. package/dist/appSlice/thunks.cjs.map +1 -1
  12. package/dist/appSlice/thunks.js +18 -18
  13. package/dist/auth.cjs +7 -9
  14. package/dist/auth.cjs.map +1 -1
  15. package/dist/auth.js +2 -2
  16. package/dist/{chunk-6UO33KLN.js → chunk-C3EMLDPU.js} +5 -5
  17. package/dist/{chunk-EFFRZCDN.js → chunk-FUGCLQ5L.js} +23 -23
  18. package/dist/{chunk-C5QK6HH6.js → chunk-GBXG2XBY.js} +5 -5
  19. package/dist/{chunk-5M6EUVNO.js → chunk-IRQRV552.js} +8 -2
  20. package/dist/chunk-IRQRV552.js.map +1 -0
  21. package/dist/{chunk-CXBQKY7F.js → chunk-KJHHSYGP.js} +14 -14
  22. package/dist/{chunk-PFWOM36E.js → chunk-MZ5NRW3K.js} +38 -17
  23. package/dist/{chunk-PFWOM36E.js.map → chunk-MZ5NRW3K.js.map} +1 -1
  24. package/dist/{chunk-BX2CTAJO.js → chunk-QFYYTAYD.js} +11 -11
  25. package/dist/{chunk-FDSMCFV5.js → chunk-UVTLZV34.js} +8 -10
  26. package/dist/chunk-UVTLZV34.js.map +1 -0
  27. package/dist/{chunk-Y3DJIMEN.js → chunk-XJLZK4QY.js} +3 -3
  28. package/dist/commonConstants.js +1 -1
  29. package/dist/commonSelectors.cjs +31 -0
  30. package/dist/commonSelectors.cjs.map +1 -1
  31. package/dist/commonSelectors.d.cts +147 -1
  32. package/dist/commonSelectors.d.ts +147 -1
  33. package/dist/commonSelectors.js +8 -6
  34. package/dist/constants.js +1 -1
  35. package/dist/deploymentsSlice/constants.js +1 -1
  36. package/dist/deploymentsSlice/index.js +1 -1
  37. package/dist/deploymentsSlice/mocks.js +1 -1
  38. package/dist/deploymentsSlice/selectors.js +1 -1
  39. package/dist/deploymentsSlice/thunks.cjs +42 -19
  40. package/dist/deploymentsSlice/thunks.cjs.map +1 -1
  41. package/dist/deploymentsSlice/thunks.js +18 -18
  42. package/dist/devicesSlice/constants.js +1 -1
  43. package/dist/devicesSlice/index.js +1 -1
  44. package/dist/devicesSlice/mocks.js +1 -1
  45. package/dist/devicesSlice/selectors.js +1 -1
  46. package/dist/devicesSlice/thunks.cjs +42 -19
  47. package/dist/devicesSlice/thunks.cjs.map +1 -1
  48. package/dist/devicesSlice/thunks.js +18 -18
  49. package/dist/liststatehook.js +1 -1
  50. package/dist/locationutils.js +1 -1
  51. package/dist/monitorSlice/index.js +1 -1
  52. package/dist/monitorSlice/mocks.js +1 -1
  53. package/dist/monitorSlice/thunks.cjs +32 -9
  54. package/dist/monitorSlice/thunks.cjs.map +1 -1
  55. package/dist/monitorSlice/thunks.js +15 -15
  56. package/dist/onboardingSlice/thunks.cjs +45 -22
  57. package/dist/onboardingSlice/thunks.cjs.map +1 -1
  58. package/dist/onboardingSlice/thunks.js +18 -18
  59. package/dist/organizationSlice/constants.js +1 -1
  60. package/dist/organizationSlice/index.js +1 -1
  61. package/dist/organizationSlice/mocks.js +1 -1
  62. package/dist/organizationSlice/selectors.js +1 -1
  63. package/dist/organizationSlice/thunks.cjs +50 -27
  64. package/dist/organizationSlice/thunks.cjs.map +1 -1
  65. package/dist/organizationSlice/thunks.js +18 -18
  66. package/dist/releasesSlice/index.js +1 -1
  67. package/dist/releasesSlice/mocks.js +1 -1
  68. package/dist/releasesSlice/selectors.js +1 -1
  69. package/dist/releasesSlice/thunks.cjs +32 -9
  70. package/dist/releasesSlice/thunks.cjs.map +1 -1
  71. package/dist/releasesSlice/thunks.js +15 -15
  72. package/dist/selectors.cjs +29 -0
  73. package/dist/selectors.cjs.map +1 -1
  74. package/dist/selectors.d.cts +1 -1
  75. package/dist/selectors.d.ts +1 -1
  76. package/dist/selectors.js +44 -42
  77. package/dist/sockethook.js +1 -1
  78. package/dist/store.cjs +7 -9
  79. package/dist/store.cjs.map +1 -1
  80. package/dist/store.js +8 -8
  81. package/dist/storehooks.cjs +60 -37
  82. package/dist/storehooks.cjs.map +1 -1
  83. package/dist/storehooks.js +20 -20
  84. package/dist/thunks.cjs +53 -30
  85. package/dist/thunks.cjs.map +1 -1
  86. package/dist/thunks.js +18 -18
  87. package/dist/useDeploymentDevice.cjs +42 -19
  88. package/dist/useDeploymentDevice.cjs.map +1 -1
  89. package/dist/useDeploymentDevice.js +18 -18
  90. package/dist/usersSlice/constants.js +1 -1
  91. package/dist/usersSlice/index.js +1 -1
  92. package/dist/usersSlice/mocks.js +1 -1
  93. package/dist/usersSlice/selectors.js +1 -1
  94. package/dist/usersSlice/thunks.cjs +42 -19
  95. package/dist/usersSlice/thunks.cjs.map +1 -1
  96. package/dist/usersSlice/thunks.js +18 -18
  97. package/dist/utils.js +1 -1
  98. package/package.json +1 -1
  99. package/dist/chunk-5M6EUVNO.js.map +0 -1
  100. package/dist/chunk-FDSMCFV5.js.map +0 -1
  101. /package/dist/{chunk-6UO33KLN.js.map → chunk-C3EMLDPU.js.map} +0 -0
  102. /package/dist/{chunk-EFFRZCDN.js.map → chunk-FUGCLQ5L.js.map} +0 -0
  103. /package/dist/{chunk-C5QK6HH6.js.map → chunk-GBXG2XBY.js.map} +0 -0
  104. /package/dist/{chunk-CXBQKY7F.js.map → chunk-KJHHSYGP.js.map} +0 -0
  105. /package/dist/{chunk-BX2CTAJO.js.map → chunk-QFYYTAYD.js.map} +0 -0
  106. /package/dist/{chunk-Y3DJIMEN.js.map → chunk-XJLZK4QY.js.map} +0 -0
package/dist/thunks.js CHANGED
@@ -143,7 +143,7 @@ import {
143
143
  verify2FA,
144
144
  verifyEmailComplete,
145
145
  verifyEmailStart
146
- } from "./chunk-EFFRZCDN.js";
146
+ } from "./chunk-FUGCLQ5L.js";
147
147
  import {
148
148
  cancelFileUpload,
149
149
  createArtifact,
@@ -166,43 +166,43 @@ import {
166
166
  setSingleReleaseTags,
167
167
  updateReleaseInfo,
168
168
  uploadArtifact
169
- } from "./chunk-C5QK6HH6.js";
169
+ } from "./chunk-GBXG2XBY.js";
170
170
  import {
171
171
  changeNotificationSetting,
172
172
  getDeviceAlerts,
173
173
  getDeviceMonitorConfig,
174
174
  getIssueCountsByType,
175
175
  getLatestDeviceAlerts
176
- } from "./chunk-6UO33KLN.js";
177
- import "./chunk-CXBQKY7F.js";
178
- import "./chunk-Y3DJIMEN.js";
179
- import "./chunk-5M6EUVNO.js";
180
- import "./chunk-BX2CTAJO.js";
181
- import "./chunk-TRKA7XYU.js";
176
+ } from "./chunk-C3EMLDPU.js";
177
+ import "./chunk-KJHHSYGP.js";
178
+ import "./chunk-XJLZK4QY.js";
179
+ import "./chunk-IRQRV552.js";
180
+ import "./chunk-QFYYTAYD.js";
182
181
  import "./chunk-YR65C62H.js";
182
+ import "./chunk-VODRLEDP.js";
183
+ import "./chunk-TRKA7XYU.js";
184
+ import "./chunk-CQXDAXQF.js";
183
185
  import "./chunk-VCEFZTWS.js";
184
186
  import "./chunk-PVCHKW35.js";
185
- import "./chunk-CQXDAXQF.js";
186
- import "./chunk-OLKM53RL.js";
187
187
  import "./chunk-6WJI4MOP.js";
188
- import "./chunk-VODRLEDP.js";
189
- import "./chunk-FDSMCFV5.js";
188
+ import "./chunk-OLKM53RL.js";
189
+ import "./chunk-UVTLZV34.js";
190
190
  import "./chunk-53W2NRSL.js";
191
191
  import "./chunk-NMAXZ3ZY.js";
192
- import "./chunk-PFWOM36E.js";
193
- import "./chunk-GEQ2QQEE.js";
192
+ import "./chunk-MZ5NRW3K.js";
194
193
  import "./chunk-QL6FN2JC.js";
195
- import "./chunk-3NOV7X4M.js";
196
- import "./chunk-YO22XLHI.js";
197
- import "./chunk-JIS4PA3R.js";
198
194
  import "./chunk-O7DR57RN.js";
195
+ import "./chunk-GEQ2QQEE.js";
196
+ import "./chunk-JIS4PA3R.js";
197
+ import "./chunk-3NOV7X4M.js";
199
198
  import "./chunk-WR6RQKF5.js";
199
+ import "./chunk-YO22XLHI.js";
200
200
  import "./chunk-4BHM6WVX.js";
201
201
  import "./chunk-U5TPV5X5.js";
202
202
  import "./chunk-WWED74SG.js";
203
203
  import "./chunk-2DYA3X77.js";
204
- import "./chunk-FAJ3I2UQ.js";
205
204
  import "./chunk-ZKAH3APE.js";
205
+ import "./chunk-FAJ3I2UQ.js";
206
206
  import "./chunk-EL672W25.js";
207
207
  export {
208
208
  abortDeployment,
@@ -55,6 +55,7 @@ var getIsPreview = (0, import_toolkit.createSelector)([getFullVersionInformation
55
55
  // src/commonSelectors.ts
56
56
  var import_helpers4 = require("@northern.tech/utils/helpers");
57
57
  var import_toolkit7 = require("@reduxjs/toolkit");
58
+ var import_dayjs = __toESM(require("dayjs"), 1);
58
59
 
59
60
  // src/appSlice/constants.ts
60
61
  var import_icons_material = require("@mui/icons-material");
@@ -1128,6 +1129,7 @@ var emptyObject = {};
1128
1129
  var getRolesById = (state) => state.users.rolesById;
1129
1130
  var getTooltipsById = (state) => state.users.tooltips.byId;
1130
1131
  var getGlobalSettings = (state) => state.users.globalSettings;
1132
+ var getUserSettingsInitialized = (state) => state.users.userSettingsInitialized;
1131
1133
  var getCurrentUserId = (state) => state.users.currentUser;
1132
1134
  var getUsersById = (state) => state.users.byId;
1133
1135
  var getUsersList = (0, import_toolkit6.createSelector)([getUsersById], (usersById) => Object.values(usersById));
@@ -1165,6 +1167,7 @@ var getOfflineThresholdSettings = (0, import_toolkit6.createSelector)([getGlobal
1165
1167
  intervalUnit: offlineThreshold?.intervalUnit || DEVICE_ONLINE_CUTOFF.intervalName
1166
1168
  }));
1167
1169
  var getRolesList = (0, import_toolkit6.createSelector)([getRolesById], (rolesById2) => Object.entries(rolesById2).map(([value, role]) => ({ value, ...role })));
1170
+ var getSecurityAlertDismissedTimestamp = (state) => state.users.userSettings.securityAlertDismissedTimestamp;
1168
1171
 
1169
1172
  // src/commonSelectors.ts
1170
1173
  var getIsEnterprise = (0, import_toolkit7.createSelector)(
@@ -1371,6 +1374,22 @@ var getRelevantRoles = (0, import_toolkit7.createSelector)([getOrganization, get
1371
1374
  return accu;
1372
1375
  }, roles);
1373
1376
  });
1377
+ var getShowSecurityAlert = (0, import_toolkit7.createSelector)(
1378
+ [getCurrentUser, getHas2FA, getFeatures, getIsEnterprise, getUserSettingsInitialized, getSecurityAlertDismissedTimestamp],
1379
+ (currentUser, has2FA, features, isEnterprise, settingsInitialized, dismissedTimestamp) => {
1380
+ const isHosted = features?.isHosted;
1381
+ const canHave2FA = isEnterprise || isHosted;
1382
+ if (!currentUser || !settingsInitialized || has2FA || !canHave2FA) {
1383
+ return false;
1384
+ }
1385
+ if (dismissedTimestamp === null) {
1386
+ return true;
1387
+ }
1388
+ const today = (0, import_dayjs.default)();
1389
+ const dismissedMonthAgo = today.diff(dismissedTimestamp, "months");
1390
+ return dismissedMonthAgo > 0;
1391
+ }
1392
+ );
1374
1393
 
1375
1394
  // src/store.ts
1376
1395
  var import_react_redux = require("react-redux");
@@ -2329,19 +2348,17 @@ var getSessionInfo = () => {
2329
2348
  sessionInfo = JSON.parse(window.localStorage.getItem("JWT") ?? "");
2330
2349
  } catch {
2331
2350
  }
2351
+ const jwtTokenFromCookie = cookies.get("JWT", { doNotParse: true }) ?? "";
2352
+ if (jwtTokenFromCookie) {
2353
+ setSessionInfo({ token: jwtTokenFromCookie });
2354
+ cookies.remove("JWT");
2355
+ cookies.remove("JWT", { path: "/" });
2356
+ return { token: jwtTokenFromCookie, expiresAt: void 0 };
2357
+ }
2332
2358
  if (sessionInfo.expiresAt && new Date(sessionInfo.expiresAt) < /* @__PURE__ */ new Date()) {
2333
2359
  cleanUp();
2334
2360
  return { ...emptySession };
2335
2361
  }
2336
- if (!sessionInfo.token) {
2337
- const jwtTokenFromCookie = cookies.get("JWT", { doNotParse: true }) ?? "";
2338
- if (jwtTokenFromCookie) {
2339
- setSessionInfo({ token: jwtTokenFromCookie });
2340
- sessionInfo.token = jwtTokenFromCookie;
2341
- cookies.remove("JWT");
2342
- cookies.remove("JWT", { path: "/" });
2343
- }
2344
- }
2345
2362
  sessionInfo.token = sessionInfo.token || "";
2346
2363
  tokenCache = sessionInfo.token;
2347
2364
  return sessionInfo;
@@ -2452,12 +2469,18 @@ var createAppAsyncThunk = import_toolkit16.createAsyncThunk.withTypes();
2452
2469
 
2453
2470
  // src/appSlice/thunks.ts
2454
2471
  var import_helpers7 = require("@northern.tech/utils/helpers");
2455
- var import_universal_cookie2 = __toESM(require("universal-cookie"), 1);
2472
+ var import_universal_cookie3 = __toESM(require("universal-cookie"), 1);
2456
2473
 
2457
2474
  // src/api/general-api.ts
2458
2475
  var import_axios = __toESM(require("axios"), 1);
2476
+ var import_universal_cookie2 = __toESM(require("universal-cookie"), 1);
2477
+ var cookies2 = new import_universal_cookie2.default();
2459
2478
  var unauthorizedRedirect = (error) => {
2460
2479
  if (!(0, import_axios.isCancel)(error) && error.response?.status === 401 && getToken() && !window.location.pathname.endsWith("/subscription")) {
2480
+ if (cookies2.get("JWT", { doNotParse: true })) {
2481
+ window.location.reload();
2482
+ return Promise.reject(error);
2483
+ }
2461
2484
  cleanUp();
2462
2485
  window.location.replace("/ui/");
2463
2486
  }
@@ -2493,9 +2516,9 @@ var Api = {
2493
2516
  var general_api_default = Api;
2494
2517
 
2495
2518
  // src/appSlice/thunks.ts
2496
- var cookies2 = new import_universal_cookie2.default();
2519
+ var cookies3 = new import_universal_cookie3.default();
2497
2520
  var setFirstLoginAfterSignup = createAppAsyncThunk(`${sliceName}/setFirstLoginAfterSignup`, (firstLoginAfterSignup, { dispatch }) => {
2498
- cookies2.set("firstLoginAfterSignup", !!firstLoginAfterSignup, { maxAge: 60, path: "/", domain: ".mender.io", sameSite: false });
2521
+ cookies3.set("firstLoginAfterSignup", !!firstLoginAfterSignup, { maxAge: 60, path: "/", domain: ".mender.io", sameSite: false });
2499
2522
  dispatch(actions.setFirstLoginAfterSignup(!!firstLoginAfterSignup));
2500
2523
  });
2501
2524
  var dateFunctionMap = {
@@ -3916,9 +3939,9 @@ var changeNotificationSetting = createAppAsyncThunk(
3916
3939
  // src/usersSlice/thunks.ts
3917
3940
  var import_helpers10 = require("@northern.tech/utils/helpers");
3918
3941
  var import_retrytimer = require("@northern.tech/utils/retrytimer");
3919
- var import_dayjs = __toESM(require("dayjs"), 1);
3942
+ var import_dayjs2 = __toESM(require("dayjs"), 1);
3920
3943
  var import_md5 = __toESM(require("md5"), 1);
3921
- var import_universal_cookie3 = __toESM(require("universal-cookie"), 1);
3944
+ var import_universal_cookie4 = __toESM(require("universal-cookie"), 1);
3922
3945
 
3923
3946
  // src/api/users-api.ts
3924
3947
  var import_axios3 = __toESM(require("axios"), 1);
@@ -3935,7 +3958,7 @@ var Api2 = {
3935
3958
  var users_api_default = Api2;
3936
3959
 
3937
3960
  // src/usersSlice/thunks.ts
3938
- var cookies3 = new import_universal_cookie3.default();
3961
+ var cookies4 = new import_universal_cookie4.default();
3939
3962
  var { setAnnouncement, setSnackbar: setSnackbar4 } = actions_default;
3940
3963
  var handleLoginError = (err, { token2fa: has2FA, password }, rejectWithValue) => () => {
3941
3964
  const errorText = (0, import_helpers10.extractErrorMessage)(err);
@@ -3970,7 +3993,7 @@ var loginUser = createAppAsyncThunk(
3970
3993
  now.setSeconds(now.getSeconds() + import_constants4.maxSessionAge);
3971
3994
  const expiresAt = stayLoggedIn ? void 0 : now.toISOString();
3972
3995
  setSessionInfo({ token, expiresAt });
3973
- cookies3.remove("JWT", { path: "/" });
3996
+ cookies4.remove("JWT", { path: "/" });
3974
3997
  return dispatch(getUser(OWN_USER_ID)).unwrap().catch((e) => {
3975
3998
  cleanUp();
3976
3999
  return Promise.reject(dispatch(setSnackbar4((0, import_helpers10.extractErrorMessage)(e))));
@@ -4501,7 +4524,7 @@ var saveUserSettings = createAppAsyncThunk(
4501
4524
  const updatedSettings = {
4502
4525
  ...userSettings,
4503
4526
  ...settings,
4504
- firstLoginTimestamp: userSettings.firstLoginTimestamp ?? (0, import_dayjs.default)().format(),
4527
+ firstLoginTimestamp: userSettings.firstLoginTimestamp ?? (0, import_dayjs2.default)().format(),
4505
4528
  onboarding: {
4506
4529
  ...onboardingState,
4507
4530
  ...settings.onboarding
@@ -4525,9 +4548,9 @@ var setHideAnnouncement = createAppAsyncThunk(
4525
4548
  ({ shouldHide, userId }, { dispatch, getState }) => {
4526
4549
  const currentUserId = userId || getCurrentUser(getState()).id;
4527
4550
  const hash = getState().app.hostedAnnouncement ? (0, import_md5.default)(getState().app.hostedAnnouncement) : "";
4528
- const announceCookie = cookies3.get(`${currentUserId}${hash}`);
4551
+ const announceCookie = cookies4.get(`${currentUserId}${hash}`);
4529
4552
  if (shouldHide || hash.length && typeof announceCookie !== "undefined") {
4530
- cookies3.set(`${currentUserId}${hash}`, true, { maxAge: 604800 });
4553
+ cookies4.set(`${currentUserId}${hash}`, true, { maxAge: 604800 });
4531
4554
  dispatch(setAnnouncement(""));
4532
4555
  }
4533
4556
  }