@common-stack/client-core 8.5.1-alpha.4 → 8.6.1-alpha.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.
@@ -1,14 +1,12 @@
1
1
  import { Container, interfaces } from 'inversify';
2
2
  export type RegisterScopedDependenciesAction = (container: Container) => void;
3
3
  export declare class ScopedContainer {
4
- private static _dependencyRegistrations;
5
- private static _globalContainer;
6
- private static readonly _containerInstances;
7
4
  /**
8
5
  * Options object to use when creating a new container for a
9
6
  * scope ID.
10
7
  */
11
- static scopedContainerOptions: interfaces.ContainerOptions;
8
+ static get scopedContainerOptions(): interfaces.ContainerOptions;
9
+ static set scopedContainerOptions(value: interfaces.ContainerOptions);
12
10
  /**
13
11
  * A function to register global dependencies.
14
12
  * This creates a global container instance, which enables truly
@@ -1,14 +1,54 @@
1
1
  import {Container}from'inversify';/* eslint-disable no-underscore-dangle */
2
2
  const DEFAULT_SCOPE_ID = '__default__';
3
+ /**
4
+ * Shared state backed by globalThis.
5
+ *
6
+ * Bundlers like Vite can create separate module instances when the same class is imported
7
+ * via both a barrel export (`@common-stack/client-core`) and a deep path
8
+ * (`@common-stack/client-core/lib/connector/ScopedContainer.js`). Each module copy gets
9
+ * its own static class properties, so `registerGlobalDependencies()` writes to one
10
+ * instance while `ScopedContainer.for()` reads from another — causing
11
+ * "No matching bindings found for serviceIdentifier: Symbol(Logger)" errors.
12
+ *
13
+ * To protect against this, all mutable state is stored on globalThis so every copy
14
+ * of ScopedContainer (regardless of how many module instances the bundler creates)
15
+ * shares the same containers, registrations, and global parent.
16
+ *
17
+ * IMPORTANT: Always import ScopedContainer from the barrel '@common-stack/client-core',
18
+ * never from '@common-stack/client-core/lib/connector/ScopedContainer.js'.
19
+ * See: https://vitejs.dev/guide/dep-pre-bundling#monorepos-and-linked-dependencies
20
+ */
21
+ const globalRef = (typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : global);
22
+ const GLOBAL_KEY = '__SCOPED_CONTAINER_STATE__';
23
+ // Initialize shared state once; all subsequent module loads reuse it.
24
+ if (!globalRef[GLOBAL_KEY]) {
25
+ globalRef[GLOBAL_KEY] = {
26
+ dependencyRegistrations: [],
27
+ globalContainer: null,
28
+ containerInstances: {},
29
+ scopedContainerOptions: undefined,
30
+ };
31
+ }
32
+ else {
33
+ console.warn('[ScopedContainer] ⚠️ Duplicate ScopedContainer module detected! ' +
34
+ 'This usually means ScopedContainer is imported via both a barrel export and a deep path. ' +
35
+ "Always import from '@common-stack/client-core', never from " +
36
+ "'@common-stack/client-core/lib/connector/ScopedContainer.js'. " +
37
+ 'State is shared via globalThis so the app will still work, but please fix the import.');
38
+ }
39
+ // Convenience accessor — all static methods read/write through this.
40
+ const sharedState = globalRef[GLOBAL_KEY];
3
41
  class ScopedContainer {
4
- static _dependencyRegistrations = [];
5
- static _globalContainer;
6
- static _containerInstances = {};
7
42
  /**
8
43
  * Options object to use when creating a new container for a
9
44
  * scope ID.
10
45
  */
11
- static scopedContainerOptions;
46
+ static get scopedContainerOptions() {
47
+ return sharedState.scopedContainerOptions;
48
+ }
49
+ static set scopedContainerOptions(value) {
50
+ sharedState.scopedContainerOptions = value;
51
+ }
12
52
  /**
13
53
  * A function to register global dependencies.
14
54
  * This creates a global container instance, which enables truly
@@ -24,13 +64,13 @@ class ScopedContainer {
24
64
  * })();
25
65
  */
26
66
  static registerGlobalDependencies(fn) {
27
- if (!this._globalContainer) {
28
- this._globalContainer = new Container(this.scopedContainerOptions);
29
- fn(this._globalContainer);
30
- }
31
- else {
32
- throw new Error('Global dependencies have already been registered');
67
+ if (!sharedState.globalContainer) {
68
+ sharedState.globalContainer = new Container(sharedState.scopedContainerOptions);
69
+ fn(sharedState.globalContainer);
33
70
  }
71
+ // Note: If global container already exists, we silently skip.
72
+ // This prevents hydration mismatches when the client re-executes
73
+ // module code that calls registerGlobalDependencies during SSR/hydration.
34
74
  }
35
75
  /**
36
76
  * Returns a @see Container that is unique to the specified scope.
@@ -41,10 +81,10 @@ class ScopedContainer {
41
81
  * @returns A @see Container that is unique to the specified scope.
42
82
  */
43
83
  static for(scopeId = DEFAULT_SCOPE_ID) {
44
- let container = this._containerInstances[scopeId];
84
+ let container = sharedState.containerInstances[scopeId];
45
85
  if (!container) {
46
86
  container = this.makeNewContainer();
47
- this._containerInstances[scopeId] = container;
87
+ sharedState.containerInstances[scopeId] = container;
48
88
  }
49
89
  return container;
50
90
  }
@@ -54,7 +94,7 @@ class ScopedContainer {
54
94
  * @returns True if a container exists for the specified scope, false otherwise.
55
95
  */
56
96
  static isExist(scopeId = DEFAULT_SCOPE_ID) {
57
- return !!this._containerInstances[scopeId];
97
+ return !!sharedState.containerInstances[scopeId];
58
98
  }
59
99
  /**
60
100
  * Unbinds the @see Container (i.e. container.unbindAll()) and removes
@@ -62,17 +102,17 @@ class ScopedContainer {
62
102
  * @param scopeId
63
103
  */
64
104
  static remove(scopeId = DEFAULT_SCOPE_ID) {
65
- const container = this._containerInstances[scopeId];
105
+ const container = sharedState.containerInstances[scopeId];
66
106
  if (!container)
67
107
  return;
68
108
  container.unbindAll();
69
- delete this._containerInstances[scopeId];
109
+ delete sharedState.containerInstances[scopeId];
70
110
  }
71
111
  /**
72
112
  * Runs the @method remove method on all instances.
73
113
  */
74
114
  static removeAll() {
75
- Object.keys(this._containerInstances).forEach((key) => this.remove(key));
115
+ Object.keys(sharedState.containerInstances).forEach((key) => this.remove(key));
76
116
  }
77
117
  /**
78
118
  * Registers dependencies that should be tied to a scope,
@@ -93,20 +133,20 @@ class ScopedContainer {
93
133
  * })();
94
134
  */
95
135
  static registerScopedDependencies(fn) {
96
- this._dependencyRegistrations.push(fn);
136
+ sharedState.dependencyRegistrations.push(fn);
97
137
  return this;
98
138
  }
99
139
  static makeNewContainer() {
100
- const container = this.ensureGlobalContainer().createChild(this.scopedContainerOptions);
101
- this._dependencyRegistrations.forEach((action) => action(container));
140
+ const container = this.ensureGlobalContainer().createChild(sharedState.scopedContainerOptions);
141
+ sharedState.dependencyRegistrations.forEach((action) => action(container));
102
142
  return container;
103
143
  }
104
144
  static ensureGlobalContainer() {
105
- if (!this._globalContainer) {
106
- const container = new Container(this.scopedContainerOptions);
107
- this._globalContainer = container;
108
- this._dependencyRegistrations.forEach((action) => action(container));
145
+ if (!sharedState.globalContainer) {
146
+ const container = new Container(sharedState.scopedContainerOptions);
147
+ sharedState.globalContainer = container;
148
+ sharedState.dependencyRegistrations.forEach((action) => action(container));
109
149
  }
110
- return this._globalContainer;
150
+ return sharedState.globalContainer;
111
151
  }
112
152
  }export{ScopedContainer};//# sourceMappingURL=ScopedContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScopedContainer.js","sources":["../../src/connector/ScopedContainer.ts"],"sourcesContent":[null],"names":[],"mappings":"kCAAA;AAGA,MAAM,gBAAgB,GAAG,aAAa,CAAC;MAQ1B,eAAe,CAAA;AAChB,IAAA,OAAO,wBAAwB,GAAuC,EAAE,CAAC;IAEzE,OAAO,gBAAgB,CAAY;AAEnC,IAAA,OAAgB,mBAAmB,GAAyB,EAAE,CAAC;AAEvE;;;AAGG;IACH,OAAO,sBAAsB,CAA8B;AAE3D;;;;;;;;;;;;;AAaG;IACH,OAAO,0BAA0B,CAAC,EAAoC,EAAA;AAClE,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACnE,YAAA,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SAC7B;aAAM;AACH,YAAA,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;SACvE;KACJ;AAED;;;;;;;AAOG;AACH,IAAA,OAAO,GAAG,CAAC,OAAO,GAAG,gBAAgB,EAAA;QACjC,IAAI,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,EAAE;AACZ,YAAA,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACpC,YAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;SACjD;AACD,QAAA,OAAO,SAAS,CAAC;KACpB;AAED;;;;AAIG;AACH,IAAA,OAAO,OAAO,CAAC,OAAO,GAAG,gBAAgB,EAAA;QACrC,OAAO,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;KAC9C;AAED;;;;AAIG;AACH,IAAA,OAAO,MAAM,CAAC,OAAO,GAAG,gBAAgB,EAAA;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,SAAS,CAAC,SAAS,EAAE,CAAC;AACtB,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;KAC5C;AAED;;AAEG;AACH,IAAA,OAAO,SAAS,GAAA;QACZ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5E;AAED;;;;;;;;;;;;;;;;;AAiBG;IACH,OAAO,0BAA0B,CAAC,EAAoC,EAAA;AAClE,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,QAAA,OAAO,IAAI,CAAC;KACf;AAEO,IAAA,OAAO,gBAAgB,GAAA;AAC3B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACxF,QAAA,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AACrE,QAAA,OAAO,SAAS,CAAC;KACpB;AAEO,IAAA,OAAO,qBAAqB,GAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxB,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAC7D,YAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;AAClC,YAAA,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;SACxE;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAChC;"}
1
+ {"version":3,"file":"ScopedContainer.js","sources":["../../src/connector/ScopedContainer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { CdmLogger } from '@cdm-logger/core';
2
+ import type { Container } from 'inversify';
3
+ /**
4
+ * Attaches a **non-enumerable, lazy** `logger` getter to the given context object.
5
+ *
6
+ * Why non-enumerable?
7
+ * - `JSON.stringify()` skips non-enumerable properties → no serialization into HTML
8
+ * - Spread / `Object.keys()` won't copy it → no accidental inclusion in hydration payload
9
+ * - React won't see it when diffing props → no hydration mismatch
10
+ *
11
+ * The getter resolves the logger from the Inversify container on first access,
12
+ * prints a one-time deprecation warning, and returns the logger instance.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const context = { container, apolloClient };
17
+ * attachDeprecatedLogger(context, container);
18
+ * // Old code still works:
19
+ * context.logger.info('hello'); // ⚠️ prints deprecation warning once
20
+ * ```
21
+ *
22
+ * @param target – The context object to augment (mutated in place).
23
+ * @param container – The Inversify container that has `ClientTypes.Logger` bound.
24
+ */
25
+ export declare function attachDeprecatedLogger<T extends object>(target: T, container: Container): T & {
26
+ logger?: CdmLogger.ILogger;
27
+ };
@@ -0,0 +1,48 @@
1
+ import {ClientTypes}from'@common-stack/core';let _warnedOnce = false;
2
+ /**
3
+ * Attaches a **non-enumerable, lazy** `logger` getter to the given context object.
4
+ *
5
+ * Why non-enumerable?
6
+ * - `JSON.stringify()` skips non-enumerable properties → no serialization into HTML
7
+ * - Spread / `Object.keys()` won't copy it → no accidental inclusion in hydration payload
8
+ * - React won't see it when diffing props → no hydration mismatch
9
+ *
10
+ * The getter resolves the logger from the Inversify container on first access,
11
+ * prints a one-time deprecation warning, and returns the logger instance.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * const context = { container, apolloClient };
16
+ * attachDeprecatedLogger(context, container);
17
+ * // Old code still works:
18
+ * context.logger.info('hello'); // ⚠️ prints deprecation warning once
19
+ * ```
20
+ *
21
+ * @param target – The context object to augment (mutated in place).
22
+ * @param container – The Inversify container that has `ClientTypes.Logger` bound.
23
+ */
24
+ function attachDeprecatedLogger(target, container) {
25
+ let cachedLogger;
26
+ Object.defineProperty(target, 'logger', {
27
+ configurable: true,
28
+ enumerable: false, // ← invisible to JSON.stringify / Object.keys / spread
29
+ get() {
30
+ if (!_warnedOnce) {
31
+ _warnedOnce = true;
32
+ // eslint-disable-next-line no-console
33
+ console.warn('[DEPRECATED] Accessing "logger" from context/clientService is deprecated and will be ' +
34
+ 'removed in a future release. Use container.get(ClientTypes.Logger) instead.');
35
+ }
36
+ if (!cachedLogger) {
37
+ try {
38
+ cachedLogger = container.get(ClientTypes.Logger);
39
+ }
40
+ catch {
41
+ // Logger not yet bound – return undefined
42
+ }
43
+ }
44
+ return cachedLogger;
45
+ },
46
+ });
47
+ return target;
48
+ }export{attachDeprecatedLogger};//# sourceMappingURL=attachDeprecatedLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachDeprecatedLogger.js","sources":["../../src/helpers/attachDeprecatedLogger.ts"],"sourcesContent":[null],"names":[],"mappings":"6CAIA,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;AAqBG;AACa,SAAA,sBAAsB,CAClC,MAAS,EACT,SAAoB,EAAA;AAEpB,IAAA,IAAI,YAA2C,CAAC;AAEhD,IAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE;AACpC,QAAA,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,KAAK;QACjB,GAAG,GAAA;YACC,IAAI,CAAC,WAAW,EAAE;gBACd,WAAW,GAAG,IAAI,CAAC;;gBAEnB,OAAO,CAAC,IAAI,CACR,uFAAuF;AACnF,oBAAA,6EAA6E,CACpF,CAAC;aACL;YACD,IAAI,CAAC,YAAY,EAAE;AACf,gBAAA,IAAI;oBACA,YAAY,GAAG,SAAS,CAAC,GAAG,CAAoB,WAAW,CAAC,MAAM,CAAC,CAAC;iBACvE;AAAC,gBAAA,MAAM;;iBAEP;aACJ;AACD,YAAA,OAAO,YAAY,CAAC;SACvB;AACJ,KAAA,CAAC,CAAC;AAEH,IAAA,OAAO,MAA4C,CAAC;AACxD"}
@@ -1 +1,2 @@
1
1
  export * from './apollo-client-test-helper';
2
+ export * from './attachDeprecatedLogger';
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- export{logger}from'./logger/logger.js';export{AbstractFeature,featureCatalog}from'./connector/AbstractConnector.js';export{ScopedContainer}from'./connector/ScopedContainer.js';export{REDUX_PERSIST_KEY}from'./constants/constants.js';export{apolloClientHelper}from'./helpers/apollo-client-test-helper.js';export{StateMachineRegistry,stateMachineRegistry}from'./xstate/StateMachineRegistry.js';export{ClientTypes,ElectronTypes}from'@common-stack/core';//# sourceMappingURL=index.js.map
1
+ export{logger}from'./logger/logger.js';export{AbstractFeature,featureCatalog}from'./connector/AbstractConnector.js';export{ScopedContainer}from'./connector/ScopedContainer.js';export{REDUX_PERSIST_KEY}from'./constants/constants.js';export{apolloClientHelper}from'./helpers/apollo-client-test-helper.js';export{attachDeprecatedLogger}from'./helpers/attachDeprecatedLogger.js';export{StateMachineRegistry,stateMachineRegistry}from'./xstate/StateMachineRegistry.js';export{ClientTypes,ElectronTypes}from'@common-stack/core';//# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@common-stack/client-core",
3
- "version": "8.5.1-alpha.4",
3
+ "version": "8.6.1-alpha.0",
4
4
  "description": "common core for higher packages to depend on",
5
5
  "license": "UNLICENSED",
6
6
  "author": "CDMBase LLC",
@@ -34,7 +34,7 @@
34
34
  "publishConfig": {
35
35
  "access": "public"
36
36
  },
37
- "gitHead": "c996b74a8a8a03181b38ecea628e4c2a37488ff6",
37
+ "gitHead": "1e6e8a053e94e4f5c54d7364d73395127f8b843a",
38
38
  "typescript": {
39
39
  "definition": "lib/index.d.ts"
40
40
  }