@alevnyacow/nzmt 0.16.20 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/cli.js CHANGED
@@ -136,6 +136,41 @@ function createDefaultConfig() {
136
136
  }
137
137
  }
138
138
 
139
+ function initVO() {
140
+ const config = loadConfig()
141
+ const voFolder = path.resolve(process.cwd(), `${config.coreFolder}${config.paths.valueObjects}`)
142
+ const identifierFolder = path.resolve(voFolder, 'identifier')
143
+
144
+ fs.mkdirSync(identifierFolder, { recursive: true })
145
+
146
+ fs.writeFileSync(path.resolve(identifierFolder, 'identifier.value-object.ts'), [
147
+ "import { randomUUID } from 'node:crypto'",
148
+ "import z from 'zod'",
149
+ "",
150
+ "export type IdentifierModel = z.infer<typeof Identifier.schema>",
151
+ "",
152
+ "export class Identifier {",
153
+ "\tstatic schema = z.string().nonempty()",
154
+ "\t",
155
+ "\tprivate constructor(private readonly data: string) {}",
156
+ "\t",
157
+ "\tstatic create = (data: IdentifierModel) => {",
158
+ "\t\treturn new Identifier(Identifier.schema.parse(data))",
159
+ "\t}",
160
+ "\t",
161
+ "\tstatic get randomUUID() {",
162
+ "\t\treturn Identifier.create(randomUUID())",
163
+ "\t}",
164
+ "\t",
165
+ "\tget model(): IdentifierModel {",
166
+ "\t\treturn this.data",
167
+ "\t}",
168
+ "}"
169
+ ].join('\n'))
170
+
171
+ fs.writeFileSync(path.resolve(identifierFolder, 'index.ts'), "export * from './identifier.value-object'")
172
+ }
173
+
139
174
  function initDI() {
140
175
  const config = loadConfig()
141
176
  const diPath = config?.paths?.di
@@ -400,6 +435,7 @@ if (command.toLowerCase() === 'init' || command === 'i') {
400
435
  createDefaultConfig()
401
436
  initDI()
402
437
  initClientUtils()
438
+ initVO()
403
439
  initPrisma()
404
440
  initLogger()
405
441
 
@@ -612,7 +648,7 @@ function generateEntity(upperCase) {
612
648
 
613
649
  const body = [
614
650
  "import z from 'zod'",
615
- "import { ValueObjects } from '@alevnyacow/nzmt'",
651
+ `import { ValueObjects } from '@${config?.paths?.valueObjects}/identifier'`,
616
652
  "",
617
653
  `export type ${upperCase}Model = z.infer<typeof ${upperCase}.schema>`,
618
654
  "",
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";const __rslib_import_meta_url__="u"<typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(r,{a:r}),r},__webpack_require__.d=(e,r)=>{for(var t in r)__webpack_require__.o(r,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},__webpack_require__.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),__webpack_require__.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Controller:()=>zod_controller_utils_namespaceObject,Store:()=>store_namespaceObject,Module:()=>zod_module_utils_namespaceObject,ValueObjects:()=>entities_namespaceObject});var zod_module_utils_namespaceObject={};__webpack_require__.r(zod_module_utils_namespaceObject),__webpack_require__.d(zod_module_utils_namespaceObject,{methods:()=>methods});var zod_controller_utils_namespaceObject={};__webpack_require__.r(zod_controller_utils_namespaceObject),__webpack_require__.d(zod_controller_utils_namespaceObject,{DefaultErrorCodes:()=>zod_controller_utils_DefaultErrorCodes,endpoints:()=>endpoints});var store_namespaceObject={};__webpack_require__.r(store_namespaceObject),__webpack_require__.d(store_namespaceObject,{InRAM:()=>InRAM,methods:()=>store_zod_utils_methods,toModuleMetadata:()=>toModuleMetadata});var entities_namespaceObject={};__webpack_require__.r(entities_namespaceObject),__webpack_require__.d(entities_namespaceObject,{Identifier:()=>Identifier,Pagination:()=>Pagination});class ErrorFactory{static isControllerError=e=>{if(!e||"object"!=typeof e)return!1;let r=Object.keys(e);return["name","message","code","module","method","timestamp","statusCode"].every(e=>r.includes(e))};static isModuleError=e=>{if("object"!=typeof e||!e)return!1;let r=Object.keys(e);return!!["name","message","code","module","method","timestamp"].every(e=>r.includes(e))&&!r.includes("statusCode")};static base=({error:e,code:r,details:t})=>{let a=e instanceof Error?e:Error("unknown error");return("string"==typeof e||"number"==typeof e)&&(a=Error(e?.toString())),"object"==typeof e&&null!==e&&(a=e instanceof Error?e:Error(JSON.stringify(e))),{message:a.message,name:a.name,timestamp:Date.now(),code:r||a.name,details:t||null}};static forModule=e=>({inMethod:r=>({newError:(t,a)=>({...ErrorFactory.base(t),cause:a?ErrorFactory.fromUnknownError(a):null,module:e,method:r})})});static forController=e=>({inMethod:r=>({newError:(t,a)=>{let o=ErrorFactory.base(t),s=a?ErrorFactory.fromUnknownError(a):null;return!t.code&&s?.code&&(o.code=s.code),{...o,cause:s,module:e,method:r,statusCode:t.statusCode}}})});static fromUnknownError=e=>ErrorFactory.isModuleError(e)||(e=>{if("object"!=typeof e||!e)return!1;let r=Object.keys(e);return["name","message","code","timestamp"].every(e=>r.includes(e))})(e)?e:ErrorFactory.base({error:e})}const methods=(e,r={})=>(t,a,o={})=>{let{name:s,schemas:n}=e;return async e=>{try{let r=n[t].payload.parse(e),o=await a(r,{methodError:(e,a)=>ErrorFactory.forModule(s).inMethod(t).newError("string"==typeof e?{error:e,code:e,details:r}:e,a)});return n[t].response.parse(o)}catch(a){if(ErrorFactory.isModuleError(a))throw r.onError&&await r.onError(a),o.onError&&await o.onError(a),a;let e=ErrorFactory.forModule(s).inMethod(t).newError({error:"Caught unhandled module error (see `cause` field for details)"},a);throw o.onError&&await o.onError(e),e}}},server_namespaceObject=require("next/server"),external_zod_namespaceObject=require("zod");var external_zod_default=__webpack_require__.n(external_zod_namespaceObject),zod_controller_utils_DefaultErrorCodes=function(e){return e.REQUEST_PARSING="ZOD-CONTROLLER___REQUEST-PARSING",e.RESPONSE_PARSING="ZOD-CONTROLLER___RESPONSE-PARSING",e}({});const endpoints=(e,r={})=>(t,a,o={})=>async s=>{let n={},i=ErrorFactory.forController(e.name).inMethod(t);try{let _=(e,r,t)=>"string"==typeof e?i.newError({statusCode:r??500,code:e,error:e,details:n},t):i.newError({...e,statusCode:r??500},t);if(r.guards)for(let e of r.guards){let r=await e({request:s,endpointError:_});if(r)throw r}if(o.guards)for(let e of o.guards){let r=await e({request:s,endpointError:_});if(r)throw r}let d=e.schemas[t];if(!d)throw i.newError({error:"No schemas were found for the endpoint",statusCode:500});if(d.query){let e=Object.fromEntries(s.nextUrl.searchParams.entries()),r=d.query.safeParse(e);if(!r.success)throw i.newError({error:r.error.message,statusCode:400,code:"ZOD-CONTROLLER___REQUEST-PARSING",details:external_zod_default().treeifyError(r.error)});n={...n,...r.data}}if(d.body){let e=await s.json(),r=d.body.safeParse(e);if(!r.success)throw i.newError({error:r.error.message,statusCode:400,code:"ZOD-CONTROLLER___REQUEST-PARSING",details:external_zod_default().treeifyError(r.error)});n={...n,...r.data}}let c={},l=await a(n,{request:s,flags:c,endpointError:(e,r,t)=>"string"==typeof e?i.newError({statusCode:r??500,code:e,error:e,details:n},t):i.newError({...e,statusCode:r??500},t)});if(d.response){let e=d.response.safeParse(l);if(!e.success)throw i.newError({error:e.error.message,statusCode:500,code:"ZOD-CONTROLLER___RESPONSE-PARSING",details:external_zod_default().treeifyError(e.error)});if(o.eventHandlers?.onSuccess)for(let r of o.eventHandlers.onSuccess)r({request:s,result:e.data,requestPayload:n,flags:c});if(o.customResponseLogic?.onSuccess)return await o.customResponseLogic.onSuccess({req:s,response:e.data});return server_namespaceObject.NextResponse.json(e.data,{status:200})}if(o.eventHandlers?.onSuccess)for(let e of o.eventHandlers.onSuccess)await e({request:s,result:void 0,requestPayload:n,flags:c});if(o.customResponseLogic?.onSuccess)return await o.customResponseLogic.onSuccess({req:s,response:{}});return server_namespaceObject.NextResponse.json({},{status:200})}catch(t){let e=t;if(ErrorFactory.isControllerError(t)||(e=i.newError({error:"Internal error",statusCode:500},t)),e.details&&"object"==typeof e.details||(e.details={}),r.onErrorHandlers)try{for(let t of r.onErrorHandlers)await t({error:e,req:s})}catch(r){e=i.newError({error:"onError handler error",statusCode:500},r)}if(o.eventHandlers?.onError)try{for(let r of o.eventHandlers.onError)await r({error:e,req:s})}catch(r){e=i.newError({error:"onError handler error",statusCode:500},r)}if(o.customResponseLogic?.onError)return await o.customResponseLogic.onError({req:s,error:e});return server_namespaceObject.NextResponse.json({message:e.message,details:e.statusCode.toString().startsWith("4")?e.details:null,code:e.code},{status:e.statusCode})}};class Pagination{data;static schema=external_zod_default().object({zeroBasedIndex:external_zod_default().coerce.number().int().nonnegative(),pageSize:external_zod_default().coerce.number().int().positive()});constructor(e){this.data=e}static create=e=>{let r=Pagination.schema.parse(e);return new Pagination(r)};get model(){return this.data}same=e=>e.model.pageSize===this.model.pageSize&&e.model.zeroBasedIndex===this.model.zeroBasedIndex;get nextPage(){return Pagination.create({pageSize:this.data.pageSize,zeroBasedIndex:this.data.zeroBasedIndex+1})}get previousPage(){return 0===this.model.zeroBasedIndex?Pagination.create(this.model):Pagination.create({pageSize:this.model.pageSize,zeroBasedIndex:this.model.zeroBasedIndex-1})}get previousPage_UNSAFE(){return Pagination.create({pageSize:this.model.pageSize,zeroBasedIndex:this.model.zeroBasedIndex-1})}}const toModuleMetadata=e=>({name:e.name,schemas:{...e.customOperations??{},list:{payload:external_zod_default().object({filter:e.searchPayload.list,pagination:Pagination.schema.optional()}),response:external_zod_default().array(e.models.list)},details:{payload:external_zod_default().object({filter:e.searchPayload.specific}),response:e.models.details.nullable()},create:{payload:external_zod_default().object({payload:e.actionsPayload.create}),response:external_zod_default().object({id:external_zod_default().string()})},updateOne:{payload:external_zod_default().object({filter:e.searchPayload.specific,payload:e.actionsPayload.update}),response:external_zod_default().object({success:external_zod_default().boolean()})},deleteOne:{payload:external_zod_default().object({filter:e.searchPayload.specific}),response:external_zod_default().object({success:external_zod_default().boolean()})}}}),store_zod_utils_methods=e=>methods(toModuleMetadata(e)),InRAM=(e,r)=>{class t{___data=[];method=store_zod_utils_methods(e);___listSearchLogic=(e,r)=>{let t=Object.entries(r).filter(([e,r])=>!!r).map(e=>e[0]);return Object.entries(e).filter(([e])=>t.includes(e)).every(([e,t])=>t===r[e]||t?.toString()?.includes(r[e]?.toString()))};___specificSearchLogic=(e,r)=>{let t=Object.entries(r).filter(([e,r])=>!!r).map(e=>e[0]);return Object.entries(e).filter(([e])=>t.includes(e)).every(([e,t])=>t===r[e]||t?.toString()?.includes(r[e]?.toString()))};___mapDetailToList=e=>e;___mapCreatePayloadToDetail=e=>({...e,id:Math.random().toString()});___mapUpdatePayloadToDetail=(e,r)=>{let t=Object.fromEntries(Object.entries(r).filter(([,e])=>void 0!==e));return{...e,...t}};constructor(){if(!r)return;r.searchLogic&&(r.searchLogic.list&&(this.___listSearchLogic=r.searchLogic.list),r.searchLogic.specific&&(this.___specificSearchLogic=r.searchLogic.specific)),r.mappers&&(r.mappers.detailToList&&(this.___mapDetailToList=r.mappers.detailToList),r.mappers.createPayloadToDetail&&(this.___mapCreatePayloadToDetail=r.mappers.createPayloadToDetail),r.mappers.updatePayloadToDetail&&(this.___mapUpdatePayloadToDetail=r.mappers.updatePayloadToDetail)),r.initialData&&(this.___data=[...r.initialData])}list=this.method("list",async({filter:r,pagination:t={pageSize:1e3,zeroBasedIndex:0}})=>{e.searchPayload.list.parse(r),Pagination.schema.parse(t);let a=this.___data.filter(e=>this.___listSearchLogic(e,r)).filter((e,r)=>r>=t.pageSize*t.zeroBasedIndex&&r<(t.zeroBasedIndex+1)*t.pageSize).map(e=>this.___mapDetailToList(e));return external_zod_default().array(e.models.list).parse(a),a});details=this.method("details",async({filter:e})=>{let r=this.___data.find(r=>this.___specificSearchLogic(r,e));return r||null});create=this.method("create",async({payload:e})=>{let r=this.___mapCreatePayloadToDetail(e);return this.___data=this.___data.concat(r),{id:r.id}});updateOne=this.method("updateOne",async({filter:e,payload:r})=>{let t=this.___data.findIndex(r=>this.___specificSearchLogic(r,e));return this.___data=this.___data.map((e,a)=>a!==t?e:this.___mapUpdatePayloadToDetail(e,r)),{success:t>-1}});deleteOne=this.method("deleteOne",async({filter:e})=>{let r=this.___data.findIndex(r=>this.___specificSearchLogic(r,e));return this.___data=this.___data.filter((e,t)=>t!==r),{success:r>-1}})}return t},external_node_crypto_namespaceObject=require("node:crypto");class Identifier{data;static schema=external_zod_default().string().nonempty();constructor(e){this.data=e}static create=e=>new Identifier(Identifier.schema.parse(e));static get randomUUID(){return Identifier.create((0,external_node_crypto_namespaceObject.randomUUID)())}get model(){return this.data}get isUUID(){return external_zod_default().uuidv4().safeParse(this.data).success}}for(var __rspack_i in exports.Controller=__webpack_exports__.Controller,exports.Module=__webpack_exports__.Module,exports.Store=__webpack_exports__.Store,exports.ValueObjects=__webpack_exports__.ValueObjects,__webpack_exports__)-1===["Controller","Module","Store","ValueObjects"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
1
+ "use strict";const __rslib_import_meta_url__="u"<typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(r,{a:r}),r},__webpack_require__.d=(e,r)=>{for(var t in r)__webpack_require__.o(r,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},__webpack_require__.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),__webpack_require__.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Controller:()=>zod_controller_utils_namespaceObject,Store:()=>store_namespaceObject,Module:()=>zod_module_utils_namespaceObject,ValueObjects:()=>value_objects_namespaceObject});var zod_module_utils_namespaceObject={};__webpack_require__.r(zod_module_utils_namespaceObject),__webpack_require__.d(zod_module_utils_namespaceObject,{methods:()=>methods});var zod_controller_utils_namespaceObject={};__webpack_require__.r(zod_controller_utils_namespaceObject),__webpack_require__.d(zod_controller_utils_namespaceObject,{DefaultErrorCodes:()=>zod_controller_utils_DefaultErrorCodes,endpoints:()=>endpoints});var store_namespaceObject={};__webpack_require__.r(store_namespaceObject),__webpack_require__.d(store_namespaceObject,{InRAM:()=>InRAM,methods:()=>store_zod_utils_methods,toModuleMetadata:()=>toModuleMetadata});var value_objects_namespaceObject={};__webpack_require__.r(value_objects_namespaceObject),__webpack_require__.d(value_objects_namespaceObject,{Pagination:()=>Pagination});class ErrorFactory{static isControllerError=e=>{if(!e||"object"!=typeof e)return!1;let r=Object.keys(e);return["name","message","code","module","method","timestamp","statusCode"].every(e=>r.includes(e))};static isModuleError=e=>{if("object"!=typeof e||!e)return!1;let r=Object.keys(e);return!!["name","message","code","module","method","timestamp"].every(e=>r.includes(e))&&!r.includes("statusCode")};static base=({error:e,code:r,details:t})=>{let a=e instanceof Error?e:Error("unknown error");return("string"==typeof e||"number"==typeof e)&&(a=Error(e?.toString())),"object"==typeof e&&null!==e&&(a=e instanceof Error?e:Error(JSON.stringify(e))),{message:a.message,name:a.name,timestamp:Date.now(),code:r||a.name,details:t||null}};static forModule=e=>({inMethod:r=>({newError:(t,a)=>({...ErrorFactory.base(t),cause:a?ErrorFactory.fromUnknownError(a):null,module:e,method:r})})});static forController=e=>({inMethod:r=>({newError:(t,a)=>{let o=ErrorFactory.base(t),s=a?ErrorFactory.fromUnknownError(a):null;return!t.code&&s?.code&&(o.code=s.code),{...o,cause:s,module:e,method:r,statusCode:t.statusCode}}})});static fromUnknownError=e=>ErrorFactory.isModuleError(e)||(e=>{if("object"!=typeof e||!e)return!1;let r=Object.keys(e);return["name","message","code","timestamp"].every(e=>r.includes(e))})(e)?e:ErrorFactory.base({error:e})}const methods=(e,r={})=>(t,a,o={})=>{let{name:s,schemas:_}=e;return async e=>{try{let r=_[t].payload.parse(e),o=await a(r,{methodError:(e,a)=>ErrorFactory.forModule(s).inMethod(t).newError("string"==typeof e?{error:e,code:e,details:r}:e,a)});return _[t].response.parse(o)}catch(a){if(ErrorFactory.isModuleError(a))throw r.onError&&await r.onError(a),o.onError&&await o.onError(a),a;let e=ErrorFactory.forModule(s).inMethod(t).newError({error:"Caught unhandled module error (see `cause` field for details)"},a);throw o.onError&&await o.onError(e),e}}},server_namespaceObject=require("next/server"),external_zod_namespaceObject=require("zod");var external_zod_default=__webpack_require__.n(external_zod_namespaceObject),zod_controller_utils_DefaultErrorCodes=function(e){return e.REQUEST_PARSING="ZOD-CONTROLLER___REQUEST-PARSING",e.RESPONSE_PARSING="ZOD-CONTROLLER___RESPONSE-PARSING",e}({});const endpoints=(e,r={})=>(t,a,o={})=>async s=>{let _={},n=ErrorFactory.forController(e.name).inMethod(t);try{let i=(e,r,t)=>"string"==typeof e?n.newError({statusCode:r??500,code:e,error:e,details:_},t):n.newError({...e,statusCode:r??500},t);if(r.guards)for(let e of r.guards){let r=await e({request:s,endpointError:i});if(r)throw r}if(o.guards)for(let e of o.guards){let r=await e({request:s,endpointError:i});if(r)throw r}let d=e.schemas[t];if(!d)throw n.newError({error:"No schemas were found for the endpoint",statusCode:500});if(d.query){let e=Object.fromEntries(s.nextUrl.searchParams.entries()),r=d.query.safeParse(e);if(!r.success)throw n.newError({error:r.error.message,statusCode:400,code:"ZOD-CONTROLLER___REQUEST-PARSING",details:external_zod_default().treeifyError(r.error)});_={..._,...r.data}}if(d.body){let e=await s.json(),r=d.body.safeParse(e);if(!r.success)throw n.newError({error:r.error.message,statusCode:400,code:"ZOD-CONTROLLER___REQUEST-PARSING",details:external_zod_default().treeifyError(r.error)});_={..._,...r.data}}let c={},l=await a(_,{request:s,flags:c,endpointError:(e,r,t)=>"string"==typeof e?n.newError({statusCode:r??500,code:e,error:e,details:_},t):n.newError({...e,statusCode:r??500},t)});if(d.response){let e=d.response.safeParse(l);if(!e.success)throw n.newError({error:e.error.message,statusCode:500,code:"ZOD-CONTROLLER___RESPONSE-PARSING",details:external_zod_default().treeifyError(e.error)});if(o.eventHandlers?.onSuccess)for(let r of o.eventHandlers.onSuccess)r({request:s,result:e.data,requestPayload:_,flags:c});if(o.customResponseLogic?.onSuccess)return await o.customResponseLogic.onSuccess({req:s,response:e.data});return server_namespaceObject.NextResponse.json(e.data,{status:200})}if(o.eventHandlers?.onSuccess)for(let e of o.eventHandlers.onSuccess)await e({request:s,result:void 0,requestPayload:_,flags:c});if(o.customResponseLogic?.onSuccess)return await o.customResponseLogic.onSuccess({req:s,response:{}});return server_namespaceObject.NextResponse.json({},{status:200})}catch(t){let e=t;if(ErrorFactory.isControllerError(t)||(e=n.newError({error:"Internal error",statusCode:500},t)),e.details&&"object"==typeof e.details||(e.details={}),r.onErrorHandlers)try{for(let t of r.onErrorHandlers)await t({error:e,req:s})}catch(r){e=n.newError({error:"onError handler error",statusCode:500},r)}if(o.eventHandlers?.onError)try{for(let r of o.eventHandlers.onError)await r({error:e,req:s})}catch(r){e=n.newError({error:"onError handler error",statusCode:500},r)}if(o.customResponseLogic?.onError)return await o.customResponseLogic.onError({req:s,error:e});return server_namespaceObject.NextResponse.json({message:e.message,details:e.statusCode.toString().startsWith("4")?e.details:null,code:e.code},{status:e.statusCode})}};class Pagination{data;static schema=external_zod_default().object({zeroBasedIndex:external_zod_default().coerce.number().int().nonnegative(),pageSize:external_zod_default().coerce.number().int().positive()});constructor(e){this.data=e}static create=e=>{let r=Pagination.schema.parse(e);return new Pagination(r)};get model(){return this.data}same=e=>e.model.pageSize===this.model.pageSize&&e.model.zeroBasedIndex===this.model.zeroBasedIndex;get nextPage(){return Pagination.create({pageSize:this.data.pageSize,zeroBasedIndex:this.data.zeroBasedIndex+1})}get previousPage(){return 0===this.model.zeroBasedIndex?Pagination.create(this.model):Pagination.create({pageSize:this.model.pageSize,zeroBasedIndex:this.model.zeroBasedIndex-1})}get previousPage_UNSAFE(){return Pagination.create({pageSize:this.model.pageSize,zeroBasedIndex:this.model.zeroBasedIndex-1})}}const toModuleMetadata=e=>({name:e.name,schemas:{...e.customOperations??{},list:{payload:external_zod_default().object({filter:e.searchPayload.list,pagination:Pagination.schema.optional()}),response:external_zod_default().array(e.models.list)},details:{payload:external_zod_default().object({filter:e.searchPayload.specific}),response:e.models.details.nullable()},create:{payload:external_zod_default().object({payload:e.actionsPayload.create}),response:external_zod_default().object({id:external_zod_default().string()})},updateOne:{payload:external_zod_default().object({filter:e.searchPayload.specific,payload:e.actionsPayload.update}),response:external_zod_default().object({success:external_zod_default().boolean()})},deleteOne:{payload:external_zod_default().object({filter:e.searchPayload.specific}),response:external_zod_default().object({success:external_zod_default().boolean()})}}}),store_zod_utils_methods=e=>methods(toModuleMetadata(e)),InRAM=(e,r)=>{class t{___data=[];method=store_zod_utils_methods(e);___listSearchLogic=(e,r)=>{let t=Object.entries(r).filter(([e,r])=>!!r).map(e=>e[0]);return Object.entries(e).filter(([e])=>t.includes(e)).every(([e,t])=>t===r[e]||t?.toString()?.includes(r[e]?.toString()))};___specificSearchLogic=(e,r)=>{let t=Object.entries(r).filter(([e,r])=>!!r).map(e=>e[0]);return Object.entries(e).filter(([e])=>t.includes(e)).every(([e,t])=>t===r[e]||t?.toString()?.includes(r[e]?.toString()))};___mapDetailToList=e=>e;___mapCreatePayloadToDetail=e=>({...e,id:Math.random().toString()});___mapUpdatePayloadToDetail=(e,r)=>{let t=Object.fromEntries(Object.entries(r).filter(([,e])=>void 0!==e));return{...e,...t}};constructor(){if(!r)return;r.searchLogic&&(r.searchLogic.list&&(this.___listSearchLogic=r.searchLogic.list),r.searchLogic.specific&&(this.___specificSearchLogic=r.searchLogic.specific)),r.mappers&&(r.mappers.detailToList&&(this.___mapDetailToList=r.mappers.detailToList),r.mappers.createPayloadToDetail&&(this.___mapCreatePayloadToDetail=r.mappers.createPayloadToDetail),r.mappers.updatePayloadToDetail&&(this.___mapUpdatePayloadToDetail=r.mappers.updatePayloadToDetail)),r.initialData&&(this.___data=[...r.initialData])}list=this.method("list",async({filter:r,pagination:t={pageSize:1e3,zeroBasedIndex:0}})=>{e.searchPayload.list.parse(r),Pagination.schema.parse(t);let a=this.___data.filter(e=>this.___listSearchLogic(e,r)).filter((e,r)=>r>=t.pageSize*t.zeroBasedIndex&&r<(t.zeroBasedIndex+1)*t.pageSize).map(e=>this.___mapDetailToList(e));return external_zod_default().array(e.models.list).parse(a),a});details=this.method("details",async({filter:e})=>{let r=this.___data.find(r=>this.___specificSearchLogic(r,e));return r||null});create=this.method("create",async({payload:e})=>{let r=this.___mapCreatePayloadToDetail(e);return this.___data=this.___data.concat(r),{id:r.id}});updateOne=this.method("updateOne",async({filter:e,payload:r})=>{let t=this.___data.findIndex(r=>this.___specificSearchLogic(r,e));return this.___data=this.___data.map((e,a)=>a!==t?e:this.___mapUpdatePayloadToDetail(e,r)),{success:t>-1}});deleteOne=this.method("deleteOne",async({filter:e})=>{let r=this.___data.findIndex(r=>this.___specificSearchLogic(r,e));return this.___data=this.___data.filter((e,t)=>t!==r),{success:r>-1}})}return t};for(var __rspack_i in exports.Controller=__webpack_exports__.Controller,exports.Module=__webpack_exports__.Module,exports.Store=__webpack_exports__.Store,exports.ValueObjects=__webpack_exports__.ValueObjects,__webpack_exports__)-1===["Controller","Module","Store","ValueObjects"].indexOf(__rspack_i)&&(exports[__rspack_i]=__webpack_exports__[__rspack_i]);Object.defineProperty(exports,"__esModule",{value:!0});
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export * as Module from './zod-module.utils';
2
2
  export * as Controller from './zod-controller.utils';
3
3
  export * as Store from './store';
4
- export * as ValueObjects from './entities';
4
+ export * as ValueObjects from './value-objects';
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{__webpack_require__ as e}from"./rslib-runtime.js";import{NextResponse as r}from"next/server";import t from"zod";import{randomUUID as a}from"node:crypto";var o,s={};e.r(s),e.d(s,{Identifier:()=>g,Pagination:()=>p});var i={};e.r(i),e.d(i,{InRAM:()=>f,methods:()=>h,toModuleMetadata:()=>_});var n={};e.r(n),e.d(n,{DefaultErrorCodes:()=>u,endpoints:()=>m});var d={};e.r(d),e.d(d,{methods:()=>l});class c{static isControllerError=e=>{if(!e||"object"!=typeof e)return!1;let r=Object.keys(e);return["name","message","code","module","method","timestamp","statusCode"].every(e=>r.includes(e))};static isModuleError=e=>{if("object"!=typeof e||!e)return!1;let r=Object.keys(e);return!!["name","message","code","module","method","timestamp"].every(e=>r.includes(e))&&!r.includes("statusCode")};static base=({error:e,code:r,details:t})=>{let a=e instanceof Error?e:Error("unknown error");return("string"==typeof e||"number"==typeof e)&&(a=Error(e?.toString())),"object"==typeof e&&null!==e&&(a=e instanceof Error?e:Error(JSON.stringify(e))),{message:a.message,name:a.name,timestamp:Date.now(),code:r||a.name,details:t||null}};static forModule=e=>({inMethod:r=>({newError:(t,a)=>({...c.base(t),cause:a?c.fromUnknownError(a):null,module:e,method:r})})});static forController=e=>({inMethod:r=>({newError:(t,a)=>{let o=c.base(t),s=a?c.fromUnknownError(a):null;return!t.code&&s?.code&&(o.code=s.code),{...o,cause:s,module:e,method:r,statusCode:t.statusCode}}})});static fromUnknownError=e=>c.isModuleError(e)||(e=>{if("object"!=typeof e||!e)return!1;let r=Object.keys(e);return["name","message","code","timestamp"].every(e=>r.includes(e))})(e)?e:c.base({error:e})}let l=(e,r={})=>(t,a,o={})=>{let{name:s,schemas:i}=e;return async e=>{try{let r=i[t].payload.parse(e),o=await a(r,{methodError:(e,a)=>c.forModule(s).inMethod(t).newError("string"==typeof e?{error:e,code:e,details:r}:e,a)});return i[t].response.parse(o)}catch(a){if(c.isModuleError(a))throw r.onError&&await r.onError(a),o.onError&&await o.onError(a),a;let e=c.forModule(s).inMethod(t).newError({error:"Caught unhandled module error (see `cause` field for details)"},a);throw o.onError&&await o.onError(e),e}}};var u=((o={}).REQUEST_PARSING="ZOD-CONTROLLER___REQUEST-PARSING",o.RESPONSE_PARSING="ZOD-CONTROLLER___RESPONSE-PARSING",o);let m=(e,a={})=>(o,s,i={})=>async n=>{let d={},l=c.forController(e.name).inMethod(o);try{let c=(e,r,t)=>"string"==typeof e?l.newError({statusCode:r??500,code:e,error:e,details:d},t):l.newError({...e,statusCode:r??500},t);if(a.guards)for(let e of a.guards){let r=await e({request:n,endpointError:c});if(r)throw r}if(i.guards)for(let e of i.guards){let r=await e({request:n,endpointError:c});if(r)throw r}let u=e.schemas[o];if(!u)throw l.newError({error:"No schemas were found for the endpoint",statusCode:500});if(u.query){let e=Object.fromEntries(n.nextUrl.searchParams.entries()),r=u.query.safeParse(e);if(!r.success)throw l.newError({error:r.error.message,statusCode:400,code:"ZOD-CONTROLLER___REQUEST-PARSING",details:t.treeifyError(r.error)});d={...d,...r.data}}if(u.body){let e=await n.json(),r=u.body.safeParse(e);if(!r.success)throw l.newError({error:r.error.message,statusCode:400,code:"ZOD-CONTROLLER___REQUEST-PARSING",details:t.treeifyError(r.error)});d={...d,...r.data}}let m={},p=await s(d,{request:n,flags:m,endpointError:(e,r,t)=>"string"==typeof e?l.newError({statusCode:r??500,code:e,error:e,details:d},t):l.newError({...e,statusCode:r??500},t)});if(u.response){let e=u.response.safeParse(p);if(!e.success)throw l.newError({error:e.error.message,statusCode:500,code:"ZOD-CONTROLLER___RESPONSE-PARSING",details:t.treeifyError(e.error)});if(i.eventHandlers?.onSuccess)for(let r of i.eventHandlers.onSuccess)r({request:n,result:e.data,requestPayload:d,flags:m});if(i.customResponseLogic?.onSuccess)return await i.customResponseLogic.onSuccess({req:n,response:e.data});return r.json(e.data,{status:200})}if(i.eventHandlers?.onSuccess)for(let e of i.eventHandlers.onSuccess)await e({request:n,result:void 0,requestPayload:d,flags:m});if(i.customResponseLogic?.onSuccess)return await i.customResponseLogic.onSuccess({req:n,response:{}});return r.json({},{status:200})}catch(t){let e=t;if(c.isControllerError(t)||(e=l.newError({error:"Internal error",statusCode:500},t)),e.details&&"object"==typeof e.details||(e.details={}),a.onErrorHandlers)try{for(let r of a.onErrorHandlers)await r({error:e,req:n})}catch(r){e=l.newError({error:"onError handler error",statusCode:500},r)}if(i.eventHandlers?.onError)try{for(let r of i.eventHandlers.onError)await r({error:e,req:n})}catch(r){e=l.newError({error:"onError handler error",statusCode:500},r)}if(i.customResponseLogic?.onError)return await i.customResponseLogic.onError({req:n,error:e});return r.json({message:e.message,details:e.statusCode.toString().startsWith("4")?e.details:null,code:e.code},{status:e.statusCode})}};class p{data;static schema=t.object({zeroBasedIndex:t.coerce.number().int().nonnegative(),pageSize:t.coerce.number().int().positive()});constructor(e){this.data=e}static create=e=>{let r=p.schema.parse(e);return new p(r)};get model(){return this.data}same=e=>e.model.pageSize===this.model.pageSize&&e.model.zeroBasedIndex===this.model.zeroBasedIndex;get nextPage(){return p.create({pageSize:this.data.pageSize,zeroBasedIndex:this.data.zeroBasedIndex+1})}get previousPage(){return 0===this.model.zeroBasedIndex?p.create(this.model):p.create({pageSize:this.model.pageSize,zeroBasedIndex:this.model.zeroBasedIndex-1})}get previousPage_UNSAFE(){return p.create({pageSize:this.model.pageSize,zeroBasedIndex:this.model.zeroBasedIndex-1})}}let _=e=>({name:e.name,schemas:{...e.customOperations??{},list:{payload:t.object({filter:e.searchPayload.list,pagination:p.schema.optional()}),response:t.array(e.models.list)},details:{payload:t.object({filter:e.searchPayload.specific}),response:e.models.details.nullable()},create:{payload:t.object({payload:e.actionsPayload.create}),response:t.object({id:t.string()})},updateOne:{payload:t.object({filter:e.searchPayload.specific,payload:e.actionsPayload.update}),response:t.object({success:t.boolean()})},deleteOne:{payload:t.object({filter:e.searchPayload.specific}),response:t.object({success:t.boolean()})}}}),h=e=>l(_(e)),f=(e,r)=>{class a{___data=[];method=h(e);___listSearchLogic=(e,r)=>{let t=Object.entries(r).filter(([e,r])=>!!r).map(e=>e[0]);return Object.entries(e).filter(([e])=>t.includes(e)).every(([e,t])=>t===r[e]||t?.toString()?.includes(r[e]?.toString()))};___specificSearchLogic=(e,r)=>{let t=Object.entries(r).filter(([e,r])=>!!r).map(e=>e[0]);return Object.entries(e).filter(([e])=>t.includes(e)).every(([e,t])=>t===r[e]||t?.toString()?.includes(r[e]?.toString()))};___mapDetailToList=e=>e;___mapCreatePayloadToDetail=e=>({...e,id:Math.random().toString()});___mapUpdatePayloadToDetail=(e,r)=>{let t=Object.fromEntries(Object.entries(r).filter(([,e])=>void 0!==e));return{...e,...t}};constructor(){if(!r)return;r.searchLogic&&(r.searchLogic.list&&(this.___listSearchLogic=r.searchLogic.list),r.searchLogic.specific&&(this.___specificSearchLogic=r.searchLogic.specific)),r.mappers&&(r.mappers.detailToList&&(this.___mapDetailToList=r.mappers.detailToList),r.mappers.createPayloadToDetail&&(this.___mapCreatePayloadToDetail=r.mappers.createPayloadToDetail),r.mappers.updatePayloadToDetail&&(this.___mapUpdatePayloadToDetail=r.mappers.updatePayloadToDetail)),r.initialData&&(this.___data=[...r.initialData])}list=this.method("list",async({filter:r,pagination:a={pageSize:1e3,zeroBasedIndex:0}})=>{e.searchPayload.list.parse(r),p.schema.parse(a);let o=this.___data.filter(e=>this.___listSearchLogic(e,r)).filter((e,r)=>r>=a.pageSize*a.zeroBasedIndex&&r<(a.zeroBasedIndex+1)*a.pageSize).map(e=>this.___mapDetailToList(e));return t.array(e.models.list).parse(o),o});details=this.method("details",async({filter:e})=>{let r=this.___data.find(r=>this.___specificSearchLogic(r,e));return r||null});create=this.method("create",async({payload:e})=>{let r=this.___mapCreatePayloadToDetail(e);return this.___data=this.___data.concat(r),{id:r.id}});updateOne=this.method("updateOne",async({filter:e,payload:r})=>{let t=this.___data.findIndex(r=>this.___specificSearchLogic(r,e));return this.___data=this.___data.map((e,a)=>a!==t?e:this.___mapUpdatePayloadToDetail(e,r)),{success:t>-1}});deleteOne=this.method("deleteOne",async({filter:e})=>{let r=this.___data.findIndex(r=>this.___specificSearchLogic(r,e));return this.___data=this.___data.filter((e,t)=>t!==r),{success:r>-1}})}return a};class g{data;static schema=t.string().nonempty();constructor(e){this.data=e}static create=e=>new g(g.schema.parse(e));static get randomUUID(){return g.create(a())}get model(){return this.data}get isUUID(){return t.uuidv4().safeParse(this.data).success}}export{s as ValueObjects,i as Store,n as Controller,d as Module};
1
+ import{__webpack_require__ as e}from"./rslib-runtime.js";import{NextResponse as r}from"next/server";import t from"zod";var a,o={};e.r(o),e.d(o,{InRAM:()=>h,methods:()=>m,toModuleMetadata:()=>_});var s={};e.r(s),e.d(s,{Pagination:()=>p});var i={};e.r(i),e.d(i,{DefaultErrorCodes:()=>c,endpoints:()=>u});var n={};e.r(n),e.d(n,{methods:()=>l});class d{static isControllerError=e=>{if(!e||"object"!=typeof e)return!1;let r=Object.keys(e);return["name","message","code","module","method","timestamp","statusCode"].every(e=>r.includes(e))};static isModuleError=e=>{if("object"!=typeof e||!e)return!1;let r=Object.keys(e);return!!["name","message","code","module","method","timestamp"].every(e=>r.includes(e))&&!r.includes("statusCode")};static base=({error:e,code:r,details:t})=>{let a=e instanceof Error?e:Error("unknown error");return("string"==typeof e||"number"==typeof e)&&(a=Error(e?.toString())),"object"==typeof e&&null!==e&&(a=e instanceof Error?e:Error(JSON.stringify(e))),{message:a.message,name:a.name,timestamp:Date.now(),code:r||a.name,details:t||null}};static forModule=e=>({inMethod:r=>({newError:(t,a)=>({...d.base(t),cause:a?d.fromUnknownError(a):null,module:e,method:r})})});static forController=e=>({inMethod:r=>({newError:(t,a)=>{let o=d.base(t),s=a?d.fromUnknownError(a):null;return!t.code&&s?.code&&(o.code=s.code),{...o,cause:s,module:e,method:r,statusCode:t.statusCode}}})});static fromUnknownError=e=>d.isModuleError(e)||(e=>{if("object"!=typeof e||!e)return!1;let r=Object.keys(e);return["name","message","code","timestamp"].every(e=>r.includes(e))})(e)?e:d.base({error:e})}let l=(e,r={})=>(t,a,o={})=>{let{name:s,schemas:i}=e;return async e=>{try{let r=i[t].payload.parse(e),o=await a(r,{methodError:(e,a)=>d.forModule(s).inMethod(t).newError("string"==typeof e?{error:e,code:e,details:r}:e,a)});return i[t].response.parse(o)}catch(a){if(d.isModuleError(a))throw r.onError&&await r.onError(a),o.onError&&await o.onError(a),a;let e=d.forModule(s).inMethod(t).newError({error:"Caught unhandled module error (see `cause` field for details)"},a);throw o.onError&&await o.onError(e),e}}};var c=((a={}).REQUEST_PARSING="ZOD-CONTROLLER___REQUEST-PARSING",a.RESPONSE_PARSING="ZOD-CONTROLLER___RESPONSE-PARSING",a);let u=(e,a={})=>(o,s,i={})=>async n=>{let l={},c=d.forController(e.name).inMethod(o);try{let d=(e,r,t)=>"string"==typeof e?c.newError({statusCode:r??500,code:e,error:e,details:l},t):c.newError({...e,statusCode:r??500},t);if(a.guards)for(let e of a.guards){let r=await e({request:n,endpointError:d});if(r)throw r}if(i.guards)for(let e of i.guards){let r=await e({request:n,endpointError:d});if(r)throw r}let u=e.schemas[o];if(!u)throw c.newError({error:"No schemas were found for the endpoint",statusCode:500});if(u.query){let e=Object.fromEntries(n.nextUrl.searchParams.entries()),r=u.query.safeParse(e);if(!r.success)throw c.newError({error:r.error.message,statusCode:400,code:"ZOD-CONTROLLER___REQUEST-PARSING",details:t.treeifyError(r.error)});l={...l,...r.data}}if(u.body){let e=await n.json(),r=u.body.safeParse(e);if(!r.success)throw c.newError({error:r.error.message,statusCode:400,code:"ZOD-CONTROLLER___REQUEST-PARSING",details:t.treeifyError(r.error)});l={...l,...r.data}}let p={},_=await s(l,{request:n,flags:p,endpointError:(e,r,t)=>"string"==typeof e?c.newError({statusCode:r??500,code:e,error:e,details:l},t):c.newError({...e,statusCode:r??500},t)});if(u.response){let e=u.response.safeParse(_);if(!e.success)throw c.newError({error:e.error.message,statusCode:500,code:"ZOD-CONTROLLER___RESPONSE-PARSING",details:t.treeifyError(e.error)});if(i.eventHandlers?.onSuccess)for(let r of i.eventHandlers.onSuccess)r({request:n,result:e.data,requestPayload:l,flags:p});if(i.customResponseLogic?.onSuccess)return await i.customResponseLogic.onSuccess({req:n,response:e.data});return r.json(e.data,{status:200})}if(i.eventHandlers?.onSuccess)for(let e of i.eventHandlers.onSuccess)await e({request:n,result:void 0,requestPayload:l,flags:p});if(i.customResponseLogic?.onSuccess)return await i.customResponseLogic.onSuccess({req:n,response:{}});return r.json({},{status:200})}catch(t){let e=t;if(d.isControllerError(t)||(e=c.newError({error:"Internal error",statusCode:500},t)),e.details&&"object"==typeof e.details||(e.details={}),a.onErrorHandlers)try{for(let r of a.onErrorHandlers)await r({error:e,req:n})}catch(r){e=c.newError({error:"onError handler error",statusCode:500},r)}if(i.eventHandlers?.onError)try{for(let r of i.eventHandlers.onError)await r({error:e,req:n})}catch(r){e=c.newError({error:"onError handler error",statusCode:500},r)}if(i.customResponseLogic?.onError)return await i.customResponseLogic.onError({req:n,error:e});return r.json({message:e.message,details:e.statusCode.toString().startsWith("4")?e.details:null,code:e.code},{status:e.statusCode})}};class p{data;static schema=t.object({zeroBasedIndex:t.coerce.number().int().nonnegative(),pageSize:t.coerce.number().int().positive()});constructor(e){this.data=e}static create=e=>{let r=p.schema.parse(e);return new p(r)};get model(){return this.data}same=e=>e.model.pageSize===this.model.pageSize&&e.model.zeroBasedIndex===this.model.zeroBasedIndex;get nextPage(){return p.create({pageSize:this.data.pageSize,zeroBasedIndex:this.data.zeroBasedIndex+1})}get previousPage(){return 0===this.model.zeroBasedIndex?p.create(this.model):p.create({pageSize:this.model.pageSize,zeroBasedIndex:this.model.zeroBasedIndex-1})}get previousPage_UNSAFE(){return p.create({pageSize:this.model.pageSize,zeroBasedIndex:this.model.zeroBasedIndex-1})}}let _=e=>({name:e.name,schemas:{...e.customOperations??{},list:{payload:t.object({filter:e.searchPayload.list,pagination:p.schema.optional()}),response:t.array(e.models.list)},details:{payload:t.object({filter:e.searchPayload.specific}),response:e.models.details.nullable()},create:{payload:t.object({payload:e.actionsPayload.create}),response:t.object({id:t.string()})},updateOne:{payload:t.object({filter:e.searchPayload.specific,payload:e.actionsPayload.update}),response:t.object({success:t.boolean()})},deleteOne:{payload:t.object({filter:e.searchPayload.specific}),response:t.object({success:t.boolean()})}}}),m=e=>l(_(e)),h=(e,r)=>{class a{___data=[];method=m(e);___listSearchLogic=(e,r)=>{let t=Object.entries(r).filter(([e,r])=>!!r).map(e=>e[0]);return Object.entries(e).filter(([e])=>t.includes(e)).every(([e,t])=>t===r[e]||t?.toString()?.includes(r[e]?.toString()))};___specificSearchLogic=(e,r)=>{let t=Object.entries(r).filter(([e,r])=>!!r).map(e=>e[0]);return Object.entries(e).filter(([e])=>t.includes(e)).every(([e,t])=>t===r[e]||t?.toString()?.includes(r[e]?.toString()))};___mapDetailToList=e=>e;___mapCreatePayloadToDetail=e=>({...e,id:Math.random().toString()});___mapUpdatePayloadToDetail=(e,r)=>{let t=Object.fromEntries(Object.entries(r).filter(([,e])=>void 0!==e));return{...e,...t}};constructor(){if(!r)return;r.searchLogic&&(r.searchLogic.list&&(this.___listSearchLogic=r.searchLogic.list),r.searchLogic.specific&&(this.___specificSearchLogic=r.searchLogic.specific)),r.mappers&&(r.mappers.detailToList&&(this.___mapDetailToList=r.mappers.detailToList),r.mappers.createPayloadToDetail&&(this.___mapCreatePayloadToDetail=r.mappers.createPayloadToDetail),r.mappers.updatePayloadToDetail&&(this.___mapUpdatePayloadToDetail=r.mappers.updatePayloadToDetail)),r.initialData&&(this.___data=[...r.initialData])}list=this.method("list",async({filter:r,pagination:a={pageSize:1e3,zeroBasedIndex:0}})=>{e.searchPayload.list.parse(r),p.schema.parse(a);let o=this.___data.filter(e=>this.___listSearchLogic(e,r)).filter((e,r)=>r>=a.pageSize*a.zeroBasedIndex&&r<(a.zeroBasedIndex+1)*a.pageSize).map(e=>this.___mapDetailToList(e));return t.array(e.models.list).parse(o),o});details=this.method("details",async({filter:e})=>{let r=this.___data.find(r=>this.___specificSearchLogic(r,e));return r||null});create=this.method("create",async({payload:e})=>{let r=this.___mapCreatePayloadToDetail(e);return this.___data=this.___data.concat(r),{id:r.id}});updateOne=this.method("updateOne",async({filter:e,payload:r})=>{let t=this.___data.findIndex(r=>this.___specificSearchLogic(r,e));return this.___data=this.___data.map((e,a)=>a!==t?e:this.___mapUpdatePayloadToDetail(e,r)),{success:t>-1}});deleteOne=this.method("deleteOne",async({filter:e})=>{let r=this.___data.findIndex(r=>this.___specificSearchLogic(r,e));return this.___data=this.___data.filter((e,t)=>t!==r),{success:r>-1}})}return a};export{o as Store,s as ValueObjects,i as Controller,n as Module};
@@ -1,5 +1,5 @@
1
1
  import z from 'zod';
2
- import { Pagination } from '../entities/pagination.entity';
2
+ import { Pagination } from '../value-objects/pagination.value-object';
3
3
  import type { CRUD, Types } from './store.shared-models.utils';
4
4
  import { type Contract, type Metadata } from './store.zod.utils';
5
5
  export declare const InRAM: <T extends Metadata>(schemas: T, options?: {
@@ -741,7 +741,7 @@ export declare const InRAM: <T extends Metadata>(schemas: T, options?: {
741
741
  update: AUpdate;
742
742
  };
743
743
  } : never : never : never)["SearchPayload"]["list"];
744
- pagination?: import("../entities").PaginationModel;
744
+ pagination?: import("../value-objects").PaginationModel;
745
745
  }) => Promise<(Contract<T> extends infer T_2 ? T_2 extends Contract<T> ? T_2 extends {
746
746
  list: (data: {
747
747
  filter: infer SList;
@@ -1,4 +1,4 @@
1
- import type { PaginationModel } from '../entities/pagination.entity';
1
+ import type { PaginationModel } from '../value-objects/pagination.value-object';
2
2
  export type CRUD<Models extends {
3
3
  list: unknown;
4
4
  detail: unknown;
@@ -1,6 +1,6 @@
1
1
  import type { ZodArray, ZodBoolean, ZodNullable, ZodObject, ZodString, ZodType } from 'zod';
2
2
  import z from 'zod';
3
- import { Pagination } from '../entities/pagination.entity';
3
+ import { Pagination } from '../value-objects/pagination.value-object';
4
4
  import type { CRUD } from './store.shared-models.utils';
5
5
  type ZodSchema = ZodType;
6
6
  type Models<List, Detail> = {
@@ -0,0 +1 @@
1
+ export * from './pagination.value-object';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alevnyacow/nzmt",
3
- "version": "0.16.20",
3
+ "version": "0.17.0",
4
4
  "description": "Next Zod Modules Toolkit",
5
5
  "keywords": ["next", "full-stack", "server", "backend", "cli", "scaffolder", "zod", "rest", "contract programming", "react-query", "ddd", "domain-driven"],
6
6
  "repository": {
@@ -1,11 +0,0 @@
1
- import z from 'zod';
2
- export type IdentifierModel = z.infer<typeof Identifier.schema>;
3
- export declare class Identifier {
4
- private readonly data;
5
- static schema: z.ZodString;
6
- private constructor();
7
- static create: (data: IdentifierModel) => Identifier;
8
- static get randomUUID(): Identifier;
9
- get model(): IdentifierModel;
10
- get isUUID(): boolean;
11
- }
@@ -1,2 +0,0 @@
1
- export * from './identifier.entity';
2
- export * from './pagination.entity';