@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,13 @@
1
+ import type { ValueObject } from "./";
2
+ type UUIDInput<Required extends boolean> = Required extends true ? string : string | undefined;
3
+ export declare abstract class UUIDValue<Required extends boolean = true> implements ValueObject {
4
+ readonly valueType = "UUID";
5
+ readonly value: UUIDInput<Required>;
6
+ private readonly optional;
7
+ constructor(value: UUIDInput<Required>, optional?: boolean);
8
+ get isValid(): boolean;
9
+ equals(valueObject: unknown): boolean;
10
+ abstract readonly attributeName: string;
11
+ }
12
+ export {};
13
+ //# sourceMappingURL=uuid-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid-value.d.ts","sourceRoot":"","sources":["../../src/value-objects/uuid-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAItC,KAAK,SAAS,CAAC,QAAQ,SAAS,OAAO,IACrC,QAAQ,SAAS,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAEtD,8BAAsB,SAAS,CAAC,QAAQ,SAAS,OAAO,GAAG,IAAI,CAAE,YAAW,WAAW;IACrF,QAAQ,CAAC,SAAS,UAAU;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;gBAEvB,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAE,OAAe;IAKjE,IAAI,OAAO,IAAI,OAAO,CAMrB;IAED,MAAM,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO;IAOrC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CACzC"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UUIDValue = void 0;
4
+ const REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
5
+ class UUIDValue {
6
+ valueType = "UUID";
7
+ value;
8
+ optional;
9
+ constructor(value, optional = false) {
10
+ this.value = value;
11
+ this.optional = optional;
12
+ }
13
+ get isValid() {
14
+ return this.optional
15
+ ? this.value
16
+ ? REGEX.test(this.value)
17
+ : true
18
+ : REGEX.test(this.value);
19
+ }
20
+ equals(valueObject) {
21
+ if (!(valueObject instanceof UUIDValue))
22
+ return false;
23
+ if (!this.isValid || !valueObject.isValid)
24
+ return false;
25
+ return this.value === valueObject.value;
26
+ }
27
+ }
28
+ exports.UUIDValue = UUIDValue;
29
+ //# sourceMappingURL=uuid-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid-value.js","sourceRoot":"","sources":["../../src/value-objects/uuid-value.ts"],"names":[],"mappings":";;;AAEA,MAAM,KAAK,GAAG,4EAA4E,CAAC;AAK3F,MAAsB,SAAS;IACpB,SAAS,GAAG,MAAM,CAAC;IACnB,KAAK,CAAsB;IACnB,QAAQ,CAAU;IAEnC,YAAY,KAA0B,EAAE,WAAoB,KAAK;QAC/D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ;YACZ,CAAC,CAAC,IAAI,CAAC,KAAK;gBACV,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBACxB,CAAC,CAAC,IAAI;YACR,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC;IACpC,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;AA1BD,8BA0BC"}
@@ -0,0 +1,8 @@
1
+ export interface ValueObject {
2
+ readonly value: unknown;
3
+ readonly valueType: string;
4
+ readonly attributeName: string;
5
+ isValid: boolean;
6
+ equals(valueObject: unknown): boolean;
7
+ }
8
+ //# sourceMappingURL=value-object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value-object.d.ts","sourceRoot":"","sources":["../../src/value-objects/value-object.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC;CACvC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=value-object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value-object.js","sourceRoot":"","sources":["../../src/value-objects/value-object.ts"],"names":[],"mappings":""}
package/jest.config.js CHANGED
@@ -1,5 +1,5 @@
1
- // jest.config.js
2
- const { defaults: tsjPreset } = require("ts-jest/presets");
1
+ // jest.config.js
2
+ const { defaults: tsjPreset } = require("ts-jest/presets");
3
3
  const { transform } = require("typescript");
4
4
 
5
5
  module.exports = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schorts/shared-kernel",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "A modular, type-safe foundation for building expressive, maintainable applications. This package provides core abstractions for domain modeling, HTTP integration, authentication, state management, and more — designed to be framework-agnostic and highly extensible.",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -13,6 +13,10 @@
13
13
  "import": "./dist/criteria/index.js",
14
14
  "types": "./dist/criteria/index.d.ts"
15
15
  },
16
+ "./dao": {
17
+ "import": "./dist/dao/index.js",
18
+ "types": "./dist/dao/index.d.ts"
19
+ },
16
20
  "./domain-events": {
17
21
  "import": "./dist/domain-events/index.js",
18
22
  "types": "./dist/domain-events/index.d.ts"
@@ -41,6 +45,10 @@
41
45
  "import": "./dist/models/index.js",
42
46
  "types": "./dist/models/index.d.ts"
43
47
  },
48
+ "./unit-of-work": {
49
+ "import": "./dist/unit-of-work/index.js",
50
+ "types": "./dist/unit-of-work/index.d.ts"
51
+ },
44
52
  "./utils": {
45
53
  "import": "./dist/utils/index.js",
46
54
  "types": "./dist/utils/index.d.ts"
@@ -81,6 +89,7 @@
81
89
  "shared-kernel",
82
90
  "auth",
83
91
  "jsonapi",
92
+ "dao",
84
93
  "kernel",
85
94
  "value-objects",
86
95
  "criteria",
package/src/dao/dao.ts ADDED
@@ -0,0 +1,13 @@
1
+ import { BaseModel } from "../models";
2
+ import { Entity as BaseEntity } from "../entities";
3
+ import { Criteria } from "../criteria";
4
+
5
+ export interface DAO<Model extends BaseModel, Entity extends BaseEntity<Model>> {
6
+ getAll(): Promise<Entity[]>;
7
+ findByID(id: Entity["id"]["value"]): Promise<Entity | null>;
8
+ findOneBy(criteria: Criteria): Promise<Entity | null>;
9
+ search(criteria: Criteria): Promise<Entity[]>;
10
+ create(entity: Entity): Promise<Entity>;
11
+ update(entity: Entity): Promise<Entity>;
12
+ delete(entity: Entity): Promise<Entity>;
13
+ }
@@ -0,0 +1 @@
1
+ export type { DAO } from "./dao";
@@ -0,0 +1 @@
1
+ export type { UnitOfWork } from "./unit-of-work";
@@ -0,0 +1,5 @@
1
+ export interface UnitOfWork {
2
+ begin(): Promise<void>;
3
+ commit(): Promise<void>;
4
+ rollback(): Promise<void>;
5
+ }