@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/storehooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/storehooks.ts"],"sourcesContent":["// 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 { useCallback, useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { extractErrorMessage } from '@northern.tech/utils/helpers';\nimport dayjs from 'dayjs';\nimport durationDayJs from 'dayjs/plugin/duration.js';\nimport Cookies from 'universal-cookie';\n\nimport storeActions from './actions';\nimport { getSessionInfo } from './auth';\nimport { DEPLOYMENT_STATES, DEVICE_STATES, TIMEOUTS, timeUnits } from './constants';\nimport {\n getDevicesByStatus as getDevicesByStatusSelector,\n getFeatures,\n getGlobalSettings as getGlobalSettingsSelector,\n getIsEnterprise,\n getIsServiceProvider,\n getOfflineThresholdSettings,\n getOnboardingState as getOnboardingStateSelector,\n getSortedFilteringAttributes,\n getUserCapabilities,\n getUserSettings as getUserSettingsSelector\n} from './selectors';\nimport {\n getAllDeviceCounts,\n getDeploymentsByStatus,\n getDeviceAttributes,\n getDeviceById,\n getDeviceLimits,\n getDevicesByStatus,\n getDynamicGroups,\n getGlobalSettings,\n getGroups,\n getIntegrations,\n getLatestReleaseInfo,\n getOnboardingState,\n getReleases,\n getRoles,\n getUserOrganization,\n getUserSettings,\n saveGlobalSettings,\n saveUserSettings\n} from './thunks';\nimport { getComparisonCompatibleVersion, stringToBoolean } from './utils';\n\nconst cookies = new Cookies();\ndayjs.extend(durationDayJs);\n\nconst { setDeviceListState, setFirstLoginAfterSignup, setTooltipsState, setShowStartupNotification } = storeActions;\n\nconst featureFlags = [\n 'hasAiEnabled',\n 'hasAuditlogs',\n 'hasMultitenancy',\n 'hasDeltaProgress',\n 'hasDeviceConfig',\n 'hasDeviceConnect',\n 'hasFeedbackEnabled',\n 'hasManifestsEnabled',\n 'hasMonitor',\n 'hasMCUEnabled',\n 'isEnterprise'\n];\n\nconst environmentDatas = ['commit', 'feedbackProbability', 'hostAddress', 'hostedAnnouncement', 'recaptchaSiteKey', 'sentry', 'stripeAPIKey', 'trackerCode'];\n\nexport const parseEnvironmentInfo = () => (dispatch, getState) => {\n const state = getState();\n let onboardingComplete = state.onboarding.complete || !!JSON.parse(window.localStorage.getItem('onboardingComplete') ?? 'false');\n let demoArtifactPort = 85;\n let environmentData = {};\n let environmentFeatures = {};\n let versionInfo = {};\n if (mender_environment) {\n const { features = {}, demoArtifactPort: port, disableOnboarding, integrationVersion, menderArtifactVersion, metaMenderVersion } = mender_environment;\n demoArtifactPort = port || demoArtifactPort;\n environmentData = environmentDatas.reduce((accu, flag) => ({ ...accu, [flag]: mender_environment[flag] || state.app[flag] }), {});\n environmentFeatures = {\n ...featureFlags.reduce((accu, flag) => ({ ...accu, [flag]: stringToBoolean(features[flag]) }), {}),\n isHosted: stringToBoolean(features.isHosted) || window.location.hostname.includes('hosted.mender.io')\n };\n onboardingComplete = !stringToBoolean(environmentFeatures.isHosted) || stringToBoolean(disableOnboarding) || onboardingComplete;\n versionInfo = {\n docs: isNaN(integrationVersion.charAt(0)) ? '' : integrationVersion.split('.').slice(0, 2).join('.'),\n remainder: {\n Integration: getComparisonCompatibleVersion(integrationVersion),\n 'Mender-Artifact': menderArtifactVersion,\n 'Meta-Mender': metaMenderVersion\n }\n };\n }\n return Promise.all([\n dispatch(storeActions.successfullyLoggedIn(getSessionInfo())),\n dispatch(storeActions.setOnboardingComplete(onboardingComplete)),\n dispatch(storeActions.setDemoArtifactPort(demoArtifactPort)),\n dispatch(storeActions.setFeatures(environmentFeatures)),\n dispatch(storeActions.setVersionInformation({ ...versionInfo.remainder, docsVersion: versionInfo.docs })),\n dispatch(storeActions.setEnvironmentData(environmentData)),\n dispatch(getLatestReleaseInfo())\n ]);\n};\n\nconst maybeAddOnboardingTasks = ({ devicesByStatus, dispatch, onboardingState, tasks }) => {\n if (!onboardingState.showTips || onboardingState.complete) {\n return tasks;\n }\n // try to retrieve full device details for onboarding devices to ensure ips etc. are available\n // we only load the first few/ 20 devices, as it is possible the onboarding is left dangling\n // and a lot of devices are present and we don't want to flood the backend for this\n return devicesByStatus[DEVICE_STATES.accepted].deviceIds.reduce((accu, id) => {\n accu.push(dispatch(getDeviceById(id)));\n return accu;\n }, tasks);\n};\n\nexport const useAppInit = userId => {\n const dispatch = useDispatch();\n const [coreInitDone, setCoreInitDone] = useState(false);\n const isEnterprise = useSelector(getIsEnterprise);\n const { hasMultitenancy, isHosted } = useSelector(getFeatures);\n const devicesByStatus = useSelector(getDevicesByStatusSelector);\n const onboardingState = useSelector(getOnboardingStateSelector);\n const { columnSelection = [], trackingConsentGiven: hasTrackingEnabled, tooltips = {} } = useSelector(getUserSettingsSelector);\n const { canManageUsers } = useSelector(getUserCapabilities);\n const { interval, intervalUnit } = useSelector(getOfflineThresholdSettings);\n const { id_attribute } = useSelector(getGlobalSettingsSelector);\n const { identityAttributes } = useSelector(getSortedFilteringAttributes);\n const isServiceProvider = useSelector(getIsServiceProvider);\n const coreInitRunning = useRef(false);\n const fullInitRunning = useRef(false);\n\n const retrieveCoreData = useCallback(() => {\n const tasks = [\n dispatch(parseEnvironmentInfo()),\n dispatch(getUserSettings()),\n dispatch(getGlobalSettings()),\n dispatch(setFirstLoginAfterSignup(stringToBoolean(cookies.get('firstLoginAfterSignup'))))\n ];\n const multitenancy = hasMultitenancy || isHosted || isEnterprise;\n if (multitenancy) {\n tasks.push(dispatch(getUserOrganization()));\n }\n return Promise.all(tasks);\n }, [dispatch, hasMultitenancy, isHosted, isEnterprise]);\n\n const retrieveAppData = useCallback(() => {\n if (isServiceProvider) {\n return Promise.resolve(dispatch(getRoles()));\n }\n const tasks = [\n dispatch(getDeviceAttributes()),\n dispatch(getDeploymentsByStatus({ status: DEPLOYMENT_STATES.finished, shouldSelect: false })),\n dispatch(getDeploymentsByStatus({ status: DEPLOYMENT_STATES.inprogress })),\n dispatch(getDevicesByStatus({ status: DEVICE_STATES.accepted })),\n dispatch(getDevicesByStatus({ status: DEVICE_STATES.pending })),\n dispatch(getDevicesByStatus({ status: DEVICE_STATES.preauth })),\n dispatch(getDevicesByStatus({ status: DEVICE_STATES.rejected })),\n dispatch(getDynamicGroups()),\n dispatch(getGroups()),\n dispatch(getIntegrations()),\n dispatch(getReleases()),\n dispatch(getAllDeviceCounts()).unwrap()\n ];\n if (hasMultitenancy) {\n tasks.push(dispatch(getDeviceLimits()));\n tasks.push(dispatch(getRoles()));\n }\n return Promise.all(tasks);\n }, [dispatch, hasMultitenancy, isServiceProvider]);\n\n const interpretAppData = useCallback(() => {\n const settings = {};\n if (cookies.get('_ga') && typeof hasTrackingEnabled === 'undefined') {\n settings.trackingConsentGiven = true;\n }\n let tasks = [\n dispatch(setDeviceListState({ selectedAttributes: columnSelection.map(column => ({ attribute: column.key, scope: column.scope })) })),\n dispatch(setTooltipsState(tooltips)), // tooltips read state is primarily trusted from the redux store, except on app init - here user settings are the reference\n dispatch(saveUserSettings(settings))\n ];\n // checks if user id is set and if cookie for helptips exists for that user\n tasks = maybeAddOnboardingTasks({ devicesByStatus, dispatch, tasks, onboardingState });\n\n if (canManageUsers && intervalUnit && intervalUnit !== timeUnits.days) {\n const duration = dayjs.duration(interval, intervalUnit);\n const days = duration.asDays();\n if (days < 1) {\n tasks.push(Promise.resolve(setTimeout(() => dispatch(setShowStartupNotification(true)), TIMEOUTS.fiveSeconds)));\n } else {\n const roundedDays = Math.max(1, Math.round(days));\n tasks.push(dispatch(saveGlobalSettings({ offlineThreshold: { interval: roundedDays, intervalUnit: timeUnits.days } })));\n }\n }\n\n // the following is used as a migration and initialization of the stored identity attribute\n // changing the default device attribute to the first non-deviceId attribute, unless a stored\n // id attribute setting exists\n const identityOptions = identityAttributes.filter(attribute => !['id', 'Device ID', 'status'].includes(attribute));\n if (!id_attribute && identityOptions.length) {\n tasks.push(dispatch(saveGlobalSettings({ id_attribute: { attribute: identityOptions[0], scope: 'identity' } })));\n } else if (typeof id_attribute === 'string') {\n let attribute = id_attribute;\n if (attribute === 'Device ID') {\n attribute = 'id';\n }\n tasks.push(dispatch(saveGlobalSettings({ id_attribute: { attribute, scope: 'identity' } })));\n }\n tasks.push(dispatch(storeActions.setAppInitDone()));\n return Promise.all(tasks);\n }, [\n columnSelection,\n dispatch,\n identityAttributes,\n hasTrackingEnabled,\n canManageUsers,\n devicesByStatus,\n id_attribute,\n interval,\n intervalUnit,\n onboardingState,\n tooltips\n ]);\n\n const initializeAppData = useCallback(\n () =>\n retrieveAppData()\n .then(interpretAppData)\n // this is allowed to fail if no user information are available\n .catch(err => console.log(extractErrorMessage(err)))\n .then(() => dispatch(getOnboardingState())),\n [dispatch, retrieveAppData, interpretAppData]\n );\n\n useEffect(() => {\n if (!userId || coreInitRunning.current) {\n return;\n }\n coreInitRunning.current = true;\n retrieveCoreData().then(() => setCoreInitDone(true));\n }, [userId, retrieveCoreData]);\n\n useEffect(() => {\n if (fullInitRunning.current || !coreInitDone) {\n return;\n }\n fullInitRunning.current = true;\n initializeAppData();\n }, [initializeAppData, coreInitDone]);\n\n return { coreInitDone };\n};\n"],"mappings":"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","names":["getUserSettings","getGlobalSettings","getDevicesByStatus","getOnboardingState"]}
|
|
1
|
+
{"version":3,"file":"storehooks.js","names":["storeActions","getOnboardingStateSelector","getDevicesByStatusSelector","getUserSettingsSelector","getGlobalSettingsSelector","getUserSettings","getGlobalSettings","getDevicesByStatus","getOnboardingState"],"sources":["../src/storehooks.ts"],"sourcesContent":["// 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 { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { extractErrorMessage } from '@northern.tech/utils/helpers';\nimport dayjs from 'dayjs';\nimport durationDayJs from 'dayjs/plugin/duration.js';\nimport Cookies from 'universal-cookie';\n\nimport storeActions from './actions';\nimport { getSessionInfo } from './auth';\nimport { DEPLOYMENT_STATES, DEVICE_STATES, TIMEOUTS, timeUnits } from './constants';\nimport type { DeviceSliceType } from './devicesSlice';\nimport {\n getDevicesByStatus as getDevicesByStatusSelector,\n getFeatures,\n getGlobalSettings as getGlobalSettingsSelector,\n getIsEnterprise,\n getIsServiceProvider,\n getOfflineThresholdSettings,\n getOnboardingState as getOnboardingStateSelector,\n getSortedFilteringAttributes,\n getUserCapabilities,\n getUserSettings as getUserSettingsSelector\n} from './selectors';\nimport { createAppAsyncThunk, useAppDispatch, useAppSelector } from './store';\nimport type { AppDispatch } from './store';\nimport {\n getAllDeviceCounts,\n getDeploymentsByStatus,\n getDeviceAttributes,\n getDeviceById,\n getDeviceLimits,\n getDevicesByStatus,\n getDynamicGroups,\n getGlobalSettings,\n getGroups,\n getIntegrations,\n getLatestReleaseInfo,\n getOnboardingState,\n getReleases,\n getRoles,\n getUserOrganization,\n getUserSettings,\n saveGlobalSettings,\n saveUserSettings\n} from './thunks';\nimport type { UserSettings, UserSliceType } from './usersSlice';\nimport { getComparisonCompatibleVersion, stringToBoolean } from './utils';\n\nconst cookies = new Cookies();\ndayjs.extend(durationDayJs);\n\nconst { setDeviceListState, setFirstLoginAfterSignup, setTooltipsState, setShowStartupNotification } = storeActions;\n\nconst featureFlags = [\n 'hasAiEnabled',\n 'hasAuditlogs',\n 'hasMultitenancy',\n 'hasDeltaProgress',\n 'hasDeviceConfig',\n 'hasDeviceConnect',\n 'hasFeedbackEnabled',\n 'hasManifestsEnabled',\n 'hasMonitor',\n 'hasMCUEnabled',\n 'isEnterprise'\n] as const;\n\nconst environmentDatas = [\n 'commit',\n 'feedbackProbability',\n 'hostAddress',\n 'hostedAnnouncement',\n 'recaptchaSiteKey',\n 'sentry',\n 'stripeAPIKey',\n 'trackerCode'\n] as const;\n\ntype VersionInfo = {\n docs?: string;\n remainder?: Record<string, string>;\n};\n\ntype FeatureFlagsState = Record<string, boolean>;\n\nexport const parseEnvironmentInfo = createAppAsyncThunk(`app/parseEnvironmentInfo`, (_, { dispatch, getState }) => {\n const state = getState();\n let onboardingComplete = getOnboardingStateSelector(state).complete || !!JSON.parse(window.localStorage.getItem('onboardingComplete') ?? 'false');\n let demoArtifactPort = 85;\n let environmentData: Record<string, unknown> = {};\n let environmentFeatures: FeatureFlagsState = {};\n let versionInfo: VersionInfo = {};\n const mender_environment = window.mender_environment;\n if (mender_environment) {\n const { features = {}, demoArtifactPort: port, disableOnboarding, integrationVersion, menderArtifactVersion, metaMenderVersion } = mender_environment;\n demoArtifactPort = Number(port) || demoArtifactPort;\n const appState = state.app;\n environmentData = environmentDatas.reduce((accu, flag) => ({ ...accu, [flag]: mender_environment[flag] || appState[flag as keyof typeof appState] }), {});\n environmentFeatures = {\n ...featureFlags.reduce<FeatureFlagsState>((accu, flag) => ({ ...accu, [flag]: stringToBoolean(features[flag]) }), {}),\n isHosted: stringToBoolean(features.isHosted) || window.location.hostname.includes('hosted.mender.io')\n };\n onboardingComplete = !environmentFeatures.isHosted || stringToBoolean(disableOnboarding) || onboardingComplete;\n versionInfo = {\n docs: isNaN(parseInt(integrationVersion.charAt(0))) ? '' : integrationVersion.split('.').slice(0, 2).join('.'),\n remainder: {\n Integration: getComparisonCompatibleVersion(integrationVersion),\n 'Mender-Artifact': menderArtifactVersion,\n 'Meta-Mender': metaMenderVersion\n }\n };\n }\n return Promise.all([\n dispatch(storeActions.successfullyLoggedIn(getSessionInfo())),\n dispatch(storeActions.setOnboardingComplete(onboardingComplete)),\n dispatch(storeActions.setDemoArtifactPort(demoArtifactPort)),\n dispatch(storeActions.setFeatures(environmentFeatures)),\n dispatch(storeActions.setVersionInformation({ ...(versionInfo.remainder ?? {}), docsVersion: versionInfo.docs })),\n dispatch(storeActions.setEnvironmentData(environmentData)),\n dispatch(getLatestReleaseInfo())\n ]);\n});\n\ntype OnboardingState = {\n complete?: boolean;\n showTips?: boolean | null;\n};\n\ntype MaybeAddOnboardingTasksParams = {\n devicesByStatus: DeviceSliceType['byStatus'];\n dispatch: AppDispatch;\n onboardingState: OnboardingState;\n tasks: Promise<unknown>[];\n};\n\nconst maybeAddOnboardingTasks = ({ devicesByStatus, dispatch, onboardingState, tasks }: MaybeAddOnboardingTasksParams): Promise<unknown>[] => {\n if (!onboardingState.showTips || onboardingState.complete) {\n return tasks;\n }\n // try to retrieve full device details for onboarding devices to ensure ips etc. are available\n // we only load the first few/ 20 devices, as it is possible the onboarding is left dangling\n // and a lot of devices are present and we don't want to flood the backend for this\n return devicesByStatus[DEVICE_STATES.accepted].deviceIds.reduce<Promise<unknown>[]>((accu, id) => {\n accu.push(dispatch(getDeviceById(id)));\n return accu;\n }, tasks);\n};\n\nexport const useAppInit = (userId: string | undefined): { coreInitDone: boolean } => {\n const dispatch = useAppDispatch();\n const [coreInitDone, setCoreInitDone] = useState(false);\n const isEnterprise = useAppSelector(getIsEnterprise);\n const { hasMultitenancy, isHosted } = useAppSelector(getFeatures);\n const devicesByStatus = useAppSelector(getDevicesByStatusSelector);\n const onboardingState = useAppSelector(getOnboardingStateSelector);\n const { columnSelection = [], trackingConsentGiven: hasTrackingEnabled, tooltips = {} } = useAppSelector(getUserSettingsSelector);\n const { canManageUsers } = useAppSelector(getUserCapabilities);\n const { interval, intervalUnit } = useAppSelector(getOfflineThresholdSettings);\n const { id_attribute } = useAppSelector(getGlobalSettingsSelector);\n const { identityAttributes } = useAppSelector(getSortedFilteringAttributes);\n const isServiceProvider = useAppSelector(getIsServiceProvider);\n const coreInitRunning = useRef(false);\n const fullInitRunning = useRef(false);\n\n const retrieveCoreData = useCallback((): Promise<unknown[]> => {\n const tasks: Promise<unknown>[] = [\n dispatch(parseEnvironmentInfo()).unwrap(),\n dispatch(getUserSettings()).unwrap(),\n dispatch(getGlobalSettings()).unwrap(),\n Promise.resolve(dispatch(setFirstLoginAfterSignup(stringToBoolean(cookies.get('firstLoginAfterSignup')))))\n ];\n const multitenancy = hasMultitenancy || isHosted || isEnterprise;\n if (multitenancy) {\n tasks.push(dispatch(getUserOrganization()).unwrap());\n }\n return Promise.all(tasks);\n }, [dispatch, hasMultitenancy, isHosted, isEnterprise]);\n\n const retrieveAppData = useCallback((): Promise<unknown[] | unknown> => {\n if (isServiceProvider) {\n return Promise.resolve(dispatch(getRoles()));\n }\n const tasks: Promise<unknown>[] = [\n dispatch(getDeviceAttributes()),\n dispatch(getDeploymentsByStatus({ status: DEPLOYMENT_STATES.finished, shouldSelect: false })),\n dispatch(getDeploymentsByStatus({ status: DEPLOYMENT_STATES.inprogress })),\n dispatch(getDevicesByStatus({ status: DEVICE_STATES.accepted })),\n dispatch(getDevicesByStatus({ status: DEVICE_STATES.pending })),\n dispatch(getDevicesByStatus({ status: DEVICE_STATES.preauth })),\n dispatch(getDevicesByStatus({ status: DEVICE_STATES.rejected })),\n dispatch(getDynamicGroups()),\n dispatch(getGroups()),\n dispatch(getIntegrations()),\n dispatch(getReleases()),\n dispatch(getAllDeviceCounts()).unwrap()\n ];\n if (hasMultitenancy) {\n tasks.push(dispatch(getDeviceLimits()));\n tasks.push(dispatch(getRoles()));\n }\n return Promise.all(tasks);\n }, [dispatch, hasMultitenancy, isServiceProvider]);\n\n const interpretAppData = useCallback((): Promise<unknown[]> => {\n const settings: Partial<UserSettings> = {};\n if (cookies.get('_ga') && typeof hasTrackingEnabled === 'undefined') {\n settings.trackingConsentGiven = true;\n }\n let tasks: Promise<unknown>[] = [\n Promise.resolve(dispatch(setDeviceListState({ selectedAttributes: columnSelection.map(column => ({ attribute: column.key, scope: column.scope })) }))),\n Promise.resolve(dispatch(setTooltipsState(tooltips as UserSliceType['tooltips']['byId']))), // tooltips read state is primarily trusted from the redux store, except on app init - here user settings are the reference\n dispatch(saveUserSettings(settings)).unwrap()\n ];\n // checks if user id is set and if cookie for helptips exists for that user\n tasks = maybeAddOnboardingTasks({ devicesByStatus, dispatch, tasks, onboardingState });\n\n if (canManageUsers && intervalUnit && intervalUnit !== timeUnits.days) {\n const duration = dayjs.duration(interval, intervalUnit as keyof typeof timeUnits);\n const days = duration.asDays();\n if (days < 1) {\n tasks.push(Promise.resolve(setTimeout(() => dispatch(setShowStartupNotification(true)), TIMEOUTS.fiveSeconds)));\n } else {\n const roundedDays = Math.max(1, Math.round(days));\n tasks.push(dispatch(saveGlobalSettings({ offlineThreshold: { interval: roundedDays, intervalUnit: timeUnits.days } })));\n }\n }\n\n // the following is used as a migration and initialization of the stored identity attribute\n // changing the default device attribute to the first non-deviceId attribute, unless a stored\n // id attribute setting exists\n const identityOptions = identityAttributes.filter(attribute => !['id', 'Device ID', 'status'].includes(attribute));\n if (!id_attribute && identityOptions.length) {\n tasks.push(dispatch(saveGlobalSettings({ id_attribute: { attribute: identityOptions[0], scope: 'identity' } })));\n } else if (typeof id_attribute === 'string') {\n // Legacy migration path: id_attribute used to be a plain string\n let attribute: string = id_attribute;\n if (attribute === 'Device ID') {\n attribute = 'id';\n }\n tasks.push(dispatch(saveGlobalSettings({ id_attribute: { attribute, scope: 'identity' } })));\n }\n tasks.push(Promise.resolve(dispatch(storeActions.setAppInitDone())));\n return Promise.all(tasks);\n }, [\n columnSelection,\n dispatch,\n identityAttributes,\n hasTrackingEnabled,\n canManageUsers,\n devicesByStatus,\n id_attribute,\n interval,\n intervalUnit,\n onboardingState,\n tooltips\n ]);\n\n const initializeAppData = useCallback(\n (): Promise<unknown> =>\n retrieveAppData()\n .then(interpretAppData)\n // this is allowed to fail if no user information are available\n .catch(err => console.log(extractErrorMessage(err)))\n .then(() => dispatch(getOnboardingState())),\n [dispatch, retrieveAppData, interpretAppData]\n );\n\n useEffect(() => {\n if (!userId || coreInitRunning.current) {\n return;\n }\n coreInitRunning.current = true;\n retrieveCoreData().then(() => setCoreInitDone(true));\n }, [userId, retrieveCoreData]);\n\n useEffect(() => {\n if (fullInitRunning.current || !coreInitDone) {\n return;\n }\n fullInitRunning.current = true;\n initializeAppData();\n }, [initializeAppData, coreInitDone]);\n\n return { coreInitDone };\n};\n"],"mappings":"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"}
|