@northern.tech/store 0.3.2 → 0.3.4

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 (251) hide show
  1. package/dist/BillingProfile-ChP2_Sqw.d.cts +45 -0
  2. package/dist/BillingProfile-ChP2_Sqw.d.ts +45 -0
  3. package/dist/actions.cjs +22 -23
  4. package/dist/actions.cjs.map +1 -1
  5. package/dist/actions.js +12 -12
  6. package/dist/api/general-api.cjs.map +1 -1
  7. package/dist/api/general-api.js +5 -5
  8. package/dist/api/types/Tenant.ts +17 -12
  9. package/dist/api/users-api.cjs.map +1 -1
  10. package/dist/api/users-api.js +6 -6
  11. package/dist/appSlice/constants.cjs +18 -10
  12. package/dist/appSlice/constants.cjs.map +1 -1
  13. package/dist/appSlice/constants.d.cts +41 -84
  14. package/dist/appSlice/constants.d.ts +41 -84
  15. package/dist/appSlice/constants.js +1 -1
  16. package/dist/appSlice/index.cjs +1 -3
  17. package/dist/appSlice/index.cjs.map +1 -1
  18. package/dist/appSlice/index.js +4 -4
  19. package/dist/appSlice/thunks.cjs +153 -120
  20. package/dist/appSlice/thunks.cjs.map +1 -1
  21. package/dist/appSlice/thunks.js +28 -27
  22. package/dist/auth.cjs.map +1 -1
  23. package/dist/auth.js +4 -4
  24. package/dist/{chunk-NI4SZOCF.js → chunk-4RWZR3BN.js} +23 -25
  25. package/dist/{chunk-NI4SZOCF.js.map → chunk-4RWZR3BN.js.map} +1 -1
  26. package/dist/{chunk-YGBFDXXA.js → chunk-7YZCUAXZ.js} +2 -2
  27. package/dist/{chunk-7PVGDMNM.js → chunk-AFICTIVU.js} +3 -5
  28. package/dist/{chunk-7PVGDMNM.js.map → chunk-AFICTIVU.js.map} +1 -1
  29. package/dist/{chunk-YT73QWCN.js → chunk-AUBJUUP3.js} +3 -3
  30. package/dist/{chunk-UEP36GCI.js → chunk-AVX7VVOK.js} +3 -3
  31. package/dist/{chunk-4B3IMP4I.js → chunk-BSN2TOQC.js} +1 -1
  32. package/dist/{chunk-4B3IMP4I.js.map → chunk-BSN2TOQC.js.map} +1 -1
  33. package/dist/{chunk-VOCOFE4I.js → chunk-DCEKU6UV.js} +2 -2
  34. package/dist/{chunk-E5LEU5PF.js → chunk-DGQKXSRI.js} +3 -3
  35. package/dist/{chunk-74OJIKXF.js → chunk-EQLHIPPR.js} +182 -142
  36. package/dist/chunk-EQLHIPPR.js.map +1 -0
  37. package/dist/{chunk-MDC7Y3EX.js → chunk-EYCORLYU.js} +44 -40
  38. package/dist/chunk-EYCORLYU.js.map +1 -0
  39. package/dist/{chunk-KAQJH2YL.js → chunk-FQDSV3NK.js} +13 -5
  40. package/dist/chunk-FQDSV3NK.js.map +1 -0
  41. package/dist/{chunk-XTRPX7JZ.js → chunk-FRSA2YB5.js} +3 -3
  42. package/dist/chunk-FRSA2YB5.js.map +1 -0
  43. package/dist/{chunk-ANB5BM5J.js → chunk-FVCYB5OP.js} +37 -32
  44. package/dist/chunk-FVCYB5OP.js.map +1 -0
  45. package/dist/{chunk-AMGWP7A4.js → chunk-GAI4VYRZ.js} +2 -2
  46. package/dist/{chunk-YETZPQFR.js → chunk-GWJIY56H.js} +19 -20
  47. package/dist/chunk-GWJIY56H.js.map +1 -0
  48. package/dist/{chunk-Q6M5TTDQ.js → chunk-JO33IORF.js} +2 -2
  49. package/dist/chunk-JO33IORF.js.map +1 -0
  50. package/dist/chunk-K4MMUDYT.js +391 -0
  51. package/dist/chunk-K4MMUDYT.js.map +1 -0
  52. package/dist/{chunk-XXHONFSQ.js → chunk-L3SY3J5M.js} +4 -4
  53. package/dist/{chunk-XXHONFSQ.js.map → chunk-L3SY3J5M.js.map} +1 -1
  54. package/dist/{chunk-JAROCU6M.js → chunk-NCSKCF2S.js} +3 -3
  55. package/dist/{chunk-CYV6632F.js → chunk-NOQR3TE7.js} +2 -2
  56. package/dist/{chunk-A6CT6GTI.js → chunk-OEP2D6QL.js} +18 -12
  57. package/dist/chunk-OEP2D6QL.js.map +1 -0
  58. package/dist/{chunk-2RJIDREZ.js → chunk-PAIB5V27.js} +32 -23
  59. package/dist/chunk-PAIB5V27.js.map +1 -0
  60. package/dist/{chunk-FGKMJS3B.js → chunk-RX32WLVJ.js} +2 -4
  61. package/dist/chunk-RX32WLVJ.js.map +1 -0
  62. package/dist/{chunk-YTQUNAZP.js → chunk-X3GZILYD.js} +3 -3
  63. package/dist/{chunk-25AKG5HH.js → chunk-Y575RZHR.js} +19 -11
  64. package/dist/chunk-Y575RZHR.js.map +1 -0
  65. package/dist/{chunk-RX55KAKX.js → chunk-ZWOAFHAR.js} +2 -2
  66. package/dist/{chunk-NNADGHSL.js → chunk-ZZMFXRQK.js} +14 -14
  67. package/dist/commonConstants.cjs.map +1 -1
  68. package/dist/commonConstants.d.cts +1 -1
  69. package/dist/commonConstants.d.ts +1 -1
  70. package/dist/commonConstants.js +1 -1
  71. package/dist/commonSelectors.cjs +47 -29
  72. package/dist/commonSelectors.cjs.map +1 -1
  73. package/dist/commonSelectors.d.cts +55 -46
  74. package/dist/commonSelectors.d.ts +55 -46
  75. package/dist/commonSelectors.js +11 -11
  76. package/dist/constants.cjs +35 -19
  77. package/dist/constants.cjs.map +1 -1
  78. package/dist/constants.d.cts +3 -3
  79. package/dist/constants.d.ts +3 -3
  80. package/dist/constants.js +7 -3
  81. package/dist/deploymentdevicehook.cjs +159 -125
  82. package/dist/deploymentdevicehook.cjs.map +1 -1
  83. package/dist/deploymentdevicehook.d.cts +1 -1
  84. package/dist/deploymentdevicehook.d.ts +1 -1
  85. package/dist/deploymentdevicehook.js +34 -31
  86. package/dist/deploymentdevicehook.js.map +1 -1
  87. package/dist/deploymentsSlice/constants.cjs +8 -8
  88. package/dist/deploymentsSlice/constants.cjs.map +1 -1
  89. package/dist/deploymentsSlice/constants.js +3 -3
  90. package/dist/deploymentsSlice/index.cjs +8 -8
  91. package/dist/deploymentsSlice/index.cjs.map +1 -1
  92. package/dist/deploymentsSlice/index.js +4 -4
  93. package/dist/deploymentsSlice/selectors.cjs +8 -8
  94. package/dist/deploymentsSlice/selectors.cjs.map +1 -1
  95. package/dist/deploymentsSlice/selectors.js +4 -4
  96. package/dist/deploymentsSlice/thunks.cjs +153 -120
  97. package/dist/deploymentsSlice/thunks.cjs.map +1 -1
  98. package/dist/deploymentsSlice/thunks.js +28 -27
  99. package/dist/devicesSlice/constants.cjs +11 -8
  100. package/dist/devicesSlice/constants.cjs.map +1 -1
  101. package/dist/devicesSlice/constants.d.cts +2 -1
  102. package/dist/devicesSlice/constants.d.ts +2 -1
  103. package/dist/devicesSlice/constants.js +5 -3
  104. package/dist/devicesSlice/index.cjs +8 -8
  105. package/dist/devicesSlice/index.cjs.map +1 -1
  106. package/dist/devicesSlice/index.js +4 -4
  107. package/dist/devicesSlice/selectors.cjs +9 -9
  108. package/dist/devicesSlice/selectors.cjs.map +1 -1
  109. package/dist/devicesSlice/selectors.js +4 -4
  110. package/dist/devicesSlice/thunks.cjs +155 -120
  111. package/dist/devicesSlice/thunks.cjs.map +1 -1
  112. package/dist/devicesSlice/thunks.d.cts +12 -2
  113. package/dist/devicesSlice/thunks.d.ts +12 -2
  114. package/dist/devicesSlice/thunks.js +30 -27
  115. package/dist/flag-eu-5477R2P4.svg +130 -0
  116. package/dist/flag-us-HNQAF66I.svg +63 -0
  117. package/dist/liststatehook.cjs +971 -0
  118. package/dist/liststatehook.cjs.map +1 -0
  119. package/dist/liststatehook.d.cts +246 -0
  120. package/dist/liststatehook.d.ts +246 -0
  121. package/dist/liststatehook.js +88 -0
  122. package/dist/liststatehook.js.map +1 -0
  123. package/dist/locationutils.cjs +942 -0
  124. package/dist/locationutils.cjs.map +1 -0
  125. package/dist/locationutils.d.cts +113 -0
  126. package/dist/locationutils.d.ts +113 -0
  127. package/dist/locationutils.js +46 -0
  128. package/dist/locationutils.js.map +1 -0
  129. package/dist/monitorSlice/constants.cjs +8 -8
  130. package/dist/monitorSlice/constants.cjs.map +1 -1
  131. package/dist/monitorSlice/constants.js +3 -3
  132. package/dist/monitorSlice/index.cjs +8 -8
  133. package/dist/monitorSlice/index.cjs.map +1 -1
  134. package/dist/monitorSlice/index.js +4 -4
  135. package/dist/monitorSlice/thunks.cjs +74 -62
  136. package/dist/monitorSlice/thunks.cjs.map +1 -1
  137. package/dist/monitorSlice/thunks.js +24 -24
  138. package/dist/onboardingSlice/index.cjs +1 -3
  139. package/dist/onboardingSlice/index.cjs.map +1 -1
  140. package/dist/onboardingSlice/index.js +1 -1
  141. package/dist/onboardingSlice/thunks.cjs +157 -124
  142. package/dist/onboardingSlice/thunks.cjs.map +1 -1
  143. package/dist/onboardingSlice/thunks.d.cts +2 -34
  144. package/dist/onboardingSlice/thunks.d.ts +2 -34
  145. package/dist/onboardingSlice/thunks.js +28 -29
  146. package/dist/organizationSlice/constants.cjs +22 -17
  147. package/dist/organizationSlice/constants.cjs.map +1 -1
  148. package/dist/organizationSlice/constants.d.cts +33 -1
  149. package/dist/organizationSlice/constants.d.ts +33 -1
  150. package/dist/organizationSlice/constants.js +5 -3
  151. package/dist/organizationSlice/index.cjs +18 -15
  152. package/dist/organizationSlice/index.cjs.map +1 -1
  153. package/dist/organizationSlice/index.d.cts +27 -1012
  154. package/dist/organizationSlice/index.d.ts +27 -1012
  155. package/dist/organizationSlice/index.js +4 -4
  156. package/dist/organizationSlice/selectors.cjs.map +1 -1
  157. package/dist/organizationSlice/selectors.d.cts +10 -1
  158. package/dist/organizationSlice/selectors.d.ts +10 -1
  159. package/dist/organizationSlice/selectors.js +4 -4
  160. package/dist/organizationSlice/thunks.cjs +1619 -1559
  161. package/dist/organizationSlice/thunks.cjs.map +1 -1
  162. package/dist/organizationSlice/thunks.d.cts +62 -37
  163. package/dist/organizationSlice/thunks.d.ts +62 -37
  164. package/dist/organizationSlice/thunks.js +28 -27
  165. package/dist/organizationSlice/types.cjs +19 -0
  166. package/dist/organizationSlice/types.cjs.map +1 -0
  167. package/dist/organizationSlice/types.d.cts +5 -0
  168. package/dist/organizationSlice/types.d.ts +5 -0
  169. package/dist/organizationSlice/types.js +1 -0
  170. package/dist/organizationSlice/types.js.map +1 -0
  171. package/dist/releasesSlice/index.cjs.map +1 -1
  172. package/dist/releasesSlice/index.js +4 -4
  173. package/dist/releasesSlice/selectors.cjs +17 -8
  174. package/dist/releasesSlice/selectors.cjs.map +1 -1
  175. package/dist/releasesSlice/selectors.js +5 -5
  176. package/dist/releasesSlice/thunks.cjs +123 -94
  177. package/dist/releasesSlice/thunks.cjs.map +1 -1
  178. package/dist/releasesSlice/thunks.d.cts +1 -4
  179. package/dist/releasesSlice/thunks.d.ts +1 -4
  180. package/dist/releasesSlice/thunks.js +25 -24
  181. package/dist/selectors.cjs +53 -29
  182. package/dist/selectors.cjs.map +1 -1
  183. package/dist/selectors.d.cts +10 -1
  184. package/dist/selectors.d.ts +10 -1
  185. package/dist/selectors.js +49 -43
  186. package/dist/sockethook.cjs +529 -0
  187. package/dist/sockethook.cjs.map +1 -0
  188. package/dist/sockethook.d.cts +10 -0
  189. package/dist/sockethook.d.ts +10 -0
  190. package/dist/sockethook.js +141 -0
  191. package/dist/sockethook.js.map +1 -0
  192. package/dist/store.cjs +38 -29
  193. package/dist/store.cjs.map +1 -1
  194. package/dist/store.d.cts +13 -231
  195. package/dist/store.d.ts +13 -231
  196. package/dist/store.js +18 -16
  197. package/dist/storehooks.cjs +273 -198
  198. package/dist/storehooks.cjs.map +1 -1
  199. package/dist/storehooks.js +38 -37
  200. package/dist/storehooks.js.map +1 -1
  201. package/dist/thunks.cjs +259 -184
  202. package/dist/thunks.cjs.map +1 -1
  203. package/dist/thunks.d.cts +6 -2
  204. package/dist/thunks.d.ts +6 -2
  205. package/dist/thunks.js +30 -29
  206. package/dist/types-DBj17FZO.d.cts +135 -0
  207. package/dist/types-DnfZa6xd.d.ts +135 -0
  208. package/dist/usersSlice/constants.cjs +10 -10
  209. package/dist/usersSlice/constants.cjs.map +1 -1
  210. package/dist/usersSlice/constants.d.cts +6 -6
  211. package/dist/usersSlice/constants.d.ts +6 -6
  212. package/dist/usersSlice/constants.js +3 -3
  213. package/dist/usersSlice/index.cjs +10 -10
  214. package/dist/usersSlice/index.cjs.map +1 -1
  215. package/dist/usersSlice/index.js +4 -4
  216. package/dist/usersSlice/selectors.cjs +35 -13
  217. package/dist/usersSlice/selectors.cjs.map +1 -1
  218. package/dist/usersSlice/selectors.d.cts +44 -1
  219. package/dist/usersSlice/selectors.d.ts +44 -1
  220. package/dist/usersSlice/selectors.js +13 -7
  221. package/dist/usersSlice/thunks.cjs +151 -120
  222. package/dist/usersSlice/thunks.cjs.map +1 -1
  223. package/dist/usersSlice/thunks.d.cts +10 -9
  224. package/dist/usersSlice/thunks.d.ts +10 -9
  225. package/dist/usersSlice/thunks.js +28 -27
  226. package/dist/utils.cjs +23 -24
  227. package/dist/utils.cjs.map +1 -1
  228. package/dist/utils.js +4 -4
  229. package/package.json +7 -6
  230. package/dist/chunk-25AKG5HH.js.map +0 -1
  231. package/dist/chunk-2RJIDREZ.js.map +0 -1
  232. package/dist/chunk-74OJIKXF.js.map +0 -1
  233. package/dist/chunk-A6CT6GTI.js.map +0 -1
  234. package/dist/chunk-ANB5BM5J.js.map +0 -1
  235. package/dist/chunk-FGKMJS3B.js.map +0 -1
  236. package/dist/chunk-KAQJH2YL.js.map +0 -1
  237. package/dist/chunk-MDC7Y3EX.js.map +0 -1
  238. package/dist/chunk-Q6M5TTDQ.js.map +0 -1
  239. package/dist/chunk-XTRPX7JZ.js.map +0 -1
  240. package/dist/chunk-YETZPQFR.js.map +0 -1
  241. /package/dist/{chunk-YGBFDXXA.js.map → chunk-7YZCUAXZ.js.map} +0 -0
  242. /package/dist/{chunk-YT73QWCN.js.map → chunk-AUBJUUP3.js.map} +0 -0
  243. /package/dist/{chunk-UEP36GCI.js.map → chunk-AVX7VVOK.js.map} +0 -0
  244. /package/dist/{chunk-VOCOFE4I.js.map → chunk-DCEKU6UV.js.map} +0 -0
  245. /package/dist/{chunk-E5LEU5PF.js.map → chunk-DGQKXSRI.js.map} +0 -0
  246. /package/dist/{chunk-AMGWP7A4.js.map → chunk-GAI4VYRZ.js.map} +0 -0
  247. /package/dist/{chunk-JAROCU6M.js.map → chunk-NCSKCF2S.js.map} +0 -0
  248. /package/dist/{chunk-CYV6632F.js.map → chunk-NOQR3TE7.js.map} +0 -0
  249. /package/dist/{chunk-YTQUNAZP.js.map → chunk-X3GZILYD.js.map} +0 -0
  250. /package/dist/{chunk-RX55KAKX.js.map → chunk-ZWOAFHAR.js.map} +0 -0
  251. /package/dist/{chunk-NNADGHSL.js.map → chunk-ZZMFXRQK.js.map} +0 -0
@@ -0,0 +1,141 @@
1
+ import {
2
+ DEVICE_MESSAGE_PROTOCOLS,
3
+ DEVICE_MESSAGE_TYPES
4
+ } from "./chunk-OEP2D6QL.js";
5
+ import "./chunk-CK6YE6AN.js";
6
+ import "./chunk-MRCFLG45.js";
7
+ import {
8
+ apiUrl
9
+ } from "./chunk-Y575RZHR.js";
10
+ import {
11
+ TIMEOUTS
12
+ } from "./chunk-BSN2TOQC.js";
13
+
14
+ // src/sockethook.ts
15
+ import { useCallback, useEffect, useRef, useState } from "react";
16
+ import { blobToString, byteArrayToString } from "@northern.tech/utils/helpers";
17
+ import msgpack5 from "msgpack5";
18
+ import Cookies from "universal-cookie";
19
+ var cookies = new Cookies();
20
+ var MessagePack = msgpack5();
21
+ var useSession = ({ onClose, onHealthCheckFailed, onMessageReceived, onNotify, onOpen, token }) => {
22
+ const [sessionId, setSessionId] = useState();
23
+ const healthcheckTimeout = useRef();
24
+ const socketRef = useRef();
25
+ const sendMessage = useCallback(({ typ, body, props }) => {
26
+ if (!socketRef.current) {
27
+ return;
28
+ }
29
+ const proto_header = { proto: DEVICE_MESSAGE_PROTOCOLS.Shell, typ, sid: socketRef.current.sessionId, props };
30
+ const encodedData = MessagePack.encode({ hdr: proto_header, body });
31
+ socketRef.current.send(encodedData);
32
+ }, []);
33
+ const close = useCallback(() => {
34
+ if (!socketRef.current || socketRef.current?.readyState !== WebSocket.OPEN) {
35
+ return;
36
+ }
37
+ sendMessage({ typ: DEVICE_MESSAGE_TYPES.Stop, body: {}, props: {} });
38
+ socketRef.current.close();
39
+ setSessionId();
40
+ }, [sendMessage]);
41
+ const healthcheckFailed = useCallback(() => {
42
+ onHealthCheckFailed();
43
+ close();
44
+ }, [close, onHealthCheckFailed]);
45
+ const onSocketMessage = useCallback(
46
+ (event) => blobToString(event.data).then((data) => {
47
+ const {
48
+ hdr: { props = {}, proto, sid, typ },
49
+ body
50
+ } = MessagePack.decode(data);
51
+ if (proto !== DEVICE_MESSAGE_PROTOCOLS.Shell) {
52
+ return;
53
+ }
54
+ switch (typ) {
55
+ case DEVICE_MESSAGE_TYPES.New: {
56
+ if (props.status == WebSocket.CLOSING) {
57
+ onNotify(`Error: ${byteArrayToString(body)}`);
58
+ setSessionId();
59
+ return close();
60
+ } else {
61
+ clearTimeout(healthcheckTimeout.current);
62
+ healthcheckTimeout.current = setTimeout(healthcheckFailed, 65 * TIMEOUTS.oneSecond);
63
+ socketRef.current.sessionId = sid;
64
+ return setSessionId(sid);
65
+ }
66
+ }
67
+ case DEVICE_MESSAGE_TYPES.Shell:
68
+ return onMessageReceived(body);
69
+ case DEVICE_MESSAGE_TYPES.Stop:
70
+ return close();
71
+ case DEVICE_MESSAGE_TYPES.Ping: {
72
+ if (healthcheckTimeout.current) {
73
+ clearTimeout(healthcheckTimeout.current);
74
+ }
75
+ sendMessage({ typ: DEVICE_MESSAGE_TYPES.Pong });
76
+ const timeout = parseInt(props.timeout);
77
+ if (timeout > 0) {
78
+ healthcheckTimeout.current = setTimeout(healthcheckFailed, timeout * TIMEOUTS.oneSecond);
79
+ }
80
+ return;
81
+ }
82
+ default:
83
+ break;
84
+ }
85
+ }),
86
+ [close, healthcheckFailed, onMessageReceived, onNotify, sendMessage]
87
+ );
88
+ const onSocketError = useCallback(
89
+ (error) => {
90
+ onNotify(`WebSocket error: ${error.message}`);
91
+ close();
92
+ clearTimeout(healthcheckTimeout.current);
93
+ },
94
+ [close, onNotify]
95
+ );
96
+ const onSocketOpen = useCallback(() => {
97
+ sendMessage({ typ: DEVICE_MESSAGE_TYPES.New, props: {} });
98
+ onOpen(true);
99
+ }, [onOpen, sendMessage]);
100
+ const onSocketClose = useCallback(
101
+ (e) => {
102
+ console.log("closing");
103
+ onClose(e);
104
+ close();
105
+ },
106
+ [close, onClose]
107
+ );
108
+ const connect = useCallback(
109
+ (deviceId) => {
110
+ const uri = `wss://${window.location.host}${apiUrl.v1}/deviceconnect/devices/${deviceId}/connect`;
111
+ setSessionId();
112
+ cookies.set("JWT", token, { path: "/", secure: true, sameSite: "strict", maxAge: 5 });
113
+ try {
114
+ socketRef.current = new WebSocket(uri);
115
+ } catch (error) {
116
+ console.log(error);
117
+ }
118
+ },
119
+ [token]
120
+ );
121
+ useEffect(() => {
122
+ if (!socketRef.current) {
123
+ return;
124
+ }
125
+ socketRef.current.addEventListener("close", onSocketClose);
126
+ socketRef.current.addEventListener("error", onSocketError);
127
+ socketRef.current.addEventListener("message", onSocketMessage);
128
+ socketRef.current.addEventListener("open", onSocketOpen);
129
+ return () => {
130
+ socketRef.current.removeEventListener("close", onSocketClose);
131
+ socketRef.current.removeEventListener("error", onSocketError);
132
+ socketRef.current.removeEventListener("message", onSocketMessage);
133
+ socketRef.current.removeEventListener("open", onSocketOpen);
134
+ };
135
+ }, [onSocketClose, onSocketError, onSocketMessage, onSocketOpen, socketRef.current?.readyState]);
136
+ return [connect, sendMessage, close, socketRef.current?.readyState ?? WebSocket.CLOSED, sessionId];
137
+ };
138
+ export {
139
+ useSession
140
+ };
141
+ //# sourceMappingURL=sockethook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"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.\n//@ts-nocheck\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { blobToString, byteArrayToString } from '@northern.tech/utils/helpers';\nimport msgpack5 from 'msgpack5';\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\nconst MessagePack = msgpack5();\n\nexport const useSession = ({ onClose, onHealthCheckFailed, onMessageReceived, onNotify, onOpen, token }) => {\n const [sessionId, setSessionId] = useState();\n const healthcheckTimeout = useRef();\n const socketRef = useRef();\n const sendMessage = useCallback(({ typ, body, props }) => {\n if (!socketRef.current) {\n return;\n }\n const proto_header = { proto: MessageProtocols.Shell, typ, sid: socketRef.current.sessionId, props };\n const encodedData = MessagePack.encode({ hdr: proto_header, body });\n socketRef.current.send(encodedData);\n }, []);\n\n const close = useCallback(() => {\n if (!socketRef.current || socketRef.current?.readyState !== WebSocket.OPEN) {\n return;\n }\n sendMessage({ typ: MessageTypes.Stop, body: {}, props: {} });\n socketRef.current.close();\n setSessionId();\n }, [sendMessage]);\n\n const healthcheckFailed = useCallback(() => {\n onHealthCheckFailed();\n close();\n }, [close, onHealthCheckFailed]);\n\n const onSocketMessage = useCallback(\n event =>\n blobToString(event.data).then(data => {\n const {\n hdr: { props = {}, proto, sid, typ },\n body\n } = MessagePack.decode(data);\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)}`);\n setSessionId();\n return close();\n } else {\n clearTimeout(healthcheckTimeout.current);\n healthcheckTimeout.current = setTimeout(healthcheckFailed, 65 * TIMEOUTS.oneSecond);\n socketRef.current.sessionId = sid;\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 });\n //\n const timeout = parseInt(props.timeout);\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 => {\n onNotify(`WebSocket error: ${error.message}`);\n close();\n clearTimeout(healthcheckTimeout.current);\n },\n [close, onNotify]\n );\n\n const onSocketOpen = useCallback(() => {\n sendMessage({ typ: MessageTypes.New, props: {} });\n onOpen(true);\n }, [onOpen, sendMessage]);\n\n const onSocketClose = useCallback(\n e => {\n console.log('closing');\n onClose(e);\n close();\n },\n [close, onClose]\n );\n\n const connect = useCallback(\n deviceId => {\n const uri = `wss://${window.location.host}${apiUrl.v1}/deviceconnect/devices/${deviceId}/connect`;\n setSessionId();\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 if (!socketRef.current) {\n return;\n }\n\n socketRef.current.addEventListener('close', onSocketClose);\n socketRef.current.addEventListener('error', onSocketError);\n socketRef.current.addEventListener('message', onSocketMessage);\n socketRef.current.addEventListener('open', onSocketOpen);\n\n return () => {\n socketRef.current.removeEventListener('close', onSocketClose);\n socketRef.current.removeEventListener('error', onSocketError);\n socketRef.current.removeEventListener('message', onSocketMessage);\n socketRef.current.removeEventListener('open', onSocketOpen);\n };\n }, [onSocketClose, onSocketError, onSocketMessage, onSocketOpen, socketRef.current?.readyState]);\n\n return [connect, sendMessage, close, socketRef.current?.readyState ?? WebSocket.CLOSED, sessionId];\n};\n"],"mappings":"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","names":[]}
package/dist/store.cjs CHANGED
@@ -34,9 +34,11 @@ __export(store_exports, {
34
34
  commonErrorHandler: () => commonErrorHandler,
35
35
  getConfiguredStore: () => getConfiguredStore,
36
36
  sessionReducer: () => sessionReducer,
37
- store: () => store
37
+ store: () => store,
38
+ useAppDispatch: () => useAppDispatch
38
39
  });
39
40
  module.exports = __toCommonJS(store_exports);
41
+ var import_react_redux = require("react-redux");
40
42
  var import_helpers2 = require("@northern.tech/utils/helpers");
41
43
  var import_toolkit9 = require("@reduxjs/toolkit");
42
44
 
@@ -63,28 +65,28 @@ var PLANS = {
63
65
  id: "os",
64
66
  name: "Basic",
65
67
  offer: true,
66
- price: "$32/month",
68
+ price: "$32 / month",
67
69
  deviceCount: startingDeviceCount.os,
68
- offerprice: "$23/month for first 50 devices",
70
+ offerprice: "$23 / month for first 50 devices",
69
71
  price2: "for first 6 months;\n$29/month thereafter",
70
- features: ["Basic OTA features"]
72
+ features: ["Access to core features of Mender", "Basic support"]
71
73
  },
72
74
  professional: {
73
75
  id: "professional",
74
76
  name: "Professional",
75
77
  offer: true,
76
- price: "$269/month",
78
+ price: "$269 / month",
77
79
  deviceCount: startingDeviceCount.professional,
78
- offerprice: "$200/month for first 50 devices",
80
+ offerprice: "$200 / month for first 50 devices",
79
81
  price2: "for first 6 months;\n$249/month thereafter",
80
- features: ["+ Advanced OTA features", "+ Standard support"]
82
+ features: ["Advanced OTA features", "Higher priority support"]
81
83
  },
82
84
  enterprise: {
83
85
  id: "enterprise",
84
86
  name: "Enterprise",
85
87
  price: "Custom pricing",
86
- deviceCount: "unlimited devices",
87
- features: ["+ Enterprise-grade OTA features", "+ Premium support"]
88
+ deviceCount: "Unlimited devices",
89
+ features: ["All Mender features", "Advanced security features", "SLA-backed support"]
88
90
  }
89
91
  };
90
92
  var ADDONS = {
@@ -554,13 +556,16 @@ var auditLogsApiUrl = `${apiUrl.v1}/auditlogs`;
554
556
  var tenantadmApiUrlv1 = `${apiUrl.v1}/tenantadm`;
555
557
  var tenantadmApiUrlv2 = `${apiUrl.v2}/tenantadm`;
556
558
  var ssoIdpApiUrlv1 = `${apiUrl.v1}/useradm/sso/idp/metadata`;
557
- var AUDIT_LOGS_TYPES = [
558
- { title: "Artifact", queryParameter: "object_type", value: "artifact" },
559
- { title: "Deployment", queryParameter: "object_deployment_name", value: "deployment" },
560
- { title: "Device", queryParameter: "object_id", value: "device" },
561
- { title: "User", queryParameter: "object_id", value: "user" }
562
- ];
563
- var SP_AUDIT_LOGS_TYPES = [AUDIT_LOGS_TYPES[3], { title: "Tenant", queryParameter: "object_id", value: "tenant" }];
559
+ var auditlogTypes = {
560
+ artifact: { title: "Artifact", queryParameter: "object_type", value: "artifact" },
561
+ deployment: { title: "Deployment", queryParameter: "object_deployment_name", value: "deployment" },
562
+ device: { title: "Device", queryParameter: "object_id", value: "device" },
563
+ user_access_token: { title: "Personal Access Token", queryParameter: "user_access_token", value: "user_access_token" },
564
+ user: { title: "User", queryParameter: "object_id", value: "user" },
565
+ tenant: { title: "Tenant", queryParameter: "object_id", value: "tenant" }
566
+ };
567
+ var AUDIT_LOGS_TYPES = [auditlogTypes.artifact, auditlogTypes.deployment, auditlogTypes.device, auditlogTypes.user_access_token, auditlogTypes.user];
568
+ var SP_AUDIT_LOGS_TYPES = [auditlogTypes.user, auditlogTypes.tenant];
564
569
  var emptyWebhook = {
565
570
  description: "",
566
571
  enabled: true,
@@ -689,7 +694,7 @@ var uiPermissionsByArea = {
689
694
  explanation: "Granting access to the audit log will allow tracing changes to devices, releases and user accounts, as well as providing information about deployments.",
690
695
  key: "auditlog",
691
696
  uiPermissions: [uiPermissionsById.read],
692
- title: "System audit log"
697
+ title: "System Audit Log"
693
698
  },
694
699
  deployments: {
695
700
  endpoints: [
@@ -839,7 +844,7 @@ var serviceProviderRolesById = {
839
844
  },
840
845
  readOnly: {
841
846
  name: "Read access",
842
- value: staticRolesByName.admin,
847
+ value: staticRolesByName.readOnly,
843
848
  description: "This role can see all linked organizations but cannot make any changes",
844
849
  permissions: [],
845
850
  uiPermissions: {
@@ -1091,9 +1096,7 @@ var appSlice = (0, import_toolkit.createSlice)({
1091
1096
  ...action.payload
1092
1097
  };
1093
1098
  },
1094
- setEnvironmentData: (state, action) => {
1095
- return { ...state, ...action.payload };
1096
- }
1099
+ setEnvironmentData: (state, action) => ({ ...state, ...action.payload })
1097
1100
  }
1098
1101
  });
1099
1102
  var actions = appSlice.actions;
@@ -1468,9 +1471,7 @@ var onboardingSlice = (0, import_toolkit5.createSlice)({
1468
1471
  name: sliceName5,
1469
1472
  initialState: initialState5,
1470
1473
  reducers: {
1471
- setOnboardingState: (state, action) => {
1472
- return { ...state, ...action.payload };
1473
- },
1474
+ setOnboardingState: (state, action) => ({ ...state, ...action.payload }),
1474
1475
  setDemoArtifactPort: (state, action) => {
1475
1476
  state.demoArtifactPort = action.payload;
1476
1477
  },
@@ -1872,9 +1873,7 @@ var cleanUp = () => {
1872
1873
  // src/store.ts
1873
1874
  var { setSnackbar, uploadProgress } = actions_default;
1874
1875
  var keys = ["sessionDeploymentChecker", settingsKeys.initialized];
1875
- var resetEnvironment = () => {
1876
- keys.map((key) => window.sessionStorage.removeItem(key));
1877
- };
1876
+ var resetEnvironment = () => keys.forEach((key) => window.sessionStorage.removeItem(key));
1878
1877
  resetEnvironment();
1879
1878
  var commonErrorFallback = "Please check your connection.";
1880
1879
  var commonErrorHandler = (err, errorContext, dispatch, fallback, mightBeAuthRelated = false) => {
@@ -1900,6 +1899,14 @@ var sessionReducer = (state, action) => {
1900
1899
  }
1901
1900
  return rootReducer(state, action);
1902
1901
  };
1902
+ var rejectionLoggerMiddleware = () => (next) => (action) => {
1903
+ if (action.type.endsWith("/rejected")) {
1904
+ const { error } = action;
1905
+ console.error("Rejection in action:", action);
1906
+ console.error(error.stack);
1907
+ }
1908
+ return next(action);
1909
+ };
1903
1910
  var getConfiguredStore = (options = {}) => {
1904
1911
  const { preloadedState = {}, ...config } = options;
1905
1912
  return (0, import_toolkit9.configureStore)({
@@ -1915,18 +1922,20 @@ var getConfiguredStore = (options = {}) => {
1915
1922
  ignoredActionPaths: ["uploads", "snackbar", /payload\..*$/],
1916
1923
  ignoredPaths: ["app.uploadsById", "app.snackbar", "organization.externalDeviceIntegrations"]
1917
1924
  }
1918
- })
1925
+ }).concat(rejectionLoggerMiddleware)
1919
1926
  });
1920
1927
  };
1921
1928
  var store = getConfiguredStore({
1922
1929
  preloadedState: {}
1923
1930
  });
1931
+ var useAppDispatch = import_react_redux.useDispatch;
1924
1932
  // Annotate the CommonJS export names for ESM import in node:
1925
1933
  0 && (module.exports = {
1926
1934
  commonErrorFallback,
1927
1935
  commonErrorHandler,
1928
1936
  getConfiguredStore,
1929
1937
  sessionReducer,
1930
- store
1938
+ store,
1939
+ useAppDispatch
1931
1940
  });
1932
1941
  //# sourceMappingURL=store.cjs.map