@northern.tech/store 0.1.3 → 0.2.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.
Files changed (188) hide show
  1. package/dist/actions.js +75 -13
  2. package/dist/actions.js.map +1 -1
  3. package/dist/actions.mjs +10 -10
  4. package/dist/api/general-api.js +64 -0
  5. package/dist/api/general-api.js.map +1 -1
  6. package/dist/api/general-api.mjs +4 -4
  7. package/dist/api/users-api.js +64 -0
  8. package/dist/api/users-api.js.map +1 -1
  9. package/dist/api/users-api.mjs +5 -5
  10. package/dist/appSlice/index.js +64 -0
  11. package/dist/appSlice/index.js.map +1 -1
  12. package/dist/appSlice/index.mjs +3 -3
  13. package/dist/appSlice/thunks.js +93 -15
  14. package/dist/appSlice/thunks.js.map +1 -1
  15. package/dist/appSlice/thunks.mjs +24 -24
  16. package/dist/auth.js +64 -0
  17. package/dist/auth.js.map +1 -1
  18. package/dist/auth.mjs +3 -3
  19. package/dist/{chunk-HVHZG2H4.mjs → chunk-2HCZYULZ.mjs} +3 -3
  20. package/dist/chunk-2HCZYULZ.mjs.map +1 -0
  21. package/dist/{chunk-R2GBNXLV.mjs → chunk-2P4VECEE.mjs} +3 -3
  22. package/dist/{chunk-HXPYJ6QN.mjs → chunk-4C6IY46N.mjs} +2 -2
  23. package/dist/{chunk-BRHSKNFC.mjs → chunk-4U4X4KAC.mjs} +4 -4
  24. package/dist/{chunk-DZBVTSIX.mjs → chunk-BWFTQHNM.mjs} +2 -2
  25. package/dist/{chunk-BJSH2G7W.mjs → chunk-EFHEROXZ.mjs} +2 -2
  26. package/dist/{chunk-6667TCAJ.mjs → chunk-EM2HUGUY.mjs} +3 -3
  27. package/dist/{chunk-IPPIKGIB.mjs → chunk-ENLZPHTQ.mjs} +8 -8
  28. package/dist/{chunk-IVSYYXTC.mjs → chunk-L4HIW3KB.mjs} +3 -3
  29. package/dist/{chunk-G7LATUT6.mjs → chunk-MJW4632R.mjs} +10 -10
  30. package/dist/{chunk-ZNST5R6O.mjs → chunk-MQIKQKSW.mjs} +61 -2
  31. package/dist/chunk-MQIKQKSW.mjs.map +1 -0
  32. package/dist/{chunk-7E7KJHY3.mjs → chunk-NCI6JV5R.mjs} +2 -2
  33. package/dist/{chunk-G3I53JGW.mjs → chunk-OGAMVFPS.mjs} +2 -1
  34. package/dist/{chunk-G3I53JGW.mjs.map → chunk-OGAMVFPS.mjs.map} +1 -1
  35. package/dist/{chunk-F37LUTBX.mjs → chunk-OWHFMKTA.mjs} +2 -2
  36. package/dist/{chunk-ZIYGEXSJ.mjs → chunk-QG4PT5WK.mjs} +3 -3
  37. package/dist/{chunk-XYVPYFSM.mjs → chunk-RWYS5MKN.mjs} +12 -12
  38. package/dist/{chunk-G32LAKW4.mjs → chunk-U6YTBIDT.mjs} +3 -3
  39. package/dist/{chunk-YNVSU3AA.mjs → chunk-UPMSYTWW.mjs} +22 -22
  40. package/dist/chunk-UPMSYTWW.mjs.map +1 -0
  41. package/dist/{chunk-TD45YTYK.mjs → chunk-WS3YYLTJ.mjs} +14 -16
  42. package/dist/chunk-WS3YYLTJ.mjs.map +1 -0
  43. package/dist/{chunk-HRWZJQMH.mjs → chunk-X65NMDPS.mjs} +3 -3
  44. package/dist/{chunk-O6O3D52B.mjs → chunk-XJNI62IP.mjs} +2 -2
  45. package/dist/{chunk-RQOE5OOT.mjs → chunk-Y47SYXII.mjs} +32 -12
  46. package/dist/chunk-Y47SYXII.mjs.map +1 -0
  47. package/dist/{chunk-N7G6QK2E.mjs → chunk-ZLRZO4EY.mjs} +10 -10
  48. package/dist/{chunk-RH6ONMG7.mjs → chunk-ZZ6VIQ3U.mjs} +3 -3
  49. package/dist/commonConstants.d.mts +18 -19
  50. package/dist/commonConstants.d.ts +18 -19
  51. package/dist/commonConstants.js +1 -0
  52. package/dist/commonConstants.js.map +1 -1
  53. package/dist/commonConstants.mjs +1 -1
  54. package/dist/commonSelectors.d.mts +42 -1
  55. package/dist/commonSelectors.d.ts +42 -1
  56. package/dist/commonSelectors.js +82 -0
  57. package/dist/commonSelectors.js.map +1 -1
  58. package/dist/commonSelectors.mjs +11 -9
  59. package/dist/constants.d.mts +3 -3
  60. package/dist/constants.d.ts +3 -3
  61. package/dist/constants.js +62 -0
  62. package/dist/constants.js.map +1 -1
  63. package/dist/constants.mjs +6 -2
  64. package/dist/deploymentsSlice/constants.js +64 -0
  65. package/dist/deploymentsSlice/constants.js.map +1 -1
  66. package/dist/deploymentsSlice/constants.mjs +2 -2
  67. package/dist/deploymentsSlice/index.js +64 -0
  68. package/dist/deploymentsSlice/index.js.map +1 -1
  69. package/dist/deploymentsSlice/index.mjs +3 -3
  70. package/dist/deploymentsSlice/selectors.js +64 -0
  71. package/dist/deploymentsSlice/selectors.js.map +1 -1
  72. package/dist/deploymentsSlice/selectors.mjs +3 -3
  73. package/dist/deploymentsSlice/thunks.js +93 -15
  74. package/dist/deploymentsSlice/thunks.js.map +1 -1
  75. package/dist/deploymentsSlice/thunks.mjs +24 -24
  76. package/dist/devicesSlice/constants.js +64 -0
  77. package/dist/devicesSlice/constants.js.map +1 -1
  78. package/dist/devicesSlice/constants.mjs +2 -2
  79. package/dist/devicesSlice/index.js +64 -0
  80. package/dist/devicesSlice/index.js.map +1 -1
  81. package/dist/devicesSlice/index.mjs +3 -3
  82. package/dist/devicesSlice/selectors.js +64 -0
  83. package/dist/devicesSlice/selectors.js.map +1 -1
  84. package/dist/devicesSlice/selectors.mjs +3 -3
  85. package/dist/devicesSlice/thunks.js +93 -15
  86. package/dist/devicesSlice/thunks.js.map +1 -1
  87. package/dist/devicesSlice/thunks.mjs +24 -24
  88. package/dist/monitorSlice/constants.js +64 -0
  89. package/dist/monitorSlice/constants.js.map +1 -1
  90. package/dist/monitorSlice/constants.mjs +2 -2
  91. package/dist/monitorSlice/index.js +64 -0
  92. package/dist/monitorSlice/index.js.map +1 -1
  93. package/dist/monitorSlice/index.mjs +3 -3
  94. package/dist/monitorSlice/thunks.js +91 -13
  95. package/dist/monitorSlice/thunks.js.map +1 -1
  96. package/dist/monitorSlice/thunks.mjs +21 -21
  97. package/dist/onboardingSlice/thunks.js +93 -15
  98. package/dist/onboardingSlice/thunks.js.map +1 -1
  99. package/dist/onboardingSlice/thunks.mjs +24 -24
  100. package/dist/organizationSlice/constants.d.mts +6 -1
  101. package/dist/organizationSlice/constants.d.ts +6 -1
  102. package/dist/organizationSlice/constants.js +60 -0
  103. package/dist/organizationSlice/constants.js.map +1 -1
  104. package/dist/organizationSlice/constants.mjs +4 -2
  105. package/dist/organizationSlice/index.d.mts +224 -246
  106. package/dist/organizationSlice/index.d.ts +224 -246
  107. package/dist/organizationSlice/index.js +75 -13
  108. package/dist/organizationSlice/index.js.map +1 -1
  109. package/dist/organizationSlice/index.mjs +3 -3
  110. package/dist/organizationSlice/selectors.js +65 -1
  111. package/dist/organizationSlice/selectors.js.map +1 -1
  112. package/dist/organizationSlice/selectors.mjs +3 -3
  113. package/dist/organizationSlice/thunks.js +93 -15
  114. package/dist/organizationSlice/thunks.js.map +1 -1
  115. package/dist/organizationSlice/thunks.mjs +24 -24
  116. package/dist/releasesSlice/index.js +64 -0
  117. package/dist/releasesSlice/index.js.map +1 -1
  118. package/dist/releasesSlice/index.mjs +3 -3
  119. package/dist/releasesSlice/selectors.js +64 -0
  120. package/dist/releasesSlice/selectors.js.map +1 -1
  121. package/dist/releasesSlice/selectors.mjs +4 -4
  122. package/dist/releasesSlice/thunks.js +91 -13
  123. package/dist/releasesSlice/thunks.js.map +1 -1
  124. package/dist/releasesSlice/thunks.mjs +21 -21
  125. package/dist/selectors.d.mts +1 -1
  126. package/dist/selectors.d.ts +1 -1
  127. package/dist/selectors.js +83 -1
  128. package/dist/selectors.js.map +1 -1
  129. package/dist/selectors.mjs +11 -9
  130. package/dist/store.d.mts +235 -135
  131. package/dist/store.d.ts +235 -135
  132. package/dist/store.js +75 -13
  133. package/dist/store.js.map +1 -1
  134. package/dist/store.mjs +13 -13
  135. package/dist/storehooks.d.mts +3 -1
  136. package/dist/storehooks.d.ts +3 -1
  137. package/dist/storehooks.js +125 -29
  138. package/dist/storehooks.js.map +1 -1
  139. package/dist/storehooks.mjs +59 -39
  140. package/dist/storehooks.mjs.map +1 -1
  141. package/dist/thunks.js +93 -15
  142. package/dist/thunks.js.map +1 -1
  143. package/dist/thunks.mjs +24 -24
  144. package/dist/usersSlice/constants.d.mts +192 -17
  145. package/dist/usersSlice/constants.d.ts +192 -17
  146. package/dist/usersSlice/constants.js +66 -0
  147. package/dist/usersSlice/constants.js.map +1 -1
  148. package/dist/usersSlice/constants.mjs +4 -2
  149. package/dist/usersSlice/index.d.mts +1628 -704
  150. package/dist/usersSlice/index.d.ts +1628 -704
  151. package/dist/usersSlice/index.js +64 -0
  152. package/dist/usersSlice/index.js.map +1 -1
  153. package/dist/usersSlice/index.mjs +3 -3
  154. package/dist/usersSlice/selectors.js +64 -0
  155. package/dist/usersSlice/selectors.js.map +1 -1
  156. package/dist/usersSlice/selectors.mjs +4 -4
  157. package/dist/usersSlice/thunks.js +93 -15
  158. package/dist/usersSlice/thunks.js.map +1 -1
  159. package/dist/usersSlice/thunks.mjs +24 -24
  160. package/dist/utils.d.mts +6 -5
  161. package/dist/utils.d.ts +6 -5
  162. package/dist/utils.js +64 -0
  163. package/dist/utils.js.map +1 -1
  164. package/dist/utils.mjs +3 -3
  165. package/package.json +1 -1
  166. package/dist/chunk-HVHZG2H4.mjs.map +0 -1
  167. package/dist/chunk-RQOE5OOT.mjs.map +0 -1
  168. package/dist/chunk-TD45YTYK.mjs.map +0 -1
  169. package/dist/chunk-YNVSU3AA.mjs.map +0 -1
  170. package/dist/chunk-ZNST5R6O.mjs.map +0 -1
  171. /package/dist/{chunk-R2GBNXLV.mjs.map → chunk-2P4VECEE.mjs.map} +0 -0
  172. /package/dist/{chunk-HXPYJ6QN.mjs.map → chunk-4C6IY46N.mjs.map} +0 -0
  173. /package/dist/{chunk-BRHSKNFC.mjs.map → chunk-4U4X4KAC.mjs.map} +0 -0
  174. /package/dist/{chunk-DZBVTSIX.mjs.map → chunk-BWFTQHNM.mjs.map} +0 -0
  175. /package/dist/{chunk-BJSH2G7W.mjs.map → chunk-EFHEROXZ.mjs.map} +0 -0
  176. /package/dist/{chunk-6667TCAJ.mjs.map → chunk-EM2HUGUY.mjs.map} +0 -0
  177. /package/dist/{chunk-IPPIKGIB.mjs.map → chunk-ENLZPHTQ.mjs.map} +0 -0
  178. /package/dist/{chunk-IVSYYXTC.mjs.map → chunk-L4HIW3KB.mjs.map} +0 -0
  179. /package/dist/{chunk-G7LATUT6.mjs.map → chunk-MJW4632R.mjs.map} +0 -0
  180. /package/dist/{chunk-7E7KJHY3.mjs.map → chunk-NCI6JV5R.mjs.map} +0 -0
  181. /package/dist/{chunk-F37LUTBX.mjs.map → chunk-OWHFMKTA.mjs.map} +0 -0
  182. /package/dist/{chunk-ZIYGEXSJ.mjs.map → chunk-QG4PT5WK.mjs.map} +0 -0
  183. /package/dist/{chunk-XYVPYFSM.mjs.map → chunk-RWYS5MKN.mjs.map} +0 -0
  184. /package/dist/{chunk-G32LAKW4.mjs.map → chunk-U6YTBIDT.mjs.map} +0 -0
  185. /package/dist/{chunk-HRWZJQMH.mjs.map → chunk-X65NMDPS.mjs.map} +0 -0
  186. /package/dist/{chunk-O6O3D52B.mjs.map → chunk-XJNI62IP.mjs.map} +0 -0
  187. /package/dist/{chunk-N7G6QK2E.mjs.map → chunk-ZLRZO4EY.mjs.map} +0 -0
  188. /package/dist/{chunk-RH6ONMG7.mjs.map → chunk-ZZ6VIQ3U.mjs.map} +0 -0
@@ -412,6 +412,7 @@ var emptyUiPermissions = Object.freeze({
412
412
  deployments: [],
413
413
  groups: Object.freeze({}),
414
414
  releases: Object.freeze({}),
415
+ tenantManagement: [],
415
416
  userManagement: []
416
417
  });
417
418
  var emptyRole = Object.freeze({
@@ -624,6 +625,13 @@ var auditLogsApiUrl = `${apiUrl.v1}/auditlogs`;
624
625
  var tenantadmApiUrlv1 = `${apiUrl.v1}/tenantadm`;
625
626
  var tenantadmApiUrlv2 = `${apiUrl.v2}/tenantadm`;
626
627
  var ssoIdpApiUrlv1 = `${apiUrl.v1}/useradm/sso/idp/metadata`;
628
+ var AUDIT_LOGS_TYPES = [
629
+ { title: "Artifact", queryParameter: "object_type", value: "artifact" },
630
+ { title: "Deployment", queryParameter: "object_deployment_name", value: "deployment" },
631
+ { title: "Device", queryParameter: "object_id", value: "device" },
632
+ { title: "User", queryParameter: "object_id", value: "user" }
633
+ ];
634
+ var SP_AUDIT_LOGS_TYPES = [AUDIT_LOGS_TYPES[3], { title: "Tenant", queryParameter: "object_id", value: "tenant" }];
627
635
  var emptyWebhook = {
628
636
  description: "",
629
637
  enabled: true,
@@ -671,10 +679,12 @@ var permissionSetIds = {
671
679
  DeployToDevices: "DeployToDevices",
672
680
  ManageDevices: "ManageDevices",
673
681
  ManageReleases: "ManageReleases",
682
+ ManageTenants: "ManageTenants",
674
683
  ManageUsers: "ManageUsers",
675
684
  ReadAuditLogs: "ReadAuditLogs",
676
685
  ReadDevices: "ReadDevices",
677
686
  ReadReleases: "ReadReleases",
687
+ ReadTenants: "ReadTenants",
678
688
  ReadUsers: "ReadUsers",
679
689
  SuperUser: "SuperUser",
680
690
  UploadArtifacts: "UploadArtifacts"
@@ -713,6 +723,7 @@ var uiPermissionsById = {
713
723
  permissionSets: {
714
724
  groups: permissionSetIds.ManageDevices,
715
725
  releases: permissionSetIds.ManageReleases,
726
+ tenantManagement: permissionSetIds.ManageTenants,
716
727
  userManagement: permissionSetIds.ManageUsers
717
728
  },
718
729
  title: "Manage",
@@ -726,6 +737,7 @@ var uiPermissionsById = {
726
737
  auditlog: permissionSetIds.ReadAuditLogs,
727
738
  groups: permissionSetIds.ReadDevices,
728
739
  releases: permissionSetIds.ReadReleases,
740
+ tenantManagement: permissionSetIds.ReadTenants,
729
741
  userManagement: permissionSetIds.ReadUsers
730
742
  },
731
743
  title: "Read",
@@ -750,6 +762,7 @@ var uiPermissionsByArea = {
750
762
  auditlog: {
751
763
  endpoints: [{ path: /\/(auditlog)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] }],
752
764
  explanation: "Granting access to the audit log will allow tracing changes to devices, releases and user accounts, as well as providing information about deployments.",
765
+ key: "auditlog",
753
766
  uiPermissions: [uiPermissionsById.read],
754
767
  title: "System audit log"
755
768
  },
@@ -760,6 +773,7 @@ var uiPermissionsByArea = {
760
773
  { path: /\/(deployments\/config)/i, types: [PermissionTypes.Get, PermissionTypes.Put], uiPermissions: [uiPermissionsById.manage] }
761
774
  ],
762
775
  explanation: "Providing deploy permissions will allow deployments to be created using the releases and devices a user has access to.",
776
+ key: "deployments",
763
777
  uiPermissions: [uiPermissionsById.read, uiPermissionsById.deploy],
764
778
  title: "Deployments"
765
779
  },
@@ -775,6 +789,7 @@ var uiPermissionsByArea = {
775
789
  { path: /\/(deviceconnect\/devices)/i, types: [PermissionTypes.Get, PermissionTypes.Post], uiPermissions: [uiPermissionsById.connect] }
776
790
  ],
777
791
  explanation: "Device group management permissions control the degree to which devices in a group can be accessed and moved to other groups.",
792
+ key: "groups",
778
793
  scope: scopedPermissionAreas.groups.scopeType,
779
794
  uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage, uiPermissionsById.deploy, uiPermissionsById.configure, uiPermissionsById.connect],
780
795
  title: "Group Management"
@@ -794,16 +809,29 @@ var uiPermissionsByArea = {
794
809
  }
795
810
  ],
796
811
  explanation: "Release permissions can be granted to allow artifact & release modifications, as well as the creation of new releases.",
812
+ key: "releases",
797
813
  scope: "ReleaseTags",
798
814
  uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage, uiPermissionsById.upload],
799
815
  title: "Release Management"
800
816
  },
817
+ tenantManagement: {
818
+ endpoints: [
819
+ { path: /\/(tenantadm\/tenants)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] },
820
+ { path: /\/(tenantadm\/tenants)/i, types: [PermissionTypes.Post, PermissionTypes.Put], uiPermissions: [uiPermissionsById.manage] },
821
+ { path: /\/(users\/exists)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.manage] }
822
+ ],
823
+ explanation: "Tenant management permissions allow listing, creating and modifying child tenants",
824
+ key: "tenantManagement",
825
+ uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage],
826
+ title: "Tenant Management"
827
+ },
801
828
  userManagement: {
802
829
  endpoints: [
803
830
  { path: /\/(useradm)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] },
804
831
  { path: /\/(useradm)/i, types: [PermissionTypes.Post], uiPermissions: [uiPermissionsById.manage] }
805
832
  ],
806
833
  explanation: "User management permissions should be granted carefully, as these allow privilege increases for any users managed by a user with user management permissions",
834
+ key: "userManagement",
807
835
  uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage],
808
836
  title: "User Management"
809
837
  }
@@ -866,6 +894,30 @@ var rolesById = Object.freeze({
866
894
  })
867
895
  }
868
896
  });
897
+ var serviceProviderRolesById = {
898
+ admin: {
899
+ name: "Admin",
900
+ value: staticRolesByName.admin,
901
+ description: "Full access",
902
+ permissions: [],
903
+ uiPermissions: __spreadProps(__spreadValues({}, emptyUiPermissions), {
904
+ auditlog: uiPermissionsByArea.auditlog.uiPermissions.map(permissionMapper),
905
+ userManagement: uiPermissionsByArea.userManagement.uiPermissions.map(permissionMapper),
906
+ tenantManagement: uiPermissionsByArea.tenantManagement.uiPermissions.map(permissionMapper)
907
+ })
908
+ },
909
+ readOnly: {
910
+ name: "Read access",
911
+ value: staticRolesByName.admin,
912
+ description: "This role can see all linked organizations but cannot make any changes",
913
+ permissions: [],
914
+ uiPermissions: __spreadProps(__spreadValues({}, emptyUiPermissions), {
915
+ auditlog: [uiPermissionsById.read.value],
916
+ userManagement: [uiPermissionsById.read.value],
917
+ tenantManagement: [uiPermissionsById.read.value]
918
+ })
919
+ }
920
+ };
869
921
  var defaultPermissionSets = {
870
922
  [permissionSetIds.Basic]: {
871
923
  name: permissionSetIds.Basic,
@@ -896,6 +948,18 @@ var defaultPermissionSets = {
896
948
  releases: { [ALL_RELEASES]: [uiPermissionsById.read.value] }
897
949
  }
898
950
  },
951
+ [permissionSetIds.ReadTenants]: {
952
+ name: permissionSetIds.ReadTenants,
953
+ result: {
954
+ tenantManagement: [uiPermissionsById.read.value]
955
+ }
956
+ },
957
+ [permissionSetIds.ManageTenants]: {
958
+ name: permissionSetIds.ManageTenants,
959
+ result: {
960
+ tenantManagement: [uiPermissionsById.manage.value]
961
+ }
962
+ },
899
963
  [permissionSetIds.ReadUsers]: {
900
964
  name: permissionSetIds.ReadUsers,
901
965
  result: {
@@ -1471,16 +1535,16 @@ var initialState6 = {
1471
1535
  brand: ""
1472
1536
  },
1473
1537
  intentId: null,
1538
+ tenantList: __spreadProps(__spreadValues({}, TENANT_LIST_DEFAULT), {
1539
+ total: 0,
1540
+ tenants: [],
1541
+ selectedTenant: null,
1542
+ sort: {
1543
+ direction: SORTING_OPTIONS.desc,
1544
+ key: "name"
1545
+ }
1546
+ }),
1474
1547
  organization: {
1475
- tenantList: __spreadProps(__spreadValues({}, TENANT_LIST_DEFAULT), {
1476
- total: 0,
1477
- tenants: [],
1478
- selectedTenant: null,
1479
- sort: {
1480
- direction: SORTING_OPTIONS.desc,
1481
- key: "name"
1482
- }
1483
- })
1484
1548
  // id, name, status, tenant_token, plan
1485
1549
  },
1486
1550
  auditlog: {
@@ -1526,12 +1590,10 @@ var organizationSlice = (0, import_toolkit6.createSlice)({
1526
1590
  state.intentId = action.payload;
1527
1591
  },
1528
1592
  setOrganization: (state, action) => {
1529
- state.organization = __spreadProps(__spreadValues(__spreadValues({}, state.organization), action.payload), {
1530
- tenantList: __spreadValues(__spreadValues({}, state.organization.tenantList), action.payload.tenantList)
1531
- });
1593
+ state.organization = __spreadValues(__spreadValues({}, state.organization), action.payload);
1532
1594
  },
1533
1595
  setTenantListState: (state, action) => {
1534
- state.organization.tenantList = action.payload;
1596
+ state.tenantList = action.payload;
1535
1597
  },
1536
1598
  receiveExternalDeviceIntegrations: (state, action) => {
1537
1599
  state.externalDeviceIntegrations = action.payload;
@@ -2405,6 +2467,22 @@ var getAuditlogDevice = (0, import_toolkit15.createSelector)([getAuditLogEntry,
2405
2467
  }
2406
2468
  return __spreadValues(__spreadValues({}, auditlogDevice), devicesById[auditlogDevice.id]);
2407
2469
  });
2470
+ var getRelevantRoles = (0, import_toolkit15.createSelector)([getOrganization, getRolesList], ({ service_provider }, roles) => {
2471
+ if (service_provider) {
2472
+ return roles.reduce((accu, role) => {
2473
+ if (rolesById[role.id]) {
2474
+ return accu;
2475
+ }
2476
+ accu.push(role);
2477
+ return accu;
2478
+ }, Object.values(serviceProviderRolesById));
2479
+ }
2480
+ return Object.keys(rolesById).reverse().reduce((accu, key) => {
2481
+ const index = accu.findIndex(({ id }) => id === key);
2482
+ accu = [accu[index], ...accu.filter((item, itemIndex) => index !== itemIndex)];
2483
+ return accu;
2484
+ }, roles);
2485
+ });
2408
2486
 
2409
2487
  // src/store.ts
2410
2488
  var import_toolkit16 = require("@reduxjs/toolkit");