@memberjunction/templates 6.2.0-edge.4 → 6.2.0-edge.6
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 +23 -1
- package/dist/NunjucksSandbox.js +39 -14
- package/dist/NunjucksSandbox.js.map +1 -1
- package/dist/TemplateEngine.d.ts +53 -10
- package/dist/TemplateEngine.d.ts.map +1 -1
- package/dist/TemplateEngine.js +142 -27
- package/dist/TemplateEngine.js.map +1 -1
- package/dist/TemplateRenderUser.d.ts +8 -0
- package/dist/TemplateRenderUser.d.ts.map +1 -0
- package/dist/TemplateRenderUser.js +15 -0
- package/dist/TemplateRenderUser.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/AIPrompt.extension.d.ts +15 -0
- package/dist/extensions/AIPrompt.extension.d.ts.map +1 -1
- package/dist/extensions/AIPrompt.extension.js +100 -70
- package/dist/extensions/AIPrompt.extension.js.map +1 -1
- 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/extensions/TemplateExtensionBase.d.ts +12 -1
- package/dist/extensions/TemplateExtensionBase.d.ts.map +1 -1
- package/dist/extensions/TemplateExtensionBase.js +13 -1
- package/dist/extensions/TemplateExtensionBase.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/operations/TemplateRunOperation.d.ts.map +1 -1
- package/dist/operations/TemplateRunOperation.js +1 -1
- package/dist/operations/TemplateRunOperation.js.map +1 -1
- package/package.json +9 -9
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
+
var TemplateEmbedExtension_1;
|
|
10
11
|
import { LogError, UserInfo } from "@memberjunction/core";
|
|
11
12
|
import { RegisterClass } from "@memberjunction/global";
|
|
12
13
|
import { TemplateExtensionBase } from "./TemplateExtensionBase.js";
|
|
@@ -26,7 +27,7 @@ import { TemplateEngineServer } from '../TemplateEngine.js';
|
|
|
26
27
|
* {% template "TemplateName", data={extra: "value"} %}
|
|
27
28
|
* {% template "TemplateName", type="PlainText", data={key: "value"} %}
|
|
28
29
|
*/
|
|
29
|
-
let TemplateEmbedExtension = class TemplateEmbedExtension extends TemplateExtensionBase {
|
|
30
|
+
let TemplateEmbedExtension = TemplateEmbedExtension_1 = class TemplateEmbedExtension extends TemplateExtensionBase {
|
|
30
31
|
constructor(contextUser) {
|
|
31
32
|
super(contextUser);
|
|
32
33
|
this.tags = ['template'];
|
|
@@ -149,8 +150,8 @@ let TemplateEmbedExtension = class TemplateEmbedExtension extends TemplateExtens
|
|
|
149
150
|
renderContext.templateStack.push(templateName);
|
|
150
151
|
const originalContentType = renderContext.currentContentType;
|
|
151
152
|
renderContext.currentContentType = templateContent.Type;
|
|
152
|
-
// Render the embedded template asynchronously
|
|
153
|
-
this.renderEmbeddedTemplate(templateEngine, templateContent, embeddedData)
|
|
153
|
+
// Render the embedded template asynchronously, in the outer render's escape mode
|
|
154
|
+
this.renderEmbeddedTemplate(templateEngine, targetTemplate, templateContent, embeddedData, TemplateEmbedExtension_1.RendersEscaped(context))
|
|
154
155
|
.then((result) => {
|
|
155
156
|
// Remove template from stack after successful rendering
|
|
156
157
|
renderContext.templateStack.pop();
|
|
@@ -221,19 +222,26 @@ let TemplateEmbedExtension = class TemplateEmbedExtension extends TemplateExtens
|
|
|
221
222
|
// Additional data takes precedence over current context
|
|
222
223
|
return { ...currentContext, ...additionalData };
|
|
223
224
|
}
|
|
225
|
+
/** Whether the render that reached this tag escapes its output; an embed inside a raw render renders raw too. */
|
|
226
|
+
static RendersEscaped(context) {
|
|
227
|
+
return context.env?.opts?.autoescape !== false;
|
|
228
|
+
}
|
|
224
229
|
/**
|
|
225
|
-
* Renders the embedded template content with the provided data context.
|
|
230
|
+
* Renders the embedded template content with the provided data context. A raw render goes through
|
|
231
|
+
* {@link TemplateEngineServer.RenderTemplate}, whose raw environment carries the extensions.
|
|
232
|
+
* The raw path renders through RenderTemplate so the registered extensions (nested embeds) stay available; unlike the escaped RenderTemplateSimple path it also merges the template's parameter defaults.
|
|
226
233
|
*/
|
|
227
|
-
async renderEmbeddedTemplate(templateEngine, templateContent, data) {
|
|
228
|
-
|
|
229
|
-
|
|
234
|
+
async renderEmbeddedTemplate(templateEngine, template, templateContent, data, autoescape) {
|
|
235
|
+
const result = autoescape
|
|
236
|
+
? await templateEngine.RenderTemplateSimple(templateContent.TemplateText, data)
|
|
237
|
+
: await templateEngine.RenderTemplate(template, templateContent, data, true, true, { autoescape: false });
|
|
230
238
|
if (!result.Success) {
|
|
231
239
|
throw new Error(`Failed to render embedded template: ${result.Message}`);
|
|
232
240
|
}
|
|
233
241
|
return result.Output;
|
|
234
242
|
}
|
|
235
243
|
};
|
|
236
|
-
TemplateEmbedExtension = __decorate([
|
|
244
|
+
TemplateEmbedExtension = TemplateEmbedExtension_1 = __decorate([
|
|
237
245
|
RegisterClass(TemplateExtensionBase, 'TemplateEmbed'),
|
|
238
246
|
__metadata("design:paramtypes", [UserInfo])
|
|
239
247
|
], TemplateEmbedExtension);
|
|
@@ -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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"}
|
|
@@ -16,8 +16,19 @@ export declare abstract class TemplateExtensionBase {
|
|
|
16
16
|
get tags(): string[];
|
|
17
17
|
/** @deprecated Use {@link Tags}. */
|
|
18
18
|
set tags(value: string[]);
|
|
19
|
-
|
|
19
|
+
/**
|
|
20
|
+
* The user this extension acts for: the user of the render in progress. An extension instance is
|
|
21
|
+
* shared by every render in the process, so it must read this at run time and never cache it.
|
|
22
|
+
* Inside a render that has no user it is undefined; it never falls back to the user the instance
|
|
23
|
+
* was constructed with, which is whichever caller first configured the engine. Outside a render
|
|
24
|
+
* it returns the constructed user.
|
|
25
|
+
*/
|
|
26
|
+
get ContextUser(): UserInfo | undefined;
|
|
20
27
|
private _contextUser;
|
|
28
|
+
/**
|
|
29
|
+
* @param contextUser fallback for {@link ContextUser} outside a render. The engine builds its
|
|
30
|
+
* extensions once, with whichever user configured it first, so a render never relies on this.
|
|
31
|
+
*/
|
|
21
32
|
constructor(contextUser: UserInfo);
|
|
22
33
|
/**
|
|
23
34
|
* Required, must implement this method to parse the template and return the results of a call to nodes.CallExtensionAsync()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateExtensionBase.d.ts","sourceRoot":"","sources":["../../src/extensions/TemplateExtensionBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"TemplateExtensionBase.d.ts","sourceRoot":"","sources":["../../src/extensions/TemplateExtensionBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,KAAK,MAAM,GAAG,GAAG,CAAC;AAClB,KAAK,KAAK,GAAG,GAAG,CAAC;AACjB,KAAK,KAAK,GAAG,GAAG,CAAC;AACjB,KAAK,OAAO,GAAG,GAAG,CAAC;AAInB,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;AAEzE;;GAEG;AACH,8BAAsB,qBAAqB;IACvC;;OAEG;IACI,IAAI,EAAE,MAAM,EAAE,CAAM;IAE3B,oCAAoC;IACpC,IAAW,IAAI,IAAI,MAAM,EAAE,CAE1B;IACD,oCAAoC;IACpC,IAAW,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAE9B;IAED;;;;;;OAMG;IACH,IAAW,WAAW,IAAI,QAAQ,GAAG,SAAS,CAE7C;IACD,OAAO,CAAC,YAAY,CAAW;IAE/B;;;OAGG;gBACS,WAAW,EAAE,QAAQ;IAIjC;;;;;OAKG;aACa,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,GAAG;IACtE;;;;;;;;;;;;;;;;;OAiBG;aACa,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;CACvD"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CurrentTemplateRenderUser, IsInsideTemplateRender } from "../TemplateRenderUser.js";
|
|
1
2
|
/**
|
|
2
3
|
* Used for extending the functionality of the template engine (Nunjucks). Sub-class this class to create a new template extension.
|
|
3
4
|
*/
|
|
@@ -10,9 +11,20 @@ export class TemplateExtensionBase {
|
|
|
10
11
|
set tags(value) {
|
|
11
12
|
this.Tags = value;
|
|
12
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* The user this extension acts for: the user of the render in progress. An extension instance is
|
|
16
|
+
* shared by every render in the process, so it must read this at run time and never cache it.
|
|
17
|
+
* Inside a render that has no user it is undefined; it never falls back to the user the instance
|
|
18
|
+
* was constructed with, which is whichever caller first configured the engine. Outside a render
|
|
19
|
+
* it returns the constructed user.
|
|
20
|
+
*/
|
|
13
21
|
get ContextUser() {
|
|
14
|
-
return this._contextUser;
|
|
22
|
+
return IsInsideTemplateRender() ? CurrentTemplateRenderUser() : this._contextUser;
|
|
15
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* @param contextUser fallback for {@link ContextUser} outside a render. The engine builds its
|
|
26
|
+
* extensions once, with whichever user configured it first, so a render never relies on this.
|
|
27
|
+
*/
|
|
16
28
|
constructor(contextUser) {
|
|
17
29
|
/**
|
|
18
30
|
* One or more tags that represent case-sensitive tag names that will invoke this extension.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateExtensionBase.js","sourceRoot":"","sources":["../../src/extensions/TemplateExtensionBase.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TemplateExtensionBase.js","sourceRoot":"","sources":["../../src/extensions/TemplateExtensionBase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAW1F;;GAEG;AACH,MAAM,OAAgB,qBAAqB;IAMvC,oCAAoC;IACpC,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IACD,oCAAoC;IACpC,IAAW,IAAI,CAAC,KAAe;QAC3B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;;;;;OAMG;IACH,IAAW,WAAW;QAClB,OAAO,sBAAsB,EAAE,CAAC,CAAC,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;IACtF,CAAC;IAGD;;;OAGG;IACH,YAAY,WAAqB;QA9BjC;;WAEG;QACI,SAAI,GAAa,EAAE,CAAC;QA4BvB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IACpC,CAAC;CA4BJ"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export * from './TemplateEngine.js';
|
|
2
|
+
export * from './TemplateRenderUser.js';
|
|
2
3
|
export * from './NunjucksSandbox.js';
|
|
3
4
|
export * from './NunjucksCompileGuard.js';
|
|
4
5
|
export * from './TemplateSandboxError.js';
|
|
6
|
+
export * from './TemplateVariableAnalysis.js';
|
|
5
7
|
export * from './extensions/AIPrompt.extension.js';
|
|
6
8
|
export * from './extensions/TemplateEmbed.extension.js';
|
|
7
9
|
export * from './extensions/TemplateExtensionBase.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,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,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,7 +1,9 @@
|
|
|
1
1
|
export * from './TemplateEngine.js';
|
|
2
|
+
export * from './TemplateRenderUser.js';
|
|
2
3
|
export * from './NunjucksSandbox.js';
|
|
3
4
|
export * from './NunjucksCompileGuard.js';
|
|
4
5
|
export * from './TemplateSandboxError.js';
|
|
6
|
+
export * from './TemplateVariableAnalysis.js';
|
|
5
7
|
export * from './extensions/AIPrompt.extension.js';
|
|
6
8
|
export * from './extensions/TemplateEmbed.extension.js';
|
|
7
9
|
export * from './extensions/TemplateExtensionBase.js';
|
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,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,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"}
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;CAuCpI"}
|
|
@@ -49,7 +49,7 @@ let TemplateRunServerOperation = class TemplateRunServerOperation extends Templa
|
|
|
49
49
|
throw new Error(`No template content found for template ${templateEntity.Name}`);
|
|
50
50
|
}
|
|
51
51
|
await TemplateEngineServer.Instance.Config(true /* refresh to get latest templates */, user, provider);
|
|
52
|
-
const result = await TemplateEngineServer.Instance.RenderTemplate(templateEntity, contentResult.Results[0], input.data ?? {}, true /* skip validation for execution
|
|
52
|
+
const result = await TemplateEngineServer.Instance.RenderTemplate(templateEntity, contentResult.Results[0], input.data ?? {}, true /* skip validation for execution */, undefined, { ContextUser: user });
|
|
53
53
|
if (!result.Success) {
|
|
54
54
|
throw new Error(result.Message ?? 'Template render failed');
|
|
55
55
|
}
|
|
@@ -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,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,
|
|
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,EACxC,SAAS,EACT,EAAE,WAAW,EAAE,IAAI,EAAE,CACxB,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;AAjDY,0BAA0B;IADtC,aAAa,CAAC,sBAAsB,EAAE,cAAc,CAAC;GACzC,0BAA0B,CAiDtC"}
|
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.6",
|
|
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.6",
|
|
18
|
+
"@memberjunction/templates-base-types": "6.2.0-edge.6",
|
|
19
|
+
"@memberjunction/ai": "6.2.0-edge.6",
|
|
20
|
+
"@memberjunction/ai-core-plus": "6.2.0-edge.6",
|
|
21
|
+
"@memberjunction/aiengine": "6.2.0-edge.6",
|
|
22
|
+
"@memberjunction/ai-provider-bundle": "6.2.0-edge.6",
|
|
23
|
+
"@memberjunction/core-entities": "6.2.0-edge.6",
|
|
24
|
+
"@memberjunction/global": "6.2.0-edge.6",
|
|
25
25
|
"nunjucks": "3.2.4"
|
|
26
26
|
},
|
|
27
27
|
"repository": {
|