@quadnix/octo 0.0.22 → 0.0.24

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 (356) hide show
  1. package/dist/app.type.d.ts +236 -27
  2. package/dist/app.type.js +92 -1
  3. package/dist/app.type.js.map +1 -1
  4. package/dist/decorators/action.decorator.d.ts +4 -5
  5. package/dist/decorators/action.decorator.js +42 -41
  6. package/dist/decorators/action.decorator.js.map +1 -1
  7. package/dist/decorators/anchor.decorator.d.ts +2 -2
  8. package/dist/decorators/anchor.decorator.js +16 -11
  9. package/dist/decorators/anchor.decorator.js.map +1 -1
  10. package/dist/decorators/enable-hook.decorator.d.ts +5 -0
  11. package/dist/decorators/enable-hook.decorator.js +7 -2
  12. package/dist/decorators/enable-hook.decorator.js.map +1 -1
  13. package/dist/decorators/event-source.decorator.d.ts +5 -1
  14. package/dist/decorators/event-source.decorator.js +5 -1
  15. package/dist/decorators/event-source.decorator.js.map +1 -1
  16. package/dist/decorators/factory.decorator.d.ts +14 -2
  17. package/dist/decorators/factory.decorator.js +12 -3
  18. package/dist/decorators/factory.decorator.js.map +1 -1
  19. package/dist/decorators/model.decorator.d.ts +19 -5
  20. package/dist/decorators/model.decorator.js +40 -14
  21. package/dist/decorators/model.decorator.js.map +1 -1
  22. package/dist/decorators/module.decorator.d.ts +4 -75
  23. package/dist/decorators/module.decorator.js +18 -58
  24. package/dist/decorators/module.decorator.js.map +1 -1
  25. package/dist/decorators/on-event.decorator.d.ts +1 -1
  26. package/dist/decorators/on-event.decorator.js +1 -1
  27. package/dist/decorators/on-event.decorator.js.map +1 -1
  28. package/dist/decorators/overlay.decorator.d.ts +16 -6
  29. package/dist/decorators/overlay.decorator.js +36 -15
  30. package/dist/decorators/overlay.decorator.js.map +1 -1
  31. package/dist/decorators/resource.decorator.d.ts +17 -6
  32. package/dist/decorators/resource.decorator.js +37 -15
  33. package/dist/decorators/resource.decorator.js.map +1 -1
  34. package/dist/decorators/validate.decorator.d.ts +12 -4
  35. package/dist/decorators/validate.decorator.js +24 -2
  36. package/dist/decorators/validate.decorator.js.map +1 -1
  37. package/dist/errors/container.error.d.ts +20 -0
  38. package/dist/errors/container.error.js +29 -0
  39. package/dist/errors/container.error.js.map +1 -0
  40. package/dist/errors/index.d.ts +6 -0
  41. package/dist/errors/index.js +7 -0
  42. package/dist/errors/index.js.map +1 -0
  43. package/dist/errors/input.error.d.ts +49 -0
  44. package/dist/errors/input.error.js +59 -0
  45. package/dist/errors/input.error.js.map +1 -0
  46. package/dist/errors/module.error.d.ts +7 -0
  47. package/dist/errors/module.error.js +11 -0
  48. package/dist/errors/module.error.js.map +1 -0
  49. package/dist/errors/node.error.d.ts +63 -0
  50. package/dist/errors/node.error.js +87 -0
  51. package/dist/errors/node.error.js.map +1 -0
  52. package/dist/errors/schema.error.d.ts +7 -0
  53. package/dist/errors/schema.error.js +11 -0
  54. package/dist/errors/schema.error.js.map +1 -0
  55. package/dist/errors/transaction.error.d.ts +56 -0
  56. package/dist/errors/transaction.error.js +79 -0
  57. package/dist/errors/transaction.error.js.map +1 -0
  58. package/dist/events/action.event.d.ts +14 -0
  59. package/dist/events/action.event.js +12 -0
  60. package/dist/events/action.event.js.map +1 -0
  61. package/dist/events/event.model.d.ts +8 -12
  62. package/dist/events/event.model.js +7 -11
  63. package/dist/events/event.model.js.map +1 -1
  64. package/dist/events/hook/commit.hook.event.d.ts +28 -0
  65. package/dist/events/hook/commit.hook.event.js +29 -0
  66. package/dist/events/hook/commit.hook.event.js.map +1 -0
  67. package/dist/events/hook/hook.event.d.ts +10 -0
  68. package/dist/events/hook/hook.event.js +11 -0
  69. package/dist/events/hook/hook.event.js.map +1 -0
  70. package/dist/events/hook/index.d.ts +4 -0
  71. package/dist/events/hook/index.js +5 -0
  72. package/dist/events/hook/index.js.map +1 -0
  73. package/dist/events/hook/model.hook.event.d.ts +28 -0
  74. package/dist/events/hook/model.hook.event.js +29 -0
  75. package/dist/events/hook/model.hook.event.js.map +1 -0
  76. package/dist/events/hook/resource.hook.event.d.ts +28 -0
  77. package/dist/events/hook/resource.hook.event.js +29 -0
  78. package/dist/events/hook/resource.hook.event.js.map +1 -0
  79. package/dist/events/index.d.ts +7 -0
  80. package/dist/events/index.js +8 -0
  81. package/dist/events/index.js.map +1 -0
  82. package/dist/events/module.event.d.ts +3 -7
  83. package/dist/events/module.event.js +2 -6
  84. package/dist/events/module.event.js.map +1 -1
  85. package/dist/events/registration.event.d.ts +22 -57
  86. package/dist/events/registration.event.js +29 -70
  87. package/dist/events/registration.event.js.map +1 -1
  88. package/dist/events/serialization.event.d.ts +34 -41
  89. package/dist/events/serialization.event.js +59 -37
  90. package/dist/events/serialization.event.js.map +1 -1
  91. package/dist/events/transaction.event.d.ts +72 -29
  92. package/dist/events/transaction.event.js +63 -27
  93. package/dist/events/transaction.event.js.map +1 -1
  94. package/dist/functions/container/container.d.ts +56 -9
  95. package/dist/functions/container/container.js +108 -19
  96. package/dist/functions/container/container.js.map +1 -1
  97. package/dist/functions/container/test-container.d.ts +11 -13
  98. package/dist/functions/container/test-container.js +35 -38
  99. package/dist/functions/container/test-container.js.map +1 -1
  100. package/dist/functions/dependency/dependency.d.ts +9 -0
  101. package/dist/functions/dependency/dependency.js +10 -3
  102. package/dist/functions/dependency/dependency.js.map +1 -1
  103. package/dist/functions/diff/diff-metadata.d.ts +6 -5
  104. package/dist/functions/diff/diff-metadata.js +6 -2
  105. package/dist/functions/diff/diff-metadata.js.map +1 -1
  106. package/dist/functions/diff/diff.d.ts +16 -5
  107. package/dist/functions/diff/diff.js +11 -4
  108. package/dist/functions/diff/diff.js.map +1 -1
  109. package/dist/functions/diff/diff.utility.d.ts +5 -2
  110. package/dist/functions/diff/diff.utility.js +28 -4
  111. package/dist/functions/diff/diff.utility.js.map +1 -1
  112. package/dist/functions/hook/commit.hook.d.ts +17 -3
  113. package/dist/functions/hook/commit.hook.js +19 -16
  114. package/dist/functions/hook/commit.hook.js.map +1 -1
  115. package/dist/functions/hook/hook.interface.d.ts +10 -6
  116. package/dist/functions/hook/model-action.hook.d.ts +20 -5
  117. package/dist/functions/hook/model-action.hook.js +23 -39
  118. package/dist/functions/hook/model-action.hook.js.map +1 -1
  119. package/dist/functions/hook/resource-action.hook.d.ts +20 -5
  120. package/dist/functions/hook/resource-action.hook.js +21 -18
  121. package/dist/functions/hook/resource-action.hook.js.map +1 -1
  122. package/dist/functions/node/node-action.abstract.d.ts +10 -0
  123. package/dist/functions/node/node-action.abstract.js +23 -0
  124. package/dist/functions/node/node-action.abstract.js.map +1 -0
  125. package/dist/functions/node/node.abstract.d.ts +20 -9
  126. package/dist/functions/node/node.abstract.js +101 -32
  127. package/dist/functions/node/node.abstract.js.map +1 -1
  128. package/dist/functions/node/node.interface.d.ts +22 -18
  129. package/dist/functions/schema/schema.d.ts +21 -0
  130. package/dist/functions/schema/schema.js +55 -0
  131. package/dist/functions/schema/schema.js.map +1 -0
  132. package/dist/index.d.ts +31 -32
  133. package/dist/index.js +29 -12
  134. package/dist/index.js.map +1 -1
  135. package/dist/main.d.ts +32 -15
  136. package/dist/main.js +65 -50
  137. package/dist/main.js.map +1 -1
  138. package/dist/models/account/account.model.d.ts +26 -0
  139. package/dist/models/account/account.model.js +71 -0
  140. package/dist/models/account/account.model.js.map +1 -0
  141. package/dist/models/account/account.schema.d.ts +13 -0
  142. package/dist/models/account/account.schema.js +18 -0
  143. package/dist/models/account/account.schema.js.map +1 -0
  144. package/dist/models/app/app.model.d.ts +9 -14
  145. package/dist/models/app/app.model.js +27 -27
  146. package/dist/models/app/app.model.js.map +1 -1
  147. package/dist/models/app/app.schema.d.ts +6 -0
  148. package/dist/models/app/app.schema.js +24 -0
  149. package/dist/models/app/app.schema.js.map +1 -0
  150. package/dist/models/deployment/deployment.model.d.ts +9 -12
  151. package/dist/models/deployment/deployment.model.js +11 -11
  152. package/dist/models/deployment/deployment.model.js.map +1 -1
  153. package/dist/models/deployment/deployment.schema.d.ts +10 -0
  154. package/dist/models/deployment/deployment.schema.js +28 -0
  155. package/dist/models/deployment/deployment.schema.js.map +1 -0
  156. package/dist/models/environment/environment.model.d.ts +8 -14
  157. package/dist/models/environment/environment.model.js +10 -22
  158. package/dist/models/environment/environment.model.js.map +1 -1
  159. package/dist/models/environment/environment.schema.d.ts +16 -0
  160. package/dist/models/environment/environment.schema.js +41 -0
  161. package/dist/models/environment/environment.schema.js.map +1 -0
  162. package/dist/models/execution/execution.model.d.ts +9 -13
  163. package/dist/models/execution/execution.model.js +18 -25
  164. package/dist/models/execution/execution.model.js.map +1 -1
  165. package/dist/models/execution/execution.schema.d.ts +17 -0
  166. package/dist/models/execution/execution.schema.js +37 -0
  167. package/dist/models/execution/execution.schema.js.map +1 -0
  168. package/dist/models/filesystem/filesystem.model.d.ts +13 -0
  169. package/dist/models/filesystem/filesystem.model.js +46 -0
  170. package/dist/models/filesystem/filesystem.model.js.map +1 -0
  171. package/dist/models/filesystem/filesystem.schema.d.ts +6 -0
  172. package/dist/models/filesystem/filesystem.schema.js +24 -0
  173. package/dist/models/filesystem/filesystem.schema.js.map +1 -0
  174. package/dist/models/image/image.model.d.ts +10 -40
  175. package/dist/models/image/image.model.js +17 -27
  176. package/dist/models/image/image.model.js.map +1 -1
  177. package/dist/models/image/image.schema.d.ts +12 -0
  178. package/dist/models/image/image.schema.js +34 -0
  179. package/dist/models/image/image.schema.js.map +1 -0
  180. package/dist/models/model-action.interface.d.ts +5 -13
  181. package/dist/models/model.abstract.d.ts +28 -13
  182. package/dist/models/model.abstract.js +179 -13
  183. package/dist/models/model.abstract.js.map +1 -1
  184. package/dist/models/model.interface.d.ts +17 -6
  185. package/dist/models/pipeline/pipeline.model.d.ts +8 -7
  186. package/dist/models/pipeline/pipeline.model.js +10 -10
  187. package/dist/models/pipeline/pipeline.model.js.map +1 -1
  188. package/dist/models/pipeline/pipeline.schema.d.ts +7 -0
  189. package/dist/models/pipeline/pipeline.schema.js +25 -0
  190. package/dist/models/pipeline/pipeline.schema.js.map +1 -0
  191. package/dist/models/region/region.model.d.ts +11 -8
  192. package/dist/models/region/region.model.js +25 -12
  193. package/dist/models/region/region.model.js.map +1 -1
  194. package/dist/models/region/region.schema.d.ts +6 -0
  195. package/dist/models/region/region.schema.js +24 -0
  196. package/dist/models/region/region.schema.js.map +1 -0
  197. package/dist/models/server/server.model.d.ts +8 -10
  198. package/dist/models/server/server.model.js +13 -11
  199. package/dist/models/server/server.model.js.map +1 -1
  200. package/dist/models/server/server.schema.d.ts +9 -0
  201. package/dist/models/server/server.schema.js +27 -0
  202. package/dist/models/server/server.schema.js.map +1 -0
  203. package/dist/models/service/service.model.d.ts +7 -9
  204. package/dist/models/service/service.model.js +15 -13
  205. package/dist/models/service/service.model.js.map +1 -1
  206. package/dist/models/service/service.schema.d.ts +9 -0
  207. package/dist/models/service/service.schema.js +27 -0
  208. package/dist/models/service/service.schema.js.map +1 -0
  209. package/dist/models/subnet/subnet.model.d.ts +11 -33
  210. package/dist/models/subnet/subnet.model.js +14 -34
  211. package/dist/models/subnet/subnet.model.js.map +1 -1
  212. package/dist/models/subnet/subnet.schema.d.ts +38 -0
  213. package/dist/models/subnet/subnet.schema.js +53 -0
  214. package/dist/models/subnet/subnet.schema.js.map +1 -0
  215. package/dist/modules/module.abstract.d.ts +24 -0
  216. package/dist/modules/module.abstract.js +17 -0
  217. package/dist/modules/module.abstract.js.map +1 -0
  218. package/dist/modules/module.container.d.ts +38 -18
  219. package/dist/modules/module.container.js +140 -81
  220. package/dist/modules/module.container.js.map +1 -1
  221. package/dist/modules/module.interface.d.ts +18 -2
  222. package/dist/modules/test-module.container.d.ts +39 -15
  223. package/dist/modules/test-module.container.js +262 -26
  224. package/dist/modules/test-module.container.js.map +1 -1
  225. package/dist/overlays/anchor.abstract.d.ts +16 -8
  226. package/dist/overlays/anchor.abstract.js +4 -1
  227. package/dist/overlays/anchor.abstract.js.map +1 -1
  228. package/dist/overlays/anchor.interface.d.ts +8 -8
  229. package/dist/overlays/anchor.schema.d.ts +14 -0
  230. package/dist/overlays/anchor.schema.js +12 -0
  231. package/dist/overlays/anchor.schema.js.map +1 -0
  232. package/dist/overlays/overlay-data.repository.d.ts +9 -4
  233. package/dist/overlays/overlay-data.repository.js +20 -10
  234. package/dist/overlays/overlay-data.repository.js.map +1 -1
  235. package/dist/overlays/overlay.abstract.d.ts +15 -13
  236. package/dist/overlays/overlay.abstract.js +22 -8
  237. package/dist/overlays/overlay.abstract.js.map +1 -1
  238. package/dist/overlays/overlay.interface.d.ts +6 -7
  239. package/dist/overlays/overlay.schema.d.ts +11 -0
  240. package/dist/overlays/overlay.schema.js +12 -0
  241. package/dist/overlays/overlay.schema.js.map +1 -0
  242. package/dist/resources/resource-action.interface.d.ts +7 -3
  243. package/dist/resources/resource-data.repository.d.ts +8 -3
  244. package/dist/resources/resource-data.repository.js +64 -82
  245. package/dist/resources/resource-data.repository.js.map +1 -1
  246. package/dist/resources/resource.abstract.d.ts +53 -27
  247. package/dist/resources/resource.abstract.js +233 -57
  248. package/dist/resources/resource.abstract.js.map +1 -1
  249. package/dist/resources/resource.interface.d.ts +45 -8
  250. package/dist/resources/resource.schema.d.ts +17 -0
  251. package/dist/resources/resource.schema.js +14 -0
  252. package/dist/resources/resource.schema.js.map +1 -0
  253. package/dist/services/capture/capture.service.d.ts +12 -6
  254. package/dist/services/capture/capture.service.js +14 -5
  255. package/dist/services/capture/capture.service.js.map +1 -1
  256. package/dist/services/event/event.service.d.ts +8 -2
  257. package/dist/services/event/event.service.js +9 -2
  258. package/dist/services/event/event.service.js.map +1 -1
  259. package/dist/services/input/input.service.d.ts +68 -6
  260. package/dist/services/input/input.service.js +296 -14
  261. package/dist/services/input/input.service.js.map +1 -1
  262. package/dist/services/schema-translation/schema-translation.service.d.ts +19 -0
  263. package/dist/services/schema-translation/schema-translation.service.js +48 -0
  264. package/dist/services/schema-translation/schema-translation.service.js.map +1 -0
  265. package/dist/services/serialization/model/model-serialization.service.d.ts +7 -4
  266. package/dist/services/serialization/model/model-serialization.service.js +65 -33
  267. package/dist/services/serialization/model/model-serialization.service.js.map +1 -1
  268. package/dist/services/serialization/resource/resource-serialization.service.d.ts +7 -1
  269. package/dist/services/serialization/resource/resource-serialization.service.js +64 -80
  270. package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -1
  271. package/dist/services/state-management/local.state-provider.d.ts +3 -1
  272. package/dist/services/state-management/local.state-provider.js +8 -7
  273. package/dist/services/state-management/local.state-provider.js.map +1 -1
  274. package/dist/services/state-management/state-management.service.d.ts +8 -3
  275. package/dist/services/state-management/state-management.service.js +25 -8
  276. package/dist/services/state-management/state-management.service.js.map +1 -1
  277. package/dist/services/state-management/state-provider.interface.d.ts +3 -1
  278. package/dist/services/state-management/test.state-provider.d.ts +3 -1
  279. package/dist/services/state-management/test.state-provider.js +5 -1
  280. package/dist/services/state-management/test.state-provider.js.map +1 -1
  281. package/dist/services/transaction/transaction.service.d.ts +22 -11
  282. package/dist/services/transaction/transaction.service.js +215 -66
  283. package/dist/services/transaction/transaction.service.js.map +1 -1
  284. package/dist/services/validation/validation.service.d.ts +8 -3
  285. package/dist/services/validation/validation.service.js +33 -12
  286. package/dist/services/validation/validation.service.js.map +1 -1
  287. package/dist/utilities/array/array.utility.d.ts +3 -0
  288. package/dist/utilities/array/array.utility.js +3 -0
  289. package/dist/utilities/array/array.utility.js.map +1 -1
  290. package/dist/utilities/cidr/cidr.utility.d.ts +3 -0
  291. package/dist/utilities/cidr/cidr.utility.js +3 -0
  292. package/dist/utilities/cidr/cidr.utility.js.map +1 -1
  293. package/dist/utilities/node/node.utility.d.ts +7 -0
  294. package/dist/utilities/node/node.utility.js +25 -0
  295. package/dist/utilities/node/node.utility.js.map +1 -0
  296. package/dist/utilities/object/object.utility.d.ts +6 -0
  297. package/dist/utilities/object/object.utility.js +36 -0
  298. package/dist/utilities/object/object.utility.js.map +1 -1
  299. package/dist/utilities/test-helpers/test-classes.d.ts +84 -0
  300. package/dist/utilities/test-helpers/test-classes.js +103 -0
  301. package/dist/utilities/test-helpers/test-classes.js.map +1 -0
  302. package/dist/utilities/test-helpers/test-models.d.ts +47 -0
  303. package/dist/utilities/test-helpers/test-models.js +230 -0
  304. package/dist/utilities/test-helpers/test-models.js.map +1 -0
  305. package/dist/utilities/test-helpers/test-overlays.d.ts +13 -0
  306. package/dist/utilities/test-helpers/test-overlays.js +56 -0
  307. package/dist/utilities/test-helpers/test-overlays.js.map +1 -0
  308. package/dist/utilities/test-helpers/test-resources.d.ts +31 -0
  309. package/dist/utilities/test-helpers/test-resources.js +171 -0
  310. package/dist/utilities/test-helpers/test-resources.js.map +1 -0
  311. package/dist/utilities/validation/validation.utility.d.ts +34 -3
  312. package/dist/utilities/validation/validation.utility.js +124 -2
  313. package/dist/utilities/validation/validation.utility.js.map +1 -1
  314. package/package.json +7 -7
  315. package/dist/events/error.event.d.ts +0 -35
  316. package/dist/events/error.event.js +0 -36
  317. package/dist/events/error.event.js.map +0 -1
  318. package/dist/events/hook.event.d.ts +0 -194
  319. package/dist/events/hook.event.js +0 -195
  320. package/dist/events/hook.event.js.map +0 -1
  321. package/dist/models/app/app.interface.d.ts +0 -9
  322. package/dist/models/app/app.interface.js +0 -2
  323. package/dist/models/app/app.interface.js.map +0 -1
  324. package/dist/models/deployment/deployment.interface.d.ts +0 -9
  325. package/dist/models/deployment/deployment.interface.js +0 -2
  326. package/dist/models/deployment/deployment.interface.js.map +0 -1
  327. package/dist/models/environment/environment.interface.d.ts +0 -12
  328. package/dist/models/environment/environment.interface.js +0 -2
  329. package/dist/models/environment/environment.interface.js.map +0 -1
  330. package/dist/models/execution/execution.interface.d.ts +0 -14
  331. package/dist/models/execution/execution.interface.js +0 -2
  332. package/dist/models/execution/execution.interface.js.map +0 -1
  333. package/dist/models/image/image.interface.d.ts +0 -12
  334. package/dist/models/image/image.interface.js +0 -2
  335. package/dist/models/image/image.interface.js.map +0 -1
  336. package/dist/models/pipeline/pipeline.interface.d.ts +0 -10
  337. package/dist/models/pipeline/pipeline.interface.js +0 -2
  338. package/dist/models/pipeline/pipeline.interface.js.map +0 -1
  339. package/dist/models/region/region.interface.d.ts +0 -9
  340. package/dist/models/region/region.interface.js +0 -2
  341. package/dist/models/region/region.interface.js.map +0 -1
  342. package/dist/models/server/server.interface.d.ts +0 -9
  343. package/dist/models/server/server.interface.js +0 -2
  344. package/dist/models/server/server.interface.js.map +0 -1
  345. package/dist/models/service/service.interface.d.ts +0 -9
  346. package/dist/models/service/service.interface.js +0 -2
  347. package/dist/models/service/service.interface.js.map +0 -1
  348. package/dist/models/subnet/subnet.interface.d.ts +0 -13
  349. package/dist/models/subnet/subnet.interface.js +0 -2
  350. package/dist/models/subnet/subnet.interface.js.map +0 -1
  351. package/dist/overlays/overlay.service.d.ts +0 -17
  352. package/dist/overlays/overlay.service.js +0 -41
  353. package/dist/overlays/overlay.service.js.map +0 -1
  354. package/dist/resources/shared-resource.abstract.d.ts +0 -13
  355. package/dist/resources/shared-resource.abstract.js +0 -47
  356. package/dist/resources/shared-resource.abstract.js.map +0 -1
@@ -8,19 +8,19 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { NodeType, } from '../../../app.type.js';
11
- import { Container } from '../../../functions/container/container.js';
12
11
  import { EventSource } from '../../../decorators/event-source.decorator.js';
13
12
  import { Factory } from '../../../decorators/factory.decorator.js';
14
- import { AnchorRegistrationEvent, ModelRegistrationEvent, OverlayRegistrationEvent, } from '../../../events/registration.event.js';
15
- import { ModelDeserializedEvent, ModelSerializedEvent } from '../../../events/serialization.event.js';
13
+ import { AnchorRegistrationEvent, ModelDeserializedEvent, ModelRegistrationEvent, ModelSerializedEvent, OverlayRegistrationEvent, } from '../../../events/index.js';
14
+ import { Container } from '../../../functions/container/container.js';
16
15
  import { Dependency } from '../../../functions/dependency/dependency.js';
17
16
  import { OverlayDataRepository } from '../../../overlays/overlay-data.repository.js';
18
17
  import { ObjectUtility } from '../../../utilities/object/object.utility.js';
19
- import { EventService } from '../../event/event.service.js';
18
+ /**
19
+ * @internal
20
+ */
20
21
  export class ModelSerializationService {
21
- constructor(overlayDataRepository) {
22
- this.overlayDataRepository = overlayDataRepository;
23
- this.MODEL_DESERIALIZATION_TIMEOUT_IN_MS = 5000;
22
+ constructor() {
23
+ this.MODEL_DESERIALIZATION_TIMEOUT_IN_MS = 3000;
24
24
  this.classMapping = {};
25
25
  }
26
26
  async _deserialize(serializedOutput, freeze) {
@@ -63,21 +63,32 @@ export class ModelSerializationService {
63
63
  promiseToDeserializeModels.push(deserializeModel(context));
64
64
  }
65
65
  await Promise.all(promiseToDeserializeModels);
66
- // Deserialize all anchors.
67
- for (const a of serializedOutput.anchors) {
68
- const { className, parent } = a;
69
- const deserializationClass = this.classMapping[className];
70
- const anchor = await deserializationClass.unSynth(deserializationClass, a, deReferenceContext);
71
- seen[parent.context].addAnchor(anchor);
72
- }
73
66
  // Deserialize all overlays.
74
67
  const overlays = [];
75
68
  for (const { className, overlay } of serializedOutput.overlays) {
76
69
  const deserializationClass = this.classMapping[className];
77
- const newOverlay = await deserializationClass.unSynth(deserializationClass, overlay, deReferenceContext);
70
+ const newOverlay = await deserializationClass.unSynth(deserializationClass, { ...overlay, anchors: [] }, deReferenceContext);
78
71
  overlays.push(newOverlay);
79
72
  seen[newOverlay.getContext()] = newOverlay;
80
73
  }
74
+ // Deserialize all anchors.
75
+ const anchorParentLocationMapping = {};
76
+ for (const a of serializedOutput.anchors) {
77
+ const { anchorId, className, location, parent } = a;
78
+ const deserializationClass = this.classMapping[className];
79
+ const anchor = await deserializationClass.unSynth(deserializationClass, a, deReferenceContext);
80
+ seen[location.context].addAnchor(anchor);
81
+ anchorParentLocationMapping[[parent.context, anchorId].join(',')] = anchor;
82
+ }
83
+ // Add overlay anchors.
84
+ for (const { overlay } of serializedOutput.overlays) {
85
+ const anchors = await Promise.all(overlay.anchors.map(async (a) => {
86
+ return anchorParentLocationMapping[[a.parent.context, a.anchorId].join(',')];
87
+ }));
88
+ for (const anchor of anchors) {
89
+ overlays.find((o) => o.overlayId === overlay.overlayId)['anchors'].push(anchor);
90
+ }
91
+ }
81
92
  // Deserialize all dependencies.
82
93
  for (const d of serializedOutput.dependencies) {
83
94
  const dependency = Dependency.unSynth(seen[d.from], seen[d.to], d);
@@ -100,16 +111,15 @@ export class ModelSerializationService {
100
111
  return { overlays, root };
101
112
  }
102
113
  async deserialize(serializedOutput, { freeze = true } = {}) {
103
- const newOverlays = this.overlayDataRepository.getByProperties();
104
114
  const { overlays: oldOverlays, root } = await this._deserialize(serializedOutput, freeze);
105
115
  // Refresh the overlay data repository.
106
- await Container.get(OverlayDataRepository, {
107
- args: [true, oldOverlays, newOverlays],
108
- });
109
- EventService.getInstance().emit(new ModelDeserializedEvent());
116
+ await Container.getInstance().get(OverlayDataRepository, { args: [true, oldOverlays] });
110
117
  return root;
111
118
  }
112
119
  registerClass(className, deserializationClass) {
120
+ if (this.classMapping[className]) {
121
+ throw new Error(`Class "${className}" is already registered!`);
122
+ }
113
123
  this.classMapping[className] = deserializationClass;
114
124
  }
115
125
  async serialize(root) {
@@ -127,26 +137,44 @@ export class ModelSerializationService {
127
137
  }
128
138
  dependencies.push(d.synth());
129
139
  }
130
- if (model.NODE_TYPE === NodeType.MODEL) {
140
+ if (model.constructor.NODE_TYPE === NodeType.MODEL) {
131
141
  const context = model.getContext();
132
142
  if (!models[context]) {
133
- models[context] = { className: model.constructor.name, model: model.synth() };
143
+ models[context] = {
144
+ className: `${model.constructor.NODE_PACKAGE}/${model.constructor.name}`,
145
+ model: model.synth(),
146
+ };
134
147
  }
135
148
  for (const a of model.getAnchors()) {
136
- anchors.push({ ...a.synth(), className: a.constructor.name });
149
+ anchors.push({
150
+ ...a.synth(),
151
+ className: `${a.constructor.NODE_PACKAGE}/${a.constructor.name}`,
152
+ location: {
153
+ context: model.getContext(),
154
+ type: NodeType.MODEL,
155
+ },
156
+ });
137
157
  }
138
158
  }
139
- else if (model.NODE_TYPE === NodeType.OVERLAY) {
140
- overlays.push({ className: model.constructor.name, overlay: model.synth() });
159
+ else if (model.constructor.NODE_TYPE === NodeType.OVERLAY) {
160
+ overlays.push({
161
+ className: `${model.constructor.NODE_PACKAGE}/${model.constructor.name}`,
162
+ overlay: model.synth(),
163
+ });
141
164
  }
142
165
  }
143
- EventService.getInstance().emit(new ModelSerializedEvent());
144
166
  return { anchors, dependencies, models, overlays };
145
167
  }
146
168
  setModelDeserializationTimeout(timeoutInMs) {
147
169
  this.MODEL_DESERIALIZATION_TIMEOUT_IN_MS = timeoutInMs;
148
170
  }
149
171
  }
172
+ __decorate([
173
+ EventSource(ModelDeserializedEvent),
174
+ __metadata("design:type", Function),
175
+ __metadata("design:paramtypes", [Object, Object]),
176
+ __metadata("design:returntype", Promise)
177
+ ], ModelSerializationService.prototype, "deserialize", null);
150
178
  __decorate([
151
179
  EventSource(AnchorRegistrationEvent),
152
180
  EventSource(ModelRegistrationEvent),
@@ -155,15 +183,19 @@ __decorate([
155
183
  __metadata("design:paramtypes", [String, Object]),
156
184
  __metadata("design:returntype", void 0)
157
185
  ], ModelSerializationService.prototype, "registerClass", null);
186
+ __decorate([
187
+ EventSource(ModelSerializedEvent),
188
+ __metadata("design:type", Function),
189
+ __metadata("design:paramtypes", [Object]),
190
+ __metadata("design:returntype", Promise)
191
+ ], ModelSerializationService.prototype, "serialize", null);
192
+ /**
193
+ * @internal
194
+ */
158
195
  let ModelSerializationServiceFactory = class ModelSerializationServiceFactory {
159
- static async create(forceNew = false) {
160
- const overlayDataRepository = await Container.get(OverlayDataRepository);
196
+ static async create() {
161
197
  if (!this.instance) {
162
- this.instance = new ModelSerializationService(overlayDataRepository);
163
- }
164
- if (forceNew) {
165
- const newInstance = new ModelSerializationService(overlayDataRepository);
166
- Object.keys(this.instance).forEach((key) => (this.instance[key] = newInstance[key]));
198
+ this.instance = new ModelSerializationService();
167
199
  }
168
200
  return this.instance;
169
201
  }
@@ -1 +1 @@
1
- {"version":3,"file":"model-serialization.service.js","sourceRoot":"","sources":["../../../../src/services/serialization/model/model-serialization.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-serialization.service.js","sourceRoot":"","sources":["../../../../src/services/serialization/model/model-serialization.service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  import type { ResourceSerializedOutput } from '../../../app.type.js';
2
2
  import { ResourceDataRepository } from '../../../resources/resource-data.repository.js';
3
+ /**
4
+ * @internal
5
+ */
3
6
  export declare class ResourceSerializationService {
4
7
  private readonly resourceDataRepository;
5
8
  private RESOURCE_DESERIALIZATION_TIMEOUT_IN_MS;
@@ -13,7 +16,10 @@ export declare class ResourceSerializationService {
13
16
  serializeNewResources(): Promise<ResourceSerializedOutput>;
14
17
  setResourceDeserializationTimeout(timeoutInMs: number): void;
15
18
  }
19
+ /**
20
+ * @internal
21
+ */
16
22
  export declare class ResourceSerializationServiceFactory {
17
23
  private static instance;
18
- static create(forceNew?: boolean): Promise<ResourceSerializationService>;
24
+ static create(): Promise<ResourceSerializationService>;
19
25
  }
@@ -7,88 +7,62 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { Container } from '../../../functions/container/container.js';
11
10
  import { EventSource } from '../../../decorators/event-source.decorator.js';
12
11
  import { Factory } from '../../../decorators/factory.decorator.js';
13
- import { ResourceRegistrationEvent } from '../../../events/registration.event.js';
14
- import { ResourceDeserializedEvent, ResourceSerializedEvent } from '../../../events/serialization.event.js';
15
- import { ResourceDataRepository } from '../../../resources/resource-data.repository.js';
12
+ import { ActualResourceSerializedEvent, NewResourceSerializedEvent, ResourceDeserializedEvent, ResourceRegistrationEvent, } from '../../../events/index.js';
13
+ import { Container } from '../../../functions/container/container.js';
14
+ import { ResourceDataRepository, } from '../../../resources/resource-data.repository.js';
16
15
  import { ObjectUtility } from '../../../utilities/object/object.utility.js';
17
- import { EventService } from '../../event/event.service.js';
16
+ /**
17
+ * @internal
18
+ */
18
19
  export class ResourceSerializationService {
19
20
  constructor(resourceDataRepository) {
20
21
  this.resourceDataRepository = resourceDataRepository;
21
- this.RESOURCE_DESERIALIZATION_TIMEOUT_IN_MS = 5000;
22
+ this.RESOURCE_DESERIALIZATION_TIMEOUT_IN_MS = 3000;
22
23
  this.classMapping = {};
23
24
  }
24
25
  async _deserialize(serializedOutput, freeze) {
25
26
  const deReferencePromises = {};
26
- const parents = {};
27
27
  const seen = {};
28
- const deReferenceResource = async (resourceId) => {
29
- if (!seen[resourceId]) {
30
- if (deReferencePromises[resourceId]) {
31
- await deReferencePromises[resourceId][0];
28
+ const deReferenceResource = async (context) => {
29
+ if (!seen[context]) {
30
+ if (deReferencePromises[context]) {
31
+ await deReferencePromises[context][0];
32
32
  }
33
33
  else {
34
- deReferencePromises[resourceId] = [];
34
+ deReferencePromises[context] = [];
35
35
  const promise = new Promise((resolve, reject) => {
36
- deReferencePromises[resourceId][1] = resolve;
37
- deReferencePromises[resourceId][2] = reject;
36
+ deReferencePromises[context][1] = resolve;
37
+ deReferencePromises[context][2] = reject;
38
38
  });
39
- deReferencePromises[resourceId][0] = promise;
40
- deReferencePromises[resourceId][3] = setTimeout(() => {
41
- deReferencePromises[resourceId][2](new Error('DeReferencing resource operation timed out!'));
39
+ deReferencePromises[context][0] = promise;
40
+ deReferencePromises[context][3] = setTimeout(() => {
41
+ deReferencePromises[context][2](new Error('DeReferencing resource operation timed out!'));
42
42
  }, this.RESOURCE_DESERIALIZATION_TIMEOUT_IN_MS);
43
43
  await promise;
44
44
  }
45
45
  }
46
- return seen[resourceId];
46
+ return seen[context];
47
47
  };
48
- const deserializeResource = async (resourceId, parents, isSharedResource) => {
49
- const { className, context, resource } = isSharedResource
50
- ? serializedOutput.sharedResources[resourceId]
51
- : serializedOutput.resources[resourceId];
48
+ const deserializeResource = async (context) => {
49
+ const { className, resource } = serializedOutput.resources[context];
52
50
  const deserializationClass = this.classMapping[className];
53
- const deserializedResource = await deserializationClass.unSynth(deserializationClass, resource, parents || [], deReferenceResource);
51
+ const deserializedResource = await deserializationClass.unSynth(deserializationClass, resource, deReferenceResource);
54
52
  deserializedResource['context'] = context;
55
- seen[resourceId] = deserializedResource;
56
- if (deReferencePromises[resourceId]) {
57
- deReferencePromises[resourceId][1](true);
58
- clearTimeout(deReferencePromises[resourceId][3]);
53
+ seen[context] = deserializedResource;
54
+ if (deReferencePromises[context]) {
55
+ deReferencePromises[context][1](true);
56
+ clearTimeout(deReferencePromises[context][3]);
59
57
  }
60
58
  return deserializedResource;
61
59
  };
62
- // Re-generate resource parents from dependencies.
63
- for (const d of serializedOutput.dependencies) {
64
- const fromResourceId = d.from.split('=')[1];
65
- const toResourceId = d.to.split('=')[1];
66
- if (!parents[fromResourceId]) {
67
- parents[fromResourceId] = [];
68
- }
69
- if (!parents[toResourceId]) {
70
- parents[toResourceId] = [];
71
- }
72
- // Resources don't have other relationships than parent-child relations.
73
- if (d.relationship?.type === 'child' && !parents[fromResourceId].includes(toResourceId)) {
74
- parents[fromResourceId].push(toResourceId);
75
- }
76
- else if (d.relationship?.type === 'parent' && !parents[toResourceId].includes(fromResourceId)) {
77
- parents[toResourceId].push(fromResourceId);
78
- }
79
- }
80
60
  // Deserialize all serialized resources.
81
61
  const promiseToDeserializeResources = [];
82
- for (const resourceId in serializedOutput.resources) {
83
- promiseToDeserializeResources.push(deserializeResource(resourceId, parents[resourceId], false));
62
+ for (const context of Object.keys(serializedOutput.resources)) {
63
+ promiseToDeserializeResources.push(deserializeResource(context));
84
64
  }
85
65
  await Promise.all(promiseToDeserializeResources);
86
- // Deserialize all serialized shared-resources.
87
- const promiseToDeserializeSharedResources = [];
88
- for (const resourceId in serializedOutput.sharedResources) {
89
- promiseToDeserializeSharedResources.push(deserializeResource(resourceId, parents[resourceId], true));
90
- }
91
- await Promise.all(promiseToDeserializeSharedResources);
92
66
  if (freeze) {
93
67
  for (const resource of Object.values(seen)) {
94
68
  ObjectUtility.deepFreeze(resource);
@@ -100,42 +74,35 @@ export class ResourceSerializationService {
100
74
  const actualResources = await this._deserialize(JSON.parse(JSON.stringify(actualSerializedOutput)), false);
101
75
  const oldResources = await this._deserialize(JSON.parse(JSON.stringify(oldSerializedOutput)), true);
102
76
  // Refresh the resource data repository.
103
- await Container.get(ResourceDataRepository, {
77
+ await Container.getInstance().get(ResourceDataRepository, {
104
78
  args: [true, Object.values(actualResources), Object.values(oldResources), []],
105
79
  });
106
- EventService.getInstance().emit(new ResourceDeserializedEvent());
107
80
  }
108
81
  registerClass(className, deserializationClass) {
82
+ if (this.classMapping[className]) {
83
+ throw new Error(`Class "${className}" is already registered!`);
84
+ }
109
85
  this.classMapping[className] = deserializationClass;
110
86
  }
111
87
  async serialize(resources) {
112
88
  const dependencies = [];
113
89
  const serializedResources = {};
114
- const sharedSerializedResources = {};
115
- for (const resource of resources) {
90
+ for (const resource of resources.sort((a, b) => a.getContext().localeCompare(b.getContext()))) {
116
91
  // Skip serializing resources marked as deleted.
117
92
  if (resource.isMarkedDeleted()) {
118
93
  continue;
119
94
  }
120
- const resourceDependencies = resource.getDependencies().map((d) => d.synth());
95
+ const resourceDependencies = resource
96
+ .getDependencies()
97
+ .map((d) => d.synth())
98
+ .sort((a, b) => (a.from + a.to > b.from + b.to ? 1 : b.from + b.to > a.from + a.to ? -1 : 0));
121
99
  dependencies.push(...resourceDependencies);
122
- if (resource.NODE_TYPE === 'shared-resource') {
123
- sharedSerializedResources[resource.resourceId] = {
124
- className: resource.constructor.name,
125
- context: resource.getContext(),
126
- resource: resource.synth(),
127
- };
128
- }
129
- else {
130
- serializedResources[resource.resourceId] = {
131
- className: resource.constructor.name,
132
- context: resource.getContext(),
133
- resource: resource.synth(),
134
- };
135
- }
100
+ serializedResources[resource.getContext()] = {
101
+ className: `${resource.constructor.NODE_PACKAGE}/${resource.constructor.name}`,
102
+ resource: resource.synth(),
103
+ };
136
104
  }
137
- EventService.getInstance().emit(new ResourceSerializedEvent());
138
- return { dependencies, resources: serializedResources, sharedResources: sharedSerializedResources };
105
+ return { dependencies, resources: serializedResources };
139
106
  }
140
107
  async serializeActualResources() {
141
108
  const resources = this.resourceDataRepository.getActualResourcesByProperties();
@@ -149,22 +116,39 @@ export class ResourceSerializationService {
149
116
  this.RESOURCE_DESERIALIZATION_TIMEOUT_IN_MS = timeoutInMs;
150
117
  }
151
118
  }
119
+ __decorate([
120
+ EventSource(ResourceDeserializedEvent),
121
+ __metadata("design:type", Function),
122
+ __metadata("design:paramtypes", [Object, Object]),
123
+ __metadata("design:returntype", Promise)
124
+ ], ResourceSerializationService.prototype, "deserialize", null);
152
125
  __decorate([
153
126
  EventSource(ResourceRegistrationEvent),
154
127
  __metadata("design:type", Function),
155
128
  __metadata("design:paramtypes", [String, Object]),
156
129
  __metadata("design:returntype", void 0)
157
130
  ], ResourceSerializationService.prototype, "registerClass", null);
131
+ __decorate([
132
+ EventSource(ActualResourceSerializedEvent),
133
+ __metadata("design:type", Function),
134
+ __metadata("design:paramtypes", []),
135
+ __metadata("design:returntype", Promise)
136
+ ], ResourceSerializationService.prototype, "serializeActualResources", null);
137
+ __decorate([
138
+ EventSource(NewResourceSerializedEvent),
139
+ __metadata("design:type", Function),
140
+ __metadata("design:paramtypes", []),
141
+ __metadata("design:returntype", Promise)
142
+ ], ResourceSerializationService.prototype, "serializeNewResources", null);
143
+ /**
144
+ * @internal
145
+ */
158
146
  let ResourceSerializationServiceFactory = class ResourceSerializationServiceFactory {
159
- static async create(forceNew = false) {
160
- const resourceDataRepository = await Container.get(ResourceDataRepository);
147
+ static async create() {
148
+ const resourceDataRepository = await Container.getInstance().get(ResourceDataRepository);
161
149
  if (!this.instance) {
162
150
  this.instance = new ResourceSerializationService(resourceDataRepository);
163
151
  }
164
- if (forceNew) {
165
- const newInstance = new ResourceSerializationService(resourceDataRepository);
166
- Object.keys(this.instance).forEach((key) => (this.instance[key] = newInstance[key]));
167
- }
168
152
  return this.instance;
169
153
  }
170
154
  };
@@ -1 +1 @@
1
- {"version":3,"file":"resource-serialization.service.js","sourceRoot":"","sources":["../../../../src/services/serialization/resource/resource-serialization.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-serialization.service.js","sourceRoot":"","sources":["../../../../src/services/serialization/resource/resource-serialization.service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
1
  import type { IStateProvider } from './state-provider.interface.js';
2
+ /**
3
+ * @group Services/State Management
4
+ */
3
5
  export declare class LocalStateProvider implements IStateProvider {
4
6
  private readonly localStateDirectoryPath;
5
7
  constructor(localStateDirectoryPath: string);
@@ -1,25 +1,26 @@
1
- import { readFile, writeFile } from 'fs';
1
+ import { readFile, writeFile } from 'fs/promises';
2
2
  import { join, resolve } from 'path';
3
- import { promisify } from 'util';
4
- const readFileAsync = promisify(readFile);
5
- const writeFileAsync = promisify(writeFile);
3
+ import { TransactionError } from '../../errors/index.js';
4
+ /**
5
+ * @group Services/State Management
6
+ */
6
7
  export class LocalStateProvider {
7
8
  constructor(localStateDirectoryPath) {
8
9
  this.localStateDirectoryPath = resolve(localStateDirectoryPath);
9
10
  }
10
11
  async getState(stateFileName) {
11
12
  try {
12
- return await readFileAsync(join(this.localStateDirectoryPath, stateFileName));
13
+ return await readFile(join(this.localStateDirectoryPath, stateFileName));
13
14
  }
14
15
  catch (error) {
15
16
  if (error.code === 'ENOENT') {
16
- throw new Error('No state found!');
17
+ throw new TransactionError('No state found!');
17
18
  }
18
19
  throw error;
19
20
  }
20
21
  }
21
22
  async saveState(stateFileName, data) {
22
- await writeFileAsync(join(this.localStateDirectoryPath, stateFileName), data);
23
+ await writeFile(join(this.localStateDirectoryPath, stateFileName), data);
23
24
  }
24
25
  }
25
26
  //# sourceMappingURL=local.state-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"local.state-provider.js","sourceRoot":"","sources":["../../../src/services/state-management/local.state-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAGjC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1C,MAAM,cAAc,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;AAE5C,MAAM,OAAO,kBAAkB;IAG7B,YAAY,uBAA+B;QACzC,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,aAAqB;QAClC,IAAI,CAAC;YACH,OAAO,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,aAAa,CAAC,CAAC,CAAC;QAChF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrC,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,aAAqB,EAAE,IAAY;QACjD,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC;IAChF,CAAC;CACF"}
1
+ {"version":3,"file":"local.state-provider.js","sourceRoot":"","sources":["../../../src/services/state-management/local.state-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAG7B,YAAY,uBAA+B;QACzC,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,aAAqB;QAClC,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,aAAa,CAAC,CAAC,CAAC;QAC3E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,IAAI,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,aAAqB,EAAE,IAAY;QACjD,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;CACF"}
@@ -1,6 +1,8 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- import { ModelSerializedOutput, ResourceSerializedOutput } from '../../app.type.js';
1
+ import type { ModelSerializedOutput, ResourceSerializedOutput } from '../../app.type.js';
3
2
  import type { IStateProvider } from './state-provider.interface.js';
3
+ /**
4
+ * @group Services/State Management
5
+ */
4
6
  export declare class StateManagementService {
5
7
  private readonly stateProvider;
6
8
  constructor(stateProvider: IStateProvider);
@@ -21,7 +23,10 @@ export declare class StateManagementService {
21
23
  saveResourceState(stateFileName: string, data: ResourceSerializedOutput, userData: object): Promise<void>;
22
24
  saveState(stateFileName: string, data: Buffer): Promise<void>;
23
25
  }
26
+ /**
27
+ * @internal
28
+ */
24
29
  export declare class StateManagementServiceFactory {
25
30
  private static instance;
26
- static create(forceNew: boolean | undefined, stateProvider: IStateProvider): Promise<StateManagementService>;
31
+ static create(stateProvider?: IStateProvider): Promise<StateManagementService>;
27
32
  }
@@ -5,6 +5,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { Factory } from '../../decorators/factory.decorator.js';
8
+ import { TransactionError } from '../../errors/index.js';
9
+ /**
10
+ * @group Services/State Management
11
+ */
8
12
  export class StateManagementService {
9
13
  constructor(stateProvider) {
10
14
  this.stateProvider = stateProvider;
@@ -21,7 +25,7 @@ export class StateManagementService {
21
25
  };
22
26
  try {
23
27
  const modelState = await this.getState(stateFileName);
24
- return JSON.parse(modelState.toString(), (k, v) => (v && freeze ? Object.freeze(v) : v));
28
+ return JSON.parse(modelState.toString(), (_k, v) => (v && freeze ? Object.freeze(v) : v));
25
29
  }
26
30
  catch (error) {
27
31
  if (error.message === 'No state found!') {
@@ -37,13 +41,12 @@ export class StateManagementService {
37
41
  data: {
38
42
  dependencies: [],
39
43
  resources: {},
40
- sharedResources: {},
41
44
  },
42
45
  userData: {},
43
46
  };
44
47
  try {
45
48
  const resourceState = await this.getState(stateFileName);
46
- return JSON.parse(resourceState.toString(), (k, v) => (v && freeze ? Object.freeze(v) : v));
49
+ return JSON.parse(resourceState.toString(), (_k, v) => (v && freeze ? Object.freeze(v) : v));
47
50
  }
48
51
  catch (error) {
49
52
  if (error.message === 'No state found!') {
@@ -77,15 +80,29 @@ export class StateManagementService {
77
80
  return this.stateProvider.saveState(stateFileName, data);
78
81
  }
79
82
  }
83
+ /**
84
+ * @internal
85
+ */
80
86
  let StateManagementServiceFactory = class StateManagementServiceFactory {
81
- static async create(forceNew = false, stateProvider) {
82
- if (!this.instance || forceNew) {
87
+ static async create(stateProvider) {
88
+ if (!this.instance) {
83
89
  if (!stateProvider) {
84
- throw new Error(`Failed to create instance of ${StateManagementService.name} due to insufficient arguments!`);
90
+ throw new TransactionError(`Failed to create instance of "${StateManagementService.name}" due to insufficient arguments!`);
91
+ }
92
+ else {
93
+ this.instance = new StateManagementService(stateProvider);
94
+ return this.instance;
95
+ }
96
+ }
97
+ else {
98
+ if (!stateProvider) {
99
+ return this.instance;
100
+ }
101
+ else {
102
+ this.instance = new StateManagementService(stateProvider);
103
+ return this.instance;
85
104
  }
86
- this.instance = new StateManagementService(stateProvider);
87
105
  }
88
- return this.instance;
89
106
  }
90
107
  };
91
108
  StateManagementServiceFactory = __decorate([