@memberjunction/templates 6.2.0-edge.5 → 6.2.0-edge.7
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/TemplateEngine.d.ts +18 -5
- package/dist/TemplateEngine.d.ts.map +1 -1
- package/dist/TemplateEngine.js +43 -12
- 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/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/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 +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/operations/TemplateRunOperation.d.ts.map +1 -1
- package/dist/operations/TemplateRunOperation.js +2 -1
- package/dist/operations/TemplateRunOperation.js.map +1 -1
- package/package.json +9 -9
package/dist/TemplateEngine.d.ts
CHANGED
|
@@ -45,10 +45,12 @@ export declare class TemplateEngineServer extends BaseSingleton<TemplateEngineSe
|
|
|
45
45
|
/** Server-side context user, captured on Config() and settable directly (mirrors AIEngine). */
|
|
46
46
|
private _contextUser?;
|
|
47
47
|
private _oneTimeLoadingComplete;
|
|
48
|
+
private _configuredOnce;
|
|
48
49
|
/**
|
|
49
50
|
* Loads the single TemplateEngineBase metadata cache, then (re)initializes the render layer. The base
|
|
50
51
|
* runs its own AdditionalLoading (associating content/params with each template) inside its Config();
|
|
51
|
-
* afterwards we drop any stale compiled templates
|
|
52
|
+
* afterwards we drop any stale compiled templates when the base cache actually (re)loaded and
|
|
53
|
+
* one-time-initialize the nunjucks environment.
|
|
52
54
|
*
|
|
53
55
|
* NOTE: when this extended the base, the nunjucks setup lived in an AdditionalLoading() override that
|
|
54
56
|
* the base's Load() invoked. Under composition the base's Load() calls the BASE's AdditionalLoading,
|
|
@@ -101,7 +103,7 @@ export declare class TemplateEngineServer extends BaseSingleton<TemplateEngineSe
|
|
|
101
103
|
private addCustomFilters;
|
|
102
104
|
/**
|
|
103
105
|
* Compiled templates per environment, then per template content ID, so a raw compile is never served to an
|
|
104
|
-
* escaping render.
|
|
106
|
+
* escaping render. Tracks `sourceText` so in-place `AutoRefresh` updates to `TemplateText` recompile automatically.
|
|
105
107
|
*/
|
|
106
108
|
private _templateCache;
|
|
107
109
|
/**
|
|
@@ -139,8 +141,8 @@ export declare class TemplateEngineServer extends BaseSingleton<TemplateEngineSe
|
|
|
139
141
|
* Returns the top-level variable names a template's text reads, following stored templates it
|
|
140
142
|
* pulls in by literal name (`{% include %}`, `{% import %}`, `{% from %}`, `{% extends %}`,
|
|
141
143
|
* `{% template %}`). It sets up the Nunjucks environment first, so the registered extensions' tags
|
|
142
|
-
* parse before the first {@link Config} too. The result is frozen and cached per template text until
|
|
143
|
-
* {@link ClearTemplateCache}; a result whose text does not parse is not cached.
|
|
144
|
+
* parse before the first {@link Config} too. The result is frozen and cached per template text until the
|
|
145
|
+
* next {@link Config} or {@link ClearTemplateCache}; a result whose text does not parse is not cached.
|
|
144
146
|
*/
|
|
145
147
|
GetReferencedVariables(templateText: string): ReferencedVariablesResult;
|
|
146
148
|
/**
|
|
@@ -169,12 +171,23 @@ export declare class TemplateEngineServer extends BaseSingleton<TemplateEngineSe
|
|
|
169
171
|
private getRawTemplateEnv;
|
|
170
172
|
/** Clears the compiled-template cache and the cached {@link GetReferencedVariables} results. */
|
|
171
173
|
ClearTemplateCache(): void;
|
|
174
|
+
/**
|
|
175
|
+
* The user a render runs as: the one the caller passed, else the user of the render this one is
|
|
176
|
+
* nested in. There is no fallback to this engine's context user: that is whoever last configured
|
|
177
|
+
* the process-wide engine, so it may be another request's user. A render with no user runs its
|
|
178
|
+
* extensions with no user, and an extension that needs one fails the render with an error rather
|
|
179
|
+
* than run as nobody (an `{% AIPrompt %}` tag does). Every server caller should pass `ContextUser`.
|
|
180
|
+
*/
|
|
181
|
+
private resolveRenderUser;
|
|
172
182
|
/**
|
|
173
183
|
* Promisifies the Nunjucks template rendering process.
|
|
174
184
|
* @param template the Nunjucks template object
|
|
175
185
|
* @param data the data to render the template with
|
|
186
|
+
* @param renderUser the user registered extensions act for during this render
|
|
176
187
|
*/
|
|
177
|
-
protected renderTemplateAsync(template: nunjucks.Template, data: any): Promise<string>;
|
|
188
|
+
protected renderTemplateAsync(template: nunjucks.Template, data: any, renderUser?: UserInfo): Promise<string>;
|
|
189
|
+
/** Renders `template` with `data`, inside the caller's render-user scope. */
|
|
190
|
+
private renderInCurrentScope;
|
|
178
191
|
/**
|
|
179
192
|
* Merges default values from template parameters with the provided data.
|
|
180
193
|
* Content-specific parameters take precedence over global parameters when both define the same parameter name.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateEngine.d.ts","sourceRoot":"","sources":["../src/TemplateEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAY,QAAQ,EAAuB,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAChL,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,aAAa,EAAwB,MAAM,wBAAwB,CAAC;AAG7E,OAAO,EAA8B,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"TemplateEngine.d.ts","sourceRoot":"","sources":["../src/TemplateEngine.ts"],"names":[],"mappings":"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"}
|
package/dist/TemplateEngine.js
CHANGED
|
@@ -4,6 +4,7 @@ import { BaseSingleton, MJGlobal, UUIDsEqual } from "@memberjunction/global";
|
|
|
4
4
|
import { TemplateExtensionBase } from "./extensions/TemplateExtensionBase.js";
|
|
5
5
|
import { HardenNunjucksRuntime } from "./NunjucksSandbox.js";
|
|
6
6
|
import { CollectReferencedVariables } from "./TemplateVariableAnalysis.js";
|
|
7
|
+
import { CurrentTemplateRenderUser, RunAsTemplateRenderUser } from "./TemplateRenderUser.js";
|
|
7
8
|
import { TemplateEngineBase } from '@memberjunction/templates-base-types';
|
|
8
9
|
// Stored templates are user-editable, so nunjucks is guarded as soon as the engine loads. The guard
|
|
9
10
|
// is process-wide: it also covers nunjucks environments that other packages create.
|
|
@@ -61,11 +62,12 @@ export class TemplateEngineServer extends BaseSingleton {
|
|
|
61
62
|
constructor() {
|
|
62
63
|
super(...arguments);
|
|
63
64
|
this._oneTimeLoadingComplete = false;
|
|
65
|
+
this._configuredOnce = false;
|
|
64
66
|
/** The extension instances registered on {@link _nunjucksEnv}. The variable analysis parses their custom tags. */
|
|
65
67
|
this._registeredExtensions = [];
|
|
66
68
|
/**
|
|
67
69
|
* Compiled templates per environment, then per template content ID, so a raw compile is never served to an
|
|
68
|
-
* escaping render.
|
|
70
|
+
* escaping render. Tracks `sourceText` so in-place `AutoRefresh` updates to `TemplateText` recompile automatically.
|
|
69
71
|
*/
|
|
70
72
|
this._templateCache = new WeakMap();
|
|
71
73
|
this._simpleTemplateCache = new Map();
|
|
@@ -88,7 +90,8 @@ export class TemplateEngineServer extends BaseSingleton {
|
|
|
88
90
|
/**
|
|
89
91
|
* Loads the single TemplateEngineBase metadata cache, then (re)initializes the render layer. The base
|
|
90
92
|
* runs its own AdditionalLoading (associating content/params with each template) inside its Config();
|
|
91
|
-
* afterwards we drop any stale compiled templates
|
|
93
|
+
* afterwards we drop any stale compiled templates when the base cache actually (re)loaded and
|
|
94
|
+
* one-time-initialize the nunjucks environment.
|
|
92
95
|
*
|
|
93
96
|
* NOTE: when this extended the base, the nunjucks setup lived in an AdditionalLoading() override that
|
|
94
97
|
* the base's Load() invoked. Under composition the base's Load() calls the BASE's AdditionalLoading,
|
|
@@ -98,8 +101,17 @@ export class TemplateEngineServer extends BaseSingleton {
|
|
|
98
101
|
if (contextUser) {
|
|
99
102
|
this._contextUser = contextUser;
|
|
100
103
|
}
|
|
104
|
+
const shouldClearCache = !this._configuredOnce || Boolean(forceRefresh) || !this.base.Loaded;
|
|
101
105
|
await this.base.Config(forceRefresh, contextUser, provider);
|
|
102
|
-
this.
|
|
106
|
+
this._configuredOnce = true;
|
|
107
|
+
if (shouldClearCache) {
|
|
108
|
+
this.ClearTemplateCache(); // base templates (re)loaded — drop any stale compiled templates
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
// Compiled templates check their own source text, but a variable analysis also follows embedded
|
|
112
|
+
// templates by name, so an in-place edit of an embedded template would leave it stale.
|
|
113
|
+
this._referencedVariablesCache.clear();
|
|
114
|
+
}
|
|
103
115
|
this.ensureNunjucksInitialized(contextUser);
|
|
104
116
|
}
|
|
105
117
|
/** One-time nunjucks environment + registered-extension setup. {@link Config} and {@link GetReferencedVariables} call it. */
|
|
@@ -262,7 +274,7 @@ export class TemplateEngineServer extends BaseSingleton {
|
|
|
262
274
|
const mergedData = this.mergeDefaultValues(templateEntity, templateContent.ID, data);
|
|
263
275
|
const env = options?.autoescape === false ? this.getRawTemplateEnv() : this._nunjucksEnv;
|
|
264
276
|
const template = this.getNunjucksTemplate(templateContent.ID, templateContent.TemplateText, true, env);
|
|
265
|
-
const result = await this.renderTemplateAsync(template, mergedData);
|
|
277
|
+
const result = await this.renderTemplateAsync(template, mergedData, this.resolveRenderUser(options));
|
|
266
278
|
return {
|
|
267
279
|
Success: true,
|
|
268
280
|
Output: result,
|
|
@@ -308,7 +320,7 @@ export class TemplateEngineServer extends BaseSingleton {
|
|
|
308
320
|
}
|
|
309
321
|
this._simpleTemplateCache.set(cacheKey, template);
|
|
310
322
|
}
|
|
311
|
-
const result = await this.renderTemplateAsync(template, data);
|
|
323
|
+
const result = await this.renderTemplateAsync(template, data, this.resolveRenderUser(options));
|
|
312
324
|
return {
|
|
313
325
|
Success: true,
|
|
314
326
|
Output: result,
|
|
@@ -328,8 +340,8 @@ export class TemplateEngineServer extends BaseSingleton {
|
|
|
328
340
|
* Returns the top-level variable names a template's text reads, following stored templates it
|
|
329
341
|
* pulls in by literal name (`{% include %}`, `{% import %}`, `{% from %}`, `{% extends %}`,
|
|
330
342
|
* `{% template %}`). It sets up the Nunjucks environment first, so the registered extensions' tags
|
|
331
|
-
* parse before the first {@link Config} too. The result is frozen and cached per template text until
|
|
332
|
-
* {@link ClearTemplateCache}; a result whose text does not parse is not cached.
|
|
343
|
+
* parse before the first {@link Config} too. The result is frozen and cached per template text until the
|
|
344
|
+
* next {@link Config} or {@link ClearTemplateCache}; a result whose text does not parse is not cached.
|
|
333
345
|
*/
|
|
334
346
|
GetReferencedVariables(templateText) {
|
|
335
347
|
const cached = this._referencedVariablesCache.get(templateText);
|
|
@@ -364,11 +376,15 @@ export class TemplateEngineServer extends BaseSingleton {
|
|
|
364
376
|
envCache = new Map();
|
|
365
377
|
this._templateCache.set(env, envCache);
|
|
366
378
|
}
|
|
367
|
-
|
|
368
|
-
if (
|
|
369
|
-
|
|
370
|
-
|
|
379
|
+
const cached = envCache.get(templateContentId);
|
|
380
|
+
if (cached && cached.sourceText === templateText) {
|
|
381
|
+
return cached.template;
|
|
382
|
+
}
|
|
383
|
+
if (cached && cached.sourceText !== templateText) {
|
|
384
|
+
this._referencedVariablesCache.clear();
|
|
371
385
|
}
|
|
386
|
+
const template = this.createNunjucksTemplate(templateText, env);
|
|
387
|
+
envCache.set(templateContentId, { template, sourceText: templateText });
|
|
372
388
|
return template;
|
|
373
389
|
}
|
|
374
390
|
else {
|
|
@@ -414,13 +430,28 @@ export class TemplateEngineServer extends BaseSingleton {
|
|
|
414
430
|
this._simpleTemplateCache.clear();
|
|
415
431
|
this._referencedVariablesCache.clear();
|
|
416
432
|
}
|
|
433
|
+
/**
|
|
434
|
+
* The user a render runs as: the one the caller passed, else the user of the render this one is
|
|
435
|
+
* nested in. There is no fallback to this engine's context user: that is whoever last configured
|
|
436
|
+
* the process-wide engine, so it may be another request's user. A render with no user runs its
|
|
437
|
+
* extensions with no user, and an extension that needs one fails the render with an error rather
|
|
438
|
+
* than run as nobody (an `{% AIPrompt %}` tag does). Every server caller should pass `ContextUser`.
|
|
439
|
+
*/
|
|
440
|
+
resolveRenderUser(options) {
|
|
441
|
+
return options?.ContextUser ?? CurrentTemplateRenderUser();
|
|
442
|
+
}
|
|
417
443
|
/**
|
|
418
444
|
* Promisifies the Nunjucks template rendering process.
|
|
419
445
|
* @param template the Nunjucks template object
|
|
420
446
|
* @param data the data to render the template with
|
|
447
|
+
* @param renderUser the user registered extensions act for during this render
|
|
421
448
|
*/
|
|
422
|
-
async renderTemplateAsync(template, data) {
|
|
449
|
+
async renderTemplateAsync(template, data, renderUser) {
|
|
423
450
|
HardenNunjucksRuntime(); // no-op unless something replaced a guarded nunjucks hook
|
|
451
|
+
return RunAsTemplateRenderUser(renderUser ?? this.resolveRenderUser(), () => this.renderInCurrentScope(template, data));
|
|
452
|
+
}
|
|
453
|
+
/** Renders `template` with `data`, inside the caller's render-user scope. */
|
|
454
|
+
renderInCurrentScope(template, data) {
|
|
424
455
|
return new Promise((resolve, reject) => {
|
|
425
456
|
template.render(data, (err, result) => {
|
|
426
457
|
if (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateEngine.js","sourceRoot":"","sources":["../src/TemplateEngine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TemplateEngine.js","sourceRoot":"","sources":["../src/TemplateEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { UserInfo } from '@memberjunction/core';
|
|
2
|
+
/** Runs `work` with `user` as the template render user for everything it does, sync or async. */
|
|
3
|
+
export declare function RunAsTemplateRenderUser<T>(user: UserInfo | undefined, work: () => T): T;
|
|
4
|
+
/** The user of the template render in progress, or undefined outside a render or for a render with no user. */
|
|
5
|
+
export declare function CurrentTemplateRenderUser(): UserInfo | undefined;
|
|
6
|
+
/** Whether a template render is in progress, whether or not it has a user. */
|
|
7
|
+
export declare function IsInsideTemplateRender(): boolean;
|
|
8
|
+
//# sourceMappingURL=TemplateRenderUser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateRenderUser.d.ts","sourceRoot":"","sources":["../src/TemplateRenderUser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAkBrD,iGAAiG;AACjG,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAEvF;AAED,+GAA+G;AAC/G,wBAAgB,yBAAyB,IAAI,QAAQ,GAAG,SAAS,CAEhE;AAED,8EAA8E;AAC9E,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
+
const renderScope = new AsyncLocalStorage();
|
|
3
|
+
/** Runs `work` with `user` as the template render user for everything it does, sync or async. */
|
|
4
|
+
export function RunAsTemplateRenderUser(user, work) {
|
|
5
|
+
return renderScope.run({ User: user }, work);
|
|
6
|
+
}
|
|
7
|
+
/** The user of the template render in progress, or undefined outside a render or for a render with no user. */
|
|
8
|
+
export function CurrentTemplateRenderUser() {
|
|
9
|
+
return renderScope.getStore()?.User;
|
|
10
|
+
}
|
|
11
|
+
/** Whether a template render is in progress, whether or not it has a user. */
|
|
12
|
+
export function IsInsideTemplateRender() {
|
|
13
|
+
return renderScope.getStore() !== undefined;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=TemplateRenderUser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateRenderUser.js","sourceRoot":"","sources":["../src/TemplateRenderUser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAiBrD,MAAM,WAAW,GAAG,IAAI,iBAAiB,EAAuB,CAAC;AAEjE,iGAAiG;AACjG,MAAM,UAAU,uBAAuB,CAAI,IAA0B,EAAE,IAAa;IAChF,OAAO,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC;AAED,+GAA+G;AAC/G,MAAM,UAAU,yBAAyB;IACrC,OAAO,WAAW,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC;AACxC,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,sBAAsB;IAClC,OAAO,WAAW,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC;AAChD,CAAC"}
|
|
@@ -37,6 +37,21 @@ export declare class AIPromptExtension extends TemplateExtensionBase {
|
|
|
37
37
|
* ```
|
|
38
38
|
*/
|
|
39
39
|
run(context: Context, params: any, body: any, callBack: NunjucksCallback): void;
|
|
40
|
+
/** Logs `e` and ends the render with it as the error. */
|
|
41
|
+
private static failRender;
|
|
42
|
+
/** Why an `{% AIPrompt %}` tag fails in a render that has no user. */
|
|
43
|
+
static readonly NoRenderUserMessage: string;
|
|
44
|
+
/** Maps the tag's parameters onto an {@link AIPromptConfig}, matching names case- and space-insensitively. */
|
|
45
|
+
protected parseConfig(params: Record<string, unknown>): AIPromptConfig;
|
|
46
|
+
/** The tag's `AIModel` value as a model name; unset when it is null or undefined. Throws for any other non-string. */
|
|
47
|
+
private static aiModelName;
|
|
48
|
+
/**
|
|
49
|
+
* Runs the prompt as `contextUser` and returns the model's reply. Rejects when the AI engine cannot be
|
|
50
|
+
* configured, no model is found, or the model call does not succeed.
|
|
51
|
+
*/
|
|
52
|
+
protected runPrompt(prompt: string, config: AIPromptConfig, contextUser: UserInfo): Promise<string>;
|
|
53
|
+
/** The model the tag names, or the highest-power Groq LLM when it names none. */
|
|
54
|
+
protected resolveModel(config: AIPromptConfig, contextUser: UserInfo): Promise<MJAIModelEntityExtended>;
|
|
40
55
|
/**
|
|
41
56
|
* Default implementation simply returns 'OpenAI' - override this in your subclass if you are using a different AI vendor.
|
|
42
57
|
* @returns
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AIPrompt.extension.d.ts","sourceRoot":"","sources":["../../src/extensions/AIPrompt.extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGlF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,KAAK,MAAM,GAAG,GAAG,CAAC;AAClB,KAAK,KAAK,GAAG,GAAG,CAAC;AACjB,KAAK,KAAK,GAAG,GAAG,CAAC;AACjB,KAAK,OAAO,GAAG,GAAG,CAAC;AAEnB;;GAEG;AACH,qBACa,iBAAkB,SAAQ,qBAAqB;IAExD,mBAAmB,EAAE,MAAM,CAAgE;gBAE/E,WAAW,EAAE,QAAQ;IAK1B,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IAkCvD;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB;
|
|
1
|
+
{"version":3,"file":"AIPrompt.extension.d.ts","sourceRoot":"","sources":["../../src/extensions/AIPrompt.extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGlF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,KAAK,MAAM,GAAG,GAAG,CAAC;AAClB,KAAK,KAAK,GAAG,GAAG,CAAC;AACjB,KAAK,KAAK,GAAG,GAAG,CAAC;AACjB,KAAK,OAAO,GAAG,GAAG,CAAC;AAEnB;;GAEG;AACH,qBACa,iBAAkB,SAAQ,qBAAqB;IAExD,mBAAmB,EAAE,MAAM,CAAgE;gBAE/E,WAAW,EAAE,QAAQ;IAK1B,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IAkCvD;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACI,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB;IAsB/E,yDAAyD;IACzD,OAAO,CAAC,MAAM,CAAC,UAAU;IAKzB,sEAAsE;IACtE,gBAAuB,mBAAmB,SAEI;IAE9C,8GAA8G;IAC9G,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc;IAmBtE,sHAAsH;IACtH,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B;;;OAGG;cACa,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BzG,iFAAiF;cACjE,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAiB7G;;;OAGG;IACH,SAAS,KAAK,mBAAmB,IAAI,MAAM,CAE1C;IAED;;;OAGG;cACa,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAQ1G;AAED,MAAM,MAAM,cAAc,GAAG;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC"}
|
|
@@ -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 AIPromptExtension_1;
|
|
10
11
|
import { LogError, UserInfo } from "@memberjunction/core";
|
|
11
12
|
import { MJGlobal, RegisterClass } from "@memberjunction/global";
|
|
12
13
|
import { TemplateExtensionBase } from "./TemplateExtensionBase.js";
|
|
@@ -16,6 +17,7 @@ import { BaseLLM, GetAIAPIKey } from "@memberjunction/ai";
|
|
|
16
17
|
* This class is an extension for the Nunjucks template engine that allows for the use of an AI prompt in a template.
|
|
17
18
|
*/
|
|
18
19
|
let AIPromptExtension = class AIPromptExtension extends TemplateExtensionBase {
|
|
20
|
+
static { AIPromptExtension_1 = this; }
|
|
19
21
|
constructor(contextUser) {
|
|
20
22
|
super(contextUser);
|
|
21
23
|
this.AllowFormattingText = "Do not use markdown, HTML, or any other special formatting.";
|
|
@@ -71,81 +73,109 @@ let AIPromptExtension = class AIPromptExtension extends TemplateExtensionBase {
|
|
|
71
73
|
* ```
|
|
72
74
|
*/
|
|
73
75
|
run(context, params, body, callBack) {
|
|
74
|
-
|
|
76
|
+
// Captured once: the prompt runs as the user of the render that reached this tag.
|
|
77
|
+
const contextUser = this.ContextUser;
|
|
78
|
+
if (!contextUser) {
|
|
79
|
+
callBack(new Error(AIPromptExtension_1.NoRenderUserMessage));
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
// Nunjucks calls this synchronously and waits on the callback, so every path below must reach the
|
|
83
|
+
// callback. Nunjucks renders the rest of the template inside `callBack(null, response)`, so an
|
|
84
|
+
// error there (a later `{{ undefinedFn() }}`) is caught by the `.catch` and fails the render too;
|
|
85
|
+
// a rejection that skipped the callback would leave the render waiting forever.
|
|
86
|
+
try {
|
|
87
|
+
const prompt = body();
|
|
88
|
+
const config = this.parseConfig(params);
|
|
89
|
+
this.runPrompt(prompt, config, contextUser)
|
|
90
|
+
.then((response) => callBack(null, response))
|
|
91
|
+
.catch((e) => AIPromptExtension_1.failRender(callBack, e));
|
|
92
|
+
}
|
|
93
|
+
catch (e) {
|
|
94
|
+
AIPromptExtension_1.failRender(callBack, e);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/** Logs `e` and ends the render with it as the error. */
|
|
98
|
+
static failRender(callBack, e) {
|
|
99
|
+
LogError(e);
|
|
100
|
+
callBack(e instanceof Error ? e : new Error(String(e)));
|
|
101
|
+
}
|
|
102
|
+
/** Why an `{% AIPrompt %}` tag fails in a render that has no user. */
|
|
103
|
+
static { this.NoRenderUserMessage = 'The AIPrompt template tag needs the user the render runs as, and this render has no user. ' +
|
|
104
|
+
'Pass ContextUser in the render options.'; }
|
|
105
|
+
/** Maps the tag's parameters onto an {@link AIPromptConfig}, matching names case- and space-insensitively. */
|
|
106
|
+
parseConfig(params) {
|
|
75
107
|
const config = {};
|
|
76
|
-
// now map each value from params to the config object, and be case INsensitive
|
|
77
108
|
for (const key in params) {
|
|
78
|
-
if (params.hasOwnProperty(key)) {
|
|
79
|
-
|
|
80
|
-
// convert the key to lower case and remove any spaces
|
|
81
|
-
const lowerKey = key.toLowerCase().replace(/\s+/g, '');
|
|
82
|
-
// now set the value in the config object
|
|
83
|
-
if (lowerKey === 'aimodel') {
|
|
84
|
-
config.AIModel = value;
|
|
85
|
-
}
|
|
86
|
-
else if (lowerKey === 'allowformatting') {
|
|
87
|
-
// convert the value to a boolean
|
|
88
|
-
if (typeof value === 'string') {
|
|
89
|
-
config.AllowFormatting = value.toLowerCase() === 'true' || value.toLowerCase() === 'yes';
|
|
90
|
-
}
|
|
91
|
-
else if (typeof value === 'boolean') {
|
|
92
|
-
config.AllowFormatting = value;
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
// if the value is not a string or boolean, we will just set it to false
|
|
96
|
-
config.AllowFormatting = false;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
109
|
+
if (!params.hasOwnProperty(key)) {
|
|
110
|
+
continue;
|
|
99
111
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
// we will get the highest power model from the AI Engine
|
|
105
|
-
// then we will create an instance of the LLM class
|
|
106
|
-
AIEngine.Instance.Config(false, this.ContextUser).then(async () => {
|
|
107
|
-
try {
|
|
108
|
-
let model = null;
|
|
109
|
-
if (config.AIModel) {
|
|
110
|
-
model = AIEngine.Instance.Models.find(m => m.Name.toLowerCase() === config.AIModel.toLowerCase() ||
|
|
111
|
-
m.APIName?.toLowerCase() === config.AIModel.toLowerCase());
|
|
112
|
-
if (!model) {
|
|
113
|
-
throw new Error(`AI model '${config.AIModel}' not found.`);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
model = await AIEngine.Instance.GetHighestPowerModel('Groq', 'llm', this.ContextUser);
|
|
118
|
-
if (!model) {
|
|
119
|
-
throw new Error(`No AI model found for the vendor 'Groq' and type 'llm'.`);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
const llm = MJGlobal.Instance.ClassFactory.CreateInstance(BaseLLM, model.DriverClass, GetAIAPIKey(model.DriverClass));
|
|
123
|
-
const llmResult = await llm.ChatCompletion({
|
|
124
|
-
messages: [
|
|
125
|
-
{
|
|
126
|
-
role: 'system',
|
|
127
|
-
content: `Background: The output from this will be DIRECTLY inserted into a messaging template going to a recipient. For this reason whenever
|
|
128
|
-
you are prompted to provide a result, do not preface it with any text, just provide the result itself. ${config.AllowFormatting ? "" : this.AllowFormattingText} Assume that the text you are generating will go directly into a message.
|
|
129
|
-
<IMPORTANT>ONLY PROVIDE THE RESPONSE REQUESTED FOR THE MESSAGE - **** DO NOT ADD ANYTHING ELSE ****</IMPORTANT>`,
|
|
130
|
-
},
|
|
131
|
-
{
|
|
132
|
-
role: 'user',
|
|
133
|
-
content: `${prompt}`,
|
|
134
|
-
}
|
|
135
|
-
],
|
|
136
|
-
model: model.APINameOrName
|
|
137
|
-
});
|
|
138
|
-
if (llmResult && llmResult.success) {
|
|
139
|
-
let response = llmResult.data.choices[0].message.content;
|
|
140
|
-
response = response.replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&");
|
|
141
|
-
callBack(null, response);
|
|
142
|
-
}
|
|
112
|
+
const value = params[key];
|
|
113
|
+
const lowerKey = key.toLowerCase().replace(/\s+/g, '');
|
|
114
|
+
if (lowerKey === 'aimodel') {
|
|
115
|
+
config.AIModel = AIPromptExtension_1.aiModelName(value);
|
|
143
116
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
117
|
+
else if (lowerKey === 'allowformatting') {
|
|
118
|
+
config.AllowFormatting = typeof value === 'string'
|
|
119
|
+
? value.toLowerCase() === 'true' || value.toLowerCase() === 'yes'
|
|
120
|
+
: value === true; // any other non-boolean value means no formatting
|
|
147
121
|
}
|
|
122
|
+
}
|
|
123
|
+
return config;
|
|
124
|
+
}
|
|
125
|
+
/** The tag's `AIModel` value as a model name; unset when it is null or undefined. Throws for any other non-string. */
|
|
126
|
+
static aiModelName(value) {
|
|
127
|
+
if (typeof value === 'string') {
|
|
128
|
+
return value;
|
|
129
|
+
}
|
|
130
|
+
if (value === undefined || value === null) {
|
|
131
|
+
return undefined;
|
|
132
|
+
}
|
|
133
|
+
throw new Error(`AIPrompt: the AIModel parameter must be a string naming a model, but it is a ${typeof value}.`);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Runs the prompt as `contextUser` and returns the model's reply. Rejects when the AI engine cannot be
|
|
137
|
+
* configured, no model is found, or the model call does not succeed.
|
|
138
|
+
*/
|
|
139
|
+
async runPrompt(prompt, config, contextUser) {
|
|
140
|
+
await AIEngine.Instance.Config(false, contextUser);
|
|
141
|
+
const model = await this.resolveModel(config, contextUser);
|
|
142
|
+
const llm = MJGlobal.Instance.ClassFactory.CreateInstance(BaseLLM, model.DriverClass, GetAIAPIKey(model.DriverClass));
|
|
143
|
+
const llmResult = await llm.ChatCompletion({
|
|
144
|
+
messages: [
|
|
145
|
+
{
|
|
146
|
+
role: 'system',
|
|
147
|
+
content: `Background: The output from this will be DIRECTLY inserted into a messaging template going to a recipient. For this reason whenever
|
|
148
|
+
you are prompted to provide a result, do not preface it with any text, just provide the result itself. ${config.AllowFormatting ? "" : this.AllowFormattingText} Assume that the text you are generating will go directly into a message.
|
|
149
|
+
<IMPORTANT>ONLY PROVIDE THE RESPONSE REQUESTED FOR THE MESSAGE - **** DO NOT ADD ANYTHING ELSE ****</IMPORTANT>`,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
role: 'user',
|
|
153
|
+
content: `${prompt}`,
|
|
154
|
+
}
|
|
155
|
+
],
|
|
156
|
+
model: model.APINameOrName
|
|
148
157
|
});
|
|
158
|
+
if (!llmResult?.success) {
|
|
159
|
+
throw new Error(`AIPrompt: the model call did not succeed: ${llmResult?.errorMessage || 'the model returned no result'}`);
|
|
160
|
+
}
|
|
161
|
+
const response = llmResult.data.choices[0].message.content;
|
|
162
|
+
return response.replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&");
|
|
163
|
+
}
|
|
164
|
+
/** The model the tag names, or the highest-power Groq LLM when it names none. */
|
|
165
|
+
async resolveModel(config, contextUser) {
|
|
166
|
+
if (config.AIModel) {
|
|
167
|
+
const wanted = config.AIModel.toLowerCase();
|
|
168
|
+
const model = AIEngine.Instance.Models.find(m => m.Name.toLowerCase() === wanted || m.APIName?.toLowerCase() === wanted);
|
|
169
|
+
if (!model) {
|
|
170
|
+
throw new Error(`AI model '${config.AIModel}' not found.`);
|
|
171
|
+
}
|
|
172
|
+
return model;
|
|
173
|
+
}
|
|
174
|
+
const model = await AIEngine.Instance.GetHighestPowerModel('Groq', 'llm', contextUser);
|
|
175
|
+
if (!model) {
|
|
176
|
+
throw new Error(`No AI model found for the vendor 'Groq' and type 'llm'.`);
|
|
177
|
+
}
|
|
178
|
+
return model;
|
|
149
179
|
}
|
|
150
180
|
/**
|
|
151
181
|
* Default implementation simply returns 'OpenAI' - override this in your subclass if you are using a different AI vendor.
|
|
@@ -167,7 +197,7 @@ let AIPromptExtension = class AIPromptExtension extends TemplateExtensionBase {
|
|
|
167
197
|
return models[0];
|
|
168
198
|
}
|
|
169
199
|
};
|
|
170
|
-
AIPromptExtension = __decorate([
|
|
200
|
+
AIPromptExtension = AIPromptExtension_1 = __decorate([
|
|
171
201
|
RegisterClass(TemplateExtensionBase, 'AIPrompt'),
|
|
172
202
|
__metadata("design:paramtypes", [UserInfo])
|
|
173
203
|
], AIPromptExtension);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AIPrompt.extension.js","sourceRoot":"","sources":["../../src/extensions/AIPrompt.extension.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AIPrompt.extension.js","sourceRoot":"","sources":["../../src/extensions/AIPrompt.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
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,4BAA4B,CAAC;AAC3C,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
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,4BAA4B,CAAC;AAC3C,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;CAwCpI"}
|
|
@@ -43,13 +43,14 @@ let TemplateRunServerOperation = class TemplateRunServerOperation extends Templa
|
|
|
43
43
|
ExtraFilter: `TemplateID = '${input.templateID}'`,
|
|
44
44
|
OrderBy: 'Priority ASC',
|
|
45
45
|
MaxRows: 1,
|
|
46
|
+
SkipTotalRowCount: true,
|
|
46
47
|
ResultType: 'entity_object',
|
|
47
48
|
}, user);
|
|
48
49
|
if (!contentResult.Results?.length) {
|
|
49
50
|
throw new Error(`No template content found for template ${templateEntity.Name}`);
|
|
50
51
|
}
|
|
51
52
|
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
|
|
53
|
+
const result = await TemplateEngineServer.Instance.RenderTemplate(templateEntity, contentResult.Results[0], input.data ?? {}, true /* skip validation for execution */, undefined, { ContextUser: user });
|
|
53
54
|
if (!result.Success) {
|
|
54
55
|
throw new Error(result.Message ?? 'Template render failed');
|
|
55
56
|
}
|
|
@@ -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,iBAAiB,EAAE,IAAI;YACvB,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;AAlDY,0BAA0B;IADtC,aAAa,CAAC,sBAAsB,EAAE,cAAc,CAAC;GACzC,0BAA0B,CAkDtC"}
|
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.7",
|
|
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.7",
|
|
18
|
+
"@memberjunction/templates-base-types": "6.2.0-edge.7",
|
|
19
|
+
"@memberjunction/ai": "6.2.0-edge.7",
|
|
20
|
+
"@memberjunction/ai-core-plus": "6.2.0-edge.7",
|
|
21
|
+
"@memberjunction/aiengine": "6.2.0-edge.7",
|
|
22
|
+
"@memberjunction/ai-provider-bundle": "6.2.0-edge.7",
|
|
23
|
+
"@memberjunction/core-entities": "6.2.0-edge.7",
|
|
24
|
+
"@memberjunction/global": "6.2.0-edge.7",
|
|
25
25
|
"nunjucks": "3.2.4"
|
|
26
26
|
},
|
|
27
27
|
"repository": {
|