@accordproject/template-engine 1.0.19 → 2.0.0

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 (84) hide show
  1. package/dist/Common.js +9 -9
  2. package/dist/Common.js.map +1 -1
  3. package/dist/TemplateMarkInterpreter.d.ts +2 -2
  4. package/dist/TemplateMarkInterpreter.js +121 -158
  5. package/dist/TemplateMarkInterpreter.js.map +1 -1
  6. package/dist/TemplateMarkToJavaScriptCompiler.js +31 -24
  7. package/dist/TemplateMarkToJavaScriptCompiler.js.map +1 -1
  8. package/dist/TemplateMarkToTypeScriptCompiler.js +94 -94
  9. package/dist/TemplateMarkToTypeScriptCompiler.js.map +1 -1
  10. package/dist/TypeScriptCompilationContext.js +34 -22
  11. package/dist/TypeScriptCompilationContext.js.map +1 -1
  12. package/dist/TypeScriptRuntime.d.ts +9 -0
  13. package/dist/TypeScriptRuntime.js +24 -12
  14. package/dist/TypeScriptRuntime.js.map +1 -1
  15. package/dist/TypeScriptToJavaScriptCompiler.js +18 -16
  16. package/dist/TypeScriptToJavaScriptCompiler.js.map +1 -1
  17. package/dist/compilers/Clause.d.ts +1 -1
  18. package/dist/compilers/Clause.js +18 -35
  19. package/dist/compilers/Clause.js.map +1 -1
  20. package/dist/compilers/Common.js +55 -81
  21. package/dist/compilers/Common.js.map +1 -1
  22. package/dist/compilers/Conditional.d.ts +1 -1
  23. package/dist/compilers/Conditional.js +12 -29
  24. package/dist/compilers/Conditional.js.map +1 -1
  25. package/dist/compilers/ContractDefinition.d.ts +1 -1
  26. package/dist/compilers/ContractDefinition.js +10 -27
  27. package/dist/compilers/ContractDefinition.js.map +1 -1
  28. package/dist/compilers/EnumVariable.d.ts +1 -1
  29. package/dist/compilers/EnumVariable.js +12 -29
  30. package/dist/compilers/EnumVariable.js.map +1 -1
  31. package/dist/compilers/FormattedVariable.d.ts +1 -1
  32. package/dist/compilers/FormattedVariable.js +14 -31
  33. package/dist/compilers/FormattedVariable.js.map +1 -1
  34. package/dist/compilers/Formula.d.ts +1 -1
  35. package/dist/compilers/Formula.js +14 -31
  36. package/dist/compilers/Formula.js.map +1 -1
  37. package/dist/compilers/Join.d.ts +1 -1
  38. package/dist/compilers/Join.js +12 -28
  39. package/dist/compilers/Join.js.map +1 -1
  40. package/dist/compilers/ListBlock.d.ts +1 -1
  41. package/dist/compilers/ListBlock.js +17 -35
  42. package/dist/compilers/ListBlock.js.map +1 -1
  43. package/dist/compilers/NodeCompilers.js +44 -44
  44. package/dist/compilers/NodeCompilers.js.map +1 -1
  45. package/dist/compilers/Optional.d.ts +1 -1
  46. package/dist/compilers/Optional.js +17 -34
  47. package/dist/compilers/Optional.js.map +1 -1
  48. package/dist/compilers/Variable.d.ts +1 -1
  49. package/dist/compilers/Variable.js +12 -29
  50. package/dist/compilers/Variable.js.map +1 -1
  51. package/dist/compilers/With.d.ts +1 -1
  52. package/dist/compilers/With.js +13 -30
  53. package/dist/compilers/With.js.map +1 -1
  54. package/dist/drafting/DateTime/index.js +3 -3
  55. package/dist/drafting/DateTime/index.js.map +1 -1
  56. package/dist/drafting/Double/format.js +5 -5
  57. package/dist/drafting/Double/format.js.map +1 -1
  58. package/dist/drafting/Double/index.js +2 -2
  59. package/dist/drafting/Double/index.js.map +1 -1
  60. package/dist/drafting/Integer/format.js +3 -3
  61. package/dist/drafting/Integer/format.js.map +1 -1
  62. package/dist/drafting/Integer/index.js +2 -2
  63. package/dist/drafting/Integer/index.js.map +1 -1
  64. package/dist/drafting/Long/index.js +2 -2
  65. package/dist/drafting/Long/index.js.map +1 -1
  66. package/dist/drafting/MonetaryAmount/index.js +4 -4
  67. package/dist/drafting/MonetaryAmount/index.js.map +1 -1
  68. package/dist/drafting/index.js +7 -7
  69. package/dist/drafting/index.js.map +1 -1
  70. package/dist/model-gen/concerto.d.ts +13 -0
  71. package/dist/model-gen/concerto.js +5 -0
  72. package/dist/model-gen/concerto.js.map +1 -0
  73. package/dist/model-gen/concerto.metamodel@1.0.0.d.ts +24 -1
  74. package/dist/model-gen/concerto@1.0.0.d.ts +3 -2
  75. package/dist/model-gen/org.accordproject.commonmark@0.5.0.d.ts +2 -2
  76. package/dist/model-gen/{org.accordproject.templatemark@0.4.0.d.ts → org.accordproject.templatemark@0.5.0.d.ts} +5 -1
  77. package/dist/model-gen/{org.accordproject.templatemark@0.4.0.js → org.accordproject.templatemark@0.5.0.js} +3 -2
  78. package/dist/model-gen/org.accordproject.templatemark@0.5.0.js.map +1 -0
  79. package/dist/runtime/runtime.d.ts +1 -1
  80. package/dist/runtime/runtime.js +1 -1
  81. package/dist/runtime/runtime.js.map +1 -1
  82. package/dist/runtime.tgz +0 -0
  83. package/package.json +9 -9
  84. 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"}
@@ -1,6 +1,6 @@
1
- import dayjs from 'dayjs';
2
1
  import { ClassDeclaration, ModelManager } from '@accordproject/concerto-core';
3
2
  import { TemplateData } from './Common';
3
+ import { GenerationOptions } from './TypeScriptRuntime';
4
4
  /**
5
5
  * A template engine: merges the markup and logic of a template with
6
6
  * JSON data to produce JSON data.
@@ -30,5 +30,5 @@ export declare class TemplateMarkInterpreter {
30
30
  */
31
31
  compileTypeScriptToJavaScript(templateMark: object): object;
32
32
  validateCiceroMark(ciceroMark: object): import("@accordproject/concerto-core/types/lib/model/resource");
33
- generate(templateMark: object, data: TemplateData, now?: dayjs.Dayjs): Promise<any>;
33
+ generate(templateMark: object, data: TemplateData, options?: GenerationOptions): Promise<any>;
34
34
  }
@@ -12,101 +12,64 @@
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 jsonpath_1 = __importDefault(require("jsonpath"));
21
+ const traverse_1 = __importDefault(require("traverse"));
22
+ const concerto_core_1 = require("@accordproject/concerto-core");
23
+ const drafting_1 = require("./drafting");
24
+ const markdown_common_1 = require("@accordproject/markdown-common");
25
+ const concerto_core_2 = require("@accordproject/concerto-core");
26
+ const Common_1 = require("./Common");
27
+ const TemplateMarkToJavaScriptCompiler_1 = require("./TemplateMarkToJavaScriptCompiler");
28
+ const org_accordproject_templatemark_0_5_0_1 = require("./model-gen/org.accordproject.templatemark@0.5.0");
29
+ const TypeScriptRuntime_1 = require("./TypeScriptRuntime");
30
+ const dayjs_1 = __importDefault(require("dayjs"));
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
77
39
  * @param {*} data the contract data
78
40
  * @param {string} fn the JS function (including header)
79
- * @param {Date} now the current value for now
41
+ * @param {GenerationOptions} options the generation options
80
42
  * @returns {object} the result of evaluating the expression against the data
81
43
  */
82
- function evaluateJavaScript(clauseLibrary, data, fn, now) {
44
+ function evaluateJavaScript(clauseLibrary, data, fn, options) {
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 functionArgNames = new Array();
88
49
  functionArgNames.push('data');
89
50
  functionArgNames.push('library');
90
- functionArgNames.push('now');
51
+ functionArgNames.push('options');
52
+ functionArgNames.push('dayjs');
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
- functionArgValues.push(runtimeNow);
58
+ functionArgValues.push(options);
59
+ functionArgValues.push(dayjs_1.default);
97
60
  functionArgValues.push(jsonpath_1.default);
98
61
  // chop the function header and closing
99
- var expression = fn.substring(fn.indexOf('{') + 1, fn.lastIndexOf('}'));
62
+ const expression = fn.substring(fn.indexOf('{') + 1, fn.lastIndexOf('}'));
100
63
  if (expression.trim().length === 0) {
101
64
  throw new Error('Empty expression');
102
65
  }
103
66
  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);
67
+ const fun = new Function(...functionArgNames, expression); // SECURITY!
68
+ const result = fun(...functionArgValues);
106
69
  return result;
107
70
  }
108
71
  catch (err) {
109
- throw new Error("Caught error ".concat(err, " evaluating ").concat(expression, " with arguments ").concat(functionArgValues));
72
+ throw new Error(`Caught error ${err} evaluating ${expression} with arguments ${functionArgValues}`);
110
73
  }
111
74
  }
112
75
  /**
@@ -125,33 +88,33 @@ function getJsonPath(rootData, currentNode, paths) {
125
88
  throw new Error('Node must be supplied');
126
89
  }
127
90
  if (!currentNode.name) {
128
- throw new Error("Node must have a name: ".concat(JSON.stringify(currentNode)));
91
+ throw new Error(`Node must have a name: ${JSON.stringify(currentNode)}`);
129
92
  }
130
93
  if (currentNode.name.indexOf('.') >= 0) {
131
94
  // prevent JSON path injection
132
- throw new Error("Invalid name property ".concat(currentNode.name));
95
+ throw new Error(`Invalid name property ${currentNode.name}`);
133
96
  }
134
97
  if (!paths || !paths.length || paths.length < 1) {
135
98
  throw new Error('Paths must be supplied');
136
99
  }
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);
100
+ const withPath = [];
101
+ for (let n = 1; n < paths.length; n++) {
102
+ const sub = paths.slice(0, n);
103
+ const obj = traverse_1.default.get(rootData, sub);
141
104
  // HACK
142
105
  // if(obj===undefined) {
143
106
  // throw new Error(`Failed to find data with path ${sub} and data ${JSON.stringify(rootData, null, 2)}`);
144
107
  // }
145
108
  if (obj && obj.$class) {
146
109
  if (Common_1.NAVIGATION_NODES.indexOf(obj.$class) >= 0) {
147
- withPath.push("['".concat(obj.name, "']"));
110
+ withPath.push(`['${obj.name}']`);
148
111
  }
149
112
  }
150
113
  }
151
114
  if (currentNode.name !== 'this') {
152
- withPath.push("['".concat(currentNode.name, "']"));
115
+ withPath.push(`['${currentNode.name}']`);
153
116
  }
154
- return withPath.length > 0 ? "$".concat(withPath.join('')) : '$';
117
+ return withPath.length > 0 ? `$${withPath.join('')}` : '$';
155
118
  }
156
119
  /**
157
120
  * Generates an AgreementMark JSON document from a template plus data.
@@ -159,23 +122,23 @@ function getJsonPath(rootData, currentNode, paths) {
159
122
  * @param {*} clauseLibrary - the clause library
160
123
  * @param {*} templateMark - the TemplateMark JSON document
161
124
  * @param {*} data - the template data JSON
162
- * @param {[dayjs.Dayjs]} now - date/time to use for the now variable
125
+ * @param {[GenerationOptions]} options - the generation options
163
126
  * @returns {*} the AgreementMark JSON
164
127
  */
165
- function generateAgreement(modelManager, clauseLibrary, templateMark, data, now) {
166
- var introspector = new concerto_core_1.Introspector(modelManager);
128
+ function generateAgreement(modelManager, clauseLibrary, templateMark, data, options) {
129
+ const introspector = new concerto_core_1.Introspector(modelManager);
167
130
  return (0, traverse_1.default)(templateMark).map(function (context) {
168
- var stopHere = false;
131
+ let stopHere = false;
169
132
  if (typeof context === 'object' && context.$class && typeof context.$class === 'string') {
170
- var nodeClass = context.$class;
133
+ const nodeClass = context.$class;
171
134
  // rewrite node types, mapping from TemplateMark namespace to CiceroMark
172
- var match = nodeClass.match(Common_1.TEMPLATEMARK_RE);
135
+ const match = nodeClass.match(Common_1.TEMPLATEMARK_RE);
173
136
  if (match && match.length > 1) {
174
- context.$class = "".concat(markdown_common_1.CiceroMarkModel.NAMESPACE, ".").concat(match[3]);
137
+ context.$class = `${markdown_common_1.CiceroMarkModel.NAMESPACE}.${match[3]}`;
175
138
  }
176
139
  // convert a contract node to a clause note HACK
177
140
  if (Common_1.CONTRACT_DEFINITION_RE.test(nodeClass)) {
178
- context.$class = "".concat(markdown_common_1.CommonMarkModel.NAMESPACE, ".Paragraph");
141
+ context.$class = `${markdown_common_1.CommonMarkModel.NAMESPACE}.Paragraph`;
179
142
  delete context.name;
180
143
  delete context.elementType;
181
144
  }
@@ -183,7 +146,7 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
183
146
  // not 100% sure we want to do that ... we may need to process
184
147
  // the child variable nodes and reparent them?
185
148
  if (Common_1.WITH_DEFINITION_RE.test(nodeClass)) {
186
- context.$class = "".concat(markdown_common_1.CommonMarkModel.NAMESPACE, ".Paragraph");
149
+ context.$class = `${markdown_common_1.CommonMarkModel.NAMESPACE}.Paragraph`;
187
150
  delete context.name;
188
151
  delete context.elementType;
189
152
  }
@@ -191,7 +154,8 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
191
154
  // with the result of evaluating the JS code
192
155
  else if (Common_1.FORMULA_DEFINITION_RE.test(nodeClass)) {
193
156
  if (context.code) {
194
- var result = evaluateJavaScript(clauseLibrary, data, context.code.contents, now);
157
+ checkCode(context.code);
158
+ const result = evaluateJavaScript(clauseLibrary, data, context.code.contents, options);
195
159
  if (result === null) {
196
160
  context.value = '<null>';
197
161
  }
@@ -209,25 +173,25 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
209
173
  }
210
174
  // evaluate lists, recursing on each list item
211
175
  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);
176
+ const path = getJsonPath(templateMark, context, this.path);
177
+ const variableValues = jsonpath_1.default.query(data, path, 1);
214
178
  if (variableValues.length === 0) {
215
- throw new Error("No values found for path '".concat(path, "' in data ").concat(data, "."));
179
+ throw new Error(`No values found for path '${path}' in data ${data}.`);
216
180
  }
217
181
  else {
218
- var arrayData = variableValues[0];
182
+ const arrayData = variableValues[0];
219
183
  if (!Array.isArray(arrayData)) {
220
- throw new Error("Values found for path '".concat(path, "' in data ").concat(data, " is not an array: ").concat(arrayData, "."));
184
+ throw new Error(`Values found for path '${path}' in data ${data} is not an array: ${arrayData}.`);
221
185
  }
222
186
  else {
223
- context.$class = "".concat(markdown_common_1.CommonMarkModel.NAMESPACE, ".List");
187
+ context.$class = `${markdown_common_1.CommonMarkModel.NAMESPACE}.List`;
224
188
  delete context.elementType;
225
189
  delete context.name;
226
- context.nodes = arrayData.map(function (arrayItem) {
190
+ context.nodes = arrayData.map(arrayItem => {
227
191
  // arrayItem is now the data for the nested traversal
228
- var subResult = generateAgreement(modelManager, clauseLibrary, context.nodes[0].nodes[0], arrayItem);
192
+ const subResult = generateAgreement(modelManager, clauseLibrary, context.nodes[0].nodes[0], arrayItem);
229
193
  return {
230
- $class: "".concat(markdown_common_1.CommonMarkModel.NAMESPACE, ".Item"),
194
+ $class: `${markdown_common_1.CommonMarkModel.NAMESPACE}.Item`,
231
195
  nodes: subResult.nodes ? subResult.nodes : []
232
196
  };
233
197
  });
@@ -237,25 +201,28 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
237
201
  }
238
202
  // map over an array of items, joining them into a Text node
239
203
  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);
204
+ const path = getJsonPath(templateMark, context, this.path);
205
+ const variableValues = jsonpath_1.default.query(data, path, 1);
242
206
  if (variableValues.length === 0) {
243
- throw new Error("No values found for path '".concat(path, "' in data ").concat(data, "."));
207
+ throw new Error(`No values found for path '${path}' in data ${data}.`);
244
208
  }
245
209
  else {
246
- var arrayData = variableValues[0];
210
+ const arrayData = variableValues[0];
247
211
  if (!Array.isArray(arrayData)) {
248
- throw new Error("Values found for path '".concat(path, "' in data ").concat(data, " is not an array: ").concat(arrayData, "."));
212
+ throw new Error(`Values found for path '${path}' in data ${data} is not an array: ${arrayData}.`);
249
213
  }
250
214
  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);
215
+ context.$class = `${markdown_common_1.CommonMarkModel.NAMESPACE}.Text`;
216
+ const drafter = (0, drafting_1.getDrafter)(context.elementType);
217
+ context.text = (0, TypeScriptRuntime_1.joinList)(arrayData.map(arrayItem => {
218
+ return drafter ? drafter(arrayItem, context.format) : arrayItem;
219
+ }), context, options);
256
220
  delete context.elementType;
257
221
  delete context.name;
258
222
  delete context.separator;
223
+ delete context.locale;
224
+ delete context.type;
225
+ delete context.style;
259
226
  delete context.nodes;
260
227
  stopHere = true; // do not process child nodes, we've already done it above...
261
228
  }
@@ -267,26 +234,26 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
267
234
  Common_1.ENUM_VARIABLE_DEFINITION_RE.test(nodeClass) ||
268
235
  Common_1.FORMATTED_VARIABLE_DEFINITION_RE.test(nodeClass)) {
269
236
  if (typeof data === 'object') {
270
- var path = getJsonPath(templateMark, context, this.path);
271
- var variableValues = jsonpath_1.default.query(data, path, 1);
237
+ const path = getJsonPath(templateMark, context, this.path);
238
+ const variableValues = jsonpath_1.default.query(data, path, 1);
272
239
  if (variableValues.length === 0) {
273
- throw new Error("No values found for path '".concat(path, "' in data ").concat(data, "."));
240
+ throw new Error(`No values found for path '${path}' in data ${data}.`);
274
241
  }
275
242
  else {
276
243
  // convert the value to a string, optionally using the formatter
277
- var variableValue = variableValues[0];
278
- var type = concerto_core_2.ModelUtil.isPrimitiveType(context.elementType) ? null : introspector.getClassDeclaration(context.elementType);
244
+ const variableValue = variableValues[0];
245
+ const type = concerto_core_2.ModelUtil.isPrimitiveType(context.elementType) ? null : introspector.getClassDeclaration(context.elementType);
279
246
  // we want to draft Enums as strings, not objects
280
- var drafter = (0, drafting_1.getDrafter)(type && type.isEnum() ? 'String' : context.elementType);
247
+ const drafter = (0, drafting_1.getDrafter)(type && type.isEnum() ? 'String' : context.elementType);
281
248
  context.value = drafter ? drafter(variableValue, context.format) : JSON.stringify(variableValue);
282
249
  }
283
250
  }
284
251
  else {
285
252
  // a list of enum values or primitives brings us here
286
- var variableValue = data;
287
- var type = concerto_core_2.ModelUtil.isPrimitiveType(context.elementType) ? null : introspector.getClassDeclaration(context.elementType);
253
+ const variableValue = data;
254
+ const type = concerto_core_2.ModelUtil.isPrimitiveType(context.elementType) ? null : introspector.getClassDeclaration(context.elementType);
288
255
  // we want to draft Enums as strings, not objects
289
- var drafter = (0, drafting_1.getDrafter)(type && type.isEnum() ? 'String' : context.elementType);
256
+ const drafter = (0, drafting_1.getDrafter)(type && type.isEnum() ? 'String' : context.elementType);
290
257
  context.value = drafter ? drafter(variableValue, context.format) : JSON.stringify(variableValue);
291
258
  }
292
259
  }
@@ -294,17 +261,18 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
294
261
  // with the result of evaluating the JS code or a boolean property
295
262
  else if (Common_1.CONDITIONAL_DEFINITION_RE.test(nodeClass)) {
296
263
  if (context.condition) {
297
- context.isTrue = !!evaluateJavaScript(clauseLibrary, data, context.condition.contents, now);
264
+ checkCode(context.condition);
265
+ context.isTrue = !!evaluateJavaScript(clauseLibrary, data, context.condition.contents, options);
298
266
  }
299
267
  else {
300
- var path = getJsonPath(templateMark, context, this.path);
301
- var variableValues = jsonpath_1.default.query(data, path, 1);
268
+ const path = getJsonPath(templateMark, context, this.path);
269
+ const variableValues = jsonpath_1.default.query(data, path, 1);
302
270
  if (variableValues && variableValues.length) {
303
271
  if (variableValues.length === 1) {
304
272
  context.isTrue = !!variableValues[0];
305
273
  }
306
274
  else {
307
- throw new Error("Multiple values found for path '".concat(path, "' in data ").concat(data, "."));
275
+ throw new Error(`Multiple values found for path '${path}' in data ${data}.`);
308
276
  }
309
277
  }
310
278
  else {
@@ -319,7 +287,8 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
319
287
  // only include the children of a clause if its condition is true
320
288
  else if (Common_1.CLAUSE_DEFINITION_RE.test(nodeClass)) {
321
289
  if (context.condition) {
322
- var result = !!evaluateJavaScript(clauseLibrary, data, context.condition.contents, now);
290
+ checkCode(context.condition);
291
+ const result = !!evaluateJavaScript(clauseLibrary, data, context.condition.contents, options);
323
292
  if (!result) {
324
293
  delete context.nodes;
325
294
  stopHere = true;
@@ -330,15 +299,15 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
330
299
  }
331
300
  // add a 'hasSome' property to OptionalDefinition
332
301
  else if (Common_1.OPTIONAL_DEFINITION_RE.test(nodeClass)) {
333
- var path = getJsonPath(templateMark, context, this.path);
334
- var variableValues = jsonpath_1.default.query(data, path, 1);
302
+ const path = getJsonPath(templateMark, context, this.path);
303
+ const variableValues = jsonpath_1.default.query(data, path, 1);
335
304
  if (variableValues && variableValues.length) {
336
305
  if (variableValues.length === 1) {
337
306
  context.hasSome = true;
338
307
  context.whenNone = [];
339
308
  }
340
309
  else {
341
- throw new Error("Multiple values found for path '".concat(path, "' in data ").concat(data, "."));
310
+ throw new Error(`Multiple values found for path '${path}' in data ${data}.`);
342
311
  }
343
312
  }
344
313
  else {
@@ -355,8 +324,8 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
355
324
  * A template engine: merges the markup and logic of a template with
356
325
  * JSON data to produce JSON data.
357
326
  */
358
- var TemplateMarkInterpreter = /** @class */ (function () {
359
- function TemplateMarkInterpreter(modelManager, clauseLibrary, templateConceptFqn) {
327
+ class TemplateMarkInterpreter {
328
+ constructor(modelManager, clauseLibrary, templateConceptFqn) {
360
329
  this.modelManager = modelManager;
361
330
  this.clauseLibrary = clauseLibrary;
362
331
  this.templateClass = (0, Common_1.getTemplateClassDeclaration)(this.modelManager, templateConceptFqn);
@@ -372,67 +341,61 @@ var TemplateMarkInterpreter = /** @class */ (function () {
372
341
  * @returns {*} TemplateMark JSON that has been typed checked and has type metadata added
373
342
  * @throws {Error} if the templateMark document is invalid
374
343
  */
375
- TemplateMarkInterpreter.prototype.checkTypes = function (templateMark) {
376
- var modelManager = new concerto_core_1.ModelManager({ strict: true });
344
+ checkTypes(templateMark) {
345
+ const modelManager = new concerto_core_1.ModelManager({ strict: true });
377
346
  modelManager.addCTOModel(markdown_common_1.ConcertoMetaModel.MODEL, 'concertometamodel.cto');
378
347
  modelManager.addCTOModel(markdown_common_1.CommonMarkModel.MODEL, 'commonmark.cto');
379
348
  modelManager.addCTOModel(markdown_common_1.TemplateMarkModel.MODEL, 'templatemark.cto');
380
- var factory = new concerto_core_1.Factory(modelManager);
381
- var serializer = new concerto_core_1.Serializer(factory, modelManager);
349
+ const factory = new concerto_core_1.Factory(modelManager);
350
+ const serializer = new concerto_core_1.Serializer(factory, modelManager);
382
351
  try {
383
352
  serializer.fromJSON(templateMark);
384
353
  return templateMark;
385
354
  }
386
355
  catch (err) {
387
- throw new Error("Generated invalid agreement: ".concat(err, ": ").concat(JSON.stringify(templateMark, null, 2)));
356
+ throw new Error(`Generated invalid agreement: ${err}: ${JSON.stringify(templateMark, null, 2)}`);
388
357
  }
389
- };
358
+ }
390
359
  /**
391
360
  * Compiles the code nodes containing TS to code nodes containing JS.
392
361
  * @param {*} templateMark the TemplateMark JSON object
393
362
  * @returns {*} TemplateMark JSON with JS nodes
394
363
  * @throws {Error} if the templateMark document is invalid
395
364
  */
396
- TemplateMarkInterpreter.prototype.compileTypeScriptToJavaScript = function (templateMark) {
397
- var templateConcept = templateMark.nodes[0].elementType;
365
+ compileTypeScriptToJavaScript(templateMark) {
366
+ const templateConcept = templateMark.nodes[0].elementType;
398
367
  if (!templateConcept) {
399
368
  throw new Error('TemplateMark is not typed');
400
369
  }
401
- var compiler = new TemplateMarkToJavaScriptCompiler_1.TemplateMarkToJavaScriptCompiler(this.modelManager, templateConcept);
370
+ const compiler = new TemplateMarkToJavaScriptCompiler_1.TemplateMarkToJavaScriptCompiler(this.modelManager, templateConcept);
402
371
  return compiler.compile(templateMark);
403
- };
404
- TemplateMarkInterpreter.prototype.validateCiceroMark = function (ciceroMark) {
405
- var modelManager = new concerto_core_1.ModelManager({ strict: true });
372
+ }
373
+ validateCiceroMark(ciceroMark) {
374
+ const modelManager = new concerto_core_1.ModelManager({ strict: true });
406
375
  modelManager.addCTOModel(markdown_common_1.ConcertoMetaModel.MODEL, 'concertometamodel.cto');
407
376
  modelManager.addCTOModel(markdown_common_1.CommonMarkModel.MODEL, 'commonmark.cto');
408
377
  modelManager.addCTOModel(markdown_common_1.CiceroMarkModel.MODEL, 'ciceromark.cto');
409
- var factory = new concerto_core_1.Factory(modelManager);
410
- var serializer = new concerto_core_1.Serializer(factory, modelManager);
378
+ const factory = new concerto_core_1.Factory(modelManager);
379
+ const serializer = new concerto_core_1.Serializer(factory, modelManager);
411
380
  try {
412
381
  return serializer.fromJSON(ciceroMark);
413
382
  }
414
383
  catch (err) {
415
- throw new Error("Generated invalid agreement: ".concat(err, ": ").concat(JSON.stringify(ciceroMark, null, 2)));
384
+ throw new Error(`Generated invalid agreement: ${err}: ${JSON.stringify(ciceroMark, null, 2)}`);
416
385
  }
417
- };
418
- TemplateMarkInterpreter.prototype.generate = function (templateMark, data, now) {
419
- return __awaiter(this, void 0, void 0, function () {
420
- var factory, serializer, templateData, typedTemplateMark, jsTemplateMark, ciceroMark;
421
- return __generator(this, function (_a) {
422
- factory = new concerto_core_1.Factory(this.modelManager);
423
- serializer = new concerto_core_1.Serializer(factory, this.modelManager);
424
- templateData = serializer.fromJSON(data);
425
- if (templateData.getFullyQualifiedType() !== this.templateClass.getFullyQualifiedName()) {
426
- throw new Error("Template data must be of type '".concat(this.templateClass.getFullyQualifiedName(), "'."));
427
- }
428
- typedTemplateMark = this.checkTypes(templateMark);
429
- jsTemplateMark = this.compileTypeScriptToJavaScript(typedTemplateMark);
430
- ciceroMark = generateAgreement(this.modelManager, this.clauseLibrary, jsTemplateMark, data, now);
431
- return [2 /*return*/, this.validateCiceroMark(ciceroMark)];
432
- });
433
- });
434
- };
435
- return TemplateMarkInterpreter;
436
- }());
386
+ }
387
+ async generate(templateMark, data, options) {
388
+ const factory = new concerto_core_1.Factory(this.modelManager);
389
+ const serializer = new concerto_core_1.Serializer(factory, this.modelManager);
390
+ const templateData = serializer.fromJSON(data);
391
+ if (templateData.getFullyQualifiedType() !== this.templateClass.getFullyQualifiedName()) {
392
+ throw new Error(`Template data must be of type '${this.templateClass.getFullyQualifiedName()}'.`);
393
+ }
394
+ const typedTemplateMark = this.checkTypes(templateMark);
395
+ const jsTemplateMark = this.compileTypeScriptToJavaScript(typedTemplateMark);
396
+ const ciceroMark = generateAgreement(this.modelManager, this.clauseLibrary, jsTemplateMark, data, options);
397
+ return this.validateCiceroMark(ciceroMark);
398
+ }
399
+ }
437
400
  exports.TemplateMarkInterpreter = TemplateMarkInterpreter;
438
401
  //# 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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"}