@accordproject/template-engine 1.0.18 → 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 +114 -150
- 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,24 +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);
|
|
245
|
+
// we want to draft Enums as strings, not objects
|
|
246
|
+
const drafter = (0, drafting_1.getDrafter)(type && type.isEnum() ? 'String' : context.elementType);
|
|
279
247
|
context.value = drafter ? drafter(variableValue, context.format) : JSON.stringify(variableValue);
|
|
280
248
|
}
|
|
281
249
|
}
|
|
282
250
|
else {
|
|
283
251
|
// a list of enum values or primitives brings us here
|
|
284
|
-
|
|
285
|
-
|
|
252
|
+
const variableValue = data;
|
|
253
|
+
const type = concerto_core_2.ModelUtil.isPrimitiveType(context.elementType) ? null : introspector.getClassDeclaration(context.elementType);
|
|
286
254
|
// we want to draft Enums as strings, not objects
|
|
287
|
-
|
|
255
|
+
const drafter = (0, drafting_1.getDrafter)(type && type.isEnum() ? 'String' : context.elementType);
|
|
288
256
|
context.value = drafter ? drafter(variableValue, context.format) : JSON.stringify(variableValue);
|
|
289
257
|
}
|
|
290
258
|
}
|
|
@@ -292,17 +260,18 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
|
|
|
292
260
|
// with the result of evaluating the JS code or a boolean property
|
|
293
261
|
else if (Common_1.CONDITIONAL_DEFINITION_RE.test(nodeClass)) {
|
|
294
262
|
if (context.condition) {
|
|
263
|
+
checkCode(context.condition);
|
|
295
264
|
context.isTrue = !!evaluateJavaScript(clauseLibrary, data, context.condition.contents, now);
|
|
296
265
|
}
|
|
297
266
|
else {
|
|
298
|
-
|
|
299
|
-
|
|
267
|
+
const path = getJsonPath(templateMark, context, this.path);
|
|
268
|
+
const variableValues = jsonpath_1.default.query(data, path, 1);
|
|
300
269
|
if (variableValues && variableValues.length) {
|
|
301
270
|
if (variableValues.length === 1) {
|
|
302
271
|
context.isTrue = !!variableValues[0];
|
|
303
272
|
}
|
|
304
273
|
else {
|
|
305
|
-
throw new Error(
|
|
274
|
+
throw new Error(`Multiple values found for path '${path}' in data ${data}.`);
|
|
306
275
|
}
|
|
307
276
|
}
|
|
308
277
|
else {
|
|
@@ -317,7 +286,8 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
|
|
|
317
286
|
// only include the children of a clause if its condition is true
|
|
318
287
|
else if (Common_1.CLAUSE_DEFINITION_RE.test(nodeClass)) {
|
|
319
288
|
if (context.condition) {
|
|
320
|
-
|
|
289
|
+
checkCode(context.condition);
|
|
290
|
+
const result = !!evaluateJavaScript(clauseLibrary, data, context.condition.contents, now);
|
|
321
291
|
if (!result) {
|
|
322
292
|
delete context.nodes;
|
|
323
293
|
stopHere = true;
|
|
@@ -328,15 +298,15 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
|
|
|
328
298
|
}
|
|
329
299
|
// add a 'hasSome' property to OptionalDefinition
|
|
330
300
|
else if (Common_1.OPTIONAL_DEFINITION_RE.test(nodeClass)) {
|
|
331
|
-
|
|
332
|
-
|
|
301
|
+
const path = getJsonPath(templateMark, context, this.path);
|
|
302
|
+
const variableValues = jsonpath_1.default.query(data, path, 1);
|
|
333
303
|
if (variableValues && variableValues.length) {
|
|
334
304
|
if (variableValues.length === 1) {
|
|
335
305
|
context.hasSome = true;
|
|
336
306
|
context.whenNone = [];
|
|
337
307
|
}
|
|
338
308
|
else {
|
|
339
|
-
throw new Error(
|
|
309
|
+
throw new Error(`Multiple values found for path '${path}' in data ${data}.`);
|
|
340
310
|
}
|
|
341
311
|
}
|
|
342
312
|
else {
|
|
@@ -353,8 +323,8 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
|
|
|
353
323
|
* A template engine: merges the markup and logic of a template with
|
|
354
324
|
* JSON data to produce JSON data.
|
|
355
325
|
*/
|
|
356
|
-
|
|
357
|
-
|
|
326
|
+
class TemplateMarkInterpreter {
|
|
327
|
+
constructor(modelManager, clauseLibrary, templateConceptFqn) {
|
|
358
328
|
this.modelManager = modelManager;
|
|
359
329
|
this.clauseLibrary = clauseLibrary;
|
|
360
330
|
this.templateClass = (0, Common_1.getTemplateClassDeclaration)(this.modelManager, templateConceptFqn);
|
|
@@ -370,67 +340,61 @@ var TemplateMarkInterpreter = /** @class */ (function () {
|
|
|
370
340
|
* @returns {*} TemplateMark JSON that has been typed checked and has type metadata added
|
|
371
341
|
* @throws {Error} if the templateMark document is invalid
|
|
372
342
|
*/
|
|
373
|
-
|
|
374
|
-
|
|
343
|
+
checkTypes(templateMark) {
|
|
344
|
+
const modelManager = new concerto_core_1.ModelManager({ strict: true });
|
|
375
345
|
modelManager.addCTOModel(markdown_common_1.ConcertoMetaModel.MODEL, 'concertometamodel.cto');
|
|
376
346
|
modelManager.addCTOModel(markdown_common_1.CommonMarkModel.MODEL, 'commonmark.cto');
|
|
377
347
|
modelManager.addCTOModel(markdown_common_1.TemplateMarkModel.MODEL, 'templatemark.cto');
|
|
378
|
-
|
|
379
|
-
|
|
348
|
+
const factory = new concerto_core_1.Factory(modelManager);
|
|
349
|
+
const serializer = new concerto_core_1.Serializer(factory, modelManager);
|
|
380
350
|
try {
|
|
381
351
|
serializer.fromJSON(templateMark);
|
|
382
352
|
return templateMark;
|
|
383
353
|
}
|
|
384
354
|
catch (err) {
|
|
385
|
-
throw new Error(
|
|
355
|
+
throw new Error(`Generated invalid agreement: ${err}: ${JSON.stringify(templateMark, null, 2)}`);
|
|
386
356
|
}
|
|
387
|
-
}
|
|
357
|
+
}
|
|
388
358
|
/**
|
|
389
359
|
* Compiles the code nodes containing TS to code nodes containing JS.
|
|
390
360
|
* @param {*} templateMark the TemplateMark JSON object
|
|
391
361
|
* @returns {*} TemplateMark JSON with JS nodes
|
|
392
362
|
* @throws {Error} if the templateMark document is invalid
|
|
393
363
|
*/
|
|
394
|
-
|
|
395
|
-
|
|
364
|
+
compileTypeScriptToJavaScript(templateMark) {
|
|
365
|
+
const templateConcept = templateMark.nodes[0].elementType;
|
|
396
366
|
if (!templateConcept) {
|
|
397
367
|
throw new Error('TemplateMark is not typed');
|
|
398
368
|
}
|
|
399
|
-
|
|
369
|
+
const compiler = new TemplateMarkToJavaScriptCompiler_1.TemplateMarkToJavaScriptCompiler(this.modelManager, templateConcept);
|
|
400
370
|
return compiler.compile(templateMark);
|
|
401
|
-
}
|
|
402
|
-
|
|
403
|
-
|
|
371
|
+
}
|
|
372
|
+
validateCiceroMark(ciceroMark) {
|
|
373
|
+
const modelManager = new concerto_core_1.ModelManager({ strict: true });
|
|
404
374
|
modelManager.addCTOModel(markdown_common_1.ConcertoMetaModel.MODEL, 'concertometamodel.cto');
|
|
405
375
|
modelManager.addCTOModel(markdown_common_1.CommonMarkModel.MODEL, 'commonmark.cto');
|
|
406
376
|
modelManager.addCTOModel(markdown_common_1.CiceroMarkModel.MODEL, 'ciceromark.cto');
|
|
407
|
-
|
|
408
|
-
|
|
377
|
+
const factory = new concerto_core_1.Factory(modelManager);
|
|
378
|
+
const serializer = new concerto_core_1.Serializer(factory, modelManager);
|
|
409
379
|
try {
|
|
410
380
|
return serializer.fromJSON(ciceroMark);
|
|
411
381
|
}
|
|
412
382
|
catch (err) {
|
|
413
|
-
throw new Error(
|
|
383
|
+
throw new Error(`Generated invalid agreement: ${err}: ${JSON.stringify(ciceroMark, null, 2)}`);
|
|
414
384
|
}
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
return [2 /*return*/, this.validateCiceroMark(ciceroMark)];
|
|
430
|
-
});
|
|
431
|
-
});
|
|
432
|
-
};
|
|
433
|
-
return TemplateMarkInterpreter;
|
|
434
|
-
}());
|
|
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
|
+
}
|
|
435
399
|
exports.TemplateMarkInterpreter = TemplateMarkInterpreter;
|
|
436
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":"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"}
|