@adapt-toolkit/sdk 0.5.14 → 0.6.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 (286) hide show
  1. package/LICENSE +105 -0
  2. package/LICENSE.aefl +172 -0
  3. package/NOTICE +18 -0
  4. package/package.json +8 -4
  5. package/dist/common/index.d.ts +0 -7
  6. package/dist/common/index.d.ts.map +0 -1
  7. package/dist/common/index.js +0 -7
  8. package/dist/common/index.js.map +0 -1
  9. package/dist/common/interfaces/adapt_environment.d.ts +0 -21
  10. package/dist/common/interfaces/adapt_environment.d.ts.map +0 -1
  11. package/dist/common/interfaces/adapt_environment.js +0 -2
  12. package/dist/common/interfaces/adapt_environment.js.map +0 -1
  13. package/dist/common/interfaces/adapt_evaluation_unit.d.ts +0 -12
  14. package/dist/common/interfaces/adapt_evaluation_unit.d.ts.map +0 -1
  15. package/dist/common/interfaces/adapt_evaluation_unit.js +0 -2
  16. package/dist/common/interfaces/adapt_evaluation_unit.js.map +0 -1
  17. package/dist/common/interfaces/adapt_packet_context.d.ts +0 -29
  18. package/dist/common/interfaces/adapt_packet_context.d.ts.map +0 -1
  19. package/dist/common/interfaces/adapt_packet_context.js +0 -2
  20. package/dist/common/interfaces/adapt_packet_context.js.map +0 -1
  21. package/dist/common/interfaces/adapt_value.d.ts +0 -23
  22. package/dist/common/interfaces/adapt_value.d.ts.map +0 -1
  23. package/dist/common/interfaces/adapt_value.js +0 -2
  24. package/dist/common/interfaces/adapt_value.js.map +0 -1
  25. package/dist/common/interfaces/common.d.ts +0 -18
  26. package/dist/common/interfaces/common.d.ts.map +0 -1
  27. package/dist/common/interfaces/common.js +0 -4
  28. package/dist/common/interfaces/common.js.map +0 -1
  29. package/dist/common/memory_management/adapt_object_lifetime.d.ts +0 -121
  30. package/dist/common/memory_management/adapt_object_lifetime.d.ts.map +0 -1
  31. package/dist/common/memory_management/adapt_object_lifetime.js +0 -168
  32. package/dist/common/memory_management/adapt_object_lifetime.js.map +0 -1
  33. package/dist/index.d.ts +0 -3
  34. package/dist/index.d.ts.map +0 -1
  35. package/dist/index.js +0 -2
  36. package/dist/index.js.map +0 -1
  37. package/dist/loaders/browser.d.ts +0 -5
  38. package/dist/loaders/browser.d.ts.map +0 -1
  39. package/dist/loaders/browser.js +0 -6
  40. package/dist/loaders/browser.js.map +0 -1
  41. package/dist/loaders/node.d.ts +0 -13
  42. package/dist/loaders/node.d.ts.map +0 -1
  43. package/dist/loaders/node.js +0 -33
  44. package/dist/loaders/node.js.map +0 -1
  45. package/dist/loaders/react-native.d.ts +0 -11
  46. package/dist/loaders/react-native.d.ts.map +0 -1
  47. package/dist/loaders/react-native.js +0 -19
  48. package/dist/loaders/react-native.js.map +0 -1
  49. package/dist/loaders/shared.d.ts +0 -17
  50. package/dist/loaders/shared.d.ts.map +0 -1
  51. package/dist/loaders/shared.js +0 -2
  52. package/dist/loaders/shared.js.map +0 -1
  53. package/dist/mufl_files/BF38C2D4E98F56F473F78121CF9EAAC3492364F1A11A3B0F1F04C12D24285596.muflo +0 -0
  54. package/dist/utilities/broker/broker.d.ts +0 -23
  55. package/dist/utilities/broker/broker.d.ts.map +0 -1
  56. package/dist/utilities/broker/broker.js +0 -335
  57. package/dist/utilities/broker/broker.js.map +0 -1
  58. package/dist/utilities/broker/broker_client.d.ts +0 -36
  59. package/dist/utilities/broker/broker_client.d.ts.map +0 -1
  60. package/dist/utilities/broker/broker_client.js +0 -121
  61. package/dist/utilities/broker/broker_client.js.map +0 -1
  62. package/dist/utilities/broker/broker_configurator.d.ts +0 -7
  63. package/dist/utilities/broker/broker_configurator.d.ts.map +0 -1
  64. package/dist/utilities/broker/broker_configurator.js +0 -16
  65. package/dist/utilities/broker/broker_configurator.js.map +0 -1
  66. package/dist/utilities/broker/index.d.ts +0 -5
  67. package/dist/utilities/broker/index.d.ts.map +0 -1
  68. package/dist/utilities/broker/index.js +0 -5
  69. package/dist/utilities/broker/index.js.map +0 -1
  70. package/dist/utilities/broker/pending_message_store.d.ts +0 -14
  71. package/dist/utilities/broker/pending_message_store.d.ts.map +0 -1
  72. package/dist/utilities/broker/pending_message_store.js +0 -58
  73. package/dist/utilities/broker/pending_message_store.js.map +0 -1
  74. package/dist/utilities/common/adapt_waitlist.d.ts +0 -5
  75. package/dist/utilities/common/adapt_waitlist.d.ts.map +0 -1
  76. package/dist/utilities/common/adapt_waitlist.js +0 -4
  77. package/dist/utilities/common/adapt_waitlist.js.map +0 -1
  78. package/dist/utilities/common/async_queue_adapter.d.ts +0 -40
  79. package/dist/utilities/common/async_queue_adapter.d.ts.map +0 -1
  80. package/dist/utilities/common/async_queue_adapter.js +0 -88
  81. package/dist/utilities/common/async_queue_adapter.js.map +0 -1
  82. package/dist/utilities/common/command_line_configurator.d.ts +0 -88
  83. package/dist/utilities/common/command_line_configurator.d.ts.map +0 -1
  84. package/dist/utilities/common/command_line_configurator.js +0 -217
  85. package/dist/utilities/common/command_line_configurator.js.map +0 -1
  86. package/dist/utilities/common/decorators.d.ts +0 -17
  87. package/dist/utilities/common/decorators.d.ts.map +0 -1
  88. package/dist/utilities/common/decorators.js +0 -84
  89. package/dist/utilities/common/decorators.js.map +0 -1
  90. package/dist/utilities/common/errors/adapt_initialization_error.d.ts +0 -4
  91. package/dist/utilities/common/errors/adapt_initialization_error.d.ts.map +0 -1
  92. package/dist/utilities/common/errors/adapt_initialization_error.js +0 -6
  93. package/dist/utilities/common/errors/adapt_initialization_error.js.map +0 -1
  94. package/dist/utilities/common/errors/adapt_network_error.d.ts +0 -8
  95. package/dist/utilities/common/errors/adapt_network_error.d.ts.map +0 -1
  96. package/dist/utilities/common/errors/adapt_network_error.js +0 -12
  97. package/dist/utilities/common/errors/adapt_network_error.js.map +0 -1
  98. package/dist/utilities/common/errors/adapt_protocol_error.d.ts +0 -12
  99. package/dist/utilities/common/errors/adapt_protocol_error.d.ts.map +0 -1
  100. package/dist/utilities/common/errors/adapt_protocol_error.js +0 -16
  101. package/dist/utilities/common/errors/adapt_protocol_error.js.map +0 -1
  102. package/dist/utilities/common/errors/adapt_test_mode_error.d.ts +0 -11
  103. package/dist/utilities/common/errors/adapt_test_mode_error.d.ts.map +0 -1
  104. package/dist/utilities/common/errors/adapt_test_mode_error.js +0 -22
  105. package/dist/utilities/common/errors/adapt_test_mode_error.js.map +0 -1
  106. package/dist/utilities/common/http_server.d.ts +0 -18
  107. package/dist/utilities/common/http_server.d.ts.map +0 -1
  108. package/dist/utilities/common/http_server.js +0 -41
  109. package/dist/utilities/common/http_server.js.map +0 -1
  110. package/dist/utilities/common/index.d.ts +0 -25
  111. package/dist/utilities/common/index.d.ts.map +0 -1
  112. package/dist/utilities/common/index.js +0 -36
  113. package/dist/utilities/common/index.js.map +0 -1
  114. package/dist/utilities/common/logger/logger.d.ts +0 -83
  115. package/dist/utilities/common/logger/logger.d.ts.map +0 -1
  116. package/dist/utilities/common/logger/logger.js +0 -272
  117. package/dist/utilities/common/logger/logger.js.map +0 -1
  118. package/dist/utilities/common/logger/logging_level.d.ts +0 -13
  119. package/dist/utilities/common/logger/logging_level.d.ts.map +0 -1
  120. package/dist/utilities/common/logger/logging_level.js +0 -36
  121. package/dist/utilities/common/logger/logging_level.js.map +0 -1
  122. package/dist/utilities/common/logger/message.d.ts +0 -65
  123. package/dist/utilities/common/logger/message.d.ts.map +0 -1
  124. package/dist/utilities/common/logger/message.js +0 -169
  125. package/dist/utilities/common/logger/message.js.map +0 -1
  126. package/dist/utilities/common/logger/network_component.d.ts +0 -3
  127. package/dist/utilities/common/logger/network_component.d.ts.map +0 -1
  128. package/dist/utilities/common/logger/network_component.js +0 -4
  129. package/dist/utilities/common/logger/network_component.js.map +0 -1
  130. package/dist/utilities/common/totp_qr_code_generator.d.ts +0 -12
  131. package/dist/utilities/common/totp_qr_code_generator.d.ts.map +0 -1
  132. package/dist/utilities/common/totp_qr_code_generator.js +0 -19
  133. package/dist/utilities/common/totp_qr_code_generator.js.map +0 -1
  134. package/dist/utilities/common/waitlist/waitlist.d.ts +0 -36
  135. package/dist/utilities/common/waitlist/waitlist.d.ts.map +0 -1
  136. package/dist/utilities/common/waitlist/waitlist.js +0 -116
  137. package/dist/utilities/common/waitlist/waitlist.js.map +0 -1
  138. package/dist/utilities/common/web_socket_client.d.ts +0 -67
  139. package/dist/utilities/common/web_socket_client.d.ts.map +0 -1
  140. package/dist/utilities/common/web_socket_client.js +0 -214
  141. package/dist/utilities/common/web_socket_client.js.map +0 -1
  142. package/dist/utilities/common/web_socket_connection.d.ts +0 -36
  143. package/dist/utilities/common/web_socket_connection.d.ts.map +0 -1
  144. package/dist/utilities/common/web_socket_connection.js +0 -154
  145. package/dist/utilities/common/web_socket_connection.js.map +0 -1
  146. package/dist/utilities/evaluator/common.d.ts +0 -10
  147. package/dist/utilities/evaluator/common.d.ts.map +0 -1
  148. package/dist/utilities/evaluator/common.js +0 -128
  149. package/dist/utilities/evaluator/common.js.map +0 -1
  150. package/dist/utilities/evaluator/evaluator.d.ts +0 -35
  151. package/dist/utilities/evaluator/evaluator.d.ts.map +0 -1
  152. package/dist/utilities/evaluator/evaluator.js +0 -141
  153. package/dist/utilities/evaluator/evaluator.js.map +0 -1
  154. package/dist/utilities/evaluator/index.d.ts +0 -3
  155. package/dist/utilities/evaluator/index.d.ts.map +0 -1
  156. package/dist/utilities/evaluator/index.js +0 -3
  157. package/dist/utilities/evaluator/index.js.map +0 -1
  158. package/dist/utilities/executables/adapt_wrapper.d.ts +0 -3
  159. package/dist/utilities/executables/adapt_wrapper.d.ts.map +0 -1
  160. package/dist/utilities/executables/adapt_wrapper.js +0 -25
  161. package/dist/utilities/executables/adapt_wrapper.js.map +0 -1
  162. package/dist/utilities/executables/adapt_wrapper_mobile.d.ts +0 -3
  163. package/dist/utilities/executables/adapt_wrapper_mobile.d.ts.map +0 -1
  164. package/dist/utilities/executables/adapt_wrapper_mobile.js +0 -20
  165. package/dist/utilities/executables/adapt_wrapper_mobile.js.map +0 -1
  166. package/dist/utilities/executables/adapt_wrapper_script.d.ts +0 -2
  167. package/dist/utilities/executables/adapt_wrapper_script.d.ts.map +0 -1
  168. package/dist/utilities/executables/adapt_wrapper_script.js +0 -6
  169. package/dist/utilities/executables/adapt_wrapper_script.js.map +0 -1
  170. package/dist/utilities/executables/broker.d.ts +0 -2
  171. package/dist/utilities/executables/broker.d.ts.map +0 -1
  172. package/dist/utilities/executables/broker.js +0 -28
  173. package/dist/utilities/executables/broker.js.map +0 -1
  174. package/dist/utilities/executables/index.d.ts +0 -2
  175. package/dist/utilities/executables/index.d.ts.map +0 -1
  176. package/dist/utilities/executables/index.js +0 -2
  177. package/dist/utilities/executables/index.js.map +0 -1
  178. package/dist/utilities/executables/local_data_storage.d.ts +0 -2
  179. package/dist/utilities/executables/local_data_storage.d.ts.map +0 -1
  180. package/dist/utilities/executables/local_data_storage.js +0 -20
  181. package/dist/utilities/executables/local_data_storage.js.map +0 -1
  182. package/dist/utilities/executables/local_data_storage_cmd_helper.d.ts +0 -2
  183. package/dist/utilities/executables/local_data_storage_cmd_helper.d.ts.map +0 -1
  184. package/dist/utilities/executables/local_data_storage_cmd_helper.js +0 -52
  185. package/dist/utilities/executables/local_data_storage_cmd_helper.js.map +0 -1
  186. package/dist/utilities/storage/data_storage.d.ts +0 -97
  187. package/dist/utilities/storage/data_storage.d.ts.map +0 -1
  188. package/dist/utilities/storage/data_storage.js +0 -440
  189. package/dist/utilities/storage/data_storage.js.map +0 -1
  190. package/dist/utilities/storage/index.d.ts +0 -6
  191. package/dist/utilities/storage/index.d.ts.map +0 -1
  192. package/dist/utilities/storage/index.js +0 -6
  193. package/dist/utilities/storage/index.js.map +0 -1
  194. package/dist/utilities/storage/local_data_storage.d.ts +0 -7
  195. package/dist/utilities/storage/local_data_storage.d.ts.map +0 -1
  196. package/dist/utilities/storage/local_data_storage.js +0 -18
  197. package/dist/utilities/storage/local_data_storage.js.map +0 -1
  198. package/dist/utilities/storage/local_data_storage_base.d.ts +0 -74
  199. package/dist/utilities/storage/local_data_storage_base.d.ts.map +0 -1
  200. package/dist/utilities/storage/local_data_storage_base.js +0 -163
  201. package/dist/utilities/storage/local_data_storage_base.js.map +0 -1
  202. package/dist/utilities/storage/local_data_storage_configurator.d.ts +0 -7
  203. package/dist/utilities/storage/local_data_storage_configurator.d.ts.map +0 -1
  204. package/dist/utilities/storage/local_data_storage_configurator.js +0 -13
  205. package/dist/utilities/storage/local_data_storage_configurator.js.map +0 -1
  206. package/dist/utilities/storage/storage_client.d.ts +0 -29
  207. package/dist/utilities/storage/storage_client.d.ts.map +0 -1
  208. package/dist/utilities/storage/storage_client.js +0 -100
  209. package/dist/utilities/storage/storage_client.js.map +0 -1
  210. package/dist/utilities/wrappers/configurators/adapt_wrapper_configurator.d.ts +0 -14
  211. package/dist/utilities/wrappers/configurators/adapt_wrapper_configurator.d.ts.map +0 -1
  212. package/dist/utilities/wrappers/configurators/adapt_wrapper_configurator.js +0 -57
  213. package/dist/utilities/wrappers/configurators/adapt_wrapper_configurator.js.map +0 -1
  214. package/dist/utilities/wrappers/configurators/control_packet_configurator.d.ts +0 -12
  215. package/dist/utilities/wrappers/configurators/control_packet_configurator.d.ts.map +0 -1
  216. package/dist/utilities/wrappers/configurators/control_packet_configurator.js +0 -52
  217. package/dist/utilities/wrappers/configurators/control_packet_configurator.js.map +0 -1
  218. package/dist/utilities/wrappers/configurators/packet_wrapper_configurator.d.ts +0 -32
  219. package/dist/utilities/wrappers/configurators/packet_wrapper_configurator.d.ts.map +0 -1
  220. package/dist/utilities/wrappers/configurators/packet_wrapper_configurator.js +0 -123
  221. package/dist/utilities/wrappers/configurators/packet_wrapper_configurator.js.map +0 -1
  222. package/dist/utilities/wrappers/enclave/control_packet.d.ts +0 -18
  223. package/dist/utilities/wrappers/enclave/control_packet.d.ts.map +0 -1
  224. package/dist/utilities/wrappers/enclave/control_packet.js +0 -213
  225. package/dist/utilities/wrappers/enclave/control_packet.js.map +0 -1
  226. package/dist/utilities/wrappers/index.d.ts +0 -5
  227. package/dist/utilities/wrappers/index.d.ts.map +0 -1
  228. package/dist/utilities/wrappers/index.js +0 -5
  229. package/dist/utilities/wrappers/index.js.map +0 -1
  230. package/dist/utilities/wrappers/wrappers/adapt_packet_wrapper.d.ts +0 -21
  231. package/dist/utilities/wrappers/wrappers/adapt_packet_wrapper.d.ts.map +0 -1
  232. package/dist/utilities/wrappers/wrappers/adapt_packet_wrapper.js +0 -67
  233. package/dist/utilities/wrappers/wrappers/adapt_packet_wrapper.js.map +0 -1
  234. package/dist/utilities/wrappers/wrappers/adapt_wrapper.d.ts +0 -136
  235. package/dist/utilities/wrappers/wrappers/adapt_wrapper.d.ts.map +0 -1
  236. package/dist/utilities/wrappers/wrappers/adapt_wrapper.js +0 -804
  237. package/dist/utilities/wrappers/wrappers/adapt_wrapper.js.map +0 -1
  238. package/dist/utilities/wrappers/wrappers/impl/adapt_packet_wrapper_impl.d.ts +0 -78
  239. package/dist/utilities/wrappers/wrappers/impl/adapt_packet_wrapper_impl.d.ts.map +0 -1
  240. package/dist/utilities/wrappers/wrappers/impl/adapt_packet_wrapper_impl.js +0 -611
  241. package/dist/utilities/wrappers/wrappers/impl/adapt_packet_wrapper_impl.js.map +0 -1
  242. package/dist/wasm/adapt.d.ts +0 -79
  243. package/dist/wasm/adapt.d.ts.map +0 -1
  244. package/dist/wasm/adapt.js +0 -450
  245. package/dist/wasm/adapt.js.map +0 -1
  246. package/dist/wasm/backend-node.d.ts +0 -9
  247. package/dist/wasm/backend-node.d.ts.map +0 -1
  248. package/dist/wasm/backend-node.js +0 -27
  249. package/dist/wasm/backend-node.js.map +0 -1
  250. package/dist/wasm/index.d.ts +0 -12
  251. package/dist/wasm/index.d.ts.map +0 -1
  252. package/dist/wasm/index.js +0 -15
  253. package/dist/wasm/index.js.map +0 -1
  254. package/dist/wasm/mufl-bindings.d.ts +0 -3
  255. package/dist/wasm/mufl-bindings.d.ts.map +0 -1
  256. package/dist/wasm/mufl-bindings.js +0 -3700
  257. package/dist/wasm/mufl-bindings.js.map +0 -1
  258. package/dist/wasm/mufl-bindings.wasm +0 -0
  259. package/dist/wasm/wasm_types.d.ts +0 -97
  260. package/dist/wasm/wasm_types.d.ts.map +0 -1
  261. package/dist/wasm/wasm_types.js +0 -2
  262. package/dist/wasm/wasm_types.js.map +0 -1
  263. package/dist/wrapper/conversion.d.ts +0 -9
  264. package/dist/wrapper/conversion.d.ts.map +0 -1
  265. package/dist/wrapper/conversion.js +0 -30
  266. package/dist/wrapper/conversion.js.map +0 -1
  267. package/dist/wrapper/index.d.ts +0 -11
  268. package/dist/wrapper/index.d.ts.map +0 -1
  269. package/dist/wrapper/index.js +0 -25
  270. package/dist/wrapper/index.js.map +0 -1
  271. package/dist/wrapper/memory_management/adapt_builder.d.ts +0 -36
  272. package/dist/wrapper/memory_management/adapt_builder.d.ts.map +0 -1
  273. package/dist/wrapper/memory_management/adapt_builder.js +0 -98
  274. package/dist/wrapper/memory_management/adapt_builder.js.map +0 -1
  275. package/dist/wrapper/memory_management/exit_handler_registrar.d.ts +0 -10
  276. package/dist/wrapper/memory_management/exit_handler_registrar.d.ts.map +0 -1
  277. package/dist/wrapper/memory_management/exit_handler_registrar.js +0 -38
  278. package/dist/wrapper/memory_management/exit_handler_registrar.js.map +0 -1
  279. package/dist/wrapper/protocol/message_handler_interfaces.d.ts +0 -32
  280. package/dist/wrapper/protocol/message_handler_interfaces.d.ts.map +0 -1
  281. package/dist/wrapper/protocol/message_handler_interfaces.js +0 -2
  282. package/dist/wrapper/protocol/message_handler_interfaces.js.map +0 -1
  283. package/dist/wrapper/protocol/protocol.d.ts +0 -174
  284. package/dist/wrapper/protocol/protocol.d.ts.map +0 -1
  285. package/dist/wrapper/protocol/protocol.js +0 -410
  286. package/dist/wrapper/protocol/protocol.js.map +0 -1
@@ -1,19 +0,0 @@
1
- import * as QRCode from 'qrcode';
2
- import base32 from 'hi-base32';
3
- export const generateTOTPURI = (config) => {
4
- const { secret, issuer, accountName, algorithm = 'SHA1', digits = 6, period = 30 } = config;
5
- if (algorithm != 'SHA1' && algorithm != 'SHA256' && algorithm != "SHA512")
6
- throw new Error("Invalid hashing algorithm name. Expected one of: [SHA1, SHA256, SHA512], but obtained: " + algorithm);
7
- const encodedSecret = base32.encode(secret).replace(/=/g, '');
8
- return `otpauth://totp/${encodeURIComponent(issuer)}:${encodeURIComponent(accountName)}?secret=${encodedSecret}&issuer=${encodeURIComponent(issuer)}&algorithm=${algorithm}&digits=${digits}&period=${period}`;
9
- };
10
- export const generateTOTPQRCode = async (config) => {
11
- const uri = generateTOTPURI(config);
12
- try {
13
- return await QRCode.toDataURL(uri);
14
- }
15
- catch (error) {
16
- throw new Error('Failed to generate QR Code');
17
- }
18
- };
19
- //# sourceMappingURL=totp_qr_code_generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"totp_qr_code_generator.js","sourceRoot":"","sources":["../../../src/utilities/common/totp_qr_code_generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,MAAM,MAAM,WAAW,CAAA;AAW9B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAkB,EAAU,EAAE;IAC5D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,GAAG,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAC5F,IAAI,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ;QACvE,MAAM,IAAI,KAAK,CAAC,yFAAyF,GAAG,SAAS,CAAC,CAAC;IACzH,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9D,OAAO,kBAAkB,kBAAkB,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,WAAW,CAAC,WAAW,aAAa,WAAW,kBAAkB,CAAC,MAAM,CAAC,cAAc,SAAS,WAAW,MAAM,WAAW,MAAM,EAAE,CAAC;AACjN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,MAAkB,EAAmB,EAAE;IAC9E,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;AACH,CAAC,CAAC"}
@@ -1,36 +0,0 @@
1
- export declare enum CallbackOption {
2
- AFTER_ALL = 0,// callback should be executed after all dependencies are satisfied
3
- AFTER_ONE = 1
4
- }
5
- /**
6
- * Js callback wrapper with generic parameter. Stores option of the callback execution: either AFTER_ONE(callback is being executed after one dependency is satisfied), or AFTER_ALL(callback is being called after all dependencies are satisfied)
7
- */
8
- export declare class Callback<T> {
9
- private _cb;
10
- readonly option: CallbackOption;
11
- constructor(_cb: (message: T) => void, option?: CallbackOption);
12
- call(arg: T): void;
13
- get get(): (message: T) => void;
14
- }
15
- /**
16
- * Manages dependency on one exact key.
17
- * When the dependency with given key is satisfied, callbacks with option AFTER_ONE are being executed.
18
- */
19
- export declare class MessageDependency<Key, T> {
20
- readonly key: Key;
21
- private readonly _callbacks;
22
- constructor(key: Key, cb?: Callback<T>[] | Callback<T>);
23
- /**
24
- *
25
- * @param arg argument to the callback
26
- * @returns list of callbacks, that should be executed after all dependencies are satisfied
27
- */
28
- satisfy(arg: T): (() => void)[];
29
- }
30
- export declare class Waitlist<Key, T> {
31
- private readonly _waitlist;
32
- constructor();
33
- add(dependencies: MessageDependency<Key, T>[] | MessageDependency<Key, T>, cb?: () => void): void;
34
- satisfy(key: Key, arg: T): void;
35
- }
36
- //# sourceMappingURL=waitlist.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"waitlist.d.ts","sourceRoot":"","sources":["../../../../src/utilities/common/waitlist/waitlist.ts"],"names":[],"mappings":"AAEA,oBAAY,cAAc;IACtB,SAAS,IAAA,CAAE,mEAAmE;IAC9E,SAAS,IAAA;CACZ;AAED;;GAEG;AACH,qBAAa,QAAQ,CAAC,CAAC;IACN,OAAO,CAAC,GAAG;IAAwB,QAAQ,CAAC,MAAM,EAAE,cAAc;gBAA1D,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,EAAW,MAAM,GAAE,cAAyC;IAEnG,IAAI,CAAC,GAAG,EAAE,CAAC;IAIlB,IAAW,GAAG,cANsB,CAAC,KAAK,IAAI,CAQ7C;CACJ;AAED;;;GAGG;AACH,qBAAa,iBAAiB,CAAC,GAAG,EAAE,CAAC;IAErB,QAAQ,CAAC,GAAG,EAAE,GAAG;IAD7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;gBAC1B,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;IAK/D;;;;OAIG;IACH,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;CAWlC;AAqCD,qBAAa,QAAQ,CAAC,GAAG,EAAE,CAAC;IAExB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyD;;IAInF,GAAG,CAAC,YAAY,EAAE,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,IAAI;IAgB1F,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;CAU3B"}
@@ -1,116 +0,0 @@
1
- import { logging } from '../logger/logger.js';
2
- export var CallbackOption;
3
- (function (CallbackOption) {
4
- CallbackOption[CallbackOption["AFTER_ALL"] = 0] = "AFTER_ALL";
5
- CallbackOption[CallbackOption["AFTER_ONE"] = 1] = "AFTER_ONE"; // callback should be executed after this dependency is satisfied
6
- })(CallbackOption || (CallbackOption = {}));
7
- /**
8
- * Js callback wrapper with generic parameter. Stores option of the callback execution: either AFTER_ONE(callback is being executed after one dependency is satisfied), or AFTER_ALL(callback is being called after all dependencies are satisfied)
9
- */
10
- export class Callback {
11
- _cb;
12
- option;
13
- constructor(_cb, option = CallbackOption.AFTER_ONE) {
14
- this._cb = _cb;
15
- this.option = option;
16
- }
17
- call(arg) {
18
- this._cb(arg);
19
- }
20
- get get() {
21
- return this._cb;
22
- }
23
- }
24
- /**
25
- * Manages dependency on one exact key.
26
- * When the dependency with given key is satisfied, callbacks with option AFTER_ONE are being executed.
27
- */
28
- export class MessageDependency {
29
- key;
30
- _callbacks = [];
31
- constructor(key, cb) {
32
- this.key = key;
33
- if (cb)
34
- this._callbacks = this._callbacks.concat(cb);
35
- }
36
- /**
37
- *
38
- * @param arg argument to the callback
39
- * @returns list of callbacks, that should be executed after all dependencies are satisfied
40
- */
41
- satisfy(arg) {
42
- let result = [];
43
- this._callbacks.forEach(cb => {
44
- if (cb.option === CallbackOption.AFTER_ONE)
45
- cb.call(arg);
46
- else {
47
- result.push(cb.get.bind(undefined, arg));
48
- }
49
- });
50
- return result;
51
- }
52
- }
53
- /**
54
- * Enables support to multiple dependencies of the element.
55
- * Stores all the dependencies in the map by the key of the dependency.
56
- * When all the dependencies are satisfied, it executes callbacks with provided option AFTER_ALL.
57
- */
58
- class DependenciesHandler {
59
- callbacks = [];
60
- dependencies;
61
- /**
62
- *
63
- * @param cb callback to call after all dependencies are satisfied(called without arguments)
64
- * @param dependencies dependencies of the message with own callbacks
65
- */
66
- constructor(dependencies, cb) {
67
- if (cb)
68
- this.callbacks = [cb];
69
- this.dependencies = new Map(dependencies.map(dep => { return [dep.key, dep]; }));
70
- }
71
- satisfy(key, arg) {
72
- const dep = this.dependencies.get(key);
73
- if (dep === undefined)
74
- return;
75
- this.callbacks = this.callbacks.concat(dep.satisfy(arg));
76
- this.dependencies.delete(key);
77
- if (this.satisfied)
78
- this.callbacks.forEach(cb => cb());
79
- }
80
- get satisfied() {
81
- return this.dependencies.size === 0;
82
- }
83
- }
84
- export class Waitlist {
85
- // map dependency --> all the messages dependent on this dependency(these messages could be dependent on other dependencies as well)
86
- _waitlist = new Map();
87
- constructor() { }
88
- add(dependencies, cb) {
89
- dependencies = [].concat(dependencies);
90
- logging.debug("Adding dependency to waitlist:", dependencies.map(el => { return el.key; }), "with callback:", cb ? cb.toString() : 'undefined');
91
- const dep_handler = new DependenciesHandler(dependencies, cb);
92
- dependencies.forEach(dep => {
93
- const key = dep.key;
94
- let dependent_elements;
95
- if ((dependent_elements = this._waitlist.get(key)) !== undefined) { // if there were already elements dependent on this key
96
- dependent_elements.add(dep_handler);
97
- }
98
- else {
99
- this._waitlist.set(key, new Set([dep_handler]));
100
- }
101
- });
102
- }
103
- satisfy(key, arg) {
104
- let dependent_elememts = this._waitlist.get(key);
105
- if (dependent_elememts === undefined)
106
- return;
107
- dependent_elememts.forEach(el => {
108
- el.satisfy(key, arg);
109
- if (el.satisfied) {
110
- dependent_elememts?.delete(el);
111
- }
112
- });
113
- }
114
- }
115
- // consider the order of execution messages
116
- //# sourceMappingURL=waitlist.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"waitlist.js","sourceRoot":"","sources":["../../../../src/utilities/common/waitlist/waitlist.ts"],"names":[],"mappings":"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"}
@@ -1,67 +0,0 @@
1
- import { AsyncQueueAdapter } from './async_queue_adapter.js';
2
- import WebSocket from 'isomorphic-ws';
3
- import { WebSocketConnection, AdaptProtocolWSConnection } from './web_socket_connection.js';
4
- import { AdaptValue } from '@adapt-toolkit/sdk/backend';
5
- import * as async from 'async';
6
- export declare const NetworkTimings: {
7
- RECONNECT_BASE_DELAY_MS: number;
8
- RECONNECT_MAX_DELAY_MS: number;
9
- HEARTBEAT_INTERVAL_MS: number;
10
- HEARTBEAT_TIMEOUT_MS: number;
11
- };
12
- declare class GenericWebSocketClient<EventType, T extends WebSocketConnection, OnMessageType> {
13
- #private;
14
- protected server_address: string;
15
- protected ws?: T;
16
- wsconnection: {
17
- new (socket: WebSocket): T;
18
- };
19
- private _queue;
20
- constructor(server_address: string, wsconnection: {
21
- new (socket: WebSocket): T;
22
- });
23
- get queue(): AsyncQueueAdapter<EventType, number, (task: EventType) => void>;
24
- get connected(): boolean;
25
- /**
26
- * Async queue worker. Override this method in child class to create custom behavior of the worker
27
- *
28
- * @param e Event
29
- * @param cb callback to call after event processing done
30
- */
31
- worker(e: EventType, cb: async.ErrorCallback): void;
32
- ws_start(): void;
33
- protected force_reconnect(reason: string): void;
34
- stop(): void;
35
- protected start_heartbeat(): void;
36
- protected stop_heartbeat(): void;
37
- /**
38
- * Override this method in child class to create 'open' event listener.
39
- */
40
- on_open(): void;
41
- /**
42
- * Override this method in child class to create 'close' event listener.
43
- * Reconnection is scheduled by the base class; the override only needs to reset its own state.
44
- */
45
- on_close(code: number, reason: Buffer): void;
46
- /**
47
- * Override this method in child class to create 'error' event listener.
48
- */
49
- on_error(e: Error): void;
50
- /**
51
- * Override this method in child class to create 'message' event listener.
52
- * @param data Data received from socket
53
- */
54
- on_message(data: OnMessageType): void;
55
- }
56
- export declare class WebSocketClient<EventType> extends GenericWebSocketClient<EventType, WebSocketConnection, any> {
57
- constructor(server_address: string);
58
- }
59
- export declare class AdaptProtocolWebSocketClient<EventType> extends GenericWebSocketClient<EventType, AdaptProtocolWSConnection, AdaptValue> {
60
- #private;
61
- protected heartbeat_enabled: boolean;
62
- constructor(server_address: string);
63
- protected start_heartbeat(): void;
64
- protected stop_heartbeat(): void;
65
- }
66
- export {};
67
- //# sourceMappingURL=web_socket_client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web_socket_client.d.ts","sourceRoot":"","sources":["../../../src/utilities/common/web_socket_client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,SAAS,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,eAAO,MAAM,cAAc;;;;;CAK1B,CAAA;AAMD,cAAM,sBAAsB,CAAC,SAAS,EAAE,CAAC,SAAS,mBAAmB,EAAE,aAAa;;IAChF,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACjB,YAAY,EAAE;QAAE,KAAI,MAAM,EAAE,SAAS,GAAG,CAAC,CAAA;KAAE,CAAA;IAO3C,OAAO,CAAC,MAAM,CAA+B;gBAEjC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE;QAAE,KAAI,MAAM,EAAE,SAAS,GAAG,CAAC,CAAA;KAAE;IAM/E,IAAI,KAAK,oEAER;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;;;;OAKG;IACH,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,aAAa;IAI5C,QAAQ;IA+DR,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM;IAiBxC,IAAI;IAiBJ,SAAS,CAAC,eAAe;IAEzB,SAAS,CAAC,cAAc;IAExB;;OAEG;IACH,OAAO;IAIP;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAIrC;;OAEG;IACH,QAAQ,CAAC,CAAC,EAAE,KAAK;IAIjB;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,aAAa;CAIjC;AAED,qBAAa,eAAe,CAAC,SAAS,CAAE,SAAQ,sBAAsB,CAAC,SAAS,EAAE,mBAAmB,EAAE,GAAG,CAAC;gBAC3F,cAAc,EAAE,MAAM;CAGrC;AAED,qBAAa,4BAA4B,CAAC,SAAS,CAAE,SAAQ,sBAAsB,CAAC,SAAS,EAAE,yBAAyB,EAAE,UAAU,CAAC;;IAEjI,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAQ;gBAGhC,cAAc,EAAE,MAAM;cAIf,eAAe;cA8Bf,cAAc;CAMpC"}
@@ -1,214 +0,0 @@
1
- import { AsyncQueueAdapter } from './async_queue_adapter.js';
2
- import WebSocket from 'isomorphic-ws';
3
- import { WebSocketConnection, AdaptProtocolWSConnection } from './web_socket_connection.js';
4
- import { logging } from './logger/logger.js';
5
- export const NetworkTimings = {
6
- RECONNECT_BASE_DELAY_MS: 500,
7
- RECONNECT_MAX_DELAY_MS: 30_000,
8
- HEARTBEAT_INTERVAL_MS: 10_000,
9
- HEARTBEAT_TIMEOUT_MS: 35_000,
10
- };
11
- /*
12
- This class is generic client for web socket connection. It connects to server via web socket, and create async queue to process messages from and to server
13
-
14
- */
15
- class GenericWebSocketClient {
16
- server_address;
17
- ws;
18
- wsconnection;
19
- #generation = 0;
20
- #reconnect_attempts = 0;
21
- #reconnect_timer;
22
- #stopped = false;
23
- _queue;
24
- constructor(server_address, wsconnection) {
25
- this._queue = new AsyncQueueAdapter(this.worker.bind(this));
26
- this.server_address = server_address;
27
- this.wsconnection = wsconnection;
28
- }
29
- get queue() {
30
- return this._queue;
31
- }
32
- get connected() {
33
- return this.ws !== undefined && !this.ws.closed;
34
- }
35
- /**
36
- * Async queue worker. Override this method in child class to create custom behavior of the worker
37
- *
38
- * @param e Event
39
- * @param cb callback to call after event processing done
40
- */
41
- worker(e, cb) {
42
- cb();
43
- }
44
- ws_start() {
45
- if (this.#stopped)
46
- return;
47
- if (this.#reconnect_timer) {
48
- clearTimeout(this.#reconnect_timer);
49
- this.#reconnect_timer = undefined;
50
- }
51
- logging.debug("Attempting to establish web socket connection with: ", this.server_address);
52
- const generation = ++this.#generation;
53
- let socket;
54
- try {
55
- socket = new WebSocket(this.server_address);
56
- }
57
- catch (e) {
58
- logging.error("Failed to create web socket for ", this.server_address, ": ", e instanceof Error ? e.message : e);
59
- this.#schedule_reconnect();
60
- return;
61
- }
62
- const connection = new this.wsconnection(socket);
63
- this.ws = connection;
64
- connection.on('open', () => {
65
- if (generation !== this.#generation)
66
- return;
67
- this.#reconnect_attempts = 0;
68
- this.queue.resume();
69
- this.start_heartbeat();
70
- this.on_open();
71
- });
72
- connection.on('close', (code, reason) => {
73
- if (generation !== this.#generation)
74
- return;
75
- this.stop_heartbeat();
76
- this.on_close(code, reason);
77
- this.#schedule_reconnect();
78
- });
79
- connection.on('error', (error) => {
80
- if (generation !== this.#generation)
81
- return;
82
- this.on_error(error);
83
- });
84
- connection.on('message', (data) => {
85
- if (generation !== this.#generation)
86
- return;
87
- this.on_message(data);
88
- });
89
- }
90
- #schedule_reconnect() {
91
- if (this.#stopped || this.#reconnect_timer)
92
- return;
93
- const backoff = Math.min(NetworkTimings.RECONNECT_MAX_DELAY_MS, NetworkTimings.RECONNECT_BASE_DELAY_MS * 2 ** this.#reconnect_attempts);
94
- this.#reconnect_attempts++;
95
- const delay = Math.round(backoff * (0.75 + Math.random() * 0.5));
96
- logging.debug("Scheduling web socket reconnect to ", this.server_address, " in ", delay, "ms");
97
- this.#reconnect_timer = setTimeout(() => {
98
- this.#reconnect_timer = undefined;
99
- this.ws_start();
100
- }, delay);
101
- }
102
- force_reconnect(reason) {
103
- if (this.#stopped)
104
- return;
105
- logging.warning("Forcing web socket reconnect to ", this.server_address, ": ", reason);
106
- const old = this.ws;
107
- this.#generation++;
108
- this.stop_heartbeat();
109
- this.ws = undefined;
110
- try {
111
- old?.terminate();
112
- }
113
- catch (e) {
114
- logging.debug("Error while terminating web socket: ", e instanceof Error ? e.message : e);
115
- }
116
- this.on_close(4000, Buffer.from(reason));
117
- this.#schedule_reconnect();
118
- }
119
- stop() {
120
- this.#stopped = true;
121
- this.#generation++;
122
- if (this.#reconnect_timer) {
123
- clearTimeout(this.#reconnect_timer);
124
- this.#reconnect_timer = undefined;
125
- }
126
- this.stop_heartbeat();
127
- const old = this.ws;
128
- this.ws = undefined;
129
- try {
130
- old?.close();
131
- }
132
- catch (e) {
133
- logging.debug("Error while closing web socket: ", e instanceof Error ? e.message : e);
134
- }
135
- }
136
- start_heartbeat() { }
137
- stop_heartbeat() { }
138
- /**
139
- * Override this method in child class to create 'open' event listener.
140
- */
141
- on_open() {
142
- logging.warning("You forgot to override the on_open method? We have obtained the message in the parent class and don't know what to do with it.");
143
- }
144
- /**
145
- * Override this method in child class to create 'close' event listener.
146
- * Reconnection is scheduled by the base class; the override only needs to reset its own state.
147
- */
148
- on_close(code, reason) {
149
- this.queue.pause();
150
- }
151
- /**
152
- * Override this method in child class to create 'error' event listener.
153
- */
154
- on_error(e) {
155
- logging.warning("You forgot to override the on_error method? We have obtained the message in the parent class and don't know what to do with it.");
156
- }
157
- /**
158
- * Override this method in child class to create 'message' event listener.
159
- * @param data Data received from socket
160
- */
161
- on_message(data) {
162
- logging.warning("You forgot to override the on_mesasge method? We have obtained the message in the parent class and don't know what to do with it.");
163
- }
164
- }
165
- export class WebSocketClient extends GenericWebSocketClient {
166
- constructor(server_address) {
167
- super(server_address, WebSocketConnection);
168
- }
169
- }
170
- export class AdaptProtocolWebSocketClient extends GenericWebSocketClient {
171
- heartbeat_enabled = false;
172
- #heartbeat_timer;
173
- constructor(server_address) {
174
- super(server_address, AdaptProtocolWSConnection);
175
- }
176
- start_heartbeat() {
177
- if (!this.heartbeat_enabled || !this.ws)
178
- return;
179
- this.stop_heartbeat();
180
- const connection = this.ws;
181
- connection.touch();
182
- try {
183
- connection.send_heartbeat_ping();
184
- }
185
- catch (e) {
186
- logging.debug("Failed to send heartbeat ping: ", e instanceof Error ? e.message : e);
187
- }
188
- this.#heartbeat_timer = setInterval(() => {
189
- if (this.ws !== connection) {
190
- this.stop_heartbeat();
191
- return;
192
- }
193
- if (Date.now() - connection.last_activity_ms > NetworkTimings.HEARTBEAT_TIMEOUT_MS) {
194
- this.force_reconnect("no data received within heartbeat timeout");
195
- return;
196
- }
197
- try {
198
- connection.send_heartbeat_ping();
199
- }
200
- catch (e) {
201
- logging.debug("Failed to send heartbeat ping: ", e instanceof Error ? e.message : e);
202
- }
203
- }, NetworkTimings.HEARTBEAT_INTERVAL_MS);
204
- if (typeof this.#heartbeat_timer?.unref === 'function')
205
- this.#heartbeat_timer.unref();
206
- }
207
- stop_heartbeat() {
208
- if (this.#heartbeat_timer) {
209
- clearInterval(this.#heartbeat_timer);
210
- this.#heartbeat_timer = undefined;
211
- }
212
- }
213
- }
214
- //# sourceMappingURL=web_socket_client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web_socket_client.js","sourceRoot":"","sources":["../../../src/utilities/common/web_socket_client.ts"],"names":[],"mappings":"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"}
@@ -1,36 +0,0 @@
1
- import WebSocket from 'isomorphic-ws';
2
- import { AdaptValue } from '@adapt-toolkit/sdk/backend';
3
- declare class GenericWebSocketConnection<OnMessageType> {
4
- protected socket: WebSocket;
5
- constructor(socket: WebSocket);
6
- send(data: any): void;
7
- close(): void;
8
- terminate(): void;
9
- get closed(): boolean;
10
- protected on_message(cb: (data: any) => void): void;
11
- protected on_close(cb: (code: number, reason: string) => void): void;
12
- protected on_error(cb: (error: Error) => void): void;
13
- protected on_open(cb: () => void): void;
14
- private event_to_function_map;
15
- on(event: 'message', cb: (data: OnMessageType) => void): void;
16
- on(event: 'close', cb: (code: number, reason: Buffer) => void): void;
17
- on(event: 'error', cb: (error: Error) => void): void;
18
- on(event: 'open', cb: () => void): void;
19
- on<A extends OnMessageType | Error | undefined | number, B extends (A extends undefined ? undefined : (A extends number ? Buffer : undefined))>(event: 'message' | 'close' | 'error' | 'open', cb: (a?: A, b?: B) => void): void;
20
- }
21
- export declare class WebSocketConnection extends GenericWebSocketConnection<any> {
22
- }
23
- export declare class AdaptProtocolWSConnection extends GenericWebSocketConnection<AdaptValue> {
24
- #private;
25
- constructor(socket: WebSocket);
26
- get last_activity_ms(): number;
27
- get heartbeat_received(): boolean;
28
- touch(): void;
29
- send(data: AdaptValue): void;
30
- send_heartbeat_ping(): void;
31
- private normalize;
32
- private parse_and_validate;
33
- on_message(cb: (data: AdaptValue) => void): void;
34
- }
35
- export {};
36
- //# sourceMappingURL=web_socket_connection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web_socket_connection.d.ts","sourceRoot":"","sources":["../../../src/utilities/common/web_socket_connection.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAqBrC,cAAM,0BAA0B,CAAC,aAAa;IAC9B,SAAS,CAAC,MAAM,EAAE,SAAS;gBAAjB,MAAM,EAAE,SAAS;IAEvC,IAAI,CAAC,IAAI,EAAE,GAAG;IAId,KAAK;IAKL,SAAS;IAQT,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI;IAM5C,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI;IAM7D,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;IAM7C,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,IAAI;IAMhC,OAAO,CAAC,qBAAqB,CAK5B;IAED,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI;IAC7D,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IACpE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IACpD,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IACvC,EAAE,CAAC,CAAC,SAAS,aAAa,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,EACnD,CAAC,SACD,CAAC,CAAC,SAAS,SAAS,GAChB,SAAS,GACT,CAAC,CAAC,SAAS,MAAM,GACb,MAAM,GACN,SAAS,CAAC,CAAC,EAClB,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI;CAIxF;AAED,qBAAa,mBAAoB,SAAQ,0BAA0B,CAAC,GAAG,CAAC;CAAI;AAE5E,qBAAa,yBAA0B,SAAQ,0BAA0B,CAAC,UAAU,CAAC;;gBAKrE,MAAM,EAAE,SAAS;IAI7B,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,IAAI,kBAAkB,IAAI,OAAO,CAEhC;IAED,KAAK;IAIL,IAAI,CAAC,IAAI,EAAE,UAAU;IAKrB,mBAAmB;YAIL,SAAS;IAevB,OAAO,CAAC,kBAAkB;IAkBjB,UAAU,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI;CAuBrD"}