@fdm-monster/server 1.5.3 → 1.6.0-rc1

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 (299) hide show
  1. package/.env.template +7 -0
  2. package/README.md +3 -2
  3. package/dist/consoles/upload-test.js +52 -0
  4. package/dist/consoles/upload-test.js.map +1 -0
  5. package/dist/constants/authorization.constants.js +0 -1
  6. package/dist/constants/authorization.constants.js.map +1 -1
  7. package/dist/constants/event.constants.js.map +1 -1
  8. package/dist/constants/http-status-codes.constants.js +62 -255
  9. package/dist/constants/http-status-codes.constants.js.map +1 -1
  10. package/dist/constants/server-settings.constants.js +0 -4
  11. package/dist/constants/server-settings.constants.js.map +1 -1
  12. package/dist/constants/service.constants.js +6 -21
  13. package/dist/constants/service.constants.js.map +1 -1
  14. package/dist/container.js +4 -10
  15. package/dist/container.js.map +1 -1
  16. package/dist/container.tokens.js +1 -7
  17. package/dist/container.tokens.js.map +1 -1
  18. package/dist/controllers/auth.controller.js +0 -2
  19. package/dist/controllers/auth.controller.js.map +1 -1
  20. package/dist/controllers/custom-gcode.controller.js +1 -3
  21. package/dist/controllers/custom-gcode.controller.js.map +1 -1
  22. package/dist/controllers/floor.controller.js +0 -5
  23. package/dist/controllers/floor.controller.js.map +1 -1
  24. package/dist/controllers/plugin-firmware-update.controller.js +1 -3
  25. package/dist/controllers/plugin-firmware-update.controller.js.map +1 -1
  26. package/dist/controllers/print-completion.controller.js +1 -3
  27. package/dist/controllers/print-completion.controller.js.map +1 -1
  28. package/dist/controllers/printer-files.controller.js +18 -70
  29. package/dist/controllers/printer-files.controller.js.map +1 -1
  30. package/dist/controllers/printer.controller.js +7 -25
  31. package/dist/controllers/printer.controller.js.map +1 -1
  32. package/dist/controllers/server-private.controller.js +0 -1
  33. package/dist/controllers/server-private.controller.js.map +1 -1
  34. package/dist/controllers/server-public.controller.js +0 -1
  35. package/dist/controllers/server-public.controller.js.map +1 -1
  36. package/dist/controllers/settings.controller.js +0 -2
  37. package/dist/controllers/settings.controller.js.map +1 -1
  38. package/dist/controllers/user.controller.js +1 -10
  39. package/dist/controllers/user.controller.js.map +1 -1
  40. package/dist/controllers/validation/setting.validation.js +0 -1
  41. package/dist/controllers/validation/setting.validation.js.map +1 -1
  42. package/dist/entities/base.entity.js +29 -0
  43. package/dist/entities/base.entity.js.map +1 -0
  44. package/dist/handlers/cache-manager.js +1 -1
  45. package/dist/handlers/cache-manager.js.map +1 -1
  46. package/dist/handlers/event-emitter.js +0 -7
  47. package/dist/handlers/event-emitter.js.map +1 -1
  48. package/dist/handlers/logger.js +1 -1
  49. package/dist/handlers/logger.js.map +1 -1
  50. package/dist/handlers/validators.js +1 -1
  51. package/dist/handlers/validators.js.map +1 -1
  52. package/dist/middleware/authenticate.js +0 -2
  53. package/dist/middleware/authenticate.js.map +1 -1
  54. package/dist/middleware/exception.filter.js +0 -1
  55. package/dist/middleware/exception.filter.js.map +1 -1
  56. package/dist/middleware/global.middleware.js +0 -4
  57. package/dist/middleware/global.middleware.js.map +1 -1
  58. package/dist/models/Auth/User.js +0 -2
  59. package/dist/models/Auth/User.js.map +1 -1
  60. package/dist/models/Printer.js +4 -46
  61. package/dist/models/Printer.js.map +1 -1
  62. package/dist/models/PrinterFile.js +81 -0
  63. package/dist/models/PrinterFile.js.map +1 -0
  64. package/dist/models/Settings.js +0 -1
  65. package/dist/models/Settings.js.map +1 -1
  66. package/dist/models/index.js +4 -0
  67. package/dist/models/index.js.map +1 -1
  68. package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js +0 -4
  69. package/dist/mongo-migrations/20210713120034-printers-settingsapperance-apikey.js.map +1 -1
  70. package/dist/mongo-migrations/20210907173950-printers-enabled.js +0 -4
  71. package/dist/mongo-migrations/20210907173950-printers-enabled.js.map +1 -1
  72. package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js +0 -4
  73. package/dist/mongo-migrations/20211029110742-user-password-passwordhash.js.map +1 -1
  74. package/dist/mongo-migrations/20231111081809-printer-flatten-name.js +0 -5
  75. package/dist/mongo-migrations/20231111081809-printer-flatten-name.js.map +1 -1
  76. package/dist/mongo-migrations/20231111082521-printer-remove-settingsappearance.js +0 -5
  77. package/dist/mongo-migrations/20231111082521-printer-remove-settingsappearance.js.map +1 -1
  78. package/dist/mongo-migrations/20231202183902-printer-files-simpler.js +41 -0
  79. package/dist/mongo-migrations/20231202183902-printer-files-simpler.js.map +1 -0
  80. package/dist/server.constants.js +1 -19
  81. package/dist/server.constants.js.map +1 -1
  82. package/dist/server.core.js +6 -7
  83. package/dist/server.core.js.map +1 -1
  84. package/dist/server.env.js +4 -16
  85. package/dist/server.env.js.map +1 -1
  86. package/dist/server.host.js +3 -7
  87. package/dist/server.host.js.map +1 -1
  88. package/dist/services/authentication/auth.service.js +2 -20
  89. package/dist/services/authentication/auth.service.js.map +1 -1
  90. package/dist/services/authentication/jwt.service.js +0 -1
  91. package/dist/services/authentication/jwt.service.js.map +1 -1
  92. package/dist/services/authentication/refresh-token.service.js +0 -3
  93. package/dist/services/authentication/refresh-token.service.js.map +1 -1
  94. package/dist/services/authentication/user.service.js +0 -4
  95. package/dist/services/authentication/user.service.js.map +1 -1
  96. package/dist/services/batch-call.service.js +4 -8
  97. package/dist/services/batch-call.service.js.map +1 -1
  98. package/dist/services/camera-stream.service.js +0 -1
  99. package/dist/services/camera-stream.service.js.map +1 -1
  100. package/dist/services/core/client-bundle.service.js +1 -4
  101. package/dist/services/core/client-bundle.service.js.map +1 -1
  102. package/dist/services/core/logs-manager.service.js +1 -2
  103. package/dist/services/core/logs-manager.service.js.map +1 -1
  104. package/dist/services/core/multer.service.js +6 -9
  105. package/dist/services/core/multer.service.js.map +1 -1
  106. package/dist/services/core/server-release.service.js +4 -13
  107. package/dist/services/core/server-release.service.js.map +1 -1
  108. package/dist/services/core/server-update.service.js +0 -2
  109. package/dist/services/core/server-update.service.js.map +1 -1
  110. package/dist/services/core/task-manager.service.js +9 -22
  111. package/dist/services/core/task-manager.service.js.map +1 -1
  112. package/dist/services/core/yaml.service.js +0 -7
  113. package/dist/services/core/yaml.service.js.map +1 -1
  114. package/dist/services/floor.service.js +2 -43
  115. package/dist/services/floor.service.js.map +1 -1
  116. package/dist/services/interfaces/print-completion.dto.js +0 -2
  117. package/dist/services/interfaces/print-completion.dto.js.map +1 -1
  118. package/dist/services/interfaces/print-completion.interface.js +6 -0
  119. package/dist/services/interfaces/{print-completion.service.js.map → print-completion.interface.js.map} +1 -1
  120. package/dist/services/interfaces/printer-file.dto.js +3 -1
  121. package/dist/services/interfaces/printer-file.dto.js.map +1 -1
  122. package/dist/services/interfaces/refresh-token.dto.js +0 -2
  123. package/dist/services/interfaces/refresh-token.dto.js.map +1 -1
  124. package/dist/services/interfaces/settings.dto.js +0 -1
  125. package/dist/services/interfaces/settings.dto.js.map +1 -1
  126. package/dist/services/octoprint/constants/octoprint-service.constants.js +0 -3
  127. package/dist/services/octoprint/constants/octoprint-service.constants.js.map +1 -1
  128. package/dist/services/octoprint/dto/connection-state.dto.js +46 -0
  129. package/dist/services/octoprint/dto/connection-state.dto.js.map +1 -0
  130. package/dist/services/octoprint/dto/octoprint-currentuser.dto.js +6 -0
  131. package/dist/services/octoprint/dto/octoprint-currentuser.dto.js.map +1 -0
  132. package/dist/services/octoprint/dto/octoprint-event.dto.js +41 -0
  133. package/dist/services/octoprint/dto/octoprint-event.dto.js.map +1 -0
  134. package/dist/services/octoprint/dto/octoprint-file.dto.js +84 -0
  135. package/dist/services/octoprint/dto/octoprint-file.dto.js.map +1 -0
  136. package/dist/services/octoprint/dto/octoprint-files.dto.js +17 -0
  137. package/dist/services/octoprint/dto/octoprint-files.dto.js.map +1 -0
  138. package/dist/services/{interfaces/print-completion.service.js → octoprint/dto/octoprint-session.dto.js} +1 -1
  139. package/dist/services/octoprint/dto/octoprint-session.dto.js.map +1 -0
  140. package/dist/services/octoprint/dto/octoprint-settings.dto.js +29 -0
  141. package/dist/services/octoprint/dto/octoprint-settings.dto.js.map +1 -0
  142. package/dist/services/octoprint/dto/octoprint-system-info.dto.js +41 -0
  143. package/dist/services/octoprint/dto/octoprint-system-info.dto.js.map +1 -0
  144. package/dist/services/octoprint/dto/state.dto.js +38 -0
  145. package/dist/services/octoprint/dto/state.dto.js.map +1 -0
  146. package/dist/services/octoprint/dto/websocket-output/connection-message.dto.js +6 -0
  147. package/dist/services/octoprint/dto/websocket-output/connection-message.dto.js.map +1 -0
  148. package/dist/services/octoprint/dto/websocket-output/current-message.dto.js +6 -0
  149. package/dist/services/octoprint/dto/websocket-output/current-message.dto.js.map +1 -0
  150. package/dist/services/octoprint/dto/websocket-output/event-message.dto.js +6 -0
  151. package/dist/services/octoprint/dto/websocket-output/event-message.dto.js.map +1 -0
  152. package/dist/services/octoprint/dto/websocket-output/event.type.js +54 -0
  153. package/dist/services/octoprint/dto/websocket-output/event.type.js.map +1 -0
  154. package/dist/services/octoprint/dto/websocket-output/events/client-authed.dto.js +6 -0
  155. package/dist/services/octoprint/dto/websocket-output/events/client-authed.dto.js.map +1 -0
  156. package/dist/services/octoprint/dto/websocket-output/events/client-closed.dto.js +6 -0
  157. package/dist/services/octoprint/dto/websocket-output/events/client-closed.dto.js.map +1 -0
  158. package/dist/services/octoprint/dto/websocket-output/events/client-opened.dto.js +6 -0
  159. package/dist/services/octoprint/dto/websocket-output/events/client-opened.dto.js.map +1 -0
  160. package/dist/services/octoprint/dto/websocket-output/events/dwelling.dto.js +6 -0
  161. package/dist/services/octoprint/dto/websocket-output/events/dwelling.dto.js.map +1 -0
  162. package/dist/services/octoprint/dto/websocket-output/events/file-added.dto.js +6 -0
  163. package/dist/services/octoprint/dto/websocket-output/events/file-added.dto.js.map +1 -0
  164. package/dist/services/octoprint/dto/websocket-output/events/file-deselected.dto.js +6 -0
  165. package/dist/services/octoprint/dto/websocket-output/events/file-deselected.dto.js.map +1 -0
  166. package/dist/services/octoprint/dto/websocket-output/events/file-removed.dto.js +6 -0
  167. package/dist/services/octoprint/dto/websocket-output/events/file-removed.dto.js.map +1 -0
  168. package/dist/services/octoprint/dto/websocket-output/events/folder-added.dto.js +6 -0
  169. package/dist/services/octoprint/dto/websocket-output/events/folder-added.dto.js.map +1 -0
  170. package/dist/services/octoprint/dto/websocket-output/events/home.dto.js +6 -0
  171. package/dist/services/octoprint/dto/websocket-output/events/home.dto.js.map +1 -0
  172. package/dist/services/octoprint/dto/websocket-output/events/metadata-analysis-finished.dto.js +6 -0
  173. package/dist/services/octoprint/dto/websocket-output/events/metadata-analysis-finished.dto.js.map +1 -0
  174. package/dist/services/octoprint/dto/websocket-output/events/metadata-analysis-started.dto.js +6 -0
  175. package/dist/services/octoprint/dto/websocket-output/events/metadata-analysis-started.dto.js.map +1 -0
  176. package/dist/services/octoprint/dto/websocket-output/events/metadata-statistics-updated.dto.js +6 -0
  177. package/dist/services/octoprint/dto/websocket-output/events/metadata-statistics-updated.dto.js.map +1 -0
  178. package/dist/services/octoprint/dto/websocket-output/events/position-update.dto.js +6 -0
  179. package/dist/services/octoprint/dto/websocket-output/events/position-update.dto.js.map +1 -0
  180. package/dist/services/octoprint/dto/websocket-output/events/print-cancelled.dto.js +6 -0
  181. package/dist/services/octoprint/dto/websocket-output/events/print-cancelled.dto.js.map +1 -0
  182. package/dist/services/octoprint/dto/websocket-output/events/print-cancelling.dto.js +6 -0
  183. package/dist/services/octoprint/dto/websocket-output/events/print-cancelling.dto.js.map +1 -0
  184. package/dist/services/octoprint/dto/websocket-output/events/print-done.dto.js +6 -0
  185. package/dist/services/octoprint/dto/websocket-output/events/print-done.dto.js.map +1 -0
  186. package/dist/services/octoprint/dto/websocket-output/events/print-failed.dto.js +6 -0
  187. package/dist/services/octoprint/dto/websocket-output/events/print-failed.dto.js.map +1 -0
  188. package/dist/services/octoprint/dto/websocket-output/events/print-paused.dto.js +6 -0
  189. package/dist/services/octoprint/dto/websocket-output/events/print-paused.dto.js.map +1 -0
  190. package/dist/services/octoprint/dto/websocket-output/events/print-resumed.dto.js +6 -0
  191. package/dist/services/octoprint/dto/websocket-output/events/print-resumed.dto.js.map +1 -0
  192. package/dist/services/octoprint/dto/websocket-output/events/print-started.dto.js +6 -0
  193. package/dist/services/octoprint/dto/websocket-output/events/print-started.dto.js.map +1 -0
  194. package/dist/services/octoprint/dto/websocket-output/events/printer-state-changed.dto.js +6 -0
  195. package/dist/services/octoprint/dto/websocket-output/events/printer-state-changed.dto.js.map +1 -0
  196. package/dist/services/octoprint/dto/websocket-output/events/transfer-done.dto.js +6 -0
  197. package/dist/services/octoprint/dto/websocket-output/events/transfer-done.dto.js.map +1 -0
  198. package/dist/services/octoprint/dto/websocket-output/events/transfer-started.dto.js +6 -0
  199. package/dist/services/octoprint/dto/websocket-output/events/transfer-started.dto.js.map +1 -0
  200. package/dist/services/octoprint/dto/websocket-output/events/updated-files.dto.js +6 -0
  201. package/dist/services/octoprint/dto/websocket-output/events/updated-files.dto.js.map +1 -0
  202. package/dist/services/octoprint/dto/websocket-output/events/upload.dto.js +6 -0
  203. package/dist/services/octoprint/dto/websocket-output/events/upload.dto.js.map +1 -0
  204. package/dist/services/octoprint/dto/websocket-output/events/user-logged-in.dto.js +6 -0
  205. package/dist/services/octoprint/dto/websocket-output/events/user-logged-in.dto.js.map +1 -0
  206. package/dist/services/octoprint/dto/websocket-output/events/z-change.dto.js +6 -0
  207. package/dist/services/octoprint/dto/websocket-output/events/z-change.dto.js.map +1 -0
  208. package/dist/services/octoprint/dto/websocket-output/history-message.dto.js +6 -0
  209. package/dist/services/octoprint/dto/websocket-output/history-message.dto.js.map +1 -0
  210. package/dist/services/octoprint/dto/websocket-output/plugin-message.dto.js +6 -0
  211. package/dist/services/octoprint/dto/websocket-output/plugin-message.dto.js.map +1 -0
  212. package/dist/services/octoprint/dto/websocket-output/timelapse-message.dto.js +6 -0
  213. package/dist/services/octoprint/dto/websocket-output/timelapse-message.dto.js.map +1 -0
  214. package/dist/services/octoprint/octoprint-api.routes.js +15 -17
  215. package/dist/services/octoprint/octoprint-api.routes.js.map +1 -1
  216. package/dist/services/octoprint/octoprint-api.service.js +189 -158
  217. package/dist/services/octoprint/octoprint-api.service.js.map +1 -1
  218. package/dist/services/octoprint/octoprint-sockio.adapter.js +50 -85
  219. package/dist/services/octoprint/octoprint-sockio.adapter.js.map +1 -1
  220. package/dist/services/octoprint/plugin-base.service.js +0 -1
  221. package/dist/services/octoprint/plugin-base.service.js.map +1 -1
  222. package/dist/services/octoprint/plugin-firmware-update.service.js +0 -3
  223. package/dist/services/octoprint/plugin-firmware-update.service.js.map +1 -1
  224. package/dist/services/octoprint/utils/api.utils.js +0 -35
  225. package/dist/services/octoprint/utils/api.utils.js.map +1 -1
  226. package/dist/services/orm/base.interface.js +6 -0
  227. package/dist/services/orm/base.interface.js.map +1 -0
  228. package/dist/services/orm/base.service.js +69 -0
  229. package/dist/services/orm/base.service.js.map +1 -0
  230. package/dist/services/print-completion.service.js +0 -1
  231. package/dist/services/print-completion.service.js.map +1 -1
  232. package/dist/services/print-completion.shared.js +0 -1
  233. package/dist/services/print-completion.shared.js.map +1 -1
  234. package/dist/services/printer-files.service.js +70 -53
  235. package/dist/services/printer-files.service.js.map +1 -1
  236. package/dist/services/printer.service.js +2 -15
  237. package/dist/services/printer.service.js.map +1 -1
  238. package/dist/services/settings.service.js +2 -8
  239. package/dist/services/settings.service.js.map +1 -1
  240. package/dist/services/validators/floor-service.validation.js +3 -3
  241. package/dist/services/validators/floor-service.validation.js.map +1 -1
  242. package/dist/services/validators/yaml-service.validation.js +0 -3
  243. package/dist/services/validators/yaml-service.validation.js.map +1 -1
  244. package/dist/shared/dtos/printer-login.dto.js +58 -0
  245. package/dist/shared/dtos/printer-login.dto.js.map +1 -0
  246. package/dist/shared/websocket.adapter.js +59 -0
  247. package/dist/shared/websocket.adapter.js.map +1 -0
  248. package/dist/state/file-upload-tracker.cache.js +0 -1
  249. package/dist/state/file-upload-tracker.cache.js.map +1 -1
  250. package/dist/state/file.cache.js +19 -42
  251. package/dist/state/file.cache.js.map +1 -1
  252. package/dist/state/floor.store.js +0 -1
  253. package/dist/state/floor.store.js.map +1 -1
  254. package/dist/state/printer-events.cache.js +1 -3
  255. package/dist/state/printer-events.cache.js.map +1 -1
  256. package/dist/state/{files.store.js → printer-files.store.js} +26 -43
  257. package/dist/state/printer-files.store.js.map +1 -0
  258. package/dist/state/printer-socket.store.js +7 -32
  259. package/dist/state/printer-socket.store.js.map +1 -1
  260. package/dist/state/printer.cache.js +0 -1
  261. package/dist/state/printer.cache.js.map +1 -1
  262. package/dist/state/settings.store.js +6 -3
  263. package/dist/state/settings.store.js.map +1 -1
  264. package/dist/state/socket-io.gateway.js +0 -2
  265. package/dist/state/socket-io.gateway.js.map +1 -1
  266. package/dist/state/test-printer-socket.store.js +1 -7
  267. package/dist/state/test-printer-socket.store.js.map +1 -1
  268. package/dist/task.presets.js +0 -11
  269. package/dist/task.presets.js.map +1 -1
  270. package/dist/tasks/boot.task.js +6 -10
  271. package/dist/tasks/boot.task.js.map +1 -1
  272. package/dist/tasks/print-completion.socketio.task.js +13 -22
  273. package/dist/tasks/print-completion.socketio.task.js.map +1 -1
  274. package/dist/tasks/printer-file-clean.task.js +12 -20
  275. package/dist/tasks/printer-file-clean.task.js.map +1 -1
  276. package/dist/tasks/printer-websocket-restore.task.js +1 -5
  277. package/dist/tasks/printer-websocket-restore.task.js.map +1 -1
  278. package/dist/tasks/printer-websocket.task.js +5 -15
  279. package/dist/tasks/printer-websocket.task.js.map +1 -1
  280. package/dist/tasks/socketio.task.js +0 -1
  281. package/dist/tasks/socketio.task.js.map +1 -1
  282. package/dist/tasks.js +0 -2
  283. package/dist/tasks.js.map +1 -1
  284. package/dist/types/express/index.d.js +0 -1
  285. package/dist/types/express/index.d.js.map +1 -1
  286. package/dist/utils/env.utils.js +1 -14
  287. package/dist/utils/env.utils.js.map +1 -1
  288. package/dist/utils/is-docker.js +1 -1
  289. package/dist/utils/is-docker.js.map +1 -1
  290. package/dist/utils/normalize-url.js +0 -35
  291. package/dist/utils/normalize-url.js.map +1 -1
  292. package/dist/utils/semver.utils.js +0 -1
  293. package/dist/utils/semver.utils.js.map +1 -1
  294. package/package.json +53 -43
  295. package/dist/state/files.store.js.map +0 -1
  296. package/dist/utils/find-predicate.utils.js +0 -18
  297. package/dist/utils/find-predicate.utils.js.map +0 -1
  298. package/dist/utils/websocket.adapter.js +0 -105
  299. package/dist/utils/websocket.adapter.js.map +0 -1
@@ -1,4 +1,3 @@
1
- // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs
2
1
  "use strict";
3
2
  Object.defineProperty(exports, "__esModule", {
4
3
  value: true
@@ -38,11 +37,9 @@ const normalizeDataURL = (urlString, { stripHash })=>{
38
37
  mediaType.pop();
39
38
  isBase64 = true;
40
39
  }
41
- // Lowercase MIME type
42
40
  const mimeType = mediaType.shift()?.toLowerCase() ?? "";
43
41
  const attributes = mediaType.map((attribute)=>{
44
42
  let [key, value = ""] = attribute.split("=").map((string)=>string.trim());
45
- // Lowercase `charset`
46
43
  if (key === "charset") {
47
44
  value = value.toLowerCase();
48
45
  if (value === DATA_URL_DEFAULT_CHARSET) {
@@ -82,12 +79,10 @@ function normalizeUrl(urlString, options) {
82
79
  sortQueryParameters: true,
83
80
  ...options
84
81
  };
85
- // Legacy: Append `:` to the protocol if missing.
86
82
  if (typeof options.defaultProtocol === "string" && !options.defaultProtocol.endsWith(":")) {
87
83
  options.defaultProtocol = `${options.defaultProtocol}:`;
88
84
  }
89
85
  urlString = urlString.trim();
90
- // Data URL
91
86
  if (/^data:/i.test(urlString)) {
92
87
  return normalizeDataURL(urlString, options);
93
88
  }
@@ -96,7 +91,6 @@ function normalizeUrl(urlString, options) {
96
91
  }
97
92
  const hasRelativeProtocol = urlString.startsWith("//");
98
93
  const isRelativeUrl = !hasRelativeProtocol && /^\.*\//.test(urlString);
99
- // Prepend protocol
100
94
  if (!isRelativeUrl) {
101
95
  urlString = urlString.replace(/^(?!(?:\w+:)?\/\/)|^\/\//, options.defaultProtocol);
102
96
  }
@@ -110,26 +104,16 @@ function normalizeUrl(urlString, options) {
110
104
  if (options.forceHttps && urlObject.protocol === "http:") {
111
105
  urlObject.protocol = "https:";
112
106
  }
113
- // Remove auth
114
107
  if (options.stripAuthentication) {
115
108
  urlObject.username = "";
116
109
  urlObject.password = "";
117
110
  }
118
- // Remove hash
119
111
  if (options.stripHash) {
120
112
  urlObject.hash = "";
121
113
  } else if (options.stripTextFragment) {
122
114
  urlObject.hash = urlObject.hash.replace(/#?:~:text.*?$/i, "");
123
115
  }
124
- // Remove duplicate slashes if not preceded by a protocol
125
- // NOTE: This could be implemented using a single negative lookbehind
126
- // regex, but we avoid that to maintain compatibility with older js engines
127
- // which do not have support for that feature.
128
116
  if (urlObject.pathname) {
129
- // TODO: Replace everything below with `urlObject.pathname = urlObject.pathname.replace(/(?<!\b[a-z][a-z\d+\-.]{1,50}:)\/{2,}/g, '/');` when Safari supports negative lookbehind.
130
- // Split the string by occurrences of this protocol regex, and perform
131
- // duplicate-slash replacement on the strings between those occurrences
132
- // (if any).
133
117
  const protocolRegex = /\b[a-z][a-z\d+\-.]{1,50}:\/\//g;
134
118
  let lastIndex = 0;
135
119
  let result = "";
@@ -149,13 +133,11 @@ function normalizeUrl(urlString, options) {
149
133
  result += remnant.replace(/\/{2,}/g, "/");
150
134
  urlObject.pathname = result;
151
135
  }
152
- // Decode URI octets
153
136
  if (urlObject.pathname) {
154
137
  try {
155
138
  urlObject.pathname = decodeURI(urlObject.pathname);
156
139
  } catch {}
157
140
  }
158
- // Remove directory index
159
141
  if (options.removeDirectoryIndex === true) {
160
142
  options.removeDirectoryIndex = [
161
143
  /^index\.[a-z]+$/
@@ -170,20 +152,12 @@ function normalizeUrl(urlString, options) {
170
152
  }
171
153
  }
172
154
  if (urlObject.hostname) {
173
- // Remove trailing dot
174
155
  urlObject.hostname = urlObject.hostname.replace(/\.$/, "");
175
- // Remove `www.`
176
156
  if (options.stripWWW && /^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(urlObject.hostname)) {
177
- // Each label should be max 63 at length (min: 1).
178
- // Source: https://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_host_names
179
- // Each TLD should be up to 63 characters long (min: 2).
180
- // It is technically possible to have a single character TLD, but none currently exist.
181
157
  urlObject.hostname = urlObject.hostname.replace(/^www\./, "");
182
158
  }
183
159
  }
184
- // Remove query unwanted parameters
185
160
  if (Array.isArray(options.removeQueryParameters)) {
186
- // eslint-disable-next-line unicorn/no-useless-spread -- We are intentionally spreading to get a copy.
187
161
  for (const key of [
188
162
  ...urlObject.searchParams.keys()
189
163
  ]){
@@ -195,9 +169,7 @@ function normalizeUrl(urlString, options) {
195
169
  if (!Array.isArray(options.keepQueryParameters) && options.removeQueryParameters === true) {
196
170
  urlObject.search = "";
197
171
  }
198
- // Keep wanted query parameters
199
172
  if (Array.isArray(options.keepQueryParameters) && options.keepQueryParameters.length > 0) {
200
- // eslint-disable-next-line unicorn/no-useless-spread -- We are intentionally spreading to get a copy.
201
173
  for (const key of [
202
174
  ...urlObject.searchParams.keys()
203
175
  ]){
@@ -206,10 +178,8 @@ function normalizeUrl(urlString, options) {
206
178
  }
207
179
  }
208
180
  }
209
- // Sort query parameters
210
181
  if (options.sortQueryParameters) {
211
182
  urlObject.searchParams.sort();
212
- // Calling `.sort()` encodes the search parameters, so we need to decode them again.
213
183
  try {
214
184
  urlObject.search = decodeURIComponent(urlObject.search);
215
185
  } catch {}
@@ -217,25 +187,20 @@ function normalizeUrl(urlString, options) {
217
187
  if (options.removeTrailingSlash) {
218
188
  urlObject.pathname = urlObject.pathname.replace(/\/$/, "");
219
189
  }
220
- // Remove an explicit port number, excluding a default port number, if applicable
221
190
  if (options.removeExplicitPort && urlObject.port) {
222
191
  urlObject.port = "";
223
192
  }
224
193
  const oldUrlString = urlString;
225
- // Take advantage of many of the Node `url` normalizations
226
194
  urlString = urlObject.toString();
227
195
  if (!options.removeSingleSlash && urlObject.pathname === "/" && !oldUrlString.endsWith("/") && urlObject.hash === "") {
228
196
  urlString = urlString.replace(/\/$/, "");
229
197
  }
230
- // Remove ending `/` unless removeSingleSlash is false
231
198
  if ((options.removeTrailingSlash || urlObject.pathname === "/") && urlObject.hash === "" && options.removeSingleSlash) {
232
199
  urlString = urlString.replace(/\/$/, "");
233
200
  }
234
- // Restore relative protocol, if applicable
235
201
  if (hasRelativeProtocol && !options.normalizeProtocol) {
236
202
  urlString = urlString.replace(/^http:\/\//, "//");
237
203
  }
238
- // Remove http/https
239
204
  if (options.stripProtocol) {
240
205
  urlString = urlString.replace(/^(?:https?:)?\/\//, "");
241
206
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/normalize-url.ts"],"names":["normalizeUrl","DATA_URL_DEFAULT_MIME_TYPE","DATA_URL_DEFAULT_CHARSET","testParameter","name","filters","some","filter","RegExp","test","supportedProtocols","Set","hasCustomProtocol","urlString","protocol","URL","endsWith","has","normalizeDataURL","stripHash","match","exec","Error","type","data","hash","groups","mediaType","split","isBase64","length","pop","mimeType","shift","toLowerCase","attributes","map","attribute","key","value","string","trim","Boolean","normalizedMediaType","push","unshift","join","options","defaultProtocol","normalizeProtocol","forceHttp","forceHttps","stripAuthentication","stripTextFragment","stripWWW","removeQueryParameters","removeTrailingSlash","removeSingleSlash","removeDirectoryIndex","removeExplicitPort","sortQueryParameters","hasRelativeProtocol","startsWith","isRelativeUrl","replace","urlObject","username","password","pathname","protocolRegex","lastIndex","result","protocolAtIndex","index","intermediate","slice","remnant","decodeURI","Array","isArray","pathComponents","lastComponent","hostname","searchParams","keys","delete","keepQueryParameters","search","sort","decodeURIComponent","port","oldUrlString","toString","stripProtocol"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils/normalize-url.ts"],"names":["normalizeUrl","DATA_URL_DEFAULT_MIME_TYPE","DATA_URL_DEFAULT_CHARSET","testParameter","name","filters","some","filter","RegExp","test","supportedProtocols","Set","hasCustomProtocol","urlString","protocol","URL","endsWith","has","normalizeDataURL","stripHash","match","exec","Error","type","data","hash","groups","mediaType","split","isBase64","length","pop","mimeType","shift","toLowerCase","attributes","map","attribute","key","value","string","trim","Boolean","normalizedMediaType","push","unshift","join","options","defaultProtocol","normalizeProtocol","forceHttp","forceHttps","stripAuthentication","stripTextFragment","stripWWW","removeQueryParameters","removeTrailingSlash","removeSingleSlash","removeDirectoryIndex","removeExplicitPort","sortQueryParameters","hasRelativeProtocol","startsWith","isRelativeUrl","replace","urlObject","username","password","pathname","protocolRegex","lastIndex","result","protocolAtIndex","index","intermediate","slice","remnant","decodeURI","Array","isArray","pathComponents","lastComponent","hostname","searchParams","keys","delete","keepQueryParameters","search","sort","decodeURIComponent","port","oldUrlString","toString","stripProtocol"],"mappings":"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"}
@@ -11,7 +11,6 @@ Object.defineProperty(exports, "checkVersionSatisfiesMinimum", {
11
11
  const _semver = require("semver");
12
12
  function checkVersionSatisfiesMinimum(newVersion, minimumVersion) {
13
13
  const comparison = (0, _semver.compare)(newVersion, minimumVersion);
14
- // Values 0 or 1 mean the client version is less than the minimum and should be force updated
15
14
  return comparison > -1;
16
15
  }
17
16
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/semver.utils.ts"],"names":["checkVersionSatisfiesMinimum","newVersion","minimumVersion","comparison","compare"],"mappings":";;;;+BAEgBA;;;eAAAA;;;wBAFQ;AAEjB,SAASA,6BAA6BC,UAAkB,EAAEC,cAAsB;IACrF,MAAMC,aAAaC,IAAAA,eAAO,EAACH,YAAYC;IACvC,6FAA6F;IAC7F,OAAOC,aAAa,CAAC;AACvB"}
1
+ {"version":3,"sources":["../../src/utils/semver.utils.ts"],"names":["checkVersionSatisfiesMinimum","newVersion","minimumVersion","comparison","compare"],"mappings":";;;;+BAEgBA;;;eAAAA;;;wBAFQ;AAEjB,SAASA,6BAA6BC,UAAkB,EAAEC,cAAsB;IACrF,MAAMC,aAAaC,IAAAA,eAAO,EAACH,YAAYC;IAEvC,OAAOC,aAAa,CAAC;AACvB"}
package/package.json CHANGED
@@ -7,17 +7,25 @@
7
7
  "author": "David Zwart",
8
8
  "license": "AGPL-3.0-or-later",
9
9
  "private": false,
10
- "version": "1.5.3",
10
+ "version": "1.6.0-rc1",
11
+ "bin": {
12
+ "fdm-monster": "dist/index.js",
13
+ "fdmm": "dist/index.js"
14
+ },
11
15
  "description": "FDM Monster is a bulk OctoPrint manager to set up, configure and monitor 3D printers. Our aim is to provide extremely optimized websocket performance and reliability.",
12
16
  "main": "dist/index.js",
13
17
  "scripts": {
18
+ "console:upload": "yarn build && cross-env NODE_ENV=development node ./dist/consoles/upload-test.js",
14
19
  "dev": "concurrently \"yarn build:watch\" \"yarn watch-dev\"",
15
20
  "watch-dev": "cross-env NODE_ENV=development nodemon --watch \"dist/**/*\" -e js ./dist/index.js",
21
+ "console:torm": "yarn build && cross-env NODE_ENV=development nodemon --watch \"dist/**/*\" -e js ./dist/consoles/sqlite-torm.js",
22
+ "console:migrate": "yarn build && cross-env NODE_ENV=development nodemon --watch \"dist/**/*\" -e js ./dist/consoles/typeorm-migrate.js",
23
+ "console:generate": "yarn build && cross-env NODE_ENV=development node ./dist/consoles/typeorm-generate.js",
16
24
  "build": "swc src -d dist",
17
25
  "build:watch": "swc src -w -d dist",
18
26
  "start:dev": "ts-node src/index.ts",
19
27
  "start": "cross-env NODE_ENV=production node dist/index.js",
20
- "migration:create": "migrate-mongo create printer-remove-settingsappearance",
28
+ "migration:create": "migrate-mongo create printer-files-simpler",
21
29
  "migration:up": "migrate-mongo up",
22
30
  "migration:down": "migrate-mongo down",
23
31
  "migration:status": "migrate-mongo status",
@@ -26,7 +34,11 @@
26
34
  "tsc": "tsc --noEmit",
27
35
  "test": "jest --forceExit --maxConcurrency=8 --runInBand ",
28
36
  "test:cov": "jest --forceExit --coverage --maxConcurrency=8 --runInBand ",
29
- "cov:show": "./coverage/lcov-report/index.html"
37
+ "cov:show": "./coverage/lcov-report/index.html",
38
+ "torm": "ts-node --swc -r tsconfig-paths/register ./node_modules/typeorm/cli.js",
39
+ "typeorm:generate": "yarn torm migration:generate -d src/data-source.ts --pretty src/migrations/CustomGCode",
40
+ "typeorm:migrate": "yarn torm migration:run -d src/data-source.ts",
41
+ "typeorm:revert": "yarn torm migration:revert -d src/data-source.ts"
30
42
  },
31
43
  "keywords": [
32
44
  "fdm-monster",
@@ -39,16 +51,17 @@
39
51
  "vue"
40
52
  ],
41
53
  "dependencies": {
42
- "@fdm-monster/client": "1.4.2",
54
+ "@fdm-monster/client": "1.5.0-rc3",
43
55
  "@influxdata/influxdb-client": "1.33.2",
44
- "@sentry/node": "7.80.0",
56
+ "@sentry/node": "7.93.0",
45
57
  "adm-zip": "0.5.10",
46
- "awilix": "9.0.0",
47
- "awilix-express": "8.0.0",
48
- "axios": "1.6.1",
58
+ "awilix": "10.0.1",
59
+ "awilix-express": "9.0.1",
60
+ "axios": "1.6.5",
49
61
  "bcryptjs": "2.4.3",
62
+ "better-sqlite3": "9.2.2",
50
63
  "cache-manager": "4.1.0",
51
- "class-validator": "0.14.0",
64
+ "class-validator": "0.14.1",
52
65
  "connect-history-api-fallback": "2.0.0",
53
66
  "cookie-parser": "1.4.6",
54
67
  "cors": "2.8.5",
@@ -57,80 +70,77 @@
57
70
  "eventemitter2": "6.4.9",
58
71
  "express": "4.18.2",
59
72
  "form-data": "4.0.0",
60
- "got": "11.8.6",
61
73
  "helmet": "7.1.0",
62
74
  "ip": "1.1.8",
63
75
  "js-yaml": "4.1.0",
64
76
  "jsonwebtoken": "9.0.2",
65
77
  "lodash": "4.17.21",
66
- "luxon": "3.4.3",
78
+ "luxon": "3.4.4",
67
79
  "migrate-mongo": "11.0.0",
68
- "mongoose": "6.12.3",
69
- "mqtt": "5.2.1",
80
+ "mongoose": "6.12.5",
81
+ "mqtt": "5.3.4",
70
82
  "multer": "1.4.5-lts.1",
71
83
  "node-input-validator": "4.5.1",
72
- "nodemon": "3.0.1",
73
- "octokit": "3.1.1",
74
- "passport": "0.6.0",
84
+ "nodemon": "3.0.2",
85
+ "octokit": "3.1.2",
86
+ "passport": "0.7.0",
75
87
  "passport-anonymous": "1.0.1",
76
88
  "passport-jwt": "4.0.1",
77
- "reflect-metadata": "0.1.13",
89
+ "reflect-metadata": "0.2.1",
78
90
  "semver": "7.5.4",
79
- "simple-git": "3.20.0",
80
- "socket.io": "4.7.2",
91
+ "simple-git": "3.22.0",
92
+ "socket.io": "4.7.4",
81
93
  "toad-scheduler": "3.0.0",
94
+ "typeorm": "0.3.19",
82
95
  "uuid": "9.0.1",
83
96
  "winston": "3.11.0",
84
- "ws": "8.14.2"
97
+ "ws": "8.16.0"
85
98
  },
86
99
  "devDependencies": {
87
100
  "@lcov-viewer/cli": "1.3.0",
88
101
  "@lcov-viewer/istanbul-report": "1.4.0",
89
- "@swc/cli": "0.1.62",
90
- "@swc/core": "1.3.96",
102
+ "@swc/cli": "0.1.63",
103
+ "@swc/core": "1.3.102",
91
104
  "@swc/jest": "0.2.29",
92
- "@types/adm-zip": "0.5.4",
105
+ "@types/adm-zip": "0.5.5",
93
106
  "@types/bcryptjs": "2.4.6",
94
- "@types/cache-manager": "4.0.5",
95
- "@types/connect-history-api-fallback": "1.5.3",
107
+ "@types/cache-manager": "4.0.6",
108
+ "@types/connect-history-api-fallback": "1.5.4",
96
109
  "@types/cookie-parser": "1.4.6",
97
110
  "@types/express": "4.17.21",
98
111
  "@types/express-session": "1.17.10",
99
112
  "@types/ip": "1.1.3",
100
- "@types/jest": "29.5.8",
113
+ "@types/jest": "29.5.11",
101
114
  "@types/js-yaml": "4.0.9",
102
- "@types/lodash": "4.14.201",
103
- "@types/luxon": "3.3.4",
115
+ "@types/lodash": "4.14.202",
116
+ "@types/luxon": "3.4.0",
104
117
  "@types/migrate-mongo": "10.0.4",
105
- "@types/multer": "1.4.10",
106
- "@types/node": "20.9.0",
118
+ "@types/multer": "1.4.11",
119
+ "@types/node": "20.11.0",
107
120
  "@types/passport-anonymous": "1.0.5",
108
- "@types/passport-jwt": "3.0.13",
109
- "@types/semver": "7.5.5",
110
- "@types/supertest": "2.0.16",
121
+ "@types/passport-jwt": "4.0.0",
122
+ "@types/semver": "7.5.6",
123
+ "@types/supertest": "6.0.2",
111
124
  "@types/uuid": "9.0.7",
112
125
  "chokidar": "3.5.3",
113
126
  "concurrently": "8.2.2",
114
- "eslint": "8.53.0",
127
+ "eslint": "8.56.0",
115
128
  "eslint-config-airbnb-base": "15.0.0",
116
- "eslint-config-prettier": "9.0.0",
129
+ "eslint-config-prettier": "9.1.0",
117
130
  "eslint-config-standard": "17.1.0",
118
- "eslint-plugin-import": "2.29.0",
131
+ "eslint-plugin-import": "2.29.1",
119
132
  "eslint-plugin-node": "11.1.0",
120
133
  "eslint-plugin-prettier": "4.2.1",
121
134
  "eslint-plugin-promise": "6.1.1",
122
135
  "express-list-routes": "1.1.9",
123
136
  "jest": "29.7.0",
124
137
  "jest-27-expect-message": "1.1.0",
125
- "mongodb-memory-server": "9.0.1",
126
- "nock": "13.3.8",
138
+ "mongodb-memory-server": "9.1.4",
139
+ "nock": "13.4.0",
127
140
  "prettier": "2.8.8",
128
141
  "supertest": "6.3.3",
129
- "ts-node": "10.9.1",
130
- "typescript": "5.2.2"
131
- },
132
- "resolutions": {
133
- "got": "11.8.6"
142
+ "ts-node": "10.9.2",
143
+ "typescript": "5.3.3"
134
144
  },
135
145
  "ignore-engines": false,
136
146
  "engine-strict": true,
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/state/files.store.ts"],"names":["FilesStore","printerCache","printerFilesService","fileCache","octoPrintApiService","logger","constructor","loggerFactory","name","loadFilesStore","printers","listCachedPrinters","printer","printerFileStorage","getPrinterFilesStorage","id","cachePrinterFileStorage","e","error","stack","eagerLoadPrinterFiles","printerId","recursive","loginDto","getLoginDtoAsync","response","getFiles","unwrap","simple","updatePrinterFiles","data","getPrinterFiles","getOutdatedFiles","ageDaysMax","ValidationException","printerFiles","files","length","nowTimestampSeconds","Date","now","filter","file","date","deleteOutdatedFiles","failedFiles","succeededFiles","nonRecursiveFiles","printerLogin","getCachedPrinterOrThrowAsync","deleteFileOrFolder","path","push","log","purgePrinterFiles","printerState","clearFiles","purgePrinterId","purgeFiles","allPrinters","printerFileList","updateFiles","cachePrinterFiles","appendOrSetPrinterFile","addedFile","fileList","lastPrintedFile","appendOrReplaceFile","setPrinterLastPrintedFile","fileName","setExistingFileForPrint","filePath","deleteFile","throwError","serviceActionResult","cacheActionResult","purgeFile","service","cache"],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "findFileIndex", {
6
- enumerable: true,
7
- get: function() {
8
- return findFileIndex;
9
- }
10
- });
11
- const _lodash = require("lodash");
12
- const findFileIndex = (fileList, filePath)=>{
13
- return (0, _lodash.findIndex)(fileList.files, (f)=>{
14
- return f.path === filePath;
15
- });
16
- };
17
-
18
- //# sourceMappingURL=find-predicate.utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/find-predicate.utils.ts"],"names":["findFileIndex","fileList","filePath","findIndex","files","f","path"],"mappings":";;;;+BAEaA;;;eAAAA;;;wBAFa;AAEnB,MAAMA,gBAAgB,CAACC,UAAUC;IACtC,OAAOC,IAAAA,iBAAS,EAACF,SAASG,KAAK,EAAE,CAACC;QAChC,OAAOA,EAAEC,IAAI,KAAKJ;IACpB;AACF"}
@@ -1,105 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "WebsocketAdapter", {
6
- enumerable: true,
7
- get: function() {
8
- return WebsocketAdapter;
9
- }
10
- });
11
- const _serverconstants = require("../server.constants");
12
- const _ws = require("ws");
13
- class WebsocketAdapter {
14
- socket;
15
- #logger;
16
- constructor({ loggerFactory }){
17
- this.#logger = loggerFactory(WebsocketAdapter.name);
18
- }
19
- get isOpened() {
20
- return this.socket?.readyState === _ws.WebSocket.OPEN;
21
- }
22
- close() {
23
- this.socket?.close();
24
- delete this.socket;
25
- }
26
- /**
27
- * @protected
28
- * Open a WebSocket connection.
29
- *
30
- * @param {string|URL} url - The URL to connect to.
31
- * @returns {void}
32
- */ open(url) {
33
- this.socket = new _ws.WebSocket(url, {
34
- handshakeTimeout: _serverconstants.AppConstants.defaultWebsocketHandshakeTimeout
35
- });
36
- this.socket.onopen = (event)=>this.onOpen(event);
37
- this.socket.onerror = (error)=>this.onError(error);
38
- this.socket.onclose = (event)=>this.onClose(event);
39
- this.socket.onmessage = (message)=>this.onMessage(message.data);
40
- }
41
- /**
42
- * @protected
43
- * Send a message through the WebSocket connection.
44
- *
45
- * @param {string} payload - The message payload to send.
46
- * @returns {Promise<void>} A promise that resolves when the message is sent successfully.
47
- */ async sendMessage(payload) {
48
- if (!this.isOpened || !this.socket) {
49
- this.#logger.error("Websocket is not opened, cant send a message");
50
- return;
51
- }
52
- return await new Promise((resolve, reject)=>{
53
- this.socket.send(payload, (error)=>{
54
- if (error) reject(error);
55
- resolve();
56
- });
57
- });
58
- }
59
- /**
60
- * Handle error event.
61
- * @protected
62
- * @abstract
63
- * @param {Event} error - The error event object.
64
- * @returns {Promise<void> | void} A promise that resolves when the error handling is complete, or void if no promise is returned.
65
- */ onError(error) {}
66
- /**
67
- * Handle after opened event.
68
- * @protected
69
- * @abstract
70
- * @param {Event} event - The event object.
71
- * @returns {Promise<void> | void} A promise that resolves when the after opened handling is complete, or void if no promise is returned.
72
- */ afterOpened(event) {}
73
- /**
74
- * Handle after closed event.
75
- * @protected
76
- * @abstract
77
- * @param {CloseEvent} event - The event object.
78
- * @returns {Promise<void> | void} A promise that resolves when the after closed handling is complete, or void if no promise is returned.
79
- */ afterClosed(event) {}
80
- /**
81
- * Handle message event.
82
- * @protected
83
- * @abstract
84
- * @param {Data} event - The event object.
85
- * @returns {Promise<void> | void} A promise that resolves when the message handling is complete, or void if no promise is returned.
86
- */ onMessage(event) {}
87
- /**
88
- * Handle open event.
89
- * @private
90
- * @param {Event} event - The event object.
91
- * @returns {Promise<void>} A promise that resolves when the open handling is complete.
92
- */ async onOpen(event) {
93
- await this.afterOpened(event);
94
- }
95
- /**
96
- * Handle close event.
97
- * @private
98
- * @param {CloseEvent} event - The event object.
99
- * @returns {Promise<void>} A promise that resolves when the close handling is complete.
100
- */ async onClose(event) {
101
- await this.afterClosed(event);
102
- }
103
- }
104
-
105
- //# sourceMappingURL=websocket.adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/websocket.adapter.ts"],"names":["WebsocketAdapter","socket","logger","constructor","loggerFactory","name","isOpened","readyState","WebSocket","OPEN","close","open","url","handshakeTimeout","AppConstants","defaultWebsocketHandshakeTimeout","onopen","event","onOpen","onerror","error","onError","onclose","onClose","onmessage","message","onMessage","data","sendMessage","payload","Promise","resolve","reject","send","afterOpened","afterClosed"],"mappings":";;;;+BAKaA;;;eAAAA;;;iCALgB;oBAC6C;AAInE,MAAMA;IACXC,OAAmB;IACnB,CAACC,MAAM,CAAgB;IAEvBC,YAAY,EAAEC,aAAa,EAAqC,CAAE;QAChE,IAAI,CAAC,CAACF,MAAM,GAAGE,cAAcJ,iBAAiBK,IAAI;IACpD;IAEA,IAAIC,WAAW;QACb,OAAO,IAAI,CAACL,MAAM,EAAEM,eAAeC,aAAS,CAACC,IAAI;IACnD;IAEAC,QAAQ;QACN,IAAI,CAACT,MAAM,EAAES;QACb,OAAO,IAAI,CAACT,MAAM;IACpB;IAEA;;;;;;GAMC,GACDU,KAAKC,GAAiB,EAAQ;QAC5B,IAAI,CAACX,MAAM,GAAG,IAAIO,aAAS,CAACI,KAAK;YAAEC,kBAAkBC,6BAAY,CAACC,gCAAgC;QAAC;QACnG,IAAI,CAACd,MAAM,CAACe,MAAM,GAAG,CAACC,QAAU,IAAI,CAACC,MAAM,CAACD;QAC5C,IAAI,CAAChB,MAAM,CAACkB,OAAO,GAAG,CAACC,QAAU,IAAI,CAACC,OAAO,CAACD;QAC9C,IAAI,CAACnB,MAAM,CAACqB,OAAO,GAAG,CAACL,QAAU,IAAI,CAACM,OAAO,CAACN;QAC9C,IAAI,CAAChB,MAAM,CAACuB,SAAS,GAAG,CAACC,UAAY,IAAI,CAACC,SAAS,CAACD,QAAQE,IAAI;IAClE;IAEA;;;;;;GAMC,GACD,MAAMC,YAAYC,OAAe,EAAiB;QAChD,IAAI,CAAC,IAAI,CAACvB,QAAQ,IAAI,CAAC,IAAI,CAACL,MAAM,EAAE;YAClC,IAAI,CAAC,CAACC,MAAM,CAACkB,KAAK,CAAC;YACnB;QACF;QACA,OAAO,MAAM,IAAIU,QAAQ,CAACC,SAASC;YACjC,IAAI,CAAC/B,MAAM,CAAEgC,IAAI,CAACJ,SAAS,CAACT;gBAC1B,IAAIA,OAAOY,OAAOZ;gBAClBW;YACF;QACF;IACF;IAEA;;;;;;GAMC,GACDV,QAAQD,KAAiB,EAAwB,CAAC;IAElD;;;;;;GAMC,GACDc,YAAYjB,KAAc,EAAwB,CAAC;IAEnD;;;;;;GAMC,GACDkB,YAAYlB,KAAiB,EAAwB,CAAC;IAEtD;;;;;;GAMC,GACDS,UAAUT,KAAW,EAAwB,CAAC;IAE9C;;;;;GAKC,GACD,MAAMC,OAAOD,KAAc,EAAiB;QAC1C,MAAM,IAAI,CAACiB,WAAW,CAACjB;IACzB;IAEA;;;;;GAKC,GACD,MAAMM,QAAQN,KAAiB,EAAiB;QAC9C,MAAM,IAAI,CAACkB,WAAW,CAAClB;IACzB;AACF"}