@decaf-ts/db-decorators 0.6.11 → 0.6.13
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 +23 -3
- package/dist/db-decorators.cjs +2 -2989
- package/dist/db-decorators.cjs.map +1 -0
- package/dist/db-decorators.js +2 -0
- package/dist/db-decorators.js.map +1 -0
- package/lib/esm/identity/decorators.js +1 -1
- package/lib/esm/identity/decorators.js.map +1 -0
- package/lib/esm/identity/index.js +1 -1
- package/lib/esm/identity/index.js.map +1 -0
- package/lib/esm/identity/utils.js +1 -1
- package/lib/esm/identity/utils.js.map +1 -0
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +2 -2
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/interfaces/BulkCrudOperator.js +1 -1
- package/lib/esm/interfaces/BulkCrudOperator.js.map +1 -0
- package/lib/esm/interfaces/Contextual.js +1 -1
- package/lib/esm/interfaces/Contextual.js.map +1 -0
- package/lib/esm/interfaces/CrudOperator.js +1 -1
- package/lib/esm/interfaces/CrudOperator.js.map +1 -0
- package/lib/esm/interfaces/IRepository.js +1 -1
- package/lib/esm/interfaces/IRepository.js.map +1 -0
- package/lib/esm/interfaces/index.js +1 -1
- package/lib/esm/interfaces/index.js.map +1 -0
- package/lib/esm/model/constants.js +1 -1
- package/lib/esm/model/constants.js.map +1 -0
- package/lib/esm/model/decorators.js +1 -1
- package/lib/esm/model/decorators.js.map +1 -0
- package/lib/esm/model/index.js +1 -1
- package/lib/esm/model/index.js.map +1 -0
- package/lib/esm/model/model.js +1 -1
- package/lib/esm/model/model.js.map +1 -0
- package/lib/esm/model/overrides.js +1 -1
- package/lib/esm/model/overrides.js.map +1 -0
- package/lib/esm/model/utils.js +1 -1
- package/lib/esm/model/utils.js.map +1 -0
- package/lib/esm/model/validation.js +1 -1
- package/lib/esm/model/validation.js.map +1 -0
- package/lib/esm/operations/Operations.js +1 -1
- package/lib/esm/operations/Operations.js.map +1 -0
- package/lib/esm/operations/OperationsRegistry.js +1 -1
- package/lib/esm/operations/OperationsRegistry.js.map +1 -0
- package/lib/esm/operations/constants.d.ts +2 -1
- package/lib/esm/operations/constants.js +2 -1
- package/lib/esm/operations/constants.js.map +1 -0
- package/lib/esm/operations/decorators.d.ts +66 -1
- package/lib/esm/operations/decorators.js +73 -1
- package/lib/esm/operations/decorators.js.map +1 -0
- package/lib/esm/operations/index.js +1 -1
- package/lib/esm/operations/index.js.map +1 -0
- package/lib/esm/operations/types.js +1 -1
- package/lib/esm/operations/types.js.map +1 -0
- package/lib/esm/repository/BaseRepository.js +1 -1
- package/lib/esm/repository/BaseRepository.js.map +1 -0
- package/lib/esm/repository/Context.js +1 -1
- package/lib/esm/repository/Context.js.map +1 -0
- package/lib/esm/repository/Repository.js +1 -1
- package/lib/esm/repository/Repository.js.map +1 -0
- package/lib/esm/repository/constants.js +1 -1
- package/lib/esm/repository/constants.js.map +1 -0
- package/lib/esm/repository/errors.js +1 -1
- package/lib/esm/repository/errors.js.map +1 -0
- package/lib/esm/repository/index.js +1 -1
- package/lib/esm/repository/index.js.map +1 -0
- package/lib/esm/repository/types.js +1 -1
- package/lib/esm/repository/types.js.map +1 -0
- package/lib/esm/repository/utils.js +1 -1
- package/lib/esm/repository/utils.js.map +1 -0
- package/lib/esm/repository/wrappers.js +1 -1
- package/lib/esm/repository/wrappers.js.map +1 -0
- package/lib/esm/validation/constants.js +1 -1
- package/lib/esm/validation/constants.js.map +1 -0
- package/lib/esm/validation/decorators.js +1 -1
- package/lib/esm/validation/decorators.js.map +1 -0
- package/lib/esm/validation/index.js +1 -1
- package/lib/esm/validation/index.js.map +1 -0
- package/lib/esm/validation/validation.js +1 -1
- package/lib/esm/validation/validation.js.map +1 -0
- package/lib/esm/validation/validators/ReadOnlyValidator.js +1 -1
- package/lib/esm/validation/validators/ReadOnlyValidator.js.map +1 -0
- package/lib/esm/validation/validators/TimestampValidator.js +1 -1
- package/lib/esm/validation/validators/TimestampValidator.js.map +1 -0
- package/lib/esm/validation/validators/UpdateValidator.js +1 -1
- package/lib/esm/validation/validators/UpdateValidator.js.map +1 -0
- package/lib/esm/validation/validators/index.js +1 -1
- package/lib/esm/validation/validators/index.js.map +1 -0
- package/lib/identity/decorators.cjs +1 -1
- package/lib/identity/decorators.js.map +1 -0
- package/lib/identity/index.cjs +1 -1
- package/lib/identity/index.js.map +1 -0
- package/lib/identity/utils.cjs +1 -1
- package/lib/identity/utils.js.map +1 -0
- package/lib/index.cjs +2 -2
- package/lib/index.d.ts +1 -1
- package/lib/index.js.map +1 -0
- package/lib/interfaces/BulkCrudOperator.cjs +1 -1
- package/lib/interfaces/BulkCrudOperator.js.map +1 -0
- package/lib/interfaces/Contextual.cjs +1 -1
- package/lib/interfaces/Contextual.js.map +1 -0
- package/lib/interfaces/CrudOperator.cjs +1 -1
- package/lib/interfaces/CrudOperator.js.map +1 -0
- package/lib/interfaces/IRepository.cjs +1 -1
- package/lib/interfaces/IRepository.js.map +1 -0
- package/lib/interfaces/index.cjs +1 -1
- package/lib/interfaces/index.js.map +1 -0
- package/lib/model/constants.cjs +1 -1
- package/lib/model/constants.js.map +1 -0
- package/lib/model/decorators.cjs +1 -1
- package/lib/model/decorators.js.map +1 -0
- package/lib/model/index.cjs +1 -1
- package/lib/model/index.js.map +1 -0
- package/lib/model/model.cjs +1 -1
- package/lib/model/model.js.map +1 -0
- package/lib/model/overrides.cjs +1 -1
- package/lib/model/overrides.js.map +1 -0
- package/lib/model/utils.cjs +1 -1
- package/lib/model/utils.js.map +1 -0
- package/lib/model/validation.cjs +1 -1
- package/lib/model/validation.js.map +1 -0
- package/lib/operations/Operations.cjs +1 -1
- package/lib/operations/Operations.js.map +1 -0
- package/lib/operations/OperationsRegistry.cjs +1 -1
- package/lib/operations/OperationsRegistry.js.map +1 -0
- package/lib/operations/constants.cjs +2 -1
- package/lib/operations/constants.d.ts +2 -1
- package/lib/operations/constants.js.map +1 -0
- package/lib/operations/decorators.cjs +76 -1
- package/lib/operations/decorators.d.ts +66 -1
- package/lib/operations/decorators.js.map +1 -0
- package/lib/operations/index.cjs +1 -1
- package/lib/operations/index.js.map +1 -0
- package/lib/operations/types.cjs +1 -1
- package/lib/operations/types.js.map +1 -0
- package/lib/repository/BaseRepository.cjs +1 -1
- package/lib/repository/BaseRepository.js.map +1 -0
- package/lib/repository/Context.cjs +1 -1
- package/lib/repository/Context.js.map +1 -0
- package/lib/repository/Repository.cjs +1 -1
- package/lib/repository/Repository.js.map +1 -0
- package/lib/repository/constants.cjs +1 -1
- package/lib/repository/constants.js.map +1 -0
- package/lib/repository/errors.cjs +1 -1
- package/lib/repository/errors.js.map +1 -0
- package/lib/repository/index.cjs +1 -1
- package/lib/repository/index.js.map +1 -0
- package/lib/repository/types.cjs +1 -1
- package/lib/repository/types.js.map +1 -0
- package/lib/repository/utils.cjs +1 -1
- package/lib/repository/utils.js.map +1 -0
- package/lib/repository/wrappers.cjs +1 -1
- package/lib/repository/wrappers.js.map +1 -0
- package/lib/validation/constants.cjs +1 -1
- package/lib/validation/constants.js.map +1 -0
- package/lib/validation/decorators.cjs +1 -1
- package/lib/validation/decorators.js.map +1 -0
- package/lib/validation/index.cjs +1 -1
- package/lib/validation/index.js.map +1 -0
- package/lib/validation/validation.cjs +1 -1
- package/lib/validation/validation.js.map +1 -0
- package/lib/validation/validators/ReadOnlyValidator.cjs +1 -1
- package/lib/validation/validators/ReadOnlyValidator.js.map +1 -0
- package/lib/validation/validators/TimestampValidator.cjs +1 -1
- package/lib/validation/validators/TimestampValidator.js.map +1 -0
- package/lib/validation/validators/UpdateValidator.cjs +1 -1
- package/lib/validation/validators/UpdateValidator.js.map +1 -0
- package/lib/validation/validators/index.cjs +1 -1
- package/lib/validation/validators/index.js.map +1 -0
- package/package.json +12 -50
- package/dist/db-decorators.esm.cjs +0 -2917
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-decorators.cjs","sources":["../src/model/constants.ts","../src/validation/constants.ts","../src/validation/validators/ReadOnlyValidator.ts","../src/validation/validators/TimestampValidator.ts","../src/validation/validators/UpdateValidator.ts","../src/operations/constants.ts","../src/validation/validation.ts","../src/operations/OperationsRegistry.ts","../src/operations/Operations.ts","../src/repository/errors.ts","../src/repository/utils.ts","../src/operations/decorators.ts","../src/repository/constants.ts","../src/repository/Context.ts","../src/repository/wrappers.ts","../src/identity/utils.ts","../src/repository/BaseRepository.ts","../src/repository/Repository.ts","../src/validation/decorators.ts","../src/model/validation.ts","../src/model/decorators.ts","../src/model/utils.ts","../src/model/overrides.ts","../src/index.ts","../src/identity/decorators.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DBKeys","REFLECT","ModelKeys","REPOSITORY","CLASS","ID","INDEX","UNIQUE","SERIALIZE","READONLY","TIMESTAMP","TRANSIENT","HASH","COMPOSED","VERSION","ORIGINAL","DefaultSeparator","DEFAULT_TIMESTAMP_FORMAT","DEFAULT_ERROR_MESSAGES","INVALID","REQUIRED","DATE","UpdateValidationKeys","ReadOnlyValidator","Validator","constructor","super","hasErrors","value","args","updateHasErrors","oldValue","message","undefined","isEqual","this","getMessage","exports","__decorate","validator","TimestampValidator","Date","e","UpdateValidator","DecoratorMessages","DEFAULT","acceptedTypes","OperationKeys","BulkCrudOperationKeys","Validation","updateKey","key","DBOperations","CREATE","READ","UPDATE","DELETE","CREATE_UPDATE","READ_CREATE","ALL","OperationsRegistry","cache","get","target","propKey","operation","accum","name","unshift","Object","values","prototype","getPrototypeOf","proto","register","handler","handlerName","Operations","getHandlerName","Hashing","hash","toString","str","targetName","registry","getOpRegistry","BaseError","Error","msg","code","stack","BadRequestError","ValidationError","InternalError","SerializationError","NotFoundError","ConflictError","getHandlerArgs","dec","prop","m","props","handlers","async","enforceDBDecorators","repo","context","model","prefix","oldModel","decorators","getDbDecorators","sortedDecorators","sortDecorators","groupDecorators","getHandlersDecorators","data","length","ON","push","apply","extraPrefix","Reflection","getAllPropertyDecorators","keys","reduce","decorator","filter","d","getAllPropertyDecoratorsRecursive","prefixes","accumulator","decs","entries","forEach","val","match","find","TYPE","RegExp","AFTER","accumHandlers","clazz","handlerDef","handlerProp","handlerKey","argsObj","pushOrSquash","mergeDecorators","defaultPriority","DefaultGroupSort","priority","handlerArgs","i","grouped","acc","group","set","Symbol","groupKey","has","existing","Map","groups","Array","from","combined","map","sort","a","b","groupPriority","c","onCreateUpdate","groupsort","on","onUpdate","onCreate","op","after","baseOp","dataToAdd","propertyKey","compoundKey","Reflect","getMetadata","mergeData","handle","propMetadata","storeHandlerMetadata","params","metadata","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","DefaultContextFactory","arg","Context","accumulate","assign","timestamp","ObjectAccumulator","defineProperty","writable","enumerable","configurable","factory","parent","childFrom","overrides","contextual","last","pop","getContext","wrapMethodWithContext","obj","before","method","methodName","Proxy","thisArg","argArray","transformedArgs","call","Promise","results","findPrimaryKey","idDecorators","filtered","sf","join","idProp","id","findModelId","returnEmpty","modelId","BaseRepository","_class","pk","_pk","class","_pkProps","pkProps","self","create","read","update","delete","createAll","models","all","createPrefix","contextArgs","createSuffix","createAllPrefix","createAllSuffix","readAll","readSuffix","readPrefix","readAllPrefix","k","readAllSuffix","updateAll","updateSuffix","updatePrefix","updateAllPrefix","updateAllSuffix","deleteAll","deleteSuffix","deletePrefix","deleteAllPrefix","deleteAllSuffix","merge","extract","Repository","errors","resolve","ids","oldModels","readonly","Decoration","for","define","timestampHandler","serializeOnCreateUpdate","JSON","stringify","serializeAfterAll","parse","getValidatableUpdateProps","propsToIgnore","decoratedProperties","hasOwnProperty","includes","validationPropertyDefinition","getValidationDecorators","listDecorator","ValidationKeys","LIST","validateDecorator","newModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","validationErrors","newPropValue","oldPropValue","newValues","Set","oldValues","allowedTypes","customTypes","flat","t","String","toLowerCase","errs","childValue","el","Model","isModel","then","every","r","allEmpty","promises","resolvedValues","res","validateCompare","exceptions","nestedErrors","propValue","designTypeDec","designType","getPropertyDecorators","some","isArray","splice","propErrors","isConstr","isPropertyModel","instance","error","ModelErrorDefinition","merged","allSettled","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","status","reason","hashOnCreateUpdate","composedFromCreateUpdate","type","suffix","separator","composed","composedFrom","hashResult","versionCreateUpdate","isTransient","decoratorValidation","previousVersion","exclusions","isAsync","validate","resolvedErrs","operations","BLOCK","required","transient","build","afterName","wrapped","bind","beforeName","format","date","indexOf","attribute","Number"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{ModelKeys as t,validator as e,Validator as r,DEFAULT_ERROR_MESSAGES as n,Validation as s,Hashing as a,propMetadata as o,sf as i,Decoration as c,type as u,date as l,required as p,getValidationDecorators as d,ValidationKeys as h,toConditionalPromise as f,Model as E,ModelErrorDefinition as y,validate as m}from"@decaf-ts/decorator-validation";import{__decorate as A,__metadata as g}from"tslib";import{isEqual as T,Reflection as w,apply as P,metadata as R}from"@decaf-ts/reflection";import{metadata as O}from"@decaf-ts/decoration";import{ObjectAccumulator as D}from"typed-object-accumulator";const b={REFLECT:t.REFLECT+"persistence.",REPOSITORY:"repository",CLASS:"_class",ID:"id",INDEX:"index",UNIQUE:"unique",SERIALIZE:"serialize",READONLY:"readonly",TIMESTAMP:"timestamp",TRANSIENT:"transient",HASH:"hash",COMPOSED:"composed",VERSION:"version",ORIGINAL:"__originalObj"},L="_",v="dd/MM/yyyy HH:mm:ss:S",k={ID:{INVALID:"This Id is invalid",REQUIRED:"The Id is mandatory"},READONLY:{INVALID:"This cannot be updated"},TIMESTAMP:{REQUIRED:"Timestamp is Mandatory",DATE:"The Timestamp must the a valid date",INVALID:"This value must always increase"}},S={REFLECT:"db.update.validation.",TIMESTAMP:b.TIMESTAMP,READONLY:b.READONLY};let I=class extends r{constructor(){super(k.READONLY.INVALID)}hasErrors(t,...e){}updateHasErrors(t,e,r){if(void 0!==t)return T(t,e)?void 0:this.getMessage(r||this.message)}};I=A([e(S.READONLY),g("design:paramtypes",[])],I);let N=class extends r{constructor(){super(k.TIMESTAMP.INVALID)}hasErrors(t,...e){}updateHasErrors(t,e,r){if(void 0!==t){r=r||this.getMessage(r||this.message);try{t=new Date(t),e=new Date(e)}catch(t){return r}return t>e?void 0:r}}};N=A([e(S.TIMESTAMP),g("design:paramtypes",[])],N);class x extends r{constructor(t=n.DEFAULT,...e){super(t,...e)}}var j,C;s.updateKey=t=>S.REFLECT+t,(t=>{t.REFLECT="decaf.model.db.operations.",t.CREATE="create",t.READ="read",t.UPDATE="update",t.DELETE="delete",t.ON="on.",t.AFTER="after.",t.BLOCK="block"})(j||(j={})),(t=>{t.CREATE_ALL="createAll",t.READ_ALL="readAll",t.UPDATE_ALL="updateAll",t.DELETE_ALL="deleteAll"})(C||(C={}));const M={CREATE:[j.CREATE],READ:[j.READ],UPDATE:[j.UPDATE],DELETE:[j.DELETE],CREATE_UPDATE:[j.CREATE,j.UPDATE],READ_CREATE:[j.READ,j.CREATE],ALL:[j.CREATE,j.READ,j.UPDATE,j.DELETE]};class ${constructor(){this.cache={}}get(t,e,r,n){let s;n=n||[];try{s="string"==typeof t?t:t.constructor.name,n.unshift(...Object.values(this.cache[s][e][r]||[]))}catch(e){if("string"==typeof t||t===Object.prototype||Object.getPrototypeOf(t)===Object.prototype)return n}let a=Object.getPrototypeOf(t);return a.constructor.name===s&&(a=Object.getPrototypeOf(a)),this.get(a,e,r,n)}register(t,e,r,n){const s=r.constructor.name,a=U.getHandlerName(t);this.cache[s]||(this.cache[s]={}),this.cache[s][n]||(this.cache[s][n]={}),this.cache[s][n][e]||(this.cache[s][n][e]={}),this.cache[s][n][e][a]||(this.cache[s][n][e][a]=t)}}class U{constructor(){}static getHandlerName(t){return t.name?t.name:a.hash(t.toString())}static key(t){return j.REFLECT+t}static get(t,e,r){return U.registry.get(t,e,r)}static getOpRegistry(){return U.registry||(U.registry=new $),U.registry}static register(t,e,r,n){U.getOpRegistry().register(t,e,r,n)}}class F extends Error{constructor(t,e,r){if(e instanceof F)return e;super(`[${t}] ${e instanceof Error?e.message:e}`),this.code=r,e instanceof Error&&(this.stack=e.stack)}}class _ extends F{constructor(t,e=_.name,r=400){super(e,t,r)}}class Y extends _{constructor(t){super(t,Y.name,422)}}class H extends F{constructor(t,e=H.name,r=500){super(e,t,r)}}class V extends H{constructor(t){super(t,V.name,500)}}class z extends _{constructor(t){super(t,z.name,404)}}class K extends _{constructor(t){super(t,K.name,409)}}const Q=(t,e,r,n)=>{const s=r.constructor.name;if(!s)throw new H("Could not determine model class");n=n||{},t.props.handlers[s]&&t.props.handlers[s][e]&&(n={...t.props.handlers[s][e],...n});let a=Object.getPrototypeOf(r);return a===Object.prototype?n:(a.constructor.name===s&&(a=Object.getPrototypeOf(a)),Q(t,e,a,n))};async function q(t,e,r,n,s,a){const o=B(r,n,s);if(!o)return;const i=tt(X(W(r,o,s)));for(const o of i){const i=[e,o.data.length>1?o.data:o.data[0],o.prop.length>1?o.prop:o.prop[0],r];if(n===j.UPDATE&&s===j.ON){if(!a)throw new H("Missing old model for update operation");i.push(a)}try{await o.handler.apply(t,i)}catch(t){const n=`Failed to execute handler ${o.handler.name} for ${o.prop} on ${r.constructor.name} due to error: ${t}`;if(e.get("breakOnHandlerError"))throw new H(n)}}}function B(t,e,r){const n=w.getAllPropertyDecorators(t,j.REFLECT+(r||""));if(n)return Object.keys(n).reduce((t,r)=>{const s=n[r].filter(t=>t.key===e);return s&&s.length&&(t||(t={}),t[r]=s),t},void 0)}const G=(e,r,...n)=>{const s=r||{},a=w.getAllPropertyDecorators(e,...n);if(a&&(e=>{Object.entries(e).forEach(([e,r])=>{s[e]=s[e]||[],((e,...r)=>{r.forEach(r=>{let n;if(!(n=s[e].find(t=>t.key===r.key))||n.props.operation!==r.props.operation)return void s[e].push(r);if(r.key===t.TYPE)return;const{handlers:a,operation:o}=r.props;if(!o||!o.match(RegExp(`^(:?${j.ON}|${j.AFTER})(:?${j.CREATE}|${j.READ}|${j.UPDATE}|${j.DELETE})$`)))return void s[e].push(r);const i=n.props.handlers;Object.entries(a).forEach(([t,e])=>{t in i?Object.entries(e).forEach(([e,r])=>{e in i[t]?Object.entries(r).forEach(([r,n])=>{r in i[t][e]||(i[t][e][r]=n)}):i[t][e]=r}):i[t]=e})})})(e,...r)})})(a),Object.getPrototypeOf(e)===Object.prototype)return s;const o=Object.getPrototypeOf(e);return o?G(o,s,...n):s},J=50,Z={priority:J};function W(t,e,r){const n=[];for(const s in e){const a=e[s];for(const e of a){const{key:a}=e,o=U.get(t,s,r+a);if(!o||!o.length)throw new H(`Could not find registered handler for the operation ${r+a} under property ${s}`);const i=Q(e,s,t);if(!i||Object.values(i).length!==o.length)throw new H("Args and handlers length do not match");for(let t=0;t<o.length;t++){const e=i[o[t].name].data;n.push({handler:o[t],data:[e],prop:[s]})}}}return n}function X(t){const e=t.reduce((t,e)=>{if(!e||!e.data||!e.prop)throw new H("Missing decorator properties or data");if(!e.data[0].group)return t.set(Symbol(),e),t;const r=e.data[0].group;if(t.has(r)){const n=t.get(r);t.set(r,{handler:n.handler,data:[...n.data,...e.data],prop:[...n.prop,...e.prop]})}else t.set(r,{...e});return t},new Map),r=Array.from(e.values());return r.forEach(t=>{const e=t.data.map((e,r)=>({data:e,prop:t.prop[r]}));e.sort((t,e)=>(t.data.groupPriority??50)-(e.data.groupPriority??50)),t.data=e.map(t=>t.data),t.prop=e.map(t=>t.prop)}),r}function tt(t){return t.sort((t,e)=>(t.data[0].priority??J)-(e.data[0].priority??J)),t}function et(t,e,r){return it(M.CREATE_UPDATE,t,e,r)}function rt(t,e,r){return it(M.UPDATE,t,e,r)}function nt(t,e,r){return it(M.CREATE,t,e,r)}function st(t,e,r){return it(M.READ,t,e,r)}function at(t,e,r){return it(M.DELETE,t,e,r)}function ot(t,e,r){return it(M.ALL,t,e,r)}function it(t=M.ALL,e,r,n){return Et(j.ON,t,e,r,n)}function ct(t,e,r){return ft(M.CREATE_UPDATE,t,e,r)}function ut(t,e,r){return ft(M.UPDATE,t,e,r)}function lt(t,e,r){return ft(M.CREATE,t,e,r)}function pt(t,e,r){return ft(M.READ,t,e,r)}function dt(t,e,r){return ft(M.DELETE,t,e,r)}function ht(t,e,r){return ft(M.ALL,t,e,r)}function ft(t=M.ALL,e,r,n){return Et(j.AFTER,t,e,r,n)}function Et(t,e=M.ALL,r,n,s=Z){return(a,i)=>{const c=a.constructor.name,u=e.reduce((e,u)=>{const l=t+u;let p=Reflect.getMetadata(U.key(l),a,i);p||(p={operation:u,handlers:{}});const d=U.getHandlerName(r);let h=s;if(n){if(Object.keys(n).filter(t=>t in s).length>0)throw new H("Unable to merge groupSort into dataToAdd due to overlaping keys");h={...s,...n}}return p.handlers[c]&&p.handlers[c][i]&&d in p.handlers[c][i]||(p.handlers[c]=p.handlers[c]||{},p.handlers[c][i]=p.handlers[c][i]||{},p.handlers[c][i][d]={data:h},e.push(((t,e)=>(r,n)=>{U.register(e,t,r,n)})(l,r),o(U.key(l),p))),e},[]);return P(...u)(a,i)}}function yt(t,e){return(...r)=>O(t,{args:r,handler:e})}const mt=t=>yt(j.REFLECT+j.BLOCK,(t,e)=>t.includes(e))(t),At={parentContext:void 0,childContexts:[],ignoredValidationProperties:[],callArgs:[],writeOperation:!1,affectedTables:[],operation:void 0,breakOnHandlerError:!0,rebuildWithTransient:!0},gt=t=>(new Tt).accumulate(Object.assign({},t,{timestamp:new Date}));class Tt{constructor(){this.cache=new D,Object.defineProperty(this,"cache",{value:new D,writable:!1,enumerable:!1,configurable:!0})}static{this.factory=gt}accumulate(t){return Object.defineProperty(this,"cache",{value:this.cache.accumulate(t),writable:!1,enumerable:!1,configurable:!0}),this}get timestamp(){return this.cache.timestamp}get(t){try{return this.cache.get(t)}catch(e){const r=this.cache.parentContext;if(r)return r.get(t);throw e}}static childFrom(t,e){return Tt.factory(Object.assign({},t.cache,e||{}))}static async from(t,e,r,...n){return Tt.factory(Object.assign({},At,e,{operation:t,model:r}))}static async args(t,e,r,n,s){const a=r.pop();async function o(){return n?n.context(t,s||{},e,...r):Tt.from(t,s||{},e,...r)}let i;return a?a instanceof Tt?(i=a,r.push(a)):(r.push(a),i=await o(),r.push(i)):(i=await o(),r.push(i)),{context:i,args:r}}}function wt(t,e,r,n){const s=async function(...t){const n=await Promise.resolve(r.call(this,...t));return Promise.resolve(e.apply(this,n))}.bind(t),a=n||e.name;Object.defineProperty(s,"name",{enumerable:!0,configurable:!0,writable:!1,value:a}),t[a]=s}function Pt(t,e,r,n){const s=async function(...t){const n=await Promise.resolve(e.call(this,...t));return r.call(this,...n)}.bind(t),a=n||e.name;Object.defineProperty(s,"name",{enumerable:!0,configurable:!0,writable:!1,value:a}),t[a]=s}function Rt(t,e,r,n,s){const a=s||r.name;t[a]=new Proxy(t[a],{apply:async(t,r,s)=>{let a=e.call(r,...s);a instanceof Promise&&(a=await a);const o=a[a.length-1];if(!(o instanceof Tt))throw new H("Missing a context");let i=await t.call(r,...a);return i instanceof Promise&&(i=await i),i=n.call(r,i,o),i instanceof Promise&&(i=await i),i}})}function Ot(e){const r=G(e,void 0,b.REFLECT+b.ID),n=Object.entries(r).reduce((e,[r,n])=>{const s=n.filter(e=>e.key!==t.TYPE);return s&&s.length&&(e[r]=e[r]||[],e[r].push(...s)),e},{});if(!n||!Object.keys(n).length)throw new H("Could not find ID decorated Property");if(Object.keys(n).length>1)throw new H(i(Object.keys(n).join(", ")));const s=Object.keys(n)[0];if(!s)throw new H("Could not find ID decorated Property");return{id:s,props:n[s][0].props}}function Dt(t,e=!1){const r=Ot(t).id,n=t[r];if(void 0===n&&!e)throw new H("No value for the Id is defined under the property "+r);return n}class bt{get class(){if(!this._class)throw new H("No class definition found for this repository");return this._class}get pk(){if(!this._pk){const{id:t,props:e}=Ot(new this.class);this._pk=t,this._pkProps=e}return this._pk}get pkProps(){return this._pkProps||this.pk,this._pkProps}constructor(t){t&&(this._class=t);const e=this;[this.create,this.read,this.update,this.delete].forEach(t=>{const r=t.name;Rt(e,e[r+"Prefix"],t,e[r+"Suffix"])})}async createAll(t,...e){return Promise.all(t.map(t=>this.create(t,...e)))}async createPrefix(t,...e){const r=await Tt.args(j.CREATE,this.class,e);return t=new this.class(t),await q(this,r.context,t,j.CREATE,j.ON),[t,...r.args]}async createSuffix(t,e){return await q(this,e,t,j.CREATE,j.AFTER),t}async createAllPrefix(t,...e){const r=await Tt.args(j.CREATE,this.class,e);return await Promise.all(t.map(async t=>(t=new this.class(t),await q(this,r.context,t,j.CREATE,j.ON),t))),[t,...r.args]}async createAllSuffix(t,e){return await Promise.all(t.map(t=>q(this,e,t,j.CREATE,j.AFTER))),t}async readAll(t,...e){return await Promise.all(t.map(t=>this.read(t,...e)))}async readSuffix(t,e){return await q(this,e,t,j.READ,j.AFTER),t}async readPrefix(t,...e){const r=await Tt.args(j.READ,this.class,e),n=new this.class;return n[this.pk]=t,await q(this,r.context,n,j.READ,j.ON),[t,...r.args]}async readAllPrefix(t,...e){const r=await Tt.args(j.READ,this.class,e);return await Promise.all(t.map(async t=>{const e=new this.class;return e[this.pk]=t,q(this,r.context,e,j.READ,j.ON)})),[t,...r.args]}async readAllSuffix(t,e){return await Promise.all(t.map(t=>q(this,e,t,j.READ,j.AFTER))),t}async updateAll(t,...e){return Promise.all(t.map(t=>this.update(t,...e)))}async updateSuffix(t,e){return await q(this,e,t,j.UPDATE,j.AFTER),t}async updatePrefix(t,...e){const r=await Tt.args(j.UPDATE,this.class,e),n=t[this.pk];if(!n)throw new H("No value for the Id is defined under the property "+this.pk);const s=await this.read(n);return await q(this,r.context,t,j.UPDATE,j.ON,s),[t,...r.args]}async updateAllPrefix(t,...e){const r=await Tt.args(j.UPDATE,this.class,e);return await Promise.all(t.map(t=>(t=new this.class(t),q(this,r.context,t,j.UPDATE,j.ON),t))),[t,...r.args]}async updateAllSuffix(t,e){return await Promise.all(t.map(t=>q(this,e,t,j.UPDATE,j.AFTER))),t}async deleteAll(t,...e){return Promise.all(t.map(t=>this.delete(t,...e)))}async deleteSuffix(t,e){return await q(this,e,t,j.DELETE,j.AFTER),t}async deletePrefix(t,...e){const r=await Tt.args(j.DELETE,this.class,e),n=await this.read(t,...r.args);return await q(this,r.context,n,j.DELETE,j.ON),[t,...r.args]}async deleteAllPrefix(t,...e){const r=await Tt.args(j.DELETE,this.class,e),n=await this.readAll(t,...r.args);return await Promise.all(n.map(async t=>q(this,r.context,t,j.DELETE,j.ON))),[t,...r.args]}async deleteAllSuffix(t,e){return await Promise.all(t.map(t=>q(this,e,t,j.DELETE,j.AFTER))),t}merge(t,e){const r=t=>Object.entries(t).reduce((t,[e,r])=>(void 0!==r&&(t[e]=r),t),{});return new this.class(Object.assign({},r(t),r(e)))}toString(){return this.class.name+" Repository"}}class Lt extends bt{constructor(t){super(t)}async createPrefix(t,...e){const r=await Tt.args(j.CREATE,this.class,e);t=new this.class(t),await q(this,r.context,t,j.CREATE,j.ON);const n=await Promise.resolve(t.hasErrors());if(n)throw new Y(n.toString());return[t,...r.args]}async createAllPrefix(t,...e){const r=await Tt.args(j.CREATE,this.class,e);await Promise.all(t.map(async t=>(t=new this.class(t),await q(this,r.context,t,j.CREATE,j.ON),t)));const n=(await Promise.all(t.map(t=>Promise.resolve(t.hasErrors())))).reduce((t,e,r)=>(e&&(t="string"==typeof t?t+`\n - ${r}: ${e.toString()}`:` - ${r}: ${e.toString()}`),t),void 0);if(n)throw new Y(n);return[t,...r.args]}async updatePrefix(t,...e){const r=await Tt.args(j.UPDATE,this.class,e),n=t[this.pk];if(!n)throw new H("No value for the Id is defined under the property "+this.pk);const s=await this.read(n);t=this.merge(s,t),await q(this,r.context,t,j.UPDATE,j.ON,s);const a=await Promise.resolve(t.hasErrors(s));if(a)throw new Y(a.toString());return[t,...r.args]}async updateAllPrefix(t,...e){const r=await Tt.args(j.UPDATE,this.class,e),n=t.map(t=>{const e=t[this.pk];if(void 0===e)throw new H("No value for the Id is defined under the property "+this.pk);return e}),s=await this.readAll(n,...r.args);t=t.map((t,e)=>this.merge(s[e],t)),await Promise.all(t.map((t,e)=>q(this,r.context,t,j.UPDATE,j.ON,s[e])));const a=(await Promise.all(t.map((t,e)=>Promise.resolve(t.hasErrors(s[e]))))).reduce((t,e,r)=>(e&&(t="string"==typeof t?t+`\n - ${r}: ${e.toString()}`:` - ${r}: ${e.toString()}`),t),void 0);if(a)throw new Y(a);return[t,...r.args]}static key(t){return b.REFLECT+t}}function vt(t=k.READONLY.INVALID){const e=s.updateKey(b.READONLY);return c.for(e).define(o(e,{message:t})).apply()}async function kt(t,e,r,n){n[r]=t.timestamp}function St(t=M.CREATE_UPDATE,e=v){const r=s.updateKey(b.TIMESTAMP);return c.for(r).define({decorator:(t,e)=>{const n=[l(e,k.TIMESTAMP.DATE),p(k.TIMESTAMP.REQUIRED),o(s.key(b.TIMESTAMP),{operation:t,format:e}),it(t,kt)];return-1!==t.indexOf(j.UPDATE)?n.push(o(r,{message:k.TIMESTAMP.INVALID})):n.push(vt()),P(...n)},args:[t,e]}).apply()}async function It(t,e,r,n){if(n[r])try{n[r]=JSON.stringify(n[r])}catch(t){throw new V(`Failed to serialize ${r.toString()} property of model ${n.constructor.name}: e`)}}async function Nt(t,e,r,n){if(n[r]&&"string"==typeof n[r])try{n[r]=JSON.parse(n[r])}catch(t){throw new V(`Failed to deserialize ${r.toString()} property of model ${n.constructor.name}: ${t}`)}}function xt(){return P(et(It),ft(M.ALL,Nt),u([String.name,Object.name]),R(Lt.key(b.SERIALIZE),{}))}function jt(){return P(p(),vt(),o(Lt.key(b.ID),{}))}function Ct(t,e){const r=[];for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&!e.includes(n)){const e=d(t,n,S.REFLECT),s=d(t,n).decorators.find(({key:t})=>t===h.LIST);s&&e.decorators.push(s),r.push(e)}return r}function Mt(t,e,r,n,a){const o=s.get(n.key);if(!o)throw Error("Missing validator for "+n.key);if(!o.updateHasErrors)return f(void 0,a);if(!a&&n.props.async)return f(void 0,a);const i=Object.values(n.props)||{},c=o.updateHasErrors(t[r],e[r],...i);return f(c,a)}function $t(t,e,r,n,s){const a={};for(const o of n){if(!s&&o.props.async)continue;let n=Mt(t,e,r,o,s);if(o.key===h.LIST&&(!n||s)){const a=t[r],i=e[r],c=a instanceof Set?[...a]:a,u=i instanceof Set?[...i]:i;if(c&&c.length>0){const t=[o.props.class||o.props.clazz||o.props.customTypes].flat().map(t=>((t=(t="function"!=typeof t||t.name?t:t()).name?t.name:t)+"").toLowerCase()),e=c.map(e=>{const r=Dt(e,!0);if(!r)return"Failed to find model id";const n=u.find(t=>r===Dt(t,!0));return E.isModel(e)?e.hasErrors(n):t.includes(typeof e)?void 0:"Value has no validatable type"});if(s)n=Promise.all(e).then(t=>t.every(t=>!t)?void 0:t);else{const t=e.every(t=>!t);n=e.length>0&&!t?e:void 0}}}n&&(a[o.key]=n)}if(!s)return Object.keys(a).length>0?a:void 0;const o=Object.keys(a),i=Object.values(a);return Promise.all(i).then(t=>{const e={};for(let r=0;r<t.length;r++){const n=t[r];void 0!==n&&(e[o[r]]=n)}return Object.keys(e).length>0?e:void 0})}function Ut(e,r,n,...s){const a=Ct(r,s),o={},i={};for(const{prop:s,decorators:c}of a){const a=s+"";let u=r[s];if(!c?.length)continue;const l=c.find(e=>[t.TYPE,h.TYPE].includes(e.key));if(!l)continue;const p=l.props.name;if([Array.name,Set.name].includes(p)){const{decorators:e}=w.getPropertyDecorators(h.REFLECT,r,a);if(!e.some(t=>t.key===h.LIST)){o[a]={[h.TYPE]:`Array or Set property '${a}' requires a @list decorator`};continue}if(u&&!(Array.isArray(u)||u instanceof Set)){o[a]={[h.TYPE]:`Property '${s+""}' must be either an array or a Set`};continue}for(let r=e.length-1;r>=0;r--)e[r].key===t.TYPE&&e.splice(r,1);u=u instanceof Set?[...u]:u}const d=$t(r,e,a,c,n)||{},f=E.isPropertyModel(r,a);if(u&&f){const t=u;"object"!=typeof t||!t.hasErrors||"function"!=typeof t.hasErrors||(i[a]=t.hasErrors(e[s]))}(Object.keys(d).length>0||n)&&(o[a]=d),n||Object.entries(i[a]||{}).forEach(([t,e])=>{void 0!==e&&(o[`${a}.${t}`]=e)})}if(!n)return Object.keys(o).length>0?new y(o):void 0;const c=o,u=Object.keys(c),l=Object.values(c);return Promise.allSettled(l).then(async t=>{const e={};for(const[t,r]of Object.entries(i)){const n=await r;n&&Object.entries(n).forEach(([r,n])=>{void 0!==n&&(e[[t,r].join(".")]=n)})}for(let r=0;r<t.length;r++){const n=u[r],s=t[r];"fulfilled"===s.status&&void 0!==s.value?e[n]=s.value:"rejected"===s.status&&(e[n]=s.reason instanceof Error?s.reason.message:(s.reason||"Validation failed")+"")}return Object.keys(e).length>0?new y(e):void 0})}function Ft(t,e,r,n,s){if(void 0===n[r])return;const o=a.hash(n[r]);s&&n[r]===o||(n[r]=o)}function _t(){return P(et(Ft),o(Lt.key(b.HASH),{}))}function Yt(t,e,r,n){try{const{args:t,type:s,prefix:a,suffix:o,separator:i}=e,c=t.map(e=>{if(!(e in n))throw new H(`Property ${e} not found to compose from`);if("keys"===s)return e;if(void 0===n[e])throw new H(`Property ${t} does not contain a value to compose from`);return n[e].toString()});a&&c.unshift(a),o&&c.push(o),n[r]=c.join(i)}catch(t){throw new H("Failed to compose value: "+t)}}function Ht(t,e=!1,r=L,n="values",s="",a="",i={priority:55}){const c={args:t,hashResult:e,separator:r,type:n,prefix:s,suffix:a},u=[et(Yt,c,i),o(Lt.key(b.COMPOSED),c)];return e&&u.push(_t()),P(...u)}function Vt(t,e=L,r=!1,n="",s="",a={priority:55}){return Ht(t,r,e,"keys",n,s,a)}function zt(t,e=L,r=!1,n="",s="",a={priority:55}){return Ht(t,r,e,"values",n,s,a)}function Kt(t){return(e,r,n,s)=>{try{switch(t){case j.CREATE:s[n]=1;break;case j.UPDATE:s[n]++;break;default:throw new H("Invalid operation: "+t)}}catch(t){throw new H("Failed to update version: "+t)}}}function Qt(){const t=Lt.key(b.VERSION);return c.for(t).define(u(Number.name),nt(Kt(j.CREATE)),rt(Kt(j.UPDATE)),o(t,!0)).apply()}function qt(){const t=Lt.key(b.TRANSIENT);return c.for(t).define((t,e)=>{o(Lt.key(b.TRANSIENT),!0)(t,e),o(Lt.key(b.TRANSIENT),!0)(t.constructor)}).apply()}function Bt(t){return!(!Reflect.getMetadata(Lt.key(b.TRANSIENT),t.constructor)&&!Reflect.getMetadata(Lt.key(b.TRANSIENT),E.get(t.constructor.name)))}function Gt(t){if(!Bt(t))return{model:t};const e=G(t,void 0,Lt.key(b.TRANSIENT)),r=Object.entries(e).reduce((e,[r,n])=>{if(n.find(t=>""===t.key)){e.transient=e.transient||{};try{e.transient[r]=t[r]}catch(t){throw new V(`Failed to serialize transient property ${r}: ${t}`)}}else e.model=e.model||{},e.model[r]=t[r];return e},{});return r.model=E.build(r.model,t.constructor.name),r}E.prototype.hasErrors=function(t,...e){!t||t instanceof E||(e.unshift(t),t=void 0);const r=this.isAsync(),n=m(this,r,...e);return r?Promise.resolve(n).then(n=>n||!t?n:Ut(t,this,r,...e)):n||!t?n:Ut(t,this,r,...e)};const Jt="##VERSION##";export{_ as BadRequestError,F as BaseError,bt as BaseRepository,mt as BlockOperations,C as BulkCrudOperationKeys,K as ConflictError,Tt as Context,b as DBKeys,M as DBOperations,k as DEFAULT_ERROR_MESSAGES,v as DEFAULT_TIMESTAMP_FORMAT,gt as DefaultContextFactory,At as DefaultRepositoryFlags,L as DefaultSeparator,H as InternalError,z as NotFoundError,j as OperationKeys,U as Operations,$ as OperationsRegistry,I as ReadOnlyValidator,Lt as Repository,V as SerializationError,N as TimestampValidator,S as UpdateValidationKeys,x as UpdateValidator,Jt as VERSION,Y as ValidationError,ft as after,ht as afterAny,lt as afterCreate,ct as afterCreateUpdate,dt as afterDelete,pt as afterRead,ut as afterUpdate,zt as composed,Yt as composedFromCreateUpdate,Vt as composedFromKeys,q as enforceDBDecorators,Dt as findModelId,Ot as findPrimaryKey,G as getAllPropertyDecoratorsRecursive,B as getDbDecorators,Q as getHandlerArgs,W as getHandlersDecorators,Ct as getValidatableUpdateProps,X as groupDecorators,_t as hash,Ft as hashOnCreateUpdate,jt as id,Bt as isTransient,Gt as modelToTransient,it as on,ot as onAny,nt as onCreate,et as onCreateUpdate,at as onDelete,st as onRead,rt as onUpdate,Et as operation,wt as prefixMethod,vt as readonly,xt as serialize,Nt as serializeAfterAll,It as serializeOnCreateUpdate,tt as sortDecorators,yt as storeHandlerMetadata,Pt as suffixMethod,St as timestamp,kt as timestampHandler,qt as transient,Ut as validateCompare,Mt as validateDecorator,$t as validateDecorators,Qt as version,Kt as versionCreateUpdate,Rt as wrapMethodWithContext};
|
|
2
|
+
//# sourceMappingURL=db-decorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-decorators.js","sources":["../src/model/constants.ts","../src/validation/constants.ts","../src/validation/validators/ReadOnlyValidator.ts","../src/validation/validators/TimestampValidator.ts","../src/validation/validators/UpdateValidator.ts","../src/operations/constants.ts","../src/validation/validation.ts","../src/operations/OperationsRegistry.ts","../src/operations/Operations.ts","../src/repository/errors.ts","../src/repository/utils.ts","../src/operations/decorators.ts","../src/repository/constants.ts","../src/repository/Context.ts","../src/repository/wrappers.ts","../src/identity/utils.ts","../src/repository/BaseRepository.ts","../src/repository/Repository.ts","../src/validation/decorators.ts","../src/identity/decorators.ts","../src/model/validation.ts","../src/model/decorators.ts","../src/model/utils.ts","../src/model/overrides.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DBKeys","REFLECT","ModelKeys","REPOSITORY","CLASS","ID","INDEX","UNIQUE","SERIALIZE","READONLY","TIMESTAMP","TRANSIENT","HASH","COMPOSED","VERSION","ORIGINAL","DefaultSeparator","DEFAULT_TIMESTAMP_FORMAT","DEFAULT_ERROR_MESSAGES","INVALID","REQUIRED","DATE","UpdateValidationKeys","ReadOnlyValidator","Validator","constructor","super","hasErrors","value","args","updateHasErrors","oldValue","message","undefined","isEqual","this","getMessage","__decorate","validator","TimestampValidator","Date","e","UpdateValidator","DecoratorMessages","DEFAULT","acceptedTypes","OperationKeys","BulkCrudOperationKeys","Validation","updateKey","key","DBOperations","CREATE","READ","UPDATE","DELETE","CREATE_UPDATE","READ_CREATE","ALL","OperationsRegistry","cache","get","target","propKey","operation","accum","name","unshift","Object","values","prototype","getPrototypeOf","proto","register","handler","handlerName","Operations","getHandlerName","Hashing","hash","toString","str","targetName","registry","getOpRegistry","BaseError","Error","msg","code","stack","BadRequestError","ValidationError","InternalError","SerializationError","NotFoundError","ConflictError","getHandlerArgs","dec","prop","m","props","handlers","async","enforceDBDecorators","repo","context","model","prefix","oldModel","decorators","getDbDecorators","sortedDecorators","sortDecorators","groupDecorators","getHandlersDecorators","data","length","ON","push","apply","extraPrefix","Reflection","getAllPropertyDecorators","keys","reduce","decorator","filter","d","getAllPropertyDecoratorsRecursive","prefixes","accumulator","decs","entries","forEach","val","match","find","TYPE","RegExp","AFTER","accumHandlers","clazz","handlerDef","handlerProp","handlerKey","argsObj","pushOrSquash","mergeDecorators","defaultPriority","DefaultGroupSort","priority","handlerArgs","i","grouped","acc","group","set","Symbol","groupKey","has","existing","Map","groups","Array","from","combined","map","sort","a","b","groupPriority","c","onCreateUpdate","groupsort","on","onUpdate","onCreate","onRead","onDelete","onAny","op","afterCreateUpdate","after","afterUpdate","afterCreate","afterRead","afterDelete","afterAny","baseOp","dataToAdd","propertyKey","compoundKey","Reflect","getMetadata","mergeData","handle","propMetadata","storeHandlerMetadata","params","metadata","BlockOperations","operations","BLOCK","includes","DefaultRepositoryFlags","parentContext","childContexts","ignoredValidationProperties","callArgs","writeOperation","affectedTables","breakOnHandlerError","rebuildWithTransient","DefaultContextFactory","arg","Context","accumulate","assign","timestamp","ObjectAccumulator","defineProperty","writable","enumerable","configurable","factory","parent","childFrom","overrides","contextual","last","pop","getContext","prefixMethod","obj","afterName","wrapped","results","Promise","resolve","call","bind","suffixMethod","before","suffix","beforeName","wrapMethodWithContext","method","methodName","Proxy","thisArg","argArray","transformedArgs","findPrimaryKey","idDecorators","filtered","sf","join","idProp","id","findModelId","returnEmpty","modelId","BaseRepository","_class","pk","_pk","class","_pkProps","pkProps","self","create","read","update","delete","createAll","models","all","createPrefix","contextArgs","createSuffix","createAllPrefix","createAllSuffix","readAll","readSuffix","readPrefix","readAllPrefix","k","readAllSuffix","updateAll","updateSuffix","updatePrefix","updateAllPrefix","updateAllSuffix","deleteAll","deleteSuffix","deletePrefix","deleteAllPrefix","deleteAllSuffix","merge","extract","Repository","errors","ids","oldModels","readonly","Decoration","for","define","timestampHandler","format","date","required","indexOf","serializeOnCreateUpdate","JSON","stringify","serializeAfterAll","parse","serialize","type","String","getValidatableUpdateProps","propsToIgnore","decoratedProperties","hasOwnProperty","validationPropertyDefinition","getValidationDecorators","listDecorator","ValidationKeys","LIST","validateDecorator","newModel","toConditionalPromise","decoratorProps","maybeError","validateDecorators","result","validationErrors","newPropValue","oldPropValue","newValues","Set","oldValues","allowedTypes","customTypes","flat","t","toLowerCase","errs","childValue","el","Model","isModel","then","every","r","allEmpty","promises","resolvedValues","res","validateCompare","exceptions","nestedErrors","propValue","designTypeDec","designType","getPropertyDecorators","some","isArray","splice","propErrors","isConstr","isPropertyModel","instance","error","ModelErrorDefinition","merged","allSettled","parentProp","nestedErrPromise","nestedPropDecErrors","nestedProp","nestedPropDecError","status","reason","hashOnCreateUpdate","composedFromCreateUpdate","separator","composed","composedFrom","hashResult","composedFromKeys","versionCreateUpdate","version","Number","transient","attribute","isTransient","modelToTransient","build","previousVersion","exclusions","isAsync","validate","resolvedErrs"],"mappings":"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"}
|
|
@@ -13,4 +13,4 @@ import { apply } from "@decaf-ts/reflection";
|
|
|
13
13
|
export function id() {
|
|
14
14
|
return apply(required(), readonly(), propMetadata(Repository.key(DBKeys.ID), {}));
|
|
15
15
|
}
|
|
16
|
-
//# sourceMappingURL=
|
|
16
|
+
//# sourceMappingURL=decorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/identity/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,iCAAsB;AACzC,OAAO,EAAE,MAAM,EAAE,gCAA2B;AAC5C,OAAO,EAAE,UAAU,EAAE,iCAAsB;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,UAAU,EAAE;IAChB,OAAO,KAAK,CACV,QAAQ,EAAE,EACV,QAAQ,EAAE,EACV,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5C,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from "./decorators.js";
|
|
2
2
|
export * from "./utils.js";
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/identity/index.ts"],"names":[],"mappings":"AAAA,gCAA6B;AAC7B,2BAAwB"}
|
|
@@ -72,4 +72,4 @@ export function findModelId(model, returnEmpty = false) {
|
|
|
72
72
|
throw new InternalError(`No value for the Id is defined under the property ${idProp}`);
|
|
73
73
|
return modelId;
|
|
74
74
|
}
|
|
75
|
-
//# sourceMappingURL=
|
|
75
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/identity/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gCAA2B;AAC5C,OAAO,EAAE,iCAAiC,EAAE,iCAA4B;AACxE,OAAO,EAAS,SAAS,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,kCAA6B;AAErD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,cAAc,CAAkB,KAAQ;IACtD,MAAM,UAAU,GAAG,iCAAiC,CAClD,KAAK,EACL,SAAS,EACT,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,EAAE,CAC3B,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,UAAoB,CAAC,CAAC,MAAM,CAC9D,CAAC,KAAmC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACpD,MAAM,QAAQ,GAAI,IAA0B,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,IAAI,CAChC,CAAC;QACF,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EACD,EAAE,CACH,CAAC;IAEF,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM;QACpD,MAAM,IAAI,aAAa,CAAC,sCAAsC,CAAC,CAAC;IAClE,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC;QACtC,MAAM,IAAI,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,aAAa,CAAC,sCAAsC,CAAC,CAAC;IAC7E,OAAO;QACL,EAAE,EAAE,MAAiB;QACrB,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;KACrC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,WAAW,CACzB,KAAQ,EACR,WAAW,GAAG,KAAK;IAEnB,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,WAAW;QAChD,MAAM,IAAI,aAAa,CACrB,qDAAqD,MAAgB,EAAE,CACxE,CAAC;IACJ,OAAO,OAAmC,CAAC;AAC7C,CAAC"}
|
package/lib/esm/index.d.ts
CHANGED
package/lib/esm/index.js
CHANGED
|
@@ -15,5 +15,5 @@ export * from "./validation/index.js";
|
|
|
15
15
|
* @const VERSION
|
|
16
16
|
* @memberOf module:db-decorators
|
|
17
17
|
*/
|
|
18
|
-
export const VERSION = "0.6.
|
|
19
|
-
//# sourceMappingURL=
|
|
18
|
+
export const VERSION = "0.6.13";
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,oCAA2B;AAC3B,sCAA6B;AAC7B,iCAAwB;AACxB,sCAA6B;AAC7B,sCAA6B;AAC7B,sCAA6B;AAE7B;;;;GAIG;AAGH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=BulkCrudOperator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BulkCrudOperator.js","sourceRoot":"","sources":["../../../src/interfaces/BulkCrudOperator.ts"],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=Contextual.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Contextual.js","sourceRoot":"","sources":["../../../src/interfaces/Contextual.ts"],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=CrudOperator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CrudOperator.js","sourceRoot":"","sources":["../../../src/interfaces/CrudOperator.ts"],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=IRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IRepository.js","sourceRoot":"","sources":["../../../src/interfaces/IRepository.ts"],"names":[],"mappings":""}
|
|
@@ -2,4 +2,4 @@ export * from "./BulkCrudOperator.js";
|
|
|
2
2
|
export * from "./Contextual.js";
|
|
3
3
|
export * from "./CrudOperator.js";
|
|
4
4
|
export * from "./IRepository.js";
|
|
5
|
-
//# sourceMappingURL=
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,sCAAmC;AACnC,gCAA6B;AAC7B,kCAA+B;AAC/B,iCAA8B"}
|
|
@@ -35,4 +35,4 @@ export const DefaultSeparator = "_";
|
|
|
35
35
|
* @memberOf module:db-decorators
|
|
36
36
|
*/
|
|
37
37
|
export const DEFAULT_TIMESTAMP_FORMAT = "dd/MM/yyyy HH:mm:ss:S";
|
|
38
|
-
//# sourceMappingURL=
|
|
38
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/model/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,cAAc;IAC3C,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,QAAQ;IACf,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,eAAe;CAC1B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,uBAAuB,CAAC"}
|
|
@@ -219,4 +219,4 @@ export function transient() {
|
|
|
219
219
|
})
|
|
220
220
|
.apply();
|
|
221
221
|
}
|
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQW9CO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFFUCxZQUFZLEVBQ1osSUFBSSxHQUNMLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLHNDQUFpQztBQUU5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLGtDQUE2QjtBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLHNDQUFpQztBQUV0RCxPQUFPLEVBQTZCLGFBQWEsRUFBRSxpQ0FBc0I7QUFHekU7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBTXZCLE9BQVUsRUFBRSxJQUFPLEVBQUUsR0FBWSxFQUFFLEtBQVEsRUFBRSxRQUFZO0lBQ2xFLElBQUksT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssV0FBVztRQUFFLE9BQU87SUFDOUMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBRSxLQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvQyxJQUFJLFFBQVEsSUFBSyxLQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSTtRQUFFLE9BQU87SUFDckQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUNwQixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLElBQUk7SUFDbEIsT0FBTyxLQUFLLENBQ1YsY0FBYyxDQUFDLGtCQUFrQixDQUFDLEVBQ2xDLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJ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QUN2QixNQUFNLENBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFDakIsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUNuRCxRQUFRLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQ25ELFlBQVksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQ3hCO1NBQ0EsS0FBSyxFQUFFLENBQUM7QUFDYixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFNBQVM7SUFDdkIsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0MsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztTQUN2QixNQUFNLENBQUMsU0FBUyxTQUFTLENBQUMsS0FBVSxFQUFFLFNBQWM7UUFDbkQsWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN2RSxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFFLENBQUMsQ0FBQztTQUNELEtBQUssRUFBRSxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERCS2V5cywgRGVmYXVsdFNlcGFyYXRvciB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgYXBwbHkgfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcbmltcG9ydCB7XG4gIERlY29yYXRpb24sXG4gIEhhc2hpbmcsXG4gIE1vZGVsLFxuICBwcm9wTWV0YWRhdGEsXG4gIHR5cGUsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IG9uQ3JlYXRlLCBvbkNyZWF0ZVVwZGF0ZSwgb25VcGRhdGUgfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBJUmVwb3NpdG9yeSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL0lSZXBvc2l0b3J5XCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIi4uL3JlcG9zaXRvcnkvZXJyb3JzXCI7XG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIi4uL3JlcG9zaXRvcnkvUmVwb3NpdG9yeVwiO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCIuLi9yZXBvc2l0b3J5L0NvbnRleHRcIjtcbmltcG9ydCB7IENydWRPcGVyYXRpb25zLCBHcm91cFNvcnQsIE9wZXJhdGlvbktleXMgfSBmcm9tIFwiLi4vb3BlcmF0aW9uc1wiO1xuaW1wb3J0IHsgUmVwb3NpdG9yeUZsYWdzIH0gZnJvbSBcIi4uL3JlcG9zaXRvcnkvdHlwZXNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSGFzaGVzIGEgcHJvcGVydHkgdmFsdWUgZHVyaW5nIGNyZWF0ZSBvciB1cGRhdGUgb3BlcmF0aW9uc1xuICogQHN1bW1hcnkgQ2FsbGJhY2sgZnVuY3Rpb24gdXNlZCBieSB0aGUgaGFzaCBkZWNvcmF0b3IgdG8gYXBwbHkgaGFzaGluZyB0byBhIHByb3BlcnR5IHZhbHVlXG4gKiBAdGVtcGxhdGUgTSAtIFR5cGUgZXh0ZW5kaW5nIE1vZGVsXG4gKiBAdGVtcGxhdGUgUiAtIFR5cGUgZXh0ZW5kaW5nIElSZXBvc2l0b3J5XG4gKiBAdGVtcGxhdGUgViAtIFR5cGUgZm9yIG1ldGFkYXRhXG4gKiBAdGVtcGxhdGUgRiAtIFR5cGUgZXh0ZW5kaW5nIFJlcG9zaXRvcnlGbGFnc1xuICogQHRlbXBsYXRlIEMgLSBUeXBlIGV4dGVuZGluZyBDb250ZXh0XG4gKiBAcGFyYW0ge0N9IGNvbnRleHQgLSBUaGUgb3BlcmF0aW9uIGNvbnRleHRcbiAqIEBwYXJhbSB7Vn0gZGF0YSAtIE1ldGFkYXRhIGZvciB0aGUgb3BlcmF0aW9uXG4gKiBAcGFyYW0ga2V5IC0gVGhlIHByb3BlcnR5IGtleSB0byBoYXNoXG4gKiBAcGFyYW0ge019IG1vZGVsIC0gVGhlIG1vZGVsIGJlaW5nIHByb2Nlc3NlZFxuICogQHBhcmFtIHtNfSBbb2xkTW9kZWxdIC0gVGhlIHByZXZpb3VzIG1vZGVsIHN0YXRlIChmb3IgdXBkYXRlcylcbiAqIEByZXR1cm4ge3ZvaWR9XG4gKiBAZnVuY3Rpb24gaGFzaE9uQ3JlYXRlVXBkYXRlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRiLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc2hPbkNyZWF0ZVVwZGF0ZTxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBSIGV4dGVuZHMgSVJlcG9zaXRvcnk8TSwgRiwgQz4sXG4gIFYgZXh0ZW5kcyBvYmplY3QsXG4gIEYgZXh0ZW5kcyBSZXBvc2l0b3J5RmxhZ3MgPSBSZXBvc2l0b3J5RmxhZ3MsXG4gIEMgZXh0ZW5kcyBDb250ZXh0PEY+ID0gQ29udGV4dDxGPixcbj4odGhpczogUiwgY29udGV4dDogQywgZGF0YTogViwga2V5OiBrZXlvZiBNLCBtb2RlbDogTSwgb2xkTW9kZWw/OiBNKTogdm9pZCB7XG4gIGlmICh0eXBlb2YgbW9kZWxba2V5XSA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuO1xuICBjb25zdCBoYXNoID0gSGFzaGluZy5oYXNoKChtb2RlbCBhcyBhbnkpW2tleV0pO1xuICBpZiAob2xkTW9kZWwgJiYgKG1vZGVsIGFzIGFueSlba2V5XSA9PT0gaGFzaCkgcmV0dXJuO1xuICBtb2RlbFtrZXldID0gaGFzaDtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIGRlY29yYXRvciB0aGF0IGhhc2hlcyBhIHByb3BlcnR5IHZhbHVlXG4gKiBAc3VtbWFyeSBEZWNvcmF0b3IgdGhhdCBhdXRvbWF0aWNhbGx5IGhhc2hlcyBhIHByb3BlcnR5IHZhbHVlIGR1cmluZyBjcmVhdGUgYW5kIHVwZGF0ZSBvcGVyYXRpb25zXG4gKiBAcmV0dXJuIHtQcm9wZXJ0eURlY29yYXRvcn0gQSBkZWNvcmF0b3IgdGhhdCBjYW4gYmUgYXBwbGllZCB0byBjbGFzcyBwcm9wZXJ0aWVzXG4gKiBAZnVuY3Rpb24gaGFzaFxuICogQGNhdGVnb3J5IFByb3BlcnR5IERlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc2goKSB7XG4gIHJldHVybiBhcHBseShcbiAgICBvbkNyZWF0ZVVwZGF0ZShoYXNoT25DcmVhdGVVcGRhdGUpLFxuICAgIHByb3BNZXRhZGF0YShSZXBvc2l0b3J5LmtleShEQktleXMuSEFTSCksIHt9KVxuICApO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNZXRhZGF0YSBmb3IgY29tcG9zZWQgcHJvcGVydHkgZGVjb3JhdG9yc1xuICogQHN1bW1hcnkgQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBwcm9wZXJ0eSBjb21wb3NpdGlvbiBmcm9tIG90aGVyIHByb3BlcnRpZXNcbiAqIEB0eXBlZGVmIHtPYmplY3R9IENvbXBvc2VkRnJvbU1ldGFkYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBhcmdzIC0gUHJvcGVydHkgbmFtZXMgdG8gY29tcG9zZSBmcm9tXG4gKiBAcHJvcGVydHkge3N0cmluZ30gc2VwYXJhdG9yIC0gQ2hhcmFjdGVyIHVzZWQgdG8gam9pbiB0aGUgY29tcG9zZWQgdmFsdWVzXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGhhc2hSZXN1bHQgLSBXaGV0aGVyIHRvIGhhc2ggdGhlIGNvbXBvc2VkIHJlc3VsdFxuICogQHByb3BlcnR5IHtcImtleXNcInxcInZhbHVlc1wifSB0eXBlIC0gV2hldGhlciB0byB1c2UgcHJvcGVydHkga2V5cyBvciB2YWx1ZXNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbcHJlZml4XSAtIE9wdGlvbmFsIHByZWZpeCB0byBhZGQgdG8gdGhlIGNvbXBvc2VkIHZhbHVlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3N1ZmZpeF0gLSBPcHRpb25hbCBzdWZmaXggdG8gYWRkIHRvIHRoZSBjb21wb3NlZCB2YWx1ZVxuICogQG1lbWJlck9mIG1vZHVsZTpkYi1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCB0eXBlIENvbXBvc2VkRnJvbU1ldGFkYXRhID0ge1xuICBhcmdzOiBzdHJpbmdbXTtcbiAgc2VwYXJhdG9yOiBzdHJpbmc7XG4gIGhhc2hSZXN1bHQ6IGJvb2xlYW47XG4gIHR5cGU6IFwia2V5c1wiIHwgXCJ2YWx1ZXNcIjtcbiAgcHJlZml4Pzogc3RyaW5nO1xuICBzdWZmaXg/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb21wb3NlcyBhIHByb3BlcnR5IHZhbHVlIGZyb20gb3RoZXIgcHJvcGVydGllcyBkdXJpbmcgY3JlYXRlIG9yIHVwZGF0ZSBvcGVyYXRpb25zXG4gKiBAc3VtbWFyeSBDYWxsYmFjayBmdW5jdGlvbiB1c2VkIGJ5IGNvbXBvc2VkIGRlY29yYXRvcnMgdG8gZ2VuZXJhdGUgYSBwcm9wZXJ0eSB2YWx1ZSBmcm9tIG90aGVyIHByb3BlcnRpZXNcbiAqIEB0ZW1wbGF0ZSBNIC0gVHlwZSBleHRlbmRpbmcgTW9kZWxcbiAqIEB0ZW1wbGF0ZSBSIC0gVHlwZSBleHRlbmRpbmcgSVJlcG9zaXRvcnlcbiAqIEB0ZW1wbGF0ZSBWIC0gVHlwZSBleHRlbmRpbmcgQ29tcG9zZWRGcm9tTWV0YWRhdGFcbiAqIEB0ZW1wbGF0ZSBGIC0gVHlwZSBleHRlbmRpbmcgUmVwb3NpdG9yeUZsYWdzXG4gKiBAdGVtcGxhdGUgQyAtIFR5cGUgZXh0ZW5kaW5nIENvbnRleHRcbiAqIEBwYXJhbSB7Q30gY29udGV4dCAtIFRoZSBvcGVyYXRpb24gY29udGV4dFxuICogQHBhcmFtIHtWfSBkYXRhIC0gTWV0YWRhdGEgZm9yIHRoZSBjb21wb3NpdGlvblxuICogQHBhcmFtIGtleSAtIFRoZSBwcm9wZXJ0eSBrZXkgdG8gc2V0IHRoZSBjb21wb3NlZCB2YWx1ZSBvblxuICogQHBhcmFtIHtNfSBtb2RlbCAtIFRoZSBtb2RlbCBiZWluZyBwcm9jZXNzZWRcbiAqIEByZXR1cm4ge3ZvaWR9XG4gKiBAZnVuY3Rpb24gY29tcG9zZWRGcm9tQ3JlYXRlVXBkYXRlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRiLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvc2VkRnJvbUNyZWF0ZVVwZGF0ZTxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBSIGV4dGVuZHMgSVJlcG9zaXRvcnk8TSwgRiwgQz4sXG4gIFYgZXh0ZW5kcyBDb21wb3NlZEZyb21NZXRhZGF0YSxcbiAgRiBleHRlbmRzIFJlcG9zaXRvcnlGbGFncyA9IFJlcG9zaXRvcnlGbGFncyxcbiAgQyBleHRlbmRzIENvbnRleHQ8Rj4gPSBDb250ZXh0PEY+LFxuPih0aGlzOiBSLCBjb250ZXh0OiBDLCBkYXRhOiBWLCBrZXk6IGtleW9mIE0sIG1vZGVsOiBNKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgeyBhcmdzLCB0eXBlLCBwcmVmaXgsIHN1ZmZpeCwgc2VwYXJhdG9yIH0gPSBkYXRhO1xuICAgIGNvbnN0IGNvbXBvc2VkID0gYXJncy5tYXAoKGFyZzogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoIShhcmcgaW4gbW9kZWwpKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgUHJvcGVydHkgJHthcmd9IG5vdCBmb3VuZCB0byBjb21wb3NlIGZyb21gKTtcbiAgICAgIGlmICh0eXBlID09PSBcImtleXNcIikgcmV0dXJuIGFyZztcbiAgICAgIGlmICh0eXBlb2YgKG1vZGVsIGFzIGFueSlbYXJnXSA9PT0gXCJ1bmRlZmluZWRcIilcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgYFByb3BlcnR5ICR7YXJnc30gZG9lcyBub3QgY29udGFpbiBhIHZhbHVlIHRvIGNvbXBvc2UgZnJvbWBcbiAgICAgICAgKTtcbiAgICAgIHJldHVybiAoKG1vZGVsIGFzIGFueSlbYXJnXSBhcyBhbnkpLnRvU3RyaW5nKCk7XG4gICAgfSk7XG5cbiAgICBpZiAocHJlZml4KSBjb21wb3NlZC51bnNoaWZ0KHByZWZpeCk7XG4gICAgaWYgKHN1ZmZpeCkgY29tcG9zZWQucHVzaChzdWZmaXgpO1xuXG4gICAgKG1vZGVsIGFzIGFueSlba2V5XSA9IGNvbXBvc2VkLmpvaW4oc2VwYXJhdG9yKTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byBjb21wb3NlIHZhbHVlOiAke2V9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIGRlY29yYXRvciB0aGF0IGNvbXBvc2VzIGEgcHJvcGVydHkgdmFsdWUgZnJvbSBvdGhlciBwcm9wZXJ0aWVzXG4gKiBAc3VtbWFyeSBCYXNlIGZ1bmN0aW9uIGZvciBjcmVhdGluZyBwcm9wZXJ0eSBjb21wb3NpdGlvbiBkZWNvcmF0b3JzXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBhcmdzIC0gUHJvcGVydHkgbmFtZXMgdG8gY29tcG9zZSBmcm9tXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtoYXNoUmVzdWx0PWZhbHNlXSAtIFdoZXRoZXIgdG8gaGFzaCB0aGUgY29tcG9zZWQgcmVzdWx0XG4gKiBAcGFyYW0ge3N0cmluZ30gW3NlcGFyYXRvcj1EZWZhdWx0U2VwYXJhdG9yXSAtIENoYXJhY3RlciB1c2VkIHRvIGpvaW4gdGhlIGNvbXBvc2VkIHZhbHVlc1xuICogQHBhcmFtIHtcImtleXNcInxcInZhbHVlc1wifSBbdHlwZT1cInZhbHVlc1wiXSAtIFdoZXRoZXIgdG8gdXNlIHByb3BlcnR5IGtleXMgb3IgdmFsdWVzXG4gKiBAcGFyYW0ge3N0cmluZ30gW3ByZWZpeD1cIlwiXSAtIE9wdGlvbmFsIHByZWZpeCB0byBhZGQgdG8gdGhlIGNvbXBvc2VkIHZhbHVlXG4gKiBAcGFyYW0ge3N0cmluZ30gW3N1ZmZpeD1cIlwiXSAtIE9wdGlvbmFsIHN1ZmZpeCB0byBhZGQgdG8gdGhlIGNvbXBvc2VkIHZhbHVlXG4gKiBAcGFyYW0ge0dyb3VwU29ydH0gZ3JvdXBzb3J0IC0gR3JvdXBTb3J0IGNvbmZpZ3VyYXRpb25cbiAqIEByZXR1cm4ge1Byb3BlcnR5RGVjb3JhdG9yfSBBIGRlY29yYXRvciB0aGF0IGNhbiBiZSBhcHBsaWVkIHRvIGNsYXNzIHByb3BlcnRpZXNcbiAqIEBmdW5jdGlvbiBjb21wb3NlZEZyb21cbiAqIEBjYXRlZ29yeSBQcm9wZXJ0eURlY29yYXRvcnNcbiAqL1xuZnVuY3Rpb24gY29tcG9zZWRGcm9tKFxuICBhcmdzOiBzdHJpbmdbXSxcbiAgaGFzaFJlc3VsdDogYm9vbGVhbiA9IGZhbHNlLFxuICBzZXBhcmF0b3I6IHN0cmluZyA9IERlZmF1bHRTZXBhcmF0b3IsXG4gIHR5cGU6IFwia2V5c1wiIHwgXCJ2YWx1ZXNcIiA9IFwidmFsdWVzXCIsXG4gIHByZWZpeCA9IFwiXCIsXG4gIHN1ZmZpeCA9IFwiXCIsXG4gIGdyb3Vwc29ydDogR3JvdXBTb3J0ID0geyBwcmlvcml0eTogNTUgfVxuKSB7XG4gIGNvbnN0IGRhdGE6IENvbXBvc2VkRnJvbU1ldGFkYXRhID0ge1xuICAgIGFyZ3M6IGFyZ3MsXG4gICAgaGFzaFJlc3VsdDogaGFzaFJlc3VsdCxcbiAgICBzZXBhcmF0b3I6IHNlcGFyYXRvcixcbiAgICB0eXBlOiB0eXBlLFxuICAgIHByZWZpeDogcHJlZml4LFxuICAgIHN1ZmZpeDogc3VmZml4LFxuICB9O1xuXG4gIGNvbnN0IGRlY29yYXRvcnMgPSBbXG4gICAgb25DcmVhdGVVcGRhdGUoY29tcG9zZWRGcm9tQ3JlYXRlVXBkYXRlLCBkYXRhLCBncm91cHNvcnQpLFxuICAgIHByb3BNZXRhZGF0YShSZXBvc2l0b3J5LmtleShEQktleXMuQ09NUE9TRUQpLCBkYXRhKSxcbiAgXTtcbiAgaWYgKGhhc2hSZXN1bHQpIGRlY29yYXRvcnMucHVzaChoYXNoKCkpO1xuICByZXR1cm4gYXBwbHkoLi4uZGVjb3JhdG9ycyk7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBkZWNvcmF0b3IgdGhhdCBjb21wb3NlcyBhIHByb3BlcnR5IHZhbHVlIGZyb20gcHJvcGVydHkga2V5c1xuICogQHN1bW1hcnkgRGVjb3JhdG9yIHRoYXQgZ2VuZXJhdGVzIGEgcHJvcGVydHkgdmFsdWUgYnkgam9pbmluZyB0aGUgbmFtZXMgb2Ygb3RoZXIgcHJvcGVydGllc1xuICogQHBhcmFtIHtzdHJpbmdbXX0gYXJncyAtIFByb3BlcnR5IG5hbWVzIHRvIGNvbXBvc2UgZnJvbVxuICogQHBhcmFtIHtzdHJpbmd9IFtzZXBhcmF0b3I9RGVmYXVsdFNlcGFyYXRvcl0gLSBDaGFyYWN0ZXIgdXNlZCB0byBqb2luIHRoZSBwcm9wZXJ0eSBuYW1lc1xuICogQHBhcmFtIHtib29sZWFufSBbaGFzaD1mYWxzZV0gLSBXaGV0aGVyIHRvIGhhc2ggdGhlIGNvbXBvc2VkIHJlc3VsdFxuICogQHBhcmFtIHtzdHJpbmd9IFtwcmVmaXg9XCJcIl0gLSBPcHRpb25hbCBwcmVmaXggdG8gYWRkIHRvIHRoZSBjb21wb3NlZCB2YWx1ZVxuICogQHBhcmFtIHtzdHJpbmd9IFtzdWZmaXg9XCJcIl0gLSBPcHRpb25hbCBzdWZmaXggdG8gYWRkIHRvIHRoZSBjb21wb3NlZCB2YWx1ZVxuICogQHBhcmFtIHtHcm91cFNvcnR9IGdyb3Vwc29ydCAtIEdyb3VwU29ydCBjb25maWd1cmF0aW9uXG4gKiBAcmV0dXJuIHtQcm9wZXJ0eURlY29yYXRvcn0gQSBkZWNvcmF0b3IgdGhhdCBjYW4gYmUgYXBwbGllZCB0byBjbGFzcyBwcm9wZXJ0aWVzXG4gKiBAZnVuY3Rpb24gY29tcG9zZWRGcm9tS2V5c1xuICogQGNhdGVnb3J5IFByb3BlcnR5RGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcG9zZWRGcm9tS2V5cyhcbiAgYXJnczogc3RyaW5nW10sXG4gIHNlcGFyYXRvcjogc3RyaW5nID0gRGVmYXVsdFNlcGFyYXRvcixcbiAgaGFzaDogYm9vbGVhbiA9IGZhbHNlLFxuICBwcmVmaXggPSBcIlwiLFxuICBzdWZmaXggPSBcIlwiLFxuICBncm91cHNvcnQ6IEdyb3VwU29ydCA9IHsgcHJpb3JpdHk6IDU1IH1cbikge1xuICByZXR1cm4gY29tcG9zZWRGcm9tKGFyZ3MsIGhhc2gsIHNlcGFyYXRvciwgXCJrZXlzXCIsIHByZWZpeCwgc3VmZml4LCBncm91cHNvcnQpO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgZGVjb3JhdG9yIHRoYXQgY29tcG9zZXMgYSBwcm9wZXJ0eSB2YWx1ZSBmcm9tIHByb3BlcnR5IHZhbHVlc1xuICogQHN1bW1hcnkgRGVjb3JhdG9yIHRoYXQgZ2VuZXJhdGVzIGEgcHJvcGVydHkgdmFsdWUgYnkgam9pbmluZyB0aGUgdmFsdWVzIG9mIG90aGVyIHByb3BlcnRpZXNcbiAqIEBwYXJhbSB7c3RyaW5nW119IGFyZ3MgLSBQcm9wZXJ0eSBuYW1lcyB3aG9zZSB2YWx1ZXMgd2lsbCBiZSBjb21wb3NlZFxuICogQHBhcmFtIHtzdHJpbmd9IFtzZXBhcmF0b3I9RGVmYXVsdFNlcGFyYXRvcl0gLSBDaGFyYWN0ZXIgdXNlZCB0byBqb2luIHRoZSBwcm9wZXJ0eSB2YWx1ZXNcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2hhc2g9ZmFsc2VdIC0gV2hldGhlciB0byBoYXNoIHRoZSBjb21wb3NlZCByZXN1bHRcbiAqIEBwYXJhbSB7c3RyaW5nfSBbcHJlZml4PVwiXCJdIC0gT3B0aW9uYWwgcHJlZml4IHRvIGFkZCB0byB0aGUgY29tcG9zZWQgdmFsdWVcbiAqIEBwYXJhbSB7c3RyaW5nfSBbc3VmZml4PVwiXCJdIC0gT3B0aW9uYWwgc3VmZml4IHRvIGFkZCB0byB0aGUgY29tcG9zZWQgdmFsdWVcbiAqIEBwYXJhbSB7R3JvdXBTb3J0fSBncm91cHNvcnQgLSBHcm91cFNvcnQgY29uZmlndXJhdGlvblxuICogQHJldHVybiB7UHJvcGVydHlEZWNvcmF0b3J9IEEgZGVjb3JhdG9yIHRoYXQgY2FuIGJlIGFwcGxpZWQgdG8gY2xhc3MgcHJvcGVydGllc1xuICogQGZ1bmN0aW9uIGNvbXBvc2VkXG4gKiBAY2F0ZWdvcnkgUHJvcGVydHlEZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wb3NlZChcbiAgYXJnczogc3RyaW5nW10sXG4gIHNlcGFyYXRvcjogc3RyaW5nID0gRGVmYXVsdFNlcGFyYXRvcixcbiAgaGFzaDogYm9vbGVhbiA9IGZhbHNlLFxuICBwcmVmaXggPSBcIlwiLFxuICBzdWZmaXggPSBcIlwiLFxuICBncm91cHNvcnQ6IEdyb3VwU29ydCA9IHsgcHJpb3JpdHk6IDU1IH1cbikge1xuICByZXR1cm4gY29tcG9zZWRGcm9tKFxuICAgIGFyZ3MsXG4gICAgaGFzaCxcbiAgICBzZXBhcmF0b3IsXG4gICAgXCJ2YWx1ZXNcIixcbiAgICBwcmVmaXgsXG4gICAgc3VmZml4LFxuICAgIGdyb3Vwc29ydFxuICApO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCB1cGRhdGVzIGEgdmVyc2lvbiBwcm9wZXJ0eSBkdXJpbmcgb3BlcmF0aW9uc1xuICogQHN1bW1hcnkgRmFjdG9yeSBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlcyBhIGNhbGxiYWNrIGZvciBpbmNyZW1lbnRpbmcgdmVyc2lvbiBudW1iZXJzXG4gKiBAcGFyYW0ge0NydWRPcGVyYXRpb25zfSBvcGVyYXRpb24gLSBUaGUgdHlwZSBvZiBvcGVyYXRpb24gKENSRUFURSBvciBVUERBVEUpXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IHVwZGF0ZXMgdGhlIHZlcnNpb24gcHJvcGVydHlcbiAqIEB0ZW1wbGF0ZSBNIC0gVHlwZSBleHRlbmRpbmcgTW9kZWxcbiAqIEB0ZW1wbGF0ZSBSIC0gVHlwZSBleHRlbmRpbmcgSVJlcG9zaXRvcnlcbiAqIEB0ZW1wbGF0ZSBWIC0gVHlwZSBmb3IgbWV0YWRhdGFcbiAqIEB0ZW1wbGF0ZSBGIC0gVHlwZSBleHRlbmRpbmcgUmVwb3NpdG9yeUZsYWdzXG4gKiBAdGVtcGxhdGUgQyAtIFR5cGUgZXh0ZW5kaW5nIENvbnRleHRcbiAqIEBmdW5jdGlvbiB2ZXJzaW9uQ3JlYXRlVXBkYXRlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRiLWRlY29yYXRvcnNcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2FsbGVyXG4gKiAgIHBhcnRpY2lwYW50IHZlcnNpb25DcmVhdGVVcGRhdGVcbiAqXG4gKiAgIENhbGxlci0+PnZlcnNpb25DcmVhdGVVcGRhdGU6IG9wZXJhdGlvblxuICogICB2ZXJzaW9uQ3JlYXRlVXBkYXRlLS0+PkNhbGxlcjogY2FsbGJhY2sgZnVuY3Rpb25cbiAqICAgTm90ZSBvdmVyIENhbGxlcix2ZXJzaW9uQ3JlYXRlVXBkYXRlOiBXaGVuIGNhbGxiYWNrIGlzIGV4ZWN1dGVkOlxuICogICBDYWxsZXItPj52ZXJzaW9uQ3JlYXRlVXBkYXRlOiBjb250ZXh0LCBkYXRhLCBrZXksIG1vZGVsXG4gKiAgIGFsdCBvcGVyYXRpb24gaXMgQ1JFQVRFXG4gKiAgICAgdmVyc2lvbkNyZWF0ZVVwZGF0ZS0+PnZlcnNpb25DcmVhdGVVcGRhdGU6IHNldCB2ZXJzaW9uIHRvIDFcbiAqICAgZWxzZSBvcGVyYXRpb24gaXMgVVBEQVRFXG4gKiAgICAgdmVyc2lvbkNyZWF0ZVVwZGF0ZS0+PnZlcnNpb25DcmVhdGVVcGRhdGU6IGluY3JlbWVudCB2ZXJzaW9uXG4gKiAgIGVsc2UgaW52YWxpZCBvcGVyYXRpb25cbiAqICAgICB2ZXJzaW9uQ3JlYXRlVXBkYXRlLT4+dmVyc2lvbkNyZWF0ZVVwZGF0ZTogdGhyb3cgZXJyb3JcbiAqICAgZW5kXG4gKiAgIHZlcnNpb25DcmVhdGVVcGRhdGUtLT4+Q2FsbGVyOiB2b2lkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJzaW9uQ3JlYXRlVXBkYXRlKG9wZXJhdGlvbjogQ3J1ZE9wZXJhdGlvbnMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIHZlcnNpb25DcmVhdGVVcGRhdGU8XG4gICAgTSBleHRlbmRzIE1vZGVsLFxuICAgIFIgZXh0ZW5kcyBJUmVwb3NpdG9yeTxNLCBGLCBDPixcbiAgICBWIGV4dGVuZHMgb2JqZWN0LFxuICAgIEYgZXh0ZW5kcyBSZXBvc2l0b3J5RmxhZ3MgPSBSZXBvc2l0b3J5RmxhZ3MsXG4gICAgQyBleHRlbmRzIENvbnRleHQ8Rj4gPSBDb250ZXh0PEY+LFxuICA+KHRoaXM6IFIsIGNvbnRleHQ6IEMsIGRhdGE6IFYsIGtleToga2V5b2YgTSwgbW9kZWw6IE0pIHtcbiAgICB0cnkge1xuICAgICAgc3dpdGNoIChvcGVyYXRpb24pIHtcbiAgICAgICAgY2FzZSBPcGVyYXRpb25LZXlzLkNSRUFURTpcbiAgICAgICAgICAobW9kZWwgYXMgYW55KVtrZXldID0gMTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBPcGVyYXRpb25LZXlzLlVQREFURTpcbiAgICAgICAgICAobW9kZWwgYXMgYW55KVtrZXldKys7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEludmFsaWQgb3BlcmF0aW9uOiAke29wZXJhdGlvbn1gKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRmFpbGVkIHRvIHVwZGF0ZSB2ZXJzaW9uOiAke2V9YCk7XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgZGVjb3JhdG9yIGZvciB2ZXJzaW9uaW5nIGEgcHJvcGVydHkgaW4gYSBtb2RlbFxuICogQHN1bW1hcnkgVGhpcyBkZWNvcmF0b3IgYXBwbGllcyBtdWx0aXBsZSBzdWItZGVjb3JhdG9ycyB0byBoYW5kbGUgdmVyc2lvbiBtYW5hZ2VtZW50IGR1cmluZyBjcmVhdGUgYW5kIHVwZGF0ZSBvcGVyYXRpb25zXG4gKiBAcmV0dXJuIHtQcm9wZXJ0eURlY29yYXRvcn0gQSBjb21wb3NpdGUgZGVjb3JhdG9yIHRoYXQgc2V0cyB0aGUgdHlwZSB0byBOdW1iZXIsIG1hbmFnZXMgdmVyc2lvbiB1cGRhdGVzLCBhbmQgYWRkcyB2ZXJzaW9uaW5nIG1ldGFkYXRhXG4gKiBAZnVuY3Rpb24gdmVyc2lvblxuICogQGNhdGVnb3J5IFByb3BlcnR5RGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyc2lvbigpIHtcbiAgY29uc3Qga2V5ID0gUmVwb3NpdG9yeS5rZXkoREJLZXlzLlZFUlNJT04pO1xuICByZXR1cm4gRGVjb3JhdGlvbi5mb3Ioa2V5KVxuICAgIC5kZWZpbmUoXG4gICAgICB0eXBlKE51bWJlci5uYW1lKSxcbiAgICAgIG9uQ3JlYXRlKHZlcnNpb25DcmVhdGVVcGRhdGUoT3BlcmF0aW9uS2V5cy5DUkVBVEUpKSxcbiAgICAgIG9uVXBkYXRlKHZlcnNpb25DcmVhdGVVcGRhdGUoT3BlcmF0aW9uS2V5cy5VUERBVEUpKSxcbiAgICAgIHByb3BNZXRhZGF0YShrZXksIHRydWUpXG4gICAgKVxuICAgIC5hcHBseSgpO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgZGVjb3JhdG9yIHRoYXQgbWFya3MgYSBwcm9wZXJ0eSBhcyB0cmFuc2llbnRcbiAqIEBzdW1tYXJ5IERlY29yYXRvciB0aGF0IGluZGljYXRlcyBhIHByb3BlcnR5IHNob3VsZCBub3QgYmUgcGVyc2lzdGVkIHRvIHRoZSBkYXRhYmFzZVxuICogQHJldHVybiB7UHJvcGVydHlEZWNvcmF0b3J9IEEgZGVjb3JhdG9yIHRoYXQgY2FuIGJlIGFwcGxpZWQgdG8gY2xhc3MgcHJvcGVydGllc1xuICogQGZ1bmN0aW9uIHRyYW5zaWVudFxuICogQGNhdGVnb3J5IFByb3BlcnR5RGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNpZW50KCkge1xuICBjb25zdCBrZXkgPSBSZXBvc2l0b3J5LmtleShEQktleXMuVFJBTlNJRU5UKTtcbiAgcmV0dXJuIERlY29yYXRpb24uZm9yKGtleSlcbiAgICAuZGVmaW5lKGZ1bmN0aW9uIHRyYW5zaWVudChtb2RlbDogYW55LCBhdHRyaWJ1dGU6IGFueSkge1xuICAgICAgcHJvcE1ldGFkYXRhKFJlcG9zaXRvcnkua2V5KERCS2V5cy5UUkFOU0lFTlQpLCB0cnVlKShtb2RlbCwgYXR0cmlidXRlKTtcbiAgICAgIHByb3BNZXRhZGF0YShSZXBvc2l0b3J5LmtleShEQktleXMuVFJBTlNJRU5UKSwgdHJ1ZSkobW9kZWwuY29uc3RydWN0b3IpO1xuICAgIH0pXG4gICAgLmFwcGx5KCk7XG59XG4iXX0=
|
|
222
|
+
//# sourceMappingURL=decorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/model/decorators.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/model/index.js
CHANGED
|
@@ -4,4 +4,4 @@ export * from "./decorators.js";
|
|
|
4
4
|
export * from "./model.js";
|
|
5
5
|
export * from "./overrides.js";
|
|
6
6
|
export * from "./utils.js";
|
|
7
|
-
//# sourceMappingURL=
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/model/index.ts"],"names":[],"mappings":"AAAA,gCAA6B;AAC7B,+BAA4B;AAC5B,gCAA6B;AAC7B,2BAAwB;AACxB,+BAA4B;AAC5B,2BAAwB"}
|
package/lib/esm/model/model.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/model/model.ts"],"names":[],"mappings":""}
|
|
@@ -30,4 +30,4 @@ Model.prototype.hasErrors = function (previousVersion, ...exclusions) {
|
|
|
30
30
|
// @ts-expect-error Overriding Model prototype method with dynamic conditional return type.
|
|
31
31
|
return validateCompare(previousVersion, this, async, ...exclusions);
|
|
32
32
|
};
|
|
33
|
-
//# sourceMappingURL=
|
|
33
|
+
//# sourceMappingURL=overrides.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../../src/model/overrides.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAEL,QAAQ,GACT,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,wBAAqB;AAE/C;;;;;;;;;GASG;AACH,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,UAE1B,eAAyB,EACzB,GAAG,UAAiB;IAEpB,IAAI,eAAe,IAAI,CAAC,CAAC,eAAe,YAAY,KAAK,CAAC,EAAE,CAAC;QAC3D,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACpC,eAAe,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC;IAElD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;YACjD,IAAI,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrC,OAAO,YAAY,CAAC;YACtB,CAAC;YACD,OAAO,eAAe,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC;QACtE,CAAC,CAAQ,CAAC;IACZ,CAAC;IAED,IAAI,IAAI,IAAI,CAAC,eAAe;QAAE,OAAO,IAAW,CAAC;IAEjD,2FAA2F;IAC3F,OAAO,eAAe,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC;AACtE,CAAC,CAAC"}
|
package/lib/esm/model/utils.js
CHANGED
|
@@ -68,4 +68,4 @@ export function modelToTransient(model) {
|
|
|
68
68
|
result.model = Model.build(result.model, model.constructor.name);
|
|
69
69
|
return result;
|
|
70
70
|
}
|
|
71
|
-
//# sourceMappingURL=
|
|
71
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/model/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,UAAU,EACV,kBAAkB,GACnB,iCAAsB;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,uBAAoB;AAErC;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAkB,KAAQ;IACnD,OAAO,CAAC,CAAC,CACP,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;QACxE,OAAO,CAAC,WAAW,CACjB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAChC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAQ,CACzC,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAQ;IAER,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACjD,MAAM,IAAI,GAA0B,iCAAiC,CACnE,KAAK,EACL,SAAS,EACT,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CACR,CAAC;IAE3B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CACxC,CACE,KAAsE,EACtE,CAAC,CAAC,EAAE,GAAG,CAAC,EACR,EAAE;QACF,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QAClD,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAY,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,kBAAkB,CAC1B,0CAA0C,CAAC,KAAK,CAAC,EAAE,CACpD,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YAChC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAI,KAA6B,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EACD,EAAqE,CACtE,CAAC;IACF,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACjE,OAAO,MAAuD,CAAC;AACjE,CAAC"}
|