@ember-nexus/app-core 0.0.1 → 0.0.2

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 (280) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/LICENSE +1 -1
  3. package/dist/browser/index.js +1 -1
  4. package/dist/browser/index.js.map +1 -1
  5. package/dist/esm/BrowserEvent/GetServiceResolverEvent.js +2 -2
  6. package/dist/esm/BrowserEvent/GetServiceResolverEvent.js.map +1 -1
  7. package/dist/esm/BrowserEventListener/index.js +3 -0
  8. package/dist/esm/BrowserEventListener/index.js.map +1 -0
  9. package/dist/esm/Cache/Cache.js +55 -0
  10. package/dist/esm/Cache/Cache.js.map +1 -0
  11. package/dist/esm/Cache/CacheEntry.js +2 -0
  12. package/dist/esm/Cache/CacheEntry.js.map +1 -0
  13. package/dist/esm/Cache/ElementCache.js +29 -0
  14. package/dist/esm/Cache/ElementCache.js.map +1 -0
  15. package/dist/esm/Cache/ElementChildrenCache.js +20 -0
  16. package/dist/esm/Cache/ElementChildrenCache.js.map +1 -0
  17. package/dist/esm/Cache/ElementParentsCache.js +20 -0
  18. package/dist/esm/Cache/ElementParentsCache.js.map +1 -0
  19. package/dist/esm/Cache/ElementRelatedCache.js +20 -0
  20. package/dist/esm/Cache/ElementRelatedCache.js.map +1 -0
  21. package/dist/esm/Cache/IndexCache.js +20 -0
  22. package/dist/esm/Cache/IndexCache.js.map +1 -0
  23. package/dist/esm/Cache/index.js +8 -0
  24. package/dist/esm/Cache/index.js.map +1 -0
  25. package/dist/esm/Endpoint/Element/DeleteElementEndpoint.js +34 -0
  26. package/dist/esm/Endpoint/Element/DeleteElementEndpoint.js.map +1 -0
  27. package/dist/esm/Endpoint/Element/GetElementChildrenEndpoint.js +49 -0
  28. package/dist/esm/Endpoint/Element/GetElementChildrenEndpoint.js.map +1 -0
  29. package/dist/esm/Endpoint/Element/GetElementEndpoint.js +41 -0
  30. package/dist/esm/Endpoint/Element/GetElementEndpoint.js.map +1 -0
  31. package/dist/esm/Endpoint/Element/GetElementParentsEndpoint.js +51 -0
  32. package/dist/esm/Endpoint/Element/GetElementParentsEndpoint.js.map +1 -0
  33. package/dist/esm/Endpoint/Element/GetElementRelatedEndpoint.js +51 -0
  34. package/dist/esm/Endpoint/Element/GetElementRelatedEndpoint.js.map +1 -0
  35. package/dist/esm/Endpoint/Element/GetIndexEndpoint.js +51 -0
  36. package/dist/esm/Endpoint/Element/GetIndexEndpoint.js.map +1 -0
  37. package/dist/esm/Endpoint/Element/PatchElementEndpoint.js +34 -0
  38. package/dist/esm/Endpoint/Element/PatchElementEndpoint.js.map +1 -0
  39. package/dist/esm/Endpoint/Element/PostElementEndpoint.js +35 -0
  40. package/dist/esm/Endpoint/Element/PostElementEndpoint.js.map +1 -0
  41. package/dist/esm/Endpoint/Element/PostIndexEndpoint.js +35 -0
  42. package/dist/esm/Endpoint/Element/PostIndexEndpoint.js.map +1 -0
  43. package/dist/esm/Endpoint/Element/PutElementEndpoint.js +34 -0
  44. package/dist/esm/Endpoint/Element/PutElementEndpoint.js.map +1 -0
  45. package/dist/esm/Endpoint/Element/index.js +11 -0
  46. package/dist/esm/Endpoint/Element/index.js.map +1 -0
  47. package/dist/esm/Endpoint/File/index.js +2 -0
  48. package/dist/esm/Endpoint/File/index.js.map +1 -0
  49. package/dist/esm/Endpoint/User/DeleteTokenEndpoint.js +34 -0
  50. package/dist/esm/Endpoint/User/DeleteTokenEndpoint.js.map +1 -0
  51. package/dist/esm/Endpoint/User/GetMeEndpoint.js +42 -0
  52. package/dist/esm/Endpoint/User/GetMeEndpoint.js.map +1 -0
  53. package/dist/esm/Endpoint/User/GetTokenEndpoint.js +42 -0
  54. package/dist/esm/Endpoint/User/GetTokenEndpoint.js.map +1 -0
  55. package/dist/esm/Endpoint/User/PostChangePasswordEndpoint.js +40 -0
  56. package/dist/esm/Endpoint/User/PostChangePasswordEndpoint.js.map +1 -0
  57. package/dist/esm/Endpoint/User/PostRegisterEndpoint.js +41 -0
  58. package/dist/esm/Endpoint/User/PostRegisterEndpoint.js.map +1 -0
  59. package/dist/esm/Endpoint/User/PostTokenEndpoint.js +44 -0
  60. package/dist/esm/Endpoint/User/PostTokenEndpoint.js.map +1 -0
  61. package/dist/esm/Endpoint/User/index.js +7 -0
  62. package/dist/esm/Endpoint/User/index.js.map +1 -0
  63. package/dist/esm/Endpoint/WebDAV/index.js +2 -0
  64. package/dist/esm/Endpoint/WebDAV/index.js.map +1 -0
  65. package/dist/esm/Endpoint/index.js +5 -0
  66. package/dist/esm/Endpoint/index.js.map +1 -0
  67. package/dist/esm/Error/NetworkError.js +13 -0
  68. package/dist/esm/Error/NetworkError.js.map +1 -0
  69. package/dist/esm/Error/Response401UnauthorizedError.js +15 -0
  70. package/dist/esm/Error/Response401UnauthorizedError.js.map +1 -0
  71. package/dist/esm/Error/Response403ForbiddenError.js +15 -0
  72. package/dist/esm/Error/Response403ForbiddenError.js.map +1 -0
  73. package/dist/esm/Error/Response404NotFoundError.js +15 -0
  74. package/dist/esm/Error/Response404NotFoundError.js.map +1 -0
  75. package/dist/esm/Error/Response429TooManyRequestsError.js +15 -0
  76. package/dist/esm/Error/Response429TooManyRequestsError.js.map +1 -0
  77. package/dist/esm/Error/ResponseError.js +43 -0
  78. package/dist/esm/Error/ResponseError.js.map +1 -0
  79. package/dist/esm/Error/index.js +6 -0
  80. package/dist/esm/Error/index.js.map +1 -1
  81. package/dist/esm/Event/NormalizedValueToRawValueEvent.js +25 -0
  82. package/dist/esm/Event/NormalizedValueToRawValueEvent.js.map +1 -0
  83. package/dist/esm/Event/RawValueToNormalizedValueEvent.js +25 -0
  84. package/dist/esm/Event/RawValueToNormalizedValueEvent.js.map +1 -0
  85. package/dist/esm/Event/index.js +3 -0
  86. package/dist/esm/Event/index.js.map +1 -0
  87. package/dist/esm/EventListener/DateTimeNormalizedValueToRawValueEventListener.js +24 -0
  88. package/dist/esm/EventListener/DateTimeNormalizedValueToRawValueEventListener.js.map +1 -0
  89. package/dist/esm/EventListener/DateTimeRawValueToNormalizedValueEventListener.js +27 -0
  90. package/dist/esm/EventListener/DateTimeRawValueToNormalizedValueEventListener.js.map +1 -0
  91. package/dist/esm/EventListener/GenericNormalizedValueToRawValueEventListener.js +26 -0
  92. package/dist/esm/EventListener/GenericNormalizedValueToRawValueEventListener.js.map +1 -0
  93. package/dist/esm/EventListener/GenericRawValueToNormalizedValueEventListener.js +25 -0
  94. package/dist/esm/EventListener/GenericRawValueToNormalizedValueEventListener.js.map +1 -0
  95. package/dist/esm/EventListener/index.js +6 -0
  96. package/dist/esm/EventListener/index.js.map +1 -0
  97. package/dist/esm/EventListener/initEventListener.js +19 -0
  98. package/dist/esm/EventListener/initEventListener.js.map +1 -0
  99. package/dist/esm/Init.js +54 -16
  100. package/dist/esm/Init.js.map +1 -1
  101. package/dist/esm/Service/ApiConfiguration.js +69 -0
  102. package/dist/esm/Service/ApiConfiguration.js.map +1 -0
  103. package/dist/esm/Service/ApiWrapper.js +378 -0
  104. package/dist/esm/Service/ApiWrapper.js.map +1 -0
  105. package/dist/esm/Service/CollectionParser.js +82 -0
  106. package/dist/esm/Service/CollectionParser.js.map +1 -0
  107. package/dist/esm/Service/ElementParser.js +54 -0
  108. package/dist/esm/Service/ElementParser.js.map +1 -0
  109. package/dist/esm/Service/EventDispatcher.js +54 -36
  110. package/dist/esm/Service/EventDispatcher.js.map +1 -1
  111. package/dist/esm/Service/FetchHelper.js +208 -0
  112. package/dist/esm/Service/FetchHelper.js.map +1 -0
  113. package/dist/esm/Service/ServiceResolver.js +11 -5
  114. package/dist/esm/Service/ServiceResolver.js.map +1 -1
  115. package/dist/esm/Service/TokenParser.js +27 -0
  116. package/dist/esm/Service/TokenParser.js.map +1 -0
  117. package/dist/esm/Service/index.js +6 -0
  118. package/dist/esm/Service/index.js.map +1 -1
  119. package/dist/esm/Type/Definition/Collection.js +2 -0
  120. package/dist/esm/Type/Definition/Collection.js.map +1 -0
  121. package/dist/esm/Type/Definition/Data.js +2 -0
  122. package/dist/esm/Type/Definition/Data.js.map +1 -0
  123. package/dist/esm/Type/Definition/Element.js +2 -0
  124. package/dist/esm/Type/Definition/Element.js.map +1 -0
  125. package/dist/esm/Type/Definition/ElementCollection.js +2 -0
  126. package/dist/esm/Type/Definition/ElementCollection.js.map +1 -0
  127. package/dist/esm/Type/Definition/Event.js +1 -28
  128. package/dist/esm/Type/Definition/Event.js.map +1 -1
  129. package/dist/esm/Type/Definition/EventIdentifier.js +1 -1
  130. package/dist/esm/Type/Definition/EventIdentifier.js.map +1 -1
  131. package/dist/esm/Type/Definition/EventListenerTarget.js +20 -0
  132. package/dist/esm/Type/Definition/EventListenerTarget.js.map +1 -0
  133. package/dist/esm/Type/Definition/InstanceConfiguration.js +2 -0
  134. package/dist/esm/Type/Definition/InstanceConfiguration.js.map +1 -0
  135. package/dist/esm/Type/Definition/Node.js +2 -0
  136. package/dist/esm/Type/Definition/Node.js.map +1 -0
  137. package/dist/esm/Type/Definition/NodeWithOptionalId.js +2 -0
  138. package/dist/esm/Type/Definition/NodeWithOptionalId.js.map +1 -0
  139. package/dist/esm/Type/Definition/PriorityRegistry.js.map +1 -1
  140. package/dist/esm/Type/Definition/Registry.js.map +1 -1
  141. package/dist/esm/Type/Definition/Relation.js +2 -0
  142. package/dist/esm/Type/Definition/Relation.js.map +1 -0
  143. package/dist/esm/Type/Definition/RelationWithOptionalId.js +2 -0
  144. package/dist/esm/Type/Definition/RelationWithOptionalId.js.map +1 -0
  145. package/dist/esm/Type/Definition/RequestProblem.js +2 -0
  146. package/dist/esm/Type/Definition/RequestProblem.js.map +1 -0
  147. package/dist/esm/Type/Definition/Response/EmptyResponse.js +2 -0
  148. package/dist/esm/Type/Definition/Response/EmptyResponse.js.map +1 -0
  149. package/dist/esm/Type/Definition/Response/NotModifiedResponse.js +2 -0
  150. package/dist/esm/Type/Definition/Response/NotModifiedResponse.js.map +1 -0
  151. package/dist/esm/Type/Definition/Response/ParsedResponse.js +2 -0
  152. package/dist/esm/Type/Definition/Response/ParsedResponse.js.map +1 -0
  153. package/dist/esm/Type/Definition/Response/index.js +4 -0
  154. package/dist/esm/Type/Definition/Response/index.js.map +1 -0
  155. package/dist/esm/Type/Definition/ServiceIdentifier.js +1 -1
  156. package/dist/esm/Type/Definition/ServiceIdentifier.js.map +1 -1
  157. package/dist/esm/Type/Definition/Token.js +9 -0
  158. package/dist/esm/Type/Definition/Token.js.map +1 -0
  159. package/dist/esm/Type/Definition/UniqueUserIdentifier.js +5 -0
  160. package/dist/esm/Type/Definition/UniqueUserIdentifier.js.map +1 -0
  161. package/dist/esm/Type/Definition/Uuid.js +10 -0
  162. package/dist/esm/Type/Definition/Uuid.js.map +1 -0
  163. package/dist/esm/Type/Definition/WebSdkConfigurationInterface.js +2 -0
  164. package/dist/esm/Type/Definition/WebSdkConfigurationInterface.js.map +1 -0
  165. package/dist/esm/Type/Definition/index.js +16 -1
  166. package/dist/esm/Type/Definition/index.js.map +1 -1
  167. package/dist/esm/Type/Enum/BrowserEventIdentifier.js +6 -0
  168. package/dist/esm/Type/Enum/BrowserEventIdentifier.js.map +1 -0
  169. package/dist/esm/Type/Enum/EventIdentifier.js +2 -1
  170. package/dist/esm/Type/Enum/EventIdentifier.js.map +1 -1
  171. package/dist/esm/Type/Enum/HttpRequestMethod.js +20 -0
  172. package/dist/esm/Type/Enum/HttpRequestMethod.js.map +1 -0
  173. package/dist/esm/Type/Enum/LogLevel.js +9 -0
  174. package/dist/esm/Type/Enum/LogLevel.js.map +1 -0
  175. package/dist/esm/Type/Enum/RequestProblemCategory.js +8 -0
  176. package/dist/esm/Type/Enum/RequestProblemCategory.js.map +1 -0
  177. package/dist/esm/Type/Enum/ServiceIdentifier.js +34 -1
  178. package/dist/esm/Type/Enum/ServiceIdentifier.js.map +1 -1
  179. package/dist/esm/Type/Enum/index.js +4 -0
  180. package/dist/esm/Type/Enum/index.js.map +1 -1
  181. package/dist/esm/index.js +6 -1
  182. package/dist/esm/index.js.map +1 -1
  183. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  184. package/dist/types/BrowserEvent/GetServiceResolverEvent.d.ts +2 -2
  185. package/dist/types/BrowserEventListener/index.d.ts +2 -0
  186. package/dist/types/Cache/Cache.d.ts +21 -0
  187. package/dist/types/Cache/CacheEntry.d.ts +5 -0
  188. package/dist/types/Cache/ElementCache.d.ts +11 -0
  189. package/dist/types/Cache/ElementChildrenCache.d.ts +10 -0
  190. package/dist/types/Cache/ElementParentsCache.d.ts +10 -0
  191. package/dist/types/Cache/ElementRelatedCache.d.ts +10 -0
  192. package/dist/types/Cache/IndexCache.d.ts +10 -0
  193. package/dist/types/Cache/index.d.ts +7 -0
  194. package/dist/types/Endpoint/Element/DeleteElementEndpoint.d.ts +18 -0
  195. package/dist/types/Endpoint/Element/GetElementChildrenEndpoint.d.ts +20 -0
  196. package/dist/types/Endpoint/Element/GetElementEndpoint.d.ts +19 -0
  197. package/dist/types/Endpoint/Element/GetElementParentsEndpoint.d.ts +22 -0
  198. package/dist/types/Endpoint/Element/GetElementRelatedEndpoint.d.ts +22 -0
  199. package/dist/types/Endpoint/Element/GetIndexEndpoint.d.ts +22 -0
  200. package/dist/types/Endpoint/Element/PatchElementEndpoint.d.ts +18 -0
  201. package/dist/types/Endpoint/Element/PostElementEndpoint.d.ts +18 -0
  202. package/dist/types/Endpoint/Element/PostIndexEndpoint.d.ts +18 -0
  203. package/dist/types/Endpoint/Element/PutElementEndpoint.d.ts +18 -0
  204. package/dist/types/Endpoint/Element/index.d.ts +10 -0
  205. package/dist/types/Endpoint/File/index.d.ts +0 -0
  206. package/dist/types/Endpoint/User/DeleteTokenEndpoint.d.ts +18 -0
  207. package/dist/types/Endpoint/User/GetMeEndpoint.d.ts +19 -0
  208. package/dist/types/Endpoint/User/GetTokenEndpoint.d.ts +19 -0
  209. package/dist/types/Endpoint/User/PostChangePasswordEndpoint.d.ts +18 -0
  210. package/dist/types/Endpoint/User/PostRegisterEndpoint.d.ts +18 -0
  211. package/dist/types/Endpoint/User/PostTokenEndpoint.d.ts +19 -0
  212. package/dist/types/Endpoint/User/index.d.ts +6 -0
  213. package/dist/types/Endpoint/WebDAV/index.d.ts +0 -0
  214. package/dist/types/Endpoint/index.d.ts +2 -0
  215. package/dist/types/Error/NetworkError.d.ts +8 -0
  216. package/dist/types/Error/Response401UnauthorizedError.d.ts +10 -0
  217. package/dist/types/Error/Response403ForbiddenError.d.ts +10 -0
  218. package/dist/types/Error/Response404NotFoundError.d.ts +10 -0
  219. package/dist/types/Error/Response429TooManyRequestsError.d.ts +10 -0
  220. package/dist/types/Error/ResponseError.d.ts +20 -0
  221. package/dist/types/Error/index.d.ts +6 -0
  222. package/dist/types/Event/NormalizedValueToRawValueEvent.d.ts +12 -0
  223. package/dist/types/Event/RawValueToNormalizedValueEvent.d.ts +12 -0
  224. package/dist/types/Event/index.d.ts +2 -0
  225. package/dist/types/EventListener/DateTimeNormalizedValueToRawValueEventListener.d.ts +10 -0
  226. package/dist/types/EventListener/DateTimeRawValueToNormalizedValueEventListener.d.ts +11 -0
  227. package/dist/types/EventListener/GenericNormalizedValueToRawValueEventListener.d.ts +10 -0
  228. package/dist/types/EventListener/GenericRawValueToNormalizedValueEventListener.d.ts +10 -0
  229. package/dist/types/EventListener/index.d.ts +5 -0
  230. package/dist/types/EventListener/initEventListener.d.ts +3 -0
  231. package/dist/types/Init.d.ts +1 -2
  232. package/dist/types/Service/ApiConfiguration.d.ts +30 -0
  233. package/dist/types/Service/ApiWrapper.d.ts +242 -0
  234. package/dist/types/Service/CollectionParser.d.ts +15 -0
  235. package/dist/types/Service/ElementParser.d.ts +12 -0
  236. package/dist/types/Service/EventDispatcher.d.ts +12 -6
  237. package/dist/types/Service/FetchHelper.d.ts +34 -0
  238. package/dist/types/Service/ServiceResolver.d.ts +2 -1
  239. package/dist/types/Service/TokenParser.d.ts +12 -0
  240. package/dist/types/Service/index.d.ts +6 -0
  241. package/dist/types/Type/Definition/Action.d.ts +1 -1
  242. package/dist/types/Type/Definition/Collection.d.ts +15 -0
  243. package/dist/types/Type/Definition/Data.d.ts +2 -0
  244. package/dist/types/Type/Definition/Element.d.ts +8 -0
  245. package/dist/types/Type/Definition/ElementCollection.d.ts +14 -0
  246. package/dist/types/Type/Definition/Event.d.ts +3 -18
  247. package/dist/types/Type/Definition/EventDispatcher.d.ts +5 -5
  248. package/dist/types/Type/Definition/EventIdentifier.d.ts +2 -2
  249. package/dist/types/Type/Definition/EventListener.d.ts +3 -1
  250. package/dist/types/Type/Definition/EventListenerTarget.d.ts +10 -0
  251. package/dist/types/Type/Definition/InstanceConfiguration.d.ts +14 -0
  252. package/dist/types/Type/Definition/Node.d.ts +3 -0
  253. package/dist/types/Type/Definition/NodeWithOptionalId.d.ts +6 -0
  254. package/dist/types/Type/Definition/PriorityRegistry.d.ts +1 -1
  255. package/dist/types/Type/Definition/Registry.d.ts +1 -1
  256. package/dist/types/Type/Definition/Relation.d.ts +7 -0
  257. package/dist/types/Type/Definition/RelationWithOptionalId.d.ts +6 -0
  258. package/dist/types/Type/Definition/RequestProblem.d.ts +10 -0
  259. package/dist/types/Type/Definition/Response/EmptyResponse.d.ts +4 -0
  260. package/dist/types/Type/Definition/Response/NotModifiedResponse.d.ts +4 -0
  261. package/dist/types/Type/Definition/Response/ParsedResponse.d.ts +5 -0
  262. package/dist/types/Type/Definition/Response/index.d.ts +3 -0
  263. package/dist/types/Type/Definition/ServiceIdentifier.d.ts +2 -2
  264. package/dist/types/Type/Definition/Token.d.ts +8 -0
  265. package/dist/types/Type/Definition/UniqueUserIdentifier.d.ts +7 -0
  266. package/dist/types/Type/Definition/Uuid.d.ts +8 -0
  267. package/dist/types/Type/Definition/WebSdkConfigurationInterface.d.ts +9 -0
  268. package/dist/types/Type/Definition/index.d.ts +16 -1
  269. package/dist/types/Type/Enum/BrowserEventIdentifier.d.ts +4 -0
  270. package/dist/types/Type/Enum/EventIdentifier.d.ts +2 -1
  271. package/dist/types/Type/Enum/HttpRequestMethod.d.ts +16 -0
  272. package/dist/types/Type/Enum/LogLevel.d.ts +7 -0
  273. package/dist/types/Type/Enum/RequestProblemCategory.d.ts +6 -0
  274. package/dist/types/Type/Enum/ServiceIdentifier.d.ts +29 -2
  275. package/dist/types/Type/Enum/index.d.ts +4 -0
  276. package/dist/types/index.d.ts +6 -1
  277. package/package.json +9 -13
  278. package/dist/esm/Type/Definition/EventListenerIdentifier.js +0 -20
  279. package/dist/esm/Type/Definition/EventListenerIdentifier.js.map +0 -1
  280. package/dist/types/Type/Definition/EventListenerIdentifier.d.ts +0 -10
@@ -0,0 +1,378 @@
1
+ import { ElementCache, ElementChildrenCache, ElementParentsCache, ElementRelatedCache, IndexCache, } from '../Cache/index.js';
2
+ import { ServiceIdentifier } from '../Type/Enum/index.js';
3
+ class ApiWrapper {
4
+ getElementEndpoint;
5
+ getElementChildrenEndpoint;
6
+ getElementParentsEndpoint;
7
+ getElementRelatedEndpoint;
8
+ getIndexEndpoint;
9
+ postIndexEndpoint;
10
+ postElementEndpoint;
11
+ putElementEndpoint;
12
+ patchElementEndpoint;
13
+ deleteElementEndpoint;
14
+ postRegisterEndpoint;
15
+ postChangePasswordEndpoint;
16
+ getMeEndpoint;
17
+ postTokenEndpoint;
18
+ getTokenEndpoint;
19
+ deleteTokenEndpoint;
20
+ elementCache;
21
+ elementChildrenCache;
22
+ elementParentsCache;
23
+ elementRelatedCache;
24
+ indexCache;
25
+ static identifier = ServiceIdentifier.serviceApiWrapper;
26
+ constructor(getElementEndpoint, getElementChildrenEndpoint, getElementParentsEndpoint, getElementRelatedEndpoint, getIndexEndpoint, postIndexEndpoint, postElementEndpoint, putElementEndpoint, patchElementEndpoint, deleteElementEndpoint, postRegisterEndpoint, postChangePasswordEndpoint, getMeEndpoint, postTokenEndpoint, getTokenEndpoint, deleteTokenEndpoint, elementCache, elementChildrenCache, elementParentsCache, elementRelatedCache, indexCache) {
27
+ this.getElementEndpoint = getElementEndpoint;
28
+ this.getElementChildrenEndpoint = getElementChildrenEndpoint;
29
+ this.getElementParentsEndpoint = getElementParentsEndpoint;
30
+ this.getElementRelatedEndpoint = getElementRelatedEndpoint;
31
+ this.getIndexEndpoint = getIndexEndpoint;
32
+ this.postIndexEndpoint = postIndexEndpoint;
33
+ this.postElementEndpoint = postElementEndpoint;
34
+ this.putElementEndpoint = putElementEndpoint;
35
+ this.patchElementEndpoint = patchElementEndpoint;
36
+ this.deleteElementEndpoint = deleteElementEndpoint;
37
+ this.postRegisterEndpoint = postRegisterEndpoint;
38
+ this.postChangePasswordEndpoint = postChangePasswordEndpoint;
39
+ this.getMeEndpoint = getMeEndpoint;
40
+ this.postTokenEndpoint = postTokenEndpoint;
41
+ this.getTokenEndpoint = getTokenEndpoint;
42
+ this.deleteTokenEndpoint = deleteTokenEndpoint;
43
+ this.elementCache = elementCache;
44
+ this.elementChildrenCache = elementChildrenCache;
45
+ this.elementParentsCache = elementParentsCache;
46
+ this.elementRelatedCache = elementRelatedCache;
47
+ this.indexCache = indexCache;
48
+ }
49
+ static constructFromServiceResolver(serviceResolver) {
50
+ return new ApiWrapper(serviceResolver.getServiceOrFail(ServiceIdentifier.endpointElementGetElementEndpoint), serviceResolver.getServiceOrFail(ServiceIdentifier.endpointElementGetElementChildrenEndpoint), serviceResolver.getServiceOrFail(ServiceIdentifier.endpointElementGetElementParentsEndpoint), serviceResolver.getServiceOrFail(ServiceIdentifier.endpointElementGetElementRelatedEndpoint), serviceResolver.getServiceOrFail(ServiceIdentifier.endpointElementGetIndexEndpoint), serviceResolver.getServiceOrFail(ServiceIdentifier.endpointElementPostIndexEndpoint), serviceResolver.getServiceOrFail(ServiceIdentifier.endpointElementPostElementEndpoint), serviceResolver.getServiceOrFail(ServiceIdentifier.endpointElementPutElementEndpoint), serviceResolver.getServiceOrFail(ServiceIdentifier.endpointElementPatchElementEndpoint), serviceResolver.getServiceOrFail(ServiceIdentifier.endpointElementDeleteElementEndpoint), serviceResolver.getServiceOrFail(ServiceIdentifier.endpointUserPostRegisterEndpoint), serviceResolver.getServiceOrFail(ServiceIdentifier.endpointUserPostChangePasswordEndpoint), serviceResolver.getServiceOrFail(ServiceIdentifier.endpointUserGetMeEndpoint), serviceResolver.getServiceOrFail(ServiceIdentifier.endpointUserPostTokenEndpoint), serviceResolver.getServiceOrFail(ServiceIdentifier.endpointUserGetTokenEndpoint), serviceResolver.getServiceOrFail(ServiceIdentifier.endpointUserDeleteTokenEndpoint), serviceResolver.getServiceOrFail(ServiceIdentifier.cacheElement), serviceResolver.getServiceOrFail(ServiceIdentifier.cacheElementChildren), serviceResolver.getServiceOrFail(ServiceIdentifier.cacheElementParents), serviceResolver.getServiceOrFail(ServiceIdentifier.cacheElementRelated), serviceResolver.getServiceOrFail(ServiceIdentifier.cacheIndex));
51
+ }
52
+ /**
53
+ * Returns a node or relation by its identifier.
54
+ *
55
+ * If cached, the element is returned immediately. Otherwise, it is fetched via the API.
56
+ * The element cache is always kept in sync with the latest local state.
57
+ *
58
+ * Set the `forceLoad` flag to `true` to force an API request, bypassing the cache.
59
+ *
60
+ * @example
61
+ * ```ts
62
+ * const apiWrapper = serviceResolver.getServiceOrFail<ApiWrapper>(ApiWrapper.identifier);
63
+ * const element = await apiWrapper.getElement('56cca4fa-b270-45ca-8209-845368e7fc07');
64
+ * ```
65
+ *
66
+ * @see [Ember Nexus API: Get element endpoint](https://ember-nexus.github.io/api/#/api-endpoints/element/get-element)
67
+ */
68
+ async getElement(elementId, { forceLoad = false, } = {}) {
69
+ const cacheKey = ElementCache.createCacheKey(elementId);
70
+ const cacheEntry = this.elementCache.get(cacheKey);
71
+ if (cacheEntry && !forceLoad) {
72
+ return cacheEntry.data;
73
+ }
74
+ if (cacheEntry) {
75
+ const response = await this.getElementEndpoint.getElement(elementId, cacheEntry.etag);
76
+ if ('data' in response) {
77
+ this.elementCache.setFromParsedResponse(cacheKey, response);
78
+ return response.data;
79
+ }
80
+ this.elementCache.refresh(cacheKey);
81
+ return cacheEntry.data;
82
+ }
83
+ const parsedResponse = (await this.getElementEndpoint.getElement(elementId));
84
+ this.elementCache.setFromParsedResponse(cacheKey, parsedResponse);
85
+ return parsedResponse.data;
86
+ }
87
+ /**
88
+ * Returns all children of a parent node and all relations between the parent node and them by specifying the parent
89
+ * identifier. Data is returned as a paginated collection object.
90
+ *
91
+ * If cached, the collection is returned immediately. Otherwise, it is fetched via the API.
92
+ * The collection cache might contain outdated local state.
93
+ *
94
+ * Set the `forceLoad` flag to `true` to force an API request, bypassing the cache.
95
+ *
96
+ * @example
97
+ * ```ts
98
+ * const apiWrapper = serviceResolver.getServiceOrFail<ApiWrapper>(ApiWrapper.identifier);
99
+ * const collection = await apiWrapper.getElementChildren('56cca4fa-b270-45ca-8209-845368e7fc07');
100
+ * ```
101
+ *
102
+ * @see [Ember Nexus API: Get element children endpoint](https://ember-nexus.github.io/api/#/api-endpoints/element/get-children)
103
+ */
104
+ async getElementChildren(parentId, { page = 1, pageSize = 25, forceLoad = false, } = {}) {
105
+ const cacheKey = ElementChildrenCache.createCacheKey(parentId, page, pageSize);
106
+ const cacheEntry = this.elementChildrenCache.get(cacheKey);
107
+ if (cacheEntry && !forceLoad) {
108
+ return cacheEntry.data;
109
+ }
110
+ if (cacheEntry) {
111
+ const response = await this.getElementChildrenEndpoint.getElementChildren(parentId, page, pageSize, cacheEntry.etag);
112
+ if ('data' in response) {
113
+ this.elementChildrenCache.setFromParsedResponse(cacheKey, response);
114
+ this.elementCache.setFromCollection(response.data);
115
+ return response.data;
116
+ }
117
+ this.elementChildrenCache.refresh(cacheKey);
118
+ return cacheEntry.data;
119
+ }
120
+ const parsedResponse = (await this.getElementChildrenEndpoint.getElementChildren(parentId, page, pageSize));
121
+ this.elementChildrenCache.setFromParsedResponse(cacheKey, parsedResponse);
122
+ this.elementCache.setFromCollection(parsedResponse.data);
123
+ return parsedResponse.data;
124
+ }
125
+ /**
126
+ * Returns all parents of a child node and all relations between the child node and them by specifying the child
127
+ * identifier. Data is returned as a paginated collection object.
128
+ *
129
+ * If cached, the collection is returned immediately. Otherwise, it is fetched via the API.
130
+ * The collection cache might contain outdated local state.
131
+ *
132
+ * Set the `forceLoad` flag to `true` to force an API request, bypassing the cache.
133
+ *
134
+ * @example
135
+ * ```ts
136
+ * const apiWrapper = serviceResolver.getServiceOrFail<ApiWrapper>(ApiWrapper.identifier);
137
+ * const collection = await apiWrapper.getElementParents('56cca4fa-b270-45ca-8209-845368e7fc07');
138
+ * ```
139
+ *
140
+ * @see [Ember Nexus API: Get element parents endpoint](https://ember-nexus.github.io/api/#/api-endpoints/element/get-parents)
141
+ */
142
+ async getElementParents(childId, { page = 1, pageSize = 25, forceLoad = false, } = {}) {
143
+ const cacheKey = ElementParentsCache.createCacheKey(childId, page, pageSize);
144
+ const cacheEntry = this.elementParentsCache.get(cacheKey);
145
+ if (cacheEntry && !forceLoad) {
146
+ return cacheEntry.data;
147
+ }
148
+ if (cacheEntry) {
149
+ const response = await this.getElementParentsEndpoint.getElementParents(childId, page, pageSize, cacheEntry.etag);
150
+ if ('data' in response) {
151
+ this.elementParentsCache.setFromParsedResponse(cacheKey, response);
152
+ this.elementCache.setFromCollection(response.data);
153
+ return response.data;
154
+ }
155
+ this.elementParentsCache.refresh(cacheKey);
156
+ return cacheEntry.data;
157
+ }
158
+ const parsedResponse = (await this.getElementParentsEndpoint.getElementParents(childId, page, pageSize));
159
+ this.elementParentsCache.setFromParsedResponse(cacheKey, parsedResponse);
160
+ this.elementCache.setFromCollection(parsedResponse.data);
161
+ return parsedResponse.data;
162
+ }
163
+ /**
164
+ * Returns all related nodes of a central node and all relations between the central node and them by specifying the
165
+ * central identifier. Data is returned as a paginated collection object.
166
+ *
167
+ * If cached, the collection is returned immediately. Otherwise, it is fetched via the API.
168
+ * The collection cache might contain outdated local state.
169
+ *
170
+ * Set the `forceLoad` flag to `true` to force an API request, bypassing the cache.
171
+ *
172
+ * @example
173
+ * ```ts
174
+ * const apiWrapper = serviceResolver.getServiceOrFail<ApiWrapper>(ApiWrapper.identifier);
175
+ * const collection = await apiWrapper.getElementRelated('56cca4fa-b270-45ca-8209-845368e7fc07');
176
+ * ```
177
+ *
178
+ * @see [Ember Nexus API: Get element related endpoint](https://ember-nexus.github.io/api/#/api-endpoints/element/get-related)
179
+ */
180
+ async getElementRelated(centerId, { page = 1, pageSize = 25, forceLoad = false, } = {}) {
181
+ const cacheKey = ElementRelatedCache.createCacheKey(centerId, page, pageSize);
182
+ const cacheEntry = this.elementRelatedCache.get(cacheKey);
183
+ if (cacheEntry && !forceLoad) {
184
+ return cacheEntry.data;
185
+ }
186
+ if (cacheEntry) {
187
+ const response = await this.getElementRelatedEndpoint.getElementRelated(centerId, page, pageSize, cacheEntry.etag);
188
+ if ('data' in response) {
189
+ this.elementRelatedCache.setFromParsedResponse(cacheKey, response);
190
+ this.elementCache.setFromCollection(response.data);
191
+ return response.data;
192
+ }
193
+ this.elementRelatedCache.refresh(cacheKey);
194
+ return cacheEntry.data;
195
+ }
196
+ const parsedResponse = (await this.getElementRelatedEndpoint.getElementRelated(centerId, page, pageSize));
197
+ this.elementRelatedCache.setFromParsedResponse(cacheKey, parsedResponse);
198
+ this.elementCache.setFromCollection(parsedResponse.data);
199
+ return parsedResponse.data;
200
+ }
201
+ /**
202
+ * Returns all nodes on the root level.
203
+ * As this collection only returns nodes, no relations will be returned. Data is returned as a paginated collection
204
+ * object.
205
+ *
206
+ * If cached, the collection is returned immediately. Otherwise, it is fetched via the API.
207
+ * The collection cache might contain outdated local state.
208
+ *
209
+ * Set the `forceLoad` flag to `true` to force an API request, bypassing the cache.
210
+ *
211
+ * @example
212
+ * ```ts
213
+ * const apiWrapper = serviceResolver.getServiceOrFail<ApiWrapper>(ApiWrapper.identifier);
214
+ * const collection = await apiWrapper.getIndex();
215
+ * ```
216
+ *
217
+ * @see [Ember Nexus API: Get index endpoint](https://ember-nexus.github.io/api/#/api-endpoints/element/get-index)
218
+ */
219
+ async getIndex({ page = 1, pageSize = 25, forceLoad = false, } = {}) {
220
+ const cacheKey = IndexCache.createCacheKey(page, pageSize);
221
+ const cacheEntry = this.indexCache.get(cacheKey);
222
+ if (cacheEntry && !forceLoad) {
223
+ return cacheEntry.data;
224
+ }
225
+ if (cacheEntry) {
226
+ const response = await this.getIndexEndpoint.getIndex(page, pageSize, cacheEntry.etag);
227
+ if ('data' in response) {
228
+ this.indexCache.setFromParsedResponse(cacheKey, response);
229
+ this.elementCache.setFromCollection(response.data);
230
+ return response.data;
231
+ }
232
+ this.indexCache.refresh(cacheKey);
233
+ return cacheEntry.data;
234
+ }
235
+ const parsedResponse = (await this.getIndexEndpoint.getIndex(page, pageSize));
236
+ this.indexCache.setFromParsedResponse(cacheKey, parsedResponse);
237
+ this.elementCache.setFromCollection(parsedResponse.data);
238
+ return parsedResponse.data;
239
+ }
240
+ /**
241
+ * Creates a new node or relation.
242
+ *
243
+ * If the created element is a node, it will become part of the root level, i.e. returned by the get index endpoint.
244
+ * Relations, on the other hand, will be created between their start and end nodes.
245
+ *
246
+ * @example
247
+ * ```ts
248
+ * const apiWrapper = serviceResolver.getServiceOrFail<ApiWrapper>(ApiWrapper.identifier);
249
+ * const nodeId = await apiWrapper.postIndex({
250
+ * type: 'Data',
251
+ * data: {
252
+ * some: 'data'
253
+ * }
254
+ * });
255
+ * ```
256
+ *
257
+ * @see [Ember Nexus API: Create root level element endpoint](https://ember-nexus.github.io/api/#/api-endpoints/element/post-index)
258
+ */
259
+ async postIndex(element) {
260
+ const parsedResponse = await this.postIndexEndpoint.postIndex(element);
261
+ return parsedResponse.data;
262
+ }
263
+ /**
264
+ * Creates a new node.
265
+ *
266
+ * The created node will be saved as a child of the referenced parent node.
267
+ *
268
+ * **Note**: This endpoint can not be used to create relations, as relations can not be the child of some parent.
269
+ *
270
+ * @example
271
+ * ```ts
272
+ * const apiWrapper = serviceResolver.getServiceOrFail<ApiWrapper>(ApiWrapper.identifier);
273
+ * const nodeId = await apiWrapper.postElement(
274
+ * '3175a7a0-b510-4554-94b0-242badcf0d32',
275
+ * {
276
+ * type: 'Data',
277
+ * data: {
278
+ * some: 'data'
279
+ * }
280
+ * }
281
+ * );
282
+ * ```
283
+ *
284
+ * @see [Ember Nexus API: Create element endpoint](https://ember-nexus.github.io/api/#/api-endpoints/element/post-element)
285
+ */
286
+ async postElement(parentId, element) {
287
+ const parsedResponse = await this.postElementEndpoint.postElement(parentId, element);
288
+ return parsedResponse.data;
289
+ }
290
+ /**
291
+ * Replaces an element's data.
292
+ *
293
+ * The provided data will replace the element's existing data.
294
+ *
295
+ * @example
296
+ * ```ts
297
+ * const apiWrapper = serviceResolver.getServiceOrFail<ApiWrapper>(ApiWrapper.identifier);
298
+ * await apiWrapper.putElement(
299
+ * 'a22b1d7c-5970-4d93-8e86-f6a6f01ca172',
300
+ * {
301
+ * some: 'new data'
302
+ * }
303
+ * );
304
+ * ```
305
+ *
306
+ * @see [Ember Nexus API: Replace element endpoint](https://ember-nexus.github.io/api/#/api-endpoints/element/put-element)
307
+ */
308
+ async putElement(elementId, data) {
309
+ await this.putElementEndpoint.putElement(elementId, data);
310
+ this.elementCache.delete(ElementCache.createCacheKey(elementId));
311
+ }
312
+ /**
313
+ * Updates an element.
314
+ *
315
+ * The provided data will be appended to the element's existing data. Existing properties will be overwritten if the
316
+ * new data contains identical property keys.
317
+ *
318
+ * @example
319
+ * ```ts
320
+ * const apiWrapper = serviceResolver.getServiceOrFail<ApiWrapper>(ApiWrapper.identifier);
321
+ * await apiWrapper.patchElement(
322
+ * 'adc387a6-7f6c-49d5-a9fa-df3b5bf0c14f',
323
+ * {
324
+ * some: 'new data'
325
+ * }
326
+ * );
327
+ * ```
328
+ *
329
+ * @see [Ember Nexus API: Update element endpoint](https://ember-nexus.github.io/api/#/api-endpoints/element/patch-element)
330
+ */
331
+ async patchElement(elementId, data) {
332
+ await this.patchElementEndpoint.patchElement(elementId, data);
333
+ this.elementCache.delete(ElementCache.createCacheKey(elementId));
334
+ }
335
+ /**
336
+ * Deletes an element.
337
+ *
338
+ * @example
339
+ * ```ts
340
+ * const apiWrapper = serviceResolver.getServiceOrFail<ApiWrapper>(ApiWrapper.identifier);
341
+ * await apiWrapper.deleteElement('f15abfb5-af82-45d0-96db-27766cbfd941');
342
+ * ```
343
+ *
344
+ * @see [Ember Nexus API: Delete element endpoint](https://ember-nexus.github.io/api/#/api-endpoints/element/delete-element)
345
+ */
346
+ async deleteElement(elementId) {
347
+ await this.deleteElementEndpoint.deleteElement(elementId);
348
+ this.elementCache.delete(ElementCache.createCacheKey(elementId));
349
+ }
350
+ async postRegister(uniqueUserIdentifier, password, data = {}) {
351
+ const parsedResponse = await this.postRegisterEndpoint.postRegister(uniqueUserIdentifier, password, data);
352
+ return parsedResponse.data;
353
+ }
354
+ async postChangePassword(uniqueUserIdentifier, currentPassword, newPassword) {
355
+ await this.postChangePasswordEndpoint.postChangePassword(uniqueUserIdentifier, currentPassword, newPassword);
356
+ }
357
+ async getMe() {
358
+ const parsedResponse = await this.getMeEndpoint.getMe();
359
+ const node = parsedResponse.data;
360
+ this.elementCache.setFromDataEtag(ElementCache.createCacheKey(node.id), node);
361
+ return node;
362
+ }
363
+ async postToken(uniqueUserIdentifier, password, data = {}) {
364
+ const parsedResponse = await this.postTokenEndpoint.postToken(uniqueUserIdentifier, password, data);
365
+ return parsedResponse.data;
366
+ }
367
+ async getToken() {
368
+ const parsedResponse = await this.getTokenEndpoint.getToken();
369
+ const node = parsedResponse.data;
370
+ this.elementCache.setFromDataEtag(ElementCache.createCacheKey(node.id), node);
371
+ return node;
372
+ }
373
+ async deleteToken() {
374
+ await this.deleteTokenEndpoint.deleteToken();
375
+ }
376
+ }
377
+ export { ApiWrapper };
378
+ //# sourceMappingURL=ApiWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiWrapper.js","sourceRoot":"","sources":["../../../src/Service/ApiWrapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import { ServiceIdentifier } from '../Type/Enum/index.js';
2
+ /**
3
+ * Class which helps to parse collections.
4
+ */
5
+ class CollectionParser {
6
+ elementParser;
7
+ static identifier = ServiceIdentifier.serviceCollectionParser;
8
+ constructor(elementParser) {
9
+ this.elementParser = elementParser;
10
+ }
11
+ static constructFromServiceResolver(serviceResolver) {
12
+ const elementParser = serviceResolver.getServiceOrFail(ServiceIdentifier.serviceElementParser);
13
+ return new CollectionParser(elementParser);
14
+ }
15
+ async deserializeCollection(rawCollection) {
16
+ if (!('id' in rawCollection)) {
17
+ throw new Error("Raw collection must contain property 'id' in order to be parsed to a collection.");
18
+ }
19
+ const id = String(rawCollection.id);
20
+ if (!('totalNodes' in rawCollection)) {
21
+ throw new Error("Raw collection must contain property 'totalNodes' in order to be parsed to a collection.");
22
+ }
23
+ const totalNodes = Number(rawCollection.totalNodes);
24
+ if (!('links' in rawCollection)) {
25
+ throw new Error("Raw collection must contain property 'links' in order to be parsed to a collection.");
26
+ }
27
+ if (typeof rawCollection.links !== 'object' || rawCollection.links === null) {
28
+ throw new Error('Links property in raw collection must be of type object.');
29
+ }
30
+ const rawCollectionLinks = rawCollection.links;
31
+ if (!('first' in rawCollectionLinks)) {
32
+ throw new Error("Raw collection must contain property 'links.first' in order to be parsed to a collection.");
33
+ }
34
+ const first = String(rawCollectionLinks.first);
35
+ if (!('previous' in rawCollectionLinks)) {
36
+ throw new Error("Raw collection must contain property 'links.previous' in order to be parsed to a collection.");
37
+ }
38
+ const previous = rawCollectionLinks.previous === null ? null : String(rawCollectionLinks.previous);
39
+ if (!('next' in rawCollectionLinks)) {
40
+ throw new Error("Raw collection must contain property 'links.next' in order to be parsed to a collection.");
41
+ }
42
+ const next = rawCollectionLinks.next === null ? null : String(rawCollectionLinks.next);
43
+ if (!('last' in rawCollectionLinks)) {
44
+ throw new Error("Raw collection must contain property 'links.last' in order to be parsed to a collection.");
45
+ }
46
+ const last = String(rawCollectionLinks.last);
47
+ if (!('nodes' in rawCollection)) {
48
+ throw new Error("Raw collection must contain property 'nodes' in order to be parsed to a collection.");
49
+ }
50
+ if (!Array.isArray(rawCollection.nodes)) {
51
+ throw new Error('Nodes property in raw collection must be of type array.');
52
+ }
53
+ const nodes = [];
54
+ for (const rawNode of rawCollection.nodes) {
55
+ nodes.push((await this.elementParser.deserializeElement(rawNode)));
56
+ }
57
+ if (!('relations' in rawCollection)) {
58
+ throw new Error("Raw collection must contain property 'relations' in order to be parsed to a collection.");
59
+ }
60
+ if (!Array.isArray(rawCollection.relations)) {
61
+ throw new Error('Relations property in raw collection must be of type array.');
62
+ }
63
+ const relations = [];
64
+ for (const rawRelation of rawCollection.relations) {
65
+ relations.push((await this.elementParser.deserializeElement(rawRelation)));
66
+ }
67
+ return {
68
+ id: id,
69
+ totalNodes: totalNodes,
70
+ links: {
71
+ first: first,
72
+ previous: previous,
73
+ next: next,
74
+ last: last,
75
+ },
76
+ nodes: nodes,
77
+ relations: relations,
78
+ };
79
+ }
80
+ }
81
+ export { CollectionParser };
82
+ //# sourceMappingURL=CollectionParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollectionParser.js","sourceRoot":"","sources":["../../../src/Service/CollectionParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { RawValueToNormalizedValueEvent } from '../Event/index.js';
2
+ import { validateUuidFromString } from '../Type/Definition/index.js';
3
+ import { ServiceIdentifier } from '../Type/Enum/index.js';
4
+ class ElementParser {
5
+ eventDispatcher;
6
+ static identifier = ServiceIdentifier.serviceElementParser;
7
+ constructor(eventDispatcher) {
8
+ this.eventDispatcher = eventDispatcher;
9
+ }
10
+ static constructFromServiceResolver(serviceResolver) {
11
+ const elementDispatcher = serviceResolver.getServiceOrFail(ServiceIdentifier.serviceEventDispatcher);
12
+ return new ElementParser(elementDispatcher);
13
+ }
14
+ async deserializeElement(element) {
15
+ if (!('id' in element)) {
16
+ throw new Error("Raw element must contain property 'id' in order to be parsed to a node or relation.");
17
+ }
18
+ const id = validateUuidFromString(String(element.id));
19
+ if (!('type' in element)) {
20
+ throw new Error("Raw element must contain property 'type' in order to be parsed to a node or relation.");
21
+ }
22
+ const type = String(element.type);
23
+ if (!('data' in element)) {
24
+ throw new Error("Raw element must contain property 'data' in order to be parsed to a node or relation.");
25
+ }
26
+ const data = element.data;
27
+ for (const key in data) {
28
+ const rawValueToNormalizedValueEevent = new RawValueToNormalizedValueEvent(data[key]);
29
+ await this.eventDispatcher.dispatchEvent(rawValueToNormalizedValueEevent);
30
+ if (!rawValueToNormalizedValueEevent.isPropagationStopped()) {
31
+ throw new Error(`Unable to deserialize property "${key}".`);
32
+ }
33
+ data[key] = rawValueToNormalizedValueEevent.getNormalizedValue();
34
+ }
35
+ if ('start' in element && 'end' in element) {
36
+ const start = validateUuidFromString(String(element.start));
37
+ const end = validateUuidFromString(String(element.end));
38
+ return {
39
+ id: id,
40
+ start: start,
41
+ end: end,
42
+ type: type,
43
+ data: data,
44
+ };
45
+ }
46
+ return {
47
+ id: id,
48
+ type: type,
49
+ data: data,
50
+ };
51
+ }
52
+ }
53
+ export { ElementParser };
54
+ //# sourceMappingURL=ElementParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ElementParser.js","sourceRoot":"","sources":["../../../src/Service/ElementParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAkB,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,aAAa;IAEG;IADpB,MAAM,CAAC,UAAU,GAAsB,iBAAiB,CAAC,oBAAoB,CAAC;IAC9E,YAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAExD,MAAM,CAAC,4BAA4B,CAAC,eAAgC;QAClE,MAAM,iBAAiB,GAAG,eAAe,CAAC,gBAAgB,CACxD,iBAAiB,CAAC,sBAAsB,CACzC,CAAC;QACF,OAAO,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAAe;QACtC,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAC;QACzG,CAAC;QACD,MAAM,EAAE,GAAG,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAC;QAC3G,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAC;QAC3G,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAA+B,CAAC;QAErD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,+BAA+B,GAAG,IAAI,8BAA8B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACtF,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC;YAC1E,IAAI,CAAC,+BAA+B,CAAC,oBAAoB,EAAE,EAAE,CAAC;gBAC5D,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,IAAI,CAAC,CAAC;YAC9D,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,GAAG,+BAA+B,CAAC,kBAAkB,EAAE,CAAC;QACnE,CAAC;QAED,IAAI,OAAO,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5D,MAAM,GAAG,GAAG,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,OAAO;gBACL,EAAE,EAAE,EAAE;gBACN,KAAK,EAAE,KAAK;gBACZ,GAAG,EAAE,GAAG;gBACR,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,IAAI;aACC,CAAC;QAChB,CAAC;QACD,OAAO;YACL,EAAE,EAAE,EAAE;YACN,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;SACH,CAAC;IACZ,CAAC;;AAGH,OAAO,EAAE,aAAa,EAAE,CAAC"}