@northern.tech/store 0.41.3 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/dist/actions.d.cts +9 -10
  2. package/dist/actions.d.ts +9 -10
  3. package/dist/api/general-api.cjs +1 -1
  4. package/dist/api/general-api.cjs.map +1 -1
  5. package/dist/api/general-api.d.cts +0 -1
  6. package/dist/api/general-api.d.ts +0 -1
  7. package/dist/api/general-api.js +1 -1
  8. package/dist/api/users-api.cjs +1 -1
  9. package/dist/api/users-api.d.cts +1 -6
  10. package/dist/api/users-api.d.ts +1 -6
  11. package/dist/appSlice/constants.cjs +0 -5
  12. package/dist/appSlice/constants.cjs.map +1 -1
  13. package/dist/appSlice/constants.d.cts +1 -1
  14. package/dist/appSlice/constants.d.ts +1 -1
  15. package/dist/appSlice/constants.js +0 -5
  16. package/dist/appSlice/constants.js.map +1 -1
  17. package/dist/appSlice/index.cjs.map +1 -1
  18. package/dist/appSlice/index.d.cts +1 -1
  19. package/dist/appSlice/index.d.ts +1 -1
  20. package/dist/appSlice/index.js +1 -1
  21. package/dist/appSlice/mocks.d.cts +1 -2
  22. package/dist/appSlice/mocks.d.ts +1 -2
  23. package/dist/appSlice/selectors.cjs.map +1 -1
  24. package/dist/appSlice/selectors.d.cts +9 -10
  25. package/dist/appSlice/selectors.d.ts +9 -10
  26. package/dist/appSlice/thunks.d.cts +2 -3
  27. package/dist/appSlice/thunks.d.ts +2 -3
  28. package/dist/auth.cjs +1 -1
  29. package/dist/auth.d.cts +3 -10
  30. package/dist/auth.d.ts +3 -10
  31. package/dist/auth.js +1 -1
  32. package/dist/commonConstants.d.cts +1 -1
  33. package/dist/commonConstants.d.ts +1 -1
  34. package/dist/commonConstants.js +1 -1
  35. package/dist/commonSelectors.cjs +4 -3
  36. package/dist/commonSelectors.cjs.map +1 -1
  37. package/dist/commonSelectors.d.cts +20 -21
  38. package/dist/commonSelectors.d.ts +20 -21
  39. package/dist/commonSelectors.js +4 -3
  40. package/dist/commonSelectors.js.map +1 -1
  41. package/dist/{constants-Sn4gnNA3.d.ts → constants-B3Jdkn2b.d.cts} +2 -5
  42. package/dist/{constants-Sn4gnNA3.d.cts → constants-B3Jdkn2b.d.ts} +2 -5
  43. package/dist/{constants-CzjK2gV-.d.ts → constants-B_H4squx.d.ts} +4 -4
  44. package/dist/{constants-D9o0Cnk_.d.ts → constants-C6TIYaY4.d.cts} +1 -2
  45. package/dist/{constants-D9o0Cnk_.d.cts → constants-C6TIYaY4.d.ts} +1 -2
  46. package/dist/{constants-6kYRTdox.d.ts → constants-CEwun8TL.d.cts} +3 -2
  47. package/dist/{constants-6kYRTdox.d.cts → constants-CEwun8TL.d.ts} +3 -2
  48. package/dist/constants-C_SC_VKE.cjs.map +1 -1
  49. package/dist/{constants-xpheFFkA.js → constants-CerzXHnQ.js} +3 -3
  50. package/dist/{constants-xpheFFkA.js.map → constants-CerzXHnQ.js.map} +1 -1
  51. package/dist/{constants-DAi2zOZN.d.cts → constants-Rl3FJzFf.d.cts} +4 -4
  52. package/dist/{constants-B_7FCJQX.d.ts → constants-nKSWZ8oD.d.cts} +3 -8
  53. package/dist/{constants-B_7FCJQX.d.cts → constants-nKSWZ8oD.d.ts} +3 -8
  54. package/dist/constants.cjs +2 -0
  55. package/dist/constants.d.cts +6 -6
  56. package/dist/constants.d.ts +6 -6
  57. package/dist/constants.js +3 -3
  58. package/dist/deploymentsSlice/constants.d.cts +1 -1
  59. package/dist/deploymentsSlice/constants.d.ts +1 -1
  60. package/dist/deploymentsSlice/constants.js +1 -1
  61. package/dist/deploymentsSlice/index.cjs.map +1 -1
  62. package/dist/deploymentsSlice/index.d.cts +1 -1
  63. package/dist/deploymentsSlice/index.d.ts +1 -1
  64. package/dist/deploymentsSlice/index.js +1 -1
  65. package/dist/deploymentsSlice/mocks.d.cts +1 -2
  66. package/dist/deploymentsSlice/mocks.d.ts +1 -2
  67. package/dist/deploymentsSlice/selectors.cjs.map +1 -1
  68. package/dist/deploymentsSlice/selectors.d.cts +9 -10
  69. package/dist/deploymentsSlice/selectors.d.ts +9 -10
  70. package/dist/deploymentsSlice/selectors.js +1 -1
  71. package/dist/deploymentsSlice/thunks.d.cts +7 -13
  72. package/dist/deploymentsSlice/thunks.d.ts +7 -13
  73. package/dist/devicesSlice/constants.d.cts +1 -1
  74. package/dist/devicesSlice/constants.d.ts +1 -1
  75. package/dist/devicesSlice/constants.js +1 -1
  76. package/dist/devicesSlice/index.cjs +1 -1
  77. package/dist/devicesSlice/index.cjs.map +1 -1
  78. package/dist/devicesSlice/index.d.cts +2 -2
  79. package/dist/devicesSlice/index.d.ts +2 -2
  80. package/dist/devicesSlice/index.js +2 -2
  81. package/dist/devicesSlice/index.js.map +1 -1
  82. package/dist/devicesSlice/mocks.js +1 -1
  83. package/dist/devicesSlice/selectors.cjs.map +1 -1
  84. package/dist/devicesSlice/selectors.d.cts +9 -10
  85. package/dist/devicesSlice/selectors.d.ts +9 -10
  86. package/dist/devicesSlice/selectors.js +1 -1
  87. package/dist/devicesSlice/thunks.cjs +1 -2
  88. package/dist/devicesSlice/thunks.d.cts +11 -23
  89. package/dist/devicesSlice/thunks.d.ts +11 -23
  90. package/dist/devicesSlice/thunks.js +2 -2
  91. package/dist/{index-Bb4yvvgG.d.ts → index-B8td4-rY.d.ts} +1 -2
  92. package/dist/{index-C5oQrJGU.d.ts → index-BAGyeC-q.d.ts} +2 -3
  93. package/dist/{index-CgPgKMve.d.cts → index-BgF6rhXn.d.cts} +3 -4
  94. package/dist/{index-CnH51JfB.d.ts → index-Bs0c1-WY.d.ts} +4 -9
  95. package/dist/{index-BtGhTFBc.d.ts → index-Bvyf8OO6.d.ts} +9 -13
  96. package/dist/{index-m1c0qk2s.d.ts → index-C8uiyxnb.d.ts} +2 -3
  97. package/dist/{index-CSOj22xK.d.cts → index-C_LGDJN2.d.cts} +2 -3
  98. package/dist/{index-H9zg_3UV.d.ts → index-ChKTa1aL.d.ts} +2 -3
  99. package/dist/{index-vXsWdis1.d.cts → index-CiQ95u1W.d.cts} +9 -13
  100. package/dist/{index-DBUt8xVc.d.ts → index-CoObjWL4.d.cts} +1 -2
  101. package/dist/{index-DBUt8xVc.d.cts → index-CoObjWL4.d.ts} +1 -2
  102. package/dist/{index-BCErsO5h.d.ts → index-CpfhQHfg.d.ts} +3 -4
  103. package/dist/{index-BQCnJ5gh.d.cts → index-Ctj2r57a.d.cts} +2 -3
  104. package/dist/{index-Dn1SqQYh.d.cts → index-DeOpb2oK.d.cts} +4 -9
  105. package/dist/{index-VEayiYkv.d.cts → index-DiAjzARZ.d.cts} +2 -3
  106. package/dist/{index-EPmsL6Lb.d.cts → index-mvxjivTJ.d.cts} +1 -2
  107. package/dist/liststatehook.cjs.map +1 -1
  108. package/dist/liststatehook.d.cts +0 -1
  109. package/dist/liststatehook.d.ts +0 -1
  110. package/dist/locationutils.cjs.map +1 -1
  111. package/dist/locationutils.d.cts +14 -67
  112. package/dist/locationutils.d.ts +14 -67
  113. package/dist/locationutils.js +1 -1
  114. package/dist/monitorSlice/constants.d.cts +1 -1
  115. package/dist/monitorSlice/constants.d.ts +1 -1
  116. package/dist/monitorSlice/index.cjs.map +1 -1
  117. package/dist/monitorSlice/index.d.cts +1 -1
  118. package/dist/monitorSlice/index.d.ts +1 -1
  119. package/dist/monitorSlice/index.js +1 -1
  120. package/dist/monitorSlice/mocks.d.cts +1 -2
  121. package/dist/monitorSlice/mocks.d.ts +1 -2
  122. package/dist/monitorSlice/mocks.js +1 -1
  123. package/dist/monitorSlice/selectors.d.cts +1 -2
  124. package/dist/monitorSlice/selectors.d.ts +1 -2
  125. package/dist/monitorSlice/thunks.d.cts +4 -5
  126. package/dist/monitorSlice/thunks.d.ts +4 -5
  127. package/dist/monitorSlice/thunks.js +1 -1
  128. package/dist/onboardingSlice/index.cjs.map +1 -1
  129. package/dist/onboardingSlice/index.d.cts +1 -1
  130. package/dist/onboardingSlice/index.d.ts +1 -1
  131. package/dist/onboardingSlice/mocks.d.cts +1 -2
  132. package/dist/onboardingSlice/mocks.d.ts +1 -2
  133. package/dist/onboardingSlice/selectors.d.cts +2 -3
  134. package/dist/onboardingSlice/selectors.d.ts +2 -3
  135. package/dist/onboardingSlice/thunks.d.cts +4 -4
  136. package/dist/onboardingSlice/thunks.d.ts +4 -4
  137. package/dist/organizationSlice/constants.js +1 -1
  138. package/dist/organizationSlice/index.cjs.map +1 -1
  139. package/dist/organizationSlice/index.d.cts +1 -1
  140. package/dist/organizationSlice/index.d.ts +1 -1
  141. package/dist/organizationSlice/index.js +1 -1
  142. package/dist/organizationSlice/mocks.d.cts +3 -3
  143. package/dist/organizationSlice/mocks.d.ts +3 -3
  144. package/dist/organizationSlice/mocks.js +1 -1
  145. package/dist/organizationSlice/selectors.cjs.map +1 -1
  146. package/dist/organizationSlice/selectors.d.cts +11 -16
  147. package/dist/organizationSlice/selectors.d.ts +11 -16
  148. package/dist/organizationSlice/selectors.js +1 -1
  149. package/dist/organizationSlice/thunks.d.cts +6 -7
  150. package/dist/organizationSlice/thunks.d.ts +6 -7
  151. package/dist/organizationSlice/types.d.cts +1 -1
  152. package/dist/organizationSlice/types.d.ts +1 -1
  153. package/dist/releasesSlice/constants.cjs +2 -0
  154. package/dist/releasesSlice/constants.cjs.map +1 -1
  155. package/dist/releasesSlice/constants.d.cts +2 -2
  156. package/dist/releasesSlice/constants.d.ts +2 -2
  157. package/dist/releasesSlice/constants.js +2 -1
  158. package/dist/releasesSlice/constants.js.map +1 -1
  159. package/dist/releasesSlice/index.cjs.map +1 -1
  160. package/dist/releasesSlice/index.d.cts +1 -1
  161. package/dist/releasesSlice/index.d.ts +1 -1
  162. package/dist/releasesSlice/index.js +1 -1
  163. package/dist/releasesSlice/mocks.js +1 -1
  164. package/dist/releasesSlice/selectors.cjs.map +1 -1
  165. package/dist/releasesSlice/selectors.d.cts +9 -10
  166. package/dist/releasesSlice/selectors.d.ts +9 -10
  167. package/dist/releasesSlice/thunks.cjs +1 -1
  168. package/dist/releasesSlice/thunks.cjs.map +1 -1
  169. package/dist/releasesSlice/thunks.d.cts +4 -5
  170. package/dist/releasesSlice/thunks.d.ts +4 -5
  171. package/dist/releasesSlice/thunks.js +1 -1
  172. package/dist/{rolldown-runtime-D6vf50IK.cjs → rolldown-runtime-VH7oDXx4.cjs} +1 -1
  173. package/dist/sockethook.cjs +1 -2
  174. package/dist/sockethook.cjs.map +1 -1
  175. package/dist/sockethook.d.cts +1 -8
  176. package/dist/sockethook.d.ts +1 -8
  177. package/dist/sockethook.js +1 -2
  178. package/dist/sockethook.js.map +1 -1
  179. package/dist/{store-CkgokFlk.d.ts → store-CPptM5Ts.d.ts} +27 -48
  180. package/dist/{store-CGP5pCH8.d.cts → store-CUUm1GTI.d.cts} +27 -48
  181. package/dist/store.cjs.map +1 -1
  182. package/dist/store.d.cts +1 -1
  183. package/dist/store.d.ts +1 -1
  184. package/dist/store.js +1 -1
  185. package/dist/storehooks.cjs +30 -20
  186. package/dist/storehooks.cjs.map +1 -1
  187. package/dist/storehooks.d.cts +13 -4
  188. package/dist/storehooks.d.ts +13 -4
  189. package/dist/storehooks.js +31 -22
  190. package/dist/storehooks.js.map +1 -1
  191. package/dist/thunks.cjs +16 -107
  192. package/dist/thunks.cjs.map +1 -1
  193. package/dist/thunks.d.cts +2 -2
  194. package/dist/thunks.d.ts +2 -2
  195. package/dist/thunks.js +16 -106
  196. package/dist/thunks.js.map +1 -1
  197. package/dist/{types-uHmaedGU.d.ts → types-B3qGQoMx.d.ts} +3 -4
  198. package/dist/{types-yQ0ypHMZ.d.cts → types-B80ckxiy.d.cts} +3 -4
  199. package/dist/useDeploymentDevice.cjs +1 -1
  200. package/dist/useDeploymentDevice.cjs.map +1 -1
  201. package/dist/usersSlice/constants.d.cts +1 -1
  202. package/dist/usersSlice/constants.d.ts +1 -1
  203. package/dist/usersSlice/constants.js +1 -1
  204. package/dist/usersSlice/index.cjs.map +1 -1
  205. package/dist/usersSlice/index.d.cts +1 -1
  206. package/dist/usersSlice/index.d.ts +1 -1
  207. package/dist/usersSlice/index.js +1 -1
  208. package/dist/usersSlice/mocks.d.cts +2 -3
  209. package/dist/usersSlice/mocks.d.ts +2 -3
  210. package/dist/usersSlice/mocks.js +1 -1
  211. package/dist/usersSlice/selectors.cjs.map +1 -1
  212. package/dist/usersSlice/selectors.d.cts +10 -11
  213. package/dist/usersSlice/selectors.d.ts +10 -11
  214. package/dist/usersSlice/selectors.js +1 -1
  215. package/dist/usersSlice/thunks.d.cts +5 -6
  216. package/dist/usersSlice/thunks.d.ts +5 -6
  217. package/dist/utils.cjs +2 -2
  218. package/dist/utils.cjs.map +1 -1
  219. package/dist/utils.d.cts +1 -1
  220. package/dist/utils.d.ts +1 -1
  221. package/dist/utils.js +3 -3
  222. package/dist/utils.js.map +1 -1
  223. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"sockethook.cjs","names":["Cookies","Packr","MessageProtocols","MessageTypes","TIMEOUTS","apiUrl"],"sources":["../src/sockethook.ts"],"sourcesContent":["// Copyright 2022 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 { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { blobToString, byteArrayToString } from '@northern.tech/utils/helpers';\nimport { Packr } from 'msgpackr';\nimport Cookies from 'universal-cookie';\n\nimport { DEVICE_MESSAGE_PROTOCOLS as MessageProtocols, DEVICE_MESSAGE_TYPES as MessageTypes, TIMEOUTS, apiUrl } from './constants';\n\nconst cookies = new Cookies();\n\n// plain maps + omitted undefined fields keep the wire format compatible with the deviceconnect backend\nconst MessagePack = new Packr({ skipValues: [undefined], useRecords: false });\n\ntype UseSessionProps = {\n onClose: (event: CloseEvent) => void;\n onHealthCheckFailed: () => void;\n onMessageReceived: (body: Uint8Array) => void;\n onNotify: (message: string) => void;\n onOpen: (isOpen: boolean) => void;\n token: string;\n};\n\ntype MessageProps = {\n body?: Uint8Array;\n props: Record<string, string | number>;\n typ: string;\n};\n\ntype SessionWebSocket = WebSocket & { sessionId?: string };\n\ntype UseSessionReturn = [\n connect: (deviceId: string) => void,\n sendMessage: (message: MessageProps) => void,\n close: () => void,\n readyState: number,\n sessionId: string | undefined\n];\n\nexport const useSession = ({ onClose, onHealthCheckFailed, onMessageReceived, onNotify, onOpen, token }: UseSessionProps): UseSessionReturn => {\n const [sessionId, setSessionId] = useState<string | undefined>();\n const healthcheckTimeout = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const socketRef = useRef<SessionWebSocket | undefined>(undefined);\n const sendMessage = useCallback(({ typ, body, props }: MessageProps): void => {\n if (!socketRef.current) {\n return;\n }\n const proto_header = { proto: MessageProtocols.Shell, typ, sid: socketRef.current.sessionId, props };\n const encodedData = MessagePack.pack({ hdr: proto_header, body });\n socketRef.current.send(encodedData);\n }, []);\n\n const close = useCallback((): void => {\n if (!socketRef.current || socketRef.current?.readyState !== WebSocket.OPEN) {\n return;\n }\n sendMessage({ typ: MessageTypes.Stop, props: {} });\n socketRef.current.close();\n setSessionId(undefined);\n }, [sendMessage]);\n\n const healthcheckFailed = useCallback((): void => {\n onHealthCheckFailed();\n close();\n }, [close, onHealthCheckFailed]);\n\n const onSocketMessage = useCallback(\n (event: MessageEvent): Promise<void> =>\n blobToString(event.data).then((data: unknown) => {\n const {\n hdr: { props = {} as Record<string, string | number>, proto, sid, typ },\n body\n } = MessagePack.unpack(new Uint8Array(data as ArrayBuffer)) as {\n body: Uint8Array;\n hdr: { props: Record<string, string | number>; proto: number; sid: string; typ: string };\n };\n if (proto !== MessageProtocols.Shell) {\n return;\n }\n switch (typ) {\n case MessageTypes.New: {\n if (props.status == WebSocket.CLOSING) {\n onNotify(`Error: ${byteArrayToString(body as unknown as Buffer)}`);\n setSessionId(undefined);\n return close();\n } else {\n clearTimeout(healthcheckTimeout.current);\n healthcheckTimeout.current = setTimeout(healthcheckFailed, 65 * TIMEOUTS.oneSecond);\n if (socketRef.current) {\n socketRef.current.sessionId = sid;\n }\n return setSessionId(sid);\n }\n }\n case MessageTypes.Shell:\n return onMessageReceived(body);\n case MessageTypes.Stop:\n return close();\n case MessageTypes.Ping: {\n if (healthcheckTimeout.current) {\n clearTimeout(healthcheckTimeout.current);\n }\n sendMessage({ typ: MessageTypes.Pong, props: {} });\n const timeout = parseInt(props.timeout as string);\n if (timeout > 0) {\n healthcheckTimeout.current = setTimeout(healthcheckFailed, timeout * TIMEOUTS.oneSecond);\n }\n return;\n }\n default:\n break;\n }\n }),\n [close, healthcheckFailed, onMessageReceived, onNotify, sendMessage]\n );\n\n const onSocketError = useCallback(\n (error: Event): void => {\n onNotify(`WebSocket error: ${(error as ErrorEvent).message || 'Unknown error'}`);\n close();\n clearTimeout(healthcheckTimeout.current);\n },\n [close, onNotify]\n );\n\n const onSocketOpen = useCallback((): void => {\n sendMessage({ typ: MessageTypes.New, props: {} });\n onOpen(true);\n }, [onOpen, sendMessage]);\n\n const onSocketClose = useCallback(\n (e: CloseEvent): void => {\n console.log('closing');\n onClose(e);\n close();\n },\n [close, onClose]\n );\n\n const connect = useCallback(\n (deviceId: string): void => {\n const uri = `wss://${window.location.host}${apiUrl.v1}/deviceconnect/devices/${deviceId}/connect`;\n setSessionId(undefined);\n cookies.set('JWT', token, { path: '/', secure: true, sameSite: 'strict', maxAge: 5 });\n try {\n socketRef.current = new WebSocket(uri);\n } catch (error) {\n console.log(error);\n }\n },\n [token]\n );\n\n useEffect(() => {\n const currentSocket = socketRef.current;\n if (!currentSocket) {\n return;\n }\n\n currentSocket.addEventListener('close', onSocketClose);\n currentSocket.addEventListener('error', onSocketError);\n currentSocket.addEventListener('message', onSocketMessage);\n currentSocket.addEventListener('open', onSocketOpen);\n\n return () => {\n currentSocket.removeEventListener('close', onSocketClose);\n currentSocket.removeEventListener('error', onSocketError);\n currentSocket.removeEventListener('message', onSocketMessage);\n currentSocket.removeEventListener('open', onSocketOpen);\n };\n // eslint-disable-next-line react-hooks/refs\n }, [onSocketClose, onSocketError, onSocketMessage, onSocketOpen, socketRef.current?.readyState]);\n\n // eslint-disable-next-line react-hooks/refs\n return [connect, sendMessage, close, socketRef.current?.readyState ?? WebSocket.CLOSED, sessionId];\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"sockethook.cjs","names":["Cookies","Packr","useState","useRef","useCallback","MessageProtocols","MessageTypes","blobToString","byteArrayToString","TIMEOUTS","apiUrl"],"sources":["../src/sockethook.ts"],"sourcesContent":["// Copyright 2022 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 { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { blobToString, byteArrayToString } from '@northern.tech/utils/helpers';\nimport { Packr } from 'msgpackr';\nimport Cookies from 'universal-cookie';\n\nimport { DEVICE_MESSAGE_PROTOCOLS as MessageProtocols, DEVICE_MESSAGE_TYPES as MessageTypes, TIMEOUTS, apiUrl } from './constants';\n\nconst cookies = new Cookies();\n\n// plain maps + omitted undefined fields keep the wire format compatible with the deviceconnect backend\nconst MessagePack = new Packr({ skipValues: [undefined], useRecords: false });\n\ntype UseSessionProps = {\n onClose: (event: CloseEvent) => void;\n onHealthCheckFailed: () => void;\n onMessageReceived: (body: Uint8Array) => void;\n onNotify: (message: string) => void;\n onOpen: (isOpen: boolean) => void;\n token: string;\n};\n\ntype MessageProps = {\n body?: Uint8Array;\n props: Record<string, string | number>;\n typ: string;\n};\n\ntype SessionWebSocket = WebSocket & { sessionId?: string };\n\ntype UseSessionReturn = [\n connect: (deviceId: string) => void,\n sendMessage: (message: MessageProps) => void,\n close: () => void,\n readyState: number,\n sessionId: string | undefined\n];\n\nexport const useSession = ({ onClose, onHealthCheckFailed, onMessageReceived, onNotify, onOpen, token }: UseSessionProps): UseSessionReturn => {\n const [sessionId, setSessionId] = useState<string | undefined>();\n const healthcheckTimeout = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const socketRef = useRef<SessionWebSocket | undefined>(undefined);\n const sendMessage = useCallback(({ typ, body, props }: MessageProps): void => {\n if (!socketRef.current) {\n return;\n }\n const proto_header = { proto: MessageProtocols.Shell, typ, sid: socketRef.current.sessionId, props };\n const encodedData = MessagePack.pack({ hdr: proto_header, body });\n socketRef.current.send(encodedData);\n }, []);\n\n const close = useCallback((): void => {\n if (!socketRef.current || socketRef.current?.readyState !== WebSocket.OPEN) {\n return;\n }\n sendMessage({ typ: MessageTypes.Stop, props: {} });\n socketRef.current.close();\n setSessionId(undefined);\n }, [sendMessage]);\n\n const healthcheckFailed = useCallback((): void => {\n onHealthCheckFailed();\n close();\n }, [close, onHealthCheckFailed]);\n\n const onSocketMessage = useCallback(\n (event: MessageEvent): Promise<void> =>\n blobToString(event.data).then((data: unknown) => {\n const {\n hdr: { props = {} as Record<string, string | number>, proto, sid, typ },\n body\n } = MessagePack.unpack(new Uint8Array(data as ArrayBuffer)) as {\n body: Uint8Array;\n hdr: { props: Record<string, string | number>; proto: number; sid: string; typ: string };\n };\n if (proto !== MessageProtocols.Shell) {\n return;\n }\n switch (typ) {\n case MessageTypes.New: {\n if (props.status == WebSocket.CLOSING) {\n onNotify(`Error: ${byteArrayToString(body as unknown as Buffer)}`);\n setSessionId(undefined);\n return close();\n } else {\n clearTimeout(healthcheckTimeout.current);\n healthcheckTimeout.current = setTimeout(healthcheckFailed, 65 * TIMEOUTS.oneSecond);\n if (socketRef.current) {\n socketRef.current.sessionId = sid;\n }\n return setSessionId(sid);\n }\n }\n case MessageTypes.Shell:\n return onMessageReceived(body);\n case MessageTypes.Stop:\n return close();\n case MessageTypes.Ping: {\n if (healthcheckTimeout.current) {\n clearTimeout(healthcheckTimeout.current);\n }\n sendMessage({ typ: MessageTypes.Pong, props: {} });\n const timeout = parseInt(props.timeout as string);\n if (timeout > 0) {\n healthcheckTimeout.current = setTimeout(healthcheckFailed, timeout * TIMEOUTS.oneSecond);\n }\n return;\n }\n default:\n break;\n }\n }),\n [close, healthcheckFailed, onMessageReceived, onNotify, sendMessage]\n );\n\n const onSocketError = useCallback(\n (error: Event): void => {\n onNotify(`WebSocket error: ${(error as ErrorEvent).message || 'Unknown error'}`);\n close();\n clearTimeout(healthcheckTimeout.current);\n },\n [close, onNotify]\n );\n\n const onSocketOpen = useCallback((): void => {\n sendMessage({ typ: MessageTypes.New, props: {} });\n onOpen(true);\n }, [onOpen, sendMessage]);\n\n const onSocketClose = useCallback(\n (e: CloseEvent): void => {\n console.log('closing');\n onClose(e);\n close();\n },\n [close, onClose]\n );\n\n const connect = useCallback(\n (deviceId: string): void => {\n const uri = `wss://${window.location.host}${apiUrl.v1}/deviceconnect/devices/${deviceId}/connect`;\n setSessionId(undefined);\n cookies.set('JWT', token, { path: '/', secure: true, sameSite: 'strict', maxAge: 5 });\n try {\n socketRef.current = new WebSocket(uri);\n } catch (error) {\n console.log(error);\n }\n },\n [token]\n );\n\n useEffect(() => {\n const currentSocket = socketRef.current;\n if (!currentSocket) {\n return;\n }\n\n currentSocket.addEventListener('close', onSocketClose);\n currentSocket.addEventListener('error', onSocketError);\n currentSocket.addEventListener('message', onSocketMessage);\n currentSocket.addEventListener('open', onSocketOpen);\n\n return () => {\n currentSocket.removeEventListener('close', onSocketClose);\n currentSocket.removeEventListener('error', onSocketError);\n currentSocket.removeEventListener('message', onSocketMessage);\n currentSocket.removeEventListener('open', onSocketOpen);\n };\n // eslint-disable-next-line react-hooks/refs\n }, [onSocketClose, onSocketError, onSocketMessage, onSocketOpen, socketRef.current?.readyState]);\n\n // eslint-disable-next-line react-hooks/refs\n return [connect, sendMessage, close, socketRef.current?.readyState ?? WebSocket.CLOSED, sessionId];\n};\n"],"mappings":"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"}
@@ -13,14 +13,7 @@ type MessageProps = {
13
13
  typ: string;
14
14
  };
15
15
  type UseSessionReturn = [connect: (deviceId: string) => void, sendMessage: (message: MessageProps) => void, close: () => void, readyState: number, sessionId: string | undefined];
16
- declare const useSession: ({
17
- onClose,
18
- onHealthCheckFailed,
19
- onMessageReceived,
20
- onNotify,
21
- onOpen,
22
- token
23
- }: UseSessionProps) => UseSessionReturn;
16
+ declare const useSession: ({ onClose, onHealthCheckFailed, onMessageReceived, onNotify, onOpen, token }: UseSessionProps) => UseSessionReturn;
24
17
  //#endregion
25
18
  export { useSession };
26
19
  //# sourceMappingURL=sockethook.d.cts.map
@@ -13,14 +13,7 @@ type MessageProps = {
13
13
  typ: string;
14
14
  };
15
15
  type UseSessionReturn = [connect: (deviceId: string) => void, sendMessage: (message: MessageProps) => void, close: () => void, readyState: number, sessionId: string | undefined];
16
- declare const useSession: ({
17
- onClose,
18
- onHealthCheckFailed,
19
- onMessageReceived,
20
- onNotify,
21
- onOpen,
22
- token
23
- }: UseSessionProps) => UseSessionReturn;
16
+ declare const useSession: ({ onClose, onHealthCheckFailed, onMessageReceived, onNotify, onOpen, token }: UseSessionProps) => UseSessionReturn;
24
17
  //#endregion
25
18
  export { useSession };
26
19
  //# sourceMappingURL=sockethook.d.ts.map
@@ -1,4 +1,4 @@
1
- import { Nt as TIMEOUTS, h as apiUrl, lt as DEVICE_MESSAGE_PROTOCOLS, ut as DEVICE_MESSAGE_TYPES } from "./constants-xpheFFkA.js";
1
+ import { Pt as TIMEOUTS, dt as DEVICE_MESSAGE_TYPES, h as apiUrl, ut as DEVICE_MESSAGE_PROTOCOLS } from "./constants-CerzXHnQ.js";
2
2
  import { blobToString, byteArrayToString } from "@northern.tech/utils/helpers";
3
3
  import Cookies from "universal-cookie";
4
4
  import { useCallback, useEffect, useRef, useState } from "react";
@@ -66,7 +66,6 @@ const useSession = ({ onClose, onHealthCheckFailed, onMessageReceived, onNotify,
66
66
  if (timeout > 0) healthcheckTimeout.current = setTimeout(healthcheckFailed, timeout * TIMEOUTS.oneSecond);
67
67
  return;
68
68
  }
69
- default: break;
70
69
  }
71
70
  }), [
72
71
  close,
@@ -1 +1 @@
1
- {"version":3,"file":"sockethook.js","names":["MessageProtocols","MessageTypes"],"sources":["../src/sockethook.ts"],"sourcesContent":["// Copyright 2022 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 { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { blobToString, byteArrayToString } from '@northern.tech/utils/helpers';\nimport { Packr } from 'msgpackr';\nimport Cookies from 'universal-cookie';\n\nimport { DEVICE_MESSAGE_PROTOCOLS as MessageProtocols, DEVICE_MESSAGE_TYPES as MessageTypes, TIMEOUTS, apiUrl } from './constants';\n\nconst cookies = new Cookies();\n\n// plain maps + omitted undefined fields keep the wire format compatible with the deviceconnect backend\nconst MessagePack = new Packr({ skipValues: [undefined], useRecords: false });\n\ntype UseSessionProps = {\n onClose: (event: CloseEvent) => void;\n onHealthCheckFailed: () => void;\n onMessageReceived: (body: Uint8Array) => void;\n onNotify: (message: string) => void;\n onOpen: (isOpen: boolean) => void;\n token: string;\n};\n\ntype MessageProps = {\n body?: Uint8Array;\n props: Record<string, string | number>;\n typ: string;\n};\n\ntype SessionWebSocket = WebSocket & { sessionId?: string };\n\ntype UseSessionReturn = [\n connect: (deviceId: string) => void,\n sendMessage: (message: MessageProps) => void,\n close: () => void,\n readyState: number,\n sessionId: string | undefined\n];\n\nexport const useSession = ({ onClose, onHealthCheckFailed, onMessageReceived, onNotify, onOpen, token }: UseSessionProps): UseSessionReturn => {\n const [sessionId, setSessionId] = useState<string | undefined>();\n const healthcheckTimeout = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const socketRef = useRef<SessionWebSocket | undefined>(undefined);\n const sendMessage = useCallback(({ typ, body, props }: MessageProps): void => {\n if (!socketRef.current) {\n return;\n }\n const proto_header = { proto: MessageProtocols.Shell, typ, sid: socketRef.current.sessionId, props };\n const encodedData = MessagePack.pack({ hdr: proto_header, body });\n socketRef.current.send(encodedData);\n }, []);\n\n const close = useCallback((): void => {\n if (!socketRef.current || socketRef.current?.readyState !== WebSocket.OPEN) {\n return;\n }\n sendMessage({ typ: MessageTypes.Stop, props: {} });\n socketRef.current.close();\n setSessionId(undefined);\n }, [sendMessage]);\n\n const healthcheckFailed = useCallback((): void => {\n onHealthCheckFailed();\n close();\n }, [close, onHealthCheckFailed]);\n\n const onSocketMessage = useCallback(\n (event: MessageEvent): Promise<void> =>\n blobToString(event.data).then((data: unknown) => {\n const {\n hdr: { props = {} as Record<string, string | number>, proto, sid, typ },\n body\n } = MessagePack.unpack(new Uint8Array(data as ArrayBuffer)) as {\n body: Uint8Array;\n hdr: { props: Record<string, string | number>; proto: number; sid: string; typ: string };\n };\n if (proto !== MessageProtocols.Shell) {\n return;\n }\n switch (typ) {\n case MessageTypes.New: {\n if (props.status == WebSocket.CLOSING) {\n onNotify(`Error: ${byteArrayToString(body as unknown as Buffer)}`);\n setSessionId(undefined);\n return close();\n } else {\n clearTimeout(healthcheckTimeout.current);\n healthcheckTimeout.current = setTimeout(healthcheckFailed, 65 * TIMEOUTS.oneSecond);\n if (socketRef.current) {\n socketRef.current.sessionId = sid;\n }\n return setSessionId(sid);\n }\n }\n case MessageTypes.Shell:\n return onMessageReceived(body);\n case MessageTypes.Stop:\n return close();\n case MessageTypes.Ping: {\n if (healthcheckTimeout.current) {\n clearTimeout(healthcheckTimeout.current);\n }\n sendMessage({ typ: MessageTypes.Pong, props: {} });\n const timeout = parseInt(props.timeout as string);\n if (timeout > 0) {\n healthcheckTimeout.current = setTimeout(healthcheckFailed, timeout * TIMEOUTS.oneSecond);\n }\n return;\n }\n default:\n break;\n }\n }),\n [close, healthcheckFailed, onMessageReceived, onNotify, sendMessage]\n );\n\n const onSocketError = useCallback(\n (error: Event): void => {\n onNotify(`WebSocket error: ${(error as ErrorEvent).message || 'Unknown error'}`);\n close();\n clearTimeout(healthcheckTimeout.current);\n },\n [close, onNotify]\n );\n\n const onSocketOpen = useCallback((): void => {\n sendMessage({ typ: MessageTypes.New, props: {} });\n onOpen(true);\n }, [onOpen, sendMessage]);\n\n const onSocketClose = useCallback(\n (e: CloseEvent): void => {\n console.log('closing');\n onClose(e);\n close();\n },\n [close, onClose]\n );\n\n const connect = useCallback(\n (deviceId: string): void => {\n const uri = `wss://${window.location.host}${apiUrl.v1}/deviceconnect/devices/${deviceId}/connect`;\n setSessionId(undefined);\n cookies.set('JWT', token, { path: '/', secure: true, sameSite: 'strict', maxAge: 5 });\n try {\n socketRef.current = new WebSocket(uri);\n } catch (error) {\n console.log(error);\n }\n },\n [token]\n );\n\n useEffect(() => {\n const currentSocket = socketRef.current;\n if (!currentSocket) {\n return;\n }\n\n currentSocket.addEventListener('close', onSocketClose);\n currentSocket.addEventListener('error', onSocketError);\n currentSocket.addEventListener('message', onSocketMessage);\n currentSocket.addEventListener('open', onSocketOpen);\n\n return () => {\n currentSocket.removeEventListener('close', onSocketClose);\n currentSocket.removeEventListener('error', onSocketError);\n currentSocket.removeEventListener('message', onSocketMessage);\n currentSocket.removeEventListener('open', onSocketOpen);\n };\n // eslint-disable-next-line react-hooks/refs\n }, [onSocketClose, onSocketError, onSocketMessage, onSocketOpen, socketRef.current?.readyState]);\n\n // eslint-disable-next-line react-hooks/refs\n return [connect, sendMessage, close, socketRef.current?.readyState ?? WebSocket.CLOSED, sessionId];\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"sockethook.js","names":["MessageProtocols","MessageTypes"],"sources":["../src/sockethook.ts"],"sourcesContent":["// Copyright 2022 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 { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { blobToString, byteArrayToString } from '@northern.tech/utils/helpers';\nimport { Packr } from 'msgpackr';\nimport Cookies from 'universal-cookie';\n\nimport { DEVICE_MESSAGE_PROTOCOLS as MessageProtocols, DEVICE_MESSAGE_TYPES as MessageTypes, TIMEOUTS, apiUrl } from './constants';\n\nconst cookies = new Cookies();\n\n// plain maps + omitted undefined fields keep the wire format compatible with the deviceconnect backend\nconst MessagePack = new Packr({ skipValues: [undefined], useRecords: false });\n\ntype UseSessionProps = {\n onClose: (event: CloseEvent) => void;\n onHealthCheckFailed: () => void;\n onMessageReceived: (body: Uint8Array) => void;\n onNotify: (message: string) => void;\n onOpen: (isOpen: boolean) => void;\n token: string;\n};\n\ntype MessageProps = {\n body?: Uint8Array;\n props: Record<string, string | number>;\n typ: string;\n};\n\ntype SessionWebSocket = WebSocket & { sessionId?: string };\n\ntype UseSessionReturn = [\n connect: (deviceId: string) => void,\n sendMessage: (message: MessageProps) => void,\n close: () => void,\n readyState: number,\n sessionId: string | undefined\n];\n\nexport const useSession = ({ onClose, onHealthCheckFailed, onMessageReceived, onNotify, onOpen, token }: UseSessionProps): UseSessionReturn => {\n const [sessionId, setSessionId] = useState<string | undefined>();\n const healthcheckTimeout = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const socketRef = useRef<SessionWebSocket | undefined>(undefined);\n const sendMessage = useCallback(({ typ, body, props }: MessageProps): void => {\n if (!socketRef.current) {\n return;\n }\n const proto_header = { proto: MessageProtocols.Shell, typ, sid: socketRef.current.sessionId, props };\n const encodedData = MessagePack.pack({ hdr: proto_header, body });\n socketRef.current.send(encodedData);\n }, []);\n\n const close = useCallback((): void => {\n if (!socketRef.current || socketRef.current?.readyState !== WebSocket.OPEN) {\n return;\n }\n sendMessage({ typ: MessageTypes.Stop, props: {} });\n socketRef.current.close();\n setSessionId(undefined);\n }, [sendMessage]);\n\n const healthcheckFailed = useCallback((): void => {\n onHealthCheckFailed();\n close();\n }, [close, onHealthCheckFailed]);\n\n const onSocketMessage = useCallback(\n (event: MessageEvent): Promise<void> =>\n blobToString(event.data).then((data: unknown) => {\n const {\n hdr: { props = {} as Record<string, string | number>, proto, sid, typ },\n body\n } = MessagePack.unpack(new Uint8Array(data as ArrayBuffer)) as {\n body: Uint8Array;\n hdr: { props: Record<string, string | number>; proto: number; sid: string; typ: string };\n };\n if (proto !== MessageProtocols.Shell) {\n return;\n }\n switch (typ) {\n case MessageTypes.New: {\n if (props.status == WebSocket.CLOSING) {\n onNotify(`Error: ${byteArrayToString(body as unknown as Buffer)}`);\n setSessionId(undefined);\n return close();\n } else {\n clearTimeout(healthcheckTimeout.current);\n healthcheckTimeout.current = setTimeout(healthcheckFailed, 65 * TIMEOUTS.oneSecond);\n if (socketRef.current) {\n socketRef.current.sessionId = sid;\n }\n return setSessionId(sid);\n }\n }\n case MessageTypes.Shell:\n return onMessageReceived(body);\n case MessageTypes.Stop:\n return close();\n case MessageTypes.Ping: {\n if (healthcheckTimeout.current) {\n clearTimeout(healthcheckTimeout.current);\n }\n sendMessage({ typ: MessageTypes.Pong, props: {} });\n const timeout = parseInt(props.timeout as string);\n if (timeout > 0) {\n healthcheckTimeout.current = setTimeout(healthcheckFailed, timeout * TIMEOUTS.oneSecond);\n }\n return;\n }\n default:\n break;\n }\n }),\n [close, healthcheckFailed, onMessageReceived, onNotify, sendMessage]\n );\n\n const onSocketError = useCallback(\n (error: Event): void => {\n onNotify(`WebSocket error: ${(error as ErrorEvent).message || 'Unknown error'}`);\n close();\n clearTimeout(healthcheckTimeout.current);\n },\n [close, onNotify]\n );\n\n const onSocketOpen = useCallback((): void => {\n sendMessage({ typ: MessageTypes.New, props: {} });\n onOpen(true);\n }, [onOpen, sendMessage]);\n\n const onSocketClose = useCallback(\n (e: CloseEvent): void => {\n console.log('closing');\n onClose(e);\n close();\n },\n [close, onClose]\n );\n\n const connect = useCallback(\n (deviceId: string): void => {\n const uri = `wss://${window.location.host}${apiUrl.v1}/deviceconnect/devices/${deviceId}/connect`;\n setSessionId(undefined);\n cookies.set('JWT', token, { path: '/', secure: true, sameSite: 'strict', maxAge: 5 });\n try {\n socketRef.current = new WebSocket(uri);\n } catch (error) {\n console.log(error);\n }\n },\n [token]\n );\n\n useEffect(() => {\n const currentSocket = socketRef.current;\n if (!currentSocket) {\n return;\n }\n\n currentSocket.addEventListener('close', onSocketClose);\n currentSocket.addEventListener('error', onSocketError);\n currentSocket.addEventListener('message', onSocketMessage);\n currentSocket.addEventListener('open', onSocketOpen);\n\n return () => {\n currentSocket.removeEventListener('close', onSocketClose);\n currentSocket.removeEventListener('error', onSocketError);\n currentSocket.removeEventListener('message', onSocketMessage);\n currentSocket.removeEventListener('open', onSocketOpen);\n };\n // eslint-disable-next-line react-hooks/refs\n }, [onSocketClose, onSocketError, onSocketMessage, onSocketOpen, socketRef.current?.readyState]);\n\n // eslint-disable-next-line react-hooks/refs\n return [connect, sendMessage, close, socketRef.current?.readyState ?? WebSocket.CLOSED, sessionId];\n};\n"],"mappings":"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"}
@@ -1,18 +1,17 @@
1
- import { H as emptyUiPermissions, S as Role, St as FilterOperator, m as DeviceIssueOptionKey } from "./constants-CzjK2gV-.js";
2
- import { o as UserSliceType } from "./index-BCErsO5h.js";
3
- import { i as ReleaseSliceType } from "./index-m1c0qk2s.js";
4
- import { a as PricePreview } from "./types-uHmaedGU.js";
5
- import { n as OnboardingSliceType } from "./index-DBUt8xVc.js";
6
- import { o as DeploymentsSliceType, t as Deployment } from "./index-Bb4yvvgG.js";
7
- import { c as InventoryAttributes, n as DeviceFilter, r as DeviceGroup, s as DeviceSliceType } from "./index-BtGhTFBc.js";
8
- import { t as AppSliceType } from "./index-CnH51JfB.js";
9
- import { t as MonitorSliceType } from "./index-C5oQrJGU.js";
10
- import { t as OrganizationSliceType } from "./index-H9zg_3UV.js";
1
+ import { Ct as FilterOperator, H as emptyUiPermissions, S as Role, m as DeviceIssueOptionKey } from "./constants-B_H4squx.js";
2
+ import { o as UserSliceType } from "./index-CpfhQHfg.js";
3
+ import { i as ReleaseSliceType } from "./index-C8uiyxnb.js";
4
+ import { a as PricePreview } from "./types-B3qGQoMx.js";
5
+ import { n as OnboardingSliceType } from "./index-CoObjWL4.js";
6
+ import { o as DeploymentsSliceType, t as Deployment } from "./index-B8td4-rY.js";
7
+ import { c as DeviceSliceType, i as DeviceGroup, l as InventoryAttributes, r as DeviceFilter } from "./index-Bvyf8OO6.js";
8
+ import { t as AppSliceType } from "./index-Bs0c1-WY.js";
9
+ import { t as MonitorSliceType } from "./index-BAGyeC-q.js";
10
+ import { t as OrganizationSliceType } from "./index-ChKTa1aL.js";
11
11
  import { Reducer, UnknownAction } from "@reduxjs/toolkit";
12
12
  import { TypedUseSelectorHook } from "react-redux";
13
13
  import { AxiosError } from "axios";
14
14
  import { AttributeFilterPredicate, AttributeResponse, FilterV2, InvoiceLineItem, Scope } from "@northern.tech/types/MenderTypes";
15
-
16
15
  //#region src/utils.d.ts
17
16
  type FilterProcessorValue = string | string[] | number | boolean;
18
17
  type FilterTerm = {
@@ -23,14 +22,7 @@ type FilterTerm = {
23
22
  };
24
23
  declare const mapFiltersToTerms: (filters: DeviceFilter[]) => FilterTerm[];
25
24
  declare const mapTermsToFilters: (terms: FilterTerm[]) => DeviceFilter[];
26
- declare const convertDeviceListStateToFilters: ({
27
- filters,
28
- group,
29
- groups,
30
- offlineThreshold,
31
- selectedIssues,
32
- status
33
- }: {
25
+ declare const convertDeviceListStateToFilters: ({ filters, group, groups, offlineThreshold, selectedIssues, status }: {
34
26
  filters?: DeviceFilter[];
35
27
  group?: string;
36
28
  groups?: {
@@ -45,28 +37,19 @@ declare const convertDeviceListStateToFilters: ({
45
37
  };
46
38
  declare const filtersFilter: (item: DeviceFilter, index: number, array: DeviceFilter[]) => boolean;
47
39
  declare const stripOrchestratorManifestPrefix: (key: string) => string;
48
- declare const getAttributeScopeLabel: ({
49
- key,
50
- scope
51
- }: {
40
+ declare const getAttributeScopeLabel: ({ key, scope }: {
52
41
  key?: string;
53
42
  scope?: string;
54
43
  }) => string;
55
44
  declare const stripUndefined: <T extends Record<string, unknown>>(obj: T) => Partial<T>;
56
- declare const listItemMapper: <T extends object>(byId: Record<string, T>, ids: string[], {
57
- cutOffSize,
58
- defaultObject
59
- }: {
45
+ declare const listItemMapper: <T extends object>(byId: Record<string, T>, ids: string[], { cutOffSize, defaultObject }: {
60
46
  cutOffSize?: number;
61
47
  defaultObject?: Partial<T>;
62
48
  }) => T[];
63
49
  type UiPermissions = typeof emptyUiPermissions;
64
50
  declare const mergePermissions: (existingPermissions: UiPermissions | undefined, addedPermissions: UiPermissions) => UiPermissions;
65
51
  declare const mapUserRolesToUiPermissions: (userRoles: string[], roles: Record<string, Role>) => UiPermissions;
66
- declare const progress: ({
67
- loaded,
68
- total
69
- }: {
52
+ declare const progress: ({ loaded, total }: {
70
53
  loaded: number;
71
54
  total?: number;
72
55
  }) => number;
@@ -115,11 +98,7 @@ declare const convertToBackendSPLimits: (limits: Record<string, number | string>
115
98
  Name: string;
116
99
  value: number;
117
100
  }>;
118
- declare const dispatchDelayed: ({
119
- action,
120
- delay,
121
- dispatch
122
- }: {
101
+ declare const dispatchDelayed: ({ action, delay, dispatch }: {
123
102
  action: any;
124
103
  delay?: number;
125
104
  dispatch: AppDispatch;
@@ -237,7 +216,7 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
237
216
  pendingMeta?: unknown;
238
217
  fulfilledMeta?: unknown;
239
218
  rejectedMeta?: unknown;
240
- }, keyof ThunkApiConfig> extends infer T ? { [K in keyof T]: T[K] } : never> & {
219
+ }, keyof ThunkApiConfig> extends (infer T) ? { [K in keyof T]: T[K]; } : never> & {
241
220
  withTypes<ThunkApiConfig_1 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
242
221
  dispatch: AppDispatch;
243
222
  state: RootState;
@@ -247,7 +226,7 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
247
226
  pendingMeta?: unknown;
248
227
  fulfilledMeta?: unknown;
249
228
  rejectedMeta?: unknown;
250
- }, keyof ThunkApiConfig> extends infer T_2 ? { [K in keyof T_2]: T_2[K] } : never, keyof ThunkApiConfig_1> extends infer T_1 ? { [K_1 in keyof T_1]: T_1[K_1] } : never> & {
229
+ }, keyof ThunkApiConfig> extends (infer T_2) ? { [K in keyof T_2]: T_2[K]; } : never, keyof ThunkApiConfig_1> extends (infer T_1) ? { [K_1 in keyof T_1]: T_1[K_1]; } : never> & {
251
230
  withTypes<ThunkApiConfig_2 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
252
231
  dispatch: AppDispatch;
253
232
  state: RootState;
@@ -257,7 +236,7 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
257
236
  pendingMeta?: unknown;
258
237
  fulfilledMeta?: unknown;
259
238
  rejectedMeta?: unknown;
260
- }, keyof ThunkApiConfig> extends infer T_5 ? { [K in keyof T_5]: T_5[K] } : never, keyof ThunkApiConfig_1> extends infer T_4 ? { [K_1 in keyof T_4]: T_4[K_1] } : never, keyof ThunkApiConfig_2> extends infer T_3 ? { [K_2 in keyof T_3]: T_3[K_2] } : never> & {
239
+ }, keyof ThunkApiConfig> extends (infer T_5) ? { [K in keyof T_5]: T_5[K]; } : never, keyof ThunkApiConfig_1> extends (infer T_4) ? { [K_1 in keyof T_4]: T_4[K_1]; } : never, keyof ThunkApiConfig_2> extends (infer T_3) ? { [K_2 in keyof T_3]: T_3[K_2]; } : never> & {
261
240
  withTypes<ThunkApiConfig_3 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
262
241
  dispatch: AppDispatch;
263
242
  state: RootState;
@@ -267,7 +246,7 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
267
246
  pendingMeta?: unknown;
268
247
  fulfilledMeta?: unknown;
269
248
  rejectedMeta?: unknown;
270
- }, keyof ThunkApiConfig> extends infer T_9 ? { [K in keyof T_9]: T_9[K] } : never, keyof ThunkApiConfig_1> extends infer T_8 ? { [K_1 in keyof T_8]: T_8[K_1] } : never, keyof ThunkApiConfig_2> extends infer T_7 ? { [K_2 in keyof T_7]: T_7[K_2] } : never, keyof ThunkApiConfig_3> extends infer T_6 ? { [K_3 in keyof T_6]: T_6[K_3] } : never> & {
249
+ }, keyof ThunkApiConfig> extends (infer T_9) ? { [K in keyof T_9]: T_9[K]; } : never, keyof ThunkApiConfig_1> extends (infer T_8) ? { [K_1 in keyof T_8]: T_8[K_1]; } : never, keyof ThunkApiConfig_2> extends (infer T_7) ? { [K_2 in keyof T_7]: T_7[K_2]; } : never, keyof ThunkApiConfig_3> extends (infer T_6) ? { [K_3 in keyof T_6]: T_6[K_3]; } : never> & {
271
250
  withTypes<ThunkApiConfig_4 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
272
251
  dispatch: AppDispatch;
273
252
  state: RootState;
@@ -277,7 +256,7 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
277
256
  pendingMeta?: unknown;
278
257
  fulfilledMeta?: unknown;
279
258
  rejectedMeta?: unknown;
280
- }, keyof ThunkApiConfig> extends infer T_14 ? { [K in keyof T_14]: T_14[K] } : never, keyof ThunkApiConfig_1> extends infer T_13 ? { [K_1 in keyof T_13]: T_13[K_1] } : never, keyof ThunkApiConfig_2> extends infer T_12 ? { [K_2 in keyof T_12]: T_12[K_2] } : never, keyof ThunkApiConfig_3> extends infer T_11 ? { [K_3 in keyof T_11]: T_11[K_3] } : never, keyof ThunkApiConfig_4> extends infer T_10 ? { [K_4 in keyof T_10]: T_10[K_4] } : never> & {
259
+ }, keyof ThunkApiConfig> extends (infer T_14) ? { [K in keyof T_14]: T_14[K]; } : never, keyof ThunkApiConfig_1> extends (infer T_13) ? { [K_1 in keyof T_13]: T_13[K_1]; } : never, keyof ThunkApiConfig_2> extends (infer T_12) ? { [K_2 in keyof T_12]: T_12[K_2]; } : never, keyof ThunkApiConfig_3> extends (infer T_11) ? { [K_3 in keyof T_11]: T_11[K_3]; } : never, keyof ThunkApiConfig_4> extends (infer T_10) ? { [K_4 in keyof T_10]: T_10[K_4]; } : never> & {
281
260
  withTypes<ThunkApiConfig_5 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_5 & Omit<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
282
261
  dispatch: AppDispatch;
283
262
  state: RootState;
@@ -287,7 +266,7 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
287
266
  pendingMeta?: unknown;
288
267
  fulfilledMeta?: unknown;
289
268
  rejectedMeta?: unknown;
290
- }, keyof ThunkApiConfig> extends infer T_20 ? { [K in keyof T_20]: T_20[K] } : never, keyof ThunkApiConfig_1> extends infer T_19 ? { [K_1 in keyof T_19]: T_19[K_1] } : never, keyof ThunkApiConfig_2> extends infer T_18 ? { [K_2 in keyof T_18]: T_18[K_2] } : never, keyof ThunkApiConfig_3> extends infer T_17 ? { [K_3 in keyof T_17]: T_17[K_3] } : never, keyof ThunkApiConfig_4> extends infer T_16 ? { [K_4 in keyof T_16]: T_16[K_4] } : never, keyof ThunkApiConfig_5> extends infer T_15 ? { [K_5 in keyof T_15]: T_15[K_5] } : never> & {
269
+ }, keyof ThunkApiConfig> extends (infer T_20) ? { [K in keyof T_20]: T_20[K]; } : never, keyof ThunkApiConfig_1> extends (infer T_19) ? { [K_1 in keyof T_19]: T_19[K_1]; } : never, keyof ThunkApiConfig_2> extends (infer T_18) ? { [K_2 in keyof T_18]: T_18[K_2]; } : never, keyof ThunkApiConfig_3> extends (infer T_17) ? { [K_3 in keyof T_17]: T_17[K_3]; } : never, keyof ThunkApiConfig_4> extends (infer T_16) ? { [K_4 in keyof T_16]: T_16[K_4]; } : never, keyof ThunkApiConfig_5> extends (infer T_15) ? { [K_5 in keyof T_15]: T_15[K_5]; } : never> & {
291
270
  withTypes<ThunkApiConfig_6 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_6 & Omit<ThunkApiConfig_5 & Omit<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
292
271
  dispatch: AppDispatch;
293
272
  state: RootState;
@@ -297,7 +276,7 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
297
276
  pendingMeta?: unknown;
298
277
  fulfilledMeta?: unknown;
299
278
  rejectedMeta?: unknown;
300
- }, keyof ThunkApiConfig> extends infer T_27 ? { [K in keyof T_27]: T_27[K] } : never, keyof ThunkApiConfig_1> extends infer T_26 ? { [K_1 in keyof T_26]: T_26[K_1] } : never, keyof ThunkApiConfig_2> extends infer T_25 ? { [K_2 in keyof T_25]: T_25[K_2] } : never, keyof ThunkApiConfig_3> extends infer T_24 ? { [K_3 in keyof T_24]: T_24[K_3] } : never, keyof ThunkApiConfig_4> extends infer T_23 ? { [K_4 in keyof T_23]: T_23[K_4] } : never, keyof ThunkApiConfig_5> extends infer T_22 ? { [K_5 in keyof T_22]: T_22[K_5] } : never, keyof ThunkApiConfig_6> extends infer T_21 ? { [K_6 in keyof T_21]: T_21[K_6] } : never> & {
279
+ }, keyof ThunkApiConfig> extends (infer T_27) ? { [K in keyof T_27]: T_27[K]; } : never, keyof ThunkApiConfig_1> extends (infer T_26) ? { [K_1 in keyof T_26]: T_26[K_1]; } : never, keyof ThunkApiConfig_2> extends (infer T_25) ? { [K_2 in keyof T_25]: T_25[K_2]; } : never, keyof ThunkApiConfig_3> extends (infer T_24) ? { [K_3 in keyof T_24]: T_24[K_3]; } : never, keyof ThunkApiConfig_4> extends (infer T_23) ? { [K_4 in keyof T_23]: T_23[K_4]; } : never, keyof ThunkApiConfig_5> extends (infer T_22) ? { [K_5 in keyof T_22]: T_22[K_5]; } : never, keyof ThunkApiConfig_6> extends (infer T_21) ? { [K_6 in keyof T_21]: T_21[K_6]; } : never> & {
301
280
  withTypes<ThunkApiConfig_7 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_7 & Omit<ThunkApiConfig_6 & Omit<ThunkApiConfig_5 & Omit<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
302
281
  dispatch: AppDispatch;
303
282
  state: RootState;
@@ -307,7 +286,7 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
307
286
  pendingMeta?: unknown;
308
287
  fulfilledMeta?: unknown;
309
288
  rejectedMeta?: unknown;
310
- }, keyof ThunkApiConfig> extends infer T_35 ? { [K in keyof T_35]: T_35[K] } : never, keyof ThunkApiConfig_1> extends infer T_34 ? { [K_1 in keyof T_34]: T_34[K_1] } : never, keyof ThunkApiConfig_2> extends infer T_33 ? { [K_2 in keyof T_33]: T_33[K_2] } : never, keyof ThunkApiConfig_3> extends infer T_32 ? { [K_3 in keyof T_32]: T_32[K_3] } : never, keyof ThunkApiConfig_4> extends infer T_31 ? { [K_4 in keyof T_31]: T_31[K_4] } : never, keyof ThunkApiConfig_5> extends infer T_30 ? { [K_5 in keyof T_30]: T_30[K_5] } : never, keyof ThunkApiConfig_6> extends infer T_29 ? { [K_6 in keyof T_29]: T_29[K_6] } : never, keyof ThunkApiConfig_7> extends infer T_28 ? { [K_7 in keyof T_28]: T_28[K_7] } : never> & {
289
+ }, keyof ThunkApiConfig> extends (infer T_35) ? { [K in keyof T_35]: T_35[K]; } : never, keyof ThunkApiConfig_1> extends (infer T_34) ? { [K_1 in keyof T_34]: T_34[K_1]; } : never, keyof ThunkApiConfig_2> extends (infer T_33) ? { [K_2 in keyof T_33]: T_33[K_2]; } : never, keyof ThunkApiConfig_3> extends (infer T_32) ? { [K_3 in keyof T_32]: T_32[K_3]; } : never, keyof ThunkApiConfig_4> extends (infer T_31) ? { [K_4 in keyof T_31]: T_31[K_4]; } : never, keyof ThunkApiConfig_5> extends (infer T_30) ? { [K_5 in keyof T_30]: T_30[K_5]; } : never, keyof ThunkApiConfig_6> extends (infer T_29) ? { [K_6 in keyof T_29]: T_29[K_6]; } : never, keyof ThunkApiConfig_7> extends (infer T_28) ? { [K_7 in keyof T_28]: T_28[K_7]; } : never> & {
311
290
  withTypes<ThunkApiConfig_8 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_8 & Omit<ThunkApiConfig_7 & Omit<ThunkApiConfig_6 & Omit<ThunkApiConfig_5 & Omit<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
312
291
  dispatch: AppDispatch;
313
292
  state: RootState;
@@ -317,7 +296,7 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
317
296
  pendingMeta?: unknown;
318
297
  fulfilledMeta?: unknown;
319
298
  rejectedMeta?: unknown;
320
- }, keyof ThunkApiConfig> extends infer T_44 ? { [K in keyof T_44]: T_44[K] } : never, keyof ThunkApiConfig_1> extends infer T_43 ? { [K_1 in keyof T_43]: T_43[K_1] } : never, keyof ThunkApiConfig_2> extends infer T_42 ? { [K_2 in keyof T_42]: T_42[K_2] } : never, keyof ThunkApiConfig_3> extends infer T_41 ? { [K_3 in keyof T_41]: T_41[K_3] } : never, keyof ThunkApiConfig_4> extends infer T_40 ? { [K_4 in keyof T_40]: T_40[K_4] } : never, keyof ThunkApiConfig_5> extends infer T_39 ? { [K_5 in keyof T_39]: T_39[K_5] } : never, keyof ThunkApiConfig_6> extends infer T_38 ? { [K_6 in keyof T_38]: T_38[K_6] } : never, keyof ThunkApiConfig_7> extends infer T_37 ? { [K_7 in keyof T_37]: T_37[K_7] } : never, keyof ThunkApiConfig_8> extends infer T_36 ? { [K_8 in keyof T_36]: T_36[K_8] } : never> & {
299
+ }, keyof ThunkApiConfig> extends (infer T_44) ? { [K in keyof T_44]: T_44[K]; } : never, keyof ThunkApiConfig_1> extends (infer T_43) ? { [K_1 in keyof T_43]: T_43[K_1]; } : never, keyof ThunkApiConfig_2> extends (infer T_42) ? { [K_2 in keyof T_42]: T_42[K_2]; } : never, keyof ThunkApiConfig_3> extends (infer T_41) ? { [K_3 in keyof T_41]: T_41[K_3]; } : never, keyof ThunkApiConfig_4> extends (infer T_40) ? { [K_4 in keyof T_40]: T_40[K_4]; } : never, keyof ThunkApiConfig_5> extends (infer T_39) ? { [K_5 in keyof T_39]: T_39[K_5]; } : never, keyof ThunkApiConfig_6> extends (infer T_38) ? { [K_6 in keyof T_38]: T_38[K_6]; } : never, keyof ThunkApiConfig_7> extends (infer T_37) ? { [K_7 in keyof T_37]: T_37[K_7]; } : never, keyof ThunkApiConfig_8> extends (infer T_36) ? { [K_8 in keyof T_36]: T_36[K_8]; } : never> & {
321
300
  withTypes<ThunkApiConfig_9 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_9 & Omit<ThunkApiConfig_8 & Omit<ThunkApiConfig_7 & Omit<ThunkApiConfig_6 & Omit<ThunkApiConfig_5 & Omit<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
322
301
  dispatch: AppDispatch;
323
302
  state: RootState;
@@ -327,8 +306,8 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
327
306
  pendingMeta?: unknown;
328
307
  fulfilledMeta?: unknown;
329
308
  rejectedMeta?: unknown;
330
- }, keyof ThunkApiConfig> extends infer T_54 ? { [K in keyof T_54]: T_54[K] } : never, keyof ThunkApiConfig_1> extends infer T_53 ? { [K_1 in keyof T_53]: T_53[K_1] } : never, keyof ThunkApiConfig_2> extends infer T_52 ? { [K_2 in keyof T_52]: T_52[K_2] } : never, keyof ThunkApiConfig_3> extends infer T_51 ? { [K_3 in keyof T_51]: T_51[K_3] } : never, keyof ThunkApiConfig_4> extends infer T_50 ? { [K_4 in keyof T_50]: T_50[K_4] } : never, keyof ThunkApiConfig_5> extends infer T_49 ? { [K_5 in keyof T_49]: T_49[K_5] } : never, keyof ThunkApiConfig_6> extends infer T_48 ? { [K_6 in keyof T_48]: T_48[K_6] } : never, keyof ThunkApiConfig_7> extends infer T_47 ? { [K_7 in keyof T_47]: T_47[K_7] } : never, keyof ThunkApiConfig_8> extends infer T_46 ? { [K_8 in keyof T_46]: T_46[K_8] } : never, keyof ThunkApiConfig_9> extends infer T_45 ? { [K_9 in keyof T_45]: T_45[K_9] } : never> & {
331
- withTypes<ThunkApiConfig_10 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_10 & Omit<ThunkApiConfig_9 & Omit<ThunkApiConfig_8 & Omit<ThunkApiConfig_7 & Omit<ThunkApiConfig_6 & Omit<ThunkApiConfig_5 & Omit<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit< /*elided*/any, keyof ThunkApiConfig> extends infer T_65 ? { [K in keyof T_65]: T_65[K] } : never, keyof ThunkApiConfig_1> extends infer T_64 ? { [K_1 in keyof T_64]: T_64[K_1] } : never, keyof ThunkApiConfig_2> extends infer T_63 ? { [K_2 in keyof T_63]: T_63[K_2] } : never, keyof ThunkApiConfig_3> extends infer T_62 ? { [K_3 in keyof T_62]: T_62[K_3] } : never, keyof ThunkApiConfig_4> extends infer T_61 ? { [K_4 in keyof T_61]: T_61[K_4] } : never, keyof ThunkApiConfig_5> extends infer T_60 ? { [K_5 in keyof T_60]: T_60[K_5] } : never, keyof ThunkApiConfig_6> extends infer T_59 ? { [K_6 in keyof T_59]: T_59[K_6] } : never, keyof ThunkApiConfig_7> extends infer T_58 ? { [K_7 in keyof T_58]: T_58[K_7] } : never, keyof ThunkApiConfig_8> extends infer T_57 ? { [K_8 in keyof T_57]: T_57[K_8] } : never, keyof ThunkApiConfig_9> extends infer T_56 ? { [K_9 in keyof T_56]: T_56[K_9] } : never, keyof ThunkApiConfig_10> extends infer T_55 ? { [K_10 in keyof T_55]: T_55[K_10] } : never> & /*elided*/any;
309
+ }, keyof ThunkApiConfig> extends (infer T_54) ? { [K in keyof T_54]: T_54[K]; } : never, keyof ThunkApiConfig_1> extends (infer T_53) ? { [K_1 in keyof T_53]: T_53[K_1]; } : never, keyof ThunkApiConfig_2> extends (infer T_52) ? { [K_2 in keyof T_52]: T_52[K_2]; } : never, keyof ThunkApiConfig_3> extends (infer T_51) ? { [K_3 in keyof T_51]: T_51[K_3]; } : never, keyof ThunkApiConfig_4> extends (infer T_50) ? { [K_4 in keyof T_50]: T_50[K_4]; } : never, keyof ThunkApiConfig_5> extends (infer T_49) ? { [K_5 in keyof T_49]: T_49[K_5]; } : never, keyof ThunkApiConfig_6> extends (infer T_48) ? { [K_6 in keyof T_48]: T_48[K_6]; } : never, keyof ThunkApiConfig_7> extends (infer T_47) ? { [K_7 in keyof T_47]: T_47[K_7]; } : never, keyof ThunkApiConfig_8> extends (infer T_46) ? { [K_8 in keyof T_46]: T_46[K_8]; } : never, keyof ThunkApiConfig_9> extends (infer T_45) ? { [K_9 in keyof T_45]: T_45[K_9]; } : never> & {
310
+ withTypes<ThunkApiConfig_10 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_10 & Omit<ThunkApiConfig_9 & Omit<ThunkApiConfig_8 & Omit<ThunkApiConfig_7 & Omit<ThunkApiConfig_6 & Omit<ThunkApiConfig_5 & Omit<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit< /*elided*/ any, keyof ThunkApiConfig> extends (infer T_65) ? { [K in keyof T_65]: T_65[K]; } : never, keyof ThunkApiConfig_1> extends (infer T_64) ? { [K_1 in keyof T_64]: T_64[K_1]; } : never, keyof ThunkApiConfig_2> extends (infer T_63) ? { [K_2 in keyof T_63]: T_63[K_2]; } : never, keyof ThunkApiConfig_3> extends (infer T_62) ? { [K_3 in keyof T_62]: T_62[K_3]; } : never, keyof ThunkApiConfig_4> extends (infer T_61) ? { [K_4 in keyof T_61]: T_61[K_4]; } : never, keyof ThunkApiConfig_5> extends (infer T_60) ? { [K_5 in keyof T_60]: T_60[K_5]; } : never, keyof ThunkApiConfig_6> extends (infer T_59) ? { [K_6 in keyof T_59]: T_59[K_6]; } : never, keyof ThunkApiConfig_7> extends (infer T_58) ? { [K_7 in keyof T_58]: T_58[K_7]; } : never, keyof ThunkApiConfig_8> extends (infer T_57) ? { [K_8 in keyof T_57]: T_57[K_8]; } : never, keyof ThunkApiConfig_9> extends (infer T_56) ? { [K_9 in keyof T_56]: T_56[K_9]; } : never, keyof ThunkApiConfig_10> extends (infer T_55) ? { [K_10 in keyof T_55]: T_55[K_10]; } : never> & /*elided*/ any;
332
311
  };
333
312
  };
334
313
  };
@@ -342,4 +321,4 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
342
321
  };
343
322
  //#endregion
344
323
  export { mapTermsToFilters as A, getDeploymentState as C, listItemMapper as D, isDarkMode as E, statCollector as F, stringToBoolean as I, stripOrchestratorManifestPrefix as L, mergePermissions as M, parseSubscriptionPreview as N, mapDeviceAttributes as O, progress as P, stripUndefined as R, getAttributeScopeLabel as S, groupDeploymentStats as T, dispatchDelayed as _, commonErrorHandler as a, filtersFilter as b, sessionReducer as c, useAppSelector as d, DeploymentStats as f, convertToBackendSPLimits as g, convertDeviceListStateToFilters as h, commonErrorFallback as i, mapUserRolesToUiPermissions as j, mapFiltersToTerms as k, store as l, FilterTerm as m, MenderEnvironment as n, createAppAsyncThunk as o, ErrorWithResponse as p, RootState as r, getConfiguredStore as s, AppDispatch as t, useAppDispatch as u, ensureVersionString as v, groupDeploymentDevicesStats as w, generateDeploymentGroupDetails as x, extractErrorMessage as y };
345
- //# sourceMappingURL=store-CkgokFlk.d.ts.map
324
+ //# sourceMappingURL=store-CPptM5Ts.d.ts.map
@@ -1,18 +1,17 @@
1
- import { H as emptyUiPermissions, S as Role, St as FilterOperator, m as DeviceIssueOptionKey } from "./constants-DAi2zOZN.cjs";
2
- import { o as UserSliceType } from "./index-CgPgKMve.cjs";
3
- import { i as ReleaseSliceType } from "./index-VEayiYkv.cjs";
4
- import { a as PricePreview } from "./types-yQ0ypHMZ.cjs";
5
- import { n as OnboardingSliceType } from "./index-DBUt8xVc.cjs";
6
- import { o as DeploymentsSliceType, t as Deployment } from "./index-EPmsL6Lb.cjs";
7
- import { c as InventoryAttributes, n as DeviceFilter, r as DeviceGroup, s as DeviceSliceType } from "./index-vXsWdis1.cjs";
8
- import { t as AppSliceType } from "./index-Dn1SqQYh.cjs";
9
- import { t as MonitorSliceType } from "./index-BQCnJ5gh.cjs";
10
- import { t as OrganizationSliceType } from "./index-CSOj22xK.cjs";
1
+ import { Ct as FilterOperator, H as emptyUiPermissions, S as Role, m as DeviceIssueOptionKey } from "./constants-Rl3FJzFf.cjs";
2
+ import { o as UserSliceType } from "./index-BgF6rhXn.cjs";
3
+ import { i as ReleaseSliceType } from "./index-DiAjzARZ.cjs";
4
+ import { a as PricePreview } from "./types-B80ckxiy.cjs";
5
+ import { n as OnboardingSliceType } from "./index-CoObjWL4.cjs";
6
+ import { o as DeploymentsSliceType, t as Deployment } from "./index-mvxjivTJ.cjs";
7
+ import { c as DeviceSliceType, i as DeviceGroup, l as InventoryAttributes, r as DeviceFilter } from "./index-CiQ95u1W.cjs";
8
+ import { t as AppSliceType } from "./index-DeOpb2oK.cjs";
9
+ import { t as MonitorSliceType } from "./index-Ctj2r57a.cjs";
10
+ import { t as OrganizationSliceType } from "./index-C_LGDJN2.cjs";
11
11
  import { AttributeFilterPredicate, AttributeResponse, FilterV2, InvoiceLineItem, Scope } from "@northern.tech/types/MenderTypes";
12
12
  import { Reducer, UnknownAction } from "@reduxjs/toolkit";
13
13
  import { AxiosError } from "axios";
14
14
  import { TypedUseSelectorHook } from "react-redux";
15
-
16
15
  //#region src/utils.d.ts
17
16
  type FilterProcessorValue = string | string[] | number | boolean;
18
17
  type FilterTerm = {
@@ -23,14 +22,7 @@ type FilterTerm = {
23
22
  };
24
23
  declare const mapFiltersToTerms: (filters: DeviceFilter[]) => FilterTerm[];
25
24
  declare const mapTermsToFilters: (terms: FilterTerm[]) => DeviceFilter[];
26
- declare const convertDeviceListStateToFilters: ({
27
- filters,
28
- group,
29
- groups,
30
- offlineThreshold,
31
- selectedIssues,
32
- status
33
- }: {
25
+ declare const convertDeviceListStateToFilters: ({ filters, group, groups, offlineThreshold, selectedIssues, status }: {
34
26
  filters?: DeviceFilter[];
35
27
  group?: string;
36
28
  groups?: {
@@ -45,28 +37,19 @@ declare const convertDeviceListStateToFilters: ({
45
37
  };
46
38
  declare const filtersFilter: (item: DeviceFilter, index: number, array: DeviceFilter[]) => boolean;
47
39
  declare const stripOrchestratorManifestPrefix: (key: string) => string;
48
- declare const getAttributeScopeLabel: ({
49
- key,
50
- scope
51
- }: {
40
+ declare const getAttributeScopeLabel: ({ key, scope }: {
52
41
  key?: string;
53
42
  scope?: string;
54
43
  }) => string;
55
44
  declare const stripUndefined: <T extends Record<string, unknown>>(obj: T) => Partial<T>;
56
- declare const listItemMapper: <T extends object>(byId: Record<string, T>, ids: string[], {
57
- cutOffSize,
58
- defaultObject
59
- }: {
45
+ declare const listItemMapper: <T extends object>(byId: Record<string, T>, ids: string[], { cutOffSize, defaultObject }: {
60
46
  cutOffSize?: number;
61
47
  defaultObject?: Partial<T>;
62
48
  }) => T[];
63
49
  type UiPermissions = typeof emptyUiPermissions;
64
50
  declare const mergePermissions: (existingPermissions: UiPermissions | undefined, addedPermissions: UiPermissions) => UiPermissions;
65
51
  declare const mapUserRolesToUiPermissions: (userRoles: string[], roles: Record<string, Role>) => UiPermissions;
66
- declare const progress: ({
67
- loaded,
68
- total
69
- }: {
52
+ declare const progress: ({ loaded, total }: {
70
53
  loaded: number;
71
54
  total?: number;
72
55
  }) => number;
@@ -115,11 +98,7 @@ declare const convertToBackendSPLimits: (limits: Record<string, number | string>
115
98
  Name: string;
116
99
  value: number;
117
100
  }>;
118
- declare const dispatchDelayed: ({
119
- action,
120
- delay,
121
- dispatch
122
- }: {
101
+ declare const dispatchDelayed: ({ action, delay, dispatch }: {
123
102
  action: any;
124
103
  delay?: number;
125
104
  dispatch: AppDispatch;
@@ -237,7 +216,7 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
237
216
  pendingMeta?: unknown;
238
217
  fulfilledMeta?: unknown;
239
218
  rejectedMeta?: unknown;
240
- }, keyof ThunkApiConfig> extends infer T ? { [K in keyof T]: T[K] } : never> & {
219
+ }, keyof ThunkApiConfig> extends (infer T) ? { [K in keyof T]: T[K]; } : never> & {
241
220
  withTypes<ThunkApiConfig_1 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
242
221
  dispatch: AppDispatch;
243
222
  state: RootState;
@@ -247,7 +226,7 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
247
226
  pendingMeta?: unknown;
248
227
  fulfilledMeta?: unknown;
249
228
  rejectedMeta?: unknown;
250
- }, keyof ThunkApiConfig> extends infer T_2 ? { [K in keyof T_2]: T_2[K] } : never, keyof ThunkApiConfig_1> extends infer T_1 ? { [K_1 in keyof T_1]: T_1[K_1] } : never> & {
229
+ }, keyof ThunkApiConfig> extends (infer T_2) ? { [K in keyof T_2]: T_2[K]; } : never, keyof ThunkApiConfig_1> extends (infer T_1) ? { [K_1 in keyof T_1]: T_1[K_1]; } : never> & {
251
230
  withTypes<ThunkApiConfig_2 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
252
231
  dispatch: AppDispatch;
253
232
  state: RootState;
@@ -257,7 +236,7 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
257
236
  pendingMeta?: unknown;
258
237
  fulfilledMeta?: unknown;
259
238
  rejectedMeta?: unknown;
260
- }, keyof ThunkApiConfig> extends infer T_5 ? { [K in keyof T_5]: T_5[K] } : never, keyof ThunkApiConfig_1> extends infer T_4 ? { [K_1 in keyof T_4]: T_4[K_1] } : never, keyof ThunkApiConfig_2> extends infer T_3 ? { [K_2 in keyof T_3]: T_3[K_2] } : never> & {
239
+ }, keyof ThunkApiConfig> extends (infer T_5) ? { [K in keyof T_5]: T_5[K]; } : never, keyof ThunkApiConfig_1> extends (infer T_4) ? { [K_1 in keyof T_4]: T_4[K_1]; } : never, keyof ThunkApiConfig_2> extends (infer T_3) ? { [K_2 in keyof T_3]: T_3[K_2]; } : never> & {
261
240
  withTypes<ThunkApiConfig_3 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
262
241
  dispatch: AppDispatch;
263
242
  state: RootState;
@@ -267,7 +246,7 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
267
246
  pendingMeta?: unknown;
268
247
  fulfilledMeta?: unknown;
269
248
  rejectedMeta?: unknown;
270
- }, keyof ThunkApiConfig> extends infer T_9 ? { [K in keyof T_9]: T_9[K] } : never, keyof ThunkApiConfig_1> extends infer T_8 ? { [K_1 in keyof T_8]: T_8[K_1] } : never, keyof ThunkApiConfig_2> extends infer T_7 ? { [K_2 in keyof T_7]: T_7[K_2] } : never, keyof ThunkApiConfig_3> extends infer T_6 ? { [K_3 in keyof T_6]: T_6[K_3] } : never> & {
249
+ }, keyof ThunkApiConfig> extends (infer T_9) ? { [K in keyof T_9]: T_9[K]; } : never, keyof ThunkApiConfig_1> extends (infer T_8) ? { [K_1 in keyof T_8]: T_8[K_1]; } : never, keyof ThunkApiConfig_2> extends (infer T_7) ? { [K_2 in keyof T_7]: T_7[K_2]; } : never, keyof ThunkApiConfig_3> extends (infer T_6) ? { [K_3 in keyof T_6]: T_6[K_3]; } : never> & {
271
250
  withTypes<ThunkApiConfig_4 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
272
251
  dispatch: AppDispatch;
273
252
  state: RootState;
@@ -277,7 +256,7 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
277
256
  pendingMeta?: unknown;
278
257
  fulfilledMeta?: unknown;
279
258
  rejectedMeta?: unknown;
280
- }, keyof ThunkApiConfig> extends infer T_14 ? { [K in keyof T_14]: T_14[K] } : never, keyof ThunkApiConfig_1> extends infer T_13 ? { [K_1 in keyof T_13]: T_13[K_1] } : never, keyof ThunkApiConfig_2> extends infer T_12 ? { [K_2 in keyof T_12]: T_12[K_2] } : never, keyof ThunkApiConfig_3> extends infer T_11 ? { [K_3 in keyof T_11]: T_11[K_3] } : never, keyof ThunkApiConfig_4> extends infer T_10 ? { [K_4 in keyof T_10]: T_10[K_4] } : never> & {
259
+ }, keyof ThunkApiConfig> extends (infer T_14) ? { [K in keyof T_14]: T_14[K]; } : never, keyof ThunkApiConfig_1> extends (infer T_13) ? { [K_1 in keyof T_13]: T_13[K_1]; } : never, keyof ThunkApiConfig_2> extends (infer T_12) ? { [K_2 in keyof T_12]: T_12[K_2]; } : never, keyof ThunkApiConfig_3> extends (infer T_11) ? { [K_3 in keyof T_11]: T_11[K_3]; } : never, keyof ThunkApiConfig_4> extends (infer T_10) ? { [K_4 in keyof T_10]: T_10[K_4]; } : never> & {
281
260
  withTypes<ThunkApiConfig_5 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_5 & Omit<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
282
261
  dispatch: AppDispatch;
283
262
  state: RootState;
@@ -287,7 +266,7 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
287
266
  pendingMeta?: unknown;
288
267
  fulfilledMeta?: unknown;
289
268
  rejectedMeta?: unknown;
290
- }, keyof ThunkApiConfig> extends infer T_20 ? { [K in keyof T_20]: T_20[K] } : never, keyof ThunkApiConfig_1> extends infer T_19 ? { [K_1 in keyof T_19]: T_19[K_1] } : never, keyof ThunkApiConfig_2> extends infer T_18 ? { [K_2 in keyof T_18]: T_18[K_2] } : never, keyof ThunkApiConfig_3> extends infer T_17 ? { [K_3 in keyof T_17]: T_17[K_3] } : never, keyof ThunkApiConfig_4> extends infer T_16 ? { [K_4 in keyof T_16]: T_16[K_4] } : never, keyof ThunkApiConfig_5> extends infer T_15 ? { [K_5 in keyof T_15]: T_15[K_5] } : never> & {
269
+ }, keyof ThunkApiConfig> extends (infer T_20) ? { [K in keyof T_20]: T_20[K]; } : never, keyof ThunkApiConfig_1> extends (infer T_19) ? { [K_1 in keyof T_19]: T_19[K_1]; } : never, keyof ThunkApiConfig_2> extends (infer T_18) ? { [K_2 in keyof T_18]: T_18[K_2]; } : never, keyof ThunkApiConfig_3> extends (infer T_17) ? { [K_3 in keyof T_17]: T_17[K_3]; } : never, keyof ThunkApiConfig_4> extends (infer T_16) ? { [K_4 in keyof T_16]: T_16[K_4]; } : never, keyof ThunkApiConfig_5> extends (infer T_15) ? { [K_5 in keyof T_15]: T_15[K_5]; } : never> & {
291
270
  withTypes<ThunkApiConfig_6 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_6 & Omit<ThunkApiConfig_5 & Omit<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
292
271
  dispatch: AppDispatch;
293
272
  state: RootState;
@@ -297,7 +276,7 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
297
276
  pendingMeta?: unknown;
298
277
  fulfilledMeta?: unknown;
299
278
  rejectedMeta?: unknown;
300
- }, keyof ThunkApiConfig> extends infer T_27 ? { [K in keyof T_27]: T_27[K] } : never, keyof ThunkApiConfig_1> extends infer T_26 ? { [K_1 in keyof T_26]: T_26[K_1] } : never, keyof ThunkApiConfig_2> extends infer T_25 ? { [K_2 in keyof T_25]: T_25[K_2] } : never, keyof ThunkApiConfig_3> extends infer T_24 ? { [K_3 in keyof T_24]: T_24[K_3] } : never, keyof ThunkApiConfig_4> extends infer T_23 ? { [K_4 in keyof T_23]: T_23[K_4] } : never, keyof ThunkApiConfig_5> extends infer T_22 ? { [K_5 in keyof T_22]: T_22[K_5] } : never, keyof ThunkApiConfig_6> extends infer T_21 ? { [K_6 in keyof T_21]: T_21[K_6] } : never> & {
279
+ }, keyof ThunkApiConfig> extends (infer T_27) ? { [K in keyof T_27]: T_27[K]; } : never, keyof ThunkApiConfig_1> extends (infer T_26) ? { [K_1 in keyof T_26]: T_26[K_1]; } : never, keyof ThunkApiConfig_2> extends (infer T_25) ? { [K_2 in keyof T_25]: T_25[K_2]; } : never, keyof ThunkApiConfig_3> extends (infer T_24) ? { [K_3 in keyof T_24]: T_24[K_3]; } : never, keyof ThunkApiConfig_4> extends (infer T_23) ? { [K_4 in keyof T_23]: T_23[K_4]; } : never, keyof ThunkApiConfig_5> extends (infer T_22) ? { [K_5 in keyof T_22]: T_22[K_5]; } : never, keyof ThunkApiConfig_6> extends (infer T_21) ? { [K_6 in keyof T_21]: T_21[K_6]; } : never> & {
301
280
  withTypes<ThunkApiConfig_7 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_7 & Omit<ThunkApiConfig_6 & Omit<ThunkApiConfig_5 & Omit<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
302
281
  dispatch: AppDispatch;
303
282
  state: RootState;
@@ -307,7 +286,7 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
307
286
  pendingMeta?: unknown;
308
287
  fulfilledMeta?: unknown;
309
288
  rejectedMeta?: unknown;
310
- }, keyof ThunkApiConfig> extends infer T_35 ? { [K in keyof T_35]: T_35[K] } : never, keyof ThunkApiConfig_1> extends infer T_34 ? { [K_1 in keyof T_34]: T_34[K_1] } : never, keyof ThunkApiConfig_2> extends infer T_33 ? { [K_2 in keyof T_33]: T_33[K_2] } : never, keyof ThunkApiConfig_3> extends infer T_32 ? { [K_3 in keyof T_32]: T_32[K_3] } : never, keyof ThunkApiConfig_4> extends infer T_31 ? { [K_4 in keyof T_31]: T_31[K_4] } : never, keyof ThunkApiConfig_5> extends infer T_30 ? { [K_5 in keyof T_30]: T_30[K_5] } : never, keyof ThunkApiConfig_6> extends infer T_29 ? { [K_6 in keyof T_29]: T_29[K_6] } : never, keyof ThunkApiConfig_7> extends infer T_28 ? { [K_7 in keyof T_28]: T_28[K_7] } : never> & {
289
+ }, keyof ThunkApiConfig> extends (infer T_35) ? { [K in keyof T_35]: T_35[K]; } : never, keyof ThunkApiConfig_1> extends (infer T_34) ? { [K_1 in keyof T_34]: T_34[K_1]; } : never, keyof ThunkApiConfig_2> extends (infer T_33) ? { [K_2 in keyof T_33]: T_33[K_2]; } : never, keyof ThunkApiConfig_3> extends (infer T_32) ? { [K_3 in keyof T_32]: T_32[K_3]; } : never, keyof ThunkApiConfig_4> extends (infer T_31) ? { [K_4 in keyof T_31]: T_31[K_4]; } : never, keyof ThunkApiConfig_5> extends (infer T_30) ? { [K_5 in keyof T_30]: T_30[K_5]; } : never, keyof ThunkApiConfig_6> extends (infer T_29) ? { [K_6 in keyof T_29]: T_29[K_6]; } : never, keyof ThunkApiConfig_7> extends (infer T_28) ? { [K_7 in keyof T_28]: T_28[K_7]; } : never> & {
311
290
  withTypes<ThunkApiConfig_8 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_8 & Omit<ThunkApiConfig_7 & Omit<ThunkApiConfig_6 & Omit<ThunkApiConfig_5 & Omit<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
312
291
  dispatch: AppDispatch;
313
292
  state: RootState;
@@ -317,7 +296,7 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
317
296
  pendingMeta?: unknown;
318
297
  fulfilledMeta?: unknown;
319
298
  rejectedMeta?: unknown;
320
- }, keyof ThunkApiConfig> extends infer T_44 ? { [K in keyof T_44]: T_44[K] } : never, keyof ThunkApiConfig_1> extends infer T_43 ? { [K_1 in keyof T_43]: T_43[K_1] } : never, keyof ThunkApiConfig_2> extends infer T_42 ? { [K_2 in keyof T_42]: T_42[K_2] } : never, keyof ThunkApiConfig_3> extends infer T_41 ? { [K_3 in keyof T_41]: T_41[K_3] } : never, keyof ThunkApiConfig_4> extends infer T_40 ? { [K_4 in keyof T_40]: T_40[K_4] } : never, keyof ThunkApiConfig_5> extends infer T_39 ? { [K_5 in keyof T_39]: T_39[K_5] } : never, keyof ThunkApiConfig_6> extends infer T_38 ? { [K_6 in keyof T_38]: T_38[K_6] } : never, keyof ThunkApiConfig_7> extends infer T_37 ? { [K_7 in keyof T_37]: T_37[K_7] } : never, keyof ThunkApiConfig_8> extends infer T_36 ? { [K_8 in keyof T_36]: T_36[K_8] } : never> & {
299
+ }, keyof ThunkApiConfig> extends (infer T_44) ? { [K in keyof T_44]: T_44[K]; } : never, keyof ThunkApiConfig_1> extends (infer T_43) ? { [K_1 in keyof T_43]: T_43[K_1]; } : never, keyof ThunkApiConfig_2> extends (infer T_42) ? { [K_2 in keyof T_42]: T_42[K_2]; } : never, keyof ThunkApiConfig_3> extends (infer T_41) ? { [K_3 in keyof T_41]: T_41[K_3]; } : never, keyof ThunkApiConfig_4> extends (infer T_40) ? { [K_4 in keyof T_40]: T_40[K_4]; } : never, keyof ThunkApiConfig_5> extends (infer T_39) ? { [K_5 in keyof T_39]: T_39[K_5]; } : never, keyof ThunkApiConfig_6> extends (infer T_38) ? { [K_6 in keyof T_38]: T_38[K_6]; } : never, keyof ThunkApiConfig_7> extends (infer T_37) ? { [K_7 in keyof T_37]: T_37[K_7]; } : never, keyof ThunkApiConfig_8> extends (infer T_36) ? { [K_8 in keyof T_36]: T_36[K_8]; } : never> & {
321
300
  withTypes<ThunkApiConfig_9 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_9 & Omit<ThunkApiConfig_8 & Omit<ThunkApiConfig_7 & Omit<ThunkApiConfig_6 & Omit<ThunkApiConfig_5 & Omit<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit<{
322
301
  dispatch: AppDispatch;
323
302
  state: RootState;
@@ -327,8 +306,8 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
327
306
  pendingMeta?: unknown;
328
307
  fulfilledMeta?: unknown;
329
308
  rejectedMeta?: unknown;
330
- }, keyof ThunkApiConfig> extends infer T_54 ? { [K in keyof T_54]: T_54[K] } : never, keyof ThunkApiConfig_1> extends infer T_53 ? { [K_1 in keyof T_53]: T_53[K_1] } : never, keyof ThunkApiConfig_2> extends infer T_52 ? { [K_2 in keyof T_52]: T_52[K_2] } : never, keyof ThunkApiConfig_3> extends infer T_51 ? { [K_3 in keyof T_51]: T_51[K_3] } : never, keyof ThunkApiConfig_4> extends infer T_50 ? { [K_4 in keyof T_50]: T_50[K_4] } : never, keyof ThunkApiConfig_5> extends infer T_49 ? { [K_5 in keyof T_49]: T_49[K_5] } : never, keyof ThunkApiConfig_6> extends infer T_48 ? { [K_6 in keyof T_48]: T_48[K_6] } : never, keyof ThunkApiConfig_7> extends infer T_47 ? { [K_7 in keyof T_47]: T_47[K_7] } : never, keyof ThunkApiConfig_8> extends infer T_46 ? { [K_8 in keyof T_46]: T_46[K_8] } : never, keyof ThunkApiConfig_9> extends infer T_45 ? { [K_9 in keyof T_45]: T_45[K_9] } : never> & {
331
- withTypes<ThunkApiConfig_10 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_10 & Omit<ThunkApiConfig_9 & Omit<ThunkApiConfig_8 & Omit<ThunkApiConfig_7 & Omit<ThunkApiConfig_6 & Omit<ThunkApiConfig_5 & Omit<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit< /*elided*/any, keyof ThunkApiConfig> extends infer T_65 ? { [K in keyof T_65]: T_65[K] } : never, keyof ThunkApiConfig_1> extends infer T_64 ? { [K_1 in keyof T_64]: T_64[K_1] } : never, keyof ThunkApiConfig_2> extends infer T_63 ? { [K_2 in keyof T_63]: T_63[K_2] } : never, keyof ThunkApiConfig_3> extends infer T_62 ? { [K_3 in keyof T_62]: T_62[K_3] } : never, keyof ThunkApiConfig_4> extends infer T_61 ? { [K_4 in keyof T_61]: T_61[K_4] } : never, keyof ThunkApiConfig_5> extends infer T_60 ? { [K_5 in keyof T_60]: T_60[K_5] } : never, keyof ThunkApiConfig_6> extends infer T_59 ? { [K_6 in keyof T_59]: T_59[K_6] } : never, keyof ThunkApiConfig_7> extends infer T_58 ? { [K_7 in keyof T_58]: T_58[K_7] } : never, keyof ThunkApiConfig_8> extends infer T_57 ? { [K_8 in keyof T_57]: T_57[K_8] } : never, keyof ThunkApiConfig_9> extends infer T_56 ? { [K_9 in keyof T_56]: T_56[K_9] } : never, keyof ThunkApiConfig_10> extends infer T_55 ? { [K_10 in keyof T_55]: T_55[K_10] } : never> & /*elided*/any;
309
+ }, keyof ThunkApiConfig> extends (infer T_54) ? { [K in keyof T_54]: T_54[K]; } : never, keyof ThunkApiConfig_1> extends (infer T_53) ? { [K_1 in keyof T_53]: T_53[K_1]; } : never, keyof ThunkApiConfig_2> extends (infer T_52) ? { [K_2 in keyof T_52]: T_52[K_2]; } : never, keyof ThunkApiConfig_3> extends (infer T_51) ? { [K_3 in keyof T_51]: T_51[K_3]; } : never, keyof ThunkApiConfig_4> extends (infer T_50) ? { [K_4 in keyof T_50]: T_50[K_4]; } : never, keyof ThunkApiConfig_5> extends (infer T_49) ? { [K_5 in keyof T_49]: T_49[K_5]; } : never, keyof ThunkApiConfig_6> extends (infer T_48) ? { [K_6 in keyof T_48]: T_48[K_6]; } : never, keyof ThunkApiConfig_7> extends (infer T_47) ? { [K_7 in keyof T_47]: T_47[K_7]; } : never, keyof ThunkApiConfig_8> extends (infer T_46) ? { [K_8 in keyof T_46]: T_46[K_8]; } : never, keyof ThunkApiConfig_9> extends (infer T_45) ? { [K_9 in keyof T_45]: T_45[K_9]; } : never> & {
310
+ withTypes<ThunkApiConfig_10 extends import("@reduxjs/toolkit").AsyncThunkConfig>(): import("@reduxjs/toolkit").CreateAsyncThunkFunction<ThunkApiConfig_10 & Omit<ThunkApiConfig_9 & Omit<ThunkApiConfig_8 & Omit<ThunkApiConfig_7 & Omit<ThunkApiConfig_6 & Omit<ThunkApiConfig_5 & Omit<ThunkApiConfig_4 & Omit<ThunkApiConfig_3 & Omit<ThunkApiConfig_2 & Omit<ThunkApiConfig_1 & Omit<ThunkApiConfig & Omit< /*elided*/ any, keyof ThunkApiConfig> extends (infer T_65) ? { [K in keyof T_65]: T_65[K]; } : never, keyof ThunkApiConfig_1> extends (infer T_64) ? { [K_1 in keyof T_64]: T_64[K_1]; } : never, keyof ThunkApiConfig_2> extends (infer T_63) ? { [K_2 in keyof T_63]: T_63[K_2]; } : never, keyof ThunkApiConfig_3> extends (infer T_62) ? { [K_3 in keyof T_62]: T_62[K_3]; } : never, keyof ThunkApiConfig_4> extends (infer T_61) ? { [K_4 in keyof T_61]: T_61[K_4]; } : never, keyof ThunkApiConfig_5> extends (infer T_60) ? { [K_5 in keyof T_60]: T_60[K_5]; } : never, keyof ThunkApiConfig_6> extends (infer T_59) ? { [K_6 in keyof T_59]: T_59[K_6]; } : never, keyof ThunkApiConfig_7> extends (infer T_58) ? { [K_7 in keyof T_58]: T_58[K_7]; } : never, keyof ThunkApiConfig_8> extends (infer T_57) ? { [K_8 in keyof T_57]: T_57[K_8]; } : never, keyof ThunkApiConfig_9> extends (infer T_56) ? { [K_9 in keyof T_56]: T_56[K_9]; } : never, keyof ThunkApiConfig_10> extends (infer T_55) ? { [K_10 in keyof T_55]: T_55[K_10]; } : never> & /*elided*/ any;
332
311
  };
333
312
  };
334
313
  };
@@ -342,4 +321,4 @@ declare const createAppAsyncThunk: import("@reduxjs/toolkit").CreateAsyncThunkFu
342
321
  };
343
322
  //#endregion
344
323
  export { mapTermsToFilters as A, getDeploymentState as C, listItemMapper as D, isDarkMode as E, statCollector as F, stringToBoolean as I, stripOrchestratorManifestPrefix as L, mergePermissions as M, parseSubscriptionPreview as N, mapDeviceAttributes as O, progress as P, stripUndefined as R, getAttributeScopeLabel as S, groupDeploymentStats as T, dispatchDelayed as _, commonErrorHandler as a, filtersFilter as b, sessionReducer as c, useAppSelector as d, DeploymentStats as f, convertToBackendSPLimits as g, convertDeviceListStateToFilters as h, commonErrorFallback as i, mapUserRolesToUiPermissions as j, mapFiltersToTerms as k, store as l, FilterTerm as m, MenderEnvironment as n, createAppAsyncThunk as o, ErrorWithResponse as p, RootState as r, getConfiguredStore as s, AppDispatch as t, useAppDispatch as u, ensureVersionString as v, groupDeploymentDevicesStats as w, generateDeploymentGroupDetails as x, extractErrorMessage as y };
345
- //# sourceMappingURL=store-CGP5pCH8.d.cts.map
324
+ //# sourceMappingURL=store-CUUm1GTI.d.cts.map