@sisques-labs/nestjs-kit 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) hide show
  1. package/README.md +770 -0
  2. package/dist/index.d.ts +93 -0
  3. package/dist/index.js +110 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/shared/application/commands/base/base-command.handler.d.ts +6 -0
  6. package/dist/shared/application/commands/base/base-command.handler.js +14 -0
  7. package/dist/shared/application/commands/base/base-command.handler.js.map +1 -0
  8. package/dist/shared/application/commands/interfaces/base-command-handler.interface.d.ts +3 -0
  9. package/dist/shared/application/commands/interfaces/base-command-handler.interface.js +3 -0
  10. package/dist/shared/application/commands/interfaces/base-command-handler.interface.js.map +1 -0
  11. package/dist/shared/application/commands/update/base-update/base-update.command-handler.d.ts +9 -0
  12. package/dist/shared/application/commands/update/base-update/base-update.command-handler.js +25 -0
  13. package/dist/shared/application/commands/update/base-update/base-update.command-handler.js.map +1 -0
  14. package/dist/shared/application/dtos/commands/field-changed/base-field-changed-command.dto.d.ts +5 -0
  15. package/dist/shared/application/dtos/commands/field-changed/base-field-changed-command.dto.js +3 -0
  16. package/dist/shared/application/dtos/commands/field-changed/base-field-changed-command.dto.js.map +1 -0
  17. package/dist/shared/application/services/base-service/base-service.interface.d.ts +3 -0
  18. package/dist/shared/application/services/base-service/base-service.interface.js +3 -0
  19. package/dist/shared/application/services/base-service/base-service.interface.js.map +1 -0
  20. package/dist/shared/domain/aggregates/base-aggregate/base.aggregate.d.ts +9 -0
  21. package/dist/shared/domain/aggregates/base-aggregate/base.aggregate.js +19 -0
  22. package/dist/shared/domain/aggregates/base-aggregate/base.aggregate.js.map +1 -0
  23. package/dist/shared/domain/entities/criteria.d.ts +21 -0
  24. package/dist/shared/domain/entities/criteria.js +12 -0
  25. package/dist/shared/domain/entities/criteria.js.map +1 -0
  26. package/dist/shared/domain/entities/paginated-result.entity.d.ts +8 -0
  27. package/dist/shared/domain/entities/paginated-result.entity.js +16 -0
  28. package/dist/shared/domain/entities/paginated-result.entity.js.map +1 -0
  29. package/dist/shared/domain/enums/filter-operator.enum.d.ts +10 -0
  30. package/dist/shared/domain/enums/filter-operator.enum.js +15 -0
  31. package/dist/shared/domain/enums/filter-operator.enum.js.map +1 -0
  32. package/dist/shared/domain/enums/length-unit/length-unit.enum.d.ts +7 -0
  33. package/dist/shared/domain/enums/length-unit/length-unit.enum.js +12 -0
  34. package/dist/shared/domain/enums/length-unit/length-unit.enum.js.map +1 -0
  35. package/dist/shared/domain/enums/sort-direction.enum.d.ts +4 -0
  36. package/dist/shared/domain/enums/sort-direction.enum.js +9 -0
  37. package/dist/shared/domain/enums/sort-direction.enum.js.map +1 -0
  38. package/dist/shared/domain/enums/user-context/user/user-role/user-role.enum.d.ts +4 -0
  39. package/dist/shared/domain/enums/user-context/user/user-role/user-role.enum.js +9 -0
  40. package/dist/shared/domain/enums/user-context/user/user-role/user-role.enum.js.map +1 -0
  41. package/dist/shared/domain/enums/user-context/user/user-status/user-status.enum.d.ts +5 -0
  42. package/dist/shared/domain/enums/user-context/user/user-status/user-status.enum.js +10 -0
  43. package/dist/shared/domain/enums/user-context/user/user-status/user-status.enum.js.map +1 -0
  44. package/dist/shared/domain/events/base-event.interface.d.ts +13 -0
  45. package/dist/shared/domain/events/base-event.interface.js +21 -0
  46. package/dist/shared/domain/events/base-event.interface.js.map +1 -0
  47. package/dist/shared/domain/exceptions/base.exception.d.ts +6 -0
  48. package/dist/shared/domain/exceptions/base.exception.js +23 -0
  49. package/dist/shared/domain/exceptions/base.exception.js.map +1 -0
  50. package/dist/shared/domain/exceptions/value-objects/invalid-boolean/invalid-boolean.exception.d.ts +4 -0
  51. package/dist/shared/domain/exceptions/value-objects/invalid-boolean/invalid-boolean.exception.js +12 -0
  52. package/dist/shared/domain/exceptions/value-objects/invalid-boolean/invalid-boolean.exception.js.map +1 -0
  53. package/dist/shared/domain/exceptions/value-objects/invalid-color/invalid-color.exception.d.ts +4 -0
  54. package/dist/shared/domain/exceptions/value-objects/invalid-color/invalid-color.exception.js +11 -0
  55. package/dist/shared/domain/exceptions/value-objects/invalid-color/invalid-color.exception.js.map +1 -0
  56. package/dist/shared/domain/exceptions/value-objects/invalid-dimensions/invalid-dimensions.exception.d.ts +4 -0
  57. package/dist/shared/domain/exceptions/value-objects/invalid-dimensions/invalid-dimensions.exception.js +11 -0
  58. package/dist/shared/domain/exceptions/value-objects/invalid-dimensions/invalid-dimensions.exception.js.map +1 -0
  59. package/dist/shared/domain/exceptions/value-objects/invalid-email/invalid-email.exception.d.ts +4 -0
  60. package/dist/shared/domain/exceptions/value-objects/invalid-email/invalid-email.exception.js +11 -0
  61. package/dist/shared/domain/exceptions/value-objects/invalid-email/invalid-email.exception.js.map +1 -0
  62. package/dist/shared/domain/exceptions/value-objects/invalid-enum-value/invalid-enum-value.exception.d.ts +4 -0
  63. package/dist/shared/domain/exceptions/value-objects/invalid-enum-value/invalid-enum-value.exception.js +11 -0
  64. package/dist/shared/domain/exceptions/value-objects/invalid-enum-value/invalid-enum-value.exception.js.map +1 -0
  65. package/dist/shared/domain/exceptions/value-objects/invalid-hex/invalid-hex.exception.d.ts +4 -0
  66. package/dist/shared/domain/exceptions/value-objects/invalid-hex/invalid-hex.exception.js +11 -0
  67. package/dist/shared/domain/exceptions/value-objects/invalid-hex/invalid-hex.exception.js.map +1 -0
  68. package/dist/shared/domain/exceptions/value-objects/invalid-ip/invalid-ip.exception.d.ts +4 -0
  69. package/dist/shared/domain/exceptions/value-objects/invalid-ip/invalid-ip.exception.js +11 -0
  70. package/dist/shared/domain/exceptions/value-objects/invalid-ip/invalid-ip.exception.js.map +1 -0
  71. package/dist/shared/domain/exceptions/value-objects/invalid-json/invalid-json.exception.d.ts +4 -0
  72. package/dist/shared/domain/exceptions/value-objects/invalid-json/invalid-json.exception.js +11 -0
  73. package/dist/shared/domain/exceptions/value-objects/invalid-json/invalid-json.exception.js.map +1 -0
  74. package/dist/shared/domain/exceptions/value-objects/invalid-locale/invalid-locale.exception.d.ts +4 -0
  75. package/dist/shared/domain/exceptions/value-objects/invalid-locale/invalid-locale.exception.js +12 -0
  76. package/dist/shared/domain/exceptions/value-objects/invalid-locale/invalid-locale.exception.js.map +1 -0
  77. package/dist/shared/domain/exceptions/value-objects/invalid-number/invalid-number.exception.d.ts +4 -0
  78. package/dist/shared/domain/exceptions/value-objects/invalid-number/invalid-number.exception.js +11 -0
  79. package/dist/shared/domain/exceptions/value-objects/invalid-number/invalid-number.exception.js.map +1 -0
  80. package/dist/shared/domain/exceptions/value-objects/invalid-numeric-range/invalid-numeric-range.exception.d.ts +4 -0
  81. package/dist/shared/domain/exceptions/value-objects/invalid-numeric-range/invalid-numeric-range.exception.js +11 -0
  82. package/dist/shared/domain/exceptions/value-objects/invalid-numeric-range/invalid-numeric-range.exception.js.map +1 -0
  83. package/dist/shared/domain/exceptions/value-objects/invalid-password/invalid-password.exception.d.ts +4 -0
  84. package/dist/shared/domain/exceptions/value-objects/invalid-password/invalid-password.exception.js +11 -0
  85. package/dist/shared/domain/exceptions/value-objects/invalid-password/invalid-password.exception.js.map +1 -0
  86. package/dist/shared/domain/exceptions/value-objects/invalid-phone/invalid-phone.exception.d.ts +4 -0
  87. package/dist/shared/domain/exceptions/value-objects/invalid-phone/invalid-phone.exception.js +11 -0
  88. package/dist/shared/domain/exceptions/value-objects/invalid-phone/invalid-phone.exception.js.map +1 -0
  89. package/dist/shared/domain/exceptions/value-objects/invalid-string/invalid-string.exception.d.ts +4 -0
  90. package/dist/shared/domain/exceptions/value-objects/invalid-string/invalid-string.exception.js +11 -0
  91. package/dist/shared/domain/exceptions/value-objects/invalid-string/invalid-string.exception.js.map +1 -0
  92. package/dist/shared/domain/exceptions/value-objects/invalid-timezone/invalid-timezone.exception.d.ts +4 -0
  93. package/dist/shared/domain/exceptions/value-objects/invalid-timezone/invalid-timezone.exception.js +12 -0
  94. package/dist/shared/domain/exceptions/value-objects/invalid-timezone/invalid-timezone.exception.js.map +1 -0
  95. package/dist/shared/domain/exceptions/value-objects/invalid-url/invalid-url.exception.d.ts +4 -0
  96. package/dist/shared/domain/exceptions/value-objects/invalid-url/invalid-url.exception.js +11 -0
  97. package/dist/shared/domain/exceptions/value-objects/invalid-url/invalid-url.exception.js.map +1 -0
  98. package/dist/shared/domain/exceptions/value-objects/invalid-uuid/invalid-uuid.exception.d.ts +4 -0
  99. package/dist/shared/domain/exceptions/value-objects/invalid-uuid/invalid-uuid.exception.js +11 -0
  100. package/dist/shared/domain/exceptions/value-objects/invalid-uuid/invalid-uuid.exception.js.map +1 -0
  101. package/dist/shared/domain/interfaces/base-aggregate-dto.interface.d.ts +5 -0
  102. package/dist/shared/domain/interfaces/base-aggregate-dto.interface.js +3 -0
  103. package/dist/shared/domain/interfaces/base-aggregate-dto.interface.js.map +1 -0
  104. package/dist/shared/domain/interfaces/base-view-model-dto.interface.d.ts +5 -0
  105. package/dist/shared/domain/interfaces/base-view-model-dto.interface.js +3 -0
  106. package/dist/shared/domain/interfaces/base-view-model-dto.interface.js.map +1 -0
  107. package/dist/shared/domain/interfaces/event-metadata.interface.d.ts +7 -0
  108. package/dist/shared/domain/interfaces/event-metadata.interface.js +3 -0
  109. package/dist/shared/domain/interfaces/event-metadata.interface.js.map +1 -0
  110. package/dist/shared/domain/interfaces/events/base-event-data.interface.d.ts +4 -0
  111. package/dist/shared/domain/interfaces/events/base-event-data.interface.js +3 -0
  112. package/dist/shared/domain/interfaces/events/base-event-data.interface.js.map +1 -0
  113. package/dist/shared/domain/interfaces/factories/read-factory.interface.d.ts +5 -0
  114. package/dist/shared/domain/interfaces/factories/read-factory.interface.js +3 -0
  115. package/dist/shared/domain/interfaces/factories/read-factory.interface.js.map +1 -0
  116. package/dist/shared/domain/interfaces/factories/write-factory.interface.d.ts +4 -0
  117. package/dist/shared/domain/interfaces/factories/write-factory.interface.js +3 -0
  118. package/dist/shared/domain/interfaces/factories/write-factory.interface.js.map +1 -0
  119. package/dist/shared/domain/interfaces/numeric-range.interface.d.ts +4 -0
  120. package/dist/shared/domain/interfaces/numeric-range.interface.js +3 -0
  121. package/dist/shared/domain/interfaces/numeric-range.interface.js.map +1 -0
  122. package/dist/shared/domain/interfaces/repository/base-read-repository.interface.d.ts +8 -0
  123. package/dist/shared/domain/interfaces/repository/base-read-repository.interface.js +3 -0
  124. package/dist/shared/domain/interfaces/repository/base-read-repository.interface.js.map +1 -0
  125. package/dist/shared/domain/interfaces/repository/base-write-repository.interface.d.ts +5 -0
  126. package/dist/shared/domain/interfaces/repository/base-write-repository.interface.js +3 -0
  127. package/dist/shared/domain/interfaces/repository/base-write-repository.interface.js.map +1 -0
  128. package/dist/shared/domain/interfaces/updated-field.interface.d.ts +5 -0
  129. package/dist/shared/domain/interfaces/updated-field.interface.js +3 -0
  130. package/dist/shared/domain/interfaces/updated-field.interface.js.map +1 -0
  131. package/dist/shared/domain/primitives/base-primitives/base.primitives.d.ts +4 -0
  132. package/dist/shared/domain/primitives/base-primitives/base.primitives.js +3 -0
  133. package/dist/shared/domain/primitives/base-primitives/base.primitives.js.map +1 -0
  134. package/dist/shared/domain/value-objects/base/value-object.base.d.ts +11 -0
  135. package/dist/shared/domain/value-objects/base/value-object.base.js +40 -0
  136. package/dist/shared/domain/value-objects/base/value-object.base.js.map +1 -0
  137. package/dist/shared/domain/value-objects/boolean/boolean.vo.d.ts +26 -0
  138. package/dist/shared/domain/value-objects/boolean/boolean.vo.js +102 -0
  139. package/dist/shared/domain/value-objects/boolean/boolean.vo.js.map +1 -0
  140. package/dist/shared/domain/value-objects/color/color.vo.d.ts +21 -0
  141. package/dist/shared/domain/value-objects/color/color.vo.js +127 -0
  142. package/dist/shared/domain/value-objects/color/color.vo.js.map +1 -0
  143. package/dist/shared/domain/value-objects/date/date.vo.d.ts +9 -0
  144. package/dist/shared/domain/value-objects/date/date.vo.js +23 -0
  145. package/dist/shared/domain/value-objects/date/date.vo.js.map +1 -0
  146. package/dist/shared/domain/value-objects/dimensions/dimensions.vo.d.ts +68 -0
  147. package/dist/shared/domain/value-objects/dimensions/dimensions.vo.js +182 -0
  148. package/dist/shared/domain/value-objects/dimensions/dimensions.vo.js.map +1 -0
  149. package/dist/shared/domain/value-objects/email/email.vo.d.ts +12 -0
  150. package/dist/shared/domain/value-objects/email/email.vo.js +48 -0
  151. package/dist/shared/domain/value-objects/email/email.vo.js.map +1 -0
  152. package/dist/shared/domain/value-objects/enum/enum.vo.d.ts +35 -0
  153. package/dist/shared/domain/value-objects/enum/enum.vo.js +137 -0
  154. package/dist/shared/domain/value-objects/enum/enum.vo.js.map +1 -0
  155. package/dist/shared/domain/value-objects/hex/hex.vo.d.ts +11 -0
  156. package/dist/shared/domain/value-objects/hex/hex.vo.js +38 -0
  157. package/dist/shared/domain/value-objects/hex/hex.vo.js.map +1 -0
  158. package/dist/shared/domain/value-objects/ip/ip.vo.d.ts +19 -0
  159. package/dist/shared/domain/value-objects/ip/ip.vo.js +90 -0
  160. package/dist/shared/domain/value-objects/ip/ip.vo.js.map +1 -0
  161. package/dist/shared/domain/value-objects/json/json.vo.d.ts +43 -0
  162. package/dist/shared/domain/value-objects/json/json.vo.js +224 -0
  163. package/dist/shared/domain/value-objects/json/json.vo.js.map +1 -0
  164. package/dist/shared/domain/value-objects/length-unit/length-unit.vo.d.ts +5 -0
  165. package/dist/shared/domain/value-objects/length-unit/length-unit.vo.js +12 -0
  166. package/dist/shared/domain/value-objects/length-unit/length-unit.vo.js.map +1 -0
  167. package/dist/shared/domain/value-objects/locale/locale.vo.d.ts +27 -0
  168. package/dist/shared/domain/value-objects/locale/locale.vo.js +292 -0
  169. package/dist/shared/domain/value-objects/locale/locale.vo.js.map +1 -0
  170. package/dist/shared/domain/value-objects/number/number.vo.d.ts +23 -0
  171. package/dist/shared/domain/value-objects/number/number.vo.js +77 -0
  172. package/dist/shared/domain/value-objects/number/number.vo.js.map +1 -0
  173. package/dist/shared/domain/value-objects/numeric-range/numeric-range.vo.d.ts +13 -0
  174. package/dist/shared/domain/value-objects/numeric-range/numeric-range.vo.js +35 -0
  175. package/dist/shared/domain/value-objects/numeric-range/numeric-range.vo.js.map +1 -0
  176. package/dist/shared/domain/value-objects/password/password.vo.d.ts +14 -0
  177. package/dist/shared/domain/value-objects/password/password.vo.js +90 -0
  178. package/dist/shared/domain/value-objects/password/password.vo.js.map +1 -0
  179. package/dist/shared/domain/value-objects/phone/phone.vo.d.ts +13 -0
  180. package/dist/shared/domain/value-objects/phone/phone.vo.js +56 -0
  181. package/dist/shared/domain/value-objects/phone/phone.vo.js.map +1 -0
  182. package/dist/shared/domain/value-objects/phone-code/phone-code.vo.d.ts +25 -0
  183. package/dist/shared/domain/value-objects/phone-code/phone-code.vo.js +344 -0
  184. package/dist/shared/domain/value-objects/phone-code/phone-code.vo.js.map +1 -0
  185. package/dist/shared/domain/value-objects/slug/slug.vo.d.ts +25 -0
  186. package/dist/shared/domain/value-objects/slug/slug.vo.js +87 -0
  187. package/dist/shared/domain/value-objects/slug/slug.vo.js.map +1 -0
  188. package/dist/shared/domain/value-objects/string/string.vo.d.ts +38 -0
  189. package/dist/shared/domain/value-objects/string/string.vo.js +146 -0
  190. package/dist/shared/domain/value-objects/string/string.vo.js.map +1 -0
  191. package/dist/shared/domain/value-objects/timezone/timezone.vo.d.ts +23 -0
  192. package/dist/shared/domain/value-objects/timezone/timezone.vo.js +116 -0
  193. package/dist/shared/domain/value-objects/timezone/timezone.vo.js.map +1 -0
  194. package/dist/shared/domain/value-objects/url/url.vo.d.ts +9 -0
  195. package/dist/shared/domain/value-objects/url/url.vo.js +31 -0
  196. package/dist/shared/domain/value-objects/url/url.vo.js.map +1 -0
  197. package/dist/shared/domain/value-objects/uuid/uuid.vo.d.ts +13 -0
  198. package/dist/shared/domain/value-objects/uuid/uuid.vo.js +49 -0
  199. package/dist/shared/domain/value-objects/uuid/uuid.vo.js.map +1 -0
  200. package/dist/shared/domain/view-models/base-view-model/base-view-model.d.ts +14 -0
  201. package/dist/shared/domain/view-models/base-view-model/base-view-model.js +24 -0
  202. package/dist/shared/domain/view-models/base-view-model/base-view-model.js.map +1 -0
  203. package/dist/shared/infrastructure/database/base-database.repository.d.ts +11 -0
  204. package/dist/shared/infrastructure/database/base-database.repository.js +14 -0
  205. package/dist/shared/infrastructure/database/base-database.repository.js.map +1 -0
  206. package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-database.repository.d.ts +9 -0
  207. package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-database.repository.js +78 -0
  208. package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-database.repository.js.map +1 -0
  209. package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-master/base-mongo-master.repository.d.ts +6 -0
  210. package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-master/base-mongo-master.repository.js +12 -0
  211. package/dist/shared/infrastructure/database/mongodb/base-mongo/base-mongo-master/base-mongo-master.repository.js.map +1 -0
  212. package/dist/shared/infrastructure/database/mongodb/dtos/base-mongo.dto.d.ts +5 -0
  213. package/dist/shared/infrastructure/database/mongodb/dtos/base-mongo.dto.js +3 -0
  214. package/dist/shared/infrastructure/database/mongodb/dtos/base-mongo.dto.js.map +1 -0
  215. package/dist/shared/infrastructure/database/mongodb/mongodb.module.d.ts +2 -0
  216. package/dist/shared/infrastructure/database/mongodb/mongodb.module.js +23 -0
  217. package/dist/shared/infrastructure/database/mongodb/mongodb.module.js.map +1 -0
  218. package/dist/shared/infrastructure/database/mongodb/services/mongo-master/mongo-master.service.d.ts +14 -0
  219. package/dist/shared/infrastructure/database/mongodb/services/mongo-master/mongo-master.service.js +57 -0
  220. package/dist/shared/infrastructure/database/mongodb/services/mongo-master/mongo-master.service.js.map +1 -0
  221. package/dist/shared/infrastructure/database/typeorm/base-typeorm/base-typeorm-master/base-typeorm-master.repository.d.ts +9 -0
  222. package/dist/shared/infrastructure/database/typeorm/base-typeorm/base-typeorm-master/base-typeorm-master.repository.js +18 -0
  223. package/dist/shared/infrastructure/database/typeorm/base-typeorm/base-typeorm-master/base-typeorm-master.repository.js.map +1 -0
  224. package/dist/shared/infrastructure/database/typeorm/data-source.d.ts +4 -0
  225. package/dist/shared/infrastructure/database/typeorm/data-source.js +33 -0
  226. package/dist/shared/infrastructure/database/typeorm/data-source.js.map +1 -0
  227. package/dist/shared/infrastructure/database/typeorm/dtos/base-typeorm.dto.d.ts +4 -0
  228. package/dist/shared/infrastructure/database/typeorm/dtos/base-typeorm.dto.js +3 -0
  229. package/dist/shared/infrastructure/database/typeorm/dtos/base-typeorm.dto.js.map +1 -0
  230. package/dist/shared/infrastructure/database/typeorm/entities/base-typeorm.entity.d.ts +6 -0
  231. package/dist/shared/infrastructure/database/typeorm/entities/base-typeorm.entity.js +36 -0
  232. package/dist/shared/infrastructure/database/typeorm/entities/base-typeorm.entity.js.map +1 -0
  233. package/dist/shared/infrastructure/database/typeorm/services/typeorm-master/typeorm-master.service.d.ts +9 -0
  234. package/dist/shared/infrastructure/database/typeorm/services/typeorm-master/typeorm-master.service.js +42 -0
  235. package/dist/shared/infrastructure/database/typeorm/services/typeorm-master/typeorm-master.service.js.map +1 -0
  236. package/dist/shared/infrastructure/database/typeorm/typeorm-module-options.factory.d.ts +3 -0
  237. package/dist/shared/infrastructure/database/typeorm/typeorm-module-options.factory.js +32 -0
  238. package/dist/shared/infrastructure/database/typeorm/typeorm-module-options.factory.js.map +1 -0
  239. package/dist/shared/infrastructure/database/typeorm/typeorm.module.d.ts +2 -0
  240. package/dist/shared/infrastructure/database/typeorm/typeorm.module.js +34 -0
  241. package/dist/shared/infrastructure/database/typeorm/typeorm.module.js.map +1 -0
  242. package/dist/shared/infrastructure/logging/factories/create-shared-winston-logger-options.d.ts +6 -0
  243. package/dist/shared/infrastructure/logging/factories/create-shared-winston-logger-options.js +92 -0
  244. package/dist/shared/infrastructure/logging/factories/create-shared-winston-logger-options.js.map +1 -0
  245. package/dist/shared/infrastructure/logging/formats/shared-winston.formats.d.ts +3 -0
  246. package/dist/shared/infrastructure/logging/formats/shared-winston.formats.js +30 -0
  247. package/dist/shared/infrastructure/logging/formats/shared-winston.formats.js.map +1 -0
  248. package/dist/shared/infrastructure/logging/interfaces/shared-winston-logger-factory-options.interface.d.ts +21 -0
  249. package/dist/shared/infrastructure/logging/interfaces/shared-winston-logger-factory-options.interface.js +3 -0
  250. package/dist/shared/infrastructure/logging/interfaces/shared-winston-logger-factory-options.interface.js.map +1 -0
  251. package/dist/shared/shared.module.d.ts +3 -0
  252. package/dist/shared/shared.module.js +51 -0
  253. package/dist/shared/shared.module.js.map +1 -0
  254. package/dist/shared/transport/graphql/dtos/requests/base-filter/base-filter.input.d.ts +6 -0
  255. package/dist/shared/transport/graphql/dtos/requests/base-filter/base-filter.input.js +40 -0
  256. package/dist/shared/transport/graphql/dtos/requests/base-filter/base-filter.input.js.map +1 -0
  257. package/dist/shared/transport/graphql/dtos/requests/base-find-by-criteria/base-find-by-criteria.input.d.ts +8 -0
  258. package/dist/shared/transport/graphql/dtos/requests/base-find-by-criteria/base-find-by-criteria.input.js +56 -0
  259. package/dist/shared/transport/graphql/dtos/requests/base-find-by-criteria/base-find-by-criteria.input.js.map +1 -0
  260. package/dist/shared/transport/graphql/dtos/requests/base-pagination/base-pagination.input.d.ts +4 -0
  261. package/dist/shared/transport/graphql/dtos/requests/base-pagination/base-pagination.input.js +33 -0
  262. package/dist/shared/transport/graphql/dtos/requests/base-pagination/base-pagination.input.js.map +1 -0
  263. package/dist/shared/transport/graphql/dtos/requests/base-sort/base-sort.input.d.ts +5 -0
  264. package/dist/shared/transport/graphql/dtos/requests/base-sort/base-sort.input.js +34 -0
  265. package/dist/shared/transport/graphql/dtos/requests/base-sort/base-sort.input.js.map +1 -0
  266. package/dist/shared/transport/graphql/dtos/requests/numeric-range/numeric-range.input.d.ts +4 -0
  267. package/dist/shared/transport/graphql/dtos/requests/numeric-range/numeric-range.input.js +31 -0
  268. package/dist/shared/transport/graphql/dtos/requests/numeric-range/numeric-range.input.js.map +1 -0
  269. package/dist/shared/transport/graphql/dtos/responses/base-paginated-result/base-paginated-result.dto.d.ts +6 -0
  270. package/dist/shared/transport/graphql/dtos/responses/base-paginated-result/base-paginated-result.dto.js +36 -0
  271. package/dist/shared/transport/graphql/dtos/responses/base-paginated-result/base-paginated-result.dto.js.map +1 -0
  272. package/dist/shared/transport/graphql/dtos/responses/numeric-range/numeric-range.dto.d.ts +4 -0
  273. package/dist/shared/transport/graphql/dtos/responses/numeric-range/numeric-range.dto.js +31 -0
  274. package/dist/shared/transport/graphql/dtos/responses/numeric-range/numeric-range.dto.js.map +1 -0
  275. package/dist/shared/transport/graphql/dtos/responses/success-response/success-response.dto.d.ts +5 -0
  276. package/dist/shared/transport/graphql/dtos/responses/success-response/success-response.dto.js +32 -0
  277. package/dist/shared/transport/graphql/dtos/responses/success-response/success-response.dto.js.map +1 -0
  278. package/dist/shared/transport/graphql/dtos/success-response-array.dto.d.ts +5 -0
  279. package/dist/shared/transport/graphql/dtos/success-response-array.dto.js +32 -0
  280. package/dist/shared/transport/graphql/dtos/success-response-array.dto.js.map +1 -0
  281. package/dist/shared/transport/graphql/enums/shared-registered-enums.graphql.d.ts +1 -0
  282. package/dist/shared/transport/graphql/enums/shared-registered-enums.graphql.js +15 -0
  283. package/dist/shared/transport/graphql/enums/shared-registered-enums.graphql.js.map +1 -0
  284. package/dist/shared/transport/graphql/mappers/mutation-response/mutation-response.mapper.d.ts +6 -0
  285. package/dist/shared/transport/graphql/mappers/mutation-response/mutation-response.mapper.js +31 -0
  286. package/dist/shared/transport/graphql/mappers/mutation-response/mutation-response.mapper.js.map +1 -0
  287. package/dist/shared/transport/graphql/plugins/complexity.plugin.d.ts +4 -0
  288. package/dist/shared/transport/graphql/plugins/complexity.plugin.js +40 -0
  289. package/dist/shared/transport/graphql/plugins/complexity.plugin.js.map +1 -0
  290. package/dist/shared/transport/graphql/registered-enums/registered-enums.graphql.d.ts +1 -0
  291. package/dist/shared/transport/graphql/registered-enums/registered-enums.graphql.js +33 -0
  292. package/dist/shared/transport/graphql/registered-enums/registered-enums.graphql.js.map +1 -0
  293. package/dist/tsconfig.build.tsbuildinfo +1 -0
  294. package/package.json +152 -0
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NumberValueObject = void 0;
4
+ const invalid_number_exception_1 = require("../../exceptions/value-objects/invalid-number/invalid-number.exception");
5
+ const value_object_base_1 = require("../base/value-object.base");
6
+ class NumberValueObject extends value_object_base_1.ValueObject {
7
+ constructor(value, options = {}) {
8
+ super();
9
+ this.options = options;
10
+ this._value = this.parseValue(value);
11
+ this.validate();
12
+ }
13
+ get value() {
14
+ return this._value;
15
+ }
16
+ equals(other) {
17
+ return this._value === other._value;
18
+ }
19
+ isInRange(min, max) {
20
+ return this._value >= min && this._value <= max;
21
+ }
22
+ isPositive() {
23
+ return this._value > 0;
24
+ }
25
+ isNegative() {
26
+ return this._value < 0;
27
+ }
28
+ isZero() {
29
+ return this._value === 0;
30
+ }
31
+ round(precision = 2) {
32
+ return (Math.round(this._value * Math.pow(10, precision)) /
33
+ Math.pow(10, precision));
34
+ }
35
+ parseValue(value) {
36
+ if (typeof value === 'string') {
37
+ const parsed = parseFloat(value);
38
+ if (isNaN(parsed)) {
39
+ throw new invalid_number_exception_1.InvalidNumberException('Invalid number format');
40
+ }
41
+ return parsed;
42
+ }
43
+ return value;
44
+ }
45
+ validate() {
46
+ this.checkIsFinite();
47
+ this.checkRange();
48
+ this.checkDecimals();
49
+ }
50
+ checkIsFinite() {
51
+ if (!isFinite(this._value)) {
52
+ throw new invalid_number_exception_1.InvalidNumberException('Number must be finite');
53
+ }
54
+ }
55
+ checkRange() {
56
+ if (this.options.min !== undefined && this._value < this.options.min) {
57
+ throw new invalid_number_exception_1.InvalidNumberException(`Number must be at least ${this.options.min}`);
58
+ }
59
+ if (this.options.max !== undefined && this._value > this.options.max) {
60
+ throw new invalid_number_exception_1.InvalidNumberException(`Number must be at most ${this.options.max}`);
61
+ }
62
+ }
63
+ checkDecimals() {
64
+ if (this.options.allowDecimals === false &&
65
+ !Number.isInteger(this._value)) {
66
+ throw new invalid_number_exception_1.InvalidNumberException('Number must be an integer');
67
+ }
68
+ if (this.options.precision !== undefined) {
69
+ const decimalPlaces = (this._value.toString().split('.')[1] || '').length;
70
+ if (decimalPlaces > this.options.precision) {
71
+ throw new invalid_number_exception_1.InvalidNumberException(`Number cannot have more than ${this.options.precision} decimal places`);
72
+ }
73
+ }
74
+ }
75
+ }
76
+ exports.NumberValueObject = NumberValueObject;
77
+ //# sourceMappingURL=number.vo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.vo.js","sourceRoot":"","sources":["../../../../../src/shared/domain/value-objects/number/number.vo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { INumericRange } from '@/shared/domain/interfaces/numeric-range.interface';
2
+ import { ValueObject } from '@/shared/domain/value-objects/base/value-object.base';
3
+ export declare class NumericRangeValueObject extends ValueObject<INumericRange> {
4
+ protected readonly _min: number;
5
+ protected readonly _max: number;
6
+ constructor(range: INumericRange);
7
+ get min(): number;
8
+ get max(): number;
9
+ get value(): INumericRange;
10
+ toPrimitives(): INumericRange;
11
+ equals(other: NumericRangeValueObject): boolean;
12
+ protected validate(): void;
13
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NumericRangeValueObject = void 0;
4
+ const invalid_numeric_range_exception_1 = require("../../exceptions/value-objects/invalid-numeric-range/invalid-numeric-range.exception");
5
+ const value_object_base_1 = require("../base/value-object.base");
6
+ class NumericRangeValueObject extends value_object_base_1.ValueObject {
7
+ constructor(range) {
8
+ super();
9
+ this._min = range.min;
10
+ this._max = range.max;
11
+ this.validate();
12
+ }
13
+ get min() {
14
+ return this._min;
15
+ }
16
+ get max() {
17
+ return this._max;
18
+ }
19
+ get value() {
20
+ return { min: this._min, max: this._max };
21
+ }
22
+ toPrimitives() {
23
+ return { min: this._min, max: this._max };
24
+ }
25
+ equals(other) {
26
+ return this._min === other._min && this._max === other._max;
27
+ }
28
+ validate() {
29
+ if (this._min > this._max) {
30
+ throw new invalid_numeric_range_exception_1.InvalidNumericRangeException(this._min, this._max);
31
+ }
32
+ }
33
+ }
34
+ exports.NumericRangeValueObject = NumericRangeValueObject;
35
+ //# sourceMappingURL=numeric-range.vo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric-range.vo.js","sourceRoot":"","sources":["../../../../../src/shared/domain/value-objects/numeric-range/numeric-range.vo.ts"],"names":[],"mappings":";;;AAAA,0IAA8I;AAE9I,iEAAmF;AAyBnF,MAAa,uBAAwB,SAAQ,+BAA0B;IAmBrE,YAAY,KAAoB;QAC9B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAKD,IAAW,GAAG;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAKD,IAAW,GAAG;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAKD,IAAW,KAAK;QACd,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;IAKM,YAAY;QACjB,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;IASM,MAAM,CAAC,KAA8B;QAC1C,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC;IAC9D,CAAC;IAQS,QAAQ;QAChB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1B,MAAM,IAAI,8DAA4B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF;AA5ED,0DA4EC"}
@@ -0,0 +1,14 @@
1
+ import { ValueObject } from '@/shared/domain/value-objects/base/value-object.base';
2
+ export declare class PasswordValueObject extends ValueObject<string> {
3
+ private readonly _value;
4
+ constructor(value: string);
5
+ get value(): string;
6
+ equals(other: PasswordValueObject): boolean;
7
+ getStrengthScore(): number;
8
+ getStrengthLevel(): 'weak' | 'medium' | 'strong' | 'very-strong';
9
+ meetsRequirements(): boolean;
10
+ protected validate(): void;
11
+ private checkIsEmpty;
12
+ private checkMinimumLength;
13
+ private checkCommonPasswords;
14
+ }
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PasswordValueObject = void 0;
4
+ const invalid_password_exception_1 = require("../../exceptions/value-objects/invalid-password/invalid-password.exception");
5
+ const value_object_base_1 = require("../base/value-object.base");
6
+ class PasswordValueObject extends value_object_base_1.ValueObject {
7
+ constructor(value) {
8
+ super();
9
+ this._value = value;
10
+ this.validate();
11
+ }
12
+ get value() {
13
+ return this._value;
14
+ }
15
+ equals(other) {
16
+ return this._value === other._value;
17
+ }
18
+ getStrengthScore() {
19
+ let score = 0;
20
+ if (this._value.length >= 8)
21
+ score += 20;
22
+ if (this._value.length >= 12)
23
+ score += 10;
24
+ if (this._value.length >= 16)
25
+ score += 10;
26
+ if (/[a-z]/.test(this._value))
27
+ score += 10;
28
+ if (/[A-Z]/.test(this._value))
29
+ score += 10;
30
+ if (/[0-9]/.test(this._value))
31
+ score += 10;
32
+ if (/[^a-zA-Z0-9]/.test(this._value))
33
+ score += 20;
34
+ if (/(.)\1{2,}/.test(this._value))
35
+ score -= 10;
36
+ if (/123|abc|qwe/i.test(this._value))
37
+ score -= 10;
38
+ return Math.max(0, Math.min(100, score));
39
+ }
40
+ getStrengthLevel() {
41
+ const score = this.getStrengthScore();
42
+ if (score < 30)
43
+ return 'weak';
44
+ if (score < 60)
45
+ return 'medium';
46
+ if (score < 80)
47
+ return 'strong';
48
+ return 'very-strong';
49
+ }
50
+ meetsRequirements() {
51
+ return (this._value.length >= 8 &&
52
+ /[a-z]/.test(this._value) &&
53
+ /[A-Z]/.test(this._value) &&
54
+ /[0-9]/.test(this._value));
55
+ }
56
+ validate() {
57
+ this.checkIsEmpty();
58
+ this.checkMinimumLength();
59
+ this.checkCommonPasswords();
60
+ }
61
+ checkIsEmpty() {
62
+ if (!this._value || this._value.trim() === '') {
63
+ throw new invalid_password_exception_1.InvalidPasswordException('Password cannot be empty');
64
+ }
65
+ }
66
+ checkMinimumLength() {
67
+ if (this._value.length < 8) {
68
+ throw new invalid_password_exception_1.InvalidPasswordException('Password must be at least 8 characters long');
69
+ }
70
+ }
71
+ checkCommonPasswords() {
72
+ const commonPasswords = [
73
+ 'password',
74
+ '123456',
75
+ '123456789',
76
+ 'qwerty',
77
+ 'abc123',
78
+ 'password123',
79
+ 'admin',
80
+ 'letmein',
81
+ 'welcome',
82
+ 'monkey',
83
+ ];
84
+ if (commonPasswords.includes(this._value.toLowerCase())) {
85
+ throw new invalid_password_exception_1.InvalidPasswordException('Password is too common, please choose a stronger password');
86
+ }
87
+ }
88
+ }
89
+ exports.PasswordValueObject = PasswordValueObject;
90
+ //# sourceMappingURL=password.vo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"password.vo.js","sourceRoot":"","sources":["../../../../../src/shared/domain/value-objects/password/password.vo.ts"],"names":[],"mappings":";;;AAAA,2HAAgI;AAChI,iEAAmF;AASnF,MAAa,mBAAoB,SAAQ,+BAAmB;IAG1D,YAAY,KAAa;QACvB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEM,MAAM,CAAC,KAA0B;QACtC,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC;IACtC,CAAC;IAMM,gBAAgB;QACrB,IAAI,KAAK,GAAG,CAAC,CAAC;QAGd,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC;YAAE,KAAK,IAAI,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE;YAAE,KAAK,IAAI,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE;YAAE,KAAK,IAAI,EAAE,CAAC;QAG1C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,KAAK,IAAI,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,KAAK,IAAI,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,KAAK,IAAI,EAAE,CAAC;QAC3C,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,KAAK,IAAI,EAAE,CAAC;QAGlD,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,KAAK,IAAI,EAAE,CAAC;QAC/C,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,KAAK,IAAI,EAAE,CAAC;QAElD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC;IAMM,gBAAgB;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtC,IAAI,KAAK,GAAG,EAAE;YAAE,OAAO,MAAM,CAAC;QAC9B,IAAI,KAAK,GAAG,EAAE;YAAE,OAAO,QAAQ,CAAC;QAChC,IAAI,KAAK,GAAG,EAAE;YAAE,OAAO,QAAQ,CAAC;QAChC,OAAO,aAAa,CAAC;IACvB,CAAC;IAMM,iBAAiB;QACtB,OAAO,CACL,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAC1B,CAAC;IACJ,CAAC;IAES,QAAQ;QAChB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9C,MAAM,IAAI,qDAAwB,CAAC,0BAA0B,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,qDAAwB,CAChC,6CAA6C,CAC9C,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,oBAAoB;QAC1B,MAAM,eAAe,GAAG;YACtB,UAAU;YACV,QAAQ;YACR,WAAW;YACX,QAAQ;YACR,QAAQ;YACR,aAAa;YACb,OAAO;YACP,SAAS;YACT,SAAS;YACT,QAAQ;SACT,CAAC;QAEF,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,qDAAwB,CAChC,2DAA2D,CAC5D,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AA3GD,kDA2GC"}
@@ -0,0 +1,13 @@
1
+ import { ValueObject } from '@/shared/domain/value-objects/base/value-object.base';
2
+ export declare class PhoneValueObject extends ValueObject<string> {
3
+ private readonly _value;
4
+ constructor(value: string);
5
+ get value(): string;
6
+ getCountryCode(): string | null;
7
+ getNationalNumber(): string;
8
+ toE164(): string;
9
+ protected validate(): void;
10
+ private checkIsEmpty;
11
+ private checkIsValidPhone;
12
+ private normalize;
13
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PhoneValueObject = void 0;
4
+ const invalid_phone_exception_1 = require("../../exceptions/value-objects/invalid-phone/invalid-phone.exception");
5
+ const value_object_base_1 = require("../base/value-object.base");
6
+ class PhoneValueObject extends value_object_base_1.ValueObject {
7
+ constructor(value) {
8
+ super();
9
+ this._value = this.normalize(value ?? '');
10
+ this.validate();
11
+ }
12
+ get value() {
13
+ return this._value;
14
+ }
15
+ getCountryCode() {
16
+ const match = this._value.match(/^\+(\d{1,4})/);
17
+ return match ? match[1] : null;
18
+ }
19
+ getNationalNumber() {
20
+ const countryCode = this.getCountryCode();
21
+ if (countryCode) {
22
+ return this._value.replace(`+${countryCode}`, '');
23
+ }
24
+ return this._value;
25
+ }
26
+ toE164() {
27
+ return this._value.startsWith('+') ? this._value : `+${this._value}`;
28
+ }
29
+ validate() {
30
+ this.checkIsEmpty();
31
+ this.checkIsValidPhone();
32
+ }
33
+ checkIsEmpty() {
34
+ if (!this._value || this._value.trim() === '') {
35
+ throw new invalid_phone_exception_1.InvalidPhoneException('Phone number cannot be empty');
36
+ }
37
+ }
38
+ checkIsValidPhone() {
39
+ const internationalPattern = /^\+[1-9]\d{1,14}$/;
40
+ if (!internationalPattern.test(this._value)) {
41
+ throw new invalid_phone_exception_1.InvalidPhoneException('Invalid phone number format');
42
+ }
43
+ if (this._value.length < 8 || this._value.length > 16) {
44
+ throw new invalid_phone_exception_1.InvalidPhoneException('Phone number must be between 7 and 15 digits');
45
+ }
46
+ }
47
+ normalize(value) {
48
+ let normalized = value.replace(/[^\d+]/g, '');
49
+ if (!normalized.startsWith('+')) {
50
+ normalized = '+' + normalized;
51
+ }
52
+ return normalized;
53
+ }
54
+ }
55
+ exports.PhoneValueObject = PhoneValueObject;
56
+ //# sourceMappingURL=phone.vo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phone.vo.js","sourceRoot":"","sources":["../../../../../src/shared/domain/value-objects/phone/phone.vo.ts"],"names":[],"mappings":";;;AAAA,kHAAuH;AACvH,iEAAmF;AASnF,MAAa,gBAAiB,SAAQ,+BAAmB;IAGvD,YAAY,KAAa;QACvB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAMM,cAAc;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAChD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjC,CAAC;IAMM,iBAAiB;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAMM,MAAM;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;IACvE,CAAC;IAES,QAAQ;QAChB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9C,MAAM,IAAI,+CAAqB,CAAC,8BAA8B,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEO,iBAAiB;QAEvB,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;QAEjD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,+CAAqB,CAAC,6BAA6B,CAAC,CAAC;QACjE,CAAC;QAGD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACtD,MAAM,IAAI,+CAAqB,CAC7B,8CAA8C,CAC/C,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,KAAa;QAE7B,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAG9C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,UAAU,GAAG,GAAG,GAAG,UAAU,CAAC;QAChC,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AAhFD,4CAgFC"}
@@ -0,0 +1,25 @@
1
+ import { StringValueObject } from '@/shared/domain/value-objects/string/string.vo';
2
+ export declare class PhoneCodeValueObject extends StringValueObject {
3
+ private static readonly PHONE_CODE_PATTERN;
4
+ private static readonly MIN_LENGTH;
5
+ private static readonly MAX_LENGTH;
6
+ private static readonly COMMON_PHONE_CODES;
7
+ constructor(value: string, options?: {
8
+ allowEmpty?: boolean;
9
+ validateExistence?: boolean;
10
+ });
11
+ static fromString(code: string, options?: {
12
+ allowEmpty?: boolean;
13
+ validateExistence?: boolean;
14
+ }): PhoneCodeValueObject;
15
+ static normalizePhoneCode(code: string): string;
16
+ exists(): boolean;
17
+ getNumericCode(): string;
18
+ getFullCode(): string;
19
+ isValidFormat(): boolean;
20
+ isNorthAmerican(): boolean;
21
+ isEuropean(): boolean;
22
+ getRegionName(): string | null;
23
+ private validateExistence;
24
+ equals(other: PhoneCodeValueObject): boolean;
25
+ }