@ember-nexus/app-core 0.0.1

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 (103) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/LICENSE +21 -0
  3. package/README.md +15 -0
  4. package/dist/browser/index.js +2 -0
  5. package/dist/browser/index.js.map +1 -0
  6. package/dist/esm/BrowserEvent/GetServiceResolverEvent.js +21 -0
  7. package/dist/esm/BrowserEvent/GetServiceResolverEvent.js.map +1 -0
  8. package/dist/esm/BrowserEvent/index.js +2 -0
  9. package/dist/esm/BrowserEvent/index.js.map +1 -0
  10. package/dist/esm/Error/EmberNexusError.js +10 -0
  11. package/dist/esm/Error/EmberNexusError.js.map +1 -0
  12. package/dist/esm/Error/LogicError.js +12 -0
  13. package/dist/esm/Error/LogicError.js.map +1 -0
  14. package/dist/esm/Error/ParseError.js +12 -0
  15. package/dist/esm/Error/ParseError.js.map +1 -0
  16. package/dist/esm/Error/ValidationError.js +14 -0
  17. package/dist/esm/Error/ValidationError.js.map +1 -0
  18. package/dist/esm/Error/index.js +5 -0
  19. package/dist/esm/Error/index.js.map +1 -0
  20. package/dist/esm/Init.js +29 -0
  21. package/dist/esm/Init.js.map +1 -0
  22. package/dist/esm/Service/EventDispatcher.js +98 -0
  23. package/dist/esm/Service/EventDispatcher.js.map +1 -0
  24. package/dist/esm/Service/Logger.js +20 -0
  25. package/dist/esm/Service/Logger.js.map +1 -0
  26. package/dist/esm/Service/ServiceResolver.js +33 -0
  27. package/dist/esm/Service/ServiceResolver.js.map +1 -0
  28. package/dist/esm/Service/index.js +4 -0
  29. package/dist/esm/Service/index.js.map +1 -0
  30. package/dist/esm/Type/Definition/Action.js +2 -0
  31. package/dist/esm/Type/Definition/Action.js.map +1 -0
  32. package/dist/esm/Type/Definition/Branded.js +2 -0
  33. package/dist/esm/Type/Definition/Branded.js.map +1 -0
  34. package/dist/esm/Type/Definition/Event.js +46 -0
  35. package/dist/esm/Type/Definition/Event.js.map +1 -0
  36. package/dist/esm/Type/Definition/EventDispatcher.js +2 -0
  37. package/dist/esm/Type/Definition/EventDispatcher.js.map +1 -0
  38. package/dist/esm/Type/Definition/EventIdentifier.js +10 -0
  39. package/dist/esm/Type/Definition/EventIdentifier.js.map +1 -0
  40. package/dist/esm/Type/Definition/EventListener.js +2 -0
  41. package/dist/esm/Type/Definition/EventListener.js.map +1 -0
  42. package/dist/esm/Type/Definition/EventListenerIdentifier.js +20 -0
  43. package/dist/esm/Type/Definition/EventListenerIdentifier.js.map +1 -0
  44. package/dist/esm/Type/Definition/Logger.js +2 -0
  45. package/dist/esm/Type/Definition/Logger.js.map +1 -0
  46. package/dist/esm/Type/Definition/OptionalPromise.js +2 -0
  47. package/dist/esm/Type/Definition/OptionalPromise.js.map +1 -0
  48. package/dist/esm/Type/Definition/PriorityRegistry.js +63 -0
  49. package/dist/esm/Type/Definition/PriorityRegistry.js.map +1 -0
  50. package/dist/esm/Type/Definition/Registry.js +26 -0
  51. package/dist/esm/Type/Definition/Registry.js.map +1 -0
  52. package/dist/esm/Type/Definition/ServiceIdentifier.js +10 -0
  53. package/dist/esm/Type/Definition/ServiceIdentifier.js.map +1 -0
  54. package/dist/esm/Type/Definition/index.js +13 -0
  55. package/dist/esm/Type/Definition/index.js.map +1 -0
  56. package/dist/esm/Type/Enum/EventIdentifier.js +6 -0
  57. package/dist/esm/Type/Enum/EventIdentifier.js.map +1 -0
  58. package/dist/esm/Type/Enum/ServiceIdentifier.js +11 -0
  59. package/dist/esm/Type/Enum/ServiceIdentifier.js.map +1 -0
  60. package/dist/esm/Type/Enum/index.js +3 -0
  61. package/dist/esm/Type/Enum/index.js.map +1 -0
  62. package/dist/esm/Type/Partial/CustomEventDefaultInit.js +7 -0
  63. package/dist/esm/Type/Partial/CustomEventDefaultInit.js.map +1 -0
  64. package/dist/esm/Type/Partial/index.js +2 -0
  65. package/dist/esm/Type/Partial/index.js.map +1 -0
  66. package/dist/esm/Type/index.js +4 -0
  67. package/dist/esm/Type/index.js.map +1 -0
  68. package/dist/esm/index.js +6 -0
  69. package/dist/esm/index.js.map +1 -0
  70. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  71. package/dist/types/BrowserEvent/GetServiceResolverEvent.d.ts +12 -0
  72. package/dist/types/BrowserEvent/index.d.ts +1 -0
  73. package/dist/types/Error/EmberNexusError.d.ts +7 -0
  74. package/dist/types/Error/LogicError.d.ts +8 -0
  75. package/dist/types/Error/ParseError.d.ts +8 -0
  76. package/dist/types/Error/ValidationError.d.ts +10 -0
  77. package/dist/types/Error/index.d.ts +4 -0
  78. package/dist/types/Init.d.ts +4 -0
  79. package/dist/types/Service/EventDispatcher.d.ts +12 -0
  80. package/dist/types/Service/Logger.d.ts +11 -0
  81. package/dist/types/Service/ServiceResolver.d.ts +13 -0
  82. package/dist/types/Service/index.d.ts +3 -0
  83. package/dist/types/Type/Definition/Action.d.ts +13 -0
  84. package/dist/types/Type/Definition/Branded.d.ts +9 -0
  85. package/dist/types/Type/Definition/Event.d.ts +30 -0
  86. package/dist/types/Type/Definition/EventDispatcher.d.ts +11 -0
  87. package/dist/types/Type/Definition/EventIdentifier.d.ts +8 -0
  88. package/dist/types/Type/Definition/EventListener.d.ts +4 -0
  89. package/dist/types/Type/Definition/EventListenerIdentifier.d.ts +10 -0
  90. package/dist/types/Type/Definition/Logger.d.ts +7 -0
  91. package/dist/types/Type/Definition/OptionalPromise.d.ts +2 -0
  92. package/dist/types/Type/Definition/PriorityRegistry.d.ts +19 -0
  93. package/dist/types/Type/Definition/Registry.d.ts +16 -0
  94. package/dist/types/Type/Definition/ServiceIdentifier.d.ts +8 -0
  95. package/dist/types/Type/Definition/index.d.ts +12 -0
  96. package/dist/types/Type/Enum/EventIdentifier.d.ts +4 -0
  97. package/dist/types/Type/Enum/ServiceIdentifier.d.ts +9 -0
  98. package/dist/types/Type/Enum/index.d.ts +2 -0
  99. package/dist/types/Type/Partial/CustomEventDefaultInit.d.ts +2 -0
  100. package/dist/types/Type/Partial/index.d.ts +1 -0
  101. package/dist/types/Type/index.d.ts +3 -0
  102. package/dist/types/index.d.ts +5 -0
  103. package/package.json +93 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,13 @@
1
+ # Changelog
2
+ All notable changes to this project will be documented in this file.
3
+
4
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ## Unreleased
8
+
9
+ ## 0.0.1 - 2025-05-18
10
+ ### Added
11
+ - Initial code, copied from Ember Nexus Web SDK.
12
+ - Add service resolver.
13
+ - Add event dispatcher, inspired by Symfony.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Ember-Nexus
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,15 @@
1
+ # Ember Nexus: App Core
2
+
3
+ ![GitHub License](https://img.shields.io/github/license/ember-nexus/app-core)
4
+ [![NPM Version](https://img.shields.io/npm/v/%40ember-nexus%2Fapp-core)](https://www.npmjs.com/package/@ember-nexus/app-core)
5
+ ![NPM Downloads](https://img.shields.io/npm/dm/%40ember-nexus%2Fapp-core)
6
+ [![Discord](https://img.shields.io/discord/1135243882360221787?logo=discord&label=Discord&color=%235865f2)](https://discord.gg/qbQFBrJrRC)
7
+
8
+ The app core library provides the foundational runtime components and definitions that enable modular and extensible
9
+ plugin integration.
10
+ It is programmed in a framework-agnostic way.
11
+
12
+ ## Quick Links
13
+
14
+ - [Check out the documentation](https://ember-nexus.github.io/app-core)
15
+ - [Find us on NPM](https://www.npmjs.com/package/@ember-nexus/app-core)
@@ -0,0 +1,2 @@
1
+ var e={630:(e,t,r)=>{var n;!function(e){!function(){var t="object"==typeof globalThis?globalThis:"object"==typeof r.g?r.g:"object"==typeof self?self:"object"==typeof this?this:function sloppyModeThis(){return function functionThis(){try{return Function("return this;")()}catch(e){}}()||function indirectEvalThis(){try{return(0,eval)("(function() { return this; })()")}catch(e){}}()}(),n=makeExporter(e);function makeExporter(e,t){return function(r,n){Object.defineProperty(e,r,{configurable:!0,writable:!0,value:n}),t&&t(r,n)}}void 0!==t.Reflect&&(n=makeExporter(t.Reflect,n)),function(e,t){var r=Object.prototype.hasOwnProperty,n="function"==typeof Symbol,i=n&&void 0!==Symbol.toPrimitive?Symbol.toPrimitive:"@@toPrimitive",s=n&&void 0!==Symbol.iterator?Symbol.iterator:"@@iterator",o="function"==typeof Object.create,a={__proto__:[]}instanceof Array,l=!o&&!a,c={create:o?function(){return MakeDictionary(Object.create(null))}:a?function(){return MakeDictionary({__proto__:null})}:function(){return MakeDictionary({})},has:l?function(e,t){return r.call(e,t)}:function(e,t){return t in e},get:l?function(e,t){return r.call(e,t)?e[t]:void 0}:function(e,t){return e[t]}},h=Object.getPrototypeOf(Function),u="function"==typeof Map&&"function"==typeof Map.prototype.entries?Map:CreateMapPolyfill(),d="function"==typeof Set&&"function"==typeof Set.prototype.entries?Set:CreateSetPolyfill(),p="function"==typeof WeakMap?WeakMap:CreateWeakMapPolyfill(),f=n?Symbol.for("@reflect-metadata:registry"):void 0,g=GetOrCreateMetadataRegistry(),y=CreateMetadataProvider(g);function decorate(e,t,r,n){if(IsUndefined(r)){if(!IsArray(e))throw new TypeError;if(!IsConstructor(t))throw new TypeError;return DecorateConstructor(e,t)}if(!IsArray(e))throw new TypeError;if(!IsObject(t))throw new TypeError;if(!IsObject(n)&&!IsUndefined(n)&&!IsNull(n))throw new TypeError;return IsNull(n)&&(n=void 0),DecorateProperty(e,t,r=ToPropertyKey(r),n)}function metadata(e,t){function decorator(r,n){if(!IsObject(r))throw new TypeError;if(!IsUndefined(n)&&!IsPropertyKey(n))throw new TypeError;OrdinaryDefineOwnMetadata(e,t,r,n)}return decorator}function defineMetadata(e,t,r,n){if(!IsObject(r))throw new TypeError;return IsUndefined(n)||(n=ToPropertyKey(n)),OrdinaryDefineOwnMetadata(e,t,r,n)}function hasMetadata(e,t,r){if(!IsObject(t))throw new TypeError;return IsUndefined(r)||(r=ToPropertyKey(r)),OrdinaryHasMetadata(e,t,r)}function hasOwnMetadata(e,t,r){if(!IsObject(t))throw new TypeError;return IsUndefined(r)||(r=ToPropertyKey(r)),OrdinaryHasOwnMetadata(e,t,r)}function getMetadata(e,t,r){if(!IsObject(t))throw new TypeError;return IsUndefined(r)||(r=ToPropertyKey(r)),OrdinaryGetMetadata(e,t,r)}function getOwnMetadata(e,t,r){if(!IsObject(t))throw new TypeError;return IsUndefined(r)||(r=ToPropertyKey(r)),OrdinaryGetOwnMetadata(e,t,r)}function getMetadataKeys(e,t){if(!IsObject(e))throw new TypeError;return IsUndefined(t)||(t=ToPropertyKey(t)),OrdinaryMetadataKeys(e,t)}function getOwnMetadataKeys(e,t){if(!IsObject(e))throw new TypeError;return IsUndefined(t)||(t=ToPropertyKey(t)),OrdinaryOwnMetadataKeys(e,t)}function deleteMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(IsUndefined(r)||(r=ToPropertyKey(r)),!IsObject(t))throw new TypeError;IsUndefined(r)||(r=ToPropertyKey(r));var n=GetMetadataProvider(t,r,!1);return!IsUndefined(n)&&n.OrdinaryDeleteMetadata(e,t,r)}function DecorateConstructor(e,t){for(var r=e.length-1;r>=0;--r){var n=(0,e[r])(t);if(!IsUndefined(n)&&!IsNull(n)){if(!IsConstructor(n))throw new TypeError;t=n}}return t}function DecorateProperty(e,t,r,n){for(var i=e.length-1;i>=0;--i){var s=(0,e[i])(t,r,n);if(!IsUndefined(s)&&!IsNull(s)){if(!IsObject(s))throw new TypeError;n=s}}return n}function OrdinaryHasMetadata(e,t,r){if(OrdinaryHasOwnMetadata(e,t,r))return!0;var n=OrdinaryGetPrototypeOf(t);return!IsNull(n)&&OrdinaryHasMetadata(e,n,r)}function OrdinaryHasOwnMetadata(e,t,r){var n=GetMetadataProvider(t,r,!1);return!IsUndefined(n)&&ToBoolean(n.OrdinaryHasOwnMetadata(e,t,r))}function OrdinaryGetMetadata(e,t,r){if(OrdinaryHasOwnMetadata(e,t,r))return OrdinaryGetOwnMetadata(e,t,r);var n=OrdinaryGetPrototypeOf(t);return IsNull(n)?void 0:OrdinaryGetMetadata(e,n,r)}function OrdinaryGetOwnMetadata(e,t,r){var n=GetMetadataProvider(t,r,!1);if(!IsUndefined(n))return n.OrdinaryGetOwnMetadata(e,t,r)}function OrdinaryDefineOwnMetadata(e,t,r,n){GetMetadataProvider(r,n,!0).OrdinaryDefineOwnMetadata(e,t,r,n)}function OrdinaryMetadataKeys(e,t){var r=OrdinaryOwnMetadataKeys(e,t),n=OrdinaryGetPrototypeOf(e);if(null===n)return r;var i=OrdinaryMetadataKeys(n,t);if(i.length<=0)return r;if(r.length<=0)return i;for(var s=new d,o=[],a=0,l=r;a<l.length;a++){var c=l[a];s.has(c)||(s.add(c),o.push(c))}for(var h=0,u=i;h<u.length;h++){c=u[h];s.has(c)||(s.add(c),o.push(c))}return o}function OrdinaryOwnMetadataKeys(e,t){var r=GetMetadataProvider(e,t,!1);return r?r.OrdinaryOwnMetadataKeys(e,t):[]}function Type(e){if(null===e)return 1;switch(typeof e){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return null===e?1:6;default:return 6}}function IsUndefined(e){return void 0===e}function IsNull(e){return null===e}function IsSymbol(e){return"symbol"==typeof e}function IsObject(e){return"object"==typeof e?null!==e:"function"==typeof e}function ToPrimitive(e,t){switch(Type(e)){case 0:case 1:case 2:case 3:case 4:case 5:return e}var r=3===t?"string":5===t?"number":"default",n=GetMethod(e,i);if(void 0!==n){var s=n.call(e,r);if(IsObject(s))throw new TypeError;return s}return OrdinaryToPrimitive(e,"default"===r?"number":r)}function OrdinaryToPrimitive(e,t){if("string"===t){var r=e.toString;if(IsCallable(r))if(!IsObject(i=r.call(e)))return i;if(IsCallable(n=e.valueOf))if(!IsObject(i=n.call(e)))return i}else{var n;if(IsCallable(n=e.valueOf))if(!IsObject(i=n.call(e)))return i;var i,s=e.toString;if(IsCallable(s))if(!IsObject(i=s.call(e)))return i}throw new TypeError}function ToBoolean(e){return!!e}function ToString(e){return""+e}function ToPropertyKey(e){var t=ToPrimitive(e,3);return IsSymbol(t)?t:ToString(t)}function IsArray(e){return Array.isArray?Array.isArray(e):e instanceof Object?e instanceof Array:"[object Array]"===Object.prototype.toString.call(e)}function IsCallable(e){return"function"==typeof e}function IsConstructor(e){return"function"==typeof e}function IsPropertyKey(e){switch(Type(e)){case 3:case 4:return!0;default:return!1}}function SameValueZero(e,t){return e===t||e!=e&&t!=t}function GetMethod(e,t){var r=e[t];if(null!=r){if(!IsCallable(r))throw new TypeError;return r}}function GetIterator(e){var t=GetMethod(e,s);if(!IsCallable(t))throw new TypeError;var r=t.call(e);if(!IsObject(r))throw new TypeError;return r}function IteratorValue(e){return e.value}function IteratorStep(e){var t=e.next();return!t.done&&t}function IteratorClose(e){var t=e.return;t&&t.call(e)}function OrdinaryGetPrototypeOf(e){var t=Object.getPrototypeOf(e);if("function"!=typeof e||e===h)return t;if(t!==h)return t;var r=e.prototype,n=r&&Object.getPrototypeOf(r);if(null==n||n===Object.prototype)return t;var i=n.constructor;return"function"!=typeof i||i===e?t:i}function CreateMetadataRegistry(){var e,r,n,i;IsUndefined(f)||void 0===t.Reflect||f in t.Reflect||"function"!=typeof t.Reflect.defineMetadata||(e=CreateFallbackProvider(t.Reflect));var s=new p,o={registerProvider,getProvider,setProvider};return o;function registerProvider(t){if(!Object.isExtensible(o))throw new Error("Cannot add provider to a frozen registry.");switch(!0){case e===t:break;case IsUndefined(r):r=t;break;case r===t:break;case IsUndefined(n):n=t;break;case n===t:break;default:void 0===i&&(i=new d),i.add(t)}}function getProviderNoCache(t,s){if(!IsUndefined(r)){if(r.isProviderFor(t,s))return r;if(!IsUndefined(n)){if(n.isProviderFor(t,s))return r;if(!IsUndefined(i))for(var o=GetIterator(i);;){var a=IteratorStep(o);if(!a)return;var l=IteratorValue(a);if(l.isProviderFor(t,s))return IteratorClose(o),l}}}if(!IsUndefined(e)&&e.isProviderFor(t,s))return e}function getProvider(e,t){var r,n=s.get(e);return IsUndefined(n)||(r=n.get(t)),IsUndefined(r)?(IsUndefined(r=getProviderNoCache(e,t))||(IsUndefined(n)&&(n=new u,s.set(e,n)),n.set(t,r)),r):r}function hasProvider(e){if(IsUndefined(e))throw new TypeError;return r===e||n===e||!IsUndefined(i)&&i.has(e)}function setProvider(e,t,r){if(!hasProvider(r))throw new Error("Metadata provider not registered.");var n=getProvider(e,t);if(n!==r){if(!IsUndefined(n))return!1;var i=s.get(e);IsUndefined(i)&&(i=new u,s.set(e,i)),i.set(t,r)}return!0}}function GetOrCreateMetadataRegistry(){var e;return!IsUndefined(f)&&IsObject(t.Reflect)&&Object.isExtensible(t.Reflect)&&(e=t.Reflect[f]),IsUndefined(e)&&(e=CreateMetadataRegistry()),!IsUndefined(f)&&IsObject(t.Reflect)&&Object.isExtensible(t.Reflect)&&Object.defineProperty(t.Reflect,f,{enumerable:!1,configurable:!1,writable:!1,value:e}),e}function CreateMetadataProvider(e){var t=new p,r={isProviderFor:function(e,r){var n=t.get(e);return!IsUndefined(n)&&n.has(r)},OrdinaryDefineOwnMetadata,OrdinaryHasOwnMetadata,OrdinaryGetOwnMetadata,OrdinaryOwnMetadataKeys,OrdinaryDeleteMetadata};return g.registerProvider(r),r;function GetOrCreateMetadataMap(n,i,s){var o=t.get(n),a=!1;if(IsUndefined(o)){if(!s)return;o=new u,t.set(n,o),a=!0}var l=o.get(i);if(IsUndefined(l)){if(!s)return;if(l=new u,o.set(i,l),!e.setProvider(n,i,r))throw o.delete(i),a&&t.delete(n),new Error("Wrong provider for target.")}return l}function OrdinaryHasOwnMetadata(e,t,r){var n=GetOrCreateMetadataMap(t,r,!1);return!IsUndefined(n)&&ToBoolean(n.has(e))}function OrdinaryGetOwnMetadata(e,t,r){var n=GetOrCreateMetadataMap(t,r,!1);if(!IsUndefined(n))return n.get(e)}function OrdinaryDefineOwnMetadata(e,t,r,n){GetOrCreateMetadataMap(r,n,!0).set(e,t)}function OrdinaryOwnMetadataKeys(e,t){var r=[],n=GetOrCreateMetadataMap(e,t,!1);if(IsUndefined(n))return r;for(var i=GetIterator(n.keys()),s=0;;){var o=IteratorStep(i);if(!o)return r.length=s,r;var a=IteratorValue(o);try{r[s]=a}catch(e){try{IteratorClose(i)}finally{throw e}}s++}}function OrdinaryDeleteMetadata(e,r,n){var i=GetOrCreateMetadataMap(r,n,!1);if(IsUndefined(i))return!1;if(!i.delete(e))return!1;if(0===i.size){var s=t.get(r);IsUndefined(s)||(s.delete(n),0===s.size&&t.delete(s))}return!0}}function CreateFallbackProvider(e){var t=e.defineMetadata,r=e.hasOwnMetadata,n=e.getOwnMetadata,i=e.getOwnMetadataKeys,s=e.deleteMetadata,o=new p;return{isProviderFor:function(e,t){var r=o.get(e);return!(IsUndefined(r)||!r.has(t))||!!i(e,t).length&&(IsUndefined(r)&&(r=new d,o.set(e,r)),r.add(t),!0)},OrdinaryDefineOwnMetadata:t,OrdinaryHasOwnMetadata:r,OrdinaryGetOwnMetadata:n,OrdinaryOwnMetadataKeys:i,OrdinaryDeleteMetadata:s}}function GetMetadataProvider(e,t,r){var n=g.getProvider(e,t);if(!IsUndefined(n))return n;if(r){if(g.setProvider(e,t,y))return y;throw new Error("Illegal state.")}}function CreateMapPolyfill(){var e={},t=[],r=function(){function MapIterator(e,t,r){this._index=0,this._keys=e,this._values=t,this._selector=r}return MapIterator.prototype["@@iterator"]=function(){return this},MapIterator.prototype[s]=function(){return this},MapIterator.prototype.next=function(){var e=this._index;if(e>=0&&e<this._keys.length){var r=this._selector(this._keys[e],this._values[e]);return e+1>=this._keys.length?(this._index=-1,this._keys=t,this._values=t):this._index++,{value:r,done:!1}}return{value:void 0,done:!0}},MapIterator.prototype.throw=function(e){throw this._index>=0&&(this._index=-1,this._keys=t,this._values=t),e},MapIterator.prototype.return=function(e){return this._index>=0&&(this._index=-1,this._keys=t,this._values=t),{value:e,done:!0}},MapIterator}();return function(){function Map(){this._keys=[],this._values=[],this._cacheKey=e,this._cacheIndex=-2}return Object.defineProperty(Map.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),Map.prototype.has=function(e){return this._find(e,!1)>=0},Map.prototype.get=function(e){var t=this._find(e,!1);return t>=0?this._values[t]:void 0},Map.prototype.set=function(e,t){var r=this._find(e,!0);return this._values[r]=t,this},Map.prototype.delete=function(t){var r=this._find(t,!1);if(r>=0){for(var n=this._keys.length,i=r+1;i<n;i++)this._keys[i-1]=this._keys[i],this._values[i-1]=this._values[i];return this._keys.length--,this._values.length--,SameValueZero(t,this._cacheKey)&&(this._cacheKey=e,this._cacheIndex=-2),!0}return!1},Map.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=e,this._cacheIndex=-2},Map.prototype.keys=function(){return new r(this._keys,this._values,getKey)},Map.prototype.values=function(){return new r(this._keys,this._values,getValue)},Map.prototype.entries=function(){return new r(this._keys,this._values,getEntry)},Map.prototype["@@iterator"]=function(){return this.entries()},Map.prototype[s]=function(){return this.entries()},Map.prototype._find=function(e,t){if(!SameValueZero(this._cacheKey,e)){this._cacheIndex=-1;for(var r=0;r<this._keys.length;r++)if(SameValueZero(this._keys[r],e)){this._cacheIndex=r;break}}return this._cacheIndex<0&&t&&(this._cacheIndex=this._keys.length,this._keys.push(e),this._values.push(void 0)),this._cacheIndex},Map}();function getKey(e,t){return e}function getValue(e,t){return t}function getEntry(e,t){return[e,t]}}function CreateSetPolyfill(){return function(){function Set(){this._map=new u}return Object.defineProperty(Set.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),Set.prototype.has=function(e){return this._map.has(e)},Set.prototype.add=function(e){return this._map.set(e,e),this},Set.prototype.delete=function(e){return this._map.delete(e)},Set.prototype.clear=function(){this._map.clear()},Set.prototype.keys=function(){return this._map.keys()},Set.prototype.values=function(){return this._map.keys()},Set.prototype.entries=function(){return this._map.entries()},Set.prototype["@@iterator"]=function(){return this.keys()},Set.prototype[s]=function(){return this.keys()},Set}()}function CreateWeakMapPolyfill(){var e=16,t=c.create(),n=CreateUniqueKey();return function(){function WeakMap(){this._key=CreateUniqueKey()}return WeakMap.prototype.has=function(e){var t=GetOrCreateWeakMapTable(e,!1);return void 0!==t&&c.has(t,this._key)},WeakMap.prototype.get=function(e){var t=GetOrCreateWeakMapTable(e,!1);return void 0!==t?c.get(t,this._key):void 0},WeakMap.prototype.set=function(e,t){return GetOrCreateWeakMapTable(e,!0)[this._key]=t,this},WeakMap.prototype.delete=function(e){var t=GetOrCreateWeakMapTable(e,!1);return void 0!==t&&delete t[this._key]},WeakMap.prototype.clear=function(){this._key=CreateUniqueKey()},WeakMap}();function CreateUniqueKey(){var e;do{e="@@WeakMap@@"+CreateUUID()}while(c.has(t,e));return t[e]=!0,e}function GetOrCreateWeakMapTable(e,t){if(!r.call(e,n)){if(!t)return;Object.defineProperty(e,n,{value:c.create()})}return e[n]}function FillRandomBytes(e,t){for(var r=0;r<t;++r)e[r]=255*Math.random()|0;return e}function GenRandomBytes(e){if("function"==typeof Uint8Array){var t=new Uint8Array(e);return"undefined"!=typeof crypto?crypto.getRandomValues(t):"undefined"!=typeof msCrypto?msCrypto.getRandomValues(t):FillRandomBytes(t,e),t}return FillRandomBytes(new Array(e),e)}function CreateUUID(){var t=GenRandomBytes(e);t[6]=79&t[6]|64,t[8]=191&t[8]|128;for(var r="",n=0;n<e;++n){var i=t[n];4!==n&&6!==n&&8!==n||(r+="-"),i<16&&(r+="0"),r+=i.toString(16).toLowerCase()}return r}}function MakeDictionary(e){return e.__=void 0,delete e.__,e}e("decorate",decorate),e("metadata",metadata),e("defineMetadata",defineMetadata),e("hasMetadata",hasMetadata),e("hasOwnMetadata",hasOwnMetadata),e("getMetadata",getMetadata),e("getOwnMetadata",getOwnMetadata),e("getMetadataKeys",getMetadataKeys),e("getOwnMetadataKeys",getOwnMetadataKeys),e("deleteMetadata",deleteMetadata)}(n,t),void 0===t.Reflect&&(t.Reflect=e)}()}(n||(n={}))}},t={};function __webpack_require__(r){var n=t[r];if(void 0!==n)return n.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,__webpack_require__),i.exports}__webpack_require__.d=(e,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};__webpack_require__.r(r),__webpack_require__.d(r,{EventIdentifier:()=>l,ServiceIdentifier:()=>c});var n={};__webpack_require__.r(n),__webpack_require__.d(n,{customEventDefaultInit:()=>u});var i={};__webpack_require__.r(i),__webpack_require__.d(i,{GetServiceResolverEvent:()=>GetServiceResolverEvent});var s={};__webpack_require__.r(s),__webpack_require__.d(s,{EmberNexusError:()=>EmberNexusError,LogicError:()=>LogicError,ParseError:()=>ParseError,ValidationError:()=>ValidationError});var o={};__webpack_require__.r(o),__webpack_require__.d(o,{Event:()=>Event,PriorityRegistry:()=>PriorityRegistry,Registry:()=>Registry,eventIdentifierRegex:()=>d,eventListenerIdentifierRegex:()=>p,getEventListenerIdentifiersFromEventIdentifier:()=>getEventListenerIdentifiersFromEventIdentifier,serviceIdentifierRegex:()=>f,validateEventIdentifierFromString:()=>validateEventIdentifierFromString,validateEventListenerIdentifierFromString:()=>validateEventListenerIdentifierFromString,validateServiceIdentifierFromString:()=>validateServiceIdentifierFromString});var a={};__webpack_require__.r(a),__webpack_require__.d(a,{EventDispatcher:()=>EventDispatcher,Logger:()=>Logger,ServiceResolver:()=>ServiceResolver});var l,c,h={};__webpack_require__.r(h),__webpack_require__.d(h,{Definition:()=>o,Enum:()=>r,Partial:()=>n}),function(e){e.GetServiceResolver="ember-nexus-app-core-get-service-resolver"}(l||(l={})),function(e){e.emberNexusWebSDK="ember-nexus.web-sdk",e.eventDispatcher="global.event-dispatcher",e.logger="global.logger",e.action="global.action-registry",e.setting="global.setting-registry",e.icon="global.icon-registry"}(c||(c={}));const u={bubbles:!0,composed:!0,cancelable:!0};class GetServiceResolverEvent extends CustomEvent{static type=l.GetServiceResolver;constructor(){super(GetServiceResolverEvent.type,{...u,detail:{serviceResolver:null}})}getServiceResolver(){return this.detail.serviceResolver}setServiceResolver(e){this.detail.serviceResolver=e}}class EmberNexusError extends Error{constructor(e){super(e)}}class LogicError extends EmberNexusError{constructor(e){super(e),this.name="LogicError"}}class ParseError extends EmberNexusError{constructor(e){super(e),this.name="ParseError"}}class ValidationError extends EmberNexusError{constructor(e){super(e),this.name="ValidationError"}}class Event{identifier;stopped=!1;context;constructor(e,t={}){this.identifier=e,this.context=t}getIdentifier(){return this.identifier}isPropagationStopped(){return this.stopped}stopPropagation(){return this.stopped=!0,this}getContextValue(e){return this.context[e]}setContextValue(e,t){return this.context[e]=t,this}hasContextValue(e){return Object.prototype.hasOwnProperty.call(this.context,e)}clearContextValue(e){return delete this.context[e],this}getContext(){return{...this.context}}setContext(e){return this.context=e,this}clearContext(){return this.context={},this}}const d=/^([a-z][a-z0-9-]*)(\.([a-z][a-z0-9-]*))*$/;function validateEventIdentifierFromString(e){if(!d.test(e))throw new ParseError("Passed variable is not a valid event identifier.");return e}const p=/^(?:([a-z][a-z0-9-]*)(\.([a-z][a-z0-9-]*))*|\*|([a-z][a-z0-9-]*)(\.([a-z][a-z0-9-]*))*(\.\*))$/;function validateEventListenerIdentifierFromString(e){if(!p.test(e))throw new ParseError("Passed variable is not a valid event listener identifier.");return e}function getEventListenerIdentifiersFromEventIdentifier(e){const t=e.split("."),r=[];r.push(validateEventListenerIdentifierFromString(e));for(let e=t.length-1;e>0;e--)r.push(validateEventListenerIdentifierFromString(t.slice(0,e).join(".")+".*"));return r.push(validateEventListenerIdentifierFromString("*")),r}class PriorityRegistry{entries=new Map;clearEntries(){return this.entries.clear(),this}deleteEntry(e){return this.entries.delete(e),this}getEntry(e){if(!this.hasEntry(e))return null;const t=this.entries.get(e);return t[t.length-1].entry}hasEntry(e){return this.entries.has(e)}setEntry(e,t,r){let n;void 0===r&&(r=0),this.entries.has(e)?n=this.entries.get(e):(n=[],this.entries.set(e,n));let i=0,s=n.length-1,o=-1;for(;i<=s;){const e=Math.floor((i+s)/2);n[e].priority>=r?(o=e,s=e-1):i=e+1}const a=-1===o?i:o;return n.splice(a,0,{priority:r,entry:t}),this}getAllEntriesForKey(e){return this.entries.has(e)?this.entries.get(e).map((e=>e.entry)):null}}class Registry{entries=new Map;clearEntries(){return this.entries.clear(),this}deleteEntry(e){return this.entries.delete(e),this}getEntry(e){return this.hasEntry(e)?this.entries.get(e):null}hasEntry(e){return this.entries.has(e)}setEntry(e,t){return this.entries.set(e,t),this}}const f=/^([a-z][a-z0-9-]*)(\.([a-z][a-z0-9-]*))*$/;function validateServiceIdentifierFromString(e){if(!f.test(e))throw new ParseError("Passed variable is not a valid service identifier.");return e}class EventDispatcher{entries=new Map;logger;constructor(e){this.logger=e}async dispatchEvent(e){if(this.logger.debug(`Dispatching event of identifier ${e.getIdentifier()}.`,{event:e}),e.isPropagationStopped())return void this.logger.debug("Stopped event propagation because it is already stopped.",{event:e});const t=getEventListenerIdentifiersFromEventIdentifier(e.getIdentifier());for(let r=0;r<t.length;++r){const n=t[r],i=this.entries.get(n);if(void 0!==i){this.logger.debug(`Iterating over resolved event listeners of identifier ${n}`,{event:e});for(let t=i.length-1;t>=0;t--){try{await Promise.resolve(i[t].eventListener(e))}catch(t){this.logger.error("Event handler threw exception, dispatcher continues with next event listener.",{event:e,error:t})}if(e.isPropagationStopped())return void this.logger.debug("Stopped event propagation as it got stopped.",{event:e})}}}this.logger.debug("Event got handled by all event listeners.",{event:e})}addListener(e,t,r){let n;void 0===r&&(r=0),n=this.entries.has(e)?this.entries.get(e):[];let i=0,s=n.length-1,o=-1;for(;i<=s;){const e=Math.floor((i+s)/2);n[e].priority>=r?(o=e,s=e-1):i=e+1}const a=-1===o?i:o;return n.splice(a,0,{priority:r,eventListener:t}),this.entries.set(e,n),this}removeListener(e,t){const r=this.entries.get(e);if(!r)return this;for(let e=0;e<r.length;++e)if(r[e].eventListener===t){r.splice(e,1);break}return 0===r.length&&this.entries.delete(e),this}getListeners(e){const t=this.entries.get(e);return t?t.map((e=>e.eventListener)):[]}hasListeners(e){return this.entries.has(e)}}class Logger{logger;constructor(e){this.logger=e}debug(...e){return this.logger.debug(e)}error(...e){return this.logger.error(e)}info(...e){return this.logger.info(e)}warn(...e){return this.logger.warn(e)}}class ServiceResolver{services=new Map;constructor(){}hasService(e){return this.services.has(e)}getService(e){return this.hasService(e)?this.services.get(e):null}setService(e,t){return this.services.set(e,t),this}deleteService(e){return this.services.delete(e),this}getServiceIdentifiers(){return[...this.services.keys()]}getServices(){return[...this.services.values()]}clearServices(){return this.services.clear(),this}}function __decorate(e,t,r,n){var i,s=arguments.length,o=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(o=(s<3?i(o):s>3?i(t,r,o):i(t,r))||o);return s>3&&o&&Object.defineProperty(t,r,o),o}function __metadata(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}Object.create;Object.create;"function"==typeof SuppressedError&&SuppressedError;var g=function g(e){this.name=e},y=function(){var extendStatics=function(e,t){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},extendStatics(e,t)};return function(e,t){function __(){this.constructor=e}extendStatics(e,t),e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)}}(),m=function(e){function ServiceNotFoundError(t){var r,n=e.call(this)||this;return n.name="ServiceNotFoundError",n.normalizedIdentifier="<UNKNOWN_IDENTIFIER>","string"==typeof t?n.normalizedIdentifier=t:t instanceof g?n.normalizedIdentifier="Token<"+(t.name||"UNSET_NAME")+">":t&&(t.name||(null===(r=t.prototype)||void 0===r?void 0:r.name))&&(n.normalizedIdentifier="MaybeConstructable<"+t.name+">"||0),n}return y(ServiceNotFoundError,e),Object.defineProperty(ServiceNotFoundError.prototype,"message",{get:function(){return'Service with "'+this.normalizedIdentifier+'" identifier was not found in the container. Register it before usage via explicitly calling the "Container.set" function or using the "@Service()" decorator.'},enumerable:!1,configurable:!0}),ServiceNotFoundError}(Error),v=function(){var extendStatics=function(e,t){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},extendStatics(e,t)};return function(e,t){function __(){this.constructor=e}extendStatics(e,t),e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)}}(),w=function(e){function CannotInstantiateValueError(t){var r,n=e.call(this)||this;return n.name="CannotInstantiateValueError",n.normalizedIdentifier="<UNKNOWN_IDENTIFIER>","string"==typeof t?n.normalizedIdentifier=t:t instanceof g?n.normalizedIdentifier="Token<"+(t.name||"UNSET_NAME")+">":t&&(t.name||(null===(r=t.prototype)||void 0===r?void 0:r.name))&&(n.normalizedIdentifier="MaybeConstructable<"+t.name+">"||0),n}return v(CannotInstantiateValueError,e),Object.defineProperty(CannotInstantiateValueError.prototype,"message",{get:function(){return'Cannot instantiate the requested value for the "'+this.normalizedIdentifier+"\" identifier. The related metadata doesn't contain a factory or a type to instantiate."},enumerable:!1,configurable:!0}),CannotInstantiateValueError}(Error),b=Symbol("EMPTY_VALUE"),container_instance_class_assign=function(){return container_instance_class_assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},container_instance_class_assign.apply(this,arguments)},container_instance_class_spreadArrays=function(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),i=0;for(t=0;t<r;t++)for(var s=arguments[t],o=0,a=s.length;o<a;o++,i++)n[i]=s[o];return n},E=function(){function ContainerInstance(e){this.services=[],this.id=e}return ContainerInstance.prototype.has=function(e){return!!this.findService(e)},ContainerInstance.prototype.get=function(e){var t=_.of(void 0),r=t.findService(e),n=this.findService(e);if(r&&!0===r.global)return this.getServiceValue(r);if(n)return this.getServiceValue(n);if(r&&this!==t){var i=container_instance_class_assign({},r);i.value=b,this.set(i);var s=this.getServiceValue(i);return this.set(container_instance_class_assign(container_instance_class_assign({},i),{value:s})),s}if(r)return this.getServiceValue(r);throw new m(e)},ContainerInstance.prototype.getMany=function(e){var t=this;return this.findAllServices(e).map((function(e){return t.getServiceValue(e)}))},ContainerInstance.prototype.set=function(e,t){var r=this;if(e instanceof Array)return e.forEach((function(e){return r.set(e)})),this;if("string"==typeof e||e instanceof g)return this.set({id:e,type:null,value:t,factory:void 0,global:!1,multiple:!1,eager:!1,transient:!1});if("function"==typeof e)return this.set({id:e,type:e,value:t,factory:void 0,global:!1,multiple:!1,eager:!1,transient:!1});var n=container_instance_class_assign({id:new g("UNREACHABLE"),type:null,factory:void 0,value:b,global:!1,multiple:!1,eager:!1,transient:!1},e),i=this.findService(n.id);return i&&!0!==i.multiple?Object.assign(i,n):this.services.push(n),n.eager&&this.get(n.id),this},ContainerInstance.prototype.remove=function(e){var t=this;return Array.isArray(e)?e.forEach((function(e){return t.remove(e)})):this.services=this.services.filter((function(r){return r.id!==e||(t.destroyServiceInstance(r),!1)})),this},ContainerInstance.prototype.reset=function(e){var t=this;switch(void 0===e&&(e={strategy:"resetValue"}),e.strategy){case"resetValue":this.services.forEach((function(e){return t.destroyServiceInstance(e)}));break;case"resetServices":this.services.forEach((function(e){return t.destroyServiceInstance(e)})),this.services=[];break;default:throw new Error("Received invalid reset strategy.")}return this},ContainerInstance.prototype.findAllServices=function(e){return this.services.filter((function(t){return t.id===e}))},ContainerInstance.prototype.findService=function(e){return this.services.find((function(t){return t.id===e}))},ContainerInstance.prototype.getServiceValue=function(e){var t,r=b;if(e.value!==b)return e.value;if(!e.factory&&!e.type)throw new w(e.id);if(e.factory)if(e.factory instanceof Array){var n=void 0;try{n=this.get(e.factory[0])}catch(t){if(!(t instanceof m))throw t;n=new e.factory[0]}r=n[e.factory[1]](this,e.id)}else r=e.factory(this,e.id);if(!e.factory&&e.type){var i=e.type,s=(null===(t=Reflect)||void 0===t?void 0:t.getMetadata("design:paramtypes",i))||[],o=this.initializeParams(i,s);o.push(this),r=new(i.bind.apply(i,container_instance_class_spreadArrays([void 0],o)))}if(e.transient||r===b||(e.value=r),r===b)throw new w(e.id);return e.type&&this.applyPropertyHandlers(e.type,r),r},ContainerInstance.prototype.initializeParams=function(e,t){var r=this;return t.map((function(t,n){var i=_.handlers.find((function(t){return(t.object===e||t.object===Object.getPrototypeOf(e))&&t.index===n}));return i?i.value(r):t&&t.name&&!r.isPrimitiveParamType(t.name)?r.get(t):void 0}))},ContainerInstance.prototype.isPrimitiveParamType=function(e){return["string","boolean","number","object"].includes(e.toLowerCase())},ContainerInstance.prototype.applyPropertyHandlers=function(e,t){var r=this;_.handlers.forEach((function(n){"number"!=typeof n.index&&(n.object.constructor===e||e.prototype instanceof n.object.constructor)&&n.propertyName&&(t[n.propertyName]=n.value(r))}))},ContainerInstance.prototype.destroyServiceInstance=function(e,t){if(void 0===t&&(t=!1),t||!!e.type||!!e.factory){if("function"==typeof(null==e?void 0:e.value).destroy)try{e.value.destroy()}catch(e){}e.value=b}},ContainerInstance}(),_=function(){function Container(){}return Container.of=function(e){if(void 0===e&&(e="default"),"default"===e)return this.globalInstance;var t=this.instances.find((function(t){return t.id===e}));return t||(t=new E(e),this.instances.push(t)),t},Container.has=function(e){return this.globalInstance.has(e)},Container.get=function(e){return this.globalInstance.get(e)},Container.getMany=function(e){return this.globalInstance.getMany(e)},Container.set=function(e,t){return this.globalInstance.set(e,t),this},Container.remove=function(e){return this.globalInstance.remove(e),this},Container.reset=function(e){if(void 0===e&&(e="default"),"default"==e)this.globalInstance.reset(),this.instances.forEach((function(e){return e.reset()}));else{var t=this.instances.find((function(t){return t.id===e}));t&&(t.reset(),this.instances.splice(this.instances.indexOf(t),1))}return this},Container.registerHandler=function(e){return this.handlers.push(e),this},Container.import=function(e){return this},Container.handlers=[],Container.globalInstance=new E("default"),Container.instances=[],Container}();function Service(e){return function(t){var r={id:t,type:t,factory:void 0,multiple:!1,global:!1,eager:!1,transient:!1,value:b};e instanceof g||"string"==typeof e?r.id=e:e&&(r.id=e.id||t,r.factory=e.factory||void 0,r.multiple=e.multiple||!1,r.global=e.global||!1,r.eager=e.eager||!1,r.transient=e.transient||!1),_.set(r)}}const S=/^secret-token:.+$/;class EmberNexusError_EmberNexusError extends Error{constructor(e){super(e)}}class LogicError_LogicError extends EmberNexusError_EmberNexusError{constructor(e){super(e),this.name="LogicError"}}class NetworkError extends EmberNexusError_EmberNexusError{constructor(e,t){super(e),this.name="NetworkError",this.cause=t}}class ParseError_ParseError extends EmberNexusError_EmberNexusError{constructor(e){super(e),this.name="ParseError"}}class ResponseError extends EmberNexusError_EmberNexusError{_type=null;_title=null;_detail=null;_status=null;constructor(e){super(e)}getType(){return this._type}setType(e){return this._type=e,this}getTitle(){return this._title}setTitle(e){return this._title=e,this}getDetail(){return this._detail}setDetail(e){return this._detail=e,this}getStatus(){return this._status}setStatus(e){return this._status=e,this}}class Response401UnauthorizedError extends ResponseError{constructor(e){super(e),this.name="Response401UnauthorizedError",this.setStatus(401)}}class Response403ForbiddenError extends ResponseError{constructor(e){super(e),this.name="Response403ForbiddenError",this.setStatus(403)}}class Response404NotFoundError extends ResponseError{constructor(e){super(e),this.name="Response404NotFoundError",this.setStatus(404)}}class Response429TooManyRequestsError extends ResponseError{constructor(e){super(e),this.name="Response429TooManyRequestsError",this.setStatus(429)}}class ValidationError_ValidationError extends EmberNexusError_EmberNexusError{constructor(e){super(e),this.name="ValidationError"}}const P=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;function validateUuidFromString(e){if(!P.test(e))throw new ParseError_ParseError("Passed variable is not a valid UUID v4.");return e}let O=class ElementParser{rawElementToNodeOrRelation(e){if(!("id"in e))throw new Error("Raw element must contain property 'id' in order to be parsed to a node or relation.");const t=validateUuidFromString(String(e.id));if(!("type"in e))throw new Error("Raw element must contain property 'type' in order to be parsed to a node or relation.");const r=String(e.type);if(!("data"in e))throw new Error("Raw element must contain property 'data' in order to be parsed to a node or relation.");const n=e.data;for(const e in n)if(Object.prototype.hasOwnProperty.call(n,e)&&"string"==typeof n[e]){const t=n[e];/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}:\d{2}$/.test(t)&&(n[e]=new Date(t))}if("start"in e&&"end"in e){return{id:t,start:validateUuidFromString(String(e.start)),end:validateUuidFromString(String(e.end)),type:r,data:n}}return{id:t,type:r,data:n}}};O=__decorate([Service()],O);let k=class CollectionParser{elementParser;constructor(e){this.elementParser=e}rawCollectionToCollection(e){if(!("id"in e))throw new Error("Raw collection must contain property 'id' in order to be parsed to a collection.");const t=String(e.id);if(!("totalNodes"in e))throw new Error("Raw collection must contain property 'totalNodes' in order to be parsed to a collection.");const r=Number(e.totalNodes);if(!("links"in e))throw new Error("Raw collection must contain property 'links' in order to be parsed to a collection.");if("object"!=typeof e.links||null===e.links)throw new Error("Links property in raw collection must be of type object.");const n=e.links;if(!("first"in n))throw new Error("Raw collection must contain property 'links.first' in order to be parsed to a collection.");const i=String(n.first);if(!("previous"in n))throw new Error("Raw collection must contain property 'links.previous' in order to be parsed to a collection.");const s=null===n.previous?null:String(n.previous);if(!("next"in n))throw new Error("Raw collection must contain property 'links.next' in order to be parsed to a collection.");const o=null===n.next?null:String(n.next);if(!("last"in n))throw new Error("Raw collection must contain property 'links.last' in order to be parsed to a collection.");const a=String(n.last);if(!("nodes"in e))throw new Error("Raw collection must contain property 'nodes' in order to be parsed to a collection.");if(!Array.isArray(e.nodes))throw new Error("Nodes property in raw collection must be of type array.");const l=[];for(const t of e.nodes)l.push(this.elementParser.rawElementToNodeOrRelation(t));if(!("relations"in e))throw new Error("Raw collection must contain property 'relations' in order to be parsed to a collection.");if(!Array.isArray(e.relations))throw new Error("Relations property in raw collection must be of type array.");const c=[];for(const t of e.relations)c.push(this.elementParser.rawElementToNodeOrRelation(t));return{id:t,totalNodes:r,links:{first:i,previous:s,next:o,last:a},nodes:l,relations:c}}};k=__decorate([Service(),__metadata("design:paramtypes",[O])],k);const T={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]};function formatTemplate(e,t,r,n=!1){const i=String(t),ansiColorWrap=(e,t)=>`[${t[0]}m${e}[${t[1]}m`,styleWrap=(e,t)=>null!=t&&"string"==typeof t?ansiColorWrap(e,T[t]):null!=t&&Array.isArray(t)?t.reduce(((e,t)=>styleWrap(e,t)),e):null!=t&&null!=t[e.trim()]?styleWrap(e,t[e.trim()]):null!=t&&null!=t["*"]?styleWrap(e,t["*"]):e;return i.replace(/{{(.+?)}}/g,((t,i)=>{const s=null!=r[i]?String(r[i]):n?"":t;return e.stylePrettyLogs?styleWrap(s,e?.prettyLogStyles?.[i]??null)+ansiColorWrap("",T.reset):s}))}function formatNumberAddZeros(e,t=2,r=0){return null!=e&&isNaN(e)?"":(e=null!=e?e+r:e,2===t?null==e?"--":e<10?"0"+e:e.toString():null==e?"---":e<10?"00"+e:e<100?"0"+e:e.toString())}function jsonStringifyRecursive(e){const t=new Set;return JSON.stringify(e,((e,r)=>{if("object"==typeof r&&null!==r){if(t.has(r))return"[Circular]";t.add(r)}return"bigint"==typeof r?`${r}`:r}))}function inspect(e,t){const r={seen:[],stylize:stylizeNoColor};return null!=t&&_extend(r,t),isUndefined(r.showHidden)&&(r.showHidden=!1),isUndefined(r.depth)&&(r.depth=2),isUndefined(r.colors)&&(r.colors=!0),isUndefined(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=stylizeWithColor),formatValue(r,e,r.depth)}function isUndefined(e){return void 0===e}function stylizeNoColor(e){return e}function stylizeWithColor(e,t){const r=inspect.styles[t];return null!=r&&null!=inspect?.colors?.[r]?.[0]&&null!=inspect?.colors?.[r]?.[1]?"["+inspect.colors[r][0]+"m"+e+"["+inspect.colors[r][1]+"m":e}function isFunction(e){return"function"==typeof e}function isString(e){return"string"==typeof e}function isNull(e){return null===e}function hasOwn(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function isRegExp(e){return isObject(e)&&"[object RegExp]"===objectToString(e)}function isObject(e){return"object"==typeof e&&null!==e}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isDate(e){return isObject(e)&&"[object Date]"===objectToString(e)}function objectToString(e){return Object.prototype.toString.call(e)}function formatError(e){return"["+Error.prototype.toString.call(e)+"]"}function formatValue(e,t,r=0){if(e.customInspect&&null!=t&&isFunction(t)&&t?.inspect!==inspect&&(!t?.constructor||t?.constructor.prototype!==t)){if("function"!=typeof t.inspect&&null!=t.toString)return t.toString();let n=t?.inspect(r,e);return isString(n)||(n=formatValue(e,n,r)),n}const n=formatPrimitive(e,t);if(n)return n;let i=Object.keys(t);const s=function arrayToHash(e){const t={};return e.forEach((e=>{t[e]=!0})),t}(i);try{e.showHidden&&Object.getOwnPropertyNames&&(i=Object.getOwnPropertyNames(t))}catch(e){}if(isError(t)&&(i.indexOf("message")>=0||i.indexOf("description")>=0))return formatError(t);if(0===i.length){if(!isFunction(e.stylize))return t;if(isFunction(t)){const r=t.name?": "+t.name:"";return e.stylize("[Function"+r+"]","special")}if(isRegExp(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(isDate(t))return e.stylize(Date.prototype.toISOString.call(t),"date");if(isError(t))return formatError(t)}let o,a="",l=!1,c=["{\n","\n}"];if(Array.isArray(t)&&(l=!0,c=["[\n","\n]"]),isFunction(t)){a=" [Function"+(t.name?": "+t.name:"")+"]"}return isRegExp(t)&&(a=" "+RegExp.prototype.toString.call(t)),isDate(t)&&(a=" "+Date.prototype.toUTCString.call(t)),isError(t)&&(a=" "+formatError(t)),0!==i.length||l&&0!=t.length?r<0?isRegExp(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),o=l?function formatArray(e,t,r,n,i){const s=[];for(let i=0,o=t.length;i<o;++i)hasOwn(t,String(i))?s.push(formatProperty(e,t,r,n,String(i),!0)):s.push("");return i.forEach((i=>{i.match(/^\d+$/)||s.push(formatProperty(e,t,r,n,i,!0))})),s}(e,t,r,s,i):i.map((n=>formatProperty(e,t,r,s,n,l))),e.seen.pop(),function reduceToSingleString(e,t,r){return r[0]+(""===t?"":t+"\n")+" "+e.join(",\n ")+" "+r[1]}(o,a,c)):c[0]+a+c[1]}function formatProperty(e,t,r,n,i,s){let o,a,l={value:void 0};try{l.value=t[i]}catch(e){}try{Object.getOwnPropertyDescriptor&&(l=Object.getOwnPropertyDescriptor(t,i)||l)}catch(e){}if(l.get?a=l.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):l.set&&(a=e.stylize("[Setter]","special")),hasOwn(n,i)||(o="["+i+"]"),a||(e.seen.indexOf(l.value)<0?(a=isNull(r)?formatValue(e,l.value,void 0):formatValue(e,l.value,r-1),a.indexOf("\n")>-1&&(a=s?a.split("\n").map((e=>" "+e)).join("\n").substr(2):"\n"+a.split("\n").map((e=>" "+e)).join("\n"))):a=e.stylize("[Circular]","special")),isUndefined(o)){if(s&&i.match(/^\d+$/))return a;o=JSON.stringify(""+i),o.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,"\\'").replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+a}function formatPrimitive(e,t){if(isUndefined(t))return e.stylize("undefined","undefined");if(isString(t)){const r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,"\\'")+"'";return e.stylize(r,"string")}return function isNumber(e){return"number"==typeof e}(t)?e.stylize(""+t,"number"):function isBoolean(e){return"boolean"==typeof e}(t)?e.stylize(""+t,"boolean"):isNull(t)?e.stylize("null","null"):void 0}function _extend(e,t){const r={...e};if(!t||!isObject(t))return e;const n={...t},i=Object.keys(t);let s=i.length;for(;s--;)r[i[s]]=n[i[s]];return r}inspect.colors=T,inspect.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};const x={getCallerStackFrame,getErrorTrace,getMeta:function getMeta(e,t,r,n,i,s){return Object.assign({},M,{name:i,parentNames:s,date:new Date,logLevelId:e,logLevelName:t,path:n?void 0:getCallerStackFrame(r)})},transportJSON:function transportJSON(e){console.log(jsonStringifyRecursive(e))},transportFormatted:function transportFormatted(e,t,r,n){const i=(r.length>0&&t.length>0?"\n":"")+r.join("\n");n.prettyInspectOptions.colors=n.stylePrettyLogs,console.log(e+function formatWithOptions(e,...t){const r={seen:[],stylize:stylizeNoColor};null!=e&&_extend(r,e);const n=t[0];let i=0,s="",o="";if("string"==typeof n){if(1===t.length)return n;let a,l=0;for(let o=0;o<n.length-1;o++)if(37===n.charCodeAt(o)){const c=n.charCodeAt(++o);if(i+1!==t.length){switch(c){case 115:{const n=t[++i];a="number"==typeof n||"bigint"==typeof n?formatPrimitive(r,n):"object"!=typeof n||null===n?String(n):inspect(n,{...e,compact:3,colors:!1,depth:0});break}case 106:a=jsonStringifyRecursive(t[++i]);break;case 100:{const e=t[++i];a="bigint"==typeof e?formatPrimitive(r,e):"symbol"==typeof e?"NaN":formatPrimitive(r,e);break}case 79:a=inspect(t[++i],e);break;case 111:a=inspect(t[++i],{...e,showHidden:!0,showProxy:!0,depth:4});break;case 105:{const e=t[++i];a="bigint"==typeof e?formatPrimitive(r,e):"symbol"==typeof e?"NaN":formatPrimitive(r,parseInt(a));break}case 102:{const e=t[++i];a="symbol"==typeof e?"NaN":formatPrimitive(r,parseInt(e));break}case 99:i+=1,a="";break;case 37:s+=n.slice(l,o),l=o+1;continue;default:continue}l!==o-1&&(s+=n.slice(l,o-1)),s+=a,l=o+1}else 37===c&&(s+=n.slice(l,o),l=o+1)}0!==l&&(i++,o=" ",l<n.length&&(s+=n.slice(l)))}for(;i<t.length;){const r=t[i];s+=o,s+="string"!=typeof r?inspect(r,e):r,o=" ",i++}return s}(n.prettyInspectOptions,...t)+i)},isBuffer:function isBuffer(e){return!1},isError:browser_isError,prettyFormatLogObj:function prettyFormatLogObj(e,t){return e.reduce(((e,r)=>(browser_isError(r)?e.errors.push(prettyFormatErrorObj(r,t)):e.args.push(r),e)),{args:[],errors:[]})},prettyFormatErrorObj},M={runtime:[typeof window,typeof document].includes("undefined")?"Generic":"Browser",browser:globalThis?.navigator?.userAgent},C=/(?:(?:file|https?|global code|[^@]+)@)?(?:file:)?((?:\/[^:/]+){2,})(?::(\d+))?(?::(\d+))?/;function getCallerStackFrame(e,t=Error()){return stackLineToStackFrame(t?.stack?.split("\n")?.filter((e=>!e.includes("Error: ")))?.[e])}function getErrorTrace(e){return(e?.stack?.split("\n")??[])?.filter((e=>!e.includes("Error: ")))?.reduce(((e,t)=>(e.push(stackLineToStackFrame(t)),e)),[])}function stackLineToStackFrame(e){const t=globalThis?.location?.origin,r={fullFilePath:void 0,fileName:void 0,fileNameWithLine:void 0,fileColumn:void 0,fileLine:void 0,filePath:void 0,filePathWithLine:void 0,method:void 0};if(null!=e){const n=e.match(C);if(n){r.filePath=n[1].replace(/\?.*$/,""),r.fullFilePath=`${t}${r.filePath}`;const e=r.filePath.split("/");r.fileName=e[e.length-1],r.fileLine=n[2],r.fileColumn=n[3],r.filePathWithLine=`${r.filePath}:${r.fileLine}`,r.fileNameWithLine=`${r.fileName}:${r.fileLine}`}}return r}function browser_isError(e){return e instanceof Error}function prettyFormatErrorObj(e,t){const r=getErrorTrace(e).map((e=>formatTemplate(t,t.prettyErrorStackTemplate,{...e},!0))),n={errorName:` ${e.name} `,errorMessage:Object.getOwnPropertyNames(e).reduce(((t,r)=>("stack"!==r&&t.push(e[r]),t)),[]).join(", "),errorStack:r.join("\n")};return formatTemplate(t,t.prettyErrorTemplate,n)}class BaseLogger{constructor(e,t,r=4){this.logObj=t,this.stackDepthLevel=r,this.runtime=x,this.settings={type:e?.type??"pretty",name:e?.name,parentNames:e?.parentNames,minLevel:e?.minLevel??0,argumentsArrayName:e?.argumentsArrayName,hideLogPositionForProduction:e?.hideLogPositionForProduction??!1,prettyLogTemplate:e?.prettyLogTemplate??"{{yyyy}}.{{mm}}.{{dd}} {{hh}}:{{MM}}:{{ss}}:{{ms}}\t{{logLevelName}}\t{{filePathWithLine}}{{nameWithDelimiterPrefix}}\t",prettyErrorTemplate:e?.prettyErrorTemplate??"\n{{errorName}} {{errorMessage}}\nerror stack:\n{{errorStack}}",prettyErrorStackTemplate:e?.prettyErrorStackTemplate??" • {{fileName}}\t{{method}}\n\t{{filePathWithLine}}",prettyErrorParentNamesSeparator:e?.prettyErrorParentNamesSeparator??":",prettyErrorLoggerNameDelimiter:e?.prettyErrorLoggerNameDelimiter??"\t",stylePrettyLogs:e?.stylePrettyLogs??!0,prettyLogTimeZone:e?.prettyLogTimeZone??"UTC",prettyLogStyles:e?.prettyLogStyles??{logLevelName:{"*":["bold","black","bgWhiteBright","dim"],SILLY:["bold","white"],TRACE:["bold","whiteBright"],DEBUG:["bold","green"],INFO:["bold","blue"],WARN:["bold","yellow"],ERROR:["bold","red"],FATAL:["bold","redBright"]},dateIsoStr:"white",filePathWithLine:"white",name:["white","bold"],nameWithDelimiterPrefix:["white","bold"],nameWithDelimiterSuffix:["white","bold"],errorName:["bold","bgRedBright","whiteBright"],fileName:["yellow"],fileNameWithLine:"white"},prettyInspectOptions:e?.prettyInspectOptions??{colors:!0,compact:!1,depth:1/0},metaProperty:e?.metaProperty??"_meta",maskPlaceholder:e?.maskPlaceholder??"[***]",maskValuesOfKeys:e?.maskValuesOfKeys??["password"],maskValuesOfKeysCaseInsensitive:e?.maskValuesOfKeysCaseInsensitive??!1,maskValuesRegEx:e?.maskValuesRegEx,prefix:[...e?.prefix??[]],attachedTransports:[...e?.attachedTransports??[]],overwrite:{mask:e?.overwrite?.mask,toLogObj:e?.overwrite?.toLogObj,addMeta:e?.overwrite?.addMeta,addPlaceholders:e?.overwrite?.addPlaceholders,formatMeta:e?.overwrite?.formatMeta,formatLogObj:e?.overwrite?.formatLogObj,transportFormatted:e?.overwrite?.transportFormatted,transportJSON:e?.overwrite?.transportJSON}}}log(e,t,...r){if(e<this.settings.minLevel)return;const n=[...this.settings.prefix,...r],i=null!=this.settings.overwrite?.mask?this.settings.overwrite?.mask(n):null!=this.settings.maskValuesOfKeys&&this.settings.maskValuesOfKeys.length>0?this._mask(n):n,s=null!=this.logObj?this._recursiveCloneAndExecuteFunctions(this.logObj):void 0,o=null!=this.settings.overwrite?.toLogObj?this.settings.overwrite?.toLogObj(i,s):this._toLogObj(i,s),a=null!=this.settings.overwrite?.addMeta?this.settings.overwrite?.addMeta(o,e,t):this._addMetaToLogObj(o,e,t);let l,c;return null!=this.settings.overwrite?.formatMeta&&(l=this.settings.overwrite?.formatMeta(a?.[this.settings.metaProperty])),null!=this.settings.overwrite?.formatLogObj&&(c=this.settings.overwrite?.formatLogObj(i,this.settings)),"pretty"===this.settings.type&&(l=l??this._prettyFormatLogObjMeta(a?.[this.settings.metaProperty]),c=c??this.runtime.prettyFormatLogObj(i,this.settings)),null!=l&&null!=c?null!=this.settings.overwrite?.transportFormatted?this.settings.overwrite?.transportFormatted(l,c.args,c.errors,this.settings):this.runtime.transportFormatted(l,c.args,c.errors,this.settings):null!=this.settings.overwrite?.transportJSON?this.settings.overwrite?.transportJSON(a):"hidden"!==this.settings.type&&this.runtime.transportJSON(a),null!=this.settings.attachedTransports&&this.settings.attachedTransports.length>0&&this.settings.attachedTransports.forEach((e=>{e(a)})),a}attachTransport(e){this.settings.attachedTransports.push(e)}getSubLogger(e,t){const r={...this.settings,...e,parentNames:null!=this.settings?.parentNames&&null!=this.settings?.name?[...this.settings.parentNames,this.settings.name]:null!=this.settings?.name?[this.settings.name]:void 0,prefix:[...this.settings.prefix,...e?.prefix??[]]};return new this.constructor(r,t??this.logObj,this.stackDepthLevel)}_mask(e){const t=!0!==this.settings.maskValuesOfKeysCaseInsensitive?this.settings.maskValuesOfKeys:this.settings.maskValuesOfKeys.map((e=>e.toLowerCase()));return e?.map((e=>this._recursiveCloneAndMaskValuesOfKeys(e,t)))}_recursiveCloneAndMaskValuesOfKeys(e,t,r=[]){if(r.includes(e))return{...e};if("object"==typeof e&&null!==e&&r.push(e),this.runtime.isError(e)||this.runtime.isBuffer(e))return e;if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(Array.isArray(e))return e.map((e=>this._recursiveCloneAndMaskValuesOfKeys(e,t,r)));if(e instanceof Date)return new Date(e.getTime());if(e instanceof URL)return function urlToObject(e){return{href:e.href,protocol:e.protocol,username:e.username,password:e.password,host:e.host,hostname:e.hostname,port:e.port,pathname:e.pathname,search:e.search,searchParams:[...e.searchParams].map((([e,t])=>({key:e,value:t}))),hash:e.hash,origin:e.origin}}(e);if(null!==e&&"object"==typeof e){const n=this.runtime.isError(e)?this._cloneError(e):Object.create(Object.getPrototypeOf(e));return Object.getOwnPropertyNames(e).reduce(((n,i)=>(n[i]=t.includes(!0!==this.settings?.maskValuesOfKeysCaseInsensitive?i:i.toLowerCase())?this.settings.maskPlaceholder:(()=>{try{return this._recursiveCloneAndMaskValuesOfKeys(e[i],t,r)}catch(e){return null}})(),n)),n)}if("string"==typeof e){let t=e;for(const e of this.settings?.maskValuesRegEx||[])t=t.replace(e,this.settings?.maskPlaceholder||"");return t}return e}_recursiveCloneAndExecuteFunctions(e,t=[]){return this.isObjectOrArray(e)&&t.includes(e)?this.shallowCopy(e):(this.isObjectOrArray(e)&&t.push(e),Array.isArray(e)?e.map((e=>this._recursiveCloneAndExecuteFunctions(e,t))):e instanceof Date?new Date(e.getTime()):this.isObject(e)?Object.getOwnPropertyNames(e).reduce(((r,n)=>{const i=Object.getOwnPropertyDescriptor(e,n);if(i){Object.defineProperty(r,n,i);const s=e[n];r[n]="function"==typeof s?s():this._recursiveCloneAndExecuteFunctions(s,t)}return r}),Object.create(Object.getPrototypeOf(e))):e)}isObjectOrArray(e){return"object"==typeof e&&null!==e}isObject(e){return"object"==typeof e&&!Array.isArray(e)&&null!==e}shallowCopy(e){return Array.isArray(e)?[...e]:{...e}}_toLogObj(e,t={}){return e=e?.map((e=>this.runtime.isError(e)?this._toErrorObject(e):e)),t=null==this.settings.argumentsArrayName?1!==e.length||Array.isArray(e[0])||!0===this.runtime.isBuffer(e[0])||e[0]instanceof Date?{...t,...e}:"object"==typeof e[0]&&null!=e[0]?{...e[0],...t}:{0:e[0],...t}:{...t,[this.settings.argumentsArrayName]:e}}_cloneError(e){const t=new e.constructor;return Object.getOwnPropertyNames(e).forEach((r=>{t[r]=e[r]})),t}_toErrorObject(e){return{nativeError:e,name:e.name??"Error",message:e.message,stack:this.runtime.getErrorTrace(e)}}_addMetaToLogObj(e,t,r){return{...e,[this.settings.metaProperty]:this.runtime.getMeta(t,r,this.stackDepthLevel,this.settings.hideLogPositionForProduction,this.settings.name,this.settings.parentNames)}}_prettyFormatLogObjMeta(e){if(null==e)return"";let t=this.settings.prettyLogTemplate;const r={};t.includes("{{yyyy}}.{{mm}}.{{dd}} {{hh}}:{{MM}}:{{ss}}:{{ms}}")?t=t.replace("{{yyyy}}.{{mm}}.{{dd}} {{hh}}:{{MM}}:{{ss}}:{{ms}}","{{dateIsoStr}}"):"UTC"===this.settings.prettyLogTimeZone?(r.yyyy=e?.date?.getUTCFullYear()??"----",r.mm=formatNumberAddZeros(e?.date?.getUTCMonth(),2,1),r.dd=formatNumberAddZeros(e?.date?.getUTCDate(),2),r.hh=formatNumberAddZeros(e?.date?.getUTCHours(),2),r.MM=formatNumberAddZeros(e?.date?.getUTCMinutes(),2),r.ss=formatNumberAddZeros(e?.date?.getUTCSeconds(),2),r.ms=formatNumberAddZeros(e?.date?.getUTCMilliseconds(),3)):(r.yyyy=e?.date?.getFullYear()??"----",r.mm=formatNumberAddZeros(e?.date?.getMonth(),2,1),r.dd=formatNumberAddZeros(e?.date?.getDate(),2),r.hh=formatNumberAddZeros(e?.date?.getHours(),2),r.MM=formatNumberAddZeros(e?.date?.getMinutes(),2),r.ss=formatNumberAddZeros(e?.date?.getSeconds(),2),r.ms=formatNumberAddZeros(e?.date?.getMilliseconds(),3));const n="UTC"===this.settings.prettyLogTimeZone?e?.date:new Date(e?.date?.getTime()-6e4*e?.date?.getTimezoneOffset());r.rawIsoStr=n?.toISOString(),r.dateIsoStr=n?.toISOString().replace("T"," ").replace("Z",""),r.logLevelName=e?.logLevelName,r.fileNameWithLine=e?.path?.fileNameWithLine??"",r.filePathWithLine=e?.path?.filePathWithLine??"",r.fullFilePath=e?.path?.fullFilePath??"";let i=this.settings.parentNames?.join(this.settings.prettyErrorParentNamesSeparator);return i=null!=i&&null!=e?.name?i+this.settings.prettyErrorParentNamesSeparator:void 0,r.name=null!=e?.name||null!=i?(i??"")+e?.name??"":"",r.nameWithDelimiterPrefix=r.name.length>0?this.settings.prettyErrorLoggerNameDelimiter+r.name:"",r.nameWithDelimiterSuffix=r.name.length>0?r.name+this.settings.prettyErrorLoggerNameDelimiter:"",null!=this.settings.overwrite?.addPlaceholders&&this.settings.overwrite?.addPlaceholders(e,r),formatTemplate(this.settings,t,r)}}class esm_Logger extends BaseLogger{constructor(e,t){const r="undefined"!=typeof window&&"undefined"!=typeof document,n=!!r&&(void 0!==window.chrome&&void 0!==window.CSS&&window.CSS.supports("color","green")),i=!!r&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent);(e=e||{}).stylePrettyLogs=!(e.stylePrettyLogs&&r&&!n)&&e.stylePrettyLogs,super(e,t,i?4:5)}log(e,t,...r){return super.log(e,t,...r)}silly(...e){return super.log(0,"SILLY",...e)}trace(...e){return super.log(1,"TRACE",...e)}debug(...e){return super.log(2,"DEBUG",...e)}info(...e){return super.log(3,"INFO",...e)}warn(...e){return super.log(4,"WARN",...e)}error(...e){return super.log(5,"ERROR",...e)}fatal(...e){return super.log(6,"FATAL",...e)}getSubLogger(e,t){return super.getSubLogger(e,t)}}var I,L,R,j;!function(e){e.PostRegister="ember-nexus-sdk-post-register",e.PostChangePassword="ember-nexus-sdk-post-change-password",e.GetMe="ember-nexus-sdk-get-me",e.PostToken="ember-nexus-sdk-post-token",e.GetToken="ember-nexus-sdk-get-token",e.DeleteToken="ember-nexus-sdk-delete-token",e.GetIndex="ember-nexus-sdk-get-index",e.GetElement="ember-nexus-sdk-get-element",e.GetElementParents="ember-nexus-sdk-get-element-parents",e.GetElementChildren="ember-nexus-sdk-get-element-children",e.GetElementRelated="ember-nexus-sdk-get-element-related",e.PostIndex="ember-nexus-sdk-post-index",e.PostElement="ember-nexus-sdk-post-element",e.PutElement="ember-nexus-sdk-put-element",e.PatchElement="ember-nexus-sdk-patch-element",e.DeleteElement="ember-nexus-sdk-delete-element",e.GetElementFile="ember-nexus-sdk-get-element-file",e.PostElementFile="ember-nexus-sdk-post-element-file",e.PutElementFile="ember-nexus-sdk-put-element-file",e.PatchElementFile="ember-nexus-sdk-patch-element-file",e.DeleteElementFile="ember-nexus-sdk-delete-element-file",e.CopyElement="ember-nexus-sdk-copy-element",e.LockElement="ember-nexus-sdk-lock-element",e.UnlockElement="ember-nexus-sdk-unlock-element",e.MkcolElement="ember-nexus-sdk-mkcol-element",e.MoveElement="ember-nexus-sdk-move-element",e.PropfindElement="ember-nexus-sdk-propfind-element",e.ProppatchElement="ember-nexus-sdk-proppatch-element",e.PostSearch="ember-nexus-sdk-post-search",e.GetInstanceConfiguration="ember-nexus-sdk-get-instance-configuration"}(I||(I={})),function(e){e.GET="GET",e.POST="POST",e.PATCH="PATCH",e.PUT="PUT",e.DELETE="DELETE",e.HEAD="HEAD",e.COPY="COPY",e.LOCK="LOCK",e.UNLOCK="UNLOCK",e.MKCOL="MKCOL",e.MOVE="MOVE",e.PROPFIND="PROPFIND",e.PROPPATCH="PROPPATCH"}(L||(L={})),function(e){e[e.Debug=2]="Debug",e[e.Info=3]="Info",e[e.Warn=4]="Warn",e[e.Error=5]="Error"}(R||(R={})),function(e){e.ClientSide="client",e.ServerSide="server",e.Logic="Logic"}(j||(j={}));let F=class LoggerFactory{create(){const e=new esm_Logger({minLevel:R.Debug,stylePrettyLogs:!1});return new A(e)}};F=__decorate([Service()],F);let A=class Logger{logger;constructor(e){this.logger=e}debug(...e){return this.logger.debug(e)}error(...e){return this.logger.error(e)}info(...e){return this.logger.info(e)}warn(...e){return this.logger.warn(e)}};A=__decorate([Service({factory:[F,"create"]}),__metadata("design:paramtypes",[esm_Logger])],A);let z=class WebSdkConfiguration{logger;token;apiHost;elementCacheMaxEntries;collectionCacheMaxEntries;collectionPageSize;constructor(e){this.logger=e,this.token=null,this.apiHost="",this.elementCacheMaxEntries=100,this.collectionCacheMaxEntries=50,this.collectionPageSize=25}hasToken(){return null!==this.token}getToken(){return this.token}setToken(e){return this.token=e,this}getApiHost(){return this.apiHost}setApiHost(e){return e.endsWith("/")&&(this.logger.warn("Removed trailing slash from API host configuration due to internal requirement. Please check if trailing slash can be directly removed."),e=e.replace(/\/+$/,"")),this.apiHost=e,this}getElementCacheMaxEntries(){return this.elementCacheMaxEntries}setElementCacheMaxEntries(e){return this.elementCacheMaxEntries=e,this}getCollectionCacheMaxEntries(){return this.collectionCacheMaxEntries}setCollectionCacheMaxEntries(e){return this.collectionCacheMaxEntries=e,this}getCollectionPageSize(){return this.collectionPageSize}setCollectionPageSize(e){return this.collectionPageSize=e,this}};z=__decorate([Service(),__metadata("design:paramtypes",[A])],z);let N=class FetchHelper{logger;constructor(e){this.logger=e}createResponseErrorFromBadResponse(e,t){let r=null;return 401===e.status&&(r=new Response401UnauthorizedError("Server returned 401 unauthorized.")),403===e.status&&(r=new Response403ForbiddenError("Server returned 403 forbidden.")),404===e.status&&(r=new Response404NotFoundError("Server returned 404 not found.")),429===e.status&&(r=new Response429TooManyRequestsError("Server returned 429 too many requests.")),null===r&&(r=new ResponseError("Generic response error.")),"type"in t&&r.setType(String(t.type)),"title"in t&&r.setTitle(String(t.title)),"detail"in t&&r.setDetail(String(t.detail)),"status"in t&&null===r.getStatus()&&r.setStatus(Number(t.status)),r}addAuthorizationHeader(e){_.get(z).hasToken()&&(e.Authorization=`Bearer ${_.get(z).getToken()}`)}addAcceptJsonAndProblemJsonHeader(e){e.Accept="application/json, application/problem+json"}addContentTypeJsonHeader(e){e["Content-Type"]="application/json"}getDefaultGetOptions(){const e={};return this.addAuthorizationHeader(e),this.addAcceptJsonAndProblemJsonHeader(e),{method:L.GET,headers:e,redirect:"follow",referrerPolicy:"no-referrer"}}getDefaultDeleteOptions(){const e={};return this.addAuthorizationHeader(e),this.addAcceptJsonAndProblemJsonHeader(e),{method:L.DELETE,headers:e,redirect:"follow",referrerPolicy:"no-referrer"}}getDefaultPostOptions(e){const t={};return this.addAuthorizationHeader(t),this.addAcceptJsonAndProblemJsonHeader(t),this.addContentTypeJsonHeader(t),{method:L.POST,headers:t,redirect:"follow",referrerPolicy:"no-referrer",body:e}}getDefaultPatchOptions(e){const t={};return this.addAuthorizationHeader(t),this.addAcceptJsonAndProblemJsonHeader(t),this.addContentTypeJsonHeader(t),{method:L.PATCH,headers:t,redirect:"follow",referrerPolicy:"no-referrer",body:e}}getDefaultPutOptions(e){const t={};return this.addAuthorizationHeader(t),this.addAcceptJsonAndProblemJsonHeader(t),this.addContentTypeJsonHeader(t),{method:L.PUT,headers:t,redirect:"follow",referrerPolicy:"no-referrer",body:e}}buildUrl(e){return`${_.get(z).getApiHost()}${e}`}runWrappedFetch(e,t){return e=`${_.get(z).getApiHost()}${e}`,this.logger.debug(`Executing HTTP ${t?.method??"-"} request against url ${e} .`),fetch(e,t)}};N=__decorate([Service(),__metadata("design:paramtypes",[A])],N);class RawValueToNormalizedValueEvent{rawValue;normalizedValue=null;propagationStopped=!1;constructor(e){this.rawValue=e}isPropagationStopped(){return this.propagationStopped}stopPropagation(){return this.propagationStopped=!0,this}getRawValue(){return this.rawValue}getNormalizedValue(){return this.normalizedValue}setNormalizedValue(e){return this.normalizedValue=e,this}}var D;let U=class DateTimeRawValueToNormalizedValueEventListener{static{D=this}static dateRegex=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}:\d{2}$/;triggerOnEvent(e){const t=e.getRawValue();if("string"!=typeof t)return;if(!D.dateRegex.test(t))return;const r=new Date(t);e.setNormalizedValue(r),e.stopPropagation()}};U=D=__decorate([Service()],U);let H=class GenericRawValueToNormalizedValueEventListener{triggerOnEvent(e){const t=e.getRawValue();(Array.isArray(t)||"number"==typeof t||"boolean"==typeof t||"string"==typeof t||null===t)&&(e.setNormalizedValue(t),e.stopPropagation())}};H=__decorate([Service()],H);class EventManager{eventListeners=[];registerEventListener(e,t=0){if(0!==this.eventListeners.length)for(let r=0;r<this.eventListeners.length;r++){if(r===this.eventListeners.length-1)return void this.eventListeners.push([t,e]);if(this.eventListeners[r][0]>t)return void this.eventListeners.splice(r,0,[t,e])}else this.eventListeners.push([t,e])}handleEvent(e){if(!e.isPropagationStopped())for(let t=this.eventListeners.length-1;t>=0;t--)if(this.eventListeners[t][1].triggerOnEvent(e),e.isPropagationStopped())return}}let G=class RawValueToNormalizedValueEventManager extends EventManager{constructor(e,t){super(),this.registerEventListener(t,0),this.registerEventListener(e,1)}};G=__decorate([Service(),__metadata("design:paramtypes",[U,H])],G);let V=class RawValueToNormalizedValueHelper{logger;rawValueToNormalizedValueEventManager;constructor(e,t){this.logger=e,this.rawValueToNormalizedValueEventManager=t}parseRawData(e){const t={};for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)){const n=new RawValueToNormalizedValueEvent(e[r]);if(this.rawValueToNormalizedValueEventManager.handleEvent(n),!n.isPropagationStopped()){this.logger.warn("Unable to normalize the following data property.",{key:r,data:e[r]});continue}t[r]=n.getNormalizedValue()}return t}};V=__decorate([Service(),__metadata("design:paramtypes",[A,G])],V);let B=class RequestProblemParser{rawRequestProblemToRequestProblem(e){const t=j.ServerSide;if(!("title"in e))throw new Error("Raw Problem must contain property 'title' in order to be correctly parsed.");const r=String(e.title);if(!("detail"in e))throw new Error("Raw Problem must contain property 'detail' in order to be correctly parsed.");const n={category:t,title:r,detail:String(e.detail)};if("type"in e&&(n.type=String(e.type)),"status"in e&&(n.status=Number(e.status)),"exception"in e){if("object"!=typeof e.exception||null===e.exception)throw new Error("Property 'exception' of raw problem must be a record of type string, any.");n.exception=e.exception}return n}};B=__decorate([Service()],B);let W=class TokenParser{rawTokenToToken(e){if(!("type"in e))throw new Error("Raw token must contain property 'type' in order to be parsed to a token.");if("_TokenResponse"!==String(e.type))throw new Error("Type must be '_TokenResponse' in order to be parsed to a token.");if(!("token"in e))throw new Error("Raw token must contain property 'token' in order to be parsed to a token.");return function validateTokenFromString(e){if(!S.test(e))throw new Error("Passed variable is not a valid token.");return e}(String(e.token))}};W=__decorate([Service()],W);__webpack_require__(630);const $="object"==typeof performance&&performance&&"function"==typeof performance.now?performance:Date,K=new Set,q="object"==typeof process&&process?process:{},emitWarning=(e,t,r,n)=>{"function"==typeof q.emitWarning?q.emitWarning(e,t,r,n):console.error(`[${r}] ${t}: ${e}`)};let J=globalThis.AbortController,Z=globalThis.AbortSignal;if(void 0===J){Z=class AbortSignal{onabort;_onabort=[];reason;aborted=!1;addEventListener(e,t){this._onabort.push(t)}},J=class AbortController{constructor(){warnACPolyfill()}signal=new Z;abort(e){if(!this.signal.aborted){this.signal.reason=e,this.signal.aborted=!0;for(const t of this.signal._onabort)t(e);this.signal.onabort?.(e)}}};let e="1"!==q.env?.LRU_CACHE_IGNORE_AC_WARNING;const warnACPolyfill=()=>{e&&(e=!1,emitWarning("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",warnACPolyfill))}}Symbol("type");const isPosInt=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),getUintArray=e=>isPosInt(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?ZeroArray:null:null;class ZeroArray extends Array{constructor(e){super(e),this.fill(0)}}class Stack{heap;length;static#e=!1;static create(e){const t=getUintArray(e);if(!t)return[];Stack.#e=!0;const r=new Stack(e,t);return Stack.#e=!1,r}constructor(e,t){if(!Stack.#e)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new t(e),this.length=0}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}}class LRUCache{#t;#r;#n;#i;#s;#o;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#a;#l;#c;#h;#u;#d;#p;#f;#g;#y;#m;#v;#w;#b;#E;#_;#S;static unsafeExposeInternals(e){return{starts:e.#w,ttls:e.#b,sizes:e.#v,keyMap:e.#c,keyList:e.#h,valList:e.#u,next:e.#d,prev:e.#p,get head(){return e.#f},get tail(){return e.#g},free:e.#y,isBackgroundFetch:t=>e.#P(t),backgroundFetch:(t,r,n,i)=>e.#O(t,r,n,i),moveToTail:t=>e.#k(t),indexes:t=>e.#T(t),rindexes:t=>e.#x(t),isStale:t=>e.#M(t)}}get max(){return this.#t}get maxSize(){return this.#r}get calculatedSize(){return this.#l}get size(){return this.#a}get fetchMethod(){return this.#s}get memoMethod(){return this.#o}get dispose(){return this.#n}get disposeAfter(){return this.#i}constructor(e){const{max:t=0,ttl:r,ttlResolution:n=1,ttlAutopurge:i,updateAgeOnGet:s,updateAgeOnHas:o,allowStale:a,dispose:l,disposeAfter:c,noDisposeOnSet:h,noUpdateTTL:u,maxSize:d=0,maxEntrySize:p=0,sizeCalculation:f,fetchMethod:g,memoMethod:y,noDeleteOnFetchRejection:m,noDeleteOnStaleGet:v,allowStaleOnFetchRejection:w,allowStaleOnFetchAbort:b,ignoreFetchAbort:E}=e;if(0!==t&&!isPosInt(t))throw new TypeError("max option must be a nonnegative integer");const _=t?getUintArray(t):Array;if(!_)throw new Error("invalid max value: "+t);if(this.#t=t,this.#r=d,this.maxEntrySize=p||this.#r,this.sizeCalculation=f,this.sizeCalculation){if(!this.#r&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if("function"!=typeof this.sizeCalculation)throw new TypeError("sizeCalculation set to non-function")}if(void 0!==y&&"function"!=typeof y)throw new TypeError("memoMethod must be a function if defined");if(this.#o=y,void 0!==g&&"function"!=typeof g)throw new TypeError("fetchMethod must be a function if specified");if(this.#s=g,this.#_=!!g,this.#c=new Map,this.#h=new Array(t).fill(void 0),this.#u=new Array(t).fill(void 0),this.#d=new _(t),this.#p=new _(t),this.#f=0,this.#g=0,this.#y=Stack.create(t),this.#a=0,this.#l=0,"function"==typeof l&&(this.#n=l),"function"==typeof c?(this.#i=c,this.#m=[]):(this.#i=void 0,this.#m=void 0),this.#E=!!this.#n,this.#S=!!this.#i,this.noDisposeOnSet=!!h,this.noUpdateTTL=!!u,this.noDeleteOnFetchRejection=!!m,this.allowStaleOnFetchRejection=!!w,this.allowStaleOnFetchAbort=!!b,this.ignoreFetchAbort=!!E,0!==this.maxEntrySize){if(0!==this.#r&&!isPosInt(this.#r))throw new TypeError("maxSize must be a positive integer if specified");if(!isPosInt(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#C()}if(this.allowStale=!!a,this.noDeleteOnStaleGet=!!v,this.updateAgeOnGet=!!s,this.updateAgeOnHas=!!o,this.ttlResolution=isPosInt(n)||0===n?n:1,this.ttlAutopurge=!!i,this.ttl=r||0,this.ttl){if(!isPosInt(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#I()}if(0===this.#t&&0===this.ttl&&0===this.#r)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#t&&!this.#r){const e="LRU_CACHE_UNBOUNDED";if((e=>!K.has(e))(e)){K.add(e);emitWarning("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",e,LRUCache)}}}getRemainingTTL(e){return this.#c.has(e)?1/0:0}#I(){const e=new ZeroArray(this.#t),t=new ZeroArray(this.#t);this.#b=e,this.#w=t,this.#L=(r,n,i=$.now())=>{if(t[r]=0!==n?i:0,e[r]=n,0!==n&&this.ttlAutopurge){const e=setTimeout((()=>{this.#M(r)&&this.#R(this.#h[r],"expire")}),n+1);e.unref&&e.unref()}},this.#j=r=>{t[r]=0!==e[r]?$.now():0},this.#F=(n,i)=>{if(e[i]){const s=e[i],o=t[i];if(!s||!o)return;n.ttl=s,n.start=o,n.now=r||getNow();const a=n.now-o;n.remainingTTL=s-a}};let r=0;const getNow=()=>{const e=$.now();if(this.ttlResolution>0){r=e;const t=setTimeout((()=>r=0),this.ttlResolution);t.unref&&t.unref()}return e};this.getRemainingTTL=n=>{const i=this.#c.get(n);if(void 0===i)return 0;const s=e[i],o=t[i];if(!s||!o)return 1/0;return s-((r||getNow())-o)},this.#M=n=>{const i=t[n],s=e[n];return!!s&&!!i&&(r||getNow())-i>s}}#j=()=>{};#F=()=>{};#L=()=>{};#M=()=>!1;#C(){const e=new ZeroArray(this.#t);this.#l=0,this.#v=e,this.#A=t=>{this.#l-=e[t],e[t]=0},this.#z=(e,t,r,n)=>{if(this.#P(t))return 0;if(!isPosInt(r)){if(!n)throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");if("function"!=typeof n)throw new TypeError("sizeCalculation must be a function");if(r=n(t,e),!isPosInt(r))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}return r},this.#N=(t,r,n)=>{if(e[t]=r,this.#r){const r=this.#r-e[t];for(;this.#l>r;)this.#D(!0)}this.#l+=e[t],n&&(n.entrySize=r,n.totalCalculatedSize=this.#l)}}#A=e=>{};#N=(e,t,r)=>{};#z=(e,t,r,n)=>{if(r||n)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#T({allowStale:e=this.allowStale}={}){if(this.#a)for(let t=this.#g;this.#U(t)&&(!e&&this.#M(t)||(yield t),t!==this.#f);)t=this.#p[t]}*#x({allowStale:e=this.allowStale}={}){if(this.#a)for(let t=this.#f;this.#U(t)&&(!e&&this.#M(t)||(yield t),t!==this.#g);)t=this.#d[t]}#U(e){return void 0!==e&&this.#c.get(this.#h[e])===e}*entries(){for(const e of this.#T())void 0===this.#u[e]||void 0===this.#h[e]||this.#P(this.#u[e])||(yield[this.#h[e],this.#u[e]])}*rentries(){for(const e of this.#x())void 0===this.#u[e]||void 0===this.#h[e]||this.#P(this.#u[e])||(yield[this.#h[e],this.#u[e]])}*keys(){for(const e of this.#T()){const t=this.#h[e];void 0===t||this.#P(this.#u[e])||(yield t)}}*rkeys(){for(const e of this.#x()){const t=this.#h[e];void 0===t||this.#P(this.#u[e])||(yield t)}}*values(){for(const e of this.#T()){void 0===this.#u[e]||this.#P(this.#u[e])||(yield this.#u[e])}}*rvalues(){for(const e of this.#x()){void 0===this.#u[e]||this.#P(this.#u[e])||(yield this.#u[e])}}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(e,t={}){for(const r of this.#T()){const n=this.#u[r],i=this.#P(n)?n.__staleWhileFetching:n;if(void 0!==i&&e(i,this.#h[r],this))return this.get(this.#h[r],t)}}forEach(e,t=this){for(const r of this.#T()){const n=this.#u[r],i=this.#P(n)?n.__staleWhileFetching:n;void 0!==i&&e.call(t,i,this.#h[r],this)}}rforEach(e,t=this){for(const r of this.#x()){const n=this.#u[r],i=this.#P(n)?n.__staleWhileFetching:n;void 0!==i&&e.call(t,i,this.#h[r],this)}}purgeStale(){let e=!1;for(const t of this.#x({allowStale:!0}))this.#M(t)&&(this.#R(this.#h[t],"expire"),e=!0);return e}info(e){const t=this.#c.get(e);if(void 0===t)return;const r=this.#u[t],n=this.#P(r)?r.__staleWhileFetching:r;if(void 0===n)return;const i={value:n};if(this.#b&&this.#w){const e=this.#b[t],r=this.#w[t];if(e&&r){const t=e-($.now()-r);i.ttl=t,i.start=Date.now()}}return this.#v&&(i.size=this.#v[t]),i}dump(){const e=[];for(const t of this.#T({allowStale:!0})){const r=this.#h[t],n=this.#u[t],i=this.#P(n)?n.__staleWhileFetching:n;if(void 0===i||void 0===r)continue;const s={value:i};if(this.#b&&this.#w){s.ttl=this.#b[t];const e=$.now()-this.#w[t];s.start=Math.floor(Date.now()-e)}this.#v&&(s.size=this.#v[t]),e.unshift([r,s])}return e}load(e){this.clear();for(const[t,r]of e){if(r.start){const e=Date.now()-r.start;r.start=$.now()-e}this.set(t,r.value,r)}}set(e,t,r={}){if(void 0===t)return this.delete(e),this;const{ttl:n=this.ttl,start:i,noDisposeOnSet:s=this.noDisposeOnSet,sizeCalculation:o=this.sizeCalculation,status:a}=r;let{noUpdateTTL:l=this.noUpdateTTL}=r;const c=this.#z(e,t,r.size||0,o);if(this.maxEntrySize&&c>this.maxEntrySize)return a&&(a.set="miss",a.maxEntrySizeExceeded=!0),this.#R(e,"set"),this;let h=0===this.#a?void 0:this.#c.get(e);if(void 0===h)h=0===this.#a?this.#g:0!==this.#y.length?this.#y.pop():this.#a===this.#t?this.#D(!1):this.#a,this.#h[h]=e,this.#u[h]=t,this.#c.set(e,h),this.#d[this.#g]=h,this.#p[h]=this.#g,this.#g=h,this.#a++,this.#N(h,c,a),a&&(a.set="add"),l=!1;else{this.#k(h);const r=this.#u[h];if(t!==r){if(this.#_&&this.#P(r)){r.__abortController.abort(new Error("replaced"));const{__staleWhileFetching:t}=r;void 0===t||s||(this.#E&&this.#n?.(t,e,"set"),this.#S&&this.#m?.push([t,e,"set"]))}else s||(this.#E&&this.#n?.(r,e,"set"),this.#S&&this.#m?.push([r,e,"set"]));if(this.#A(h),this.#N(h,c,a),this.#u[h]=t,a){a.set="replace";const e=r&&this.#P(r)?r.__staleWhileFetching:r;void 0!==e&&(a.oldValue=e)}}else a&&(a.set="update")}if(0===n||this.#b||this.#I(),this.#b&&(l||this.#L(h,n,i),a&&this.#F(a,h)),!s&&this.#S&&this.#m){const e=this.#m;let t;for(;t=e?.shift();)this.#i?.(...t)}return this}pop(){try{for(;this.#a;){const e=this.#u[this.#f];if(this.#D(!0),this.#P(e)){if(e.__staleWhileFetching)return e.__staleWhileFetching}else if(void 0!==e)return e}}finally{if(this.#S&&this.#m){const e=this.#m;let t;for(;t=e?.shift();)this.#i?.(...t)}}}#D(e){const t=this.#f,r=this.#h[t],n=this.#u[t];return this.#_&&this.#P(n)?n.__abortController.abort(new Error("evicted")):(this.#E||this.#S)&&(this.#E&&this.#n?.(n,r,"evict"),this.#S&&this.#m?.push([n,r,"evict"])),this.#A(t),e&&(this.#h[t]=void 0,this.#u[t]=void 0,this.#y.push(t)),1===this.#a?(this.#f=this.#g=0,this.#y.length=0):this.#f=this.#d[t],this.#c.delete(r),this.#a--,t}has(e,t={}){const{updateAgeOnHas:r=this.updateAgeOnHas,status:n}=t,i=this.#c.get(e);if(void 0!==i){const e=this.#u[i];if(this.#P(e)&&void 0===e.__staleWhileFetching)return!1;if(!this.#M(i))return r&&this.#j(i),n&&(n.has="hit",this.#F(n,i)),!0;n&&(n.has="stale",this.#F(n,i))}else n&&(n.has="miss");return!1}peek(e,t={}){const{allowStale:r=this.allowStale}=t,n=this.#c.get(e);if(void 0===n||!r&&this.#M(n))return;const i=this.#u[n];return this.#P(i)?i.__staleWhileFetching:i}#O(e,t,r,n){const i=void 0===t?void 0:this.#u[t];if(this.#P(i))return i;const s=new J,{signal:o}=r;o?.addEventListener("abort",(()=>s.abort(o.reason)),{signal:s.signal});const a={signal:s.signal,options:r,context:n},cb=(n,i=!1)=>{const{aborted:o}=s.signal,c=r.ignoreFetchAbort&&void 0!==n;if(r.status&&(o&&!i?(r.status.fetchAborted=!0,r.status.fetchError=s.signal.reason,c&&(r.status.fetchAbortIgnored=!0)):r.status.fetchResolved=!0),o&&!c&&!i)return fetchFail(s.signal.reason);const h=l;return this.#u[t]===l&&(void 0===n?h.__staleWhileFetching?this.#u[t]=h.__staleWhileFetching:this.#R(e,"fetch"):(r.status&&(r.status.fetchUpdated=!0),this.set(e,n,a.options))),n},fetchFail=n=>{const{aborted:i}=s.signal,o=i&&r.allowStaleOnFetchAbort,a=o||r.allowStaleOnFetchRejection,c=a||r.noDeleteOnFetchRejection,h=l;if(this.#u[t]===l){!c||void 0===h.__staleWhileFetching?this.#R(e,"fetch"):o||(this.#u[t]=h.__staleWhileFetching)}if(a)return r.status&&void 0!==h.__staleWhileFetching&&(r.status.returnedStale=!0),h.__staleWhileFetching;if(h.__returned===h)throw n};r.status&&(r.status.fetchDispatched=!0);const l=new Promise(((t,n)=>{const o=this.#s?.(e,i,a);o&&o instanceof Promise&&o.then((e=>t(void 0===e?void 0:e)),n),s.signal.addEventListener("abort",(()=>{r.ignoreFetchAbort&&!r.allowStaleOnFetchAbort||(t(void 0),r.allowStaleOnFetchAbort&&(t=e=>cb(e,!0)))}))})).then(cb,(e=>(r.status&&(r.status.fetchRejected=!0,r.status.fetchError=e),fetchFail(e)))),c=Object.assign(l,{__abortController:s,__staleWhileFetching:i,__returned:void 0});return void 0===t?(this.set(e,c,{...a.options,status:void 0}),t=this.#c.get(e)):this.#u[t]=c,c}#P(e){if(!this.#_)return!1;const t=e;return!!t&&t instanceof Promise&&t.hasOwnProperty("__staleWhileFetching")&&t.__abortController instanceof J}async fetch(e,t={}){const{allowStale:r=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:i=this.noDeleteOnStaleGet,ttl:s=this.ttl,noDisposeOnSet:o=this.noDisposeOnSet,size:a=0,sizeCalculation:l=this.sizeCalculation,noUpdateTTL:c=this.noUpdateTTL,noDeleteOnFetchRejection:h=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:u=this.allowStaleOnFetchRejection,ignoreFetchAbort:d=this.ignoreFetchAbort,allowStaleOnFetchAbort:p=this.allowStaleOnFetchAbort,context:f,forceRefresh:g=!1,status:y,signal:m}=t;if(!this.#_)return y&&(y.fetch="get"),this.get(e,{allowStale:r,updateAgeOnGet:n,noDeleteOnStaleGet:i,status:y});const v={allowStale:r,updateAgeOnGet:n,noDeleteOnStaleGet:i,ttl:s,noDisposeOnSet:o,size:a,sizeCalculation:l,noUpdateTTL:c,noDeleteOnFetchRejection:h,allowStaleOnFetchRejection:u,allowStaleOnFetchAbort:p,ignoreFetchAbort:d,status:y,signal:m};let w=this.#c.get(e);if(void 0===w){y&&(y.fetch="miss");const t=this.#O(e,w,v,f);return t.__returned=t}{const t=this.#u[w];if(this.#P(t)){const e=r&&void 0!==t.__staleWhileFetching;return y&&(y.fetch="inflight",e&&(y.returnedStale=!0)),e?t.__staleWhileFetching:t.__returned=t}const i=this.#M(w);if(!g&&!i)return y&&(y.fetch="hit"),this.#k(w),n&&this.#j(w),y&&this.#F(y,w),t;const s=this.#O(e,w,v,f),o=void 0!==s.__staleWhileFetching&&r;return y&&(y.fetch=i?"stale":"refresh",o&&i&&(y.returnedStale=!0)),o?s.__staleWhileFetching:s.__returned=s}}async forceFetch(e,t={}){const r=await this.fetch(e,t);if(void 0===r)throw new Error("fetch() returned undefined");return r}memo(e,t={}){const r=this.#o;if(!r)throw new Error("no memoMethod provided to constructor");const{context:n,forceRefresh:i,...s}=t,o=this.get(e,s);if(!i&&void 0!==o)return o;const a=r(e,o,{options:s,context:n});return this.set(e,a,s),a}get(e,t={}){const{allowStale:r=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:i=this.noDeleteOnStaleGet,status:s}=t,o=this.#c.get(e);if(void 0!==o){const t=this.#u[o],a=this.#P(t);return s&&this.#F(s,o),this.#M(o)?(s&&(s.get="stale"),a?(s&&r&&void 0!==t.__staleWhileFetching&&(s.returnedStale=!0),r?t.__staleWhileFetching:void 0):(i||this.#R(e,"expire"),s&&r&&(s.returnedStale=!0),r?t:void 0)):(s&&(s.get="hit"),a?t.__staleWhileFetching:(this.#k(o),n&&this.#j(o),t))}s&&(s.get="miss")}#H(e,t){this.#p[t]=e,this.#d[e]=t}#k(e){e!==this.#g&&(e===this.#f?this.#f=this.#d[e]:this.#H(this.#p[e],this.#d[e]),this.#H(this.#g,e),this.#g=e)}delete(e){return this.#R(e,"delete")}#R(e,t){let r=!1;if(0!==this.#a){const n=this.#c.get(e);if(void 0!==n)if(r=!0,1===this.#a)this.#G(t);else{this.#A(n);const r=this.#u[n];if(this.#P(r)?r.__abortController.abort(new Error("deleted")):(this.#E||this.#S)&&(this.#E&&this.#n?.(r,e,t),this.#S&&this.#m?.push([r,e,t])),this.#c.delete(e),this.#h[n]=void 0,this.#u[n]=void 0,n===this.#g)this.#g=this.#p[n];else if(n===this.#f)this.#f=this.#d[n];else{const e=this.#p[n];this.#d[e]=this.#d[n];const t=this.#d[n];this.#p[t]=this.#p[n]}this.#a--,this.#y.push(n)}}if(this.#S&&this.#m?.length){const e=this.#m;let t;for(;t=e?.shift();)this.#i?.(...t)}return r}clear(){return this.#G("delete")}#G(e){for(const t of this.#x({allowStale:!0})){const r=this.#u[t];if(this.#P(r))r.__abortController.abort(new Error("deleted"));else{const n=this.#h[t];this.#E&&this.#n?.(r,n,e),this.#S&&this.#m?.push([r,n,e])}}if(this.#c.clear(),this.#u.fill(void 0),this.#h.fill(void 0),this.#b&&this.#w&&(this.#b.fill(0),this.#w.fill(0)),this.#v&&this.#v.fill(0),this.#f=0,this.#g=0,this.#y.length=0,this.#l=0,this.#a=0,this.#S&&this.#m){const e=this.#m;let t;for(;t=e?.shift();)this.#i?.(...t)}}}let Y=class DeleteElementEndpoint{logger;fetchHelper;constructor(e,t){this.logger=e,this.fetchHelper=t}deleteElement(e){const t=this.fetchHelper.buildUrl(`/${e}`);return this.logger.debug(`Executing HTTP DELETE request against url ${t} .`),fetch(t,this.fetchHelper.getDefaultDeleteOptions()).catch((e=>{throw new NetworkError("Experienced generic network error during deleting resource.",e)})).then((async e=>{if(e.ok&&204===e.status)return;const t=e.headers.get("Content-Type");if(null===t)throw new ParseError_ParseError("Response does not contain content type header.");if(!t.includes("application/problem+json"))throw new ParseError_ParseError("Unable to parse response as content type is not 'application/problem+json'.");const r=await e.json();throw this.fetchHelper.createResponseErrorFromBadResponse(e,r)})).catch((e=>{throw this.logger.error(e.message,e),e}))}};Y=__decorate([Service(),__metadata("design:paramtypes",[A,N])],Y);let X=class GetElementChildrenEndpoint{logger;fetchHelper;collectionParser;constructor(e,t,r){this.logger=e,this.fetchHelper=t,this.collectionParser=r}getElementChildren(e,t=1,r=25){return Promise.resolve().then((()=>{if(t<1)throw new ValidationError_ValidationError("Page number must be at least 1.");if(r<1)throw new ValidationError_ValidationError("Page size must be at least 1.");const n=this.fetchHelper.buildUrl(`/${e}/children?page=${t}&pageSize=${r}`);return this.logger.debug(`Executing HTTP GET request against url ${n} .`),fetch(n,this.fetchHelper.getDefaultGetOptions())})).catch((e=>{if(e instanceof EmberNexusError_EmberNexusError)throw e;throw new NetworkError("Experienced generic network error during fetching resource.",e)})).then((async e=>{const t=e.headers.get("Content-Type");if(null===t)throw new ParseError_ParseError("Response does not contain content type header.");if(!t.includes("application/json")&&!t.includes("application/problem+json"))throw new ParseError_ParseError("Unable to parse response as content type is neither 'application/json' nor 'application/problem+json'.");const r=await e.json();if(!e.ok)throw this.fetchHelper.createResponseErrorFromBadResponse(e,r);return r})).then((e=>this.collectionParser.rawCollectionToCollection(e))).catch((e=>{throw this.logger.error(e.message,e),e}))}};X=__decorate([Service(),__metadata("design:paramtypes",[A,N,k])],X);let Q=class GetElementEndpoint{logger;fetchHelper;elementParser;constructor(e,t,r){this.logger=e,this.fetchHelper=t,this.elementParser=r}getElement(e){const t=this.fetchHelper.buildUrl(`/${e}`);return this.logger.debug(`Executing HTTP GET request against url ${t} .`),fetch(t,this.fetchHelper.getDefaultGetOptions()).catch((e=>{throw new NetworkError("Experienced generic network error during fetching resource.",e)})).then((async e=>{const t=e.headers.get("Content-Type");if(null===t)throw new ParseError_ParseError("Response does not contain content type header.");if(!t.includes("application/json")&&!t.includes("application/problem+json"))throw new ParseError_ParseError("Unable to parse response as content type is neither 'application/json' nor 'application/problem+json'.");const r=await e.json();if(!e.ok)throw this.fetchHelper.createResponseErrorFromBadResponse(e,r);return r})).then((e=>this.elementParser.rawElementToNodeOrRelation(e))).catch((e=>{throw this.logger.error(e.message,e),e}))}};Q=__decorate([Service(),__metadata("design:paramtypes",[A,N,O])],Q);let ee=class GetElementParentsEndpoint{logger;fetchHelper;collectionParser;constructor(e,t,r){this.logger=e,this.fetchHelper=t,this.collectionParser=r}getElementParents(e,t=1,r=25){return Promise.resolve().then((()=>{if(t<1)throw new ValidationError_ValidationError("Page number must be at least 1.");if(r<1)throw new ValidationError_ValidationError("Page size must be at least 1.");const n=this.fetchHelper.buildUrl(`/${e}/parents?page=${t}&pageSize=${r}`);return this.logger.debug(`Executing HTTP GET request against url ${n} .`),fetch(n,this.fetchHelper.getDefaultGetOptions())})).catch((e=>{if(e instanceof EmberNexusError_EmberNexusError)throw e;throw new NetworkError("Experienced generic network error during fetching resource.",e)})).then((async e=>{const t=e.headers.get("Content-Type");if(null===t)throw new ParseError_ParseError("Response does not contain content type header.");if(!t.includes("application/json")&&!t.includes("application/problem+json"))throw new ParseError_ParseError("Unable to parse response as content type is neither 'application/json' nor 'application/problem+json'.");const r=await e.json();if(!e.ok)throw this.fetchHelper.createResponseErrorFromBadResponse(e,r);return r})).then((e=>this.collectionParser.rawCollectionToCollection(e))).catch((e=>{throw this.logger.error(e.message,e),e}))}};ee=__decorate([Service(),__metadata("design:paramtypes",[A,N,k])],ee);let te=class GetElementRelatedEndpoint{logger;fetchHelper;collectionParser;constructor(e,t,r){this.logger=e,this.fetchHelper=t,this.collectionParser=r}getElementRelated(e,t=1,r=25){return Promise.resolve().then((()=>{if(t<1)throw new ValidationError_ValidationError("Page number must be at least 1.");if(r<1)throw new ValidationError_ValidationError("Page size must be at least 1.");const n=this.fetchHelper.buildUrl(`/${e}/related?page=${t}&pageSize=${r}`);return this.logger.debug(`Executing HTTP GET request against url ${n} .`),fetch(n,this.fetchHelper.getDefaultGetOptions())})).catch((e=>{if(e instanceof EmberNexusError_EmberNexusError)throw e;throw new NetworkError("Experienced generic network error during fetching resource.",e)})).then((async e=>{const t=e.headers.get("Content-Type");if(null===t)throw new ParseError_ParseError("Response does not contain content type header.");if(!t.includes("application/json")&&!t.includes("application/problem+json"))throw new ParseError_ParseError("Unable to parse response as content type is neither 'application/json' nor 'application/problem+json'.");const r=await e.json();if(!e.ok)throw this.fetchHelper.createResponseErrorFromBadResponse(e,r);return r})).then((e=>this.collectionParser.rawCollectionToCollection(e))).catch((e=>{throw this.logger.error(e.message,e),e}))}};te=__decorate([Service(),__metadata("design:paramtypes",[A,N,k])],te);let re=class GetIndexEndpoint{logger;fetchHelper;collectionParser;constructor(e,t,r){this.logger=e,this.fetchHelper=t,this.collectionParser=r}getIndex(e=1,t=25){return Promise.resolve().then((()=>{if(e<1)throw new ValidationError_ValidationError("Page number must be at least 1.");if(t<1)throw new ValidationError_ValidationError("Page size must be at least 1.");const r=this.fetchHelper.buildUrl(`/?page=${e}&pageSize=${t}`);return this.logger.debug(`Executing HTTP GET request against url ${r} .`),fetch(r,this.fetchHelper.getDefaultGetOptions())})).catch((e=>{if(e instanceof EmberNexusError_EmberNexusError)throw e;throw new NetworkError("Experienced generic network error during fetching resource.",e)})).then((async e=>{const t=e.headers.get("Content-Type");if(null===t)throw new ParseError_ParseError("Response does not contain content type header.");if(!t.includes("application/json")&&!t.includes("application/problem+json"))throw new ParseError_ParseError("Unable to parse response as content type is neither 'application/json' nor 'application/problem+json'.");const r=await e.json();if(!e.ok)throw this.fetchHelper.createResponseErrorFromBadResponse(e,r);return r})).then((e=>this.collectionParser.rawCollectionToCollection(e))).catch((e=>{throw this.logger.error(e.message,e),e}))}};re=__decorate([Service(),__metadata("design:paramtypes",[A,N,k])],re);let ne=class PatchElementEndpoint{logger;fetchHelper;constructor(e,t){this.logger=e,this.fetchHelper=t}patchElement(e,t){return Promise.resolve().then((()=>{this.logger.warn("The endpoint patch element will be changed in the next major version, expect changed interfaces.");const r=this.fetchHelper.buildUrl(`/${e}`);return this.logger.debug(`Executing HTTP PATCH request against url ${r} .`),fetch(r,this.fetchHelper.getDefaultPatchOptions(JSON.stringify(t)))})).catch((e=>{throw new NetworkError("Experienced generic network error during patching resource.",e)})).then((async e=>{if(e.ok&&204===e.status)return;const t=e.headers.get("Content-Type");if(null===t)throw new ParseError_ParseError("Response does not contain content type header.");if(!t.includes("application/problem+json"))throw new ParseError_ParseError("Unable to parse response as content type is not 'application/problem+json'.");const r=await e.json();throw this.fetchHelper.createResponseErrorFromBadResponse(e,r)})).catch((e=>{throw this.logger.error(e.message,e),e}))}};ne=__decorate([Service(),__metadata("design:paramtypes",[A,N])],ne);let ie=class PostElementEndpoint{logger;fetchHelper;constructor(e,t){this.logger=e,this.fetchHelper=t}postElement(e,t){return Promise.resolve().then((()=>{const r=this.fetchHelper.buildUrl(`/${e}`);return this.logger.debug(`Executing HTTP POST request against url ${r} .`),fetch(r,this.fetchHelper.getDefaultPostOptions(JSON.stringify(t)))})).catch((e=>{throw new NetworkError("Experienced generic network error during creating resource.",e)})).then((async e=>{if(e.ok&&204===e.status&&e.headers.has("Location")){return validateUuidFromString(e.headers.get("Location").split("/").at(-1))}const t=e.headers.get("Content-Type");if(null===t)throw new ParseError_ParseError("Response does not contain content type header.");if(!t.includes("application/problem+json"))throw new ParseError_ParseError("Unable to parse response as content type is not 'application/problem+json'.");const r=await e.json();throw this.fetchHelper.createResponseErrorFromBadResponse(e,r)})).catch((e=>{throw this.logger.error(e.message,e),e}))}};ie=__decorate([Service(),__metadata("design:paramtypes",[A,N])],ie);let se=class PostIndexEndpoint{logger;fetchHelper;constructor(e,t){this.logger=e,this.fetchHelper=t}postIndex(e){return Promise.resolve().then((()=>{const t=this.fetchHelper.buildUrl("/");return this.logger.debug(`Executing HTTP POST request against url ${t} .`),fetch(t,this.fetchHelper.getDefaultPostOptions(JSON.stringify(e)))})).catch((e=>{throw new NetworkError("Experienced generic network error during creating resource.",e)})).then((async e=>{if(e.ok&&204===e.status&&e.headers.has("Location")){return validateUuidFromString(e.headers.get("Location").split("/").at(-1))}const t=e.headers.get("Content-Type");if(null===t)throw new ParseError_ParseError("Response does not contain content type header.");if(!t.includes("application/problem+json"))throw new ParseError_ParseError("Unable to parse response as content type is not 'application/problem+json'.");const r=await e.json();throw this.fetchHelper.createResponseErrorFromBadResponse(e,r)})).catch((e=>{throw this.logger.error(e.message,e),e}))}};se=__decorate([Service(),__metadata("design:paramtypes",[A,N])],se);let oe=class PutElementEndpoint{logger;fetchHelper;constructor(e,t){this.logger=e,this.fetchHelper=t}putElement(e,t){return Promise.resolve().then((()=>{this.logger.warn("The endpoint put element will be changed in the next major version, expect changed interfaces.");const r=this.fetchHelper.buildUrl(`/${e}`);return this.logger.debug(`Executing HTTP PUT request against url ${r} .`),fetch(r,this.fetchHelper.getDefaultPutOptions(JSON.stringify(t)))})).catch((e=>{throw new NetworkError("Experienced generic network error during updating resource.",e)})).then((async e=>{if(e.ok&&204===e.status)return;const t=e.headers.get("Content-Type");if(null===t)throw new ParseError_ParseError("Response does not contain content type header.");if(!t.includes("application/problem+json"))throw new ParseError_ParseError("Unable to parse response as content type is not 'application/problem+json'.");const r=await e.json();throw this.fetchHelper.createResponseErrorFromBadResponse(e,r)})).catch((e=>{throw this.logger.error(e.message,e),e}))}};oe=__decorate([Service(),__metadata("design:paramtypes",[A,N])],oe);let ae=class DeleteTokenEndpoint{logger;fetchHelper;constructor(e,t){this.logger=e,this.fetchHelper=t}deleteToken(){const e=this.fetchHelper.buildUrl("/token");return this.logger.debug(`Executing HTTP DELETE request against url ${e} .`),fetch(e,this.fetchHelper.getDefaultDeleteOptions()).catch((e=>{throw new NetworkError("Experienced generic network error during deleting resource.",e)})).then((async e=>{if(e.ok&&204===e.status)return;const t=e.headers.get("Content-Type");if(null===t)throw new ParseError_ParseError("Response does not contain content type header.");if(!t.includes("application/problem+json"))throw new ParseError_ParseError("Unable to parse response as content type is not 'application/problem+json'.");const r=await e.json();throw this.fetchHelper.createResponseErrorFromBadResponse(e,r)})).catch((e=>{throw this.logger.error(e.message,e),e}))}};ae=__decorate([Service(),__metadata("design:paramtypes",[A,N])],ae);let le=class GetMeEndpoint{logger;fetchHelper;elementParser;constructor(e,t,r){this.logger=e,this.fetchHelper=t,this.elementParser=r}getMe(){const e=this.fetchHelper.buildUrl("/me");return this.logger.debug(`Executing HTTP GET request against url ${e} .`),fetch(e,this.fetchHelper.getDefaultGetOptions()).catch((e=>{throw new NetworkError("Experienced generic network error during fetching resource.",e)})).then((async e=>{const t=e.headers.get("Content-Type");if(null===t)throw new ParseError_ParseError("Response does not contain content type header.");if(!t.includes("application/json")&&!t.includes("application/problem+json"))throw new ParseError_ParseError("Unable to parse response as content type is neither 'application/json' nor 'application/problem+json'.");const r=await e.json();if(!e.ok)throw this.fetchHelper.createResponseErrorFromBadResponse(e,r);return r})).then((e=>{const t=this.elementParser.rawElementToNodeOrRelation(e);if("User"!==t.type)throw new LogicError_LogicError("Expected node to be of type 'User'.");return t})).catch((e=>{throw this.logger.error(e.message,e),e}))}};le=__decorate([Service(),__metadata("design:paramtypes",[A,N,O])],le);let ce=class GetTokenEndpoint{logger;fetchHelper;elementParser;constructor(e,t,r){this.logger=e,this.fetchHelper=t,this.elementParser=r}getToken(){const e=this.fetchHelper.buildUrl("/token");return this.logger.debug(`Executing HTTP GET request against url ${e} .`),fetch(e,this.fetchHelper.getDefaultGetOptions()).catch((e=>{throw new NetworkError("Experienced generic network error during fetching resource.",e)})).then((async e=>{const t=e.headers.get("Content-Type");if(null===t)throw new ParseError_ParseError("Response does not contain content type header.");if(!t.includes("application/json")&&!t.includes("application/problem+json"))throw new ParseError_ParseError("Unable to parse response as content type is neither 'application/json' nor 'application/problem+json'.");const r=await e.json();if(!e.ok)throw this.fetchHelper.createResponseErrorFromBadResponse(e,r);return r})).then((e=>{const t=this.elementParser.rawElementToNodeOrRelation(e);if("Token"!==t.type)throw new LogicError_LogicError("Expected node to be of type 'Token'.");return t})).catch((e=>{throw this.logger.error(e.message,e),e}))}};ce=__decorate([Service(),__metadata("design:paramtypes",[A,N,O])],ce);let he=class PostChangePasswordEndpoint{logger;fetchHelper;constructor(e,t){this.logger=e,this.fetchHelper=t}postChangePassword(e,t,r){return Promise.resolve().then((()=>{const n=this.fetchHelper.buildUrl("/change-password");return this.logger.debug(`Executing HTTP POST request against url ${n} .`),fetch(n,this.fetchHelper.getDefaultPostOptions(JSON.stringify({type:"ActionChangePassword",currentPassword:t,newPassword:r,uniqueUserIdentifier:e})))})).catch((e=>{throw new NetworkError("Experienced generic network error during creating resource.",e)})).then((async e=>{if(e.ok&&204===e.status)return;const t=e.headers.get("Content-Type");if(null===t)throw new ParseError_ParseError("Response does not contain content type header.");if(!t.includes("application/problem+json"))throw new ParseError_ParseError("Unable to parse response as content type is not 'application/problem+json'.");const r=await e.json();throw this.fetchHelper.createResponseErrorFromBadResponse(e,r)})).catch((e=>{throw this.logger.error(e.message,e),e}))}};he=__decorate([Service(),__metadata("design:paramtypes",[A,N])],he);let ue=class PostRegisterEndpoint{logger;fetchHelper;constructor(e,t){this.logger=e,this.fetchHelper=t}postRegister(e,t,r={}){return Promise.resolve().then((()=>{const n=this.fetchHelper.buildUrl("/register");return this.logger.debug(`Executing HTTP POST request against url ${n} .`),fetch(n,this.fetchHelper.getDefaultPostOptions(JSON.stringify({type:"User",uniqueUserIdentifier:e,password:t,data:r})))})).catch((e=>{throw new NetworkError("Experienced generic network error during creating resource.",e)})).then((async e=>{if(e.ok&&201===e.status&&e.headers.has("Location")){return validateUuidFromString(e.headers.get("Location").split("/").at(-1))}const t=e.headers.get("Content-Type");if(null===t)throw new ParseError_ParseError("Response does not contain content type header.");if(!t.includes("application/problem+json"))throw new ParseError_ParseError("Unable to parse response as content type is not 'application/problem+json'.");const r=await e.json();throw this.fetchHelper.createResponseErrorFromBadResponse(e,r)})).catch((e=>{throw this.logger.error(e.message,e),e}))}};ue=__decorate([Service(),__metadata("design:paramtypes",[A,N])],ue);let de=class PostTokenEndpoint{logger;tokenParser;fetchHelper;constructor(e,t,r){this.logger=e,this.tokenParser=t,this.fetchHelper=r}postToken(e,t,r={}){return Promise.resolve().then((()=>{const n=this.fetchHelper.buildUrl("/token");return this.logger.debug(`Executing HTTP POST request against url ${n} .`),fetch(n,this.fetchHelper.getDefaultPostOptions(JSON.stringify({type:"Token",uniqueUserIdentifier:e,password:t,data:r})))})).catch((e=>{throw new NetworkError("Experienced generic network error during creating resource.",e)})).then((async e=>{const t=e.headers.get("Content-Type");if(null===t)throw new ParseError_ParseError("Response does not contain content type header.");if(!t.includes("application/json")&&!t.includes("application/problem+json"))throw new ParseError_ParseError("Unable to parse response as content type is neither 'application/json' nor 'application/problem+json'.");const r=await e.json();if(!e.ok)throw this.fetchHelper.createResponseErrorFromBadResponse(e,r);return r})).then((e=>this.tokenParser.rawTokenToToken(e))).catch((e=>{throw this.logger.error(e.message,e),e}))}};de=__decorate([Service(),__metadata("design:paramtypes",[A,W,N])],de);let pe=class EmberNexus{elementCache;constructor(){this.elementCache=new LRUCache({max:_.get(z).getElementCacheMaxEntries()})}getElement(e){return new Promise((t=>{if(this.elementCache.has(e)){const r=this.elementCache.get(e);if(void 0!==r)return t(r)}return t(_.get(Q).getElement(e).then((t=>(this.elementCache.set(e,t),t))))}))}getElementChildren(e,t=1,r=null){return null===r&&(r=_.get(z).getCollectionPageSize()),new Promise((n=>n(_.get(X).getElementChildren(e,t,r))))}getElementParents(e,t=1,r=null){return null===r&&(r=_.get(z).getCollectionPageSize()),new Promise((n=>n(_.get(ee).getElementParents(e,t,r))))}getElementRelated(e,t=1,r=null){return null===r&&(r=_.get(z).getCollectionPageSize()),new Promise((n=>n(_.get(te).getElementRelated(e,t,r))))}getIndex(e=1,t=null){return null===t&&(t=_.get(z).getCollectionPageSize()),new Promise((r=>r(_.get(re).getIndex(e,t))))}postIndex(e){return new Promise((t=>t(_.get(se).postIndex(e))))}postElement(e,t){return new Promise((r=>r(_.get(ie).postElement(e,t))))}patchElement(e,t){return new Promise((r=>(this.elementCache.delete(e),r(_.get(ne).patchElement(e,t)))))}putElement(e,t){return new Promise((r=>(this.elementCache.delete(e),r(_.get(oe).putElement(e,t)))))}deleteElement(e){return new Promise((t=>(this.elementCache.delete(e),t(_.get(Y).deleteElement(e)))))}postRegister(e,t,r={}){return new Promise((n=>n(_.get(ue).postRegister(e,t,r))))}postChangePassword(e,t,r){return new Promise((n=>n(_.get(he).postChangePassword(e,t,r))))}getMe(){return new Promise((e=>e(_.get(le).getMe().then((e=>(this.elementCache.set(e.id,e),e))))))}postToken(e,t,r={}){return new Promise((n=>n(_.get(de).postToken(e,t,r))))}getToken(){return new Promise((e=>e(_.get(ce).getToken().then((e=>(this.elementCache.set(e.id,e),e))))))}deleteToken(){return new Promise((e=>e(_.get(ae).deleteToken())))}};function init(e,t=null){const r=new ServiceResolver;e.addEventListener(l.GetServiceResolver,(e=>{e.setServiceResolver(r),e.stopPropagation()})),null===t&&(t=new pe),r.setService(validateServiceIdentifierFromString(c.emberNexusWebSDK),t),r.setService(validateServiceIdentifierFromString(c.action),new PriorityRegistry),r.setService(validateServiceIdentifierFromString(c.setting),new Registry),r.setService(validateServiceIdentifierFromString(c.icon),new Registry);const n=new esm_Logger({name:"app-core",type:"pretty"});r.setService(validateServiceIdentifierFromString(c.logger),n);const i=new EventDispatcher(n);return r.setService(validateServiceIdentifierFromString(c.eventDispatcher),i),r}pe=__decorate([Service(),__metadata("design:paramtypes",[])],pe);export{i as BrowserEvent,s as Error,a as Service,h as Type,init};
2
+ //# sourceMappingURL=index.js.map