@schorts/shared-kernel 1.2.1 โ†’ 1.2.3

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,22 @@ 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.2.3] - 2025-10-03
9
+
10
+ ### Changed
11
+
12
+ - Added to constructor of the `FetchHTTPProvider` the possibility to receive a function to fetch the `Authorization`.
13
+
14
+ ## [1.2.2] - 2025-10-03
15
+
16
+ ### Added
17
+
18
+ - Added implementation of the state manager from the session storage.
19
+
20
+ ### Changed
21
+
22
+ - `FetchHTTPProvider` now supports the `headers` options.
23
+
8
24
  ## [1.2.1] - 2025-10-03
9
25
 
10
26
  ### Changed
package/README.md CHANGED
@@ -58,6 +58,7 @@ Translation keys are centralized in registries for discoverability and tooling,
58
58
  ### ๐Ÿง  State Manager
59
59
 
60
60
  - **StateManager:** Abstract reactive state manager with listener support.
61
+ - **SessionStorageStateManager:** Concrete implementation using session storage.
61
62
 
62
63
  ### ๐Ÿงช Value Objects
63
64
 
@@ -4,6 +4,12 @@ exports.FetchHTTPProvider = void 0;
4
4
  const exceptions_1 = require("./exceptions");
5
5
  class FetchHTTPProvider {
6
6
  ongoingRequests = new Map();
7
+ init;
8
+ getAuthorization;
9
+ constructor(getAuthorization, init) {
10
+ this.getAuthorization = getAuthorization;
11
+ this.init = init;
12
+ }
7
13
  get(url) {
8
14
  return this.request("GET", url);
9
15
  }
@@ -31,8 +37,14 @@ class FetchHTTPProvider {
31
37
  if (body !== undefined) {
32
38
  init.headers = { "Content-Type": "application/json" };
33
39
  }
40
+ if (this.getAuthorization) {
41
+ init.headers = {
42
+ ...(init.headers || {}),
43
+ Authorization: this.getAuthorization(),
44
+ };
45
+ }
34
46
  const request = (async () => {
35
- const response = await fetch(url.href, init);
47
+ const response = await fetch(url.href, { ...init, ...(this.init || {}) });
36
48
  if (!response) {
37
49
  throw new exceptions_1.HTTPException("Fetch returned undefined", 0);
38
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-http-provider.js","sourceRoot":"","sources":["../../../src/http/fetch-http-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch-http-provider.js","sourceRoot":"","sources":["../../../src/http/fetch-http-provider.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StateManager = void 0;
3
+ exports.SessionStorageStateManager = exports.StateManager = void 0;
4
4
  var state_manager_1 = require("./state-manager");
5
5
  Object.defineProperty(exports, "StateManager", { enumerable: true, get: function () { return state_manager_1.StateManager; } });
6
+ var session_storage_state_manager_1 = require("./session-storage-state-manager");
7
+ Object.defineProperty(exports, "SessionStorageStateManager", { enumerable: true, get: function () { return session_storage_state_manager_1.SessionStorageStateManager; } });
6
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/state-manager/index.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAAtC,6GAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/state-manager/index.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,iFAA6E;AAApE,2IAAA,0BAA0B,OAAA"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SessionStorageStateManager = void 0;
4
+ const state_manager_1 = require("./state-manager");
5
+ class SessionStorageStateManager extends state_manager_1.StateManager {
6
+ constructor(initialState) {
7
+ super(initialState);
8
+ this.loadPersistedState();
9
+ }
10
+ loadPersistedState() {
11
+ const keys = Object.keys(this.state);
12
+ for (const key of keys) {
13
+ const storageKey = String(key);
14
+ const persistedValue = sessionStorage.getItem(storageKey);
15
+ this.state[key] = JSON.parse(persistedValue || "null");
16
+ }
17
+ }
18
+ persistValue(key, value) {
19
+ const storageKey = String(key);
20
+ sessionStorage.setItem(storageKey, JSON.stringify(value));
21
+ }
22
+ async getValue(key) {
23
+ return this.state[key];
24
+ }
25
+ async setValue(key, value) {
26
+ this.state = {
27
+ ...this.state,
28
+ [key]: value
29
+ };
30
+ this.persistValue(key, value);
31
+ this.notifyListeners();
32
+ }
33
+ async removeValue(key) {
34
+ const storageKey = String(key);
35
+ const { [key]: _, ...newState } = this.state;
36
+ this.state = newState;
37
+ sessionStorage.removeItem(storageKey);
38
+ this.notifyListeners();
39
+ }
40
+ }
41
+ exports.SessionStorageStateManager = SessionStorageStateManager;
42
+ //# sourceMappingURL=session-storage-state-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-storage-state-manager.js","sourceRoot":"","sources":["../../../src/state-manager/session-storage-state-manager.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAE/C,MAAa,0BACX,SAAQ,4BAAoB;IAE5B,YAAY,YAAoB;QAC9B,KAAK,CAAC,YAAY,CAAC,CAAC;QACpB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEO,kBAAkB;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAwB,CAAC;QAE5D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAEO,YAAY,CAA2B,GAAQ,EAAE,KAAkB;QACzE,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAE/B,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAEM,KAAK,CAAC,QAAQ,CAA2B,GAAQ;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,QAAQ,CAA2B,GAAQ,EAAE,KAAkB;QAC1E,IAAI,CAAC,KAAK,GAAG;YACX,GAAG,IAAI,CAAC,KAAK;YACb,CAAC,GAAG,CAAC,EAAE,KAAK;SACb,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,WAAW,CAA2B,GAAQ;QACzD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,QAAkB,CAAC;QAEhC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;CACF;AA9CD,gEA8CC"}
@@ -4,6 +4,12 @@ exports.FetchHTTPProvider = void 0;
4
4
  const exceptions_1 = require("./exceptions");
5
5
  class FetchHTTPProvider {
6
6
  ongoingRequests = new Map();
7
+ init;
8
+ getAuthorization;
9
+ constructor(getAuthorization, init) {
10
+ this.getAuthorization = getAuthorization;
11
+ this.init = init;
12
+ }
7
13
  get(url) {
8
14
  return this.request("GET", url);
9
15
  }
@@ -31,8 +37,14 @@ class FetchHTTPProvider {
31
37
  if (body !== undefined) {
32
38
  init.headers = { "Content-Type": "application/json" };
33
39
  }
40
+ if (this.getAuthorization) {
41
+ init.headers = {
42
+ ...(init.headers || {}),
43
+ Authorization: this.getAuthorization(),
44
+ };
45
+ }
34
46
  const request = (async () => {
35
- const response = await fetch(url.href, init);
47
+ const response = await fetch(url.href, { ...init, ...(this.init || {}) });
36
48
  if (!response) {
37
49
  throw new exceptions_1.HTTPException("Fetch returned undefined", 0);
38
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-http-provider.js","sourceRoot":"","sources":["../../../src/http/fetch-http-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch-http-provider.js","sourceRoot":"","sources":["../../../src/http/fetch-http-provider.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StateManager = void 0;
3
+ exports.SessionStorageStateManager = exports.StateManager = void 0;
4
4
  var state_manager_1 = require("./state-manager");
5
5
  Object.defineProperty(exports, "StateManager", { enumerable: true, get: function () { return state_manager_1.StateManager; } });
6
+ var session_storage_state_manager_1 = require("./session-storage-state-manager");
7
+ Object.defineProperty(exports, "SessionStorageStateManager", { enumerable: true, get: function () { return session_storage_state_manager_1.SessionStorageStateManager; } });
6
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/state-manager/index.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAAtC,6GAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/state-manager/index.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,iFAA6E;AAApE,2IAAA,0BAA0B,OAAA"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SessionStorageStateManager = void 0;
4
+ const state_manager_1 = require("./state-manager");
5
+ class SessionStorageStateManager extends state_manager_1.StateManager {
6
+ constructor(initialState) {
7
+ super(initialState);
8
+ this.loadPersistedState();
9
+ }
10
+ loadPersistedState() {
11
+ const keys = Object.keys(this.state);
12
+ for (const key of keys) {
13
+ const storageKey = String(key);
14
+ const persistedValue = sessionStorage.getItem(storageKey);
15
+ this.state[key] = JSON.parse(persistedValue || "null");
16
+ }
17
+ }
18
+ persistValue(key, value) {
19
+ const storageKey = String(key);
20
+ sessionStorage.setItem(storageKey, JSON.stringify(value));
21
+ }
22
+ async getValue(key) {
23
+ return this.state[key];
24
+ }
25
+ async setValue(key, value) {
26
+ this.state = {
27
+ ...this.state,
28
+ [key]: value
29
+ };
30
+ this.persistValue(key, value);
31
+ this.notifyListeners();
32
+ }
33
+ async removeValue(key) {
34
+ const storageKey = String(key);
35
+ const { [key]: _, ...newState } = this.state;
36
+ this.state = newState;
37
+ sessionStorage.removeItem(storageKey);
38
+ this.notifyListeners();
39
+ }
40
+ }
41
+ exports.SessionStorageStateManager = SessionStorageStateManager;
42
+ //# sourceMappingURL=session-storage-state-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-storage-state-manager.js","sourceRoot":"","sources":["../../../src/state-manager/session-storage-state-manager.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAE/C,MAAa,0BACX,SAAQ,4BAAoB;IAE5B,YAAY,YAAoB;QAC9B,KAAK,CAAC,YAAY,CAAC,CAAC;QACpB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEO,kBAAkB;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAwB,CAAC;QAE5D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAEO,YAAY,CAA2B,GAAQ,EAAE,KAAkB;QACzE,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAE/B,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAEM,KAAK,CAAC,QAAQ,CAA2B,GAAQ;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,QAAQ,CAA2B,GAAQ,EAAE,KAAkB;QAC1E,IAAI,CAAC,KAAK,GAAG;YACX,GAAG,IAAI,CAAC,KAAK;YACb,CAAC,GAAG,CAAC,EAAE,KAAK;SACb,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,WAAW,CAA2B,GAAQ;QACzD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,QAAkB,CAAC;QAEhC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;CACF;AA9CD,gEA8CC"}
@@ -1,6 +1,9 @@
1
1
  import type { HTTPProvider } from "./http-provider";
2
2
  export declare class FetchHTTPProvider implements HTTPProvider {
3
3
  private ongoingRequests;
4
+ private readonly init;
5
+ private readonly getAuthorization;
6
+ constructor(getAuthorization?: () => string, init?: Pick<RequestInit, "credentials" | "headers">);
4
7
  get<ResponseType>(url: URL): Promise<ResponseType>;
5
8
  post<RequestBodySchema, ResponseType>(url: URL, body: RequestBodySchema): Promise<ResponseType>;
6
9
  put<RequestBodySchema, ResponseType>(url: URL, body: RequestBodySchema): Promise<ResponseType>;
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-http-provider.d.ts","sourceRoot":"","sources":["../../../src/http/fetch-http-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpD,qBAAa,iBAAkB,YAAW,YAAY;IACpD,OAAO,CAAC,eAAe,CAAmC;IAE1D,GAAG,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;IAIlD,IAAI,CAAC,iBAAiB,EAAE,YAAY,EAClC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,YAAY,CAAC;IAIxB,GAAG,CAAC,iBAAiB,EAAE,YAAY,EACjC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,YAAY,CAAC;IAIxB,KAAK,CAAC,iBAAiB,EAAE,YAAY,EACnC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,YAAY,CAAC;IAIxB,MAAM,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;YAIvC,OAAO;IAkErB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,UAAU;CAWnB"}
1
+ {"version":3,"file":"fetch-http-provider.d.ts","sourceRoot":"","sources":["../../../src/http/fetch-http-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpD,qBAAa,iBAAkB,YAAW,YAAY;IACpD,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2D;IAChF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6B;gBAElD,gBAAgB,CAAC,EAAE,MAAM,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,SAAS,CAAC;IAKhG,GAAG,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;IAIlD,IAAI,CAAC,iBAAiB,EAAE,YAAY,EAClC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,YAAY,CAAC;IAIxB,GAAG,CAAC,iBAAiB,EAAE,YAAY,EACjC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,YAAY,CAAC;IAIxB,KAAK,CAAC,iBAAiB,EAAE,YAAY,EACnC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,YAAY,CAAC;IAIxB,MAAM,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;YAIvC,OAAO;IAyErB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,UAAU;CAWnB"}
@@ -1,2 +1,3 @@
1
1
  export { StateManager } from "./state-manager";
2
+ export { SessionStorageStateManager } from "./session-storage-state-manager";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/state-manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { StateManager } from './state-manager';
2
+ export declare class SessionStorageStateManager<Schema extends Record<string, any>> extends StateManager<Schema> {
3
+ constructor(initialState: Schema);
4
+ private loadPersistedState;
5
+ private persistValue;
6
+ getValue<Key extends keyof Schema>(key: Key): Promise<Schema[Key]>;
7
+ setValue<Key extends keyof Schema>(key: Key, value: Schema[Key]): Promise<void>;
8
+ removeValue<Key extends keyof Schema>(key: Key): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=session-storage-state-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-storage-state-manager.d.ts","sourceRoot":"","sources":["../../../src/state-manager/session-storage-state-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBAAa,0BAA0B,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CACxE,SAAQ,YAAY,CAAC,MAAM,CAAC;gBAEhB,YAAY,EAAE,MAAM;IAKhC,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,YAAY;IAMP,QAAQ,CAAC,GAAG,SAAS,MAAM,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAIlE,QAAQ,CAAC,GAAG,SAAS,MAAM,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAU/E,WAAW,CAAC,GAAG,SAAS,MAAM,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAQ5E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schorts/shared-kernel",
3
- "version": "1.2.1",
3
+ "version": "1.2.3",
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",
@@ -3,9 +3,11 @@ import { HTTPException } from "./exceptions";
3
3
 
4
4
  export class FetchHTTPProvider implements HTTPProvider {
5
5
  private ongoingRequests = new Map<string, Promise<any>>();
6
- private readonly init: Pick<RequestInit, "credentials">;
6
+ private readonly init: Pick<RequestInit, "credentials" | "headers"> | undefined;
7
+ private readonly getAuthorization: (() => string) | undefined;
7
8
 
8
- constructor(init: Pick<RequestInit, "credentials">) {
9
+ constructor(getAuthorization?: () => string, init?: Pick<RequestInit, "credentials" | "headers">) {
10
+ this.getAuthorization = getAuthorization;
9
11
  this.init = init;
10
12
  }
11
13
 
@@ -58,8 +60,15 @@ export class FetchHTTPProvider implements HTTPProvider {
58
60
  init.headers = { "Content-Type": "application/json" };
59
61
  }
60
62
 
63
+ if (this.getAuthorization) {
64
+ init.headers = {
65
+ ...(init.headers || {}),
66
+ Authorization: this.getAuthorization(),
67
+ };
68
+ }
69
+
61
70
  const request = (async () => {
62
- const response = await fetch(url.href, { ...init, ...this.init });
71
+ const response = await fetch(url.href, { ...init, ...(this.init || {}) });
63
72
 
64
73
  if (!response) {
65
74
  throw new HTTPException("Fetch returned undefined", 0);
@@ -1 +1,2 @@
1
1
  export { StateManager } from "./state-manager";
2
+ export { SessionStorageStateManager } from "./session-storage-state-manager";
@@ -0,0 +1,49 @@
1
+ import { StateManager } from './state-manager';
2
+
3
+ export class SessionStorageStateManager<Schema extends Record<string, any>>
4
+ extends StateManager<Schema> {
5
+
6
+ constructor(initialState: Schema) {
7
+ super(initialState);
8
+ this.loadPersistedState();
9
+ }
10
+
11
+ private loadPersistedState(): void {
12
+ const keys = Object.keys(this.state) as Array<keyof Schema>;
13
+
14
+ for (const key of keys) {
15
+ const storageKey = String(key);
16
+ const persistedValue = sessionStorage.getItem(storageKey);
17
+ this.state[key] = JSON.parse(persistedValue || "null");
18
+ }
19
+ }
20
+
21
+ private persistValue<Key extends keyof Schema>(key: Key, value: Schema[Key]): void {
22
+ const storageKey = String(key);
23
+
24
+ sessionStorage.setItem(storageKey, JSON.stringify(value));
25
+ }
26
+
27
+ public async getValue<Key extends keyof Schema>(key: Key): Promise<Schema[Key]> {
28
+ return this.state[key];
29
+ }
30
+
31
+ public async setValue<Key extends keyof Schema>(key: Key, value: Schema[Key]): Promise<void> {
32
+ this.state = {
33
+ ...this.state,
34
+ [key]: value
35
+ };
36
+
37
+ this.persistValue(key, value);
38
+ this.notifyListeners();
39
+ }
40
+
41
+ public async removeValue<Key extends keyof Schema>(key: Key): Promise<void> {
42
+ const storageKey = String(key);
43
+ const { [key]: _, ...newState } = this.state;
44
+ this.state = newState as Schema;
45
+
46
+ sessionStorage.removeItem(storageKey);
47
+ this.notifyListeners();
48
+ }
49
+ }