@schorts/shared-kernel 1.0.3 → 1.0.5

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 (210) hide show
  1. package/CHANGELOG +15 -0
  2. package/README.md +5 -0
  3. package/__tests__/dao/dao.test.ts +116 -0
  4. package/__tests__/unit-of-work/unit-of-work.test.ts +47 -0
  5. package/dist/auth/auth-provider.d.ts +10 -0
  6. package/dist/auth/auth-provider.d.ts.map +1 -0
  7. package/dist/auth/auth-provider.js +3 -0
  8. package/dist/auth/auth-provider.js.map +1 -0
  9. package/dist/auth/exceptions/index.d.ts +2 -0
  10. package/dist/auth/exceptions/index.d.ts.map +1 -0
  11. package/dist/auth/exceptions/index.js +6 -0
  12. package/dist/auth/exceptions/index.js.map +1 -0
  13. package/dist/auth/exceptions/not-authenticated.d.ts +3 -0
  14. package/dist/auth/exceptions/not-authenticated.d.ts.map +1 -0
  15. package/dist/auth/exceptions/not-authenticated.js +7 -0
  16. package/dist/auth/exceptions/not-authenticated.js.map +1 -0
  17. package/dist/auth/index.d.ts +4 -0
  18. package/dist/auth/index.d.ts.map +1 -0
  19. package/dist/auth/index.js +8 -0
  20. package/dist/auth/index.js.map +1 -0
  21. package/dist/auth/require-auth.decorator.d.ts +5 -0
  22. package/dist/auth/require-auth.decorator.d.ts.map +1 -0
  23. package/dist/auth/require-auth.decorator.js +36 -0
  24. package/dist/auth/require-auth.decorator.js.map +1 -0
  25. package/dist/criteria/criteria.d.ts +15 -0
  26. package/dist/criteria/criteria.d.ts.map +1 -0
  27. package/dist/criteria/criteria.js +34 -0
  28. package/dist/criteria/criteria.js.map +1 -0
  29. package/dist/criteria/direction.d.ts +2 -0
  30. package/dist/criteria/direction.d.ts.map +1 -0
  31. package/dist/criteria/direction.js +3 -0
  32. package/dist/criteria/direction.js.map +1 -0
  33. package/dist/criteria/exceptions/index.d.ts +3 -0
  34. package/dist/criteria/exceptions/index.d.ts.map +1 -0
  35. package/dist/criteria/exceptions/index.js +8 -0
  36. package/dist/criteria/exceptions/index.js.map +1 -0
  37. package/dist/criteria/exceptions/limit-not-valid.d.ts +3 -0
  38. package/dist/criteria/exceptions/limit-not-valid.d.ts.map +1 -0
  39. package/dist/criteria/exceptions/limit-not-valid.js +7 -0
  40. package/dist/criteria/exceptions/limit-not-valid.js.map +1 -0
  41. package/dist/criteria/exceptions/offset-not-valid.d.ts +3 -0
  42. package/dist/criteria/exceptions/offset-not-valid.d.ts.map +1 -0
  43. package/dist/criteria/exceptions/offset-not-valid.js +7 -0
  44. package/dist/criteria/exceptions/offset-not-valid.js.map +1 -0
  45. package/dist/criteria/filter-criterion.d.ts +6 -0
  46. package/dist/criteria/filter-criterion.d.ts.map +1 -0
  47. package/dist/criteria/filter-criterion.js +3 -0
  48. package/dist/criteria/filter-criterion.js.map +1 -0
  49. package/dist/criteria/index.d.ts +7 -0
  50. package/dist/criteria/index.d.ts.map +1 -0
  51. package/dist/criteria/index.js +9 -0
  52. package/dist/criteria/index.js.map +1 -0
  53. package/dist/criteria/operator.d.ts +2 -0
  54. package/dist/criteria/operator.d.ts.map +1 -0
  55. package/dist/criteria/operator.js +3 -0
  56. package/dist/criteria/operator.js.map +1 -0
  57. package/dist/criteria/order.d.ts +5 -0
  58. package/dist/criteria/order.d.ts.map +1 -0
  59. package/dist/criteria/order.js +3 -0
  60. package/dist/criteria/order.js.map +1 -0
  61. package/dist/domain-events/domain-event-primitives.d.ts +8 -0
  62. package/dist/domain-events/domain-event-primitives.d.ts.map +1 -0
  63. package/dist/domain-events/domain-event-primitives.js +3 -0
  64. package/dist/domain-events/domain-event-primitives.js.map +1 -0
  65. package/dist/domain-events/domain-event.d.ts +13 -0
  66. package/dist/domain-events/domain-event.d.ts.map +1 -0
  67. package/dist/domain-events/domain-event.js +19 -0
  68. package/dist/domain-events/domain-event.js.map +1 -0
  69. package/dist/domain-events/index.d.ts +3 -0
  70. package/dist/domain-events/index.d.ts.map +1 -0
  71. package/dist/domain-events/index.js +6 -0
  72. package/dist/domain-events/index.js.map +1 -0
  73. package/dist/entities/entity.d.ts +12 -0
  74. package/dist/entities/entity.d.ts.map +1 -0
  75. package/dist/entities/entity.js +20 -0
  76. package/dist/entities/entity.js.map +1 -0
  77. package/dist/entities/index.d.ts +2 -0
  78. package/dist/entities/index.d.ts.map +1 -0
  79. package/dist/entities/index.js +6 -0
  80. package/dist/entities/index.js.map +1 -0
  81. package/dist/formatters/index.d.ts +2 -0
  82. package/dist/formatters/index.d.ts.map +1 -0
  83. package/dist/formatters/index.js +6 -0
  84. package/dist/formatters/index.js.map +1 -0
  85. package/dist/formatters/pascal-camel-to-snake.d.ts +4 -0
  86. package/dist/formatters/pascal-camel-to-snake.d.ts.map +1 -0
  87. package/dist/formatters/pascal-camel-to-snake.js +13 -0
  88. package/dist/formatters/pascal-camel-to-snake.js.map +1 -0
  89. package/dist/http/exceptions/http-exception.d.ts +6 -0
  90. package/dist/http/exceptions/http-exception.d.ts.map +1 -0
  91. package/dist/http/exceptions/http-exception.js +14 -0
  92. package/dist/http/exceptions/http-exception.js.map +1 -0
  93. package/dist/http/exceptions/index.d.ts +2 -0
  94. package/dist/http/exceptions/index.d.ts.map +1 -0
  95. package/dist/http/exceptions/index.js +6 -0
  96. package/dist/http/exceptions/index.js.map +1 -0
  97. package/dist/http/fetch-http-provider.d.ts +13 -0
  98. package/dist/http/fetch-http-provider.d.ts.map +1 -0
  99. package/dist/http/fetch-http-provider.js +88 -0
  100. package/dist/http/fetch-http-provider.js.map +1 -0
  101. package/dist/http/http-provider.d.ts +8 -0
  102. package/dist/http/http-provider.d.ts.map +1 -0
  103. package/dist/http/http-provider.js +3 -0
  104. package/dist/http/http-provider.js.map +1 -0
  105. package/dist/http/index.d.ts +4 -0
  106. package/dist/http/index.d.ts.map +1 -0
  107. package/dist/http/index.js +8 -0
  108. package/dist/http/index.js.map +1 -0
  109. package/dist/json-api/index.d.ts +5 -0
  110. package/dist/json-api/index.d.ts.map +1 -0
  111. package/dist/json-api/index.js +8 -0
  112. package/dist/json-api/index.js.map +1 -0
  113. package/dist/json-api/json-api-connector.d.ts +21 -0
  114. package/dist/json-api/json-api-connector.d.ts.map +1 -0
  115. package/dist/json-api/json-api-connector.js +29 -0
  116. package/dist/json-api/json-api-connector.js.map +1 -0
  117. package/dist/json-api/json-api-list.d.ts +14 -0
  118. package/dist/json-api/json-api-list.d.ts.map +1 -0
  119. package/dist/json-api/json-api-list.js +3 -0
  120. package/dist/json-api/json-api-list.js.map +1 -0
  121. package/dist/json-api/json-api-single.d.ts +14 -0
  122. package/dist/json-api/json-api-single.d.ts.map +1 -0
  123. package/dist/json-api/json-api-single.js +3 -0
  124. package/dist/json-api/json-api-single.js.map +1 -0
  125. package/dist/json-api/url-criteria-builder.d.ts +9 -0
  126. package/dist/json-api/url-criteria-builder.d.ts.map +1 -0
  127. package/dist/json-api/url-criteria-builder.js +49 -0
  128. package/dist/json-api/url-criteria-builder.js.map +1 -0
  129. package/dist/messages/index.d.ts +2 -0
  130. package/dist/messages/index.d.ts.map +1 -0
  131. package/dist/messages/index.js +3 -0
  132. package/dist/messages/index.js.map +1 -0
  133. package/dist/messages/message.d.ts +4 -0
  134. package/dist/messages/message.d.ts.map +1 -0
  135. package/dist/messages/message.js +3 -0
  136. package/dist/messages/message.js.map +1 -0
  137. package/dist/models/base-model.d.ts +4 -0
  138. package/dist/models/base-model.d.ts.map +1 -0
  139. package/dist/models/base-model.js +3 -0
  140. package/dist/models/base-model.js.map +1 -0
  141. package/dist/models/index.d.ts +2 -0
  142. package/dist/models/index.d.ts.map +1 -0
  143. package/dist/models/index.js +3 -0
  144. package/dist/models/index.js.map +1 -0
  145. package/dist/state-manager/index.d.ts +2 -0
  146. package/dist/state-manager/index.d.ts.map +1 -0
  147. package/dist/state-manager/index.js +6 -0
  148. package/dist/state-manager/index.js.map +1 -0
  149. package/dist/state-manager/state-manager.d.ts +12 -0
  150. package/dist/state-manager/state-manager.d.ts.map +1 -0
  151. package/dist/state-manager/state-manager.js +24 -0
  152. package/dist/state-manager/state-manager.js.map +1 -0
  153. package/dist/utils/index.d.ts +2 -0
  154. package/dist/utils/index.d.ts.map +1 -0
  155. package/dist/utils/index.js +6 -0
  156. package/dist/utils/index.js.map +1 -0
  157. package/dist/utils/url/index.d.ts +2 -0
  158. package/dist/utils/url/index.d.ts.map +1 -0
  159. package/dist/utils/url/index.js +6 -0
  160. package/dist/utils/url/index.js.map +1 -0
  161. package/dist/utils/url/url-with-params-builder.d.ts +7 -0
  162. package/dist/utils/url/url-with-params-builder.d.ts.map +1 -0
  163. package/dist/utils/url/url-with-params-builder.js +25 -0
  164. package/dist/utils/url/url-with-params-builder.js.map +1 -0
  165. package/dist/value-objects/coordinates-value.d.ts +15 -0
  166. package/dist/value-objects/coordinates-value.d.ts.map +1 -0
  167. package/dist/value-objects/coordinates-value.js +39 -0
  168. package/dist/value-objects/coordinates-value.js.map +1 -0
  169. package/dist/value-objects/email-value.d.ts +10 -0
  170. package/dist/value-objects/email-value.d.ts.map +1 -0
  171. package/dist/value-objects/email-value.js +23 -0
  172. package/dist/value-objects/email-value.js.map +1 -0
  173. package/dist/value-objects/enum-value.d.ts +11 -0
  174. package/dist/value-objects/enum-value.d.ts.map +1 -0
  175. package/dist/value-objects/enum-value.js +24 -0
  176. package/dist/value-objects/enum-value.js.map +1 -0
  177. package/dist/value-objects/index.d.ts +10 -0
  178. package/dist/value-objects/index.d.ts.map +1 -0
  179. package/dist/value-objects/index.js +20 -0
  180. package/dist/value-objects/index.js.map +1 -0
  181. package/dist/value-objects/integer-value.d.ts +12 -0
  182. package/dist/value-objects/integer-value.d.ts.map +1 -0
  183. package/dist/value-objects/integer-value.js +28 -0
  184. package/dist/value-objects/integer-value.js.map +1 -0
  185. package/dist/value-objects/phone-value.d.ts +13 -0
  186. package/dist/value-objects/phone-value.d.ts.map +1 -0
  187. package/dist/value-objects/phone-value.js +43 -0
  188. package/dist/value-objects/phone-value.js.map +1 -0
  189. package/dist/value-objects/slug-value.d.ts +10 -0
  190. package/dist/value-objects/slug-value.d.ts.map +1 -0
  191. package/dist/value-objects/slug-value.js +23 -0
  192. package/dist/value-objects/slug-value.js.map +1 -0
  193. package/dist/value-objects/string-value.d.ts +12 -0
  194. package/dist/value-objects/string-value.d.ts.map +1 -0
  195. package/dist/value-objects/string-value.js +26 -0
  196. package/dist/value-objects/string-value.js.map +1 -0
  197. package/dist/value-objects/uuid-value.d.ts +13 -0
  198. package/dist/value-objects/uuid-value.d.ts.map +1 -0
  199. package/dist/value-objects/uuid-value.js +29 -0
  200. package/dist/value-objects/uuid-value.js.map +1 -0
  201. package/dist/value-objects/value-object.d.ts +8 -0
  202. package/dist/value-objects/value-object.d.ts.map +1 -0
  203. package/dist/value-objects/value-object.js +3 -0
  204. package/dist/value-objects/value-object.js.map +1 -0
  205. package/jest.config.js +2 -2
  206. package/package.json +10 -1
  207. package/src/dao/dao.ts +13 -0
  208. package/src/dao/index.ts +1 -0
  209. package/src/unit-of-work/index.ts +1 -0
  210. package/src/unit-of-work/unit-of-work.ts +5 -0
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/messages/message.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export type BaseModel = {
2
+ id: string | number;
3
+ };
4
+ //# sourceMappingURL=base-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-model.d.ts","sourceRoot":"","sources":["../../src/models/base-model.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;CACrB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=base-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-model.js","sourceRoot":"","sources":["../../src/models/base-model.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export type { BaseModel } from "./base-model";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export { StateManager } from "./state-manager";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state-manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StateManager = void 0;
4
+ var state_manager_1 = require("./state-manager");
5
+ Object.defineProperty(exports, "StateManager", { enumerable: true, get: function () { return state_manager_1.StateManager; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/state-manager/index.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAAtC,6GAAA,YAAY,OAAA"}
@@ -0,0 +1,12 @@
1
+ export declare abstract class StateManager<Schema extends Record<string, any>> {
2
+ protected state: Schema;
3
+ private listeners;
4
+ constructor(initialState?: Schema);
5
+ abstract getValue<Key extends keyof Schema>(key: Key): Promise<Schema[Key]>;
6
+ abstract setValue<Key extends keyof Schema>(key: Key, value: Schema[Key]): Promise<void>;
7
+ abstract removeValue<Key extends keyof Schema>(key: Key): Promise<void>;
8
+ getState(): Schema;
9
+ subscribe(listener: (state: Schema) => void): () => void;
10
+ protected notifyListeners(): void;
11
+ }
12
+ //# sourceMappingURL=state-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-manager.d.ts","sourceRoot":"","sources":["../../src/state-manager/state-manager.ts"],"names":[],"mappings":"AAAA,8BAAsB,YAAY,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACnE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,SAAS,CAAsC;gBAE3C,YAAY,GAAE,MAAqB;IAI/C,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,MAAM,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3E,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,MAAM,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACxF,QAAQ,CAAC,WAAW,CAAC,GAAG,SAAS,MAAM,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAEvE,QAAQ,IAAI,MAAM;IAIlB,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAQxD,SAAS,CAAC,eAAe,IAAI,IAAI;CAGlC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StateManager = void 0;
4
+ class StateManager {
5
+ state;
6
+ listeners = [];
7
+ constructor(initialState = {}) {
8
+ this.state = initialState;
9
+ }
10
+ getState() {
11
+ return this.state;
12
+ }
13
+ subscribe(listener) {
14
+ this.listeners.push(listener);
15
+ return () => {
16
+ this.listeners = this.listeners.filter(l => l !== listener);
17
+ };
18
+ }
19
+ notifyListeners() {
20
+ this.listeners.forEach(listener => listener(this.state));
21
+ }
22
+ }
23
+ exports.StateManager = StateManager;
24
+ //# sourceMappingURL=state-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-manager.js","sourceRoot":"","sources":["../../src/state-manager/state-manager.ts"],"names":[],"mappings":";;;AAAA,MAAsB,YAAY;IACtB,KAAK,CAAS;IAChB,SAAS,GAAmC,EAAE,CAAC;IAEvD,YAAY,eAAuB,EAAY;QAC7C,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;IAC5B,CAAC;IAMD,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,SAAS,CAAC,QAAiC;QACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE9B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;QAC9D,CAAC,CAAC;IACJ,CAAC;IAES,eAAe;QACvB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3D,CAAC;CACF;AA3BD,oCA2BC"}
@@ -0,0 +1,2 @@
1
+ export { URLWithParamsBuilder } from "./url";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.URLWithParamsBuilder = void 0;
4
+ var url_1 = require("./url");
5
+ Object.defineProperty(exports, "URLWithParamsBuilder", { enumerable: true, get: function () { return url_1.URLWithParamsBuilder; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,6BAA6C;AAApC,2GAAA,oBAAoB,OAAA"}
@@ -0,0 +1,2 @@
1
+ export { URLWithParamsBuilder } from "./url-with-params-builder";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/url/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.URLWithParamsBuilder = void 0;
4
+ var url_with_params_builder_1 = require("./url-with-params-builder");
5
+ Object.defineProperty(exports, "URLWithParamsBuilder", { enumerable: true, get: function () { return url_with_params_builder_1.URLWithParamsBuilder; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/url/index.ts"],"names":[],"mappings":";;;AAAA,qEAAiE;AAAxD,+HAAA,oBAAoB,OAAA"}
@@ -0,0 +1,7 @@
1
+ export declare class URLWithParamsBuilder {
2
+ private readonly base;
3
+ constructor(base: URL);
4
+ with(params: Record<string, string | number | boolean | Array<string | number>>): URLWithParamsBuilder;
5
+ build(): URL;
6
+ }
7
+ //# sourceMappingURL=url-with-params-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-with-params-builder.d.ts","sourceRoot":"","sources":["../../../src/utils/url/url-with-params-builder.ts"],"names":[],"mappings":"AAAA,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,GAAG;IAEtC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,oBAAoB;IAYtG,KAAK,IAAI,GAAG;CAGb"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.URLWithParamsBuilder = void 0;
4
+ class URLWithParamsBuilder {
5
+ base;
6
+ constructor(base) {
7
+ this.base = base;
8
+ }
9
+ with(params) {
10
+ Object.entries(params).forEach(([key, value]) => {
11
+ if (Array.isArray(value)) {
12
+ value.forEach(v => this.base.searchParams.append(key, String(v)));
13
+ }
14
+ else {
15
+ this.base.searchParams.set(key, String(value));
16
+ }
17
+ });
18
+ return this;
19
+ }
20
+ build() {
21
+ return this.base;
22
+ }
23
+ }
24
+ exports.URLWithParamsBuilder = URLWithParamsBuilder;
25
+ //# sourceMappingURL=url-with-params-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-with-params-builder.js","sourceRoot":"","sources":["../../../src/utils/url/url-with-params-builder.ts"],"names":[],"mappings":";;;AAAA,MAAa,oBAAoB;IACF;IAA7B,YAA6B,IAAS;QAAT,SAAI,GAAJ,IAAI,CAAK;IAAG,CAAC;IAE1C,IAAI,CAAC,MAA0E;QAC7E,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACjD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF;AAlBD,oDAkBC"}
@@ -0,0 +1,15 @@
1
+ import { ValueObject } from "./";
2
+ export declare abstract class CoordinatesValue implements ValueObject {
3
+ readonly valueType = "Coordinates";
4
+ readonly value: {
5
+ latitude: number;
6
+ longitude: number;
7
+ };
8
+ constructor(value: CoordinatesValue["value"]);
9
+ get isValid(): boolean;
10
+ get latitude(): number | null;
11
+ get longitude(): number | null;
12
+ equals(valueObject: unknown): boolean;
13
+ abstract readonly attributeName: string;
14
+ }
15
+ //# sourceMappingURL=coordinates-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordinates-value.d.ts","sourceRoot":"","sources":["../../src/value-objects/coordinates-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAIjC,8BAAsB,gBAAiB,YAAW,WAAW;IAC3D,QAAQ,CAAC,SAAS,iBAAiB;IACnC,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;gBAEU,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC;IAI5C,IAAI,OAAO,IAAI,OAAO,CAKrB;IAED,IAAI,QAAQ,IAAI,MAAM,GAAG,IAAI,CAM5B;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAM7B;IAED,MAAM,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO;IAUrC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CACzC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CoordinatesValue = void 0;
4
+ const EPSILON = 1e-6;
5
+ class CoordinatesValue {
6
+ valueType = "Coordinates";
7
+ value;
8
+ constructor(value) {
9
+ this.value = value;
10
+ }
11
+ get isValid() {
12
+ const validLatitud = -90 <= this.value.latitude && this.value.latitude <= 90;
13
+ const validLongitude = -180 <= this.value.longitude && this.value.longitude <= 180;
14
+ return validLatitud && validLongitude;
15
+ }
16
+ get latitude() {
17
+ if (this.isValid) {
18
+ return this.value.latitude;
19
+ }
20
+ return null;
21
+ }
22
+ get longitude() {
23
+ if (this.isValid) {
24
+ return this.value.longitude;
25
+ }
26
+ return null;
27
+ }
28
+ equals(valueObject) {
29
+ if (!(valueObject instanceof CoordinatesValue))
30
+ return false;
31
+ if (!this.isValid || !valueObject.isValid)
32
+ return false;
33
+ const latDiff = Math.abs(this.value.latitude - valueObject.value.latitude);
34
+ const lonDiff = Math.abs(this.value.longitude - valueObject.value.longitude);
35
+ return latDiff < EPSILON && lonDiff < EPSILON;
36
+ }
37
+ }
38
+ exports.CoordinatesValue = CoordinatesValue;
39
+ //# sourceMappingURL=coordinates-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordinates-value.js","sourceRoot":"","sources":["../../src/value-objects/coordinates-value.ts"],"names":[],"mappings":";;;AAEA,MAAM,OAAO,GAAG,IAAI,CAAC;AAErB,MAAsB,gBAAgB;IAC3B,SAAS,GAAG,aAAa,CAAC;IAC1B,KAAK,CAGZ;IAEF,YAAY,KAAgC;QAC1C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,OAAO;QACT,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC7E,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,GAAG,CAAC;QAEnF,OAAO,YAAY,IAAI,cAAc,CAAC;IACxC,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC7B,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,SAAS;QACX,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAC9B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,WAAoB;QACzB,IAAI,CAAC,CAAC,WAAW,YAAY,gBAAgB,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAExD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAE7E,OAAO,OAAO,GAAG,OAAO,IAAI,OAAO,GAAG,OAAO,CAAC;IAChD,CAAC;CAGF;AA7CD,4CA6CC"}
@@ -0,0 +1,10 @@
1
+ import { ValueObject } from "./";
2
+ export declare abstract class EmailValue implements ValueObject {
3
+ readonly valueType = "Email";
4
+ readonly value: string;
5
+ constructor(value: string);
6
+ get isValid(): boolean;
7
+ equals(valueObject: unknown): boolean;
8
+ abstract readonly attributeName: string;
9
+ }
10
+ //# sourceMappingURL=email-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-value.d.ts","sourceRoot":"","sources":["../../src/value-objects/email-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAIjC,8BAAsB,UAAW,YAAW,WAAW;IACrD,QAAQ,CAAC,SAAS,WAAW;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,KAAK,EAAE,MAAM;IAIzB,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,MAAM,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO;IAOrC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CACzC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EmailValue = void 0;
4
+ const REGEX = /^([A-Za-z0-9_\-\.])+\@(?!(?:[A-Za-z0-9_\-\.]+\.)?com\.com)([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
5
+ class EmailValue {
6
+ valueType = "Email";
7
+ value;
8
+ constructor(value) {
9
+ this.value = value;
10
+ }
11
+ get isValid() {
12
+ return REGEX.test(this.value);
13
+ }
14
+ equals(valueObject) {
15
+ if (!(valueObject instanceof EmailValue))
16
+ return false;
17
+ if (!this.isValid || !valueObject.isValid)
18
+ return false;
19
+ return this.value === valueObject.value;
20
+ }
21
+ }
22
+ exports.EmailValue = EmailValue;
23
+ //# sourceMappingURL=email-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-value.js","sourceRoot":"","sources":["../../src/value-objects/email-value.ts"],"names":[],"mappings":";;;AAEA,MAAM,KAAK,GAAG,iGAAiG,CAAC;AAEhH,MAAsB,UAAU;IACrB,SAAS,GAAG,OAAO,CAAC;IACpB,KAAK,CAAS;IAEvB,YAAY,KAAa;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,WAAoB;QACzB,IAAI,CAAC,CAAC,WAAW,YAAY,UAAU,CAAC;YAAE,OAAO,KAAK,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAExD,OAAO,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK,CAAC;IAC1C,CAAC;CAGF;AApBD,gCAoBC"}
@@ -0,0 +1,11 @@
1
+ import { ValueObject } from "./";
2
+ export declare abstract class EnumValue implements ValueObject {
3
+ readonly valueType = "Enum";
4
+ readonly allowedValues: Array<string>;
5
+ readonly value: typeof this.allowedValues[number] | string;
6
+ constructor(allowedValues: Array<string>, value: string);
7
+ get isValid(): boolean;
8
+ equals(valueObject: unknown): boolean;
9
+ abstract readonly attributeName: string;
10
+ }
11
+ //# sourceMappingURL=enum-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-value.d.ts","sourceRoot":"","sources":["../../src/value-objects/enum-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAEjC,8BAAsB,SAAU,YAAW,WAAW;IACpD,QAAQ,CAAC,SAAS,UAAU;IAC5B,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;gBAE/C,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM;IAKvD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,MAAM,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO;IAOrC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CACzC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnumValue = void 0;
4
+ class EnumValue {
5
+ valueType = "Enum";
6
+ allowedValues;
7
+ value;
8
+ constructor(allowedValues, value) {
9
+ this.allowedValues = allowedValues;
10
+ this.value = value;
11
+ }
12
+ get isValid() {
13
+ return this.allowedValues.includes(this.value);
14
+ }
15
+ equals(valueObject) {
16
+ if (!(valueObject instanceof EnumValue))
17
+ return false;
18
+ if (!this.isValid || !valueObject.isValid)
19
+ return false;
20
+ return this.value === valueObject.value;
21
+ }
22
+ }
23
+ exports.EnumValue = EnumValue;
24
+ //# sourceMappingURL=enum-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-value.js","sourceRoot":"","sources":["../../src/value-objects/enum-value.ts"],"names":[],"mappings":";;;AAEA,MAAsB,SAAS;IACpB,SAAS,GAAG,MAAM,CAAC;IACnB,aAAa,CAAgB;IAC7B,KAAK,CAA6C;IAE3D,YAAY,aAA4B,EAAE,KAAa;QACrD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,WAAoB;QACzB,IAAI,CAAC,CAAC,WAAW,YAAY,SAAS,CAAC;YAAE,OAAO,KAAK,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAExD,OAAO,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK,CAAC;IAC1C,CAAC;CAGF;AAtBD,8BAsBC"}
@@ -0,0 +1,10 @@
1
+ export type { ValueObject } from "./value-object";
2
+ export { UUIDValue } from "./uuid-value";
3
+ export { StringValue } from "./string-value";
4
+ export { EnumValue } from "./enum-value";
5
+ export { EmailValue } from "./email-value";
6
+ export { PhoneValue } from "./phone-value";
7
+ export { SlugValue } from "./slug-value";
8
+ export { IntegerValue } from "./integer-value";
9
+ export { CoordinatesValue } from "./coordinates-value";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/value-objects/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CoordinatesValue = exports.IntegerValue = exports.SlugValue = exports.PhoneValue = exports.EmailValue = exports.EnumValue = exports.StringValue = exports.UUIDValue = void 0;
4
+ var uuid_value_1 = require("./uuid-value");
5
+ Object.defineProperty(exports, "UUIDValue", { enumerable: true, get: function () { return uuid_value_1.UUIDValue; } });
6
+ var string_value_1 = require("./string-value");
7
+ Object.defineProperty(exports, "StringValue", { enumerable: true, get: function () { return string_value_1.StringValue; } });
8
+ var enum_value_1 = require("./enum-value");
9
+ Object.defineProperty(exports, "EnumValue", { enumerable: true, get: function () { return enum_value_1.EnumValue; } });
10
+ var email_value_1 = require("./email-value");
11
+ Object.defineProperty(exports, "EmailValue", { enumerable: true, get: function () { return email_value_1.EmailValue; } });
12
+ var phone_value_1 = require("./phone-value");
13
+ Object.defineProperty(exports, "PhoneValue", { enumerable: true, get: function () { return phone_value_1.PhoneValue; } });
14
+ var slug_value_1 = require("./slug-value");
15
+ Object.defineProperty(exports, "SlugValue", { enumerable: true, get: function () { return slug_value_1.SlugValue; } });
16
+ var integer_value_1 = require("./integer-value");
17
+ Object.defineProperty(exports, "IntegerValue", { enumerable: true, get: function () { return integer_value_1.IntegerValue; } });
18
+ var coordinates_value_1 = require("./coordinates-value");
19
+ Object.defineProperty(exports, "CoordinatesValue", { enumerable: true, get: function () { return coordinates_value_1.CoordinatesValue; } });
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/value-objects/index.ts"],"names":[],"mappings":";;;AAEA,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA"}
@@ -0,0 +1,12 @@
1
+ import { ValueObject } from "./";
2
+ export declare abstract class IntegerValue implements ValueObject {
3
+ readonly valueType = "Integer";
4
+ readonly min: number | undefined;
5
+ readonly max: number | undefined;
6
+ readonly value: number;
7
+ constructor(value: number, min?: number, max?: number);
8
+ get isValid(): boolean;
9
+ equals(valueObject: unknown): boolean;
10
+ abstract readonly attributeName: string;
11
+ }
12
+ //# sourceMappingURL=integer-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integer-value.d.ts","sourceRoot":"","sources":["../../src/value-objects/integer-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAEjC,8BAAsB,YAAa,YAAW,WAAW;IACvD,QAAQ,CAAC,SAAS,aAAa;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAMrD,IAAI,OAAO,IAAI,OAAO,CAIrB;IAED,MAAM,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO;IAOrC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CACzC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IntegerValue = void 0;
4
+ class IntegerValue {
5
+ valueType = "Integer";
6
+ min;
7
+ max;
8
+ value;
9
+ constructor(value, min, max) {
10
+ this.min = min;
11
+ this.max = max;
12
+ this.value = value;
13
+ }
14
+ get isValid() {
15
+ return (this.min ? this.value >= this.min : true)
16
+ && (this.max ? this.value <= this.max : true)
17
+ && Number.isInteger(this.value);
18
+ }
19
+ equals(valueObject) {
20
+ if (!(valueObject instanceof IntegerValue))
21
+ return false;
22
+ if (!this.isValid || !valueObject.isValid)
23
+ return false;
24
+ return this.value === valueObject.value;
25
+ }
26
+ }
27
+ exports.IntegerValue = IntegerValue;
28
+ //# sourceMappingURL=integer-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integer-value.js","sourceRoot":"","sources":["../../src/value-objects/integer-value.ts"],"names":[],"mappings":";;;AAEA,MAAsB,YAAY;IACvB,SAAS,GAAG,SAAS,CAAC;IACtB,GAAG,CAAqB;IACxB,GAAG,CAAqB;IACxB,KAAK,CAAS;IAEvB,YAAY,KAAa,EAAE,GAAY,EAAE,GAAY;QACnD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;eAC5C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;eAC1C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,WAAoB;QACzB,IAAI,CAAC,CAAC,WAAW,YAAY,YAAY,CAAC;YAAE,OAAO,KAAK,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAExD,OAAO,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK,CAAC;IAC1C,CAAC;CAGF;AA1BD,oCA0BC"}
@@ -0,0 +1,13 @@
1
+ import { ValueObject } from "./";
2
+ export declare abstract class PhoneValue implements ValueObject {
3
+ readonly valueType = "Phone";
4
+ readonly value: string;
5
+ constructor(value: string);
6
+ get isValid(): boolean;
7
+ get countryCode(): string | null;
8
+ get phoneNumber(): string | null;
9
+ get formattedPhone(): string | null;
10
+ equals(valueObject: unknown): boolean;
11
+ abstract readonly attributeName: string;
12
+ }
13
+ //# sourceMappingURL=phone-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phone-value.d.ts","sourceRoot":"","sources":["../../src/value-objects/phone-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAIjC,8BAAsB,UAAW,YAAW,WAAW;IACrD,QAAQ,CAAC,SAAS,WAAW;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,KAAK,EAAE,MAAM;IAIzB,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,IAAI,CAQ/B;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,IAAI,CAM/B;IAED,IAAI,cAAc,IAAI,MAAM,GAAG,IAAI,CAQlC;IAED,MAAM,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO;IAOrC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CACzC"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PhoneValue = void 0;
4
+ const REGEX = /\+(9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\d{10,12}$/;
5
+ class PhoneValue {
6
+ valueType = "Phone";
7
+ value;
8
+ constructor(value) {
9
+ this.value = value;
10
+ }
11
+ get isValid() {
12
+ return REGEX.test(this.value);
13
+ }
14
+ get countryCode() {
15
+ if (this.isValid) {
16
+ const countryCodeLength = this.value.length - 10;
17
+ return this.value.slice(0, countryCodeLength);
18
+ }
19
+ return null;
20
+ }
21
+ get phoneNumber() {
22
+ if (this.isValid) {
23
+ return this.value.slice(-10);
24
+ }
25
+ return null;
26
+ }
27
+ get formattedPhone() {
28
+ if (this.isValid) {
29
+ const phoneNumber = this.phoneNumber.replace(/(\d{3})(\d{3})(\d{4})/, "($1) $2-$3");
30
+ return `${this.countryCode} ${phoneNumber}`;
31
+ }
32
+ return null;
33
+ }
34
+ equals(valueObject) {
35
+ if (!(valueObject instanceof PhoneValue))
36
+ return false;
37
+ if (!this.isValid || !valueObject.isValid)
38
+ return false;
39
+ return this.value === valueObject.value;
40
+ }
41
+ }
42
+ exports.PhoneValue = PhoneValue;
43
+ //# sourceMappingURL=phone-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phone-value.js","sourceRoot":"","sources":["../../src/value-objects/phone-value.ts"],"names":[],"mappings":";;;AAEA,MAAM,KAAK,GAAG,6JAA6J,CAAC;AAE5K,MAAsB,UAAU;IACrB,SAAS,GAAG,OAAO,CAAC;IACpB,KAAK,CAAS;IAEvB,YAAY,KAAa;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,WAAW;QACb,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;YAEjD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,WAAW;QACb,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,cAAc;QAChB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAY,CAAC,OAAO,CAAC,uBAAuB,EAAE,YAAY,CAAC,CAAC;YAErF,OAAO,GAAG,IAAI,CAAC,WAAW,IAAI,WAAW,EAAE,CAAC;QAC9C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,WAAoB;QACzB,IAAI,CAAC,CAAC,WAAW,YAAY,UAAU,CAAC;YAAE,OAAO,KAAK,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAExD,OAAO,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK,CAAC;IAC1C,CAAC;CAGF;AAhDD,gCAgDC"}
@@ -0,0 +1,10 @@
1
+ import { ValueObject } from "./";
2
+ export declare abstract class SlugValue implements ValueObject {
3
+ readonly valueType = "Slug";
4
+ readonly value: string;
5
+ constructor(value: string);
6
+ get isValid(): boolean;
7
+ equals(valueObject: unknown): boolean;
8
+ abstract readonly attributeName: string;
9
+ }
10
+ //# sourceMappingURL=slug-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slug-value.d.ts","sourceRoot":"","sources":["../../src/value-objects/slug-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAIjC,8BAAsB,SAAU,YAAW,WAAW;IACpD,QAAQ,CAAC,SAAS,UAAU;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,KAAK,EAAE,MAAM;IAIzB,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,MAAM,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO;IAOrC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CACzC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SlugValue = void 0;
4
+ const REGEX = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
5
+ class SlugValue {
6
+ valueType = "Slug";
7
+ value;
8
+ constructor(value) {
9
+ this.value = value;
10
+ }
11
+ get isValid() {
12
+ return REGEX.test(this.value);
13
+ }
14
+ equals(valueObject) {
15
+ if (!(valueObject instanceof SlugValue))
16
+ return false;
17
+ if (!this.isValid || !valueObject.isValid)
18
+ return false;
19
+ return this.value === valueObject.value;
20
+ }
21
+ }
22
+ exports.SlugValue = SlugValue;
23
+ //# sourceMappingURL=slug-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slug-value.js","sourceRoot":"","sources":["../../src/value-objects/slug-value.ts"],"names":[],"mappings":";;;AAEA,MAAM,KAAK,GAAG,4BAA4B,CAAC;AAE3C,MAAsB,SAAS;IACpB,SAAS,GAAG,MAAM,CAAC;IACnB,KAAK,CAAS;IAEvB,YAAY,KAAa;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,WAAoB;QACzB,IAAI,CAAC,CAAC,WAAW,YAAY,SAAS,CAAC;YAAE,OAAO,KAAK,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAExD,OAAO,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK,CAAC;IAC1C,CAAC;CAGF;AApBD,8BAoBC"}
@@ -0,0 +1,12 @@
1
+ import { ValueObject } from "./";
2
+ export declare abstract class StringValue implements ValueObject {
3
+ readonly valueType = "String";
4
+ readonly value: string;
5
+ readonly minLength: number;
6
+ readonly maxLength: number | undefined;
7
+ constructor(value: string, minLength?: number, maxLength?: number);
8
+ get isValid(): boolean;
9
+ equals(valueObject: unknown): boolean;
10
+ abstract readonly attributeName: string;
11
+ }
12
+ //# sourceMappingURL=string-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-value.d.ts","sourceRoot":"","sources":["../../src/value-objects/string-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAEjC,8BAAsB,WAAY,YAAW,WAAW;IACtD,QAAQ,CAAC,SAAS,YAAY;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;gBAE3B,KAAK,EAAE,MAAM,EAAE,SAAS,SAAI,EAAE,SAAS,CAAC,EAAE,MAAM;IAM5D,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,MAAM,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO;IAOrC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CACzC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StringValue = void 0;
4
+ class StringValue {
5
+ valueType = "String";
6
+ value;
7
+ minLength;
8
+ maxLength;
9
+ constructor(value, minLength = 0, maxLength) {
10
+ this.value = value;
11
+ this.minLength = minLength;
12
+ this.maxLength = maxLength;
13
+ }
14
+ get isValid() {
15
+ return this.value.length >= this.minLength && (this.maxLength ? this.value.length <= this.maxLength : true);
16
+ }
17
+ equals(valueObject) {
18
+ if (!(valueObject instanceof StringValue))
19
+ return false;
20
+ if (!this.isValid || !valueObject.isValid)
21
+ return false;
22
+ return this.value === valueObject.value;
23
+ }
24
+ }
25
+ exports.StringValue = StringValue;
26
+ //# sourceMappingURL=string-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-value.js","sourceRoot":"","sources":["../../src/value-objects/string-value.ts"],"names":[],"mappings":";;;AAEA,MAAsB,WAAW;IACtB,SAAS,GAAG,QAAQ,CAAC;IACrB,KAAK,CAAS;IACd,SAAS,CAAS;IAClB,SAAS,CAAqB;IAEvC,YAAY,KAAa,EAAE,SAAS,GAAG,CAAC,EAAE,SAAkB;QAC1D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9G,CAAC;IAED,MAAM,CAAC,WAAoB;QACzB,IAAI,CAAC,CAAC,WAAW,YAAY,WAAW,CAAC;YAAE,OAAO,KAAK,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAExD,OAAO,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK,CAAC;IAC1C,CAAC;CAGF;AAxBD,kCAwBC"}