@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,344 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PhoneCodeValueObject = void 0;
4
+ const invalid_string_exception_1 = require("../../exceptions/value-objects/invalid-string/invalid-string.exception");
5
+ const string_vo_1 = require("../string/string.vo");
6
+ class PhoneCodeValueObject extends string_vo_1.StringValueObject {
7
+ constructor(value, options = {}) {
8
+ const processedValue = PhoneCodeValueObject.normalizePhoneCode(value);
9
+ super(processedValue, {
10
+ minLength: PhoneCodeValueObject.MIN_LENGTH,
11
+ maxLength: PhoneCodeValueObject.MAX_LENGTH,
12
+ allowEmpty: options.allowEmpty ?? false,
13
+ pattern: PhoneCodeValueObject.PHONE_CODE_PATTERN,
14
+ trim: true,
15
+ });
16
+ if (options.validateExistence !== false) {
17
+ if (this.value.length > 0 || options.allowEmpty !== true) {
18
+ this.validateExistence();
19
+ }
20
+ }
21
+ }
22
+ static fromString(code, options = {}) {
23
+ return new PhoneCodeValueObject(code, options);
24
+ }
25
+ static normalizePhoneCode(code) {
26
+ if (!code || typeof code !== 'string') {
27
+ return '';
28
+ }
29
+ let normalized = code.trim();
30
+ if (!normalized.startsWith('+')) {
31
+ normalized = '+' + normalized;
32
+ }
33
+ normalized = normalized.replace(/[^\d+]/g, '');
34
+ return normalized;
35
+ }
36
+ exists() {
37
+ return PhoneCodeValueObject.COMMON_PHONE_CODES.has(this.value);
38
+ }
39
+ getNumericCode() {
40
+ return this.value.substring(1);
41
+ }
42
+ getFullCode() {
43
+ return this.value;
44
+ }
45
+ isValidFormat() {
46
+ return PhoneCodeValueObject.PHONE_CODE_PATTERN.test(this.value);
47
+ }
48
+ isNorthAmerican() {
49
+ return this.value === '+1';
50
+ }
51
+ isEuropean() {
52
+ const europeanCodes = [
53
+ '+30',
54
+ '+31',
55
+ '+32',
56
+ '+33',
57
+ '+34',
58
+ '+36',
59
+ '+39',
60
+ '+40',
61
+ '+41',
62
+ '+43',
63
+ '+44',
64
+ '+45',
65
+ '+46',
66
+ '+47',
67
+ '+48',
68
+ '+49',
69
+ ];
70
+ return europeanCodes.includes(this.value);
71
+ }
72
+ getRegionName() {
73
+ const regionMap = {
74
+ '+1': 'North America (US/Canada)',
75
+ '+7': 'Russia/Kazakhstan',
76
+ '+20': 'Egypt',
77
+ '+27': 'South Africa',
78
+ '+30': 'Greece',
79
+ '+31': 'Netherlands',
80
+ '+32': 'Belgium',
81
+ '+33': 'France',
82
+ '+34': 'Spain',
83
+ '+36': 'Hungary',
84
+ '+39': 'Italy',
85
+ '+40': 'Romania',
86
+ '+41': 'Switzerland',
87
+ '+43': 'Austria',
88
+ '+44': 'United Kingdom',
89
+ '+45': 'Denmark',
90
+ '+46': 'Sweden',
91
+ '+47': 'Norway',
92
+ '+48': 'Poland',
93
+ '+49': 'Germany',
94
+ '+51': 'Peru',
95
+ '+52': 'Mexico',
96
+ '+53': 'Cuba',
97
+ '+54': 'Argentina',
98
+ '+55': 'Brazil',
99
+ '+56': 'Chile',
100
+ '+57': 'Colombia',
101
+ '+58': 'Venezuela',
102
+ '+60': 'Malaysia',
103
+ '+61': 'Australia',
104
+ '+62': 'Indonesia',
105
+ '+63': 'Philippines',
106
+ '+64': 'New Zealand',
107
+ '+65': 'Singapore',
108
+ '+66': 'Thailand',
109
+ '+81': 'Japan',
110
+ '+82': 'South Korea',
111
+ '+84': 'Vietnam',
112
+ '+86': 'China',
113
+ '+90': 'Turkey',
114
+ '+91': 'India',
115
+ '+92': 'Pakistan',
116
+ '+93': 'Afghanistan',
117
+ '+94': 'Sri Lanka',
118
+ '+95': 'Myanmar',
119
+ '+98': 'Iran',
120
+ };
121
+ return regionMap[this.value] || null;
122
+ }
123
+ validateExistence() {
124
+ if (!this.exists()) {
125
+ throw new invalid_string_exception_1.InvalidStringException(`Phone code ${this.value} is not recognized as a valid country code`);
126
+ }
127
+ }
128
+ equals(other) {
129
+ return this.value === other.value;
130
+ }
131
+ }
132
+ exports.PhoneCodeValueObject = PhoneCodeValueObject;
133
+ PhoneCodeValueObject.PHONE_CODE_PATTERN = /^\+[1-9]\d{0,3}$/;
134
+ PhoneCodeValueObject.MIN_LENGTH = 2;
135
+ PhoneCodeValueObject.MAX_LENGTH = 5;
136
+ PhoneCodeValueObject.COMMON_PHONE_CODES = new Set([
137
+ '+1',
138
+ '+7',
139
+ '+20',
140
+ '+27',
141
+ '+30',
142
+ '+31',
143
+ '+32',
144
+ '+33',
145
+ '+34',
146
+ '+36',
147
+ '+39',
148
+ '+40',
149
+ '+41',
150
+ '+43',
151
+ '+44',
152
+ '+45',
153
+ '+46',
154
+ '+47',
155
+ '+48',
156
+ '+49',
157
+ '+51',
158
+ '+52',
159
+ '+53',
160
+ '+54',
161
+ '+55',
162
+ '+56',
163
+ '+57',
164
+ '+58',
165
+ '+60',
166
+ '+61',
167
+ '+62',
168
+ '+63',
169
+ '+64',
170
+ '+65',
171
+ '+66',
172
+ '+81',
173
+ '+82',
174
+ '+84',
175
+ '+86',
176
+ '+90',
177
+ '+91',
178
+ '+92',
179
+ '+93',
180
+ '+94',
181
+ '+95',
182
+ '+98',
183
+ '+212',
184
+ '+213',
185
+ '+216',
186
+ '+218',
187
+ '+220',
188
+ '+221',
189
+ '+222',
190
+ '+223',
191
+ '+224',
192
+ '+225',
193
+ '+226',
194
+ '+227',
195
+ '+228',
196
+ '+229',
197
+ '+230',
198
+ '+231',
199
+ '+232',
200
+ '+233',
201
+ '+234',
202
+ '+235',
203
+ '+236',
204
+ '+237',
205
+ '+238',
206
+ '+239',
207
+ '+240',
208
+ '+241',
209
+ '+242',
210
+ '+243',
211
+ '+244',
212
+ '+245',
213
+ '+246',
214
+ '+247',
215
+ '+248',
216
+ '+249',
217
+ '+250',
218
+ '+251',
219
+ '+252',
220
+ '+253',
221
+ '+254',
222
+ '+255',
223
+ '+256',
224
+ '+257',
225
+ '+258',
226
+ '+260',
227
+ '+261',
228
+ '+262',
229
+ '+263',
230
+ '+264',
231
+ '+265',
232
+ '+266',
233
+ '+267',
234
+ '+268',
235
+ '+269',
236
+ '+290',
237
+ '+291',
238
+ '+297',
239
+ '+298',
240
+ '+299',
241
+ '+350',
242
+ '+351',
243
+ '+352',
244
+ '+353',
245
+ '+354',
246
+ '+355',
247
+ '+356',
248
+ '+357',
249
+ '+358',
250
+ '+359',
251
+ '+370',
252
+ '+371',
253
+ '+372',
254
+ '+373',
255
+ '+374',
256
+ '+375',
257
+ '+376',
258
+ '+377',
259
+ '+378',
260
+ '+380',
261
+ '+381',
262
+ '+382',
263
+ '+383',
264
+ '+385',
265
+ '+386',
266
+ '+387',
267
+ '+389',
268
+ '+420',
269
+ '+421',
270
+ '+423',
271
+ '+500',
272
+ '+501',
273
+ '+502',
274
+ '+503',
275
+ '+504',
276
+ '+505',
277
+ '+506',
278
+ '+507',
279
+ '+508',
280
+ '+509',
281
+ '+590',
282
+ '+591',
283
+ '+592',
284
+ '+593',
285
+ '+594',
286
+ '+595',
287
+ '+596',
288
+ '+597',
289
+ '+598',
290
+ '+599',
291
+ '+670',
292
+ '+672',
293
+ '+673',
294
+ '+674',
295
+ '+675',
296
+ '+676',
297
+ '+677',
298
+ '+678',
299
+ '+679',
300
+ '+680',
301
+ '+681',
302
+ '+682',
303
+ '+683',
304
+ '+684',
305
+ '+685',
306
+ '+686',
307
+ '+687',
308
+ '+688',
309
+ '+689',
310
+ '+690',
311
+ '+691',
312
+ '+692',
313
+ '+850',
314
+ '+852',
315
+ '+853',
316
+ '+855',
317
+ '+856',
318
+ '+880',
319
+ '+886',
320
+ '+960',
321
+ '+961',
322
+ '+962',
323
+ '+963',
324
+ '+964',
325
+ '+965',
326
+ '+966',
327
+ '+967',
328
+ '+968',
329
+ '+970',
330
+ '+971',
331
+ '+972',
332
+ '+973',
333
+ '+974',
334
+ '+975',
335
+ '+976',
336
+ '+977',
337
+ '+992',
338
+ '+993',
339
+ '+994',
340
+ '+995',
341
+ '+996',
342
+ '+998',
343
+ ]);
344
+ //# sourceMappingURL=phone-code.vo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phone-code.vo.js","sourceRoot":"","sources":["../../../../../src/shared/domain/value-objects/phone-code/phone-code.vo.ts"],"names":[],"mappings":"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IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { StringValueObject } from '@/shared/domain/value-objects/string/string.vo';
2
+ export declare class SlugValueObject extends StringValueObject {
3
+ private static readonly SLUG_PATTERN;
4
+ private static readonly MIN_LENGTH;
5
+ private static readonly MAX_LENGTH;
6
+ constructor(value: string, options?: {
7
+ minLength?: number;
8
+ maxLength?: number;
9
+ allowEmpty?: boolean;
10
+ generateFromString?: boolean;
11
+ });
12
+ static fromString(text: string, options?: {
13
+ minLength?: number;
14
+ maxLength?: number;
15
+ allowEmpty?: boolean;
16
+ }): SlugValueObject;
17
+ static generateSlug(text: string): string;
18
+ isValidSlug(): boolean;
19
+ isEmptyOrOnlyHyphens(): boolean;
20
+ getWordCount(): number;
21
+ toHumanReadable(): StringValueObject;
22
+ addSuffix(suffix: string): SlugValueObject;
23
+ addPrefix(prefix: string): SlugValueObject;
24
+ protected validateSlug(): void;
25
+ }
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SlugValueObject = void 0;
4
+ const invalid_string_exception_1 = require("../../exceptions/value-objects/invalid-string/invalid-string.exception");
5
+ const string_vo_1 = require("../string/string.vo");
6
+ class SlugValueObject extends string_vo_1.StringValueObject {
7
+ constructor(value, options = {}) {
8
+ const processedValue = options.generateFromString
9
+ ? SlugValueObject.generateSlug(value)
10
+ : value;
11
+ super(processedValue, {
12
+ minLength: options.minLength ?? SlugValueObject.MIN_LENGTH,
13
+ maxLength: options.maxLength ?? SlugValueObject.MAX_LENGTH,
14
+ allowEmpty: options.allowEmpty ?? false,
15
+ pattern: SlugValueObject.SLUG_PATTERN,
16
+ trim: true,
17
+ });
18
+ }
19
+ static fromString(text, options = {}) {
20
+ return new SlugValueObject(text, {
21
+ ...options,
22
+ generateFromString: true,
23
+ });
24
+ }
25
+ static generateSlug(text) {
26
+ if (!text || typeof text !== 'string') {
27
+ return '';
28
+ }
29
+ return (text
30
+ .toLowerCase()
31
+ .trim()
32
+ .replace(/[\s_]+/g, '-')
33
+ .replace(/[^a-z0-9-]/g, '')
34
+ .replace(/-+/g, '-')
35
+ .replace(/^-+|-+$/g, ''));
36
+ }
37
+ isValidSlug() {
38
+ return SlugValueObject.SLUG_PATTERN.test(this.value);
39
+ }
40
+ isEmptyOrOnlyHyphens() {
41
+ return this.value.length === 0 || /^-+$/.test(this.value);
42
+ }
43
+ getWordCount() {
44
+ if (this.value.length === 0)
45
+ return 0;
46
+ return this.value.split('-').filter((part) => part.length > 0).length;
47
+ }
48
+ toHumanReadable() {
49
+ const humanReadable = this.value
50
+ .split('-')
51
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
52
+ .join(' ');
53
+ return new string_vo_1.StringValueObject(humanReadable);
54
+ }
55
+ addSuffix(suffix) {
56
+ const cleanSuffix = SlugValueObject.generateSlug(suffix);
57
+ if (!cleanSuffix) {
58
+ return this;
59
+ }
60
+ const newSlug = `${this.value}-${cleanSuffix}`;
61
+ return new SlugValueObject(newSlug);
62
+ }
63
+ addPrefix(prefix) {
64
+ const cleanPrefix = SlugValueObject.generateSlug(prefix);
65
+ if (!cleanPrefix) {
66
+ return this;
67
+ }
68
+ const newSlug = `${cleanPrefix}-${this.value}`;
69
+ return new SlugValueObject(newSlug);
70
+ }
71
+ validateSlug() {
72
+ if (this.isEmptyOrOnlyHyphens()) {
73
+ throw new invalid_string_exception_1.InvalidStringException('Slug cannot be empty or contain only hyphens');
74
+ }
75
+ if (!this.isValidSlug()) {
76
+ throw new invalid_string_exception_1.InvalidStringException('Slug must contain only lowercase letters, numbers, and hyphens');
77
+ }
78
+ if (this.value.startsWith('-') || this.value.endsWith('-')) {
79
+ throw new invalid_string_exception_1.InvalidStringException('Slug cannot start or end with hyphens');
80
+ }
81
+ }
82
+ }
83
+ exports.SlugValueObject = SlugValueObject;
84
+ SlugValueObject.SLUG_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
85
+ SlugValueObject.MIN_LENGTH = 1;
86
+ SlugValueObject.MAX_LENGTH = 100;
87
+ //# sourceMappingURL=slug.vo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slug.vo.js","sourceRoot":"","sources":["../../../../../src/shared/domain/value-objects/slug/slug.vo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { ValueObject } from '@/shared/domain/value-objects/base/value-object.base';
2
+ export declare class StringValueObject extends ValueObject<string> {
3
+ private readonly options;
4
+ private readonly _value;
5
+ constructor(value: string, options?: {
6
+ minLength?: number;
7
+ maxLength?: number;
8
+ allowEmpty?: boolean;
9
+ trim?: boolean;
10
+ pattern?: RegExp;
11
+ caseSensitive?: boolean;
12
+ });
13
+ get value(): string;
14
+ equals(other: StringValueObject): boolean;
15
+ isEmpty(): boolean;
16
+ isNotEmpty(): boolean;
17
+ length(): number;
18
+ contains(substring: string): boolean;
19
+ startsWith(prefix: string): boolean;
20
+ endsWith(suffix: string): boolean;
21
+ toLowerCase(): StringValueObject;
22
+ toUpperCase(): StringValueObject;
23
+ capitalize(): StringValueObject;
24
+ trim(): StringValueObject;
25
+ replace(searchValue: string, replaceValue: string): StringValueObject;
26
+ split(delimiter: string): StringValueObject[];
27
+ matches(pattern: RegExp): boolean;
28
+ isEmail(): boolean;
29
+ isUrl(): boolean;
30
+ isNumeric(): boolean;
31
+ isAlphanumeric(): boolean;
32
+ isAlphabetic(): boolean;
33
+ private processValue;
34
+ protected validate(): void;
35
+ private checkEmpty;
36
+ private checkLength;
37
+ private checkPattern;
38
+ }
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StringValueObject = void 0;
4
+ const invalid_string_exception_1 = require("../../exceptions/value-objects/invalid-string/invalid-string.exception");
5
+ const value_object_base_1 = require("../base/value-object.base");
6
+ class StringValueObject extends value_object_base_1.ValueObject {
7
+ constructor(value, options = {}) {
8
+ super();
9
+ this.options = options;
10
+ this._value = this.processValue(value);
11
+ this.validate();
12
+ }
13
+ get value() {
14
+ return this._value;
15
+ }
16
+ equals(other) {
17
+ if (this.options.caseSensitive === false) {
18
+ return this._value.toLowerCase() === other.value.toLowerCase();
19
+ }
20
+ return this._value === other.value;
21
+ }
22
+ isEmpty() {
23
+ return this._value.length === 0;
24
+ }
25
+ isNotEmpty() {
26
+ return this._value.length > 0;
27
+ }
28
+ length() {
29
+ return this._value.length;
30
+ }
31
+ contains(substring) {
32
+ if (this.options.caseSensitive === false) {
33
+ return this._value.toLowerCase().includes(substring.toLowerCase());
34
+ }
35
+ return this._value.includes(substring);
36
+ }
37
+ startsWith(prefix) {
38
+ if (this.options.caseSensitive === false) {
39
+ return this._value.toLowerCase().startsWith(prefix.toLowerCase());
40
+ }
41
+ return this._value.startsWith(prefix);
42
+ }
43
+ endsWith(suffix) {
44
+ if (this.options.caseSensitive === false) {
45
+ return this._value.toLowerCase().endsWith(suffix.toLowerCase());
46
+ }
47
+ return this._value.endsWith(suffix);
48
+ }
49
+ toLowerCase() {
50
+ return new StringValueObject(this._value.toLowerCase(), this.options);
51
+ }
52
+ toUpperCase() {
53
+ return new StringValueObject(this._value.toUpperCase(), this.options);
54
+ }
55
+ capitalize() {
56
+ if (this._value.length === 0) {
57
+ return new StringValueObject(this._value, this.options);
58
+ }
59
+ const capitalized = this._value.charAt(0).toUpperCase() + this._value.slice(1).toLowerCase();
60
+ return new StringValueObject(capitalized, this.options);
61
+ }
62
+ trim() {
63
+ return new StringValueObject(this._value.trim(), this.options);
64
+ }
65
+ replace(searchValue, replaceValue) {
66
+ let result = this._value;
67
+ if (this.options.caseSensitive === false) {
68
+ const regex = new RegExp(searchValue.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'gi');
69
+ result = this._value.replace(regex, replaceValue);
70
+ }
71
+ else {
72
+ result = this._value.replace(new RegExp(searchValue.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'g'), replaceValue);
73
+ }
74
+ return new StringValueObject(result, this.options);
75
+ }
76
+ split(delimiter) {
77
+ return this._value
78
+ .split(delimiter)
79
+ .map((part) => new StringValueObject(part, this.options));
80
+ }
81
+ matches(pattern) {
82
+ return pattern.test(this._value);
83
+ }
84
+ isEmail() {
85
+ const emailPattern = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
86
+ return emailPattern.test(this._value);
87
+ }
88
+ isUrl() {
89
+ try {
90
+ new URL(this._value);
91
+ return true;
92
+ }
93
+ catch {
94
+ return false;
95
+ }
96
+ }
97
+ isNumeric() {
98
+ return !isNaN(Number(this._value)) && !isNaN(parseFloat(this._value));
99
+ }
100
+ isAlphanumeric() {
101
+ return /^[a-zA-Z0-9]+$/.test(this._value);
102
+ }
103
+ isAlphabetic() {
104
+ return /^[a-zA-Z]+$/.test(this._value);
105
+ }
106
+ processValue(value) {
107
+ if (value === null || value === undefined) {
108
+ return '';
109
+ }
110
+ let processedValue = String(value);
111
+ if (this.options.trim !== false) {
112
+ processedValue = processedValue.trim();
113
+ }
114
+ return processedValue;
115
+ }
116
+ validate() {
117
+ this.checkEmpty();
118
+ this.checkLength();
119
+ this.checkPattern();
120
+ }
121
+ checkEmpty() {
122
+ if (this.options.allowEmpty === false && this._value.length === 0) {
123
+ throw new invalid_string_exception_1.InvalidStringException('String cannot be empty');
124
+ }
125
+ }
126
+ checkLength() {
127
+ if (this.options.minLength !== undefined &&
128
+ this._value.length < this.options.minLength &&
129
+ !(this.options.allowEmpty === true && this._value.length === 0)) {
130
+ throw new invalid_string_exception_1.InvalidStringException(`String must be at least ${this.options.minLength} characters long`);
131
+ }
132
+ if (this.options.maxLength !== undefined &&
133
+ this._value.length > this.options.maxLength) {
134
+ throw new invalid_string_exception_1.InvalidStringException(`String must be at most ${this.options.maxLength} characters long`);
135
+ }
136
+ }
137
+ checkPattern() {
138
+ if (this.options.pattern &&
139
+ !this.options.pattern.test(this._value) &&
140
+ !(this.options.allowEmpty === true && this._value.length === 0)) {
141
+ throw new invalid_string_exception_1.InvalidStringException('String does not match required pattern');
142
+ }
143
+ }
144
+ }
145
+ exports.StringValueObject = StringValueObject;
146
+ //# sourceMappingURL=string.vo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.vo.js","sourceRoot":"","sources":["../../../../../src/shared/domain/value-objects/string/string.vo.ts"],"names":[],"mappings":"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"}