@northern.tech/store 0.41.2 → 0.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions.d.cts +9 -10
- package/dist/actions.d.ts +9 -10
- package/dist/api/general-api.cjs +1 -1
- package/dist/api/general-api.cjs.map +1 -1
- package/dist/api/general-api.d.cts +0 -1
- package/dist/api/general-api.d.ts +0 -1
- package/dist/api/general-api.js +1 -1
- package/dist/api/users-api.cjs +1 -1
- package/dist/api/users-api.d.cts +1 -6
- package/dist/api/users-api.d.ts +1 -6
- package/dist/appSlice/constants.cjs +0 -5
- package/dist/appSlice/constants.cjs.map +1 -1
- package/dist/appSlice/constants.d.cts +1 -1
- package/dist/appSlice/constants.d.ts +1 -1
- package/dist/appSlice/constants.js +0 -5
- package/dist/appSlice/constants.js.map +1 -1
- package/dist/appSlice/index.cjs.map +1 -1
- package/dist/appSlice/index.d.cts +1 -1
- package/dist/appSlice/index.d.ts +1 -1
- package/dist/appSlice/index.js +1 -1
- package/dist/appSlice/mocks.d.cts +1 -2
- package/dist/appSlice/mocks.d.ts +1 -2
- package/dist/appSlice/selectors.cjs.map +1 -1
- package/dist/appSlice/selectors.d.cts +9 -10
- package/dist/appSlice/selectors.d.ts +9 -10
- package/dist/appSlice/thunks.d.cts +2 -3
- package/dist/appSlice/thunks.d.ts +2 -3
- package/dist/auth.cjs +1 -1
- package/dist/auth.d.cts +3 -10
- package/dist/auth.d.ts +3 -10
- package/dist/auth.js +1 -1
- package/dist/commonConstants.d.cts +1 -1
- package/dist/commonConstants.d.ts +1 -1
- package/dist/commonConstants.js +1 -1
- package/dist/commonSelectors.cjs +4 -3
- package/dist/commonSelectors.cjs.map +1 -1
- package/dist/commonSelectors.d.cts +20 -21
- package/dist/commonSelectors.d.ts +20 -21
- package/dist/commonSelectors.js +4 -3
- package/dist/commonSelectors.js.map +1 -1
- package/dist/{constants-Sn4gnNA3.d.ts → constants-B3Jdkn2b.d.cts} +2 -5
- package/dist/{constants-Sn4gnNA3.d.cts → constants-B3Jdkn2b.d.ts} +2 -5
- package/dist/{constants-CzjK2gV-.d.ts → constants-B_H4squx.d.ts} +4 -4
- package/dist/{constants-D9o0Cnk_.d.ts → constants-C6TIYaY4.d.cts} +1 -2
- package/dist/{constants-D9o0Cnk_.d.cts → constants-C6TIYaY4.d.ts} +1 -2
- package/dist/{constants-6kYRTdox.d.ts → constants-CEwun8TL.d.cts} +3 -2
- package/dist/{constants-6kYRTdox.d.cts → constants-CEwun8TL.d.ts} +3 -2
- package/dist/constants-C_SC_VKE.cjs.map +1 -1
- package/dist/{constants-xpheFFkA.js → constants-CerzXHnQ.js} +3 -3
- package/dist/{constants-xpheFFkA.js.map → constants-CerzXHnQ.js.map} +1 -1
- package/dist/{constants-DAi2zOZN.d.cts → constants-Rl3FJzFf.d.cts} +4 -4
- package/dist/{constants-B_7FCJQX.d.ts → constants-nKSWZ8oD.d.cts} +3 -8
- package/dist/{constants-B_7FCJQX.d.cts → constants-nKSWZ8oD.d.ts} +3 -8
- package/dist/constants.cjs +2 -0
- package/dist/constants.d.cts +6 -6
- package/dist/constants.d.ts +6 -6
- package/dist/constants.js +3 -3
- package/dist/deploymentsSlice/constants.d.cts +1 -1
- package/dist/deploymentsSlice/constants.d.ts +1 -1
- package/dist/deploymentsSlice/constants.js +1 -1
- package/dist/deploymentsSlice/index.cjs.map +1 -1
- package/dist/deploymentsSlice/index.d.cts +1 -1
- package/dist/deploymentsSlice/index.d.ts +1 -1
- package/dist/deploymentsSlice/index.js +1 -1
- package/dist/deploymentsSlice/mocks.d.cts +1 -2
- package/dist/deploymentsSlice/mocks.d.ts +1 -2
- package/dist/deploymentsSlice/selectors.cjs.map +1 -1
- package/dist/deploymentsSlice/selectors.d.cts +9 -10
- package/dist/deploymentsSlice/selectors.d.ts +9 -10
- package/dist/deploymentsSlice/selectors.js +1 -1
- package/dist/deploymentsSlice/thunks.d.cts +7 -13
- package/dist/deploymentsSlice/thunks.d.ts +7 -13
- package/dist/devicesSlice/constants.d.cts +1 -1
- package/dist/devicesSlice/constants.d.ts +1 -1
- package/dist/devicesSlice/constants.js +1 -1
- package/dist/devicesSlice/index.cjs +1 -1
- package/dist/devicesSlice/index.cjs.map +1 -1
- package/dist/devicesSlice/index.d.cts +2 -2
- package/dist/devicesSlice/index.d.ts +2 -2
- package/dist/devicesSlice/index.js +2 -2
- package/dist/devicesSlice/index.js.map +1 -1
- package/dist/devicesSlice/mocks.js +1 -1
- package/dist/devicesSlice/selectors.cjs.map +1 -1
- package/dist/devicesSlice/selectors.d.cts +9 -10
- package/dist/devicesSlice/selectors.d.ts +9 -10
- package/dist/devicesSlice/selectors.js +1 -1
- package/dist/devicesSlice/thunks.cjs +1 -2
- package/dist/devicesSlice/thunks.d.cts +11 -23
- package/dist/devicesSlice/thunks.d.ts +11 -23
- package/dist/devicesSlice/thunks.js +2 -2
- package/dist/{index-Bb4yvvgG.d.ts → index-B8td4-rY.d.ts} +1 -2
- package/dist/{index-C5oQrJGU.d.ts → index-BAGyeC-q.d.ts} +2 -3
- package/dist/{index-CgPgKMve.d.cts → index-BgF6rhXn.d.cts} +3 -4
- package/dist/{index-CnH51JfB.d.ts → index-Bs0c1-WY.d.ts} +4 -9
- package/dist/{index-BtGhTFBc.d.ts → index-Bvyf8OO6.d.ts} +9 -13
- package/dist/{index-m1c0qk2s.d.ts → index-C8uiyxnb.d.ts} +2 -3
- package/dist/{index-CSOj22xK.d.cts → index-C_LGDJN2.d.cts} +2 -3
- package/dist/{index-H9zg_3UV.d.ts → index-ChKTa1aL.d.ts} +2 -3
- package/dist/{index-vXsWdis1.d.cts → index-CiQ95u1W.d.cts} +9 -13
- package/dist/{index-DBUt8xVc.d.ts → index-CoObjWL4.d.cts} +1 -2
- package/dist/{index-DBUt8xVc.d.cts → index-CoObjWL4.d.ts} +1 -2
- package/dist/{index-BCErsO5h.d.ts → index-CpfhQHfg.d.ts} +3 -4
- package/dist/{index-BQCnJ5gh.d.cts → index-Ctj2r57a.d.cts} +2 -3
- package/dist/{index-Dn1SqQYh.d.cts → index-DeOpb2oK.d.cts} +4 -9
- package/dist/{index-VEayiYkv.d.cts → index-DiAjzARZ.d.cts} +2 -3
- package/dist/{index-EPmsL6Lb.d.cts → index-mvxjivTJ.d.cts} +1 -2
- package/dist/liststatehook.cjs.map +1 -1
- package/dist/liststatehook.d.cts +0 -1
- package/dist/liststatehook.d.ts +0 -1
- package/dist/locationutils.cjs +36 -28
- package/dist/locationutils.cjs.map +1 -1
- package/dist/locationutils.d.cts +14 -67
- package/dist/locationutils.d.ts +14 -67
- package/dist/locationutils.js +37 -29
- package/dist/locationutils.js.map +1 -1
- package/dist/monitorSlice/constants.d.cts +1 -1
- package/dist/monitorSlice/constants.d.ts +1 -1
- package/dist/monitorSlice/index.cjs.map +1 -1
- package/dist/monitorSlice/index.d.cts +1 -1
- package/dist/monitorSlice/index.d.ts +1 -1
- package/dist/monitorSlice/index.js +1 -1
- package/dist/monitorSlice/mocks.d.cts +1 -2
- package/dist/monitorSlice/mocks.d.ts +1 -2
- package/dist/monitorSlice/mocks.js +1 -1
- package/dist/monitorSlice/selectors.d.cts +1 -2
- package/dist/monitorSlice/selectors.d.ts +1 -2
- package/dist/monitorSlice/thunks.d.cts +4 -5
- package/dist/monitorSlice/thunks.d.ts +4 -5
- package/dist/monitorSlice/thunks.js +1 -1
- package/dist/onboardingSlice/index.cjs.map +1 -1
- package/dist/onboardingSlice/index.d.cts +1 -1
- package/dist/onboardingSlice/index.d.ts +1 -1
- package/dist/onboardingSlice/mocks.d.cts +1 -2
- package/dist/onboardingSlice/mocks.d.ts +1 -2
- package/dist/onboardingSlice/selectors.d.cts +2 -3
- package/dist/onboardingSlice/selectors.d.ts +2 -3
- package/dist/onboardingSlice/thunks.d.cts +4 -4
- package/dist/onboardingSlice/thunks.d.ts +4 -4
- package/dist/organizationSlice/constants.js +1 -1
- package/dist/organizationSlice/index.cjs.map +1 -1
- package/dist/organizationSlice/index.d.cts +1 -1
- package/dist/organizationSlice/index.d.ts +1 -1
- package/dist/organizationSlice/index.js +1 -1
- package/dist/organizationSlice/mocks.d.cts +3 -3
- package/dist/organizationSlice/mocks.d.ts +3 -3
- package/dist/organizationSlice/mocks.js +1 -1
- package/dist/organizationSlice/selectors.cjs.map +1 -1
- package/dist/organizationSlice/selectors.d.cts +11 -16
- package/dist/organizationSlice/selectors.d.ts +11 -16
- package/dist/organizationSlice/selectors.js +1 -1
- package/dist/organizationSlice/thunks.d.cts +6 -7
- package/dist/organizationSlice/thunks.d.ts +6 -7
- package/dist/organizationSlice/types.d.cts +1 -1
- package/dist/organizationSlice/types.d.ts +1 -1
- package/dist/releasesSlice/constants.cjs +2 -0
- package/dist/releasesSlice/constants.cjs.map +1 -1
- package/dist/releasesSlice/constants.d.cts +2 -2
- package/dist/releasesSlice/constants.d.ts +2 -2
- package/dist/releasesSlice/constants.js +2 -1
- package/dist/releasesSlice/constants.js.map +1 -1
- package/dist/releasesSlice/index.cjs.map +1 -1
- package/dist/releasesSlice/index.d.cts +1 -1
- package/dist/releasesSlice/index.d.ts +1 -1
- package/dist/releasesSlice/index.js +1 -1
- package/dist/releasesSlice/mocks.js +1 -1
- package/dist/releasesSlice/selectors.cjs.map +1 -1
- package/dist/releasesSlice/selectors.d.cts +9 -10
- package/dist/releasesSlice/selectors.d.ts +9 -10
- package/dist/releasesSlice/thunks.cjs +1 -1
- package/dist/releasesSlice/thunks.cjs.map +1 -1
- package/dist/releasesSlice/thunks.d.cts +4 -5
- package/dist/releasesSlice/thunks.d.ts +4 -5
- package/dist/releasesSlice/thunks.js +1 -1
- package/dist/{rolldown-runtime-D6vf50IK.cjs → rolldown-runtime-VH7oDXx4.cjs} +1 -1
- package/dist/sockethook.cjs +1 -2
- package/dist/sockethook.cjs.map +1 -1
- package/dist/sockethook.d.cts +1 -8
- package/dist/sockethook.d.ts +1 -8
- package/dist/sockethook.js +1 -2
- package/dist/sockethook.js.map +1 -1
- package/dist/{store-CkgokFlk.d.ts → store-CPptM5Ts.d.ts} +27 -48
- package/dist/{store-CGP5pCH8.d.cts → store-CUUm1GTI.d.cts} +27 -48
- package/dist/store.cjs.map +1 -1
- package/dist/store.d.cts +1 -1
- package/dist/store.d.ts +1 -1
- package/dist/store.js +1 -1
- package/dist/storehooks.cjs +30 -20
- package/dist/storehooks.cjs.map +1 -1
- package/dist/storehooks.d.cts +13 -4
- package/dist/storehooks.d.ts +13 -4
- package/dist/storehooks.js +31 -22
- package/dist/storehooks.js.map +1 -1
- package/dist/thunks.cjs +16 -112
- package/dist/thunks.cjs.map +1 -1
- package/dist/thunks.d.cts +2 -2
- package/dist/thunks.d.ts +2 -2
- package/dist/thunks.js +16 -111
- package/dist/thunks.js.map +1 -1
- package/dist/{types-uHmaedGU.d.ts → types-B3qGQoMx.d.ts} +3 -4
- package/dist/{types-yQ0ypHMZ.d.cts → types-B80ckxiy.d.cts} +3 -4
- package/dist/useDeploymentDevice.cjs +1 -1
- package/dist/useDeploymentDevice.cjs.map +1 -1
- package/dist/usersSlice/constants.d.cts +1 -1
- package/dist/usersSlice/constants.d.ts +1 -1
- package/dist/usersSlice/constants.js +1 -1
- package/dist/usersSlice/index.cjs.map +1 -1
- package/dist/usersSlice/index.d.cts +1 -1
- package/dist/usersSlice/index.d.ts +1 -1
- package/dist/usersSlice/index.js +1 -1
- package/dist/usersSlice/mocks.d.cts +2 -3
- package/dist/usersSlice/mocks.d.ts +2 -3
- package/dist/usersSlice/mocks.js +1 -1
- package/dist/usersSlice/selectors.cjs.map +1 -1
- package/dist/usersSlice/selectors.d.cts +10 -11
- package/dist/usersSlice/selectors.d.ts +10 -11
- package/dist/usersSlice/selectors.js +1 -1
- package/dist/usersSlice/thunks.d.cts +5 -6
- package/dist/usersSlice/thunks.d.ts +5 -6
- package/dist/utils.cjs +2 -2
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +3 -3
- package/dist/utils.js.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commonSelectors.cjs","names":["getOrganization","getFeatures","PLANS","getCurrentUser","getRolesById","rolesByName","mapUserRolesToUiPermissions","getIsServiceProvider","uiPermissionsById","ADDONS","getGlobalSettings","getFilteringAttributes","ATTRIBUTE_SCOPES","ATTRIBUTE_SCOPE_LABELS","stripOrchestratorManifestPrefix","getAttributeScopeLabel","getOnboarding","getUserSettings","onboardingSteps","getDevicesById","getDeviceById","getDeploymentsById","getDeploymentsSelectionState","getReleasesById","getSelectedDeploymentDeviceIds","getIssueCountsByType","DEVICE_ISSUE_OPTIONS","getGroupsById","UNGROUPED_GROUP","ALL_DEVICES","defaultReports","getListedDevices","getSearchedDevices","listItemMapper","getAuditLogEntry","getRolesList","rolesById","serviceProviderRolesById","getHas2FA","getUserSettingsInitialized","getSecurityAlertDismissedTimestamp"],"sources":["../src/commonSelectors.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 type { AuditLog as AuditLogEvent } from '@northern.tech/types/types.gen';\nimport type { DeviceIssueOption } from '@northern.tech/utils/constants';\nimport { attributeDuplicateFilter, getDemoDeviceAddress as getDemoDeviceAddressHelper } from '@northern.tech/utils/helpers';\nimport { createSelector } from '@reduxjs/toolkit';\nimport dayjs from 'dayjs';\n\nimport { ADDONS, PLANS, defaultReports } from './appSlice/constants';\nimport { getFeatures, getSearchedDevices } from './appSlice/selectors';\nimport { ATTRIBUTE_SCOPE_LABELS, DEVICE_LIST_MAXIMUM_LENGTH, UNGROUPED_GROUP } from './commonConstants';\nimport { ALL_DEVICES, ATTRIBUTE_SCOPES, DEVICE_ISSUE_OPTIONS, rolesById, rolesByName, serviceProviderRolesById, uiPermissionsById } from './constants';\nimport type { Role } from './constants';\nimport type { Deployment } from './deploymentsSlice';\nimport { getDeploymentsById, getDeploymentsSelectionState, getSelectedDeploymentDeviceIds } from './deploymentsSlice/selectors';\nimport type { Device, DeviceGroup } from './devicesSlice';\nimport { getDeviceById, getDevicesById, getFilteringAttributes, getGroupsById, getListedDevices } from './devicesSlice/selectors';\nimport { getIssueCountsByType } from './monitorSlice/selectors';\nimport { onboardingSteps } from './onboardingSlice/constants';\nimport { getOnboarding } from './onboardingSlice/selectors';\nimport { getAuditLogEntry, getIsServiceProvider, getOrganization } from './organizationSlice/selectors';\nimport { getReleasesById } from './releasesSlice/selectors';\nimport {\n getCurrentUser,\n getGlobalSettings,\n getHas2FA,\n getRolesById,\n getRolesList,\n getSecurityAlertDismissedTimestamp,\n getUserSettings,\n getUserSettingsInitialized\n} from './usersSlice/selectors';\nimport { getAttributeScopeLabel, listItemMapper, mapUserRolesToUiPermissions, stripOrchestratorManifestPrefix } from './utils';\n\nexport const getIsEnterprise = createSelector(\n [getOrganization, getFeatures],\n ({ plan = PLANS.os.id }, { isEnterprise, isHosted }) => isEnterprise || (isHosted && plan === PLANS.enterprise.id)\n);\n\nexport const getUserRoles = createSelector([getCurrentUser, getRolesById, getIsEnterprise], (currentUser, rolesById, isEnterprise) => {\n const isAdmin = currentUser.roles?.length ? currentUser.roles.some(role => role === rolesByName.admin) : !isEnterprise;\n const uiPermissions = isAdmin ? mapUserRolesToUiPermissions([rolesByName.admin], rolesById) : mapUserRolesToUiPermissions(currentUser.roles || [], rolesById);\n return { isAdmin, uiPermissions };\n});\n\nconst hasPermission = (thing: Record<string, string[]>, permission: string): boolean =>\n Object.values(thing).some(permissions => permissions.includes(permission));\n\nexport const getUserCapabilities = createSelector([getUserRoles, getIsServiceProvider], ({ uiPermissions }, isServiceProvider) => {\n const canManageReleases = hasPermission(uiPermissions.releases, uiPermissionsById.manage.value);\n const canReadReleases = canManageReleases || hasPermission(uiPermissions.releases, uiPermissionsById.read.value);\n const canUploadReleases = canManageReleases || hasPermission(uiPermissions.releases, uiPermissionsById.upload.value);\n\n const canAuditlog = uiPermissions.auditlog.includes(uiPermissionsById.read.value);\n\n const canReadUsers = uiPermissions.userManagement.includes(uiPermissionsById.read.value);\n const canManageUsers = uiPermissions.userManagement.includes(uiPermissionsById.manage.value);\n\n const canReadDevices = hasPermission(uiPermissions.groups, uiPermissionsById.read.value);\n const canWriteDevices = Object.values(uiPermissions.groups).some(\n groupPermissions => groupPermissions.includes(uiPermissionsById.read.value) && groupPermissions.length > 1\n );\n const canTroubleshoot = hasPermission(uiPermissions.groups, uiPermissionsById.connect.value);\n const canManageDevices = hasPermission(uiPermissions.groups, uiPermissionsById.manage.value);\n const canConfigure = hasPermission(uiPermissions.groups, uiPermissionsById.configure.value);\n\n const canDeploy =\n (uiPermissions.deployments?.includes(uiPermissionsById.deploy.value) ?? false) || hasPermission(uiPermissions.groups, uiPermissionsById.deploy.value);\n const canReadDeployments = uiPermissions.deployments?.includes(uiPermissionsById.read.value) ?? false;\n\n return {\n canAuditlog,\n canConfigure,\n canDeploy,\n canManageDevices,\n canManageReleases,\n canManageUsers,\n canReadDeployments,\n canReadDevices,\n canReadReleases,\n canReadUsers,\n canTroubleshoot,\n canUploadReleases,\n canWriteDevices,\n groupsPermissions: uiPermissions.groups,\n releasesPermissions: uiPermissions.releases,\n SPTenant: isServiceProvider\n };\n});\n\nexport const getTenantCapabilities = createSelector(\n [getFeatures, getOrganization, getIsEnterprise],\n (\n {\n hasAuditlogs: isAuditlogEnabled,\n hasDeviceConfig: isDeviceConfigEnabled,\n hasDeviceConnect: isDeviceConnectEnabled,\n hasMonitor: isMonitorEnabled,\n isHosted\n },\n { addons = [], plan = PLANS.os.id },\n isEnterprise\n ) => {\n const canDelta = isEnterprise || plan === PLANS.professional.id;\n const hasAuditlogs = isAuditlogEnabled && isEnterprise;\n const hasDeviceConfig = addons.some(addon => addon.name === ADDONS.configure.id && addon.enabled) || (isDeviceConfigEnabled && !isHosted);\n const hasDeviceConnect = addons.some(addon => addon.name === ADDONS.troubleshoot.id && addon.enabled) || (isDeviceConnectEnabled && !isHosted);\n const hasMonitor = isMonitorEnabled && addons.some(addon => addon.name === ADDONS.monitor.id && addon.enabled);\n return {\n canDelta,\n canRetry: canDelta,\n canSchedule: canDelta,\n hasAuditlogs,\n hasDeviceConfig,\n hasDeviceConnect,\n hasFullFiltering: canDelta,\n hasMonitor,\n isEnterprise,\n plan\n };\n }\n);\n\nexport const getFilterAttributes = createSelector(\n [getGlobalSettings, getFilteringAttributes],\n ({ previousFilters }, { identityAttributes, inventoryAttributes, systemAttributes, tagAttributes }) => {\n const deviceNameAttribute = { key: 'name', value: 'Name', scope: ATTRIBUTE_SCOPES.tags, category: ATTRIBUTE_SCOPES.tags, priority: 1 };\n const deviceIdAttribute = { key: 'id', value: 'Device ID', scope: ATTRIBUTE_SCOPES.identity, category: ATTRIBUTE_SCOPES.identity, priority: 1 };\n const checkInAttribute = {\n key: 'check_in_time',\n value: 'Latest activity',\n scope: ATTRIBUTE_SCOPES.system,\n category: ATTRIBUTE_SCOPE_LABELS.default,\n priority: 4\n };\n const updateAttribute = { ...checkInAttribute, key: 'updated_ts', value: 'Last inventory update' };\n const firstRequestAttribute = {\n key: 'created_ts',\n value: 'First request',\n scope: ATTRIBUTE_SCOPES.system,\n category: ATTRIBUTE_SCOPE_LABELS.default,\n priority: 4\n };\n const attributes = [\n ...previousFilters.map(item => ({\n ...item,\n value: deviceIdAttribute.key === item.key ? deviceIdAttribute.value : stripOrchestratorManifestPrefix(item.key),\n category: 'recently used',\n priority: 0\n })),\n deviceNameAttribute,\n deviceIdAttribute,\n ...identityAttributes.map(item => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.identity, category: ATTRIBUTE_SCOPES.identity, priority: 1 })),\n ...inventoryAttributes.map(item => {\n const category = getAttributeScopeLabel({ key: item, scope: ATTRIBUTE_SCOPES.inventory });\n return {\n key: item,\n value: stripOrchestratorManifestPrefix(item),\n scope: ATTRIBUTE_SCOPES.inventory,\n category,\n priority: category === ATTRIBUTE_SCOPES.inventory ? 2 : 3\n };\n }),\n ...tagAttributes.map(item => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.tags, category: ATTRIBUTE_SCOPES.tags, priority: 3 })),\n checkInAttribute,\n updateAttribute,\n firstRequestAttribute,\n ...systemAttributes.map(item => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.system, category: ATTRIBUTE_SCOPE_LABELS.default, priority: 4 }))\n ];\n return attributeDuplicateFilter(attributes, 'key');\n }\n);\n\nexport const getOnboardingState = createSelector([getOnboarding, getUserSettings], ({ complete, progress, showTips, ...remainder }, { onboarding = {} }) => ({\n ...remainder,\n ...onboarding,\n complete: onboarding.complete || complete,\n progress:\n Object.keys(onboardingSteps).findIndex(step => step === progress) > Object.keys(onboardingSteps).findIndex(step => step === onboarding.progress)\n ? progress\n : onboarding.progress,\n showTips: !onboarding.showTips ? onboarding.showTips : showTips\n}));\n\nexport const getDemoDeviceAddress = createSelector([getDevicesById, getOnboarding], (devicesById, { approach, demoArtifactPort }) => {\n const demoDeviceAddress = `http://${getDemoDeviceAddressHelper(Object.values(devicesById), approach)}`;\n return demoArtifactPort ? `${demoDeviceAddress}:${demoArtifactPort}` : demoDeviceAddress;\n});\n\nexport const getDeviceConfigDeployment = createSelector([getDeviceById, getDeploymentsById], (device, deploymentsById) => {\n const { config = {} } = device;\n const { deployment_id: configDeploymentId = '' } = config;\n const deviceConfigDeployment = deploymentsById[configDeploymentId] ?? {};\n return { device, deviceConfigDeployment };\n});\n\nexport const getDeploymentRelease = createSelector(\n [getDeploymentsById, getDeploymentsSelectionState, getReleasesById],\n (deploymentsById, { selectedId = '' }, releasesById) => {\n const deployment = deploymentsById[selectedId] ?? {};\n return deployment?.artifact_name && releasesById[deployment.artifact_name] ? releasesById[deployment.artifact_name] : { device_types_compatible: [] };\n }\n);\n\nexport const getSelectedDeploymentData = createSelector(\n [getDeploymentsById, getDeploymentsSelectionState, getDevicesById, getSelectedDeploymentDeviceIds],\n (deploymentsById, { selectedId = '' }, devicesById, selectedDeviceIds) => {\n const deployment = deploymentsById[selectedId] ?? {};\n const { devices = {} } = deployment as Deployment;\n return {\n deployment,\n selectedDevices: selectedDeviceIds.map(deviceId => ({ ...devicesById[deviceId], ...(devices[deviceId] ?? {}) }))\n };\n }\n);\n\nexport const getAvailableIssueOptionsByType = createSelector([getTenantCapabilities, getIssueCountsByType], ({ hasFullFiltering, hasMonitor }, issueCounts) =>\n Object.values<DeviceIssueOption>(DEVICE_ISSUE_OPTIONS).reduce(\n (accu, { isCategory, key, needsFullFiltering, needsMonitor, title }) => {\n if (isCategory || (needsFullFiltering && !hasFullFiltering) || (needsMonitor && !hasMonitor)) {\n return accu;\n }\n accu[key] = { count: issueCounts[key].filtered, key, title };\n return accu;\n },\n {} as Record<string, { count: number; key: string; title: string }>\n )\n);\n\nexport const getGroupNames = createSelector([getGroupsById, getUserRoles], (groupsById, { uiPermissions }) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [UNGROUPED_GROUP.id]: ungrouped, ...groups } = groupsById;\n return Object.keys(\n Object.entries(groups).reduce(\n (accu, [groupName, group]) => {\n if (group.filters || uiPermissions.groups[ALL_DEVICES]) {\n accu[groupName] = group;\n }\n return accu;\n },\n { ...uiPermissions.groups } as Record<string, DeviceGroup>\n )\n ).sort();\n});\n\nexport const getDeviceReportsForUser = createSelector(\n [getUserSettings, getCurrentUser, getGlobalSettings, getDevicesById],\n ({ reports }, { id: currentUserId }, globalSettings, devicesById) =>\n reports || globalSettings[`${currentUserId}-reports`] || (Object.keys(devicesById).length ? defaultReports : [])\n);\n\nconst listTypeDeviceIdMap = {\n deviceList: getListedDevices,\n search: getSearchedDevices\n};\nconst deviceMapDefault = { defaultObject: { auth_sets: [] }, cutOffSize: DEVICE_LIST_MAXIMUM_LENGTH };\nconst getDeviceMappingDefaults = () => deviceMapDefault;\n\nexport const getMappedDevicesList = createSelector(\n [getDevicesById, (state, listType) => listTypeDeviceIdMap[listType](state), getDeviceMappingDefaults],\n listItemMapper\n);\n\nexport const getAuditlogDevice = createSelector([getAuditLogEntry, getDevicesById], (auditlogEvent, devicesById) => {\n let auditlogDevice: Partial<Device> = {};\n if (auditlogEvent) {\n const { object } = auditlogEvent as AuditLogEvent;\n const objectData = object as AuditLogEvent['object'] | undefined;\n if (objectData?.type === 'device' && objectData.id) {\n auditlogDevice = { id: objectData.id, ...(objectData.device ?? {}) } as Device;\n }\n }\n return { ...auditlogDevice, ...(auditlogDevice.id ? devicesById[auditlogDevice.id] : {}) };\n});\n\ntype RoleItem = Role | { value: string };\nexport const getRelevantRoles = createSelector([getOrganization, getRolesList], ({ service_provider }, roles) => {\n if (service_provider) {\n return roles.reduce(\n (accu, role) => {\n if (rolesById[role.value as keyof typeof rolesById]) {\n return accu;\n }\n accu.push(role);\n return accu;\n },\n [...Object.values(serviceProviderRolesById)] as RoleItem[]\n );\n }\n return Object.keys(rolesById)\n .reverse()\n .reduce((accu, key) => {\n const index = accu.findIndex(({ value }) => value === key);\n if (index >= 0) {\n accu = [accu[index], ...accu.filter((_, itemIndex) => index !== itemIndex)];\n }\n return accu;\n }, roles);\n});\n\nexport const getShowSecurityAlert = createSelector(\n [getCurrentUser, getHas2FA, getFeatures, getIsEnterprise, getUserSettingsInitialized, getSecurityAlertDismissedTimestamp],\n (currentUser, has2FA, features, isEnterprise, settingsInitialized, dismissedTimestamp) => {\n const isOAuth2 = !!currentUser?.sso?.length;\n const userVerified = !!currentUser.verified;\n\n const isHosted = features?.isHosted;\n const canHave2FA = isEnterprise || isHosted;\n const secureOAuthUser = isOAuth2 && userVerified;\n if (!currentUser || !settingsInitialized || has2FA || !canHave2FA || secureOAuthUser) {\n return false;\n }\n\n if (dismissedTimestamp === null) {\n return true;\n }\n\n const today = dayjs();\n const dismissedMonthAgo = today.diff(dismissedTimestamp, 'months');\n\n return dismissedMonthAgo > 0;\n }\n);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commonSelectors.cjs","names":["createSelector","getOrganization","getFeatures","PLANS","getCurrentUser","getRolesById","rolesByName","mapUserRolesToUiPermissions","getIsServiceProvider","uiPermissionsById","ADDONS","getGlobalSettings","getFilteringAttributes","ATTRIBUTE_SCOPES","ATTRIBUTE_SCOPE_LABELS","stripOrchestratorManifestPrefix","getAttributeScopeLabel","attributeDuplicateFilter","getOnboarding","getUserSettings","onboardingSteps","getDevicesById","getDemoDeviceAddressHelper","getDeviceById","getDeploymentsById","getDeploymentsSelectionState","getReleasesById","getSelectedDeploymentDeviceIds","getIssueCountsByType","DEVICE_ISSUE_OPTIONS","getGroupsById","UNGROUPED_GROUP","ALL_DEVICES","defaultReports","getListedDevices","getSearchedDevices","listItemMapper","getAuditLogEntry","getRolesList","rolesById","serviceProviderRolesById","getHas2FA","getUserSettingsInitialized","getSecurityAlertDismissedTimestamp"],"sources":["../src/commonSelectors.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 type { AuditLog as AuditLogEvent } from '@northern.tech/types/types.gen';\nimport type { DeviceIssueOption } from '@northern.tech/utils/constants';\nimport { attributeDuplicateFilter, getDemoDeviceAddress as getDemoDeviceAddressHelper } from '@northern.tech/utils/helpers';\nimport { createSelector } from '@reduxjs/toolkit';\nimport dayjs from 'dayjs';\n\nimport { ADDONS, PLANS, defaultReports } from './appSlice/constants';\nimport { getFeatures, getSearchedDevices } from './appSlice/selectors';\nimport { ATTRIBUTE_SCOPE_LABELS, DEVICE_LIST_MAXIMUM_LENGTH, UNGROUPED_GROUP } from './commonConstants';\nimport { ALL_DEVICES, ATTRIBUTE_SCOPES, DEVICE_ISSUE_OPTIONS, rolesById, rolesByName, serviceProviderRolesById, uiPermissionsById } from './constants';\nimport type { Role } from './constants';\nimport type { Deployment } from './deploymentsSlice';\nimport { getDeploymentsById, getDeploymentsSelectionState, getSelectedDeploymentDeviceIds } from './deploymentsSlice/selectors';\nimport type { Device, DeviceGroup } from './devicesSlice';\nimport { getDeviceById, getDevicesById, getFilteringAttributes, getGroupsById, getListedDevices } from './devicesSlice/selectors';\nimport { getIssueCountsByType } from './monitorSlice/selectors';\nimport { onboardingSteps } from './onboardingSlice/constants';\nimport { getOnboarding } from './onboardingSlice/selectors';\nimport { getAuditLogEntry, getIsServiceProvider, getOrganization } from './organizationSlice/selectors';\nimport { getReleasesById } from './releasesSlice/selectors';\nimport {\n getCurrentUser,\n getGlobalSettings,\n getHas2FA,\n getRolesById,\n getRolesList,\n getSecurityAlertDismissedTimestamp,\n getUserSettings,\n getUserSettingsInitialized\n} from './usersSlice/selectors';\nimport { getAttributeScopeLabel, listItemMapper, mapUserRolesToUiPermissions, stripOrchestratorManifestPrefix } from './utils';\n\nexport const getIsEnterprise = createSelector(\n [getOrganization, getFeatures],\n ({ plan = PLANS.os.id }, { isEnterprise, isHosted }) => isEnterprise || (isHosted && plan === PLANS.enterprise.id)\n);\n\nexport const getUserRoles = createSelector([getCurrentUser, getRolesById, getIsEnterprise], (currentUser, rolesById, isEnterprise) => {\n const isAdmin = currentUser.roles?.length ? currentUser.roles.some(role => role === rolesByName.admin) : !isEnterprise;\n const uiPermissions = isAdmin ? mapUserRolesToUiPermissions([rolesByName.admin], rolesById) : mapUserRolesToUiPermissions(currentUser.roles || [], rolesById);\n return { isAdmin, uiPermissions };\n});\n\nconst hasPermission = (thing: Record<string, string[]>, permission: string): boolean =>\n Object.values(thing).some(permissions => permissions.includes(permission));\n\nexport const getUserCapabilities = createSelector([getUserRoles, getIsServiceProvider], ({ uiPermissions }, isServiceProvider) => {\n const canManageReleases = hasPermission(uiPermissions.releases, uiPermissionsById.manage.value);\n const canReadReleases = canManageReleases || hasPermission(uiPermissions.releases, uiPermissionsById.read.value);\n const canUploadReleases = canManageReleases || hasPermission(uiPermissions.releases, uiPermissionsById.upload.value);\n\n const canAuditlog = uiPermissions.auditlog.includes(uiPermissionsById.read.value);\n\n const canReadUsers = uiPermissions.userManagement.includes(uiPermissionsById.read.value);\n const canManageUsers = uiPermissions.userManagement.includes(uiPermissionsById.manage.value);\n\n const canReadDevices = hasPermission(uiPermissions.groups, uiPermissionsById.read.value);\n const canWriteDevices = Object.values(uiPermissions.groups).some(\n groupPermissions => groupPermissions.includes(uiPermissionsById.read.value) && groupPermissions.length > 1\n );\n const canTroubleshoot = hasPermission(uiPermissions.groups, uiPermissionsById.connect.value);\n const canManageDevices = hasPermission(uiPermissions.groups, uiPermissionsById.manage.value);\n const canConfigure = hasPermission(uiPermissions.groups, uiPermissionsById.configure.value);\n\n const canDeploy =\n (uiPermissions.deployments?.includes(uiPermissionsById.deploy.value) ?? false) || hasPermission(uiPermissions.groups, uiPermissionsById.deploy.value);\n const canReadDeployments = uiPermissions.deployments?.includes(uiPermissionsById.read.value) ?? false;\n\n return {\n canAuditlog,\n canConfigure,\n canDeploy,\n canManageDevices,\n canManageReleases,\n canManageUsers,\n canReadDeployments,\n canReadDevices,\n canReadReleases,\n canReadUsers,\n canTroubleshoot,\n canUploadReleases,\n canWriteDevices,\n groupsPermissions: uiPermissions.groups,\n releasesPermissions: uiPermissions.releases,\n SPTenant: isServiceProvider\n };\n});\n\nexport const getTenantCapabilities = createSelector(\n [getFeatures, getOrganization, getIsEnterprise],\n (\n {\n hasAuditlogs: isAuditlogEnabled,\n hasDeviceConfig: isDeviceConfigEnabled,\n hasDeviceConnect: isDeviceConnectEnabled,\n hasMonitor: isMonitorEnabled,\n isHosted\n },\n { addons = [], plan = PLANS.os.id },\n isEnterprise\n ) => {\n const canDelta = isEnterprise || plan === PLANS.professional.id;\n const hasAuditlogs = isAuditlogEnabled && isEnterprise;\n const hasDeviceConfig = addons.some(addon => addon.name === ADDONS.configure.id && addon.enabled) || (isDeviceConfigEnabled && !isHosted);\n const hasDeviceConnect = addons.some(addon => addon.name === ADDONS.troubleshoot.id && addon.enabled) || (isDeviceConnectEnabled && !isHosted);\n const hasMonitor = isMonitorEnabled && addons.some(addon => addon.name === ADDONS.monitor.id && addon.enabled);\n return {\n canDelta,\n canRetry: canDelta,\n canSchedule: canDelta,\n hasAuditlogs,\n hasDeviceConfig,\n hasDeviceConnect,\n hasFullFiltering: canDelta,\n hasMonitor,\n isEnterprise,\n plan\n };\n }\n);\n\nexport const getFilterAttributes = createSelector(\n [getGlobalSettings, getFilteringAttributes],\n ({ previousFilters }, { identityAttributes, inventoryAttributes, systemAttributes, tagAttributes }) => {\n const deviceNameAttribute = { key: 'name', value: 'Name', scope: ATTRIBUTE_SCOPES.tags, category: ATTRIBUTE_SCOPES.tags, priority: 1 };\n const deviceIdAttribute = { key: 'id', value: 'Device ID', scope: ATTRIBUTE_SCOPES.identity, category: ATTRIBUTE_SCOPES.identity, priority: 1 };\n const checkInAttribute = {\n key: 'check_in_time',\n value: 'Latest activity',\n scope: ATTRIBUTE_SCOPES.system,\n category: ATTRIBUTE_SCOPE_LABELS.default,\n priority: 4\n };\n const updateAttribute = { ...checkInAttribute, key: 'updated_ts', value: 'Last inventory update' };\n const firstRequestAttribute = {\n key: 'created_ts',\n value: 'First request',\n scope: ATTRIBUTE_SCOPES.system,\n category: ATTRIBUTE_SCOPE_LABELS.default,\n priority: 4\n };\n const attributes = [\n ...previousFilters.map(item => ({\n ...item,\n value: deviceIdAttribute.key === item.key ? deviceIdAttribute.value : stripOrchestratorManifestPrefix(item.key),\n category: 'recently used',\n priority: 0\n })),\n deviceNameAttribute,\n deviceIdAttribute,\n ...identityAttributes.map(item => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.identity, category: ATTRIBUTE_SCOPES.identity, priority: 1 })),\n ...inventoryAttributes.map(item => {\n const category = getAttributeScopeLabel({ key: item, scope: ATTRIBUTE_SCOPES.inventory });\n return {\n key: item,\n value: stripOrchestratorManifestPrefix(item),\n scope: ATTRIBUTE_SCOPES.inventory,\n category,\n priority: category === ATTRIBUTE_SCOPES.inventory ? 2 : 3\n };\n }),\n ...tagAttributes.map(item => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.tags, category: ATTRIBUTE_SCOPES.tags, priority: 3 })),\n checkInAttribute,\n updateAttribute,\n firstRequestAttribute,\n ...systemAttributes.map(item => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.system, category: ATTRIBUTE_SCOPE_LABELS.default, priority: 4 }))\n ];\n return attributeDuplicateFilter(attributes, 'key');\n }\n);\n\nexport const getOnboardingState = createSelector([getOnboarding, getUserSettings], ({ complete, progress, showTips, ...remainder }, { onboarding = {} }) => ({\n ...remainder,\n ...onboarding,\n complete: onboarding.complete || complete,\n progress:\n Object.keys(onboardingSteps).findIndex(step => step === progress) > Object.keys(onboardingSteps).findIndex(step => step === onboarding.progress)\n ? progress\n : onboarding.progress,\n showTips: !onboarding.showTips ? onboarding.showTips : showTips\n}));\n\nexport const getDemoDeviceAddress = createSelector([getDevicesById, getOnboarding], (devicesById, { approach, demoArtifactPort }) => {\n const demoDeviceAddress = `http://${getDemoDeviceAddressHelper(Object.values(devicesById), approach)}`;\n return demoArtifactPort ? `${demoDeviceAddress}:${demoArtifactPort}` : demoDeviceAddress;\n});\n\nexport const getDeviceConfigDeployment = createSelector([getDeviceById, getDeploymentsById], (device, deploymentsById) => {\n const { config = {} } = device;\n const { deployment_id: configDeploymentId = '' } = config;\n const deviceConfigDeployment = deploymentsById[configDeploymentId] ?? {};\n return { device, deviceConfigDeployment };\n});\n\nexport const getDeploymentRelease = createSelector(\n [getDeploymentsById, getDeploymentsSelectionState, getReleasesById],\n (deploymentsById, { selectedId = '' }, releasesById) => {\n const deployment = deploymentsById[selectedId] ?? {};\n return deployment?.artifact_name && releasesById[deployment.artifact_name] ? releasesById[deployment.artifact_name] : { device_types_compatible: [] };\n }\n);\n\nexport const getSelectedDeploymentData = createSelector(\n [getDeploymentsById, getDeploymentsSelectionState, getDevicesById, getSelectedDeploymentDeviceIds],\n (deploymentsById, { selectedId = '' }, devicesById, selectedDeviceIds) => {\n const deployment = deploymentsById[selectedId] ?? {};\n const { devices = {} } = deployment as Deployment;\n return {\n deployment,\n selectedDevices: selectedDeviceIds.map(deviceId => ({ ...devicesById[deviceId], ...(devices[deviceId] ?? {}) }))\n };\n }\n);\n\nexport const getAvailableIssueOptionsByType = createSelector([getTenantCapabilities, getIssueCountsByType], ({ hasFullFiltering, hasMonitor }, issueCounts) =>\n Object.values<DeviceIssueOption>(DEVICE_ISSUE_OPTIONS).reduce(\n (accu, { isCategory, key, needsFullFiltering, needsMonitor, title }) => {\n if (isCategory || (needsFullFiltering && !hasFullFiltering) || (needsMonitor && !hasMonitor)) {\n return accu;\n }\n accu[key] = { count: issueCounts[key].filtered, key, title };\n return accu;\n },\n {} as Record<string, { count: number; key: string; title: string }>\n )\n);\n\nexport const getGroupNames = createSelector([getGroupsById, getUserRoles], (groupsById, { uiPermissions }) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [UNGROUPED_GROUP.id]: ungrouped, ...groups } = groupsById;\n return Object.keys(\n Object.entries(groups).reduce(\n (accu, [groupName, group]) => {\n if (group.filters || uiPermissions.groups[ALL_DEVICES]) {\n accu[groupName] = group;\n }\n return accu;\n },\n { ...uiPermissions.groups } as Record<string, DeviceGroup>\n )\n ).sort();\n});\n\nexport const getDeviceReportsForUser = createSelector(\n [getUserSettings, getCurrentUser, getGlobalSettings, getDevicesById],\n ({ reports }, { id: currentUserId }, globalSettings, devicesById) =>\n reports || globalSettings[`${currentUserId}-reports`] || (Object.keys(devicesById).length ? defaultReports : [])\n);\n\nconst listTypeDeviceIdMap = {\n deviceList: getListedDevices,\n search: getSearchedDevices\n};\nconst deviceMapDefault = { defaultObject: { auth_sets: [] }, cutOffSize: DEVICE_LIST_MAXIMUM_LENGTH };\nconst getDeviceMappingDefaults = () => deviceMapDefault;\n\nexport const getMappedDevicesList = createSelector(\n [getDevicesById, (state, listType) => listTypeDeviceIdMap[listType](state), getDeviceMappingDefaults],\n listItemMapper\n);\n\nexport const getAuditlogDevice = createSelector([getAuditLogEntry, getDevicesById], (auditlogEvent, devicesById) => {\n let auditlogDevice: Partial<Device> = {};\n if (auditlogEvent) {\n const { object } = auditlogEvent as AuditLogEvent;\n const objectData = object as AuditLogEvent['object'] | undefined;\n if (objectData?.type === 'device' && objectData.id) {\n auditlogDevice = { id: objectData.id, ...(objectData.device ?? {}) } as Device;\n }\n }\n return { ...auditlogDevice, ...(auditlogDevice.id ? devicesById[auditlogDevice.id] : {}) };\n});\n\ntype RoleItem = Role | { value: string };\nexport const getRelevantRoles = createSelector([getOrganization, getRolesList], ({ service_provider }, roles) => {\n if (service_provider) {\n return roles.reduce(\n (accu, role) => {\n if (rolesById[role.value as keyof typeof rolesById]) {\n return accu;\n }\n accu.push(role);\n return accu;\n },\n [...Object.values(serviceProviderRolesById)] as RoleItem[]\n );\n }\n return Object.keys(rolesById)\n .reverse()\n .reduce((accu, key) => {\n const index = accu.findIndex(({ value }) => value === key);\n if (index >= 0) {\n accu = [accu[index], ...accu.filter((_, itemIndex) => index !== itemIndex)];\n }\n return accu;\n }, roles);\n});\n\nexport const getShowSecurityAlert = createSelector(\n [getCurrentUser, getHas2FA, getFeatures, getIsEnterprise, getUserSettingsInitialized, getSecurityAlertDismissedTimestamp],\n (currentUser, has2FA, features, isEnterprise, settingsInitialized, dismissedTimestamp) => {\n const isOAuth2 = !!currentUser?.sso?.length;\n const userVerified = !!currentUser.verified;\n\n const isHosted = features?.isHosted;\n const canHave2FA = isEnterprise || isHosted;\n const secureOAuthUser = isOAuth2 && userVerified;\n if (!currentUser || !settingsInitialized || has2FA || !canHave2FA || secureOAuthUser) {\n return false;\n }\n\n if (dismissedTimestamp === null) {\n return true;\n }\n\n const today = dayjs();\n const dismissedMonthAgo = today.diff(dismissedTimestamp, 'months');\n\n return dismissedMonthAgo > 0;\n }\n);\n"],"mappings":"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"}
|
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import { a as AvailablePlans } from "./constants-
|
|
2
|
-
import { S as Role } from "./constants-
|
|
3
|
-
import { a as UserSettings, n as GlobalSettings, o as UserSliceType, r as User } from "./index-
|
|
4
|
-
import { i as ReleaseSliceType, r as Release } from "./index-
|
|
5
|
-
import { i as Organization, n as AuditLogSelectionState } from "./types-
|
|
6
|
-
import { n as OnboardingSliceType, t as OnboardingApproach } from "./index-
|
|
7
|
-
import { l as SelectionState, o as DeploymentsSliceType, s as DeviceDeployment, t as Deployment } from "./index-
|
|
8
|
-
import { c as
|
|
9
|
-
import { t as AppSliceType } from "./index-
|
|
10
|
-
import { t as MonitorSliceType } from "./index-
|
|
11
|
-
import { t as OrganizationSliceType } from "./index-
|
|
12
|
-
import { r as RootState } from "./store-
|
|
1
|
+
import { a as AvailablePlans } from "./constants-nKSWZ8oD.cjs";
|
|
2
|
+
import { S as Role } from "./constants-Rl3FJzFf.cjs";
|
|
3
|
+
import { a as UserSettings, n as GlobalSettings, o as UserSliceType, r as User } from "./index-BgF6rhXn.cjs";
|
|
4
|
+
import { i as ReleaseSliceType, r as Release } from "./index-DiAjzARZ.cjs";
|
|
5
|
+
import { i as Organization, n as AuditLogSelectionState } from "./types-B80ckxiy.cjs";
|
|
6
|
+
import { n as OnboardingSliceType, t as OnboardingApproach } from "./index-CoObjWL4.cjs";
|
|
7
|
+
import { l as SelectionState, o as DeploymentsSliceType, s as DeviceDeployment, t as Deployment } from "./index-mvxjivTJ.cjs";
|
|
8
|
+
import { c as DeviceSliceType, i as DeviceGroup, l as InventoryAttributes, n as DeviceComponents, t as Device } from "./index-CiQ95u1W.cjs";
|
|
9
|
+
import { t as AppSliceType } from "./index-DeOpb2oK.cjs";
|
|
10
|
+
import { t as MonitorSliceType } from "./index-Ctj2r57a.cjs";
|
|
11
|
+
import { t as OrganizationSliceType } from "./index-C_LGDJN2.cjs";
|
|
12
|
+
import { r as RootState } from "./store-CUUm1GTI.cjs";
|
|
13
13
|
import { AuditLog } from "@northern.tech/types/types.gen";
|
|
14
|
-
|
|
15
14
|
//#region src/commonSelectors.d.ts
|
|
16
15
|
declare const getIsEnterprise: ((state: {
|
|
17
16
|
app: AppSliceType;
|
|
@@ -796,13 +795,13 @@ declare const getSelectedDeploymentData: ((state: {
|
|
|
796
795
|
tags?: Record<string, string>;
|
|
797
796
|
check_in_time_exact?: string;
|
|
798
797
|
check_in_time_rounded?: string;
|
|
798
|
+
components?: DeviceComponents;
|
|
799
799
|
config?: import("@northern.tech/types/types.gen").DeviceConfiguration;
|
|
800
800
|
connect_status?: import("@northern.tech/types/types.gen").ConnectionState["status"];
|
|
801
801
|
connect_updated_ts?: string;
|
|
802
802
|
deploymentsCount?: number;
|
|
803
803
|
deviceDeployments?: DeviceDeployment;
|
|
804
804
|
etag?: string;
|
|
805
|
-
gatewayIds?: string[];
|
|
806
805
|
group?: string;
|
|
807
806
|
isNew?: boolean;
|
|
808
807
|
isOffline?: boolean;
|
|
@@ -848,13 +847,13 @@ declare const getSelectedDeploymentData: ((state: {
|
|
|
848
847
|
tags?: Record<string, string>;
|
|
849
848
|
check_in_time_exact?: string;
|
|
850
849
|
check_in_time_rounded?: string;
|
|
850
|
+
components?: DeviceComponents;
|
|
851
851
|
config?: import("@northern.tech/types/types.gen").DeviceConfiguration;
|
|
852
852
|
connect_status?: import("@northern.tech/types/types.gen").ConnectionState["status"];
|
|
853
853
|
connect_updated_ts?: string;
|
|
854
854
|
deploymentsCount?: number;
|
|
855
855
|
deviceDeployments?: DeviceDeployment;
|
|
856
856
|
etag?: string;
|
|
857
|
-
gatewayIds?: string[];
|
|
858
857
|
group?: string;
|
|
859
858
|
isNew?: boolean;
|
|
860
859
|
isOffline?: boolean;
|
|
@@ -896,13 +895,13 @@ declare const getSelectedDeploymentData: ((state: {
|
|
|
896
895
|
tags?: Record<string, string>;
|
|
897
896
|
check_in_time_exact?: string;
|
|
898
897
|
check_in_time_rounded?: string;
|
|
898
|
+
components?: DeviceComponents;
|
|
899
899
|
config?: import("@northern.tech/types/types.gen").DeviceConfiguration;
|
|
900
900
|
connect_status?: import("@northern.tech/types/types.gen").ConnectionState["status"];
|
|
901
901
|
connect_updated_ts?: string;
|
|
902
902
|
deploymentsCount?: number;
|
|
903
903
|
deviceDeployments?: DeviceDeployment;
|
|
904
904
|
etag?: string;
|
|
905
|
-
gatewayIds?: string[];
|
|
906
905
|
group?: string;
|
|
907
906
|
isNew?: boolean;
|
|
908
907
|
isOffline?: boolean;
|
|
@@ -948,13 +947,13 @@ declare const getSelectedDeploymentData: ((state: {
|
|
|
948
947
|
tags?: Record<string, string>;
|
|
949
948
|
check_in_time_exact?: string;
|
|
950
949
|
check_in_time_rounded?: string;
|
|
950
|
+
components?: DeviceComponents;
|
|
951
951
|
config?: import("@northern.tech/types/types.gen").DeviceConfiguration;
|
|
952
952
|
connect_status?: import("@northern.tech/types/types.gen").ConnectionState["status"];
|
|
953
953
|
connect_updated_ts?: string;
|
|
954
954
|
deploymentsCount?: number;
|
|
955
955
|
deviceDeployments?: DeviceDeployment;
|
|
956
956
|
etag?: string;
|
|
957
|
-
gatewayIds?: string[];
|
|
958
957
|
group?: string;
|
|
959
958
|
isNew?: boolean;
|
|
960
959
|
isOffline?: boolean;
|
|
@@ -1448,13 +1447,13 @@ declare const getAuditlogDevice: ((state: {
|
|
|
1448
1447
|
tags?: Record<string, string>;
|
|
1449
1448
|
check_in_time_exact?: string;
|
|
1450
1449
|
check_in_time_rounded?: string;
|
|
1450
|
+
components?: DeviceComponents;
|
|
1451
1451
|
config?: import("@northern.tech/types/types.gen").DeviceConfiguration;
|
|
1452
1452
|
connect_status?: import("@northern.tech/types/types.gen").ConnectionState["status"];
|
|
1453
1453
|
connect_updated_ts?: string;
|
|
1454
1454
|
deploymentsCount?: number;
|
|
1455
1455
|
deviceDeployments?: DeviceDeployment;
|
|
1456
1456
|
etag?: string;
|
|
1457
|
-
gatewayIds?: string[];
|
|
1458
1457
|
group?: string;
|
|
1459
1458
|
isNew?: boolean;
|
|
1460
1459
|
isOffline?: boolean;
|
|
@@ -1486,13 +1485,13 @@ declare const getAuditlogDevice: ((state: {
|
|
|
1486
1485
|
tags?: Record<string, string>;
|
|
1487
1486
|
check_in_time_exact?: string;
|
|
1488
1487
|
check_in_time_rounded?: string;
|
|
1488
|
+
components?: DeviceComponents;
|
|
1489
1489
|
config?: import("@northern.tech/types/types.gen").DeviceConfiguration;
|
|
1490
1490
|
connect_status?: import("@northern.tech/types/types.gen").ConnectionState["status"];
|
|
1491
1491
|
connect_updated_ts?: string;
|
|
1492
1492
|
deploymentsCount?: number;
|
|
1493
1493
|
deviceDeployments?: DeviceDeployment;
|
|
1494
1494
|
etag?: string;
|
|
1495
|
-
gatewayIds?: string[];
|
|
1496
1495
|
group?: string;
|
|
1497
1496
|
isNew?: boolean;
|
|
1498
1497
|
isOffline?: boolean;
|
|
@@ -1520,13 +1519,13 @@ declare const getAuditlogDevice: ((state: {
|
|
|
1520
1519
|
tags?: Record<string, string>;
|
|
1521
1520
|
check_in_time_exact?: string;
|
|
1522
1521
|
check_in_time_rounded?: string;
|
|
1522
|
+
components?: DeviceComponents;
|
|
1523
1523
|
config?: import("@northern.tech/types/types.gen").DeviceConfiguration;
|
|
1524
1524
|
connect_status?: import("@northern.tech/types/types.gen").ConnectionState["status"];
|
|
1525
1525
|
connect_updated_ts?: string;
|
|
1526
1526
|
deploymentsCount?: number;
|
|
1527
1527
|
deviceDeployments?: DeviceDeployment;
|
|
1528
1528
|
etag?: string;
|
|
1529
|
-
gatewayIds?: string[];
|
|
1530
1529
|
group?: string;
|
|
1531
1530
|
isNew?: boolean;
|
|
1532
1531
|
isOffline?: boolean;
|
|
@@ -1558,13 +1557,13 @@ declare const getAuditlogDevice: ((state: {
|
|
|
1558
1557
|
tags?: Record<string, string>;
|
|
1559
1558
|
check_in_time_exact?: string;
|
|
1560
1559
|
check_in_time_rounded?: string;
|
|
1560
|
+
components?: DeviceComponents;
|
|
1561
1561
|
config?: import("@northern.tech/types/types.gen").DeviceConfiguration;
|
|
1562
1562
|
connect_status?: import("@northern.tech/types/types.gen").ConnectionState["status"];
|
|
1563
1563
|
connect_updated_ts?: string;
|
|
1564
1564
|
deploymentsCount?: number;
|
|
1565
1565
|
deviceDeployments?: DeviceDeployment;
|
|
1566
1566
|
etag?: string;
|
|
1567
|
-
gatewayIds?: string[];
|
|
1568
1567
|
group?: string;
|
|
1569
1568
|
isNew?: boolean;
|
|
1570
1569
|
isOffline?: boolean;
|
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import { a as AvailablePlans } from "./constants-
|
|
2
|
-
import { S as Role } from "./constants-
|
|
3
|
-
import { a as UserSettings, n as GlobalSettings, o as UserSliceType, r as User } from "./index-
|
|
4
|
-
import { i as ReleaseSliceType, r as Release } from "./index-
|
|
5
|
-
import { i as Organization, n as AuditLogSelectionState } from "./types-
|
|
6
|
-
import { n as OnboardingSliceType, t as OnboardingApproach } from "./index-
|
|
7
|
-
import { l as SelectionState, o as DeploymentsSliceType, s as DeviceDeployment, t as Deployment } from "./index-
|
|
8
|
-
import { c as
|
|
9
|
-
import { t as AppSliceType } from "./index-
|
|
10
|
-
import { t as MonitorSliceType } from "./index-
|
|
11
|
-
import { t as OrganizationSliceType } from "./index-
|
|
12
|
-
import { r as RootState } from "./store-
|
|
1
|
+
import { a as AvailablePlans } from "./constants-nKSWZ8oD.js";
|
|
2
|
+
import { S as Role } from "./constants-B_H4squx.js";
|
|
3
|
+
import { a as UserSettings, n as GlobalSettings, o as UserSliceType, r as User } from "./index-CpfhQHfg.js";
|
|
4
|
+
import { i as ReleaseSliceType, r as Release } from "./index-C8uiyxnb.js";
|
|
5
|
+
import { i as Organization, n as AuditLogSelectionState } from "./types-B3qGQoMx.js";
|
|
6
|
+
import { n as OnboardingSliceType, t as OnboardingApproach } from "./index-CoObjWL4.js";
|
|
7
|
+
import { l as SelectionState, o as DeploymentsSliceType, s as DeviceDeployment, t as Deployment } from "./index-B8td4-rY.js";
|
|
8
|
+
import { c as DeviceSliceType, i as DeviceGroup, l as InventoryAttributes, n as DeviceComponents, t as Device } from "./index-Bvyf8OO6.js";
|
|
9
|
+
import { t as AppSliceType } from "./index-Bs0c1-WY.js";
|
|
10
|
+
import { t as MonitorSliceType } from "./index-BAGyeC-q.js";
|
|
11
|
+
import { t as OrganizationSliceType } from "./index-ChKTa1aL.js";
|
|
12
|
+
import { r as RootState } from "./store-CPptM5Ts.js";
|
|
13
13
|
import { AuditLog } from "@northern.tech/types/types.gen";
|
|
14
|
-
|
|
15
14
|
//#region src/commonSelectors.d.ts
|
|
16
15
|
declare const getIsEnterprise: ((state: {
|
|
17
16
|
app: AppSliceType;
|
|
@@ -796,13 +795,13 @@ declare const getSelectedDeploymentData: ((state: {
|
|
|
796
795
|
tags?: Record<string, string>;
|
|
797
796
|
check_in_time_exact?: string;
|
|
798
797
|
check_in_time_rounded?: string;
|
|
798
|
+
components?: DeviceComponents;
|
|
799
799
|
config?: import("@northern.tech/types/types.gen").DeviceConfiguration;
|
|
800
800
|
connect_status?: import("@northern.tech/types/types.gen").ConnectionState["status"];
|
|
801
801
|
connect_updated_ts?: string;
|
|
802
802
|
deploymentsCount?: number;
|
|
803
803
|
deviceDeployments?: DeviceDeployment;
|
|
804
804
|
etag?: string;
|
|
805
|
-
gatewayIds?: string[];
|
|
806
805
|
group?: string;
|
|
807
806
|
isNew?: boolean;
|
|
808
807
|
isOffline?: boolean;
|
|
@@ -848,13 +847,13 @@ declare const getSelectedDeploymentData: ((state: {
|
|
|
848
847
|
tags?: Record<string, string>;
|
|
849
848
|
check_in_time_exact?: string;
|
|
850
849
|
check_in_time_rounded?: string;
|
|
850
|
+
components?: DeviceComponents;
|
|
851
851
|
config?: import("@northern.tech/types/types.gen").DeviceConfiguration;
|
|
852
852
|
connect_status?: import("@northern.tech/types/types.gen").ConnectionState["status"];
|
|
853
853
|
connect_updated_ts?: string;
|
|
854
854
|
deploymentsCount?: number;
|
|
855
855
|
deviceDeployments?: DeviceDeployment;
|
|
856
856
|
etag?: string;
|
|
857
|
-
gatewayIds?: string[];
|
|
858
857
|
group?: string;
|
|
859
858
|
isNew?: boolean;
|
|
860
859
|
isOffline?: boolean;
|
|
@@ -896,13 +895,13 @@ declare const getSelectedDeploymentData: ((state: {
|
|
|
896
895
|
tags?: Record<string, string>;
|
|
897
896
|
check_in_time_exact?: string;
|
|
898
897
|
check_in_time_rounded?: string;
|
|
898
|
+
components?: DeviceComponents;
|
|
899
899
|
config?: import("@northern.tech/types/types.gen").DeviceConfiguration;
|
|
900
900
|
connect_status?: import("@northern.tech/types/types.gen").ConnectionState["status"];
|
|
901
901
|
connect_updated_ts?: string;
|
|
902
902
|
deploymentsCount?: number;
|
|
903
903
|
deviceDeployments?: DeviceDeployment;
|
|
904
904
|
etag?: string;
|
|
905
|
-
gatewayIds?: string[];
|
|
906
905
|
group?: string;
|
|
907
906
|
isNew?: boolean;
|
|
908
907
|
isOffline?: boolean;
|
|
@@ -948,13 +947,13 @@ declare const getSelectedDeploymentData: ((state: {
|
|
|
948
947
|
tags?: Record<string, string>;
|
|
949
948
|
check_in_time_exact?: string;
|
|
950
949
|
check_in_time_rounded?: string;
|
|
950
|
+
components?: DeviceComponents;
|
|
951
951
|
config?: import("@northern.tech/types/types.gen").DeviceConfiguration;
|
|
952
952
|
connect_status?: import("@northern.tech/types/types.gen").ConnectionState["status"];
|
|
953
953
|
connect_updated_ts?: string;
|
|
954
954
|
deploymentsCount?: number;
|
|
955
955
|
deviceDeployments?: DeviceDeployment;
|
|
956
956
|
etag?: string;
|
|
957
|
-
gatewayIds?: string[];
|
|
958
957
|
group?: string;
|
|
959
958
|
isNew?: boolean;
|
|
960
959
|
isOffline?: boolean;
|
|
@@ -1448,13 +1447,13 @@ declare const getAuditlogDevice: ((state: {
|
|
|
1448
1447
|
tags?: Record<string, string>;
|
|
1449
1448
|
check_in_time_exact?: string;
|
|
1450
1449
|
check_in_time_rounded?: string;
|
|
1450
|
+
components?: DeviceComponents;
|
|
1451
1451
|
config?: import("@northern.tech/types/types.gen").DeviceConfiguration;
|
|
1452
1452
|
connect_status?: import("@northern.tech/types/types.gen").ConnectionState["status"];
|
|
1453
1453
|
connect_updated_ts?: string;
|
|
1454
1454
|
deploymentsCount?: number;
|
|
1455
1455
|
deviceDeployments?: DeviceDeployment;
|
|
1456
1456
|
etag?: string;
|
|
1457
|
-
gatewayIds?: string[];
|
|
1458
1457
|
group?: string;
|
|
1459
1458
|
isNew?: boolean;
|
|
1460
1459
|
isOffline?: boolean;
|
|
@@ -1486,13 +1485,13 @@ declare const getAuditlogDevice: ((state: {
|
|
|
1486
1485
|
tags?: Record<string, string>;
|
|
1487
1486
|
check_in_time_exact?: string;
|
|
1488
1487
|
check_in_time_rounded?: string;
|
|
1488
|
+
components?: DeviceComponents;
|
|
1489
1489
|
config?: import("@northern.tech/types/types.gen").DeviceConfiguration;
|
|
1490
1490
|
connect_status?: import("@northern.tech/types/types.gen").ConnectionState["status"];
|
|
1491
1491
|
connect_updated_ts?: string;
|
|
1492
1492
|
deploymentsCount?: number;
|
|
1493
1493
|
deviceDeployments?: DeviceDeployment;
|
|
1494
1494
|
etag?: string;
|
|
1495
|
-
gatewayIds?: string[];
|
|
1496
1495
|
group?: string;
|
|
1497
1496
|
isNew?: boolean;
|
|
1498
1497
|
isOffline?: boolean;
|
|
@@ -1520,13 +1519,13 @@ declare const getAuditlogDevice: ((state: {
|
|
|
1520
1519
|
tags?: Record<string, string>;
|
|
1521
1520
|
check_in_time_exact?: string;
|
|
1522
1521
|
check_in_time_rounded?: string;
|
|
1522
|
+
components?: DeviceComponents;
|
|
1523
1523
|
config?: import("@northern.tech/types/types.gen").DeviceConfiguration;
|
|
1524
1524
|
connect_status?: import("@northern.tech/types/types.gen").ConnectionState["status"];
|
|
1525
1525
|
connect_updated_ts?: string;
|
|
1526
1526
|
deploymentsCount?: number;
|
|
1527
1527
|
deviceDeployments?: DeviceDeployment;
|
|
1528
1528
|
etag?: string;
|
|
1529
|
-
gatewayIds?: string[];
|
|
1530
1529
|
group?: string;
|
|
1531
1530
|
isNew?: boolean;
|
|
1532
1531
|
isOffline?: boolean;
|
|
@@ -1558,13 +1557,13 @@ declare const getAuditlogDevice: ((state: {
|
|
|
1558
1557
|
tags?: Record<string, string>;
|
|
1559
1558
|
check_in_time_exact?: string;
|
|
1560
1559
|
check_in_time_rounded?: string;
|
|
1560
|
+
components?: DeviceComponents;
|
|
1561
1561
|
config?: import("@northern.tech/types/types.gen").DeviceConfiguration;
|
|
1562
1562
|
connect_status?: import("@northern.tech/types/types.gen").ConnectionState["status"];
|
|
1563
1563
|
connect_updated_ts?: string;
|
|
1564
1564
|
deploymentsCount?: number;
|
|
1565
1565
|
deviceDeployments?: DeviceDeployment;
|
|
1566
1566
|
etag?: string;
|
|
1567
|
-
gatewayIds?: string[];
|
|
1568
1567
|
group?: string;
|
|
1569
1568
|
isNew?: boolean;
|
|
1570
1569
|
isOffline?: boolean;
|
package/dist/commonSelectors.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ADDONS, PLANS, defaultReports } from "./appSlice/constants.js";
|
|
2
|
-
import {
|
|
2
|
+
import { F as rolesByName, Ft as UNGROUPED_GROUP, L as serviceProviderRolesById, Ot as ATTRIBUTE_SCOPE_LABELS, P as rolesById, U as uiPermissionsById, c as DEVICE_ISSUE_OPTIONS, o as ATTRIBUTE_SCOPES, t as ALL_DEVICES } from "./constants-CerzXHnQ.js";
|
|
3
3
|
import { onboardingSteps } from "./onboardingSlice/constants.js";
|
|
4
4
|
import { getFeatures, getSearchedDevices } from "./appSlice/selectors.js";
|
|
5
5
|
import { getDeploymentsById, getDeploymentsSelectionState, getSelectedDeploymentDeviceIds } from "./deploymentsSlice/selectors.js";
|
|
@@ -110,7 +110,7 @@ const getFilterAttributes = createSelector([getGlobalSettings, getFilteringAttri
|
|
|
110
110
|
category: ATTRIBUTE_SCOPE_LABELS.default,
|
|
111
111
|
priority: 4
|
|
112
112
|
};
|
|
113
|
-
|
|
113
|
+
const attributes = [
|
|
114
114
|
...previousFilters.map((item) => ({
|
|
115
115
|
...item,
|
|
116
116
|
value: deviceIdAttribute.key === item.key ? deviceIdAttribute.value : stripOrchestratorManifestPrefix(item.key),
|
|
@@ -156,7 +156,8 @@ const getFilterAttributes = createSelector([getGlobalSettings, getFilteringAttri
|
|
|
156
156
|
category: ATTRIBUTE_SCOPE_LABELS.default,
|
|
157
157
|
priority: 4
|
|
158
158
|
}))
|
|
159
|
-
]
|
|
159
|
+
];
|
|
160
|
+
return attributeDuplicateFilter(attributes, "key");
|
|
160
161
|
});
|
|
161
162
|
const getOnboardingState = createSelector([getOnboarding, getUserSettings], ({ complete, progress, showTips, ...remainder }, { onboarding = {} }) => ({
|
|
162
163
|
...remainder,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commonSelectors.js","names":["getDemoDeviceAddressHelper"],"sources":["../src/commonSelectors.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 type { AuditLog as AuditLogEvent } from '@northern.tech/types/types.gen';\nimport type { DeviceIssueOption } from '@northern.tech/utils/constants';\nimport { attributeDuplicateFilter, getDemoDeviceAddress as getDemoDeviceAddressHelper } from '@northern.tech/utils/helpers';\nimport { createSelector } from '@reduxjs/toolkit';\nimport dayjs from 'dayjs';\n\nimport { ADDONS, PLANS, defaultReports } from './appSlice/constants';\nimport { getFeatures, getSearchedDevices } from './appSlice/selectors';\nimport { ATTRIBUTE_SCOPE_LABELS, DEVICE_LIST_MAXIMUM_LENGTH, UNGROUPED_GROUP } from './commonConstants';\nimport { ALL_DEVICES, ATTRIBUTE_SCOPES, DEVICE_ISSUE_OPTIONS, rolesById, rolesByName, serviceProviderRolesById, uiPermissionsById } from './constants';\nimport type { Role } from './constants';\nimport type { Deployment } from './deploymentsSlice';\nimport { getDeploymentsById, getDeploymentsSelectionState, getSelectedDeploymentDeviceIds } from './deploymentsSlice/selectors';\nimport type { Device, DeviceGroup } from './devicesSlice';\nimport { getDeviceById, getDevicesById, getFilteringAttributes, getGroupsById, getListedDevices } from './devicesSlice/selectors';\nimport { getIssueCountsByType } from './monitorSlice/selectors';\nimport { onboardingSteps } from './onboardingSlice/constants';\nimport { getOnboarding } from './onboardingSlice/selectors';\nimport { getAuditLogEntry, getIsServiceProvider, getOrganization } from './organizationSlice/selectors';\nimport { getReleasesById } from './releasesSlice/selectors';\nimport {\n getCurrentUser,\n getGlobalSettings,\n getHas2FA,\n getRolesById,\n getRolesList,\n getSecurityAlertDismissedTimestamp,\n getUserSettings,\n getUserSettingsInitialized\n} from './usersSlice/selectors';\nimport { getAttributeScopeLabel, listItemMapper, mapUserRolesToUiPermissions, stripOrchestratorManifestPrefix } from './utils';\n\nexport const getIsEnterprise = createSelector(\n [getOrganization, getFeatures],\n ({ plan = PLANS.os.id }, { isEnterprise, isHosted }) => isEnterprise || (isHosted && plan === PLANS.enterprise.id)\n);\n\nexport const getUserRoles = createSelector([getCurrentUser, getRolesById, getIsEnterprise], (currentUser, rolesById, isEnterprise) => {\n const isAdmin = currentUser.roles?.length ? currentUser.roles.some(role => role === rolesByName.admin) : !isEnterprise;\n const uiPermissions = isAdmin ? mapUserRolesToUiPermissions([rolesByName.admin], rolesById) : mapUserRolesToUiPermissions(currentUser.roles || [], rolesById);\n return { isAdmin, uiPermissions };\n});\n\nconst hasPermission = (thing: Record<string, string[]>, permission: string): boolean =>\n Object.values(thing).some(permissions => permissions.includes(permission));\n\nexport const getUserCapabilities = createSelector([getUserRoles, getIsServiceProvider], ({ uiPermissions }, isServiceProvider) => {\n const canManageReleases = hasPermission(uiPermissions.releases, uiPermissionsById.manage.value);\n const canReadReleases = canManageReleases || hasPermission(uiPermissions.releases, uiPermissionsById.read.value);\n const canUploadReleases = canManageReleases || hasPermission(uiPermissions.releases, uiPermissionsById.upload.value);\n\n const canAuditlog = uiPermissions.auditlog.includes(uiPermissionsById.read.value);\n\n const canReadUsers = uiPermissions.userManagement.includes(uiPermissionsById.read.value);\n const canManageUsers = uiPermissions.userManagement.includes(uiPermissionsById.manage.value);\n\n const canReadDevices = hasPermission(uiPermissions.groups, uiPermissionsById.read.value);\n const canWriteDevices = Object.values(uiPermissions.groups).some(\n groupPermissions => groupPermissions.includes(uiPermissionsById.read.value) && groupPermissions.length > 1\n );\n const canTroubleshoot = hasPermission(uiPermissions.groups, uiPermissionsById.connect.value);\n const canManageDevices = hasPermission(uiPermissions.groups, uiPermissionsById.manage.value);\n const canConfigure = hasPermission(uiPermissions.groups, uiPermissionsById.configure.value);\n\n const canDeploy =\n (uiPermissions.deployments?.includes(uiPermissionsById.deploy.value) ?? false) || hasPermission(uiPermissions.groups, uiPermissionsById.deploy.value);\n const canReadDeployments = uiPermissions.deployments?.includes(uiPermissionsById.read.value) ?? false;\n\n return {\n canAuditlog,\n canConfigure,\n canDeploy,\n canManageDevices,\n canManageReleases,\n canManageUsers,\n canReadDeployments,\n canReadDevices,\n canReadReleases,\n canReadUsers,\n canTroubleshoot,\n canUploadReleases,\n canWriteDevices,\n groupsPermissions: uiPermissions.groups,\n releasesPermissions: uiPermissions.releases,\n SPTenant: isServiceProvider\n };\n});\n\nexport const getTenantCapabilities = createSelector(\n [getFeatures, getOrganization, getIsEnterprise],\n (\n {\n hasAuditlogs: isAuditlogEnabled,\n hasDeviceConfig: isDeviceConfigEnabled,\n hasDeviceConnect: isDeviceConnectEnabled,\n hasMonitor: isMonitorEnabled,\n isHosted\n },\n { addons = [], plan = PLANS.os.id },\n isEnterprise\n ) => {\n const canDelta = isEnterprise || plan === PLANS.professional.id;\n const hasAuditlogs = isAuditlogEnabled && isEnterprise;\n const hasDeviceConfig = addons.some(addon => addon.name === ADDONS.configure.id && addon.enabled) || (isDeviceConfigEnabled && !isHosted);\n const hasDeviceConnect = addons.some(addon => addon.name === ADDONS.troubleshoot.id && addon.enabled) || (isDeviceConnectEnabled && !isHosted);\n const hasMonitor = isMonitorEnabled && addons.some(addon => addon.name === ADDONS.monitor.id && addon.enabled);\n return {\n canDelta,\n canRetry: canDelta,\n canSchedule: canDelta,\n hasAuditlogs,\n hasDeviceConfig,\n hasDeviceConnect,\n hasFullFiltering: canDelta,\n hasMonitor,\n isEnterprise,\n plan\n };\n }\n);\n\nexport const getFilterAttributes = createSelector(\n [getGlobalSettings, getFilteringAttributes],\n ({ previousFilters }, { identityAttributes, inventoryAttributes, systemAttributes, tagAttributes }) => {\n const deviceNameAttribute = { key: 'name', value: 'Name', scope: ATTRIBUTE_SCOPES.tags, category: ATTRIBUTE_SCOPES.tags, priority: 1 };\n const deviceIdAttribute = { key: 'id', value: 'Device ID', scope: ATTRIBUTE_SCOPES.identity, category: ATTRIBUTE_SCOPES.identity, priority: 1 };\n const checkInAttribute = {\n key: 'check_in_time',\n value: 'Latest activity',\n scope: ATTRIBUTE_SCOPES.system,\n category: ATTRIBUTE_SCOPE_LABELS.default,\n priority: 4\n };\n const updateAttribute = { ...checkInAttribute, key: 'updated_ts', value: 'Last inventory update' };\n const firstRequestAttribute = {\n key: 'created_ts',\n value: 'First request',\n scope: ATTRIBUTE_SCOPES.system,\n category: ATTRIBUTE_SCOPE_LABELS.default,\n priority: 4\n };\n const attributes = [\n ...previousFilters.map(item => ({\n ...item,\n value: deviceIdAttribute.key === item.key ? deviceIdAttribute.value : stripOrchestratorManifestPrefix(item.key),\n category: 'recently used',\n priority: 0\n })),\n deviceNameAttribute,\n deviceIdAttribute,\n ...identityAttributes.map(item => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.identity, category: ATTRIBUTE_SCOPES.identity, priority: 1 })),\n ...inventoryAttributes.map(item => {\n const category = getAttributeScopeLabel({ key: item, scope: ATTRIBUTE_SCOPES.inventory });\n return {\n key: item,\n value: stripOrchestratorManifestPrefix(item),\n scope: ATTRIBUTE_SCOPES.inventory,\n category,\n priority: category === ATTRIBUTE_SCOPES.inventory ? 2 : 3\n };\n }),\n ...tagAttributes.map(item => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.tags, category: ATTRIBUTE_SCOPES.tags, priority: 3 })),\n checkInAttribute,\n updateAttribute,\n firstRequestAttribute,\n ...systemAttributes.map(item => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.system, category: ATTRIBUTE_SCOPE_LABELS.default, priority: 4 }))\n ];\n return attributeDuplicateFilter(attributes, 'key');\n }\n);\n\nexport const getOnboardingState = createSelector([getOnboarding, getUserSettings], ({ complete, progress, showTips, ...remainder }, { onboarding = {} }) => ({\n ...remainder,\n ...onboarding,\n complete: onboarding.complete || complete,\n progress:\n Object.keys(onboardingSteps).findIndex(step => step === progress) > Object.keys(onboardingSteps).findIndex(step => step === onboarding.progress)\n ? progress\n : onboarding.progress,\n showTips: !onboarding.showTips ? onboarding.showTips : showTips\n}));\n\nexport const getDemoDeviceAddress = createSelector([getDevicesById, getOnboarding], (devicesById, { approach, demoArtifactPort }) => {\n const demoDeviceAddress = `http://${getDemoDeviceAddressHelper(Object.values(devicesById), approach)}`;\n return demoArtifactPort ? `${demoDeviceAddress}:${demoArtifactPort}` : demoDeviceAddress;\n});\n\nexport const getDeviceConfigDeployment = createSelector([getDeviceById, getDeploymentsById], (device, deploymentsById) => {\n const { config = {} } = device;\n const { deployment_id: configDeploymentId = '' } = config;\n const deviceConfigDeployment = deploymentsById[configDeploymentId] ?? {};\n return { device, deviceConfigDeployment };\n});\n\nexport const getDeploymentRelease = createSelector(\n [getDeploymentsById, getDeploymentsSelectionState, getReleasesById],\n (deploymentsById, { selectedId = '' }, releasesById) => {\n const deployment = deploymentsById[selectedId] ?? {};\n return deployment?.artifact_name && releasesById[deployment.artifact_name] ? releasesById[deployment.artifact_name] : { device_types_compatible: [] };\n }\n);\n\nexport const getSelectedDeploymentData = createSelector(\n [getDeploymentsById, getDeploymentsSelectionState, getDevicesById, getSelectedDeploymentDeviceIds],\n (deploymentsById, { selectedId = '' }, devicesById, selectedDeviceIds) => {\n const deployment = deploymentsById[selectedId] ?? {};\n const { devices = {} } = deployment as Deployment;\n return {\n deployment,\n selectedDevices: selectedDeviceIds.map(deviceId => ({ ...devicesById[deviceId], ...(devices[deviceId] ?? {}) }))\n };\n }\n);\n\nexport const getAvailableIssueOptionsByType = createSelector([getTenantCapabilities, getIssueCountsByType], ({ hasFullFiltering, hasMonitor }, issueCounts) =>\n Object.values<DeviceIssueOption>(DEVICE_ISSUE_OPTIONS).reduce(\n (accu, { isCategory, key, needsFullFiltering, needsMonitor, title }) => {\n if (isCategory || (needsFullFiltering && !hasFullFiltering) || (needsMonitor && !hasMonitor)) {\n return accu;\n }\n accu[key] = { count: issueCounts[key].filtered, key, title };\n return accu;\n },\n {} as Record<string, { count: number; key: string; title: string }>\n )\n);\n\nexport const getGroupNames = createSelector([getGroupsById, getUserRoles], (groupsById, { uiPermissions }) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [UNGROUPED_GROUP.id]: ungrouped, ...groups } = groupsById;\n return Object.keys(\n Object.entries(groups).reduce(\n (accu, [groupName, group]) => {\n if (group.filters || uiPermissions.groups[ALL_DEVICES]) {\n accu[groupName] = group;\n }\n return accu;\n },\n { ...uiPermissions.groups } as Record<string, DeviceGroup>\n )\n ).sort();\n});\n\nexport const getDeviceReportsForUser = createSelector(\n [getUserSettings, getCurrentUser, getGlobalSettings, getDevicesById],\n ({ reports }, { id: currentUserId }, globalSettings, devicesById) =>\n reports || globalSettings[`${currentUserId}-reports`] || (Object.keys(devicesById).length ? defaultReports : [])\n);\n\nconst listTypeDeviceIdMap = {\n deviceList: getListedDevices,\n search: getSearchedDevices\n};\nconst deviceMapDefault = { defaultObject: { auth_sets: [] }, cutOffSize: DEVICE_LIST_MAXIMUM_LENGTH };\nconst getDeviceMappingDefaults = () => deviceMapDefault;\n\nexport const getMappedDevicesList = createSelector(\n [getDevicesById, (state, listType) => listTypeDeviceIdMap[listType](state), getDeviceMappingDefaults],\n listItemMapper\n);\n\nexport const getAuditlogDevice = createSelector([getAuditLogEntry, getDevicesById], (auditlogEvent, devicesById) => {\n let auditlogDevice: Partial<Device> = {};\n if (auditlogEvent) {\n const { object } = auditlogEvent as AuditLogEvent;\n const objectData = object as AuditLogEvent['object'] | undefined;\n if (objectData?.type === 'device' && objectData.id) {\n auditlogDevice = { id: objectData.id, ...(objectData.device ?? {}) } as Device;\n }\n }\n return { ...auditlogDevice, ...(auditlogDevice.id ? devicesById[auditlogDevice.id] : {}) };\n});\n\ntype RoleItem = Role | { value: string };\nexport const getRelevantRoles = createSelector([getOrganization, getRolesList], ({ service_provider }, roles) => {\n if (service_provider) {\n return roles.reduce(\n (accu, role) => {\n if (rolesById[role.value as keyof typeof rolesById]) {\n return accu;\n }\n accu.push(role);\n return accu;\n },\n [...Object.values(serviceProviderRolesById)] as RoleItem[]\n );\n }\n return Object.keys(rolesById)\n .reverse()\n .reduce((accu, key) => {\n const index = accu.findIndex(({ value }) => value === key);\n if (index >= 0) {\n accu = [accu[index], ...accu.filter((_, itemIndex) => index !== itemIndex)];\n }\n return accu;\n }, roles);\n});\n\nexport const getShowSecurityAlert = createSelector(\n [getCurrentUser, getHas2FA, getFeatures, getIsEnterprise, getUserSettingsInitialized, getSecurityAlertDismissedTimestamp],\n (currentUser, has2FA, features, isEnterprise, settingsInitialized, dismissedTimestamp) => {\n const isOAuth2 = !!currentUser?.sso?.length;\n const userVerified = !!currentUser.verified;\n\n const isHosted = features?.isHosted;\n const canHave2FA = isEnterprise || isHosted;\n const secureOAuthUser = isOAuth2 && userVerified;\n if (!currentUser || !settingsInitialized || has2FA || !canHave2FA || secureOAuthUser) {\n return false;\n }\n\n if (dismissedTimestamp === null) {\n return true;\n }\n\n const today = dayjs();\n const dismissedMonthAgo = today.diff(dismissedTimestamp, 'months');\n\n return dismissedMonthAgo > 0;\n }\n);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commonSelectors.js","names":["getDemoDeviceAddressHelper"],"sources":["../src/commonSelectors.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 type { AuditLog as AuditLogEvent } from '@northern.tech/types/types.gen';\nimport type { DeviceIssueOption } from '@northern.tech/utils/constants';\nimport { attributeDuplicateFilter, getDemoDeviceAddress as getDemoDeviceAddressHelper } from '@northern.tech/utils/helpers';\nimport { createSelector } from '@reduxjs/toolkit';\nimport dayjs from 'dayjs';\n\nimport { ADDONS, PLANS, defaultReports } from './appSlice/constants';\nimport { getFeatures, getSearchedDevices } from './appSlice/selectors';\nimport { ATTRIBUTE_SCOPE_LABELS, DEVICE_LIST_MAXIMUM_LENGTH, UNGROUPED_GROUP } from './commonConstants';\nimport { ALL_DEVICES, ATTRIBUTE_SCOPES, DEVICE_ISSUE_OPTIONS, rolesById, rolesByName, serviceProviderRolesById, uiPermissionsById } from './constants';\nimport type { Role } from './constants';\nimport type { Deployment } from './deploymentsSlice';\nimport { getDeploymentsById, getDeploymentsSelectionState, getSelectedDeploymentDeviceIds } from './deploymentsSlice/selectors';\nimport type { Device, DeviceGroup } from './devicesSlice';\nimport { getDeviceById, getDevicesById, getFilteringAttributes, getGroupsById, getListedDevices } from './devicesSlice/selectors';\nimport { getIssueCountsByType } from './monitorSlice/selectors';\nimport { onboardingSteps } from './onboardingSlice/constants';\nimport { getOnboarding } from './onboardingSlice/selectors';\nimport { getAuditLogEntry, getIsServiceProvider, getOrganization } from './organizationSlice/selectors';\nimport { getReleasesById } from './releasesSlice/selectors';\nimport {\n getCurrentUser,\n getGlobalSettings,\n getHas2FA,\n getRolesById,\n getRolesList,\n getSecurityAlertDismissedTimestamp,\n getUserSettings,\n getUserSettingsInitialized\n} from './usersSlice/selectors';\nimport { getAttributeScopeLabel, listItemMapper, mapUserRolesToUiPermissions, stripOrchestratorManifestPrefix } from './utils';\n\nexport const getIsEnterprise = createSelector(\n [getOrganization, getFeatures],\n ({ plan = PLANS.os.id }, { isEnterprise, isHosted }) => isEnterprise || (isHosted && plan === PLANS.enterprise.id)\n);\n\nexport const getUserRoles = createSelector([getCurrentUser, getRolesById, getIsEnterprise], (currentUser, rolesById, isEnterprise) => {\n const isAdmin = currentUser.roles?.length ? currentUser.roles.some(role => role === rolesByName.admin) : !isEnterprise;\n const uiPermissions = isAdmin ? mapUserRolesToUiPermissions([rolesByName.admin], rolesById) : mapUserRolesToUiPermissions(currentUser.roles || [], rolesById);\n return { isAdmin, uiPermissions };\n});\n\nconst hasPermission = (thing: Record<string, string[]>, permission: string): boolean =>\n Object.values(thing).some(permissions => permissions.includes(permission));\n\nexport const getUserCapabilities = createSelector([getUserRoles, getIsServiceProvider], ({ uiPermissions }, isServiceProvider) => {\n const canManageReleases = hasPermission(uiPermissions.releases, uiPermissionsById.manage.value);\n const canReadReleases = canManageReleases || hasPermission(uiPermissions.releases, uiPermissionsById.read.value);\n const canUploadReleases = canManageReleases || hasPermission(uiPermissions.releases, uiPermissionsById.upload.value);\n\n const canAuditlog = uiPermissions.auditlog.includes(uiPermissionsById.read.value);\n\n const canReadUsers = uiPermissions.userManagement.includes(uiPermissionsById.read.value);\n const canManageUsers = uiPermissions.userManagement.includes(uiPermissionsById.manage.value);\n\n const canReadDevices = hasPermission(uiPermissions.groups, uiPermissionsById.read.value);\n const canWriteDevices = Object.values(uiPermissions.groups).some(\n groupPermissions => groupPermissions.includes(uiPermissionsById.read.value) && groupPermissions.length > 1\n );\n const canTroubleshoot = hasPermission(uiPermissions.groups, uiPermissionsById.connect.value);\n const canManageDevices = hasPermission(uiPermissions.groups, uiPermissionsById.manage.value);\n const canConfigure = hasPermission(uiPermissions.groups, uiPermissionsById.configure.value);\n\n const canDeploy =\n (uiPermissions.deployments?.includes(uiPermissionsById.deploy.value) ?? false) || hasPermission(uiPermissions.groups, uiPermissionsById.deploy.value);\n const canReadDeployments = uiPermissions.deployments?.includes(uiPermissionsById.read.value) ?? false;\n\n return {\n canAuditlog,\n canConfigure,\n canDeploy,\n canManageDevices,\n canManageReleases,\n canManageUsers,\n canReadDeployments,\n canReadDevices,\n canReadReleases,\n canReadUsers,\n canTroubleshoot,\n canUploadReleases,\n canWriteDevices,\n groupsPermissions: uiPermissions.groups,\n releasesPermissions: uiPermissions.releases,\n SPTenant: isServiceProvider\n };\n});\n\nexport const getTenantCapabilities = createSelector(\n [getFeatures, getOrganization, getIsEnterprise],\n (\n {\n hasAuditlogs: isAuditlogEnabled,\n hasDeviceConfig: isDeviceConfigEnabled,\n hasDeviceConnect: isDeviceConnectEnabled,\n hasMonitor: isMonitorEnabled,\n isHosted\n },\n { addons = [], plan = PLANS.os.id },\n isEnterprise\n ) => {\n const canDelta = isEnterprise || plan === PLANS.professional.id;\n const hasAuditlogs = isAuditlogEnabled && isEnterprise;\n const hasDeviceConfig = addons.some(addon => addon.name === ADDONS.configure.id && addon.enabled) || (isDeviceConfigEnabled && !isHosted);\n const hasDeviceConnect = addons.some(addon => addon.name === ADDONS.troubleshoot.id && addon.enabled) || (isDeviceConnectEnabled && !isHosted);\n const hasMonitor = isMonitorEnabled && addons.some(addon => addon.name === ADDONS.monitor.id && addon.enabled);\n return {\n canDelta,\n canRetry: canDelta,\n canSchedule: canDelta,\n hasAuditlogs,\n hasDeviceConfig,\n hasDeviceConnect,\n hasFullFiltering: canDelta,\n hasMonitor,\n isEnterprise,\n plan\n };\n }\n);\n\nexport const getFilterAttributes = createSelector(\n [getGlobalSettings, getFilteringAttributes],\n ({ previousFilters }, { identityAttributes, inventoryAttributes, systemAttributes, tagAttributes }) => {\n const deviceNameAttribute = { key: 'name', value: 'Name', scope: ATTRIBUTE_SCOPES.tags, category: ATTRIBUTE_SCOPES.tags, priority: 1 };\n const deviceIdAttribute = { key: 'id', value: 'Device ID', scope: ATTRIBUTE_SCOPES.identity, category: ATTRIBUTE_SCOPES.identity, priority: 1 };\n const checkInAttribute = {\n key: 'check_in_time',\n value: 'Latest activity',\n scope: ATTRIBUTE_SCOPES.system,\n category: ATTRIBUTE_SCOPE_LABELS.default,\n priority: 4\n };\n const updateAttribute = { ...checkInAttribute, key: 'updated_ts', value: 'Last inventory update' };\n const firstRequestAttribute = {\n key: 'created_ts',\n value: 'First request',\n scope: ATTRIBUTE_SCOPES.system,\n category: ATTRIBUTE_SCOPE_LABELS.default,\n priority: 4\n };\n const attributes = [\n ...previousFilters.map(item => ({\n ...item,\n value: deviceIdAttribute.key === item.key ? deviceIdAttribute.value : stripOrchestratorManifestPrefix(item.key),\n category: 'recently used',\n priority: 0\n })),\n deviceNameAttribute,\n deviceIdAttribute,\n ...identityAttributes.map(item => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.identity, category: ATTRIBUTE_SCOPES.identity, priority: 1 })),\n ...inventoryAttributes.map(item => {\n const category = getAttributeScopeLabel({ key: item, scope: ATTRIBUTE_SCOPES.inventory });\n return {\n key: item,\n value: stripOrchestratorManifestPrefix(item),\n scope: ATTRIBUTE_SCOPES.inventory,\n category,\n priority: category === ATTRIBUTE_SCOPES.inventory ? 2 : 3\n };\n }),\n ...tagAttributes.map(item => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.tags, category: ATTRIBUTE_SCOPES.tags, priority: 3 })),\n checkInAttribute,\n updateAttribute,\n firstRequestAttribute,\n ...systemAttributes.map(item => ({ key: item, value: item, scope: ATTRIBUTE_SCOPES.system, category: ATTRIBUTE_SCOPE_LABELS.default, priority: 4 }))\n ];\n return attributeDuplicateFilter(attributes, 'key');\n }\n);\n\nexport const getOnboardingState = createSelector([getOnboarding, getUserSettings], ({ complete, progress, showTips, ...remainder }, { onboarding = {} }) => ({\n ...remainder,\n ...onboarding,\n complete: onboarding.complete || complete,\n progress:\n Object.keys(onboardingSteps).findIndex(step => step === progress) > Object.keys(onboardingSteps).findIndex(step => step === onboarding.progress)\n ? progress\n : onboarding.progress,\n showTips: !onboarding.showTips ? onboarding.showTips : showTips\n}));\n\nexport const getDemoDeviceAddress = createSelector([getDevicesById, getOnboarding], (devicesById, { approach, demoArtifactPort }) => {\n const demoDeviceAddress = `http://${getDemoDeviceAddressHelper(Object.values(devicesById), approach)}`;\n return demoArtifactPort ? `${demoDeviceAddress}:${demoArtifactPort}` : demoDeviceAddress;\n});\n\nexport const getDeviceConfigDeployment = createSelector([getDeviceById, getDeploymentsById], (device, deploymentsById) => {\n const { config = {} } = device;\n const { deployment_id: configDeploymentId = '' } = config;\n const deviceConfigDeployment = deploymentsById[configDeploymentId] ?? {};\n return { device, deviceConfigDeployment };\n});\n\nexport const getDeploymentRelease = createSelector(\n [getDeploymentsById, getDeploymentsSelectionState, getReleasesById],\n (deploymentsById, { selectedId = '' }, releasesById) => {\n const deployment = deploymentsById[selectedId] ?? {};\n return deployment?.artifact_name && releasesById[deployment.artifact_name] ? releasesById[deployment.artifact_name] : { device_types_compatible: [] };\n }\n);\n\nexport const getSelectedDeploymentData = createSelector(\n [getDeploymentsById, getDeploymentsSelectionState, getDevicesById, getSelectedDeploymentDeviceIds],\n (deploymentsById, { selectedId = '' }, devicesById, selectedDeviceIds) => {\n const deployment = deploymentsById[selectedId] ?? {};\n const { devices = {} } = deployment as Deployment;\n return {\n deployment,\n selectedDevices: selectedDeviceIds.map(deviceId => ({ ...devicesById[deviceId], ...(devices[deviceId] ?? {}) }))\n };\n }\n);\n\nexport const getAvailableIssueOptionsByType = createSelector([getTenantCapabilities, getIssueCountsByType], ({ hasFullFiltering, hasMonitor }, issueCounts) =>\n Object.values<DeviceIssueOption>(DEVICE_ISSUE_OPTIONS).reduce(\n (accu, { isCategory, key, needsFullFiltering, needsMonitor, title }) => {\n if (isCategory || (needsFullFiltering && !hasFullFiltering) || (needsMonitor && !hasMonitor)) {\n return accu;\n }\n accu[key] = { count: issueCounts[key].filtered, key, title };\n return accu;\n },\n {} as Record<string, { count: number; key: string; title: string }>\n )\n);\n\nexport const getGroupNames = createSelector([getGroupsById, getUserRoles], (groupsById, { uiPermissions }) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [UNGROUPED_GROUP.id]: ungrouped, ...groups } = groupsById;\n return Object.keys(\n Object.entries(groups).reduce(\n (accu, [groupName, group]) => {\n if (group.filters || uiPermissions.groups[ALL_DEVICES]) {\n accu[groupName] = group;\n }\n return accu;\n },\n { ...uiPermissions.groups } as Record<string, DeviceGroup>\n )\n ).sort();\n});\n\nexport const getDeviceReportsForUser = createSelector(\n [getUserSettings, getCurrentUser, getGlobalSettings, getDevicesById],\n ({ reports }, { id: currentUserId }, globalSettings, devicesById) =>\n reports || globalSettings[`${currentUserId}-reports`] || (Object.keys(devicesById).length ? defaultReports : [])\n);\n\nconst listTypeDeviceIdMap = {\n deviceList: getListedDevices,\n search: getSearchedDevices\n};\nconst deviceMapDefault = { defaultObject: { auth_sets: [] }, cutOffSize: DEVICE_LIST_MAXIMUM_LENGTH };\nconst getDeviceMappingDefaults = () => deviceMapDefault;\n\nexport const getMappedDevicesList = createSelector(\n [getDevicesById, (state, listType) => listTypeDeviceIdMap[listType](state), getDeviceMappingDefaults],\n listItemMapper\n);\n\nexport const getAuditlogDevice = createSelector([getAuditLogEntry, getDevicesById], (auditlogEvent, devicesById) => {\n let auditlogDevice: Partial<Device> = {};\n if (auditlogEvent) {\n const { object } = auditlogEvent as AuditLogEvent;\n const objectData = object as AuditLogEvent['object'] | undefined;\n if (objectData?.type === 'device' && objectData.id) {\n auditlogDevice = { id: objectData.id, ...(objectData.device ?? {}) } as Device;\n }\n }\n return { ...auditlogDevice, ...(auditlogDevice.id ? devicesById[auditlogDevice.id] : {}) };\n});\n\ntype RoleItem = Role | { value: string };\nexport const getRelevantRoles = createSelector([getOrganization, getRolesList], ({ service_provider }, roles) => {\n if (service_provider) {\n return roles.reduce(\n (accu, role) => {\n if (rolesById[role.value as keyof typeof rolesById]) {\n return accu;\n }\n accu.push(role);\n return accu;\n },\n [...Object.values(serviceProviderRolesById)] as RoleItem[]\n );\n }\n return Object.keys(rolesById)\n .reverse()\n .reduce((accu, key) => {\n const index = accu.findIndex(({ value }) => value === key);\n if (index >= 0) {\n accu = [accu[index], ...accu.filter((_, itemIndex) => index !== itemIndex)];\n }\n return accu;\n }, roles);\n});\n\nexport const getShowSecurityAlert = createSelector(\n [getCurrentUser, getHas2FA, getFeatures, getIsEnterprise, getUserSettingsInitialized, getSecurityAlertDismissedTimestamp],\n (currentUser, has2FA, features, isEnterprise, settingsInitialized, dismissedTimestamp) => {\n const isOAuth2 = !!currentUser?.sso?.length;\n const userVerified = !!currentUser.verified;\n\n const isHosted = features?.isHosted;\n const canHave2FA = isEnterprise || isHosted;\n const secureOAuthUser = isOAuth2 && userVerified;\n if (!currentUser || !settingsInitialized || has2FA || !canHave2FA || secureOAuthUser) {\n return false;\n }\n\n if (dismissedTimestamp === null) {\n return true;\n }\n\n const today = dayjs();\n const dismissedMonthAgo = today.diff(dismissedTimestamp, 'months');\n\n return dismissedMonthAgo > 0;\n }\n);\n"],"mappings":"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"}
|
|
@@ -33,10 +33,7 @@ type PermissionsArea = {
|
|
|
33
33
|
title: string;
|
|
34
34
|
uiPermissions: UiPermission[];
|
|
35
35
|
};
|
|
36
|
-
declare const itemUiPermissionsReducer: (accu: any, {
|
|
37
|
-
item,
|
|
38
|
-
uiPermissions
|
|
39
|
-
}: {
|
|
36
|
+
declare const itemUiPermissionsReducer: (accu: any, { item, uiPermissions }: {
|
|
40
37
|
item: any;
|
|
41
38
|
uiPermissions: any;
|
|
42
39
|
}) => any;
|
|
@@ -54,4 +51,4 @@ declare const READ_STATES: {
|
|
|
54
51
|
type ReadState = keyof typeof READ_STATES;
|
|
55
52
|
//#endregion
|
|
56
53
|
export { USER_LOGOUT as a, itemUiPermissionsReducer as c, ReadState as i, settingsKeys as l, PermissionsArea as n, UiPermission as o, READ_STATES as r, checkPermissionsObject as s, OWN_USER_ID as t };
|
|
57
|
-
//# sourceMappingURL=constants-
|
|
54
|
+
//# sourceMappingURL=constants-B3Jdkn2b.d.cts.map
|
|
@@ -33,10 +33,7 @@ type PermissionsArea = {
|
|
|
33
33
|
title: string;
|
|
34
34
|
uiPermissions: UiPermission[];
|
|
35
35
|
};
|
|
36
|
-
declare const itemUiPermissionsReducer: (accu: any, {
|
|
37
|
-
item,
|
|
38
|
-
uiPermissions
|
|
39
|
-
}: {
|
|
36
|
+
declare const itemUiPermissionsReducer: (accu: any, { item, uiPermissions }: {
|
|
40
37
|
item: any;
|
|
41
38
|
uiPermissions: any;
|
|
42
39
|
}) => any;
|
|
@@ -54,4 +51,4 @@ declare const READ_STATES: {
|
|
|
54
51
|
type ReadState = keyof typeof READ_STATES;
|
|
55
52
|
//#endregion
|
|
56
53
|
export { USER_LOGOUT as a, itemUiPermissionsReducer as c, ReadState as i, settingsKeys as l, PermissionsArea as n, UiPermission as o, READ_STATES as r, checkPermissionsObject as s, OWN_USER_ID as t };
|
|
57
|
-
//# sourceMappingURL=constants-
|
|
54
|
+
//# sourceMappingURL=constants-B3Jdkn2b.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import "./constants-C6TIYaY4.js";
|
|
2
|
+
import { ALL_DEVICES, ALL_DEVICE_STATES, ALL_RELEASES, APPLICATION_JSON_CONTENT_TYPE, APPLICATION_JWT_CONTENT_TYPE, ATTRIBUTE_SCOPES, AnyPermission, AuditLogPermission, DEVICE_FILTERING_OPTIONS, DEVICE_ISSUE_OPTIONS, DEVICE_LIST_DEFAULTS, DEVICE_STATES, DeploymentPermission, DeviceIssueOptionKey, GroupsPermission, PaginationOptions, PermissionObject, PermissionSet, PermissionSetId, PermissionTypes, ReleasesPermission, Role, SORTING_OPTIONS, ScopedPermissionsByAreaKey, SortOptions, UiPermissionsByAreaKey, UiPermissionsByIdKey, UiPermissionsDefinition, UserManagementPermission, alertChannels, apiRoot, apiUrl, auditLogsApiUrl, defaultPermissionSets, deploymentsApiUrl, deploymentsApiUrlV1alpha1, deploymentsApiUrlV2, deviceAuthV2, deviceConfig, deviceConnect, emptyRole, emptyUiPermissions, headerNames, inventoryApiUrl, inventoryApiUrlV2, inventoryApiUrlV2alpha1, iotManagerBaseURL, limitDefault, maxSessionAge, monitorApiUrlv1, rolesById, rolesByName, scopedPermissionAreas, serviceProviderRolesById, ssoIdpApiUrlv1, tenantadmApiUrlv1, tenantadmApiUrlv2, twoFAStates, uiPermissionsByArea, uiPermissionsById, useradmApiUrl, useradmApiUrlv1, useradmApiUrlv2 } from "@northern.tech/utils/constants";
|
|
2
3
|
import { Integration } from "@northern.tech/types/MenderTypes";
|
|
3
|
-
|
|
4
4
|
//#region src/commonConstants.d.ts
|
|
5
5
|
declare const timeUnits: {
|
|
6
6
|
days: string;
|
|
@@ -120,5 +120,5 @@ declare const REPORT_CHART_SIZE_LIMIT = 6;
|
|
|
120
120
|
//#region src/monitorSlice/constants.d.ts
|
|
121
121
|
type AlertChannelKey = keyof typeof alertChannels;
|
|
122
122
|
//#endregion
|
|
123
|
-
export {
|
|
124
|
-
//# sourceMappingURL=constants-
|
|
123
|
+
export { scopedPermissionAreas as $, alertChannels as A, countries as At, deviceConnect as B, SORTING_OPTIONS as C, FilterOperator as Ct, UiPermissionsByIdKey as D, TIMEOUTS as Dt, UiPermissionsByAreaKey as E, ORCHESTRATOR_MANIFEST_ATTRIBUTE_PREFIX as Et, deploymentsApiUrl as F, timeUnits as Ft, inventoryApiUrlV2 as G, emptyUiPermissions as H, deploymentsApiUrlV1alpha1 as I, limitDefault as J, inventoryApiUrlV2alpha1 as K, deploymentsApiUrlV2 as L, apiUrl as M, defaultIdAttribute as Mt, auditLogsApiUrl as N, emptyWebhook as Nt, UiPermissionsDefinition as O, UNGROUPED_GROUP as Ot, defaultPermissionSets as P, productOrder as Pt, rolesByName as Q, deviceAuthV2 as R, Role as S, EXTERNAL_PROVIDER as St, SortOptions as T, MAX_PAGE_SIZE as Tt, headerNames as U, emptyRole as V, inventoryApiUrl as W, monitorApiUrlv1 as X, maxSessionAge as Y, rolesById as Z, PermissionObject as _, emptyFilter as _t, APPLICATION_JWT_CONTENT_TYPE as a, uiPermissionsByArea as at, PermissionTypes as b, DEVICE_LIST_MAXIMUM_LENGTH as bt, AuditLogPermission as c, useradmApiUrlv1 as ct, DEVICE_LIST_DEFAULTS as d, DEVICE_CONNECT_STATES as dt, serviceProviderRolesById as et, DEVICE_STATES as f, DEVICE_DISMISSAL_STATE as ft, PaginationOptions as g, REPORT_CHART_SIZE_LIMIT as gt, GroupsPermission as h, DeviceAuthState as ht, APPLICATION_JSON_CONTENT_TYPE as i, twoFAStates as it, apiRoot as j, credentialTypes as jt, UserManagementPermission as k, Webhook as kt, DEVICE_FILTERING_OPTIONS as l, useradmApiUrlv2 as lt, DeviceIssueOptionKey as m, DEVICE_MESSAGE_TYPES as mt, ALL_DEVICE_STATES as n, tenantadmApiUrlv1 as nt, ATTRIBUTE_SCOPES as o, uiPermissionsById as ot, DeploymentPermission as p, DEVICE_MESSAGE_PROTOCOLS as pt, iotManagerBaseURL as q, ALL_RELEASES as r, tenantadmApiUrlv2 as rt, AnyPermission as s, useradmApiUrl as st, ALL_DEVICES as t, ssoIdpApiUrlv1 as tt, DEVICE_ISSUE_OPTIONS as u, AlertChannelKey as ut, PermissionSet as v, geoAttributes as vt, ScopedPermissionsByAreaKey as w, IdAttribute as wt, ReleasesPermission as x, DEVICE_ONLINE_CUTOFF as xt, PermissionSetId as y, ATTRIBUTE_SCOPE_LABELS as yt, deviceConfig as z };
|
|
124
|
+
//# sourceMappingURL=constants-B_H4squx.d.ts.map
|