@accordproject/template-engine 1.0.4 → 1.0.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/dist/Common.d.ts +20 -0
- package/dist/Common.js +59 -0
- package/dist/Common.js.map +1 -0
- package/dist/TemplateMarkInterpreter.d.ts +34 -0
- package/dist/TemplateMarkInterpreter.js +432 -0
- package/dist/TemplateMarkInterpreter.js.map +1 -0
- package/dist/TemplateMarkToJavaScriptCompiler.d.ts +19 -0
- package/dist/TemplateMarkToJavaScriptCompiler.js +90 -0
- package/dist/TemplateMarkToJavaScriptCompiler.js.map +1 -0
- package/dist/TemplateMarkToTypeScriptCompiler.d.ts +69 -0
- package/dist/TemplateMarkToTypeScriptCompiler.js +239 -0
- package/dist/TemplateMarkToTypeScriptCompiler.js.map +1 -0
- package/dist/TypeScriptCompilationContext.d.ts +15 -0
- package/dist/TypeScriptCompilationContext.js +45 -0
- package/dist/TypeScriptCompilationContext.js.map +1 -0
- package/dist/TypeScriptRuntime.d.ts +5 -0
- package/dist/TypeScriptRuntime.js +67 -0
- package/dist/TypeScriptRuntime.js.map +1 -0
- package/dist/TypeScriptToJavaScriptCompiler.d.ts +14 -0
- package/dist/TypeScriptToJavaScriptCompiler.js +57 -0
- package/dist/TypeScriptToJavaScriptCompiler.js.map +1 -0
- package/dist/compilers/Clause.d.ts +14 -0
- package/dist/compilers/Clause.js +60 -0
- package/dist/compilers/Clause.js.map +1 -0
- package/dist/compilers/Common.d.ts +66 -0
- package/dist/compilers/Common.js +206 -0
- package/dist/compilers/Common.js.map +1 -0
- package/dist/compilers/Conditional.d.ts +12 -0
- package/dist/compilers/Conditional.js +53 -0
- package/dist/compilers/Conditional.js.map +1 -0
- package/dist/compilers/ContractDefinition.d.ts +8 -0
- package/dist/compilers/ContractDefinition.js +50 -0
- package/dist/compilers/ContractDefinition.js.map +1 -0
- package/dist/compilers/FormattedVariable.d.ts +8 -0
- package/dist/compilers/FormattedVariable.js +46 -0
- package/dist/compilers/FormattedVariable.js.map +1 -0
- package/dist/compilers/Formula.d.ts +8 -0
- package/dist/compilers/Formula.js +41 -0
- package/dist/compilers/Formula.js.map +1 -0
- package/dist/compilers/Join.d.ts +8 -0
- package/dist/compilers/Join.js +39 -0
- package/dist/compilers/Join.js.map +1 -0
- package/dist/compilers/ListBlock.d.ts +11 -0
- package/dist/compilers/ListBlock.js +57 -0
- package/dist/compilers/ListBlock.js.map +1 -0
- package/dist/compilers/NodeCompilers.d.ts +7 -0
- package/dist/compilers/NodeCompilers.js +87 -0
- package/dist/compilers/NodeCompilers.js.map +1 -0
- package/dist/compilers/Optional.d.ts +11 -0
- package/dist/compilers/Optional.js +65 -0
- package/dist/compilers/Optional.js.map +1 -0
- package/dist/compilers/Variable.d.ts +8 -0
- package/dist/compilers/Variable.js +45 -0
- package/dist/compilers/Variable.js.map +1 -0
- package/dist/compilers/With.d.ts +10 -0
- package/dist/compilers/With.js +40 -0
- package/dist/compilers/With.js.map +1 -0
- package/dist/drafting/Boolean/index.d.ts +6 -0
- package/dist/drafting/Boolean/index.js +30 -0
- package/dist/drafting/Boolean/index.js.map +1 -0
- package/dist/drafting/DateTime/index.d.ts +7 -0
- package/dist/drafting/DateTime/index.js +33 -0
- package/dist/drafting/DateTime/index.js.map +1 -0
- package/dist/drafting/Double/format.d.ts +13 -0
- package/dist/drafting/Double/format.js +55 -0
- package/dist/drafting/Double/format.js.map +1 -0
- package/dist/drafting/Double/index.d.ts +7 -0
- package/dist/drafting/Double/index.js +33 -0
- package/dist/drafting/Double/index.js.map +1 -0
- package/dist/drafting/Integer/format.d.ts +13 -0
- package/dist/drafting/Integer/format.js +45 -0
- package/dist/drafting/Integer/format.js.map +1 -0
- package/dist/drafting/Integer/index.d.ts +7 -0
- package/dist/drafting/Integer/index.js +33 -0
- package/dist/drafting/Integer/index.js.map +1 -0
- package/dist/drafting/Long/index.d.ts +7 -0
- package/dist/drafting/Long/index.js +33 -0
- package/dist/drafting/Long/index.js.map +1 -0
- package/dist/drafting/MonetaryAmount/currencycode.d.ts +35 -0
- package/dist/drafting/MonetaryAmount/currencycode.js +53 -0
- package/dist/drafting/MonetaryAmount/currencycode.js.map +1 -0
- package/dist/drafting/MonetaryAmount/index.d.ts +12 -0
- package/dist/drafting/MonetaryAmount/index.js +67 -0
- package/dist/drafting/MonetaryAmount/index.js.map +1 -0
- package/dist/drafting/String/index.d.ts +6 -0
- package/dist/drafting/String/index.js +25 -0
- package/dist/drafting/String/index.js.map +1 -0
- package/dist/drafting/index.d.ts +1 -0
- package/dist/drafting/index.js +36 -0
- package/dist/drafting/index.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/model-gen/concerto.metamodel@1.0.0.d.ts +173 -0
- package/dist/model-gen/concerto.metamodel@1.0.0.js +5 -0
- package/dist/model-gen/concerto.metamodel@1.0.0.js.map +1 -0
- package/dist/model-gen/concerto@1.0.0.d.ts +18 -0
- package/dist/model-gen/concerto@1.0.0.js +5 -0
- package/dist/model-gen/concerto@1.0.0.js.map +1 -0
- package/dist/model-gen/org.accordproject.ciceromark@0.6.0.d.ts +49 -0
- package/dist/model-gen/org.accordproject.ciceromark@0.6.0.js +5 -0
- package/dist/model-gen/org.accordproject.ciceromark@0.6.0.js.map +1 -0
- package/dist/model-gen/org.accordproject.commonmark@0.5.0.d.ts +89 -0
- package/dist/model-gen/org.accordproject.commonmark@0.5.0.js +5 -0
- package/dist/model-gen/org.accordproject.commonmark@0.5.0.js.map +1 -0
- package/dist/model-gen/org.accordproject.templatemark@0.4.0.d.ts +72 -0
- package/dist/model-gen/org.accordproject.templatemark@0.4.0.js +11 -0
- package/dist/model-gen/org.accordproject.templatemark@0.4.0.js.map +1 -0
- package/package.json +3 -5
package/dist/Common.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ClassDeclaration, ModelManager } from '@accordproject/concerto-core';
|
|
2
|
+
export declare const TEMPLATEMARK_RE: RegExp;
|
|
3
|
+
export declare const FORMULA_DEFINITION_RE: RegExp;
|
|
4
|
+
export declare const VARIABLE_DEFINITION_RE: RegExp;
|
|
5
|
+
export declare const CONDITIONAL_DEFINITION_RE: RegExp;
|
|
6
|
+
export declare const ENUM_VARIABLE_DEFINITION_RE: RegExp;
|
|
7
|
+
export declare const FORMATTED_VARIABLE_DEFINITION_RE: RegExp;
|
|
8
|
+
export declare const WITH_DEFINITION_RE: RegExp;
|
|
9
|
+
export declare const LISTBLOCK_DEFINITION_RE: RegExp;
|
|
10
|
+
export declare const JOIN_DEFINITION_RE: RegExp;
|
|
11
|
+
export declare const OPTIONAL_DEFINITION_RE: RegExp;
|
|
12
|
+
export declare const CLAUSE_DEFINITION_RE: RegExp;
|
|
13
|
+
export declare const CONTRACT_DEFINITION_RE: RegExp;
|
|
14
|
+
export declare type TemplateData = Record<string, unknown>;
|
|
15
|
+
/**
|
|
16
|
+
* TemplateMark nodes that implicity change the data access scope
|
|
17
|
+
* by specifying the name of a property on the node.
|
|
18
|
+
*/
|
|
19
|
+
export declare const NAVIGATION_NODES: string[];
|
|
20
|
+
export declare function getTemplateClassDeclaration(modelManager: ModelManager): ClassDeclaration;
|
package/dist/Common.js
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License.
|
|
5
|
+
* You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
* See the License for the specific language governing permissions and
|
|
13
|
+
* limitations under the License.
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.getTemplateClassDeclaration = exports.NAVIGATION_NODES = exports.CONTRACT_DEFINITION_RE = exports.CLAUSE_DEFINITION_RE = exports.OPTIONAL_DEFINITION_RE = exports.JOIN_DEFINITION_RE = exports.LISTBLOCK_DEFINITION_RE = exports.WITH_DEFINITION_RE = exports.FORMATTED_VARIABLE_DEFINITION_RE = exports.ENUM_VARIABLE_DEFINITION_RE = exports.CONDITIONAL_DEFINITION_RE = exports.VARIABLE_DEFINITION_RE = exports.FORMULA_DEFINITION_RE = exports.TEMPLATEMARK_RE = void 0;
|
|
17
|
+
var concerto_core_1 = require("@accordproject/concerto-core");
|
|
18
|
+
var markdown_common_1 = require("@accordproject/markdown-common");
|
|
19
|
+
// use to create agreementmark from templatemark
|
|
20
|
+
exports.TEMPLATEMARK_RE = /^(org\.accordproject\.templatemark)@(.+)\.(\w+)Definition$/;
|
|
21
|
+
exports.FORMULA_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.FormulaDefinition$/;
|
|
22
|
+
exports.VARIABLE_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.VariableDefinition$/;
|
|
23
|
+
exports.CONDITIONAL_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.ConditionalDefinition$/;
|
|
24
|
+
exports.ENUM_VARIABLE_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.EnumVariableDefinition$/;
|
|
25
|
+
exports.FORMATTED_VARIABLE_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.FormattedVariableDefinition$/;
|
|
26
|
+
exports.WITH_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.WithDefinition$/;
|
|
27
|
+
exports.LISTBLOCK_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.ListBlockDefinition$/;
|
|
28
|
+
exports.JOIN_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.JoinDefinition$/;
|
|
29
|
+
exports.OPTIONAL_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.OptionalDefinition$/;
|
|
30
|
+
exports.CLAUSE_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.ClauseDefinition$/;
|
|
31
|
+
exports.CONTRACT_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.ContractDefinition$/;
|
|
32
|
+
/**
|
|
33
|
+
* TemplateMark nodes that implicity change the data access scope
|
|
34
|
+
* by specifying the name of a property on the node.
|
|
35
|
+
*/
|
|
36
|
+
exports.NAVIGATION_NODES = [
|
|
37
|
+
"".concat(markdown_common_1.TemplateMarkModel.NAMESPACE, ".ListBlockDefinition"),
|
|
38
|
+
"".concat(markdown_common_1.TemplateMarkModel.NAMESPACE, ".WithDefinition"),
|
|
39
|
+
"".concat(markdown_common_1.TemplateMarkModel.NAMESPACE, ".JoinDefinition"),
|
|
40
|
+
"".concat(markdown_common_1.TemplateMarkModel.NAMESPACE, ".OptionalDefinition"),
|
|
41
|
+
"".concat(markdown_common_1.TemplateMarkModel.NAMESPACE, ".ClauseDefinition")
|
|
42
|
+
];
|
|
43
|
+
function getTemplateClassDeclaration(modelManager) {
|
|
44
|
+
var introspector = new concerto_core_1.Introspector(modelManager);
|
|
45
|
+
var templateModels = introspector.getClassDeclarations().filter(function (item) {
|
|
46
|
+
return !item.isAbstract() && item.getDecorator('template');
|
|
47
|
+
});
|
|
48
|
+
if (templateModels.length > 1) {
|
|
49
|
+
throw new Error('Found multiple concepts with @template decorator. The model for the template must contain a single concept with the @template decorator.');
|
|
50
|
+
}
|
|
51
|
+
else if (templateModels.length === 0) {
|
|
52
|
+
throw new Error('Failed to find a concept with the @template decorator. The model for the template must contain a single concept with the @template decoratpr.');
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
return templateModels[0];
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.getTemplateClassDeclaration = getTemplateClassDeclaration;
|
|
59
|
+
//# sourceMappingURL=Common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Common.js","sourceRoot":"","sources":["../src/Common.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,8DAA4F;AAC5F,kEAAmE;AAEnE,gDAAgD;AACnC,QAAA,eAAe,GAAG,4DAA4D,CAAC;AAC/E,QAAA,qBAAqB,GAAG,8DAA8D,CAAC;AACvF,QAAA,sBAAsB,GAAG,+DAA+D,CAAC;AACzF,QAAA,yBAAyB,GAAG,kEAAkE,CAAC;AAC/F,QAAA,2BAA2B,GAAG,mEAAmE,CAAC;AAClG,QAAA,gCAAgC,GAAG,wEAAwE,CAAC;AAC5G,QAAA,kBAAkB,GAAG,2DAA2D,CAAC;AACjF,QAAA,uBAAuB,GAAG,gEAAgE,CAAC;AAC3F,QAAA,kBAAkB,GAAG,2DAA2D,CAAC;AACjF,QAAA,sBAAsB,GAAG,+DAA+D,CAAC;AACzF,QAAA,oBAAoB,GAAG,6DAA6D,CAAC;AACrF,QAAA,sBAAsB,GAAG,+DAA+D,CAAC;AAItG;;;GAGG;AACU,QAAA,gBAAgB,GAAG;IAC5B,UAAG,mCAAiB,CAAC,SAAS,yBAAsB;IACpD,UAAG,mCAAiB,CAAC,SAAS,oBAAiB;IAC/C,UAAG,mCAAiB,CAAC,SAAS,oBAAiB;IAC/C,UAAG,mCAAiB,CAAC,SAAS,wBAAqB;IACnD,UAAG,mCAAiB,CAAC,SAAS,sBAAmB;CACpD,CAAC;AAEF,SAAgB,2BAA2B,CAAC,YAA0B;IAClE,IAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,YAAY,CAAC,CAAC;IACpD,IAAM,cAAc,GAAG,YAAY,CAAC,oBAAoB,EAAE,CAAC,MAAM,CAAC,UAAC,IAAI;QACnE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IACH,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,0IAA0I,CAAC,CAAC;KAC/J;SAAM,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QACpC,MAAM,IAAI,KAAK,CAAC,+IAA+I,CAAC,CAAC;KACpK;SAAM;QACH,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;KAC5B;AACL,CAAC;AAZD,kEAYC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import dayjs from 'dayjs';
|
|
2
|
+
import { ClassDeclaration, ModelManager } from '@accordproject/concerto-core';
|
|
3
|
+
import { TemplateData } from './Common';
|
|
4
|
+
/**
|
|
5
|
+
* A template engine: merges the markup and logic of a template with
|
|
6
|
+
* JSON data to produce JSON data.
|
|
7
|
+
*/
|
|
8
|
+
export declare class TemplateMarkInterpreter {
|
|
9
|
+
modelManager: ModelManager;
|
|
10
|
+
templateClass: ClassDeclaration;
|
|
11
|
+
clauseLibrary: object;
|
|
12
|
+
constructor(modelManager: ModelManager, clauseLibrary: object);
|
|
13
|
+
/**
|
|
14
|
+
* Checks that a TemplateMark JSON document is valid with respect to the
|
|
15
|
+
* TemplateMark model, as well as the template model.
|
|
16
|
+
*
|
|
17
|
+
* Checks:
|
|
18
|
+
* 1. Variable names are valid properties in the template model
|
|
19
|
+
* 2. Optional properties have guards
|
|
20
|
+
* @param {*} templateMark the TemplateMark JSON object
|
|
21
|
+
* @returns {*} TemplateMark JSON that has been typed checked and has type metadata added
|
|
22
|
+
* @throws {Error} if the templateMark document is invalid
|
|
23
|
+
*/
|
|
24
|
+
checkTypes(templateMark: object): object;
|
|
25
|
+
/**
|
|
26
|
+
* Compiles the code nodes containing TS to code nodes containing JS.
|
|
27
|
+
* @param {*} templateMark the TemplateMark JSON object
|
|
28
|
+
* @returns {*} TemplateMark JSON with JS nodes
|
|
29
|
+
* @throws {Error} if the templateMark document is invalid
|
|
30
|
+
*/
|
|
31
|
+
compileTypeScriptToJavaScript(templateMark: object): object;
|
|
32
|
+
validateCiceroMark(ciceroMark: object): import("@accordproject/concerto-core/types/lib/model/resource");
|
|
33
|
+
generate(templateMark: object, data: TemplateData, now?: dayjs.Dayjs): Promise<any>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License.
|
|
5
|
+
* You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
* See the License for the specific language governing permissions and
|
|
13
|
+
* limitations under the License.
|
|
14
|
+
*/
|
|
15
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
16
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
17
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
18
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
19
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
20
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
21
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
25
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
26
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
27
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
28
|
+
function step(op) {
|
|
29
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
30
|
+
while (_) try {
|
|
31
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
32
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
33
|
+
switch (op[0]) {
|
|
34
|
+
case 0: case 1: t = op; break;
|
|
35
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
36
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
37
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
38
|
+
default:
|
|
39
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
40
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
41
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
42
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
43
|
+
if (t[2]) _.ops.pop();
|
|
44
|
+
_.trys.pop(); continue;
|
|
45
|
+
}
|
|
46
|
+
op = body.call(thisArg, _);
|
|
47
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
48
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
52
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
53
|
+
if (ar || !(i in from)) {
|
|
54
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
55
|
+
ar[i] = from[i];
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
59
|
+
};
|
|
60
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
61
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
62
|
+
};
|
|
63
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
64
|
+
exports.TemplateMarkInterpreter = void 0;
|
|
65
|
+
var dayjs_1 = __importDefault(require("dayjs"));
|
|
66
|
+
var jsonpath_1 = __importDefault(require("jsonpath"));
|
|
67
|
+
var traverse_1 = __importDefault(require("traverse"));
|
|
68
|
+
var concerto_core_1 = require("@accordproject/concerto-core");
|
|
69
|
+
var drafting_1 = require("./drafting");
|
|
70
|
+
var markdown_common_1 = require("@accordproject/markdown-common");
|
|
71
|
+
var concerto_core_2 = require("@accordproject/concerto-core");
|
|
72
|
+
var Common_1 = require("./Common");
|
|
73
|
+
var TemplateMarkToJavaScriptCompiler_1 = require("./TemplateMarkToJavaScriptCompiler");
|
|
74
|
+
/**
|
|
75
|
+
* Evaluates a JS expression
|
|
76
|
+
* @param {*} clauseLibrary the clause library
|
|
77
|
+
* @param {*} data the contract data
|
|
78
|
+
* @param {string} fn the JS function (including header)
|
|
79
|
+
* @param {Date} now the current value for now
|
|
80
|
+
* @returns {object} the result of evaluating the expression against the data
|
|
81
|
+
*/
|
|
82
|
+
function evaluateJavaScript(clauseLibrary, data, fn, now) {
|
|
83
|
+
if (!data || !fn) {
|
|
84
|
+
throw new Error("Cannot evaluate JS ".concat(fn, " against ").concat(data));
|
|
85
|
+
}
|
|
86
|
+
var runtimeNow = now ? now : (0, dayjs_1.default)();
|
|
87
|
+
var functionArgNames = new Array();
|
|
88
|
+
functionArgNames.push('data');
|
|
89
|
+
functionArgNames.push('library');
|
|
90
|
+
functionArgNames.push('now');
|
|
91
|
+
functionArgNames.push('jp');
|
|
92
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
93
|
+
var functionArgValues = new Array();
|
|
94
|
+
functionArgValues.push(data);
|
|
95
|
+
functionArgValues.push(clauseLibrary);
|
|
96
|
+
functionArgValues.push(runtimeNow);
|
|
97
|
+
functionArgValues.push(jsonpath_1.default);
|
|
98
|
+
// chop the function header and closing
|
|
99
|
+
var expression = fn.substring(fn.indexOf('{') + 1, fn.lastIndexOf('}'));
|
|
100
|
+
if (expression.trim().length === 0) {
|
|
101
|
+
throw new Error('Empty expression');
|
|
102
|
+
}
|
|
103
|
+
try {
|
|
104
|
+
var fun = new (Function.bind.apply(Function, __spreadArray(__spreadArray([void 0], functionArgNames, false), [expression], false)))(); // SECURITY!
|
|
105
|
+
var result = fun.apply(void 0, functionArgValues);
|
|
106
|
+
return result;
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
throw new Error("Caught error ".concat(err, " evaluating ").concat(expression, " with arguments ").concat(functionArgValues));
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Calculates a JSON path to use to retrieve data, based on a TemplatemMark tree.
|
|
114
|
+
* For example, if we hit a VariableDefinition {{city}} that is nested inside a
|
|
115
|
+
* WithDefinition {{#with address}} then the JSON path returned should be '$.address.city'.
|
|
116
|
+
* Similarly ListBlockDefinition, JoinDefinition and OptionalDefinition also include
|
|
117
|
+
* property names that must apply to their child nodes.
|
|
118
|
+
* @param {*} rootData the root of the JSON document, typically this is a TemplateMark JSON
|
|
119
|
+
* @param {*} currentNode the current TemplateMark node we are processing
|
|
120
|
+
* @param {string[]} paths the traverse path to the current node
|
|
121
|
+
* @returns {string} the JSON path to use to retrieve data
|
|
122
|
+
*/
|
|
123
|
+
function getJsonPath(rootData, currentNode, paths) {
|
|
124
|
+
if (!currentNode) {
|
|
125
|
+
throw new Error('Node must be supplied');
|
|
126
|
+
}
|
|
127
|
+
if (!currentNode.name) {
|
|
128
|
+
throw new Error("Node must have a name: ".concat(JSON.stringify(currentNode)));
|
|
129
|
+
}
|
|
130
|
+
if (currentNode.name.indexOf('.') >= 0) {
|
|
131
|
+
// prevent JSON path injection
|
|
132
|
+
throw new Error("Invalid name property ".concat(currentNode.name));
|
|
133
|
+
}
|
|
134
|
+
if (!paths || !paths.length || paths.length < 1) {
|
|
135
|
+
throw new Error('Paths must be supplied');
|
|
136
|
+
}
|
|
137
|
+
var withPath = [];
|
|
138
|
+
for (var n = 1; n < paths.length; n++) {
|
|
139
|
+
var sub = paths.slice(0, n);
|
|
140
|
+
var obj = traverse_1.default.get(rootData, sub);
|
|
141
|
+
// HACK
|
|
142
|
+
// if(obj===undefined) {
|
|
143
|
+
// throw new Error(`Failed to find data with path ${sub} and data ${JSON.stringify(rootData, null, 2)}`);
|
|
144
|
+
// }
|
|
145
|
+
if (obj && obj.$class) {
|
|
146
|
+
if (Common_1.NAVIGATION_NODES.indexOf(obj.$class) >= 0) {
|
|
147
|
+
withPath.push("['".concat(obj.name, "']"));
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
if (currentNode.name !== 'this') {
|
|
152
|
+
withPath.push("['".concat(currentNode.name, "']"));
|
|
153
|
+
}
|
|
154
|
+
return withPath.length > 0 ? "$".concat(withPath.join('')) : '$';
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Generates an AgreementMark JSON document from a template plus data.
|
|
158
|
+
* @param {ModelManager} modelManager - the template model
|
|
159
|
+
* @param {*} clauseLibrary - the clause library
|
|
160
|
+
* @param {*} templateMark - the TemplateMark JSON document
|
|
161
|
+
* @param {*} data - the template data JSON
|
|
162
|
+
* @param {[dayjs.Dayjs]} now - date/time to use for the now variable
|
|
163
|
+
* @returns {*} the AgreementMark JSON
|
|
164
|
+
*/
|
|
165
|
+
function generateAgreement(modelManager, clauseLibrary, templateMark, data, now) {
|
|
166
|
+
var introspector = new concerto_core_1.Introspector(modelManager);
|
|
167
|
+
return (0, traverse_1.default)(templateMark).map(function (context) {
|
|
168
|
+
var stopHere = false;
|
|
169
|
+
if (typeof context === 'object' && context.$class && typeof context.$class === 'string') {
|
|
170
|
+
var nodeClass = context.$class;
|
|
171
|
+
// rewrite node types, mapping from TemplateMark namespace to CiceroMark
|
|
172
|
+
var match = nodeClass.match(Common_1.TEMPLATEMARK_RE);
|
|
173
|
+
if (match && match.length > 1) {
|
|
174
|
+
context.$class = "".concat(markdown_common_1.CiceroMarkModel.NAMESPACE, ".").concat(match[3]);
|
|
175
|
+
}
|
|
176
|
+
// convert a contract node to a clause note HACK
|
|
177
|
+
if (Common_1.CONTRACT_DEFINITION_RE.test(nodeClass)) {
|
|
178
|
+
context.$class = "".concat(markdown_common_1.CommonMarkModel.NAMESPACE, ".Paragraph");
|
|
179
|
+
delete context.name;
|
|
180
|
+
delete context.elementType;
|
|
181
|
+
}
|
|
182
|
+
// convert a WithDefinition to a Paragraph in the output
|
|
183
|
+
// not 100% sure we want to do that ... we may need to process
|
|
184
|
+
// the child variable nodes and reparent them?
|
|
185
|
+
if (Common_1.WITH_DEFINITION_RE.test(nodeClass)) {
|
|
186
|
+
context.$class = "".concat(markdown_common_1.CommonMarkModel.NAMESPACE, ".Paragraph");
|
|
187
|
+
delete context.name;
|
|
188
|
+
delete context.elementType;
|
|
189
|
+
}
|
|
190
|
+
// add a 'value' property to FormulaDefinition
|
|
191
|
+
// with the result of evaluating the JS code
|
|
192
|
+
else if (Common_1.FORMULA_DEFINITION_RE.test(nodeClass)) {
|
|
193
|
+
if (context.code) {
|
|
194
|
+
var result = evaluateJavaScript(clauseLibrary, data, context.code.contents, now);
|
|
195
|
+
if (result === null) {
|
|
196
|
+
context.value = '<null>';
|
|
197
|
+
}
|
|
198
|
+
else if (typeof result === 'string') {
|
|
199
|
+
context.value = result;
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
context.value = JSON.stringify(result);
|
|
203
|
+
}
|
|
204
|
+
delete context.code;
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
throw new Error('Formula node is missing code.');
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
// evaluate lists, recursing on each list item
|
|
211
|
+
else if (Common_1.LISTBLOCK_DEFINITION_RE.test(nodeClass)) {
|
|
212
|
+
var path = getJsonPath(templateMark, context, this.path);
|
|
213
|
+
var variableValues = jsonpath_1.default.query(data, path, 1);
|
|
214
|
+
if (variableValues.length === 0) {
|
|
215
|
+
throw new Error("No values found for path '".concat(path, "' in data ").concat(data, "."));
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
var arrayData = variableValues[0];
|
|
219
|
+
if (!Array.isArray(arrayData)) {
|
|
220
|
+
throw new Error("Values found for path '".concat(path, "' in data ").concat(data, " is not an array: ").concat(arrayData, "."));
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
context.$class = "".concat(markdown_common_1.CommonMarkModel.NAMESPACE, ".List");
|
|
224
|
+
delete context.elementType;
|
|
225
|
+
delete context.name;
|
|
226
|
+
context.nodes = arrayData.map(function (arrayItem) {
|
|
227
|
+
// arrayItem is now the data for the nested traversal
|
|
228
|
+
var subResult = generateAgreement(modelManager, clauseLibrary, context.nodes[0].nodes[0], arrayItem);
|
|
229
|
+
return {
|
|
230
|
+
$class: "".concat(markdown_common_1.CommonMarkModel.NAMESPACE, ".Item"),
|
|
231
|
+
nodes: subResult.nodes ? subResult.nodes : []
|
|
232
|
+
};
|
|
233
|
+
});
|
|
234
|
+
stopHere = true; // do not process child nodes, we've already done it above...
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
// map over an array of items, joining them into a Text node
|
|
239
|
+
else if (Common_1.JOIN_DEFINITION_RE.test(nodeClass)) {
|
|
240
|
+
var path = getJsonPath(templateMark, context, this.path);
|
|
241
|
+
var variableValues = jsonpath_1.default.query(data, path, 1);
|
|
242
|
+
if (variableValues.length === 0) {
|
|
243
|
+
throw new Error("No values found for path '".concat(path, "' in data ").concat(data, "."));
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
var arrayData = variableValues[0];
|
|
247
|
+
if (!Array.isArray(arrayData)) {
|
|
248
|
+
throw new Error("Values found for path '".concat(path, "' in data ").concat(data, " is not an array: ").concat(arrayData, "."));
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
context.$class = "".concat(markdown_common_1.CommonMarkModel.NAMESPACE, ".Text");
|
|
252
|
+
var drafter_1 = drafting_1.draftingMap.get(context.elementType);
|
|
253
|
+
context.text = arrayData.map(function (arrayItem) {
|
|
254
|
+
return drafter_1 ? drafter_1(arrayItem, context.format) : arrayItem;
|
|
255
|
+
}).join(context.separator);
|
|
256
|
+
delete context.elementType;
|
|
257
|
+
delete context.name;
|
|
258
|
+
delete context.separator;
|
|
259
|
+
delete context.nodes;
|
|
260
|
+
stopHere = true; // do not process child nodes, we've already done it above...
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
// add a 'value' property to VariableDefinition
|
|
265
|
+
// with the value of the variable from 'data'
|
|
266
|
+
else if (Common_1.VARIABLE_DEFINITION_RE.test(nodeClass) ||
|
|
267
|
+
Common_1.ENUM_VARIABLE_DEFINITION_RE.test(nodeClass) ||
|
|
268
|
+
Common_1.FORMATTED_VARIABLE_DEFINITION_RE.test(nodeClass)) {
|
|
269
|
+
if (typeof data === 'object') {
|
|
270
|
+
var path = getJsonPath(templateMark, context, this.path);
|
|
271
|
+
var variableValues = jsonpath_1.default.query(data, path, 1);
|
|
272
|
+
if (variableValues.length === 0) {
|
|
273
|
+
throw new Error("No values found for path '".concat(path, "' in data ").concat(data, "."));
|
|
274
|
+
}
|
|
275
|
+
else {
|
|
276
|
+
// convert the value to a string, optionally using the formatter
|
|
277
|
+
var variableValue = variableValues[0];
|
|
278
|
+
var drafter = drafting_1.draftingMap.get(context.elementType);
|
|
279
|
+
context.value = drafter ? drafter(variableValue, context.format) : JSON.stringify(variableValue);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
// a list of enum values or primitives brings us here
|
|
284
|
+
var variableValue = data;
|
|
285
|
+
var type = concerto_core_2.ModelUtil.isPrimitiveType(context.elementType) ? null : introspector.getClassDeclaration(context.elementType);
|
|
286
|
+
// we want to draft Enums as strings, not objects
|
|
287
|
+
var drafter = drafting_1.draftingMap.get(type && type.isEnum() ? 'String' : context.elementType);
|
|
288
|
+
context.value = drafter ? drafter(variableValue, context.format) : JSON.stringify(variableValue);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
// add a 'isTrue' property to ConditionDefinition
|
|
292
|
+
// with the result of evaluating the JS code or a boolean property
|
|
293
|
+
else if (Common_1.CONDITIONAL_DEFINITION_RE.test(nodeClass)) {
|
|
294
|
+
if (context.condition) {
|
|
295
|
+
context.isTrue = !!evaluateJavaScript(clauseLibrary, data, context.condition.contents, now);
|
|
296
|
+
}
|
|
297
|
+
else {
|
|
298
|
+
var path = getJsonPath(templateMark, context, this.path);
|
|
299
|
+
var variableValues = jsonpath_1.default.query(data, path, 1);
|
|
300
|
+
if (variableValues && variableValues.length) {
|
|
301
|
+
if (variableValues.length === 1) {
|
|
302
|
+
context.isTrue = !!variableValues[0];
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
throw new Error("Multiple values found for path '".concat(path, "' in data ").concat(data, "."));
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
context.isTrue = false;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
context.nodes = context.isTrue ? context.whenTrue : context.whenFalse;
|
|
313
|
+
delete context.condition;
|
|
314
|
+
delete context.dependencies;
|
|
315
|
+
delete context.functionName;
|
|
316
|
+
}
|
|
317
|
+
// only include the children of a clause if its condition is true
|
|
318
|
+
else if (Common_1.CLAUSE_DEFINITION_RE.test(nodeClass)) {
|
|
319
|
+
if (context.condition) {
|
|
320
|
+
var result = !!evaluateJavaScript(clauseLibrary, data, context.condition.contents, now);
|
|
321
|
+
if (!result) {
|
|
322
|
+
delete context.nodes;
|
|
323
|
+
stopHere = true;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
delete context.condition;
|
|
327
|
+
delete context.functionName;
|
|
328
|
+
}
|
|
329
|
+
// add a 'hasSome' property to OptionalDefinition
|
|
330
|
+
else if (Common_1.OPTIONAL_DEFINITION_RE.test(nodeClass)) {
|
|
331
|
+
var path = getJsonPath(templateMark, context, this.path);
|
|
332
|
+
var variableValues = jsonpath_1.default.query(data, path, 1);
|
|
333
|
+
if (variableValues && variableValues.length) {
|
|
334
|
+
if (variableValues.length === 1) {
|
|
335
|
+
context.hasSome = true;
|
|
336
|
+
context.whenNone = [];
|
|
337
|
+
}
|
|
338
|
+
else {
|
|
339
|
+
throw new Error("Multiple values found for path '".concat(path, "' in data ").concat(data, "."));
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
context.hasSome = false;
|
|
344
|
+
context.whenSome = [];
|
|
345
|
+
}
|
|
346
|
+
context.nodes = context.hasSome ? context.whenSome : context.whenNone;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
this.update(context, stopHere);
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* A template engine: merges the markup and logic of a template with
|
|
354
|
+
* JSON data to produce JSON data.
|
|
355
|
+
*/
|
|
356
|
+
var TemplateMarkInterpreter = /** @class */ (function () {
|
|
357
|
+
function TemplateMarkInterpreter(modelManager, clauseLibrary) {
|
|
358
|
+
this.modelManager = modelManager;
|
|
359
|
+
this.clauseLibrary = clauseLibrary;
|
|
360
|
+
this.templateClass = (0, Common_1.getTemplateClassDeclaration)(this.modelManager);
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Checks that a TemplateMark JSON document is valid with respect to the
|
|
364
|
+
* TemplateMark model, as well as the template model.
|
|
365
|
+
*
|
|
366
|
+
* Checks:
|
|
367
|
+
* 1. Variable names are valid properties in the template model
|
|
368
|
+
* 2. Optional properties have guards
|
|
369
|
+
* @param {*} templateMark the TemplateMark JSON object
|
|
370
|
+
* @returns {*} TemplateMark JSON that has been typed checked and has type metadata added
|
|
371
|
+
* @throws {Error} if the templateMark document is invalid
|
|
372
|
+
*/
|
|
373
|
+
TemplateMarkInterpreter.prototype.checkTypes = function (templateMark) {
|
|
374
|
+
var modelManager = new concerto_core_1.ModelManager({ strict: true });
|
|
375
|
+
modelManager.addCTOModel(markdown_common_1.ConcertoMetaModel.MODEL, 'concertometamodel.cto');
|
|
376
|
+
modelManager.addCTOModel(markdown_common_1.CommonMarkModel.MODEL, 'commonmark.cto');
|
|
377
|
+
modelManager.addCTOModel(markdown_common_1.TemplateMarkModel.MODEL, 'templatemark.cto');
|
|
378
|
+
var factory = new concerto_core_1.Factory(modelManager);
|
|
379
|
+
var serializer = new concerto_core_1.Serializer(factory, modelManager);
|
|
380
|
+
try {
|
|
381
|
+
serializer.fromJSON(templateMark);
|
|
382
|
+
return templateMark;
|
|
383
|
+
}
|
|
384
|
+
catch (err) {
|
|
385
|
+
throw new Error("Generated invalid agreement: ".concat(err, ": ").concat(JSON.stringify(templateMark, null, 2)));
|
|
386
|
+
}
|
|
387
|
+
};
|
|
388
|
+
/**
|
|
389
|
+
* Compiles the code nodes containing TS to code nodes containing JS.
|
|
390
|
+
* @param {*} templateMark the TemplateMark JSON object
|
|
391
|
+
* @returns {*} TemplateMark JSON with JS nodes
|
|
392
|
+
* @throws {Error} if the templateMark document is invalid
|
|
393
|
+
*/
|
|
394
|
+
TemplateMarkInterpreter.prototype.compileTypeScriptToJavaScript = function (templateMark) {
|
|
395
|
+
var compiler = new TemplateMarkToJavaScriptCompiler_1.TemplateMarkToJavaScriptCompiler(this.modelManager);
|
|
396
|
+
return compiler.compile(templateMark);
|
|
397
|
+
};
|
|
398
|
+
TemplateMarkInterpreter.prototype.validateCiceroMark = function (ciceroMark) {
|
|
399
|
+
var modelManager = new concerto_core_1.ModelManager({ strict: true });
|
|
400
|
+
modelManager.addCTOModel(markdown_common_1.ConcertoMetaModel.MODEL, 'concertometamodel.cto');
|
|
401
|
+
modelManager.addCTOModel(markdown_common_1.CommonMarkModel.MODEL, 'commonmark.cto');
|
|
402
|
+
modelManager.addCTOModel(markdown_common_1.CiceroMarkModel.MODEL, 'ciceromark.cto');
|
|
403
|
+
var factory = new concerto_core_1.Factory(modelManager);
|
|
404
|
+
var serializer = new concerto_core_1.Serializer(factory, modelManager);
|
|
405
|
+
try {
|
|
406
|
+
return serializer.fromJSON(ciceroMark);
|
|
407
|
+
}
|
|
408
|
+
catch (err) {
|
|
409
|
+
throw new Error("Generated invalid agreement: ".concat(err, ": ").concat(JSON.stringify(ciceroMark, null, 2)));
|
|
410
|
+
}
|
|
411
|
+
};
|
|
412
|
+
TemplateMarkInterpreter.prototype.generate = function (templateMark, data, now) {
|
|
413
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
414
|
+
var factory, serializer, templateData, typedTemplateMark, jsTemplateMark, ciceroMark;
|
|
415
|
+
return __generator(this, function (_a) {
|
|
416
|
+
factory = new concerto_core_1.Factory(this.modelManager);
|
|
417
|
+
serializer = new concerto_core_1.Serializer(factory, this.modelManager);
|
|
418
|
+
templateData = serializer.fromJSON(data);
|
|
419
|
+
if (templateData.getFullyQualifiedType() !== this.templateClass.getFullyQualifiedName()) {
|
|
420
|
+
throw new Error("Template data must be of type '".concat(this.templateClass.getFullyQualifiedName(), "'."));
|
|
421
|
+
}
|
|
422
|
+
typedTemplateMark = this.checkTypes(templateMark);
|
|
423
|
+
jsTemplateMark = this.compileTypeScriptToJavaScript(typedTemplateMark);
|
|
424
|
+
ciceroMark = generateAgreement(this.modelManager, this.clauseLibrary, jsTemplateMark, data, now);
|
|
425
|
+
return [2 /*return*/, this.validateCiceroMark(ciceroMark)];
|
|
426
|
+
});
|
|
427
|
+
});
|
|
428
|
+
};
|
|
429
|
+
return TemplateMarkInterpreter;
|
|
430
|
+
}());
|
|
431
|
+
exports.TemplateMarkInterpreter = TemplateMarkInterpreter;
|
|
432
|
+
//# sourceMappingURL=TemplateMarkInterpreter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateMarkInterpreter.js","sourceRoot":"","sources":["../src/TemplateMarkInterpreter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,gDAA0B;AAC1B,sDAA0B;AAC1B,sDAAgC;AAEhC,8DAAiH;AACjH,uCAAyC;AACzC,kEAAwH;AACxH,8DAAyD;AAEzD,mCAgBkB;AAClB,uFAAsF;AAEtF;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,aAAoB,EAAE,IAAkB,EAAE,EAAU,EAAE,GAAiB;IAC/F,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,6BAAsB,EAAE,sBAAY,IAAI,CAAE,CAAC,CAAC;KAC/D;IACD,IAAM,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,eAAK,GAAE,CAAC;IACvC,IAAM,gBAAgB,GAAG,IAAI,KAAK,EAAU,CAAC;IAC7C,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE5B,8DAA8D;IAC9D,IAAM,iBAAiB,GAAG,IAAI,KAAK,EAAO,CAAC;IAC3C,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnC,iBAAiB,CAAC,IAAI,CAAC,kBAAE,CAAC,CAAC;IAE3B,uCAAuC;IACvC,IAAM,UAAU,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,IAAG,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KACvC;IACD,IAAI;QACA,IAAM,GAAG,QAAO,QAAQ,YAAR,QAAQ,wCAAI,gBAAgB,WAAE,UAAU,aAAC,CAAC,CAAC,YAAY;QACvE,IAAM,MAAM,GAAG,GAAG,eAAI,iBAAiB,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC;KACjB;IACD,OAAM,GAAG,EAAE;QACP,MAAM,IAAI,KAAK,CAAC,uBAAgB,GAAG,yBAAe,UAAU,6BAAmB,iBAAiB,CAAE,CAAC,CAAC;KACvG;AACL,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,WAAW,CAAC,QAAY,EAAE,WAAe,EAAE,KAAc;IAC9D,IAAG,CAAC,WAAW,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;KAC5C;IACD,IAAG,CAAC,WAAW,CAAC,IAAI,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,iCAA0B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAE,CAAC,CAAC;KAC5E;IACD,IAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAG,CAAC,EAAE;QAClC,8BAA8B;QAC9B,MAAM,IAAI,KAAK,CAAC,gCAAyB,WAAW,CAAC,IAAI,CAAE,CAAC,CAAC;KAChE;IACD,IAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAE,CAAC,EAAG;QAC5C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;KAC7C;IACD,IAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,IAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,IAAM,GAAG,GAAG,kBAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACxC,OAAO;QACP,wBAAwB;QACxB,6GAA6G;QAC7G,IAAI;QACJ,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE;YACnB,IAAG,yBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBAC1C,QAAQ,CAAC,IAAI,CAAC,YAAK,GAAG,CAAC,IAAI,OAAI,CAAC,CAAC;aACpC;SACJ;KACJ;IAED,IAAG,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE;QAC5B,QAAQ,CAAC,IAAI,CAAC,YAAK,WAAW,CAAC,IAAI,OAAI,CAAC,CAAC;KAC5C;IAED,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAC/D,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,YAAyB,EAAE,aAAoB,EAAE,YAAoB,EAAE,IAAkB,EAAE,GAAgB;IAClI,IAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,YAAY,CAAC,CAAC;IACpD,OAAO,IAAA,kBAAQ,EAAC,YAAY,CAAC,CAAC,GAAG,CAAC,UAAU,OAAY;QACpD,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;YACrF,IAAM,SAAS,GAAG,OAAO,CAAC,MAAgB,CAAC;YAE3C,wEAAwE;YACxE,IAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,wBAAe,CAAC,CAAC;YAC/C,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,OAAO,CAAC,MAAM,GAAG,UAAG,iCAAe,CAAC,SAAS,cAAI,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC;aAC/D;YAED,gDAAgD;YAChD,IAAI,+BAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBACxC,OAAO,CAAC,MAAM,GAAG,UAAG,iCAAe,CAAC,SAAS,eAAY,CAAC;gBAC1D,OAAO,OAAO,CAAC,IAAI,CAAC;gBACpB,OAAO,OAAO,CAAC,WAAW,CAAC;aAC9B;YAED,wDAAwD;YACxD,8DAA8D;YAC9D,8CAA8C;YAC9C,IAAI,2BAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBACpC,OAAO,CAAC,MAAM,GAAG,UAAG,iCAAe,CAAC,SAAS,eAAY,CAAC;gBAC1D,OAAO,OAAO,CAAC,IAAI,CAAC;gBACpB,OAAO,OAAO,CAAC,WAAW,CAAC;aAC9B;YAED,8CAA8C;YAC9C,4CAA4C;iBACvC,IAAI,8BAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC5C,IAAI,OAAO,CAAC,IAAI,EAAE;oBACd,IAAM,MAAM,GAAG,kBAAkB,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBACnF,IAAG,MAAM,KAAK,IAAI,EAAE;wBAChB,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;qBAC5B;yBACI,IAAG,OAAO,MAAM,KAAK,QAAQ,EAAE;wBAChC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;qBAC1B;yBACI;wBACD,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;qBAC1C;oBACD,OAAO,OAAO,CAAC,IAAI,CAAC;iBACvB;qBACI;oBACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;iBACpD;aACJ;YAED,8CAA8C;iBACzC,IAAI,gCAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC9C,IAAM,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,IAAM,cAAc,GAAG,kBAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAE/C,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC7B,MAAM,IAAI,KAAK,CAAC,oCAA6B,IAAI,uBAAa,IAAI,MAAG,CAAC,CAAC;iBAC1E;qBACI;oBACD,IAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;oBACpC,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;wBAC1B,MAAM,IAAI,KAAK,CAAC,iCAA0B,IAAI,uBAAa,IAAI,+BAAqB,SAAS,MAAG,CAAC,CAAC;qBACrG;yBACI;wBACD,OAAO,CAAC,MAAM,GAAG,UAAG,iCAAe,CAAC,SAAS,UAAO,CAAC;wBACrD,OAAO,OAAO,CAAC,WAAW,CAAC;wBAC3B,OAAO,OAAO,CAAC,IAAI,CAAC;wBACpB,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,CAAE,UAAA,SAAS;4BACpC,qDAAqD;4BACrD,IAAM,SAAS,GAAG,iBAAiB,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;4BACvG,OAAO;gCACH,MAAM,EAAE,UAAG,iCAAe,CAAC,SAAS,UAAO;gCAC3C,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;6BAChD,CAAC;wBACN,CAAC,CAAC,CAAC;wBACH,QAAQ,GAAG,IAAI,CAAC,CAAC,6DAA6D;qBACjF;iBACJ;aACJ;YAED,4DAA4D;iBACvD,IAAI,2BAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBACzC,IAAM,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,IAAM,cAAc,GAAG,kBAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAE/C,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC7B,MAAM,IAAI,KAAK,CAAC,oCAA6B,IAAI,uBAAa,IAAI,MAAG,CAAC,CAAC;iBAC1E;qBACI;oBACD,IAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;oBACpC,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;wBAC1B,MAAM,IAAI,KAAK,CAAC,iCAA0B,IAAI,uBAAa,IAAI,+BAAqB,SAAS,MAAG,CAAC,CAAC;qBACrG;yBACI;wBACD,OAAO,CAAC,MAAM,GAAG,UAAG,iCAAe,CAAC,SAAS,UAAO,CAAC;wBACrD,IAAM,SAAO,GAAG,sBAAW,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;wBACrD,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAE,UAAA,SAAS;4BACnC,OAAO,SAAO,CAAC,CAAC,CAAC,SAAO,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAmB,CAAC;wBAC9E,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;wBAC3B,OAAO,OAAO,CAAC,WAAW,CAAC;wBAC3B,OAAO,OAAO,CAAC,IAAI,CAAC;wBACpB,OAAO,OAAO,CAAC,SAAS,CAAC;wBACzB,OAAO,OAAO,CAAC,KAAK,CAAC;wBACrB,QAAQ,GAAG,IAAI,CAAC,CAAC,6DAA6D;qBACjF;iBACJ;aACJ;YAED,+CAA+C;YAC/C,6CAA6C;iBACxC,IAAI,+BAAsB,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC3C,oCAA2B,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC3C,yCAAgC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAClD,IAAG,OAAO,IAAI,KAAK,QAAQ,EAAE;oBACzB,IAAM,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3D,IAAM,cAAc,GAAG,kBAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC/C,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC7B,MAAM,IAAI,KAAK,CAAC,oCAA6B,IAAI,uBAAa,IAAI,MAAG,CAAC,CAAC;qBAC1E;yBACI;wBACD,gEAAgE;wBAChE,IAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;wBACxC,IAAM,OAAO,GAAG,sBAAW,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;wBACrD,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAW,CAAC;qBAC9G;iBACJ;qBACI;oBACD,qDAAqD;oBACrD,IAAM,aAAa,GAAG,IAAI,CAAC;oBAC3B,IAAM,IAAI,GAAI,yBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBACpI,iDAAiD;oBACjD,IAAM,OAAO,GAAG,sBAAW,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBACxF,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAW,CAAC;iBAC9G;aACJ;YAED,iDAAiD;YACjD,kEAAkE;iBAC7D,IAAI,kCAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAChD,IAAI,OAAO,CAAC,SAAS,EAAE;oBACnB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAuB,CAAC;iBACrH;qBACI;oBACD,IAAM,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3D,IAAM,cAAc,GAAG,kBAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC/C,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,EAAE;wBACzC,IAAG,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC5B,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;yBACxC;6BACI;4BACD,MAAM,IAAI,KAAK,CAAC,0CAAmC,IAAI,uBAAa,IAAI,MAAG,CAAC,CAAC;yBAChF;qBACJ;yBACI;wBACD,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;qBAC1B;iBACJ;gBACD,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;gBACtE,OAAO,OAAO,CAAC,SAAS,CAAC;gBACzB,OAAO,OAAO,CAAC,YAAY,CAAC;gBAC5B,OAAO,OAAO,CAAC,YAAY,CAAC;aAC/B;YAED,iEAAiE;iBAC5D,IAAI,6BAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC3C,IAAI,OAAO,CAAC,SAAS,EAAE;oBACnB,IAAM,MAAM,GAAG,CAAC,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAuB,CAAC;oBAChH,IAAG,CAAC,MAAM,EAAE;wBACR,OAAO,OAAO,CAAC,KAAK,CAAC;wBACrB,QAAQ,GAAG,IAAI,CAAC;qBACnB;iBACJ;gBACD,OAAO,OAAO,CAAC,SAAS,CAAC;gBACzB,OAAO,OAAO,CAAC,YAAY,CAAC;aAC/B;YAED,iDAAiD;iBAC5C,IAAI,+BAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC7C,IAAM,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,IAAM,cAAc,GAAG,kBAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC/C,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,EAAE;oBACzC,IAAG,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC5B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;wBACvB,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;qBACzB;yBACI;wBACD,MAAM,IAAI,KAAK,CAAC,0CAAmC,IAAI,uBAAa,IAAI,MAAG,CAAC,CAAC;qBAChF;iBACJ;qBACI;oBACD,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;oBACxB,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;iBACzB;gBACD,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;aACzE;SACJ;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACH;IAKI,iCAAY,YAA0B,EAAE,aAAoB;QACxD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,IAAA,oCAA2B,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;;;;OAUG;IACH,4CAAU,GAAV,UAAW,YAAoB;QAC3B,IAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,YAAY,CAAC,WAAW,CAAC,mCAAiB,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;QAC3E,YAAY,CAAC,WAAW,CAAC,iCAAe,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAClE,YAAY,CAAC,WAAW,CAAC,mCAAiB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACtE,IAAM,OAAO,GAAG,IAAI,uBAAO,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAM,UAAU,GAAG,IAAI,0BAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACzD,IAAI;YACA,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAClC,OAAO,YAAY,CAAC;SACvB;QACD,OAAM,GAAG,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,uCAAgC,GAAG,eAAK,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC;SACpG;IACL,CAAC;IAED;;;;;OAKG;IACH,+DAA6B,GAA7B,UAA8B,YAAoB;QAC9C,IAAM,QAAQ,GAAG,IAAI,mEAAgC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;IAED,oDAAkB,GAAlB,UAAmB,UAAkB;QACjC,IAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,YAAY,CAAC,WAAW,CAAC,mCAAiB,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;QAC3E,YAAY,CAAC,WAAW,CAAC,iCAAe,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAClE,YAAY,CAAC,WAAW,CAAC,iCAAe,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAClE,IAAM,OAAO,GAAG,IAAI,uBAAO,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAM,UAAU,GAAG,IAAI,0BAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACzD,IAAI;YACA,OAAO,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAC1C;QACD,OAAM,GAAG,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,uCAAgC,GAAG,eAAK,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC;SAClG;IACL,CAAC;IAEK,0CAAQ,GAAd,UAAe,YAAoB,EAAE,IAAkB,EAAE,GAAgB;;;;gBAC/D,OAAO,GAAG,IAAI,uBAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACzC,UAAU,GAAG,IAAI,0BAAU,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;gBACxD,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,YAAY,CAAC,qBAAqB,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,EAAE;oBACrF,MAAM,IAAI,KAAK,CAAC,yCAAkC,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,OAAI,CAAC,CAAC;iBACrG;gBACK,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;gBAClD,cAAc,GAAG,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,CAAC;gBACvE,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;gBACvG,sBAAO,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAC;;;KAC9C;IACL,8BAAC;AAAD,CAAC,AA5ED,IA4EC;AA5EY,0DAAuB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ClassDeclaration, ModelManager } from '@accordproject/concerto-core';
|
|
2
|
+
import { TypeScriptToJavaScriptCompiler } from './TypeScriptToJavaScriptCompiler';
|
|
3
|
+
import { TwoSlashReturn } from '@typescript/twoslash';
|
|
4
|
+
export declare type CompilerError = {
|
|
5
|
+
nodeId: string;
|
|
6
|
+
code: string;
|
|
7
|
+
errors: TwoSlashReturn['errors'];
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Compiles all the Typescript nodes in a TemplateMark JSON
|
|
11
|
+
* to ES_2020 and returns a modified TemplateMark JSON.
|
|
12
|
+
*/
|
|
13
|
+
export declare class TemplateMarkToJavaScriptCompiler {
|
|
14
|
+
modelManager: ModelManager;
|
|
15
|
+
compiler: TypeScriptToJavaScriptCompiler;
|
|
16
|
+
templateClass: ClassDeclaration;
|
|
17
|
+
constructor(modelManager: ModelManager);
|
|
18
|
+
compile(templateJson: any): any;
|
|
19
|
+
}
|