@northern.tech/store 0.16.0 → 0.17.0

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.cjs +2 -1
  2. package/dist/actions.cjs.map +1 -1
  3. package/dist/actions.js +6 -6
  4. package/dist/api/general-api.js +1 -1
  5. package/dist/api/users-api.js +1 -1
  6. package/dist/appSlice/index.js +1 -1
  7. package/dist/appSlice/mocks.js +1 -1
  8. package/dist/appSlice/thunks.cjs +2 -1
  9. package/dist/appSlice/thunks.cjs.map +1 -1
  10. package/dist/appSlice/thunks.js +15 -15
  11. package/dist/auth.js +1 -1
  12. package/dist/{chunk-YWL3XLJH.js → chunk-76GD35G3.js} +21 -21
  13. package/dist/{chunk-MWJFQYA2.js → chunk-E2UO6BJ3.js} +11 -11
  14. package/dist/{chunk-M7YH35Y4.js → chunk-GL634FKF.js} +10 -10
  15. package/dist/{chunk-NJMHH7TJ.js → chunk-JDSAICR3.js} +12 -12
  16. package/dist/{chunk-WCJHYB46.js → chunk-QHGAJE7K.js} +7 -7
  17. package/dist/{chunk-3YJY7KQW.js → chunk-QL6FN2JC.js} +4 -2
  18. package/dist/{chunk-3YJY7KQW.js.map → chunk-QL6FN2JC.js.map} +1 -1
  19. package/dist/{chunk-GAADWFQZ.js → chunk-QXS7I6BE.js} +7 -7
  20. package/dist/{chunk-KJ4BPXMB.js → chunk-YR65C62H.js} +3 -2
  21. package/dist/chunk-YR65C62H.js.map +1 -0
  22. package/dist/commonConstants.js +1 -1
  23. package/dist/commonSelectors.cjs.map +1 -1
  24. package/dist/commonSelectors.js +6 -6
  25. package/dist/constants.js +1 -1
  26. package/dist/deploymentsSlice/constants.js +1 -1
  27. package/dist/deploymentsSlice/index.js +1 -1
  28. package/dist/deploymentsSlice/mocks.js +1 -1
  29. package/dist/deploymentsSlice/selectors.js +1 -1
  30. package/dist/deploymentsSlice/thunks.cjs +2 -1
  31. package/dist/deploymentsSlice/thunks.cjs.map +1 -1
  32. package/dist/deploymentsSlice/thunks.js +15 -15
  33. package/dist/devicesSlice/constants.js +1 -1
  34. package/dist/devicesSlice/index.js +1 -1
  35. package/dist/devicesSlice/mocks.js +1 -1
  36. package/dist/devicesSlice/selectors.js +1 -1
  37. package/dist/devicesSlice/thunks.cjs +2 -1
  38. package/dist/devicesSlice/thunks.cjs.map +1 -1
  39. package/dist/devicesSlice/thunks.js +15 -15
  40. package/dist/liststatehook.js +1 -1
  41. package/dist/locationutils.js +1 -1
  42. package/dist/monitorSlice/index.js +1 -1
  43. package/dist/monitorSlice/mocks.js +1 -1
  44. package/dist/monitorSlice/thunks.cjs +2 -1
  45. package/dist/monitorSlice/thunks.cjs.map +1 -1
  46. package/dist/monitorSlice/thunks.js +13 -13
  47. package/dist/onboardingSlice/thunks.cjs +2 -1
  48. package/dist/onboardingSlice/thunks.cjs.map +1 -1
  49. package/dist/onboardingSlice/thunks.js +15 -15
  50. package/dist/organizationSlice/constants.js +1 -1
  51. package/dist/organizationSlice/index.js +1 -1
  52. package/dist/organizationSlice/mocks.js +1 -1
  53. package/dist/organizationSlice/selectors.js +1 -1
  54. package/dist/organizationSlice/thunks.cjs +2 -1
  55. package/dist/organizationSlice/thunks.cjs.map +1 -1
  56. package/dist/organizationSlice/thunks.js +15 -15
  57. package/dist/releasesSlice/index.js +1 -1
  58. package/dist/releasesSlice/mocks.js +1 -1
  59. package/dist/releasesSlice/selectors.js +1 -1
  60. package/dist/releasesSlice/thunks.cjs +2 -1
  61. package/dist/releasesSlice/thunks.cjs.map +1 -1
  62. package/dist/releasesSlice/thunks.js +13 -13
  63. package/dist/selectors.cjs +3 -0
  64. package/dist/selectors.cjs.map +1 -1
  65. package/dist/selectors.d.cts +1 -1
  66. package/dist/selectors.d.ts +1 -1
  67. package/dist/selectors.js +20 -18
  68. package/dist/sockethook.js +1 -1
  69. package/dist/store.cjs +2 -1
  70. package/dist/store.cjs.map +1 -1
  71. package/dist/store.js +7 -7
  72. package/dist/storehooks.cjs +2 -1
  73. package/dist/storehooks.cjs.map +1 -1
  74. package/dist/storehooks.js +16 -16
  75. package/dist/thunks.cjs +2 -1
  76. package/dist/thunks.cjs.map +1 -1
  77. package/dist/thunks.js +16 -16
  78. package/dist/useDeploymentDevice.cjs +2 -1
  79. package/dist/useDeploymentDevice.cjs.map +1 -1
  80. package/dist/useDeploymentDevice.js +17 -17
  81. package/dist/usersSlice/constants.js +1 -1
  82. package/dist/usersSlice/index.cjs +2 -1
  83. package/dist/usersSlice/index.cjs.map +1 -1
  84. package/dist/usersSlice/index.d.cts +1 -0
  85. package/dist/usersSlice/index.d.ts +1 -0
  86. package/dist/usersSlice/index.js +2 -2
  87. package/dist/usersSlice/mocks.cjs +2 -1
  88. package/dist/usersSlice/mocks.cjs.map +1 -1
  89. package/dist/usersSlice/mocks.js +2 -2
  90. package/dist/usersSlice/selectors.cjs +3 -0
  91. package/dist/usersSlice/selectors.cjs.map +1 -1
  92. package/dist/usersSlice/selectors.d.cts +2 -1
  93. package/dist/usersSlice/selectors.d.ts +2 -1
  94. package/dist/usersSlice/selectors.js +4 -2
  95. package/dist/usersSlice/thunks.cjs +2 -1
  96. package/dist/usersSlice/thunks.cjs.map +1 -1
  97. package/dist/usersSlice/thunks.js +15 -15
  98. package/dist/utils.js +1 -1
  99. package/package.json +1 -1
  100. package/dist/chunk-KJ4BPXMB.js.map +0 -1
  101. /package/dist/{chunk-YWL3XLJH.js.map → chunk-76GD35G3.js.map} +0 -0
  102. /package/dist/{chunk-MWJFQYA2.js.map → chunk-E2UO6BJ3.js.map} +0 -0
  103. /package/dist/{chunk-M7YH35Y4.js.map → chunk-GL634FKF.js.map} +0 -0
  104. /package/dist/{chunk-NJMHH7TJ.js.map → chunk-JDSAICR3.js.map} +0 -0
  105. /package/dist/{chunk-WCJHYB46.js.map → chunk-QHGAJE7K.js.map} +0 -0
  106. /package/dist/{chunk-GAADWFQZ.js.map → chunk-QXS7I6BE.js.map} +0 -0
@@ -36,38 +36,38 @@ import {
36
36
  verify2FA,
37
37
  verifyEmailComplete,
38
38
  verifyEmailStart
39
- } from "../chunk-YWL3XLJH.js";
40
- import "../chunk-GAADWFQZ.js";
41
- import "../chunk-WCJHYB46.js";
42
- import "../chunk-MWJFQYA2.js";
39
+ } from "../chunk-76GD35G3.js";
43
40
  import "../chunk-Y3DJIMEN.js";
41
+ import "../chunk-QXS7I6BE.js";
42
+ import "../chunk-QHGAJE7K.js";
44
43
  import "../chunk-5M6EUVNO.js";
45
- import "../chunk-M7YH35Y4.js";
46
- import "../chunk-TRKA7XYU.js";
47
- import "../chunk-KJ4BPXMB.js";
48
- import "../chunk-PVCHKW35.js";
44
+ import "../chunk-E2UO6BJ3.js";
45
+ import "../chunk-GL634FKF.js";
46
+ import "../chunk-YR65C62H.js";
49
47
  import "../chunk-VCEFZTWS.js";
48
+ import "../chunk-TRKA7XYU.js";
50
49
  import "../chunk-CQXDAXQF.js";
51
50
  import "../chunk-VODRLEDP.js";
52
- import "../chunk-6WJI4MOP.js";
51
+ import "../chunk-PVCHKW35.js";
53
52
  import "../chunk-OLKM53RL.js";
53
+ import "../chunk-6WJI4MOP.js";
54
54
  import "../chunk-FDSMCFV5.js";
55
55
  import "../chunk-53W2NRSL.js";
56
56
  import "../chunk-NMAXZ3ZY.js";
57
- import "../chunk-NJMHH7TJ.js";
57
+ import "../chunk-JDSAICR3.js";
58
58
  import "../chunk-GEQ2QQEE.js";
59
- import "../chunk-3YJY7KQW.js";
60
- import "../chunk-JIS4PA3R.js";
61
- import "../chunk-YO22XLHI.js";
59
+ import "../chunk-QL6FN2JC.js";
62
60
  import "../chunk-3NOV7X4M.js";
63
- import "../chunk-WR6RQKF5.js";
61
+ import "../chunk-YO22XLHI.js";
62
+ import "../chunk-JIS4PA3R.js";
64
63
  import "../chunk-O7DR57RN.js";
65
64
  import "../chunk-4BHM6WVX.js";
65
+ import "../chunk-WR6RQKF5.js";
66
66
  import "../chunk-U5TPV5X5.js";
67
67
  import "../chunk-WWED74SG.js";
68
- import "../chunk-ZKAH3APE.js";
69
68
  import "../chunk-2DYA3X77.js";
70
69
  import "../chunk-FAJ3I2UQ.js";
70
+ import "../chunk-ZKAH3APE.js";
71
71
  import "../chunk-EL672W25.js";
72
72
  export {
73
73
  addUserToCurrentTenant,
package/dist/utils.js CHANGED
@@ -21,9 +21,9 @@ import {
21
21
  stringToBoolean
22
22
  } from "./chunk-U5TPV5X5.js";
23
23
  import "./chunk-WWED74SG.js";
24
- import "./chunk-ZKAH3APE.js";
25
24
  import "./chunk-2DYA3X77.js";
26
25
  import "./chunk-FAJ3I2UQ.js";
26
+ import "./chunk-ZKAH3APE.js";
27
27
  import "./chunk-EL672W25.js";
28
28
  export {
29
29
  convertDeviceListStateToFilters,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@northern.tech/store",
3
- "version": "0.16.0",
3
+ "version": "0.17.0",
4
4
  "license": "Apache-2.0",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/usersSlice/index.ts"],"sourcesContent":["// Copyright 2023 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport type { User as BackendUser, DeploymentPhase, TenantInfo, TenantsIdName } from '@northern.tech/types/MenderTypes';\nimport type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\n\nimport type { FilterOperator, PermissionSet, Role } from '../constants';\nimport { defaultPermissionSets, rolesById } from '../constants';\nimport type { ReadState } from './constants';\nimport { READ_STATES } from './constants';\n\nexport const sliceName = 'users';\nexport type User = BackendUser & TenantInfo & { tenants?: TenantsIdName };\nexport type UserSession = {\n expiresAt?: string;\n token: string;\n};\nexport type CustomColumn = {\n attribute: {\n name: string;\n scope: string;\n };\n size: number;\n};\n\ntype FilterOption = {\n key: string;\n operator: FilterOperator;\n scope: string;\n value: string;\n};\nexport type GlobalSettings = {\n [x: string]: any;\n id_attribute?: {\n attribute: string;\n scope: string;\n };\n previousFilters: FilterOption[];\n previousPhases: DeploymentPhase[][];\n retries: number;\n};\ntype Column = {\n id: string;\n key: string;\n name: string;\n scope: string;\n title: string;\n};\nexport type UserSettings = {\n [x: string]: any;\n columnSelection: Column[];\n feedbackCollectedAt?: string;\n firstLoginTimestamp: null | string;\n mode?: 'light' | 'dark';\n onboarding: Partial<{\n address: string;\n approach: 'physical' | 'virtual' | 'mcu' | null;\n complete: boolean;\n demoArtifactPort: number;\n deviceType: string[] | string;\n progress: string;\n showTips: null | boolean;\n showTipsDialog: boolean;\n }>;\n tooltips?: object;\n trackingConsentGiven?: boolean;\n};\n\nexport type UserSliceType = {\n activationCode?: string;\n byId: Record<string, User>;\n currentSession?: UserSession | object;\n currentUser: string | null;\n customColumns: CustomColumn[];\n globalSettings: GlobalSettings;\n permissionSetsById: Record<string, PermissionSet>;\n qrCode: string | null;\n rolesById: Record<string, Role>;\n rolesInitialized: boolean;\n settingsInitialized: boolean;\n showConnectDeviceDialog: boolean;\n showFeedbackDialog: boolean;\n showStartupNotification: boolean;\n tooltips: {\n byId: Record<string, { readState: ReadState }>;\n };\n userSettings: UserSettings;\n userSettingsInitialized: boolean;\n};\n\nexport const initialState: UserSliceType = {\n activationCode: undefined,\n byId: {},\n currentUser: null,\n currentSession: {\n // { token: window.localStorage.getItem('JWT'), expiresAt: '2023-01-01T00:15:00.000Z' | undefined }, // expiresAt depending on the stay logged in setting\n },\n customColumns: [],\n qrCode: null,\n globalSettings: {\n id_attribute: undefined,\n previousFilters: [],\n previousPhases: [],\n retries: 0\n },\n permissionSetsById: {\n ...defaultPermissionSets\n },\n rolesById: {\n ...rolesById\n },\n rolesInitialized: false,\n settingsInitialized: false,\n showConnectDeviceDialog: false,\n showFeedbackDialog: false,\n showStartupNotification: false,\n tooltips: {\n byId: {\n // <id>: { readState: <read|unread> } // this object is getting enhanced by the tooltip texts in the app constants\n }\n },\n userSettings: {\n columnSelection: [],\n onboarding: {},\n firstLoginTimestamp: null\n },\n userSettingsInitialized: false\n};\n\nexport const usersSlice = createSlice({\n name: sliceName,\n initialState,\n reducers: {\n receivedQrCode: (state, action: PayloadAction<string | null>) => {\n state.qrCode = action.payload;\n },\n successfullyLoggedIn: (state, action: PayloadAction<UserSession>) => {\n state.currentSession = action.payload;\n },\n receivedUserList: (state, action: PayloadAction<Record<string, User>>) => {\n state.byId = action.payload;\n },\n receivedActivationCode: (state, action: PayloadAction<string>) => {\n state.activationCode = action.payload;\n },\n receivedUser: (state, action: PayloadAction<User>) => {\n state.byId[action.payload.id] = action.payload;\n state.currentUser = action.payload.id;\n },\n removedUser: (state, action: PayloadAction<string>) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [action.payload]: removedUser, ...byId } = state.byId;\n state.byId = byId;\n state.currentUser = state.currentUser === action.payload ? null : state.currentUser;\n },\n updatedUser: (state, action: PayloadAction<Partial<User> & { id: string }>) => {\n state.byId[action.payload.id] = {\n ...state.byId[action.payload.id],\n ...action.payload\n };\n },\n receivedPermissionSets: (state, action: PayloadAction<Record<string, PermissionSet>>) => {\n state.permissionSetsById = action.payload;\n },\n receivedRoles: (state, action: PayloadAction<Record<string, Role>>) => {\n state.rolesById = action.payload;\n state.rolesInitialized = true;\n },\n finishedRoleInitialization: (state, action) => {\n state.rolesInitialized = action.payload;\n },\n createdRole: (state, action: PayloadAction<Role>) => {\n state.rolesById[action.payload.name] = {\n ...state.rolesById[action.payload.name],\n ...action.payload\n };\n },\n removedRole: (state, action: PayloadAction<string>) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [action.payload]: toBeRemoved, ...rolesById } = state.rolesById;\n state.rolesById = rolesById;\n },\n setCustomColumns: (state, action: PayloadAction<CustomColumn[]>) => {\n state.customColumns = action.payload;\n },\n setGlobalSettings: (state, action: PayloadAction<GlobalSettings>) => {\n state.settingsInitialized = true;\n state.globalSettings = {\n ...state.globalSettings,\n ...action.payload\n };\n },\n setUserSettings: (state, action: PayloadAction<UserSettings>) => {\n state.userSettingsInitialized = true;\n state.userSettings = {\n ...state.userSettings,\n ...action.payload\n };\n },\n setTooltipState: (state, action: PayloadAction<{ id: string; readState: ReadState }>) => {\n const { id, readState = READ_STATES.read } = action.payload;\n state.tooltips.byId[id] = { ...state.tooltips.byId[id], readState };\n },\n setTooltipsState: (state, action: PayloadAction<UserSliceType['tooltips']['byId']>) => {\n state.tooltips.byId = {\n ...state.tooltips.byId,\n ...action.payload\n };\n },\n setShowFeedbackDialog: (state, action: PayloadAction<boolean>) => {\n state.showFeedbackDialog = action.payload;\n },\n setShowConnectingDialog: (state, action: PayloadAction<boolean>) => {\n state.showConnectDeviceDialog = action.payload;\n },\n setShowStartupNotification: (state, action: PayloadAction<boolean>) => {\n state.showStartupNotification = action.payload;\n }\n }\n});\n\nexport const actions = usersSlice.actions;\nexport default usersSlice.reducer;\n"],"mappings":"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","names":["rolesById"]}