@northern.tech/store 0.19.1 → 0.20.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.cjs +3 -0
- package/dist/actions.cjs.map +1 -1
- package/dist/actions.d.cts +2 -1
- package/dist/actions.d.ts +2 -1
- package/dist/actions.js +6 -6
- package/dist/api/general-api.js +2 -2
- package/dist/api/users-api.js +2 -2
- package/dist/appSlice/constants.cjs +11 -49
- package/dist/appSlice/constants.cjs.map +1 -1
- package/dist/appSlice/constants.d.cts +1 -16
- package/dist/appSlice/constants.d.ts +1 -16
- package/dist/appSlice/constants.js +1 -1
- package/dist/appSlice/index.js +2 -2
- package/dist/appSlice/mocks.js +2 -2
- package/dist/appSlice/thunks.cjs +30 -60
- package/dist/appSlice/thunks.cjs.map +1 -1
- package/dist/appSlice/thunks.js +17 -17
- package/dist/auth.js +2 -2
- package/dist/{chunk-QFYYTAYD.js → chunk-3JBVI4UH.js} +9 -9
- package/dist/{chunk-QL6FN2JC.js → chunk-4ZYLGBJU.js} +2 -2
- package/dist/{chunk-U5TPV5X5.js → chunk-7WIISD2N.js} +17 -14
- package/dist/{chunk-U5TPV5X5.js.map → chunk-7WIISD2N.js.map} +1 -1
- package/dist/{chunk-FUGCLQ5L.js → chunk-AY7E7VA6.js} +102 -28
- package/dist/chunk-AY7E7VA6.js.map +1 -0
- package/dist/{chunk-EL672W25.js → chunk-DBBE6D36.js} +12 -50
- package/dist/chunk-DBBE6D36.js.map +1 -0
- package/dist/{chunk-GBXG2XBY.js → chunk-E657OJL4.js} +6 -6
- package/dist/{chunk-MZ5NRW3K.js → chunk-FXKMYYK5.js} +17 -17
- package/dist/{chunk-KJHHSYGP.js → chunk-P3N2J3QT.js} +10 -10
- package/dist/{chunk-GEQ2QQEE.js → chunk-PL6RIFD5.js} +2 -2
- package/dist/{chunk-VCEFZTWS.js → chunk-TIL2S3JA.js} +4 -1
- package/dist/chunk-TIL2S3JA.js.map +1 -0
- package/dist/{chunk-C3EMLDPU.js → chunk-V6BWOIRC.js} +6 -6
- package/dist/{chunk-O7DR57RN.js → chunk-ZGRY42BZ.js} +9 -12
- package/dist/{chunk-O7DR57RN.js.map → chunk-ZGRY42BZ.js.map} +1 -1
- package/dist/{chunk-3NOV7X4M.js → chunk-ZZQJWNQT.js} +3 -1
- package/dist/chunk-ZZQJWNQT.js.map +1 -0
- package/dist/commonConstants.js +2 -2
- package/dist/commonSelectors.cjs +19 -60
- package/dist/commonSelectors.cjs.map +1 -1
- package/dist/commonSelectors.js +9 -9
- package/dist/constants.cjs +11 -49
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.js +2 -2
- package/dist/deploymentsSlice/constants.js +2 -2
- package/dist/deploymentsSlice/index.js +2 -2
- package/dist/deploymentsSlice/mocks.js +2 -2
- package/dist/deploymentsSlice/selectors.js +2 -2
- package/dist/deploymentsSlice/thunks.cjs +30 -60
- package/dist/deploymentsSlice/thunks.cjs.map +1 -1
- package/dist/deploymentsSlice/thunks.js +17 -17
- package/dist/devicesSlice/constants.js +2 -2
- package/dist/devicesSlice/index.js +2 -2
- package/dist/devicesSlice/mocks.js +2 -2
- package/dist/devicesSlice/selectors.cjs +8 -11
- package/dist/devicesSlice/selectors.cjs.map +1 -1
- package/dist/devicesSlice/selectors.js +3 -3
- package/dist/devicesSlice/thunks.cjs +32 -60
- package/dist/devicesSlice/thunks.cjs.map +1 -1
- package/dist/devicesSlice/thunks.d.cts +41 -3
- package/dist/devicesSlice/thunks.d.ts +41 -3
- package/dist/devicesSlice/thunks.js +19 -17
- package/dist/liststatehook.js +2 -2
- package/dist/locationutils.js +2 -2
- package/dist/monitorSlice/index.js +2 -2
- package/dist/monitorSlice/mocks.js +2 -2
- package/dist/monitorSlice/thunks.cjs +22 -60
- package/dist/monitorSlice/thunks.cjs.map +1 -1
- package/dist/monitorSlice/thunks.js +15 -15
- package/dist/onboardingSlice/thunks.cjs +30 -60
- package/dist/onboardingSlice/thunks.cjs.map +1 -1
- package/dist/onboardingSlice/thunks.js +17 -17
- package/dist/organizationSlice/constants.js +2 -2
- package/dist/organizationSlice/index.cjs +3 -0
- package/dist/organizationSlice/index.cjs.map +1 -1
- package/dist/organizationSlice/index.d.cts +4 -1
- package/dist/organizationSlice/index.d.ts +4 -1
- package/dist/organizationSlice/index.js +3 -3
- package/dist/organizationSlice/mocks.cjs +175 -0
- package/dist/organizationSlice/mocks.cjs.map +1 -1
- package/dist/organizationSlice/mocks.d.cts +121 -2
- package/dist/organizationSlice/mocks.d.ts +121 -2
- package/dist/organizationSlice/mocks.js +88 -3
- package/dist/organizationSlice/mocks.js.map +1 -1
- package/dist/organizationSlice/selectors.cjs +3 -0
- package/dist/organizationSlice/selectors.cjs.map +1 -1
- package/dist/organizationSlice/selectors.d.cts +3 -2
- package/dist/organizationSlice/selectors.d.ts +3 -2
- package/dist/organizationSlice/selectors.js +5 -3
- package/dist/organizationSlice/thunks.cjs +113 -75
- package/dist/organizationSlice/thunks.cjs.map +1 -1
- package/dist/organizationSlice/thunks.d.cts +17 -3
- package/dist/organizationSlice/thunks.d.ts +17 -3
- package/dist/organizationSlice/thunks.js +23 -19
- package/dist/organizationSlice/types.cjs.map +1 -1
- package/dist/organizationSlice/types.d.cts +30 -7
- package/dist/organizationSlice/types.d.ts +30 -7
- package/dist/releasesSlice/index.js +2 -2
- package/dist/releasesSlice/mocks.js +2 -2
- package/dist/releasesSlice/selectors.cjs.map +1 -1
- package/dist/releasesSlice/selectors.js +4 -4
- package/dist/releasesSlice/thunks.cjs +22 -60
- package/dist/releasesSlice/thunks.cjs.map +1 -1
- package/dist/releasesSlice/thunks.js +15 -15
- package/dist/selectors.cjs +22 -60
- package/dist/selectors.cjs.map +1 -1
- package/dist/selectors.d.cts +1 -1
- package/dist/selectors.d.ts +1 -1
- package/dist/selectors.js +39 -37
- package/dist/sockethook.js +2 -2
- package/dist/store.cjs +3 -0
- package/dist/store.cjs.map +1 -1
- package/dist/store.js +7 -7
- package/dist/storehooks.cjs +109 -74
- package/dist/storehooks.cjs.map +1 -1
- package/dist/storehooks.js +24 -22
- package/dist/storehooks.js.map +1 -1
- package/dist/thunks.cjs +113 -73
- 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 +23 -17
- package/dist/useDeploymentDevice.cjs +30 -60
- package/dist/useDeploymentDevice.cjs.map +1 -1
- package/dist/useDeploymentDevice.js +19 -19
- package/dist/usersSlice/constants.js +2 -2
- package/dist/usersSlice/index.js +2 -2
- package/dist/usersSlice/mocks.js +2 -2
- package/dist/usersSlice/selectors.cjs +11 -49
- package/dist/usersSlice/selectors.cjs.map +1 -1
- package/dist/usersSlice/selectors.js +4 -4
- package/dist/usersSlice/thunks.cjs +30 -60
- package/dist/usersSlice/thunks.cjs.map +1 -1
- package/dist/usersSlice/thunks.js +17 -17
- package/dist/utils.cjs +26 -61
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +1 -3
- package/dist/utils.d.ts +1 -3
- package/dist/utils.js +3 -3
- package/package.json +3 -3
- package/dist/chunk-3NOV7X4M.js.map +0 -1
- package/dist/chunk-EL672W25.js.map +0 -1
- package/dist/chunk-FUGCLQ5L.js.map +0 -1
- package/dist/chunk-VCEFZTWS.js.map +0 -1
- /package/dist/{chunk-QFYYTAYD.js.map → chunk-3JBVI4UH.js.map} +0 -0
- /package/dist/{chunk-QL6FN2JC.js.map → chunk-4ZYLGBJU.js.map} +0 -0
- /package/dist/{chunk-GBXG2XBY.js.map → chunk-E657OJL4.js.map} +0 -0
- /package/dist/{chunk-MZ5NRW3K.js.map → chunk-FXKMYYK5.js.map} +0 -0
- /package/dist/{chunk-KJHHSYGP.js.map → chunk-P3N2J3QT.js.map} +0 -0
- /package/dist/{chunk-GEQ2QQEE.js.map → chunk-PL6RIFD5.js.map} +0 -0
- /package/dist/{chunk-C3EMLDPU.js.map → chunk-V6BWOIRC.js.map} +0 -0
|
@@ -37,10 +37,6 @@ __export(constants_exports, {
|
|
|
37
37
|
module.exports = __toCommonJS(constants_exports);
|
|
38
38
|
var import_icons_material = require("@mui/icons-material");
|
|
39
39
|
var import_utils = require("@northern.tech/utils");
|
|
40
|
-
var startingDeviceCount = {
|
|
41
|
-
os: "for first 50 devices",
|
|
42
|
-
professional: "for first 250 devices"
|
|
43
|
-
};
|
|
44
40
|
var chartTypes = {
|
|
45
41
|
bar: { key: "bar", Icon: import_icons_material.BarChart },
|
|
46
42
|
pie: { key: "pie", Icon: import_icons_material.PieChartOutline }
|
|
@@ -58,82 +54,48 @@ var PLANS = {
|
|
|
58
54
|
os: {
|
|
59
55
|
id: "os",
|
|
60
56
|
name: "Basic",
|
|
61
|
-
|
|
62
|
-
offer: true,
|
|
63
|
-
price: "$34 / month",
|
|
64
|
-
deviceCount: startingDeviceCount.os,
|
|
65
|
-
description: "The core features of Mender. To continue using Enterprise Trial features\u2014like Delta updates, scheduled deployments, phased rollouts, device filtering, dynamic groups, RBAC, audit logs, and more\u2014please upgrade to a higher plan.",
|
|
66
|
-
features: ["Access to core features of Mender", "Basic support"]
|
|
57
|
+
description: "The core features of Mender. To continue using Enterprise Trial features\u2014like Delta updates, scheduled deployments, phased rollouts, device filtering, dynamic groups, RBAC, audit logs, and more\u2014please upgrade to a higher plan."
|
|
67
58
|
},
|
|
68
59
|
professional: {
|
|
69
60
|
id: "professional",
|
|
70
61
|
name: "Professional",
|
|
71
|
-
|
|
72
|
-
offer: true,
|
|
73
|
-
price: "$291 / month",
|
|
74
|
-
deviceCount: startingDeviceCount.professional,
|
|
75
|
-
description: "Everything in Basic, plus enhanced update management and automation features.",
|
|
76
|
-
features: ["Advanced OTA features", "Higher priority support"]
|
|
62
|
+
description: "Everything in Basic, plus enhanced update management and automation features."
|
|
77
63
|
},
|
|
78
64
|
enterprise: {
|
|
79
65
|
id: "enterprise",
|
|
80
66
|
name: "Enterprise",
|
|
81
|
-
|
|
82
|
-
price: "Custom pricing",
|
|
83
|
-
deviceCount: "Unlimited devices",
|
|
84
|
-
description: "Every advanced feature of Mender, tailored for complex and large-scale deployments. Not available as a monthly subscription \u2014 ask us for a quote.",
|
|
85
|
-
features: ["All Mender features", "Advanced security features", "SLA-backed support"]
|
|
67
|
+
description: "Every advanced feature of Mender, tailored for complex and large-scale deployments. Not available as a monthly subscription \u2014 ask us for a quote."
|
|
86
68
|
}
|
|
87
69
|
};
|
|
88
70
|
var ADDONS = {
|
|
89
71
|
configure: {
|
|
90
72
|
id: "configure",
|
|
91
73
|
title: "Configure",
|
|
92
|
-
description: "
|
|
74
|
+
description: "Seamlessly configure applications and devices remotely \u2013 configure each device to its environment.",
|
|
93
75
|
needs: ["hasDeviceConfig"],
|
|
94
|
-
os: {
|
|
95
|
-
price: "$11/month",
|
|
96
|
-
deviceCount: startingDeviceCount.os
|
|
97
|
-
},
|
|
98
|
-
professional: {
|
|
99
|
-
price: "$65/month",
|
|
100
|
-
deviceCount: startingDeviceCount.professional
|
|
101
|
-
},
|
|
102
76
|
eligible: ["os", "professional", "enterprise"]
|
|
103
77
|
},
|
|
104
78
|
monitor: {
|
|
105
79
|
id: "monitor",
|
|
106
80
|
title: "Monitor",
|
|
107
|
-
description: "
|
|
81
|
+
description: "Detect and analyze health issues of devices, services and applications. Set up alerts so you can act quickly.",
|
|
108
82
|
needs: ["hasMonitor"],
|
|
109
|
-
os: {
|
|
110
|
-
price: "-",
|
|
111
|
-
deviceCount: "-"
|
|
112
|
-
},
|
|
113
|
-
professional: {
|
|
114
|
-
price: "$86/month",
|
|
115
|
-
deviceCount: startingDeviceCount.professional
|
|
116
|
-
},
|
|
117
83
|
eligible: ["professional", "enterprise"]
|
|
118
84
|
},
|
|
119
85
|
troubleshoot: {
|
|
120
86
|
id: "troubleshoot",
|
|
121
87
|
title: "Troubleshoot",
|
|
122
|
-
description: "
|
|
88
|
+
description: "Secure, remote access to your devices \u2013 quickly diagnose and fix issues in real time.",
|
|
123
89
|
needs: ["hasDeviceConnect"],
|
|
124
|
-
os: {
|
|
125
|
-
price: "$27/month",
|
|
126
|
-
deviceCount: startingDeviceCount.os
|
|
127
|
-
},
|
|
128
|
-
professional: {
|
|
129
|
-
price: "$72/month",
|
|
130
|
-
deviceCount: startingDeviceCount.professional
|
|
131
|
-
},
|
|
132
90
|
eligible: ["os", "professional", "enterprise"]
|
|
133
91
|
}
|
|
134
92
|
};
|
|
135
93
|
var BENEFITS = {
|
|
136
|
-
auditlog: {
|
|
94
|
+
auditlog: {
|
|
95
|
+
id: "auditlog",
|
|
96
|
+
benefit: "gain access to logs for important events such as changes to devices, deployments and user management, as well as remote terminal session replays",
|
|
97
|
+
requiredPlan: PLANS.enterprise.id
|
|
98
|
+
},
|
|
137
99
|
dashboard: { id: "dashboard", benefit: "actionable insights into the devices you are updating with Mender", requiredPlan: PLANS.enterprise.id },
|
|
138
100
|
deltaGeneration: {
|
|
139
101
|
id: "deltaGeneration",
|
|
@@ -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\nimport { yes as yesUtil } from '@northern.tech/utils';\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 cn: { key: 'cn', title: 'China', location: 'hosted.mender.cn' },\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: { micro: number; standard: 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: { standard: 50, micro: 100 },\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: { standard: 250, micro: 500 },\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: { standard: 1000, micro: 2000 },\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 = yesUtil;\nexport const canAccess = yes;\n\nexport const DARK_MODE = 'dark';\nexport const LIGHT_MODE = 'light';\n"],"mappings":"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","names":["BarChartIcon","PieChartIcon","yesUtil"]}
|
|
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\nimport { yes as yesUtil } from '@northern.tech/utils';\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 cn: { key: 'cn', title: 'China', location: 'hosted.mender.cn' },\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 id: AvailablePlans;\n name: 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 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 },\n professional: {\n id: 'professional',\n name: 'Professional',\n description: 'Everything in Basic, plus enhanced update management and automation features.'\n },\n enterprise: {\n id: 'enterprise',\n name: 'Enterprise',\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 }\n} as const;\nexport type Addon = {\n description: string;\n eligible: AvailablePlans[];\n id: string;\n needs: string[];\n title: string;\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: 'Seamlessly configure applications and devices remotely – configure each device to its environment.',\n needs: ['hasDeviceConfig'],\n eligible: ['os', 'professional', 'enterprise']\n },\n monitor: {\n id: 'monitor',\n title: 'Monitor',\n description: 'Detect and analyze health issues of devices, services and applications. Set up alerts so you can act quickly.',\n needs: ['hasMonitor'],\n eligible: ['professional', 'enterprise']\n },\n troubleshoot: {\n id: 'troubleshoot',\n title: 'Troubleshoot',\n description: 'Secure, remote access to your devices – quickly diagnose and fix issues in real time.',\n needs: ['hasDeviceConnect'],\n eligible: ['os', 'professional', 'enterprise']\n }\n};\n\nexport const BENEFITS = {\n auditlog: {\n id: 'auditlog',\n benefit: 'gain access to logs for important events such as changes to devices, deployments and user management, as well as remote terminal session replays',\n requiredPlan: PLANS.enterprise.id\n },\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 = yesUtil;\nexport const canAccess = yes;\n\nexport const DARK_MODE = 'dark';\nexport const LIGHT_MODE = 'light';\n"],"mappings":"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","names":["BarChartIcon","PieChartIcon","yesUtil"]}
|
|
@@ -50,18 +50,8 @@ declare const locations: {
|
|
|
50
50
|
type AvailablePlans = 'os' | 'professional' | 'enterprise';
|
|
51
51
|
type Plan = {
|
|
52
52
|
description: string;
|
|
53
|
-
deviceCount: string;
|
|
54
|
-
features: string[];
|
|
55
53
|
id: AvailablePlans;
|
|
56
|
-
minimalDeviceCount: {
|
|
57
|
-
micro: number;
|
|
58
|
-
standard: number;
|
|
59
|
-
};
|
|
60
54
|
name: string;
|
|
61
|
-
offer?: boolean;
|
|
62
|
-
offerprice?: string;
|
|
63
|
-
price: string;
|
|
64
|
-
price2?: string;
|
|
65
55
|
};
|
|
66
56
|
type AvailableAddon = 'configure' | 'troubleshoot' | 'monitor';
|
|
67
57
|
declare const PLANS: {
|
|
@@ -73,11 +63,6 @@ type Addon = {
|
|
|
73
63
|
id: string;
|
|
74
64
|
needs: string[];
|
|
75
65
|
title: string;
|
|
76
|
-
} & {
|
|
77
|
-
[key in Exclude<AvailablePlans, 'enterprise'>]: {
|
|
78
|
-
deviceCount: string;
|
|
79
|
-
price: string;
|
|
80
|
-
};
|
|
81
66
|
};
|
|
82
67
|
type AddonId = keyof typeof ADDONS;
|
|
83
68
|
declare const ADDONS: {
|
|
@@ -86,7 +71,7 @@ declare const ADDONS: {
|
|
|
86
71
|
declare const BENEFITS: {
|
|
87
72
|
readonly auditlog: {
|
|
88
73
|
readonly id: "auditlog";
|
|
89
|
-
readonly benefit: "
|
|
74
|
+
readonly benefit: "gain access to logs for important events such as changes to devices, deployments and user management, as well as remote terminal session replays";
|
|
90
75
|
readonly requiredPlan: AvailablePlans;
|
|
91
76
|
};
|
|
92
77
|
readonly dashboard: {
|
|
@@ -50,18 +50,8 @@ declare const locations: {
|
|
|
50
50
|
type AvailablePlans = 'os' | 'professional' | 'enterprise';
|
|
51
51
|
type Plan = {
|
|
52
52
|
description: string;
|
|
53
|
-
deviceCount: string;
|
|
54
|
-
features: string[];
|
|
55
53
|
id: AvailablePlans;
|
|
56
|
-
minimalDeviceCount: {
|
|
57
|
-
micro: number;
|
|
58
|
-
standard: number;
|
|
59
|
-
};
|
|
60
54
|
name: string;
|
|
61
|
-
offer?: boolean;
|
|
62
|
-
offerprice?: string;
|
|
63
|
-
price: string;
|
|
64
|
-
price2?: string;
|
|
65
55
|
};
|
|
66
56
|
type AvailableAddon = 'configure' | 'troubleshoot' | 'monitor';
|
|
67
57
|
declare const PLANS: {
|
|
@@ -73,11 +63,6 @@ type Addon = {
|
|
|
73
63
|
id: string;
|
|
74
64
|
needs: string[];
|
|
75
65
|
title: string;
|
|
76
|
-
} & {
|
|
77
|
-
[key in Exclude<AvailablePlans, 'enterprise'>]: {
|
|
78
|
-
deviceCount: string;
|
|
79
|
-
price: string;
|
|
80
|
-
};
|
|
81
66
|
};
|
|
82
67
|
type AddonId = keyof typeof ADDONS;
|
|
83
68
|
declare const ADDONS: {
|
|
@@ -86,7 +71,7 @@ declare const ADDONS: {
|
|
|
86
71
|
declare const BENEFITS: {
|
|
87
72
|
readonly auditlog: {
|
|
88
73
|
readonly id: "auditlog";
|
|
89
|
-
readonly benefit: "
|
|
74
|
+
readonly benefit: "gain access to logs for important events such as changes to devices, deployments and user management, as well as remote terminal session replays";
|
|
90
75
|
readonly requiredPlan: AvailablePlans;
|
|
91
76
|
};
|
|
92
77
|
readonly dashboard: {
|
package/dist/appSlice/index.js
CHANGED
|
@@ -7,9 +7,9 @@ import {
|
|
|
7
7
|
} from "../chunk-6WJI4MOP.js";
|
|
8
8
|
import "../chunk-WWED74SG.js";
|
|
9
9
|
import "../chunk-2DYA3X77.js";
|
|
10
|
-
import "../chunk-ZKAH3APE.js";
|
|
11
10
|
import "../chunk-FAJ3I2UQ.js";
|
|
12
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-ZKAH3APE.js";
|
|
12
|
+
import "../chunk-DBBE6D36.js";
|
|
13
13
|
export {
|
|
14
14
|
actions,
|
|
15
15
|
appSlice,
|
package/dist/appSlice/mocks.js
CHANGED
|
@@ -3,9 +3,9 @@ import {
|
|
|
3
3
|
} from "../chunk-6WJI4MOP.js";
|
|
4
4
|
import "../chunk-WWED74SG.js";
|
|
5
5
|
import "../chunk-2DYA3X77.js";
|
|
6
|
-
import "../chunk-ZKAH3APE.js";
|
|
7
6
|
import "../chunk-FAJ3I2UQ.js";
|
|
8
|
-
import "../chunk-
|
|
7
|
+
import "../chunk-ZKAH3APE.js";
|
|
8
|
+
import "../chunk-DBBE6D36.js";
|
|
9
9
|
|
|
10
10
|
// src/appSlice/mocks.ts
|
|
11
11
|
var mockState = {
|
package/dist/appSlice/thunks.cjs
CHANGED
|
@@ -48,10 +48,6 @@ var import_constants5 = require("@northern.tech/utils/constants");
|
|
|
48
48
|
// src/appSlice/constants.ts
|
|
49
49
|
var import_icons_material = require("@mui/icons-material");
|
|
50
50
|
var import_utils = require("@northern.tech/utils");
|
|
51
|
-
var startingDeviceCount = {
|
|
52
|
-
os: "for first 50 devices",
|
|
53
|
-
professional: "for first 250 devices"
|
|
54
|
-
};
|
|
55
51
|
var chartTypes = {
|
|
56
52
|
bar: { key: "bar", Icon: import_icons_material.BarChart },
|
|
57
53
|
pie: { key: "pie", Icon: import_icons_material.PieChartOutline }
|
|
@@ -63,82 +59,48 @@ var PLANS = {
|
|
|
63
59
|
os: {
|
|
64
60
|
id: "os",
|
|
65
61
|
name: "Basic",
|
|
66
|
-
|
|
67
|
-
offer: true,
|
|
68
|
-
price: "$34 / month",
|
|
69
|
-
deviceCount: startingDeviceCount.os,
|
|
70
|
-
description: "The core features of Mender. To continue using Enterprise Trial features\u2014like Delta updates, scheduled deployments, phased rollouts, device filtering, dynamic groups, RBAC, audit logs, and more\u2014please upgrade to a higher plan.",
|
|
71
|
-
features: ["Access to core features of Mender", "Basic support"]
|
|
62
|
+
description: "The core features of Mender. To continue using Enterprise Trial features\u2014like Delta updates, scheduled deployments, phased rollouts, device filtering, dynamic groups, RBAC, audit logs, and more\u2014please upgrade to a higher plan."
|
|
72
63
|
},
|
|
73
64
|
professional: {
|
|
74
65
|
id: "professional",
|
|
75
66
|
name: "Professional",
|
|
76
|
-
|
|
77
|
-
offer: true,
|
|
78
|
-
price: "$291 / month",
|
|
79
|
-
deviceCount: startingDeviceCount.professional,
|
|
80
|
-
description: "Everything in Basic, plus enhanced update management and automation features.",
|
|
81
|
-
features: ["Advanced OTA features", "Higher priority support"]
|
|
67
|
+
description: "Everything in Basic, plus enhanced update management and automation features."
|
|
82
68
|
},
|
|
83
69
|
enterprise: {
|
|
84
70
|
id: "enterprise",
|
|
85
71
|
name: "Enterprise",
|
|
86
|
-
|
|
87
|
-
price: "Custom pricing",
|
|
88
|
-
deviceCount: "Unlimited devices",
|
|
89
|
-
description: "Every advanced feature of Mender, tailored for complex and large-scale deployments. Not available as a monthly subscription \u2014 ask us for a quote.",
|
|
90
|
-
features: ["All Mender features", "Advanced security features", "SLA-backed support"]
|
|
72
|
+
description: "Every advanced feature of Mender, tailored for complex and large-scale deployments. Not available as a monthly subscription \u2014 ask us for a quote."
|
|
91
73
|
}
|
|
92
74
|
};
|
|
93
75
|
var ADDONS = {
|
|
94
76
|
configure: {
|
|
95
77
|
id: "configure",
|
|
96
78
|
title: "Configure",
|
|
97
|
-
description: "
|
|
79
|
+
description: "Seamlessly configure applications and devices remotely \u2013 configure each device to its environment.",
|
|
98
80
|
needs: ["hasDeviceConfig"],
|
|
99
|
-
os: {
|
|
100
|
-
price: "$11/month",
|
|
101
|
-
deviceCount: startingDeviceCount.os
|
|
102
|
-
},
|
|
103
|
-
professional: {
|
|
104
|
-
price: "$65/month",
|
|
105
|
-
deviceCount: startingDeviceCount.professional
|
|
106
|
-
},
|
|
107
81
|
eligible: ["os", "professional", "enterprise"]
|
|
108
82
|
},
|
|
109
83
|
monitor: {
|
|
110
84
|
id: "monitor",
|
|
111
85
|
title: "Monitor",
|
|
112
|
-
description: "
|
|
86
|
+
description: "Detect and analyze health issues of devices, services and applications. Set up alerts so you can act quickly.",
|
|
113
87
|
needs: ["hasMonitor"],
|
|
114
|
-
os: {
|
|
115
|
-
price: "-",
|
|
116
|
-
deviceCount: "-"
|
|
117
|
-
},
|
|
118
|
-
professional: {
|
|
119
|
-
price: "$86/month",
|
|
120
|
-
deviceCount: startingDeviceCount.professional
|
|
121
|
-
},
|
|
122
88
|
eligible: ["professional", "enterprise"]
|
|
123
89
|
},
|
|
124
90
|
troubleshoot: {
|
|
125
91
|
id: "troubleshoot",
|
|
126
92
|
title: "Troubleshoot",
|
|
127
|
-
description: "
|
|
93
|
+
description: "Secure, remote access to your devices \u2013 quickly diagnose and fix issues in real time.",
|
|
128
94
|
needs: ["hasDeviceConnect"],
|
|
129
|
-
os: {
|
|
130
|
-
price: "$27/month",
|
|
131
|
-
deviceCount: startingDeviceCount.os
|
|
132
|
-
},
|
|
133
|
-
professional: {
|
|
134
|
-
price: "$72/month",
|
|
135
|
-
deviceCount: startingDeviceCount.professional
|
|
136
|
-
},
|
|
137
95
|
eligible: ["os", "professional", "enterprise"]
|
|
138
96
|
}
|
|
139
97
|
};
|
|
140
98
|
var BENEFITS = {
|
|
141
|
-
auditlog: {
|
|
99
|
+
auditlog: {
|
|
100
|
+
id: "auditlog",
|
|
101
|
+
benefit: "gain access to logs for important events such as changes to devices, deployments and user management, as well as remote terminal session replays",
|
|
102
|
+
requiredPlan: PLANS.enterprise.id
|
|
103
|
+
},
|
|
142
104
|
dashboard: { id: "dashboard", benefit: "actionable insights into the devices you are updating with Mender", requiredPlan: PLANS.enterprise.id },
|
|
143
105
|
deltaGeneration: {
|
|
144
106
|
id: "deltaGeneration",
|
|
@@ -1152,17 +1114,14 @@ var getAttributesList = (0, import_toolkit4.createSelector)(
|
|
|
1152
1114
|
[getFilteringAttributes, getFilteringAttributesFromConfig],
|
|
1153
1115
|
({ identityAttributes = [], inventoryAttributes = [] }, { identity = [], inventory = [] }) => [...identityAttributes, ...inventoryAttributes, ...identity, ...inventory].filter(import_helpers2.duplicateFilter)
|
|
1154
1116
|
);
|
|
1155
|
-
var getDeviceLimitStats = (0, import_toolkit4.createSelector)(
|
|
1156
|
-
|
|
1157
|
-
(limits,
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
}));
|
|
1164
|
-
}
|
|
1165
|
-
);
|
|
1117
|
+
var getDeviceLimitStats = (0, import_toolkit4.createSelector)([getDeviceLimits, getAcceptedDevices], (limits, accepted) => {
|
|
1118
|
+
const { counts } = accepted;
|
|
1119
|
+
return Object.entries(limits).filter(([, limit]) => limit !== 0).map(([type, limit]) => ({
|
|
1120
|
+
type,
|
|
1121
|
+
limit,
|
|
1122
|
+
total: counts[type] || 0
|
|
1123
|
+
}));
|
|
1124
|
+
});
|
|
1166
1125
|
var getDeviceTypes = (0, import_toolkit4.createSelector)(
|
|
1167
1126
|
[getAcceptedDevices, getDevicesById],
|
|
1168
1127
|
({ deviceIds = [] }, devicesById) => Object.keys(
|
|
@@ -2112,6 +2071,9 @@ var organizationSlice = (0, import_toolkit13.createSlice)({
|
|
|
2112
2071
|
setSubscription: (state, action) => {
|
|
2113
2072
|
state.organization.subscription = { ...state.organization.subscription, ...action.payload };
|
|
2114
2073
|
},
|
|
2074
|
+
setProducts: (state, action) => {
|
|
2075
|
+
state.products = action.payload;
|
|
2076
|
+
},
|
|
2115
2077
|
setBillingProfile: (state, action) => {
|
|
2116
2078
|
state.organization.billing_profile = action.payload;
|
|
2117
2079
|
},
|
|
@@ -2997,11 +2959,18 @@ var addStaticGroup = createAppAsyncThunk(
|
|
|
2997
2959
|
)
|
|
2998
2960
|
).catch((err) => commonErrorHandler(err, `Group could not be updated:`, dispatch))
|
|
2999
2961
|
);
|
|
2962
|
+
var removeReportsByGroupName = createAppAsyncThunk(`${sliceName3}/removeReportsByGroupName`, (groupName, { dispatch, getState }) => {
|
|
2963
|
+
if (!groupName) return Promise.resolve();
|
|
2964
|
+
const reports = getDeviceReportsForUser(getState());
|
|
2965
|
+
const filteredReports = reports.filter((report) => report.group !== groupName);
|
|
2966
|
+
dispatch(saveUserSettings({ reports: filteredReports }));
|
|
2967
|
+
});
|
|
3000
2968
|
var removeStaticGroup = createAppAsyncThunk(
|
|
3001
2969
|
`${sliceName3}/removeStaticGroup`,
|
|
3002
2970
|
(groupName, { dispatch }) => general_api_default.delete(`${import_constants5.inventoryApiUrl}/groups/${groupName}`).then(
|
|
3003
2971
|
() => Promise.all([
|
|
3004
2972
|
dispatch(actions3.removeGroup(groupName)),
|
|
2973
|
+
dispatch(removeReportsByGroupName(groupName)),
|
|
3005
2974
|
dispatch(getGroups2()),
|
|
3006
2975
|
dispatch(setSnackbar3({ message: "Group was removed successfully", autoHideDuration: TIMEOUTS.fiveSeconds }))
|
|
3007
2976
|
])
|
|
@@ -3067,6 +3036,7 @@ var removeDynamicGroup = createAppAsyncThunk(`${sliceName3}/removeDynamicGroup`,
|
|
|
3067
3036
|
return general_api_default.delete(`${import_constants5.inventoryApiUrlV2}/filters/${filterId}`).then(
|
|
3068
3037
|
() => Promise.all([
|
|
3069
3038
|
dispatch(actions3.removeGroup(groupName)),
|
|
3039
|
+
dispatch(removeReportsByGroupName(groupName)),
|
|
3070
3040
|
dispatch(setSnackbar3({ message: "Group was removed successfully", autoHideDuration: TIMEOUTS.fiveSeconds }))
|
|
3071
3041
|
])
|
|
3072
3042
|
);
|