@memberjunction/core 3.3.0 → 4.0.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/dist/__tests__/mocks/TestMetadataProvider.d.ts +45 -0
- package/dist/__tests__/mocks/TestMetadataProvider.d.ts.map +1 -0
- package/dist/__tests__/mocks/TestMetadataProvider.js +217 -0
- package/dist/__tests__/mocks/TestMetadataProvider.js.map +1 -0
- package/dist/__tests__/providerBase.concurrency.test.d.ts +10 -0
- package/dist/__tests__/providerBase.concurrency.test.d.ts.map +1 -0
- package/dist/__tests__/providerBase.concurrency.test.js +253 -0
- package/dist/__tests__/providerBase.concurrency.test.js.map +1 -0
- package/dist/__tests__/providerBase.refresh.test.d.ts +10 -0
- package/dist/__tests__/providerBase.refresh.test.d.ts.map +1 -0
- package/dist/__tests__/providerBase.refresh.test.js +161 -0
- package/dist/__tests__/providerBase.refresh.test.js.map +1 -0
- package/dist/__tests__/setup.d.ts +5 -0
- package/dist/__tests__/setup.d.ts.map +1 -0
- package/dist/__tests__/setup.js +17 -0
- package/dist/__tests__/setup.js.map +1 -0
- package/dist/generic/InMemoryLocalStorageProvider.d.ts +1 -1
- package/dist/generic/InMemoryLocalStorageProvider.js +2 -6
- package/dist/generic/InMemoryLocalStorageProvider.js.map +1 -1
- package/dist/generic/QueryCache.d.ts +1 -1
- package/dist/generic/QueryCache.js +6 -10
- package/dist/generic/QueryCache.js.map +1 -1
- package/dist/generic/QueryCacheConfig.js +1 -2
- package/dist/generic/RegisterForStartup.d.ts +2 -2
- package/dist/generic/RegisterForStartup.js +7 -12
- package/dist/generic/RegisterForStartup.js.map +1 -1
- package/dist/generic/applicationInfo.d.ts +3 -3
- package/dist/generic/applicationInfo.js +4 -10
- package/dist/generic/applicationInfo.js.map +1 -1
- package/dist/generic/authEvaluator.d.ts +1 -1
- package/dist/generic/authEvaluator.js +4 -8
- package/dist/generic/authEvaluator.js.map +1 -1
- package/dist/generic/authTypes.js +1 -4
- package/dist/generic/authTypes.js.map +1 -1
- package/dist/generic/baseEngine.d.ts +5 -5
- package/dist/generic/baseEngine.js +51 -56
- package/dist/generic/baseEngine.js.map +1 -1
- package/dist/generic/baseEngineRegistry.js +13 -17
- package/dist/generic/baseEngineRegistry.js.map +1 -1
- package/dist/generic/baseEntity.d.ts +5 -5
- package/dist/generic/baseEntity.js +103 -113
- package/dist/generic/baseEntity.js.map +1 -1
- package/dist/generic/baseInfo.js +3 -7
- package/dist/generic/baseInfo.js.map +1 -1
- package/dist/generic/compositeKey.d.ts +2 -2
- package/dist/generic/compositeKey.js +5 -11
- package/dist/generic/compositeKey.js.map +1 -1
- package/dist/generic/databaseProviderBase.d.ts +2 -2
- package/dist/generic/databaseProviderBase.js +2 -6
- package/dist/generic/databaseProviderBase.js.map +1 -1
- package/dist/generic/entityInfo.d.ts +74 -5
- package/dist/generic/entityInfo.d.ts.map +1 -1
- package/dist/generic/entityInfo.js +138 -105
- package/dist/generic/entityInfo.js.map +1 -1
- package/dist/generic/explorerNavigationItem.d.ts +1 -1
- package/dist/generic/explorerNavigationItem.js +2 -6
- package/dist/generic/explorerNavigationItem.js.map +1 -1
- package/dist/generic/graphqlTypeNames.d.ts +1 -1
- package/dist/generic/graphqlTypeNames.js +4 -9
- package/dist/generic/graphqlTypeNames.js.map +1 -1
- package/dist/generic/interfaces.d.ts +51 -12
- package/dist/generic/interfaces.d.ts.map +1 -1
- package/dist/generic/interfaces.js +15 -30
- package/dist/generic/interfaces.js.map +1 -1
- package/dist/generic/libraryInfo.d.ts +1 -1
- package/dist/generic/libraryInfo.js +2 -6
- package/dist/generic/libraryInfo.js.map +1 -1
- package/dist/generic/localCacheManager.d.ts +2 -2
- package/dist/generic/localCacheManager.js +44 -48
- package/dist/generic/localCacheManager.js.map +1 -1
- package/dist/generic/logging.d.ts.map +1 -1
- package/dist/generic/logging.js +54 -67
- package/dist/generic/logging.js.map +1 -1
- package/dist/generic/metadata.d.ts +10 -10
- package/dist/generic/metadata.js +17 -21
- package/dist/generic/metadata.js.map +1 -1
- package/dist/generic/metadataUtil.d.ts +1 -1
- package/dist/generic/metadataUtil.js +3 -7
- package/dist/generic/metadataUtil.js.map +1 -1
- package/dist/generic/providerBase.d.ts +18 -12
- package/dist/generic/providerBase.d.ts.map +1 -1
- package/dist/generic/providerBase.js +130 -130
- package/dist/generic/providerBase.js.map +1 -1
- package/dist/generic/queryInfo.d.ts +5 -5
- package/dist/generic/queryInfo.js +21 -30
- package/dist/generic/queryInfo.js.map +1 -1
- package/dist/generic/queryInfoInterfaces.js +1 -2
- package/dist/generic/queryInfoInterfaces.js.map +1 -1
- package/dist/generic/querySQLFilters.js +5 -10
- package/dist/generic/querySQLFilters.js.map +1 -1
- package/dist/generic/runQuery.d.ts +2 -2
- package/dist/generic/runQuery.js +5 -9
- package/dist/generic/runQuery.js.map +1 -1
- package/dist/generic/runQuerySQLFilterImplementations.d.ts +1 -1
- package/dist/generic/runQuerySQLFilterImplementations.js +4 -8
- package/dist/generic/runQuerySQLFilterImplementations.js.map +1 -1
- package/dist/generic/runReport.d.ts +2 -2
- package/dist/generic/runReport.js +5 -9
- package/dist/generic/runReport.js.map +1 -1
- package/dist/generic/securityInfo.d.ts +2 -2
- package/dist/generic/securityInfo.js +10 -20
- package/dist/generic/securityInfo.js.map +1 -1
- package/dist/generic/telemetryManager.js +20 -32
- package/dist/generic/telemetryManager.js.map +1 -1
- package/dist/generic/transactionGroup.d.ts +1 -1
- package/dist/generic/transactionGroup.d.ts.map +1 -1
- package/dist/generic/transactionGroup.js +11 -19
- package/dist/generic/transactionGroup.js.map +1 -1
- package/dist/generic/util.js +15 -31
- package/dist/generic/util.js.map +1 -1
- package/dist/index.d.ts +34 -34
- package/dist/index.js +45 -63
- package/dist/index.js.map +1 -1
- package/dist/views/runView.d.ts +3 -3
- package/dist/views/runView.js +6 -11
- package/dist/views/runView.js.map +1 -1
- package/dist/views/viewInfo.d.ts +3 -3
- package/dist/views/viewInfo.js +10 -17
- package/dist/views/viewInfo.js.map +1 -1
- package/package.json +11 -10
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Baseline Tests for ProviderBase.Refresh() and Config()
|
|
4
|
+
*
|
|
5
|
+
* Purpose: Document current behavior before implementing thread safety fixes
|
|
6
|
+
* These tests establish a baseline to ensure the fix doesn't break existing functionality
|
|
7
|
+
*
|
|
8
|
+
* Related: METADATA_THREAD_SAFETY_IMPLEMENTATION.md - Phase 1, Task 1.3
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
const interfaces_1 = require("../generic/interfaces.js");
|
|
12
|
+
const TestMetadataProvider_1 = require("./mocks/TestMetadataProvider.js");
|
|
13
|
+
describe('ProviderBase.Refresh - Baseline Behavior', () => {
|
|
14
|
+
let provider;
|
|
15
|
+
let testConfig;
|
|
16
|
+
beforeEach(() => {
|
|
17
|
+
provider = new TestMetadataProvider_1.TestMetadataProvider();
|
|
18
|
+
testConfig = new interfaces_1.ProviderConfigDataBase({}, // data
|
|
19
|
+
'__mj', // MJCoreSchemaName
|
|
20
|
+
[], // includeSchemas
|
|
21
|
+
[], // excludeSchemas
|
|
22
|
+
true // ignoreExistingMetadata - don't copy from global
|
|
23
|
+
);
|
|
24
|
+
});
|
|
25
|
+
describe('Single Refresh Operations', () => {
|
|
26
|
+
test('Config() loads metadata successfully', async () => {
|
|
27
|
+
const result = await provider.Config(testConfig);
|
|
28
|
+
expect(result).toBe(true);
|
|
29
|
+
expect(provider.Entities).toBeDefined();
|
|
30
|
+
expect(provider.Entities.length).toBeGreaterThan(0);
|
|
31
|
+
});
|
|
32
|
+
test('Entities have Fields populated', async () => {
|
|
33
|
+
await provider.Config(testConfig);
|
|
34
|
+
const entity = provider.Entities[0];
|
|
35
|
+
expect(entity).toBeDefined();
|
|
36
|
+
expect(entity.Fields).toBeDefined();
|
|
37
|
+
expect(entity.Fields.length).toBe(2);
|
|
38
|
+
expect(entity.Fields[0].Name).toBe('ID');
|
|
39
|
+
});
|
|
40
|
+
test('Refresh() triggers Config() and reloads metadata', async () => {
|
|
41
|
+
// Initial load
|
|
42
|
+
await provider.Config(testConfig);
|
|
43
|
+
const initialCount = provider.Entities.length;
|
|
44
|
+
// Change mock data
|
|
45
|
+
provider.setMockMetadata({
|
|
46
|
+
...await provider['GetAllMetadata'](),
|
|
47
|
+
Entities: [
|
|
48
|
+
{
|
|
49
|
+
ID: '3',
|
|
50
|
+
Name: 'New Entity',
|
|
51
|
+
SchemaName: 'dbo',
|
|
52
|
+
BaseView: 'vwNewEntity',
|
|
53
|
+
BaseTable: 'NewEntity',
|
|
54
|
+
Fields: [{ ID: 'f5', Name: 'ID', Type: 'uniqueidentifier', IsPrimaryKey: true }]
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
});
|
|
58
|
+
// Refresh
|
|
59
|
+
await provider.Refresh();
|
|
60
|
+
// Should have new data
|
|
61
|
+
expect(provider.Entities.length).toBe(1);
|
|
62
|
+
expect(provider.Entities[0].Name).toBe('New Entity');
|
|
63
|
+
});
|
|
64
|
+
test('AllowRefresh=false prevents refresh', async () => {
|
|
65
|
+
await provider.Config(testConfig);
|
|
66
|
+
const initialCount = provider.Entities.length;
|
|
67
|
+
// Disable refresh
|
|
68
|
+
provider.setAllowRefresh(false);
|
|
69
|
+
// Try to refresh
|
|
70
|
+
const result = await provider.Refresh();
|
|
71
|
+
// Should return true but not actually refresh
|
|
72
|
+
expect(result).toBe(true);
|
|
73
|
+
expect(provider.Entities.length).toBe(initialCount);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
describe('Metadata Access During Operations', () => {
|
|
77
|
+
test('Entities accessible immediately after Config()', async () => {
|
|
78
|
+
await provider.Config(testConfig);
|
|
79
|
+
// Should be able to access metadata immediately
|
|
80
|
+
const entities = provider.Entities;
|
|
81
|
+
expect(entities).toBeDefined();
|
|
82
|
+
expect(Array.isArray(entities)).toBe(true);
|
|
83
|
+
expect(entities.length).toBeGreaterThan(0);
|
|
84
|
+
});
|
|
85
|
+
test('Entities array is stable across multiple reads', async () => {
|
|
86
|
+
await provider.Config(testConfig);
|
|
87
|
+
const read1 = provider.Entities;
|
|
88
|
+
const read2 = provider.Entities;
|
|
89
|
+
const read3 = provider.Entities;
|
|
90
|
+
// Should return same array instance
|
|
91
|
+
expect(read1).toBe(read2);
|
|
92
|
+
expect(read2).toBe(read3);
|
|
93
|
+
});
|
|
94
|
+
test('Fields arrays are accessible', async () => {
|
|
95
|
+
await provider.Config(testConfig);
|
|
96
|
+
const entity = provider.Entities[0];
|
|
97
|
+
const fields1 = entity.Fields;
|
|
98
|
+
const fields2 = entity.Fields;
|
|
99
|
+
expect(fields1).toBeDefined();
|
|
100
|
+
expect(fields1).toBe(fields2); // Same array instance
|
|
101
|
+
expect(fields1.length).toBeGreaterThan(0);
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
describe('Current Behavior - Documenting Issues', () => {
|
|
105
|
+
test('KNOWN ISSUE: Reading metadata during Config() may see empty data', async () => {
|
|
106
|
+
/**
|
|
107
|
+
* This test documents the current race condition.
|
|
108
|
+
* When Config() is called, it immediately clears metadata (line 341 of providerBase.ts)
|
|
109
|
+
* before GetAllMetadata() completes.
|
|
110
|
+
*
|
|
111
|
+
* During this window, readers see empty metadata.
|
|
112
|
+
* This test will FAIL before the fix and PASS after the atomic update fix.
|
|
113
|
+
*/
|
|
114
|
+
// Start config but don't await
|
|
115
|
+
const configPromise = provider.Config(testConfig);
|
|
116
|
+
// Try to read metadata during config (after slight delay)
|
|
117
|
+
await new Promise(resolve => setTimeout(resolve, 10));
|
|
118
|
+
const entitiesDuringConfig = provider.Entities;
|
|
119
|
+
// CURRENT BEHAVIOR: This might be empty or undefined
|
|
120
|
+
// DESIRED BEHAVIOR: Should return either old metadata (if any) or wait for new
|
|
121
|
+
// Note: On first call, there is no "old" metadata, so empty is expected
|
|
122
|
+
// Wait for config to complete
|
|
123
|
+
await configPromise;
|
|
124
|
+
// After config, should definitely have data
|
|
125
|
+
expect(provider.Entities.length).toBeGreaterThan(0);
|
|
126
|
+
// Document current behavior
|
|
127
|
+
console.log('Entities during config:', entitiesDuringConfig?.length ?? 'undefined/empty');
|
|
128
|
+
console.log('Entities after config:', provider.Entities.length);
|
|
129
|
+
});
|
|
130
|
+
test('✅ FIXED: Multiple concurrent Config() calls now safe', async () => {
|
|
131
|
+
/**
|
|
132
|
+
* This test verifies that concurrent Config() calls don't cause race conditions.
|
|
133
|
+
* With the atomic update fix, readers always see valid metadata (old or new).
|
|
134
|
+
*
|
|
135
|
+
* Before fix: Metadata would be cleared, causing empty array errors
|
|
136
|
+
* After fix: Metadata is atomically swapped, no intermediate empty state
|
|
137
|
+
*/
|
|
138
|
+
provider.resetCallCount();
|
|
139
|
+
// Start 3 concurrent Config() calls
|
|
140
|
+
const promises = [
|
|
141
|
+
provider.Config(testConfig),
|
|
142
|
+
provider.Config(testConfig),
|
|
143
|
+
provider.Config(testConfig),
|
|
144
|
+
];
|
|
145
|
+
// Wait for all to complete
|
|
146
|
+
const results = await Promise.all(promises);
|
|
147
|
+
// All should succeed
|
|
148
|
+
expect(results.every(r => r === true)).toBe(true);
|
|
149
|
+
// Should have valid metadata
|
|
150
|
+
expect(provider.Entities).toBeDefined();
|
|
151
|
+
expect(provider.Entities.length).toBeGreaterThan(0);
|
|
152
|
+
// Check efficiency - may coalesce some calls
|
|
153
|
+
const callCount = provider.getCallCount();
|
|
154
|
+
console.log('GetAllMetadata called:', callCount, 'times for 3 Config() calls');
|
|
155
|
+
console.log('Final entity count:', provider.Entities.length);
|
|
156
|
+
// ✅ FIXED: No more race conditions - metadata is always valid
|
|
157
|
+
// DESIRED BEHAVIOR: All calls complete safely, metadata is consistent
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
//# sourceMappingURL=providerBase.refresh.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providerBase.refresh.test.js","sourceRoot":"","sources":["../../src/__tests__/providerBase.refresh.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/__tests__/setup.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Jest setup file for MJCore tests
|
|
3
|
+
* Runs before each test file
|
|
4
|
+
*/
|
|
5
|
+
// Increase timeout for async operations
|
|
6
|
+
jest.setTimeout(30000);
|
|
7
|
+
// Mock console methods to reduce noise (can be enabled per test)
|
|
8
|
+
global.console = {
|
|
9
|
+
...console,
|
|
10
|
+
// Uncomment to silence logs during tests
|
|
11
|
+
// log: jest.fn(),
|
|
12
|
+
// debug: jest.fn(),
|
|
13
|
+
// info: jest.fn(),
|
|
14
|
+
// warn: jest.fn(),
|
|
15
|
+
// error: jest.fn(),
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/__tests__/setup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,wCAAwC;AACxC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAEvB,iEAAiE;AACjE,MAAM,CAAC,OAAO,GAAG;IACf,GAAG,OAAO;IACV,yCAAyC;IACzC,kBAAkB;IAClB,oBAAoB;IACpB,mBAAmB;IACnB,mBAAmB;IACnB,oBAAoB;CACrB,CAAC"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.InMemoryLocalStorageProvider = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* In-memory implementation of ILocalStorageProvider.
|
|
6
3
|
* Useful for server-side environments (Node.js) where browser storage APIs like
|
|
@@ -9,10 +6,11 @@ exports.InMemoryLocalStorageProvider = void 0;
|
|
|
9
6
|
* Note: Data is not persisted across process restarts. This is suitable for
|
|
10
7
|
* caching scenarios where persistence is not required.
|
|
11
8
|
*/
|
|
12
|
-
class InMemoryLocalStorageProvider {
|
|
9
|
+
export class InMemoryLocalStorageProvider {
|
|
13
10
|
constructor() {
|
|
14
11
|
this._storage = new Map();
|
|
15
12
|
}
|
|
13
|
+
static { this.DEFAULT_CATEGORY = 'default'; }
|
|
16
14
|
/**
|
|
17
15
|
* Gets or creates a category map
|
|
18
16
|
*/
|
|
@@ -46,6 +44,4 @@ class InMemoryLocalStorageProvider {
|
|
|
46
44
|
return categoryMap ? Array.from(categoryMap.keys()) : [];
|
|
47
45
|
}
|
|
48
46
|
}
|
|
49
|
-
exports.InMemoryLocalStorageProvider = InMemoryLocalStorageProvider;
|
|
50
|
-
InMemoryLocalStorageProvider.DEFAULT_CATEGORY = 'default';
|
|
51
47
|
//# sourceMappingURL=InMemoryLocalStorageProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InMemoryLocalStorageProvider.js","sourceRoot":"","sources":["../../src/generic/InMemoryLocalStorageProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InMemoryLocalStorageProvider.js","sourceRoot":"","sources":["../../src/generic/InMemoryLocalStorageProvider.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,OAAO,4BAA4B;IAAzC;QAEY,aAAQ,GAAqC,IAAI,GAAG,EAAE,CAAC;IAuCnE,CAAC;aAxC2B,qBAAgB,GAAG,SAAS,AAAZ,CAAa;IAGrD;;OAEG;IACK,cAAc,CAAC,QAAgB;QACnC,MAAM,GAAG,GAAG,QAAQ,IAAI,4BAA4B,CAAC,gBAAgB,CAAC;QACtE,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,WAAW,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,QAAiB;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,4BAA4B,CAAC,gBAAgB,CAAC,CAAC;QACnG,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,KAAa,EAAE,QAAiB;QAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,4BAA4B,CAAC,gBAAgB,CAAC,CAAC;QACnG,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,QAAiB;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,4BAA4B,CAAC,gBAAgB,CAAC,CAAC;QACnG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,QAAgB;QACvC,MAAM,GAAG,GAAG,QAAQ,IAAI,4BAA4B,CAAC,gBAAgB,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,QAAgB;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,IAAI,4BAA4B,CAAC,gBAAgB,CAAC,CAAC;QACjG,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { QueryCacheConfig, QueryCacheEntry } from './QueryCacheConfig';
|
|
1
|
+
import { QueryCacheConfig, QueryCacheEntry } from './QueryCacheConfig.js';
|
|
2
2
|
/**
|
|
3
3
|
* LRU (Least Recently Used) cache implementation for query results with TTL support.
|
|
4
4
|
* This cache provides efficient storage and retrieval of query results with automatic
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.QueryCache = void 0;
|
|
4
|
-
const logging_1 = require("./logging");
|
|
1
|
+
import { LogStatus } from './logging.js';
|
|
5
2
|
/**
|
|
6
3
|
* LRU (Least Recently Used) cache implementation for query results with TTL support.
|
|
7
4
|
* This cache provides efficient storage and retrieval of query results with automatic
|
|
8
5
|
* expiration based on time-to-live settings and size limits.
|
|
9
6
|
*/
|
|
10
|
-
class QueryCache {
|
|
7
|
+
export class QueryCache {
|
|
11
8
|
constructor() {
|
|
12
9
|
this.cache = new Map();
|
|
13
10
|
this.accessOrder = [];
|
|
@@ -92,7 +89,7 @@ class QueryCache {
|
|
|
92
89
|
if (lruKey) {
|
|
93
90
|
this.cache.delete(lruKey);
|
|
94
91
|
this.stats.evictions++;
|
|
95
|
-
|
|
92
|
+
LogStatus(`Cache eviction: Removed LRU entry for key ${lruKey}`);
|
|
96
93
|
}
|
|
97
94
|
}
|
|
98
95
|
const entry = {
|
|
@@ -120,14 +117,14 @@ class QueryCache {
|
|
|
120
117
|
this.cache.delete(key);
|
|
121
118
|
this.removeFromAccessOrder(key);
|
|
122
119
|
});
|
|
123
|
-
|
|
120
|
+
LogStatus(`Cleared ${keysToDelete.length} cache entries for query ${queryId}`);
|
|
124
121
|
}
|
|
125
122
|
else {
|
|
126
123
|
// Clear entire cache
|
|
127
124
|
const size = this.cache.size;
|
|
128
125
|
this.cache.clear();
|
|
129
126
|
this.accessOrder = [];
|
|
130
|
-
|
|
127
|
+
LogStatus(`Cleared entire query cache (${size} entries)`);
|
|
131
128
|
}
|
|
132
129
|
}
|
|
133
130
|
/**
|
|
@@ -189,10 +186,9 @@ class QueryCache {
|
|
|
189
186
|
}
|
|
190
187
|
}
|
|
191
188
|
if (cleaned > 0) {
|
|
192
|
-
|
|
189
|
+
LogStatus(`Cleaned up ${cleaned} expired cache entries`);
|
|
193
190
|
}
|
|
194
191
|
return cleaned;
|
|
195
192
|
}
|
|
196
193
|
}
|
|
197
|
-
exports.QueryCache = QueryCache;
|
|
198
194
|
//# sourceMappingURL=QueryCache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryCache.js","sourceRoot":"","sources":["../../src/generic/QueryCache.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"QueryCache.js","sourceRoot":"","sources":["../../src/generic/QueryCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.LoadOnStartup = exports.StartupManager = exports.RegisterForStartup = void 0;
|
|
4
|
-
const metadata_1 = require("./metadata");
|
|
5
|
-
const localCacheManager_1 = require("./localCacheManager");
|
|
1
|
+
import { Metadata } from "./metadata.js";
|
|
2
|
+
import { LocalCacheManager } from "./localCacheManager.js";
|
|
6
3
|
/**
|
|
7
4
|
* Internal function that performs the actual registration
|
|
8
5
|
*/
|
|
@@ -22,7 +19,7 @@ function registerStartupClass(constructor, options) {
|
|
|
22
19
|
});
|
|
23
20
|
return constructor;
|
|
24
21
|
}
|
|
25
|
-
function RegisterForStartup(constructorOrOptions) {
|
|
22
|
+
export function RegisterForStartup(constructorOrOptions) {
|
|
26
23
|
// Check if called directly on a class (without parentheses)
|
|
27
24
|
// In that case, the first argument is the constructor function
|
|
28
25
|
if (typeof constructorOrOptions === 'function') {
|
|
@@ -35,7 +32,6 @@ function RegisterForStartup(constructorOrOptions) {
|
|
|
35
32
|
return registerStartupClass(constructor, options);
|
|
36
33
|
};
|
|
37
34
|
}
|
|
38
|
-
exports.RegisterForStartup = RegisterForStartup;
|
|
39
35
|
// ============================================================================
|
|
40
36
|
// STARTUP MANAGER - Handles all startup loading infrastructure
|
|
41
37
|
// ============================================================================
|
|
@@ -43,7 +39,7 @@ exports.RegisterForStartup = RegisterForStartup;
|
|
|
43
39
|
* Manages registration and loading of startup classes.
|
|
44
40
|
* This is a singleton that handles the @RegisterForStartup decorator pattern.
|
|
45
41
|
*/
|
|
46
|
-
class StartupManager {
|
|
42
|
+
export class StartupManager {
|
|
47
43
|
constructor() {
|
|
48
44
|
this._registrations = [];
|
|
49
45
|
this._loadCompleted = false;
|
|
@@ -130,8 +126,8 @@ class StartupManager {
|
|
|
130
126
|
// first, init the LocalCacheManager and await its completion
|
|
131
127
|
// Get the storage provider from the metadata provider (uses IndexedDB)
|
|
132
128
|
const cacheStart = Date.now();
|
|
133
|
-
const storageProvider =
|
|
134
|
-
await
|
|
129
|
+
const storageProvider = Metadata.Provider.LocalStorageProvider;
|
|
130
|
+
await LocalCacheManager.Instance.Initialize(storageProvider);
|
|
135
131
|
console.log(`LocalCacheManager initialized in ${Date.now() - cacheStart}ms`);
|
|
136
132
|
const startTime = Date.now();
|
|
137
133
|
const registrations = this.GetRegistrations();
|
|
@@ -225,9 +221,8 @@ class StartupManager {
|
|
|
225
221
|
this._lastResult = null;
|
|
226
222
|
}
|
|
227
223
|
}
|
|
228
|
-
exports.StartupManager = StartupManager;
|
|
229
224
|
/**
|
|
230
225
|
* @deprecated Use RegisterForStartup instead
|
|
231
226
|
*/
|
|
232
|
-
|
|
227
|
+
export const LoadOnStartup = RegisterForStartup;
|
|
233
228
|
//# sourceMappingURL=RegisterForStartup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegisterForStartup.js","sourceRoot":"","sources":["../../src/generic/RegisterForStartup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RegisterForStartup.js","sourceRoot":"","sources":["../../src/generic/RegisterForStartup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BaseInfo } from './baseInfo';
|
|
2
|
-
import { EntityInfo } from './entityInfo';
|
|
3
|
-
import { IMetadataProvider } from './interfaces';
|
|
1
|
+
import { BaseInfo } from './baseInfo.js';
|
|
2
|
+
import { EntityInfo } from './entityInfo.js';
|
|
3
|
+
import { IMetadataProvider } from './interfaces.js';
|
|
4
4
|
/**
|
|
5
5
|
* Stores configuration settings and preferences for applications, including key-value pairs for runtime parameters and user-specific customizations.
|
|
6
6
|
*/
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ApplicationInfo = exports.ApplicationEntityInfo = exports.ApplicationSettingInfo = void 0;
|
|
4
|
-
const baseInfo_1 = require("./baseInfo");
|
|
1
|
+
import { BaseInfo } from './baseInfo.js';
|
|
5
2
|
/**
|
|
6
3
|
* Stores configuration settings and preferences for applications, including key-value pairs for runtime parameters and user-specific customizations.
|
|
7
4
|
*/
|
|
8
|
-
class ApplicationSettingInfo extends
|
|
5
|
+
export class ApplicationSettingInfo extends BaseInfo {
|
|
9
6
|
constructor(initData = null) {
|
|
10
7
|
super();
|
|
11
8
|
/**
|
|
@@ -39,11 +36,10 @@ class ApplicationSettingInfo extends baseInfo_1.BaseInfo {
|
|
|
39
36
|
this.copyInitData(initData);
|
|
40
37
|
}
|
|
41
38
|
}
|
|
42
|
-
exports.ApplicationSettingInfo = ApplicationSettingInfo;
|
|
43
39
|
/**
|
|
44
40
|
* List of entities within each application. An application can have any number of entities and an entity can be part of any number of applications.
|
|
45
41
|
*/
|
|
46
|
-
class ApplicationEntityInfo extends
|
|
42
|
+
export class ApplicationEntityInfo extends BaseInfo {
|
|
47
43
|
/**
|
|
48
44
|
* Gets the full entity metadata for the entity linked to this application.
|
|
49
45
|
* @returns {EntityInfo} The entity information object
|
|
@@ -104,12 +100,11 @@ class ApplicationEntityInfo extends baseInfo_1.BaseInfo {
|
|
|
104
100
|
this.copyInitData(initData);
|
|
105
101
|
}
|
|
106
102
|
}
|
|
107
|
-
exports.ApplicationEntityInfo = ApplicationEntityInfo;
|
|
108
103
|
/**
|
|
109
104
|
* Applications are used to group entities in the user interface for ease of user access.
|
|
110
105
|
* Provides organizational structure for presenting entities to users.
|
|
111
106
|
*/
|
|
112
|
-
class ApplicationInfo extends
|
|
107
|
+
export class ApplicationInfo extends BaseInfo {
|
|
113
108
|
/**
|
|
114
109
|
* Gets the list of entities that belong to this application with their display sequence.
|
|
115
110
|
* @returns {ApplicationEntityInfo[]} Array of application entity mappings
|
|
@@ -232,5 +227,4 @@ class ApplicationInfo extends baseInfo_1.BaseInfo {
|
|
|
232
227
|
}
|
|
233
228
|
}
|
|
234
229
|
}
|
|
235
|
-
exports.ApplicationInfo = ApplicationInfo;
|
|
236
230
|
//# sourceMappingURL=applicationInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applicationInfo.js","sourceRoot":"","sources":["../../src/generic/applicationInfo.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"applicationInfo.js","sourceRoot":"","sources":["../../src/generic/applicationInfo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AuthorizationEvaluator = void 0;
|
|
4
|
-
const metadata_1 = require("./metadata");
|
|
1
|
+
import { Metadata } from "./metadata.js";
|
|
5
2
|
/**
|
|
6
3
|
* This class handles the execution of various types of authorization evaluations and contains utility methods as well.
|
|
7
4
|
*/
|
|
8
|
-
class AuthorizationEvaluator {
|
|
5
|
+
export class AuthorizationEvaluator {
|
|
9
6
|
/**
|
|
10
7
|
* Determines if the current user can execute actions under the provided authorization.
|
|
11
8
|
* @param auth
|
|
12
9
|
* @returns
|
|
13
10
|
*/
|
|
14
11
|
CurrentUserCanExecute(auth) {
|
|
15
|
-
const md = new
|
|
12
|
+
const md = new Metadata();
|
|
16
13
|
if (!md.CurrentUser)
|
|
17
14
|
throw new Error('No current user is set for authorization evaluation');
|
|
18
15
|
return this.UserCanExecute(auth, md.CurrentUser);
|
|
@@ -31,7 +28,7 @@ class AuthorizationEvaluator {
|
|
|
31
28
|
* Returns an array of authorizations that a given user can execute based on their roles.
|
|
32
29
|
*/
|
|
33
30
|
GetUserAuthorizations(user) {
|
|
34
|
-
const md = new
|
|
31
|
+
const md = new Metadata();
|
|
35
32
|
const ret = [];
|
|
36
33
|
if (user && user.UserRoles) {
|
|
37
34
|
for (const a of md.Authorizations) {
|
|
@@ -45,5 +42,4 @@ class AuthorizationEvaluator {
|
|
|
45
42
|
throw new Error('User must be provided to evaluate authorizations');
|
|
46
43
|
}
|
|
47
44
|
}
|
|
48
|
-
exports.AuthorizationEvaluator = AuthorizationEvaluator;
|
|
49
45
|
//# sourceMappingURL=authEvaluator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authEvaluator.js","sourceRoot":"","sources":["../../src/generic/authEvaluator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"authEvaluator.js","sourceRoot":"","sources":["../../src/generic/authEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC;;GAEG;AACH,MAAM,OAAO,sBAAsB;IAC/B;;;;OAIG;IACI,qBAAqB,CAAC,IAAuB;QAChD,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,EAAE,CAAC,WAAW;YACf,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;QAE1E,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,CAAA;IACpD,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CAAC,IAAuB,EAAE,IAAc;QACzD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IAED;;OAEG;IACI,qBAAqB,CAAC,IAAc;QACvC,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAwB,EAAE,CAAA;QACnC,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC;gBAChC,iFAAiF;gBACjF,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC;oBACtB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YACD,OAAO,GAAG,CAAC;QACf,CAAC;;YAEG,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;IAC3E,CAAC;CACJ"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Common authentication types shared between frontend and backend authentication systems
|
|
4
3
|
* This file provides type definitions used by both JWT validation (backend) and OAuth flows (frontend)
|
|
5
4
|
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.AUTH_PROVIDER_TYPES = void 0;
|
|
8
5
|
/**
|
|
9
6
|
* Standard authentication provider types
|
|
10
7
|
*/
|
|
11
|
-
|
|
8
|
+
export const AUTH_PROVIDER_TYPES = {
|
|
12
9
|
MSAL: 'msal',
|
|
13
10
|
AUTH0: 'auth0',
|
|
14
11
|
OKTA: 'okta',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authTypes.js","sourceRoot":"","sources":["../../src/generic/authTypes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"authTypes.js","sourceRoot":"","sources":["../../src/generic/authTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CACR,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BaseSingleton, MJEvent } from "@memberjunction/global";
|
|
2
2
|
import { BehaviorSubject, Observable } from "rxjs";
|
|
3
|
-
import { UserInfo } from "./securityInfo";
|
|
4
|
-
import { DatasetItemFilterType, IMetadataProvider, IRunViewProvider, RunViewResult } from "./interfaces";
|
|
5
|
-
import { BaseInfo } from "./baseInfo";
|
|
6
|
-
import { BaseEntity, BaseEntityEvent } from "./baseEntity";
|
|
7
|
-
import { IStartupSink } from "./RegisterForStartup";
|
|
3
|
+
import { UserInfo } from "./securityInfo.js";
|
|
4
|
+
import { DatasetItemFilterType, IMetadataProvider, IRunViewProvider, RunViewResult } from "./interfaces.js";
|
|
5
|
+
import { BaseInfo } from "./baseInfo.js";
|
|
6
|
+
import { BaseEntity, BaseEntityEvent } from "./baseEntity.js";
|
|
7
|
+
import { IStartupSink } from "./RegisterForStartup.js";
|
|
8
8
|
/**
|
|
9
9
|
* Property configuration for the BaseEngine class to automatically load/set properties on the class.
|
|
10
10
|
*/
|