@northern.tech/store 0.4.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/actions.js +4 -4
  2. package/dist/api/general-api.js +2 -2
  3. package/dist/api/users-api.js +2 -2
  4. package/dist/appSlice/constants.cjs +2 -10
  5. package/dist/appSlice/constants.cjs.map +1 -1
  6. package/dist/appSlice/constants.d.cts +0 -2
  7. package/dist/appSlice/constants.d.ts +0 -2
  8. package/dist/appSlice/constants.js +1 -1
  9. package/dist/appSlice/index.js +2 -2
  10. package/dist/appSlice/mocks.js +2 -2
  11. package/dist/appSlice/selectors.cjs +6 -0
  12. package/dist/appSlice/selectors.cjs.map +1 -1
  13. package/dist/appSlice/selectors.d.cts +3 -1
  14. package/dist/appSlice/selectors.d.ts +3 -1
  15. package/dist/appSlice/selectors.js +5 -1
  16. package/dist/appSlice/thunks.cjs +8 -3
  17. package/dist/appSlice/thunks.cjs.map +1 -1
  18. package/dist/appSlice/thunks.js +16 -16
  19. package/dist/auth.js +2 -2
  20. package/dist/{chunk-ZRSYBSSY.js → chunk-4E7ZSEFL.js} +2 -2
  21. package/dist/{chunk-X4GUACQO.js → chunk-6XVREXI4.js} +2 -2
  22. package/dist/{chunk-URNS6A5T.js → chunk-7PRZYHDP.js} +4 -4
  23. package/dist/{chunk-MBKAZVE3.js → chunk-BYUPW7RA.js} +5 -1
  24. package/dist/chunk-BYUPW7RA.js.map +1 -0
  25. package/dist/{chunk-ZN5TB2NJ.js → chunk-FQW72QFK.js} +23 -17
  26. package/dist/chunk-FQW72QFK.js.map +1 -0
  27. package/dist/{chunk-OHF3YUXX.js → chunk-HFOTAPIJ.js} +3 -11
  28. package/dist/chunk-HFOTAPIJ.js.map +1 -0
  29. package/dist/{chunk-CW5T6OGF.js → chunk-MPYYSFPL.js} +5 -5
  30. package/dist/{chunk-IQG5I7AM.js → chunk-NQIP7VFB.js} +14 -14
  31. package/dist/{chunk-XWYJACQC.js → chunk-QEKN5R7E.js} +2 -2
  32. package/dist/{chunk-N2KLYPS5.js → chunk-YWHRAPDQ.js} +6 -6
  33. package/dist/{chunk-4TUJPE6G.js → chunk-YY6SKZDF.js} +2 -2
  34. package/dist/chunk-YY6SKZDF.js.map +1 -0
  35. package/dist/{chunk-JUGE7L3K.js → chunk-ZIUUV35J.js} +5 -5
  36. package/dist/commonConstants.js +2 -2
  37. package/dist/commonSelectors.cjs +1 -1
  38. package/dist/commonSelectors.cjs.map +1 -1
  39. package/dist/commonSelectors.js +10 -10
  40. package/dist/constants.cjs +2 -10
  41. package/dist/constants.cjs.map +1 -1
  42. package/dist/constants.js +2 -2
  43. package/dist/deploymentsSlice/constants.js +2 -2
  44. package/dist/deploymentsSlice/index.js +2 -2
  45. package/dist/deploymentsSlice/mocks.js +2 -2
  46. package/dist/deploymentsSlice/selectors.js +2 -2
  47. package/dist/deploymentsSlice/thunks.cjs +8 -3
  48. package/dist/deploymentsSlice/thunks.cjs.map +1 -1
  49. package/dist/deploymentsSlice/thunks.js +16 -16
  50. package/dist/devicesSlice/constants.js +2 -2
  51. package/dist/devicesSlice/index.js +2 -2
  52. package/dist/devicesSlice/mocks.js +2 -2
  53. package/dist/devicesSlice/selectors.js +2 -2
  54. package/dist/devicesSlice/thunks.cjs +8 -3
  55. package/dist/devicesSlice/thunks.cjs.map +1 -1
  56. package/dist/devicesSlice/thunks.js +16 -16
  57. package/dist/liststatehook.js +2 -2
  58. package/dist/locationutils.js +2 -2
  59. package/dist/monitorSlice/index.js +2 -2
  60. package/dist/monitorSlice/mocks.js +2 -2
  61. package/dist/monitorSlice/thunks.cjs +1 -1
  62. package/dist/monitorSlice/thunks.cjs.map +1 -1
  63. package/dist/monitorSlice/thunks.js +14 -14
  64. package/dist/onboardingSlice/thunks.cjs +8 -3
  65. package/dist/onboardingSlice/thunks.cjs.map +1 -1
  66. package/dist/onboardingSlice/thunks.js +16 -16
  67. package/dist/organizationSlice/constants.js +2 -2
  68. package/dist/organizationSlice/index.js +2 -2
  69. package/dist/organizationSlice/mocks.js +2 -2
  70. package/dist/organizationSlice/selectors.cjs +1 -1
  71. package/dist/organizationSlice/selectors.cjs.map +1 -1
  72. package/dist/organizationSlice/selectors.js +3 -3
  73. package/dist/organizationSlice/thunks.cjs +12 -15
  74. package/dist/organizationSlice/thunks.cjs.map +1 -1
  75. package/dist/organizationSlice/thunks.js +16 -16
  76. package/dist/releasesSlice/index.js +2 -2
  77. package/dist/releasesSlice/mocks.js +2 -2
  78. package/dist/releasesSlice/selectors.js +4 -4
  79. package/dist/releasesSlice/thunks.cjs +1 -1
  80. package/dist/releasesSlice/thunks.cjs.map +1 -1
  81. package/dist/releasesSlice/thunks.js +14 -14
  82. package/dist/selectors.cjs +7 -1
  83. package/dist/selectors.cjs.map +1 -1
  84. package/dist/selectors.d.cts +1 -1
  85. package/dist/selectors.d.ts +1 -1
  86. package/dist/selectors.js +23 -19
  87. package/dist/sockethook.js +2 -2
  88. package/dist/store.js +5 -5
  89. package/dist/storehooks.cjs +13 -16
  90. package/dist/storehooks.cjs.map +1 -1
  91. package/dist/storehooks.js +17 -17
  92. package/dist/storehooks.js.map +1 -1
  93. package/dist/thunks.cjs +14 -15
  94. package/dist/thunks.cjs.map +1 -1
  95. package/dist/thunks.d.cts +1 -1
  96. package/dist/thunks.d.ts +1 -1
  97. package/dist/thunks.js +18 -16
  98. package/dist/useDeploymentDevice.cjs +11 -5
  99. package/dist/useDeploymentDevice.cjs.map +1 -1
  100. package/dist/useDeploymentDevice.js +18 -17
  101. package/dist/useDeploymentDevice.js.map +1 -1
  102. package/dist/usersSlice/constants.js +2 -2
  103. package/dist/usersSlice/index.js +2 -2
  104. package/dist/usersSlice/mocks.js +2 -2
  105. package/dist/usersSlice/selectors.cjs.map +1 -1
  106. package/dist/usersSlice/selectors.js +4 -4
  107. package/dist/usersSlice/thunks.cjs +10 -3
  108. package/dist/usersSlice/thunks.cjs.map +1 -1
  109. package/dist/usersSlice/thunks.d.cts +11 -1
  110. package/dist/usersSlice/thunks.d.ts +11 -1
  111. package/dist/usersSlice/thunks.js +18 -16
  112. package/dist/utils.cjs.map +1 -1
  113. package/dist/utils.js +3 -3
  114. package/package.json +1 -1
  115. package/dist/chunk-4TUJPE6G.js.map +0 -1
  116. package/dist/chunk-MBKAZVE3.js.map +0 -1
  117. package/dist/chunk-OHF3YUXX.js.map +0 -1
  118. package/dist/chunk-ZN5TB2NJ.js.map +0 -1
  119. package/dist/flag-eu-5477R2P4.svg +0 -130
  120. package/dist/flag-us-HNQAF66I.svg +0 -63
  121. /package/dist/{chunk-ZRSYBSSY.js.map → chunk-4E7ZSEFL.js.map} +0 -0
  122. /package/dist/{chunk-X4GUACQO.js.map → chunk-6XVREXI4.js.map} +0 -0
  123. /package/dist/{chunk-URNS6A5T.js.map → chunk-7PRZYHDP.js.map} +0 -0
  124. /package/dist/{chunk-CW5T6OGF.js.map → chunk-MPYYSFPL.js.map} +0 -0
  125. /package/dist/{chunk-IQG5I7AM.js.map → chunk-NQIP7VFB.js.map} +0 -0
  126. /package/dist/{chunk-XWYJACQC.js.map → chunk-QEKN5R7E.js.map} +0 -0
  127. /package/dist/{chunk-N2KLYPS5.js.map → chunk-YWHRAPDQ.js.map} +0 -0
  128. /package/dist/{chunk-JUGE7L3K.js.map → chunk-ZIUUV35J.js.map} +0 -0
package/dist/actions.js CHANGED
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  actions_default
3
- } from "./chunk-URNS6A5T.js";
3
+ } from "./chunk-7PRZYHDP.js";
4
4
  import "./chunk-OOICURFL.js";
5
5
  import "./chunk-UGSLGUS6.js";
6
6
  import "./chunk-MZNANSS2.js";
7
+ import "./chunk-PGFVHKP5.js";
7
8
  import "./chunk-VANBSJS5.js";
8
9
  import "./chunk-VUFRP6P3.js";
9
- import "./chunk-PGFVHKP5.js";
10
10
  import "./chunk-6KGTHJKC.js";
11
11
  import "./chunk-ABJLRDCO.js";
12
12
  import "./chunk-7C4SQBEE.js";
13
13
  import "./chunk-2DYA3X77.js";
14
- import "./chunk-ZKAH3APE.js";
15
14
  import "./chunk-FAJ3I2UQ.js";
16
- import "./chunk-OHF3YUXX.js";
15
+ import "./chunk-ZKAH3APE.js";
16
+ import "./chunk-HFOTAPIJ.js";
17
17
  export {
18
18
  actions_default as default
19
19
  };
@@ -6,9 +6,9 @@ import {
6
6
  import "../chunk-ZJW3QIPM.js";
7
7
  import "../chunk-7C4SQBEE.js";
8
8
  import "../chunk-2DYA3X77.js";
9
- import "../chunk-ZKAH3APE.js";
10
9
  import "../chunk-FAJ3I2UQ.js";
11
- import "../chunk-OHF3YUXX.js";
10
+ import "../chunk-ZKAH3APE.js";
11
+ import "../chunk-HFOTAPIJ.js";
12
12
  export {
13
13
  authenticatedRequest,
14
14
  commonRequestConfig,
@@ -5,9 +5,9 @@ import "../chunk-RS37Y2PQ.js";
5
5
  import "../chunk-ZJW3QIPM.js";
6
6
  import "../chunk-7C4SQBEE.js";
7
7
  import "../chunk-2DYA3X77.js";
8
- import "../chunk-ZKAH3APE.js";
9
8
  import "../chunk-FAJ3I2UQ.js";
10
- import "../chunk-OHF3YUXX.js";
9
+ import "../chunk-ZKAH3APE.js";
10
+ import "../chunk-HFOTAPIJ.js";
11
11
  export {
12
12
  users_api_default as default
13
13
  };
@@ -36,14 +36,6 @@ __export(constants_exports, {
36
36
  });
37
37
  module.exports = __toCommonJS(constants_exports);
38
38
  var import_icons_material = require("@mui/icons-material");
39
-
40
- // ../../assets/img/flag-eu.svg
41
- var flag_eu_default = "../flag-eu-5477R2P4.svg";
42
-
43
- // ../../assets/img/flag-us.svg
44
- var flag_us_default = "../flag-us-HNQAF66I.svg";
45
-
46
- // src/appSlice/constants.ts
47
39
  var startingDeviceCount = {
48
40
  os: "for first 50 devices",
49
41
  professional: "for first 250 devices"
@@ -57,8 +49,8 @@ var defaultReportType = "distribution";
57
49
  var defaultReports = [{ ...emptyChartSelection, group: null, attribute: "artifact_name", type: defaultReportType }];
58
50
  var BEGINNING_OF_TIME = "2016-01-01T00:00:00.000Z";
59
51
  var locations = {
60
- eu: { key: "eu", title: "EU", location: "eu.hosted.mender.io", icon: flag_eu_default },
61
- us: { key: "us", title: "US", location: "hosted.mender.io", icon: flag_us_default }
52
+ eu: { key: "eu", title: "EU", location: "eu.hosted.mender.io" },
53
+ us: { key: "us", title: "US", location: "hosted.mender.io" }
62
54
  };
63
55
  var PLANS = {
64
56
  os: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/appSlice/constants.ts"],"sourcesContent":["// Copyright 2019 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { BarChart as BarChartIcon, PieChartOutline as PieChartIcon } from '@mui/icons-material';\n\n// @ts-ignore\nimport FlagEU from '../../../../assets/img/flag-eu.svg';\n// @ts-ignore\nimport FlagUS from '../../../../assets/img/flag-us.svg';\n\nconst startingDeviceCount = {\n os: 'for first 50 devices',\n professional: 'for first 250 devices'\n} as const;\n\nexport const chartTypes = {\n bar: { key: 'bar', Icon: BarChartIcon },\n pie: { key: 'pie', Icon: PieChartIcon }\n} as const;\nexport const emptyChartSelection = { software: '', group: '', chartType: chartTypes.bar.key, attribute: 'artifact_name' };\nexport const defaultReportType = 'distribution';\nexport const defaultReports = [{ ...emptyChartSelection, group: null, attribute: 'artifact_name', type: defaultReportType }];\n\nexport const BEGINNING_OF_TIME = '2016-01-01T00:00:00.000Z';\n\nexport const locations = {\n eu: { key: 'eu', title: 'EU', location: 'eu.hosted.mender.io', icon: FlagEU },\n us: { key: 'us', title: 'US', location: 'hosted.mender.io', icon: FlagUS }\n} as const;\nexport type AvailablePlans = 'os' | 'professional' | 'enterprise';\n\nexport type Plan = {\n description: string;\n deviceCount: string;\n features: string[];\n id: AvailablePlans;\n minimalDeviceCount: number;\n name: string;\n offer?: boolean;\n offerprice?: string;\n price: string;\n price2?: string;\n};\n\nexport type AvailableAddon = 'configure' | 'troubleshoot' | 'monitor';\n\nexport const PLANS: { [key in AvailablePlans]: Plan } = {\n os: {\n id: 'os',\n name: 'Basic',\n minimalDeviceCount: 50,\n offer: true,\n price: '$34 / month',\n deviceCount: startingDeviceCount.os,\n description:\n 'The core features of Mender. To continue using Enterprise Trial features—like Delta updates, scheduled deployments, phased rollouts, device filtering, dynamic groups, RBAC, audit logs, and more—please upgrade to a higher plan.',\n features: ['Access to core features of Mender', 'Basic support']\n },\n professional: {\n id: 'professional',\n name: 'Professional',\n minimalDeviceCount: 250,\n offer: true,\n price: '$291 / month',\n deviceCount: startingDeviceCount.professional,\n description: 'Everything in Basic, plus enhanced update management and automation features.',\n features: ['Advanced OTA features', 'Higher priority support']\n },\n enterprise: {\n id: 'enterprise',\n name: 'Enterprise',\n minimalDeviceCount: 1000,\n price: 'Custom pricing',\n deviceCount: 'Unlimited devices',\n description:\n 'Every advanced feature of Mender, tailored for complex and large-scale deployments. Not available as a monthly subscription — ask us for a quote.',\n features: ['All Mender features', 'Advanced security features', 'SLA-backed support']\n }\n} as const;\nexport type Addon = {\n description: string;\n eligible: AvailablePlans[];\n id: string;\n needs: string[];\n title: string;\n} & {\n [key in Exclude<AvailablePlans, 'enterprise'>]: {\n deviceCount: string;\n price: string;\n };\n};\n\nexport type AddonId = keyof typeof ADDONS;\n\n// the needs names need to be aligned with the name of the features in the appReducer, as they will be checked in the addonselection\nexport const ADDONS: { [key in AvailableAddon]: Addon } = {\n configure: {\n id: 'configure',\n title: 'Configure',\n description: 'Expand your plan with device configuration features',\n needs: ['hasDeviceConfig'],\n os: {\n price: '$11/month',\n deviceCount: startingDeviceCount.os\n },\n professional: {\n price: '$65/month',\n deviceCount: startingDeviceCount.professional\n },\n eligible: ['os', 'professional', 'enterprise']\n },\n monitor: {\n id: 'monitor',\n title: 'Monitor',\n description: 'Expand your plan with device monitoring features',\n needs: ['hasMonitor'],\n os: {\n price: '-',\n deviceCount: '-'\n },\n professional: {\n price: '$86/month',\n deviceCount: startingDeviceCount.professional\n },\n eligible: ['professional', 'enterprise']\n },\n troubleshoot: {\n id: 'troubleshoot',\n title: 'Troubleshoot',\n description: 'Expand your plan with device troubleshooting features',\n needs: ['hasDeviceConnect'],\n os: {\n price: '$27/month',\n deviceCount: startingDeviceCount.os\n },\n professional: {\n price: '$72/month',\n deviceCount: startingDeviceCount.professional\n },\n eligible: ['os', 'professional', 'enterprise']\n }\n};\n\nexport const BENEFITS = {\n auditlog: { id: 'auditlog', benefit: 'trace change across your devices and access troubleshooting session replay', requiredPlan: PLANS.professional.id },\n dashboard: { id: 'dashboard', benefit: 'actionable insights into the devices you are updating with Mender', requiredPlan: PLANS.enterprise.id },\n deltaGeneration: {\n id: 'deltaGeneration',\n benefit: 'automatic delta artifacts generation to minimize data transfer and improve the update delivery',\n requiredPlan: PLANS.enterprise.id\n },\n deviceConfiguration: { id: 'deviceConfiguration', benefit: 'device configuration features', requiredAddon: ADDONS.configure.id },\n deviceMonitor: { id: 'deviceMonitor', benefit: 'device monitoring features', requiredAddon: ADDONS.monitor.id, requiredPlan: PLANS.professional.id },\n deviceTroubleshoot: { id: 'deviceTroubleshoot', benefit: 'device troubleshooting features', requiredAddon: ADDONS.troubleshoot.id },\n dynamicGroups: { id: 'dynamicGroups', benefit: 'create dynamic groups to ease device management', requiredPlan: PLANS.enterprise.id },\n fullFiltering: { id: 'fullFiltering', benefit: 'filtering by multiple attributes to improve the device overview', requiredPlan: PLANS.professional.id },\n gateway: { id: 'gateway', benefit: 'see devices connected to your gateway device for easy access', requiredPlans: PLANS.professional.id },\n pausedDeployments: {\n id: 'pausedDeployments',\n benefit: 'granular control about update rollout to allow synchronization across your fleet',\n requiredPlan: PLANS.enterprise.id\n },\n phasedDeployments: { id: 'phasedDeployments', benefit: 'choose to roll out deployments in multiple phases', requiredPlan: PLANS.enterprise.id },\n rbac: { id: 'rbac', benefit: 'granular role based access control', requiredPlan: PLANS.enterprise.id },\n retryDeployments: { id: 'retryDeployments', benefit: 'optional retries for failed rollout attempts', requiredPlan: PLANS.professional.id },\n scheduledDeployments: {\n id: 'scheduledDeployments',\n benefit: 'scheduled deployments to steer the distribution of your updates.',\n requiredPlan: PLANS.professional.id\n },\n webhookEvents: {\n id: 'webhookEvents',\n benefit: 'receive inventory events and select which type(s) of events the webhook will receive',\n requiredPlan: PLANS.professional.id\n },\n\n default: { id: 'default', benefit: 'gain access to this feature', requiredPlan: PLANS.enterprise.id }\n} as const;\n\nexport const yes = () => true;\nexport const canAccess = yes;\n\nexport const DARK_MODE = 'dark';\nexport const LIGHT_MODE = 'light';\n"],"mappings":"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","names":["BarChartIcon","PieChartIcon"]}
1
+ {"version":3,"sources":["../../src/appSlice/constants.ts"],"sourcesContent":["// Copyright 2019 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { BarChart as BarChartIcon, PieChartOutline as PieChartIcon } from '@mui/icons-material';\n\nconst startingDeviceCount = {\n os: 'for first 50 devices',\n professional: 'for first 250 devices'\n} as const;\n\nexport const chartTypes = {\n bar: { key: 'bar', Icon: BarChartIcon },\n pie: { key: 'pie', Icon: PieChartIcon }\n} as const;\nexport const emptyChartSelection = { software: '', group: '', chartType: chartTypes.bar.key, attribute: 'artifact_name' };\nexport const defaultReportType = 'distribution';\nexport const defaultReports = [{ ...emptyChartSelection, group: null, attribute: 'artifact_name', type: defaultReportType }];\n\nexport const BEGINNING_OF_TIME = '2016-01-01T00:00:00.000Z';\n\nexport const locations = {\n eu: { key: 'eu', title: 'EU', location: 'eu.hosted.mender.io' },\n us: { key: 'us', title: 'US', location: 'hosted.mender.io' }\n} as const;\nexport type AvailablePlans = 'os' | 'professional' | 'enterprise';\n\nexport type Plan = {\n description: string;\n deviceCount: string;\n features: string[];\n id: AvailablePlans;\n minimalDeviceCount: number;\n name: string;\n offer?: boolean;\n offerprice?: string;\n price: string;\n price2?: string;\n};\n\nexport type AvailableAddon = 'configure' | 'troubleshoot' | 'monitor';\n\nexport const PLANS: { [key in AvailablePlans]: Plan } = {\n os: {\n id: 'os',\n name: 'Basic',\n minimalDeviceCount: 50,\n offer: true,\n price: '$34 / month',\n deviceCount: startingDeviceCount.os,\n description:\n 'The core features of Mender. To continue using Enterprise Trial features—like Delta updates, scheduled deployments, phased rollouts, device filtering, dynamic groups, RBAC, audit logs, and more—please upgrade to a higher plan.',\n features: ['Access to core features of Mender', 'Basic support']\n },\n professional: {\n id: 'professional',\n name: 'Professional',\n minimalDeviceCount: 250,\n offer: true,\n price: '$291 / month',\n deviceCount: startingDeviceCount.professional,\n description: 'Everything in Basic, plus enhanced update management and automation features.',\n features: ['Advanced OTA features', 'Higher priority support']\n },\n enterprise: {\n id: 'enterprise',\n name: 'Enterprise',\n minimalDeviceCount: 1000,\n price: 'Custom pricing',\n deviceCount: 'Unlimited devices',\n description:\n 'Every advanced feature of Mender, tailored for complex and large-scale deployments. Not available as a monthly subscription — ask us for a quote.',\n features: ['All Mender features', 'Advanced security features', 'SLA-backed support']\n }\n} as const;\nexport type Addon = {\n description: string;\n eligible: AvailablePlans[];\n id: string;\n needs: string[];\n title: string;\n} & {\n [key in Exclude<AvailablePlans, 'enterprise'>]: {\n deviceCount: string;\n price: string;\n };\n};\n\nexport type AddonId = keyof typeof ADDONS;\n\n// the needs names need to be aligned with the name of the features in the appReducer, as they will be checked in the addonselection\nexport const ADDONS: { [key in AvailableAddon]: Addon } = {\n configure: {\n id: 'configure',\n title: 'Configure',\n description: 'Expand your plan with device configuration features',\n needs: ['hasDeviceConfig'],\n os: {\n price: '$11/month',\n deviceCount: startingDeviceCount.os\n },\n professional: {\n price: '$65/month',\n deviceCount: startingDeviceCount.professional\n },\n eligible: ['os', 'professional', 'enterprise']\n },\n monitor: {\n id: 'monitor',\n title: 'Monitor',\n description: 'Expand your plan with device monitoring features',\n needs: ['hasMonitor'],\n os: {\n price: '-',\n deviceCount: '-'\n },\n professional: {\n price: '$86/month',\n deviceCount: startingDeviceCount.professional\n },\n eligible: ['professional', 'enterprise']\n },\n troubleshoot: {\n id: 'troubleshoot',\n title: 'Troubleshoot',\n description: 'Expand your plan with device troubleshooting features',\n needs: ['hasDeviceConnect'],\n os: {\n price: '$27/month',\n deviceCount: startingDeviceCount.os\n },\n professional: {\n price: '$72/month',\n deviceCount: startingDeviceCount.professional\n },\n eligible: ['os', 'professional', 'enterprise']\n }\n};\n\nexport const BENEFITS = {\n auditlog: { id: 'auditlog', benefit: 'trace change across your devices and access troubleshooting session replay', requiredPlan: PLANS.professional.id },\n dashboard: { id: 'dashboard', benefit: 'actionable insights into the devices you are updating with Mender', requiredPlan: PLANS.enterprise.id },\n deltaGeneration: {\n id: 'deltaGeneration',\n benefit: 'automatic delta artifacts generation to minimize data transfer and improve the update delivery',\n requiredPlan: PLANS.enterprise.id\n },\n deviceConfiguration: { id: 'deviceConfiguration', benefit: 'device configuration features', requiredAddon: ADDONS.configure.id },\n deviceMonitor: { id: 'deviceMonitor', benefit: 'device monitoring features', requiredAddon: ADDONS.monitor.id, requiredPlan: PLANS.professional.id },\n deviceTroubleshoot: { id: 'deviceTroubleshoot', benefit: 'device troubleshooting features', requiredAddon: ADDONS.troubleshoot.id },\n dynamicGroups: { id: 'dynamicGroups', benefit: 'create dynamic groups to ease device management', requiredPlan: PLANS.enterprise.id },\n fullFiltering: { id: 'fullFiltering', benefit: 'filtering by multiple attributes to improve the device overview', requiredPlan: PLANS.professional.id },\n gateway: { id: 'gateway', benefit: 'see devices connected to your gateway device for easy access', requiredPlans: PLANS.professional.id },\n pausedDeployments: {\n id: 'pausedDeployments',\n benefit: 'granular control about update rollout to allow synchronization across your fleet',\n requiredPlan: PLANS.enterprise.id\n },\n phasedDeployments: { id: 'phasedDeployments', benefit: 'choose to roll out deployments in multiple phases', requiredPlan: PLANS.enterprise.id },\n rbac: { id: 'rbac', benefit: 'granular role based access control', requiredPlan: PLANS.enterprise.id },\n retryDeployments: { id: 'retryDeployments', benefit: 'optional retries for failed rollout attempts', requiredPlan: PLANS.professional.id },\n scheduledDeployments: {\n id: 'scheduledDeployments',\n benefit: 'scheduled deployments to steer the distribution of your updates.',\n requiredPlan: PLANS.professional.id\n },\n webhookEvents: {\n id: 'webhookEvents',\n benefit: 'receive inventory events and select which type(s) of events the webhook will receive',\n requiredPlan: PLANS.professional.id\n },\n\n default: { id: 'default', benefit: 'gain access to this feature', requiredPlan: PLANS.enterprise.id }\n} as const;\n\nexport const yes = () => true;\nexport const canAccess = yes;\n\nexport const DARK_MODE = 'dark';\nexport const LIGHT_MODE = 'light';\n"],"mappings":"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","names":["BarChartIcon","PieChartIcon"]}
@@ -35,13 +35,11 @@ declare const locations: {
35
35
  readonly key: "eu";
36
36
  readonly title: "EU";
37
37
  readonly location: "eu.hosted.mender.io";
38
- readonly icon: any;
39
38
  };
40
39
  readonly us: {
41
40
  readonly key: "us";
42
41
  readonly title: "US";
43
42
  readonly location: "hosted.mender.io";
44
- readonly icon: any;
45
43
  };
46
44
  };
47
45
  type AvailablePlans = 'os' | 'professional' | 'enterprise';
@@ -35,13 +35,11 @@ declare const locations: {
35
35
  readonly key: "eu";
36
36
  readonly title: "EU";
37
37
  readonly location: "eu.hosted.mender.io";
38
- readonly icon: any;
39
38
  };
40
39
  readonly us: {
41
40
  readonly key: "us";
42
41
  readonly title: "US";
43
42
  readonly location: "hosted.mender.io";
44
- readonly icon: any;
45
43
  };
46
44
  };
47
45
  type AvailablePlans = 'os' | 'professional' | 'enterprise';
@@ -12,7 +12,7 @@ import {
12
12
  emptyChartSelection,
13
13
  locations,
14
14
  yes
15
- } from "../chunk-OHF3YUXX.js";
15
+ } from "../chunk-HFOTAPIJ.js";
16
16
  export {
17
17
  ADDONS,
18
18
  BEGINNING_OF_TIME,
@@ -7,9 +7,9 @@ import {
7
7
  } from "../chunk-6KGTHJKC.js";
8
8
  import "../chunk-7C4SQBEE.js";
9
9
  import "../chunk-2DYA3X77.js";
10
- import "../chunk-ZKAH3APE.js";
11
10
  import "../chunk-FAJ3I2UQ.js";
12
- import "../chunk-OHF3YUXX.js";
11
+ import "../chunk-ZKAH3APE.js";
12
+ import "../chunk-HFOTAPIJ.js";
13
13
  export {
14
14
  actions,
15
15
  appSlice,
@@ -3,9 +3,9 @@ import {
3
3
  } from "../chunk-6KGTHJKC.js";
4
4
  import "../chunk-7C4SQBEE.js";
5
5
  import "../chunk-2DYA3X77.js";
6
- import "../chunk-ZKAH3APE.js";
7
6
  import "../chunk-FAJ3I2UQ.js";
8
- import "../chunk-OHF3YUXX.js";
7
+ import "../chunk-ZKAH3APE.js";
8
+ import "../chunk-HFOTAPIJ.js";
9
9
 
10
10
  // src/appSlice/mocks.ts
11
11
  var mockState = {
@@ -20,6 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/appSlice/selectors.ts
21
21
  var selectors_exports = {};
22
22
  __export(selectors_exports, {
23
+ getCommit: () => getCommit,
23
24
  getDocsVersion: () => getDocsVersion,
24
25
  getFeatures: () => getFeatures,
25
26
  getFeedbackProbability: () => getFeedbackProbability,
@@ -32,6 +33,7 @@ __export(selectors_exports, {
32
33
  getRecaptchaKey: () => getRecaptchaKey,
33
34
  getSearchState: () => getSearchState,
34
35
  getSearchedDevices: () => getSearchedDevices,
36
+ getSentryConfig: () => getSentryConfig,
35
37
  getSnackbar: () => getSnackbar,
36
38
  getStripeKey: () => getStripeKey,
37
39
  getTrackerCode: () => getTrackerCode,
@@ -52,6 +54,8 @@ var getHostedAnnouncement = (state) => state.app.hostedAnnouncement;
52
54
  var getRecaptchaKey = (state) => state.app.recaptchaSiteKey;
53
55
  var getStripeKey = (state) => state.app.stripeAPIKey;
54
56
  var getTrackerCode = (state) => state.app.trackerCode;
57
+ var getSentryConfig = (state) => state.app.sentry;
58
+ var getCommit = (state) => state.app.commit;
55
59
  var getIsFirstLogin = (state) => state.app.firstLoginAfterSignup;
56
60
  var getFeedbackProbability = (state) => state.app.feedbackProbability;
57
61
  var getIsUploading = (0, import_toolkit.createSelector)([getUploads], (uploadsById) => !!Object.keys(uploadsById).length);
@@ -63,6 +67,7 @@ var getVersionInformation = (0, import_toolkit.createSelector)(
63
67
  var getIsPreview = (0, import_toolkit.createSelector)([getFullVersionInformation], ({ Integration }) => (0, import_helpers.versionCompare)(Integration, "next") > -1);
64
68
  // Annotate the CommonJS export names for ESM import in node:
65
69
  0 && (module.exports = {
70
+ getCommit,
66
71
  getDocsVersion,
67
72
  getFeatures,
68
73
  getFeedbackProbability,
@@ -75,6 +80,7 @@ var getIsPreview = (0, import_toolkit.createSelector)([getFullVersionInformation
75
80
  getRecaptchaKey,
76
81
  getSearchState,
77
82
  getSearchedDevices,
83
+ getSentryConfig,
78
84
  getSnackbar,
79
85
  getStripeKey,
80
86
  getTrackerCode,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/appSlice/selectors.ts"],"sourcesContent":["// Copyright 2023 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { versionCompare } from '@northern.tech/utils/helpers';\nimport { createSelector } from '@reduxjs/toolkit';\n\nimport type { RootState } from '../store';\n\nexport const getDocsVersion = (state: RootState) => state.app.docsVersion;\nexport const getFeatures = (state: RootState) => state.app.features;\nexport const getFullVersionInformation = (state: RootState) => state.app.versionInformation;\nexport const getSearchState = (state: RootState) => state.app.searchState;\nexport const getUploads = (state: RootState) => state.app.uploadsById;\nexport const getSnackbar = (state: RootState) => state.app.snackbar;\nexport const getHostAddress = (state: RootState) => state.app.hostAddress;\nexport const getHostedAnnouncement = (state: RootState) => state.app.hostedAnnouncement;\nexport const getRecaptchaKey = (state: RootState) => state.app.recaptchaSiteKey;\nexport const getStripeKey = (state: RootState) => state.app.stripeAPIKey;\nexport const getTrackerCode = (state: RootState) => state.app.trackerCode;\nexport const getIsFirstLogin = (state: RootState) => state.app.firstLoginAfterSignup;\nexport const getFeedbackProbability = (state: RootState) => state.app.feedbackProbability;\n\nexport const getIsUploading = createSelector([getUploads], uploadsById => !!Object.keys(uploadsById).length);\nexport const getSearchedDevices = createSelector([getSearchState], ({ deviceIds }) => deviceIds);\nexport const getVersionInformation = createSelector([getFullVersionInformation, getFeatures], ({ Integration, ...remainder }, { isHosted }) =>\n isHosted && Integration !== 'next' ? remainder : { ...remainder, Integration }\n);\nexport const getIsPreview = createSelector([getFullVersionInformation], ({ Integration }) => versionCompare(Integration, 'next') > -1);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaA,qBAA+B;AAC/B,qBAA+B;AAIxB,IAAM,iBAAiB,CAAC,UAAqB,MAAM,IAAI;AACvD,IAAM,cAAc,CAAC,UAAqB,MAAM,IAAI;AACpD,IAAM,4BAA4B,CAAC,UAAqB,MAAM,IAAI;AAClE,IAAM,iBAAiB,CAAC,UAAqB,MAAM,IAAI;AACvD,IAAM,aAAa,CAAC,UAAqB,MAAM,IAAI;AACnD,IAAM,cAAc,CAAC,UAAqB,MAAM,IAAI;AACpD,IAAM,iBAAiB,CAAC,UAAqB,MAAM,IAAI;AACvD,IAAM,wBAAwB,CAAC,UAAqB,MAAM,IAAI;AAC9D,IAAM,kBAAkB,CAAC,UAAqB,MAAM,IAAI;AACxD,IAAM,eAAe,CAAC,UAAqB,MAAM,IAAI;AACrD,IAAM,iBAAiB,CAAC,UAAqB,MAAM,IAAI;AACvD,IAAM,kBAAkB,CAAC,UAAqB,MAAM,IAAI;AACxD,IAAM,yBAAyB,CAAC,UAAqB,MAAM,IAAI;AAE/D,IAAM,qBAAiB,+BAAe,CAAC,UAAU,GAAG,iBAAe,CAAC,CAAC,OAAO,KAAK,WAAW,EAAE,MAAM;AACpG,IAAM,yBAAqB,+BAAe,CAAC,cAAc,GAAG,CAAC,EAAE,UAAU,MAAM,SAAS;AACxF,IAAM,4BAAwB;AAAA,EAAe,CAAC,2BAA2B,WAAW;AAAA,EAAG,CAAC,EAAE,aAAa,GAAG,UAAU,GAAG,EAAE,SAAS,MACvI,YAAY,gBAAgB,SAAS,YAAY,EAAE,GAAG,WAAW,YAAY;AAC/E;AACO,IAAM,mBAAe,+BAAe,CAAC,yBAAyB,GAAG,CAAC,EAAE,YAAY,UAAM,+BAAe,aAAa,MAAM,IAAI,EAAE;","names":[]}
1
+ {"version":3,"sources":["../../src/appSlice/selectors.ts"],"sourcesContent":["// Copyright 2023 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { versionCompare } from '@northern.tech/utils/helpers';\nimport { createSelector } from '@reduxjs/toolkit';\n\nimport type { RootState } from '../store';\n\nexport const getDocsVersion = (state: RootState) => state.app.docsVersion;\nexport const getFeatures = (state: RootState) => state.app.features;\nexport const getFullVersionInformation = (state: RootState) => state.app.versionInformation;\nexport const getSearchState = (state: RootState) => state.app.searchState;\nexport const getUploads = (state: RootState) => state.app.uploadsById;\nexport const getSnackbar = (state: RootState) => state.app.snackbar;\nexport const getHostAddress = (state: RootState) => state.app.hostAddress;\nexport const getHostedAnnouncement = (state: RootState) => state.app.hostedAnnouncement;\nexport const getRecaptchaKey = (state: RootState) => state.app.recaptchaSiteKey;\nexport const getStripeKey = (state: RootState) => state.app.stripeAPIKey;\nexport const getTrackerCode = (state: RootState) => state.app.trackerCode;\nexport const getSentryConfig = (state: RootState) => state.app.sentry;\nexport const getCommit = (state: RootState) => state.app.commit;\nexport const getIsFirstLogin = (state: RootState) => state.app.firstLoginAfterSignup;\nexport const getFeedbackProbability = (state: RootState) => state.app.feedbackProbability;\n\nexport const getIsUploading = createSelector([getUploads], uploadsById => !!Object.keys(uploadsById).length);\nexport const getSearchedDevices = createSelector([getSearchState], ({ deviceIds }) => deviceIds);\nexport const getVersionInformation = createSelector([getFullVersionInformation, getFeatures], ({ Integration, ...remainder }, { isHosted }) =>\n isHosted && Integration !== 'next' ? remainder : { ...remainder, Integration }\n);\nexport const getIsPreview = createSelector([getFullVersionInformation], ({ Integration }) => versionCompare(Integration, 'next') > -1);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaA,qBAA+B;AAC/B,qBAA+B;AAIxB,IAAM,iBAAiB,CAAC,UAAqB,MAAM,IAAI;AACvD,IAAM,cAAc,CAAC,UAAqB,MAAM,IAAI;AACpD,IAAM,4BAA4B,CAAC,UAAqB,MAAM,IAAI;AAClE,IAAM,iBAAiB,CAAC,UAAqB,MAAM,IAAI;AACvD,IAAM,aAAa,CAAC,UAAqB,MAAM,IAAI;AACnD,IAAM,cAAc,CAAC,UAAqB,MAAM,IAAI;AACpD,IAAM,iBAAiB,CAAC,UAAqB,MAAM,IAAI;AACvD,IAAM,wBAAwB,CAAC,UAAqB,MAAM,IAAI;AAC9D,IAAM,kBAAkB,CAAC,UAAqB,MAAM,IAAI;AACxD,IAAM,eAAe,CAAC,UAAqB,MAAM,IAAI;AACrD,IAAM,iBAAiB,CAAC,UAAqB,MAAM,IAAI;AACvD,IAAM,kBAAkB,CAAC,UAAqB,MAAM,IAAI;AACxD,IAAM,YAAY,CAAC,UAAqB,MAAM,IAAI;AAClD,IAAM,kBAAkB,CAAC,UAAqB,MAAM,IAAI;AACxD,IAAM,yBAAyB,CAAC,UAAqB,MAAM,IAAI;AAE/D,IAAM,qBAAiB,+BAAe,CAAC,UAAU,GAAG,iBAAe,CAAC,CAAC,OAAO,KAAK,WAAW,EAAE,MAAM;AACpG,IAAM,yBAAqB,+BAAe,CAAC,cAAc,GAAG,CAAC,EAAE,UAAU,MAAM,SAAS;AACxF,IAAM,4BAAwB;AAAA,EAAe,CAAC,2BAA2B,WAAW;AAAA,EAAG,CAAC,EAAE,aAAa,GAAG,UAAU,GAAG,EAAE,SAAS,MACvI,YAAY,gBAAgB,SAAS,YAAY,EAAE,GAAG,WAAW,YAAY;AAC/E;AACO,IAAM,mBAAe,+BAAe,CAAC,yBAAyB,GAAG,CAAC,EAAE,YAAY,UAAM,+BAAe,aAAa,MAAM,IAAI,EAAE;","names":[]}
@@ -45,6 +45,8 @@ declare const getHostedAnnouncement: (state: RootState) => string;
45
45
  declare const getRecaptchaKey: (state: RootState) => string;
46
46
  declare const getStripeKey: (state: RootState) => string;
47
47
  declare const getTrackerCode: (state: RootState) => string;
48
+ declare const getSentryConfig: (state: RootState) => SentryConfig;
49
+ declare const getCommit: (state: RootState) => string;
48
50
  declare const getIsFirstLogin: (state: RootState) => boolean;
49
51
  declare const getFeedbackProbability: (state: RootState) => number;
50
52
  declare const getIsUploading: ((state: {
@@ -774,4 +776,4 @@ declare const getIsPreview: ((state: {
774
776
  argsMemoize: typeof reselect.weakMapMemoize;
775
777
  };
776
778
 
777
- export { getDocsVersion, getFeatures, getFeedbackProbability, getFullVersionInformation, getHostAddress, getHostedAnnouncement, getIsFirstLogin, getIsPreview, getIsUploading, getRecaptchaKey, getSearchState, getSearchedDevices, getSnackbar, getStripeKey, getTrackerCode, getUploads, getVersionInformation };
779
+ export { getCommit, getDocsVersion, getFeatures, getFeedbackProbability, getFullVersionInformation, getHostAddress, getHostedAnnouncement, getIsFirstLogin, getIsPreview, getIsUploading, getRecaptchaKey, getSearchState, getSearchedDevices, getSentryConfig, getSnackbar, getStripeKey, getTrackerCode, getUploads, getVersionInformation };
@@ -45,6 +45,8 @@ declare const getHostedAnnouncement: (state: RootState) => string;
45
45
  declare const getRecaptchaKey: (state: RootState) => string;
46
46
  declare const getStripeKey: (state: RootState) => string;
47
47
  declare const getTrackerCode: (state: RootState) => string;
48
+ declare const getSentryConfig: (state: RootState) => SentryConfig;
49
+ declare const getCommit: (state: RootState) => string;
48
50
  declare const getIsFirstLogin: (state: RootState) => boolean;
49
51
  declare const getFeedbackProbability: (state: RootState) => number;
50
52
  declare const getIsUploading: ((state: {
@@ -774,4 +776,4 @@ declare const getIsPreview: ((state: {
774
776
  argsMemoize: typeof reselect.weakMapMemoize;
775
777
  };
776
778
 
777
- export { getDocsVersion, getFeatures, getFeedbackProbability, getFullVersionInformation, getHostAddress, getHostedAnnouncement, getIsFirstLogin, getIsPreview, getIsUploading, getRecaptchaKey, getSearchState, getSearchedDevices, getSnackbar, getStripeKey, getTrackerCode, getUploads, getVersionInformation };
779
+ export { getCommit, getDocsVersion, getFeatures, getFeedbackProbability, getFullVersionInformation, getHostAddress, getHostedAnnouncement, getIsFirstLogin, getIsPreview, getIsUploading, getRecaptchaKey, getSearchState, getSearchedDevices, getSentryConfig, getSnackbar, getStripeKey, getTrackerCode, getUploads, getVersionInformation };
@@ -1,4 +1,5 @@
1
1
  import {
2
+ getCommit,
2
3
  getDocsVersion,
3
4
  getFeatures,
4
5
  getFeedbackProbability,
@@ -11,13 +12,15 @@ import {
11
12
  getRecaptchaKey,
12
13
  getSearchState,
13
14
  getSearchedDevices,
15
+ getSentryConfig,
14
16
  getSnackbar,
15
17
  getStripeKey,
16
18
  getTrackerCode,
17
19
  getUploads,
18
20
  getVersionInformation
19
- } from "../chunk-MBKAZVE3.js";
21
+ } from "../chunk-BYUPW7RA.js";
20
22
  export {
23
+ getCommit,
21
24
  getDocsVersion,
22
25
  getFeatures,
23
26
  getFeedbackProbability,
@@ -30,6 +33,7 @@ export {
30
33
  getRecaptchaKey,
31
34
  getSearchState,
32
35
  getSearchedDevices,
36
+ getSentryConfig,
33
37
  getSnackbar,
34
38
  getStripeKey,
35
39
  getTrackerCode,
@@ -1146,7 +1146,7 @@ var getOnboarding = (state) => state.onboarding;
1146
1146
  // src/organizationSlice/selectors.ts
1147
1147
  var import_toolkit5 = require("@reduxjs/toolkit");
1148
1148
  var import_dayjs = __toESM(require("dayjs"), 1);
1149
- var import_relativeTime = __toESM(require("dayjs/plugin/relativeTime"), 1);
1149
+ var import_relativeTime = __toESM(require("dayjs/plugin/relativeTime.js"), 1);
1150
1150
  var getOrganization = (state) => state.organization.organization;
1151
1151
  var getExternalIntegrations = (state) => state.organization.externalDeviceIntegrations;
1152
1152
  var getAuditLog = (state) => state.organization.auditlog.events;
@@ -2405,10 +2405,11 @@ var createAppAsyncThunk = import_toolkit16.createAsyncThunk.withTypes();
2405
2405
  // src/deploymentsSlice/thunks.ts
2406
2406
  var import_helpers7 = require("@northern.tech/utils/helpers");
2407
2407
  var import_tracking = __toESM(require("@northern.tech/utils/tracking"), 1);
2408
- var import_isUUID = __toESM(require("validator/lib/isUUID"), 1);
2408
+ var import_validator = __toESM(require("validator"), 1);
2409
+ var { isUUID } = import_validator.default;
2409
2410
  var { receivedDevice, setSnackbar: setSnackbar2 } = actions_default;
2410
2411
  var { page: defaultPage, perPage: defaultPerPage } = import_constants5.DEVICE_LIST_DEFAULTS;
2411
- var deriveDeploymentGroup = ({ filter, group, groups = [], name }) => group || groups.length === 1 && !(0, import_isUUID.default)(name) ? groups[0] : filter?.name;
2412
+ var deriveDeploymentGroup = ({ filter, group, groups = [], name }) => group || groups.length === 1 && !isUUID(name) ? groups[0] : filter?.name;
2412
2413
  var transformDeployments = (deployments, deploymentsById) => deployments.sort((0, import_helpers7.customSort)(true, "created")).reduce(
2413
2414
  (accu, item) => {
2414
2415
  const filter = item.filter;
@@ -3920,6 +3921,10 @@ var editUser = createAppAsyncThunk(
3920
3921
  ])
3921
3922
  ).catch((err) => userActionErrorHandler(err, "edit", dispatch))
3922
3923
  );
3924
+ var checkEmailExists = createAppAsyncThunk(`${sliceName8}/checkEmailExists`, async (email) => {
3925
+ const response = await general_api_default.get(`${import_constants5.useradmApiUrl}/users/exists?email=${encodeURIComponent(email)}`);
3926
+ return response.data.exists;
3927
+ });
3923
3928
  var addUserToCurrentTenant = createAppAsyncThunk(`${sliceName8}/addUserToTenant`, (userId, { dispatch, getState }) => {
3924
3929
  const { id } = getOrganization(getState());
3925
3930
  return general_api_default.post(`${import_constants5.useradmApiUrl}/users/${userId}/assign`, { tenant_ids: [id] }).catch((err) => commonErrorHandler(err, `There was an error adding the user to your organization:`, dispatch)).then(() => Promise.all([dispatch(setSnackbar4(userActions.add.successMessage)), dispatch(getUserList())]));