@memberjunction/generic-database-provider 6.1.0-edge.0 → 6.1.0-edge.2
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/GenericDatabaseProvider.d.ts +32 -2
- package/dist/GenericDatabaseProvider.d.ts.map +1 -1
- package/dist/GenericDatabaseProvider.js +133 -29
- package/dist/GenericDatabaseProvider.js.map +1 -1
- package/dist/UserCache.d.ts +59 -0
- package/dist/UserCache.d.ts.map +1 -0
- package/dist/UserCache.js +103 -0
- package/dist/UserCache.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +14 -14
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { UserInfo, type DatabaseProviderBase } from '@memberjunction/core';
|
|
2
|
+
import { BaseSingleton } from '@memberjunction/global';
|
|
3
|
+
/**
|
|
4
|
+
* Server side cache of users and their roles.
|
|
5
|
+
*
|
|
6
|
+
* Dialect-neutral: {@link UserCache.Refresh} takes a {@link DatabaseProviderBase} and reads through
|
|
7
|
+
* `ExecuteSQL` / `QuoteSchemaAndView`, so SQL Server and PostgreSQL processes share one
|
|
8
|
+
* implementation rather than each hand-rolling a `vwUsers` + `vwUserRoles` load.
|
|
9
|
+
*
|
|
10
|
+
* Uses BaseSingleton to guarantee a single instance across the entire process,
|
|
11
|
+
* even if bundlers duplicate this module across multiple execution paths.
|
|
12
|
+
*
|
|
13
|
+
* NOTE: the class name `UserCache` is load-bearing — `BaseSingleton` keys its global store on the
|
|
14
|
+
* constructor name, so renaming it would hand every existing holder a second, empty instance.
|
|
15
|
+
*/
|
|
16
|
+
export declare class UserCache extends BaseSingleton<UserCache> {
|
|
17
|
+
/**
|
|
18
|
+
* Defaults to an empty array so that a `Refresh` that never ran — or one that failed and was
|
|
19
|
+
* swallowed into `LogError` below — yields an empty cache rather than a `TypeError` off
|
|
20
|
+
* `.find()`. Callers already treat a missing system user as `undefined`.
|
|
21
|
+
*/
|
|
22
|
+
private _users;
|
|
23
|
+
/**
|
|
24
|
+
* Use UserCache.Instance to get the singleton instance.
|
|
25
|
+
*/
|
|
26
|
+
constructor();
|
|
27
|
+
get SYSTEM_USER_ID(): string;
|
|
28
|
+
/**
|
|
29
|
+
* Returns the system user, or `undefined` when the cache has not been refreshed or the row is
|
|
30
|
+
* absent — every caller already guards for that, and with `_users` defaulting to `[]` this can
|
|
31
|
+
* no longer throw. The declared return type stays `UserInfo` because widening it to
|
|
32
|
+
* `UserInfo | undefined` is a read-surface change, and Phase 1 of the provider refactor moves
|
|
33
|
+
* this class without touching its read surface. The new home compiles under `strict`, hence the
|
|
34
|
+
* explicit assertion where the old one silently inferred the same lie.
|
|
35
|
+
*/
|
|
36
|
+
GetSystemUser(): UserInfo;
|
|
37
|
+
/**
|
|
38
|
+
* This method will refresh the cache with the latest data from the database
|
|
39
|
+
* @param provider - the configured database provider to read through. Works on any dialect —
|
|
40
|
+
* the SQL is built with the provider's own quoting and core-schema name.
|
|
41
|
+
* @param autoRefreshIntervalMS - optional, if provided, the cache will be refreshed every interval as specified - denominated in milliseconds
|
|
42
|
+
*/
|
|
43
|
+
Refresh(provider: DatabaseProviderBase, autoRefreshIntervalMS?: number): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Reads `vwUsers` + `vwUserRoles` through the provider and stitches each user's roles onto it.
|
|
46
|
+
*/
|
|
47
|
+
protected LoadUsers(provider: DatabaseProviderBase): Promise<UserInfo[] | undefined>;
|
|
48
|
+
static get Instance(): UserCache;
|
|
49
|
+
get Users(): UserInfo[];
|
|
50
|
+
static get Users(): UserInfo[];
|
|
51
|
+
/**
|
|
52
|
+
* Convenience method to get a user by their name
|
|
53
|
+
* @param name - name of the user
|
|
54
|
+
* @param caseSensitive - optional, if true, the search will be case sensitive
|
|
55
|
+
* @returns
|
|
56
|
+
*/
|
|
57
|
+
UserByName(name: string, caseSensitive?: boolean): UserInfo | undefined;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=UserCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserCache.d.ts","sourceRoot":"","sources":["../src/UserCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAc,MAAM,wBAAwB,CAAC;AAenE;;;;;;;;;;;;GAYG;AACH,qBAAa,SAAU,SAAQ,aAAa,CAAC,SAAS,CAAC;IACnD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAkB;IAEhC;;OAEG;;IAKH,IAAW,cAAc,IAAI,MAAM,CAElC;IAED;;;;;;;OAOG;IACI,aAAa,IAAI,QAAQ;IAIhC;;;;;OAKG;IACU,OAAO,CAAC,QAAQ,EAAE,oBAAoB,EAAE,qBAAqB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBnG;;OAEG;cACa,SAAS,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC;IAa1F,WAAkB,QAAQ,IAAI,SAAS,CAEtC;IAED,IAAW,KAAK,IAAI,QAAQ,EAAE,CAE7B;IAED,MAAM,KAAK,KAAK,IAAI,QAAQ,EAAE,CAE7B;IAED;;;;;OAKG;IACI,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,GAAE,OAAe,GAAG,QAAQ,GAAG,SAAS;CAOxF"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { LogError, UserInfo } from '@memberjunction/core';
|
|
2
|
+
import { BaseSingleton, UUIDsEqual } from '@memberjunction/global';
|
|
3
|
+
const SYSTEM_USER_ID = 'ecafccec-6a37-ef11-86d4-000d3a4e707e';
|
|
4
|
+
/**
|
|
5
|
+
* Server side cache of users and their roles.
|
|
6
|
+
*
|
|
7
|
+
* Dialect-neutral: {@link UserCache.Refresh} takes a {@link DatabaseProviderBase} and reads through
|
|
8
|
+
* `ExecuteSQL` / `QuoteSchemaAndView`, so SQL Server and PostgreSQL processes share one
|
|
9
|
+
* implementation rather than each hand-rolling a `vwUsers` + `vwUserRoles` load.
|
|
10
|
+
*
|
|
11
|
+
* Uses BaseSingleton to guarantee a single instance across the entire process,
|
|
12
|
+
* even if bundlers duplicate this module across multiple execution paths.
|
|
13
|
+
*
|
|
14
|
+
* NOTE: the class name `UserCache` is load-bearing — `BaseSingleton` keys its global store on the
|
|
15
|
+
* constructor name, so renaming it would hand every existing holder a second, empty instance.
|
|
16
|
+
*/
|
|
17
|
+
export class UserCache extends BaseSingleton {
|
|
18
|
+
/**
|
|
19
|
+
* Use UserCache.Instance to get the singleton instance.
|
|
20
|
+
*/
|
|
21
|
+
constructor() {
|
|
22
|
+
super();
|
|
23
|
+
/**
|
|
24
|
+
* Defaults to an empty array so that a `Refresh` that never ran — or one that failed and was
|
|
25
|
+
* swallowed into `LogError` below — yields an empty cache rather than a `TypeError` off
|
|
26
|
+
* `.find()`. Callers already treat a missing system user as `undefined`.
|
|
27
|
+
*/
|
|
28
|
+
this._users = [];
|
|
29
|
+
}
|
|
30
|
+
get SYSTEM_USER_ID() {
|
|
31
|
+
return SYSTEM_USER_ID;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Returns the system user, or `undefined` when the cache has not been refreshed or the row is
|
|
35
|
+
* absent — every caller already guards for that, and with `_users` defaulting to `[]` this can
|
|
36
|
+
* no longer throw. The declared return type stays `UserInfo` because widening it to
|
|
37
|
+
* `UserInfo | undefined` is a read-surface change, and Phase 1 of the provider refactor moves
|
|
38
|
+
* this class without touching its read surface. The new home compiles under `strict`, hence the
|
|
39
|
+
* explicit assertion where the old one silently inferred the same lie.
|
|
40
|
+
*/
|
|
41
|
+
GetSystemUser() {
|
|
42
|
+
return this.Users.find((u) => u.ID.toLowerCase() === UserCache.Instance.SYSTEM_USER_ID.toLowerCase());
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* This method will refresh the cache with the latest data from the database
|
|
46
|
+
* @param provider - the configured database provider to read through. Works on any dialect —
|
|
47
|
+
* the SQL is built with the provider's own quoting and core-schema name.
|
|
48
|
+
* @param autoRefreshIntervalMS - optional, if provided, the cache will be refreshed every interval as specified - denominated in milliseconds
|
|
49
|
+
*/
|
|
50
|
+
async Refresh(provider, autoRefreshIntervalMS) {
|
|
51
|
+
try {
|
|
52
|
+
const users = await this.LoadUsers(provider);
|
|
53
|
+
if (users) {
|
|
54
|
+
this._users = users;
|
|
55
|
+
// refresh this every interval noted above to ensure we have the latest data
|
|
56
|
+
if (autoRefreshIntervalMS && autoRefreshIntervalMS > 0)
|
|
57
|
+
setTimeout(() => {
|
|
58
|
+
this.Refresh(provider, autoRefreshIntervalMS);
|
|
59
|
+
}, autoRefreshIntervalMS);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
LogError(err);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Reads `vwUsers` + `vwUserRoles` through the provider and stitches each user's roles onto it.
|
|
68
|
+
*/
|
|
69
|
+
async LoadUsers(provider) {
|
|
70
|
+
const coreSchema = provider.MJCoreSchemaName;
|
|
71
|
+
const users = await provider.ExecuteSQL(`SELECT * FROM ${provider.QuoteSchemaAndView(coreSchema, 'vwUsers')}`);
|
|
72
|
+
const roles = await provider.ExecuteSQL(`SELECT * FROM ${provider.QuoteSchemaAndView(coreSchema, 'vwUserRoles')}`);
|
|
73
|
+
if (!users)
|
|
74
|
+
return undefined;
|
|
75
|
+
return users.map((user) => {
|
|
76
|
+
user.UserRoles = (roles ?? []).filter((role) => UUIDsEqual(role.UserID, user.ID));
|
|
77
|
+
return new UserInfo(provider, user);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
static get Instance() {
|
|
81
|
+
return UserCache.getInstance();
|
|
82
|
+
}
|
|
83
|
+
get Users() {
|
|
84
|
+
return this._users;
|
|
85
|
+
}
|
|
86
|
+
static get Users() {
|
|
87
|
+
return UserCache.Instance.Users;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Convenience method to get a user by their name
|
|
91
|
+
* @param name - name of the user
|
|
92
|
+
* @param caseSensitive - optional, if true, the search will be case sensitive
|
|
93
|
+
* @returns
|
|
94
|
+
*/
|
|
95
|
+
UserByName(name, caseSensitive = false) {
|
|
96
|
+
return UserCache.Users.find(u => {
|
|
97
|
+
const comparisonItem = u.Name.trim();
|
|
98
|
+
const item = name.trim();
|
|
99
|
+
return caseSensitive ? comparisonItem === item : comparisonItem.toLowerCase() === item.toLowerCase();
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=UserCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserCache.js","sourceRoot":"","sources":["../src/UserCache.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { GenericDatabaseProvider, ExecuteSQLBatchOptions } from './GenericDataba
|
|
|
2
2
|
export type { SaveCoercedValue, SaveCallBinding, SaveSQLFragment, RecordChangePayload, } from './saveTypes.js';
|
|
3
3
|
export { CRUDSprocType, shouldIncludeFieldInParams, needsClearCompanionBroadRule, projectedParamCount, useJsonArgShape, } from './crudSprocFieldRules.js';
|
|
4
4
|
export { resolveDbPlatformFromEnv } from './dbPlatformEnv.js';
|
|
5
|
+
export { UserCache } from './UserCache.js';
|
|
5
6
|
export { SqlLoggingOptions, SqlLoggingSession } from './types.js';
|
|
6
7
|
export { SqlLoggingSessionImpl } from './SqlLogger.js';
|
|
7
8
|
export { QueryCompositionEngine, CompositionCTEInfo, CompositionResult } from './queryCompositionEngine.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC/F,YAAY,EACR,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,mBAAmB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,aAAa,EACb,0BAA0B,EAC1B,4BAA4B,EAC5B,mBAAmB,EACnB,eAAe,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC5G,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC7H,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,eAAe,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC/F,YAAY,EACR,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,mBAAmB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,aAAa,EACb,0BAA0B,EAC1B,4BAA4B,EAC5B,mBAAmB,EACnB,eAAe,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC5G,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC7H,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,eAAe,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { GenericDatabaseProvider } from './GenericDatabaseProvider.js';
|
|
2
2
|
export { shouldIncludeFieldInParams, needsClearCompanionBroadRule, projectedParamCount, useJsonArgShape, } from './crudSprocFieldRules.js';
|
|
3
3
|
export { resolveDbPlatformFromEnv } from './dbPlatformEnv.js';
|
|
4
|
+
export { UserCache } from './UserCache.js';
|
|
4
5
|
export { SqlLoggingSessionImpl } from './SqlLogger.js';
|
|
5
6
|
export { QueryCompositionEngine } from './queryCompositionEngine.js';
|
|
6
7
|
export { QueryPagingEngine } from './queryPagingEngine.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAA0B,MAAM,8BAA8B,CAAC;AAO/F,OAAO,EAEH,0BAA0B,EAC1B,4BAA4B,EAC5B,mBAAmB,EACnB,eAAe,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAA0B,MAAM,8BAA8B,CAAC;AAO/F,OAAO,EAEH,0BAA0B,EAC1B,4BAA4B,EAC5B,mBAAmB,EACnB,eAAe,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAyC,MAAM,6BAA6B,CAAC;AAC5G,OAAO,EAAE,iBAAiB,EAAoB,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAmE,MAAM,qBAAqB,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,uEAAuE;AACvE,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/generic-database-provider",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "6.1.0-edge.
|
|
4
|
+
"version": "6.1.0-edge.2",
|
|
5
5
|
"description": "Shared database provider logic for MemberJunction — intermediate base class between DatabaseProviderBase and platform-specific providers",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -16,19 +16,19 @@
|
|
|
16
16
|
"vitest": "^3.1.1"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@memberjunction/actions": "6.1.0-edge.
|
|
20
|
-
"@memberjunction/actions-base": "6.1.0-edge.
|
|
21
|
-
"@memberjunction/ai-vectors-memory": "6.1.0-edge.
|
|
22
|
-
"@memberjunction/aiengine": "6.1.0-edge.
|
|
23
|
-
"@memberjunction/core": "6.1.0-edge.
|
|
24
|
-
"@memberjunction/core-entities": "6.1.0-edge.
|
|
25
|
-
"@memberjunction/encryption": "6.1.0-edge.
|
|
26
|
-
"@memberjunction/geo-core": "6.1.0-edge.
|
|
27
|
-
"@memberjunction/global": "6.1.0-edge.
|
|
28
|
-
"@memberjunction/query-processor": "6.1.0-edge.
|
|
29
|
-
"@memberjunction/sql-dialect": "6.1.0-edge.
|
|
30
|
-
"@memberjunction/sql-parser": "6.1.0-edge.
|
|
31
|
-
"@memberjunction/queue": "6.1.0-edge.
|
|
19
|
+
"@memberjunction/actions": "6.1.0-edge.2",
|
|
20
|
+
"@memberjunction/actions-base": "6.1.0-edge.2",
|
|
21
|
+
"@memberjunction/ai-vectors-memory": "6.1.0-edge.2",
|
|
22
|
+
"@memberjunction/aiengine": "6.1.0-edge.2",
|
|
23
|
+
"@memberjunction/core": "6.1.0-edge.2",
|
|
24
|
+
"@memberjunction/core-entities": "6.1.0-edge.2",
|
|
25
|
+
"@memberjunction/encryption": "6.1.0-edge.2",
|
|
26
|
+
"@memberjunction/geo-core": "6.1.0-edge.2",
|
|
27
|
+
"@memberjunction/global": "6.1.0-edge.2",
|
|
28
|
+
"@memberjunction/query-processor": "6.1.0-edge.2",
|
|
29
|
+
"@memberjunction/sql-dialect": "6.1.0-edge.2",
|
|
30
|
+
"@memberjunction/sql-parser": "6.1.0-edge.2",
|
|
31
|
+
"@memberjunction/queue": "6.1.0-edge.2",
|
|
32
32
|
"sql-formatter": "^15.7.0",
|
|
33
33
|
"uuid": "^13.0.0"
|
|
34
34
|
},
|