@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.
Files changed (83) hide show
  1. package/dist/Common.js +9 -9
  2. package/dist/Common.js.map +1 -1
  3. package/dist/TemplateMarkInterpreter.js +114 -150
  4. package/dist/TemplateMarkInterpreter.js.map +1 -1
  5. package/dist/TemplateMarkToJavaScriptCompiler.js +31 -24
  6. package/dist/TemplateMarkToJavaScriptCompiler.js.map +1 -1
  7. package/dist/TemplateMarkToTypeScriptCompiler.js +90 -92
  8. package/dist/TemplateMarkToTypeScriptCompiler.js.map +1 -1
  9. package/dist/TypeScriptCompilationContext.js +29 -22
  10. package/dist/TypeScriptCompilationContext.js.map +1 -1
  11. package/dist/TypeScriptRuntime.d.ts +1 -0
  12. package/dist/TypeScriptRuntime.js +24 -12
  13. package/dist/TypeScriptRuntime.js.map +1 -1
  14. package/dist/TypeScriptToJavaScriptCompiler.js +18 -16
  15. package/dist/TypeScriptToJavaScriptCompiler.js.map +1 -1
  16. package/dist/compilers/Clause.d.ts +1 -1
  17. package/dist/compilers/Clause.js +18 -35
  18. package/dist/compilers/Clause.js.map +1 -1
  19. package/dist/compilers/Common.js +55 -80
  20. package/dist/compilers/Common.js.map +1 -1
  21. package/dist/compilers/Conditional.d.ts +1 -1
  22. package/dist/compilers/Conditional.js +12 -29
  23. package/dist/compilers/Conditional.js.map +1 -1
  24. package/dist/compilers/ContractDefinition.d.ts +1 -1
  25. package/dist/compilers/ContractDefinition.js +10 -27
  26. package/dist/compilers/ContractDefinition.js.map +1 -1
  27. package/dist/compilers/EnumVariable.d.ts +1 -1
  28. package/dist/compilers/EnumVariable.js +12 -29
  29. package/dist/compilers/EnumVariable.js.map +1 -1
  30. package/dist/compilers/FormattedVariable.d.ts +1 -1
  31. package/dist/compilers/FormattedVariable.js +14 -31
  32. package/dist/compilers/FormattedVariable.js.map +1 -1
  33. package/dist/compilers/Formula.d.ts +1 -1
  34. package/dist/compilers/Formula.js +14 -31
  35. package/dist/compilers/Formula.js.map +1 -1
  36. package/dist/compilers/Join.d.ts +1 -1
  37. package/dist/compilers/Join.js +12 -28
  38. package/dist/compilers/Join.js.map +1 -1
  39. package/dist/compilers/ListBlock.d.ts +1 -1
  40. package/dist/compilers/ListBlock.js +17 -35
  41. package/dist/compilers/ListBlock.js.map +1 -1
  42. package/dist/compilers/NodeCompilers.js +44 -44
  43. package/dist/compilers/NodeCompilers.js.map +1 -1
  44. package/dist/compilers/Optional.d.ts +1 -1
  45. package/dist/compilers/Optional.js +17 -34
  46. package/dist/compilers/Optional.js.map +1 -1
  47. package/dist/compilers/Variable.d.ts +1 -1
  48. package/dist/compilers/Variable.js +12 -29
  49. package/dist/compilers/Variable.js.map +1 -1
  50. package/dist/compilers/With.d.ts +1 -1
  51. package/dist/compilers/With.js +13 -30
  52. package/dist/compilers/With.js.map +1 -1
  53. package/dist/drafting/DateTime/index.js +3 -3
  54. package/dist/drafting/DateTime/index.js.map +1 -1
  55. package/dist/drafting/Double/format.js +5 -5
  56. package/dist/drafting/Double/format.js.map +1 -1
  57. package/dist/drafting/Double/index.js +2 -2
  58. package/dist/drafting/Double/index.js.map +1 -1
  59. package/dist/drafting/Integer/format.js +3 -3
  60. package/dist/drafting/Integer/format.js.map +1 -1
  61. package/dist/drafting/Integer/index.js +2 -2
  62. package/dist/drafting/Integer/index.js.map +1 -1
  63. package/dist/drafting/Long/index.js +2 -2
  64. package/dist/drafting/Long/index.js.map +1 -1
  65. package/dist/drafting/MonetaryAmount/index.js +4 -4
  66. package/dist/drafting/MonetaryAmount/index.js.map +1 -1
  67. package/dist/drafting/index.js +7 -7
  68. package/dist/drafting/index.js.map +1 -1
  69. package/dist/model-gen/concerto.d.ts +13 -0
  70. package/dist/model-gen/concerto.js +5 -0
  71. package/dist/model-gen/concerto.js.map +1 -0
  72. package/dist/model-gen/concerto.metamodel@1.0.0.d.ts +24 -1
  73. package/dist/model-gen/concerto@1.0.0.d.ts +3 -2
  74. package/dist/model-gen/org.accordproject.commonmark@0.5.0.d.ts +2 -2
  75. package/dist/model-gen/{org.accordproject.templatemark@0.4.0.d.ts → org.accordproject.templatemark@0.5.0.d.ts} +5 -1
  76. package/dist/model-gen/{org.accordproject.templatemark@0.4.0.js → org.accordproject.templatemark@0.5.0.js} +3 -2
  77. package/dist/model-gen/org.accordproject.templatemark@0.5.0.js.map +1 -0
  78. package/dist/runtime/runtime.d.ts +1 -1
  79. package/dist/runtime/runtime.js +1 -1
  80. package/dist/runtime/runtime.js.map +1 -1
  81. package/dist/runtime.tgz +0 -0
  82. package/package.json +8 -8
  83. 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
- var concerto_core_1 = require("@accordproject/concerto-core");
18
- var markdown_common_1 = require("@accordproject/markdown-common");
19
- var markdown_template_1 = require("@accordproject/markdown-template");
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
- "".concat(markdown_common_1.TemplateMarkModel.NAMESPACE, ".ListBlockDefinition"),
39
- "".concat(markdown_common_1.TemplateMarkModel.NAMESPACE, ".WithDefinition"),
40
- "".concat(markdown_common_1.TemplateMarkModel.NAMESPACE, ".JoinDefinition"),
41
- "".concat(markdown_common_1.TemplateMarkModel.NAMESPACE, ".OptionalDefinition"),
42
- "".concat(markdown_common_1.TemplateMarkModel.NAMESPACE, ".ClauseDefinition")
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
- var introspector = new concerto_core_1.Introspector(modelManager);
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Common.js","sourceRoot":"","sources":["../src/Common.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,8DAA4F;AAC5F,kEAAmE;AACnE,sEAAoE;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,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,EAAE,kBAA2B;IAC/F,IAAM,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"}
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
- 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");
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("Cannot evaluate JS ".concat(fn, " against ").concat(data));
46
+ throw new Error(`Cannot evaluate JS ${fn} against ${data}`);
85
47
  }
86
- var runtimeNow = now ? now : (0, dayjs_1.default)();
87
- var functionArgNames = new Array();
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
- var functionArgValues = new Array();
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
- var expression = fn.substring(fn.indexOf('{') + 1, fn.lastIndexOf('}'));
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
- var fun = new (Function.bind.apply(Function, __spreadArray(__spreadArray([void 0], functionArgNames, false), [expression], false)))(); // SECURITY!
105
- var result = fun.apply(void 0, functionArgValues);
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("Caught error ".concat(err, " evaluating ").concat(expression, " with arguments ").concat(functionArgValues));
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("Node must have a name: ".concat(JSON.stringify(currentNode)));
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("Invalid name property ".concat(currentNode.name));
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
- 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);
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("['".concat(obj.name, "']"));
109
+ withPath.push(`['${obj.name}']`);
148
110
  }
149
111
  }
150
112
  }
151
113
  if (currentNode.name !== 'this') {
152
- withPath.push("['".concat(currentNode.name, "']"));
114
+ withPath.push(`['${currentNode.name}']`);
153
115
  }
154
- return withPath.length > 0 ? "$".concat(withPath.join('')) : '$';
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
- var introspector = new concerto_core_1.Introspector(modelManager);
128
+ const introspector = new concerto_core_1.Introspector(modelManager);
167
129
  return (0, traverse_1.default)(templateMark).map(function (context) {
168
- var stopHere = false;
130
+ let stopHere = false;
169
131
  if (typeof context === 'object' && context.$class && typeof context.$class === 'string') {
170
- var nodeClass = context.$class;
132
+ const nodeClass = context.$class;
171
133
  // rewrite node types, mapping from TemplateMark namespace to CiceroMark
172
- var match = nodeClass.match(Common_1.TEMPLATEMARK_RE);
134
+ const match = nodeClass.match(Common_1.TEMPLATEMARK_RE);
173
135
  if (match && match.length > 1) {
174
- context.$class = "".concat(markdown_common_1.CiceroMarkModel.NAMESPACE, ".").concat(match[3]);
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 = "".concat(markdown_common_1.CommonMarkModel.NAMESPACE, ".Paragraph");
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 = "".concat(markdown_common_1.CommonMarkModel.NAMESPACE, ".Paragraph");
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
- var result = evaluateJavaScript(clauseLibrary, data, context.code.contents, now);
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
- var path = getJsonPath(templateMark, context, this.path);
213
- var variableValues = jsonpath_1.default.query(data, path, 1);
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("No values found for path '".concat(path, "' in data ").concat(data, "."));
178
+ throw new Error(`No values found for path '${path}' in data ${data}.`);
216
179
  }
217
180
  else {
218
- var arrayData = variableValues[0];
181
+ const arrayData = variableValues[0];
219
182
  if (!Array.isArray(arrayData)) {
220
- throw new Error("Values found for path '".concat(path, "' in data ").concat(data, " is not an array: ").concat(arrayData, "."));
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 = "".concat(markdown_common_1.CommonMarkModel.NAMESPACE, ".List");
186
+ context.$class = `${markdown_common_1.CommonMarkModel.NAMESPACE}.List`;
224
187
  delete context.elementType;
225
188
  delete context.name;
226
- context.nodes = arrayData.map(function (arrayItem) {
189
+ context.nodes = arrayData.map(arrayItem => {
227
190
  // arrayItem is now the data for the nested traversal
228
- var subResult = generateAgreement(modelManager, clauseLibrary, context.nodes[0].nodes[0], arrayItem);
191
+ const subResult = generateAgreement(modelManager, clauseLibrary, context.nodes[0].nodes[0], arrayItem);
229
192
  return {
230
- $class: "".concat(markdown_common_1.CommonMarkModel.NAMESPACE, ".Item"),
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
- var path = getJsonPath(templateMark, context, this.path);
241
- var variableValues = jsonpath_1.default.query(data, path, 1);
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("No values found for path '".concat(path, "' in data ").concat(data, "."));
206
+ throw new Error(`No values found for path '${path}' in data ${data}.`);
244
207
  }
245
208
  else {
246
- var arrayData = variableValues[0];
209
+ const arrayData = variableValues[0];
247
210
  if (!Array.isArray(arrayData)) {
248
- throw new Error("Values found for path '".concat(path, "' in data ").concat(data, " is not an array: ").concat(arrayData, "."));
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 = "".concat(markdown_common_1.CommonMarkModel.NAMESPACE, ".Text");
252
- var drafter_1 = (0, drafting_1.getDrafter)(context.elementType);
253
- context.text = arrayData.map(function (arrayItem) {
254
- return drafter_1 ? drafter_1(arrayItem, context.format) : arrayItem;
255
- }).join(context.separator);
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
- var path = getJsonPath(templateMark, context, this.path);
271
- var variableValues = jsonpath_1.default.query(data, path, 1);
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("No values found for path '".concat(path, "' in data ").concat(data, "."));
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
- var variableValue = variableValues[0];
278
- var drafter = (0, drafting_1.getDrafter)(context.elementType);
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
- var variableValue = data;
285
- var type = concerto_core_2.ModelUtil.isPrimitiveType(context.elementType) ? null : introspector.getClassDeclaration(context.elementType);
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
- var drafter = (0, drafting_1.getDrafter)(type && type.isEnum() ? 'String' : context.elementType);
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
- var path = getJsonPath(templateMark, context, this.path);
299
- var variableValues = jsonpath_1.default.query(data, path, 1);
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("Multiple values found for path '".concat(path, "' in data ").concat(data, "."));
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
- var result = !!evaluateJavaScript(clauseLibrary, data, context.condition.contents, now);
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
- var path = getJsonPath(templateMark, context, this.path);
332
- var variableValues = jsonpath_1.default.query(data, path, 1);
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("Multiple values found for path '".concat(path, "' in data ").concat(data, "."));
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
- var TemplateMarkInterpreter = /** @class */ (function () {
357
- function TemplateMarkInterpreter(modelManager, clauseLibrary, templateConceptFqn) {
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
- TemplateMarkInterpreter.prototype.checkTypes = function (templateMark) {
374
- var modelManager = new concerto_core_1.ModelManager({ strict: true });
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
- var factory = new concerto_core_1.Factory(modelManager);
379
- var serializer = new concerto_core_1.Serializer(factory, modelManager);
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("Generated invalid agreement: ".concat(err, ": ").concat(JSON.stringify(templateMark, null, 2)));
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
- TemplateMarkInterpreter.prototype.compileTypeScriptToJavaScript = function (templateMark) {
395
- var templateConcept = templateMark.nodes[0].elementType;
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
- var compiler = new TemplateMarkToJavaScriptCompiler_1.TemplateMarkToJavaScriptCompiler(this.modelManager, templateConcept);
369
+ const compiler = new TemplateMarkToJavaScriptCompiler_1.TemplateMarkToJavaScriptCompiler(this.modelManager, templateConcept);
400
370
  return compiler.compile(templateMark);
401
- };
402
- TemplateMarkInterpreter.prototype.validateCiceroMark = function (ciceroMark) {
403
- var modelManager = new concerto_core_1.ModelManager({ strict: true });
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
- var factory = new concerto_core_1.Factory(modelManager);
408
- var serializer = new concerto_core_1.Serializer(factory, modelManager);
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("Generated invalid agreement: ".concat(err, ": ").concat(JSON.stringify(ciceroMark, null, 2)));
383
+ throw new Error(`Generated invalid agreement: ${err}: ${JSON.stringify(ciceroMark, null, 2)}`);
414
384
  }
415
- };
416
- TemplateMarkInterpreter.prototype.generate = function (templateMark, data, now) {
417
- return __awaiter(this, void 0, void 0, function () {
418
- var factory, serializer, templateData, typedTemplateMark, jsTemplateMark, ciceroMark;
419
- return __generator(this, function (_a) {
420
- factory = new concerto_core_1.Factory(this.modelManager);
421
- serializer = new concerto_core_1.Serializer(factory, this.modelManager);
422
- templateData = serializer.fromJSON(data);
423
- if (templateData.getFullyQualifiedType() !== this.templateClass.getFullyQualifiedName()) {
424
- throw new Error("Template data must be of type '".concat(this.templateClass.getFullyQualifiedName(), "'."));
425
- }
426
- typedTemplateMark = this.checkTypes(templateMark);
427
- jsTemplateMark = this.compileTypeScriptToJavaScript(typedTemplateMark);
428
- ciceroMark = generateAgreement(this.modelManager, this.clauseLibrary, jsTemplateMark, data, now);
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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"}