simpledi-app-generator 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/README.md +9 -9
  2. package/dist/cli.js +3 -4
  3. package/dist/cli.js.map +1 -1
  4. package/dist/create_module.d.ts.map +1 -1
  5. package/dist/create_module.js +3 -0
  6. package/dist/create_module.js.map +1 -1
  7. package/dist/generate_crud_use_cases.d.ts.map +1 -1
  8. package/dist/generate_crud_use_cases.js +571 -130
  9. package/dist/generate_crud_use_cases.js.map +1 -1
  10. package/dist/generate_skeleton.d.ts.map +1 -1
  11. package/dist/generate_skeleton.js +57 -2
  12. package/dist/generate_skeleton.js.map +1 -1
  13. package/dist/templates/schema.ts +2 -0
  14. package/dist/templates/src/core/user/IUserRepository.ts +8 -0
  15. package/dist/templates/src/core/user/IUserService.ts +8 -0
  16. package/dist/templates/src/core/user/User.ts +71 -0
  17. package/dist/templates/src/core/user/UserModule.ts +7 -0
  18. package/dist/templates/src/core/user/UserRepository.spec.ts +63 -0
  19. package/dist/templates/src/core/user/UserRepository.ts +31 -0
  20. package/dist/templates/src/core/user/UserRepositoryModule.ts +15 -0
  21. package/dist/templates/src/core/user/UserService.ts +34 -0
  22. package/dist/templates/src/core/user/UserServiceModule.ts +14 -0
  23. package/dist/templates/src/core/user/baseZodUserSchema.ts +31 -0
  24. package/dist/templates/src/lib/functions/getContextUser.ts +5 -0
  25. package/dist/templates/src/lib/functions/test-related/createSignedUpUser.ts +44 -0
  26. package/dist/templates/src/lib/functions/test-related/getOneUserSignupData.ts +28 -0
  27. package/dist/templates/src/lib/functions/test-related/getTestServer.ts +28 -0
  28. package/dist/templates/src/lib/types/AdminRoleEnum.ts +6 -0
  29. package/dist/templates/src/lib/types/AnyRoleEnum.ts +5 -0
  30. package/dist/templates/src/lib/types/PhoneNumberTypeEnum.ts +7 -0
  31. package/dist/templates/src/lib/types/UserRoleEnum.ts +4 -0
  32. package/dist/templates/src/lib/types/UserTypeEnum.ts +4 -0
  33. package/dist/templates/src/middlewares/authGuard.ts +46 -0
  34. package/dist/templates/src/middlewares/index.ts +2 -0
  35. package/dist/templates/src/middlewares/roleGuard.ts +16 -0
  36. package/package.json +1 -1
  37. package/user-guide.md +16 -4
@@ -1 +1 @@
1
- {"version":3,"file":"generate_crud_use_cases.js","sourceRoot":"","sources":["../src/generate_crud_use_cases.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate_crud_use_cases.js","sourceRoot":"","sources":["../src/generate_crud_use_cases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EACL,YAAY,EACZ,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,SAAS,GACV,MAAM,sBAAsB,CAAC;AAW9B,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,UAAkB,EAClB,UAAkB,EAClB,SAAiB,EACjB,MAAc;IAEd,MAAM,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAe;QACzB,UAAU;QACV,UAAU;QACV,SAAS;QACT,UAAU;QACV,WAAW;QACX,YAAY;KACb,CAAC;IAEF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAC9D,MAAM,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjD,8BAA8B;IAC9B,MAAM,qBAAqB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,qBAAqB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,kBAAkB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,mBAAmB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,qBAAqB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAEpD,6BAA6B;IAC7B,MAAM,+BAA+B,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAE9D,oCAAoC;IACpC,MAAM,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9C,yCAAyC;IACzC,MAAM,qBAAqB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,qBAAqB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,kBAAkB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,mBAAmB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,qBAAqB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAEpD,OAAO,CAAC,GAAG,CAAC,oCAAoC,UAAU,GAAG,CAAC,CAAC;AACjE,CAAC;AAED,4CAA4C;AAC5C,KAAK,UAAU,qBAAqB,CAClC,OAAe,EACf,MAAkB;IAElB,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAC9E,MAAM,WAAW,GAAG,SAAS,UAAU,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,SAAS,EAAE,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAE/C,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,QAAQ;IACR,MAAM,YAAY,GAAG,iBAAiB,UAAU,gCAAgC,SAAS,WAAW,UAAU;;cAElG,WAAW,gBAAgB,UAAU;CAClD,CAAC;IAEA,iBAAiB;IACjB,MAAM,cAAc,GAAG;gBACT,UAAU,gCAAgC,SAAS,WAAW,UAAU;;cAE1E,WAAW,aAAa,UAAU;;eAEjC,WAAW;;cAEZ,WAAW;yBACA,UAAU;;;;;;CAMlC,CAAC;IAEA,iBAAiB;IACjB,MAAM,cAAc,GAAG;;eAEV,WAAW;oDAC0B,UAAU;;;;CAI7D,CAAC;IAEA,WAAW;IACX,MAAM,cAAc,GAAG;WACd,WAAW,iBAAiB,WAAW,6BAA6B,WAAW;;gBAE1E,WAAW,0BAA0B,WAAW;WACrD,UAAU,6BAA6B,SAAS,IAAI,UAAU;WAC9D,UAAU,6BAA6B,UAAU,8BAA8B,SAAS,KAAK,UAAU;;eAEnG,gBAAgB,CAAC,WAAW,CAAC,sBAAsB,gBAAgB,CAAC,WAAW,CAAC;;;WAGpF,gBAAgB,CAAC,WAAW,CAAC;;;eAGzB,WAAW;;cAEZ,UAAU;uBACD,UAAU,aAAa,UAAU;;;yBAG/B,WAAW,mBAAmB,WAAW;iCACjC,UAAU;iBAC1B,WAAW,sBAAsB,WAAW;;;;eAI9C,WAAW;cACZ,UAAU;;;iBAGP,gBAAgB,CAAC,WAAW,CAAC;kBAC5B,WAAW;;;;CAI5B,CAAC;IAEA,SAAS;IACT,MAAM,aAAa,GAAG;;;WAGb,WAAW,KAAK,gBAAgB,CAAC,WAAW,CAAC,6BAA6B,WAAW;WACrF,WAAW,6BAA6B,WAAW;WACnD,UAAU,mCAAmC,SAAS,IAAI,UAAU;;;;;;QAMvE,WAAW,CAAC,WAAW,CAAC;QACxB,WAAW,CAAC,WAAW,CAAC,kBAAkB,WAAW;;EAE3D,WAAW,CAAC,WAAW,CAAC;IACtB,WAAW,CAAC,WAAW,CAAC;;;;;;;;;;;sBAWN,UAAU;+BACD,WAAW,KAAK,gBAAgB,CAAC,WAAW,CAAC;;;;gCAI5C,WAAW,CAAC,WAAW,CAAC;;cAE1C,WAAW;;;;;;;WAOd,WAAW,CAAC,WAAW,CAAC,oBAAoB,WAAW,CAAC,WAAW,CAAC;CAC9E,CAAC;IAEA,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,WAAW,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;IACzE,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,YAAY,CAAC,EAAE,cAAc,CAAC,CAAC;IAC9E,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,YAAY,CAAC,EAAE,cAAc,CAAC,CAAC;IAC9E,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC;IACvE,MAAM,SAAS,CACb,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,EACxD,aAAa,CACd,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,mBAAmB,SAAS,YAAY,CAAC,CAAC;AACxD,CAAC;AAED,4CAA4C;AAC5C,KAAK,UAAU,qBAAqB,CAClC,OAAe,EACf,MAAkB;IAElB,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAC9E,MAAM,WAAW,GAAG,SAAS,UAAU,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,SAAS,EAAE,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAE/C,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,QAAQ;IACR,MAAM,YAAY,GAAG,iBAAiB,UAAU,gCAAgC,SAAS,WAAW,UAAU;;mBAE7F,WAAW;;uBAEP,UAAU;;CAEhC,CAAC;IAEA,iBAAiB;IACjB,MAAM,cAAc,GAAG;gBACT,UAAU,gCAAgC,SAAS,WAAW,UAAU;;cAE1E,WAAW,aAAa,UAAU;;eAEjC,WAAW;;cAEZ,WAAW;yBACA,UAAU;;;;;;CAMlC,CAAC;IAEA,iBAAiB;IACjB,MAAM,cAAc,GAAG;;eAEV,WAAW;oDAC0B,UAAU;;;;CAI7D,CAAC;IAEA,WAAW;IACX,MAAM,cAAc,GAAG;WACd,WAAW,iBAAiB,WAAW,6BAA6B,WAAW;;gBAE1E,WAAW,0BAA0B,WAAW;WACrD,UAAU,6BAA6B,SAAS,IAAI,UAAU;WAC9D,UAAU,6BAA6B,UAAU,8BAA8B,SAAS,KAAK,UAAU;;eAEnG,gBAAgB,CAAC,WAAW,CAAC,sBAAsB,gBAAgB,CAAC,WAAW,CAAC;;;WAGpF,gBAAgB,CAAC,WAAW,CAAC;;;eAGzB,WAAW;;cAEZ,UAAU;uBACD,UAAU,aAAa,UAAU;;;yBAG/B,WAAW,mBAAmB,WAAW;iCACjC,UAAU;iBAC1B,WAAW,sBAAsB,WAAW;;;;eAI9C,WAAW;cACZ,UAAU;;;iBAGP,gBAAgB,CAAC,WAAW,CAAC;kBAC5B,WAAW;;;;CAI5B,CAAC;IAEA,SAAS;IACT,MAAM,aAAa,GAAG;;;WAGb,WAAW,KAAK,gBAAgB,CAAC,WAAW,CAAC,6BAA6B,WAAW;WACrF,WAAW,6BAA6B,WAAW;gBAC9C,WAAW,0BAA0B,WAAW;WACrD,UAAU,mCAAmC,SAAS,IAAI,UAAU;;;;;;QAMvE,WAAW,CAAC,WAAW,CAAC;QACxB,WAAW,CAAC,WAAW,CAAC,kBAAkB,WAAW;;EAE3D,WAAW,CAAC,WAAW,CAAC;IACtB,WAAW,CAAC,WAAW,CAAC;;;;;;;;;;;;;qBAaP,UAAU;qBACV,WAAW;+BACD,WAAW,KAAK,gBAAgB,CAAC,WAAW,CAAC;;;;gCAI5C,WAAW,CAAC,WAAW,CAAC;;cAE1C,WAAW;;;;;;;WAOd,WAAW,CAAC,WAAW,CAAC,oBAAoB,WAAW,CAAC,WAAW,CAAC;CAC9E,CAAC;IAEA,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,WAAW,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;IACzE,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,YAAY,CAAC,EAAE,cAAc,CAAC,CAAC;IAC9E,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,YAAY,CAAC,EAAE,cAAc,CAAC,CAAC;IAC9E,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC;IACvE,MAAM,SAAS,CACb,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,EACxD,aAAa,CACd,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,mBAAmB,SAAS,YAAY,CAAC,CAAC;AACxD,CAAC;AAED,yCAAyC;AACzC,KAAK,UAAU,kBAAkB,CAC/B,OAAe,EACf,MAAkB;IAElB,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAC9E,MAAM,WAAW,GAAG,MAAM,UAAU,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,SAAS,EAAE,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAE/C,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,iBAAiB;IACjB,MAAM,cAAc,GAAG;gBACT,UAAU,gCAAgC,SAAS,WAAW,UAAU;;cAE1E,WAAW,aAAa,UAAU;;eAEjC,WAAW;;cAEZ,WAAW;yBACA,UAAU;;;;;;CAMlC,CAAC;IAEA,iBAAiB;IACjB,MAAM,cAAc,GAAG;;eAEV,WAAW;iDACuB,UAAU;;;;CAI1D,CAAC;IAEA,WAAW;IACX,MAAM,cAAc,GAAG;WACd,WAAW,iBAAiB,WAAW,6BAA6B,WAAW;;WAE/E,UAAU,6BAA6B,SAAS,IAAI,UAAU;WAC9D,UAAU,6BAA6B,UAAU,8BAA8B,SAAS,KAAK,UAAU;;eAEnG,gBAAgB,CAAC,WAAW,CAAC,sBAAsB,gBAAgB,CAAC,WAAW,CAAC;;;WAGpF,gBAAgB,CAAC,WAAW,CAAC;;;eAGzB,WAAW;;cAEZ,UAAU;uBACD,UAAU,aAAa,UAAU;;;uCAGjB,WAAW;gCAClB,UAAU;iBACzB,WAAW,qBAAqB,WAAW;;;;eAI7C,WAAW;cACZ,UAAU;;;iBAGP,gBAAgB,CAAC,WAAW,CAAC;kBAC5B,WAAW;;;;CAI5B,CAAC;IAEA,SAAS;IACT,MAAM,aAAa,GAAG;;;WAGb,WAAW,KAAK,gBAAgB,CAAC,WAAW,CAAC,6BAA6B,WAAW;WACrF,WAAW,6BAA6B,WAAW;;QAEtD,WAAW,CAAC,WAAW,CAAC;QACxB,WAAW,CAAC,WAAW,CAAC,kBAAkB,WAAW;;EAE3D,WAAW,CAAC,WAAW,CAAC,cAAc,WAAW,CAAC,WAAW,CAAC;;;6BAGnC,WAAW,KAAK,gBAAgB,CAAC,WAAW,CAAC;;;;8BAI5C,WAAW,CAAC,WAAW,CAAC;;YAE1C,WAAW;;;;;;WAMZ,WAAW,CAAC,WAAW,CAAC,oBAAoB,WAAW,CAAC,WAAW,CAAC;CAC9E,CAAC;IAEA,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,YAAY,CAAC,EAAE,cAAc,CAAC,CAAC;IAC9E,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,YAAY,CAAC,EAAE,cAAc,CAAC,CAAC;IAC9E,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC;IACvE,MAAM,SAAS,CACb,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,EACxD,aAAa,CACd,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,gBAAgB,SAAS,YAAY,CAAC,CAAC;AACrD,CAAC;AAED,0CAA0C;AAC1C,KAAK,UAAU,mBAAmB,CAChC,OAAe,EACf,MAAkB;IAElB,MAAM,EACJ,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,WAAW,GACZ,GAAG,MAAM,CAAC;IACX,MAAM,WAAW,GAAG,OAAO,YAAY,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAE/C,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,iBAAiB;IACjB,MAAM,cAAc,GAAG;gBACT,UAAU,gCAAgC,SAAS,WAAW,UAAU;;cAE1E,WAAW,aAAa,UAAU;;eAEjC,WAAW;;cAEZ,WAAW;yBACA,YAAY;;;;;;CAMpC,CAAC;IAEA,iBAAiB;IACjB,MAAM,cAAc,GAAG;;eAEV,WAAW;kDACwB,YAAY;;;;CAI7D,CAAC;IAEA,WAAW;IACX,MAAM,cAAc,GAAG;WACd,WAAW,iBAAiB,WAAW,6BAA6B,WAAW;;WAE/E,UAAU,6BAA6B,SAAS,IAAI,UAAU;WAC9D,UAAU,6BAA6B,UAAU,8BAA8B,SAAS,KAAK,UAAU;;eAEnG,gBAAgB,CAAC,WAAW,CAAC,sBAAsB,gBAAgB,CAAC,WAAW,CAAC;;;WAGpF,gBAAgB,CAAC,WAAW,CAAC;;;eAGzB,WAAW;;cAEZ,UAAU;uBACD,UAAU,aAAa,UAAU;;;6BAG3B,WAAW;kCACN,UAAU;iBAC3B,WAAW,uBAAuB,WAAW;;;;eAI/C,WAAW;cACZ,UAAU;;;iBAGP,gBAAgB,CAAC,WAAW,CAAC;kBAC5B,WAAW;;;;CAI5B,CAAC;IAEA,SAAS;IACT,MAAM,aAAa,GAAG;;;WAGb,WAAW,KAAK,gBAAgB,CAAC,WAAW,CAAC,6BAA6B,WAAW;WACrF,WAAW,6BAA6B,WAAW;;QAEtD,WAAW,CAAC,WAAW,CAAC;QACxB,WAAW,CAAC,WAAW,CAAC,kBAAkB,WAAW;;EAE3D,WAAW,CAAC,WAAW,CAAC,cAAc,WAAW,CAAC,WAAW,CAAC;;6BAEnC,WAAW,KAAK,gBAAgB,CAAC,WAAW,CAAC;;;;8BAI5C,WAAW,CAAC,WAAW,CAAC;;YAE1C,WAAW;;;;;;WAMZ,WAAW,CAAC,WAAW,CAAC,oBAAoB,WAAW,CAAC,WAAW,CAAC;CAC9E,CAAC;IAEA,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,YAAY,CAAC,EAAE,cAAc,CAAC,CAAC;IAC9E,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,YAAY,CAAC,EAAE,cAAc,CAAC,CAAC;IAC9E,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC;IACvE,MAAM,SAAS,CACb,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,EACxD,aAAa,CACd,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,WAAW,YAAY,CAAC,CAAC;AAC/D,CAAC;AAED,4CAA4C;AAC5C,KAAK,UAAU,qBAAqB,CAClC,OAAe,EACf,MAAkB;IAElB,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAC9E,MAAM,WAAW,GAAG,SAAS,UAAU,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,SAAS,EAAE,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAE/C,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,iBAAiB;IACjB,MAAM,cAAc,GAAG;;cAEX,WAAW;;eAEV,WAAW;;cAEZ,WAAW;yBACA,UAAU;;;;;;CAMlC,CAAC;IAEA,iBAAiB;IACjB,MAAM,cAAc,GAAG;;eAEV,WAAW;oDAC0B,UAAU;;;;CAI7D,CAAC;IAEA,WAAW;IACX,MAAM,cAAc,GAAG;WACd,WAAW,iBAAiB,WAAW,6BAA6B,WAAW;;WAE/E,UAAU,6BAA6B,SAAS,IAAI,UAAU;WAC9D,UAAU,6BAA6B,UAAU,8BAA8B,SAAS,KAAK,UAAU;;eAEnG,gBAAgB,CAAC,WAAW,CAAC,sBAAsB,gBAAgB,CAAC,WAAW,CAAC;;;WAGpF,gBAAgB,CAAC,WAAW,CAAC;;;eAGzB,WAAW;;cAEZ,UAAU;uBACD,UAAU,aAAa,UAAU;;;mEAGW,WAAW;iBAC7D,UAAU;oBACP,WAAW;iBACd,WAAW;;;;eAIb,WAAW;cACZ,UAAU;;;iBAGP,gBAAgB,CAAC,WAAW,CAAC;kBAC5B,WAAW;;;;CAI5B,CAAC;IAEA,SAAS;IACT,MAAM,aAAa,GAAG;;;WAGb,WAAW,KAAK,gBAAgB,CAAC,WAAW,CAAC,6BAA6B,WAAW;WACrF,WAAW,6BAA6B,WAAW;;;;;QAKtD,WAAW,CAAC,WAAW,CAAC;QACxB,WAAW,CAAC,WAAW,CAAC,kBAAkB,WAAW;;EAE3D,WAAW,CAAC,WAAW,CAAC;IACtB,WAAW,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;+BAiBG,WAAW,KAAK,gBAAgB,CAAC,WAAW,CAAC;;;;gCAI5C,WAAW,CAAC,WAAW,CAAC;;cAE1C,WAAW;;;;;;;WAOd,WAAW,CAAC,WAAW,CAAC,oBAAoB,WAAW,CAAC,WAAW,CAAC;CAC9E,CAAC;IAEA,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,YAAY,CAAC,EAAE,cAAc,CAAC,CAAC;IAC9E,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,YAAY,CAAC,EAAE,cAAc,CAAC,CAAC;IAC9E,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC;IACvE,MAAM,SAAS,CACb,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,EACxD,aAAa,CACd,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,mBAAmB,SAAS,YAAY,CAAC,CAAC;AACxD,CAAC;AAED,8CAA8C;AAC9C,KAAK,UAAU,+BAA+B,CAC5C,OAAe,EACf,MAAkB;IAElB,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAEpE,MAAM,OAAO,GAAG;iBACD,UAAU,2BAA2B,SAAS,UAAU,UAAU;iBAClE,UAAU,2BAA2B,SAAS,UAAU,UAAU;cACrE,UAAU,wBAAwB,SAAS,OAAO,UAAU;eAC3D,YAAY,yBAAyB,WAAW,QAAQ,YAAY;iBAClE,UAAU,2BAA2B,SAAS,UAAU,UAAU;;eAEpE,UAAU;;YAEb,UAAU;YACV,UAAU;SACb,UAAU;UACT,YAAY;YACV,UAAU;;;CAGrB,CAAC;IAEA,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,kBAAkB,CAAC,EAAE,OAAO,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,YAAY,SAAS,IAAI,UAAU,kBAAkB,CAAC,CAAC;AACrE,CAAC;AAED,yDAAyD;AACzD,KAAK,UAAU,uBAAuB,CACpC,MAAc,EACd,MAAkB;IAElB,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IACzC,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;IAEvE,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QACjE,OAAO;IACT,CAAC;IAED,IAAI,OAAO,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,YAAY,UAAU,2BAA2B,SAAS,IAAI,UAAU,iBAAiB,CAAC;IAElH,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,UAAU,eAAe,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,qBAAqB;IAC/B,CAAC;IAED,+BAA+B;IAC/B,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACvD,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAC7D,OAAO;YACL,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,GAAG,CAAC,CAAC;gBACnC,eAAe;gBACf,IAAI;gBACJ,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC;IAC7C,CAAC;IAED,uBAAuB;IACvB,MAAM,YAAY,GAAG,gBAAgB,CAAC;IACtC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACjD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACjD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,KAAK,EAAE,CAAC;YAChC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,KAAK,EAAE,CAAC;YAChC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,QAAQ,GAAG,CAAC,CAAC;gBACb,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;YACpB,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACzD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,UAAU,eAAe,CAAC,EAAE,CAAC;gBACzD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;gBACpC,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtE,MAAM,SAAS,GAAG,GAAG,SAAS,GAAG,UAAU,eAAe,CAAC;gBAC3D,OAAO;oBACL,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;AACxD,CAAC;AAED,iDAAiD;AAEjD,KAAK,UAAU,qBAAqB,CAClC,OAAe,EACf,MAAkB;IAElB,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAClE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,SAAS,EAAE,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;kBAiBJ,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;4CAyBgB,UAAU;;;;;gDAKN,WAAW;;;;;;;;;;;;;;;;;;;;gDAoBX,WAAW;;;;;;;;;;;;;;;;gDAgBX,UAAU;yBACjC,UAAU;;;;;;CAMlC,CAAC;IACA,MAAM,SAAS,CACb,IAAI,CAAC,UAAU,EAAE,SAAS,UAAU,cAAc,CAAC,EACnD,WAAW,CACZ,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,OAAe,EACf,MAAkB;IAElB,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAClE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,SAAS,EAAE,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;kBAiBJ,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CA4BgB,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gDAsCN,UAAU;yBACjC,UAAU;;;;;CAKlC,CAAC;IACA,MAAM,SAAS,CACb,IAAI,CAAC,UAAU,EAAE,SAAS,UAAU,cAAc,CAAC,EACnD,WAAW,CACZ,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,OAAe,EACf,MAAkB;IAElB,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAClE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,SAAS,EAAE,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;eAgBP,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CA4BmB,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BrD,CAAC;IACA,MAAM,SAAS,CACb,IAAI,CAAC,UAAU,EAAE,MAAM,UAAU,cAAc,CAAC,EAChD,WAAW,CACZ,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,OAAe,EACf,MAAkB;IAElB,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,GACpE,MAAM,CAAC;IACT,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,WAAW,EAAE,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;gBAgBN,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;4CA2BgB,UAAU;;;;;;;;;;gDAUN,WAAW;;;;;;;;;;;;CAY1D,CAAC;IACA,MAAM,SAAS,CACb,IAAI,CAAC,UAAU,EAAE,OAAO,YAAY,cAAc,CAAC,EACnD,WAAW,CACZ,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,OAAe,EACf,MAAkB;IAElB,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAClE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,SAAS,EAAE,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;kBAiBJ,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CA6BgB,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;gDA0BN,UAAU;yBACjC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;gDAyBa,UAAU;yBACjC,UAAU;;;;;CAKlC,CAAC;IACA,MAAM,SAAS,CACb,IAAI,CAAC,UAAU,EAAE,SAAS,UAAU,cAAc,CAAC,EACnD,WAAW,CACZ,CAAC;AACJ,CAAC;AAED,aAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate_skeleton.d.ts","sourceRoot":"","sources":["../src/generate_skeleton.ts"],"names":[],"mappings":"AAUA,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2QzE"}
1
+ {"version":3,"file":"generate_skeleton.d.ts","sourceRoot":"","sources":["../src/generate_skeleton.ts"],"names":[],"mappings":"AAUA,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqUzE"}
@@ -106,6 +106,26 @@ export async function generateSkeleton(projectName) {
106
106
  src: 'src/lib/types/getCorsOrigin.ts',
107
107
  dest: 'src/lib/types/getCorsOrigin.ts',
108
108
  },
109
+ {
110
+ src: 'src/lib/types/UserRoleEnum.ts',
111
+ dest: 'src/lib/types/UserRoleEnum.ts',
112
+ },
113
+ {
114
+ src: 'src/lib/types/UserTypeEnum.ts',
115
+ dest: 'src/lib/types/UserTypeEnum.ts',
116
+ },
117
+ {
118
+ src: 'src/lib/types/AdminRoleEnum.ts',
119
+ dest: 'src/lib/types/AdminRoleEnum.ts',
120
+ },
121
+ {
122
+ src: 'src/lib/types/AnyRoleEnum.ts',
123
+ dest: 'src/lib/types/AnyRoleEnum.ts',
124
+ },
125
+ {
126
+ src: 'src/lib/types/PhoneNumberTypeEnum.ts',
127
+ dest: 'src/lib/types/PhoneNumberTypeEnum.ts',
128
+ },
109
129
  // Lib - Functions
110
130
  {
111
131
  src: 'src/lib/functions/getEnvFile.ts',
@@ -127,6 +147,32 @@ export async function generateSkeleton(projectName) {
127
147
  src: 'src/lib/functions/withBaseSchema.ts',
128
148
  dest: 'src/lib/functions/withBaseSchema.ts',
129
149
  },
150
+ // Lib - Functions/test-related
151
+ {
152
+ src: 'src/lib/functions/test-related/getTestServer.ts',
153
+ dest: 'src/lib/functions/test-related/getTestServer.ts',
154
+ },
155
+ {
156
+ src: 'src/lib/functions/test-related/getNewTestServer.ts',
157
+ dest: 'src/lib/functions/test-related/getNewTestServer.ts',
158
+ },
159
+ {
160
+ src: 'src/lib/functions/test-related/createSignedUpUser.ts',
161
+ dest: 'src/lib/functions/test-related/createSignedUpUser.ts',
162
+ },
163
+ {
164
+ src: 'src/lib/functions/test-related/getOneUserSignupData.ts',
165
+ dest: 'src/lib/functions/test-related/getOneUserSignupData.ts',
166
+ },
167
+ // Middlewares
168
+ {
169
+ src: 'src/middlewares/authGuard.ts',
170
+ dest: 'src/middlewares/authGuard.ts',
171
+ },
172
+ {
173
+ src: 'src/middlewares/roleGuard.ts',
174
+ dest: 'src/middlewares/roleGuard.ts',
175
+ },
130
176
  // Lib - Errors
131
177
  {
132
178
  src: 'src/lib/errors/BadRequestException.ts',
@@ -166,6 +212,10 @@ export async function generateSkeleton(projectName) {
166
212
  src: 'src/core/baseSchema.ts',
167
213
  dest: 'src/core/baseSchema.ts',
168
214
  },
215
+ {
216
+ src: 'src/core/user',
217
+ dest: 'src/core/user',
218
+ },
169
219
  ];
170
220
  // Helper function to read template and write to dest
171
221
  const applyTemplate = async (tpl) => {
@@ -177,7 +227,7 @@ export async function generateSkeleton(projectName) {
177
227
  await mkdir(parentDir, { recursive: true });
178
228
  }
179
229
  if (existsSync(srcPath)) {
180
- await cp(srcPath, destPath);
230
+ await cp(srcPath, destPath, { recursive: true });
181
231
  console.log(`Created ${tpl.dest}`);
182
232
  }
183
233
  else {
@@ -187,10 +237,11 @@ export async function generateSkeleton(projectName) {
187
237
  for (const tpl of templates) {
188
238
  await applyTemplate(tpl);
189
239
  }
190
- // Generate Indices
191
240
  const libTypesDest = join(targetDir, 'src/lib/types');
192
241
  const libFunctionsDest = join(targetDir, 'src/lib/functions');
242
+ const libTestFunctionsDest = join(targetDir, 'src/lib/functions/test-related');
193
243
  const libErrorsDest = join(targetDir, 'src/lib/errors');
244
+ const middlewaresDest = join(targetDir, 'src/middlewares');
194
245
  const libDest = join(targetDir, 'src/lib');
195
246
  const coreDir = join(targetDir, 'src/core');
196
247
  await mkdir(coreDir, { recursive: true });
@@ -208,7 +259,9 @@ export async function generateSkeleton(projectName) {
208
259
  };
209
260
  await createIndex(libTypesDest);
210
261
  await createIndex(libFunctionsDest);
262
+ await createIndex(libTestFunctionsDest);
211
263
  await createIndex(libErrorsDest);
264
+ await createIndex(middlewaresDest);
212
265
  // lib/index.ts
213
266
  const libIndexContent = `export * from "./functions";
214
267
  export * from "./types";
@@ -219,11 +272,13 @@ export * from "./errors";`;
219
272
  const coreModuleContent = `import { Module } from '@kanian77/simple-di';
220
273
  import { getConfigModule } from 'config/getConfigModule';
221
274
  import { getDbModule } from 'db/getDbModule';
275
+ import { UserModule } from './user/UserModule';
222
276
 
223
277
  export const CoreModule = new Module({
224
278
  imports: [
225
279
  getConfigModule(),
226
280
  getDbModule(),
281
+ UserModule,
227
282
  ],
228
283
  });
229
284
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"generate_skeleton.js","sourceRoot":"","sources":["../src/generate_skeleton.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate_skeleton.js","sourceRoot":"","sources":["../src/generate_skeleton.ts"],"names":[],"mappings":"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"}
@@ -1 +1,3 @@
1
1
  // Empty schema
2
+
3
+ export * from '@root/core/user/User';
@@ -0,0 +1,8 @@
1
+ import type { IRepository } from '@root/IRepository';
2
+ import type { UserInterface } from './baseZodUserSchema';
3
+
4
+ export const USER_REPOSITORY_INTERFACE = 'IUserRepository';
5
+
6
+ export interface IUserRepository extends IRepository<UserInterface> {
7
+ // Add entity-specific repository methods here
8
+ }
@@ -0,0 +1,8 @@
1
+ import type { IService } from '@root/IService';
2
+ import type { UserInterface } from './baseZodUserSchema';
3
+
4
+ export const USER_SERVICE_INTERFACE = 'IUserService';
5
+
6
+ export interface IUserService extends IService<UserInterface> {
7
+ // Add entity-specific service methods here
8
+ }
@@ -0,0 +1,71 @@
1
+ import { withBaseSchema } from '@root/lib/functions/withBaseSchema';
2
+ import { jsonb, text, varchar } from 'drizzle-orm/pg-core';
3
+ import {
4
+ createInsertSchema,
5
+ createSelectSchema,
6
+ createUpdateSchema,
7
+ } from 'drizzle-zod';
8
+ import { z } from 'zod';
9
+ import { adminZodUserSchema, userZodUserSchema } from './baseZodUserSchema';
10
+ import { UserTypePgEnum } from '@root/lib/types/UserTypePgEnum';
11
+ import { UserRolePgEnum } from '@root/lib/types/UserRolePgEnum';
12
+ import type { PhoneNumberInterface } from '@root/lib';
13
+
14
+ // Table name constant
15
+ export const USER_TABLE_NAME = 'users';
16
+
17
+ // Schema definition
18
+ export const userSchema = withBaseSchema(USER_TABLE_NAME, {
19
+ email: varchar('email', { length: 255 }).unique(),
20
+ password: varchar('password', { length: 255 }),
21
+ firstName: varchar('first_name', { length: 255 }),
22
+ lastName: varchar('last_name', { length: 255 }),
23
+ phoneNumber: jsonb('phone_number').$type<PhoneNumberInterface>(),
24
+ userType: UserTypePgEnum('user_type').notNull(), // Stores 'ADMIN' or 'USER'
25
+ role: UserRolePgEnum('role').notNull(),
26
+ });
27
+
28
+ // Relations definition
29
+ // import { relations } from 'drizzle-orm';
30
+ // export const userRelations = relations(userSchema, ({ one, many }) => ({
31
+ // // TODO: Add relationships here
32
+ // }));
33
+
34
+ // Type exports
35
+ export type UserSchemaType = typeof userSchema;
36
+
37
+ // Zod validation schemas
38
+ export const UserInsertSchema = z.discriminatedUnion('userType', [
39
+ createInsertSchema(userSchema).merge(
40
+ adminZodUserSchema.partial({
41
+ id: true,
42
+ createdAt: true,
43
+ createdBy:true,
44
+ updatedAt: true,
45
+ updatedBy: true,
46
+ deletedAt: true,
47
+ deleted: true,
48
+ }),
49
+ ),
50
+ createInsertSchema(userSchema).merge(
51
+ userZodUserSchema.partial({
52
+ id: true,
53
+ createdAt: true,
54
+ createdBy:true,
55
+ updatedAt: true,
56
+ updatedBy: true,
57
+ deletedAt: true,
58
+ deleted: true,
59
+ }),
60
+ ),
61
+ ]);
62
+
63
+ export const UserSelectSchema = z.discriminatedUnion('userType', [
64
+ createSelectSchema(userSchema).merge(adminZodUserSchema),
65
+ createSelectSchema(userSchema).merge(userZodUserSchema),
66
+ ]);
67
+
68
+ export const UserUpdateSchema = z.union([
69
+ createUpdateSchema(userSchema).merge(adminZodUserSchema.partial()),
70
+ createUpdateSchema(userSchema).merge(userZodUserSchema.partial()),
71
+ ]);
@@ -0,0 +1,7 @@
1
+ import { Module } from '@kanian77/simple-di';
2
+ import { UserRepositoryModule } from './UserRepositoryModule';
3
+ import { UserServiceModule } from './UserServiceModule';
4
+
5
+ export const UserModule = new Module({
6
+ imports: [UserRepositoryModule, UserServiceModule],
7
+ });
@@ -0,0 +1,63 @@
1
+ import { afterAll, afterEach, beforeAll, describe, expect, it } from 'bun:test';
2
+ import { UserRepository } from './UserRepository';
3
+ import { randomUUIDv7 } from 'bun';
4
+ import * as schema from '@root/schema';
5
+ import { NeonHttpDatabase } from 'drizzle-orm/neon-http';
6
+ import {
7
+ EnvFileNames,
8
+ } from '@root/lib';
9
+ import { USER_REPOSITORY_INTERFACE } from './IUserRepository';
10
+ import { bootstrap, inject, Module } from '@kanian77/simple-di';
11
+ import { DB_SERVICE, DbService } from 'db/DbService';
12
+ import { getConfigModule } from 'config/getConfigModule';
13
+
14
+ describe('UserRepository', () => {
15
+ let userRepository: UserRepository;
16
+ let db: NeonHttpDatabase<typeof schema>;
17
+
18
+ const clear = async (db: NeonHttpDatabase<typeof schema>) => {
19
+ // await db.delete(schema.userSchema).execute();
20
+ };
21
+
22
+ beforeAll(async () => {
23
+ const ConfigModule = getConfigModule(EnvFileNames.TESTING);
24
+ const DbModule = getConfigModule(EnvFileNames.TESTING);
25
+
26
+ const UserRepositoryModule = new Module({
27
+ imports: [ConfigModule, DbModule],
28
+ providers: [
29
+ {
30
+ provide: USER_REPOSITORY_INTERFACE,
31
+ useClass: UserRepository,
32
+ },
33
+ ],
34
+ });
35
+
36
+ const TestModule = new Module({
37
+ imports: [
38
+ ConfigModule,
39
+ DbModule,
40
+ UserRepositoryModule,
41
+ ],
42
+ });
43
+
44
+ bootstrap(TestModule);
45
+
46
+ db = inject<DbService>(DB_SERVICE).getDb();
47
+ userRepository = inject<UserRepository>(USER_REPOSITORY_INTERFACE);
48
+
49
+ await clear(db);
50
+ });
51
+
52
+ afterEach(async () => {
53
+ // await db.delete(schema.userSchema).execute();
54
+ });
55
+
56
+ afterAll(async () => {
57
+ await clear(db);
58
+ });
59
+
60
+ it('should be defined', () => {
61
+ expect(userRepository).toBeDefined();
62
+ });
63
+ });
@@ -0,0 +1,31 @@
1
+ import { BaseRepository } from '@root/BaseRepository';
2
+ import {
3
+ USER_REPOSITORY_INTERFACE,
4
+ type IUserRepository,
5
+ } from './IUserRepository';
6
+ import { userSchema, type UserSchemaType } from './User';
7
+ import { type UserInterface } from './baseZodUserSchema';
8
+ import { Inject, Service } from '@kanian77/simple-di';
9
+ import { DB_SERVICE, DbService } from 'db/DbService';
10
+
11
+ @Service({ token: USER_REPOSITORY_INTERFACE })
12
+ export class UserRepository
13
+ extends BaseRepository<UserInterface, UserSchemaType>
14
+ implements IUserRepository
15
+ {
16
+ constructor(@Inject(DB_SERVICE) private dbService: DbService) {
17
+ super(userSchema, dbService);
18
+ }
19
+
20
+ async find(config?: any): Promise<UserInterface[]> {
21
+ return (await this.db.query.userSchema.findMany(
22
+ config
23
+ )) as unknown as UserInterface[];
24
+ }
25
+
26
+ async findOne(config?: any): Promise<UserInterface> {
27
+ return (await this.db.query.userSchema.findFirst(
28
+ config
29
+ )) as unknown as UserInterface;
30
+ }
31
+ }
@@ -0,0 +1,15 @@
1
+ import { Module } from '@kanian77/simple-di';
2
+ import { USER_REPOSITORY_INTERFACE } from './IUserRepository';
3
+ import { UserRepository } from './UserRepository';
4
+ import { getConfigModule } from 'config/getConfigModule';
5
+ import { getDbModule } from 'db/getDbModule';
6
+
7
+ export const UserRepositoryModule = new Module({
8
+ imports: [getConfigModule(), getDbModule()],
9
+ providers: [
10
+ {
11
+ provide: USER_REPOSITORY_INTERFACE,
12
+ useClass: UserRepository,
13
+ },
14
+ ],
15
+ });
@@ -0,0 +1,34 @@
1
+ import { BaseService } from '@root/BaseService';
2
+ import type { UserInterface } from './baseZodUserSchema';
3
+ import {
4
+ USER_SERVICE_INTERFACE,
5
+ type IUserService,
6
+ } from './IUserService';
7
+ import {
8
+ USER_REPOSITORY_INTERFACE,
9
+ type IUserRepository,
10
+ } from './IUserRepository';
11
+ import {
12
+ UserInsertSchema,
13
+ UserSelectSchema,
14
+ UserUpdateSchema,
15
+ } from './User';
16
+ import { Inject, Service } from '@kanian77/simple-di';
17
+
18
+ @Service({ token: USER_SERVICE_INTERFACE })
19
+ export class UserService
20
+ extends BaseService<UserInterface>
21
+ implements IUserService
22
+ {
23
+ constructor(
24
+ @Inject(USER_REPOSITORY_INTERFACE)
25
+ private readonly userRepository: IUserRepository
26
+ ) {
27
+ super(
28
+ userRepository,
29
+ UserInsertSchema,
30
+ UserUpdateSchema,
31
+ UserSelectSchema
32
+ );
33
+ }
34
+ }
@@ -0,0 +1,14 @@
1
+ import { Module } from '@kanian77/simple-di';
2
+ import { UserService } from './UserService';
3
+ import { UserRepositoryModule } from './UserRepositoryModule';
4
+ import { USER_SERVICE_INTERFACE } from './IUserService';
5
+
6
+ export const UserServiceModule = new Module({
7
+ imports: [UserRepositoryModule],
8
+ providers: [
9
+ {
10
+ provide: USER_SERVICE_INTERFACE,
11
+ useClass: UserService,
12
+ },
13
+ ],
14
+ });
@@ -0,0 +1,31 @@
1
+ import { z } from "zod";
2
+ import { baseZodSchema } from "@root/core/baseZodSchema";
3
+ import { AdminRoleEnum } from "@root/lib/types/AdminRoleEnum";
4
+ import { UserRoleEnum } from "@root/lib/types/UserRoleEnum";
5
+ import { phoneNumberSchema } from "@root/lib/schemas/phoneNumberSchema";
6
+
7
+ export const adminZodUserSchema = baseZodSchema.extend({
8
+ email: z.string().email().optional(),
9
+ password: z.string().optional(),
10
+ firstName: z.string().max(255).optional(),
11
+ lastName: z.string().max(255).optional(),
12
+ phoneNumber: phoneNumberSchema.optional(),
13
+ userType: z.literal('ADMIN'),
14
+ role: z.nativeEnum(AdminRoleEnum),
15
+ });
16
+
17
+ export const userZodUserSchema = baseZodSchema.extend({
18
+ email: z.string().email().optional(),
19
+ password: z.string().optional(),
20
+ firstName: z.string().max(255).optional(),
21
+ lastName: z.string().max(255).optional(),
22
+ phoneNumber: phoneNumberSchema.optional(),
23
+ userType: z.literal('USER'),
24
+ role: z.nativeEnum(UserRoleEnum),
25
+ });
26
+
27
+ export const baseZodUserSchema = z.discriminatedUnion('userType', [
28
+ adminZodUserSchema,
29
+ userZodUserSchema,
30
+ ]);
31
+ export type UserInterface = z.infer<typeof baseZodUserSchema>;
@@ -0,0 +1,5 @@
1
+ import type { Context } from 'hono';
2
+
3
+ export const getContextUser = (c: Context) => {
4
+ return c.get('user');
5
+ };
@@ -0,0 +1,44 @@
1
+ import { getOneUserSignupData } from './getOneUserSignupData';
2
+ import { AuthenticationUtils } from '@root/lib/AuthenticationUtils';
3
+ import type { UserRepository } from '@root/core/user/UserRepository';
4
+ import type { UserInterface } from '@root/core/user/baseZodUserSchema';
5
+ import type { TokenPayload } from '@root/lib/types';
6
+
7
+ const users: Partial<UserInterface>[] = [];
8
+
9
+ export const createOneSignedUpUser = async (
10
+ userRepository: UserRepository,
11
+ overrides: Partial<UserInterface> = {},
12
+ ) => {
13
+ const userData = getOneUserSignupData(overrides);
14
+ userData.password = await AuthenticationUtils.hashPassword(
15
+ userData.password as string,
16
+ );
17
+
18
+ const createdUser = await userRepository.create(userData as any);
19
+
20
+ // We need to cast createdUser to UserInterface because repository might return something slightly different
21
+ // or TypeScript might infer it differently, but for tests this is usually fine.
22
+ const user = createdUser as UserInterface;
23
+
24
+ const token = await AuthenticationUtils.generateToken(user);
25
+ const payload = AuthenticationUtils.verifyToken(token) as TokenPayload;
26
+
27
+ users.push(user);
28
+ return { token, payload, user };
29
+ };
30
+
31
+ export const deleteCreatedSignedUsers = async (
32
+ userRepository: UserRepository,
33
+ ) => {
34
+ // Check if delete method exists and accepts ID, assuming standard repository pattern
35
+ // If delete is not implementing in repository yet, we might need to use DB directly or skip this.
36
+ // Based on User.ts, we have a base repository.
37
+
38
+ await Promise.all(
39
+ users.map((user) =>
40
+ user.id ? userRepository.delete(user.id) : Promise.resolve(),
41
+ ),
42
+ );
43
+ users.length = 0;
44
+ };
@@ -0,0 +1,28 @@
1
+ import { v7 as randomUUIDv7 } from 'uuid';
2
+ import { type UserInterface } from '@root/core/user/baseZodUserSchema';
3
+ import { PhoneNumberTypeEnum } from '@root/lib/types/PhoneNumberTypeEnum';
4
+ import { UserRoleEnum } from '@root/lib/types/UserRoleEnum';
5
+
6
+ // We need to define the enum values manually since we can't import them directly as values easily in all contexts,
7
+ // or fetch from where they are defined if it's a drizzle enum object.
8
+ // Based on file reads:
9
+ // UserTypePgEnum: ['ADMIN', 'USER']
10
+ // UserRolePgEnum: ['ADMIN', 'AUTHOR', 'EDITOR', 'AUTHENTICATED']
11
+
12
+ export const getOneUserSignupData = (
13
+ overrides: Partial<UserInterface> = {},
14
+ ) => ({
15
+ id: randomUUIDv7(),
16
+ firstName: 'Test',
17
+ lastName: 'User',
18
+ email: `${randomUUIDv7()}@example.com`,
19
+ password: 'password123',
20
+ phoneNumber: {
21
+ countryCode: '+1',
22
+ number: '1234567890',
23
+ type: PhoneNumberTypeEnum.MOBILE,
24
+ },
25
+ userType: 'USER' as const,
26
+ role: UserRoleEnum.AUTHENTICATED,
27
+ ...overrides,
28
+ });
@@ -0,0 +1,28 @@
1
+ import { serve } from '@hono/node-server';
2
+ import type { Hono } from 'hono';
3
+ import supertest from 'supertest';
4
+
5
+ export const getTestServer = (app: Hono, port?: number) => {
6
+ const usePort = port || 3001 + Math.floor(Math.random() * 10000);
7
+
8
+ const server = serve({ port: usePort, fetch: app.fetch });
9
+
10
+ return {
11
+ request: () => supertest(server),
12
+ app,
13
+ port: usePort,
14
+ close: () => {
15
+ return new Promise<boolean>((resolve, reject) => {
16
+ server.close((err) => {
17
+ if (err) {
18
+ console.error(`Error closing server on port ${usePort}:`, err);
19
+ reject(err);
20
+ } else {
21
+ console.log(`Server on port ${usePort} successfully closed`);
22
+ resolve(true);
23
+ }
24
+ });
25
+ });
26
+ },
27
+ };
28
+ };
@@ -0,0 +1,6 @@
1
+ // Roles scoped to each type
2
+ export enum AdminRoleEnum {
3
+ ADMIN = 'admin',
4
+ EDITOR = 'editor',
5
+ AUTHOR = 'author',
6
+ }
@@ -0,0 +1,5 @@
1
+ import type { AdminRoleEnum } from './AdminRoleEnum';
2
+ import type { UserRoleEnum } from './UserRoleEnum';
3
+
4
+ // Keep a union type if you ever need "any role"
5
+ export type AnyRoleEnum = AdminRoleEnum | UserRoleEnum;