@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
@@ -423,6 +423,7 @@ var emptyUiPermissions = Object.freeze({
423
423
  deployments: [],
424
424
  groups: Object.freeze({}),
425
425
  releases: Object.freeze({}),
426
+ tenantManagement: [],
426
427
  userManagement: []
427
428
  });
428
429
  var emptyRole = Object.freeze({
@@ -635,6 +636,13 @@ var auditLogsApiUrl = `${apiUrl.v1}/auditlogs`;
635
636
  var tenantadmApiUrlv1 = `${apiUrl.v1}/tenantadm`;
636
637
  var tenantadmApiUrlv2 = `${apiUrl.v2}/tenantadm`;
637
638
  var ssoIdpApiUrlv1 = `${apiUrl.v1}/useradm/sso/idp/metadata`;
639
+ var AUDIT_LOGS_TYPES = [
640
+ { title: "Artifact", queryParameter: "object_type", value: "artifact" },
641
+ { title: "Deployment", queryParameter: "object_deployment_name", value: "deployment" },
642
+ { title: "Device", queryParameter: "object_id", value: "device" },
643
+ { title: "User", queryParameter: "object_id", value: "user" }
644
+ ];
645
+ var SP_AUDIT_LOGS_TYPES = [AUDIT_LOGS_TYPES[3], { title: "Tenant", queryParameter: "object_id", value: "tenant" }];
638
646
  var emptyWebhook = {
639
647
  description: "",
640
648
  enabled: true,
@@ -683,10 +691,12 @@ var permissionSetIds = {
683
691
  DeployToDevices: "DeployToDevices",
684
692
  ManageDevices: "ManageDevices",
685
693
  ManageReleases: "ManageReleases",
694
+ ManageTenants: "ManageTenants",
686
695
  ManageUsers: "ManageUsers",
687
696
  ReadAuditLogs: "ReadAuditLogs",
688
697
  ReadDevices: "ReadDevices",
689
698
  ReadReleases: "ReadReleases",
699
+ ReadTenants: "ReadTenants",
690
700
  ReadUsers: "ReadUsers",
691
701
  SuperUser: "SuperUser",
692
702
  UploadArtifacts: "UploadArtifacts"
@@ -725,6 +735,7 @@ var uiPermissionsById = {
725
735
  permissionSets: {
726
736
  groups: permissionSetIds.ManageDevices,
727
737
  releases: permissionSetIds.ManageReleases,
738
+ tenantManagement: permissionSetIds.ManageTenants,
728
739
  userManagement: permissionSetIds.ManageUsers
729
740
  },
730
741
  title: "Manage",
@@ -738,6 +749,7 @@ var uiPermissionsById = {
738
749
  auditlog: permissionSetIds.ReadAuditLogs,
739
750
  groups: permissionSetIds.ReadDevices,
740
751
  releases: permissionSetIds.ReadReleases,
752
+ tenantManagement: permissionSetIds.ReadTenants,
741
753
  userManagement: permissionSetIds.ReadUsers
742
754
  },
743
755
  title: "Read",
@@ -762,6 +774,7 @@ var uiPermissionsByArea = {
762
774
  auditlog: {
763
775
  endpoints: [{ path: /\/(auditlog)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] }],
764
776
  explanation: "Granting access to the audit log will allow tracing changes to devices, releases and user accounts, as well as providing information about deployments.",
777
+ key: "auditlog",
765
778
  uiPermissions: [uiPermissionsById.read],
766
779
  title: "System audit log"
767
780
  },
@@ -772,6 +785,7 @@ var uiPermissionsByArea = {
772
785
  { path: /\/(deployments\/config)/i, types: [PermissionTypes.Get, PermissionTypes.Put], uiPermissions: [uiPermissionsById.manage] }
773
786
  ],
774
787
  explanation: "Providing deploy permissions will allow deployments to be created using the releases and devices a user has access to.",
788
+ key: "deployments",
775
789
  uiPermissions: [uiPermissionsById.read, uiPermissionsById.deploy],
776
790
  title: "Deployments"
777
791
  },
@@ -787,6 +801,7 @@ var uiPermissionsByArea = {
787
801
  { path: /\/(deviceconnect\/devices)/i, types: [PermissionTypes.Get, PermissionTypes.Post], uiPermissions: [uiPermissionsById.connect] }
788
802
  ],
789
803
  explanation: "Device group management permissions control the degree to which devices in a group can be accessed and moved to other groups.",
804
+ key: "groups",
790
805
  scope: scopedPermissionAreas.groups.scopeType,
791
806
  uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage, uiPermissionsById.deploy, uiPermissionsById.configure, uiPermissionsById.connect],
792
807
  title: "Group Management"
@@ -806,16 +821,29 @@ var uiPermissionsByArea = {
806
821
  }
807
822
  ],
808
823
  explanation: "Release permissions can be granted to allow artifact & release modifications, as well as the creation of new releases.",
824
+ key: "releases",
809
825
  scope: "ReleaseTags",
810
826
  uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage, uiPermissionsById.upload],
811
827
  title: "Release Management"
812
828
  },
829
+ tenantManagement: {
830
+ endpoints: [
831
+ { path: /\/(tenantadm\/tenants)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] },
832
+ { path: /\/(tenantadm\/tenants)/i, types: [PermissionTypes.Post, PermissionTypes.Put], uiPermissions: [uiPermissionsById.manage] },
833
+ { path: /\/(users\/exists)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.manage] }
834
+ ],
835
+ explanation: "Tenant management permissions allow listing, creating and modifying child tenants",
836
+ key: "tenantManagement",
837
+ uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage],
838
+ title: "Tenant Management"
839
+ },
813
840
  userManagement: {
814
841
  endpoints: [
815
842
  { path: /\/(useradm)/i, types: [PermissionTypes.Get], uiPermissions: [uiPermissionsById.read] },
816
843
  { path: /\/(useradm)/i, types: [PermissionTypes.Post], uiPermissions: [uiPermissionsById.manage] }
817
844
  ],
818
845
  explanation: "User management permissions should be granted carefully, as these allow privilege increases for any users managed by a user with user management permissions",
846
+ key: "userManagement",
819
847
  uiPermissions: [uiPermissionsById.read, uiPermissionsById.manage],
820
848
  title: "User Management"
821
849
  }
@@ -878,6 +906,30 @@ var rolesById = Object.freeze({
878
906
  })
879
907
  }
880
908
  });
909
+ var serviceProviderRolesById = {
910
+ admin: {
911
+ name: "Admin",
912
+ value: staticRolesByName.admin,
913
+ description: "Full access",
914
+ permissions: [],
915
+ uiPermissions: __spreadProps(__spreadValues({}, emptyUiPermissions), {
916
+ auditlog: uiPermissionsByArea.auditlog.uiPermissions.map(permissionMapper),
917
+ userManagement: uiPermissionsByArea.userManagement.uiPermissions.map(permissionMapper),
918
+ tenantManagement: uiPermissionsByArea.tenantManagement.uiPermissions.map(permissionMapper)
919
+ })
920
+ },
921
+ readOnly: {
922
+ name: "Read access",
923
+ value: staticRolesByName.admin,
924
+ description: "This role can see all linked organizations but cannot make any changes",
925
+ permissions: [],
926
+ uiPermissions: __spreadProps(__spreadValues({}, emptyUiPermissions), {
927
+ auditlog: [uiPermissionsById.read.value],
928
+ userManagement: [uiPermissionsById.read.value],
929
+ tenantManagement: [uiPermissionsById.read.value]
930
+ })
931
+ }
932
+ };
881
933
  var defaultPermissionSets = {
882
934
  [permissionSetIds.Basic]: {
883
935
  name: permissionSetIds.Basic,
@@ -908,6 +960,18 @@ var defaultPermissionSets = {
908
960
  releases: { [ALL_RELEASES]: [uiPermissionsById.read.value] }
909
961
  }
910
962
  },
963
+ [permissionSetIds.ReadTenants]: {
964
+ name: permissionSetIds.ReadTenants,
965
+ result: {
966
+ tenantManagement: [uiPermissionsById.read.value]
967
+ }
968
+ },
969
+ [permissionSetIds.ManageTenants]: {
970
+ name: permissionSetIds.ManageTenants,
971
+ result: {
972
+ tenantManagement: [uiPermissionsById.manage.value]
973
+ }
974
+ },
911
975
  [permissionSetIds.ReadUsers]: {
912
976
  name: permissionSetIds.ReadUsers,
913
977
  result: {
@@ -1483,16 +1547,16 @@ var initialState6 = {
1483
1547
  brand: ""
1484
1548
  },
1485
1549
  intentId: null,
1550
+ tenantList: __spreadProps(__spreadValues({}, TENANT_LIST_DEFAULT), {
1551
+ total: 0,
1552
+ tenants: [],
1553
+ selectedTenant: null,
1554
+ sort: {
1555
+ direction: SORTING_OPTIONS.desc,
1556
+ key: "name"
1557
+ }
1558
+ }),
1486
1559
  organization: {
1487
- tenantList: __spreadProps(__spreadValues({}, TENANT_LIST_DEFAULT), {
1488
- total: 0,
1489
- tenants: [],
1490
- selectedTenant: null,
1491
- sort: {
1492
- direction: SORTING_OPTIONS.desc,
1493
- key: "name"
1494
- }
1495
- })
1496
1560
  // id, name, status, tenant_token, plan
1497
1561
  },
1498
1562
  auditlog: {
@@ -1538,12 +1602,10 @@ var organizationSlice = (0, import_toolkit6.createSlice)({
1538
1602
  state.intentId = action.payload;
1539
1603
  },
1540
1604
  setOrganization: (state, action) => {
1541
- state.organization = __spreadProps(__spreadValues(__spreadValues({}, state.organization), action.payload), {
1542
- tenantList: __spreadValues(__spreadValues({}, state.organization.tenantList), action.payload.tenantList)
1543
- });
1605
+ state.organization = __spreadValues(__spreadValues({}, state.organization), action.payload);
1544
1606
  },
1545
1607
  setTenantListState: (state, action) => {
1546
- state.organization.tenantList = action.payload;
1608
+ state.tenantList = action.payload;
1547
1609
  },
1548
1610
  receiveExternalDeviceIntegrations: (state, action) => {
1549
1611
  state.externalDeviceIntegrations = action.payload;
@@ -2420,6 +2482,22 @@ var getAuditlogDevice = (0, import_toolkit15.createSelector)([getAuditLogEntry,
2420
2482
  }
2421
2483
  return __spreadValues(__spreadValues({}, auditlogDevice), devicesById[auditlogDevice.id]);
2422
2484
  });
2485
+ var getRelevantRoles = (0, import_toolkit15.createSelector)([getOrganization, getRolesList], ({ service_provider }, roles) => {
2486
+ if (service_provider) {
2487
+ return roles.reduce((accu, role) => {
2488
+ if (rolesById[role.id]) {
2489
+ return accu;
2490
+ }
2491
+ accu.push(role);
2492
+ return accu;
2493
+ }, Object.values(serviceProviderRolesById));
2494
+ }
2495
+ return Object.keys(rolesById).reverse().reduce((accu, key) => {
2496
+ const index = accu.findIndex(({ id }) => id === key);
2497
+ accu = [accu[index], ...accu.filter((item, itemIndex) => index !== itemIndex)];
2498
+ return accu;
2499
+ }, roles);
2500
+ });
2423
2501
 
2424
2502
  // src/store.ts
2425
2503
  var import_toolkit16 = require("@reduxjs/toolkit");