@accordproject/template-engine 1.0.19 → 1.0.23
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.js +9 -9
- package/dist/Common.js.map +1 -1
- package/dist/TemplateMarkInterpreter.js +113 -151
- package/dist/TemplateMarkInterpreter.js.map +1 -1
- package/dist/TemplateMarkToJavaScriptCompiler.js +31 -24
- package/dist/TemplateMarkToJavaScriptCompiler.js.map +1 -1
- package/dist/TemplateMarkToTypeScriptCompiler.js +90 -92
- package/dist/TemplateMarkToTypeScriptCompiler.js.map +1 -1
- package/dist/TypeScriptCompilationContext.js +29 -22
- package/dist/TypeScriptCompilationContext.js.map +1 -1
- package/dist/TypeScriptRuntime.d.ts +1 -0
- package/dist/TypeScriptRuntime.js +24 -12
- package/dist/TypeScriptRuntime.js.map +1 -1
- package/dist/TypeScriptToJavaScriptCompiler.js +18 -16
- package/dist/TypeScriptToJavaScriptCompiler.js.map +1 -1
- package/dist/compilers/Clause.d.ts +1 -1
- package/dist/compilers/Clause.js +18 -35
- package/dist/compilers/Clause.js.map +1 -1
- package/dist/compilers/Common.js +55 -80
- package/dist/compilers/Common.js.map +1 -1
- package/dist/compilers/Conditional.d.ts +1 -1
- package/dist/compilers/Conditional.js +12 -29
- package/dist/compilers/Conditional.js.map +1 -1
- package/dist/compilers/ContractDefinition.d.ts +1 -1
- package/dist/compilers/ContractDefinition.js +10 -27
- package/dist/compilers/ContractDefinition.js.map +1 -1
- package/dist/compilers/EnumVariable.d.ts +1 -1
- package/dist/compilers/EnumVariable.js +12 -29
- package/dist/compilers/EnumVariable.js.map +1 -1
- package/dist/compilers/FormattedVariable.d.ts +1 -1
- package/dist/compilers/FormattedVariable.js +14 -31
- package/dist/compilers/FormattedVariable.js.map +1 -1
- package/dist/compilers/Formula.d.ts +1 -1
- package/dist/compilers/Formula.js +14 -31
- package/dist/compilers/Formula.js.map +1 -1
- package/dist/compilers/Join.d.ts +1 -1
- package/dist/compilers/Join.js +12 -28
- package/dist/compilers/Join.js.map +1 -1
- package/dist/compilers/ListBlock.d.ts +1 -1
- package/dist/compilers/ListBlock.js +17 -35
- package/dist/compilers/ListBlock.js.map +1 -1
- package/dist/compilers/NodeCompilers.js +44 -44
- package/dist/compilers/NodeCompilers.js.map +1 -1
- package/dist/compilers/Optional.d.ts +1 -1
- package/dist/compilers/Optional.js +17 -34
- package/dist/compilers/Optional.js.map +1 -1
- package/dist/compilers/Variable.d.ts +1 -1
- package/dist/compilers/Variable.js +12 -29
- package/dist/compilers/Variable.js.map +1 -1
- package/dist/compilers/With.d.ts +1 -1
- package/dist/compilers/With.js +13 -30
- package/dist/compilers/With.js.map +1 -1
- package/dist/drafting/DateTime/index.js +3 -3
- package/dist/drafting/DateTime/index.js.map +1 -1
- package/dist/drafting/Double/format.js +5 -5
- package/dist/drafting/Double/format.js.map +1 -1
- package/dist/drafting/Double/index.js +2 -2
- package/dist/drafting/Double/index.js.map +1 -1
- package/dist/drafting/Integer/format.js +3 -3
- package/dist/drafting/Integer/format.js.map +1 -1
- package/dist/drafting/Integer/index.js +2 -2
- package/dist/drafting/Integer/index.js.map +1 -1
- package/dist/drafting/Long/index.js +2 -2
- package/dist/drafting/Long/index.js.map +1 -1
- package/dist/drafting/MonetaryAmount/index.js +4 -4
- package/dist/drafting/MonetaryAmount/index.js.map +1 -1
- package/dist/drafting/index.js +7 -7
- package/dist/drafting/index.js.map +1 -1
- package/dist/model-gen/concerto.d.ts +13 -0
- package/dist/model-gen/concerto.js +5 -0
- package/dist/model-gen/concerto.js.map +1 -0
- package/dist/model-gen/concerto.metamodel@1.0.0.d.ts +24 -1
- package/dist/model-gen/concerto@1.0.0.d.ts +3 -2
- package/dist/model-gen/org.accordproject.commonmark@0.5.0.d.ts +2 -2
- package/dist/model-gen/{org.accordproject.templatemark@0.4.0.d.ts → org.accordproject.templatemark@0.5.0.d.ts} +5 -1
- package/dist/model-gen/{org.accordproject.templatemark@0.4.0.js → org.accordproject.templatemark@0.5.0.js} +3 -2
- package/dist/model-gen/org.accordproject.templatemark@0.5.0.js.map +1 -0
- package/dist/runtime/runtime.d.ts +1 -1
- package/dist/runtime/runtime.js +1 -1
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime.tgz +0 -0
- package/package.json +8 -8
- package/dist/model-gen/org.accordproject.templatemark@0.4.0.js.map +0 -1
package/dist/Common.js
CHANGED
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
*/
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
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
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
const concerto_core_1 = require("@accordproject/concerto-core");
|
|
18
|
+
const markdown_common_1 = require("@accordproject/markdown-common");
|
|
19
|
+
const markdown_template_1 = require("@accordproject/markdown-template");
|
|
20
20
|
// use to create agreementmark from templatemark
|
|
21
21
|
exports.TEMPLATEMARK_RE = /^(org\.accordproject\.templatemark)@(.+)\.(\w+)Definition$/;
|
|
22
22
|
exports.FORMULA_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.FormulaDefinition$/;
|
|
@@ -35,14 +35,14 @@ exports.CONTRACT_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.Cont
|
|
|
35
35
|
* by specifying the name of a property on the node.
|
|
36
36
|
*/
|
|
37
37
|
exports.NAVIGATION_NODES = [
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
`${markdown_common_1.TemplateMarkModel.NAMESPACE}.ListBlockDefinition`,
|
|
39
|
+
`${markdown_common_1.TemplateMarkModel.NAMESPACE}.WithDefinition`,
|
|
40
|
+
`${markdown_common_1.TemplateMarkModel.NAMESPACE}.JoinDefinition`,
|
|
41
|
+
`${markdown_common_1.TemplateMarkModel.NAMESPACE}.OptionalDefinition`,
|
|
42
|
+
`${markdown_common_1.TemplateMarkModel.NAMESPACE}.ClauseDefinition`
|
|
43
43
|
];
|
|
44
44
|
function getTemplateClassDeclaration(modelManager, templateConceptFqn) {
|
|
45
|
-
|
|
45
|
+
const introspector = new concerto_core_1.Introspector(modelManager);
|
|
46
46
|
try {
|
|
47
47
|
return markdown_template_1.templatemarkutil.findTemplateConcept(introspector, 'clause', templateConceptFqn);
|
|
48
48
|
}
|
package/dist/Common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Common.js","sourceRoot":"","sources":["../src/Common.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,
|
|
1
|
+
{"version":3,"file":"Common.js","sourceRoot":"","sources":["../src/Common.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,gEAA4F;AAC5F,oEAAmE;AACnE,wEAAoE;AAEpE,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,GAAG,mCAAiB,CAAC,SAAS,sBAAsB;IACpD,GAAG,mCAAiB,CAAC,SAAS,iBAAiB;IAC/C,GAAG,mCAAiB,CAAC,SAAS,iBAAiB;IAC/C,GAAG,mCAAiB,CAAC,SAAS,qBAAqB;IACnD,GAAG,mCAAiB,CAAC,SAAS,mBAAmB;CACpD,CAAC;AAEF,SAAgB,2BAA2B,CAAC,YAA0B,EAAE,kBAA2B;IAC/F,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI;QACA,OAAO,oCAAgB,CAAC,mBAAmB,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;KAC3F;IACD,OAAM,GAAG,EAAE;QACP,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,GAAG,CAAC;KACb;AACL,CAAC;AATD,kEASC"}
|
|
@@ -12,65 +12,27 @@
|
|
|
12
12
|
* See the License for the specific language governing permissions and
|
|
13
13
|
* limitations under the License.
|
|
14
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 (g && (g = 0, op[0] && (_ = 0)), _) 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
15
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
61
16
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
62
17
|
};
|
|
63
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
64
19
|
exports.TemplateMarkInterpreter = void 0;
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
20
|
+
const dayjs_1 = __importDefault(require("dayjs"));
|
|
21
|
+
const jsonpath_1 = __importDefault(require("jsonpath"));
|
|
22
|
+
const traverse_1 = __importDefault(require("traverse"));
|
|
23
|
+
const concerto_core_1 = require("@accordproject/concerto-core");
|
|
24
|
+
const drafting_1 = require("./drafting");
|
|
25
|
+
const markdown_common_1 = require("@accordproject/markdown-common");
|
|
26
|
+
const concerto_core_2 = require("@accordproject/concerto-core");
|
|
27
|
+
const Common_1 = require("./Common");
|
|
28
|
+
const TemplateMarkToJavaScriptCompiler_1 = require("./TemplateMarkToJavaScriptCompiler");
|
|
29
|
+
const org_accordproject_templatemark_0_5_0_1 = require("./model-gen/org.accordproject.templatemark@0.5.0");
|
|
30
|
+
const TypeScriptRuntime_1 = require("./TypeScriptRuntime");
|
|
31
|
+
function checkCode(code) {
|
|
32
|
+
if (code.type !== org_accordproject_templatemark_0_5_0_1.CodeType.ES_2020) {
|
|
33
|
+
throw new Error(`Cannot run ${code.contents} as it is not ES_2020 JavaScript.`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
74
36
|
/**
|
|
75
37
|
* Evaluates a JS expression
|
|
76
38
|
* @param {*} clauseLibrary the clause library
|
|
@@ -81,32 +43,32 @@ var TemplateMarkToJavaScriptCompiler_1 = require("./TemplateMarkToJavaScriptComp
|
|
|
81
43
|
*/
|
|
82
44
|
function evaluateJavaScript(clauseLibrary, data, fn, now) {
|
|
83
45
|
if (!data || !fn) {
|
|
84
|
-
throw new Error(
|
|
46
|
+
throw new Error(`Cannot evaluate JS ${fn} against ${data}`);
|
|
85
47
|
}
|
|
86
|
-
|
|
87
|
-
|
|
48
|
+
const runtimeNow = now ? now : (0, dayjs_1.default)();
|
|
49
|
+
const functionArgNames = new Array();
|
|
88
50
|
functionArgNames.push('data');
|
|
89
51
|
functionArgNames.push('library');
|
|
90
52
|
functionArgNames.push('now');
|
|
91
53
|
functionArgNames.push('jp');
|
|
92
54
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
93
|
-
|
|
55
|
+
const functionArgValues = new Array();
|
|
94
56
|
functionArgValues.push(data);
|
|
95
57
|
functionArgValues.push(clauseLibrary);
|
|
96
58
|
functionArgValues.push(runtimeNow);
|
|
97
59
|
functionArgValues.push(jsonpath_1.default);
|
|
98
60
|
// chop the function header and closing
|
|
99
|
-
|
|
61
|
+
const expression = fn.substring(fn.indexOf('{') + 1, fn.lastIndexOf('}'));
|
|
100
62
|
if (expression.trim().length === 0) {
|
|
101
63
|
throw new Error('Empty expression');
|
|
102
64
|
}
|
|
103
65
|
try {
|
|
104
|
-
|
|
105
|
-
|
|
66
|
+
const fun = new Function(...functionArgNames, expression); // SECURITY!
|
|
67
|
+
const result = fun(...functionArgValues);
|
|
106
68
|
return result;
|
|
107
69
|
}
|
|
108
70
|
catch (err) {
|
|
109
|
-
throw new Error(
|
|
71
|
+
throw new Error(`Caught error ${err} evaluating ${expression} with arguments ${functionArgValues}`);
|
|
110
72
|
}
|
|
111
73
|
}
|
|
112
74
|
/**
|
|
@@ -125,33 +87,33 @@ function getJsonPath(rootData, currentNode, paths) {
|
|
|
125
87
|
throw new Error('Node must be supplied');
|
|
126
88
|
}
|
|
127
89
|
if (!currentNode.name) {
|
|
128
|
-
throw new Error(
|
|
90
|
+
throw new Error(`Node must have a name: ${JSON.stringify(currentNode)}`);
|
|
129
91
|
}
|
|
130
92
|
if (currentNode.name.indexOf('.') >= 0) {
|
|
131
93
|
// prevent JSON path injection
|
|
132
|
-
throw new Error(
|
|
94
|
+
throw new Error(`Invalid name property ${currentNode.name}`);
|
|
133
95
|
}
|
|
134
96
|
if (!paths || !paths.length || paths.length < 1) {
|
|
135
97
|
throw new Error('Paths must be supplied');
|
|
136
98
|
}
|
|
137
|
-
|
|
138
|
-
for (
|
|
139
|
-
|
|
140
|
-
|
|
99
|
+
const withPath = [];
|
|
100
|
+
for (let n = 1; n < paths.length; n++) {
|
|
101
|
+
const sub = paths.slice(0, n);
|
|
102
|
+
const obj = traverse_1.default.get(rootData, sub);
|
|
141
103
|
// HACK
|
|
142
104
|
// if(obj===undefined) {
|
|
143
105
|
// throw new Error(`Failed to find data with path ${sub} and data ${JSON.stringify(rootData, null, 2)}`);
|
|
144
106
|
// }
|
|
145
107
|
if (obj && obj.$class) {
|
|
146
108
|
if (Common_1.NAVIGATION_NODES.indexOf(obj.$class) >= 0) {
|
|
147
|
-
withPath.push(
|
|
109
|
+
withPath.push(`['${obj.name}']`);
|
|
148
110
|
}
|
|
149
111
|
}
|
|
150
112
|
}
|
|
151
113
|
if (currentNode.name !== 'this') {
|
|
152
|
-
withPath.push(
|
|
114
|
+
withPath.push(`['${currentNode.name}']`);
|
|
153
115
|
}
|
|
154
|
-
return withPath.length > 0 ?
|
|
116
|
+
return withPath.length > 0 ? `$${withPath.join('')}` : '$';
|
|
155
117
|
}
|
|
156
118
|
/**
|
|
157
119
|
* Generates an AgreementMark JSON document from a template plus data.
|
|
@@ -163,19 +125,19 @@ function getJsonPath(rootData, currentNode, paths) {
|
|
|
163
125
|
* @returns {*} the AgreementMark JSON
|
|
164
126
|
*/
|
|
165
127
|
function generateAgreement(modelManager, clauseLibrary, templateMark, data, now) {
|
|
166
|
-
|
|
128
|
+
const introspector = new concerto_core_1.Introspector(modelManager);
|
|
167
129
|
return (0, traverse_1.default)(templateMark).map(function (context) {
|
|
168
|
-
|
|
130
|
+
let stopHere = false;
|
|
169
131
|
if (typeof context === 'object' && context.$class && typeof context.$class === 'string') {
|
|
170
|
-
|
|
132
|
+
const nodeClass = context.$class;
|
|
171
133
|
// rewrite node types, mapping from TemplateMark namespace to CiceroMark
|
|
172
|
-
|
|
134
|
+
const match = nodeClass.match(Common_1.TEMPLATEMARK_RE);
|
|
173
135
|
if (match && match.length > 1) {
|
|
174
|
-
context.$class =
|
|
136
|
+
context.$class = `${markdown_common_1.CiceroMarkModel.NAMESPACE}.${match[3]}`;
|
|
175
137
|
}
|
|
176
138
|
// convert a contract node to a clause note HACK
|
|
177
139
|
if (Common_1.CONTRACT_DEFINITION_RE.test(nodeClass)) {
|
|
178
|
-
context.$class =
|
|
140
|
+
context.$class = `${markdown_common_1.CommonMarkModel.NAMESPACE}.Paragraph`;
|
|
179
141
|
delete context.name;
|
|
180
142
|
delete context.elementType;
|
|
181
143
|
}
|
|
@@ -183,7 +145,7 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
|
|
|
183
145
|
// not 100% sure we want to do that ... we may need to process
|
|
184
146
|
// the child variable nodes and reparent them?
|
|
185
147
|
if (Common_1.WITH_DEFINITION_RE.test(nodeClass)) {
|
|
186
|
-
context.$class =
|
|
148
|
+
context.$class = `${markdown_common_1.CommonMarkModel.NAMESPACE}.Paragraph`;
|
|
187
149
|
delete context.name;
|
|
188
150
|
delete context.elementType;
|
|
189
151
|
}
|
|
@@ -191,7 +153,8 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
|
|
|
191
153
|
// with the result of evaluating the JS code
|
|
192
154
|
else if (Common_1.FORMULA_DEFINITION_RE.test(nodeClass)) {
|
|
193
155
|
if (context.code) {
|
|
194
|
-
|
|
156
|
+
checkCode(context.code);
|
|
157
|
+
const result = evaluateJavaScript(clauseLibrary, data, context.code.contents, now);
|
|
195
158
|
if (result === null) {
|
|
196
159
|
context.value = '<null>';
|
|
197
160
|
}
|
|
@@ -209,25 +172,25 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
|
|
|
209
172
|
}
|
|
210
173
|
// evaluate lists, recursing on each list item
|
|
211
174
|
else if (Common_1.LISTBLOCK_DEFINITION_RE.test(nodeClass)) {
|
|
212
|
-
|
|
213
|
-
|
|
175
|
+
const path = getJsonPath(templateMark, context, this.path);
|
|
176
|
+
const variableValues = jsonpath_1.default.query(data, path, 1);
|
|
214
177
|
if (variableValues.length === 0) {
|
|
215
|
-
throw new Error(
|
|
178
|
+
throw new Error(`No values found for path '${path}' in data ${data}.`);
|
|
216
179
|
}
|
|
217
180
|
else {
|
|
218
|
-
|
|
181
|
+
const arrayData = variableValues[0];
|
|
219
182
|
if (!Array.isArray(arrayData)) {
|
|
220
|
-
throw new Error(
|
|
183
|
+
throw new Error(`Values found for path '${path}' in data ${data} is not an array: ${arrayData}.`);
|
|
221
184
|
}
|
|
222
185
|
else {
|
|
223
|
-
context.$class =
|
|
186
|
+
context.$class = `${markdown_common_1.CommonMarkModel.NAMESPACE}.List`;
|
|
224
187
|
delete context.elementType;
|
|
225
188
|
delete context.name;
|
|
226
|
-
context.nodes = arrayData.map(
|
|
189
|
+
context.nodes = arrayData.map(arrayItem => {
|
|
227
190
|
// arrayItem is now the data for the nested traversal
|
|
228
|
-
|
|
191
|
+
const subResult = generateAgreement(modelManager, clauseLibrary, context.nodes[0].nodes[0], arrayItem);
|
|
229
192
|
return {
|
|
230
|
-
$class:
|
|
193
|
+
$class: `${markdown_common_1.CommonMarkModel.NAMESPACE}.Item`,
|
|
231
194
|
nodes: subResult.nodes ? subResult.nodes : []
|
|
232
195
|
};
|
|
233
196
|
});
|
|
@@ -237,25 +200,28 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
|
|
|
237
200
|
}
|
|
238
201
|
// map over an array of items, joining them into a Text node
|
|
239
202
|
else if (Common_1.JOIN_DEFINITION_RE.test(nodeClass)) {
|
|
240
|
-
|
|
241
|
-
|
|
203
|
+
const path = getJsonPath(templateMark, context, this.path);
|
|
204
|
+
const variableValues = jsonpath_1.default.query(data, path, 1);
|
|
242
205
|
if (variableValues.length === 0) {
|
|
243
|
-
throw new Error(
|
|
206
|
+
throw new Error(`No values found for path '${path}' in data ${data}.`);
|
|
244
207
|
}
|
|
245
208
|
else {
|
|
246
|
-
|
|
209
|
+
const arrayData = variableValues[0];
|
|
247
210
|
if (!Array.isArray(arrayData)) {
|
|
248
|
-
throw new Error(
|
|
211
|
+
throw new Error(`Values found for path '${path}' in data ${data} is not an array: ${arrayData}.`);
|
|
249
212
|
}
|
|
250
213
|
else {
|
|
251
|
-
context.$class =
|
|
252
|
-
|
|
253
|
-
context.text = arrayData.map(
|
|
254
|
-
return
|
|
255
|
-
})
|
|
214
|
+
context.$class = `${markdown_common_1.CommonMarkModel.NAMESPACE}.Text`;
|
|
215
|
+
const drafter = (0, drafting_1.getDrafter)(context.elementType);
|
|
216
|
+
context.text = (0, TypeScriptRuntime_1.joinList)(arrayData.map(arrayItem => {
|
|
217
|
+
return drafter ? drafter(arrayItem, context.format) : arrayItem;
|
|
218
|
+
}), context);
|
|
256
219
|
delete context.elementType;
|
|
257
220
|
delete context.name;
|
|
258
221
|
delete context.separator;
|
|
222
|
+
delete context.locale;
|
|
223
|
+
delete context.type;
|
|
224
|
+
delete context.style;
|
|
259
225
|
delete context.nodes;
|
|
260
226
|
stopHere = true; // do not process child nodes, we've already done it above...
|
|
261
227
|
}
|
|
@@ -267,26 +233,26 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
|
|
|
267
233
|
Common_1.ENUM_VARIABLE_DEFINITION_RE.test(nodeClass) ||
|
|
268
234
|
Common_1.FORMATTED_VARIABLE_DEFINITION_RE.test(nodeClass)) {
|
|
269
235
|
if (typeof data === 'object') {
|
|
270
|
-
|
|
271
|
-
|
|
236
|
+
const path = getJsonPath(templateMark, context, this.path);
|
|
237
|
+
const variableValues = jsonpath_1.default.query(data, path, 1);
|
|
272
238
|
if (variableValues.length === 0) {
|
|
273
|
-
throw new Error(
|
|
239
|
+
throw new Error(`No values found for path '${path}' in data ${data}.`);
|
|
274
240
|
}
|
|
275
241
|
else {
|
|
276
242
|
// convert the value to a string, optionally using the formatter
|
|
277
|
-
|
|
278
|
-
|
|
243
|
+
const variableValue = variableValues[0];
|
|
244
|
+
const type = concerto_core_2.ModelUtil.isPrimitiveType(context.elementType) ? null : introspector.getClassDeclaration(context.elementType);
|
|
279
245
|
// we want to draft Enums as strings, not objects
|
|
280
|
-
|
|
246
|
+
const drafter = (0, drafting_1.getDrafter)(type && type.isEnum() ? 'String' : context.elementType);
|
|
281
247
|
context.value = drafter ? drafter(variableValue, context.format) : JSON.stringify(variableValue);
|
|
282
248
|
}
|
|
283
249
|
}
|
|
284
250
|
else {
|
|
285
251
|
// a list of enum values or primitives brings us here
|
|
286
|
-
|
|
287
|
-
|
|
252
|
+
const variableValue = data;
|
|
253
|
+
const type = concerto_core_2.ModelUtil.isPrimitiveType(context.elementType) ? null : introspector.getClassDeclaration(context.elementType);
|
|
288
254
|
// we want to draft Enums as strings, not objects
|
|
289
|
-
|
|
255
|
+
const drafter = (0, drafting_1.getDrafter)(type && type.isEnum() ? 'String' : context.elementType);
|
|
290
256
|
context.value = drafter ? drafter(variableValue, context.format) : JSON.stringify(variableValue);
|
|
291
257
|
}
|
|
292
258
|
}
|
|
@@ -294,17 +260,18 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
|
|
|
294
260
|
// with the result of evaluating the JS code or a boolean property
|
|
295
261
|
else if (Common_1.CONDITIONAL_DEFINITION_RE.test(nodeClass)) {
|
|
296
262
|
if (context.condition) {
|
|
263
|
+
checkCode(context.condition);
|
|
297
264
|
context.isTrue = !!evaluateJavaScript(clauseLibrary, data, context.condition.contents, now);
|
|
298
265
|
}
|
|
299
266
|
else {
|
|
300
|
-
|
|
301
|
-
|
|
267
|
+
const path = getJsonPath(templateMark, context, this.path);
|
|
268
|
+
const variableValues = jsonpath_1.default.query(data, path, 1);
|
|
302
269
|
if (variableValues && variableValues.length) {
|
|
303
270
|
if (variableValues.length === 1) {
|
|
304
271
|
context.isTrue = !!variableValues[0];
|
|
305
272
|
}
|
|
306
273
|
else {
|
|
307
|
-
throw new Error(
|
|
274
|
+
throw new Error(`Multiple values found for path '${path}' in data ${data}.`);
|
|
308
275
|
}
|
|
309
276
|
}
|
|
310
277
|
else {
|
|
@@ -319,7 +286,8 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
|
|
|
319
286
|
// only include the children of a clause if its condition is true
|
|
320
287
|
else if (Common_1.CLAUSE_DEFINITION_RE.test(nodeClass)) {
|
|
321
288
|
if (context.condition) {
|
|
322
|
-
|
|
289
|
+
checkCode(context.condition);
|
|
290
|
+
const result = !!evaluateJavaScript(clauseLibrary, data, context.condition.contents, now);
|
|
323
291
|
if (!result) {
|
|
324
292
|
delete context.nodes;
|
|
325
293
|
stopHere = true;
|
|
@@ -330,15 +298,15 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
|
|
|
330
298
|
}
|
|
331
299
|
// add a 'hasSome' property to OptionalDefinition
|
|
332
300
|
else if (Common_1.OPTIONAL_DEFINITION_RE.test(nodeClass)) {
|
|
333
|
-
|
|
334
|
-
|
|
301
|
+
const path = getJsonPath(templateMark, context, this.path);
|
|
302
|
+
const variableValues = jsonpath_1.default.query(data, path, 1);
|
|
335
303
|
if (variableValues && variableValues.length) {
|
|
336
304
|
if (variableValues.length === 1) {
|
|
337
305
|
context.hasSome = true;
|
|
338
306
|
context.whenNone = [];
|
|
339
307
|
}
|
|
340
308
|
else {
|
|
341
|
-
throw new Error(
|
|
309
|
+
throw new Error(`Multiple values found for path '${path}' in data ${data}.`);
|
|
342
310
|
}
|
|
343
311
|
}
|
|
344
312
|
else {
|
|
@@ -355,8 +323,8 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
|
|
|
355
323
|
* A template engine: merges the markup and logic of a template with
|
|
356
324
|
* JSON data to produce JSON data.
|
|
357
325
|
*/
|
|
358
|
-
|
|
359
|
-
|
|
326
|
+
class TemplateMarkInterpreter {
|
|
327
|
+
constructor(modelManager, clauseLibrary, templateConceptFqn) {
|
|
360
328
|
this.modelManager = modelManager;
|
|
361
329
|
this.clauseLibrary = clauseLibrary;
|
|
362
330
|
this.templateClass = (0, Common_1.getTemplateClassDeclaration)(this.modelManager, templateConceptFqn);
|
|
@@ -372,67 +340,61 @@ var TemplateMarkInterpreter = /** @class */ (function () {
|
|
|
372
340
|
* @returns {*} TemplateMark JSON that has been typed checked and has type metadata added
|
|
373
341
|
* @throws {Error} if the templateMark document is invalid
|
|
374
342
|
*/
|
|
375
|
-
|
|
376
|
-
|
|
343
|
+
checkTypes(templateMark) {
|
|
344
|
+
const modelManager = new concerto_core_1.ModelManager({ strict: true });
|
|
377
345
|
modelManager.addCTOModel(markdown_common_1.ConcertoMetaModel.MODEL, 'concertometamodel.cto');
|
|
378
346
|
modelManager.addCTOModel(markdown_common_1.CommonMarkModel.MODEL, 'commonmark.cto');
|
|
379
347
|
modelManager.addCTOModel(markdown_common_1.TemplateMarkModel.MODEL, 'templatemark.cto');
|
|
380
|
-
|
|
381
|
-
|
|
348
|
+
const factory = new concerto_core_1.Factory(modelManager);
|
|
349
|
+
const serializer = new concerto_core_1.Serializer(factory, modelManager);
|
|
382
350
|
try {
|
|
383
351
|
serializer.fromJSON(templateMark);
|
|
384
352
|
return templateMark;
|
|
385
353
|
}
|
|
386
354
|
catch (err) {
|
|
387
|
-
throw new Error(
|
|
355
|
+
throw new Error(`Generated invalid agreement: ${err}: ${JSON.stringify(templateMark, null, 2)}`);
|
|
388
356
|
}
|
|
389
|
-
}
|
|
357
|
+
}
|
|
390
358
|
/**
|
|
391
359
|
* Compiles the code nodes containing TS to code nodes containing JS.
|
|
392
360
|
* @param {*} templateMark the TemplateMark JSON object
|
|
393
361
|
* @returns {*} TemplateMark JSON with JS nodes
|
|
394
362
|
* @throws {Error} if the templateMark document is invalid
|
|
395
363
|
*/
|
|
396
|
-
|
|
397
|
-
|
|
364
|
+
compileTypeScriptToJavaScript(templateMark) {
|
|
365
|
+
const templateConcept = templateMark.nodes[0].elementType;
|
|
398
366
|
if (!templateConcept) {
|
|
399
367
|
throw new Error('TemplateMark is not typed');
|
|
400
368
|
}
|
|
401
|
-
|
|
369
|
+
const compiler = new TemplateMarkToJavaScriptCompiler_1.TemplateMarkToJavaScriptCompiler(this.modelManager, templateConcept);
|
|
402
370
|
return compiler.compile(templateMark);
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
|
|
371
|
+
}
|
|
372
|
+
validateCiceroMark(ciceroMark) {
|
|
373
|
+
const modelManager = new concerto_core_1.ModelManager({ strict: true });
|
|
406
374
|
modelManager.addCTOModel(markdown_common_1.ConcertoMetaModel.MODEL, 'concertometamodel.cto');
|
|
407
375
|
modelManager.addCTOModel(markdown_common_1.CommonMarkModel.MODEL, 'commonmark.cto');
|
|
408
376
|
modelManager.addCTOModel(markdown_common_1.CiceroMarkModel.MODEL, 'ciceromark.cto');
|
|
409
|
-
|
|
410
|
-
|
|
377
|
+
const factory = new concerto_core_1.Factory(modelManager);
|
|
378
|
+
const serializer = new concerto_core_1.Serializer(factory, modelManager);
|
|
411
379
|
try {
|
|
412
380
|
return serializer.fromJSON(ciceroMark);
|
|
413
381
|
}
|
|
414
382
|
catch (err) {
|
|
415
|
-
throw new Error(
|
|
383
|
+
throw new Error(`Generated invalid agreement: ${err}: ${JSON.stringify(ciceroMark, null, 2)}`);
|
|
416
384
|
}
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
return [2 /*return*/, this.validateCiceroMark(ciceroMark)];
|
|
432
|
-
});
|
|
433
|
-
});
|
|
434
|
-
};
|
|
435
|
-
return TemplateMarkInterpreter;
|
|
436
|
-
}());
|
|
385
|
+
}
|
|
386
|
+
async generate(templateMark, data, now) {
|
|
387
|
+
const factory = new concerto_core_1.Factory(this.modelManager);
|
|
388
|
+
const serializer = new concerto_core_1.Serializer(factory, this.modelManager);
|
|
389
|
+
const templateData = serializer.fromJSON(data);
|
|
390
|
+
if (templateData.getFullyQualifiedType() !== this.templateClass.getFullyQualifiedName()) {
|
|
391
|
+
throw new Error(`Template data must be of type '${this.templateClass.getFullyQualifiedName()}'.`);
|
|
392
|
+
}
|
|
393
|
+
const typedTemplateMark = this.checkTypes(templateMark);
|
|
394
|
+
const jsTemplateMark = this.compileTypeScriptToJavaScript(typedTemplateMark);
|
|
395
|
+
const ciceroMark = generateAgreement(this.modelManager, this.clauseLibrary, jsTemplateMark, data, now);
|
|
396
|
+
return this.validateCiceroMark(ciceroMark);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
437
399
|
exports.TemplateMarkInterpreter = TemplateMarkInterpreter;
|
|
438
400
|
//# sourceMappingURL=TemplateMarkInterpreter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateMarkInterpreter.js","sourceRoot":"","sources":["../src/TemplateMarkInterpreter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TemplateMarkInterpreter.js","sourceRoot":"","sources":["../src/TemplateMarkInterpreter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;AAEH,kDAA0B;AAC1B,wDAA0B;AAC1B,wDAAgC;AAEhC,gEAAiH;AACjH,yCAAwC;AACxC,oEAAwH;AACxH,gEAAyD;AAEzD,qCAgBkB;AAClB,yFAAsF;AACtF,2GAAmF;AACnF,2DAA+C;AAE/C,SAAS,SAAS,CAAC,IAAU;IACzB,IAAG,IAAI,CAAC,IAAI,KAAK,+CAAQ,CAAC,OAAO,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,QAAQ,mCAAmC,CAAC,CAAC;KACnF;AACL,CAAC;AAED;;;;;;;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,sBAAsB,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC;KAC/D;IACD,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,eAAK,GAAE,CAAC;IACvC,MAAM,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,MAAM,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,MAAM,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,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,GAAG,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY;QACvE,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC;KACjB;IACD,OAAM,GAAG,EAAE;QACP,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,eAAe,UAAU,mBAAmB,iBAAiB,EAAE,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,0BAA0B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;KAC5E;IACD,IAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAG,CAAC,EAAE;QAClC,8BAA8B;QAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,WAAW,CAAC,IAAI,EAAE,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,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,MAAM,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,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;aACpC;SACJ;KACJ;IAED,IAAG,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE;QAC5B,QAAQ,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC;KAC5C;IAED,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAC/D,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,YAAyB,EAAE,aAAoB,EAAE,YAAoB,EAAE,IAAkB,EAAE,GAAgB;IAClI,MAAM,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,MAAM,SAAS,GAAG,OAAO,CAAC,MAAgB,CAAC;YAE3C,wEAAwE;YACxE,MAAM,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,GAAG,iCAAe,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/D;YAED,gDAAgD;YAChD,IAAI,+BAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBACxC,OAAO,CAAC,MAAM,GAAG,GAAG,iCAAe,CAAC,SAAS,YAAY,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,GAAG,iCAAe,CAAC,SAAS,YAAY,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,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACxB,MAAM,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,MAAM,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,MAAM,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,6BAA6B,IAAI,aAAa,IAAI,GAAG,CAAC,CAAC;iBAC1E;qBACI;oBACD,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;oBACpC,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;wBAC1B,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,aAAa,IAAI,qBAAqB,SAAS,GAAG,CAAC,CAAC;qBACrG;yBACI;wBACD,OAAO,CAAC,MAAM,GAAG,GAAG,iCAAe,CAAC,SAAS,OAAO,CAAC;wBACrD,OAAO,OAAO,CAAC,WAAW,CAAC;wBAC3B,OAAO,OAAO,CAAC,IAAI,CAAC;wBACpB,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,CAAE,SAAS,CAAC,EAAE;4BACvC,qDAAqD;4BACrD,MAAM,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,GAAG,iCAAe,CAAC,SAAS,OAAO;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,MAAM,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,MAAM,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,6BAA6B,IAAI,aAAa,IAAI,GAAG,CAAC,CAAC;iBAC1E;qBACI;oBACD,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;oBACpC,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;wBAC1B,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,aAAa,IAAI,qBAAqB,SAAS,GAAG,CAAC,CAAC;qBACrG;yBACI;wBACD,OAAO,CAAC,MAAM,GAAG,GAAG,iCAAe,CAAC,SAAS,OAAO,CAAC;wBACrD,MAAM,OAAO,GAAG,IAAA,qBAAU,EAAC,OAAO,CAAC,WAAW,CAAC,CAAC;wBAChD,OAAO,CAAC,IAAI,GAAG,IAAA,4BAAQ,EAAC,SAAS,CAAC,GAAG,CAAE,SAAS,CAAC,EAAE;4BAC/C,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAmB,CAAC;wBAC9E,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;wBACb,OAAO,OAAO,CAAC,WAAW,CAAC;wBAC3B,OAAO,OAAO,CAAC,IAAI,CAAC;wBACpB,OAAO,OAAO,CAAC,SAAS,CAAC;wBACzB,OAAO,OAAO,CAAC,MAAM,CAAC;wBACtB,OAAO,OAAO,CAAC,IAAI,CAAC;wBACpB,OAAO,OAAO,CAAC,KAAK,CAAC;wBACrB,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,MAAM,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3D,MAAM,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,6BAA6B,IAAI,aAAa,IAAI,GAAG,CAAC,CAAC;qBAC1E;yBACI;wBACD,gEAAgE;wBAChE,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;wBACxC,MAAM,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;wBACpI,iDAAiD;wBACjD,MAAM,OAAO,GAAG,IAAA,qBAAU,EAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;wBACnF,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,MAAM,aAAa,GAAG,IAAI,CAAC;oBAC3B,MAAM,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,MAAM,OAAO,GAAG,IAAA,qBAAU,EAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBACnF,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,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBAC7B,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAuB,CAAC;iBACrH;qBACI;oBACD,MAAM,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3D,MAAM,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,mCAAmC,IAAI,aAAa,IAAI,GAAG,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,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBAC7B,MAAM,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,MAAM,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,MAAM,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,mCAAmC,IAAI,aAAa,IAAI,GAAG,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,MAAa,uBAAuB;IAKhC,YAAY,YAA0B,EAAE,aAAoB,EAAE,kBAA2B;QACrF,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,IAAA,oCAA2B,EAAC,IAAI,CAAC,YAAY,EAAC,kBAAkB,CAAC,CAAC;IAC3F,CAAC;IAED;;;;;;;;;;OAUG;IACH,UAAU,CAAC,YAAoB;QAC3B,MAAM,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,MAAM,OAAO,GAAG,IAAI,uBAAO,CAAC,YAAY,CAAC,CAAC;QAC1C,MAAM,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,gCAAgC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;SACpG;IACL,CAAC;IAED;;;;;OAKG;IACH,6BAA6B,CAAC,YAAoB;QAC9C,MAAM,eAAe,GAAI,YAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACnE,IAAG,CAAC,eAAe,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;SAChD;QACD,MAAM,QAAQ,GAAG,IAAI,mEAAgC,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QAC1F,OAAO,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;IAED,kBAAkB,CAAC,UAAkB;QACjC,MAAM,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,MAAM,OAAO,GAAG,IAAI,uBAAO,CAAC,YAAY,CAAC,CAAC;QAC1C,MAAM,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,gCAAgC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;SAClG;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,YAAoB,EAAE,IAAkB,EAAE,GAAgB;QACrE,MAAM,OAAO,GAAG,IAAI,uBAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,0BAAU,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,YAAY,CAAC,qBAAqB,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,EAAE;YACrF,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;SACrG;QACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACxD,MAAM,cAAc,GAAG,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACvG,OAAO,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;CACJ;AAhFD,0DAgFC"}
|