@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
@@ -0,0 +1,259 @@
1
+ import { EventEmitter } from "eventemitter3";
2
+ import { ObjectId, ObjectIdLike } from "bson";
3
+ import "reflect-metadata";
4
+ import { DEMErrorCode } from "./DEMErrors.js";
5
+ export type MongoId = string | ObjectId;
6
+ export type EventEmitter3 = EventEmitter;
7
+ export interface IAutoUpdateManager<T extends IAutoUpdatedClientObjectBase> {
8
+ readonly className: string;
9
+ readonly cache: DEMCache;
10
+ readonly managers: Record<string, IAutoUpdateManager<IAutoUpdatedClientObjectBase>>;
11
+ getObject(_id?: MongoId): T | null | undefined;
12
+ deleteObject(_id: MongoId): Promise<{
13
+ success: boolean;
14
+ message: string;
15
+ code?: DEMErrorCode;
16
+ }>;
17
+ readonly objectsAsArray: T[];
18
+ readonly isLoaded: boolean;
19
+ }
20
+ export interface IAutoUpdatedClientObjectBase {
21
+ readonly _id: MongoId;
22
+ readonly properties: string[];
23
+ readonly className: string;
24
+ readonly isLoaded: boolean;
25
+ loadMissingReferences(): Promise<void>;
26
+ waitForPreloaded(): Promise<void>;
27
+ destroy(once?: boolean): Promise<{
28
+ success: boolean;
29
+ message: string;
30
+ code?: DEMErrorCode;
31
+ }>;
32
+ isPreLoadedAsync(): Promise<boolean>;
33
+ contactChildren(): Promise<void>;
34
+ getValue(key: string): unknown;
35
+ setValue(key: string, val: unknown): Promise<{
36
+ success: boolean;
37
+ msg: string;
38
+ code?: DEMErrorCode;
39
+ }>;
40
+ readonly parentManager: IAutoUpdateManager<IAutoUpdatedClientObjectBase>;
41
+ readonly callbacks: any;
42
+ readonly classParam: any;
43
+ }
44
+ export interface IAutoUpdatedClientObject<T extends object = any> extends IAutoUpdatedClientObjectBase {
45
+ readonly extractedData: ExtractedData<T, IAutoUpdatedClientObject<any>>;
46
+ getValue<K extends Paths<T, IAutoUpdatedClientObject<any>>>(key: K): PathValueOf<T, K>;
47
+ setValue<K extends Paths<T, IAutoUpdatedClientObject<any>>>(key: K, val: PathValueOf<IsData<T>, K>): Promise<{
48
+ success: boolean;
49
+ msg: string;
50
+ code?: DEMErrorCode;
51
+ }>;
52
+ }
53
+ export interface IAutoUpdatedServerObject<T extends object = any> extends IAutoUpdatedClientObject<T> {
54
+ loadFromDB(): Promise<void>;
55
+ loadFromDocument(document: unknown): void;
56
+ }
57
+ export type AutoProps<T> = {
58
+ readonly [K in keyof T]: T[K];
59
+ };
60
+ export type Constructor<T> = new (...args: any[]) => T;
61
+ export type UnboxConstructor<T> = T extends new (...args: any[]) => infer I ? I : T;
62
+ export type LoggersType = {
63
+ info: (s: string) => void;
64
+ debug: (s: string) => void;
65
+ error: (s: string) => void;
66
+ warn: (s: string) => void;
67
+ };
68
+ type IsAUCOBase<T> = T extends {
69
+ className: string;
70
+ _id: any;
71
+ } ? true : false;
72
+ type AllowStringForRefs<V> = NonNullable<V> extends Array<infer U> ? IsAUCOBase<NonNullable<U>> extends true ? (U | string | ObjectIdLike)[] : V : IsAUCOBase<NonNullable<V>> extends true ? V | string | ObjectIdLike : V;
73
+ type OnlyStringForRefs<V> = V extends any ? V extends Array<infer U> ? OnlyStringForRefs<U>[] : V extends IAutoUpdatedClientObjectBase ? string : V extends Date ? V : V extends ObjectId | ObjectIdLike ? string : V extends object ? {
74
+ [K in keyof V as V[K] extends Function ? never : K]: K extends "_id" ? string : OnlyStringForRefs<V[K]>;
75
+ } : V : never;
76
+ export type DEMCache = {
77
+ references: Record<string, any>;
78
+ };
79
+ export type Pure<T extends object, Base = IAutoUpdatedClientObject<any>> = Omit<T, keyof Base | "parentManager" | "callbacks" | "classParam" | "className" | "properties" | "isLoaded" | "extractedData" | "getValue" | "setValue" | "loadFromDB" | "setValue_" | "destroyImmediate" | "loadError" | "updateEventName" | "getRawId">;
80
+ export type IsData<T extends object> = {
81
+ [K in keyof Pure<T> as T[K] extends Function ? never : K]: AllowStringForRefs<T[K]>;
82
+ } & {
83
+ _id: MongoId;
84
+ };
85
+ export type ExtractedData<T extends object, Base = IAutoUpdatedClientObject<any>> = {
86
+ [K in keyof IsData<T> as K extends "_id" ? never : K]: OnlyStringForRefs<IsData<T>[K]>;
87
+ } & {
88
+ _id: string;
89
+ };
90
+ export type SocketEvent = [
91
+ string,
92
+ unknown,
93
+ (res: ServerResponse<unknown>) => void
94
+ ];
95
+ export type ServerResponse<T> = {
96
+ data: T;
97
+ message?: string;
98
+ code?: DEMErrorCode;
99
+ success: true;
100
+ } | {
101
+ message: string;
102
+ code?: DEMErrorCode;
103
+ details?: unknown;
104
+ success: false;
105
+ };
106
+ export type ServerUpdateRequest<T = unknown> = {
107
+ _id: MongoId;
108
+ key: string;
109
+ value: unknown;
110
+ };
111
+ /**
112
+ * Property decorator that registers a property into the class reflection metadata.
113
+ *
114
+ * @param target - Prototype of the target class.
115
+ * @param propertyKey - Property name to register.
116
+ */
117
+ export declare function classProp(target: object, propertyKey: string): void;
118
+ /**
119
+ * Property decorator for populated references pointing to another managed entity class.
120
+ *
121
+ * @param where - The target managed class name this property references.
122
+ * @returns Property decorator function.
123
+ */
124
+ export declare function populatedRef(where: string): (target: object, propertyKey: string) => void;
125
+ /**
126
+ * Property decorator marking a property as an unresolved reference pointer.
127
+ *
128
+ * @returns Property decorator function.
129
+ */
130
+ export declare function classRef(): (target: object, propertyKey: string) => void;
131
+ export type Pretty<T> = {
132
+ [K in keyof T]: T[K];
133
+ };
134
+ export type StripPrototypePrefix<P extends string> = P extends "prototype" ? never : P extends `prototype.${infer Rest}` ? Rest : P;
135
+ export type Recurseable<T> = T extends object ? T extends Array<unknown> | Function ? never : T : never;
136
+ export type OnlyClassKeys<T> = {
137
+ [K in keyof T]: K;
138
+ }[keyof T] & string;
139
+ export type Split<S extends string> = S extends `${infer L}.${infer R}` ? [L, ...Split<R>] : [S];
140
+ export type NonOptional<T> = Exclude<T, null | undefined>;
141
+ export type DeAutoUpdate<T> = T extends IAutoUpdatedClientObject<any> ? unknown : T;
142
+ export type RecursiveDeAutoUpdate<T extends IAutoUpdatedClientObject<any>> = T extends IAutoUpdatedClientObject<any> ? unknown : T;
143
+ export type OnlyAddedKeys<Sub, Parent> = Pick<Sub, Exclude<keyof Sub, keyof Omit<Parent, "_id">>>;
144
+ export type Prev = [never, 0, 1, 2, 3];
145
+ export type Join<K, P> = K extends string | number ? P extends string | number ? `${K}${"" extends P ? "" : "."}${P}` : never : never;
146
+ export type Paths<T, Base, D extends number = 3> = 0 extends 1 & T ? string : [D] extends [never] ? never : NonNullable<T> extends object ? {
147
+ [K in keyof OnlyAddedKeys<NonNullable<T>, Base> & string]-?: NonNullable<NonNullable<T>[K]> extends Function ? never : NonNullable<NonNullable<T>[K]> extends Array<unknown> | Date | ObjectId ? K : NonNullable<NonNullable<T>[K]> extends object ? K | Join<K, Paths<NonNullable<NonNullable<T>[K]>, Base, Prev[D]>> : K;
148
+ }[keyof OnlyAddedKeys<NonNullable<T>, Base> & string] : never;
149
+ export type PathValueOf<T, P extends string> = 0 extends 1 & T ? any : P extends `${infer K}.${infer Rest}` ? K extends keyof NonNullable<T> ? PathValueOf<NonNullable<NonNullable<T>[K]>, Rest> : never : P extends keyof NonNullable<T> ? NonNullable<T>[P] : never;
150
+ export declare const EVENT_INTERNAL_PRE_LOADED = "pre-loaded";
151
+ export declare const EVENT_UPDATE = "update";
152
+ export declare const EVENT_DELETE = "delete";
153
+ export declare const EVENT_NEW = "new";
154
+ export declare const EVENT_GET = "get";
155
+ export declare const EVENT_STARTUP = "startup";
156
+ export declare const EVENT_VERSION = "dem_version";
157
+ export * from "./version.js";
158
+ /**
159
+ * Configuration options for DEM client-server version verification.
160
+ */
161
+ export interface DEMVersionOptions {
162
+ /**
163
+ * If true, requires exact or strict compatibility between client and server versions.
164
+ * In strict mode, minor or major mismatches reject the connection.
165
+ * Default: false (allows minor/patch differences, warning on differences).
166
+ */
167
+ strictVersionMatch?: boolean;
168
+ /**
169
+ * Optional minimum server version required by the client.
170
+ * e.g., "0.6.0"
171
+ */
172
+ minServerVersion?: string;
173
+ /**
174
+ * Optional custom validator callback.
175
+ * Return true for compatible, false or error message string if incompatible.
176
+ */
177
+ validateVersion?: (clientVersion: string, serverVersion: string) => boolean | string;
178
+ /**
179
+ * Optional callback triggered when a version mismatch or notice is detected.
180
+ */
181
+ onVersionMismatch?: (clientVersion: string, serverVersion: string, message: string) => void;
182
+ }
183
+ /**
184
+ * Result of a DEM version verification check.
185
+ */
186
+ export interface DEMVersionVerificationResult {
187
+ compatible: boolean;
188
+ clientVersion: string;
189
+ serverVersion: string;
190
+ status: "match" | "compatible_minor" | "compatible_patch" | "mismatch_major" | "mismatch_minor" | "below_min_version" | "custom_rejected" | "unknown";
191
+ message: string;
192
+ }
193
+ export interface ParsedSemVer {
194
+ major: number;
195
+ minor: number;
196
+ patch: number;
197
+ prerelease?: string;
198
+ }
199
+ /**
200
+ * Parses a semantic version string (e.g. "0.6.5", "v1.2.3-alpha").
201
+ *
202
+ * @param version - Semantic version string to parse.
203
+ * @returns ParsedSemVer object containing major, minor, patch, and prerelease fields, or null if invalid.
204
+ */
205
+ export declare function parseSemVer(version: string): ParsedSemVer | null;
206
+ /**
207
+ * Compares two semantic version strings.
208
+ *
209
+ * @param v1 - First version string.
210
+ * @param v2 - Second version string.
211
+ * @returns -1 if v1 < v2, 0 if v1 === v2, 1 if v1 > v2.
212
+ */
213
+ export declare function compareSemVer(v1: string, v2: string): number;
214
+ /**
215
+ * Verifies compatibility between client and server DEM versions.
216
+ * Evaluates SemVer rules, custom validators, and minimum required versions.
217
+ *
218
+ * @param clientVersion - DEM version of the client.
219
+ * @param serverVersion - DEM version of the server.
220
+ * @param options - Optional verification rules and callbacks.
221
+ * @returns Object describing compatibility result and status code.
222
+ */
223
+ export declare function verifyDEMVersion(clientVersion: string, serverVersion: string, options?: DEMVersionOptions): DEMVersionVerificationResult;
224
+ /**
225
+ * Safely stringifies a value to JSON, catching circular reference errors.
226
+ *
227
+ * @param obj - The value to stringify.
228
+ * @returns JSON string or fallback warning message.
229
+ */
230
+ export declare function safeStringify(obj: unknown): string;
231
+ /**
232
+ * Global cache storing object references across managers.
233
+ */
234
+ export declare class DEMGlobalCache {
235
+ objects: Record<string, {
236
+ className: string;
237
+ object: IAutoUpdatedClientObjectBase;
238
+ }>;
239
+ /**
240
+ * Clears all objects in the cache.
241
+ */
242
+ clear(): void;
243
+ /**
244
+ * Retrieves the number of stored objects.
245
+ *
246
+ * @returns Total count of cached objects.
247
+ */
248
+ get size(): number;
249
+ }
250
+ export type GlobalCache = DEMGlobalCache;
251
+ export declare const globalCache: DEMGlobalCache;
252
+ export * from "./sync/types.js";
253
+ export * from "./sync/storage/IClientStorageAdapter.js";
254
+ export * from "./sync/storage/MemoryStorageAdapter.js";
255
+ export * from "./sync/storage/LocalStorageAdapter.js";
256
+ export * from "./sync/storage/IndexedDbStorageAdapter.js";
257
+ export * from "./sync/ServerChangeTracker.js";
258
+ export * from "./sync/ClientStateReconciler.js";
259
+ export * from "./DEMErrors.js";
package/CommonTypes.js ADDED
@@ -0,0 +1,233 @@
1
+ import "reflect-metadata";
2
+ /**
3
+ * Property decorator that registers a property into the class reflection metadata.
4
+ *
5
+ * @param target - Prototype of the target class.
6
+ * @param propertyKey - Property name to register.
7
+ */
8
+ export function classProp(target, propertyKey) {
9
+ const props = Reflect.getOwnMetadata("props", target) || [];
10
+ if (props.includes(propertyKey))
11
+ return;
12
+ const newProps = [...props, propertyKey];
13
+ Reflect.defineMetadata("props", newProps, target);
14
+ }
15
+ /**
16
+ * Property decorator for populated references pointing to another managed entity class.
17
+ *
18
+ * @param where - The target managed class name this property references.
19
+ * @returns Property decorator function.
20
+ */
21
+ export function populatedRef(where) {
22
+ return function (target, propertyKey) {
23
+ classProp(target, propertyKey);
24
+ classRef()(target, propertyKey);
25
+ Reflect.defineMetadata("refsTo", where, target, propertyKey);
26
+ };
27
+ }
28
+ /**
29
+ * Property decorator marking a property as an unresolved reference pointer.
30
+ *
31
+ * @returns Property decorator function.
32
+ */
33
+ export function classRef() {
34
+ return function (target, propertyKey) {
35
+ classProp(target, propertyKey);
36
+ Reflect.defineMetadata("isRef", true, target, propertyKey);
37
+ };
38
+ }
39
+ export const EVENT_INTERNAL_PRE_LOADED = "pre-loaded";
40
+ export const EVENT_UPDATE = "update";
41
+ export const EVENT_DELETE = "delete";
42
+ export const EVENT_NEW = "new";
43
+ export const EVENT_GET = "get";
44
+ export const EVENT_STARTUP = "startup";
45
+ export const EVENT_VERSION = "dem_version";
46
+ export * from "./version.js";
47
+ /**
48
+ * Parses a semantic version string (e.g. "0.6.5", "v1.2.3-alpha").
49
+ *
50
+ * @param version - Semantic version string to parse.
51
+ * @returns ParsedSemVer object containing major, minor, patch, and prerelease fields, or null if invalid.
52
+ */
53
+ export function parseSemVer(version) {
54
+ if (!version || typeof version !== "string")
55
+ return null;
56
+ const cleaned = version.trim().replace(/^v/, "");
57
+ const match = cleaned.match(/^(\d+)\.(\d+)(?:\.(\d+))?(?:-([0-9A-Za-z.-]+))?/);
58
+ if (!match)
59
+ return null;
60
+ return {
61
+ major: parseInt(match[1], 10),
62
+ minor: parseInt(match[2], 10),
63
+ patch: match[3] !== undefined ? parseInt(match[3], 10) : 0,
64
+ prerelease: match[4] || undefined,
65
+ };
66
+ }
67
+ /**
68
+ * Compares two semantic version strings.
69
+ *
70
+ * @param v1 - First version string.
71
+ * @param v2 - Second version string.
72
+ * @returns -1 if v1 < v2, 0 if v1 === v2, 1 if v1 > v2.
73
+ */
74
+ export function compareSemVer(v1, v2) {
75
+ const p1 = parseSemVer(v1);
76
+ const p2 = parseSemVer(v2);
77
+ if (!p1 && !p2)
78
+ return 0;
79
+ if (!p1)
80
+ return -1;
81
+ if (!p2)
82
+ return 1;
83
+ if (p1.major !== p2.major)
84
+ return p1.major > p2.major ? 1 : -1;
85
+ if (p1.minor !== p2.minor)
86
+ return p1.minor > p2.minor ? 1 : -1;
87
+ if (p1.patch !== p2.patch)
88
+ return p1.patch > p2.patch ? 1 : -1;
89
+ return 0;
90
+ }
91
+ /**
92
+ * Verifies compatibility between client and server DEM versions.
93
+ * Evaluates SemVer rules, custom validators, and minimum required versions.
94
+ *
95
+ * @param clientVersion - DEM version of the client.
96
+ * @param serverVersion - DEM version of the server.
97
+ * @param options - Optional verification rules and callbacks.
98
+ * @returns Object describing compatibility result and status code.
99
+ */
100
+ export function verifyDEMVersion(clientVersion, serverVersion, options) {
101
+ const cParsed = parseSemVer(clientVersion);
102
+ const sParsed = parseSemVer(serverVersion);
103
+ if (options?.validateVersion) {
104
+ const customRes = options.validateVersion(clientVersion, serverVersion);
105
+ if (customRes === true) {
106
+ return {
107
+ compatible: true,
108
+ clientVersion,
109
+ serverVersion,
110
+ status: "match",
111
+ message: `Custom version validator accepted client ${clientVersion} and server ${serverVersion}.`,
112
+ };
113
+ }
114
+ const msg = typeof customRes === "string"
115
+ ? customRes
116
+ : `Custom version validator rejected client ${clientVersion} with server ${serverVersion}.`;
117
+ return {
118
+ compatible: false,
119
+ clientVersion,
120
+ serverVersion,
121
+ status: "custom_rejected",
122
+ message: msg,
123
+ };
124
+ }
125
+ if (!cParsed || !sParsed) {
126
+ const isExact = clientVersion === serverVersion;
127
+ return {
128
+ compatible: isExact || !options?.strictVersionMatch,
129
+ clientVersion,
130
+ serverVersion,
131
+ status: isExact ? "match" : "unknown",
132
+ message: isExact
133
+ ? `DEM versions match (${clientVersion}).`
134
+ : `Non-semver DEM versions encountered: client '${clientVersion}', server '${serverVersion}'.`,
135
+ };
136
+ }
137
+ // Check minimum server version requirement if specified
138
+ if (options?.minServerVersion) {
139
+ if (compareSemVer(serverVersion, options.minServerVersion) < 0) {
140
+ return {
141
+ compatible: false,
142
+ clientVersion,
143
+ serverVersion,
144
+ status: "below_min_version",
145
+ message: `Server DEM version ${serverVersion} is lower than required minimum ${options.minServerVersion}.`,
146
+ };
147
+ }
148
+ }
149
+ // Exact match
150
+ if (cParsed.major === sParsed.major &&
151
+ cParsed.minor === sParsed.minor &&
152
+ cParsed.patch === sParsed.patch) {
153
+ return {
154
+ compatible: true,
155
+ clientVersion,
156
+ serverVersion,
157
+ status: "match",
158
+ message: `DEM versions match (${clientVersion}).`,
159
+ };
160
+ }
161
+ // Major version mismatch (incompatible by SemVer rules)
162
+ if (cParsed.major !== sParsed.major) {
163
+ return {
164
+ compatible: false,
165
+ clientVersion,
166
+ serverVersion,
167
+ status: "mismatch_major",
168
+ message: `Incompatible major DEM version: Client is ${clientVersion}, Server is ${serverVersion}.`,
169
+ };
170
+ }
171
+ // Minor version difference
172
+ if (cParsed.minor !== sParsed.minor) {
173
+ return {
174
+ compatible: false,
175
+ clientVersion,
176
+ serverVersion,
177
+ status: "mismatch_minor",
178
+ message: `Incompatible minor DEM version: Client is ${clientVersion}, Server is ${serverVersion}. Minor versions must match.`,
179
+ };
180
+ }
181
+ // Patch version difference
182
+ return {
183
+ compatible: true,
184
+ clientVersion,
185
+ serverVersion,
186
+ status: "compatible_patch",
187
+ message: `DEM patch version compatible: Client (${clientVersion}) and Server (${serverVersion}).`,
188
+ };
189
+ }
190
+ /**
191
+ * Safely stringifies a value to JSON, catching circular reference errors.
192
+ *
193
+ * @param obj - The value to stringify.
194
+ * @returns JSON string or fallback warning message.
195
+ */
196
+ export function safeStringify(obj) {
197
+ try {
198
+ return JSON.stringify(obj);
199
+ }
200
+ catch (e) {
201
+ return "[Circular or non-serializable object]";
202
+ }
203
+ }
204
+ /**
205
+ * Global cache storing object references across managers.
206
+ */
207
+ export class DEMGlobalCache {
208
+ objects = {};
209
+ /**
210
+ * Clears all objects in the cache.
211
+ */
212
+ clear() {
213
+ this.objects = {};
214
+ }
215
+ /**
216
+ * Retrieves the number of stored objects.
217
+ *
218
+ * @returns Total count of cached objects.
219
+ */
220
+ get size() {
221
+ return Object.keys(this.objects).length;
222
+ }
223
+ }
224
+ export const globalCache = new DEMGlobalCache();
225
+ export * from "./sync/types.js";
226
+ export * from "./sync/storage/IClientStorageAdapter.js";
227
+ export * from "./sync/storage/MemoryStorageAdapter.js";
228
+ export * from "./sync/storage/LocalStorageAdapter.js";
229
+ export * from "./sync/storage/IndexedDbStorageAdapter.js";
230
+ export * from "./sync/ServerChangeTracker.js";
231
+ export * from "./sync/ClientStateReconciler.js";
232
+ export * from "./DEMErrors.js";
233
+ //# sourceMappingURL=CommonTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommonTypes.js","sourceRoot":"","sources":["../CommonTypes.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,CAAC;AA+K1B;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,WAAmB;IAC3D,MAAM,KAAK,GAAI,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAc,IAAI,EAAE,CAAC;IAC1E,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO;IACxC,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC,CAAC;IACzC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAa;IAEb,OAAO,UAAU,MAAc,EAAE,WAAmB;QAClD,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC/B,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAChC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,UAAU,MAAc,EAAE,WAAmB;QAClD,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC/B,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAmFD,MAAM,CAAC,MAAM,yBAAyB,GAAG,YAAY,CAAC;AACtD,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;AACrC,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;AACrC,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AACvC,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;AAE3C,cAAc,cAAc,CAAC;AAgE7B;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAC/E,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC7B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS;KAClC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,EAAU,EAAE,EAAU;IAClD,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC3B,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,CAAC;IACzB,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,CAAC,CAAC;IACnB,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,CAAC;IAElB,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,aAAqB,EACrB,aAAqB,EACrB,OAA2B;IAE3B,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IAE3C,IAAI,OAAO,EAAE,eAAe,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QACxE,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO;gBACL,UAAU,EAAE,IAAI;gBAChB,aAAa;gBACb,aAAa;gBACb,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,4CAA4C,aAAa,eAAe,aAAa,GAAG;aAClG,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GACP,OAAO,SAAS,KAAK,QAAQ;YAC3B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,4CAA4C,aAAa,gBAAgB,aAAa,GAAG,CAAC;QAChG,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,aAAa;YACb,aAAa;YACb,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,GAAG;SACb,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,aAAa,KAAK,aAAa,CAAC;QAChD,OAAO;YACL,UAAU,EAAE,OAAO,IAAI,CAAC,OAAO,EAAE,kBAAkB;YACnD,aAAa;YACb,aAAa;YACb,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACrC,OAAO,EAAE,OAAO;gBACd,CAAC,CAAC,uBAAuB,aAAa,IAAI;gBAC1C,CAAC,CAAC,gDAAgD,aAAa,cAAc,aAAa,IAAI;SACjG,CAAC;IACJ,CAAC;IAED,wDAAwD;IACxD,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAC9B,IAAI,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/D,OAAO;gBACL,UAAU,EAAE,KAAK;gBACjB,aAAa;gBACb,aAAa;gBACb,MAAM,EAAE,mBAAmB;gBAC3B,OAAO,EAAE,sBAAsB,aAAa,mCAAmC,OAAO,CAAC,gBAAgB,GAAG;aAC3G,CAAC;QACJ,CAAC;IACH,CAAC;IAED,cAAc;IACd,IACE,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;QAC/B,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;QAC/B,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAC/B,CAAC;QACD,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,aAAa;YACb,aAAa;YACb,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,uBAAuB,aAAa,IAAI;SAClD,CAAC;IACJ,CAAC;IAED,wDAAwD;IACxD,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;QACpC,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,aAAa;YACb,aAAa;YACb,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,6CAA6C,aAAa,eAAe,aAAa,GAAG;SACnG,CAAC;IACJ,CAAC;IAED,2BAA2B;IAC3B,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;QACpC,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,aAAa;YACb,aAAa;YACb,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,6CAA6C,aAAa,eAAe,aAAa,8BAA8B;SAC9H,CAAC;IACJ,CAAC;IAED,2BAA2B;IAC3B,OAAO;QACL,UAAU,EAAE,IAAI;QAChB,aAAa;QACb,aAAa;QACb,MAAM,EAAE,kBAAkB;QAC1B,OAAO,EAAE,yCAAyC,aAAa,iBAAiB,aAAa,IAAI;KAClG,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,uCAAuC,CAAC;IACjD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,cAAc;IAClB,OAAO,GAMV,EAAE,CAAC;IAEP;;OAEG;IACI,KAAK;QACV,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,IAAW,IAAI;QACb,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAC1C,CAAC;CACF;AAID,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,cAAc,EAAE,CAAC;AAEhD,cAAc,iBAAiB,CAAC;AAChC,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "./CommonTypes.js";
@@ -0,0 +1,2 @@
1
+ export * from "./CommonTypes.js";
2
+ //# sourceMappingURL=CommonTypes_server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommonTypes_server.js","sourceRoot":"","sources":["../CommonTypes_server.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -44,17 +44,33 @@ export declare enum DEMErrorCode {
44
44
  */
45
45
  export declare const DEM_ERROR_DESCRIPTIONS: Record<DEMErrorCode, string>;
46
46
  /**
47
- * Returns human-readable description for given error code.
47
+ * Returns the human-readable description for a given error code.
48
+ *
49
+ * @param code - The DEM error code enum value.
50
+ * @returns Standard descriptive message corresponding to the error code.
48
51
  */
49
52
  export declare function getDEMErrorDescription(code: DEMErrorCode): string;
50
53
  /**
51
54
  * Standard typed Error class for DEM.
55
+ * Enforces structured error codes and optional diagnostic payloads.
52
56
  */
53
57
  export declare class DEMError extends Error {
54
58
  readonly code: DEMErrorCode;
55
59
  readonly details?: unknown;
56
60
  readonly timestamp: number;
61
+ /**
62
+ * Constructs a new DEMError instance.
63
+ *
64
+ * @param code - The typed error code.
65
+ * @param message - Descriptive error message.
66
+ * @param details - Optional arbitrary diagnostic data.
67
+ */
57
68
  constructor(code: DEMErrorCode, message: string, details?: unknown);
69
+ /**
70
+ * Serializes the error instance to a JSON-compatible object.
71
+ *
72
+ * @returns Plain object representation of the DEMError.
73
+ */
58
74
  toJSON(): {
59
75
  name: string;
60
76
  code: DEMErrorCode;
@@ -64,6 +80,10 @@ export declare class DEMError extends Error {
64
80
  };
65
81
  }
66
82
  /**
67
- * Converts unknown error into DEMError instance.
83
+ * Converts an unknown caught error or object into a typed DEMError instance.
84
+ *
85
+ * @param err - The caught error or value.
86
+ * @param defaultCode - Fallback error code when the source is not a DEMError.
87
+ * @returns Standard DEMError instance.
68
88
  */
69
89
  export declare function toDEMError(err: unknown, defaultCode?: DEMErrorCode): DEMError;
@@ -90,18 +90,29 @@ export const DEM_ERROR_DESCRIPTIONS = {
90
90
  [DEMErrorCode.INTERNAL_ERROR]: "Internal DEM library error occurred.",
91
91
  };
92
92
  /**
93
- * Returns human-readable description for given error code.
93
+ * Returns the human-readable description for a given error code.
94
+ *
95
+ * @param code - The DEM error code enum value.
96
+ * @returns Standard descriptive message corresponding to the error code.
94
97
  */
95
98
  export function getDEMErrorDescription(code) {
96
99
  return DEM_ERROR_DESCRIPTIONS[code] || "Unknown error.";
97
100
  }
98
101
  /**
99
102
  * Standard typed Error class for DEM.
103
+ * Enforces structured error codes and optional diagnostic payloads.
100
104
  */
101
105
  export class DEMError extends Error {
102
106
  code;
103
107
  details;
104
108
  timestamp;
109
+ /**
110
+ * Constructs a new DEMError instance.
111
+ *
112
+ * @param code - The typed error code.
113
+ * @param message - Descriptive error message.
114
+ * @param details - Optional arbitrary diagnostic data.
115
+ */
105
116
  constructor(code, message, details) {
106
117
  super(`[${code}] ${message}`);
107
118
  this.name = "DEMError";
@@ -110,6 +121,11 @@ export class DEMError extends Error {
110
121
  this.timestamp = Date.now();
111
122
  Object.setPrototypeOf(this, DEMError.prototype);
112
123
  }
124
+ /**
125
+ * Serializes the error instance to a JSON-compatible object.
126
+ *
127
+ * @returns Plain object representation of the DEMError.
128
+ */
113
129
  toJSON() {
114
130
  return {
115
131
  name: this.name,
@@ -121,7 +137,11 @@ export class DEMError extends Error {
121
137
  }
122
138
  }
123
139
  /**
124
- * Converts unknown error into DEMError instance.
140
+ * Converts an unknown caught error or object into a typed DEMError instance.
141
+ *
142
+ * @param err - The caught error or value.
143
+ * @param defaultCode - Fallback error code when the source is not a DEMError.
144
+ * @returns Standard DEMError instance.
125
145
  */
126
146
  export function toDEMError(err, defaultCode = DEMErrorCode.INTERNAL_ERROR) {
127
147
  if (err instanceof DEMError) {
@@ -1 +1 @@
1
- {"version":3,"file":"DEMErrors.js","sourceRoot":"","sources":["../DEMErrors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DEMErrors.js","sourceRoot":"","sources":["../DEMErrors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { Objekt, Status } from "./TestTypes.js";
2
+ import { Types } from "mongoose";
3
+ import { AutoUpdatedServerObject } from "./AutoUpdatedServerObjectClass.js";
4
+ export declare class Test extends AutoUpdatedServerObject<Test> {
5
+ _id: Types.ObjectId;
6
+ active: boolean;
7
+ status: Status;
8
+ description: string | null;
9
+ ref: Test | null;
10
+ refarr: Test[];
11
+ obj: Objekt | null;
12
+ parent: Test | null;
13
+ }
14
+ export declare class Test2 extends AutoUpdatedServerObject<Test2> {
15
+ _id: string;
16
+ }