@memberjunction/global 4.2.0 → 4.3.1

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 (34) hide show
  1. package/dist/BaseSingleton.js +1 -1
  2. package/dist/BaseSingleton.js.map +1 -1
  3. package/dist/ClassFactory.d.ts +1 -1
  4. package/dist/ClassFactory.d.ts.map +1 -1
  5. package/dist/ClassFactory.js +2 -2
  6. package/dist/ClassFactory.js.map +1 -1
  7. package/dist/ClassUtils.d.ts.map +1 -1
  8. package/dist/ClassUtils.js +8 -12
  9. package/dist/ClassUtils.js.map +1 -1
  10. package/dist/RegisterClass.d.ts +1 -1
  11. package/dist/RegisterClass.d.ts.map +1 -1
  12. package/dist/RegisterClass.js +2 -2
  13. package/dist/RegisterClass.js.map +1 -1
  14. package/dist/__tests__/ClassFactory.test.d.ts +2 -0
  15. package/dist/__tests__/ClassFactory.test.d.ts.map +1 -0
  16. package/dist/__tests__/ClassFactory.test.js +333 -0
  17. package/dist/__tests__/ClassFactory.test.js.map +1 -0
  18. package/dist/__tests__/ClassUtils.test.d.ts +2 -0
  19. package/dist/__tests__/ClassUtils.test.d.ts.map +1 -0
  20. package/dist/__tests__/ClassUtils.test.js +241 -0
  21. package/dist/__tests__/ClassUtils.test.js.map +1 -0
  22. package/dist/__tests__/MJGlobal.test.d.ts +2 -0
  23. package/dist/__tests__/MJGlobal.test.d.ts.map +1 -0
  24. package/dist/__tests__/MJGlobal.test.js +259 -0
  25. package/dist/__tests__/MJGlobal.test.js.map +1 -0
  26. package/dist/__tests__/ObjectCache.test.d.ts +2 -0
  27. package/dist/__tests__/ObjectCache.test.d.ts.map +1 -0
  28. package/dist/__tests__/ObjectCache.test.js +155 -0
  29. package/dist/__tests__/ObjectCache.test.js.map +1 -0
  30. package/dist/__tests__/util.test.d.ts +2 -0
  31. package/dist/__tests__/util.test.d.ts.map +1 -0
  32. package/dist/__tests__/util.test.js +434 -0
  33. package/dist/__tests__/util.test.js.map +1 -0
  34. package/package.json +5 -3
@@ -0,0 +1,241 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { GetSuperclass, GetRootClass, IsSubclassOf, IsRootClass, IsDescendantClassOf, GetClassInheritance, GetFullClassHierarchy, IsClassConstructor, GetClassName, } from '../ClassUtils.js';
3
+ // ---- Test class hierarchy ----
4
+ class GrandParent {
5
+ constructor() {
6
+ this.Level = 'grandparent';
7
+ }
8
+ }
9
+ class Parent extends GrandParent {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.Level = 'parent';
13
+ }
14
+ }
15
+ class Child extends Parent {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.Level = 'child';
19
+ }
20
+ }
21
+ class GrandChild extends Child {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.Level = 'grandchild';
25
+ }
26
+ }
27
+ class Unrelated {
28
+ constructor() {
29
+ this.Standalone = true;
30
+ }
31
+ }
32
+ // ---- Tests ----
33
+ describe('ClassUtils', () => {
34
+ describe('GetSuperclass', () => {
35
+ it('should return the immediate parent class', () => {
36
+ expect(GetSuperclass(Child)).toBe(Parent);
37
+ });
38
+ it('should return the grandparent for the parent class', () => {
39
+ expect(GetSuperclass(Parent)).toBe(GrandParent);
40
+ });
41
+ it('should return null for a root class', () => {
42
+ expect(GetSuperclass(GrandParent)).toBeNull();
43
+ });
44
+ it('should return null for null input', () => {
45
+ expect(GetSuperclass(null)).toBeNull();
46
+ });
47
+ it('should return null for undefined input', () => {
48
+ expect(GetSuperclass(undefined)).toBeNull();
49
+ });
50
+ it('should return null for a non-function input', () => {
51
+ expect(GetSuperclass('not a class')).toBeNull();
52
+ expect(GetSuperclass(42)).toBeNull();
53
+ });
54
+ it('should return the correct parent in a deep hierarchy', () => {
55
+ expect(GetSuperclass(GrandChild)).toBe(Child);
56
+ });
57
+ });
58
+ describe('GetRootClass', () => {
59
+ it('should return the topmost user-defined class', () => {
60
+ expect(GetRootClass(GrandChild)).toBe(GrandParent);
61
+ });
62
+ it('should return the class itself when it is the root', () => {
63
+ expect(GetRootClass(GrandParent)).toBe(GrandParent);
64
+ });
65
+ it('should handle a two-level hierarchy', () => {
66
+ expect(GetRootClass(Parent)).toBe(GrandParent);
67
+ });
68
+ it('should return the input for null', () => {
69
+ expect(GetRootClass(null)).toBeNull();
70
+ });
71
+ it('should return the input for non-function', () => {
72
+ expect(GetRootClass(123)).toBe(123);
73
+ });
74
+ it('should return a standalone class as its own root', () => {
75
+ expect(GetRootClass(Unrelated)).toBe(Unrelated);
76
+ });
77
+ });
78
+ describe('IsSubclassOf', () => {
79
+ it('should return true for direct subclass', () => {
80
+ expect(IsSubclassOf(Child, Parent)).toBe(true);
81
+ });
82
+ it('should return true for indirect subclass', () => {
83
+ expect(IsSubclassOf(GrandChild, GrandParent)).toBe(true);
84
+ });
85
+ it('should return false when classes are the same', () => {
86
+ expect(IsSubclassOf(Parent, Parent)).toBe(false);
87
+ });
88
+ it('should return false for unrelated classes', () => {
89
+ expect(IsSubclassOf(Unrelated, GrandParent)).toBe(false);
90
+ });
91
+ it('should return false when parent-child is reversed', () => {
92
+ expect(IsSubclassOf(GrandParent, GrandChild)).toBe(false);
93
+ });
94
+ it('should return false for null inputs', () => {
95
+ expect(IsSubclassOf(null, Parent)).toBe(false);
96
+ expect(IsSubclassOf(Child, null)).toBe(false);
97
+ expect(IsSubclassOf(null, null)).toBe(false);
98
+ });
99
+ it('should return false for non-function inputs', () => {
100
+ expect(IsSubclassOf('string', Parent)).toBe(false);
101
+ expect(IsSubclassOf(Child, 42)).toBe(false);
102
+ });
103
+ it('should detect subclass across multiple levels', () => {
104
+ expect(IsSubclassOf(GrandChild, Parent)).toBe(true);
105
+ expect(IsSubclassOf(GrandChild, GrandParent)).toBe(true);
106
+ });
107
+ });
108
+ describe('IsDescendantClassOf', () => {
109
+ it('should behave identically to IsSubclassOf', () => {
110
+ expect(IsDescendantClassOf(Child, Parent)).toBe(IsSubclassOf(Child, Parent));
111
+ expect(IsDescendantClassOf(Parent, Parent)).toBe(IsSubclassOf(Parent, Parent));
112
+ expect(IsDescendantClassOf(Unrelated, Parent)).toBe(IsSubclassOf(Unrelated, Parent));
113
+ });
114
+ });
115
+ describe('IsRootClass', () => {
116
+ it('should return true for a root class', () => {
117
+ expect(IsRootClass(GrandParent)).toBe(true);
118
+ });
119
+ it('should return true for a standalone class', () => {
120
+ expect(IsRootClass(Unrelated)).toBe(true);
121
+ });
122
+ it('should return false for a subclass', () => {
123
+ expect(IsRootClass(Child)).toBe(false);
124
+ });
125
+ it('should return false for a deeply nested class', () => {
126
+ expect(IsRootClass(GrandChild)).toBe(false);
127
+ });
128
+ it('should return false for null', () => {
129
+ expect(IsRootClass(null)).toBe(false);
130
+ });
131
+ it('should return false for non-function input', () => {
132
+ expect(IsRootClass(42)).toBe(false);
133
+ expect(IsRootClass('not a class')).toBe(false);
134
+ });
135
+ });
136
+ describe('GetClassInheritance', () => {
137
+ it('should return chain from immediate parent to root for a deep class', () => {
138
+ const chain = GetClassInheritance(GrandChild);
139
+ expect(chain.length).toBe(3); // Child, Parent, GrandParent
140
+ expect(chain[0].name).toBe('Child');
141
+ expect(chain[0].reference).toBe(Child);
142
+ expect(chain[1].name).toBe('Parent');
143
+ expect(chain[1].reference).toBe(Parent);
144
+ expect(chain[2].name).toBe('GrandParent');
145
+ expect(chain[2].reference).toBe(GrandParent);
146
+ });
147
+ it('should return single-entry chain for a direct subclass', () => {
148
+ const chain = GetClassInheritance(Parent);
149
+ expect(chain.length).toBe(1);
150
+ expect(chain[0].name).toBe('GrandParent');
151
+ });
152
+ it('should return empty chain for a root class', () => {
153
+ const chain = GetClassInheritance(GrandParent);
154
+ expect(chain.length).toBe(0);
155
+ });
156
+ it('should return empty chain for null input', () => {
157
+ expect(GetClassInheritance(null)).toEqual([]);
158
+ });
159
+ it('should return empty chain for non-function input', () => {
160
+ expect(GetClassInheritance('string')).toEqual([]);
161
+ });
162
+ it('should NOT include the class itself', () => {
163
+ const chain = GetClassInheritance(Child);
164
+ const names = chain.map(c => c.name);
165
+ expect(names).not.toContain('Child');
166
+ });
167
+ });
168
+ describe('GetFullClassHierarchy', () => {
169
+ it('should include the class itself first, then ancestors', () => {
170
+ const hierarchy = GetFullClassHierarchy(GrandChild);
171
+ expect(hierarchy.length).toBe(4); // GrandChild, Child, Parent, GrandParent
172
+ expect(hierarchy[0].name).toBe('GrandChild');
173
+ expect(hierarchy[0].reference).toBe(GrandChild);
174
+ expect(hierarchy[1].name).toBe('Child');
175
+ expect(hierarchy[2].name).toBe('Parent');
176
+ expect(hierarchy[3].name).toBe('GrandParent');
177
+ });
178
+ it('should return single entry for a root class', () => {
179
+ const hierarchy = GetFullClassHierarchy(GrandParent);
180
+ expect(hierarchy.length).toBe(1);
181
+ expect(hierarchy[0].name).toBe('GrandParent');
182
+ });
183
+ it('should return empty array for null input', () => {
184
+ expect(GetFullClassHierarchy(null)).toEqual([]);
185
+ });
186
+ it('should return empty array for non-function input', () => {
187
+ expect(GetFullClassHierarchy(42)).toEqual([]);
188
+ });
189
+ it('should return single entry for a standalone class', () => {
190
+ const hierarchy = GetFullClassHierarchy(Unrelated);
191
+ expect(hierarchy.length).toBe(1);
192
+ expect(hierarchy[0].name).toBe('Unrelated');
193
+ });
194
+ });
195
+ describe('IsClassConstructor', () => {
196
+ it('should return true for a class', () => {
197
+ expect(IsClassConstructor(GrandParent)).toBe(true);
198
+ });
199
+ it('should return true for a subclass', () => {
200
+ expect(IsClassConstructor(Child)).toBe(true);
201
+ });
202
+ it('should return false for a non-function', () => {
203
+ expect(IsClassConstructor('string')).toBe(false);
204
+ expect(IsClassConstructor(42)).toBe(false);
205
+ expect(IsClassConstructor(null)).toBe(false);
206
+ expect(IsClassConstructor(undefined)).toBe(false);
207
+ });
208
+ it('should return false for an arrow function', () => {
209
+ const arrowFn = () => 'hello';
210
+ expect(IsClassConstructor(arrowFn)).toBe(false);
211
+ });
212
+ it('should return true for a standalone class', () => {
213
+ expect(IsClassConstructor(Unrelated)).toBe(true);
214
+ });
215
+ });
216
+ describe('GetClassName', () => {
217
+ it('should return the class name for a named class', () => {
218
+ expect(GetClassName(GrandParent)).toBe('GrandParent');
219
+ expect(GetClassName(Child)).toBe('Child');
220
+ expect(GetClassName(Unrelated)).toBe('Unrelated');
221
+ });
222
+ it('should return "Unknown" for null input', () => {
223
+ expect(GetClassName(null)).toBe('Unknown');
224
+ });
225
+ it('should return "Unknown" for undefined input', () => {
226
+ expect(GetClassName(undefined)).toBe('Unknown');
227
+ });
228
+ it('should return "Unknown" for non-function input', () => {
229
+ expect(GetClassName(42)).toBe('Unknown');
230
+ expect(GetClassName('string')).toBe('Unknown');
231
+ });
232
+ it('should handle anonymous class expression', () => {
233
+ const AnonClass = class {
234
+ };
235
+ const name = GetClassName(AnonClass);
236
+ expect(typeof name).toBe('string');
237
+ expect(name.length).toBeGreaterThan(0);
238
+ });
239
+ });
240
+ });
241
+ //# sourceMappingURL=ClassUtils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClassUtils.test.js","sourceRoot":"","sources":["../../src/__tests__/ClassUtils.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=MJGlobal.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MJGlobal.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/MJGlobal.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,259 @@
1
+ import { describe, it, expect, beforeEach } from 'vitest';
2
+ import { MJGlobal } from '../Global.js';
3
+ import { ClassFactory } from '../ClassFactory.js';
4
+ import { ObjectCache } from '../ObjectCache.js';
5
+ import { MJEventType, MJGlobalProperty } from '../interface.js';
6
+ import { GetGlobalObjectStore } from '../util.js';
7
+ /**
8
+ * Helper to clear the MJGlobal singleton from the global object store
9
+ * so each test starts with a clean slate.
10
+ */
11
+ function clearMJGlobalSingleton() {
12
+ const g = GetGlobalObjectStore();
13
+ if (g) {
14
+ // Remove all singleton keys
15
+ for (const key of Object.keys(g)) {
16
+ if (key.startsWith('___SINGLETON__')) {
17
+ delete g[key];
18
+ }
19
+ }
20
+ }
21
+ }
22
+ describe('MJGlobal', () => {
23
+ beforeEach(() => {
24
+ clearMJGlobalSingleton();
25
+ });
26
+ describe('Singleton behavior', () => {
27
+ it('should return the same instance on repeated calls to Instance', () => {
28
+ const instance1 = MJGlobal.Instance;
29
+ const instance2 = MJGlobal.Instance;
30
+ expect(instance1).toBe(instance2);
31
+ });
32
+ it('should be stored in the global object store', () => {
33
+ const instance = MJGlobal.Instance;
34
+ const g = GetGlobalObjectStore();
35
+ expect(g).not.toBeNull();
36
+ expect(g['___SINGLETON__MJGlobal']).toBe(instance);
37
+ });
38
+ it('should expose a GlobalKey property', () => {
39
+ const instance = MJGlobal.Instance;
40
+ expect(instance.GlobalKey).toBe('___SINGLETON__MJGlobal');
41
+ });
42
+ });
43
+ describe('ClassFactory getter', () => {
44
+ it('should return an instance of ClassFactory', () => {
45
+ const cf = MJGlobal.Instance.ClassFactory;
46
+ expect(cf).toBeInstanceOf(ClassFactory);
47
+ });
48
+ it('should return the same ClassFactory on repeated access', () => {
49
+ const cf1 = MJGlobal.Instance.ClassFactory;
50
+ const cf2 = MJGlobal.Instance.ClassFactory;
51
+ expect(cf1).toBe(cf2);
52
+ });
53
+ });
54
+ describe('ObjectCache getter', () => {
55
+ it('should return an instance of ObjectCache', () => {
56
+ const cache = MJGlobal.Instance.ObjectCache;
57
+ expect(cache).toBeInstanceOf(ObjectCache);
58
+ });
59
+ it('should return the same ObjectCache on repeated access', () => {
60
+ const cache1 = MJGlobal.Instance.ObjectCache;
61
+ const cache2 = MJGlobal.Instance.ObjectCache;
62
+ expect(cache1).toBe(cache2);
63
+ });
64
+ });
65
+ describe('Properties getter', () => {
66
+ it('should return an array', () => {
67
+ const props = MJGlobal.Instance.Properties;
68
+ expect(Array.isArray(props)).toBe(true);
69
+ });
70
+ it('should start as empty', () => {
71
+ expect(MJGlobal.Instance.Properties.length).toBe(0);
72
+ });
73
+ it('should allow adding properties directly to the array', () => {
74
+ const prop = new MJGlobalProperty();
75
+ prop.key = 'testKey';
76
+ prop.value = 'testValue';
77
+ MJGlobal.Instance.Properties.push(prop);
78
+ expect(MJGlobal.Instance.Properties.length).toBe(1);
79
+ expect(MJGlobal.Instance.Properties[0].key).toBe('testKey');
80
+ });
81
+ });
82
+ describe('RegisterComponent', () => {
83
+ it('should register a component without error', () => {
84
+ const component = {};
85
+ expect(() => MJGlobal.Instance.RegisterComponent(component)).not.toThrow();
86
+ });
87
+ it('should accumulate multiple registered components', () => {
88
+ const mjg = MJGlobal.Instance;
89
+ const comp1 = {};
90
+ const comp2 = {};
91
+ mjg.RegisterComponent(comp1);
92
+ mjg.RegisterComponent(comp2);
93
+ // We cannot inspect _components directly, but we can verify
94
+ // the method does not throw after multiple registrations
95
+ expect(true).toBe(true);
96
+ });
97
+ });
98
+ describe('RaiseEvent and GetEventListener', () => {
99
+ it('should deliver events to non-replay listeners', async () => {
100
+ const mjg = MJGlobal.Instance;
101
+ const received = [];
102
+ const listener = mjg.GetEventListener(false);
103
+ const subscription = listener.subscribe((event) => {
104
+ received.push(event);
105
+ });
106
+ const event = {
107
+ component: {},
108
+ event: MJEventType.ComponentEvent,
109
+ eventCode: 'test-code',
110
+ args: { data: 42 },
111
+ };
112
+ mjg.RaiseEvent(event);
113
+ expect(received.length).toBe(1);
114
+ expect(received[0].eventCode).toBe('test-code');
115
+ expect(received[0].args.data).toBe(42);
116
+ subscription.unsubscribe();
117
+ });
118
+ it('should deliver events to replay listeners', async () => {
119
+ const mjg = MJGlobal.Instance;
120
+ const event = {
121
+ component: {},
122
+ event: MJEventType.LoggedIn,
123
+ eventCode: 'login',
124
+ args: null,
125
+ };
126
+ // Raise event BEFORE subscribing
127
+ mjg.RaiseEvent(event);
128
+ // Now subscribe with replay - should receive the event
129
+ const received = [];
130
+ const replayListener = mjg.GetEventListener(true);
131
+ const subscription = replayListener.subscribe((evt) => {
132
+ received.push(evt);
133
+ });
134
+ // ReplaySubject should have replayed the event
135
+ expect(received.length).toBe(1);
136
+ expect(received[0].event).toBe(MJEventType.LoggedIn);
137
+ subscription.unsubscribe();
138
+ });
139
+ it('should not replay events for non-replay listeners that subscribe after event', () => {
140
+ const mjg = MJGlobal.Instance;
141
+ const event = {
142
+ component: {},
143
+ event: MJEventType.ComponentEvent,
144
+ eventCode: 'before-subscribe',
145
+ args: null,
146
+ };
147
+ mjg.RaiseEvent(event);
148
+ const received = [];
149
+ const listener = mjg.GetEventListener(false);
150
+ const subscription = listener.subscribe((evt) => {
151
+ received.push(evt);
152
+ });
153
+ // Non-replay should NOT get the event raised before subscription
154
+ expect(received.length).toBe(0);
155
+ subscription.unsubscribe();
156
+ });
157
+ it('should deliver multiple events in order', () => {
158
+ const mjg = MJGlobal.Instance;
159
+ const received = [];
160
+ const listener = mjg.GetEventListener(false);
161
+ const subscription = listener.subscribe((event) => {
162
+ received.push(event.eventCode ?? '');
163
+ });
164
+ mjg.RaiseEvent({ component: {}, event: MJEventType.ComponentEvent, eventCode: 'first', args: null });
165
+ mjg.RaiseEvent({ component: {}, event: MJEventType.ComponentEvent, eventCode: 'second', args: null });
166
+ mjg.RaiseEvent({ component: {}, event: MJEventType.ComponentEvent, eventCode: 'third', args: null });
167
+ expect(received).toEqual(['first', 'second', 'third']);
168
+ subscription.unsubscribe();
169
+ });
170
+ it('should deliver events to both replay and non-replay listeners simultaneously', () => {
171
+ const mjg = MJGlobal.Instance;
172
+ const nonReplayReceived = [];
173
+ const replayReceived = [];
174
+ const nonReplaySub = mjg.GetEventListener(false).subscribe((e) => nonReplayReceived.push(e));
175
+ const replaySub = mjg.GetEventListener(true).subscribe((e) => replayReceived.push(e));
176
+ const event = {
177
+ component: {},
178
+ event: MJEventType.ComponentEvent,
179
+ eventCode: 'dual',
180
+ args: null,
181
+ };
182
+ mjg.RaiseEvent(event);
183
+ expect(nonReplayReceived.length).toBe(1);
184
+ expect(replayReceived.length).toBe(1);
185
+ nonReplaySub.unsubscribe();
186
+ replaySub.unsubscribe();
187
+ });
188
+ });
189
+ describe('Reset', () => {
190
+ it('should clear registered components', () => {
191
+ const mjg = MJGlobal.Instance;
192
+ mjg.RegisterComponent({});
193
+ mjg.RegisterComponent({});
194
+ mjg.Reset();
195
+ // After reset, the internal _components array is empty.
196
+ // We verify by checking that new event listeners work properly.
197
+ const received = [];
198
+ const sub = mjg.GetEventListener(false).subscribe((e) => received.push(e));
199
+ expect(received.length).toBe(0);
200
+ sub.unsubscribe();
201
+ });
202
+ it('should create new event subjects so old subscriptions stop receiving', () => {
203
+ const mjg = MJGlobal.Instance;
204
+ const oldReceived = [];
205
+ const oldSub = mjg.GetEventListener(false).subscribe((e) => oldReceived.push(e));
206
+ mjg.Reset();
207
+ // Raise event after reset
208
+ mjg.RaiseEvent({
209
+ component: {},
210
+ event: MJEventType.ComponentEvent,
211
+ eventCode: 'after-reset',
212
+ args: null,
213
+ });
214
+ // Old subscription should NOT receive the new event
215
+ // because the subject was replaced
216
+ expect(oldReceived.length).toBe(0);
217
+ oldSub.unsubscribe();
218
+ });
219
+ it('should allow new subscriptions to work after reset', () => {
220
+ const mjg = MJGlobal.Instance;
221
+ mjg.Reset();
222
+ const received = [];
223
+ const sub = mjg.GetEventListener(false).subscribe((e) => received.push(e));
224
+ mjg.RaiseEvent({
225
+ component: {},
226
+ event: MJEventType.ComponentEvent,
227
+ eventCode: 'post-reset',
228
+ args: null,
229
+ });
230
+ expect(received.length).toBe(1);
231
+ expect(received[0].eventCode).toBe('post-reset');
232
+ sub.unsubscribe();
233
+ });
234
+ it('should clear replay buffer after reset', () => {
235
+ const mjg = MJGlobal.Instance;
236
+ // Raise event before reset
237
+ mjg.RaiseEvent({
238
+ component: {},
239
+ event: MJEventType.LoggedIn,
240
+ eventCode: 'before-reset',
241
+ args: null,
242
+ });
243
+ mjg.Reset();
244
+ // Subscribe with replay after reset
245
+ const received = [];
246
+ const sub = mjg.GetEventListener(true).subscribe((e) => received.push(e));
247
+ // Should NOT receive the pre-reset event
248
+ expect(received.length).toBe(0);
249
+ sub.unsubscribe();
250
+ });
251
+ });
252
+ describe('GetGlobalObjectStore (via BaseSingleton)', () => {
253
+ it('should return a non-null global object store', () => {
254
+ const store = MJGlobal.Instance.GetGlobalObjectStore();
255
+ expect(store).not.toBeNull();
256
+ });
257
+ });
258
+ });
259
+ //# sourceMappingURL=MJGlobal.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MJGlobal.test.js","sourceRoot":"","sources":["../../src/__tests__/MJGlobal.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAM,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAW,WAAW,EAAgB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAG/C;;;GAGG;AACH,SAAS,sBAAsB;IAC7B,MAAM,CAAC,GAAG,oBAAoB,EAAE,CAAC;IACjC,IAAI,CAAC,EAAE,CAAC;QACN,4BAA4B;QAC5B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,UAAU,CAAC,GAAG,EAAE;QACd,sBAAsB,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACvE,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC;YACpC,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC;YACpC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;YACnC,MAAM,CAAC,GAAG,oBAAoB,EAAE,CAAC;YACjC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACzB,MAAM,CAAC,CAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;YACnC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC1C,MAAM,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;YAChE,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC3C,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC3C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC/B,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,IAAI,GAAG,IAAI,gBAAgB,EAAE,CAAC;YACpC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;YACzB,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,SAAS,GAAiB,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC9B,MAAM,KAAK,GAAiB,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAiB,EAAE,CAAC;YAC/B,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC7B,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC7B,4DAA4D;YAC5D,yDAAyD;YACzD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC/C,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC9B,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBAChD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;YAEH,MAAM,KAAK,GAAY;gBACrB,SAAS,EAAE,EAAkB;gBAC7B,KAAK,EAAE,WAAW,CAAC,cAAc;gBACjC,SAAS,EAAE,WAAW;gBACtB,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;aACnB,CAAC;YAEF,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACtB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAChD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvC,YAAY,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC9B,MAAM,KAAK,GAAY;gBACrB,SAAS,EAAE,EAAkB;gBAC7B,KAAK,EAAE,WAAW,CAAC,QAAQ;gBAC3B,SAAS,EAAE,OAAO;gBAClB,IAAI,EAAE,IAAI;aACX,CAAC;YAEF,iCAAiC;YACjC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAEtB,uDAAuD;YACvD,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,MAAM,cAAc,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBACpD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;YAEH,+CAA+C;YAC/C,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACrD,YAAY,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;YACtF,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC9B,MAAM,KAAK,GAAY;gBACrB,SAAS,EAAE,EAAkB;gBAC7B,KAAK,EAAE,WAAW,CAAC,cAAc;gBACjC,SAAS,EAAE,kBAAkB;gBAC7B,IAAI,EAAE,IAAI;aACX,CAAC;YAEF,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAEtB,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC9C,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;YAEH,iEAAiE;YACjE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,YAAY,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC9B,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBAChD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,EAAkB,EAAE,KAAK,EAAE,WAAW,CAAC,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACrH,GAAG,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,EAAkB,EAAE,KAAK,EAAE,WAAW,CAAC,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACtH,GAAG,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,EAAkB,EAAE,KAAK,EAAE,WAAW,CAAC,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAErH,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;YACvD,YAAY,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;YACtF,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC9B,MAAM,iBAAiB,GAAc,EAAE,CAAC;YACxC,MAAM,cAAc,GAAc,EAAE,CAAC;YAErC,MAAM,YAAY,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7F,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtF,MAAM,KAAK,GAAY;gBACrB,SAAS,EAAE,EAAkB;gBAC7B,KAAK,EAAE,WAAW,CAAC,cAAc;gBACjC,SAAS,EAAE,MAAM;gBACjB,IAAI,EAAE,IAAI;aACX,CAAC;YACF,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAEtB,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACtC,YAAY,CAAC,WAAW,EAAE,CAAC;YAC3B,SAAS,CAAC,WAAW,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACrB,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC9B,GAAG,CAAC,iBAAiB,CAAC,EAAkB,CAAC,CAAC;YAC1C,GAAG,CAAC,iBAAiB,CAAC,EAAkB,CAAC,CAAC;YAC1C,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,wDAAwD;YACxD,gEAAgE;YAChE,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3E,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;YAC9E,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC9B,MAAM,WAAW,GAAc,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAEjF,GAAG,CAAC,KAAK,EAAE,CAAC;YAEZ,0BAA0B;YAC1B,GAAG,CAAC,UAAU,CAAC;gBACb,SAAS,EAAE,EAAkB;gBAC7B,KAAK,EAAE,WAAW,CAAC,cAAc;gBACjC,SAAS,EAAE,aAAa;gBACxB,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;YAEH,oDAAoD;YACpD,mCAAmC;YACnC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAC9B,GAAG,CAAC,KAAK,EAAE,CAAC;YAEZ,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAE3E,GAAG,CAAC,UAAU,CAAC;gBACb,SAAS,EAAE,EAAkB;gBAC7B,KAAK,EAAE,WAAW,CAAC,cAAc;gBACjC,SAAS,EAAE,YAAY;gBACvB,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;YAEH,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjD,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAE9B,2BAA2B;YAC3B,GAAG,CAAC,UAAU,CAAC;gBACb,SAAS,EAAE,EAAkB;gBAC7B,KAAK,EAAE,WAAW,CAAC,QAAQ;gBAC3B,SAAS,EAAE,cAAc;gBACzB,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;YAEH,GAAG,CAAC,KAAK,EAAE,CAAC;YAEZ,oCAAoC;YACpC,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAE1E,yCAAyC;YACzC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACxD,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ObjectCache.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjectCache.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/ObjectCache.test.ts"],"names":[],"mappings":""}