@schorts/shared-kernel 1.2.3 → 1.3.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.
package/CHANGELOG CHANGED
@@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.3.0] - 2025-10-04
9
+
10
+ ### Added
11
+
12
+ - Added `Result` to have more controlled results in application services.
13
+
14
+ ### Fixed
15
+
16
+ - Added missed exports for `i18n` module.
17
+
8
18
  ## [1.2.3] - 2025-10-03
9
19
 
10
20
  ### Changed
package/README.md CHANGED
@@ -50,6 +50,10 @@ Translation keys are centralized in registries for discoverability and tooling,
50
50
 
51
51
  - **BaseModel:** Base class for serializable, type-safe models.
52
52
 
53
+ ### 🎯 Result
54
+
55
+ - **Result:** Type-safe wrapper for success/failure outcomes. Encapsulates either a value or an error, enforcing disciplined error handling without exceptions. Includes static factories (`success`, `error`), accessors (`getValue`, `getError`), and guards (`isSuccess`, `isFailure`).
56
+
53
57
  ### 🛠 Persistence
54
58
 
55
59
  - **DAO:** Generic interface defining data access operations for domain entities.
package/dist/cjs/index.js CHANGED
@@ -21,9 +21,11 @@ __exportStar(require("./domain-events"), exports);
21
21
  __exportStar(require("./entities"), exports);
22
22
  __exportStar(require("./formatters"), exports);
23
23
  __exportStar(require("./http"), exports);
24
+ __exportStar(require("./i18n"), exports);
24
25
  __exportStar(require("./json-api"), exports);
25
26
  __exportStar(require("./messages"), exports);
26
27
  __exportStar(require("./models"), exports);
28
+ __exportStar(require("./result"), exports);
27
29
  __exportStar(require("./state-manager"), exports);
28
30
  __exportStar(require("./unit-of-work"), exports);
29
31
  __exportStar(require("./utils"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,6CAA2B;AAC3B,wCAAsB;AACtB,kDAAgC;AAChC,6CAA2B;AAC3B,+CAA6B;AAC7B,yCAAuB;AACvB,6CAA2B;AAC3B,6CAA2B;AAC3B,2CAAyB;AACzB,kDAAgC;AAChC,iDAA+B;AAC/B,0CAAwB;AACxB,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,6CAA2B;AAC3B,wCAAsB;AACtB,kDAAgC;AAChC,6CAA2B;AAC3B,+CAA6B;AAC7B,yCAAuB;AACvB,yCAAuB;AACvB,6CAA2B;AAC3B,6CAA2B;AAC3B,2CAAyB;AACzB,2CAAyB;AACzB,kDAAgC;AAChC,iDAA+B;AAC/B,0CAAwB;AACxB,kDAAgC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Result = void 0;
4
+ var result_1 = require("./result");
5
+ Object.defineProperty(exports, "Result", { enumerable: true, get: function () { return result_1.Result; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/result/index.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAAzB,gGAAA,MAAM,OAAA"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Result = void 0;
4
+ class Result {
5
+ success;
6
+ value;
7
+ error;
8
+ constructor(success, value, error) {
9
+ this.success = success;
10
+ this.value = value;
11
+ this.error = error;
12
+ }
13
+ static success(value) {
14
+ return new Result(true, value);
15
+ }
16
+ static error(error) {
17
+ return new Result(false, undefined, error);
18
+ }
19
+ isSuccess() {
20
+ return this.success;
21
+ }
22
+ isFailure() {
23
+ return !this.isSuccess();
24
+ }
25
+ getValue() {
26
+ return this.value;
27
+ }
28
+ getError() {
29
+ return this.error;
30
+ }
31
+ }
32
+ exports.Result = Result;
33
+ //# sourceMappingURL=result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../../src/result/result.ts"],"names":[],"mappings":";;;AAAA,MAAa,MAAM;IACA,OAAO,CAAU;IACjB,KAAK,CAAmB;IACxB,KAAK,CAAoB;IAE1C,YAAoB,OAAgB,EAAE,KAAY,EAAE,KAAa;QAC/D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAAO,CAAO,KAAW;QAC9B,OAAO,IAAI,MAAM,CAAO,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,KAAK,CAAO,KAAY;QAC7B,OAAO,IAAI,MAAM,CAAO,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,SAAS;QACP,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AAlCD,wBAkCC"}
package/dist/esm/index.js CHANGED
@@ -21,9 +21,11 @@ __exportStar(require("./domain-events"), exports);
21
21
  __exportStar(require("./entities"), exports);
22
22
  __exportStar(require("./formatters"), exports);
23
23
  __exportStar(require("./http"), exports);
24
+ __exportStar(require("./i18n"), exports);
24
25
  __exportStar(require("./json-api"), exports);
25
26
  __exportStar(require("./messages"), exports);
26
27
  __exportStar(require("./models"), exports);
28
+ __exportStar(require("./result"), exports);
27
29
  __exportStar(require("./state-manager"), exports);
28
30
  __exportStar(require("./unit-of-work"), exports);
29
31
  __exportStar(require("./utils"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,6CAA2B;AAC3B,wCAAsB;AACtB,kDAAgC;AAChC,6CAA2B;AAC3B,+CAA6B;AAC7B,yCAAuB;AACvB,6CAA2B;AAC3B,6CAA2B;AAC3B,2CAAyB;AACzB,kDAAgC;AAChC,iDAA+B;AAC/B,0CAAwB;AACxB,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,6CAA2B;AAC3B,wCAAsB;AACtB,kDAAgC;AAChC,6CAA2B;AAC3B,+CAA6B;AAC7B,yCAAuB;AACvB,yCAAuB;AACvB,6CAA2B;AAC3B,6CAA2B;AAC3B,2CAAyB;AACzB,2CAAyB;AACzB,kDAAgC;AAChC,iDAA+B;AAC/B,0CAAwB;AACxB,kDAAgC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Result = void 0;
4
+ var result_1 = require("./result");
5
+ Object.defineProperty(exports, "Result", { enumerable: true, get: function () { return result_1.Result; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/result/index.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAAzB,gGAAA,MAAM,OAAA"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Result = void 0;
4
+ class Result {
5
+ success;
6
+ value;
7
+ error;
8
+ constructor(success, value, error) {
9
+ this.success = success;
10
+ this.value = value;
11
+ this.error = error;
12
+ }
13
+ static success(value) {
14
+ return new Result(true, value);
15
+ }
16
+ static error(error) {
17
+ return new Result(false, undefined, error);
18
+ }
19
+ isSuccess() {
20
+ return this.success;
21
+ }
22
+ isFailure() {
23
+ return !this.isSuccess();
24
+ }
25
+ getValue() {
26
+ return this.value;
27
+ }
28
+ getError() {
29
+ return this.error;
30
+ }
31
+ }
32
+ exports.Result = Result;
33
+ //# sourceMappingURL=result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../../src/result/result.ts"],"names":[],"mappings":";;;AAAA,MAAa,MAAM;IACA,OAAO,CAAU;IACjB,KAAK,CAAmB;IACxB,KAAK,CAAoB;IAE1C,YAAoB,OAAgB,EAAE,KAAY,EAAE,KAAa;QAC/D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAAO,CAAO,KAAW;QAC9B,OAAO,IAAI,MAAM,CAAO,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,KAAK,CAAO,KAAY;QAC7B,OAAO,IAAI,MAAM,CAAO,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,SAAS;QACP,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AAlCD,wBAkCC"}
@@ -5,9 +5,11 @@ export * from "./domain-events";
5
5
  export * from "./entities";
6
6
  export * from "./formatters";
7
7
  export * from "./http";
8
+ export * from "./i18n";
8
9
  export * from "./json-api";
9
10
  export * from "./messages";
10
11
  export * from "./models";
12
+ export * from "./result";
11
13
  export * from "./state-manager";
12
14
  export * from "./unit-of-work";
13
15
  export * from "./utils";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Result } from "./result";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/result/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare class Result<Type> {
2
+ private readonly success;
3
+ private readonly value;
4
+ private readonly error;
5
+ private constructor();
6
+ static success<Type>(value: Type): Result<Type>;
7
+ static error<Type>(error: Error): Result<Type>;
8
+ isSuccess(): boolean;
9
+ isFailure(): boolean;
10
+ getValue(): Type | undefined;
11
+ getError(): Error | undefined;
12
+ }
13
+ //# sourceMappingURL=result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../../src/result/result.ts"],"names":[],"mappings":"AAAA,qBAAa,MAAM,CAAC,IAAI;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAE1C,OAAO;IAMP,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAI/C,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;IAI9C,SAAS,IAAI,OAAO;IAIpB,SAAS,IAAI,OAAO;IAIpB,QAAQ,IAAI,IAAI,GAAG,SAAS;IAI5B,QAAQ,IAAI,KAAK,GAAG,SAAS;CAG9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schorts/shared-kernel",
3
- "version": "1.2.3",
3
+ "version": "1.3.0",
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/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -46,6 +46,11 @@
46
46
  "require": "./dist/cjs/http/index.js",
47
47
  "types": "./dist/types/http/index.d.ts"
48
48
  },
49
+ "./i18n": {
50
+ "import": "./dist/esm/i18n/index.js",
51
+ "require": "./dist/cjs/i18n/index.js",
52
+ "types": "./dist/types/i18n/index.d.ts"
53
+ },
49
54
  "./json-api": {
50
55
  "import": "./dist/esm/json-api/index.js",
51
56
  "require": "./dist/cjs/json-api/index.js",
@@ -61,6 +66,16 @@
61
66
  "require": "./dist/cjs/models/index.js",
62
67
  "types": "./dist/types/models/index.d.ts"
63
68
  },
69
+ "./result": {
70
+ "import": "./dist/esm/result/index.js",
71
+ "require": "./dist/cjs/result/index.js",
72
+ "types": "./dist/types/result/index.d.ts"
73
+ },
74
+ "./state-manager": {
75
+ "import": "./dist/esm/state-manager/index.js",
76
+ "require": "./dist/cjs/state-manager/index.js",
77
+ "types": "./dist/types/state-manager/index.d.ts"
78
+ },
64
79
  "./unit-of-work": {
65
80
  "import": "./dist/esm/unit-of-work/index.js",
66
81
  "require": "./dist/cjs/unit-of-work/index.js",
@@ -71,11 +86,6 @@
71
86
  "require": "./dist/cjs/utils/index.js",
72
87
  "types": "./dist/types/utils/index.d.ts"
73
88
  },
74
- "./state-manager": {
75
- "import": "./dist/esm/state-manager/index.js",
76
- "require": "./dist/cjs/state-manager/index.js",
77
- "types": "./dist/types/state-manager/index.d.ts"
78
- },
79
89
  "./value-objects": {
80
90
  "import": "./dist/esm/value-objects/index.js",
81
91
  "require": "./dist/cjs/value-objects/index.js",
package/src/index.ts CHANGED
@@ -5,9 +5,11 @@ export * from "./domain-events";
5
5
  export * from "./entities";
6
6
  export * from "./formatters";
7
7
  export * from "./http";
8
+ export * from "./i18n";
8
9
  export * from "./json-api";
9
10
  export * from "./messages";
10
11
  export * from "./models";
12
+ export * from "./result";
11
13
  export * from "./state-manager";
12
14
  export * from "./unit-of-work";
13
15
  export * from "./utils";
@@ -0,0 +1 @@
1
+ export { Result } from "./result";
@@ -0,0 +1,35 @@
1
+ export class Result<Type> {
2
+ private readonly success: boolean;
3
+ private readonly value: Type | undefined;
4
+ private readonly error: Error | undefined;
5
+
6
+ private constructor(success: boolean, value?: Type, error?: Error) {
7
+ this.success = success;
8
+ this.value = value;
9
+ this.error = error;
10
+ }
11
+
12
+ static success<Type>(value: Type): Result<Type> {
13
+ return new Result<Type>(true, value);
14
+ }
15
+
16
+ static error<Type>(error: Error): Result<Type> {
17
+ return new Result<Type>(false, undefined, error);
18
+ }
19
+
20
+ isSuccess(): boolean {
21
+ return this.success;
22
+ }
23
+
24
+ isFailure(): boolean {
25
+ return !this.isSuccess();
26
+ }
27
+
28
+ getValue(): Type | undefined {
29
+ return this.value;
30
+ }
31
+
32
+ getError(): Error | undefined {
33
+ return this.error;
34
+ }
35
+ }