@decaf-ts/decoration 0.8.4 → 0.8.6
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.
- package/README.md +1 -1
- package/dist/decoration.cjs +1 -1
- package/dist/decoration.cjs.map +1 -1
- package/dist/decoration.js +1 -1
- package/dist/decoration.js.map +1 -1
- package/lib/decoration/Decoration.cjs +36 -17
- package/lib/decoration/Decoration.d.ts +1 -0
- package/lib/decoration/Decoration.js.map +1 -1
- package/lib/decoration/flavourRegistry.cjs +29 -0
- package/lib/decoration/flavourRegistry.d.ts +9 -0
- package/lib/decoration/flavourRegistry.js.map +1 -0
- package/lib/decoration/index.cjs +2 -0
- package/lib/decoration/index.d.ts +2 -0
- package/lib/decoration/index.js.map +1 -1
- package/lib/decoration/metadataLink.cjs +26 -0
- package/lib/decoration/metadataLink.d.ts +8 -0
- package/lib/decoration/metadataLink.js.map +1 -0
- package/lib/decorators.cjs +17 -209
- package/lib/decorators.d.ts +1 -107
- package/lib/decorators.js.map +1 -1
- package/lib/esm/decoration/Decoration.d.ts +1 -0
- package/lib/esm/decoration/Decoration.js +33 -14
- package/lib/esm/decoration/Decoration.js.map +1 -1
- package/lib/esm/decoration/flavourRegistry.d.ts +9 -0
- package/lib/esm/decoration/flavourRegistry.js +26 -0
- package/lib/esm/decoration/flavourRegistry.js.map +1 -0
- package/lib/esm/decoration/index.d.ts +2 -0
- package/lib/esm/decoration/index.js +2 -0
- package/lib/esm/decoration/index.js.map +1 -1
- package/lib/esm/decoration/metadataLink.d.ts +8 -0
- package/lib/esm/decoration/metadataLink.js +20 -0
- package/lib/esm/decoration/metadataLink.js.map +1 -0
- package/lib/esm/decorators.d.ts +1 -107
- package/lib/esm/decorators.js +6 -199
- package/lib/esm/decorators.js.map +1 -1
- package/lib/esm/index.d.ts +1 -0
- package/lib/esm/index.js +1 -0
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/metadata/Metadata.js +3 -3
- package/lib/esm/metadata/Metadata.js.map +1 -1
- package/lib/esm/shared/core.d.ts +107 -0
- package/lib/esm/shared/core.js +184 -0
- package/lib/esm/shared/core.js.map +1 -0
- package/lib/esm/shared/index.d.ts +1 -0
- package/lib/esm/shared/index.js +2 -0
- package/lib/esm/shared/index.js.map +1 -0
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/index.cjs +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js.map +1 -1
- package/lib/metadata/Metadata.cjs +3 -3
- package/lib/metadata/Metadata.js.map +1 -1
- package/lib/shared/core.cjs +195 -0
- package/lib/shared/core.d.ts +107 -0
- package/lib/shared/core.js.map +1 -0
- package/lib/shared/index.cjs +18 -0
- package/lib/shared/index.d.ts +1 -0
- package/lib/shared/index.js.map +1 -0
- package/lib/version.cjs +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
package/dist/decoration.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
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##";function c(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 l(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 d{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 m.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 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=>{m.resolvePendingDecorators(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?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],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 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 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&&d.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 f(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=d.key(t.DecorationKeys.PROPERTIES,i.toString()),n=d.get(s,a);void 0===r&&void 0!==n||d.set(s,a,r)}d.set(s,e,r)}}function u(e){return r=>{const o=d.constr(r);if(((e,r)=>{const o=d.constr(e),i=d.innerGet(d.Symbol(e),t.DecorationKeys.FLAVOUR)||m.defaultFlavour,a=(d.innerGet(Symbol.for(t.DecorationKeys.FLAVOUR),i)||[]).filter(t=>d.constr(t)!==o);d.set(t.DecorationKeys.FLAVOUR,i,a);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!==m.defaultFlavour)m.resolvePendingDecorators(o,e);else{let t;try{t=m.flavourResolver?m.flavourResolver(o):void 0}catch{t=void 0}t&&t!==m.defaultFlavour?m.resolvePendingDecorators(o,t):m.markPending(o)}return r}}function p(){return(e,r)=>{const o="function"==typeof e?e.prototype:e,i=Reflect.getOwnMetadata(t.DecorationKeys.DESIGN_TYPE,o,r);return f(d.key(t.DecorationKeys.PROPERTIES,r),i)(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 i=d.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+""}`);f(d.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 g(f(d.key(t.DecorationKeys.METHODS,r,t.DecorationKeys.DESIGN_PARAMS),i),f(d.key(t.DecorationKeys.METHODS,r,t.DecorationKeys.DESIGN_RETURN),a))(e,r,o)}}function g(...t){return(e,r,o)=>{for(const i of t)void 0!==r?i(e,r,o):i(e)}}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!==m.defaultFlavour)return o;const i="function"==typeof d.registeredFlavour?d.registeredFlavour(r):void 0;return i&&i!==m.defaultFlavour?i:o??m.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(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(D(n)&&D(c)?S(n,c,[...r,i],o):n!==c&&o.push({path:[...r,i],previousValue:O(n),existed:!0})):D(c)?void S(void 0,c,[...r,i],o):void o.push({path:[...r,i],previousValue:void 0,existed:!1});o.push({path:[...r,i],previousValue:O(n),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 E(t,e){let r=t;for(const t of e){if(!r||!D(r[t]))return;r=r[t]}return r}d.registerLibrary(n,s);class m{static{this.defaultFlavour=e}static{this.targetStates=new WeakMap}static{this.decorators={}}static{this.flavourResolver=v}constructor(t=m.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),i=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 a=t.argsFactory?t.argsFactory():b(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&&p()(t.owner??t.target,t.propertyKey),void 0===t.metadataDiff){const e=O(r[o]);t.metadataDiff=S(i,e)}}catch(t){}}static markPending(e){if(!e)return;const r=this.getTargetState(e);r.resolved=!1,r.flavour||(r.flavour=m.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,i,a,s,n){const c=`${e?.name||"anonymous"}:${(i||"class")+""}:${Date.now()}:${Math.random()}`,l=this.getTargetState(e),f=b(s),u={owner:e,target:r,propertyKey:i,descriptor:a,callback:o,argsOverride:f,argsFactory:()=>b(f),key:c,definitionKey:n},p=()=>{const r=l.flavour||d.get(e,t.DecorationKeys.FLAVOUR)||m.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(m.flavourResolver!==v)try{const t=m.flavourResolver(e);if(t&&t!==m.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||d.get(o,t.DecorationKeys.FLAVOUR)||m.defaultFlavour;if(i.applying)return;const s=i.appliedCount||0;if(!r&&i.lastAppliedFlavour===a&&s>=i.pending.length)return;const n=!(!r||r===m.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&&R(t.owner,t.metadataDiff),P(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!==m.defaultFlavour&&(i.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===m.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,i,a){const s=e??m.flavourResolver(o),n=m.decorators[t];let c;const l=n[s]?n[s].extras:n[m.defaultFlavour].extras;c=n&&n[s]&&n[s].decorators&&n[s].decorators.size?n[s].decorators:n[m.defaultFlavour].decorators;const d=[...c?c.values():[]],f=[...(n[m.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=a;return y.forEach((t,e)=>{let r;if("object"==typeof t){const o=t,i=h>e?e:0,a=((h>e?g[i]:void 0)||("args"in o&&Array.isArray(o.args)?o.args:u[i]??p[i]??p[0]??[])).map(t=>"object"==typeof t&&null!==t?O(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?v:o,i,D);void 0===i?"function"==typeof a&&(v=a):void 0!==a&&(D=a)}),void 0===i?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=m.decorators[this.key]?.[this.flavour]?.decorators,o=this.decorators||r||new Set,i=void 0!==this.extras?this.extras:void 0;m.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){d.innerGet(d.Symbol(s),t.DecorationKeys.FLAVOUR)||u(m.defaultFlavour)(s);const a=this.snapshotDecoratorArgs();return m.registerPendingDecorator(s,r,t=>this.decoratorFactory(e,t,a),o,i,a,e),m.resolvePendingDecorators(s),o&&!i&&p()(s,o),o&&i&&h()(s,o,i),i}const n=this.flavour===m.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");m.decorators[t]||(m.decorators[t]={}),m.decorators[t][e]||(m.decorators[t][e]={}),m.decorators[t][e].decorators=r,void 0!==o&&(m.decorators[t][e].extras=o)}static setResolver(t){m.flavourResolver=t}static shouldOverrideEntry(t,e){if(!t.definitionKey)return!1;if(e===m.defaultFlavour)return!1;const r=m.decorators[t.definitionKey];if(!r)return!1;const o=r[e];if(!o)return!1;const i=r[m.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 m).for(t)}static flavouredAs(t){return new m(t)}}function R(e,r){if(!r||!r.length)return;const o=d._metadata,i=d.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];D(i[r])||(i[r]={}),i=i[r]}const s=e[e.length-1];o?i[s]=O(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:E(t,i);if(!s||!D(s))break;const n=s[a];if(!D(n)||Reflect.ownKeys(n).length>0)break;delete s[a]}})(a,e.slice(0,-1)))})}function P(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=m,t.DefaultFlavour=e,t.DefaultMetadata=a,t.Metadata=d,t.ObjectKeySplitter=r,t.PACKAGE_NAME=n,t.VERSION=s,t.apply=g,t.description=e=>m.for(t.DecorationKeys.DESCRIPTION).define({decorator:e=>(r,o,i)=>f(d.key(t.DecorationKeys.DESCRIPTION,o?o.toString():t.DecorationKeys.CLASS),e)(r,o,i),args:[e]}).apply(),t.getValueBySplitter=c,t.metadata=f,t.metadataArray=(t,...e)=>(r,o,i)=>{const a=d.get(r,t)||[];return g(f(o?d.key(t,o):t,[...new Set([...a,...e])]))(r,o,i)},t.method=h,t.methodMetadata=(t,e)=>g(f(t,e),h()),t.param=y,t.paramMetadata=(e,r)=>(o,i,a)=>g(y(),f(d.key(t.DecorationKeys.METHODS,i,e),r))(o,i,a),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
|
package/dist/decoration.cjs.map
CHANGED
|
@@ -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","_propertiesIndex","baseKey","REFLECT","mirror","constructor","Symbol","for","toString","name","join","properties","model","resolvedModel","constr","symbol","indexed","size","meta","get","methods","METHODS","description","prop","DESCRIPTION","CLASS","flavourOf","Decoration","flavouredAs","flavour","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","target","source","result","sourceValue","targetValue","proto","innerSet","set","defineProperty","enumerable","configurable","writable","propPrefix","startsWith","slice","Set","add","registerLibrary","library","version","LIBRARIES","libraries","strs","metadata","descriptor","targetModel","metadataTarget","designType","Reflect","getOwnMetadata","DESIGN_TYPE","propKey","existing","uses","object","canonical","flav","defaultFlavour","filtered","o","manageFlavourRMetadata","resolved","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","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","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,cC0BtB,SAAUC,EACdC,EACAC,EACAC,EAAmBX,GAEnB,MAAMY,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,EAAWX,GAEX,MAAMY,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,SAAGX,CAAkB,QAK7B4B,KAAAG,QAAU9B,EAAcA,eAAC+B,OAAQ,QAKjCJ,KAAMK,QAAY,CAAK,CAE9B,WAAAC,GAAwB,CAExB,aAAOC,CAAU1B,GACf,OAAO0B,OAAOC,IAAI,CAAC3B,EAAI4B,WAAY5B,EAAI6B,MAAMC,KAAK,OACnD,CAWD,iBAAOC,CAAWC,GAChB,MAAMC,EAAgBd,KAAKe,OAAOF,GAC5BG,EAAShB,KAAKO,OAAOO,GACrBG,EAAUjB,KAAKE,iBAAiBc,GACtC,GAAIC,GAAWA,EAAQC,KAAM,MAAO,IAAID,GACxC,MAAME,EAAOnB,KAAKoB,IAAIN,GACtB,OAAKK,GAASA,EAAKP,WACZxB,OAAOJ,KAAKmC,EAAKP,iBADxB,CAED,CAQD,cAAOS,CAAQR,GACb,MAAMM,EAAOnB,KAAKoB,IAAIP,EAAOxC,EAAAA,eAAeiD,SAC5C,GAAKH,EACL,OAAO/B,OAAOJ,KAAKmC,EACpB,CAUD,kBAAOI,CACLV,EACAW,GAEA,OAAOxB,KAAKoB,IACVP,EACAb,KAAKb,IACHd,EAAAA,eAAeoD,YACdD,GAAcnD,iBAAeqD,OAGnC,CAED,gBAAOC,CAAUd,GACf,OAAOe,EAA4B,gBAAEf,EACtC,CAED,kBAAOgB,CAAYC,GACjB,OAAO9B,KAAK+B,SAASxB,OAAOC,IAAInC,EAAcA,eAAC2D,SAAUF,IAAY,EACtE,CAED,wBAAOG,CAAkBpB,GACvB,MAAMqB,EAAWlC,KAAK+B,SAASxB,OAAOC,IAAInC,EAAcA,eAAC2D,UACzD,IAAKE,EAAU,OACf,MAAMnB,EAASf,KAAKe,OAAOF,GAC3B,IAAIsB,EACJ,IAAK,MAAOL,EAASM,KAAiBhD,OAAOiD,QAC3CH,GAEA,GAAII,MAAMC,QAAQH,IACCA,EAAaI,KAC3BC,GAAezC,KAAKe,OAAO0B,KAAgB1B,GAEhC,CACZ,GAAIe,IAAY3D,EAAgB,CAC9BgE,EAAWA,GAAYL,EACvB,QACD,CACD,OAAOA,CACR,CAGL,OAAOK,CACR,CAUD,aAAOO,CAAU7B,EAAuBW,GACtC,OAAOxB,KAAKoB,IACVP,EACAb,KAAKb,IAAId,iBAAeiD,QAASE,EAAMnD,iBAAesE,eAEzD,CAWD,YAAOC,CACL/B,EACAW,EACAqB,GAEA,MAAMH,EAAS1C,KAAK0C,OAAO7B,EAAOW,GAClC,GAAKkB,EAAL,CACA,GAAIG,EAAQH,EAAO9C,OAAS,EAC1B,MAAUkD,MACR,mBAAmBD,sBAAiCrB,EAAPuB,MAEjD,OAAOL,EAAOG,EALe,CAM9B,CAUD,aAAO,CAAUhC,EAAuBW,GACtC,OAAOxB,KAAKoB,IACVP,EACAb,KAAKb,IAAId,iBAAeiD,QAASE,EAAMnD,iBAAe2E,eAEzD,CASD,WAAOC,CAAKpC,EAAoBW,GAC9B,OAAOxB,KAAKoB,IAAIP,EAAOb,KAAKb,IAAId,iBAAeI,WAAY+C,GAC5D,CASD,aAAOT,CAAUF,GACf,OAAOA,EAAMxC,EAAAA,eAAe6E,cAAsCrC,CACnE,CAgCD,UAAOO,CAAIP,EAAoB1B,GAC7B,GAAIA,IAAQd,EAAAA,eAAe6E,YAAa,OAAOlD,KAAKe,OAAOF,GAC3D,MAAMC,EAAgBd,KAAKe,OAAOF,GAC5BuB,EAAepC,KAAKmD,wBAAwBrC,GAMlD,GALAsB,EACG1C,OAAQ0D,GAAMpD,KAAKqD,YAAYD,KAAO9E,EAAeA,gBAACgF,SACtDC,QAASjD,IACRsB,EAAqC,yBAAEtB,KAEf,IAAxB8B,EAAaxC,OAAc,CAC7B,MAAM4D,EAAiBjD,OAAOC,IAAIM,EAAcL,YAChD,OAAOT,KAAK+B,SAASyB,EAAgBrE,EACtC,CACD,MAAMsE,EAAkBrB,EACrBsB,IAAKC,GAAS3D,KAAK+B,SAAS/B,KAAKO,OAAOoD,GAAOxE,IAC/CO,OAAQD,QAAoBK,IAAVL,GAErB,OAA+B,IAA3BgE,EAAgB7D,OAEbI,KAAK4D,mBAAmBH,QAF/B,CAGD,CAEO,kBAAOJ,CAAYxC,GACzB,MAAMC,EAAgBd,KAAKe,OAAOF,GAKlC,OAJab,KAAK+B,SAChB/B,KAAKO,OAAOO,GACZzC,iBAAewF,cAEF,CAChB,CASO,eAAO9B,CAASf,EAAgB7B,GACtC,GAAKa,KAAKC,UAAUe,GACpB,OAAK7B,EACc,iBAARA,EACFP,EAAmBoB,KAAKC,UAAUe,GAAS7B,EAAKa,KAAKjB,UACvDiB,KAAKC,UAAUe,GAAQ7B,GAHba,KAAKC,UAAUe,EAIjC,CAQO,8BAAOmC,CAAwBtC,GACrC,MAAMiD,EAAuB,GAC7B,IAAI5E,EAAe2B,EAEnB,KAA0B,mBAAZ3B,GAA0BA,IAAY6E,UAAU,CAC5DD,EAAME,KAAK9E,GACX,MAAM+E,EAAS7E,OAAO8E,eAAehF,GACrC,IAAK+E,GAAUA,IAAWF,UAAYE,IAAW7E,OAAQ,MACzDF,EAAU+E,CACX,CAED,OAAOH,EAAMK,SACd,CAQO,yBAAOP,CAAmBQ,GAChC,IAAIC,EAEJ,IAAK,MAAM5E,KAAS2E,EAOhBC,OANUvE,IAARuE,GAKArE,KAAKsE,cAAcD,IAAQrE,KAAKsE,cAAc7E,GAC1CO,KAAKuE,kBACTF,EACA5E,GAPIO,KAAKwE,mBAAmB/E,GAelC,OAAO4E,CACR,CAQO,yBAAOG,CAAmB/E,GAChC,OAAI6C,MAAMC,QAAQ9C,GAAe,IAAIA,GACjCO,KAAKsE,cAAc7E,GACdO,KAAKuE,kBAAkB,CAAE,EAAE9E,GAC7BA,CACR,CASO,wBAAO8E,CACbE,EACAC,GAEA,MAAMC,EAA8B,IAAKF,GAEzC,IAAK,MAAMtF,KAAOC,OAAOJ,KAAK0F,GAAS,CACrC,MAAME,EAAcF,EAAOvF,GACrB0F,EAAcF,EAAOxF,GAEvBa,KAAKsE,cAAcM,GACrBD,EAAOxF,GAAOa,KAAKsE,cAAcO,GAC7B7E,KAAKuE,kBACHM,EACAD,GAEF5E,KAAKuE,kBAAkB,GAAIK,GAK/BD,EAAOxF,GADLmD,MAAMC,QAAQqC,GACF,IAAIA,GAINA,CACf,CAED,OAAOD,CACR,CAQO,oBAAOL,CAAc7E,GAC3B,GAAc,OAAVA,GAAmC,iBAAVA,GAAsB6C,MAAMC,QAAQ9C,GAC/D,OAAO,EACT,MAAMqF,EAAQ1F,OAAO8E,eAAezE,GACpC,OAAOqF,IAAU1F,OAAOC,WAAuB,OAAVyF,CACtC,CAUO,eAAOC,CAAS/D,EAAgB7B,EAAsBM,GAE5D,GADKO,KAAKC,UAAUe,KAAShB,KAAKC,UAAUe,GAAU,IACnC,iBAAR7B,EACT,OAAOK,EACLQ,KAAKC,UAAUe,GACf7B,EACAM,EACAO,KAAKjB,UAETiB,KAAKC,UAAUe,GAAQ7B,GAAOM,CAC/B,CAWD,UAAOuF,CAAInE,EAA6B1B,EAAaM,GACnD,GAAIN,IAAQd,EAAcA,eAAC6E,YAOzB,YANA9D,OAAO6F,eAAepE,EAAOxC,EAAAA,eAAe6E,YAAa,CACvDgC,YAAY,EACZC,cAAc,EACdC,UAAU,EACV3F,MAAOA,IAIU,iBAAVoB,IAAoBA,EAAQb,KAAKe,OAAOF,IAAUA,GAC7D,MAAMG,EACa,iBAAVH,EAAqBN,OAAOC,IAAIK,GAASb,KAAKO,OAAOM,GAC9D,GAAmB,iBAAR1B,EAAkB,CAC3B,MAAMkG,EAAa,GAAGhH,EAAcA,eAACI,aAAauB,KAAKjB,WACvD,GAAII,EAAImG,WAAWD,GAAa,CAC9B,MAAM7D,EAAOrC,EAAIoG,MAAMF,EAAWzF,QAClC,GAAI4B,EAAK5B,OAAQ,CACf,MAAMoF,EAAMhF,KAAKE,iBAAiBc,IAAW,IAAIwE,IACjDR,EAAIS,IAAIjE,GACRxB,KAAKE,iBAAiBc,GAAUgE,CACjC,CACF,MAAM,GACL7F,IAAQd,EAAAA,eAAeI,YACvBuB,KAAKsE,cAAc7E,GACnB,CACA,MAAMuF,EAAMhF,KAAKE,iBAAiBc,IAAW,IAAIwE,IACjDpG,OAAOJ,KAAKS,GAA8B8D,QAAS/B,IACjDwD,EAAIS,IAAIjE,KAENwD,EAAI9D,OAAMlB,KAAKE,iBAAiBc,GAAUgE,EAC/C,CACF,CACDhF,KAAK+E,SAAS/D,EAAQ7B,EAAKM,GAER,iBAAVoB,GACPd,EAASM,SACRjB,OAAOC,UAAUC,eAAeC,KAAKsB,EAAOb,KAAKG,UAElDf,OAAO6F,eAAepE,EAAOb,KAAKG,QAAS,CACzC+E,YAAY,EACZC,cAAc,EACdC,UAAU,EACV3F,MAAOO,KAAKC,UAAUe,IAG3B,CAUD,sBAAO0E,CAAgBC,EAAiBC,GACtC,MAAM5E,EAAST,OAAOC,IAAInC,EAAcA,eAACwH,WAEzC,GADY7F,KAAK+B,SAASf,EAAQ2E,GAEhC,MAAU7C,MACR,mBAAmB6C,6BAAmCC,KAE1D5F,KAAK+E,SAAS/D,EAAQ2E,EAASC,EAChC,CAOD,gBAAOE,GACL,MAAM9E,EAAST,OAAOC,IAAInC,EAAcA,eAACwH,WACzC,OAAO7F,KAAK+B,SAASf,IAAW,CAAA,CACjC,CAQD,UAAO7B,IAAO4G,GACZ,OAAOA,EAAKpF,KAAKX,KAAKjB,SACvB,ECrmBa,SAAAiH,EAAS7G,EAAaM,GACpC,MAAO,CACLoB,EACAW,EAEAyE,KAEA,IAAIC,EAAcrF,EAClB,GAAIW,IACF0E,EACmB,mBAAVrF,EACHA,EACCA,EAAgCP,aAAeO,OAC5B,IAAfoF,GAA4B,CACrC,MAAME,EACa,mBAAVtF,EAAwBA,EAAcxB,UAAYwB,EACrDuF,EAAaC,QAAQC,eACzBjI,EAAcA,eAACkI,YACfJ,EACA3E,GAEIgF,EAAUzG,EAASZ,IACvBd,EAAAA,eAAeI,WACf+C,EAAKf,YAEDgG,EAAW1G,EAASqB,IAAI8E,EAAaM,QAEnB,IAAfJ,QACa,IAAbK,GAEP1G,EAASiF,IAAIkB,EAAaM,EAASJ,EAEtC,CAEHrG,EAASiF,IAAIkB,EAAa/G,EAAKM,EACjC,CACF,CAmCM,SAAUiH,EAAK5E,GACnB,OAAQ6E,IACN,MAAM5F,EAAShB,EAASgB,OAAO4F,GAM/B,GA5BJ,EAAgCA,EAAgB7E,KAC9C,MAAM8E,EAAY7G,EAASgB,OAAO4F,GAC5BE,EACJ9G,EAAmB,SACjBA,EAASQ,OAAOoG,GAChBtI,EAAAA,eAAe2D,UACZJ,EAAWkF,eAGZC,GADJhH,EAAmB,SAAEQ,OAAOC,IAAInC,EAAAA,eAAe2D,SAAU6E,IAAS,IAC/CnH,OAAQsH,GACpBjH,EAASgB,OAAOiG,KAAcJ,GAEvC7G,EAASiF,IAAI3G,EAAcA,eAAC2D,QAAS6E,EAAME,GAC3C,MAAM7H,EAAU,IAAIsG,IAClBzF,EAAmB,SAAEQ,OAAOC,IAAInC,EAAcA,eAAC2D,SAAUF,IAAY,IAEvE5C,EAAQuG,IAAIkB,GACZ5G,EAASiF,IAAI3G,iBAAe2D,QAASF,EAAS,IAAI5C,GACpD,EAMI+H,CAAuBN,EAAQ7E,GAE/B/B,EAASiF,IAAIjE,EAAQ1C,EAAcA,eAAC2D,QAASF,GAEzCA,IAAYF,EAAWkF,eACzBlF,EAAqC,yBAAEb,EAAQe,OAC1C,CACL,IAAIoF,EACJ,IACEA,EAAWtF,EAA4B,gBACnCA,EAA4B,gBAAEb,QAC9BjB,CACL,CAAC,MACAoH,OAAWpH,CACZ,CACGoH,GAAYA,IAAatF,EAAWkF,eACtClF,EAAqC,yBAAEb,EAAQmG,GAE/CtF,EAAwB,YAAEb,EAE7B,CACD,OAAO4F,EAEX,UASgBnF,IAEd,MAAO,CAAmBX,EAAeW,KACvC,MAAM2E,EACa,mBAAVtF,EAAwBA,EAAcxB,UAAYwB,EACrDuF,EAAaC,QAAQC,eACzBjI,EAAcA,eAACkI,YACfJ,EACA3E,GAEF,OAAOwE,EAASjG,EAASZ,IAAId,iBAAeI,WAAY+C,GAAO4E,EAAxDJ,CACLnF,EACAW,EAEJ,CACF,UAoBgBoB,IACd,MAAO,CAAe/B,EAAeW,EAAYqB,KAC/C,IAAKrB,EACH,MAAUsB,MAAM,uDAClBqE,IAAStG,EAAOW,EAAMpC,OAAOgI,yBAAyBvG,EAAOW,IAC7D,MAAM6F,EAAYtH,EAAS2C,OAAO7B,EAAMP,YAAoBkB,GAC5D,IAAK6F,EACH,MAAUvE,MAAM,+BAAsCtB,GACxD,GAAKqB,GAAoBwE,EAAUzH,OACjC,MAAUkD,MACR,mBAAmBD,sBAAiCrB,EAAPuB,MAEjDiD,EACEjG,EAASZ,IACPd,EAAcA,eAACiD,QACfE,EACCqB,EAAiBpC,YAEpB4G,EAAUxE,GANZmD,CAOEnF,EAAOW,EACX,CACF,UAsCgB2F,IACd,MAAO,CAAgBtI,EAAU2C,EAAYyE,KAC3C,MAAMqB,EAAejB,QAAQC,eAC3BjI,EAAcA,eAACsE,cACf9D,EACA2C,GAEI+F,EAAelB,QAAQC,eAC3BjI,EAAcA,eAAC2E,cACfnE,EACA2C,GAEF,OAAOgG,EACLxB,EACEjG,EAASZ,IACPd,EAAcA,eAACiD,QACfE,EACAnD,EAAAA,eAAesE,eAEjB2E,GAEFtB,EACEjG,EAASZ,IACPd,EAAcA,eAACiD,QACfE,EACAnD,EAAAA,eAAe2E,eAEjBuE,GAfGC,CAiBL3I,EAAK2C,EAAMyE,EACf,CACF,CAqBgB,SAAAuB,KACXC,GAIH,MAAO,CACLhD,EACAiD,EACAzB,KAEA,IAAK,MAAM0B,KAAaF,OACK,IAAhBC,EAYVC,EACClD,EACAiD,EACAzB,GAdC0B,EAA6BlD,GAkBtC,CCpRA,SAASmD,EAAgBnD,GACvB,MAAMoD,EAAQ9H,EAASgB,OACH,mBAAX0D,EAAwBA,EAAUA,GAAgBnE,aAErDa,EAAOpB,EAAmB,SAC9BA,EAASQ,OAAOsH,GAChBxJ,iBAAe2D,SAEjB,GAAIb,GAAQA,IAASS,EAAWkF,eAAgB,OAAO3F,EACvD,MAAMsB,EACqC,mBAAlC1C,EAA4B,kBAC/BA,EAASkC,kBAAkB4F,QAC3B/H,EACN,OAAI2C,GAAcA,IAAeb,EAAWkF,eAAuBrE,EAC5DtB,GAAQS,EAAWkF,cAC5B,CAsDA,SAASxC,EAAc7E,GACrB,OACY,OAAVA,GACiB,iBAAVA,IACN6C,MAAMC,QAAQ9C,IACdA,EAA8Ba,cAAgBlB,MAEnD,CAEA,SAASoF,EAAsB/E,GAC7B,GAAc,OAAVA,GAAmC,iBAAVA,EAAoB,OAAOA,EACxD,GAAI6C,MAAMC,QAAQ9C,GAChB,OAAOA,EAAMiE,IAAKoE,GAAStD,EAAmBsD,IAEhD,GAAIrI,aAAiBsI,KACnB,OAAO,IAAIA,KAAKtI,EAAMuI,WAExB,GAAIvI,aAAiB+F,IACnB,OAAO,IAAIA,IACTlD,MAAM2F,KAAKxI,GAAOiE,IAAKoE,GAAStD,EAAmBsD,KAGvD,GAAIrI,aAAiByI,IACnB,OAAO,IAAIA,IACT5F,MAAM2F,KAAKxI,EAAM4C,WAAWqB,IAAI,EAAE/D,EAAGwI,KAAO,CAACxI,EAAG6E,EAAmB2D,MAGvE,GAAK1I,EAA8Ba,cAAgBlB,OACjD,OAAOK,EAET,MAAM2I,EAAsC,CAAA,EAM5C,OALA/B,QAAQgC,QAAQ5I,GAAuC8D,QAASpE,IAC9DiJ,EAAMjJ,GAAcqF,EACjB/E,EAAuCN,MAGrCiJ,CACT,CAEA,SAASE,EACPC,EACAC,EACAC,EAAgC,GAChC9D,EAA8B,IAyD9B,OAvDa,IAAIa,IAAiB,IAC5B+C,EAASlC,QAAQgC,QAAQE,GAAU,MACnCC,EAAQnC,QAAQgC,QAAQG,GAAS,KAElCjF,QAASpE,IACZ,MAAMuJ,IAAaH,GACfnJ,OAAOC,UAAUC,eAAeC,KAAKgJ,EAAQpJ,GAE3CwJ,IAAaH,GACfpJ,OAAOC,UAAUC,eAAeC,KAAKiJ,EAAOrJ,GAE1CyJ,EAAYF,EAAaH,IAASpJ,QAAcW,EAChD+I,EAAYF,EAAaH,IAAQrJ,QAAcW,EACrD,GAAK6I,EAQL,OAAKD,OAiBDpE,EAAcsE,IAActE,EAAcuE,GAC5CP,EACEM,EACAC,EACA,IAAIJ,EAAUtJ,GACdwF,GAIAiE,IAAcC,GAChBlE,EAAOX,KAAK,CACVlF,KAAM,IAAI2J,EAAUtJ,GACpB2J,cAAetE,EAAmBoE,GAClCG,SAAS,KA7BPzE,EAAcuE,QAChBP,OACExI,EACA+I,EACA,IAAIJ,EAAUtJ,GACdwF,QAIJA,EAAOX,KAAK,CACVlF,KAAM,IAAI2J,EAAUtJ,GACpB2J,mBAAehJ,EACfiJ,SAAS,IApBXpE,EAAOX,KAAK,CACVlF,KAAM,IAAI2J,EAAUtJ,GACpB2J,cAAetE,EAAmBoE,GAClCG,SAAS,MAsCRpE,CACT,CAEA,SAASqE,EACPC,GAEA,IAAKA,EAAW,OAChB,MAAMb,EAA+B,CAAA,EAQrC,OAPAhJ,OAAOJ,KAAKiK,GAAW1F,QAASpE,IAC9BiJ,EAAMjJ,GAAc8J,EAAU9J,GAAYuE,IAAKwF,GAC9B,iBAARA,GAA4B,OAARA,EACvB1E,EAAmB0E,GACnBA,KAGDd,CACT,CAEA,SAASe,EACPC,EACAtK,GAEA,IAAII,EAAoDkK,EACxD,IAAK,MAAMC,KAAWvK,EAAM,CAC1B,IAAKI,IAAYoF,EAAcpF,EAAQmK,IACrC,OAEFnK,EAAUA,EAAQmK,EACnB,CACD,OAAOnK,CACT,CF0ZAa,EAAS2F,gBAAgB/G,EAAcD,SE9T1BkD,SACJ5B,KAAc8G,eAAG3I,CAAe,QAExB6B,KAAAsJ,aACb,IAAIC,OAAU,QAMDvJ,KAAUyH,WASrB,CAAA,CAAG,QAMQzH,KAAe4H,gBAAoBA,CAAgB,CAiBlE,WAAAtH,CAAoBwB,EAAkBF,EAAWkF,gBAA7B9G,KAAO8B,QAAPA,CAA+C,CAW3D,qBAAO0H,CAAe3B,GAC5B,IAAKA,EACH,MAAU/E,MAAM,uDAElB,IAAI2G,EAAQzJ,KAAKsJ,aAAalI,IAAIyG,GAKlC,OAJK4B,IACHA,EAAQ,CAAEC,QAAS,GAAI5H,aAAShC,EAAW6J,aAAa,GACxD3J,KAAKsJ,aAAatE,IAAI6C,EAAO4B,IAExBA,CACR,CAEO,wBAAOG,CACbC,EACA/H,GAEA,MAAMgI,EAAiB/J,EAA4B,UAI7CgK,EAAiBhK,EAASQ,OAAOsJ,EAAMhC,OACvCmC,OAC0B,IAAvBH,EAAMI,aACTzF,EAAmBsF,EAAcC,SACjCjK,EACN,IACE,QAC+B,IAAtB+J,EAAMnC,kBACuB,IAA7BmC,EAAMK,oBACbL,EAAMpF,OACN,CACA,MAAM0F,EAAoB/K,OAAOgI,yBAC/ByC,EAAMpF,OACNoF,EAAMnC,aAERmC,EAAMO,iBAAmBhL,OAAOC,UAAUC,eAAeC,KACvDsK,EAAMpF,OACNoF,EAAMnC,aAERmC,EAAMK,mBAAqBC,EACvB,IAAKA,QACLrK,CACL,CACD,MAAMuK,EAAmBR,EAAMS,YAC3BT,EAAMS,cACNtB,EAAmBa,EAAMU,cACvBC,EAAmBX,EAAMY,SAAS3I,EAASuI,EAAxBR,CACvBA,EAAMpF,OACNoF,EAAMnC,YACNmC,EAAM5D,YAqBR,QAjB+B,IAAtB4D,EAAMnC,aACb8C,GACAX,EAAMpF,QAENrF,OAAO6F,eACL4E,EAAMpF,OACNoF,EAAMnC,YACN8C,QAI2B,IAAtBX,EAAMnC,kBACe,IAArBmC,EAAM5D,YAGbzE,IAAOqI,EAAMhC,OAASgC,EAAMpF,OAAQoF,EAAMnC,kBAEV,IAAvBmC,EAAMI,aAA8B,CAC7C,MAAMS,EAAgBlG,EAAmBsF,EAAcC,IACvDF,EAAMI,aAAe3B,EACnB0B,EACAU,EAEH,CACF,CAAC,MAAOC,GAOR,CACF,CAES,kBAAOC,CAAY/C,GAC3B,IAAKA,EAAO,OACZ,MAAM4B,EAAQzJ,KAAKwJ,eAAe3B,GAClC4B,EAAMvC,UAAW,EACZuC,EAAM3H,UAAS2H,EAAM3H,QAAUF,EAAWkF,gBAC/C/G,EAASiF,IAAI6C,EAAOxJ,EAAAA,eAAewF,WAAYvF,EAAAA,gBAAgBgF,QAChE,CAEO,6BAAOuH,CAAuBhD,GACpC,IAAKA,EAAO,OACZ,MAAM4B,EAAQzJ,KAAKwJ,eAAe3B,GAC9B4B,EAAMqB,kBAAoBrB,EAAMvC,UAAYuC,EAAMsB,WACtDtB,EAAMqB,kBAAmB,EACzBE,QAAQC,UAAUC,KAAK,KACrBzB,EAAMqB,kBAAmB,EACpBrB,EAAMvC,UACTlH,KAAKmL,yBAAyBtD,KAGnC,CAES,+BAAOuD,CACfvD,EACApD,EACAgG,EAIA/C,EACAzB,EACAsE,EACAc,GAEA,MAAMlM,EAAM,GACV0I,GAAOnH,MAAQ,gBACNgH,GAAe,SAAtB3E,MAAkCgF,KAAKuD,SAASC,KAAKC,WAEnD/B,EAAQzJ,KAAKwJ,eAAe3B,GAC5B4D,EAAoBzC,EAAmBuB,GACvCV,EAA0B,CAC9BhC,QACApD,SACAiD,cACAzB,aACAwE,WACAF,aAAckB,EACdnB,YAAa,IAAMtB,EAAmByC,GACtCtM,MACAkM,iBAGIK,EAAmB,KACvB,MAAMC,EACJlC,EAAM3H,SACN/B,EAASqB,IAAIyG,EAAOxJ,EAAAA,eAAe2D,UACnCJ,EAAWkF,eAIb,OAHA9G,KAAK4J,kBAAkBC,EAAO8B,GAC9B9B,EAAM+B,gBAAkBnC,EAAMoC,OAC9BhC,EAAMiC,mBAAqBH,EACpBA,GAGHI,EAAgB,KACpBtC,EAAMC,QAAQ1F,KAAK6F,GACZA,GAGT,GAAIJ,EAAME,YAAa,CACrBoC,IACA,MAAMJ,EAAeD,IAIrB,OAHAjC,EAAMuC,aAAevC,EAAMC,QAAQ9J,OACnC6J,EAAM3H,QAAU6J,EAChB5L,EAASiF,IAAI6C,EAAOxJ,EAAcA,eAACwF,YAAY,GACxC1E,CACR,CAID,GAFA4M,IAEItC,EAAMsB,SAER,OADAW,IACOvM,EAGT,GAAIyC,EAAWgG,kBAAoBA,EACjC,IACE,MAAMqE,EAAerK,EAAWgG,gBAAgBC,GAChD,GAAIoE,GAAgBA,IAAiBrK,EAAWkF,eAE9C,OADA9G,KAAKmL,yBAAyBtD,EAAOoE,GAC9B9M,CAEV,CAAC,MAED,CAIH,OADAa,KAAK6K,uBAAuBhD,GACrB1I,CACR,CAES,+BAAOgM,CACf1G,EACA3C,GAEA,MAAM+F,EACc,mBAAXpD,EAAwBA,EAASA,GAAQnE,aAAemE,EACjE,IAAKoD,EAAO,OACZ,MAAM4B,EAAQzJ,KAAKwJ,eAAe3B,GAElC,GADA4B,EAAMqB,kBAAmB,GACpBrB,EAAMC,QAAQ9J,SAAWkC,EAAS,OAEvC,MAAMoK,EACJpK,GACA2H,EAAM3H,SACN/B,EAASqB,IAAIyG,EAAOxJ,EAAAA,eAAe2D,UACnCJ,EAAWkF,eAEb,GAAI2C,EAAMsB,SAAU,OAEpB,MAAMoB,EAAS1C,EAAMuC,cAAgB,EACrC,IACGlK,GACD2H,EAAMqC,qBAAuBI,GAC7BC,GAAU1C,EAAMC,QAAQ9J,OAExB,OAGF,MAAMwM,KACItK,GAAWA,IAAYF,EAAWkF,iBAC1C2C,EAAME,YACR,IAAKF,EAAMC,QAAQ9J,OAAQ,OAE3B,MAAMyM,GAAe5C,EAAMoC,QAAU,GAAK,EAC1CpC,EAAMoC,OAASQ,EACf5C,EAAMsB,UAAW,EACjB,IACA,GAAIqB,EACF,IAAK,MAAMvC,KAASJ,EAAMC,QAAS,CACjC,IAAKG,EAAO,SACZ,GAAIA,EAAM+B,kBAAoBS,EAAa,SAC3C,MAAMC,EAActM,KAAKuM,oBACvB1C,EACAqC,QAG8B,IAAvBrC,EAAMI,mBACuB,IAA7BJ,EAAMK,mBAQbL,EAAMiC,qBAAuBI,GAC5BI,GAKCzC,EAAMI,cAAcrK,QACtB4M,EAAmB3C,EAAMhC,MAAOgC,EAAMI,cAExCwC,EAA0B5C,GAC1B7J,KAAK4J,kBAAkBC,EAAOqC,GAC9BrC,EAAM+B,gBAAkBS,EACxBxC,EAAMiC,mBAAqBI,GATzBrC,EAAM+B,gBAAkBS,GATxBrM,KAAK4J,kBAAkBC,EAAOqC,GAC9BrC,EAAM+B,gBAAkBS,EACxBxC,EAAMiC,mBAAqBI,EAiB9B,KACI,CACL,IAAIrJ,EAAQsJ,EACZ,KAAOtJ,EAAQ4G,EAAMC,QAAQ9J,QAAQ,CACnC,MAAMiK,EAAQJ,EAAMC,QAAQ7G,KACvBgH,GACDA,EAAM+B,kBAAoBS,IAC9BrM,KAAK4J,kBAAkBC,EAAOqC,GAC9BrC,EAAM+B,gBAAkBS,EACxBxC,EAAMiC,mBAAqBI,EAC5B,CACDzC,EAAMuC,aAAevC,EAAMC,QAAQ9J,MACpC,CACA,CAAS,QACR6J,EAAMsB,UAAW,CAClB,CAEDtB,EAAM3H,QAAUoK,EAChBzC,EAAMvC,UAAW,EACjBuC,EAAMqC,mBAAqBI,EACvBE,IACF3C,EAAMuC,aAAevC,EAAMC,QAAQ9J,OAC/BsM,IAAoBtK,EAAWkF,iBACjC2C,EAAME,aAAc,IAIxB5J,EAASiF,IAAI6C,EAAOxJ,EAAcA,eAACwF,YAAY,EAChD,CAQD,IAAI1E,GAEF,OADAa,KAAKb,IAAMA,EACJa,IACR,CASO,QAAA0M,CACNC,GAAiB,KACdlF,GAEH,IAAKzH,KAAKb,IACR,MAAU2D,MAAM,uDAClB,KACI2E,GAAeA,EAAW7H,QAC3B+M,GACD3M,KAAK8B,UAAYF,EAAWkF,gBAE5B,MAAUhE,MACR,6EAaJ,OAVI6J,EACD3M,KAAa4M,OAAS,IAAIpH,IAAI,KACzBxF,KAAK4M,QAAU,IAAIpH,KAAOpB,YAC3BqD,IAIJzH,KAAayH,WAAa,IAAIjC,IAAI,IAAIiC,IAGlCzH,IACR,CAEO,qBAAA6M,GACN,IAAK7M,KAAKyH,aAAezH,KAAKyH,WAAWvG,KAAM,OAC/C,MAAM+H,EAAmC,CAAA,EAczC,OAbA3G,MAAM2F,KAAKjI,KAAKyH,WAAWrD,UAAUb,QAAQ,CAACsG,EAAOhH,KAEhC,iBAAVgH,GACP,SAAUA,GACVvH,MAAMC,QAAQsH,EAAMiD,QAEpB7D,EAAUpG,GAASgH,EAAMiD,KAAKpJ,IAAKwF,GAClB,iBAARA,GAA4B,OAARA,EACvB1E,EAAmB0E,GACnBA,MAIH9J,OAAOJ,KAAKiK,GAAWrJ,OAASqJ,OAAYnJ,CACpD,CAQD,MAAAiN,IACKtF,GAEH,GACEA,EAAWuF,KAAMC,GAAmB,iBAANA,IACR,IAAtBxF,EAAW7H,OAEX,MAAUkD,MACR,4DAEJ,OAAO9C,KAAK0M,UAAS,KAAUjF,EAChC,CAQD,MAAAyF,IAAUzF,GACR,GACEA,EAAWuF,KAAMC,GAAmB,iBAANA,IACR,IAAtBxF,EAAW7H,OAEX,MAAUkD,MACR,sEAEJ,OAAO9C,KAAK0M,UAAS,KAASjF,EAC/B,CAwBS,gBAAA0F,CACRhO,EACAiO,EACAnE,GAEA,SAASoE,EACP5I,EACAiD,EACAzB,GAEA,MAAMnE,EAAUsL,GAAKxL,EAAWgG,gBAAgBnD,GAC1C6I,EAAQ1L,EAAW6F,WAAWtI,GACpC,IAAIsI,EACJ,MAAMmF,EAASU,EAAMxL,GACjBwL,EAAMxL,GAAS8K,OACfU,EAAM1L,EAAWkF,gBAAgB8F,OAQnCnF,EALA6F,GACAA,EAAMxL,IACNwL,EAAMxL,GAAS2F,YACf6F,EAAMxL,GAAS2F,WAAWvG,KAEboM,EAAMxL,GAAS2F,WAEf6F,EAAM1L,EAAWkF,gBAAgBW,WAGhD,MAAM8F,EAAqB,IAAK9F,EAAaA,EAAWrD,SAAW,IAE7DoJ,EAAwB,KACxBF,EAAM1L,EAAWkF,iBAAiBW,YAAc,IAAIjC,KAAOpB,UAG3DqJ,EAAkBF,EAAmBG,OACzC,CAACC,EAAO9D,EAAOhH,KAEM,iBAAVgH,GACP,SAAWA,GACXvH,MAAMC,QAASsH,EAAciD,QAE7Ba,EAAM9K,GAAUgH,EAAciD,MAEzBa,GAET,CAA2B,GAGvBC,EAAqBJ,EAAsBE,OAC/C,CAACC,EAAO9D,EAAOhH,KAEM,iBAAVgH,GACP,SAAWA,GACXvH,MAAMC,QAASsH,EAAciD,QAE7Ba,EAAM9K,GAAUgH,EAAciD,MAEzBa,GAET,CAA2B,GAGvBE,EAAU,IACXN,KACCX,EAASA,EAAOxI,SAAW,IAG3B0J,EAAaP,EAAmB3N,OAChCmO,EAAgB9E,GAAa,GAEnC,IAAI+E,EAAgBvJ,EAChB0F,EAAoBlE,EA8CxB,OA5CA4H,EAAQtK,QAAQ,CAAC0J,EAAGpK,KAClB,IAAIoL,EACJ,GAAiB,iBAANhB,EAAgB,CACzB,MAAMpD,EAAQoD,EACRiB,EAAyBJ,EAARjL,EAAqBA,EAAQ,EAW9CsL,IATIL,EAARjL,EAAqBkL,EAAcG,QAAkBpO,KAGpD,SAAU+J,GAASvH,MAAMC,QAAQsH,EAAMiD,MACpCjD,EAAMiD,KACLW,EAAgBS,IACjBN,EAAmBM,IACnBN,EAAmB,IACnB,KACsBlK,IAAKwF,GAChB,iBAARA,GAA4B,OAARA,EACvB1E,EAAmB0E,GACnBA,GAEN+E,EAAcpE,EAAMlC,aACfwG,EAEN,KAAM,IAAiB,mBAANlB,EAGhB,MAAUnK,MAAM,qCAAqCmK,GAFrDgB,EAAchB,CAGf,CAED,MAAMtI,EAAUsJ,OACS,IAAhBvG,EAA8BsG,EAAgBvJ,EACrDiD,EACAyC,QAGyB,IAAhBzC,EACa,mBAAX/C,IACTqJ,EAAgBrJ,QAES,IAAXA,IAChBwF,EAAoBxF,UAIM,IAAhB+C,EACVsG,EACA7D,CACL,CAKD,OAJA/K,OAAO6F,eAAeoI,EAAkB,OAAQ,CAC9C5N,MAAO,CAAC2N,GAAK,UAAWjO,GAAKwB,KAAK,mBAClCyE,UAAU,IAELiI,CACR,CAOD,KAAA7F,GAKE,IAAKxH,KAAKb,IACR,MAAU2D,MAAM,8CAElB,MAAM3D,EAAMa,KAAKb,IAEXiP,EACJxM,EAAW6F,WAAWzH,KAAKb,OAAOa,KAAK8B,UAAU2F,WAC7C4G,EACJrO,KAAKyH,YAAc2G,GAAsB,IAAI5I,IAEzC8I,OACmB,IAAhBtO,KAAK4M,OAAyB5M,KAAK4M,YAAS9M,EAErD8B,EAAW2M,SACTvO,KAAKb,IACLa,KAAK8B,QACLuM,EACAC,GAGF,MAAME,EAAU,CAAC/J,EAAaiD,EAAmBzB,KAC/C,MAAMwI,OAAkC,IAAhB/G,EAClBG,EACc,mBAAXpD,EAAwBA,EAASA,GAAQnE,aAAemE,EACjE,GAAIoD,GAAS4G,EAAU,CACE1O,EAAmB,SACxCA,EAASQ,OAAOsH,GAChBxJ,iBAAe2D,UAEI0E,EAAK9E,EAAWkF,eAAhBJ,CAAgCmB,GACrD,MAAM0C,EAAevK,KAAK6M,wBAoB1B,OAnBAjL,EAAWwJ,yBACTvD,EACApD,EACCyH,GACQlM,KAAKmN,iBAAiBhO,EAAK+M,EAAiB3B,GAErD7C,EACAzB,EACAsE,EACApL,GAEFyC,EAAWuJ,yBAAyBtD,GAChCH,IAAgBzB,GAClBzE,IAAOqG,EAAOH,GAEZA,GAAezB,GAEjBkB,IAASU,EAAOH,EAAazB,GAExBA,CACR,CAED,MAAMyI,EACJ1O,KAAK8B,UAAYF,EAAWkF,oBAAiBhH,EAAYE,KAAK8B,QAChE,OAAO9B,KAAKmN,iBAAiBhO,EAAeuP,EAArC1O,CACLyE,EACAiD,EACAzB,IAIJ,IACE7G,OAAO6F,eAAeuJ,EAAS,OAAQ,CACrC/O,MAAO,CAACO,KAAK8B,QAAS3C,GAAKwB,KAAK,mBAChCyE,UAAU,GAGb,CAAC,MAAOuJ,GAER,CAED,OAAOH,CACR,CAWO,eAAOD,CACbpP,EACA2C,EACA2F,EACAmF,GAEA,IAAKzN,EACH,MAAU2D,MAAM,8CAElB,IAAK2E,EACH,MAAU3E,MAAM,qDAClB,IAAKhB,EACH,MAAUgB,MAAM,kDAEblB,EAAW6F,WAAWtI,KAAMyC,EAAW6F,WAAWtI,GAAO,IACzDyC,EAAW6F,WAAWtI,GAAK2C,KAC9BF,EAAW6F,WAAWtI,GAAK2C,GAAW,CAAA,GACxCF,EAAW6F,WAAWtI,GAAK2C,GAAS2F,WAAaA,OAC3B,IAAXmF,IACThL,EAAW6F,WAAWtI,GAAK2C,GAAS8K,OAASA,EAEhD,CAED,kBAAOgC,CAAYC,GACjBjN,EAAWgG,gBAAkBiH,CAC9B,CAEO,0BAAOtC,CACb1C,EACA/H,GAEA,IAAK+H,EAAMwB,cAAe,OAAO,EACjC,GAAIvJ,IAAYF,EAAWkF,eAAgB,OAAO,EAClD,MAAMwG,EAAQ1L,EAAW6F,WAAWoC,EAAMwB,eAC1C,IAAKiC,EAAO,OAAO,EACnB,MAAMwB,EAAgBxB,EAAMxL,GAC5B,IAAKgN,EAAe,OAAO,EAC3B,MAAMC,EAAgBzB,EAAM1L,EAAWkF,gBACjCkI,EACJF,EAAcrH,YAAcqH,EAAcrH,WAAWvG,KAAO,EACxD+N,EACJH,EAAclC,kBAAkBpH,KAChCsJ,EAAclC,OAAO1L,KAAO,EAC9B,IAAK8N,IAAkBC,EAAW,OAAO,EACzC,IAAKF,EAAe,OAAO,EAC3B,MAAMG,GACHF,GACDF,EAAcrH,aAAesH,EAActH,WACvC0H,GACHF,GAAaH,EAAclC,SAAWmC,EAAcnC,OACvD,QAASsC,GAAmBC,EAC7B,CAQD,UAAO,CAAIhQ,GACT,OAAO,IAAIyC,GAAapB,IAAIrB,EAC7B,CAQD,kBAAO0C,CAAYC,GACjB,OAAO,IAAIF,EAAWE,EACvB,EAEH,SAAS0K,EACP3E,EACAuH,GAEA,IAAKA,IAASA,EAAKxP,OACjB,OAEF,MAAMkK,EAAiB/J,EAA4B,UAI7CiB,EAASjB,EAASQ,OAAOsH,GACzBuB,EACJU,EAAc9I,KACb8I,EAAc9I,GAAU,CAAA,GAC3BoO,EAAK7L,QAAQ,EAAGzE,OAAMgK,gBAAeC,cACnC,IAAKjK,EAAKc,OAAQ,OAClB,GAAId,EAAK,KAAOT,EAAAA,eAAeI,WAAY,OAC3C,IAAIgG,EAAuC2E,EAC3C,IAAK,IAAIvJ,EAAI,EAAGA,EAAIf,EAAKc,OAAS,EAAGC,IAAK,CACxC,MAAMV,EAAML,EAAKe,GACZyE,EAAcG,EAAOtF,MACxBsF,EAAOtF,GAAc,IAEvBsF,EAASA,EAAOtF,EACjB,CACD,MAAMA,EAAML,EAAKA,EAAKc,OAAS,GAC1BmJ,EAIHtE,EAAOtF,GAAcqF,EAAmBsE,WAHjCrE,EAAOtF,GAz2BpB,EACEiK,EACAtK,KAEA,IAAK,IAAIe,EAAIf,EAAKc,OAAQC,EAAI,EAAGA,IAAK,CACpC,MAAMwP,EAAevQ,EAAKyG,MAAM,EAAG1F,GAC7ByP,EAAaD,EAAa9J,MAAM,GAAI,GACpCpG,EAAMkQ,EAAaA,EAAazP,OAAS,GACzCqE,EACkB,IAAtBqL,EAAW1P,OACPwJ,EACAD,EAAcC,EAAQkG,GAC5B,IAAKrL,IAAWK,EAAcL,GAAS,MACvC,MAAMxE,EAAQwE,EAAO9E,GACrB,IAAKmF,EAAc7E,IAAU4G,QAAQgC,QAAQ5I,GAAOG,OAAS,EAAG,aACzDqE,EAAO9E,EACf,CACH,EAy1BMoQ,CAAoBnG,EAAQtK,EAAKyG,MAAM,GAAI,MAKjD,CAEA,SAASkH,EAA0B5C,GACjC,IAAKA,QAAsC,IAAtBA,EAAMnC,YAA6B,OACxD,MAAMjD,EAASoF,EAAMpF,OACrB,IAAKA,QAA4C,IAA3BoF,EAAMO,iBAAkC,OAC9D,MAAM1C,EAAcmC,EAAMnC,YACpB8H,EAAW3F,EAAMK,mBACnBL,EAAMO,iBACJoF,EACFpQ,OAAO6F,eAAeR,EAAQiD,EAAa8H,UAEnC/K,EAAwCiD,WAG1CjD,EAAwCiD,GAC5C8H,GACFpQ,OAAO6F,eAAeR,EAAQiD,EAAa8H,GAGjD,+IDnxB4BC,GAiBnB7N,EAAWpB,IAAInC,EAAcA,eAACoD,aAClCsL,OAAO,CACNpF,UAlBsB8H,GACjB,CACLC,EACAlO,EACAyE,IAEOD,EACLjG,EAASZ,IACPd,EAAcA,eAACoD,YACfD,EAAOA,EAAKf,WAAapC,EAAcA,eAACqD,OAE1C+N,EALKzJ,CAML0J,EAAUlO,EAAMyE,GAOlB6G,KAAM,CAAC2C,KAERjI,6DAhTyBrI,KAAgBwQ,IACrC,CACLlL,EACAiD,EACAzB,KAEA,MAAM2J,EAAe7P,EAASqB,IAAIqD,EAAQtF,IAAQ,GAGlD,OAAOqI,EADMxB,EADG0B,EAAc3H,EAASZ,IAAIA,EAAKuI,GAAevI,EAChC,IAAI,IAAIqG,IAAI,IAAIoK,KAAiBD,MACzDnI,CAAc/C,EAAQiD,EAAazB,EAC5C,8BAmQc,CAAe9G,EAAaM,IACnC+H,EAAMxB,EAAS7G,EAAKM,GAAQ0H,+BAtIrB,CAAchI,EAAaM,IAClC,CAAuBgF,EAAajD,EAAWqB,IAC7C2E,EACL5E,IACAoD,EAASjG,EAASZ,IAAId,iBAAeiD,QAASE,EAAMrC,GAAMM,GAFrD+H,CAGL/C,EAAQjD,EAAMqB,2BAmHJ,CAAa1D,EAAaM,IACjC+H,EAAMxB,EAAS7G,EAAKM,GAAQ+B"}
|
|
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":"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"}
|
package/dist/decoration.js
CHANGED
|
@@ -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 i={[r.PROPERTIES]:[]},n="##VERSION##",s="##PACKAGE##";function a(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 c(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 l{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.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 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=>{D.resolvePendingDecorators(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?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);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&&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(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=l.key(r.PROPERTIES,i.toString()),a=l.get(s,n);void 0===e&&void 0!==a||l.set(s,n,e)}l.set(s,t,e)}}function f(t,...e){return(r,o,i)=>{const n=l.get(r,t)||[];return v(d(o?l.key(t,o):t,[...new Set([...n,...e])]))(r,o,i)}}function u(t){return e=>{const o=l.constr(e);if(((t,e)=>{const o=l.constr(t),i=l.innerGet(l.Symbol(t),r.FLAVOUR)||D.defaultFlavour,n=(l.innerGet(Symbol.for(r.FLAVOUR),i)||[]).filter(t=>l.constr(t)!==o);l.set(r.FLAVOUR,i,n);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,i=Reflect.getOwnMetadata(r.DESIGN_TYPE,o,e);return d(l.key(r.PROPERTIES,e),i)(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 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,n)=>v(h(),d(l.key(r.METHODS,i,t),e))(o,i,n)}function g(){return(t,e,o)=>{const i=Reflect.getOwnMetadata(r.DESIGN_PARAMS,t,e),n=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),n))(t,e,o)}}function v(...t){return(e,r,o)=>{for(const i of t)void 0!==r?i(e,r,o):i(e)}}function O(t,e){return v(d(t,e),p())}function S(t,e){return v(d(t,e),g())}function b(t){return D.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!==D.defaultFlavour)return o;const i="function"==typeof l.registeredFlavour?l.registeredFlavour(e):void 0;return i&&i!==D.defaultFlavour?i:o??D.defaultFlavour}function R(t){return null!==t&&"object"==typeof t&&!Array.isArray(t)&&t.constructor===Object}function m(t){if(null===t||"object"!=typeof t)return t;if(Array.isArray(t))return t.map(t=>m(t));if(t instanceof Date)return new Date(t.getTime());if(t instanceof Set)return new Set(Array.from(t).map(t=>m(t)));if(t instanceof Map)return new Map(Array.from(t.entries()).map(([t,e])=>[t,m(e)]));if(t.constructor!==Object)return t;const e={};return Reflect.ownKeys(t).forEach(r=>{e[r]=m(t[r])}),e}function P(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(R(a)&&R(c)?P(a,c,[...r,i],o):a!==c&&o.push({path:[...r,i],previousValue:m(a),existed:!0})):R(c)?void P(void 0,c,[...r,i],o):void o.push({path:[...r,i],previousValue:void 0,existed:!1});o.push({path:[...r,i],previousValue:m(a),existed:!0})}),o}function A(t){if(!t)return;const e={};return Object.keys(t).forEach(r=>{e[r]=t[r].map(t=>"object"==typeof t&&null!==t?m(t):t)}),e}function w(t,e){let r=t;for(const t of e){if(!r||!R(r[t]))return;r=r[t]}return r}l.registerLibrary(s,n);class D{static{this.defaultFlavour=t}static{this.targetStates=new WeakMap}static{this.decorators={}}static{this.flavourResolver=E}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),i=void 0===t.metadataDiff?m(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():A(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&&p()(t.owner??t.target,t.propertyKey),void 0===t.metadataDiff){const e=m(r[o]);t.metadataDiff=P(i,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,i,n,s,a){const c=`${t?.name||"anonymous"}:${(i||"class")+""}:${Date.now()}:${Math.random()}`,d=this.getTargetState(t),f=A(s),u={owner:t,target:e,propertyKey:i,descriptor:n,callback:o,argsOverride:f,argsFactory:()=>A(f),key:c,definitionKey:a},p=()=>{const e=d.flavour||l.get(t,r.FLAVOUR)||D.defaultFlavour;return this.applyPendingEntry(u,e),u.lastAppliedPass=d.passId,u.lastAppliedFlavour=e,e},h=()=>(d.pending.push(u),u);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!==E)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 i=this.getTargetState(o);if(i.resolveScheduled=!1,!i.pending.length&&!e)return;const n=e||i.flavour||l.get(o,r.FLAVOUR)||D.defaultFlavour;if(i.applying)return;const s=i.appliedCount||0;if(!e&&i.lastAppliedFlavour===n&&s>=i.pending.length)return;const a=!(!e||e===D.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&&j(t.owner,t.metadataDiff),F(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!==D.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===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?m(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??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():[]],f=[...(a[D.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),{}),h=[...d,...l?l.values():[]],y=d.length,g=r||{};let v=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?g[i]:void 0)||("args"in o&&Array.isArray(o.args)?o.args:u[i]??p[i]??p[0]??[])).map(t=>"object"==typeof t&&null!==t?m(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?v:o,i,O);void 0===i?"function"==typeof n&&(v=n):void 0!==n&&(O=n)}),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=D.decorators[this.key]?.[this.flavour]?.decorators,o=this.decorators||e||new Set,i=void 0!==this.extras?this.extras:void 0;D.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){l.innerGet(l.Symbol(s),r.FLAVOUR)||u(D.defaultFlavour)(s);const n=this.snapshotDecoratorArgs();return D.registerPendingDecorator(s,e,e=>this.decoratorFactory(t,e,n),o,i,n,t),D.resolvePendingDecorators(s),o&&!i&&p()(s,o),o&&i&&g()(s,o,i),i}const a=this.flavour===D.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");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 i=r[D.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 D).for(t)}static flavouredAs(t){return new D(t)}}function j(t,e){if(!e||!e.length)return;const o=l._metadata,i=l.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];R(i[r])||(i[r]={}),i=i[r]}const s=t[t.length-1];o?i[s]=m(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:w(t,i);if(!s||!R(s))break;const a=s[n];if(!R(a)||Reflect.ownKeys(a).length>0)break;delete s[n]}})(n,t.slice(0,-1)))})}function F(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,i as DefaultMetadata,l as Metadata,e as ObjectKeySplitter,s as PACKAGE_NAME,n as VERSION,v as apply,b as description,a as getValueBySplitter,d as metadata,f as metadataArray,g as method,S as methodMetadata,h as param,y as paramMetadata,p as prop,O as propMetadata,c as setValueBySplitter,u 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
|
package/dist/decoration.js.map
CHANGED
|
@@ -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","_propertiesIndex","baseKey","REFLECT","mirror","constructor","Symbol","for","toString","name","join","properties","model","resolvedModel","constr","symbol","indexed","size","meta","get","methods","METHODS","description","prop","DESCRIPTION","CLASS","flavourOf","Decoration","flavouredAs","flavour","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","target","source","result","sourceValue","targetValue","proto","innerSet","set","defineProperty","enumerable","configurable","writable","propPrefix","startsWith","slice","Set","add","registerLibrary","library","version","LIBRARIES","libraries","strs","metadata","descriptor","targetModel","metadataTarget","designType","Reflect","getOwnMetadata","DESIGN_TYPE","propKey","existing","metadataArray","data","propertyKey","existingData","apply","uses","object","canonical","flav","defaultFlavour","filtered","o","manageFlavourRMetadata","resolved","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","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","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
|
|
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
|
}
|
|
@@ -242,7 +244,7 @@ class Decoration {
|
|
|
242
244
|
if (typeof entry.propertyKey !== "undefined" &&
|
|
243
245
|
typeof entry.descriptor === "undefined") {
|
|
244
246
|
// Ensure property metadata is always registered for member decorators.
|
|
245
|
-
(0,
|
|
247
|
+
(0, core_1.prop)()(entry.owner ?? entry.target, entry.propertyKey);
|
|
246
248
|
}
|
|
247
249
|
if (typeof entry.metadataDiff === "undefined") {
|
|
248
250
|
const afterSnapshot = cloneMetadataValue(metadataStore[metadataSymbol]);
|
|
@@ -262,6 +264,26 @@ class Decoration {
|
|
|
262
264
|
state.flavour = Decoration.defaultFlavour;
|
|
263
265
|
Metadata_1.Metadata.set(owner, constants_1.DecorationKeys.DECORATION, constants_1.DecorationState.PENDING);
|
|
264
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
|
+
}
|
|
265
287
|
static scheduleDefaultResolve(owner) {
|
|
266
288
|
if (!owner)
|
|
267
289
|
return;
|
|
@@ -375,8 +397,7 @@ class Decoration {
|
|
|
375
397
|
entry.lastAppliedFlavour = resolvedFlavour;
|
|
376
398
|
continue;
|
|
377
399
|
}
|
|
378
|
-
if (entry.lastAppliedFlavour === resolvedFlavour ||
|
|
379
|
-
!hasOverride) {
|
|
400
|
+
if (entry.lastAppliedFlavour === resolvedFlavour || !hasOverride) {
|
|
380
401
|
entry.lastAppliedPass = currentPass;
|
|
381
402
|
continue;
|
|
382
403
|
}
|
|
@@ -624,18 +645,18 @@ class Decoration {
|
|
|
624
645
|
if (owner && isMember) {
|
|
625
646
|
const currentFlavour = Metadata_1.Metadata["innerGet"](Metadata_1.Metadata.Symbol(owner), constants_1.DecorationKeys.FLAVOUR);
|
|
626
647
|
if (!currentFlavour)
|
|
627
|
-
|
|
648
|
+
Decoration.ensureDefaultFlavour(owner);
|
|
628
649
|
const argsOverride = this.snapshotDecoratorArgs();
|
|
629
650
|
Decoration.registerPendingDecorator(owner, target, (resolvedFlavour) => {
|
|
630
651
|
return this.decoratorFactory(key, resolvedFlavour, argsOverride);
|
|
631
652
|
}, propertyKey, descriptor, argsOverride, key);
|
|
632
653
|
Decoration.resolvePendingDecorators(owner);
|
|
633
654
|
if (propertyKey && !descriptor) {
|
|
634
|
-
(0,
|
|
655
|
+
(0, core_1.prop)()(owner, propertyKey); // auto tag as a property
|
|
635
656
|
}
|
|
636
657
|
if (propertyKey && descriptor) {
|
|
637
658
|
// TODO this probably needs refining. under some compilation processes, the descriptor can exit on a prop
|
|
638
|
-
(0,
|
|
659
|
+
(0, core_1.method)()(owner, propertyKey, descriptor); // auto tag as a method
|
|
639
660
|
}
|
|
640
661
|
return descriptor;
|
|
641
662
|
}
|
|
@@ -696,14 +717,12 @@ class Decoration {
|
|
|
696
717
|
return false;
|
|
697
718
|
const defaultBucket = cache[Decoration.defaultFlavour];
|
|
698
719
|
const hasDecorators = flavourBucket.decorators && flavourBucket.decorators.size > 0;
|
|
699
|
-
const hasExtras = flavourBucket.extras instanceof Set &&
|
|
700
|
-
flavourBucket.extras.size > 0;
|
|
720
|
+
const hasExtras = flavourBucket.extras instanceof Set && flavourBucket.extras.size > 0;
|
|
701
721
|
if (!hasDecorators && !hasExtras)
|
|
702
722
|
return false;
|
|
703
723
|
if (!defaultBucket)
|
|
704
724
|
return true;
|
|
705
|
-
const decoratorsMatch = !hasDecorators ||
|
|
706
|
-
flavourBucket.decorators === defaultBucket.decorators;
|
|
725
|
+
const decoratorsMatch = !hasDecorators || flavourBucket.decorators === defaultBucket.decorators;
|
|
707
726
|
const extrasMatch = !hasExtras || flavourBucket.extras === defaultBucket.extras;
|
|
708
727
|
return !(decoratorsMatch && extrasMatch);
|
|
709
728
|
}
|
|
@@ -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;
|