@northern.tech/store 0.30.0 → 0.30.2
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 +21 -1130
- package/dist/actions.cjs.map +1 -1
- package/dist/actions.d.cts +212 -221
- package/dist/actions.d.ts +212 -220
- package/dist/actions.js +21 -18
- package/dist/actions.js.map +1 -1
- package/dist/api/general-api.cjs +61 -459
- package/dist/api/general-api.cjs.map +1 -1
- package/dist/api/general-api.d.cts +15 -17
- package/dist/api/general-api.d.ts +15 -17
- package/dist/api/general-api.js +56 -15
- package/dist/api/general-api.js.map +1 -1
- package/dist/api/users-api.cjs +32 -469
- package/dist/api/users-api.cjs.map +1 -1
- package/dist/api/users-api.d.cts +19 -14
- package/dist/api/users-api.d.ts +19 -13
- package/dist/api/users-api.js +30 -12
- package/dist/api/users-api.js.map +1 -1
- package/dist/appSlice/constants.cjs +190 -144
- package/dist/appSlice/constants.cjs.map +1 -1
- package/dist/appSlice/constants.d.cts +2 -159
- package/dist/appSlice/constants.d.ts +2 -159
- package/dist/appSlice/constants.js +181 -29
- package/dist/appSlice/constants.js.map +1 -1
- package/dist/appSlice/index.cjs +147 -178
- package/dist/appSlice/index.cjs.map +1 -1
- package/dist/appSlice/index.d.cts +2 -148
- package/dist/appSlice/index.d.ts +2 -148
- package/dist/appSlice/index.js +142 -18
- package/dist/appSlice/index.js.map +1 -1
- package/dist/appSlice/mocks.cjs +17 -191
- package/dist/appSlice/mocks.cjs.map +1 -1
- package/dist/appSlice/mocks.d.cts +33 -36
- package/dist/appSlice/mocks.d.ts +33 -36
- package/dist/appSlice/mocks.js +17 -25
- package/dist/appSlice/mocks.js.map +1 -1
- package/dist/appSlice/selectors.cjs +49 -91
- package/dist/appSlice/selectors.cjs.map +1 -1
- package/dist/appSlice/selectors.d.cts +216 -230
- package/dist/appSlice/selectors.d.ts +216 -230
- package/dist/appSlice/selectors.js +29 -44
- package/dist/appSlice/selectors.js.map +1 -1
- package/dist/appSlice/thunks.cjs +6 -4636
- package/dist/appSlice/thunks.d.cts +59 -62
- package/dist/appSlice/thunks.d.ts +59 -62
- package/dist/appSlice/thunks.js +2 -45
- package/dist/auth.cjs +68 -433
- package/dist/auth.cjs.map +1 -1
- package/dist/auth.d.cts +14 -14
- package/dist/auth.d.ts +14 -14
- package/dist/auth.js +65 -18
- package/dist/auth.js.map +1 -1
- package/dist/chunk-CKQMccvm.cjs +28 -0
- package/dist/commonConstants.cjs +14 -393
- package/dist/commonConstants.d.cts +2 -83
- package/dist/commonConstants.d.ts +2 -83
- package/dist/commonConstants.js +2 -33
- package/dist/commonSelectors.cjs +284 -1269
- package/dist/commonSelectors.cjs.map +1 -1
- package/dist/commonSelectors.d.cts +1623 -1416
- package/dist/commonSelectors.d.ts +1623 -1416
- package/dist/commonSelectors.js +277 -51
- package/dist/commonSelectors.js.map +1 -1
- package/dist/constants-5cdwz1iH.d.ts +160 -0
- package/dist/constants-BWEsNG5c.d.ts +28 -0
- package/dist/constants-BciiayPt.d.ts +17 -0
- package/dist/constants-C5AU0mCY.d.ts +157 -0
- package/dist/constants-CIx3fnBv.d.cts +17 -0
- package/dist/constants-CNhpIMME.d.cts +93 -0
- package/dist/constants-Cpgyuy_r.d.ts +57 -0
- package/dist/constants-D41U_jbR.d.cts +160 -0
- package/dist/constants-DK7fI3Rh.d.cts +28 -0
- package/dist/constants-DPLHhjVN.d.cts +157 -0
- package/dist/constants-DrwXHsJ1.d.ts +120 -0
- package/dist/constants-G3wymKIl.d.cts +57 -0
- package/dist/constants-MPLfugsi.d.cts +120 -0
- package/dist/constants-y2XVLQWf.d.ts +93 -0
- package/dist/constants.cjs +784 -972
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +8 -14
- package/dist/constants.d.ts +8 -14
- package/dist/constants.js +674 -232
- package/dist/constants.js.map +1 -1
- package/dist/deploymentsSlice/constants.cjs +15 -214
- package/dist/deploymentsSlice/constants.d.cts +2 -163
- package/dist/deploymentsSlice/constants.d.ts +2 -163
- package/dist/deploymentsSlice/constants.js +2 -35
- package/dist/deploymentsSlice/index.cjs +168 -302
- package/dist/deploymentsSlice/index.cjs.map +1 -1
- package/dist/deploymentsSlice/index.d.cts +2 -157
- package/dist/deploymentsSlice/index.d.ts +2 -157
- package/dist/deploymentsSlice/index.js +161 -18
- package/dist/deploymentsSlice/index.js.map +1 -1
- package/dist/deploymentsSlice/mocks.cjs +178 -433
- package/dist/deploymentsSlice/mocks.cjs.map +1 -1
- package/dist/deploymentsSlice/mocks.d.cts +176 -178
- package/dist/deploymentsSlice/mocks.d.ts +176 -178
- package/dist/deploymentsSlice/mocks.js +178 -144
- package/dist/deploymentsSlice/mocks.js.map +1 -1
- package/dist/deploymentsSlice/selectors.cjs +44 -223
- package/dist/deploymentsSlice/selectors.cjs.map +1 -1
- package/dist/deploymentsSlice/selectors.d.cts +73 -87
- package/dist/deploymentsSlice/selectors.d.ts +73 -87
- package/dist/deploymentsSlice/selectors.js +37 -25
- package/dist/deploymentsSlice/selectors.js.map +1 -1
- package/dist/deploymentsSlice/thunks.cjs +16 -4654
- package/dist/deploymentsSlice/thunks.d.cts +223 -236
- package/dist/deploymentsSlice/thunks.d.ts +223 -236
- package/dist/deploymentsSlice/thunks.js +2 -65
- package/dist/devicesSlice/constants.cjs +9 -68
- package/dist/devicesSlice/constants.d.cts +2 -37
- package/dist/devicesSlice/constants.d.ts +2 -37
- package/dist/devicesSlice/constants.js +2 -23
- package/dist/devicesSlice/index.cjs +215 -225
- package/dist/devicesSlice/index.cjs.map +1 -1
- package/dist/devicesSlice/index.d.cts +2 -202
- package/dist/devicesSlice/index.d.ts +2 -202
- package/dist/devicesSlice/index.js +209 -18
- package/dist/devicesSlice/index.js.map +1 -1
- package/dist/devicesSlice/mocks.cjs +146 -339
- package/dist/devicesSlice/mocks.cjs.map +1 -1
- package/dist/devicesSlice/mocks.d.cts +150 -148
- package/dist/devicesSlice/mocks.d.ts +150 -148
- package/dist/devicesSlice/mocks.js +145 -132
- package/dist/devicesSlice/mocks.js.map +1 -1
- package/dist/devicesSlice/selectors.cjs +145 -539
- package/dist/devicesSlice/selectors.cjs.map +1 -1
- package/dist/devicesSlice/selectors.d.cts +685 -699
- package/dist/devicesSlice/selectors.d.ts +685 -699
- package/dist/devicesSlice/selectors.js +123 -59
- package/dist/devicesSlice/selectors.js.map +1 -1
- package/dist/devicesSlice/thunks.cjs +48 -4718
- package/dist/devicesSlice/thunks.d.cts +800 -752
- package/dist/devicesSlice/thunks.d.ts +800 -752
- package/dist/devicesSlice/thunks.js +2 -129
- package/dist/index-4eaLEXy_.d.cts +152 -0
- package/dist/index-BEVkIiNa.d.cts +95 -0
- package/dist/index-BP0uAq36.d.cts +159 -0
- package/dist/index-Bwx9jEiL.d.cts +71 -0
- package/dist/index-CJkrL0oA.d.ts +64 -0
- package/dist/index-CO-py5d4.d.ts +95 -0
- package/dist/index-CTt-eIY8.d.cts +154 -0
- package/dist/index-CkwVnIqd.d.ts +159 -0
- package/dist/index-Cvkvcz4r.d.ts +115 -0
- package/dist/index-DJSlDPRX.d.ts +71 -0
- package/dist/index-DqyY6oZ3.d.ts +205 -0
- package/dist/index-DtePEQPT.d.ts +152 -0
- package/dist/index-Dv3Hfxk_.d.ts +154 -0
- package/dist/index-FyYBBeN-.d.cts +115 -0
- package/dist/index-Lz5JsJ6O.d.cts +205 -0
- package/dist/index-UPc3wvVd.d.cts +64 -0
- package/dist/liststatehook.cjs +83 -948
- package/dist/liststatehook.cjs.map +1 -1
- package/dist/liststatehook.d.cts +29 -239
- package/dist/liststatehook.d.ts +29 -239
- package/dist/liststatehook.js +77 -85
- package/dist/liststatehook.js.map +1 -1
- package/dist/locationutils.cjs +459 -916
- package/dist/locationutils.cjs.map +1 -1
- package/dist/locationutils.d.cts +244 -110
- package/dist/locationutils.d.ts +244 -110
- package/dist/locationutils.js +440 -44
- package/dist/locationutils.js.map +1 -1
- package/dist/monitorSlice/constants.cjs +0 -19
- package/dist/monitorSlice/constants.d.cts +2 -5
- package/dist/monitorSlice/constants.d.ts +2 -5
- package/dist/monitorSlice/constants.js +1 -2
- package/dist/monitorSlice/index.cjs +65 -82
- package/dist/monitorSlice/index.cjs.map +1 -1
- package/dist/monitorSlice/index.d.cts +2 -94
- package/dist/monitorSlice/index.d.ts +2 -94
- package/dist/monitorSlice/index.js +59 -18
- package/dist/monitorSlice/index.js.map +1 -1
- package/dist/monitorSlice/mocks.cjs +50 -126
- package/dist/monitorSlice/mocks.cjs.map +1 -1
- package/dist/monitorSlice/mocks.d.cts +49 -45
- package/dist/monitorSlice/mocks.d.ts +49 -45
- package/dist/monitorSlice/mocks.js +49 -62
- package/dist/monitorSlice/mocks.js.map +1 -1
- package/dist/monitorSlice/selectors.cjs +5 -29
- package/dist/monitorSlice/selectors.cjs.map +1 -1
- package/dist/monitorSlice/selectors.d.cts +10 -1
- package/dist/monitorSlice/selectors.d.ts +10 -1
- package/dist/monitorSlice/selectors.js +5 -6
- package/dist/monitorSlice/selectors.js.map +1 -1
- package/dist/monitorSlice/thunks.cjs +83 -1914
- package/dist/monitorSlice/thunks.cjs.map +1 -1
- package/dist/monitorSlice/thunks.d.cts +112 -120
- package/dist/monitorSlice/thunks.d.ts +112 -120
- package/dist/monitorSlice/thunks.js +78 -42
- package/dist/monitorSlice/thunks.js.map +1 -1
- package/dist/onboardingSlice/constants.cjs +44 -69
- package/dist/onboardingSlice/constants.cjs.map +1 -1
- package/dist/onboardingSlice/constants.d.cts +2 -26
- package/dist/onboardingSlice/constants.d.ts +2 -26
- package/dist/onboardingSlice/constants.js +43 -7
- package/dist/onboardingSlice/constants.js.map +1 -1
- package/dist/onboardingSlice/index.cjs +53 -73
- package/dist/onboardingSlice/index.cjs.map +1 -1
- package/dist/onboardingSlice/index.d.cts +2 -62
- package/dist/onboardingSlice/index.d.ts +2 -62
- package/dist/onboardingSlice/index.js +47 -13
- package/dist/onboardingSlice/index.js.map +1 -1
- package/dist/onboardingSlice/mocks.cjs +12 -81
- package/dist/onboardingSlice/mocks.cjs.map +1 -1
- package/dist/onboardingSlice/mocks.d.cts +14 -15
- package/dist/onboardingSlice/mocks.d.ts +14 -15
- package/dist/onboardingSlice/mocks.js +12 -15
- package/dist/onboardingSlice/mocks.js.map +1 -1
- package/dist/onboardingSlice/selectors.cjs +5 -29
- package/dist/onboardingSlice/selectors.cjs.map +1 -1
- package/dist/onboardingSlice/selectors.d.cts +6 -1
- package/dist/onboardingSlice/selectors.d.ts +6 -1
- package/dist/onboardingSlice/selectors.js +5 -6
- package/dist/onboardingSlice/selectors.js.map +1 -1
- package/dist/onboardingSlice/thunks.cjs +8 -4746
- package/dist/onboardingSlice/thunks.d.cts +124 -143
- package/dist/onboardingSlice/thunks.d.ts +124 -143
- package/dist/onboardingSlice/thunks.js +2 -49
- package/dist/organizationSlice/constants.cjs +11 -95
- package/dist/organizationSlice/constants.d.cts +2 -91
- package/dist/organizationSlice/constants.d.ts +2 -91
- package/dist/organizationSlice/constants.js +2 -27
- package/dist/organizationSlice/index.cjs +113 -152
- package/dist/organizationSlice/index.cjs.map +1 -1
- package/dist/organizationSlice/index.d.cts +2 -74
- package/dist/organizationSlice/index.d.ts +2 -74
- package/dist/organizationSlice/index.js +106 -18
- package/dist/organizationSlice/index.js.map +1 -1
- package/dist/organizationSlice/mocks.cjs +215 -406
- package/dist/organizationSlice/mocks.cjs.map +1 -1
- package/dist/organizationSlice/mocks.d.cts +209 -212
- package/dist/organizationSlice/mocks.d.ts +209 -212
- package/dist/organizationSlice/mocks.js +214 -184
- package/dist/organizationSlice/mocks.js.map +1 -1
- package/dist/organizationSlice/selectors.cjs +97 -474
- package/dist/organizationSlice/selectors.cjs.map +1 -1
- package/dist/organizationSlice/selectors.d.cts +381 -389
- package/dist/organizationSlice/selectors.d.ts +381 -389
- package/dist/organizationSlice/selectors.js +78 -50
- package/dist/organizationSlice/selectors.js.map +1 -1
- package/dist/organizationSlice/thunks.cjs +43 -5150
- package/dist/organizationSlice/thunks.d.cts +638 -649
- package/dist/organizationSlice/thunks.d.ts +638 -649
- package/dist/organizationSlice/thunks.js +2 -119
- package/dist/organizationSlice/types.cjs +0 -19
- package/dist/organizationSlice/types.d.cts +2 -88
- package/dist/organizationSlice/types.d.ts +2 -88
- package/dist/organizationSlice/types.js +1 -1
- package/dist/releasesSlice/constants.cjs +17 -41
- package/dist/releasesSlice/constants.cjs.map +1 -1
- package/dist/releasesSlice/constants.d.cts +2 -15
- package/dist/releasesSlice/constants.d.ts +2 -15
- package/dist/releasesSlice/constants.js +13 -14
- package/dist/releasesSlice/constants.js.map +1 -1
- package/dist/releasesSlice/index.cjs +106 -179
- package/dist/releasesSlice/index.cjs.map +1 -1
- package/dist/releasesSlice/index.d.cts +2 -113
- package/dist/releasesSlice/index.d.ts +2 -113
- package/dist/releasesSlice/index.js +100 -18
- package/dist/releasesSlice/index.js.map +1 -1
- package/dist/releasesSlice/mocks.cjs +44 -220
- package/dist/releasesSlice/mocks.cjs.map +1 -1
- package/dist/releasesSlice/mocks.d.cts +63 -61
- package/dist/releasesSlice/mocks.d.ts +63 -61
- package/dist/releasesSlice/mocks.js +43 -59
- package/dist/releasesSlice/mocks.js.map +1 -1
- package/dist/releasesSlice/selectors.cjs +44 -439
- package/dist/releasesSlice/selectors.cjs.map +1 -1
- package/dist/releasesSlice/selectors.d.cts +268 -280
- package/dist/releasesSlice/selectors.d.ts +268 -280
- package/dist/releasesSlice/selectors.js +31 -36
- package/dist/releasesSlice/selectors.js.map +1 -1
- package/dist/releasesSlice/thunks.cjs +422 -2175
- package/dist/releasesSlice/thunks.cjs.map +1 -1
- package/dist/releasesSlice/thunks.d.cts +305 -307
- package/dist/releasesSlice/thunks.d.ts +305 -307
- package/dist/releasesSlice/thunks.js +413 -65
- package/dist/releasesSlice/thunks.js.map +1 -1
- package/dist/selectors.cjs +136 -1530
- package/dist/selectors.d.cts +10 -36
- package/dist/selectors.d.ts +10 -36
- package/dist/selectors.js +10 -280
- package/dist/sockethook.cjs +140 -515
- package/dist/sockethook.cjs.map +1 -1
- package/dist/sockethook.d.cts +25 -9
- package/dist/sockethook.d.ts +25 -9
- package/dist/sockethook.js +134 -135
- package/dist/sockethook.js.map +1 -1
- package/dist/store-BQxOSRC1.d.ts +234 -0
- package/dist/store-BiIA0r0A.d.cts +234 -0
- package/dist/store.cjs +117 -1290
- package/dist/store.cjs.map +1 -1
- package/dist/store.d.cts +3 -206
- package/dist/store.d.ts +3 -206
- package/dist/store.js +110 -32
- package/dist/store.js.map +1 -1
- package/dist/storehooks.cjs +240 -5783
- package/dist/storehooks.cjs.map +1 -1
- package/dist/storehooks.d.cts +76 -4
- package/dist/storehooks.d.ts +76 -4
- package/dist/storehooks.js +229 -265
- package/dist/storehooks.js.map +1 -1
- package/dist/thunks.cjs +2656 -5918
- package/dist/thunks.cjs.map +1 -1
- package/dist/thunks.d.cts +9 -36
- package/dist/thunks.d.ts +9 -36
- package/dist/thunks.js +2481 -385
- package/dist/thunks.js.map +1 -1
- package/dist/types-B2NRQLFw.d.ts +88 -0
- package/dist/types-ClEfo0dK.d.cts +88 -0
- package/dist/useDeploymentDevice.cjs +26 -4650
- package/dist/useDeploymentDevice.cjs.map +1 -1
- package/dist/useDeploymentDevice.d.cts +4 -2
- package/dist/useDeploymentDevice.d.ts +4 -2
- package/dist/useDeploymentDevice.js +21 -60
- package/dist/useDeploymentDevice.js.map +1 -1
- package/dist/usersSlice/constants.cjs +8 -55
- package/dist/usersSlice/constants.d.cts +2 -52
- package/dist/usersSlice/constants.d.ts +2 -52
- package/dist/usersSlice/constants.js +2 -21
- package/dist/usersSlice/index.cjs +132 -172
- package/dist/usersSlice/index.cjs.map +1 -1
- package/dist/usersSlice/index.d.cts +2 -152
- package/dist/usersSlice/index.d.ts +2 -152
- package/dist/usersSlice/index.js +125 -18
- package/dist/usersSlice/index.js.map +1 -1
- package/dist/usersSlice/mocks.cjs +55 -196
- package/dist/usersSlice/mocks.cjs.map +1 -1
- package/dist/usersSlice/mocks.d.cts +68 -72
- package/dist/usersSlice/mocks.d.ts +68 -72
- package/dist/usersSlice/mocks.js +54 -46
- package/dist/usersSlice/mocks.js.map +1 -1
- package/dist/usersSlice/selectors.cjs +65 -567
- package/dist/usersSlice/selectors.cjs.map +1 -1
- package/dist/usersSlice/selectors.d.cts +364 -376
- package/dist/usersSlice/selectors.d.ts +364 -376
- package/dist/usersSlice/selectors.js +44 -50
- package/dist/usersSlice/selectors.js.map +1 -1
- package/dist/usersSlice/thunks.cjs +39 -4698
- package/dist/usersSlice/thunks.d.cts +820 -856
- package/dist/usersSlice/thunks.d.ts +820 -856
- package/dist/usersSlice/thunks.js +2 -111
- package/dist/utils-CO_CpGFP.d.ts +105 -0
- package/dist/utils-CpPfqW0Q.d.cts +105 -0
- package/dist/utils.cjs +231 -850
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +2 -80
- package/dist/utils.d.ts +2 -80
- package/dist/utils.js +211 -50
- package/dist/utils.js.map +1 -1
- package/package.json +11 -13
- package/dist/appSlice/thunks.cjs.map +0 -1
- package/dist/appSlice/thunks.js.map +0 -1
- package/dist/chunk-2DYA3X77.js +0 -15
- package/dist/chunk-2DYA3X77.js.map +0 -1
- package/dist/chunk-4BHM6WVX.js +0 -50
- package/dist/chunk-4BHM6WVX.js.map +0 -1
- package/dist/chunk-4UNLEL5A.js +0 -143
- package/dist/chunk-4UNLEL5A.js.map +0 -1
- package/dist/chunk-6V5IIIF7.js +0 -396
- package/dist/chunk-6V5IIIF7.js.map +0 -1
- package/dist/chunk-ARMI6SZS.js +0 -446
- package/dist/chunk-ARMI6SZS.js.map +0 -1
- package/dist/chunk-AZF4YY3P.js +0 -108
- package/dist/chunk-AZF4YY3P.js.map +0 -1
- package/dist/chunk-B5AI2YPV.js +0 -156
- package/dist/chunk-B5AI2YPV.js.map +0 -1
- package/dist/chunk-CQXDAXQF.js +0 -51
- package/dist/chunk-CQXDAXQF.js.map +0 -1
- package/dist/chunk-DBBE6D36.js +0 -115
- package/dist/chunk-DBBE6D36.js.map +0 -1
- package/dist/chunk-ECVQVQEL.js +0 -68
- package/dist/chunk-ECVQVQEL.js.map +0 -1
- package/dist/chunk-FAJ3I2UQ.js +0 -47
- package/dist/chunk-FAJ3I2UQ.js.map +0 -1
- package/dist/chunk-FCY7BUGK.js +0 -2876
- package/dist/chunk-FCY7BUGK.js.map +0 -1
- package/dist/chunk-FG37HJLC.js +0 -157
- package/dist/chunk-FG37HJLC.js.map +0 -1
- package/dist/chunk-FQAUVV6C.js +0 -246
- package/dist/chunk-FQAUVV6C.js.map +0 -1
- package/dist/chunk-HKN3RN2Z.js +0 -41
- package/dist/chunk-HKN3RN2Z.js.map +0 -1
- package/dist/chunk-HPKXWNEF.js +0 -100
- package/dist/chunk-HPKXWNEF.js.map +0 -1
- package/dist/chunk-JIS4PA3R.js +0 -7
- package/dist/chunk-JIS4PA3R.js.map +0 -1
- package/dist/chunk-JXBTIFMS.js +0 -82
- package/dist/chunk-JXBTIFMS.js.map +0 -1
- package/dist/chunk-JYPSCCT4.js +0 -58
- package/dist/chunk-JYPSCCT4.js.map +0 -1
- package/dist/chunk-L53CPHJU.js +0 -721
- package/dist/chunk-L53CPHJU.js.map +0 -1
- package/dist/chunk-MNJXEB7S.js +0 -304
- package/dist/chunk-MNJXEB7S.js.map +0 -1
- package/dist/chunk-NMAXZ3ZY.js +0 -1
- package/dist/chunk-NMAXZ3ZY.js.map +0 -1
- package/dist/chunk-NXLXPRYW.js +0 -142
- package/dist/chunk-NXLXPRYW.js.map +0 -1
- package/dist/chunk-O6VCSLNE.js +0 -59
- package/dist/chunk-O6VCSLNE.js.map +0 -1
- package/dist/chunk-PQADM3M3.js +0 -115
- package/dist/chunk-PQADM3M3.js.map +0 -1
- package/dist/chunk-SJ75YKOA.js +0 -44
- package/dist/chunk-SJ75YKOA.js.map +0 -1
- package/dist/chunk-TUPBZ6MQ.js +0 -162
- package/dist/chunk-TUPBZ6MQ.js.map +0 -1
- package/dist/chunk-XF3TZSZS.js +0 -25
- package/dist/chunk-XF3TZSZS.js.map +0 -1
- package/dist/chunk-YB3US6OT.js +0 -61
- package/dist/chunk-YB3US6OT.js.map +0 -1
- package/dist/chunk-YDDE5TIH.js +0 -204
- package/dist/chunk-YDDE5TIH.js.map +0 -1
- package/dist/chunk-YO22XLHI.js +0 -7
- package/dist/chunk-YO22XLHI.js.map +0 -1
- package/dist/chunk-Z2O6LYVP.js +0 -144
- package/dist/chunk-Z2O6LYVP.js.map +0 -1
- package/dist/chunk-ZKAH3APE.js +0 -1
- package/dist/chunk-ZKAH3APE.js.map +0 -1
- package/dist/commonConstants.cjs.map +0 -1
- package/dist/commonConstants.js.map +0 -1
- package/dist/deploymentsSlice/constants.cjs.map +0 -1
- package/dist/deploymentsSlice/constants.js.map +0 -1
- package/dist/deploymentsSlice/thunks.cjs.map +0 -1
- package/dist/deploymentsSlice/thunks.js.map +0 -1
- package/dist/devicesSlice/constants.cjs.map +0 -1
- package/dist/devicesSlice/constants.js.map +0 -1
- package/dist/devicesSlice/thunks.cjs.map +0 -1
- package/dist/devicesSlice/thunks.js.map +0 -1
- package/dist/monitorSlice/constants.cjs.map +0 -1
- package/dist/monitorSlice/constants.js.map +0 -1
- package/dist/onboardingSlice/thunks.cjs.map +0 -1
- package/dist/onboardingSlice/thunks.js.map +0 -1
- package/dist/organizationSlice/constants.cjs.map +0 -1
- package/dist/organizationSlice/constants.js.map +0 -1
- package/dist/organizationSlice/thunks.cjs.map +0 -1
- package/dist/organizationSlice/thunks.js.map +0 -1
- package/dist/organizationSlice/types.cjs.map +0 -1
- package/dist/organizationSlice/types.js.map +0 -1
- package/dist/selectors.cjs.map +0 -1
- package/dist/selectors.js.map +0 -1
- package/dist/usersSlice/constants.cjs.map +0 -1
- package/dist/usersSlice/constants.js.map +0 -1
- package/dist/usersSlice/thunks.cjs.map +0 -1
- package/dist/usersSlice/thunks.js.map +0 -1
package/dist/store.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/store.ts","../src/appSlice/index.ts","../src/constants.ts","../src/deploymentsSlice/constants.ts","../src/organizationSlice/constants.ts","../src/usersSlice/constants.ts","../src/deploymentsSlice/index.ts","../src/devicesSlice/index.ts","../src/monitorSlice/index.ts","../src/onboardingSlice/index.ts","../src/organizationSlice/index.ts","../src/releasesSlice/index.ts","../src/usersSlice/index.ts","../src/actions.ts","../src/auth.ts"],"sourcesContent":["// Copyright 2019 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.\n//@ts-nocheck\nimport { useDispatch } from 'react-redux';\n\nimport { extractErrorMessage, preformatWithRequestID } from '@northern.tech/utils/helpers';\nimport { combineReducers, configureStore, createAsyncThunk } from '@reduxjs/toolkit';\nimport { createReduxEnhancer } from '@sentry/react';\n\nimport actions from './actions';\nimport appSlice from './appSlice';\nimport { getToken } from './auth';\nimport { USER_LOGOUT, settingsKeys } from './constants';\nimport deploymentSlice from './deploymentsSlice';\nimport deviceSlice from './devicesSlice';\nimport monitorSlice from './monitorSlice';\nimport onboardingSlice from './onboardingSlice';\nimport organizationSlice, { actions as organizationActions } from './organizationSlice';\nimport releaseSlice from './releasesSlice';\nimport userSlice, { actions as userActions } from './usersSlice';\n\nconst { setSnackbar, uploadProgress } = actions;\n\n// exclude 'pendings-redirect' since this is expected to persist refreshes - the rest should be better to be redone\nconst keys = ['sessionDeploymentChecker', settingsKeys.initialized];\nconst resetEnvironment = () => keys.forEach(key => window.sessionStorage.removeItem(key));\n\nresetEnvironment();\n\nexport const commonErrorFallback = 'Please check your connection.';\nexport const commonErrorHandler = (err, errorContext, dispatch, fallback?: string, mightBeAuthRelated = false): Promise<never> => {\n const errMsg = extractErrorMessage(err, fallback);\n if (mightBeAuthRelated || getToken()) {\n dispatch(setSnackbar({ message: preformatWithRequestID(err.response, `${errorContext} ${errMsg}`), action: 'Copy to clipboard' }));\n }\n return Promise.reject(err);\n};\n\nconst rootReducer = combineReducers({\n app: appSlice,\n devices: deviceSlice,\n deployments: deploymentSlice,\n monitor: monitorSlice,\n onboarding: onboardingSlice,\n organization: organizationSlice,\n releases: releaseSlice,\n users: userSlice\n});\n\nexport const sessionReducer = (state, action) => {\n if (action.type === USER_LOGOUT) {\n state = undefined;\n }\n return rootReducer(state, action);\n};\n\nconst rejectionLoggerMiddleware = () => next => action => {\n if (action.type.endsWith('/rejected')) {\n const { error } = action;\n console.error('Rejection in action:', action);\n console.error(error.stack);\n }\n return next(action);\n};\n\nconst tracingActionIgnoreList = [userActions.successfullyLoggedIn.type, 'users/loginUser/pending', 'users/loginUser/fulfilled', 'users/loginUser/rejected'];\n\nconst sentryReduxEnhancer = createReduxEnhancer({\n actionTransformer: action => {\n if (tracingActionIgnoreList.includes(action.type)) {\n return null;\n }\n return action;\n },\n // Transform the state to remove sensitive information\n stateTransformer: (state: RootState) => {\n const transformedState = {\n ...state,\n users: { ...state.users, currentSession: null },\n organization: {\n ...state.organization,\n organization: {\n ...state.organization.organization,\n tenant_token: null\n }\n }\n };\n return transformedState;\n }\n});\n\nexport const getConfiguredStore = (options = {}) => {\n const { preloadedState = {}, ...config } = options;\n return configureStore({\n ...config,\n preloadedState,\n enhancers: getDefaultEnhancers => {\n // rely on the plain injected env object, as we're initializing the store only here\n if (window.mender_environment?.sentry?.isReduxEnabled) {\n return getDefaultEnhancers().concat(sentryReduxEnhancer);\n }\n return getDefaultEnhancers();\n },\n reducer: sessionReducer,\n middleware: getDefaultMiddleware =>\n getDefaultMiddleware({\n immutableCheck: {\n ignoredPaths: ['app.uploadsById']\n },\n serializableCheck: {\n ignoredActions: [organizationActions.receiveExternalDeviceIntegrations.name, uploadProgress.name],\n ignoredActionPaths: ['uploads', /payload\\..*$/, 'meta.arg.file', 'meta.arg.integration.configHint'],\n ignoredPaths: ['app.uploadsById', 'organization.externalDeviceIntegrations']\n }\n }).concat(rejectionLoggerMiddleware)\n });\n};\nexport const store = getConfiguredStore({\n preloadedState: {}\n});\nexport type AppDispatch = typeof store.dispatch;\nexport const useAppDispatch: () => AppDispatch = useDispatch;\nexport type RootState = ReturnType<typeof store.getState>;\n\nexport const createAppAsyncThunk = createAsyncThunk.withTypes<{\n dispatch: AppDispatch;\n state: RootState;\n}>();\n","// 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 { SnackbarProps } from '@mui/material';\n\nimport type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\n\nimport type { SortOptions } from '../constants';\nimport { SORTING_OPTIONS } from '../constants';\n\nexport const sliceName = 'app';\n\nconst getYesterday = () => {\n const today = new Date();\n today.setDate(today.getDate() - 1);\n return today.toISOString();\n};\n\nexport type Repository = {\n name: string;\n version: string;\n};\n\nexport type VersionRelease = Partial<{ [versionInfo: string]: VersionRelease }> & {\n release?: string;\n release_date?: string;\n repos?: Repository[];\n supported_until?: string;\n};\n\nexport type SaasVersion = {\n date: string;\n tag: string;\n};\n\nexport type ReleaseData = {\n lts: string[];\n releases: {\n [version: string]: VersionRelease;\n };\n saas: SaasVersion[];\n};\nexport type TagData = { name: string }[];\n\nexport interface SnackbarContent extends Pick<SnackbarProps, 'action' | 'autoHideDuration' | 'message' | 'open'> {\n preventClickToCopy?: boolean;\n}\n\nexport interface SearchState {\n deviceIds: string[];\n isSearching: boolean;\n page?: number;\n perPage?: number;\n searchTerm: string;\n searchTotal: number;\n sort: SortOptions;\n}\n\nexport interface Upload {\n cancelSource: any;\n inprogress?: boolean;\n name?: string;\n progress: number;\n size?: number;\n}\n\ntype UILatestRelease = {\n releaseDate: string;\n repos: Record<string, string>;\n};\n\ntype VersionInformation = {\n [key: string]: string | UILatestRelease | undefined;\n backend?: string;\n GUI?: string;\n latestRelease?: UILatestRelease;\n};\n\nexport type SentryConfig = {\n isReduxEnabled?: string; // no parsing done here as this has to be accessed outside of the store\n location: string;\n replaysSessionSampleRate?: number;\n tracesSampleRate?: number;\n};\n\nexport type AppSliceType = {\n appInitDone: boolean;\n cancelSource: any;\n commit: string;\n demoArtifactLink: string;\n docsVersion: string;\n features: Record<string, boolean>;\n feedbackProbability: number;\n firstLoginAfterSignup: boolean;\n hostAddress: string | null;\n hostedAnnouncement: string;\n newThreshold: string;\n offlineThreshold: string;\n recaptchaSiteKey: string;\n searchState: SearchState;\n sentry: SentryConfig;\n snackbar: SnackbarContent;\n stripeAPIKey: string;\n trackerCode: string;\n uploadsById: Record<string, Upload>;\n versionInformation: VersionInformation;\n yesterday?: string;\n};\n\nexport const initialState: AppSliceType = {\n appInitDone: false,\n cancelSource: undefined,\n commit: '',\n demoArtifactLink: 'https://dgsbl4vditpls.cloudfront.net/mender-demo-artifact.mender',\n hostAddress: null,\n snackbar: {\n action: undefined,\n autoHideDuration: undefined,\n message: '',\n open: false,\n preventClickToCopy: false\n },\n // return boolean rather than organization details\n features: {\n hasAiEnabled: false,\n hasAuditlogs: false,\n hasDeltaProgress: false,\n hasMultitenancy: false,\n hasDeviceConfig: false,\n hasDeviceConnect: false,\n hasFeedbackEnabled: false,\n hasManifestsEnabled: false,\n hasMonitor: false,\n hasMCUEnabled: false,\n isHosted: true,\n isEnterprise: false\n },\n feedbackProbability: 0.3,\n firstLoginAfterSignup: false,\n hostedAnnouncement: '',\n docsVersion: '',\n recaptchaSiteKey: '',\n searchState: {\n deviceIds: [],\n searchTerm: '',\n searchTotal: 0,\n isSearching: false,\n sort: {\n direction: SORTING_OPTIONS.desc\n // key: null,\n // scope: null\n }\n },\n sentry: {\n location: '',\n replaysSessionSampleRate: 0.1,\n tracesSampleRate: 1.0\n },\n stripeAPIKey: '',\n trackerCode: '',\n uploadsById: {\n // id: { progress: 0, cancelSource: undefined }\n },\n newThreshold: getYesterday(),\n offlineThreshold: getYesterday(),\n versionInformation: {\n Integration: '',\n 'Mender-Artifact': '',\n 'Meta-Mender': ''\n },\n yesterday: undefined\n};\n\nexport const appSlice = createSlice({\n name: sliceName,\n initialState,\n reducers: {\n setFeatures: (state, action: PayloadAction<Record<string, boolean>>) => {\n state.features = {\n ...state.features,\n ...action.payload\n };\n },\n setSnackbar: (state, { payload }: PayloadAction<SnackbarContent | string>) => {\n if (typeof payload === 'string' || payload instanceof String) {\n state.snackbar = {\n ...initialState.snackbar,\n message: payload,\n open: !!payload\n };\n return;\n }\n const { message, autoHideDuration, action, preventClickToCopy = false } = payload;\n state.snackbar = {\n message,\n autoHideDuration,\n action,\n preventClickToCopy,\n open: !!message\n };\n },\n setFirstLoginAfterSignup: (state, action: PayloadAction<boolean>) => {\n state.firstLoginAfterSignup = action.payload;\n },\n setAnnouncement: (state, action: PayloadAction<string>) => {\n state.hostedAnnouncement = action.payload;\n },\n setSearchState: (state, action) => {\n state.searchState = {\n ...state.searchState,\n ...action.payload\n };\n },\n setOfflineThreshold: (state, action: PayloadAction<string>) => {\n state.offlineThreshold = action.payload;\n },\n initUpload: (state, action: PayloadAction<{ id: string; upload: Upload }>) => {\n const { id, upload } = action.payload;\n state.uploadsById[id] = upload;\n },\n uploadProgress: (state, action: PayloadAction<{ id: string; progress: number }>) => {\n const { id, progress } = action.payload;\n state.uploadsById[id] = {\n ...state.uploadsById[id],\n progress\n };\n },\n cleanUpUpload: (state, action: PayloadAction<string>) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [action.payload]: current, ...remainder } = state.uploadsById;\n state.uploadsById = remainder;\n },\n setVersionInformation: (state, action: PayloadAction<VersionInformation>) => {\n state.versionInformation = {\n ...state.versionInformation,\n ...action.payload\n };\n },\n setEnvironmentData: (state, action) => ({ ...state, ...action.payload }),\n setAppInitDone: state => {\n state.appInitDone = true;\n }\n }\n});\n\nexport const actions = appSlice.actions;\nexport default appSlice.reducer;\n","// Copyright 2024 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.\n//@ts-nocheck\nimport {\n ALL_DEVICES,\n ALL_DEVICE_STATES,\n ALL_RELEASES,\n APPLICATION_JSON_CONTENT_TYPE,\n APPLICATION_JWT_CONTENT_TYPE,\n ATTRIBUTE_SCOPES,\n DEVICE_FILTERING_OPTIONS,\n DEVICE_ISSUE_OPTIONS,\n DEVICE_LIST_DEFAULTS,\n DEVICE_STATES,\n PermissionTypes,\n SORTING_OPTIONS,\n alertChannels,\n apiRoot,\n apiUrl,\n auditLogsApiUrl,\n defaultPermissionSets,\n deploymentsApiUrl,\n deploymentsApiUrlV2,\n deviceAuthV2,\n deviceConfig,\n deviceConnect,\n emptyRole,\n emptyUiPermissions,\n headerNames,\n inventoryApiUrl,\n inventoryApiUrlV2,\n iotManagerBaseURL,\n limitDefault,\n maxSessionAge,\n monitorApiUrlv1,\n rolesById,\n rolesByName,\n scopedPermissionAreas,\n serviceProviderRolesById,\n ssoIdpApiUrlv1,\n tenantadmApiUrlv1,\n tenantadmApiUrlv2,\n twoFAStates,\n uiPermissionsByArea,\n uiPermissionsById,\n useradmApiUrl,\n useradmApiUrlv1,\n useradmApiUrlv2\n} from '@northern.tech/utils/constants';\nimport type {\n AnyPermission,\n AuditLogPermission,\n DeploymentPermission,\n DeviceIssueOptionKey,\n GroupsPermission,\n PermissionObject,\n PermissionSet,\n PermissionSetId,\n ReleasesPermission,\n Role,\n ScopedPermissionsByAreaKey,\n SortOptions,\n UiPermissionsByAreaKey,\n UiPermissionsByIdKey,\n UiPermissionsDefinition,\n UserManagementPermission\n} from '@northern.tech/utils/constants';\n\nexport {\n alertChannels,\n ALL_DEVICE_STATES,\n ALL_DEVICES,\n ALL_RELEASES,\n APPLICATION_JSON_CONTENT_TYPE,\n APPLICATION_JWT_CONTENT_TYPE,\n ATTRIBUTE_SCOPES,\n apiRoot,\n apiUrl,\n auditLogsApiUrl,\n defaultPermissionSets,\n deploymentsApiUrl,\n deploymentsApiUrlV2,\n DEVICE_FILTERING_OPTIONS,\n DEVICE_ISSUE_OPTIONS,\n DEVICE_LIST_DEFAULTS,\n DEVICE_STATES,\n deviceAuthV2,\n deviceConfig,\n deviceConnect,\n emptyRole,\n emptyUiPermissions,\n headerNames,\n inventoryApiUrl,\n inventoryApiUrlV2,\n iotManagerBaseURL,\n monitorApiUrlv1,\n limitDefault,\n maxSessionAge,\n PermissionTypes,\n rolesById,\n rolesByName,\n scopedPermissionAreas,\n serviceProviderRolesById,\n SORTING_OPTIONS,\n ssoIdpApiUrlv1,\n tenantadmApiUrlv1,\n tenantadmApiUrlv2,\n twoFAStates,\n uiPermissionsByArea,\n uiPermissionsById,\n useradmApiUrl,\n useradmApiUrlv1,\n useradmApiUrlv2\n};\n\nexport type {\n AnyPermission,\n AuditLogPermission,\n DeploymentPermission,\n DeviceIssueOptionKey,\n GroupsPermission,\n PermissionObject,\n PermissionSet,\n PermissionSetId,\n ReleasesPermission,\n Role,\n ScopedPermissionsByAreaKey,\n SortOptions,\n UiPermissionsByAreaKey,\n UiPermissionsByIdKey,\n UiPermissionsDefinition,\n UserManagementPermission\n};\n\nexport * from './appSlice/constants';\nexport * from './commonConstants';\nexport * from './deploymentsSlice/constants';\nexport * from './devicesSlice/constants';\nexport * from './monitorSlice/constants';\nexport * from './onboardingSlice/constants';\nexport * from './organizationSlice/constants';\nexport * from './releasesSlice/constants';\nexport * from './usersSlice/constants';\n","// Copyright 2019 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 { DeploymentStatistics } from '@northern.tech/types/MenderTypes';\n\nimport { DEVICE_LIST_DEFAULTS, SORTING_OPTIONS } from '../constants';\n\nconst alreadyInstalled = 'already-installed';\n\nexport const deploymentSubstates = {\n aborted: 'aborted',\n alreadyInstalled,\n decommissioned: 'decommissioned',\n downloading: 'downloading',\n failure: 'failure',\n installing: 'installing',\n noartifact: 'noartifact',\n artifact_too_big: 'artifact_too_big',\n pause_before_committing: 'pause_before_committing',\n pause_before_installing: 'pause_before_installing',\n pause_before_rebooting: 'pause_before_rebooting',\n pending: 'pending',\n rebooting: 'rebooting',\n success: 'success'\n};\n\nexport const deploymentStatesToSubstates = {\n failures: [deploymentSubstates.failure, deploymentSubstates.aborted, deploymentSubstates.decommissioned],\n inprogress: [deploymentSubstates.downloading, deploymentSubstates.installing, deploymentSubstates.rebooting],\n paused: [deploymentSubstates.pause_before_installing, deploymentSubstates.pause_before_rebooting, deploymentSubstates.pause_before_committing],\n pending: [deploymentSubstates.pending],\n successes: [deploymentSubstates.success, deploymentSubstates.alreadyInstalled, deploymentSubstates.noartifact, deploymentSubstates.artifact_too_big]\n};\n\nexport const deploymentStatesToSubstatesWithSkipped = {\n ...deploymentStatesToSubstates,\n failures: [deploymentSubstates.failure],\n skipped: [\n deploymentSubstates.aborted,\n deploymentSubstates.noartifact,\n deploymentSubstates.artifact_too_big,\n deploymentSubstates.alreadyInstalled,\n deploymentSubstates.decommissioned\n ],\n successes: [deploymentSubstates.success]\n};\nexport const installationSubstatesMap = {\n download: {\n title: 'download',\n done: 'downloaded',\n successIndicators: [deploymentSubstates.installing, deploymentSubstates.rebooting, ...deploymentStatesToSubstates.paused, deploymentSubstates.success],\n failureIndicators: deploymentStatesToSubstates.failures,\n pauseConfigurationIndicator: 'ArtifactInstall_Enter'\n },\n install: {\n title: 'install',\n done: 'installed',\n successIndicators: [\n deploymentSubstates.rebooting,\n deploymentSubstates.pause_before_rebooting,\n deploymentSubstates.pause_before_committing,\n deploymentSubstates.success\n ],\n failureIndicators: deploymentStatesToSubstates.failures,\n pauseConfigurationIndicator: 'ArtifactReboot_Enter'\n },\n reboot: {\n title: 'reboot',\n done: 'rebooted',\n successIndicators: [deploymentSubstates.pause_before_committing, deploymentSubstates.success],\n failureIndicators: deploymentStatesToSubstates.failures,\n pauseConfigurationIndicator: 'ArtifactCommit_Enter'\n },\n commit: {\n title: 'commit',\n done: 'committed',\n successIndicators: deploymentStatesToSubstates.successes,\n failureIndicators: deploymentStatesToSubstates.failures,\n pauseConfigurationIndicator: undefined\n }\n};\n\nexport const DEPLOYMENT_STATES = {\n finished: 'finished',\n inprogress: 'inprogress',\n pending: 'pending',\n scheduled: 'scheduled'\n} as const;\n\nexport const listDefaultsByState = {\n [DEPLOYMENT_STATES.inprogress]: { page: 1, perPage: 10 },\n [DEPLOYMENT_STATES.pending]: { page: 1, perPage: 10 },\n [DEPLOYMENT_STATES.scheduled]: { ...DEVICE_LIST_DEFAULTS },\n [DEPLOYMENT_STATES.finished]: { ...DEVICE_LIST_DEFAULTS },\n sort: { direction: SORTING_OPTIONS.desc }\n};\n\nexport const DEFAULT_PENDING_INPROGRESS_COUNT = 10;\nexport const DEPLOYMENT_ROUTES = {\n active: {\n key: 'active',\n route: '/deployments/active',\n states: [DEPLOYMENT_STATES.pending, DEPLOYMENT_STATES.inprogress],\n title: 'Active'\n },\n finished: {\n key: 'finished',\n route: '/deployments/finished',\n states: [DEPLOYMENT_STATES.finished],\n title: 'Finished'\n },\n scheduled: {\n key: 'scheduled',\n route: '/deployments/scheduled',\n states: [DEPLOYMENT_STATES.scheduled],\n title: 'Scheduled'\n }\n} as const;\nexport const DEPLOYMENT_TYPES = {\n software: 'software',\n configuration: 'configuration'\n};\nexport const defaultStats = {\n [deploymentSubstates.aborted]: 0,\n [deploymentSubstates.alreadyInstalled]: 0,\n [deploymentSubstates.decommissioned]: 0,\n [deploymentSubstates.downloading]: 0,\n [deploymentSubstates.failure]: 0,\n [deploymentSubstates.installing]: 0,\n [deploymentSubstates.noartifact]: 0,\n [deploymentSubstates.pause_before_committing]: 0,\n [deploymentSubstates.pause_before_installing]: 0,\n [deploymentSubstates.pause_before_rebooting]: 0,\n [deploymentSubstates.pending]: 0,\n [deploymentSubstates.rebooting]: 0,\n [deploymentSubstates.success]: 0\n};\nexport const deploymentDisplayStates = {\n finished: 'Finished',\n scheduled: 'Scheduled',\n skipped: 'Skipped',\n paused: 'Paused',\n pending: 'Pending',\n inprogress: 'In Progress',\n success: 'Success',\n successes: 'Success',\n failure: 'Fail',\n failures: 'Fail'\n};\n\nexport const deploymentPrototype = {\n devices: {},\n name: undefined,\n statistics: { status: {} } as DeploymentStatistics\n};\n\nexport const pauseMap = {\n [deploymentSubstates.pause_before_installing]: {\n title: installationSubstatesMap.download.done,\n followUp: installationSubstatesMap.download.pauseConfigurationIndicator\n },\n [deploymentSubstates.pause_before_rebooting]: {\n title: installationSubstatesMap.install.done,\n followUp: installationSubstatesMap.install.pauseConfigurationIndicator\n },\n [deploymentSubstates.pause_before_committing]: {\n title: installationSubstatesMap.reboot.done,\n followUp: installationSubstatesMap.reboot.pauseConfigurationIndicator\n }\n};\n","// Copyright 2020 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 { useradmApiUrl } from '../constants';\n\nexport const XML_METADATA_FORMAT = 'xml';\nexport const JSON_METADATA_FORMAT = 'json';\n\nexport const getSamlStartUrl = id => `${window.location.origin}${useradmApiUrl}/auth/sso/${id}/login`;\nexport const getOidcStartUrl = id => `${window.location.origin}${useradmApiUrl}/oidc/${id}/start`;\n\nexport const SSO_TYPES = {\n saml: {\n id: 'saml',\n type: 'saml',\n title: 'SAML',\n metadataFormat: XML_METADATA_FORMAT,\n editorLanguage: XML_METADATA_FORMAT,\n contentType: 'application/samlmetadata+xml',\n getStartUrl: getSamlStartUrl,\n configDetails: [\n { key: 'entityID', label: 'Entity ID', getValue: id => `${window.location.origin}${useradmApiUrl}/sso/sp/metadata/${id}` },\n { key: 'acs', label: 'ACS URL', getValue: id => `${window.location.origin}${useradmApiUrl}/auth/sso/${id}/acs` },\n { key: 'startURL', label: 'Start URL', getValue: getSamlStartUrl }\n ]\n },\n oidc: {\n id: 'oidc',\n type: 'oidc',\n title: 'OpenID Connect',\n metadataFormat: JSON_METADATA_FORMAT,\n editorLanguage: JSON_METADATA_FORMAT,\n contentType: 'application/json',\n getStartUrl: getOidcStartUrl,\n configDetails: [{ key: 'startURL', label: 'Start Url', getValue: getOidcStartUrl }]\n }\n} as const;\n\nexport type ContentType = (typeof SSO_TYPES)[keyof typeof SSO_TYPES]['contentType'];\n\nexport const auditlogTypes = {\n artifact: { title: 'Artifact', queryParameter: 'object_type', value: 'artifact' },\n deployment: { title: 'Deployment', queryParameter: 'object_deployment_name', value: 'deployment' },\n device: { title: 'Device', queryParameter: 'object_id', value: 'device' },\n user_access_token: { title: 'Personal Access Token', queryParameter: 'user_access_token', value: 'user_access_token' },\n user: { title: 'User', queryParameter: 'object_id', value: 'user' },\n tenant: { title: 'Tenant', queryParameter: 'object_id', value: 'tenant' }\n};\n\nexport const AUDIT_LOGS_TYPES = [auditlogTypes.artifact, auditlogTypes.deployment, auditlogTypes.device, auditlogTypes.user_access_token, auditlogTypes.user];\nexport const SP_AUDIT_LOGS_TYPES = [auditlogTypes.user, auditlogTypes.tenant];\n\nexport const TENANT_LIST_DEFAULT = {\n page: 1,\n perPage: 20\n};\n","'use strict';\n\n// Copyright 2015 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 { uiPermissionsById } from '../constants';\n\nexport type UiPermission = {\n explanations: object;\n permissionLevel: number;\n permissionSets: Record<string, string>;\n title: string;\n value: string;\n verbs: string[];\n};\n\ntype ExcessiveAccessConfig = {\n selector: string;\n warning: string;\n};\n\ntype EndpointDefinition = {\n path: RegExp;\n types: string[];\n uiPermissions: UiPermission[];\n};\n\n/**\n * _uiPermissions_ represent the possible permissions/ rights that can be given for the area\n * _endpoints_ represent the possible endpoints this definition might be affecting in the UI and what\n * functionality might be affected\n *\n */\nexport type PermissionsArea = {\n endpoints: EndpointDefinition[];\n excessiveAccessConfig?: ExcessiveAccessConfig;\n explanation: string;\n filter?: (object) => string[];\n key: string;\n placeholder?: string;\n scope?: string;\n title: string;\n uiPermissions: UiPermission[];\n};\n\nexport const itemUiPermissionsReducer = (accu, { item, uiPermissions }) => (item ? { ...accu, [item]: uiPermissions } : accu);\n\nconst checkSinglePermission = (permission, requiredPermission) =>\n requiredPermission === permission || uiPermissionsById[permission].permissionLevel > uiPermissionsById[requiredPermission].permissionLevel;\n\nexport const checkPermissionsObject = (permissions, requiredPermission, scopedAccess, superAccess) =>\n permissions[superAccess]?.some(permission => checkSinglePermission(permission, requiredPermission)) ||\n permissions[scopedAccess]?.some(permission => checkSinglePermission(permission, requiredPermission));\n\nexport const USER_LOGOUT = 'USER_LOGOUT';\n\nexport const OWN_USER_ID = 'me';\n\nexport const settingsKeys = { initialized: 'settings-initialized' };\n\nexport const READ_STATES = {\n read: 'read',\n seen: 'seen',\n unread: 'unread'\n} as const;\nexport type ReadState = keyof typeof READ_STATES;\n","// 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 {\n DeploymentV1 as BackendDeploymentV1,\n DeploymentV2 as BackendDeploymentV2,\n Filter as BackendFilter,\n DeviceWithImage,\n FilterPredicate,\n Limit,\n Scope\n} from '@northern.tech/types/MenderTypes';\nimport type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\n\nimport { DEVICE_LIST_DEFAULTS, limitDefault } from '../constants';\nimport { DEFAULT_PENDING_INPROGRESS_COUNT, DEPLOYMENT_ROUTES, DEPLOYMENT_STATES, deploymentPrototype } from './constants';\n\nexport const sliceName = 'deployments';\n\ntype Filter = {\n key: string;\n operator: FilterPredicate['type'];\n scope: string;\n value: any;\n};\nexport type DeviceDeployment = DeviceWithImage & {\n deviceId: string;\n release: string;\n route: string;\n};\n\nexport type Deployment = BackendDeploymentV1 &\n BackendDeploymentV2 & {\n devices: Record<string, DeviceWithImage>;\n filter?: BackendFilter & { filters: Filter[]; name?: string; scope?: Scope };\n group?: string;\n totalDeviceCount: number;\n };\n\nexport type DeploymentStatus = { deploymentIds: string[]; total: number };\nexport type DeploymentByStatus = {\n finished: DeploymentStatus;\n inprogress: DeploymentStatus;\n pending: DeploymentStatus;\n scheduled: DeploymentStatus;\n};\nexport type DeploymentByStatusKey = keyof DeploymentByStatus;\nexport type DeploymentConfig = {\n binaryDelta: {\n compressionLevel: number;\n disableChecksum: boolean;\n disableDecompression: boolean;\n duplicatesWindow: number;\n inputWindow: number;\n instructionBuffer: number;\n sourceWindow: number;\n timeout: number;\n };\n binaryDeltaLimits: {\n duplicatesWindow: Limit;\n inputWindow: Limit;\n instructionBuffer: Limit;\n sourceWindow: Limit;\n timeout: Limit;\n };\n};\n\nexport type SelectionListState = {\n endDate?: string;\n page?: number;\n perPage?: number;\n search?: string;\n selection: string[];\n startDate?: string;\n total?: number;\n type?: string;\n};\nexport type SelectionState = {\n finished: SelectionListState;\n general: {\n reportType: string | null;\n showCreationDialog: boolean;\n showReportDialog: boolean;\n state: string;\n };\n inprogress: SelectionListState;\n pending: SelectionListState;\n scheduled: SelectionListState;\n\n selectedId?: string;\n};\n\nexport type DeploymentsSliceType = {\n byId: Record<string, Deployment>;\n byStatus: DeploymentByStatus;\n config: DeploymentConfig;\n deploymentDeviceLimit: number;\n selectedDeviceIds: string[];\n selectionState: SelectionState;\n};\n\nexport const initialState: DeploymentsSliceType = {\n byId: {\n // [id]: { statistics: { status: {}, total_size }, devices: { [deploymentId]: { id, log } }, totalDeviceCount }\n },\n byStatus: {\n finished: { deploymentIds: [], total: 0 },\n inprogress: { deploymentIds: [], total: 0 },\n pending: { deploymentIds: [], total: 0 },\n scheduled: { deploymentIds: [], total: 0 }\n },\n config: {\n binaryDelta: {\n timeout: -1,\n duplicatesWindow: -1,\n compressionLevel: -1,\n disableChecksum: false,\n disableDecompression: false,\n inputWindow: -1,\n instructionBuffer: -1,\n sourceWindow: -1\n },\n binaryDeltaLimits: {\n timeout: { ...limitDefault, default: 60, max: 3600, min: 60 },\n sourceWindow: limitDefault,\n inputWindow: limitDefault,\n duplicatesWindow: limitDefault,\n instructionBuffer: limitDefault\n }\n },\n deploymentDeviceLimit: 5000,\n selectedDeviceIds: [],\n selectionState: {\n finished: { ...DEVICE_LIST_DEFAULTS, endDate: undefined, search: '', selection: [], startDate: undefined, total: 0, type: '' },\n inprogress: { ...DEVICE_LIST_DEFAULTS, perPage: DEFAULT_PENDING_INPROGRESS_COUNT, selection: [] },\n pending: { ...DEVICE_LIST_DEFAULTS, perPage: DEFAULT_PENDING_INPROGRESS_COUNT, selection: [] },\n scheduled: { ...DEVICE_LIST_DEFAULTS, selection: [] },\n general: {\n state: DEPLOYMENT_ROUTES.active.key,\n showCreationDialog: false,\n showReportDialog: false,\n reportType: null // DeploymentConstants.DEPLOYMENT_TYPES.configuration|DeploymentConstants.DEPLOYMENT_TYPES.software\n },\n selectedId: undefined\n }\n};\n\nexport const deploymentsSlice = createSlice({\n name: sliceName,\n initialState,\n reducers: {\n createdDeployment: (state, action) => {\n state.byId[action.payload.id] = {\n ...deploymentPrototype,\n ...action.payload\n };\n state.byStatus[DEPLOYMENT_STATES.pending].total = state.byStatus[DEPLOYMENT_STATES.pending].total + 1;\n state.byStatus[DEPLOYMENT_STATES.pending].deploymentIds = [...state.byStatus.pending.deploymentIds, action.payload.id];\n state.selectionState[DEPLOYMENT_STATES.pending].selection = [action.payload.id, ...state.selectionState[DEPLOYMENT_STATES.pending].selection];\n state.selectionState[DEPLOYMENT_STATES.pending].total = (state.selectionState[DEPLOYMENT_STATES.pending].total || 0) + 1;\n },\n removedDeployment: (state, action: PayloadAction<string>) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [action.payload]: removedDeployment, ...remainder } = state.byId;\n state.byId = remainder;\n },\n receivedDeployment: (state, action: PayloadAction<Deployment>) => {\n state.byId[action.payload.id] = {\n ...(state.byId[action.payload.id] || {}),\n ...action.payload\n };\n },\n receivedDeploymentDeviceLog: (state, action: PayloadAction<{ deviceId: string; id: string; log: boolean }>) => {\n const { id, deviceId, log } = action.payload;\n const deployment = {\n ...deploymentPrototype,\n ...state.byId[id]\n };\n state.byId[id] = {\n ...deployment,\n devices: {\n ...deployment.devices,\n [deviceId]: {\n ...deployment.devices[deviceId],\n log\n }\n }\n };\n },\n receivedDeploymentDevices: (\n state,\n action: PayloadAction<{ devices: Record<string, DeviceWithImage>; id: string; selectedDeviceIds: string[]; totalDeviceCount: number }>\n ) => {\n const { id, devices, selectedDeviceIds, totalDeviceCount } = action.payload;\n state.byId[id] = {\n ...state.byId[id],\n devices,\n totalDeviceCount\n };\n state.selectedDeviceIds = selectedDeviceIds;\n },\n receivedDeployments: (state, action: PayloadAction<Record<string, Deployment>>) => {\n state.byId = {\n ...state.byId,\n ...action.payload\n };\n },\n receivedDeploymentsForStatus: (state, action: PayloadAction<{ deploymentIds: string[]; status: DeploymentByStatusKey; total: number }>) => {\n const { status, deploymentIds, total } = action.payload;\n state.byStatus[status].deploymentIds = deploymentIds;\n state.byStatus[status].total = total;\n },\n selectDeploymentsForStatus: (state, action: PayloadAction<{ deploymentIds: string[]; status: DeploymentByStatusKey; total: number }>) => {\n const { status, deploymentIds, total } = action.payload;\n state.selectionState[status].selection = deploymentIds;\n state.selectionState[status].total = total;\n },\n setDeploymentsState: (state, action: PayloadAction<SelectionState>) => {\n state.selectionState = action.payload;\n },\n setDeploymentsConfig: (state, action: PayloadAction<DeploymentConfig>) => {\n state.config = action.payload;\n }\n }\n});\n\nexport const actions = deploymentsSlice.actions;\nexport default deploymentsSlice.reducer;\n","// 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 {\n Device as BackendDeviceAuth,\n ConnectionState,\n DeviceConfiguration,\n DeviceState,\n DeviceTierLimits,\n MonitorConfiguration,\n SortCriteria,\n Status\n} from '@northern.tech/types/MenderTypes';\n// @ts-nocheck\nimport { deepCompare, duplicateFilter } from '@northern.tech/utils/helpers';\nimport type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\n\nimport type { ALL_DEVICE_STATES, DeviceIssueOptionKey, FilterOperator, SortOptions } from '../constants';\nimport { DEVICE_LIST_DEFAULTS, DEVICE_STATES, SORTING_OPTIONS } from '../constants';\nimport type { DeviceDeployment } from '../deploymentsSlice';\nimport type { DeviceAuthState } from './constants';\n\nexport const sliceName = 'devices';\nexport type DeviceSelectedAttribute = { attribute: string; scope: string };\nexport type DeviceListState = {\n detailsTab: string;\n deviceIds: string[];\n isLoading: boolean;\n open?: boolean;\n page: number;\n perPage: number;\n refreshTrigger: boolean;\n selectedAttributes: DeviceSelectedAttribute[];\n selectedId?: string;\n selectedIssues: DeviceIssueOptionKey[];\n selection: number[];\n setOnly?: boolean;\n sort: SortOptions & Partial<SortCriteria>;\n state?: DeviceAuthState | typeof ALL_DEVICE_STATES;\n total: number;\n};\ntype DeviceReport = {\n items: { count: number; key: string }[];\n otherCount: number;\n total: number;\n};\nexport type DeviceGroup = { deviceIds?: string[]; filters?: DeviceFilter[]; id?: string; total?: number };\nexport type InventoryAttributes = {\n [key: string]: string | string[];\n artifact_name: string;\n device_type: string[];\n};\n\n// based on the api docs the Record values might be even: \"Supported types: number, string, array of numbers, array of strings\" - but I guess \"string\" or \"string | sting[]\" should be good enough\ntype UiDeviceAttributes = {\n attributes: InventoryAttributes;\n identity?: Record<string, string>;\n monitor?: Record<string, string>;\n system: Record<string, string>;\n tags?: Record<string, string>;\n};\n\nexport type Device = BackendDeviceAuth &\n UiDeviceAttributes & {\n check_in_time_exact?: string;\n check_in_time_rounded?: string;\n config?: DeviceConfiguration;\n connect_status?: ConnectionState['status'];\n connect_updated_ts?: string;\n deploymentsCount?: number;\n deviceDeployments?: DeviceDeployment;\n etag?: string;\n gatewayIds?: string[];\n group?: string;\n id: string;\n isNew?: boolean;\n isOffline?: boolean;\n monitors?: MonitorConfiguration[];\n status: Status;\n twinsByIntegration?: Record<string, DeviceState & { twinError?: string }>;\n };\nexport type DeviceFilter = {\n key: string;\n operator: FilterOperator;\n scope: string;\n value: string | string[];\n};\ntype FilteringAttributes = {\n identityAttributes: string[];\n inventoryAttributes: string[];\n systemAttributes: string[];\n tagAttributes: string[];\n};\ntype FilteringAttributesConfig = {\n attributes: Record<string, string[]>;\n count: number;\n limit: number;\n};\n\nexport type DeviceGroups = {\n byId: Record<string, DeviceGroup>;\n selectedGroup?: string;\n};\nexport type DeviceSliceType = {\n byId: Record<string, Device>;\n byStatus: Record<DeviceAuthState, { counts: DeviceTierLimits & { total: number }; deviceIds: string[] }>;\n deviceList: DeviceListState;\n filteringAttributes: FilteringAttributes;\n filteringAttributesConfig: FilteringAttributesConfig;\n filteringAttributesLimit: number;\n filters: DeviceFilter[];\n groups: DeviceGroups;\n limits: DeviceTierLimits;\n reports: DeviceReport[];\n total: number;\n};\nexport const initialState: DeviceSliceType = {\n byId: {\n // [deviceId]: {\n // ...,\n // twinsByIntegration: { [external.provider.id]: twinData }\n // }\n },\n byStatus: {\n [DEVICE_STATES.accepted]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },\n [DEVICE_STATES.pending]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },\n [DEVICE_STATES.preauth]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },\n [DEVICE_STATES.rejected]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } }\n },\n deviceList: {\n deviceIds: [],\n ...DEVICE_LIST_DEFAULTS,\n selectedAttributes: [],\n selectedIssues: [],\n selection: [],\n sort: {\n direction: SORTING_OPTIONS.desc\n // key: null,\n // scope: null\n },\n state: DEVICE_STATES.accepted,\n total: 0,\n refreshTrigger: false,\n isLoading: false,\n detailsTab: '',\n open: false\n },\n filters: [\n // { key: 'device_type', value: 'raspberry', operator: '$eq', scope: 'inventory' }\n ],\n filteringAttributes: { identityAttributes: [], inventoryAttributes: [], systemAttributes: [], tagAttributes: [] },\n filteringAttributesLimit: 10,\n filteringAttributesConfig: {\n attributes: {\n // inventory: ['some_attribute']\n },\n count: 0,\n limit: 100\n },\n reports: [\n // { items: [{ key: \"someKey\", count: 42 }], otherCount: 123, total: <otherCount + itemsCount> }\n ],\n total: 0,\n limits: {\n standard: 0,\n micro: 0,\n system: 0\n },\n groups: {\n byId: {\n // groupName: { deviceIds: [], total: 0, filters: [] },\n // dynamo: { deviceIds: [], total: 3, filters: [{ a: 1 }] }\n },\n selectedGroup: undefined\n }\n};\n\nexport const devicesSlice = createSlice({\n name: sliceName,\n initialState,\n reducers: {\n receivedGroups: (state, action: PayloadAction<Record<string, DeviceGroup>>) => {\n state.groups.byId = action.payload;\n },\n addToGroup: (state, action: PayloadAction<{ deviceIds: string[]; group: string }>) => {\n const { group, deviceIds } = action.payload;\n const maybeExistingGroup = {\n filters: [],\n deviceIds: [],\n ...state.groups.byId[group]\n };\n state.groups.byId[group] = {\n ...maybeExistingGroup,\n deviceIds: [...maybeExistingGroup.deviceIds, ...deviceIds].filter(duplicateFilter),\n total: (maybeExistingGroup.total || 0) + 1\n };\n },\n removeFromGroup: (state, action: PayloadAction<{ deviceIds: string[]; group: string }>) => {\n const { group, deviceIds: removedIds } = action.payload;\n const { deviceIds = [], total = 0, ...maybeExistingGroup } = state.groups.byId[group] || {};\n const changedGroup = {\n ...maybeExistingGroup,\n deviceIds: deviceIds.filter(id => !removedIds.includes(id)),\n total: Math.max(total - removedIds.length, 0)\n };\n if (changedGroup.total || changedGroup.deviceIds.length) {\n state.groups.byId[group] = changedGroup;\n return;\n } else if (state.groups.selectedGroup === group) {\n state.groups.selectedGroup = undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [group]: removal, ...remainingById } = state.groups.byId;\n state.groups.byId = remainingById;\n },\n addGroup: (state, action: PayloadAction<{ group: DeviceGroup; groupName: string }>) => {\n const { groupName, group } = action.payload;\n state.groups.byId[groupName] = {\n ...state.groups.byId[groupName],\n ...group\n };\n },\n selectGroup: (state, { payload: group }: PayloadAction<string | undefined>) => {\n state.deviceList.deviceIds =\n group && state.groups.byId[group] && state.groups.byId[group].deviceIds && state.groups.byId[group].deviceIds.length > 0\n ? state.groups.byId[group].deviceIds\n : [];\n state.groups.selectedGroup = group;\n },\n removeGroup: (state, action: PayloadAction<string>) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [action.payload]: removal, ...remainingById } = state.groups.byId;\n state.groups.byId = remainingById;\n state.groups.selectedGroup = state.groups.selectedGroup === action.payload ? undefined : state.groups.selectedGroup;\n },\n setDeviceListState: (state, action: PayloadAction<Partial<DeviceListState>>) => {\n state.deviceList = {\n ...state.deviceList,\n ...action.payload,\n sort: {\n ...state.deviceList.sort,\n ...action.payload.sort\n }\n };\n },\n setFilterAttributes: (state, action: PayloadAction<FilteringAttributes>) => {\n state.filteringAttributes = action.payload;\n },\n setFilterablesConfig: (state, action: PayloadAction<FilteringAttributesConfig>) => {\n state.filteringAttributesConfig = action.payload;\n },\n receivedDevices: (state, action: PayloadAction<Record<string, Device>>) => {\n state.byId = {\n ...state.byId,\n ...action.payload\n };\n },\n setDeviceFilters: (state, action: PayloadAction<DeviceFilter[]>) => {\n if (deepCompare(action.payload, state.filters)) {\n return;\n }\n state.filters = action.payload.filter(filter => filter.key && filter.operator && filter.scope && typeof filter.value !== 'undefined');\n },\n setDeviceReports: (state, action: PayloadAction<DeviceReport[]>) => {\n state.reports = action.payload;\n },\n setDevicesByStatus: (state, action: PayloadAction<{ deviceIds: string[]; status: DeviceAuthState; total: number }>) => {\n const { status, total, deviceIds } = action.payload;\n if (total) {\n state.byStatus[status].deviceIds = deviceIds;\n state.byStatus[status].counts.total = total;\n }\n },\n setDevicesCountByStatus: (state, action: PayloadAction<{ countsPerTier: DeviceTierLimits; status: DeviceAuthState }>) => {\n const { countsPerTier, status } = action.payload;\n state.byStatus[status].counts = { ...countsPerTier, total: Object.values(countsPerTier).reduce((accu, tieredCount) => (accu += tieredCount), 0) };\n },\n setDeviceLimits: (state, action: PayloadAction<DeviceTierLimits>) => {\n state.limits = action.payload;\n },\n receivedDevice: (state, action: PayloadAction<{ id: string } & Partial<Device>>) => {\n state.byId[action.payload.id] = {\n ...state.byId[action.payload.id],\n ...action.payload\n };\n },\n maybeUpdateDevicesByStatus: (state, action: PayloadAction<{ authId?: string; deviceId: string }>) => {\n const { deviceId, authId } = action.payload;\n const device = state.byId[deviceId];\n const hasMultipleAuthSets = authId && device.auth_sets ? device.auth_sets.filter(authset => authset.id !== authId).length > 0 : false;\n if (!hasMultipleAuthSets && (Object.values(DEVICE_STATES) as string[]).includes(device.status)) {\n const deviceIds = state.byStatus[device.status].deviceIds.filter(id => id !== deviceId);\n const deviceTier = (device.attributes.tier as string) || 'standard';\n state.byStatus[device.status] = {\n deviceIds,\n counts: {\n ...state.byStatus[device.status].counts,\n [deviceTier]: Math.max(0, state.byStatus[device.status].counts[deviceTier] - 1),\n total: Math.max(0, state.byStatus[device.status].counts.total - 1)\n }\n };\n }\n }\n }\n});\n\nexport const actions = devicesSlice.actions;\nexport default devicesSlice.reducer;\n","// 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 { Alert } from '@northern.tech/types/MenderTypes';\nimport { createSlice } from '@reduxjs/toolkit';\nimport type { PayloadAction } from '@reduxjs/toolkit';\n\nimport type { DeviceIssueOptionKey } from '../constants';\nimport { DEVICE_ISSUE_OPTIONS, DEVICE_LIST_DEFAULTS, alertChannels } from '../constants';\nimport type { AlertChannelKey } from './constants';\n\nexport const sliceName = 'monitor';\ntype IssueCounts = Record<DeviceIssueOptionKey, { filtered: number; total: number }>;\ntype ChannelSettings = Record<AlertChannelKey, { enabled: boolean }>;\ntype SanitizedAlert = Alert & { fullName?: string };\n\nexport type MonitorSliceType = {\n alerts: {\n alertList: {\n page: number;\n perPage: number;\n total: number;\n };\n byDeviceId: { alerts?: Record<string, SanitizedAlert>; latest?: Record<string, SanitizedAlert> };\n };\n issueCounts: { byType: IssueCounts };\n settings: {\n global: {\n channels: ChannelSettings;\n };\n };\n};\nexport const initialState: MonitorSliceType = {\n alerts: {\n alertList: { ...DEVICE_LIST_DEFAULTS, total: 0 },\n byDeviceId: {}\n },\n issueCounts: {\n byType: Object.keys(DEVICE_ISSUE_OPTIONS).reduce<IssueCounts>((accu, key) => ({ ...accu, [key]: { filtered: 0, total: 0 } }), {} as IssueCounts)\n },\n settings: {\n global: {\n channels: {\n ...Object.keys(alertChannels).reduce((accu, item) => ({ ...accu, [item]: { enabled: true } }), {} as ChannelSettings)\n }\n }\n }\n};\n\nexport const monitorSlice = createSlice({\n name: sliceName,\n initialState,\n reducers: {\n changeAlertChannel: (state, action: PayloadAction<{ channel: AlertChannelKey; enabled: boolean }>) => {\n const { channel, enabled } = action.payload;\n state.settings.global.channels[channel] = { enabled };\n },\n receiveDeviceAlerts: (state, action: PayloadAction<{ alerts: SanitizedAlert[]; deviceId: string }>) => {\n const { deviceId, alerts } = action.payload;\n state.alerts.byDeviceId[deviceId] = { alerts };\n },\n receiveLatestDeviceAlerts: (state, action: PayloadAction<{ alerts: SanitizedAlert[]; deviceId: string }>) => {\n const { deviceId, alerts } = action.payload;\n state.alerts.byDeviceId[deviceId] = { ...state.alerts.byDeviceId[deviceId], latest: alerts };\n },\n receiveDeviceIssueCounts: (state, action: PayloadAction<{ counts: { filtered: number; total: number }; issueType: DeviceIssueOptionKey }>) => {\n const { issueType, counts } = action.payload;\n state.issueCounts.byType[issueType] = counts;\n },\n setAlertListState: (state, action) => {\n state.alerts.alertList = { ...state.alerts.alertList, ...action.payload };\n }\n }\n});\n\nexport const actions = monitorSlice.actions;\nexport default monitorSlice.reducer;\n","// 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 { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\n\nexport const sliceName = 'onboarding';\n\nexport type OnboardingApproach = 'virtual' | 'physical' | 'mcu';\n\nexport type OnboardingSliceType = {\n address?: string;\n approach: OnboardingApproach | null;\n complete: boolean;\n demoArtifactPort: number;\n deviceConnection?: string;\n deviceType: string[] | string | null;\n progress: string | null;\n showTips: boolean | null;\n showTipsDialog: boolean;\n};\n\nexport const initialState: OnboardingSliceType = {\n approach: null,\n complete: false,\n deviceType: null,\n demoArtifactPort: 85,\n progress: null,\n showTips: null,\n showTipsDialog: false\n};\n\nexport const onboardingSlice = createSlice({\n name: sliceName,\n initialState,\n reducers: {\n setOnboardingState: (state, action: PayloadAction<Partial<OnboardingSliceType>>) => ({ ...state, ...action.payload }),\n setDemoArtifactPort: (state, action: PayloadAction<number>) => {\n state.demoArtifactPort = action.payload;\n },\n setShowOnboardingHelp: (state, action: PayloadAction<boolean>) => {\n state.showTips = action.payload;\n },\n setShowDismissOnboardingTipsDialog: (state, action: PayloadAction<boolean>) => {\n state.showTipsDialog = action.payload;\n },\n setOnboardingComplete: (state, action: PayloadAction<boolean>) => {\n state.complete = action.payload;\n },\n setOnboardingProgress: (state, action: PayloadAction<string>) => {\n state.progress = action.payload;\n },\n setOnboardingDeviceType: (state, action: PayloadAction<string[] | string>) => {\n state.deviceType = action.payload;\n },\n setOnboardingApproach: (state, action: PayloadAction<OnboardingApproach>) => {\n state.approach = action.payload;\n }\n }\n});\n\nexport const actions = onboardingSlice.actions;\nexport default onboardingSlice.reducer;\n","// 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 { AuditLog as AuditLogEvent, BillingProfile, Integration, Event as WebhookEvent } from '@northern.tech/types/MenderTypes';\nimport type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\n\nimport { DEVICE_LIST_DEFAULTS, SORTING_OPTIONS, TENANT_LIST_DEFAULT } from '../constants';\nimport type { AuditLog, AuditLogSelectionState, Card, Organization, ProductConfig, SSOConfig, TenantList, Webhook } from './types';\n\nexport const sliceName = 'organization';\n\nexport type OrganizationSliceType = {\n auditlog: AuditLog;\n card: Card;\n externalDeviceIntegrations: Integration[];\n intentId: string | null;\n organization: Partial<Organization>;\n products?: ProductConfig;\n ssoConfigs: SSOConfig[];\n tenantList: TenantList;\n webhooks: Webhook;\n};\n\nexport const initialState: OrganizationSliceType = {\n card: {\n last4: '',\n expiration: { month: 1, year: 2020 },\n brand: ''\n },\n intentId: null,\n tenantList: {\n ...TENANT_LIST_DEFAULT,\n total: 0,\n tenants: [],\n selectedTenant: null,\n sort: {\n direction: SORTING_OPTIONS.desc,\n key: 'name'\n }\n },\n organization: {\n // id, name, status, tenant_token, plan\n },\n auditlog: {\n events: [],\n selectionState: {\n ...DEVICE_LIST_DEFAULTS,\n detail: undefined,\n endDate: undefined,\n selectedIssue: undefined,\n sort: { direction: SORTING_OPTIONS.desc },\n startDate: undefined,\n total: 0,\n type: undefined,\n user: undefined,\n isLoading: false\n }\n },\n externalDeviceIntegrations: [\n // { <connection_string|x509|...>, id, provider }\n ],\n ssoConfigs: [],\n webhooks: {\n // [id]: { events: [] }\n // for now:\n events: [],\n eventsTotal: 0\n }\n};\n\nexport const organizationSlice = createSlice({\n name: sliceName,\n initialState,\n reducers: {\n receiveAuditLogs: (state, action: PayloadAction<{ events: AuditLogEvent[]; total: number }>) => {\n const { events, total } = action.payload;\n state.auditlog.events = events;\n state.auditlog.selectionState.total = total;\n },\n setAuditLogState: (state, action: PayloadAction<Partial<AuditLogSelectionState>>) => {\n state.auditlog.selectionState = {\n ...state.auditlog.selectionState,\n ...action.payload\n };\n },\n receiveCurrentCard: (state, action: PayloadAction<Card>) => {\n state.card = action.payload;\n },\n receiveSetupIntent: (state, action: PayloadAction<string | null>) => {\n state.intentId = action.payload;\n },\n setOrganization: (state, action: PayloadAction<Partial<Organization>>) => {\n state.organization = { ...state.organization, ...action.payload };\n },\n setSubscription: (state, action) => {\n state.organization.subscription = { ...state.organization.subscription, ...action.payload };\n },\n setProducts: (state, action: PayloadAction<ProductConfig>) => {\n state.products = action.payload;\n },\n setBillingProfile: (state, action: PayloadAction<BillingProfile>) => {\n state.organization.billing_profile = action.payload;\n },\n setTenantListState: (state, action: PayloadAction<TenantList>) => {\n state.tenantList = action.payload;\n },\n receiveExternalDeviceIntegrations: (state, action: PayloadAction<Integration[]>) => {\n state.externalDeviceIntegrations = action.payload;\n },\n receiveSsoConfigs: (state, action: PayloadAction<SSOConfig[]>) => {\n state.ssoConfigs = action.payload;\n },\n receiveWebhookEvents: (state, action: PayloadAction<{ total: number; value: WebhookEvent[] }>) => {\n const { value, total } = action.payload;\n state.webhooks.events = value;\n state.webhooks.eventsTotal = total;\n }\n }\n});\n\nexport const actions = organizationSlice.actions;\nexport default organizationSlice.reducer;\n","// 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 {\n ArtifactV1 as BackendArtifactV1,\n ArtifactV2 as BackendArtifactV2,\n ReleaseV1 as BackendReleaseV1,\n ReleaseV2 as BackendReleaseV2,\n Update as BackendUpdate,\n DeltaJobDetailsItem,\n DeltaJobsListItem\n} from '@northern.tech/types/MenderTypes';\nimport type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\n\nimport { DEVICE_LIST_DEFAULTS, SORTING_OPTIONS } from '../constants';\nimport type { SortOptions } from '../constants';\n\ntype Update = Omit<BackendUpdate, 'meta_data'>;\nexport type Artifact = Omit<BackendArtifactV1, 'updates'> &\n Omit<BackendArtifactV2, 'updates'> & { installCount?: number; updates?: Array<Update>; url?: string };\nexport type Release = BackendReleaseV1 & BackendReleaseV2 & { artifacts: Artifact[]; device_types_compatible: string[]; name: string };\n\nexport const sliceName = 'releases';\n\ntype EnhancedJobDetailsItem = DeltaJobDetailsItem & DeltaJobsListItem;\n\nexport type ReleasesList = {\n isLoading?: boolean;\n page: number;\n perPage: number;\n releaseIds: string[];\n searchedIds: string[];\n searchOnly?: boolean;\n searchTerm: string;\n searchTotal: number;\n selectedTags: string[];\n selection: number[];\n sort?: SortOptions;\n tab?: 'releases' | 'delta';\n total: number;\n type: string;\n};\n\nexport type ReleaseSliceType = {\n artifacts: never[];\n byId: Record<string, Release>;\n deltaJobs: Record<string, EnhancedJobDetailsItem>;\n deltaJobsList: {\n jobIds: string[];\n page: number;\n perPage: number;\n sort?: SortOptions;\n total: 0;\n };\n releasesList: ReleasesList;\n selectedJob: string | null;\n selectedRelease: string | null;\n tags: string[];\n updateTypes: string[];\n};\n\nexport const initialState: ReleaseSliceType = {\n /*\n * Return list of saved artifacts objects\n */\n /*\n * return list of artifacts where duplicate names are collated with device compatibility lists combined\n */\n // artifacts: AppStore.getCollatedArtifacts(AppStore.getArtifactsRepo()),\n artifacts: [],\n /*\n * Return list of saved release objects\n */\n byId: {\n /*\n [releaseName]: {\n artifacts: [\n {\n id: '',\n name: '',\n description: '',\n device_types_compatible: [],\n ...\n updates: [{\n files: [\n { size: 123, name: '' }\n ],\n type_info: { type: '' }\n }],\n url: '' // optional\n }\n ],\n modified: ''\n device_types_compatible,\n name: '',\n tags: ['something'],\n notes: ''\n }\n */\n },\n deltaJobs: {\n /*\n [jobId]: {\n id: '',\n ...\n }\n */\n },\n deltaJobsList: {\n ...DEVICE_LIST_DEFAULTS,\n jobIds: [],\n total: 0,\n sort: {\n direction: SORTING_OPTIONS.desc,\n key: 'started'\n }\n },\n releasesList: {\n ...DEVICE_LIST_DEFAULTS,\n searchedIds: [],\n releaseIds: [],\n selection: [],\n sort: {\n direction: SORTING_OPTIONS.desc,\n key: 'modified'\n },\n isLoading: undefined,\n searchTerm: '',\n searchTotal: 0,\n selectedTags: [],\n total: 0,\n type: ''\n },\n tags: [],\n updateTypes: [],\n selectedJob: null,\n /*\n * Return single release with corresponding Artifacts\n */\n selectedRelease: null\n};\n\nexport const releaseSlice = createSlice({\n name: sliceName,\n initialState,\n reducers: {\n receiveRelease: (state, action: PayloadAction<Release>) => {\n const { name } = action.payload;\n state.byId[name] = action.payload;\n },\n receiveReleases: (state, action: PayloadAction<Record<string, Release>>) => {\n state.byId = action.payload;\n },\n receiveReleaseTags: (state, action: PayloadAction<string[]>) => {\n state.tags = action.payload;\n },\n receiveReleaseTypes: (state, action: PayloadAction<string[]>) => {\n state.updateTypes = action.payload;\n },\n removeRelease: (state, action: PayloadAction<string>) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [action.payload]: toBeRemoved, ...byId } = state.byId;\n state.byId = byId;\n state.selectedRelease = action.payload === state.selectedRelease ? null : state.selectedRelease;\n },\n selectedRelease: (state, action: PayloadAction<string | null>) => {\n state.selectedRelease = action.payload;\n },\n setReleaseListState: (state, action) => {\n state.releasesList = action.payload;\n },\n receivedDeltaJobs: (state, action) => {\n const { jobs, total } = action.payload;\n state.deltaJobs = jobs.reduce(\n (accu, job) => {\n accu[job.id] = {\n ...accu[job.id],\n ...job\n };\n return accu;\n },\n { ...state.deltaJobs }\n );\n state.deltaJobsList.jobIds = jobs.map(job => job.id);\n state.deltaJobsList.total = total;\n },\n receivedDeltaJobDetails: (state, action) => {\n const job: DeltaJobDetailsItem & { id: string } = action.payload;\n state.deltaJobs[job.id] = {\n ...state.deltaJobs[job.id],\n ...job\n };\n },\n setDeltaJobsListState: (state, action) => {\n state.deltaJobsList = { ...state.deltaJobsList, ...action.payload };\n },\n setSelectedJob: (state, action) => {\n state.selectedJob = action.payload;\n }\n }\n});\n\nexport const actions = releaseSlice.actions;\nexport default releaseSlice.reducer;\n","// 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 securityAlertDismissedTimestamp: null | string;\n tooltips?: object;\n trackingConsentGiven?: boolean;\n};\n\nexport type UserSliceType = {\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 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 securityAlertDismissedTimestamp: 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 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","// Copyright 2024 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 { actions as appActions } from './appSlice';\nimport { actions as deploymentActions } from './deploymentsSlice';\nimport { actions as devicesActions } from './devicesSlice';\nimport { actions as monitorActions } from './monitorSlice';\nimport { actions as onboardingActions } from './onboardingSlice';\nimport { actions as organizationActions } from './organizationSlice';\nimport { actions as releaseActions } from './releasesSlice';\nimport { actions as userActions } from './usersSlice';\n\nexport default {\n ...appActions,\n ...deploymentActions,\n ...devicesActions,\n ...monitorActions,\n ...onboardingActions,\n ...organizationActions,\n ...releaseActions,\n ...userActions\n};\n","// Copyright 2016 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 Cookies from 'universal-cookie';\n\nimport { TIMEOUTS, maxSessionAge } from './constants';\nimport type { UserSession } from './usersSlice';\n\nconst cookies = new Cookies();\n\nconst emptySession = Object.freeze({ token: '', expiresAt: undefined }) as Readonly<UserSession>;\n\nlet tokenCache = '';\n\nexport const getSessionInfo = (): UserSession => {\n let sessionInfo = { ...emptySession } as UserSession;\n try {\n sessionInfo = JSON.parse(window.localStorage.getItem('JWT') ?? '');\n } catch {\n // most likely not logged in - nothing to do here\n }\n\n // check for cookie first to handles sso login while an old/expired token may still exist in cache/ localStorage\n const jwtTokenFromCookie = cookies.get('JWT', { doNotParse: true }) ?? '';\n if (jwtTokenFromCookie) {\n setSessionInfo({ token: jwtTokenFromCookie });\n cookies.remove('JWT');\n cookies.remove('JWT', { path: '/' });\n return { token: jwtTokenFromCookie, expiresAt: undefined };\n }\n if (sessionInfo.expiresAt && new Date(sessionInfo.expiresAt) < new Date()) {\n cleanUp();\n return { ...emptySession };\n }\n sessionInfo.token = sessionInfo.token || '';\n tokenCache = sessionInfo.token;\n return sessionInfo;\n};\n\nexport const getToken = () => (tokenCache ? tokenCache : getSessionInfo().token);\n\nexport const setSessionInfo = ({ token, expiresAt }: UserSession) => {\n tokenCache = token;\n window.localStorage.setItem('JWT', JSON.stringify({ token, expiresAt }));\n};\n\nexport const cleanUp = () => {\n tokenCache = '';\n cookies.remove('JWT');\n cookies.remove('JWT', { path: '/' });\n window.localStorage.removeItem('JWT');\n window.localStorage.removeItem('oauth');\n};\n\nexport const updateMaxAge = ({ expiresAt, token }) => {\n const oAuthExpiration = Number(window.localStorage.getItem('oauth'));\n let updateWithOAuth = false;\n if (oAuthExpiration) {\n const soon = Date.now() + maxSessionAge * TIMEOUTS.oneSecond;\n updateWithOAuth = oAuthExpiration <= soon;\n if (updateWithOAuth) {\n window.localStorage.removeItem('oauth');\n }\n }\n if (token && expiresAt && (!oAuthExpiration || updateWithOAuth)) {\n const expiration = new Date();\n expiration.setSeconds(expiration.getSeconds() + maxSessionAge);\n setSessionInfo({ token, expiresAt: expiration.toISOString() });\n }\n};\n"],"mappings":"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","names":["import_helpers","import_toolkit","import_constants","import_toolkit","sliceName","initialState","actions","import_toolkit","sliceName","initialState","actions","import_toolkit","sliceName","initialState","actions","import_toolkit","sliceName","initialState","actions","import_toolkit","sliceName","initialState","actions","import_toolkit","sliceName","initialState","actions","import_toolkit","sliceName","initialState","rolesById","actions","actions","Cookies","actions"]}
|
|
1
|
+
{"version":3,"file":"store.cjs","names":["actions","settingsKeys","getToken","appSlice","deviceSlice","deploymentSlice","monitorSlice","onboardingSlice","organizationSlice","releaseSlice","userSlice","userActions","organizationActions","useDispatch","useSelector","createAsyncThunk"],"sources":["../src/store.ts"],"sourcesContent":["// Copyright 2019 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 { useDispatch, useSelector } from 'react-redux';\nimport type { TypedUseSelectorHook } from 'react-redux';\n\nimport { extractErrorMessage, preformatWithRequestID } from '@northern.tech/utils/helpers';\nimport type { Middleware, Reducer, UnknownAction } from '@reduxjs/toolkit';\nimport { combineReducers, configureStore, createAsyncThunk, isRejected } from '@reduxjs/toolkit';\nimport { createReduxEnhancer } from '@sentry/react';\n\nimport actions from './actions';\nimport appSlice from './appSlice';\nimport { getToken } from './auth';\nimport { USER_LOGOUT, settingsKeys } from './constants';\nimport deploymentSlice from './deploymentsSlice';\nimport deviceSlice from './devicesSlice';\nimport monitorSlice from './monitorSlice';\nimport onboardingSlice from './onboardingSlice';\nimport organizationSlice, { actions as organizationActions } from './organizationSlice';\nimport releaseSlice from './releasesSlice';\nimport userSlice, { actions as userActions } from './usersSlice';\n\nconst { setSnackbar, uploadProgress } = actions;\n\n// exclude 'pendings-redirect' since this is expected to persist refreshes - the rest should be better to be redone\nconst keys = ['sessionDeploymentChecker', settingsKeys.initialized];\nconst resetEnvironment = (): void => keys.forEach(key => window.sessionStorage.removeItem(key));\n\nresetEnvironment();\n\nexport type { ErrorWithResponse } from './utils';\n\nexport type MenderEnvironment = {\n [key: string]: unknown;\n demoArtifactPort?: string | number;\n disableOnboarding?: string;\n features: Record<string, string>;\n integrationVersion: string;\n menderArtifactVersion: string;\n metaMenderVersion: string;\n sentry?: { isReduxEnabled?: string | boolean };\n};\n\ndeclare global {\n interface Window {\n mender_environment?: MenderEnvironment;\n }\n}\n\nexport const commonErrorFallback = 'Please check your connection.';\nexport const commonErrorHandler = (\n err: { message?: string; response?: { data?: unknown } },\n errorContext: string,\n dispatch: AppDispatch,\n fallback?: string,\n mightBeAuthRelated = false\n): Promise<never> => {\n const errMsg = extractErrorMessage(err, fallback);\n if (mightBeAuthRelated || getToken()) {\n dispatch(setSnackbar({ message: preformatWithRequestID(err.response, `${errorContext} ${errMsg}`), action: 'Copy to clipboard' }));\n }\n return Promise.reject(err);\n};\n\nconst rootReducer = combineReducers({\n app: appSlice,\n devices: deviceSlice,\n deployments: deploymentSlice,\n monitor: monitorSlice,\n onboarding: onboardingSlice,\n organization: organizationSlice,\n releases: releaseSlice,\n users: userSlice\n});\n\ntype RootReducerState = ReturnType<typeof rootReducer>;\n\nconst sessionReducerImpl: Reducer<RootReducerState | undefined, UnknownAction> = (state, action) => {\n if (action.type === USER_LOGOUT) {\n state = undefined;\n }\n return rootReducer(state, action);\n};\n// Export for testing; cast to RootReducerState since undefined always falls through to initial slice states\nexport const sessionReducer = sessionReducerImpl as Reducer<RootReducerState>;\n\nconst rejectionLoggerMiddleware: Middleware = () => next => action => {\n if (isRejected(action)) {\n console.error('Rejection in action:', action);\n if (action.error) {\n console.error(action.error.stack);\n }\n }\n return next(action);\n};\n\nconst tracingActionIgnoreList = [userActions.successfullyLoggedIn.type, 'users/loginUser/pending', 'users/loginUser/fulfilled', 'users/loginUser/rejected'];\n\nconst sentryReduxEnhancer = createReduxEnhancer({\n actionTransformer: (action: UnknownAction) => {\n if (tracingActionIgnoreList.includes(action.type as string)) {\n return null;\n }\n return action;\n },\n // Transform the state to remove sensitive information\n stateTransformer: (state: RootState) => {\n const transformedState = {\n ...state,\n users: { ...state.users, currentSession: null },\n organization: {\n ...state.organization,\n organization: {\n ...state.organization.organization,\n tenant_token: null\n }\n }\n };\n return transformedState;\n }\n});\n\nexport const getConfiguredStore = (options: { [key: string]: unknown; preloadedState?: Partial<RootReducerState> } = {}) => {\n const { preloadedState, ...config } = options;\n return configureStore({\n ...config,\n preloadedState: preloadedState as RootReducerState,\n enhancers: getDefaultEnhancers => {\n // rely on the plain injected env object, as we're initializing the store only here\n if (window.mender_environment?.sentry?.isReduxEnabled) {\n return getDefaultEnhancers().concat(sentryReduxEnhancer);\n }\n return getDefaultEnhancers();\n },\n reducer: sessionReducer,\n // @ts-expect-error - GetDefaultMiddleware type mismatch between @reduxjs/toolkit and @sentry/react\n middleware: getDefaultMiddleware =>\n getDefaultMiddleware({\n immutableCheck: {\n ignoredPaths: ['app.uploadsById']\n },\n serializableCheck: {\n ignoredActions: [organizationActions.receiveExternalDeviceIntegrations.type, uploadProgress.type],\n ignoredActionPaths: ['uploads', /payload\\..*$/, 'meta.arg.file', 'meta.arg.integration.configHint'],\n ignoredPaths: ['app.uploadsById', 'organization.externalDeviceIntegrations']\n }\n }).concat(rejectionLoggerMiddleware)\n });\n};\nexport const store = getConfiguredStore({\n preloadedState: {}\n});\nexport type AppDispatch = typeof store.dispatch;\nexport type RootState = ReturnType<typeof rootReducer>;\nexport const useAppDispatch: () => AppDispatch = useDispatch;\nexport const useAppSelector: TypedUseSelectorHook<RootState> = useSelector;\n\nexport const createAppAsyncThunk = createAsyncThunk.withTypes<{\n dispatch: AppDispatch;\n state: RootState;\n}>();\n"],"mappings":";;;;;;;;;;;;;;;;;;AAiCA,MAAM,EAAE,aAAa,mBAAmBA;AAGxC,MAAM,OAAO,CAAC,4BAA4BC,kBAAAA,aAAa,YAAY;AACnE,MAAM,yBAA+B,KAAK,SAAQ,QAAO,OAAO,eAAe,WAAW,IAAI,CAAC;AAE/F,kBAAkB;AAqBlB,MAAa,sBAAsB;AACnC,MAAa,sBACX,KACA,cACA,UACA,UACA,qBAAqB,UACF;CACnB,MAAM,UAAA,GAAA,6BAAA,qBAA6B,KAAK,SAAS;AACjD,KAAI,sBAAsBC,aAAAA,UAAU,CAClC,UAAS,YAAY;EAAE,UAAA,GAAA,6BAAA,wBAAgC,IAAI,UAAU,GAAG,aAAa,GAAG,SAAS;EAAE,QAAQ;EAAqB,CAAC,CAAC;AAEpI,QAAO,QAAQ,OAAO,IAAI;;AAG5B,MAAM,eAAA,GAAA,iBAAA,iBAA8B;CAClC,KAAKC,uBAAAA;CACL,SAASC,2BAAAA;CACT,aAAaC,+BAAAA;CACb,SAASC,2BAAAA;CACT,YAAYC,8BAAAA;CACZ,cAAcC,gCAAAA;CACd,UAAUC,4BAAAA;CACV,OAAOC,yBAAAA;CACR,CAAC;AAIF,MAAM,sBAA4E,OAAO,WAAW;AAClG,KAAI,OAAO,SAAA,cACT,SAAQ,KAAA;AAEV,QAAO,YAAY,OAAO,OAAO;;AAGnC,MAAa,iBAAiB;AAE9B,MAAM,mCAA8C,UAAQ,WAAU;AACpE,MAAA,GAAA,iBAAA,YAAe,OAAO,EAAE;AACtB,UAAQ,MAAM,wBAAwB,OAAO;AAC7C,MAAI,OAAO,MACT,SAAQ,MAAM,OAAO,MAAM,MAAM;;AAGrC,QAAO,KAAK,OAAO;;AAGrB,MAAM,0BAA0B;CAACC,yBAAAA,QAAY,qBAAqB;CAAM;CAA2B;CAA6B;CAA2B;AAE3J,MAAM,uBAAA,GAAA,cAAA,qBAA0C;CAC9C,oBAAoB,WAA0B;AAC5C,MAAI,wBAAwB,SAAS,OAAO,KAAe,CACzD,QAAO;AAET,SAAO;;CAGT,mBAAmB,UAAqB;AAYtC,SAXyB;GACvB,GAAG;GACH,OAAO;IAAE,GAAG,MAAM;IAAO,gBAAgB;IAAM;GAC/C,cAAc;IACZ,GAAG,MAAM;IACT,cAAc;KACZ,GAAG,MAAM,aAAa;KACtB,cAAc;KACf;IACF;GACF;;CAGJ,CAAC;AAEF,MAAa,sBAAsB,UAAkF,EAAE,KAAK;CAC1H,MAAM,EAAE,gBAAgB,GAAG,WAAW;AACtC,SAAA,GAAA,iBAAA,gBAAsB;EACpB,GAAG;EACa;EAChB,YAAW,wBAAuB;AAEhC,OAAI,OAAO,oBAAoB,QAAQ,eACrC,QAAO,qBAAqB,CAAC,OAAO,oBAAoB;AAE1D,UAAO,qBAAqB;;EAE9B,SAAS;EAET,aAAY,yBACV,qBAAqB;GACnB,gBAAgB,EACd,cAAc,CAAC,kBAAkB,EAClC;GACD,mBAAmB;IACjB,gBAAgB,CAACC,gCAAAA,QAAoB,kCAAkC,MAAM,eAAe,KAAK;IACjG,oBAAoB;KAAC;KAAW;KAAgB;KAAiB;KAAkC;IACnG,cAAc,CAAC,mBAAmB,0CAA0C;IAC7E;GACF,CAAC,CAAC,OAAO,0BAA0B;EACvC,CAAC;;AAEJ,MAAa,QAAQ,mBAAmB,EACtC,gBAAgB,EAAE,EACnB,CAAC;AAGF,MAAa,iBAAoCC,YAAAA;AACjD,MAAa,iBAAkDC,YAAAA;AAE/D,MAAa,sBAAsBC,iBAAAA,iBAAiB,WAGhD"}
|
package/dist/store.d.cts
CHANGED
|
@@ -1,206 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
import { UserSliceType } from './usersSlice/index.cjs';
|
|
5
|
-
import { ReleaseSliceType } from './releasesSlice/index.cjs';
|
|
6
|
-
import { OrganizationSliceType } from './organizationSlice/index.cjs';
|
|
7
|
-
import { OnboardingSliceType } from './onboardingSlice/index.cjs';
|
|
8
|
-
import { MonitorSliceType } from './monitorSlice/index.cjs';
|
|
9
|
-
import { DeploymentsSliceType } from './deploymentsSlice/index.cjs';
|
|
10
|
-
import { DeviceSliceType } from './devicesSlice/index.cjs';
|
|
11
|
-
import { AppSliceType } from './appSlice/index.cjs';
|
|
12
|
-
import 'immer';
|
|
13
|
-
import '@northern.tech/types/MenderTypes';
|
|
14
|
-
import '@northern.tech/utils/constants';
|
|
15
|
-
import './commonConstants.cjs';
|
|
16
|
-
import 'react/jsx-runtime';
|
|
17
|
-
import './usersSlice/constants.cjs';
|
|
18
|
-
import './organizationSlice/types.cjs';
|
|
19
|
-
import './appSlice/constants.cjs';
|
|
20
|
-
import '@mui/material/OverridableComponent';
|
|
21
|
-
import '@mui/material';
|
|
22
|
-
import './organizationSlice/constants.cjs';
|
|
23
|
-
import './monitorSlice/constants.cjs';
|
|
24
|
-
import './devicesSlice/constants.cjs';
|
|
25
|
-
|
|
26
|
-
declare const commonErrorFallback = "Please check your connection.";
|
|
27
|
-
declare const commonErrorHandler: (err: any, errorContext: any, dispatch: any, fallback?: string, mightBeAuthRelated?: boolean) => Promise<never>;
|
|
28
|
-
declare const sessionReducer: (state: any, action: any) => {
|
|
29
|
-
app: AppSliceType;
|
|
30
|
-
devices: DeviceSliceType;
|
|
31
|
-
deployments: DeploymentsSliceType;
|
|
32
|
-
monitor: MonitorSliceType;
|
|
33
|
-
onboarding: OnboardingSliceType;
|
|
34
|
-
organization: OrganizationSliceType;
|
|
35
|
-
releases: ReleaseSliceType;
|
|
36
|
-
users: UserSliceType;
|
|
37
|
-
};
|
|
38
|
-
declare const getConfiguredStore: (options?: {}) => _reduxjs_toolkit.EnhancedStore<{
|
|
39
|
-
app: AppSliceType;
|
|
40
|
-
devices: DeviceSliceType;
|
|
41
|
-
deployments: DeploymentsSliceType;
|
|
42
|
-
monitor: MonitorSliceType;
|
|
43
|
-
onboarding: OnboardingSliceType;
|
|
44
|
-
organization: OrganizationSliceType;
|
|
45
|
-
releases: ReleaseSliceType;
|
|
46
|
-
users: UserSliceType;
|
|
47
|
-
}, any, _reduxjs_toolkit.Tuple<[redux.StoreEnhancer<{
|
|
48
|
-
dispatch: redux_thunk.ThunkDispatch<{
|
|
49
|
-
app: AppSliceType;
|
|
50
|
-
devices: DeviceSliceType;
|
|
51
|
-
deployments: DeploymentsSliceType;
|
|
52
|
-
monitor: MonitorSliceType;
|
|
53
|
-
onboarding: OnboardingSliceType;
|
|
54
|
-
organization: OrganizationSliceType;
|
|
55
|
-
releases: ReleaseSliceType;
|
|
56
|
-
users: UserSliceType;
|
|
57
|
-
}, undefined, redux.UnknownAction>;
|
|
58
|
-
}>, redux.StoreEnhancer]>>;
|
|
59
|
-
declare const store: _reduxjs_toolkit.EnhancedStore<{
|
|
60
|
-
app: AppSliceType;
|
|
61
|
-
devices: DeviceSliceType;
|
|
62
|
-
deployments: DeploymentsSliceType;
|
|
63
|
-
monitor: MonitorSliceType;
|
|
64
|
-
onboarding: OnboardingSliceType;
|
|
65
|
-
organization: OrganizationSliceType;
|
|
66
|
-
releases: ReleaseSliceType;
|
|
67
|
-
users: UserSliceType;
|
|
68
|
-
}, any, _reduxjs_toolkit.Tuple<[redux.StoreEnhancer<{
|
|
69
|
-
dispatch: redux_thunk.ThunkDispatch<{
|
|
70
|
-
app: AppSliceType;
|
|
71
|
-
devices: DeviceSliceType;
|
|
72
|
-
deployments: DeploymentsSliceType;
|
|
73
|
-
monitor: MonitorSliceType;
|
|
74
|
-
onboarding: OnboardingSliceType;
|
|
75
|
-
organization: OrganizationSliceType;
|
|
76
|
-
releases: ReleaseSliceType;
|
|
77
|
-
users: UserSliceType;
|
|
78
|
-
}, undefined, redux.UnknownAction>;
|
|
79
|
-
}>, redux.StoreEnhancer]>>;
|
|
80
|
-
type AppDispatch = typeof store.dispatch;
|
|
81
|
-
declare const useAppDispatch: () => AppDispatch;
|
|
82
|
-
type RootState = ReturnType<typeof store.getState>;
|
|
83
|
-
declare const createAppAsyncThunk: _reduxjs_toolkit.CreateAsyncThunkFunction<{
|
|
84
|
-
dispatch: AppDispatch;
|
|
85
|
-
state: RootState;
|
|
86
|
-
extra?: unknown;
|
|
87
|
-
rejectValue?: unknown;
|
|
88
|
-
serializedErrorType?: unknown;
|
|
89
|
-
pendingMeta?: unknown;
|
|
90
|
-
fulfilledMeta?: unknown;
|
|
91
|
-
rejectedMeta?: unknown;
|
|
92
|
-
}> & {
|
|
93
|
-
withTypes<ThunkApiConfig extends _reduxjs_toolkit.AsyncThunkConfig>(): _reduxjs_toolkit.CreateAsyncThunkFunction<ThunkApiConfig & Omit<{
|
|
94
|
-
dispatch: AppDispatch;
|
|
95
|
-
state: RootState;
|
|
96
|
-
extra?: unknown;
|
|
97
|
-
rejectValue?: unknown;
|
|
98
|
-
serializedErrorType?: unknown;
|
|
99
|
-
pendingMeta?: unknown;
|
|
100
|
-
fulfilledMeta?: unknown;
|
|
101
|
-
rejectedMeta?: unknown;
|
|
102
|
-
}, keyof ThunkApiConfig> extends infer T ? { [K in keyof T]: T[K]; } : never> & {
|
|
103
|
-
withTypes<ThunkApiConfig_1 extends _reduxjs_toolkit.AsyncThunkConfig>(): _reduxjs_toolkit.CreateAsyncThunkFunction<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
|
|
104
|
-
dispatch: AppDispatch;
|
|
105
|
-
state: RootState;
|
|
106
|
-
extra?: unknown;
|
|
107
|
-
rejectValue?: unknown;
|
|
108
|
-
serializedErrorType?: unknown;
|
|
109
|
-
pendingMeta?: unknown;
|
|
110
|
-
fulfilledMeta?: unknown;
|
|
111
|
-
rejectedMeta?: unknown;
|
|
112
|
-
}, keyof ThunkApiConfig> extends infer T_2 ? { [K in keyof T_2]: T_2[K]; } : never, keyof ThunkApiConfig_1> extends infer T_1 ? { [K_1 in keyof T_1]: T_1[K_1]; } : never> & {
|
|
113
|
-
withTypes<ThunkApiConfig_2 extends _reduxjs_toolkit.AsyncThunkConfig>(): _reduxjs_toolkit.CreateAsyncThunkFunction<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
|
|
114
|
-
dispatch: AppDispatch;
|
|
115
|
-
state: RootState;
|
|
116
|
-
extra?: unknown;
|
|
117
|
-
rejectValue?: unknown;
|
|
118
|
-
serializedErrorType?: unknown;
|
|
119
|
-
pendingMeta?: unknown;
|
|
120
|
-
fulfilledMeta?: unknown;
|
|
121
|
-
rejectedMeta?: unknown;
|
|
122
|
-
}, keyof ThunkApiConfig> extends infer T_5 ? { [K in keyof T_5]: T_5[K]; } : never, keyof ThunkApiConfig_1> extends infer T_4 ? { [K_1 in keyof T_4]: T_4[K_1]; } : never, keyof ThunkApiConfig_2> extends infer T_3 ? { [K_2 in keyof T_3]: T_3[K_2]; } : never> & {
|
|
123
|
-
withTypes<ThunkApiConfig_3 extends _reduxjs_toolkit.AsyncThunkConfig>(): _reduxjs_toolkit.CreateAsyncThunkFunction<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
|
|
124
|
-
dispatch: AppDispatch;
|
|
125
|
-
state: RootState;
|
|
126
|
-
extra?: unknown;
|
|
127
|
-
rejectValue?: unknown;
|
|
128
|
-
serializedErrorType?: unknown;
|
|
129
|
-
pendingMeta?: unknown;
|
|
130
|
-
fulfilledMeta?: unknown;
|
|
131
|
-
rejectedMeta?: unknown;
|
|
132
|
-
}, keyof ThunkApiConfig> extends infer T_9 ? { [K in keyof T_9]: T_9[K]; } : never, keyof ThunkApiConfig_1> extends infer T_8 ? { [K_1 in keyof T_8]: T_8[K_1]; } : never, keyof ThunkApiConfig_2> extends infer T_7 ? { [K_2 in keyof T_7]: T_7[K_2]; } : never, keyof ThunkApiConfig_3> extends infer T_6 ? { [K_3 in keyof T_6]: T_6[K_3]; } : never> & {
|
|
133
|
-
withTypes<ThunkApiConfig_4 extends _reduxjs_toolkit.AsyncThunkConfig>(): _reduxjs_toolkit.CreateAsyncThunkFunction<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
|
|
134
|
-
dispatch: AppDispatch;
|
|
135
|
-
state: RootState;
|
|
136
|
-
extra?: unknown;
|
|
137
|
-
rejectValue?: unknown;
|
|
138
|
-
serializedErrorType?: unknown;
|
|
139
|
-
pendingMeta?: unknown;
|
|
140
|
-
fulfilledMeta?: unknown;
|
|
141
|
-
rejectedMeta?: unknown;
|
|
142
|
-
}, keyof ThunkApiConfig> extends infer T_14 ? { [K in keyof T_14]: T_14[K]; } : never, keyof ThunkApiConfig_1> extends infer T_13 ? { [K_1 in keyof T_13]: T_13[K_1]; } : never, keyof ThunkApiConfig_2> extends infer T_12 ? { [K_2 in keyof T_12]: T_12[K_2]; } : never, keyof ThunkApiConfig_3> extends infer T_11 ? { [K_3 in keyof T_11]: T_11[K_3]; } : never, keyof ThunkApiConfig_4> extends infer T_10 ? { [K_4 in keyof T_10]: T_10[K_4]; } : never> & {
|
|
143
|
-
withTypes<ThunkApiConfig_5 extends _reduxjs_toolkit.AsyncThunkConfig>(): _reduxjs_toolkit.CreateAsyncThunkFunction<ThunkApiConfig_5 & Omit<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
|
|
144
|
-
dispatch: AppDispatch;
|
|
145
|
-
state: RootState;
|
|
146
|
-
extra?: unknown;
|
|
147
|
-
rejectValue?: unknown;
|
|
148
|
-
serializedErrorType?: unknown;
|
|
149
|
-
pendingMeta?: unknown;
|
|
150
|
-
fulfilledMeta?: unknown;
|
|
151
|
-
rejectedMeta?: unknown;
|
|
152
|
-
}, keyof ThunkApiConfig> extends infer T_20 ? { [K in keyof T_20]: T_20[K]; } : never, keyof ThunkApiConfig_1> extends infer T_19 ? { [K_1 in keyof T_19]: T_19[K_1]; } : never, keyof ThunkApiConfig_2> extends infer T_18 ? { [K_2 in keyof T_18]: T_18[K_2]; } : never, keyof ThunkApiConfig_3> extends infer T_17 ? { [K_3 in keyof T_17]: T_17[K_3]; } : never, keyof ThunkApiConfig_4> extends infer T_16 ? { [K_4 in keyof T_16]: T_16[K_4]; } : never, keyof ThunkApiConfig_5> extends infer T_15 ? { [K_5 in keyof T_15]: T_15[K_5]; } : never> & {
|
|
153
|
-
withTypes<ThunkApiConfig_6 extends _reduxjs_toolkit.AsyncThunkConfig>(): _reduxjs_toolkit.CreateAsyncThunkFunction<ThunkApiConfig_6 & Omit<ThunkApiConfig_5 & Omit<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
|
|
154
|
-
dispatch: AppDispatch;
|
|
155
|
-
state: RootState;
|
|
156
|
-
extra?: unknown;
|
|
157
|
-
rejectValue?: unknown;
|
|
158
|
-
serializedErrorType?: unknown;
|
|
159
|
-
pendingMeta?: unknown;
|
|
160
|
-
fulfilledMeta?: unknown;
|
|
161
|
-
rejectedMeta?: unknown;
|
|
162
|
-
}, keyof ThunkApiConfig> extends infer T_27 ? { [K in keyof T_27]: T_27[K]; } : never, keyof ThunkApiConfig_1> extends infer T_26 ? { [K_1 in keyof T_26]: T_26[K_1]; } : never, keyof ThunkApiConfig_2> extends infer T_25 ? { [K_2 in keyof T_25]: T_25[K_2]; } : never, keyof ThunkApiConfig_3> extends infer T_24 ? { [K_3 in keyof T_24]: T_24[K_3]; } : never, keyof ThunkApiConfig_4> extends infer T_23 ? { [K_4 in keyof T_23]: T_23[K_4]; } : never, keyof ThunkApiConfig_5> extends infer T_22 ? { [K_5 in keyof T_22]: T_22[K_5]; } : never, keyof ThunkApiConfig_6> extends infer T_21 ? { [K_6 in keyof T_21]: T_21[K_6]; } : never> & {
|
|
163
|
-
withTypes<ThunkApiConfig_7 extends _reduxjs_toolkit.AsyncThunkConfig>(): _reduxjs_toolkit.CreateAsyncThunkFunction<ThunkApiConfig_7 & Omit<ThunkApiConfig_6 & Omit<ThunkApiConfig_5 & Omit<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
|
|
164
|
-
dispatch: AppDispatch;
|
|
165
|
-
state: RootState;
|
|
166
|
-
extra?: unknown;
|
|
167
|
-
rejectValue?: unknown;
|
|
168
|
-
serializedErrorType?: unknown;
|
|
169
|
-
pendingMeta?: unknown;
|
|
170
|
-
fulfilledMeta?: unknown;
|
|
171
|
-
rejectedMeta?: unknown;
|
|
172
|
-
}, keyof ThunkApiConfig> extends infer T_35 ? { [K in keyof T_35]: T_35[K]; } : never, keyof ThunkApiConfig_1> extends infer T_34 ? { [K_1 in keyof T_34]: T_34[K_1]; } : never, keyof ThunkApiConfig_2> extends infer T_33 ? { [K_2 in keyof T_33]: T_33[K_2]; } : never, keyof ThunkApiConfig_3> extends infer T_32 ? { [K_3 in keyof T_32]: T_32[K_3]; } : never, keyof ThunkApiConfig_4> extends infer T_31 ? { [K_4 in keyof T_31]: T_31[K_4]; } : never, keyof ThunkApiConfig_5> extends infer T_30 ? { [K_5 in keyof T_30]: T_30[K_5]; } : never, keyof ThunkApiConfig_6> extends infer T_29 ? { [K_6 in keyof T_29]: T_29[K_6]; } : never, keyof ThunkApiConfig_7> extends infer T_28 ? { [K_7 in keyof T_28]: T_28[K_7]; } : never> & {
|
|
173
|
-
withTypes<ThunkApiConfig_8 extends _reduxjs_toolkit.AsyncThunkConfig>(): _reduxjs_toolkit.CreateAsyncThunkFunction<ThunkApiConfig_8 & Omit<ThunkApiConfig_7 & Omit<ThunkApiConfig_6 & Omit<ThunkApiConfig_5 & Omit<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
|
|
174
|
-
dispatch: AppDispatch;
|
|
175
|
-
state: RootState;
|
|
176
|
-
extra?: unknown;
|
|
177
|
-
rejectValue?: unknown;
|
|
178
|
-
serializedErrorType?: unknown;
|
|
179
|
-
pendingMeta?: unknown;
|
|
180
|
-
fulfilledMeta?: unknown;
|
|
181
|
-
rejectedMeta?: unknown;
|
|
182
|
-
}, keyof ThunkApiConfig> extends infer T_44 ? { [K in keyof T_44]: T_44[K]; } : never, keyof ThunkApiConfig_1> extends infer T_43 ? { [K_1 in keyof T_43]: T_43[K_1]; } : never, keyof ThunkApiConfig_2> extends infer T_42 ? { [K_2 in keyof T_42]: T_42[K_2]; } : never, keyof ThunkApiConfig_3> extends infer T_41 ? { [K_3 in keyof T_41]: T_41[K_3]; } : never, keyof ThunkApiConfig_4> extends infer T_40 ? { [K_4 in keyof T_40]: T_40[K_4]; } : never, keyof ThunkApiConfig_5> extends infer T_39 ? { [K_5 in keyof T_39]: T_39[K_5]; } : never, keyof ThunkApiConfig_6> extends infer T_38 ? { [K_6 in keyof T_38]: T_38[K_6]; } : never, keyof ThunkApiConfig_7> extends infer T_37 ? { [K_7 in keyof T_37]: T_37[K_7]; } : never, keyof ThunkApiConfig_8> extends infer T_36 ? { [K_8 in keyof T_36]: T_36[K_8]; } : never> & {
|
|
183
|
-
withTypes<ThunkApiConfig_9 extends _reduxjs_toolkit.AsyncThunkConfig>(): _reduxjs_toolkit.CreateAsyncThunkFunction<ThunkApiConfig_9 & Omit<ThunkApiConfig_8 & Omit<ThunkApiConfig_7 & Omit<ThunkApiConfig_6 & Omit<ThunkApiConfig_5 & Omit<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
|
|
184
|
-
dispatch: AppDispatch;
|
|
185
|
-
state: RootState;
|
|
186
|
-
extra?: unknown;
|
|
187
|
-
rejectValue?: unknown;
|
|
188
|
-
serializedErrorType?: unknown;
|
|
189
|
-
pendingMeta?: unknown;
|
|
190
|
-
fulfilledMeta?: unknown;
|
|
191
|
-
rejectedMeta?: unknown;
|
|
192
|
-
}, keyof ThunkApiConfig> extends infer T_54 ? { [K in keyof T_54]: T_54[K]; } : never, keyof ThunkApiConfig_1> extends infer T_53 ? { [K_1 in keyof T_53]: T_53[K_1]; } : never, keyof ThunkApiConfig_2> extends infer T_52 ? { [K_2 in keyof T_52]: T_52[K_2]; } : never, keyof ThunkApiConfig_3> extends infer T_51 ? { [K_3 in keyof T_51]: T_51[K_3]; } : never, keyof ThunkApiConfig_4> extends infer T_50 ? { [K_4 in keyof T_50]: T_50[K_4]; } : never, keyof ThunkApiConfig_5> extends infer T_49 ? { [K_5 in keyof T_49]: T_49[K_5]; } : never, keyof ThunkApiConfig_6> extends infer T_48 ? { [K_6 in keyof T_48]: T_48[K_6]; } : never, keyof ThunkApiConfig_7> extends infer T_47 ? { [K_7 in keyof T_47]: T_47[K_7]; } : never, keyof ThunkApiConfig_8> extends infer T_46 ? { [K_8 in keyof T_46]: T_46[K_8]; } : never, keyof ThunkApiConfig_9> extends infer T_45 ? { [K_9 in keyof T_45]: T_45[K_9]; } : never> & {
|
|
193
|
-
withTypes<ThunkApiConfig_10 extends _reduxjs_toolkit.AsyncThunkConfig>(): _reduxjs_toolkit.CreateAsyncThunkFunction<ThunkApiConfig_10 & Omit<ThunkApiConfig_9 & Omit<ThunkApiConfig_8 & Omit<ThunkApiConfig_7 & Omit<ThunkApiConfig_6 & Omit<ThunkApiConfig_5 & Omit<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit</*elided*/ any, keyof ThunkApiConfig> extends infer T_65 ? { [K in keyof T_65]: T_65[K]; } : never, keyof ThunkApiConfig_1> extends infer T_64 ? { [K_1 in keyof T_64]: T_64[K_1]; } : never, keyof ThunkApiConfig_2> extends infer T_63 ? { [K_2 in keyof T_63]: T_63[K_2]; } : never, keyof ThunkApiConfig_3> extends infer T_62 ? { [K_3 in keyof T_62]: T_62[K_3]; } : never, keyof ThunkApiConfig_4> extends infer T_61 ? { [K_4 in keyof T_61]: T_61[K_4]; } : never, keyof ThunkApiConfig_5> extends infer T_60 ? { [K_5 in keyof T_60]: T_60[K_5]; } : never, keyof ThunkApiConfig_6> extends infer T_59 ? { [K_6 in keyof T_59]: T_59[K_6]; } : never, keyof ThunkApiConfig_7> extends infer T_58 ? { [K_7 in keyof T_58]: T_58[K_7]; } : never, keyof ThunkApiConfig_8> extends infer T_57 ? { [K_8 in keyof T_57]: T_57[K_8]; } : never, keyof ThunkApiConfig_9> extends infer T_56 ? { [K_9 in keyof T_56]: T_56[K_9]; } : never, keyof ThunkApiConfig_10> extends infer T_55 ? { [K_10 in keyof T_55]: T_55[K_10]; } : never> & /*elided*/ any;
|
|
194
|
-
};
|
|
195
|
-
};
|
|
196
|
-
};
|
|
197
|
-
};
|
|
198
|
-
};
|
|
199
|
-
};
|
|
200
|
-
};
|
|
201
|
-
};
|
|
202
|
-
};
|
|
203
|
-
};
|
|
204
|
-
};
|
|
205
|
-
|
|
206
|
-
export { type AppDispatch, type RootState, commonErrorFallback, commonErrorHandler, createAppAsyncThunk, getConfiguredStore, sessionReducer, store, useAppDispatch };
|
|
1
|
+
import { n as ErrorWithResponse } from "./utils-CpPfqW0Q.cjs";
|
|
2
|
+
import { a as commonErrorHandler, c as sessionReducer, d as useAppSelector, i as commonErrorFallback, l as store, n as MenderEnvironment, o as createAppAsyncThunk, r as RootState, s as getConfiguredStore, t as AppDispatch, u as useAppDispatch } from "./store-BiIA0r0A.cjs";
|
|
3
|
+
export { AppDispatch, ErrorWithResponse, MenderEnvironment, RootState, commonErrorFallback, commonErrorHandler, createAppAsyncThunk, getConfiguredStore, sessionReducer, store, useAppDispatch, useAppSelector };
|