@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
@@ -1,29 +1,45 @@
1
- import { getEventListenerIdentifiersFromEventIdentifier, } from '../Type/Definition/index.js';
1
+ import { getEventListenerTargetsFromEventIdentifier, } from '../Type/Definition/index.js';
2
+ import { ServiceIdentifier } from '../Type/Enum/index.js';
2
3
  class EventDispatcher {
3
- entries = new Map();
4
4
  logger;
5
+ static identifier = ServiceIdentifier.serviceEventDispatcher;
6
+ eventListenerTargets;
7
+ isSilent = true;
5
8
  constructor(logger) {
6
9
  this.logger = logger;
10
+ this.eventListenerTargets = new Map();
11
+ }
12
+ static constructFromServiceResolver(serviceResolver) {
13
+ const logger = serviceResolver.getServiceOrFail(ServiceIdentifier.logger);
14
+ return new EventDispatcher(logger);
15
+ }
16
+ setSilent(silent) {
17
+ this.isSilent = silent;
18
+ return this;
7
19
  }
8
20
  async dispatchEvent(event) {
9
- this.logger.debug(`Dispatching event of identifier ${event.getIdentifier()}.`, { event: event });
21
+ if (!this.isSilent)
22
+ this.logger.debug(`Dispatching event of identifier ${event.getIdentifier()}.`, { event: event });
10
23
  if (event.isPropagationStopped()) {
11
- this.logger.debug(`Stopped event propagation because it is already stopped.`, { event: event });
24
+ if (!this.isSilent)
25
+ this.logger.debug(`Stopped event propagation because it is already stopped.`, { event: event });
12
26
  return undefined;
13
27
  }
14
- const eventListenerIdentifiersToNotify = getEventListenerIdentifiersFromEventIdentifier(event.getIdentifier());
15
- for (let i = 0; i < eventListenerIdentifiersToNotify.length; ++i) {
16
- const eventListenerIdentifier = eventListenerIdentifiersToNotify[i];
17
- const eventListeners = this.entries.get(eventListenerIdentifier);
28
+ const eventListenerTargetsToNotify = getEventListenerTargetsFromEventIdentifier(event.getIdentifier());
29
+ for (let i = 0; i < eventListenerTargetsToNotify.length; ++i) {
30
+ const eventListenerTarget = eventListenerTargetsToNotify[i];
31
+ const eventListeners = this.eventListenerTargets.get(eventListenerTarget);
18
32
  if (eventListeners === undefined) {
19
33
  continue;
20
34
  }
21
- this.logger.debug(`Iterating over resolved event listeners of identifier ${eventListenerIdentifier}`, {
22
- event: event,
23
- });
35
+ if (!this.isSilent) {
36
+ this.logger.debug(`Iterating over resolved event listeners of identifier ${eventListenerTarget}`, {
37
+ event: event,
38
+ });
39
+ }
24
40
  for (let j = eventListeners.length - 1; j >= 0; j--) {
25
41
  try {
26
- await Promise.resolve(eventListeners[j].eventListener(event));
42
+ await Promise.resolve(eventListeners[j].eventListener.onEvent(event));
27
43
  }
28
44
  catch (e) {
29
45
  this.logger.error(`Event handler threw exception, dispatcher continues with next event listener.`, {
@@ -32,32 +48,34 @@ class EventDispatcher {
32
48
  });
33
49
  }
34
50
  if (event.isPropagationStopped()) {
35
- this.logger.debug(`Stopped event propagation as it got stopped.`, { event: event });
51
+ if (!this.isSilent)
52
+ this.logger.debug(`Stopped event propagation as it got stopped.`, { event: event });
36
53
  return undefined;
37
54
  }
38
55
  }
39
56
  }
40
- this.logger.debug(`Event got handled by all event listeners.`, { event: event });
57
+ if (!this.isSilent)
58
+ this.logger.debug(`Event got handled by all event listeners.`, { event: event });
41
59
  return undefined;
42
60
  }
43
- addListener(eventListenerIdentifier, eventListener, priority) {
61
+ addListener(eventListenerTarget, eventListener, priority) {
44
62
  if (priority === undefined) {
45
63
  priority = 0;
46
64
  }
47
- let eventListenersList;
48
- if (!this.entries.has(eventListenerIdentifier)) {
49
- eventListenersList = [];
65
+ let eventListeners;
66
+ if (!this.eventListenerTargets.has(eventListenerTarget)) {
67
+ eventListeners = [];
50
68
  }
51
69
  else {
52
- eventListenersList = this.entries.get(eventListenerIdentifier);
70
+ eventListeners = this.eventListenerTargets.get(eventListenerTarget);
53
71
  }
54
72
  // find correct index in list to add entry to
55
73
  let left = 0;
56
- let right = eventListenersList.length - 1;
74
+ let right = eventListeners.length - 1;
57
75
  let result = -1;
58
76
  while (left <= right) {
59
77
  const mid = Math.floor((left + right) / 2);
60
- if (eventListenersList[mid].priority >= priority) {
78
+ if (eventListeners[mid].priority >= priority) {
61
79
  result = mid; // Found a candidate, but keep searching in the left half
62
80
  right = mid - 1;
63
81
  }
@@ -66,32 +84,32 @@ class EventDispatcher {
66
84
  }
67
85
  }
68
86
  const insertAt = result === -1 ? left : result;
69
- eventListenersList.splice(insertAt, 0, { priority: priority, eventListener: eventListener });
70
- this.entries.set(eventListenerIdentifier, eventListenersList);
87
+ eventListeners.splice(insertAt, 0, { priority: priority, eventListener: eventListener });
88
+ this.eventListenerTargets.set(eventListenerTarget, eventListeners);
71
89
  return this;
72
90
  }
73
- removeListener(eventListenerIdentifier, eventListener) {
74
- const eventListenersList = this.entries.get(eventListenerIdentifier);
75
- if (!eventListenersList) {
91
+ removeListener(eventListenerTarget, eventListener) {
92
+ const eventListeners = this.eventListenerTargets.get(eventListenerTarget);
93
+ if (!eventListeners) {
76
94
  return this;
77
95
  }
78
- for (let i = 0; i < eventListenersList.length; ++i) {
79
- if (eventListenersList[i].eventListener === eventListener) {
80
- eventListenersList.splice(i, 1);
96
+ for (let i = 0; i < eventListeners.length; ++i) {
97
+ if (eventListeners[i].eventListener === eventListener) {
98
+ eventListeners.splice(i, 1);
81
99
  break;
82
100
  }
83
101
  }
84
- if (eventListenersList.length === 0) {
85
- this.entries.delete(eventListenerIdentifier);
102
+ if (eventListeners.length === 0) {
103
+ this.eventListenerTargets.delete(eventListenerTarget);
86
104
  }
87
105
  return this;
88
106
  }
89
- getListeners(eventListenerIdentifier) {
90
- const entries = this.entries.get(eventListenerIdentifier);
91
- return entries ? entries.map((entry) => entry.eventListener) : [];
107
+ getListeners(eventListenerTarget) {
108
+ const eventListeners = this.eventListenerTargets.get(eventListenerTarget);
109
+ return eventListeners ? eventListeners.map((entry) => entry.eventListener) : [];
92
110
  }
93
- hasListeners(eventListenerIdentifier) {
94
- return this.entries.has(eventListenerIdentifier);
111
+ hasListeners(eventListenerTarget) {
112
+ return this.eventListenerTargets.has(eventListenerTarget);
95
113
  }
96
114
  }
97
115
  export { EventDispatcher };
@@ -1 +1 @@
1
- {"version":3,"file":"EventDispatcher.js","sourceRoot":"","sources":["../../../src/Service/EventDispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventDispatcher.js","sourceRoot":"","sources":["../../../src/Service/EventDispatcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,208 @@
1
+ import { EmberNexusError, NetworkError, ParseError, Response401UnauthorizedError, Response403ForbiddenError, Response404NotFoundError, Response429TooManyRequestsError, ResponseError, } from '../Error/index.js';
2
+ import { validateUuidFromString } from '../Type/Definition/index.js';
3
+ import { HttpRequestMethod, ServiceIdentifier } from '../Type/Enum/index.js';
4
+ /**
5
+ * Collection of different fetch helper methods.
6
+ */
7
+ class FetchHelper {
8
+ logger;
9
+ apiConfiguration;
10
+ static identifier = ServiceIdentifier.serviceFetchHelper;
11
+ constructor(logger, apiConfiguration) {
12
+ this.logger = logger;
13
+ this.apiConfiguration = apiConfiguration;
14
+ }
15
+ static constructFromServiceResolver(serviceResolver) {
16
+ const logger = serviceResolver.getServiceOrFail(ServiceIdentifier.logger);
17
+ const apiConfiguration = serviceResolver.getServiceOrFail(ServiceIdentifier.serviceApiConfiguration);
18
+ return new FetchHelper(logger, apiConfiguration);
19
+ }
20
+ rethrowErrorAsNetworkError(error) {
21
+ if (error instanceof EmberNexusError) {
22
+ throw error;
23
+ }
24
+ throw new NetworkError('Network error occurred during fetch.', error);
25
+ }
26
+ logAndThrowError(error) {
27
+ const err = error instanceof Error ? error : new Error(String(error));
28
+ this.logger.error(err.message, err);
29
+ throw err;
30
+ }
31
+ async parseJsonResponse(response) {
32
+ const contentType = response.headers.get('Content-Type');
33
+ if (!contentType) {
34
+ return Promise.reject(new ParseError('Response does not contain a Content-Type header.'));
35
+ }
36
+ if (!contentType.includes('application/json') && !contentType.includes('application/problem+json')) {
37
+ return Promise.reject(new ParseError(`Unexpected Content-Type: "${contentType}". Expected JSON-compatible format.`));
38
+ }
39
+ const data = await response.json().catch((err) => {
40
+ throw new ParseError(`Failed to parse response body as JSON: ${err}`);
41
+ });
42
+ if (!response.ok) {
43
+ throw this.createResponseErrorFromBadResponse(response, data);
44
+ }
45
+ return data;
46
+ }
47
+ async parseEmptyResponse(response) {
48
+ if (response.ok && response.status === 204) {
49
+ return;
50
+ }
51
+ const contentType = response.headers.get('Content-Type');
52
+ if (contentType === null) {
53
+ throw new ParseError('Response does not contain content type header.');
54
+ }
55
+ if (!contentType.includes('application/problem+json')) {
56
+ throw new ParseError("Unable to parse response as content type is not 'application/problem+json'.");
57
+ }
58
+ const data = await response.json().catch((err) => {
59
+ throw new ParseError(`Failed to parse response body as JSON: ${err}`);
60
+ });
61
+ throw this.createResponseErrorFromBadResponse(response, data);
62
+ }
63
+ parseLocationResponse(response) {
64
+ if (response.ok && (response.status === 201 || response.status === 204)) {
65
+ if (response.headers.has('Location')) {
66
+ const location = response.headers.get('Location');
67
+ const rawUuid = location.split('/').at(-1);
68
+ return Promise.resolve(validateUuidFromString(rawUuid));
69
+ }
70
+ }
71
+ const contentType = response.headers.get('Content-Type');
72
+ if (contentType === null) {
73
+ return Promise.reject(new ParseError('Response does not contain content type header.'));
74
+ }
75
+ if (!contentType.includes('application/problem+json')) {
76
+ return Promise.reject(new ParseError("Unable to parse response as content type is not 'application/problem+json'."));
77
+ }
78
+ return response
79
+ .json()
80
+ .catch((err) => {
81
+ throw new ParseError(`Failed to parse response body as JSON: ${err}`);
82
+ })
83
+ .then((data) => {
84
+ throw this.createResponseErrorFromBadResponse(response, data);
85
+ });
86
+ }
87
+ createResponseErrorFromBadResponse(response, data) {
88
+ let errorInstance = null;
89
+ if (response.status === 401) {
90
+ errorInstance = new Response401UnauthorizedError('Server returned 401 unauthorized.');
91
+ }
92
+ if (response.status === 403) {
93
+ errorInstance = new Response403ForbiddenError('Server returned 403 forbidden.');
94
+ }
95
+ if (response.status === 404) {
96
+ errorInstance = new Response404NotFoundError('Server returned 404 not found.');
97
+ }
98
+ if (response.status === 429) {
99
+ errorInstance = new Response429TooManyRequestsError('Server returned 429 too many requests.');
100
+ }
101
+ if (errorInstance === null)
102
+ errorInstance = new ResponseError('Generic response error.');
103
+ if ('type' in data) {
104
+ errorInstance.setType(String(data.type));
105
+ }
106
+ if ('title' in data) {
107
+ errorInstance.setTitle(String(data.title));
108
+ }
109
+ if ('detail' in data) {
110
+ errorInstance.setDetail(String(data.detail));
111
+ }
112
+ if ('status' in data && errorInstance.getStatus() === null) {
113
+ errorInstance.setStatus(Number(data.status));
114
+ }
115
+ return errorInstance;
116
+ }
117
+ addAuthorizationHeader(headers) {
118
+ if (this.apiConfiguration.hasToken()) {
119
+ // eslint-disable-next-line dot-notation
120
+ headers['Authorization'] = `Bearer ${this.apiConfiguration.getToken()}`;
121
+ }
122
+ }
123
+ addAcceptJsonAndProblemJsonHeader(headers) {
124
+ // eslint-disable-next-line dot-notation
125
+ headers['Accept'] = 'application/json, application/problem+json';
126
+ }
127
+ addIfNoneMatchHeader(headers, etag) {
128
+ headers['If-None-Match'] = etag;
129
+ }
130
+ addContentTypeJsonHeader(headers) {
131
+ headers['Content-Type'] = 'application/json';
132
+ }
133
+ getDefaultGetOptions(etag) {
134
+ const headers = {};
135
+ this.addAuthorizationHeader(headers);
136
+ this.addAcceptJsonAndProblemJsonHeader(headers);
137
+ if (etag !== undefined) {
138
+ this.addIfNoneMatchHeader(headers, etag);
139
+ }
140
+ return {
141
+ method: HttpRequestMethod.GET,
142
+ headers: headers,
143
+ redirect: 'follow',
144
+ referrerPolicy: 'no-referrer',
145
+ cache: 'no-store',
146
+ };
147
+ }
148
+ getDefaultDeleteOptions() {
149
+ const headers = {};
150
+ this.addAuthorizationHeader(headers);
151
+ this.addAcceptJsonAndProblemJsonHeader(headers);
152
+ return {
153
+ method: HttpRequestMethod.DELETE,
154
+ headers: headers,
155
+ redirect: 'follow',
156
+ referrerPolicy: 'no-referrer',
157
+ };
158
+ }
159
+ getDefaultPostOptions(body) {
160
+ const headers = {};
161
+ this.addAuthorizationHeader(headers);
162
+ this.addAcceptJsonAndProblemJsonHeader(headers);
163
+ this.addContentTypeJsonHeader(headers);
164
+ return {
165
+ method: HttpRequestMethod.POST,
166
+ headers: headers,
167
+ redirect: 'follow',
168
+ referrerPolicy: 'no-referrer',
169
+ body: body,
170
+ };
171
+ }
172
+ getDefaultPatchOptions(body) {
173
+ const headers = {};
174
+ this.addAuthorizationHeader(headers);
175
+ this.addAcceptJsonAndProblemJsonHeader(headers);
176
+ this.addContentTypeJsonHeader(headers);
177
+ return {
178
+ method: HttpRequestMethod.PATCH,
179
+ headers: headers,
180
+ redirect: 'follow',
181
+ referrerPolicy: 'no-referrer',
182
+ body: body,
183
+ };
184
+ }
185
+ getDefaultPutOptions(body) {
186
+ const headers = {};
187
+ this.addAuthorizationHeader(headers);
188
+ this.addAcceptJsonAndProblemJsonHeader(headers);
189
+ this.addContentTypeJsonHeader(headers);
190
+ return {
191
+ method: HttpRequestMethod.PUT,
192
+ headers: headers,
193
+ redirect: 'follow',
194
+ referrerPolicy: 'no-referrer',
195
+ body: body,
196
+ };
197
+ }
198
+ buildUrl(url) {
199
+ return `${this.apiConfiguration.getApiHost()}${url}`;
200
+ }
201
+ runWrappedFetch(url, init) {
202
+ url = `${this.apiConfiguration.getApiHost()}${url}`;
203
+ this.logger.debug(`Executing HTTP ${init?.method ?? '-'} request against url ${url} .`);
204
+ return fetch(url, init);
205
+ }
206
+ }
207
+ export { FetchHelper };
208
+ //# sourceMappingURL=FetchHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FetchHelper.js","sourceRoot":"","sources":["../../../src/Service/FetchHelper.ts"],"names":[],"mappings":"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"}
@@ -2,20 +2,26 @@ class ServiceResolver {
2
2
  services = new Map();
3
3
  constructor() { }
4
4
  hasService(serviceIdentifier) {
5
- return this.services.has(serviceIdentifier);
5
+ return this.services.has(String(serviceIdentifier));
6
6
  }
7
7
  getService(serviceIdentifier) {
8
- if (!this.hasService(serviceIdentifier)) {
8
+ if (!this.hasService(String(serviceIdentifier))) {
9
9
  return null;
10
10
  }
11
- return this.services.get(serviceIdentifier);
11
+ return this.services.get(String(serviceIdentifier));
12
+ }
13
+ getServiceOrFail(serviceIdentifier) {
14
+ if (!this.hasService(String(serviceIdentifier))) {
15
+ throw new Error(`Requested service with identifier ${String(serviceIdentifier)} could not be resolved.`);
16
+ }
17
+ return this.services.get(String(serviceIdentifier));
12
18
  }
13
19
  setService(serviceIdentifier, service) {
14
- this.services.set(serviceIdentifier, service);
20
+ this.services.set(String(serviceIdentifier), service);
15
21
  return this;
16
22
  }
17
23
  deleteService(serviceIdentifier) {
18
- this.services.delete(serviceIdentifier);
24
+ this.services.delete(String(serviceIdentifier));
19
25
  return this;
20
26
  }
21
27
  getServiceIdentifiers() {
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceResolver.js","sourceRoot":"","sources":["../../../src/Service/ServiceResolver.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe;IACF,QAAQ,GAAoC,IAAI,GAAG,EAAE,CAAC;IAEvE,gBAAe,CAAC;IAEhB,UAAU,CAAC,iBAAoC;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC9C,CAAC;IAED,UAAU,CAAC,iBAAoC;QAC7C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC9C,CAAC;IAED,UAAU,CAAC,iBAAoC,EAAE,OAAgB;QAC/D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,iBAAoC;QAChD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qBAAqB;QACnB,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,aAAa;QACX,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"ServiceResolver.js","sourceRoot":"","sources":["../../../src/Service/ServiceResolver.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe;IACF,QAAQ,GAAoC,IAAI,GAAG,EAAE,CAAC;IAEvE,gBAAe,CAAC;IAEhB,UAAU,CAAC,iBAAoC;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,UAAU,CAAc,iBAAoC;QAC1D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAM,CAAC;IAC3D,CAAC;IAED,gBAAgB,CAAc,iBAAoC;QAChE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;QAC3G,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAM,CAAC;IAC3D,CAAC;IAED,UAAU,CAAC,iBAAoC,EAAE,OAAgB;QAC/D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,iBAAoC;QAChD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qBAAqB;QACnB,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,aAAa;QACX,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { validateTokenFromString } from '../Type/Definition/index.js';
2
+ import { ServiceIdentifier } from '../Type/Enum/index.js';
3
+ /**
4
+ * Class which helps to parse tokens.
5
+ */
6
+ class TokenParser {
7
+ static identifier = ServiceIdentifier.serviceTokenParser;
8
+ constructor() { }
9
+ static constructFromServiceResolver() {
10
+ return new TokenParser();
11
+ }
12
+ rawTokenToToken(token) {
13
+ if (!('type' in token)) {
14
+ throw new Error("Raw token must contain property 'type' in order to be parsed to a token.");
15
+ }
16
+ const type = String(token.type);
17
+ if (type !== '_TokenResponse') {
18
+ throw new Error("Type must be '_TokenResponse' in order to be parsed to a token.");
19
+ }
20
+ if (!('token' in token)) {
21
+ throw new Error("Raw token must contain property 'token' in order to be parsed to a token.");
22
+ }
23
+ return validateTokenFromString(String(token.token));
24
+ }
25
+ }
26
+ export { TokenParser };
27
+ //# sourceMappingURL=TokenParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenParser.js","sourceRoot":"","sources":["../../../src/Service/TokenParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW;IACf,MAAM,CAAC,UAAU,GAAsB,iBAAiB,CAAC,kBAAkB,CAAC;IAC5E,gBAAe,CAAC;IAEhB,MAAM,CAAC,4BAA4B;QACjC,OAAO,IAAI,WAAW,EAAE,CAAC;IAC3B,CAAC;IACD,eAAe,CAAC,KAAa;QAC3B,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACrF,CAAC;QAED,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;QAC/F,CAAC;QACD,OAAO,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACtD,CAAC;;AAGH,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -1,4 +1,10 @@
1
+ export * from './ApiConfiguration.js';
2
+ export * from './ApiWrapper.js';
3
+ export * from './CollectionParser.js';
4
+ export * from './ElementParser.js';
1
5
  export * from './EventDispatcher.js';
6
+ export * from './FetchHelper.js';
2
7
  export * from './Logger.js';
3
8
  export * from './ServiceResolver.js';
9
+ export * from './TokenParser.js';
4
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Service/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Service/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collection.js","sourceRoot":"","sources":["../../../../src/Type/Definition/Collection.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Data.js","sourceRoot":"","sources":["../../../../src/Type/Definition/Data.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Element.js","sourceRoot":"","sources":["../../../../src/Type/Definition/Element.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ElementCollection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ElementCollection.js","sourceRoot":"","sources":["../../../../src/Type/Definition/ElementCollection.ts"],"names":[],"mappings":""}
@@ -1,10 +1,8 @@
1
1
  class Event {
2
2
  identifier;
3
3
  stopped = false;
4
- context;
5
- constructor(identifier, context = {}) {
4
+ constructor(identifier) {
6
5
  this.identifier = identifier;
7
- this.context = context;
8
6
  }
9
7
  getIdentifier() {
10
8
  return this.identifier;
@@ -16,31 +14,6 @@ class Event {
16
14
  this.stopped = true;
17
15
  return this;
18
16
  }
19
- getContextValue(key) {
20
- return this.context[key];
21
- }
22
- setContextValue(key, value) {
23
- this.context[key] = value;
24
- return this;
25
- }
26
- hasContextValue(key) {
27
- return Object.prototype.hasOwnProperty.call(this.context, key);
28
- }
29
- clearContextValue(key) {
30
- delete this.context[key];
31
- return this;
32
- }
33
- getContext() {
34
- return { ...this.context };
35
- }
36
- setContext(context) {
37
- this.context = context;
38
- return this;
39
- }
40
- clearContext() {
41
- this.context = {};
42
- return this;
43
- }
44
17
  }
45
18
  export { Event };
46
19
  //# sourceMappingURL=Event.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Event.js","sourceRoot":"","sources":["../../../../src/Type/Definition/Event.ts"],"names":[],"mappings":"AAiBA,MAAM,KAAK;IACQ,UAAU,CAAkB;IACrC,OAAO,GAAY,KAAK,CAAC;IACzB,OAAO,CAA0B;IAEzC,YAAY,UAA2B,EAAE,UAAmC,EAAE;QAC5E,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,eAAe;QACb,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,GAAW;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,eAAe,CAAC,GAAW,EAAE,KAAc;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,GAAW;QACzB,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,iBAAiB,CAAC,GAAW;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU;QACR,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,UAAU,CAAC,OAAgC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,OAAO,EAAkB,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"Event.js","sourceRoot":"","sources":["../../../../src/Type/Definition/Event.ts"],"names":[],"mappings":"AASA,MAAe,KAAK;IACD,UAAU,CAAkB;IACrC,OAAO,GAAY,KAAK,CAAC;IAEjC,YAAsB,UAA2B;QAC/C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,eAAe;QACb,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,OAAO,EAAE,KAAK,EAAkB,CAAC"}
@@ -6,5 +6,5 @@ function validateEventIdentifierFromString(eventIdentifier) {
6
6
  }
7
7
  return eventIdentifier;
8
8
  }
9
- export { validateEventIdentifierFromString, eventIdentifierRegex };
9
+ export { eventIdentifierRegex, validateEventIdentifierFromString };
10
10
  //# sourceMappingURL=EventIdentifier.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventIdentifier.js","sourceRoot":"","sources":["../../../../src/Type/Definition/EventIdentifier.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAOlD,MAAM,oBAAoB,GAAG,2CAA2C,CAAC;AAEzE,SAAS,iCAAiC,CAAC,eAAuB;IAChE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,UAAU,CAAC,kDAAkD,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,eAAkC,CAAC;AAC5C,CAAC;AAED,OAAO,EAAmB,iCAAiC,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"EventIdentifier.js","sourceRoot":"","sources":["../../../../src/Type/Definition/EventIdentifier.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAOlD,MAAM,oBAAoB,GAAG,2CAA2C,CAAC;AAEzE,SAAS,iCAAiC,CAAC,eAAuB;IAChE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,UAAU,CAAC,kDAAkD,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,eAAkC,CAAC;AAC5C,CAAC;AAED,OAAO,EAAmB,oBAAoB,EAAE,iCAAiC,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { ParseError } from '../../Error/index.js';
2
+ const eventListenerTargetRegex = /^(?:([a-z][a-z0-9-]*)(\.([a-z][a-z0-9-]*))*|\*|([a-z][a-z0-9-]*)(\.([a-z][a-z0-9-]*))*(\.\*))$/;
3
+ function validateEventListenerTargetFromString(eventListenerIdentifier) {
4
+ if (!eventListenerTargetRegex.test(eventListenerIdentifier)) {
5
+ throw new ParseError('Passed variable is not a valid event listener target.');
6
+ }
7
+ return eventListenerIdentifier;
8
+ }
9
+ function getEventListenerTargetsFromEventIdentifier(eventIdentifier) {
10
+ const parts = eventIdentifier.split('.');
11
+ const eventListenerTargets = [];
12
+ eventListenerTargets.push(validateEventListenerTargetFromString(eventIdentifier));
13
+ for (let i = parts.length - 1; i > 0; i--) {
14
+ eventListenerTargets.push(validateEventListenerTargetFromString(parts.slice(0, i).join('.') + '.*'));
15
+ }
16
+ eventListenerTargets.push(validateEventListenerTargetFromString('*'));
17
+ return eventListenerTargets;
18
+ }
19
+ export { eventListenerTargetRegex, getEventListenerTargetsFromEventIdentifier, validateEventListenerTargetFromString, };
20
+ //# sourceMappingURL=EventListenerTarget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventListenerTarget.js","sourceRoot":"","sources":["../../../../src/Type/Definition/EventListenerTarget.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAOlD,MAAM,wBAAwB,GAC5B,gGAAgG,CAAC;AAEnG,SAAS,qCAAqC,CAAC,uBAA+B;IAC5E,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,UAAU,CAAC,uDAAuD,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,uBAA8C,CAAC;AACxD,CAAC;AAED,SAAS,0CAA0C,CAAC,eAAgC;IAClF,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,oBAAoB,GAA0B,EAAE,CAAC;IACvD,oBAAoB,CAAC,IAAI,CAAC,qCAAqC,CAAC,eAAe,CAAC,CAAC,CAAC;IAClF,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,oBAAoB,CAAC,IAAI,CAAC,qCAAqC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACvG,CAAC;IACD,oBAAoB,CAAC,IAAI,CAAC,qCAAqC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtE,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,OAAO,EAEL,wBAAwB,EACxB,0CAA0C,EAC1C,qCAAqC,GACtC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=InstanceConfiguration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InstanceConfiguration.js","sourceRoot":"","sources":["../../../../src/Type/Definition/InstanceConfiguration.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Node.js","sourceRoot":"","sources":["../../../../src/Type/Definition/Node.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=NodeWithOptionalId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeWithOptionalId.js","sourceRoot":"","sources":["../../../../src/Type/Definition/NodeWithOptionalId.ts"],"names":[],"mappings":""}