@decaf-ts/decoration 0.7.0 → 0.8.0

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 (44) 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/constants.cjs +10 -1
  7. package/lib/constants.d.ts +8 -0
  8. package/lib/constants.js.map +1 -1
  9. package/lib/decoration/Decoration.cjs +259 -42
  10. package/lib/decoration/Decoration.d.ts +19 -12
  11. package/lib/decoration/Decoration.js.map +1 -1
  12. package/lib/decorators.cjs +56 -17
  13. package/lib/decorators.d.ts +3 -2
  14. package/lib/decorators.js.map +1 -1
  15. package/lib/esm/constants.d.ts +8 -0
  16. package/lib/esm/constants.js +9 -0
  17. package/lib/esm/constants.js.map +1 -1
  18. package/lib/esm/decoration/Decoration.d.ts +19 -12
  19. package/lib/esm/decoration/Decoration.js +260 -43
  20. package/lib/esm/decoration/Decoration.js.map +1 -1
  21. package/lib/esm/decorators.d.ts +3 -2
  22. package/lib/esm/decorators.js +55 -17
  23. package/lib/esm/decorators.js.map +1 -1
  24. package/lib/esm/index.d.ts +1 -8
  25. package/lib/esm/index.js +1 -10
  26. package/lib/esm/index.js.map +1 -1
  27. package/lib/esm/metadata/Metadata.d.ts +4 -0
  28. package/lib/esm/metadata/Metadata.js +42 -1
  29. package/lib/esm/metadata/Metadata.js.map +1 -1
  30. package/lib/esm/metadata/types.d.ts +1 -0
  31. package/lib/esm/version.d.ts +9 -0
  32. package/lib/esm/version.js +10 -0
  33. package/lib/esm/version.js.map +1 -0
  34. package/lib/index.cjs +1 -11
  35. package/lib/index.d.ts +1 -8
  36. package/lib/index.js.map +1 -1
  37. package/lib/metadata/Metadata.cjs +41 -0
  38. package/lib/metadata/Metadata.d.ts +4 -0
  39. package/lib/metadata/Metadata.js.map +1 -1
  40. package/lib/metadata/types.d.ts +1 -0
  41. package/lib/version.cjs +13 -0
  42. package/lib/version.d.ts +9 -0
  43. package/lib/version.js.map +1 -0
  44. package/package.json +1 -1
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: 2.7 KB kb gzipped
29
+ Minimal size: 4.1 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;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.DESIGN_TYPE="design:type",o.DESIGN_PARAMS="design:paramtypes",o.DESIGN_RETURN="design:returntype";const i={[t.DecorationKeys.PROPERTIES]:[]};function a(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 s(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 n{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 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(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 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],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 s(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);this.innerSet(i,r,o),"string"!=typeof e&&n.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)}}function c(t){return e}class d{static{this.decorators={}}static{this.flavourResolver=c}constructor(t=e){this.flavour=t}for(t){return this.key=t,this}decorate(t=!1,...r){if(!this.key)throw Error("key must be provided before decorators can be added");if(!(r&&r.length||t||this.flavour===e))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(),...r]):this.decorators=new Set([...r]),this}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,r=e){function o(r,o,i){const a=d.flavourResolver(r),s=d.decorators[t];let n;const c=s[a]?s[a].extras:s[e].extras;n=s&&s[a]&&s[a].decorators&&s[a].decorators.size?s[a].decorators:s[e].decorators;const l=[...n?n.values():[]],y=[...(s[e]?.decorators||new Set).values()],f=l.reduce((t,e,r)=>("object"==typeof e&&"args"in e&&Array.isArray(e.args)&&(t[r]=e.args),t),{}),h=y.reduce((t,e,r)=>("object"==typeof e&&"args"in e&&Array.isArray(e.args)&&(t[r]=e.args),t),{}),u=[...l,...c?c.values():[]],p=l.length;return u.reduce((t,e,a)=>{switch(typeof e){case"object":{const t=e,s=p>a?a:0,n="args"in t&&Array.isArray(t.args)?t.args:f[s]??h[s]??h[0]??[];return t.decorator(...n)(r,o,i)}case"function":return e(r,o,i);default:throw Error("Unexpected decorator type: "+typeof e)}},{target:r,propertyKey:o,descriptor:i})}return Object.defineProperty(o,"name",{value:[r,t].join("_decorator_for_"),writable:!1}),o}apply(){if(!this.key)throw Error("No key provided for the decoration builder");const t=d.decorators[this.key]?.[this.flavour]?.decorators,e=this.decorators||t||new Set,r=void 0!==this.extras?this.extras:void 0;return d.register(this.key,this.flavour,e,r),this.decoratorFactory(this.key,this.flavour)}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 setFlavourResolver(t){d.flavourResolver=t}static for(t){return(new d).for(t)}static flavouredAs(t){return new d(t)}}function l(t,e){return(r,o,i)=>{n.set(o?r.constructor:r,t,e)}}function y(){return d.for(t.DecorationKeys.PROPERTIES).define({decorator:()=>(e,r)=>{const o=Reflect.getOwnMetadata(t.DecorationKeys.DESIGN_TYPE,e,r);return l(n.key(t.DecorationKeys.PROPERTIES,r),o)(e,r)},args:[]}).apply()}function f(){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 i=n.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+""}`);l(n.key(t.DecorationKeys.METHODS,r,o.toString()),i[o])(e,r)}}function h(){return(e,r,o)=>{const i=Reflect.getOwnMetadata(t.DecorationKeys.DESIGN_PARAMS,e,r),a=Reflect.getOwnMetadata(t.DecorationKeys.DESIGN_RETURN,e,r);return u(l(n.key(t.DecorationKeys.METHODS,r,t.DecorationKeys.DESIGN_PARAMS),i),l(n.key(t.DecorationKeys.METHODS,r,t.DecorationKeys.DESIGN_RETURN),a))(e,r,o)}}function u(...t){return(e,r,o)=>{for(const i of t)e instanceof Function&&!o?i(e):i(e,r,o)}}const p="##VERSION##";n.registerLibrary("@decaf-ts/decoration",p),t.Decoration=d,t.DefaultFlavour=e,t.DefaultMetadata=i,t.Metadata=n,t.ObjectKeySplitter=r,t.VERSION=p,t.apply=u,t.description=e=>d.for(t.DecorationKeys.DESCRIPTION).define({decorator:e=>(r,o,i)=>l([t.DecorationKeys.DESCRIPTION,o?o.toString():t.DecorationKeys.CLASS].join(n.splitter),e)(r,o,i),args:[e]}).apply(),t.getValueBySplitter=a,t.metadata=l,t.metadataArray=(t,...e)=>(r,o,i)=>{const a=n.get(r,t)||[];return u(l(o?n.key(t,o):t,[...new Set([...a,...e])]))(r,o,i)},t.method=h,t.methodMetadata=(t,e)=>u(l(t,e),h()),t.param=f,t.paramMetadata=(e,r)=>(o,i,a)=>u(f(),l(n.key(t.DecorationKeys.METHODS,i,e),r))(o,i,a),t.prop=y,t.propMetadata=(t,e)=>u(l(t,e),y()),t.setValueBySplitter=s},"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,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]:[]},s="##VERSION##",n="##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 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 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 D.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=>{D.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 u(t,e){return(r,o,a)=>{let i=r;o&&(i="function"==typeof r?r:r.constructor||r),d.set(i,t,e)}}function f(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)||D.defaultFlavour,i=(d.innerGet(Symbol.for(t.DecorationKeys.FLAVOUR),a)||[]).filter(t=>d.constr(t)!==o);d.set(t.DecorationKeys.FLAVOUR,a,i);const s=new Set(d.innerGet(Symbol.for(t.DecorationKeys.FLAVOUR),r)||[]);s.add(e),d.set(t.DecorationKeys.FLAVOUR,r,[...s])})(r,e),d.set(o,t.DecorationKeys.FLAVOUR,e),e!==D.defaultFlavour)D.resolvePendingDecorators(o,e);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 r}}function y(){return(e,r)=>{const o="function"==typeof e?e.prototype:e,a=Reflect.getOwnMetadata(t.DecorationKeys.DESIGN_TYPE,o,r);return u(d.key(t.DecorationKeys.PROPERTIES,r),a)(e,r)}}function p(){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+""}`);u(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(u(d.key(t.DecorationKeys.METHODS,r,t.DecorationKeys.DESIGN_PARAMS),a),u(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!==D.defaultFlavour)return o;const a="function"==typeof d.registeredFlavour?d.registeredFlavour(r):void 0;return a&&a!==D.defaultFlavour?a:o??D.defaultFlavour}d.registerLibrary(n,s);class D{static{this.defaultFlavour=e}static{this.targetStates=new WeakMap}static{this.decorators={}}static{this.flavourResolver=v}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){try{const r=t.callback(e,t.argsOverride)(t.target,t.propertyKey,t.descriptor);void 0!==t.propertyKey&&r&&t.target&&Object.defineProperty(t.target,t.propertyKey,r)}catch(t){}}static markPending(e){if(!e)return;const r=this.getTargetState(e);r.resolved=!1,r.flavour||(r.flavour=D.defaultFlavour),d.set(e,t.DecorationKeys.DECORATION,t.DecorationState.PENDING)}static registerPendingDecorator(e,r,o,a,i,s){const n=`${e?.name||"anonymous"}:${(a||"class")+""}:${Date.now()}:${Math.random()}`,c=this.getTargetState(e),l={owner:e,target:r,propertyKey:a,descriptor:i,callback:o,argsOverride:s,key:n},u=()=>{const r=c.flavour||d.get(e,t.DecorationKeys.FLAVOUR)||D.defaultFlavour;return this.applyPendingEntry(l,r),l.lastAppliedPass=c.passId,r};if(c.directApply){const r=u();return c.flavour=r,d.set(e,t.DecorationKeys.DECORATION,!0),n}if(c.pending.push(l),c.applying&&u(),D.flavourResolver!==v)try{const t=D.flavourResolver(e);if(t&&t!==D.defaultFlavour)return this.resolvePendingDecorators(e,t),n}catch{}return n}static resolvePendingDecorators(e,r){const o="function"==typeof e?e:e?.constructor||e;if(!o)return;const a=this.getTargetState(o);if(!a.pending.length&&!r)return;const i=r||a.flavour||d.get(o,t.DecorationKeys.FLAVOUR)||D.defaultFlavour;if(a.applying)return;const s=a.appliedCount||0;if(!r&&a.lastAppliedFlavour===i&&s>=a.pending.length)return;const n=!(!r||r===D.defaultFlavour)||a.directApply;if(!a.pending.length)return;const c=(a.passId||0)+1;a.passId=c,a.applying=!0;try{if(n)for(;a.pending.length;){const t=a.pending.shift();t&&t.lastAppliedPass!==c&&(this.applyPendingEntry(t,i),t.lastAppliedPass=c)}else{let t=s;for(;t<a.pending.length;){const e=a.pending[t++];e&&e.lastAppliedPass!==c&&(this.applyPendingEntry(e,i),e.lastAppliedPass=c)}a.appliedCount=a.pending.length}}finally{a.applying=!1}a.flavour=i,a.resolved=!0,a.lastAppliedFlavour=i,n&&(a.pending.length=0,a.appliedCount=0,i!==D.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===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])}),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 s=e??D.flavourResolver(o),n=D.decorators[t];let c;const l=n[s]?n[s].extras:n[D.defaultFlavour].extras;c=n&&n[s]&&n[s].decorators&&n[s].decorators.size?n[s].decorators:n[D.defaultFlavour].decorators;const d=[...c?c.values():[]],u=[...(n[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),{}),y=u.reduce((t,e,r)=>("object"==typeof e&&"args"in e&&Array.isArray(e.args)&&(t[r]=e.args),t),{}),p=[...d,...l?l.values():[]],h=d.length,g=r||{};let v=o,O=i;return p.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:f[a]??y[a]??y[0]??[]);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,O);void 0===a?"function"==typeof i&&(v=i):void 0!==i&&(O=i)}),void 0===a?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 e=this.key,r=D.decorators[this.key]?.[this.flavour]?.decorators,o=this.decorators||r||new Set,a=void 0!==this.extras?this.extras:void 0;D.register(this.key,this.flavour,o,a);const i=(r,o,a)=>{const i=void 0!==o,s="function"==typeof r?r:r?.constructor||r;if(s&&i){d.innerGet(d.Symbol(s),t.DecorationKeys.FLAVOUR)||f(D.defaultFlavour)(s);const i=this.snapshotDecoratorArgs();return D.registerPendingDecorator(s,r,t=>this.decoratorFactory(e,t,i),o,a,i),D.resolvePendingDecorators(s),o&&!a&&y()(s,o),o&&a&&h()(s,o,a),a}const n=this.flavour===D.defaultFlavour?void 0:this.flavour;return this.decoratorFactory(e,n)(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");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 for(t){return(new D).for(t)}static flavouredAs(t){return new D(t)}}t.Decoration=D,t.DefaultFlavour=e,t.DefaultMetadata=i,t.Metadata=d,t.ObjectKeySplitter=r,t.PACKAGE_NAME=n,t.VERSION=s,t.apply=g,t.description=e=>D.for(t.DecorationKeys.DESCRIPTION).define({decorator:e=>(r,o,a)=>u(d.key(t.DecorationKeys.DESCRIPTION,o?o.toString():t.DecorationKeys.CLASS),e)(r,o,a),args:[e]}).apply(),t.getValueBySplitter=c,t.metadata=u,t.metadataArray=(t,...e)=>(r,o,a)=>{const i=d.get(r,t)||[];return g(u(o?d.key(t,o):t,[...new Set([...i,...e])]))(r,o,a)},t.method=h,t.methodMetadata=(t,e)=>g(u(t,e),h()),t.param=p,t.paramMetadata=(e,r)=>(o,a,i)=>g(p(),u(d.key(t.DecorationKeys.METHODS,a,e),r))(o,a,i),t.prop=y,t.propMetadata=(t,e)=>g(u(t,e),y()),t.setValueBySplitter=l,t.uses=f},"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/metadata/Metadata.ts","../src/decoration/Decoration.ts","../src/decorators.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null],"names":["DefaultFlavour","ObjectKeySplitter","DecorationKeys","exports","DefaultMetadata","PROPERTIES","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","params","DESIGN_PARAMS","param","index","Error","String","DESIGN_RETURN","type","constr","CONSTRUCTOR","resolvedModel","constructors","collectConstructorChain","fallbackSymbol","innerGet","collectedValues","map","ctor","mergeMetadataChain","symbol","chain","Function","push","parent","getPrototypeOf","reverse","values","acc","isPlainObject","mergePlainObjects","cloneMetadataValue","Array","isArray","target","source","result","sourceValue","targetValue","proto","innerSet","set","defineProperty","enumerable","configurable","writable","registerLibrary","library","version","LIBRARIES","libraries","strs","defaultFlavourResolver","Decoration","decorators","flavourResolver","flavour","decorate","addon","extras","Set","define","find","d","extend","decoratorFactory","f","contextDecorator","propertyKey","descriptor","cache","size","baseDecoratorsList","defaultDecoratorsList","baseArgsByIndex","reduce","accum","entry","args","defaultArgsByIndex","toApply","baseLength","_","candidateIndex","decorator","apply","existingDecorators","decoratorsToRegister","extrasToRegister","register","setFlavourResolver","resolver","flavouredAs","metadata","designType","Reflect","getOwnMetadata","DESIGN_TYPE","method","getOwnPropertyDescriptor","paramTpes","designParams","designReturn","VERSION","desc","original","data","existingData"],"mappings":"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"}
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","targetStates","WeakMap","getTargetState","state","pending","directApply","applyPendingEntry","entry","descriptorResult","callback","argsOverride","error","markPending","registerPendingDecorator","Date","now","Math","random","applyImmediately","flavourToUse","lastAppliedPass","passId","applying","eagerFlavour","resolvePendingDecorators","resolvedFlavour","cursor","appliedCount","lastAppliedFlavour","shouldFinalize","currentPass","shift","decorate","addon","extras","snapshotDecoratorArgs","size","overrides","from","args","define","find","d","extend","decoratorFactory","f","contextDecorator","cache","baseDecoratorsList","defaultDecoratorsList","baseArgsByIndex","reduce","accum","defaultArgsByIndex","toApply","baseLength","argsOverrides","currentTarget","currentDescriptor","decoratorFn","candidateIndex","existingDecorators","decoratorsToRegister","extrasToRegister","register","wrapper","isMember","flavourHint","e","setResolver","resolver","desc","original","data","existingData"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import"reflect-metadata";const t="decaf",r=".";var e;(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.DESIGN_TYPE="design:type",t.DESIGN_PARAMS="design:paramtypes",t.DESIGN_RETURN="design:returntype"})(e||(e={}));const o={[e.PROPERTIES]:[]};function i(t,e,o=r){const i=e.split(o);let s=t;for(const t of i){if(null==s||!Object.prototype.hasOwnProperty.call(s,t))return;s=s[t]}return s}function s(t,e,o,i=r){const s=e.split(i).filter(t=>t.length>0);if(0===s.length)return;let a=t;for(let t=0;t<s.length-1;t++){const r=s[t];void 0!==a[r]&&null!==a[r]&&"object"==typeof a[r]||(a[r]={}),a=a[r]}a[s[s.length-1]]=o}class a{static{this._metadata={}}static{this.splitter=r}static{this.baseKey=e.REFLECT}static{this.mirror=!0}constructor(){}static Symbol(t){return Symbol.for([t.toString(),t.name].join(" - "))}static properties(t){const r=this.get(t);if(r&&r.properties)return Object.keys(r.properties)}static methods(t){const r=this.get(t,e.METHODS);if(r)return Object.keys(r)}static description(t,r){return this.get(t,this.key(e.DESCRIPTION,r||e.CLASS))}static params(t,r){return this.get(t,this.key(e.METHODS,r,e.DESIGN_PARAMS))}static param(t,r,e){const o=this.params(t,r);if(o){if(e>o.length-1)throw Error(`Parameter index ${e} out of range for ${r+""}`);return o[e]}}static return(t,r){return this.get(t,this.key(e.METHODS,r,e.DESIGN_RETURN))}static type(t,r){return this.get(t,this.key(e.PROPERTIES,r))}static constr(t){return t[e.CONSTRUCTOR]||t}static get(t,r){if(r===e.CONSTRUCTOR)return this.constr(t);const o=this.constr(t),i=this.collectConstructorChain(o);if(0===i.length){const t=Symbol.for(o.toString());return this.innerGet(t,r)}const s=i.map(t=>this.innerGet(this.Symbol(t),r)).filter(t=>void 0!==t);return 0!==s.length?this.mergeMetadataChain(s):void 0}static innerGet(t,r){if(this._metadata[t])return r?"string"==typeof r?i(this._metadata[t],r,this.splitter):this._metadata[t][r]:this._metadata[t]}static collectConstructorChain(t){const r=[];let e=t;for(;"function"==typeof e&&e!==Function;){r.push(e);const t=Object.getPrototypeOf(e);if(!t||t===Function||t===Object)break;e=t}return r.reverse()}static mergeMetadataChain(t){let r;for(const e of t)r=void 0!==r&&this.isPlainObject(r)&&this.isPlainObject(e)?this.mergePlainObjects(r,e):this.cloneMetadataValue(e);return r}static cloneMetadataValue(t){return Array.isArray(t)?[...t]:this.isPlainObject(t)?this.mergePlainObjects({},t):t}static mergePlainObjects(t,r){const e={...t};for(const t of Object.keys(r)){const o=r[t],i=e[t];this.isPlainObject(o)?e[t]=this.isPlainObject(i)?this.mergePlainObjects(i,o):this.mergePlainObjects({},o):e[t]=Array.isArray(o)?[...o]:o}return e}static isPlainObject(t){if(null===t||"object"!=typeof t||Array.isArray(t))return!1;const r=Object.getPrototypeOf(t);return r===Object.prototype||null===r}static innerSet(t,r,e){if(this._metadata[t]||(this._metadata[t]={}),"string"==typeof r)return s(this._metadata[t],r,e,this.splitter);this._metadata[t][r]=e}static set(t,r,o){if(r===e.CONSTRUCTOR)return void Object.defineProperty(t,e.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);this.innerSet(i,r,o),"string"!=typeof t&&a.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,r){const o=Symbol.for(e.LIBRARIES);if(this.innerGet(o,t))throw Error(`Library already ${t} registered with version ${r}`);this.innerSet(o,t,r)}static libraries(){const t=Symbol.for(e.LIBRARIES);return this.innerGet(t)||{}}static key(...t){return t.join(this.splitter)}}function n(r){return t}class c{static{this.decorators={}}static{this.flavourResolver=n}constructor(r=t){this.flavour=r}for(t){return this.key=t,this}decorate(r=!1,...e){if(!this.key)throw Error("key must be provided before decorators can be added");if(!(e&&e.length||r||this.flavour===t))throw Error("Must provide overrides or addons to override or extend decaf's decorators");return r?this.extras=new Set([...(this.extras||new Set).values(),...e]):this.decorators=new Set([...e]),this}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(r,e=t){function o(e,o,i){const s=c.flavourResolver(e),a=c.decorators[r];let n;const d=a[s]?a[s].extras:a[t].extras;n=a&&a[s]&&a[s].decorators&&a[s].decorators.size?a[s].decorators:a[t].decorators;const l=[...n?n.values():[]],h=[...(a[t]?.decorators||new Set).values()],u=l.reduce((t,r,e)=>("object"==typeof r&&"args"in r&&Array.isArray(r.args)&&(t[e]=r.args),t),{}),f=h.reduce((t,r,e)=>("object"==typeof r&&"args"in r&&Array.isArray(r.args)&&(t[e]=r.args),t),{}),y=[...l,...d?d.values():[]],p=l.length;return y.reduce((t,r,s)=>{switch(typeof r){case"object":{const t=r,a=p>s?s:0,n="args"in t&&Array.isArray(t.args)?t.args:u[a]??f[a]??f[0]??[];return t.decorator(...n)(e,o,i)}case"function":return r(e,o,i);default:throw Error("Unexpected decorator type: "+typeof r)}},{target:e,propertyKey:o,descriptor:i})}return Object.defineProperty(o,"name",{value:[e,r].join("_decorator_for_"),writable:!1}),o}apply(){if(!this.key)throw Error("No key provided for the decoration builder");const t=c.decorators[this.key]?.[this.flavour]?.decorators,r=this.decorators||t||new Set,e=void 0!==this.extras?this.extras:void 0;return c.register(this.key,this.flavour,r,e),this.decoratorFactory(this.key,this.flavour)}static register(t,r,e,o){if(!t)throw Error("No key provided for the decoration builder");if(!e)throw Error("No decorators provided for the decoration builder");if(!r)throw Error("No flavour provided for the decoration builder");c.decorators[t]||(c.decorators[t]={}),c.decorators[t][r]||(c.decorators[t][r]={}),c.decorators[t][r].decorators=e,void 0!==o&&(c.decorators[t][r].extras=o)}static setFlavourResolver(t){c.flavourResolver=t}static for(t){return(new c).for(t)}static flavouredAs(t){return new c(t)}}function d(t,r){return(e,o,i)=>{a.set(o?e.constructor:e,t,r)}}function l(t,...r){return(e,o,i)=>{const s=a.get(e,t)||[];return p(d(o?a.key(t,o):t,[...new Set([...s,...r])]))(e,o,i)}}function h(){return c.for(e.PROPERTIES).define({decorator:()=>(t,r)=>{const o=Reflect.getOwnMetadata(e.DESIGN_TYPE,t,r);return d(a.key(e.PROPERTIES,r),o)(t,r)},args:[]}).apply()}function u(){return(t,r,o)=>{if(!r)throw Error("The @param decorator can only be applied to methods");y()(t,r,Object.getOwnPropertyDescriptor(t,r));const i=a.params(t.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+""}`);d(a.key(e.METHODS,r,o.toString()),i[o])(t,r)}}function f(t,r){return(o,i,s)=>p(u(),d(a.key(e.METHODS,i,t),r))(o,i,s)}function y(){return(t,r,o)=>{const i=Reflect.getOwnMetadata(e.DESIGN_PARAMS,t,r),s=Reflect.getOwnMetadata(e.DESIGN_RETURN,t,r);return p(d(a.key(e.METHODS,r,e.DESIGN_PARAMS),i),d(a.key(e.METHODS,r,e.DESIGN_RETURN),s))(t,r,o)}}function p(...t){return(r,e,o)=>{for(const i of t)r instanceof Function&&!o?i(r):i(r,e,o)}}function g(t,r){return p(d(t,r),h())}function S(t,r){return p(d(t,r),y())}function b(t){return c.for(e.DESCRIPTION).define({decorator:t=>(r,o,i)=>d([e.DESCRIPTION,o?o.toString():e.CLASS].join(a.splitter),t)(r,o,i),args:[t]}).apply()}const E="##VERSION##";a.registerLibrary("@decaf-ts/decoration",E);export{c as Decoration,e as DecorationKeys,t as DefaultFlavour,o as DefaultMetadata,a as Metadata,r as ObjectKeySplitter,E as VERSION,p as apply,b as description,i as getValueBySplitter,d as metadata,l as metadataArray,y as method,S as methodMetadata,u as param,f as paramMetadata,h as prop,g as propMetadata,s as setValueBySplitter};
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]:[]},s="##VERSION##",n="##PACKAGE##";function a(t,r,o=e){const i=r.split(o);let s=t;for(const t of i){if(null==s||!Object.prototype.hasOwnProperty.call(s,t))return;s=s[t]}return s}function c(t,r,o,i=e){const s=r.split(i).filter(t=>t.length>0);if(0===s.length)return;let n=t;for(let t=0;t<s.length-1;t++){const e=s[t];void 0!==n[e]&&null!==n[e]&&"object"==typeof n[e]||(n[e]={}),n=n[e]}n[s[s.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 R.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 i=this.constr(e);let s;for(const[e,r]of Object.entries(o))if(Array.isArray(r)&&r.some(t=>this.constr(t)===i)){if(e===t){s=s||e;continue}return e}return s}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),s=this.collectConstructorChain(i);if(s.filter(t=>this.isDecorated(t)===o.PENDING).forEach(t=>{R.resolvePendingDecorators(t)}),0===s.length){const t=Symbol.for(i.toString());return this.innerGet(t,e)}const n=s.map(t=>this.innerGet(this.Symbol(t),e)).filter(t=>void 0!==t);return 0!==n.length?this.mergeMetadataChain(n):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],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 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 i="string"==typeof t?Symbol.for(t):this.Symbol(t);this.innerSet(i,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[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)}}function d(t,e){return(r,o,i)=>{let s=r;o&&(s="function"==typeof r?r:r.constructor||r),l.set(s,t,e)}}function u(t,...e){return(r,o,i)=>{const s=l.get(r,t)||[];return v(d(o?l.key(t,o):t,[...new Set([...s,...e])]))(r,o,i)}}function f(t){return e=>{const o=l.constr(e);if(((t,e)=>{const o=l.constr(t),i=l.innerGet(l.Symbol(t),r.FLAVOUR)||R.defaultFlavour,s=(l.innerGet(Symbol.for(r.FLAVOUR),i)||[]).filter(t=>l.constr(t)!==o);l.set(r.FLAVOUR,i,s);const n=new Set(l.innerGet(Symbol.for(r.FLAVOUR),e)||[]);n.add(t),l.set(r.FLAVOUR,e,[...n])})(e,t),l.set(o,r.FLAVOUR,t),t!==R.defaultFlavour)R.resolvePendingDecorators(o,t);else{let t;try{t=R.flavourResolver?R.flavourResolver(o):void 0}catch{t=void 0}t&&t!==R.defaultFlavour?R.resolvePendingDecorators(o,t):R.markPending(o)}return e}}function h(){return(t,e)=>{const o="function"==typeof t?t.prototype:t,i=Reflect.getOwnMetadata(r.DESIGN_TYPE,o,e);return d(l.key(r.PROPERTIES,e),i)(t,e)}}function p(){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 i=l.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+""}`);d(l.key(r.METHODS,e,o.toString()),i[o])(t,e)}}function y(t,e){return(o,i,s)=>v(p(),d(l.key(r.METHODS,i,t),e))(o,i,s)}function g(){return(t,e,o)=>{const i=Reflect.getOwnMetadata(r.DESIGN_PARAMS,t,e),s=Reflect.getOwnMetadata(r.DESIGN_RETURN,t,e);return v(d(l.key(r.METHODS,e,r.DESIGN_PARAMS),i),d(l.key(r.METHODS,e,r.DESIGN_RETURN),s))(t,e,o)}}function v(...t){return(e,r,o)=>{for(const i of t)e instanceof Function&&!o?i(e):i(e,r,o)}}function O(t,e){return v(d(t,e),h())}function S(t,e){return v(d(t,e),g())}function b(t){return R.for(r.DESCRIPTION).define({decorator:t=>(e,o,i)=>d(l.key(r.DESCRIPTION,o?o.toString():r.CLASS),t)(e,o,i),args:[t]}).apply()}function E(t){const e=l.constr("function"==typeof t?t:t?.constructor),o=l.innerGet(l.Symbol(e),r.FLAVOUR);if(o&&o!==R.defaultFlavour)return o;const i="function"==typeof l.registeredFlavour?l.registeredFlavour(e):void 0;return i&&i!==R.defaultFlavour?i:o??R.defaultFlavour}l.registerLibrary(n,s);class R{static{this.defaultFlavour=t}static{this.targetStates=new WeakMap}static{this.decorators={}}static{this.flavourResolver=E}constructor(t=R.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){try{const r=t.callback(e,t.argsOverride)(t.target,t.propertyKey,t.descriptor);void 0!==t.propertyKey&&r&&t.target&&Object.defineProperty(t.target,t.propertyKey,r)}catch(t){}}static markPending(t){if(!t)return;const e=this.getTargetState(t);e.resolved=!1,e.flavour||(e.flavour=R.defaultFlavour),l.set(t,r.DECORATION,o.PENDING)}static registerPendingDecorator(t,e,o,i,s,n){const a=`${t?.name||"anonymous"}:${(i||"class")+""}:${Date.now()}:${Math.random()}`,c=this.getTargetState(t),d={owner:t,target:e,propertyKey:i,descriptor:s,callback:o,argsOverride:n,key:a},u=()=>{const e=c.flavour||l.get(t,r.FLAVOUR)||R.defaultFlavour;return this.applyPendingEntry(d,e),d.lastAppliedPass=c.passId,e};if(c.directApply){const e=u();return c.flavour=e,l.set(t,r.DECORATION,!0),a}if(c.pending.push(d),c.applying&&u(),R.flavourResolver!==E)try{const e=R.flavourResolver(t);if(e&&e!==R.defaultFlavour)return this.resolvePendingDecorators(t,e),a}catch{}return a}static resolvePendingDecorators(t,e){const o="function"==typeof t?t:t?.constructor||t;if(!o)return;const i=this.getTargetState(o);if(!i.pending.length&&!e)return;const s=e||i.flavour||l.get(o,r.FLAVOUR)||R.defaultFlavour;if(i.applying)return;const n=i.appliedCount||0;if(!e&&i.lastAppliedFlavour===s&&n>=i.pending.length)return;const a=!(!e||e===R.defaultFlavour)||i.directApply;if(!i.pending.length)return;const c=(i.passId||0)+1;i.passId=c,i.applying=!0;try{if(a)for(;i.pending.length;){const t=i.pending.shift();t&&t.lastAppliedPass!==c&&(this.applyPendingEntry(t,s),t.lastAppliedPass=c)}else{let t=n;for(;t<i.pending.length;){const e=i.pending[t++];e&&e.lastAppliedPass!==c&&(this.applyPendingEntry(e,s),e.lastAppliedPass=c)}i.appliedCount=i.pending.length}}finally{i.applying=!1}i.flavour=s,i.resolved=!0,i.lastAppliedFlavour=s,a&&(i.pending.length=0,i.appliedCount=0,s!==R.defaultFlavour&&(i.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===R.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])}),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,s){const n=e??R.flavourResolver(o),a=R.decorators[t];let c;const l=a[n]?a[n].extras:a[R.defaultFlavour].extras;c=a&&a[n]&&a[n].decorators&&a[n].decorators.size?a[n].decorators:a[R.defaultFlavour].decorators;const d=[...c?c.values():[]],u=[...(a[R.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),{}),h=u.reduce((t,e,r)=>("object"==typeof e&&"args"in e&&Array.isArray(e.args)&&(t[r]=e.args),t),{}),p=[...d,...l?l.values():[]],y=d.length,g=r||{};let v=o,O=s;return p.forEach((t,e)=>{let r;if("object"==typeof t){const o=t,i=y>e?e:0,s=(y>e?g[i]:void 0)||("args"in o&&Array.isArray(o.args)?o.args:f[i]??h[i]??h[0]??[]);r=o.decorator(...s)}else{if("function"!=typeof t)throw Error("Unexpected decorator type: "+typeof t);r=t}const s=r(void 0===i?v:o,i,O);void 0===i?"function"==typeof s&&(v=s):void 0!==s&&(O=s)}),void 0===i?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=R.decorators[this.key]?.[this.flavour]?.decorators,o=this.decorators||e||new Set,i=void 0!==this.extras?this.extras:void 0;R.register(this.key,this.flavour,o,i);const s=(e,o,i)=>{const s=void 0!==o,n="function"==typeof e?e:e?.constructor||e;if(n&&s){l.innerGet(l.Symbol(n),r.FLAVOUR)||f(R.defaultFlavour)(n);const s=this.snapshotDecoratorArgs();return R.registerPendingDecorator(n,e,e=>this.decoratorFactory(t,e,s),o,i,s),R.resolvePendingDecorators(n),o&&!i&&h()(n,o),o&&i&&g()(n,o,i),i}const a=this.flavour===R.defaultFlavour?void 0:this.flavour;return this.decoratorFactory(t,a)(e,o,i)};try{Object.defineProperty(s,"name",{value:[this.flavour,t].join("_decorator_for_"),writable:!1})}catch(t){}return s}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");R.decorators[t]||(R.decorators[t]={}),R.decorators[t][e]||(R.decorators[t][e]={}),R.decorators[t][e].decorators=r,void 0!==o&&(R.decorators[t][e].extras=o)}static setResolver(t){R.flavourResolver=t}static for(t){return(new R).for(t)}static flavouredAs(t){return new R(t)}}export{R as Decoration,r as DecorationKeys,o as DecorationState,t as DefaultFlavour,i as DefaultMetadata,l as Metadata,e as ObjectKeySplitter,n as PACKAGE_NAME,s as VERSION,v as apply,b as description,a as getValueBySplitter,d as metadata,u as metadataArray,g as method,S as methodMetadata,p as param,y as paramMetadata,h as prop,O as propMetadata,c as setValueBySplitter,f as uses};
2
2
  //# sourceMappingURL=decoration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decoration.js","sources":["../src/constants.ts","../src/metadata/Metadata.ts","../src/decoration/Decoration.ts","../src/decorators.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null],"names":["DefaultFlavour","ObjectKeySplitter","DecorationKeys","DefaultMetadata","PROPERTIES","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","params","DESIGN_PARAMS","param","index","Error","String","DESIGN_RETURN","type","constr","CONSTRUCTOR","resolvedModel","constructors","collectConstructorChain","fallbackSymbol","innerGet","collectedValues","map","ctor","mergeMetadataChain","symbol","chain","Function","push","parent","getPrototypeOf","reverse","values","acc","isPlainObject","mergePlainObjects","cloneMetadataValue","Array","isArray","target","source","result","sourceValue","targetValue","proto","innerSet","set","defineProperty","enumerable","configurable","writable","registerLibrary","library","version","LIBRARIES","libraries","strs","defaultFlavourResolver","Decoration","decorators","flavourResolver","flavour","decorate","addon","extras","Set","define","find","d","extend","decoratorFactory","f","contextDecorator","propertyKey","descriptor","cache","size","baseDecoratorsList","defaultDecoratorsList","baseArgsByIndex","reduce","accum","entry","args","defaultArgsByIndex","toApply","baseLength","_","candidateIndex","decorator","apply","existingDecorators","decoratorsToRegister","extrasToRegister","register","setFlavourResolver","resolver","flavouredAs","metadata","metadataArray","data","existingData","designType","Reflect","getOwnMetadata","DESIGN_TYPE","method","getOwnPropertyDescriptor","paramTpes","paramMetadata","designParams","designReturn","propMetadata","methodMetadata","desc","original","VERSION"],"mappings":"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"}
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","targetStates","WeakMap","getTargetState","state","pending","directApply","applyPendingEntry","entry","descriptorResult","callback","argsOverride","error","markPending","registerPendingDecorator","Date","now","Math","random","applyImmediately","flavourToUse","lastAppliedPass","passId","applying","eagerFlavour","resolvePendingDecorators","resolvedFlavour","cursor","appliedCount","lastAppliedFlavour","shouldFinalize","currentPass","shift","decorate","addon","extras","snapshotDecoratorArgs","size","overrides","from","find","d","extend","decoratorFactory","f","contextDecorator","cache","baseDecoratorsList","defaultDecoratorsList","baseArgsByIndex","reduce","accum","defaultArgsByIndex","toApply","baseLength","argsOverrides","currentTarget","currentDescriptor","decoratorFn","candidateIndex","existingDecorators","decoratorsToRegister","extrasToRegister","register","wrapper","isMember","flavourHint","e","setResolver","resolver"],"mappings":"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"}
package/lib/constants.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DefaultMetadata = exports.DecorationKeys = exports.ObjectKeySplitter = exports.DefaultFlavour = void 0;
3
+ exports.DefaultMetadata = exports.DecorationState = exports.DecorationKeys = exports.ObjectKeySplitter = exports.DefaultFlavour = void 0;
4
4
  /**
5
5
  * @description Default flavour identifier for the decorator system.
6
6
  * @summary Defines the fallback flavour used when no specific value is provided, ensuring consistent decorator selection across the library.
@@ -43,6 +43,10 @@ var DecorationKeys;
43
43
  DecorationKeys["CONSTRUCTOR"] = "__original";
44
44
  /** @description Collected parameter metadata for configured decorators. */
45
45
  DecorationKeys["PARAMETERS"] = "parameters";
46
+ /** @description identifies the decoration flavour. */
47
+ DecorationKeys["FLAVOUR"] = "flavour";
48
+ /** @description identifies if the model has pending decoration. */
49
+ DecorationKeys["DECORATION"] = "decoration";
46
50
  /** @description Reflect metadata key for a property's design type. */
47
51
  DecorationKeys["DESIGN_TYPE"] = "design:type";
48
52
  /** @description Reflect metadata key for recorded constructor parameter types. */
@@ -50,6 +54,11 @@ var DecorationKeys;
50
54
  /** @description Reflect metadata key for a method's return type. */
51
55
  DecorationKeys["DESIGN_RETURN"] = "design:returntype";
52
56
  })(DecorationKeys || (exports.DecorationKeys = DecorationKeys = {}));
57
+ var DecorationState;
58
+ (function (DecorationState) {
59
+ DecorationState["PENDING"] = "pending";
60
+ DecorationState["ONGOING"] = "ongoing";
61
+ })(DecorationState || (exports.DecorationState = DecorationState = {}));
53
62
  /**
54
63
  * @description Default metadata instance.
55
64
  * @summary Provides the default metadata shape used when initialising new metadata entries for a model.
@@ -40,6 +40,10 @@ export declare enum DecorationKeys {
40
40
  CONSTRUCTOR = "__original",
41
41
  /** @description Collected parameter metadata for configured decorators. */
42
42
  PARAMETERS = "parameters",
43
+ /** @description identifies the decoration flavour. */
44
+ FLAVOUR = "flavour",
45
+ /** @description identifies if the model has pending decoration. */
46
+ DECORATION = "decoration",
43
47
  /** @description Reflect metadata key for a property's design type. */
44
48
  DESIGN_TYPE = "design:type",
45
49
  /** @description Reflect metadata key for recorded constructor parameter types. */
@@ -47,6 +51,10 @@ export declare enum DecorationKeys {
47
51
  /** @description Reflect metadata key for a method's return type. */
48
52
  DESIGN_RETURN = "design:returntype"
49
53
  }
54
+ export declare enum DecorationState {
55
+ PENDING = "pending",
56
+ ONGOING = "ongoing"
57
+ }
50
58
  /**
51
59
  * @description Default metadata instance.
52
60
  * @summary Provides the default metadata shape used when initialising new metadata entries for a model.
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACU,QAAA,cAAc,GAAG,OAAO,CAAC;AAEtC;;;;;;GAMG;AACU,QAAA,iBAAiB,GAAG,GAAG,CAAC;AAErC;;;;;;;GAOG;AACH,IAAY,cAuBX;AAvBD,WAAY,cAAc;IACxB,8EAA8E;IAC9E,yCAAuB,CAAA;IACvB,qFAAqF;IACrF,qCAA+B,CAAA;IAC/B,yEAAyE;IACzE,2CAAyB,CAAA;IACzB,uEAAuE;IACvE,qCAAmB,CAAA;IACnB,iFAAiF;IACjF,iCAAe,CAAA;IACf,wEAAwE;IACxE,6CAA2B,CAAA;IAC3B,mFAAmF;IACnF,4CAA0B,CAAA;IAC1B,2EAA2E;IAC3E,2CAAyB,CAAA;IACzB,sEAAsE;IACtE,6CAA2B,CAAA;IAC3B,kFAAkF;IAClF,qDAAmC,CAAA;IACnC,oEAAoE;IACpE,qDAAmC,CAAA;AACrC,CAAC,EAvBW,cAAc,8BAAd,cAAc,QAuBzB;AAED;;;;;;GAMG;AACU,QAAA,eAAe,GAAuB;IACjD,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,EAAE;CACC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACU,QAAA,cAAc,GAAG,OAAO,CAAC;AAEtC;;;;;;GAMG;AACU,QAAA,iBAAiB,GAAG,GAAG,CAAC;AAErC;;;;;;;GAOG;AACH,IAAY,cA2BX;AA3BD,WAAY,cAAc;IACxB,8EAA8E;IAC9E,yCAAuB,CAAA;IACvB,qFAAqF;IACrF,qCAA+B,CAAA;IAC/B,yEAAyE;IACzE,2CAAyB,CAAA;IACzB,uEAAuE;IACvE,qCAAmB,CAAA;IACnB,iFAAiF;IACjF,iCAAe,CAAA;IACf,wEAAwE;IACxE,6CAA2B,CAAA;IAC3B,mFAAmF;IACnF,4CAA0B,CAAA;IAC1B,2EAA2E;IAC3E,2CAAyB,CAAA;IACzB,sDAAsD;IACtD,qCAAmB,CAAA;IACnB,mEAAmE;IACnE,2CAAyB,CAAA;IACzB,sEAAsE;IACtE,6CAA2B,CAAA;IAC3B,kFAAkF;IAClF,qDAAmC,CAAA;IACnC,oEAAoE;IACpE,qDAAmC,CAAA;AACrC,CAAC,EA3BW,cAAc,8BAAd,cAAc,QA2BzB;AAED,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,sCAAmB,CAAA;IACnB,sCAAmB,CAAA;AACrB,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B;AAED;;;;;;GAMG;AACU,QAAA,eAAe,GAAuB;IACjD,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,EAAE;CACC,CAAC"}