@memberjunction/templates 6.2.0-edge.3 → 6.2.0-edge.5
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/README.md +85 -1
- package/dist/InheritedMemberNames.d.ts +12 -0
- package/dist/InheritedMemberNames.d.ts.map +1 -0
- package/dist/InheritedMemberNames.js +19 -0
- package/dist/InheritedMemberNames.js.map +1 -0
- package/dist/NunjucksCompileGuard.d.ts +17 -0
- package/dist/NunjucksCompileGuard.d.ts.map +1 -0
- package/dist/NunjucksCompileGuard.js +273 -0
- package/dist/NunjucksCompileGuard.js.map +1 -0
- package/dist/NunjucksSandbox.d.ts +26 -0
- package/dist/NunjucksSandbox.d.ts.map +1 -0
- package/dist/NunjucksSandbox.js +317 -0
- package/dist/NunjucksSandbox.js.map +1 -0
- package/dist/TemplateEngine.d.ts +41 -9
- package/dist/TemplateEngine.d.ts.map +1 -1
- package/dist/TemplateEngine.js +123 -23
- package/dist/TemplateEngine.js.map +1 -1
- package/dist/TemplateSandboxError.d.ts +9 -0
- package/dist/TemplateSandboxError.d.ts.map +1 -0
- package/dist/TemplateSandboxError.js +12 -0
- package/dist/TemplateSandboxError.js.map +1 -0
- package/dist/TemplateVariableAnalysis.d.ts +27 -0
- package/dist/TemplateVariableAnalysis.d.ts.map +1 -0
- package/dist/TemplateVariableAnalysis.js +140 -0
- package/dist/TemplateVariableAnalysis.js.map +1 -0
- package/dist/extensions/TemplateEmbed.extension.d.ts +13 -1
- package/dist/extensions/TemplateEmbed.extension.d.ts.map +1 -1
- package/dist/extensions/TemplateEmbed.extension.js +16 -8
- package/dist/extensions/TemplateEmbed.extension.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/operations/TemplateRunAuthorization.d.ts +20 -0
- package/dist/operations/TemplateRunAuthorization.d.ts.map +1 -0
- package/dist/operations/TemplateRunAuthorization.js +37 -0
- package/dist/operations/TemplateRunAuthorization.js.map +1 -0
- package/dist/operations/TemplateRunOperation.d.ts +6 -0
- package/dist/operations/TemplateRunOperation.d.ts.map +1 -1
- package/dist/operations/TemplateRunOperation.js +10 -1
- package/dist/operations/TemplateRunOperation.js.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateEmbed.extension.js","sourceRoot":"","sources":["../../src/extensions/TemplateEmbed.extension.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TemplateEmbed.extension.js","sourceRoot":"","sources":["../../src/extensions/TemplateEmbed.extension.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
export * from './TemplateEngine.js';
|
|
2
|
+
export * from './NunjucksSandbox.js';
|
|
3
|
+
export * from './NunjucksCompileGuard.js';
|
|
4
|
+
export * from './TemplateSandboxError.js';
|
|
5
|
+
export * from './TemplateVariableAnalysis.js';
|
|
2
6
|
export * from './extensions/AIPrompt.extension.js';
|
|
3
7
|
export * from './extensions/TemplateEmbed.extension.js';
|
|
4
8
|
export * from './extensions/TemplateExtensionBase.js';
|
|
5
9
|
export * from './operations/TemplateRunOperation.js';
|
|
10
|
+
export * from './operations/TemplateRunAuthorization.js';
|
|
6
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
export * from './TemplateEngine.js';
|
|
2
|
+
export * from './NunjucksSandbox.js';
|
|
3
|
+
export * from './NunjucksCompileGuard.js';
|
|
4
|
+
export * from './TemplateSandboxError.js';
|
|
5
|
+
export * from './TemplateVariableAnalysis.js';
|
|
2
6
|
export * from './extensions/AIPrompt.extension.js';
|
|
3
7
|
export * from './extensions/TemplateEmbed.extension.js';
|
|
4
8
|
export * from './extensions/TemplateExtensionBase.js';
|
|
5
9
|
export * from './operations/TemplateRunOperation.js';
|
|
10
|
+
export * from './operations/TemplateRunAuthorization.js';
|
|
6
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Decides who may render a stored template on demand, through the `RunTemplate`
|
|
3
|
+
* mutation or the `Template.Run` remote operation.
|
|
4
|
+
* @module @memberjunction/templates
|
|
5
|
+
*/
|
|
6
|
+
import type { IMetadataProvider, UserInfo } from '@memberjunction/core';
|
|
7
|
+
/**
|
|
8
|
+
* Checks whether a principal may render a stored template on demand. A run is refused for:
|
|
9
|
+
* - a missing principal
|
|
10
|
+
* - a scope-limited session (an anonymous magic-link or widget guest, or a resource-scoped
|
|
11
|
+
* magic-link session), whose confinement exists only as row-level security on entity reads
|
|
12
|
+
* - a principal without read permission on `MJ: Templates` and `MJ: Template Contents`
|
|
13
|
+
*
|
|
14
|
+
* Row-level security on the requested template still applies when the caller loads it.
|
|
15
|
+
* @param user the acting principal
|
|
16
|
+
* @param metadata the source of entity permissions; a missing provider refuses the run
|
|
17
|
+
* @returns `null` when the run may proceed, otherwise the reason it is refused
|
|
18
|
+
*/
|
|
19
|
+
export declare function GetTemplateRunRefusal(user: UserInfo | null | undefined, metadata: Pick<IMetadataProvider, 'EntityByName'> | null | undefined): string | null;
|
|
20
|
+
//# sourceMappingURL=TemplateRunAuthorization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateRunAuthorization.d.ts","sourceRoot":"","sources":["../../src/operations/TemplateRunAuthorization.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKxE;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,EACjC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC,GAAG,IAAI,GAAG,SAAS,GACrE,MAAM,GAAG,IAAI,CAaf"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** The entities a template run reads: the template, and the content it renders. */
|
|
2
|
+
const TEMPLATE_RUN_ENTITIES = ['MJ: Templates', 'MJ: Template Contents'];
|
|
3
|
+
/**
|
|
4
|
+
* Checks whether a principal may render a stored template on demand. A run is refused for:
|
|
5
|
+
* - a missing principal
|
|
6
|
+
* - a scope-limited session (an anonymous magic-link or widget guest, or a resource-scoped
|
|
7
|
+
* magic-link session), whose confinement exists only as row-level security on entity reads
|
|
8
|
+
* - a principal without read permission on `MJ: Templates` and `MJ: Template Contents`
|
|
9
|
+
*
|
|
10
|
+
* Row-level security on the requested template still applies when the caller loads it.
|
|
11
|
+
* @param user the acting principal
|
|
12
|
+
* @param metadata the source of entity permissions; a missing provider refuses the run
|
|
13
|
+
* @returns `null` when the run may proceed, otherwise the reason it is refused
|
|
14
|
+
*/
|
|
15
|
+
export function GetTemplateRunRefusal(user, metadata) {
|
|
16
|
+
if (!user) {
|
|
17
|
+
return 'Unable to determine current user';
|
|
18
|
+
}
|
|
19
|
+
if (isScopeLimited(user)) {
|
|
20
|
+
return 'Running templates is not permitted for scope-limited sessions';
|
|
21
|
+
}
|
|
22
|
+
for (const entityName of TEMPLATE_RUN_ENTITIES) {
|
|
23
|
+
if (!metadata?.EntityByName(entityName)?.GetUserPermisions(user)?.CanRead) {
|
|
24
|
+
return `You do not have permission to read ${entityName}`;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* True for a session confined by per-session scope rather than by its roles. Matches
|
|
31
|
+
* `IsScopeLimitedPrincipal` in `@memberjunction/server`, which this package cannot import.
|
|
32
|
+
*/
|
|
33
|
+
function isScopeLimited(user) {
|
|
34
|
+
const scope = user.MagicLinkScope;
|
|
35
|
+
return user.IsMagicLinkAnonymous || !!(scope?.ResourceID || scope?.ResourceType);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=TemplateRunAuthorization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateRunAuthorization.js","sourceRoot":"","sources":["../../src/operations/TemplateRunAuthorization.ts"],"names":[],"mappings":"AAOA,mFAAmF;AACnF,MAAM,qBAAqB,GAAG,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC;AAEzE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACjC,IAAiC,EACjC,QAAoE;IAEpE,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,kCAAkC,CAAC;IAC9C,CAAC;IACD,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,+DAA+D,CAAC;IAC3E,CAAC;IACD,KAAK,MAAM,UAAU,IAAI,qBAAqB,EAAE,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;YACxE,OAAO,sCAAsC,UAAU,EAAE,CAAC;QAC9D,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,IAAc;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;IAClC,OAAO,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,IAAI,KAAK,EAAE,YAAY,CAAC,CAAC;AACrF,CAAC"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { IMetadataProvider, UserInfo } from '@memberjunction/core';
|
|
2
2
|
import { TemplateRunOperation, type TemplateRunInput, type TemplateRunOutput } from '@memberjunction/core-entities';
|
|
3
3
|
export declare class TemplateRunServerOperation extends TemplateRunOperation {
|
|
4
|
+
/**
|
|
5
|
+
* Refuses scope-limited sessions and callers who cannot read templates and their content.
|
|
6
|
+
* The remote-operation resolver checks only API-key scope, which JWT, magic-link and widget
|
|
7
|
+
* sessions do not carry.
|
|
8
|
+
*/
|
|
9
|
+
protected Authorize(_input: TemplateRunInput, user: UserInfo): Promise<boolean>;
|
|
4
10
|
protected InternalExecute(input: TemplateRunInput, provider: IMetadataProvider, user: UserInfo): Promise<TemplateRunOutput>;
|
|
5
11
|
}
|
|
6
12
|
//# sourceMappingURL=TemplateRunOperation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateRunOperation.d.ts","sourceRoot":"","sources":["../../src/operations/TemplateRunOperation.ts"],"names":[],"mappings":"AAUA,OAAO,EAA0B,iBAAiB,
|
|
1
|
+
{"version":3,"file":"TemplateRunOperation.d.ts","sourceRoot":"","sources":["../../src/operations/TemplateRunOperation.ts"],"names":[],"mappings":"AAUA,OAAO,EAA0B,iBAAiB,EAAqB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE9G,OAAO,EAAE,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAIpH,qBACa,0BAA2B,SAAQ,oBAAoB;IAChE;;;;OAIG;cACsB,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;cAI9E,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAqCpI"}
|
|
@@ -14,10 +14,19 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
14
14
|
* @module @memberjunction/templates
|
|
15
15
|
*/
|
|
16
16
|
import { RegisterClass } from '@memberjunction/global';
|
|
17
|
-
import { BaseRemotableOperation, RunView } from '@memberjunction/core';
|
|
17
|
+
import { BaseRemotableOperation, Metadata, RunView } from '@memberjunction/core';
|
|
18
18
|
import { TemplateRunOperation } from '@memberjunction/core-entities';
|
|
19
19
|
import { TemplateEngineServer } from '../TemplateEngine.js';
|
|
20
|
+
import { GetTemplateRunRefusal } from './TemplateRunAuthorization.js';
|
|
20
21
|
let TemplateRunServerOperation = class TemplateRunServerOperation extends TemplateRunOperation {
|
|
22
|
+
/**
|
|
23
|
+
* Refuses scope-limited sessions and callers who cannot read templates and their content.
|
|
24
|
+
* The remote-operation resolver checks only API-key scope, which JWT, magic-link and widget
|
|
25
|
+
* sessions do not carry.
|
|
26
|
+
*/
|
|
27
|
+
async Authorize(_input, user) {
|
|
28
|
+
return GetTemplateRunRefusal(user, Metadata.Provider) === null; // global-provider-ok: Authorize receives no provider; entity permissions are process-global metadata
|
|
29
|
+
}
|
|
21
30
|
async InternalExecute(input, provider, user) {
|
|
22
31
|
if (!input?.templateID) {
|
|
23
32
|
throw new Error('templateID is required');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateRunOperation.js","sourceRoot":"","sources":["../../src/operations/TemplateRunOperation.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAqB,OAAO,EAAY,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"TemplateRunOperation.js","sourceRoot":"","sources":["../../src/operations/TemplateRunOperation.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAqB,QAAQ,EAAE,OAAO,EAAY,MAAM,sBAAsB,CAAC;AAE9G,OAAO,EAAE,oBAAoB,EAAiD,MAAM,+BAA+B,CAAC;AACpH,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAG5D,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,oBAAoB;IAChE;;;;OAIG;IACgB,KAAK,CAAC,SAAS,CAAC,MAAwB,EAAE,IAAc;QACvE,OAAO,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,qGAAqG;IACzK,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,KAAuB,EAAE,QAA2B,EAAE,IAAc;QAChG,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,eAAe,CAA2B,eAAe,EAAE,IAAI,CAAC,CAAC;QACvG,MAAM,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,CAAC,UAAU,YAAY,CAAC,CAAC;QACtE,CAAC;QAED,6CAA6C;QAC7C,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAA0B;YAChG,UAAU,EAAE,uBAAuB;YACnC,WAAW,EAAE,iBAAiB,KAAK,CAAC,UAAU,GAAG;YACjD,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,eAAe;SAC9B,EAAE,IAAI,CAAC,CAAC;QACT,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,0CAA0C,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACrF,CAAC;QAED,MAAM,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvG,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,QAAQ,CAAC,cAAc,CAC7D,cAAc,EACd,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EACxB,KAAK,CAAC,IAAI,IAAI,EAAE,EAChB,IAAI,CAAC,mCAAmC,CAC3C,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,wBAAwB,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;IACpF,CAAC;CACJ,CAAA;AA/CY,0BAA0B;IADtC,aAAa,CAAC,sBAAsB,EAAE,cAAc,CAAC;GACzC,0BAA0B,CA+CtC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/templates",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "6.2.0-edge.
|
|
4
|
+
"version": "6.2.0-edge.5",
|
|
5
5
|
"description": "MemberJunction Templating Engine and Utilities - Used for any application that requires templating utility functionality. NOTE: this package does use Angular Universal for compilation but is not marked with the usual ng prefix because it is a server-side library and not used within Angular apps.",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
"typescript": "^5.9.3"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@memberjunction/core": "6.2.0-edge.
|
|
18
|
-
"@memberjunction/templates-base-types": "6.2.0-edge.
|
|
19
|
-
"@memberjunction/ai": "6.2.0-edge.
|
|
20
|
-
"@memberjunction/ai-core-plus": "6.2.0-edge.
|
|
21
|
-
"@memberjunction/aiengine": "6.2.0-edge.
|
|
22
|
-
"@memberjunction/ai-provider-bundle": "6.2.0-edge.
|
|
23
|
-
"@memberjunction/core-entities": "6.2.0-edge.
|
|
24
|
-
"@memberjunction/global": "6.2.0-edge.
|
|
17
|
+
"@memberjunction/core": "6.2.0-edge.5",
|
|
18
|
+
"@memberjunction/templates-base-types": "6.2.0-edge.5",
|
|
19
|
+
"@memberjunction/ai": "6.2.0-edge.5",
|
|
20
|
+
"@memberjunction/ai-core-plus": "6.2.0-edge.5",
|
|
21
|
+
"@memberjunction/aiengine": "6.2.0-edge.5",
|
|
22
|
+
"@memberjunction/ai-provider-bundle": "6.2.0-edge.5",
|
|
23
|
+
"@memberjunction/core-entities": "6.2.0-edge.5",
|
|
24
|
+
"@memberjunction/global": "6.2.0-edge.5",
|
|
25
25
|
"nunjucks": "3.2.4"
|
|
26
26
|
},
|
|
27
27
|
"repository": {
|