@decaf-ts/decoration 0.8.3 → 0.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +1 -1
  2. package/dist/decoration.cjs +1 -1
  3. package/dist/decoration.cjs.map +1 -1
  4. package/dist/decoration.js +1 -1
  5. package/dist/decoration.js.map +1 -1
  6. package/lib/decoration/Decoration.cjs +42 -16
  7. package/lib/decoration/Decoration.d.ts +1 -0
  8. package/lib/decoration/Decoration.js.map +1 -1
  9. package/lib/decoration/flavourRegistry.cjs +29 -0
  10. package/lib/decoration/flavourRegistry.d.ts +9 -0
  11. package/lib/decoration/flavourRegistry.js.map +1 -0
  12. package/lib/decoration/index.cjs +2 -0
  13. package/lib/decoration/index.d.ts +2 -0
  14. package/lib/decoration/index.js.map +1 -1
  15. package/lib/decoration/metadataLink.cjs +26 -0
  16. package/lib/decoration/metadataLink.d.ts +8 -0
  17. package/lib/decoration/metadataLink.js.map +1 -0
  18. package/lib/decorators.cjs +17 -197
  19. package/lib/decorators.d.ts +1 -107
  20. package/lib/decorators.js.map +1 -1
  21. package/lib/esm/decoration/Decoration.d.ts +1 -0
  22. package/lib/esm/decoration/Decoration.js +40 -14
  23. package/lib/esm/decoration/Decoration.js.map +1 -1
  24. package/lib/esm/decoration/flavourRegistry.d.ts +9 -0
  25. package/lib/esm/decoration/flavourRegistry.js +26 -0
  26. package/lib/esm/decoration/flavourRegistry.js.map +1 -0
  27. package/lib/esm/decoration/index.d.ts +2 -0
  28. package/lib/esm/decoration/index.js +2 -0
  29. package/lib/esm/decoration/index.js.map +1 -1
  30. package/lib/esm/decoration/metadataLink.d.ts +8 -0
  31. package/lib/esm/decoration/metadataLink.js +20 -0
  32. package/lib/esm/decoration/metadataLink.js.map +1 -0
  33. package/lib/esm/decorators.d.ts +1 -107
  34. package/lib/esm/decorators.js +6 -187
  35. package/lib/esm/decorators.js.map +1 -1
  36. package/lib/esm/index.d.ts +1 -0
  37. package/lib/esm/index.js +1 -0
  38. package/lib/esm/index.js.map +1 -1
  39. package/lib/esm/metadata/Metadata.d.ts +5 -0
  40. package/lib/esm/metadata/Metadata.js +34 -4
  41. package/lib/esm/metadata/Metadata.js.map +1 -1
  42. package/lib/esm/shared/core.d.ts +107 -0
  43. package/lib/esm/shared/core.js +184 -0
  44. package/lib/esm/shared/core.js.map +1 -0
  45. package/lib/esm/shared/index.d.ts +1 -0
  46. package/lib/esm/shared/index.js +2 -0
  47. package/lib/esm/shared/index.js.map +1 -0
  48. package/lib/esm/version.d.ts +1 -1
  49. package/lib/esm/version.js +1 -1
  50. package/lib/index.cjs +1 -0
  51. package/lib/index.d.ts +1 -0
  52. package/lib/index.js.map +1 -1
  53. package/lib/metadata/Metadata.cjs +34 -4
  54. package/lib/metadata/Metadata.d.ts +5 -0
  55. package/lib/metadata/Metadata.js.map +1 -1
  56. package/lib/shared/core.cjs +195 -0
  57. package/lib/shared/core.d.ts +107 -0
  58. package/lib/shared/core.js.map +1 -0
  59. package/lib/shared/index.cjs +18 -0
  60. package/lib/shared/index.d.ts +1 -0
  61. package/lib/shared/index.js.map +1 -0
  62. package/lib/version.cjs +1 -1
  63. package/lib/version.d.ts +1 -1
  64. package/package.json +3 -2
  65. package/workdocs/assets/slogans.json +198 -0
package/README.md CHANGED
@@ -26,7 +26,7 @@ The decoration module provides a small, composable system for building and apply
26
26
 
27
27
  Documentation available [here](https://decaf-ts.github.io/ts-workspace/)
28
28
 
29
- Minimal size: 5.1 KB kb gzipped
29
+ Minimal size: 5.4 KB kb gzipped
30
30
 
31
31
 
32
32
  # Description
@@ -1,2 +1,2 @@
1
- var t,e;t=this,e=function(t){"use strict";const e="decaf",r=".";var o,a;t.DecorationKeys=void 0,(o=t.DecorationKeys||(t.DecorationKeys={})).LIBRARIES="libraries",o.REFLECT="__decaf",o.PROPERTIES="properties",o.METHODS="methods",o.CLASS="class",o.DESCRIPTION="description",o.CONSTRUCTOR="__original",o.PARAMETERS="parameters",o.FLAVOUR="flavour",o.DECORATION="decoration",o.DESIGN_TYPE="design:type",o.DESIGN_PARAMS="design:paramtypes",o.DESIGN_RETURN="design:returntype",t.DecorationState=void 0,(a=t.DecorationState||(t.DecorationState={})).PENDING="pending",a.ONGOING="ongoing";const i={[t.DecorationKeys.PROPERTIES]:[]},n="##VERSION##",s="##PACKAGE##";function c(t,e,o=r){const a=e.split(o);let i=t;for(const t of a){if(null==i||!Object.prototype.hasOwnProperty.call(i,t))return;i=i[t]}return i}function l(t,e,o,a=r){const i=e.split(a).filter((t=>t.length>0));if(0===i.length)return;let n=t;for(let t=0;t<i.length-1;t++){const e=i[t];void 0!==n[e]&&null!==n[e]&&"object"==typeof n[e]||(n[e]={}),n=n[e]}n[i[i.length-1]]=o}class d{static{this._metadata={}}static{this.splitter=r}static{this.baseKey=t.DecorationKeys.REFLECT}static{this.mirror=!0}constructor(){}static Symbol(t){return Symbol.for([t.toString(),t.name].join(" - "))}static properties(t){const e=this.get(t);if(e&&e.properties)return Object.keys(e.properties)}static methods(e){const r=this.get(e,t.DecorationKeys.METHODS);if(r)return Object.keys(r)}static description(e,r){return this.get(e,this.key(t.DecorationKeys.DESCRIPTION,r||t.DecorationKeys.CLASS))}static flavourOf(t){return E.flavourResolver(t)}static flavouredAs(e){return this.innerGet(Symbol.for(t.DecorationKeys.FLAVOUR),e)||[]}static registeredFlavour(r){const o=this.innerGet(Symbol.for(t.DecorationKeys.FLAVOUR));if(!o)return;const a=this.constr(r);let i;for(const[t,r]of Object.entries(o))if(Array.isArray(r)&&r.some((t=>this.constr(t)===a))){if(t===e){i=i||t;continue}return t}return i}static params(e,r){return this.get(e,this.key(t.DecorationKeys.METHODS,r,t.DecorationKeys.DESIGN_PARAMS))}static param(t,e,r){const o=this.params(t,e);if(o){if(r>o.length-1)throw Error(`Parameter index ${r} out of range for ${e+""}`);return o[r]}}static return(e,r){return this.get(e,this.key(t.DecorationKeys.METHODS,r,t.DecorationKeys.DESIGN_RETURN))}static type(e,r){return this.get(e,this.key(t.DecorationKeys.PROPERTIES,r))}static constr(e){return e[t.DecorationKeys.CONSTRUCTOR]||e}static get(e,r){if(r===t.DecorationKeys.CONSTRUCTOR)return this.constr(e);const o=this.constr(e),a=this.collectConstructorChain(o);if(a.filter((e=>this.isDecorated(e)===t.DecorationState.PENDING)).forEach((t=>{E.resolvePendingDecorators(t)})),0===a.length){const t=Symbol.for(o.toString());return this.innerGet(t,r)}const i=a.map((t=>this.innerGet(this.Symbol(t),r))).filter((t=>void 0!==t));return 0!==i.length?this.mergeMetadataChain(i):void 0}static isDecorated(e){const r=this.constr(e);return this.innerGet(this.Symbol(r),t.DecorationKeys.DECORATION)||!1}static innerGet(t,e){if(this._metadata[t])return e?"string"==typeof e?c(this._metadata[t],e,this.splitter):this._metadata[t][e]:this._metadata[t]}static collectConstructorChain(t){const e=[];let r=t;for(;"function"==typeof r&&r!==Function;){e.push(r);const t=Object.getPrototypeOf(r);if(!t||t===Function||t===Object)break;r=t}return e.reverse()}static mergeMetadataChain(t){let e;for(const r of t)e=void 0!==e&&this.isPlainObject(e)&&this.isPlainObject(r)?this.mergePlainObjects(e,r):this.cloneMetadataValue(r);return e}static cloneMetadataValue(t){return Array.isArray(t)?[...t]:this.isPlainObject(t)?this.mergePlainObjects({},t):t}static mergePlainObjects(t,e){const r={...t};for(const t of Object.keys(e)){const o=e[t],a=r[t];this.isPlainObject(o)?r[t]=this.isPlainObject(a)?this.mergePlainObjects(a,o):this.mergePlainObjects({},o):r[t]=Array.isArray(o)?[...o]:o}return r}static isPlainObject(t){if(null===t||"object"!=typeof t||Array.isArray(t))return!1;const e=Object.getPrototypeOf(t);return e===Object.prototype||null===e}static innerSet(t,e,r){if(this._metadata[t]||(this._metadata[t]={}),"string"==typeof e)return l(this._metadata[t],e,r,this.splitter);this._metadata[t][e]=r}static set(e,r,o){if(r===t.DecorationKeys.CONSTRUCTOR)return void Object.defineProperty(e,t.DecorationKeys.CONSTRUCTOR,{enumerable:!1,configurable:!1,writable:!1,value:o});"string"!=typeof e&&(e=this.constr(e)||e);const a="string"==typeof e?Symbol.for(e):this.Symbol(e);this.innerSet(a,r,o),"string"!=typeof e&&d.mirror&&!Object.prototype.hasOwnProperty.call(e,this.baseKey)&&Object.defineProperty(e,this.baseKey,{enumerable:!1,configurable:!1,writable:!1,value:this._metadata[a]})}static registerLibrary(e,r){const o=Symbol.for(t.DecorationKeys.LIBRARIES);if(this.innerGet(o,e))throw Error(`Library already ${e} registered with version ${r}`);this.innerSet(o,e,r)}static libraries(){const e=Symbol.for(t.DecorationKeys.LIBRARIES);return this.innerGet(e)||{}}static key(...t){return t.join(this.splitter)}}function f(t,e){return(r,o,a)=>{let i=r;o&&(i="function"==typeof r?r:r.constructor||r),d.set(i,t,e)}}function u(e){return r=>{const o=d.constr(r);if(((e,r)=>{const o=d.constr(e),a=d.innerGet(d.Symbol(e),t.DecorationKeys.FLAVOUR)||E.defaultFlavour,i=(d.innerGet(Symbol.for(t.DecorationKeys.FLAVOUR),a)||[]).filter((t=>d.constr(t)!==o));d.set(t.DecorationKeys.FLAVOUR,a,i);const n=new Set(d.innerGet(Symbol.for(t.DecorationKeys.FLAVOUR),r)||[]);n.add(e),d.set(t.DecorationKeys.FLAVOUR,r,[...n])})(r,e),d.set(o,t.DecorationKeys.FLAVOUR,e),e!==E.defaultFlavour)E.resolvePendingDecorators(o,e);else{let t;try{t=E.flavourResolver?E.flavourResolver(o):void 0}catch{t=void 0}t&&t!==E.defaultFlavour?E.resolvePendingDecorators(o,t):E.markPending(o)}return r}}function p(){return(e,r)=>{const o="function"==typeof e?e.prototype:e,a=Reflect.getOwnMetadata(t.DecorationKeys.DESIGN_TYPE,o,r);return f(d.key(t.DecorationKeys.PROPERTIES,r),a)(e,r)}}function y(){return(e,r,o)=>{if(!r)throw Error("The @param decorator can only be applied to methods");h()(e,r,Object.getOwnPropertyDescriptor(e,r));const a=d.params(e.constructor,r);if(!a)throw Error("Missing parameter types for "+r);if(o>=a.length)throw Error(`Parameter index ${o} out of range for ${r+""}`);f(d.key(t.DecorationKeys.METHODS,r,o.toString()),a[o])(e,r)}}function h(){return(e,r,o)=>{const a=Reflect.getOwnMetadata(t.DecorationKeys.DESIGN_PARAMS,e,r),i=Reflect.getOwnMetadata(t.DecorationKeys.DESIGN_RETURN,e,r);return g(f(d.key(t.DecorationKeys.METHODS,r,t.DecorationKeys.DESIGN_PARAMS),a),f(d.key(t.DecorationKeys.METHODS,r,t.DecorationKeys.DESIGN_RETURN),i))(e,r,o)}}function g(...t){return(e,r,o)=>{for(const a of t)e instanceof Function&&!o?a(e):a(e,r,o)}}function v(e){const r=d.constr("function"==typeof e?e:e?.constructor),o=d.innerGet(d.Symbol(r),t.DecorationKeys.FLAVOUR);if(o&&o!==E.defaultFlavour)return o;const a="function"==typeof d.registeredFlavour?d.registeredFlavour(r):void 0;return a&&a!==E.defaultFlavour?a:o??E.defaultFlavour}function D(t){return null!==t&&"object"==typeof t&&!Array.isArray(t)&&t.constructor===Object}function O(t){if(null===t||"object"!=typeof t)return t;if(Array.isArray(t))return t.map((t=>O(t)));if(t instanceof Date)return new Date(t.getTime());if(t instanceof Set)return new Set(Array.from(t).map((t=>O(t))));if(t instanceof Map)return new Map(Array.from(t.entries()).map((([t,e])=>[t,O(e)])));if(t.constructor!==Object)return t;const e={};return Reflect.ownKeys(t).forEach((r=>{e[r]=O(t[r])})),e}function S(t,e,r=[],o=[]){return new Set([...t?Reflect.ownKeys(t):[],...e?Reflect.ownKeys(e):[]]).forEach((a=>{const i=!!t&&Object.prototype.hasOwnProperty.call(t,a),n=!!e&&Object.prototype.hasOwnProperty.call(e,a),s=i?t?.[a]:void 0,c=n?e?.[a]:void 0;if(n)return i?void(D(s)&&D(c)?S(s,c,[...r,a],o):s!==c&&o.push({path:[...r,a],previousValue:O(s),existed:!0})):D(c)?void S(void 0,c,[...r,a],o):void o.push({path:[...r,a],previousValue:void 0,existed:!1});o.push({path:[...r,a],previousValue:O(s),existed:!0})})),o}function b(t){if(!t)return;const e={};return Object.keys(t).forEach((r=>{e[r]=t[r].map((t=>"object"==typeof t&&null!==t?O(t):t))})),e}function m(t,e){let r=t;for(const t of e){if(!r||!D(r[t]))return;r=r[t]}return r}d.registerLibrary(s,n);class E{static{this.defaultFlavour=e}static{this.targetStates=new WeakMap}static{this.decorators={}}static{this.flavourResolver=v}constructor(t=E.defaultFlavour){this.flavour=t}static getTargetState(t){if(!t)throw Error("Invalid target provided to Decoration state tracker");let e=this.targetStates.get(t);return e||(e={pending:[],flavour:void 0,directApply:!1},this.targetStates.set(t,e)),e}static applyPendingEntry(t,e){const r=d._metadata,o=d.Symbol(t.owner),a=void 0===t.metadataDiff?O(r[o]):void 0;try{if(void 0!==t.propertyKey&&void 0===t.descriptorSnapshot&&t.target){const e=Object.getOwnPropertyDescriptor(t.target,t.propertyKey);t.descriptorWasOwn=Object.prototype.hasOwnProperty.call(t.target,t.propertyKey),t.descriptorSnapshot=e?{...e}:void 0}const i=t.argsFactory?t.argsFactory():b(t.argsOverride),n=t.callback(e,i)(t.target,t.propertyKey,t.descriptor);if(void 0!==t.propertyKey&&n&&t.target&&Object.defineProperty(t.target,t.propertyKey,n),void 0===t.metadataDiff){const e=O(r[o]);t.metadataDiff=S(a,e)}}catch(t){}}static markPending(e){if(!e)return;const r=this.getTargetState(e);r.resolved=!1,r.flavour||(r.flavour=E.defaultFlavour),d.set(e,t.DecorationKeys.DECORATION,t.DecorationState.PENDING)}static scheduleDefaultResolve(t){if(!t)return;const e=this.getTargetState(t);e.resolveScheduled||e.resolved||e.applying||(e.resolveScheduled=!0,Promise.resolve().then((()=>{e.resolveScheduled=!1,e.resolved||this.resolvePendingDecorators(t)})))}static registerPendingDecorator(e,r,o,a,i,n,s){const c=`${e?.name||"anonymous"}:${(a||"class")+""}:${Date.now()}:${Math.random()}`,l=this.getTargetState(e),f=b(n),u={owner:e,target:r,propertyKey:a,descriptor:i,callback:o,argsOverride:f,argsFactory:()=>b(f),key:c,definitionKey:s},p=()=>{const r=l.flavour||d.get(e,t.DecorationKeys.FLAVOUR)||E.defaultFlavour;return this.applyPendingEntry(u,r),u.lastAppliedPass=l.passId,u.lastAppliedFlavour=r,r},y=()=>(l.pending.push(u),u);if(l.directApply){y();const r=p();return l.appliedCount=l.pending.length,l.flavour=r,d.set(e,t.DecorationKeys.DECORATION,!0),c}if(y(),l.applying)return p(),c;if(E.flavourResolver!==v)try{const t=E.flavourResolver(e);if(t&&t!==E.defaultFlavour)return this.resolvePendingDecorators(e,t),c}catch{}return this.scheduleDefaultResolve(e),c}static resolvePendingDecorators(e,r){const o="function"==typeof e?e:e?.constructor||e;if(!o)return;const a=this.getTargetState(o);if(a.resolveScheduled=!1,!a.pending.length&&!r)return;const i=r||a.flavour||d.get(o,t.DecorationKeys.FLAVOUR)||E.defaultFlavour;if(a.applying)return;const n=a.appliedCount||0;if(!r&&a.lastAppliedFlavour===i&&n>=a.pending.length)return;const s=!(!r||r===E.defaultFlavour)||a.directApply;if(!a.pending.length)return;const c=(a.passId||0)+1;a.passId=c,a.applying=!0;try{if(s)for(const t of a.pending){if(!t)continue;if(t.lastAppliedPass===c)continue;const e=this.shouldOverrideEntry(t,i);void 0!==t.metadataDiff||void 0!==t.descriptorSnapshot?t.lastAppliedFlavour!==i&&e?(t.metadataDiff?.length&&A(t.owner,t.metadataDiff),R(t),this.applyPendingEntry(t,i),t.lastAppliedPass=c,t.lastAppliedFlavour=i):t.lastAppliedPass=c:(this.applyPendingEntry(t,i),t.lastAppliedPass=c,t.lastAppliedFlavour=i)}else{let t=n;for(;t<a.pending.length;){const e=a.pending[t++];e&&e.lastAppliedPass!==c&&(this.applyPendingEntry(e,i),e.lastAppliedPass=c,e.lastAppliedFlavour=i)}a.appliedCount=a.pending.length}}finally{a.applying=!1}a.flavour=i,a.resolved=!0,a.lastAppliedFlavour=i,s&&(a.appliedCount=a.pending.length,i!==E.defaultFlavour&&(a.directApply=!0)),d.set(o,t.DecorationKeys.DECORATION,!0)}for(t){return this.key=t,this}decorate(t=!1,...e){if(!this.key)throw Error("key must be provided before decorators can be added");if(!(e&&e.length||t||this.flavour===E.defaultFlavour))throw Error("Must provide overrides or addons to override or extend decaf's decorators");return t?this.extras=new Set([...(this.extras||new Set).values(),...e]):this.decorators=new Set([...e]),this}snapshotDecoratorArgs(){if(!this.decorators||!this.decorators.size)return;const t={};return Array.from(this.decorators.values()).forEach(((e,r)=>{"object"==typeof e&&"args"in e&&Array.isArray(e.args)&&(t[r]=e.args.map((t=>"object"==typeof t&&null!==t?O(t):t)))})),Object.keys(t).length?t:void 0}define(...t){if(t.find((t=>"object"==typeof t))&&1!==t.length)throw Error("When using an overridable decorator, only one is allowed");return this.decorate(!1,...t)}extend(...t){if(t.find((t=>"object"==typeof t))&&1!==t.length)throw Error("When extending using an overridable decorator, only one is allowed");return this.decorate(!0,...t)}decoratorFactory(t,e,r){function o(o,a,i){const n=e??E.flavourResolver(o),s=E.decorators[t];let c;const l=s[n]?s[n].extras:s[E.defaultFlavour].extras;c=s&&s[n]&&s[n].decorators&&s[n].decorators.size?s[n].decorators:s[E.defaultFlavour].decorators;const d=[...c?c.values():[]],f=[...(s[E.defaultFlavour]?.decorators||new Set).values()],u=d.reduce(((t,e,r)=>("object"==typeof e&&"args"in e&&Array.isArray(e.args)&&(t[r]=e.args),t)),{}),p=f.reduce(((t,e,r)=>("object"==typeof e&&"args"in e&&Array.isArray(e.args)&&(t[r]=e.args),t)),{}),y=[...d,...l?l.values():[]],h=d.length,g=r||{};let v=o,D=i;return y.forEach(((t,e)=>{let r;if("object"==typeof t){const o=t,a=h>e?e:0,i=((h>e?g[a]:void 0)||("args"in o&&Array.isArray(o.args)?o.args:u[a]??p[a]??p[0]??[])).map((t=>"object"==typeof t&&null!==t?O(t):t));r=o.decorator(...i)}else{if("function"!=typeof t)throw Error("Unexpected decorator type: "+typeof t);r=t}const i=r(void 0===a?v:o,a,D);void 0===a?"function"==typeof i&&(v=i):void 0!==i&&(D=i)})),void 0===a?v:D}return Object.defineProperty(o,"name",{value:[e||"dynamic",t].join("_decorator_for_"),writable:!1}),o}apply(){if(!this.key)throw Error("No key provided for the decoration builder");const e=this.key,r=E.decorators[this.key]?.[this.flavour]?.decorators,o=this.decorators||r||new Set,a=void 0!==this.extras?this.extras:void 0;E.register(this.key,this.flavour,o,a);const i=(r,o,a)=>{const i=void 0!==o,n="function"==typeof r?r:r?.constructor||r;if(n&&i){d.innerGet(d.Symbol(n),t.DecorationKeys.FLAVOUR)||u(E.defaultFlavour)(n);const i=this.snapshotDecoratorArgs();return E.registerPendingDecorator(n,r,(t=>this.decoratorFactory(e,t,i)),o,a,i,e),E.resolvePendingDecorators(n),o&&!a&&p()(n,o),o&&a&&h()(n,o,a),a}const s=this.flavour===E.defaultFlavour?void 0:this.flavour;return this.decoratorFactory(e,s)(r,o,a)};try{Object.defineProperty(i,"name",{value:[this.flavour,e].join("_decorator_for_"),writable:!1})}catch(t){}return i}static register(t,e,r,o){if(!t)throw Error("No key provided for the decoration builder");if(!r)throw Error("No decorators provided for the decoration builder");if(!e)throw Error("No flavour provided for the decoration builder");E.decorators[t]||(E.decorators[t]={}),E.decorators[t][e]||(E.decorators[t][e]={}),E.decorators[t][e].decorators=r,void 0!==o&&(E.decorators[t][e].extras=o)}static setResolver(t){E.flavourResolver=t}static shouldOverrideEntry(t,e){if(!t.definitionKey)return!1;if(e===E.defaultFlavour)return!1;const r=E.decorators[t.definitionKey];if(!r)return!1;const o=r[e];if(!o)return!1;const a=r[E.defaultFlavour],i=o.decorators&&o.decorators.size>0,n=o.extras instanceof Set&&o.extras.size>0;if(!i&&!n)return!1;if(!a)return!0;const s=!i||o.decorators===a.decorators,c=!n||o.extras===a.extras;return!(s&&c)}static for(t){return(new E).for(t)}static flavouredAs(t){return new E(t)}}function A(t,e){if(!e||!e.length)return;const r=d._metadata,o=d.Symbol(t),a=r[o]||(r[o]={});e.forEach((({path:t,previousValue:e,existed:r})=>{if(!t.length)return;let o=a;for(let e=0;e<t.length-1;e++){const r=t[e];D(o[r])||(o[r]={}),o=o[r]}const i=t[t.length-1];r?o[i]=O(e):(delete o[i],((t,e)=>{for(let r=e.length;r>0;r--){const o=e.slice(0,r),a=o.slice(0,-1),i=o[o.length-1],n=0===a.length?t:m(t,a);if(!n||!D(n))break;const s=n[i];if(!D(s)||Reflect.ownKeys(s).length>0)break;delete n[i]}})(a,t.slice(0,-1)))}))}function R(t){if(!t||void 0===t.propertyKey)return;const e=t.target;if(!e||void 0===t.descriptorWasOwn)return;const r=t.propertyKey,o=t.descriptorSnapshot;t.descriptorWasOwn?o?Object.defineProperty(e,r,o):delete e[r]:(delete e[r],o&&Object.defineProperty(e,r,o))}t.Decoration=E,t.DefaultFlavour=e,t.DefaultMetadata=i,t.Metadata=d,t.ObjectKeySplitter=r,t.PACKAGE_NAME=s,t.VERSION=n,t.apply=g,t.description=e=>E.for(t.DecorationKeys.DESCRIPTION).define({decorator:e=>(r,o,a)=>f(d.key(t.DecorationKeys.DESCRIPTION,o?o.toString():t.DecorationKeys.CLASS),e)(r,o,a),args:[e]}).apply(),t.getValueBySplitter=c,t.metadata=f,t.metadataArray=(t,...e)=>(r,o,a)=>{const i=d.get(r,t)||[];return g(f(o?d.key(t,o):t,[...new Set([...i,...e])]))(r,o,a)},t.method=h,t.methodMetadata=(t,e)=>g(f(t,e),h()),t.param=y,t.paramMetadata=(e,r)=>(o,a,i)=>g(y(),f(d.key(t.DecorationKeys.METHODS,a,e),r))(o,a,i),t.prop=p,t.propMetadata=(t,e)=>g(f(t,e),p()),t.setValueBySplitter=l,t.uses=u},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("reflect-metadata")):"function"==typeof define&&define.amd?define(["exports","reflect-metadata"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).decoration={});
1
+ var t,e;t=this,e=function(t){"use strict";const e="decaf",r=".";var o,i;t.DecorationKeys=void 0,(o=t.DecorationKeys||(t.DecorationKeys={})).LIBRARIES="libraries",o.REFLECT="__decaf",o.PROPERTIES="properties",o.METHODS="methods",o.CLASS="class",o.DESCRIPTION="description",o.CONSTRUCTOR="__original",o.PARAMETERS="parameters",o.FLAVOUR="flavour",o.DECORATION="decoration",o.DESIGN_TYPE="design:type",o.DESIGN_PARAMS="design:paramtypes",o.DESIGN_RETURN="design:returntype",t.DecorationState=void 0,(i=t.DecorationState||(t.DecorationState={})).PENDING="pending",i.ONGOING="ongoing";const a={[t.DecorationKeys.PROPERTIES]:[]},s="##VERSION##",n="##PACKAGE##";let c,l;function d(t){c=t}function u(t){return c?c(t):e}function f(t){l=t}function p(t,e){l&&l(t,e)}function y(t,e,o=r){const i=e.split(o);let a=t;for(const t of i){if(null==a||!Object.prototype.hasOwnProperty.call(a,t))return;a=a[t]}return a}function h(t,e,o,i=r){const a=e.split(i).filter(t=>t.length>0);if(0===a.length)return;let s=t;for(let t=0;t<a.length-1;t++){const e=a[t];void 0!==s[e]&&null!==s[e]&&"object"==typeof s[e]||(s[e]={}),s=s[e]}s[a[a.length-1]]=o}class v{static{this._metadata={}}static{this._propertiesIndex={}}static{this.splitter=r}static{this.baseKey=t.DecorationKeys.REFLECT}static{this.mirror=!0}constructor(){}static Symbol(t){return Symbol.for([t.toString(),t.name].join(" - "))}static properties(t){const e=this.constr(t),r=this.Symbol(e),o=this._propertiesIndex[r];if(o&&o.size)return[...o];const i=this.get(e);return i&&i.properties?Object.keys(i.properties):void 0}static methods(e){const r=this.get(e,t.DecorationKeys.METHODS);if(r)return Object.keys(r)}static description(e,r){return this.get(e,this.key(t.DecorationKeys.DESCRIPTION,r||t.DecorationKeys.CLASS))}static flavourOf(t){return u(t)}static flavouredAs(e){return this.innerGet(Symbol.for(t.DecorationKeys.FLAVOUR),e)||[]}static registeredFlavour(r){const o=this.innerGet(Symbol.for(t.DecorationKeys.FLAVOUR));if(!o)return;const i=this.constr(r);let a;for(const[t,r]of Object.entries(o))if(Array.isArray(r)&&r.some(t=>this.constr(t)===i)){if(t===e){a=a||t;continue}return t}return a}static params(e,r){return this.get(e,this.key(t.DecorationKeys.METHODS,r,t.DecorationKeys.DESIGN_PARAMS))}static param(t,e,r){const o=this.params(t,e);if(o){if(r>o.length-1)throw Error(`Parameter index ${r} out of range for ${e+""}`);return o[r]}}static return(e,r){return this.get(e,this.key(t.DecorationKeys.METHODS,r,t.DecorationKeys.DESIGN_RETURN))}static type(e,r){return this.get(e,this.key(t.DecorationKeys.PROPERTIES,r))}static constr(e){return e[t.DecorationKeys.CONSTRUCTOR]||e}static get(e,r){if(r===t.DecorationKeys.CONSTRUCTOR)return this.constr(e);const o=this.constr(e),i=this.collectConstructorChain(o);if(i.filter(e=>this.isDecorated(e)===t.DecorationState.PENDING).forEach(t=>{p(t)}),0===i.length){const t=Symbol.for(o.toString());return this.innerGet(t,r)}const a=i.map(t=>this.innerGet(this.Symbol(t),r)).filter(t=>void 0!==t);return 0!==a.length?this.mergeMetadataChain(a):void 0}static isDecorated(e){const r=this.constr(e);return this.innerGet(this.Symbol(r),t.DecorationKeys.DECORATION)||!1}static innerGet(t,e){if(this._metadata[t])return e?"string"==typeof e?y(this._metadata[t],e,this.splitter):this._metadata[t][e]:this._metadata[t]}static collectConstructorChain(t){const e=[];let r=t;for(;"function"==typeof r&&r!==Function;){e.push(r);const t=Object.getPrototypeOf(r);if(!t||t===Function||t===Object)break;r=t}return e.reverse()}static mergeMetadataChain(t){let e;for(const r of t)e=void 0!==e&&this.isPlainObject(e)&&this.isPlainObject(r)?this.mergePlainObjects(e,r):this.cloneMetadataValue(r);return e}static cloneMetadataValue(t){return Array.isArray(t)?[...t]:this.isPlainObject(t)?this.mergePlainObjects({},t):t}static mergePlainObjects(t,e){const r={...t};for(const t of Object.keys(e)){const o=e[t],i=r[t];this.isPlainObject(o)?r[t]=this.isPlainObject(i)?this.mergePlainObjects(i,o):this.mergePlainObjects({},o):r[t]=Array.isArray(o)?[...o]:o}return r}static isPlainObject(t){if(null===t||"object"!=typeof t||Array.isArray(t))return!1;const e=Object.getPrototypeOf(t);return e===Object.prototype||null===e}static innerSet(t,e,r){if(this._metadata[t]||(this._metadata[t]={}),"string"==typeof e)return h(this._metadata[t],e,r,this.splitter);this._metadata[t][e]=r}static set(e,r,o){if(r===t.DecorationKeys.CONSTRUCTOR)return void Object.defineProperty(e,t.DecorationKeys.CONSTRUCTOR,{enumerable:!1,configurable:!1,writable:!1,value:o});"string"!=typeof e&&(e=this.constr(e)||e);const i="string"==typeof e?Symbol.for(e):this.Symbol(e);if("string"==typeof r){const e=`${t.DecorationKeys.PROPERTIES}${this.splitter}`;if(r.startsWith(e)){const t=r.slice(e.length);if(t.length){const e=this._propertiesIndex[i]||new Set;e.add(t),this._propertiesIndex[i]=e}}else if(r===t.DecorationKeys.PROPERTIES&&this.isPlainObject(o)){const t=this._propertiesIndex[i]||new Set;Object.keys(o).forEach(e=>{t.add(e)}),t.size&&(this._propertiesIndex[i]=t)}}this.innerSet(i,r,o),"string"!=typeof e&&v.mirror&&!Object.prototype.hasOwnProperty.call(e,this.baseKey)&&Object.defineProperty(e,this.baseKey,{enumerable:!1,configurable:!1,writable:!1,value:this._metadata[i]})}static registerLibrary(e,r){const o=Symbol.for(t.DecorationKeys.LIBRARIES);if(this.innerGet(o,e))throw Error(`Library already ${e} registered with version ${r}`);this.innerSet(o,e,r)}static libraries(){const e=Symbol.for(t.DecorationKeys.LIBRARIES);return this.innerGet(e)||{}}static key(...t){return t.join(this.splitter)}}v.registerLibrary(n,s);const g=Symbol.for(t.DecorationKeys.FLAVOUR);function D(e,r,o){const i=v.constr(e),a=v.innerGet(v.Symbol(e),t.DecorationKeys.FLAVOUR)||o,s=(v.innerGet(g,a)||[]).filter(t=>v.constr(t)!==i);v.set(t.DecorationKeys.FLAVOUR,a,s);const n=new Set(v.innerGet(g,r)||[]);return n.add(e),v.set(t.DecorationKeys.FLAVOUR,r,[...n]),v.set(i,t.DecorationKeys.FLAVOUR,r),i}function O(e,r){return(o,i,a)=>{let s=o;if(i&&(s="function"==typeof o?o:o.constructor||o,void 0===a)){const e="function"==typeof o?o.prototype:o,r=Reflect.getOwnMetadata(t.DecorationKeys.DESIGN_TYPE,e,i),a=v.key(t.DecorationKeys.PROPERTIES,i.toString()),n=v.get(s,a);void 0===r&&void 0!==n||v.set(s,a,r)}v.set(s,e,r)}}function S(){return(e,r)=>{const o="function"==typeof e?e.prototype:e,i=Reflect.getOwnMetadata(t.DecorationKeys.DESIGN_TYPE,o,r);return O(v.key(t.DecorationKeys.PROPERTIES,r),i)(e,r)}}function b(){return(e,r,o)=>{if(!r)throw Error("The @param decorator can only be applied to methods");E()(e,r,Object.getOwnPropertyDescriptor(e,r));const i=v.params(e.constructor,r);if(!i)throw Error("Missing parameter types for "+r);if(o>=i.length)throw Error(`Parameter index ${o} out of range for ${r+""}`);O(v.key(t.DecorationKeys.METHODS,r,o.toString()),i[o])(e,r)}}function E(){return(e,r,o)=>{const i=Reflect.getOwnMetadata(t.DecorationKeys.DESIGN_PARAMS,e,r),a=Reflect.getOwnMetadata(t.DecorationKeys.DESIGN_RETURN,e,r);return m(O(v.key(t.DecorationKeys.METHODS,r,t.DecorationKeys.DESIGN_PARAMS),i),O(v.key(t.DecorationKeys.METHODS,r,t.DecorationKeys.DESIGN_RETURN),a))(e,r,o)}}function m(...t){return(e,r,o)=>{for(const i of t)void 0!==r?i(e,r,o):i(e)}}function R(e){const r=v.constr("function"==typeof e?e:e?.constructor),o=v.innerGet(v.Symbol(r),t.DecorationKeys.FLAVOUR);if(o&&o!==j.defaultFlavour)return o;const i="function"==typeof v.registeredFlavour?v.registeredFlavour(r):void 0;return i&&i!==j.defaultFlavour?i:o??j.defaultFlavour}function P(t){return null!==t&&"object"==typeof t&&!Array.isArray(t)&&t.constructor===Object}function A(t){if(null===t||"object"!=typeof t)return t;if(Array.isArray(t))return t.map(t=>A(t));if(t instanceof Date)return new Date(t.getTime());if(t instanceof Set)return new Set(Array.from(t).map(t=>A(t)));if(t instanceof Map)return new Map(Array.from(t.entries()).map(([t,e])=>[t,A(e)]));if(t.constructor!==Object)return t;const e={};return Reflect.ownKeys(t).forEach(r=>{e[r]=A(t[r])}),e}function K(t,e,r=[],o=[]){return new Set([...t?Reflect.ownKeys(t):[],...e?Reflect.ownKeys(e):[]]).forEach(i=>{const a=!!t&&Object.prototype.hasOwnProperty.call(t,i),s=!!e&&Object.prototype.hasOwnProperty.call(e,i),n=a?t?.[i]:void 0,c=s?e?.[i]:void 0;if(s)return a?void(P(n)&&P(c)?K(n,c,[...r,i],o):n!==c&&o.push({path:[...r,i],previousValue:A(n),existed:!0})):P(c)?void K(void 0,c,[...r,i],o):void o.push({path:[...r,i],previousValue:void 0,existed:!1});o.push({path:[...r,i],previousValue:A(n),existed:!0})}),o}function F(t){if(!t)return;const e={};return Object.keys(t).forEach(r=>{e[r]=t[r].map(t=>"object"==typeof t&&null!==t?A(t):t)}),e}function w(t,e){let r=t;for(const t of e){if(!r||!P(r[t]))return;r=r[t]}return r}class j{static{this.defaultFlavour=e}static{this.targetStates=new WeakMap}static{this.decorators={}}static{this.flavourResolver=R}static{d(t=>this.flavourResolver(t)),f((t,e)=>this.resolvePendingDecorators(t,e))}constructor(t=j.defaultFlavour){this.flavour=t}static getTargetState(t){if(!t)throw Error("Invalid target provided to Decoration state tracker");let e=this.targetStates.get(t);return e||(e={pending:[],flavour:void 0,directApply:!1},this.targetStates.set(t,e)),e}static applyPendingEntry(t,e){const r=v._metadata,o=v.Symbol(t.owner),i=void 0===t.metadataDiff?A(r[o]):void 0;try{if(void 0!==t.propertyKey&&void 0===t.descriptorSnapshot&&t.target){const e=Object.getOwnPropertyDescriptor(t.target,t.propertyKey);t.descriptorWasOwn=Object.prototype.hasOwnProperty.call(t.target,t.propertyKey),t.descriptorSnapshot=e?{...e}:void 0}const a=t.argsFactory?t.argsFactory():F(t.argsOverride),s=t.callback(e,a)(t.target,t.propertyKey,t.descriptor);if(void 0!==t.propertyKey&&s&&t.target&&Object.defineProperty(t.target,t.propertyKey,s),void 0!==t.propertyKey&&void 0===t.descriptor&&S()(t.owner??t.target,t.propertyKey),void 0===t.metadataDiff){const e=A(r[o]);t.metadataDiff=K(i,e)}}catch(t){}}static markPending(e){if(!e)return;const r=this.getTargetState(e);r.resolved=!1,r.flavour||(r.flavour=j.defaultFlavour),v.set(e,t.DecorationKeys.DECORATION,t.DecorationState.PENDING)}static ensureDefaultFlavour(t){if(!t)return;const e=D(t,j.defaultFlavour,j.defaultFlavour);let r;try{r=j.flavourResolver?j.flavourResolver(e):void 0}catch{r=void 0}r&&r!==j.defaultFlavour?j.resolvePendingDecorators(e,r):j.markPending(e)}static scheduleDefaultResolve(t){if(!t)return;const e=this.getTargetState(t);e.resolveScheduled||e.resolved||e.applying||(e.resolveScheduled=!0,Promise.resolve().then(()=>{e.resolveScheduled=!1,e.resolved||this.resolvePendingDecorators(t)}))}static registerPendingDecorator(e,r,o,i,a,s,n){const c=`${e?.name||"anonymous"}:${(i||"class")+""}:${Date.now()}:${Math.random()}`,l=this.getTargetState(e),d=F(s),u={owner:e,target:r,propertyKey:i,descriptor:a,callback:o,argsOverride:d,argsFactory:()=>F(d),key:c,definitionKey:n},f=()=>{const r=l.flavour||v.get(e,t.DecorationKeys.FLAVOUR)||j.defaultFlavour;return this.applyPendingEntry(u,r),u.lastAppliedPass=l.passId,u.lastAppliedFlavour=r,r},p=()=>(l.pending.push(u),u);if(l.directApply){p();const r=f();return l.appliedCount=l.pending.length,l.flavour=r,v.set(e,t.DecorationKeys.DECORATION,!0),c}if(p(),l.applying)return f(),c;if(j.flavourResolver!==R)try{const t=j.flavourResolver(e);if(t&&t!==j.defaultFlavour)return this.resolvePendingDecorators(e,t),c}catch{}return this.scheduleDefaultResolve(e),c}static resolvePendingDecorators(e,r){const o="function"==typeof e?e:e?.constructor||e;if(!o)return;const i=this.getTargetState(o);if(i.resolveScheduled=!1,!i.pending.length&&!r)return;const a=r||i.flavour||v.get(o,t.DecorationKeys.FLAVOUR)||j.defaultFlavour;if(i.applying)return;const s=i.appliedCount||0;if(!r&&i.lastAppliedFlavour===a&&s>=i.pending.length)return;const n=!(!r||r===j.defaultFlavour)||i.directApply;if(!i.pending.length)return;const c=(i.passId||0)+1;i.passId=c,i.applying=!0;try{if(n)for(const t of i.pending){if(!t)continue;if(t.lastAppliedPass===c)continue;const e=this.shouldOverrideEntry(t,a);void 0!==t.metadataDiff||void 0!==t.descriptorSnapshot?t.lastAppliedFlavour!==a&&e?(t.metadataDiff?.length&&I(t.owner,t.metadataDiff),T(t),this.applyPendingEntry(t,a),t.lastAppliedPass=c,t.lastAppliedFlavour=a):t.lastAppliedPass=c:(this.applyPendingEntry(t,a),t.lastAppliedPass=c,t.lastAppliedFlavour=a)}else{let t=s;for(;t<i.pending.length;){const e=i.pending[t++];e&&e.lastAppliedPass!==c&&(this.applyPendingEntry(e,a),e.lastAppliedPass=c,e.lastAppliedFlavour=a)}i.appliedCount=i.pending.length}}finally{i.applying=!1}i.flavour=a,i.resolved=!0,i.lastAppliedFlavour=a,n&&(i.appliedCount=i.pending.length,a!==j.defaultFlavour&&(i.directApply=!0)),v.set(o,t.DecorationKeys.DECORATION,!0)}for(t){return this.key=t,this}decorate(t=!1,...e){if(!this.key)throw Error("key must be provided before decorators can be added");if(!(e&&e.length||t||this.flavour===j.defaultFlavour))throw Error("Must provide overrides or addons to override or extend decaf's decorators");return t?this.extras=new Set([...(this.extras||new Set).values(),...e]):this.decorators=new Set([...e]),this}snapshotDecoratorArgs(){if(!this.decorators||!this.decorators.size)return;const t={};return Array.from(this.decorators.values()).forEach((e,r)=>{"object"==typeof e&&"args"in e&&Array.isArray(e.args)&&(t[r]=e.args.map(t=>"object"==typeof t&&null!==t?A(t):t))}),Object.keys(t).length?t:void 0}define(...t){if(t.find(t=>"object"==typeof t)&&1!==t.length)throw Error("When using an overridable decorator, only one is allowed");return this.decorate(!1,...t)}extend(...t){if(t.find(t=>"object"==typeof t)&&1!==t.length)throw Error("When extending using an overridable decorator, only one is allowed");return this.decorate(!0,...t)}decoratorFactory(t,e,r){function o(o,i,a){const s=e??j.flavourResolver(o),n=j.decorators[t];let c;const l=n[s]?n[s].extras:n[j.defaultFlavour].extras;c=n&&n[s]&&n[s].decorators&&n[s].decorators.size?n[s].decorators:n[j.defaultFlavour].decorators;const d=[...c?c.values():[]],u=[...(n[j.defaultFlavour]?.decorators||new Set).values()],f=d.reduce((t,e,r)=>("object"==typeof e&&"args"in e&&Array.isArray(e.args)&&(t[r]=e.args),t),{}),p=u.reduce((t,e,r)=>("object"==typeof e&&"args"in e&&Array.isArray(e.args)&&(t[r]=e.args),t),{}),y=[...d,...l?l.values():[]],h=d.length,v=r||{};let g=o,D=a;return y.forEach((t,e)=>{let r;if("object"==typeof t){const o=t,i=h>e?e:0,a=((h>e?v[i]:void 0)||("args"in o&&Array.isArray(o.args)?o.args:f[i]??p[i]??p[0]??[])).map(t=>"object"==typeof t&&null!==t?A(t):t);r=o.decorator(...a)}else{if("function"!=typeof t)throw Error("Unexpected decorator type: "+typeof t);r=t}const a=r(void 0===i?g:o,i,D);void 0===i?"function"==typeof a&&(g=a):void 0!==a&&(D=a)}),void 0===i?g:D}return Object.defineProperty(o,"name",{value:[e||"dynamic",t].join("_decorator_for_"),writable:!1}),o}apply(){if(!this.key)throw Error("No key provided for the decoration builder");const e=this.key,r=j.decorators[this.key]?.[this.flavour]?.decorators,o=this.decorators||r||new Set,i=void 0!==this.extras?this.extras:void 0;j.register(this.key,this.flavour,o,i);const a=(r,o,i)=>{const a=void 0!==o,s="function"==typeof r?r:r?.constructor||r;if(s&&a){v.innerGet(v.Symbol(s),t.DecorationKeys.FLAVOUR)||j.ensureDefaultFlavour(s);const a=this.snapshotDecoratorArgs();return j.registerPendingDecorator(s,r,t=>this.decoratorFactory(e,t,a),o,i,a,e),j.resolvePendingDecorators(s),o&&!i&&S()(s,o),o&&i&&E()(s,o,i),i}const n=this.flavour===j.defaultFlavour?void 0:this.flavour;return this.decoratorFactory(e,n)(r,o,i)};try{Object.defineProperty(a,"name",{value:[this.flavour,e].join("_decorator_for_"),writable:!1})}catch(t){}return a}static register(t,e,r,o){if(!t)throw Error("No key provided for the decoration builder");if(!r)throw Error("No decorators provided for the decoration builder");if(!e)throw Error("No flavour provided for the decoration builder");j.decorators[t]||(j.decorators[t]={}),j.decorators[t][e]||(j.decorators[t][e]={}),j.decorators[t][e].decorators=r,void 0!==o&&(j.decorators[t][e].extras=o)}static setResolver(t){j.flavourResolver=t}static shouldOverrideEntry(t,e){if(!t.definitionKey)return!1;if(e===j.defaultFlavour)return!1;const r=j.decorators[t.definitionKey];if(!r)return!1;const o=r[e];if(!o)return!1;const i=r[j.defaultFlavour],a=o.decorators&&o.decorators.size>0,s=o.extras instanceof Set&&o.extras.size>0;if(!a&&!s)return!1;if(!i)return!0;const n=!a||o.decorators===i.decorators,c=!s||o.extras===i.extras;return!(n&&c)}static for(t){return(new j).for(t)}static flavouredAs(t){return new j(t)}}function I(e,r){if(!r||!r.length)return;const o=v._metadata,i=v.Symbol(e),a=o[i]||(o[i]={});r.forEach(({path:e,previousValue:r,existed:o})=>{if(!e.length)return;if(e[0]===t.DecorationKeys.PROPERTIES)return;let i=a;for(let t=0;t<e.length-1;t++){const r=e[t];P(i[r])||(i[r]={}),i=i[r]}const s=e[e.length-1];o?i[s]=A(r):(delete i[s],((t,e)=>{for(let r=e.length;r>0;r--){const o=e.slice(0,r),i=o.slice(0,-1),a=o[o.length-1],s=0===i.length?t:w(t,i);if(!s||!P(s))break;const n=s[a];if(!P(n)||Reflect.ownKeys(n).length>0)break;delete s[a]}})(a,e.slice(0,-1)))})}function T(t){if(!t||void 0===t.propertyKey)return;const e=t.target;if(!e||void 0===t.descriptorWasOwn)return;const r=t.propertyKey,o=t.descriptorSnapshot;t.descriptorWasOwn?o?Object.defineProperty(e,r,o):delete e[r]:(delete e[r],o&&Object.defineProperty(e,r,o))}t.Decoration=j,t.DefaultFlavour=e,t.DefaultMetadata=a,t.Metadata=v,t.ObjectKeySplitter=r,t.PACKAGE_NAME=n,t.VERSION=s,t.apply=m,t.assignFlavour=D,t.description=e=>j.for(t.DecorationKeys.DESCRIPTION).define({decorator:e=>(r,o,i)=>O(v.key(t.DecorationKeys.DESCRIPTION,o?o.toString():t.DecorationKeys.CLASS),e)(r,o,i),args:[e]}).apply(),t.getValueBySplitter=y,t.metadata=O,t.metadataArray=(t,...e)=>(r,o,i)=>{const a=v.get(r,t)||[];return m(O(o?v.key(t,o):t,[...new Set([...a,...e])]))(r,o,i)},t.method=E,t.methodMetadata=(t,e)=>m(O(t,e),E()),t.param=b,t.paramMetadata=(e,r)=>(o,i,a)=>m(b(),O(v.key(t.DecorationKeys.METHODS,i,e),r))(o,i,a),t.prop=S,t.propMetadata=(t,e)=>m(O(t,e),S()),t.registerFlavourResolver=d,t.registerPendingResolver=f,t.resolveFlavour=u,t.resolvePendingDecorators=p,t.setValueBySplitter=h,t.uses=t=>e=>{const r=D(e,t,j.defaultFlavour);if(t!==j.defaultFlavour)j.resolvePendingDecorators(r,t);else{let t;try{t=j.flavourResolver?j.flavourResolver(r):void 0}catch{t=void 0}t&&t!==j.defaultFlavour?j.resolvePendingDecorators(r,t):j.markPending(r)}return e}},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("reflect-metadata")):"function"==typeof define&&define.amd?define(["exports","reflect-metadata"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).decoration={});
2
2
  //# sourceMappingURL=decoration.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"decoration.cjs","sources":["../src/constants.ts","../src/version.ts","../src/metadata/Metadata.ts","../src/decorators.ts","../src/decoration/Decoration.ts"],"sourcesContent":[null,null,null,null,null],"names":["DefaultFlavour","ObjectKeySplitter","DecorationKeys","DecorationState","exports","DefaultMetadata","PROPERTIES","VERSION","PACKAGE_NAME","getValueBySplitter","obj","path","splitter","keys","split","current","key","Object","prototype","hasOwnProperty","call","setValueBySplitter","value","filter","k","length","i","undefined","Metadata","this","_metadata","baseKey","REFLECT","mirror","constructor","Symbol","for","toString","name","join","properties","model","meta","get","methods","METHODS","description","prop","DESCRIPTION","CLASS","flavourOf","Decoration","flavouredAs","flavour","innerGet","FLAVOUR","registeredFlavour","registry","constr","fallback","constructors","entries","Array","isArray","some","registered","params","DESIGN_PARAMS","param","index","Error","String","DESIGN_RETURN","type","CONSTRUCTOR","resolvedModel","collectConstructorChain","c","isDecorated","PENDING","forEach","fallbackSymbol","collectedValues","map","ctor","mergeMetadataChain","DECORATION","symbol","chain","Function","push","parent","getPrototypeOf","reverse","values","acc","isPlainObject","mergePlainObjects","cloneMetadataValue","target","source","result","sourceValue","targetValue","proto","innerSet","set","defineProperty","enumerable","configurable","writable","registerLibrary","library","version","LIBRARIES","libraries","strs","metadata","descriptor","targetModel","uses","object","canonical","flav","defaultFlavour","filtered","o","Set","add","manageFlavourRMetadata","resolved","metadataTarget","designType","Reflect","getOwnMetadata","DESIGN_TYPE","method","getOwnPropertyDescriptor","paramTpes","designParams","designReturn","apply","decorators","propertyKey","decorator","flavourResolver","owner","item","Date","getTime","from","Map","v","clone","ownKeys","diffMetadataBuckets","before","after","basePath","prevExists","nextExists","prevValue","nextValue","previousValue","existed","cloneArgsOverrides","overrides","arg","getNodeAtPath","bucket","segment","targetStates","WeakMap","getTargetState","state","pending","directApply","applyPendingEntry","entry","metadataStore","metadataSymbol","beforeSnapshot","metadataDiff","descriptorSnapshot","currentDescriptor","descriptorWasOwn","overridesForCall","argsFactory","argsOverride","descriptorResult","callback","afterSnapshot","error","markPending","scheduleDefaultResolve","resolveScheduled","applying","Promise","resolve","then","resolvePendingDecorators","registerPendingDecorator","definitionKey","now","Math","random","argsOverrideClone","applyImmediately","flavourToUse","lastAppliedPass","passId","lastAppliedFlavour","registerEntry","appliedCount","eagerFlavour","resolvedFlavour","cursor","shouldFinalize","currentPass","hasOverride","shouldOverrideEntry","revertMetadataDiff","restorePropertyDescriptor","decorate","addon","extras","snapshotDecoratorArgs","size","args","define","find","d","extend","decoratorFactory","f","contextDecorator","cache","baseDecoratorsList","defaultDecoratorsList","baseArgsByIndex","reduce","accum","defaultArgsByIndex","toApply","baseLength","argsOverrides","currentTarget","decoratorFn","candidateIndex","invocationArgs","existingDecorators","decoratorsToRegister","extrasToRegister","register","wrapper","isMember","flavourHint","e","setResolver","resolver","flavourBucket","defaultBucket","hasDecorators","hasExtras","decoratorsMatch","extrasMatch","diff","ancestorPath","slice","parentPath","pruneEmptyAncestors","snapshot","desc","original","data","existingData"],"mappings":"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"}
1
+ {"version":3,"file":"decoration.cjs","sources":["../src/constants.ts","../src/version.ts","../src/decoration/metadataLink.ts","../src/metadata/Metadata.ts","../src/decoration/flavourRegistry.ts","../src/shared/core.ts","../src/decoration/Decoration.ts","../src/decorators.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["DefaultFlavour","ObjectKeySplitter","DecorationKeys","DecorationState","exports","DefaultMetadata","PROPERTIES","VERSION","PACKAGE_NAME","flavourResolver","pendingResolver","registerFlavourResolver","resolver","resolveFlavour","model","registerPendingResolver","resolvePendingDecorators","target","flavour","getValueBySplitter","obj","path","splitter","keys","split","current","key","Object","prototype","hasOwnProperty","call","setValueBySplitter","value","filter","k","length","i","undefined","Metadata","this","_metadata","_propertiesIndex","baseKey","REFLECT","mirror","constructor","Symbol","for","toString","name","join","properties","resolvedModel","constr","symbol","indexed","size","meta","get","methods","METHODS","description","prop","DESCRIPTION","CLASS","flavourOf","flavouredAs","innerGet","FLAVOUR","registeredFlavour","registry","fallback","constructors","entries","Array","isArray","some","registered","params","DESIGN_PARAMS","param","index","Error","String","DESIGN_RETURN","type","CONSTRUCTOR","collectConstructorChain","c","isDecorated","PENDING","forEach","fallbackSymbol","collectedValues","map","ctor","mergeMetadataChain","DECORATION","chain","Function","push","parent","getPrototypeOf","reverse","values","acc","isPlainObject","mergePlainObjects","cloneMetadataValue","source","result","sourceValue","targetValue","proto","innerSet","set","defineProperty","enumerable","configurable","writable","propPrefix","startsWith","slice","Set","add","registerLibrary","library","version","LIBRARIES","libraries","strs","FLAVOUR_BUCKET_SYMBOL","assignFlavour","object","defaultFlavour","canonical","previousFlavour","filtered","entry","nextBucket","metadata","descriptor","targetModel","metadataTarget","designType","Reflect","getOwnMetadata","DESIGN_TYPE","propKey","existing","method","getOwnPropertyDescriptor","paramTpes","designParams","designReturn","apply","decorators","propertyKey","decorator","owner","Decoration","item","Date","getTime","from","Map","v","clone","ownKeys","diffMetadataBuckets","before","after","basePath","prevExists","nextExists","prevValue","nextValue","previousValue","existed","cloneArgsOverrides","overrides","arg","getNodeAtPath","bucket","segment","targetStates","WeakMap","getTargetState","state","pending","directApply","applyPendingEntry","metadataStore","metadataSymbol","beforeSnapshot","metadataDiff","descriptorSnapshot","currentDescriptor","descriptorWasOwn","overridesForCall","argsFactory","argsOverride","descriptorResult","callback","afterSnapshot","error","markPending","resolved","ensureDefaultFlavour","scheduleDefaultResolve","resolveScheduled","applying","Promise","resolve","then","registerPendingDecorator","definitionKey","now","Math","random","argsOverrideClone","applyImmediately","flavourToUse","lastAppliedPass","passId","lastAppliedFlavour","registerEntry","appliedCount","eagerFlavour","resolvedFlavour","cursor","shouldFinalize","currentPass","hasOverride","shouldOverrideEntry","revertMetadataDiff","restorePropertyDescriptor","decorate","addon","extras","snapshotDecoratorArgs","args","define","find","d","extend","decoratorFactory","f","contextDecorator","cache","baseDecoratorsList","defaultDecoratorsList","baseArgsByIndex","reduce","accum","defaultArgsByIndex","toApply","baseLength","argsOverrides","currentTarget","decoratorFn","candidateIndex","invocationArgs","existingDecorators","decoratorsToRegister","extrasToRegister","register","wrapper","isMember","flavourHint","e","setResolver","flavourBucket","defaultBucket","hasDecorators","hasExtras","decoratorsMatch","extrasMatch","diff","ancestorPath","parentPath","pruneEmptyAncestors","snapshot","desc","original","data","existingData"],"mappings":"0CASa,MAAAA,EAAiB,QASjBC,EAAoB,IAUjC,IAAYC,EA6BAC,EAFXC,EAAAF,oBAAA,GA3BWA,EAAAA,mBAAAA,EAAAA,eA2BX,CAAA,IAzBC,UAAA,YAEAA,EAAA,QAAA,UAEAA,EAAA,WAAA,aAEAA,EAAA,QAAA,UAEAA,EAAA,MAAA,QAEAA,EAAA,YAAA,cAEAA,EAAA,YAAA,aAEAA,EAAA,WAAA,aAEAA,EAAA,QAAA,UAEAA,EAAA,WAAA,aAEAA,EAAA,YAAA,cAEAA,EAAA,cAAA,oBAEAA,EAAA,cAAA,oBAMDE,EAAAD,qBAAA,GAHWA,EAAAA,oBAAAA,EAAAA,gBAGX,CAAA,IAFC,QAAA,UACAA,EAAA,QAAA,UAUW,MAAAE,EAAsC,CACjD,CAACH,EAAAA,eAAeI,YAAa,IC/DlBC,EAAU,cAEVC,EAAe,cCH5B,IAAIC,EACAC,EAEE,SAAUC,EAAwBC,GACtCH,EAAkBG,CACpB,CAEM,SAAUC,EAAeC,GAC7B,OAAKL,EACEA,EAAgBK,GADMd,CAE/B,CAEM,SAAUe,EAAwBH,GACtCF,EAAkBE,CACpB,CAEgB,SAAAI,EACdC,EACAC,GAEKR,GACLA,EAAgBO,EAAQC,EAC1B,CCUM,SAAUC,EACdC,EACAC,EACAC,EAAmBrB,GAEnB,MAAMsB,EAAOF,EAAKG,MAAMF,GACxB,IAAIG,EAAUL,EAEd,IAAK,MAAMM,KAAOH,EAAM,CACtB,GACEE,UAECE,OAAOC,UAAUC,eAAeC,KAAKL,EAASC,GAE/C,OACFD,EAAUA,EAAQC,EACnB,CAED,OAAOD,CACT,CA4BM,SAAUM,EACdX,EACAC,EACAW,EACAV,EAAWrB,GAEX,MAAMsB,EAAOF,EAAKG,MAAMF,GAAUW,OAAQC,GAAMA,EAAEC,OAAS,GAC3D,GAAoB,IAAhBZ,EAAKY,OAAc,OAEvB,IAAIV,EAA4BL,EAEhC,IAAK,IAAIgB,EAAI,EAAGA,EAAIb,EAAKY,OAAS,EAAGC,IAAK,CACxC,MAAMV,EAAMH,EAAKa,QAEEC,IAAjBZ,EAAQC,IACS,OAAjBD,EAAQC,IACgB,iBAAjBD,EAAQC,KAEfD,EAAQC,GAAO,IAEjBD,EAAUA,EAAQC,EACnB,CAGDD,EADgBF,EAAKA,EAAKY,OAAS,IAChBH,CACrB,OAwBaM,SAKIC,KAASC,UAAwB,CAAA,CAAG,QAKpCD,KAAgBE,iBAAgC,CAAA,CAAG,QAM3DF,KAAQjB,SAAGrB,CAAkB,QAK7BsC,KAAAG,QAAUxC,EAAcA,eAACyC,OAAQ,QAKjCJ,KAAMK,QAAY,CAAK,CAE9B,WAAAC,GAAwB,CAExB,aAAOC,CAAU1B,GACf,OAAO0B,OAAOC,IAAI,CAAC3B,EAAI4B,WAAY5B,EAAI6B,MAAMC,KAAK,OACnD,CAWD,iBAAOC,CAAWrC,GAChB,MAAMsC,EAAgBb,KAAKc,OAAOvC,GAC5BwC,EAASf,KAAKO,OAAOM,GACrBG,EAAUhB,KAAKE,iBAAiBa,GACtC,GAAIC,GAAWA,EAAQC,KAAM,MAAO,IAAID,GACxC,MAAME,EAAOlB,KAAKmB,IAAIN,GACtB,OAAKK,GAASA,EAAKN,WACZxB,OAAOJ,KAAKkC,EAAKN,iBADxB,CAED,CAQD,cAAOQ,CAAQ7C,GACb,MAAM2C,EAAOlB,KAAKmB,IAAI5C,EAAOZ,EAAAA,eAAe0D,SAC5C,GAAKH,EACL,OAAO9B,OAAOJ,KAAKkC,EACpB,CAUD,kBAAOI,CACL/C,EACAgD,GAEA,OAAOvB,KAAKmB,IACV5C,EACAyB,KAAKb,IACHxB,EAAAA,eAAe6D,YACdD,GAAc5D,iBAAe8D,OAGnC,CAED,gBAAOC,CAAUnD,GACf,OAAOD,EAAeC,EACvB,CAED,kBAAOoD,CAAYhD,GACjB,OAAOqB,KAAK4B,SAASrB,OAAOC,IAAI7C,EAAcA,eAACkE,SAAUlD,IAAY,EACtE,CAED,wBAAOmD,CAAkBvD,GACvB,MAAMwD,EAAW/B,KAAK4B,SAASrB,OAAOC,IAAI7C,EAAcA,eAACkE,UACzD,IAAKE,EAAU,OACf,MAAMjB,EAASd,KAAKc,OAAOvC,GAC3B,IAAIyD,EACJ,IAAK,MAAOrD,EAASsD,KAAiB7C,OAAO8C,QAC3CH,GAEA,GAAII,MAAMC,QAAQH,IACCA,EAAaI,KAC3BC,GAAetC,KAAKc,OAAOwB,KAAgBxB,GAEhC,CACZ,GAAInC,IAAYlB,EAAgB,CAC9BuE,EAAWA,GAAYrD,EACvB,QACD,CACD,OAAOA,CACR,CAGL,OAAOqD,CACR,CAUD,aAAOO,CAAUhE,EAAuBgD,GACtC,OAAOvB,KAAKmB,IACV5C,EACAyB,KAAKb,IAAIxB,iBAAe0D,QAASE,EAAM5D,iBAAe6E,eAEzD,CAWD,YAAOC,CACLlE,EACAgD,EACAmB,GAEA,MAAMH,EAASvC,KAAKuC,OAAOhE,EAAOgD,GAClC,GAAKgB,EAAL,CACA,GAAIG,EAAQH,EAAO3C,OAAS,EAC1B,MAAU+C,MACR,mBAAmBD,sBAAiCnB,EAAPqB,MAEjD,OAAOL,EAAOG,EALe,CAM9B,CAUD,aAAO,CAAUnE,EAAuBgD,GACtC,OAAOvB,KAAKmB,IACV5C,EACAyB,KAAKb,IAAIxB,iBAAe0D,QAASE,EAAM5D,iBAAekF,eAEzD,CASD,WAAOC,CAAKvE,EAAoBgD,GAC9B,OAAOvB,KAAKmB,IAAI5C,EAAOyB,KAAKb,IAAIxB,iBAAeI,WAAYwD,GAC5D,CASD,aAAOT,CAAUvC,GACf,OAAOA,EAAMZ,EAAAA,eAAeoF,cAAsCxE,CACnE,CAgCD,UAAO4C,CAAI5C,EAAoBY,GAC7B,GAAIA,IAAQxB,EAAAA,eAAeoF,YAAa,OAAO/C,KAAKc,OAAOvC,GAC3D,MAAMsC,EAAgBb,KAAKc,OAAOvC,GAC5B0D,EAAejC,KAAKgD,wBAAwBnC,GAMlD,GALAoB,EACGvC,OAAQuD,GAAMjD,KAAKkD,YAAYD,KAAOrF,EAAeA,gBAACuF,SACtDC,QAAS9C,IACR7B,EAAyB6B,KAED,IAAxB2B,EAAarC,OAAc,CAC7B,MAAMyD,EAAiB9C,OAAOC,IAAIK,EAAcJ,YAChD,OAAOT,KAAK4B,SAASyB,EAAgBlE,EACtC,CACD,MAAMmE,EAAkBrB,EACrBsB,IAAKC,GAASxD,KAAK4B,SAAS5B,KAAKO,OAAOiD,GAAOrE,IAC/CO,OAAQD,QAAoBK,IAAVL,GAErB,OAA+B,IAA3B6D,EAAgB1D,OAEbI,KAAKyD,mBAAmBH,QAF/B,CAGD,CAEO,kBAAOJ,CAAY3E,GACzB,MAAMsC,EAAgBb,KAAKc,OAAOvC,GAKlC,OAJayB,KAAK4B,SAChB5B,KAAKO,OAAOM,GACZlD,iBAAe+F,cAEF,CAChB,CASO,eAAO9B,CAASb,EAAgB5B,GACtC,GAAKa,KAAKC,UAAUc,GACpB,OAAK5B,EACc,iBAARA,EACFP,EAAmBoB,KAAKC,UAAUc,GAAS5B,EAAKa,KAAKjB,UACvDiB,KAAKC,UAAUc,GAAQ5B,GAHba,KAAKC,UAAUc,EAIjC,CAQO,8BAAOiC,CAAwBzE,GACrC,MAAMoF,EAAuB,GAC7B,IAAIzE,EAAeX,EAEnB,KAA0B,mBAAZW,GAA0BA,IAAY0E,UAAU,CAC5DD,EAAME,KAAK3E,GACX,MAAM4E,EAAS1E,OAAO2E,eAAe7E,GACrC,IAAK4E,GAAUA,IAAWF,UAAYE,IAAW1E,OAAQ,MACzDF,EAAU4E,CACX,CAED,OAAOH,EAAMK,SACd,CAQO,yBAAOP,CAAmBQ,GAChC,IAAIC,EAEJ,IAAK,MAAMzE,KAASwE,EAOhBC,OANUpE,IAARoE,GAKAlE,KAAKmE,cAAcD,IAAQlE,KAAKmE,cAAc1E,GAC1CO,KAAKoE,kBACTF,EACAzE,GAPIO,KAAKqE,mBAAmB5E,GAelC,OAAOyE,CACR,CAQO,yBAAOG,CAAmB5E,GAChC,OAAI0C,MAAMC,QAAQ3C,GAAe,IAAIA,GACjCO,KAAKmE,cAAc1E,GACdO,KAAKoE,kBAAkB,CAAE,EAAE3E,GAC7BA,CACR,CASO,wBAAO2E,CACb1F,EACA4F,GAEA,MAAMC,EAA8B,IAAK7F,GAEzC,IAAK,MAAMS,KAAOC,OAAOJ,KAAKsF,GAAS,CACrC,MAAME,EAAcF,EAAOnF,GACrBsF,EAAcF,EAAOpF,GAEvBa,KAAKmE,cAAcK,GACrBD,EAAOpF,GAAOa,KAAKmE,cAAcM,GAC7BzE,KAAKoE,kBACHK,EACAD,GAEFxE,KAAKoE,kBAAkB,GAAII,GAK/BD,EAAOpF,GADLgD,MAAMC,QAAQoC,GACF,IAAIA,GAINA,CACf,CAED,OAAOD,CACR,CAQO,oBAAOJ,CAAc1E,GAC3B,GAAc,OAAVA,GAAmC,iBAAVA,GAAsB0C,MAAMC,QAAQ3C,GAC/D,OAAO,EACT,MAAMiF,EAAQtF,OAAO2E,eAAetE,GACpC,OAAOiF,IAAUtF,OAAOC,WAAuB,OAAVqF,CACtC,CAUO,eAAOC,CAAS5D,EAAgB5B,EAAsBM,GAE5D,GADKO,KAAKC,UAAUc,KAASf,KAAKC,UAAUc,GAAU,IACnC,iBAAR5B,EACT,OAAOK,EACLQ,KAAKC,UAAUc,GACf5B,EACAM,EACAO,KAAKjB,UAETiB,KAAKC,UAAUc,GAAQ5B,GAAOM,CAC/B,CAWD,UAAOmF,CAAIrG,EAA6BY,EAAaM,GACnD,GAAIN,IAAQxB,EAAcA,eAACoF,YAOzB,YANA3D,OAAOyF,eAAetG,EAAOZ,EAAAA,eAAeoF,YAAa,CACvD+B,YAAY,EACZC,cAAc,EACdC,UAAU,EACVvF,MAAOA,IAIU,iBAAVlB,IAAoBA,EAAQyB,KAAKc,OAAOvC,IAAUA,GAC7D,MAAMwC,EACa,iBAAVxC,EAAqBgC,OAAOC,IAAIjC,GAASyB,KAAKO,OAAOhC,GAC9D,GAAmB,iBAARY,EAAkB,CAC3B,MAAM8F,EAAa,GAAGtH,EAAcA,eAACI,aAAaiC,KAAKjB,WACvD,GAAII,EAAI+F,WAAWD,GAAa,CAC9B,MAAM1D,EAAOpC,EAAIgG,MAAMF,EAAWrF,QAClC,GAAI2B,EAAK3B,OAAQ,CACf,MAAMgF,EAAM5E,KAAKE,iBAAiBa,IAAW,IAAIqE,IACjDR,EAAIS,IAAI9D,GACRvB,KAAKE,iBAAiBa,GAAU6D,CACjC,CACF,MAAM,GACLzF,IAAQxB,EAAAA,eAAeI,YACvBiC,KAAKmE,cAAc1E,GACnB,CACA,MAAMmF,EAAM5E,KAAKE,iBAAiBa,IAAW,IAAIqE,IACjDhG,OAAOJ,KAAKS,GAA8B2D,QAAS7B,IACjDqD,EAAIS,IAAI9D,KAENqD,EAAI3D,OAAMjB,KAAKE,iBAAiBa,GAAU6D,EAC/C,CACF,CACD5E,KAAK2E,SAAS5D,EAAQ5B,EAAKM,GAER,iBAAVlB,GACPwB,EAASM,SACRjB,OAAOC,UAAUC,eAAeC,KAAKhB,EAAOyB,KAAKG,UAElDf,OAAOyF,eAAetG,EAAOyB,KAAKG,QAAS,CACzC2E,YAAY,EACZC,cAAc,EACdC,UAAU,EACVvF,MAAOO,KAAKC,UAAUc,IAG3B,CAUD,sBAAOuE,CAAgBC,EAAiBC,GACtC,MAAMzE,EAASR,OAAOC,IAAI7C,EAAcA,eAAC8H,WAEzC,GADYzF,KAAK4B,SAASb,EAAQwE,GAEhC,MAAU5C,MACR,mBAAmB4C,6BAAmCC,KAE1DxF,KAAK2E,SAAS5D,EAAQwE,EAASC,EAChC,CAOD,gBAAOE,GACL,MAAM3E,EAASR,OAAOC,IAAI7C,EAAcA,eAAC8H,WACzC,OAAOzF,KAAK4B,SAASb,IAAW,CAAA,CACjC,CAQD,UAAO5B,IAAOwG,GACZ,OAAOA,EAAKhF,KAAKX,KAAKjB,SACvB,EAGHgB,EAASuF,gBAAgBrH,EAAcD,GCrnBvC,MAAM4H,EAAwBrF,OAAOC,IAAI7C,EAAcA,eAACkE,kBAUxCgE,EACdC,EACAnH,EACAoH,GAEA,MAAMC,EAAYjG,EAASe,OAAOgF,GAC5BG,EACJlG,EAAmB,SACjBA,EAASQ,OAAOuF,GAChBnI,EAAAA,eAAekE,UACZkE,EAGDG,GADJnG,EAAmB,SAAE6F,EAAuBK,IAAoB,IAClCvG,OAAQyG,GAC/BpG,EAASe,OAAOqF,KAAkBH,GAE3CjG,EAAS6E,IAAIjH,EAAcA,eAACkE,QAASoE,EAAiBC,GACtD,MAAME,EAAa,IAAIhB,IACrBrF,EAAmB,SAAE6F,EAAuBjH,IAAY,IAK1D,OAHAyH,EAAWf,IAAIS,GACf/F,EAAS6E,IAAIjH,iBAAekE,QAASlD,EAAS,IAAIyH,IAClDrG,EAAS6E,IAAIoB,EAAWrI,EAAcA,eAACkE,QAASlD,GACzCqH,CACT,CCzBgB,SAAAK,EAASlH,EAAaM,GACpC,MAAO,CACLlB,EACAgD,EAEA+E,KAEA,IAAIC,EAAchI,EAClB,GAAIgD,IACFgF,EACmB,mBAAVhI,EACHA,EACCA,EAAgC+B,aAAe/B,OAC5B,IAAf+H,GAA4B,CACrC,MAAME,EACa,mBAAVjI,EAAwBA,EAAcc,UAAYd,EACrDkI,EAAaC,QAAQC,eACzBhJ,EAAcA,eAACiJ,YACfJ,EACAjF,GAEIsF,EAAU9G,EAASZ,IACvBxB,EAAAA,eAAeI,WACfwD,EAAKd,YAEDqG,EAAW/G,EAASoB,IAAIoF,EAAaM,QAEnB,IAAfJ,QACa,IAAbK,GAEP/G,EAAS6E,IAAI2B,EAAaM,EAASJ,EAEtC,CAEH1G,EAAS6E,IAAI2B,EAAapH,EAAKM,EACjC,CACF,UAsBgB8B,IACd,MAAO,CAAmBhD,EAAegD,KACvC,MAAMiF,EACa,mBAAVjI,EAAwBA,EAAcc,UAAYd,EACrDkI,EAAaC,QAAQC,eACzBhJ,EAAcA,eAACiJ,YACfJ,EACAjF,GAEF,OAAO8E,EAAStG,EAASZ,IAAIxB,iBAAeI,WAAYwD,GAAOkF,EAAxDJ,CACL9H,EACAgD,EAEJ,CACF,UAoBgBkB,IACd,MAAO,CAAelE,EAAegD,EAAYmB,KAC/C,IAAKnB,EACH,MAAUoB,MAAM,uDAClBoE,IAASxI,EAAOgD,EAAMnC,OAAO4H,yBAAyBzI,EAAOgD,IAC7D,MAAM0F,EAAYlH,EAASwC,OAAOhE,EAAM+B,YAAoBiB,GAC5D,IAAK0F,EACH,MAAUtE,MAAM,+BAAsCpB,GACxD,GAAKmB,GAAoBuE,EAAUrH,OACjC,MAAU+C,MACR,mBAAmBD,sBAAiCnB,EAAPqB,MAEjDyD,EACEtG,EAASZ,IACPxB,EAAcA,eAAC0D,QACfE,EACCmB,EAAiBjC,YAEpBwG,EAAUvE,GANZ2D,CAOE9H,EAAOgD,EACX,CACF,UAsCgBwF,IACd,MAAO,CAAgBlI,EAAU0C,EAAY+E,KAC3C,MAAMY,EAAeR,QAAQC,eAC3BhJ,EAAcA,eAAC6E,cACf3D,EACA0C,GAEI4F,EAAeT,QAAQC,eAC3BhJ,EAAcA,eAACkF,cACfhE,EACA0C,GAEF,OAAO6F,EACLf,EACEtG,EAASZ,IACPxB,EAAcA,eAAC0D,QACfE,EACA5D,EAAAA,eAAe6E,eAEjB0E,GAEFb,EACEtG,EAASZ,IACPxB,EAAcA,eAAC0D,QACfE,EACA5D,EAAAA,eAAekF,eAEjBsE,GAfGC,CAiBLvI,EAAK0C,EAAM+E,EACf,CACF,CAqBgB,SAAAc,KACXC,GAIH,MAAO,CACL3I,EACA4I,EACAhB,KAEA,IAAK,MAAMiB,KAAaF,OACK,IAAhBC,EAYVC,EACC7I,EACA4I,EACAhB,GAdCiB,EAA6B7I,GAkBtC,CC5NA,SAASR,EAAgBQ,GACvB,MAAM8I,EAAQzH,EAASe,OACH,mBAAXpC,EAAwBA,EAAUA,GAAgB4B,aAErDY,EAAOnB,EAAmB,SAC9BA,EAASQ,OAAOiH,GAChB7J,iBAAekE,SAEjB,GAAIX,GAAQA,IAASuG,EAAW1B,eAAgB,OAAO7E,EACvD,MAAMoB,EACqC,mBAAlCvC,EAA4B,kBAC/BA,EAAS+B,kBAAkB0F,QAC3B1H,EACN,OAAIwC,GAAcA,IAAemF,EAAW1B,eAAuBzD,EAC5DpB,GAAQuG,EAAW1B,cAC5B,CAsDA,SAAS5B,EAAc1E,GACrB,OACY,OAAVA,GACiB,iBAAVA,IACN0C,MAAMC,QAAQ3C,IACdA,EAA8Ba,cAAgBlB,MAEnD,CAEA,SAASiF,EAAsB5E,GAC7B,GAAc,OAAVA,GAAmC,iBAAVA,EAAoB,OAAOA,EACxD,GAAI0C,MAAMC,QAAQ3C,GAChB,OAAOA,EAAM8D,IAAKmE,GAASrD,EAAmBqD,IAEhD,GAAIjI,aAAiBkI,KACnB,OAAO,IAAIA,KAAKlI,EAAMmI,WAExB,GAAInI,aAAiB2F,IACnB,OAAO,IAAIA,IACTjD,MAAM0F,KAAKpI,GAAO8D,IAAKmE,GAASrD,EAAmBqD,KAGvD,GAAIjI,aAAiBqI,IACnB,OAAO,IAAIA,IACT3F,MAAM0F,KAAKpI,EAAMyC,WAAWqB,IAAI,EAAE5D,EAAGoI,KAAO,CAACpI,EAAG0E,EAAmB0D,MAGvE,GAAKtI,EAA8Ba,cAAgBlB,OACjD,OAAOK,EAET,MAAMuI,EAAsC,CAAA,EAM5C,OALAtB,QAAQuB,QAAQxI,GAAuC2D,QAASjE,IAC9D6I,EAAM7I,GAAckF,EACjB5E,EAAuCN,MAGrC6I,CACT,CAEA,SAASE,EACPC,EACAC,EACAC,EAAgC,GAChC9D,EAA8B,IAyD9B,OAvDa,IAAIa,IAAiB,IAC5B+C,EAASzB,QAAQuB,QAAQE,GAAU,MACnCC,EAAQ1B,QAAQuB,QAAQG,GAAS,KAElChF,QAASjE,IACZ,MAAMmJ,IAAaH,GACf/I,OAAOC,UAAUC,eAAeC,KAAK4I,EAAQhJ,GAE3CoJ,IAAaH,GACfhJ,OAAOC,UAAUC,eAAeC,KAAK6I,EAAOjJ,GAE1CqJ,EAAYF,EAAaH,IAAShJ,QAAcW,EAChD2I,EAAYF,EAAaH,IAAQjJ,QAAcW,EACrD,GAAKyI,EAQL,OAAKD,OAiBDnE,EAAcqE,IAAcrE,EAAcsE,GAC5CP,EACEM,EACAC,EACA,IAAIJ,EAAUlJ,GACdoF,GAIAiE,IAAcC,GAChBlE,EAAOV,KAAK,CACV/E,KAAM,IAAIuJ,EAAUlJ,GACpBuJ,cAAerE,EAAmBmE,GAClCG,SAAS,KA7BPxE,EAAcsE,QAChBP,OACEpI,EACA2I,EACA,IAAIJ,EAAUlJ,GACdoF,QAIJA,EAAOV,KAAK,CACV/E,KAAM,IAAIuJ,EAAUlJ,GACpBuJ,mBAAe5I,EACf6I,SAAS,IApBXpE,EAAOV,KAAK,CACV/E,KAAM,IAAIuJ,EAAUlJ,GACpBuJ,cAAerE,EAAmBmE,GAClCG,SAAS,MAsCRpE,CACT,CAEA,SAASqE,EACPC,GAEA,IAAKA,EAAW,OAChB,MAAMb,EAA+B,CAAA,EAMrC,OALA5I,OAAOJ,KAAK6J,GAAWzF,QAASjE,IAC9B6I,EAAM7I,GAAc0J,EAAU1J,GAAYoE,IAAKuF,GAC9B,iBAARA,GAA4B,OAARA,EAAezE,EAAmByE,GAAOA,KAGjEd,CACT,CAEA,SAASe,EACPC,EACAlK,GAEA,IAAII,EAAoD8J,EACxD,IAAK,MAAMC,KAAWnK,EAAM,CAC1B,IAAKI,IAAYiF,EAAcjF,EAAQ+J,IACrC,OAEF/J,EAAUA,EAAQ+J,EACnB,CACD,OAAO/J,CACT,OA0FauI,SACJzH,KAAc+F,eAAGtI,CAAe,QAExBuC,KAAAkJ,aACb,IAAIC,OAAU,QAMDnJ,KAAUqH,WASrB,CAAA,CAAG,QAMQrH,KAAe9B,gBAAoBA,CAAgB,QAGhEE,EAAyBG,GAAUyB,KAAK9B,gBAAgBK,IACxDC,EAAwB,CAACE,EAAQC,IAC/BqB,KAAKvB,yBAAyBC,EAAQC,GAEzC,CAiBD,WAAA2B,CAAoB3B,EAAkB8I,EAAW1B,gBAA7B/F,KAAOrB,QAAPA,CAA+C,CAW3D,qBAAOyK,CAAe5B,GAC5B,IAAKA,EACH,MAAU7E,MAAM,uDAElB,IAAI0G,EAAQrJ,KAAKkJ,aAAa/H,IAAIqG,GAKlC,OAJK6B,IACHA,EAAQ,CAAEC,QAAS,GAAI3K,aAASmB,EAAWyJ,aAAa,GACxDvJ,KAAKkJ,aAAatE,IAAI4C,EAAO6B,IAExBA,CACR,CAEO,wBAAOG,CACbrD,EACAxH,GAEA,MAAM8K,EAAiB1J,EAA4B,UAI7C2J,EAAiB3J,EAASQ,OAAO4F,EAAMqB,OACvCmC,OAC0B,IAAvBxD,EAAMyD,aACTvF,EAAmBoF,EAAcC,SACjC5J,EACN,IACE,QAC+B,IAAtBqG,EAAMmB,kBACuB,IAA7BnB,EAAM0D,oBACb1D,EAAMzH,OACN,CACA,MAAMoL,EAAoB1K,OAAO4H,yBAC/Bb,EAAMzH,OACNyH,EAAMmB,aAERnB,EAAM4D,iBAAmB3K,OAAOC,UAAUC,eAAeC,KACvD4G,EAAMzH,OACNyH,EAAMmB,aAERnB,EAAM0D,mBAAqBC,EACvB,IAAKA,QACLhK,CACL,CACD,MAAMkK,EAAmB7D,EAAM8D,YAC3B9D,EAAM8D,cACNrB,EAAmBzC,EAAM+D,cACvBC,EAAmBhE,EAAMiE,SAASzL,EAASqL,EAAxB7D,CACvBA,EAAMzH,OACNyH,EAAMmB,YACNnB,EAAMG,YAqBR,QAjB+B,IAAtBH,EAAMmB,aACb6C,GACAhE,EAAMzH,QAENU,OAAOyF,eACLsB,EAAMzH,OACNyH,EAAMmB,YACN6C,QAI2B,IAAtBhE,EAAMmB,kBACe,IAArBnB,EAAMG,YAGb/E,IAAO4E,EAAMqB,OAASrB,EAAMzH,OAAQyH,EAAMmB,kBAEV,IAAvBnB,EAAMyD,aAA8B,CAC7C,MAAMS,EAAgBhG,EAAmBoF,EAAcC,IACvDvD,EAAMyD,aAAe1B,EACnByB,EACAU,EAEH,CACF,CAAC,MAAOC,GAOR,CACF,CAES,kBAAOC,CAAY/C,GAC3B,IAAKA,EAAO,OACZ,MAAM6B,EAAQrJ,KAAKoJ,eAAe5B,GAClC6B,EAAMmB,UAAW,EACZnB,EAAM1K,UAAS0K,EAAM1K,QAAU8I,EAAW1B,gBAC/ChG,EAAS6E,IAAI4C,EAAO7J,EAAAA,eAAe+F,WAAY9F,EAAAA,gBAAgBuF,QAChE,CAEO,2BAAOsH,CAAqBjD,GAClC,IAAKA,EAAO,OACZ,MAAMxB,EAAYH,EAChB2B,EACAC,EAAW1B,eACX0B,EAAW1B,gBAEb,IAAIyE,EACJ,IACEA,EAAW/C,EAA4B,gBACnCA,EAA4B,gBAAEzB,QAC9BlG,CACL,CAAC,MACA0K,OAAW1K,CACZ,CACG0K,GAAYA,IAAa/C,EAAW1B,eACtC0B,EAAqC,yBAAEzB,EAAWwE,GAElD/C,EAAwB,YAAEzB,EAE7B,CAEO,6BAAO0E,CAAuBlD,GACpC,IAAKA,EAAO,OACZ,MAAM6B,EAAQrJ,KAAKoJ,eAAe5B,GAC9B6B,EAAMsB,kBAAoBtB,EAAMmB,UAAYnB,EAAMuB,WACtDvB,EAAMsB,kBAAmB,EACzBE,QAAQC,UAAUC,KAAK,KACrB1B,EAAMsB,kBAAmB,EACpBtB,EAAMmB,UACTxK,KAAKvB,yBAAyB+I,KAGnC,CAES,+BAAOwD,CACfxD,EACA9I,EACA0L,EAIA9C,EACAhB,EACA4D,EACAe,GAEA,MAAM9L,EAAM,GACVqI,GAAO9G,MAAQ,gBACN4G,GAAe,SAAtB1E,MAAkC+E,KAAKuD,SAASC,KAAKC,WAEnD/B,EAAQrJ,KAAKoJ,eAAe5B,GAC5B6D,EAAoBzC,EAAmBsB,GACvC/D,EAA0B,CAC9BqB,QACA9I,SACA4I,cACAhB,aACA8D,WACAF,aAAcmB,EACdpB,YAAa,IAAMrB,EAAmByC,GACtClM,MACA8L,iBAGIK,EAAmB,KACvB,MAAMC,EACJlC,EAAM1K,SACNoB,EAASoB,IAAIqG,EAAO7J,EAAAA,eAAekE,UACnC4F,EAAW1B,eAIb,OAHA/F,KAAKwJ,kBAAkBrD,EAAOoF,GAC9BpF,EAAMqF,gBAAkBnC,EAAMoC,OAC9BtF,EAAMuF,mBAAqBH,EACpBA,GAGHI,EAAgB,KACpBtC,EAAMC,QAAQzF,KAAKsC,GACZA,GAGT,GAAIkD,EAAME,YAAa,CACrBoC,IACA,MAAMJ,EAAeD,IAIrB,OAHAjC,EAAMuC,aAAevC,EAAMC,QAAQ1J,OACnCyJ,EAAM1K,QAAU4M,EAChBxL,EAAS6E,IAAI4C,EAAO7J,EAAcA,eAAC+F,YAAY,GACxCvE,CACR,CAID,GAFAwM,IAEItC,EAAMuB,SAER,OADAU,IACOnM,EAGT,GAAIsI,EAAWvJ,kBAAoBA,EACjC,IACE,MAAM2N,EAAepE,EAAWvJ,gBAAgBsJ,GAChD,GAAIqE,GAAgBA,IAAiBpE,EAAW1B,eAE9C,OADA/F,KAAKvB,yBAAyB+I,EAAOqE,GAC9B1M,CAEV,CAAC,MAED,CAIH,OADAa,KAAK0K,uBAAuBlD,GACrBrI,CACR,CAES,+BAAOV,CACfC,EACAC,GAEA,MAAM6I,EACc,mBAAX9I,EAAwBA,EAASA,GAAQ4B,aAAe5B,EACjE,IAAK8I,EAAO,OACZ,MAAM6B,EAAQrJ,KAAKoJ,eAAe5B,GAElC,GADA6B,EAAMsB,kBAAmB,GACpBtB,EAAMC,QAAQ1J,SAAWjB,EAAS,OAEvC,MAAMmN,EACJnN,GACA0K,EAAM1K,SACNoB,EAASoB,IAAIqG,EAAO7J,EAAAA,eAAekE,UACnC4F,EAAW1B,eAEb,GAAIsD,EAAMuB,SAAU,OAEpB,MAAMmB,EAAS1C,EAAMuC,cAAgB,EACrC,IACGjN,GACD0K,EAAMqC,qBAAuBI,GAC7BC,GAAU1C,EAAMC,QAAQ1J,OAExB,OAGF,MAAMoM,KACIrN,GAAWA,IAAY8I,EAAW1B,iBAC1CsD,EAAME,YACR,IAAKF,EAAMC,QAAQ1J,OAAQ,OAE3B,MAAMqM,GAAe5C,EAAMoC,QAAU,GAAK,EAC1CpC,EAAMoC,OAASQ,EACf5C,EAAMuB,UAAW,EACjB,IACE,GAAIoB,EACF,IAAK,MAAM7F,KAASkD,EAAMC,QAAS,CACjC,IAAKnD,EAAO,SACZ,GAAIA,EAAMqF,kBAAoBS,EAAa,SAC3C,MAAMC,EAAclM,KAAKmM,oBAAoBhG,EAAO2F,QAEpB,IAAvB3F,EAAMyD,mBACuB,IAA7BzD,EAAM0D,mBAOX1D,EAAMuF,qBAAuBI,GAAoBI,GAIjD/F,EAAMyD,cAAchK,QACtBwM,EAAmBjG,EAAMqB,MAAOrB,EAAMyD,cAExCyC,EAA0BlG,GAC1BnG,KAAKwJ,kBAAkBrD,EAAO2F,GAC9B3F,EAAMqF,gBAAkBS,EACxB9F,EAAMuF,mBAAqBI,GATzB3F,EAAMqF,gBAAkBS,GANxBjM,KAAKwJ,kBAAkBrD,EAAO2F,GAC9B3F,EAAMqF,gBAAkBS,EACxB9F,EAAMuF,mBAAqBI,EAc9B,KACI,CACL,IAAIpJ,EAAQqJ,EACZ,KAAOrJ,EAAQ2G,EAAMC,QAAQ1J,QAAQ,CACnC,MAAMuG,EAAQkD,EAAMC,QAAQ5G,KACvByD,GACDA,EAAMqF,kBAAoBS,IAC9BjM,KAAKwJ,kBAAkBrD,EAAO2F,GAC9B3F,EAAMqF,gBAAkBS,EACxB9F,EAAMuF,mBAAqBI,EAC5B,CACDzC,EAAMuC,aAAevC,EAAMC,QAAQ1J,MACpC,CACF,CAAS,QACRyJ,EAAMuB,UAAW,CAClB,CAEDvB,EAAM1K,QAAUmN,EAChBzC,EAAMmB,UAAW,EACjBnB,EAAMqC,mBAAqBI,EACvBE,IACF3C,EAAMuC,aAAevC,EAAMC,QAAQ1J,OAC/BkM,IAAoBrE,EAAW1B,iBACjCsD,EAAME,aAAc,IAIxBxJ,EAAS6E,IAAI4C,EAAO7J,EAAcA,eAAC+F,YAAY,EAChD,CAQD,IAAIvE,GAEF,OADAa,KAAKb,IAAMA,EACJa,IACR,CASO,QAAAsM,CACNC,GAAiB,KACdlF,GAEH,IAAKrH,KAAKb,IACR,MAAUwD,MAAM,uDAClB,KACI0E,GAAeA,EAAWzH,QAC3B2M,GACDvM,KAAKrB,UAAY8I,EAAW1B,gBAE5B,MAAUpD,MACR,6EAaJ,OAVI4J,EACDvM,KAAawM,OAAS,IAAIpH,IAAI,KACzBpF,KAAKwM,QAAU,IAAIpH,KAAOnB,YAC3BoD,IAIJrH,KAAaqH,WAAa,IAAIjC,IAAI,IAAIiC,IAGlCrH,IACR,CAEO,qBAAAyM,GACN,IAAKzM,KAAKqH,aAAerH,KAAKqH,WAAWpG,KAAM,OAC/C,MAAM4H,EAAmC,CAAA,EAczC,OAbA1G,MAAM0F,KAAK7H,KAAKqH,WAAWpD,UAAUb,QAAQ,CAAC+C,EAAOzD,KAEhC,iBAAVyD,GACP,SAAUA,GACVhE,MAAMC,QAAQ+D,EAAMuG,QAEpB7D,EAAUnG,GAASyD,EAAMuG,KAAKnJ,IAAKuF,GAClB,iBAARA,GAA4B,OAARA,EACvBzE,EAAmByE,GACnBA,MAIH1J,OAAOJ,KAAK6J,GAAWjJ,OAASiJ,OAAY/I,CACpD,CAQD,MAAA6M,IACKtF,GAEH,GACEA,EAAWuF,KAAMC,GAAmB,iBAANA,IACR,IAAtBxF,EAAWzH,OAEX,MAAU+C,MACR,4DAEJ,OAAO3C,KAAKsM,UAAS,KAAUjF,EAChC,CAQD,MAAAyF,IAAUzF,GACR,GACEA,EAAWuF,KAAMC,GAAmB,iBAANA,IACR,IAAtBxF,EAAWzH,OAEX,MAAU+C,MACR,sEAEJ,OAAO3C,KAAKsM,UAAS,KAASjF,EAC/B,CAwBS,gBAAA0F,CACR5N,EACA6N,EACAnE,GAEA,SAASoE,EACPvO,EACA4I,EACAhB,GAEA,MAAM3H,EAAUqO,GAAKvF,EAAWvJ,gBAAgBQ,GAC1CwO,EAAQzF,EAAWJ,WAAWlI,GACpC,IAAIkI,EACJ,MAAMmF,EAASU,EAAMvO,GACjBuO,EAAMvO,GAAS6N,OACfU,EAAMzF,EAAW1B,gBAAgByG,OAQnCnF,EALA6F,GACAA,EAAMvO,IACNuO,EAAMvO,GAAS0I,YACf6F,EAAMvO,GAAS0I,WAAWpG,KAEbiM,EAAMvO,GAAS0I,WAEf6F,EAAMzF,EAAW1B,gBAAgBsB,WAGhD,MAAM8F,EAAqB,IAAK9F,EAAaA,EAAWpD,SAAW,IAE7DmJ,EAAwB,KACxBF,EAAMzF,EAAW1B,iBAAiBsB,YAAc,IAAIjC,KAAOnB,UAG3DoJ,EAAkBF,EAAmBG,OACzC,CAACC,EAAOpH,EAAOzD,KAEM,iBAAVyD,GACP,SAAWA,GACXhE,MAAMC,QAAS+D,EAAcuG,QAE7Ba,EAAM7K,GAAUyD,EAAcuG,MAEzBa,GAET,CAA2B,GAGvBC,EAAqBJ,EAAsBE,OAC/C,CAACC,EAAOpH,EAAOzD,KAEM,iBAAVyD,GACP,SAAWA,GACXhE,MAAMC,QAAS+D,EAAcuG,QAE7Ba,EAAM7K,GAAUyD,EAAcuG,MAEzBa,GAET,CAA2B,GAGvBE,EAAU,IACXN,KACCX,EAASA,EAAOvI,SAAW,IAG3ByJ,EAAaP,EAAmBvN,OAChC+N,EAAgB9E,GAAa,GAEnC,IAAI+E,EAAgBlP,EAChBoL,EAAoBxD,EA4CxB,OA1CAmH,EAAQrK,QAAQ,CAACyJ,EAAGnK,KAClB,IAAImL,EACJ,GAAiB,iBAANhB,EAAgB,CACzB,MAAM1G,EAAQ0G,EACRiB,EAAyBJ,EAARhL,EAAqBA,EAAQ,EAW9CqL,IATIL,EAARhL,EAAqBiL,EAAcG,QAAkBhO,KAGpD,SAAUqG,GAAShE,MAAMC,QAAQ+D,EAAMuG,MACpCvG,EAAMuG,KACLW,EAAgBS,IACjBN,EAAmBM,IACnBN,EAAmB,IACnB,KACsBjK,IAAKuF,GAChB,iBAARA,GAA4B,OAARA,EACvBzE,EAAmByE,GACnBA,GAEN+E,EAAc1H,EAAMoB,aAAawG,EAClC,KAAM,IAAiB,mBAANlB,EAGhB,MAAUlK,MAAM,qCAAqCkK,GAFrDgB,EAAchB,CAGf,CAED,MAAMtI,EAAUsJ,OACS,IAAhBvG,EAA8BsG,EAAgBlP,EACrD4I,EACAwC,QAGyB,IAAhBxC,EACa,mBAAX/C,IACTqJ,EAAgBrJ,QAES,IAAXA,IAChBuF,EAAoBvF,UAIM,IAAhB+C,EACVsG,EACA9D,CACL,CAKD,OAJA1K,OAAOyF,eAAeoI,EAAkB,OAAQ,CAC9CxN,MAAO,CAACuN,GAAK,UAAW7N,GAAKwB,KAAK,mBAClCqE,UAAU,IAELiI,CACR,CAOD,KAAA7F,GAKE,IAAKpH,KAAKb,IACR,MAAUwD,MAAM,8CAElB,MAAMxD,EAAMa,KAAKb,IAEX6O,EACJvG,EAAWJ,WAAWrH,KAAKb,OAAOa,KAAKrB,UAAU0I,WAC7C4G,EACJjO,KAAKqH,YAAc2G,GAAsB,IAAI5I,IAEzC8I,OACmB,IAAhBlO,KAAKwM,OAAyBxM,KAAKwM,YAAS1M,EAErD2H,EAAW0G,SACTnO,KAAKb,IACLa,KAAKrB,QACLsP,EACAC,GAGF,MAAME,EAAU,CAAC1P,EAAa4I,EAAmBhB,KAC/C,MAAM+H,OAAkC,IAAhB/G,EAClBE,EACc,mBAAX9I,EAAwBA,EAASA,GAAQ4B,aAAe5B,EACjE,GAAI8I,GAAS6G,EAAU,CACEtO,EAAmB,SACxCA,EAASQ,OAAOiH,GAChB7J,iBAAekE,UAEI4F,EAAWgD,qBAAqBjD,GACrD,MAAM0C,EAAelK,KAAKyM,wBAoB1B,OAnBAhF,EAAWuD,yBACTxD,EACA9I,EACCoN,GACQ9L,KAAK+M,iBAAiB5N,EAAK2M,EAAiB5B,GAErD5C,EACAhB,EACA4D,EACA/K,GAEFsI,EAAWhJ,yBAAyB+I,GAChCF,IAAgBhB,GAClB/E,IAAOiG,EAAOF,GAEZA,GAAehB,GAEjBS,IAASS,EAAOF,EAAahB,GAExBA,CACR,CAED,MAAMgI,EACJtO,KAAKrB,UAAY8I,EAAW1B,oBAAiBjG,EAAYE,KAAKrB,QAChE,OAAOqB,KAAK+M,iBAAiB5N,EAAemP,EAArCtO,CACLtB,EACA4I,EACAhB,IAIJ,IACElH,OAAOyF,eAAeuJ,EAAS,OAAQ,CACrC3O,MAAO,CAACO,KAAKrB,QAASQ,GAAKwB,KAAK,mBAChCqE,UAAU,GAGb,CAAC,MAAOuJ,GAER,CAED,OAAOH,CACR,CAWO,eAAOD,CACbhP,EACAR,EACA0I,EACAmF,GAEA,IAAKrN,EACH,MAAUwD,MAAM,8CAElB,IAAK0E,EACH,MAAU1E,MAAM,qDAClB,IAAKhE,EACH,MAAUgE,MAAM,kDAEb8E,EAAWJ,WAAWlI,KAAMsI,EAAWJ,WAAWlI,GAAO,IACzDsI,EAAWJ,WAAWlI,GAAKR,KAC9B8I,EAAWJ,WAAWlI,GAAKR,GAAW,CAAA,GACxC8I,EAAWJ,WAAWlI,GAAKR,GAAS0I,WAAaA,OAC3B,IAAXmF,IACT/E,EAAWJ,WAAWlI,GAAKR,GAAS6N,OAASA,EAEhD,CAED,kBAAOgC,CAAYnQ,GACjBoJ,EAAWvJ,gBAAkBG,CAC9B,CAEO,0BAAO8N,CACbhG,EACAxH,GAEA,IAAKwH,EAAM8E,cAAe,OAAO,EACjC,GAAItM,IAAY8I,EAAW1B,eAAgB,OAAO,EAClD,MAAMmH,EAAQzF,EAAWJ,WAAWlB,EAAM8E,eAC1C,IAAKiC,EAAO,OAAO,EACnB,MAAMuB,EAAgBvB,EAAMvO,GAC5B,IAAK8P,EAAe,OAAO,EAC3B,MAAMC,EAAgBxB,EAAMzF,EAAW1B,gBACjC4I,EACJF,EAAcpH,YAAcoH,EAAcpH,WAAWpG,KAAO,EACxD2N,EACJH,EAAcjC,kBAAkBpH,KAAOqJ,EAAcjC,OAAOvL,KAAO,EACrE,IAAK0N,IAAkBC,EAAW,OAAO,EACzC,IAAKF,EAAe,OAAO,EAC3B,MAAMG,GACHF,GAAiBF,EAAcpH,aAAeqH,EAAcrH,WACzDyH,GACHF,GAAaH,EAAcjC,SAAWkC,EAAclC,OACvD,QAASqC,GAAmBC,EAC7B,CAQD,UAAO,CAAI3P,GACT,OAAO,IAAIsI,GAAajH,IAAIrB,EAC7B,CAQD,kBAAOwC,CAAYhD,GACjB,OAAO,IAAI8I,EAAW9I,EACvB,EAEH,SAASyN,EAAmB5E,EAAYuH,GACtC,IAAKA,IAASA,EAAKnP,OACjB,OAEF,MAAM6J,EAAiB1J,EAA4B,UAI7CgB,EAAShB,EAASQ,OAAOiH,GACzBwB,EACJS,EAAc1I,KACb0I,EAAc1I,GAAU,CAAA,GAC3BgO,EAAK3L,QAAQ,EAAGtE,OAAM4J,gBAAeC,cACnC,IAAK7J,EAAKc,OAAQ,OAClB,GAAId,EAAK,KAAOnB,EAAAA,eAAeI,WAAY,OAC3C,IAAIW,EAAuCsK,EAC3C,IAAK,IAAInJ,EAAI,EAAGA,EAAIf,EAAKc,OAAS,EAAGC,IAAK,CACxC,MAAMV,EAAML,EAAKe,GACZsE,EAAczF,EAAOS,MACxBT,EAAOS,GAAc,IAEvBT,EAASA,EAAOS,EACjB,CACD,MAAMA,EAAML,EAAKA,EAAKc,OAAS,GAC1B+I,EAIHjK,EAAOS,GAAckF,EAAmBqE,WAHjChK,EAAOS,GAv3BpB,EACE6J,EACAlK,KAEA,IAAK,IAAIe,EAAIf,EAAKc,OAAQC,EAAI,EAAGA,IAAK,CACpC,MAAMmP,EAAelQ,EAAKqG,MAAM,EAAGtF,GAC7BoP,EAAaD,EAAa7J,MAAM,GAAI,GACpChG,EAAM6P,EAAaA,EAAapP,OAAS,GACzCkE,EACkB,IAAtBmL,EAAWrP,OAAeoJ,EAASD,EAAcC,EAAQiG,GAC3D,IAAKnL,IAAWK,EAAcL,GAAS,MACvC,MAAMrE,EAAQqE,EAAO3E,GACrB,IAAKgF,EAAc1E,IAAUiH,QAAQuB,QAAQxI,GAAOG,OAAS,EAAG,aACzDkE,EAAO3E,EACf,CACH,EAy2BM+P,CAAoBlG,EAAQlK,EAAKqG,MAAM,GAAI,MAKjD,CAEA,SAASkH,EAA0BlG,GACjC,IAAKA,QAAsC,IAAtBA,EAAMmB,YAA6B,OACxD,MAAM5I,EAASyH,EAAMzH,OACrB,IAAKA,QAA4C,IAA3ByH,EAAM4D,iBAAkC,OAC9D,MAAMzC,EAAcnB,EAAMmB,YACpB6H,EAAWhJ,EAAM0D,mBACnB1D,EAAM4D,iBACJoF,EACF/P,OAAOyF,eAAenG,EAAQ4I,EAAa6H,UAEnCzQ,EAAwC4I,WAG1C5I,EAAwC4I,GAC5C6H,GACF/P,OAAOyF,eAAenG,EAAQ4I,EAAa6H,GAGjD,iKC9jC4BC,GAiBnB3H,EAAWjH,IAAI7C,EAAcA,eAAC6D,aAClCmL,OAAO,CACNpF,UAlBsB6H,GACjB,CACLC,EACA9N,EACA+E,IAEOD,EACLtG,EAASZ,IACPxB,EAAcA,eAAC6D,YACfD,EAAOA,EAAKd,WAAa9C,EAAcA,eAAC8D,OAE1C2N,EALK/I,CAMLgJ,EAAU9N,EAAM+E,GAOlBoG,KAAM,CAAC0C,KAERhI,6DFvByBjI,KAAgBmQ,IACrC,CACL5Q,EACA4I,EACAhB,KAEA,MAAMiJ,EAAexP,EAASoB,IAAIzC,EAAQS,IAAQ,GAGlD,OAAOiI,EADMf,EADGiB,EAAcvH,EAASZ,IAAIA,EAAKmI,GAAenI,EAChC,IAAI,IAAIiG,IAAI,IAAImK,KAAiBD,MACzDlI,CAAc1I,EAAQ4I,EAAahB,EAC5C,8BAiNc,CAAenH,EAAaM,IACnC2H,EAAMf,EAASlH,EAAKM,GAAQsH,+BAtIrB,CAAc5H,EAAaM,IAClC,CAAuBf,EAAa6C,EAAWmB,IAC7C0E,EACL3E,IACA4D,EAAStG,EAASZ,IAAIxB,iBAAe0D,QAASE,EAAMpC,GAAMM,GAFrD2H,CAGL1I,EAAQ6C,EAAMmB,2BAmHJ,CAAavD,EAAaM,IACjC2H,EAAMf,EAASlH,EAAKM,GAAQ8B,2IE/OhB5C,GACXmH,IACN,MAAMhF,EAAS+E,EAAcC,EAAQnH,EAAS8I,EAAW1B,gBAEzD,GAAIpH,IAAY8I,EAAW1B,eACzB0B,EAAqC,yBAAE3G,EAAQnC,OAC1C,CACL,IAAI6L,EACJ,IACEA,EAAW/C,EAA4B,gBACnCA,EAA4B,gBAAE3G,QAC9BhB,CACL,CAAC,MACA0K,OAAW1K,CACZ,CACG0K,GAAYA,IAAa/C,EAAW1B,eACtC0B,EAAqC,yBAAE3G,EAAQ0J,GAE/C/C,EAAwB,YAAE3G,EAE7B,CACD,OAAOgF"}
@@ -1,2 +1,2 @@
1
- import"reflect-metadata";const t="decaf",e=".";var r,o;(t=>{t.LIBRARIES="libraries",t.REFLECT="__decaf",t.PROPERTIES="properties",t.METHODS="methods",t.CLASS="class",t.DESCRIPTION="description",t.CONSTRUCTOR="__original",t.PARAMETERS="parameters",t.FLAVOUR="flavour",t.DECORATION="decoration",t.DESIGN_TYPE="design:type",t.DESIGN_PARAMS="design:paramtypes",t.DESIGN_RETURN="design:returntype"})(r||(r={})),(t=>{t.PENDING="pending",t.ONGOING="ongoing"})(o||(o={}));const n={[r.PROPERTIES]:[]},i="##VERSION##",s="##PACKAGE##";function a(t,r,o=e){const n=r.split(o);let i=t;for(const t of n){if(null==i||!Object.prototype.hasOwnProperty.call(i,t))return;i=i[t]}return i}function c(t,r,o,n=e){const i=r.split(n).filter((t=>t.length>0));if(0===i.length)return;let s=t;for(let t=0;t<i.length-1;t++){const e=i[t];void 0!==s[e]&&null!==s[e]&&"object"==typeof s[e]||(s[e]={}),s=s[e]}s[i[i.length-1]]=o}class l{static{this._metadata={}}static{this.splitter=e}static{this.baseKey=r.REFLECT}static{this.mirror=!0}constructor(){}static Symbol(t){return Symbol.for([t.toString(),t.name].join(" - "))}static properties(t){const e=this.get(t);if(e&&e.properties)return Object.keys(e.properties)}static methods(t){const e=this.get(t,r.METHODS);if(e)return Object.keys(e)}static description(t,e){return this.get(t,this.key(r.DESCRIPTION,e||r.CLASS))}static flavourOf(t){return D.flavourResolver(t)}static flavouredAs(t){return this.innerGet(Symbol.for(r.FLAVOUR),t)||[]}static registeredFlavour(e){const o=this.innerGet(Symbol.for(r.FLAVOUR));if(!o)return;const n=this.constr(e);let i;for(const[e,r]of Object.entries(o))if(Array.isArray(r)&&r.some((t=>this.constr(t)===n))){if(e===t){i=i||e;continue}return e}return i}static params(t,e){return this.get(t,this.key(r.METHODS,e,r.DESIGN_PARAMS))}static param(t,e,r){const o=this.params(t,e);if(o){if(r>o.length-1)throw Error(`Parameter index ${r} out of range for ${e+""}`);return o[r]}}static return(t,e){return this.get(t,this.key(r.METHODS,e,r.DESIGN_RETURN))}static type(t,e){return this.get(t,this.key(r.PROPERTIES,e))}static constr(t){return t[r.CONSTRUCTOR]||t}static get(t,e){if(e===r.CONSTRUCTOR)return this.constr(t);const n=this.constr(t),i=this.collectConstructorChain(n);if(i.filter((t=>this.isDecorated(t)===o.PENDING)).forEach((t=>{D.resolvePendingDecorators(t)})),0===i.length){const t=Symbol.for(n.toString());return this.innerGet(t,e)}const s=i.map((t=>this.innerGet(this.Symbol(t),e))).filter((t=>void 0!==t));return 0!==s.length?this.mergeMetadataChain(s):void 0}static isDecorated(t){const e=this.constr(t);return this.innerGet(this.Symbol(e),r.DECORATION)||!1}static innerGet(t,e){if(this._metadata[t])return e?"string"==typeof e?a(this._metadata[t],e,this.splitter):this._metadata[t][e]:this._metadata[t]}static collectConstructorChain(t){const e=[];let r=t;for(;"function"==typeof r&&r!==Function;){e.push(r);const t=Object.getPrototypeOf(r);if(!t||t===Function||t===Object)break;r=t}return e.reverse()}static mergeMetadataChain(t){let e;for(const r of t)e=void 0!==e&&this.isPlainObject(e)&&this.isPlainObject(r)?this.mergePlainObjects(e,r):this.cloneMetadataValue(r);return e}static cloneMetadataValue(t){return Array.isArray(t)?[...t]:this.isPlainObject(t)?this.mergePlainObjects({},t):t}static mergePlainObjects(t,e){const r={...t};for(const t of Object.keys(e)){const o=e[t],n=r[t];this.isPlainObject(o)?r[t]=this.isPlainObject(n)?this.mergePlainObjects(n,o):this.mergePlainObjects({},o):r[t]=Array.isArray(o)?[...o]:o}return r}static isPlainObject(t){if(null===t||"object"!=typeof t||Array.isArray(t))return!1;const e=Object.getPrototypeOf(t);return e===Object.prototype||null===e}static innerSet(t,e,r){if(this._metadata[t]||(this._metadata[t]={}),"string"==typeof e)return c(this._metadata[t],e,r,this.splitter);this._metadata[t][e]=r}static set(t,e,o){if(e===r.CONSTRUCTOR)return void Object.defineProperty(t,r.CONSTRUCTOR,{enumerable:!1,configurable:!1,writable:!1,value:o});"string"!=typeof t&&(t=this.constr(t)||t);const n="string"==typeof t?Symbol.for(t):this.Symbol(t);this.innerSet(n,e,o),"string"!=typeof t&&l.mirror&&!Object.prototype.hasOwnProperty.call(t,this.baseKey)&&Object.defineProperty(t,this.baseKey,{enumerable:!1,configurable:!1,writable:!1,value:this._metadata[n]})}static registerLibrary(t,e){const o=Symbol.for(r.LIBRARIES);if(this.innerGet(o,t))throw Error(`Library already ${t} registered with version ${e}`);this.innerSet(o,t,e)}static libraries(){const t=Symbol.for(r.LIBRARIES);return this.innerGet(t)||{}}static key(...t){return t.join(this.splitter)}}function d(t,e){return(r,o,n)=>{let i=r;o&&(i="function"==typeof r?r:r.constructor||r),l.set(i,t,e)}}function u(t,...e){return(r,o,n)=>{const i=l.get(r,t)||[];return v(d(o?l.key(t,o):t,[...new Set([...i,...e])]))(r,o,n)}}function f(t){return e=>{const o=l.constr(e);if(((t,e)=>{const o=l.constr(t),n=l.innerGet(l.Symbol(t),r.FLAVOUR)||D.defaultFlavour,i=(l.innerGet(Symbol.for(r.FLAVOUR),n)||[]).filter((t=>l.constr(t)!==o));l.set(r.FLAVOUR,n,i);const s=new Set(l.innerGet(Symbol.for(r.FLAVOUR),e)||[]);s.add(t),l.set(r.FLAVOUR,e,[...s])})(e,t),l.set(o,r.FLAVOUR,t),t!==D.defaultFlavour)D.resolvePendingDecorators(o,t);else{let t;try{t=D.flavourResolver?D.flavourResolver(o):void 0}catch{t=void 0}t&&t!==D.defaultFlavour?D.resolvePendingDecorators(o,t):D.markPending(o)}return e}}function p(){return(t,e)=>{const o="function"==typeof t?t.prototype:t,n=Reflect.getOwnMetadata(r.DESIGN_TYPE,o,e);return d(l.key(r.PROPERTIES,e),n)(t,e)}}function h(){return(t,e,o)=>{if(!e)throw Error("The @param decorator can only be applied to methods");g()(t,e,Object.getOwnPropertyDescriptor(t,e));const n=l.params(t.constructor,e);if(!n)throw Error("Missing parameter types for "+e);if(o>=n.length)throw Error(`Parameter index ${o} out of range for ${e+""}`);d(l.key(r.METHODS,e,o.toString()),n[o])(t,e)}}function y(t,e){return(o,n,i)=>v(h(),d(l.key(r.METHODS,n,t),e))(o,n,i)}function g(){return(t,e,o)=>{const n=Reflect.getOwnMetadata(r.DESIGN_PARAMS,t,e),i=Reflect.getOwnMetadata(r.DESIGN_RETURN,t,e);return v(d(l.key(r.METHODS,e,r.DESIGN_PARAMS),n),d(l.key(r.METHODS,e,r.DESIGN_RETURN),i))(t,e,o)}}function v(...t){return(e,r,o)=>{for(const n of t)e instanceof Function&&!o?n(e):n(e,r,o)}}function O(t,e){return v(d(t,e),p())}function b(t,e){return v(d(t,e),g())}function S(t){return D.for(r.DESCRIPTION).define({decorator:t=>(e,o,n)=>d(l.key(r.DESCRIPTION,o?o.toString():r.CLASS),t)(e,o,n),args:[t]}).apply()}function m(t){const e=l.constr("function"==typeof t?t:t?.constructor),o=l.innerGet(l.Symbol(e),r.FLAVOUR);if(o&&o!==D.defaultFlavour)return o;const n="function"==typeof l.registeredFlavour?l.registeredFlavour(e):void 0;return n&&n!==D.defaultFlavour?n:o??D.defaultFlavour}function E(t){return null!==t&&"object"==typeof t&&!Array.isArray(t)&&t.constructor===Object}function A(t){if(null===t||"object"!=typeof t)return t;if(Array.isArray(t))return t.map((t=>A(t)));if(t instanceof Date)return new Date(t.getTime());if(t instanceof Set)return new Set(Array.from(t).map((t=>A(t))));if(t instanceof Map)return new Map(Array.from(t.entries()).map((([t,e])=>[t,A(e)])));if(t.constructor!==Object)return t;const e={};return Reflect.ownKeys(t).forEach((r=>{e[r]=A(t[r])})),e}function R(t,e,r=[],o=[]){return new Set([...t?Reflect.ownKeys(t):[],...e?Reflect.ownKeys(e):[]]).forEach((n=>{const i=!!t&&Object.prototype.hasOwnProperty.call(t,n),s=!!e&&Object.prototype.hasOwnProperty.call(e,n),a=i?t?.[n]:void 0,c=s?e?.[n]:void 0;if(s)return i?void(E(a)&&E(c)?R(a,c,[...r,n],o):a!==c&&o.push({path:[...r,n],previousValue:A(a),existed:!0})):E(c)?void R(void 0,c,[...r,n],o):void o.push({path:[...r,n],previousValue:void 0,existed:!1});o.push({path:[...r,n],previousValue:A(a),existed:!0})})),o}function P(t){if(!t)return;const e={};return Object.keys(t).forEach((r=>{e[r]=t[r].map((t=>"object"==typeof t&&null!==t?A(t):t))})),e}function w(t,e){let r=t;for(const t of e){if(!r||!E(r[t]))return;r=r[t]}return r}l.registerLibrary(s,i);class D{static{this.defaultFlavour=t}static{this.targetStates=new WeakMap}static{this.decorators={}}static{this.flavourResolver=m}constructor(t=D.defaultFlavour){this.flavour=t}static getTargetState(t){if(!t)throw Error("Invalid target provided to Decoration state tracker");let e=this.targetStates.get(t);return e||(e={pending:[],flavour:void 0,directApply:!1},this.targetStates.set(t,e)),e}static applyPendingEntry(t,e){const r=l._metadata,o=l.Symbol(t.owner),n=void 0===t.metadataDiff?A(r[o]):void 0;try{if(void 0!==t.propertyKey&&void 0===t.descriptorSnapshot&&t.target){const e=Object.getOwnPropertyDescriptor(t.target,t.propertyKey);t.descriptorWasOwn=Object.prototype.hasOwnProperty.call(t.target,t.propertyKey),t.descriptorSnapshot=e?{...e}:void 0}const i=t.argsFactory?t.argsFactory():P(t.argsOverride),s=t.callback(e,i)(t.target,t.propertyKey,t.descriptor);if(void 0!==t.propertyKey&&s&&t.target&&Object.defineProperty(t.target,t.propertyKey,s),void 0===t.metadataDiff){const e=A(r[o]);t.metadataDiff=R(n,e)}}catch(t){}}static markPending(t){if(!t)return;const e=this.getTargetState(t);e.resolved=!1,e.flavour||(e.flavour=D.defaultFlavour),l.set(t,r.DECORATION,o.PENDING)}static scheduleDefaultResolve(t){if(!t)return;const e=this.getTargetState(t);e.resolveScheduled||e.resolved||e.applying||(e.resolveScheduled=!0,Promise.resolve().then((()=>{e.resolveScheduled=!1,e.resolved||this.resolvePendingDecorators(t)})))}static registerPendingDecorator(t,e,o,n,i,s,a){const c=`${t?.name||"anonymous"}:${(n||"class")+""}:${Date.now()}:${Math.random()}`,d=this.getTargetState(t),u=P(s),f={owner:t,target:e,propertyKey:n,descriptor:i,callback:o,argsOverride:u,argsFactory:()=>P(u),key:c,definitionKey:a},p=()=>{const e=d.flavour||l.get(t,r.FLAVOUR)||D.defaultFlavour;return this.applyPendingEntry(f,e),f.lastAppliedPass=d.passId,f.lastAppliedFlavour=e,e},h=()=>(d.pending.push(f),f);if(d.directApply){h();const e=p();return d.appliedCount=d.pending.length,d.flavour=e,l.set(t,r.DECORATION,!0),c}if(h(),d.applying)return p(),c;if(D.flavourResolver!==m)try{const e=D.flavourResolver(t);if(e&&e!==D.defaultFlavour)return this.resolvePendingDecorators(t,e),c}catch{}return this.scheduleDefaultResolve(t),c}static resolvePendingDecorators(t,e){const o="function"==typeof t?t:t?.constructor||t;if(!o)return;const n=this.getTargetState(o);if(n.resolveScheduled=!1,!n.pending.length&&!e)return;const i=e||n.flavour||l.get(o,r.FLAVOUR)||D.defaultFlavour;if(n.applying)return;const s=n.appliedCount||0;if(!e&&n.lastAppliedFlavour===i&&s>=n.pending.length)return;const a=!(!e||e===D.defaultFlavour)||n.directApply;if(!n.pending.length)return;const c=(n.passId||0)+1;n.passId=c,n.applying=!0;try{if(a)for(const t of n.pending){if(!t)continue;if(t.lastAppliedPass===c)continue;const e=this.shouldOverrideEntry(t,i);void 0!==t.metadataDiff||void 0!==t.descriptorSnapshot?t.lastAppliedFlavour!==i&&e?(t.metadataDiff?.length&&F(t.owner,t.metadataDiff),j(t),this.applyPendingEntry(t,i),t.lastAppliedPass=c,t.lastAppliedFlavour=i):t.lastAppliedPass=c:(this.applyPendingEntry(t,i),t.lastAppliedPass=c,t.lastAppliedFlavour=i)}else{let t=s;for(;t<n.pending.length;){const e=n.pending[t++];e&&e.lastAppliedPass!==c&&(this.applyPendingEntry(e,i),e.lastAppliedPass=c,e.lastAppliedFlavour=i)}n.appliedCount=n.pending.length}}finally{n.applying=!1}n.flavour=i,n.resolved=!0,n.lastAppliedFlavour=i,a&&(n.appliedCount=n.pending.length,i!==D.defaultFlavour&&(n.directApply=!0)),l.set(o,r.DECORATION,!0)}for(t){return this.key=t,this}decorate(t=!1,...e){if(!this.key)throw Error("key must be provided before decorators can be added");if(!(e&&e.length||t||this.flavour===D.defaultFlavour))throw Error("Must provide overrides or addons to override or extend decaf's decorators");return t?this.extras=new Set([...(this.extras||new Set).values(),...e]):this.decorators=new Set([...e]),this}snapshotDecoratorArgs(){if(!this.decorators||!this.decorators.size)return;const t={};return Array.from(this.decorators.values()).forEach(((e,r)=>{"object"==typeof e&&"args"in e&&Array.isArray(e.args)&&(t[r]=e.args.map((t=>"object"==typeof t&&null!==t?A(t):t)))})),Object.keys(t).length?t:void 0}define(...t){if(t.find((t=>"object"==typeof t))&&1!==t.length)throw Error("When using an overridable decorator, only one is allowed");return this.decorate(!1,...t)}extend(...t){if(t.find((t=>"object"==typeof t))&&1!==t.length)throw Error("When extending using an overridable decorator, only one is allowed");return this.decorate(!0,...t)}decoratorFactory(t,e,r){function o(o,n,i){const s=e??D.flavourResolver(o),a=D.decorators[t];let c;const l=a[s]?a[s].extras:a[D.defaultFlavour].extras;c=a&&a[s]&&a[s].decorators&&a[s].decorators.size?a[s].decorators:a[D.defaultFlavour].decorators;const d=[...c?c.values():[]],u=[...(a[D.defaultFlavour]?.decorators||new Set).values()],f=d.reduce(((t,e,r)=>("object"==typeof e&&"args"in e&&Array.isArray(e.args)&&(t[r]=e.args),t)),{}),p=u.reduce(((t,e,r)=>("object"==typeof e&&"args"in e&&Array.isArray(e.args)&&(t[r]=e.args),t)),{}),h=[...d,...l?l.values():[]],y=d.length,g=r||{};let v=o,O=i;return h.forEach(((t,e)=>{let r;if("object"==typeof t){const o=t,n=y>e?e:0,i=((y>e?g[n]:void 0)||("args"in o&&Array.isArray(o.args)?o.args:f[n]??p[n]??p[0]??[])).map((t=>"object"==typeof t&&null!==t?A(t):t));r=o.decorator(...i)}else{if("function"!=typeof t)throw Error("Unexpected decorator type: "+typeof t);r=t}const i=r(void 0===n?v:o,n,O);void 0===n?"function"==typeof i&&(v=i):void 0!==i&&(O=i)})),void 0===n?v:O}return Object.defineProperty(o,"name",{value:[e||"dynamic",t].join("_decorator_for_"),writable:!1}),o}apply(){if(!this.key)throw Error("No key provided for the decoration builder");const t=this.key,e=D.decorators[this.key]?.[this.flavour]?.decorators,o=this.decorators||e||new Set,n=void 0!==this.extras?this.extras:void 0;D.register(this.key,this.flavour,o,n);const i=(e,o,n)=>{const i=void 0!==o,s="function"==typeof e?e:e?.constructor||e;if(s&&i){l.innerGet(l.Symbol(s),r.FLAVOUR)||f(D.defaultFlavour)(s);const i=this.snapshotDecoratorArgs();return D.registerPendingDecorator(s,e,(e=>this.decoratorFactory(t,e,i)),o,n,i,t),D.resolvePendingDecorators(s),o&&!n&&p()(s,o),o&&n&&g()(s,o,n),n}const a=this.flavour===D.defaultFlavour?void 0:this.flavour;return this.decoratorFactory(t,a)(e,o,n)};try{Object.defineProperty(i,"name",{value:[this.flavour,t].join("_decorator_for_"),writable:!1})}catch(t){}return i}static register(t,e,r,o){if(!t)throw Error("No key provided for the decoration builder");if(!r)throw Error("No decorators provided for the decoration builder");if(!e)throw Error("No flavour provided for the decoration builder");D.decorators[t]||(D.decorators[t]={}),D.decorators[t][e]||(D.decorators[t][e]={}),D.decorators[t][e].decorators=r,void 0!==o&&(D.decorators[t][e].extras=o)}static setResolver(t){D.flavourResolver=t}static shouldOverrideEntry(t,e){if(!t.definitionKey)return!1;if(e===D.defaultFlavour)return!1;const r=D.decorators[t.definitionKey];if(!r)return!1;const o=r[e];if(!o)return!1;const n=r[D.defaultFlavour],i=o.decorators&&o.decorators.size>0,s=o.extras instanceof Set&&o.extras.size>0;if(!i&&!s)return!1;if(!n)return!0;const a=!i||o.decorators===n.decorators,c=!s||o.extras===n.extras;return!(a&&c)}static for(t){return(new D).for(t)}static flavouredAs(t){return new D(t)}}function F(t,e){if(!e||!e.length)return;const r=l._metadata,o=l.Symbol(t),n=r[o]||(r[o]={});e.forEach((({path:t,previousValue:e,existed:r})=>{if(!t.length)return;let o=n;for(let e=0;e<t.length-1;e++){const r=t[e];E(o[r])||(o[r]={}),o=o[r]}const i=t[t.length-1];r?o[i]=A(e):(delete o[i],((t,e)=>{for(let r=e.length;r>0;r--){const o=e.slice(0,r),n=o.slice(0,-1),i=o[o.length-1],s=0===n.length?t:w(t,n);if(!s||!E(s))break;const a=s[i];if(!E(a)||Reflect.ownKeys(a).length>0)break;delete s[i]}})(n,t.slice(0,-1)))}))}function j(t){if(!t||void 0===t.propertyKey)return;const e=t.target;if(!e||void 0===t.descriptorWasOwn)return;const r=t.propertyKey,o=t.descriptorSnapshot;t.descriptorWasOwn?o?Object.defineProperty(e,r,o):delete e[r]:(delete e[r],o&&Object.defineProperty(e,r,o))}export{D as Decoration,r as DecorationKeys,o as DecorationState,t as DefaultFlavour,n as DefaultMetadata,l as Metadata,e as ObjectKeySplitter,s as PACKAGE_NAME,i as VERSION,v as apply,S as description,a as getValueBySplitter,d as metadata,u as metadataArray,g as method,b as methodMetadata,h as param,y as paramMetadata,p as prop,O as propMetadata,c as setValueBySplitter,f as uses};
1
+ import"reflect-metadata";const t="decaf",e=".";var r,o;(t=>{t.LIBRARIES="libraries",t.REFLECT="__decaf",t.PROPERTIES="properties",t.METHODS="methods",t.CLASS="class",t.DESCRIPTION="description",t.CONSTRUCTOR="__original",t.PARAMETERS="parameters",t.FLAVOUR="flavour",t.DECORATION="decoration",t.DESIGN_TYPE="design:type",t.DESIGN_PARAMS="design:paramtypes",t.DESIGN_RETURN="design:returntype"})(r||(r={})),(t=>{t.PENDING="pending",t.ONGOING="ongoing"})(o||(o={}));const i={[r.PROPERTIES]:[]},n="##VERSION##",s="##PACKAGE##";let a,c;function l(t){a=t}function d(e){return a?a(e):t}function u(t){c=t}function f(t,e){c&&c(t,e)}function p(t,r,o=e){const i=r.split(o);let n=t;for(const t of i){if(null==n||!Object.prototype.hasOwnProperty.call(n,t))return;n=n[t]}return n}function h(t,r,o,i=e){const n=r.split(i).filter(t=>t.length>0);if(0===n.length)return;let s=t;for(let t=0;t<n.length-1;t++){const e=n[t];void 0!==s[e]&&null!==s[e]&&"object"==typeof s[e]||(s[e]={}),s=s[e]}s[n[n.length-1]]=o}class y{static{this._metadata={}}static{this._propertiesIndex={}}static{this.splitter=e}static{this.baseKey=r.REFLECT}static{this.mirror=!0}constructor(){}static Symbol(t){return Symbol.for([t.toString(),t.name].join(" - "))}static properties(t){const e=this.constr(t),r=this.Symbol(e),o=this._propertiesIndex[r];if(o&&o.size)return[...o];const i=this.get(e);return i&&i.properties?Object.keys(i.properties):void 0}static methods(t){const e=this.get(t,r.METHODS);if(e)return Object.keys(e)}static description(t,e){return this.get(t,this.key(r.DESCRIPTION,e||r.CLASS))}static flavourOf(t){return d(t)}static flavouredAs(t){return this.innerGet(Symbol.for(r.FLAVOUR),t)||[]}static registeredFlavour(e){const o=this.innerGet(Symbol.for(r.FLAVOUR));if(!o)return;const i=this.constr(e);let n;for(const[e,r]of Object.entries(o))if(Array.isArray(r)&&r.some(t=>this.constr(t)===i)){if(e===t){n=n||e;continue}return e}return n}static params(t,e){return this.get(t,this.key(r.METHODS,e,r.DESIGN_PARAMS))}static param(t,e,r){const o=this.params(t,e);if(o){if(r>o.length-1)throw Error(`Parameter index ${r} out of range for ${e+""}`);return o[r]}}static return(t,e){return this.get(t,this.key(r.METHODS,e,r.DESIGN_RETURN))}static type(t,e){return this.get(t,this.key(r.PROPERTIES,e))}static constr(t){return t[r.CONSTRUCTOR]||t}static get(t,e){if(e===r.CONSTRUCTOR)return this.constr(t);const i=this.constr(t),n=this.collectConstructorChain(i);if(n.filter(t=>this.isDecorated(t)===o.PENDING).forEach(t=>{f(t)}),0===n.length){const t=Symbol.for(i.toString());return this.innerGet(t,e)}const s=n.map(t=>this.innerGet(this.Symbol(t),e)).filter(t=>void 0!==t);return 0!==s.length?this.mergeMetadataChain(s):void 0}static isDecorated(t){const e=this.constr(t);return this.innerGet(this.Symbol(e),r.DECORATION)||!1}static innerGet(t,e){if(this._metadata[t])return e?"string"==typeof e?p(this._metadata[t],e,this.splitter):this._metadata[t][e]:this._metadata[t]}static collectConstructorChain(t){const e=[];let r=t;for(;"function"==typeof r&&r!==Function;){e.push(r);const t=Object.getPrototypeOf(r);if(!t||t===Function||t===Object)break;r=t}return e.reverse()}static mergeMetadataChain(t){let e;for(const r of t)e=void 0!==e&&this.isPlainObject(e)&&this.isPlainObject(r)?this.mergePlainObjects(e,r):this.cloneMetadataValue(r);return e}static cloneMetadataValue(t){return Array.isArray(t)?[...t]:this.isPlainObject(t)?this.mergePlainObjects({},t):t}static mergePlainObjects(t,e){const r={...t};for(const t of Object.keys(e)){const o=e[t],i=r[t];this.isPlainObject(o)?r[t]=this.isPlainObject(i)?this.mergePlainObjects(i,o):this.mergePlainObjects({},o):r[t]=Array.isArray(o)?[...o]:o}return r}static isPlainObject(t){if(null===t||"object"!=typeof t||Array.isArray(t))return!1;const e=Object.getPrototypeOf(t);return e===Object.prototype||null===e}static innerSet(t,e,r){if(this._metadata[t]||(this._metadata[t]={}),"string"==typeof e)return h(this._metadata[t],e,r,this.splitter);this._metadata[t][e]=r}static set(t,e,o){if(e===r.CONSTRUCTOR)return void Object.defineProperty(t,r.CONSTRUCTOR,{enumerable:!1,configurable:!1,writable:!1,value:o});"string"!=typeof t&&(t=this.constr(t)||t);const i="string"==typeof t?Symbol.for(t):this.Symbol(t);if("string"==typeof e){const t=`${r.PROPERTIES}${this.splitter}`;if(e.startsWith(t)){const r=e.slice(t.length);if(r.length){const t=this._propertiesIndex[i]||new Set;t.add(r),this._propertiesIndex[i]=t}}else if(e===r.PROPERTIES&&this.isPlainObject(o)){const t=this._propertiesIndex[i]||new Set;Object.keys(o).forEach(e=>{t.add(e)}),t.size&&(this._propertiesIndex[i]=t)}}this.innerSet(i,e,o),"string"!=typeof t&&y.mirror&&!Object.prototype.hasOwnProperty.call(t,this.baseKey)&&Object.defineProperty(t,this.baseKey,{enumerable:!1,configurable:!1,writable:!1,value:this._metadata[i]})}static registerLibrary(t,e){const o=Symbol.for(r.LIBRARIES);if(this.innerGet(o,t))throw Error(`Library already ${t} registered with version ${e}`);this.innerSet(o,t,e)}static libraries(){const t=Symbol.for(r.LIBRARIES);return this.innerGet(t)||{}}static key(...t){return t.join(this.splitter)}}y.registerLibrary(s,n);const v=Symbol.for(r.FLAVOUR);function g(t,e,o){const i=y.constr(t),n=y.innerGet(y.Symbol(t),r.FLAVOUR)||o,s=(y.innerGet(v,n)||[]).filter(t=>y.constr(t)!==i);y.set(r.FLAVOUR,n,s);const a=new Set(y.innerGet(v,e)||[]);return a.add(t),y.set(r.FLAVOUR,e,[...a]),y.set(i,r.FLAVOUR,e),i}function O(t,e){return(o,i,n)=>{let s=o;if(i&&(s="function"==typeof o?o:o.constructor||o,void 0===n)){const t="function"==typeof o?o.prototype:o,e=Reflect.getOwnMetadata(r.DESIGN_TYPE,t,i),n=y.key(r.PROPERTIES,i.toString()),a=y.get(s,n);void 0===e&&void 0!==a||y.set(s,n,e)}y.set(s,t,e)}}function S(t,...e){return(r,o,i)=>{const n=y.get(r,t)||[];return m(O(o?y.key(t,o):t,[...new Set([...n,...e])]))(r,o,i)}}function b(){return(t,e)=>{const o="function"==typeof t?t.prototype:t,i=Reflect.getOwnMetadata(r.DESIGN_TYPE,o,e);return O(y.key(r.PROPERTIES,e),i)(t,e)}}function E(){return(t,e,o)=>{if(!e)throw Error("The @param decorator can only be applied to methods");P()(t,e,Object.getOwnPropertyDescriptor(t,e));const i=y.params(t.constructor,e);if(!i)throw Error("Missing parameter types for "+e);if(o>=i.length)throw Error(`Parameter index ${o} out of range for ${e+""}`);O(y.key(r.METHODS,e,o.toString()),i[o])(t,e)}}function R(t,e){return(o,i,n)=>m(E(),O(y.key(r.METHODS,i,t),e))(o,i,n)}function P(){return(t,e,o)=>{const i=Reflect.getOwnMetadata(r.DESIGN_PARAMS,t,e),n=Reflect.getOwnMetadata(r.DESIGN_RETURN,t,e);return m(O(y.key(r.METHODS,e,r.DESIGN_PARAMS),i),O(y.key(r.METHODS,e,r.DESIGN_RETURN),n))(t,e,o)}}function m(...t){return(e,r,o)=>{for(const i of t)void 0!==r?i(e,r,o):i(e)}}function A(t,e){return m(O(t,e),b())}function w(t,e){return m(O(t,e),P())}function D(t){const e=y.constr("function"==typeof t?t:t?.constructor),o=y.innerGet(y.Symbol(e),r.FLAVOUR);if(o&&o!==k.defaultFlavour)return o;const i="function"==typeof y.registeredFlavour?y.registeredFlavour(e):void 0;return i&&i!==k.defaultFlavour?i:o??k.defaultFlavour}function F(t){return null!==t&&"object"==typeof t&&!Array.isArray(t)&&t.constructor===Object}function j(t){if(null===t||"object"!=typeof t)return t;if(Array.isArray(t))return t.map(t=>j(t));if(t instanceof Date)return new Date(t.getTime());if(t instanceof Set)return new Set(Array.from(t).map(t=>j(t)));if(t instanceof Map)return new Map(Array.from(t.entries()).map(([t,e])=>[t,j(e)]));if(t.constructor!==Object)return t;const e={};return Reflect.ownKeys(t).forEach(r=>{e[r]=j(t[r])}),e}function I(t,e,r=[],o=[]){return new Set([...t?Reflect.ownKeys(t):[],...e?Reflect.ownKeys(e):[]]).forEach(i=>{const n=!!t&&Object.prototype.hasOwnProperty.call(t,i),s=!!e&&Object.prototype.hasOwnProperty.call(e,i),a=n?t?.[i]:void 0,c=s?e?.[i]:void 0;if(s)return n?void(F(a)&&F(c)?I(a,c,[...r,i],o):a!==c&&o.push({path:[...r,i],previousValue:j(a),existed:!0})):F(c)?void I(void 0,c,[...r,i],o):void o.push({path:[...r,i],previousValue:void 0,existed:!1});o.push({path:[...r,i],previousValue:j(a),existed:!0})}),o}function T(t){if(!t)return;const e={};return Object.keys(t).forEach(r=>{e[r]=t[r].map(t=>"object"==typeof t&&null!==t?j(t):t)}),e}function N(t,e){let r=t;for(const t of e){if(!r||!F(r[t]))return;r=r[t]}return r}class k{static{this.defaultFlavour=t}static{this.targetStates=new WeakMap}static{this.decorators={}}static{this.flavourResolver=D}static{l(t=>this.flavourResolver(t)),u((t,e)=>this.resolvePendingDecorators(t,e))}constructor(t=k.defaultFlavour){this.flavour=t}static getTargetState(t){if(!t)throw Error("Invalid target provided to Decoration state tracker");let e=this.targetStates.get(t);return e||(e={pending:[],flavour:void 0,directApply:!1},this.targetStates.set(t,e)),e}static applyPendingEntry(t,e){const r=y._metadata,o=y.Symbol(t.owner),i=void 0===t.metadataDiff?j(r[o]):void 0;try{if(void 0!==t.propertyKey&&void 0===t.descriptorSnapshot&&t.target){const e=Object.getOwnPropertyDescriptor(t.target,t.propertyKey);t.descriptorWasOwn=Object.prototype.hasOwnProperty.call(t.target,t.propertyKey),t.descriptorSnapshot=e?{...e}:void 0}const n=t.argsFactory?t.argsFactory():T(t.argsOverride),s=t.callback(e,n)(t.target,t.propertyKey,t.descriptor);if(void 0!==t.propertyKey&&s&&t.target&&Object.defineProperty(t.target,t.propertyKey,s),void 0!==t.propertyKey&&void 0===t.descriptor&&b()(t.owner??t.target,t.propertyKey),void 0===t.metadataDiff){const e=j(r[o]);t.metadataDiff=I(i,e)}}catch(t){}}static markPending(t){if(!t)return;const e=this.getTargetState(t);e.resolved=!1,e.flavour||(e.flavour=k.defaultFlavour),y.set(t,r.DECORATION,o.PENDING)}static ensureDefaultFlavour(t){if(!t)return;const e=g(t,k.defaultFlavour,k.defaultFlavour);let r;try{r=k.flavourResolver?k.flavourResolver(e):void 0}catch{r=void 0}r&&r!==k.defaultFlavour?k.resolvePendingDecorators(e,r):k.markPending(e)}static scheduleDefaultResolve(t){if(!t)return;const e=this.getTargetState(t);e.resolveScheduled||e.resolved||e.applying||(e.resolveScheduled=!0,Promise.resolve().then(()=>{e.resolveScheduled=!1,e.resolved||this.resolvePendingDecorators(t)}))}static registerPendingDecorator(t,e,o,i,n,s,a){const c=`${t?.name||"anonymous"}:${(i||"class")+""}:${Date.now()}:${Math.random()}`,l=this.getTargetState(t),d=T(s),u={owner:t,target:e,propertyKey:i,descriptor:n,callback:o,argsOverride:d,argsFactory:()=>T(d),key:c,definitionKey:a},f=()=>{const e=l.flavour||y.get(t,r.FLAVOUR)||k.defaultFlavour;return this.applyPendingEntry(u,e),u.lastAppliedPass=l.passId,u.lastAppliedFlavour=e,e},p=()=>(l.pending.push(u),u);if(l.directApply){p();const e=f();return l.appliedCount=l.pending.length,l.flavour=e,y.set(t,r.DECORATION,!0),c}if(p(),l.applying)return f(),c;if(k.flavourResolver!==D)try{const e=k.flavourResolver(t);if(e&&e!==k.defaultFlavour)return this.resolvePendingDecorators(t,e),c}catch{}return this.scheduleDefaultResolve(t),c}static resolvePendingDecorators(t,e){const o="function"==typeof t?t:t?.constructor||t;if(!o)return;const i=this.getTargetState(o);if(i.resolveScheduled=!1,!i.pending.length&&!e)return;const n=e||i.flavour||y.get(o,r.FLAVOUR)||k.defaultFlavour;if(i.applying)return;const s=i.appliedCount||0;if(!e&&i.lastAppliedFlavour===n&&s>=i.pending.length)return;const a=!(!e||e===k.defaultFlavour)||i.directApply;if(!i.pending.length)return;const c=(i.passId||0)+1;i.passId=c,i.applying=!0;try{if(a)for(const t of i.pending){if(!t)continue;if(t.lastAppliedPass===c)continue;const e=this.shouldOverrideEntry(t,n);void 0!==t.metadataDiff||void 0!==t.descriptorSnapshot?t.lastAppliedFlavour!==n&&e?(t.metadataDiff?.length&&_(t.owner,t.metadataDiff),C(t),this.applyPendingEntry(t,n),t.lastAppliedPass=c,t.lastAppliedFlavour=n):t.lastAppliedPass=c:(this.applyPendingEntry(t,n),t.lastAppliedPass=c,t.lastAppliedFlavour=n)}else{let t=s;for(;t<i.pending.length;){const e=i.pending[t++];e&&e.lastAppliedPass!==c&&(this.applyPendingEntry(e,n),e.lastAppliedPass=c,e.lastAppliedFlavour=n)}i.appliedCount=i.pending.length}}finally{i.applying=!1}i.flavour=n,i.resolved=!0,i.lastAppliedFlavour=n,a&&(i.appliedCount=i.pending.length,n!==k.defaultFlavour&&(i.directApply=!0)),y.set(o,r.DECORATION,!0)}for(t){return this.key=t,this}decorate(t=!1,...e){if(!this.key)throw Error("key must be provided before decorators can be added");if(!(e&&e.length||t||this.flavour===k.defaultFlavour))throw Error("Must provide overrides or addons to override or extend decaf's decorators");return t?this.extras=new Set([...(this.extras||new Set).values(),...e]):this.decorators=new Set([...e]),this}snapshotDecoratorArgs(){if(!this.decorators||!this.decorators.size)return;const t={};return Array.from(this.decorators.values()).forEach((e,r)=>{"object"==typeof e&&"args"in e&&Array.isArray(e.args)&&(t[r]=e.args.map(t=>"object"==typeof t&&null!==t?j(t):t))}),Object.keys(t).length?t:void 0}define(...t){if(t.find(t=>"object"==typeof t)&&1!==t.length)throw Error("When using an overridable decorator, only one is allowed");return this.decorate(!1,...t)}extend(...t){if(t.find(t=>"object"==typeof t)&&1!==t.length)throw Error("When extending using an overridable decorator, only one is allowed");return this.decorate(!0,...t)}decoratorFactory(t,e,r){function o(o,i,n){const s=e??k.flavourResolver(o),a=k.decorators[t];let c;const l=a[s]?a[s].extras:a[k.defaultFlavour].extras;c=a&&a[s]&&a[s].decorators&&a[s].decorators.size?a[s].decorators:a[k.defaultFlavour].decorators;const d=[...c?c.values():[]],u=[...(a[k.defaultFlavour]?.decorators||new Set).values()],f=d.reduce((t,e,r)=>("object"==typeof e&&"args"in e&&Array.isArray(e.args)&&(t[r]=e.args),t),{}),p=u.reduce((t,e,r)=>("object"==typeof e&&"args"in e&&Array.isArray(e.args)&&(t[r]=e.args),t),{}),h=[...d,...l?l.values():[]],y=d.length,v=r||{};let g=o,O=n;return h.forEach((t,e)=>{let r;if("object"==typeof t){const o=t,i=y>e?e:0,n=((y>e?v[i]:void 0)||("args"in o&&Array.isArray(o.args)?o.args:f[i]??p[i]??p[0]??[])).map(t=>"object"==typeof t&&null!==t?j(t):t);r=o.decorator(...n)}else{if("function"!=typeof t)throw Error("Unexpected decorator type: "+typeof t);r=t}const n=r(void 0===i?g:o,i,O);void 0===i?"function"==typeof n&&(g=n):void 0!==n&&(O=n)}),void 0===i?g:O}return Object.defineProperty(o,"name",{value:[e||"dynamic",t].join("_decorator_for_"),writable:!1}),o}apply(){if(!this.key)throw Error("No key provided for the decoration builder");const t=this.key,e=k.decorators[this.key]?.[this.flavour]?.decorators,o=this.decorators||e||new Set,i=void 0!==this.extras?this.extras:void 0;k.register(this.key,this.flavour,o,i);const n=(e,o,i)=>{const n=void 0!==o,s="function"==typeof e?e:e?.constructor||e;if(s&&n){y.innerGet(y.Symbol(s),r.FLAVOUR)||k.ensureDefaultFlavour(s);const n=this.snapshotDecoratorArgs();return k.registerPendingDecorator(s,e,e=>this.decoratorFactory(t,e,n),o,i,n,t),k.resolvePendingDecorators(s),o&&!i&&b()(s,o),o&&i&&P()(s,o,i),i}const a=this.flavour===k.defaultFlavour?void 0:this.flavour;return this.decoratorFactory(t,a)(e,o,i)};try{Object.defineProperty(n,"name",{value:[this.flavour,t].join("_decorator_for_"),writable:!1})}catch(t){}return n}static register(t,e,r,o){if(!t)throw Error("No key provided for the decoration builder");if(!r)throw Error("No decorators provided for the decoration builder");if(!e)throw Error("No flavour provided for the decoration builder");k.decorators[t]||(k.decorators[t]={}),k.decorators[t][e]||(k.decorators[t][e]={}),k.decorators[t][e].decorators=r,void 0!==o&&(k.decorators[t][e].extras=o)}static setResolver(t){k.flavourResolver=t}static shouldOverrideEntry(t,e){if(!t.definitionKey)return!1;if(e===k.defaultFlavour)return!1;const r=k.decorators[t.definitionKey];if(!r)return!1;const o=r[e];if(!o)return!1;const i=r[k.defaultFlavour],n=o.decorators&&o.decorators.size>0,s=o.extras instanceof Set&&o.extras.size>0;if(!n&&!s)return!1;if(!i)return!0;const a=!n||o.decorators===i.decorators,c=!s||o.extras===i.extras;return!(a&&c)}static for(t){return(new k).for(t)}static flavouredAs(t){return new k(t)}}function _(t,e){if(!e||!e.length)return;const o=y._metadata,i=y.Symbol(t),n=o[i]||(o[i]={});e.forEach(({path:t,previousValue:e,existed:o})=>{if(!t.length)return;if(t[0]===r.PROPERTIES)return;let i=n;for(let e=0;e<t.length-1;e++){const r=t[e];F(i[r])||(i[r]={}),i=i[r]}const s=t[t.length-1];o?i[s]=j(e):(delete i[s],((t,e)=>{for(let r=e.length;r>0;r--){const o=e.slice(0,r),i=o.slice(0,-1),n=o[o.length-1],s=0===i.length?t:N(t,i);if(!s||!F(s))break;const a=s[n];if(!F(a)||Reflect.ownKeys(a).length>0)break;delete s[n]}})(n,t.slice(0,-1)))})}function C(t){if(!t||void 0===t.propertyKey)return;const e=t.target;if(!e||void 0===t.descriptorWasOwn)return;const r=t.propertyKey,o=t.descriptorSnapshot;t.descriptorWasOwn?o?Object.defineProperty(e,r,o):delete e[r]:(delete e[r],o&&Object.defineProperty(e,r,o))}function G(t){return e=>{const r=g(e,t,k.defaultFlavour);if(t!==k.defaultFlavour)k.resolvePendingDecorators(r,t);else{let t;try{t=k.flavourResolver?k.flavourResolver(r):void 0}catch{t=void 0}t&&t!==k.defaultFlavour?k.resolvePendingDecorators(r,t):k.markPending(r)}return e}}function x(t){return k.for(r.DESCRIPTION).define({decorator:t=>(e,o,i)=>O(y.key(r.DESCRIPTION,o?o.toString():r.CLASS),t)(e,o,i),args:[t]}).apply()}export{k as Decoration,r as DecorationKeys,o as DecorationState,t as DefaultFlavour,i as DefaultMetadata,y as Metadata,e as ObjectKeySplitter,s as PACKAGE_NAME,n as VERSION,m as apply,g as assignFlavour,x as description,p as getValueBySplitter,O as metadata,S as metadataArray,P as method,w as methodMetadata,E as param,R as paramMetadata,b as prop,A as propMetadata,l as registerFlavourResolver,u as registerPendingResolver,d as resolveFlavour,f as resolvePendingDecorators,h as setValueBySplitter,G as uses};
2
2
  //# sourceMappingURL=decoration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decoration.js","sources":["../src/constants.ts","../src/version.ts","../src/metadata/Metadata.ts","../src/decorators.ts","../src/decoration/Decoration.ts"],"sourcesContent":[null,null,null,null,null],"names":["DefaultFlavour","ObjectKeySplitter","DecorationKeys","DecorationState","DefaultMetadata","PROPERTIES","VERSION","PACKAGE_NAME","getValueBySplitter","obj","path","splitter","keys","split","current","key","Object","prototype","hasOwnProperty","call","setValueBySplitter","value","filter","k","length","i","undefined","Metadata","this","_metadata","baseKey","REFLECT","mirror","constructor","Symbol","for","toString","name","join","properties","model","meta","get","methods","METHODS","description","prop","DESCRIPTION","CLASS","flavourOf","Decoration","flavouredAs","flavour","innerGet","FLAVOUR","registeredFlavour","registry","constr","fallback","constructors","entries","Array","isArray","some","registered","params","DESIGN_PARAMS","param","index","Error","String","DESIGN_RETURN","type","CONSTRUCTOR","resolvedModel","collectConstructorChain","c","isDecorated","PENDING","forEach","fallbackSymbol","collectedValues","map","ctor","mergeMetadataChain","DECORATION","symbol","chain","Function","push","parent","getPrototypeOf","reverse","values","acc","isPlainObject","mergePlainObjects","cloneMetadataValue","target","source","result","sourceValue","targetValue","proto","innerSet","set","defineProperty","enumerable","configurable","writable","registerLibrary","library","version","LIBRARIES","libraries","strs","metadata","descriptor","targetModel","metadataArray","data","propertyKey","existingData","apply","Set","uses","object","canonical","flav","defaultFlavour","filtered","o","add","manageFlavourRMetadata","resolved","metadataTarget","designType","Reflect","getOwnMetadata","DESIGN_TYPE","method","getOwnPropertyDescriptor","paramTpes","paramMetadata","designParams","designReturn","decorators","decorator","propMetadata","methodMetadata","desc","define","original","args","flavourResolver","owner","item","Date","getTime","from","Map","v","clone","ownKeys","diffMetadataBuckets","before","after","basePath","prevExists","nextExists","prevValue","nextValue","previousValue","existed","cloneArgsOverrides","overrides","arg","getNodeAtPath","bucket","segment","targetStates","WeakMap","getTargetState","state","pending","directApply","applyPendingEntry","entry","metadataStore","metadataSymbol","beforeSnapshot","metadataDiff","descriptorSnapshot","currentDescriptor","descriptorWasOwn","overridesForCall","argsFactory","argsOverride","descriptorResult","callback","afterSnapshot","error","markPending","scheduleDefaultResolve","resolveScheduled","applying","Promise","resolve","then","resolvePendingDecorators","registerPendingDecorator","definitionKey","now","Math","random","argsOverrideClone","applyImmediately","flavourToUse","lastAppliedPass","passId","lastAppliedFlavour","registerEntry","appliedCount","eagerFlavour","resolvedFlavour","cursor","shouldFinalize","currentPass","hasOverride","shouldOverrideEntry","revertMetadataDiff","restorePropertyDescriptor","decorate","addon","extras","snapshotDecoratorArgs","size","find","d","extend","decoratorFactory","f","contextDecorator","cache","baseDecoratorsList","defaultDecoratorsList","baseArgsByIndex","reduce","accum","defaultArgsByIndex","toApply","baseLength","argsOverrides","currentTarget","decoratorFn","candidateIndex","invocationArgs","existingDecorators","decoratorsToRegister","extrasToRegister","register","wrapper","isMember","flavourHint","e","setResolver","resolver","flavourBucket","defaultBucket","hasDecorators","hasExtras","decoratorsMatch","extrasMatch","diff","ancestorPath","slice","parentPath","pruneEmptyAncestors","snapshot"],"mappings":"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"}
1
+ {"version":3,"file":"decoration.js","sources":["../src/constants.ts","../src/version.ts","../src/decoration/metadataLink.ts","../src/metadata/Metadata.ts","../src/decoration/flavourRegistry.ts","../src/shared/core.ts","../src/decoration/Decoration.ts","../src/decorators.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["DefaultFlavour","ObjectKeySplitter","DecorationKeys","DecorationState","DefaultMetadata","PROPERTIES","VERSION","PACKAGE_NAME","flavourResolver","pendingResolver","registerFlavourResolver","resolver","resolveFlavour","model","registerPendingResolver","resolvePendingDecorators","target","flavour","getValueBySplitter","obj","path","splitter","keys","split","current","key","Object","prototype","hasOwnProperty","call","setValueBySplitter","value","filter","k","length","i","undefined","Metadata","this","_metadata","_propertiesIndex","baseKey","REFLECT","mirror","constructor","Symbol","for","toString","name","join","properties","resolvedModel","constr","symbol","indexed","size","meta","get","methods","METHODS","description","prop","DESCRIPTION","CLASS","flavourOf","flavouredAs","innerGet","FLAVOUR","registeredFlavour","registry","fallback","constructors","entries","Array","isArray","some","registered","params","DESIGN_PARAMS","param","index","Error","String","DESIGN_RETURN","type","CONSTRUCTOR","collectConstructorChain","c","isDecorated","PENDING","forEach","fallbackSymbol","collectedValues","map","ctor","mergeMetadataChain","DECORATION","chain","Function","push","parent","getPrototypeOf","reverse","values","acc","isPlainObject","mergePlainObjects","cloneMetadataValue","source","result","sourceValue","targetValue","proto","innerSet","set","defineProperty","enumerable","configurable","writable","propPrefix","startsWith","slice","Set","add","registerLibrary","library","version","LIBRARIES","libraries","strs","FLAVOUR_BUCKET_SYMBOL","assignFlavour","object","defaultFlavour","canonical","previousFlavour","filtered","entry","nextBucket","metadata","descriptor","targetModel","metadataTarget","designType","Reflect","getOwnMetadata","DESIGN_TYPE","propKey","existing","metadataArray","data","propertyKey","existingData","apply","method","getOwnPropertyDescriptor","paramTpes","paramMetadata","designParams","designReturn","decorators","decorator","propMetadata","methodMetadata","owner","Decoration","item","Date","getTime","from","Map","v","clone","ownKeys","diffMetadataBuckets","before","after","basePath","prevExists","nextExists","prevValue","nextValue","previousValue","existed","cloneArgsOverrides","overrides","arg","getNodeAtPath","bucket","segment","targetStates","WeakMap","getTargetState","state","pending","directApply","applyPendingEntry","metadataStore","metadataSymbol","beforeSnapshot","metadataDiff","descriptorSnapshot","currentDescriptor","descriptorWasOwn","overridesForCall","argsFactory","argsOverride","descriptorResult","callback","afterSnapshot","error","markPending","resolved","ensureDefaultFlavour","scheduleDefaultResolve","resolveScheduled","applying","Promise","resolve","then","registerPendingDecorator","definitionKey","now","Math","random","argsOverrideClone","applyImmediately","flavourToUse","lastAppliedPass","passId","lastAppliedFlavour","registerEntry","appliedCount","eagerFlavour","resolvedFlavour","cursor","shouldFinalize","currentPass","hasOverride","shouldOverrideEntry","revertMetadataDiff","restorePropertyDescriptor","decorate","addon","extras","snapshotDecoratorArgs","args","define","find","d","extend","decoratorFactory","f","contextDecorator","cache","baseDecoratorsList","defaultDecoratorsList","baseArgsByIndex","reduce","accum","defaultArgsByIndex","toApply","baseLength","argsOverrides","currentTarget","decoratorFn","candidateIndex","invocationArgs","existingDecorators","decoratorsToRegister","extrasToRegister","register","wrapper","isMember","flavourHint","e","setResolver","flavourBucket","defaultBucket","hasDecorators","hasExtras","decoratorsMatch","extrasMatch","diff","ancestorPath","parentPath","pruneEmptyAncestors","snapshot","uses","desc","original"],"mappings":"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"}
@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Decoration = void 0;
4
4
  const constants_1 = require("./../constants.cjs");
5
5
  const Metadata_1 = require("./../metadata/Metadata.cjs");
6
- const decorators_1 = require("./../decorators.cjs");
6
+ const flavourRegistry_1 = require("./flavourRegistry.cjs");
7
+ const metadataLink_1 = require("./metadataLink.cjs");
8
+ const core_1 = require("./../shared/core.cjs");
7
9
  /**
8
10
  * @description Default resolver that returns the current default flavour.
9
11
  * @summary Resolves the flavour for a given target by always returning the library's `DefaultFlavour` value.
@@ -107,9 +109,7 @@ function cloneArgsOverrides(overrides) {
107
109
  return undefined;
108
110
  const clone = {};
109
111
  Object.keys(overrides).forEach((key) => {
110
- clone[key] = overrides[key].map((arg) => typeof arg === "object" && arg !== null
111
- ? cloneMetadataValue(arg)
112
- : arg);
112
+ clone[key] = overrides[key].map((arg) => typeof arg === "object" && arg !== null ? cloneMetadataValue(arg) : arg);
113
113
  });
114
114
  return clone;
115
115
  }
@@ -128,9 +128,7 @@ function pruneEmptyAncestors(bucket, path) {
128
128
  const ancestorPath = path.slice(0, i);
129
129
  const parentPath = ancestorPath.slice(0, -1);
130
130
  const key = ancestorPath[ancestorPath.length - 1];
131
- const parent = parentPath.length === 0
132
- ? bucket
133
- : getNodeAtPath(bucket, parentPath);
131
+ const parent = parentPath.length === 0 ? bucket : getNodeAtPath(bucket, parentPath);
134
132
  if (!parent || !isPlainObject(parent))
135
133
  break;
136
134
  const value = parent[key];
@@ -191,6 +189,10 @@ class Decoration {
191
189
  * @summary Resolver function that determines the appropriate flavour for a given target.
192
190
  */
193
191
  static { this.flavourResolver = flavourResolver; }
192
+ static {
193
+ (0, metadataLink_1.registerFlavourResolver)((model) => this.flavourResolver(model));
194
+ (0, metadataLink_1.registerPendingResolver)((target, flavour) => this.resolvePendingDecorators(target, flavour));
195
+ }
194
196
  constructor(flavour = Decoration.defaultFlavour) {
195
197
  this.flavour = flavour;
196
198
  }
@@ -239,6 +241,11 @@ class Decoration {
239
241
  entry.target) {
240
242
  Object.defineProperty(entry.target, entry.propertyKey, descriptorResult);
241
243
  }
244
+ if (typeof entry.propertyKey !== "undefined" &&
245
+ typeof entry.descriptor === "undefined") {
246
+ // Ensure property metadata is always registered for member decorators.
247
+ (0, core_1.prop)()(entry.owner ?? entry.target, entry.propertyKey);
248
+ }
242
249
  if (typeof entry.metadataDiff === "undefined") {
243
250
  const afterSnapshot = cloneMetadataValue(metadataStore[metadataSymbol]);
244
251
  entry.metadataDiff = diffMetadataBuckets(beforeSnapshot, afterSnapshot);
@@ -257,6 +264,26 @@ class Decoration {
257
264
  state.flavour = Decoration.defaultFlavour;
258
265
  Metadata_1.Metadata.set(owner, constants_1.DecorationKeys.DECORATION, constants_1.DecorationState.PENDING);
259
266
  }
267
+ static ensureDefaultFlavour(owner) {
268
+ if (!owner)
269
+ return;
270
+ const canonical = (0, flavourRegistry_1.assignFlavour)(owner, Decoration.defaultFlavour, Decoration.defaultFlavour);
271
+ let resolved;
272
+ try {
273
+ resolved = Decoration["flavourResolver"]
274
+ ? Decoration["flavourResolver"](canonical)
275
+ : undefined;
276
+ }
277
+ catch {
278
+ resolved = undefined;
279
+ }
280
+ if (resolved && resolved !== Decoration.defaultFlavour) {
281
+ Decoration["resolvePendingDecorators"](canonical, resolved);
282
+ }
283
+ else {
284
+ Decoration["markPending"](canonical);
285
+ }
286
+ }
260
287
  static scheduleDefaultResolve(owner) {
261
288
  if (!owner)
262
289
  return;
@@ -370,8 +397,7 @@ class Decoration {
370
397
  entry.lastAppliedFlavour = resolvedFlavour;
371
398
  continue;
372
399
  }
373
- if (entry.lastAppliedFlavour === resolvedFlavour ||
374
- !hasOverride) {
400
+ if (entry.lastAppliedFlavour === resolvedFlavour || !hasOverride) {
375
401
  entry.lastAppliedPass = currentPass;
376
402
  continue;
377
403
  }
@@ -619,18 +645,18 @@ class Decoration {
619
645
  if (owner && isMember) {
620
646
  const currentFlavour = Metadata_1.Metadata["innerGet"](Metadata_1.Metadata.Symbol(owner), constants_1.DecorationKeys.FLAVOUR);
621
647
  if (!currentFlavour)
622
- (0, decorators_1.uses)(Decoration.defaultFlavour)(owner);
648
+ Decoration.ensureDefaultFlavour(owner);
623
649
  const argsOverride = this.snapshotDecoratorArgs();
624
650
  Decoration.registerPendingDecorator(owner, target, (resolvedFlavour) => {
625
651
  return this.decoratorFactory(key, resolvedFlavour, argsOverride);
626
652
  }, propertyKey, descriptor, argsOverride, key);
627
653
  Decoration.resolvePendingDecorators(owner);
628
654
  if (propertyKey && !descriptor) {
629
- (0, decorators_1.prop)()(owner, propertyKey); // auto tag as a property
655
+ (0, core_1.prop)()(owner, propertyKey); // auto tag as a property
630
656
  }
631
657
  if (propertyKey && descriptor) {
632
658
  // TODO this probably needs refining. under some compilation processes, the descriptor can exit on a prop
633
- (0, decorators_1.method)()(owner, propertyKey, descriptor); // auto tag as a method
659
+ (0, core_1.method)()(owner, propertyKey, descriptor); // auto tag as a method
634
660
  }
635
661
  return descriptor;
636
662
  }
@@ -691,14 +717,12 @@ class Decoration {
691
717
  return false;
692
718
  const defaultBucket = cache[Decoration.defaultFlavour];
693
719
  const hasDecorators = flavourBucket.decorators && flavourBucket.decorators.size > 0;
694
- const hasExtras = flavourBucket.extras instanceof Set &&
695
- flavourBucket.extras.size > 0;
720
+ const hasExtras = flavourBucket.extras instanceof Set && flavourBucket.extras.size > 0;
696
721
  if (!hasDecorators && !hasExtras)
697
722
  return false;
698
723
  if (!defaultBucket)
699
724
  return true;
700
- const decoratorsMatch = !hasDecorators ||
701
- flavourBucket.decorators === defaultBucket.decorators;
725
+ const decoratorsMatch = !hasDecorators || flavourBucket.decorators === defaultBucket.decorators;
702
726
  const extrasMatch = !hasExtras || flavourBucket.extras === defaultBucket.extras;
703
727
  return !(decoratorsMatch && extrasMatch);
704
728
  }
@@ -733,6 +757,8 @@ function revertMetadataDiff(owner, diff) {
733
757
  diff.forEach(({ path, previousValue, existed }) => {
734
758
  if (!path.length)
735
759
  return;
760
+ if (path[0] === constants_1.DecorationKeys.PROPERTIES)
761
+ return;
736
762
  let target = bucket;
737
763
  for (let i = 0; i < path.length - 1; i++) {
738
764
  const key = path[i];
@@ -113,6 +113,7 @@ export declare class Decoration implements IDecorationBuilder {
113
113
  private static getTargetState;
114
114
  private static applyPendingEntry;
115
115
  protected static markPending(owner: any): void;
116
+ private static ensureDefaultFlavour;
116
117
  private static scheduleDefaultResolve;
117
118
  protected static registerPendingDecorator(owner: any, target: any, callback: (flavour: string, overrides?: Record<number, any[]>) => PropertyDecorator | MethodDecorator, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<any> | number, argsOverride?: Record<number, any[]>, definitionKey?: string): string;
118
119
  protected static resolvePendingDecorators(target: any, flavour?: string): void;