@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.
- package/dist/Common.js +9 -9
- package/dist/Common.js.map +1 -1
- package/dist/TemplateMarkInterpreter.d.ts +2 -2
- package/dist/TemplateMarkInterpreter.js +121 -158
- package/dist/TemplateMarkInterpreter.js.map +1 -1
- package/dist/TemplateMarkToJavaScriptCompiler.js +31 -24
- package/dist/TemplateMarkToJavaScriptCompiler.js.map +1 -1
- package/dist/TemplateMarkToTypeScriptCompiler.js +94 -94
- package/dist/TemplateMarkToTypeScriptCompiler.js.map +1 -1
- package/dist/TypeScriptCompilationContext.js +34 -22
- package/dist/TypeScriptCompilationContext.js.map +1 -1
- package/dist/TypeScriptRuntime.d.ts +9 -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 -81
- 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 +9 -9
- package/dist/model-gen/org.accordproject.templatemark@0.4.0.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.pop = exports.addChild = exports.push = exports.peekProperty = exports.peek = void 0;
|
|
3
|
+
exports.pop = exports.addChild = exports.push = exports.peekProperty = exports.peek = exports.joinList = void 0;
|
|
4
4
|
/*
|
|
5
5
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
6
|
* you may not use this file except in compliance with the License.
|
|
@@ -14,7 +14,20 @@ exports.pop = exports.addChild = exports.push = exports.peekProperty = exports.p
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
const DEBUG = false;
|
|
18
|
+
function joinList(data, joinDef, options) {
|
|
19
|
+
if (joinDef.separator) {
|
|
20
|
+
return data.join(joinDef.separator);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
const formatter = new Intl.ListFormat(joinDef.locale ? joinDef.locale : options?.locale, {
|
|
24
|
+
style: joinDef.style,
|
|
25
|
+
type: joinDef.type
|
|
26
|
+
});
|
|
27
|
+
return formatter.format(data);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.joinList = joinList;
|
|
18
31
|
/**
|
|
19
32
|
* These utility functions are used by the typescript code that
|
|
20
33
|
* is generated from TemplateMark. They manage a stack to improve
|
|
@@ -22,36 +35,35 @@ var DEBUG = false;
|
|
|
22
35
|
*/
|
|
23
36
|
function dump(op, $data) {
|
|
24
37
|
if (DEBUG) {
|
|
25
|
-
console.log(
|
|
38
|
+
console.log(`${op}: ${JSON.stringify($data)}`);
|
|
26
39
|
}
|
|
27
40
|
}
|
|
28
41
|
function peek($data) {
|
|
29
42
|
if ($data.length <= 0) {
|
|
30
43
|
throw new Error('Empty array');
|
|
31
44
|
}
|
|
32
|
-
|
|
45
|
+
const result = $data[$data.length - 1];
|
|
33
46
|
dump('peek', $data);
|
|
34
47
|
return result;
|
|
35
48
|
}
|
|
36
49
|
exports.peek = peek;
|
|
37
|
-
function peekProperty($data, propertyName, allowUndefined) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
var result = head[propertyName];
|
|
50
|
+
function peekProperty($data, propertyName, allowUndefined = false) {
|
|
51
|
+
const head = peek($data);
|
|
52
|
+
const result = head[propertyName];
|
|
41
53
|
if (!allowUndefined && result === undefined) {
|
|
42
|
-
throw new Error(
|
|
54
|
+
throw new Error(`Undefined property ${propertyName}. Current stack is ${JSON.stringify($data)}`);
|
|
43
55
|
}
|
|
44
56
|
return result;
|
|
45
57
|
}
|
|
46
58
|
exports.peekProperty = peekProperty;
|
|
47
59
|
function push($data, item) {
|
|
48
|
-
|
|
60
|
+
const result = $data.push(item);
|
|
49
61
|
dump('push', $data);
|
|
50
62
|
return result;
|
|
51
63
|
}
|
|
52
64
|
exports.push = push;
|
|
53
65
|
function addChild($data, item) {
|
|
54
|
-
|
|
66
|
+
const node = peek($data);
|
|
55
67
|
node.nodes ? node.nodes.push(item) : node.nodes = [item];
|
|
56
68
|
}
|
|
57
69
|
exports.addChild = addChild;
|
|
@@ -59,7 +71,7 @@ function pop($data) {
|
|
|
59
71
|
if ($data.length <= 0) {
|
|
60
72
|
throw new Error('Empty array');
|
|
61
73
|
}
|
|
62
|
-
|
|
74
|
+
const result = $data.pop();
|
|
63
75
|
dump('pop', $data);
|
|
64
76
|
return result;
|
|
65
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeScriptRuntime.js","sourceRoot":"","sources":["../src/TypeScriptRuntime.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;GAYG;AACH,
|
|
1
|
+
{"version":3,"file":"TypeScriptRuntime.js","sourceRoot":"","sources":["../src/TypeScriptRuntime.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,KAAK,GAAG,KAAK,CAAC;AAcpB,SAAgB,QAAQ,CAAC,IAAkB,EAAE,OAAW,EAAE,OAA0B;IAChF,IAAG,OAAO,CAAC,SAAS,EAAE;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;KACvC;SACI;QACD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,UAAU,CAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,EACpF;YACI,KAAK,EAAG,OAAO,CAAC,KAA8B;YAC9C,IAAI,EAAG,OAAO,CAAC,IAA4B;SAC9C,CACJ,CAAC;QACF,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KACjC;AACL,CAAC;AAbD,4BAaC;AAED;;;;GAIG;AAEH,SAAS,IAAI,CAAC,EAAS,EAAE,KAAW;IAChC,IAAG,KAAK,EAAE;QACN,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KAClD;AACL,CAAC;AAED,SAAgB,IAAI,CAAC,KAAW;IAC5B,IAAG,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;KAClC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpB,OAAO,MAAM,CAAC;AAClB,CAAC;AAPD,oBAOC;AAED,SAAgB,YAAY,CAAC,KAAW,EAAE,YAAmB,EAAE,cAAc,GAAC,KAAK;IAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IAClC,IAAG,CAAC,cAAc,IAAI,MAAM,KAAK,SAAS,EAAE;QACxC,MAAM,IAAI,KAAK,CAAC,sBAAsB,YAAY,sBAAsB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KACpG;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAPD,oCAOC;AAED,SAAgB,IAAI,CAAC,KAAW,EAAE,IAAQ;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpB,OAAO,MAAM,CAAC;AAClB,CAAC;AAJD,oBAIC;AAED,SAAgB,QAAQ,CAAC,KAAW,EAAE,IAAQ;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7D,CAAC;AAHD,4BAGC;AAED,SAAgB,GAAG,CAAC,KAAW;IAC3B,IAAG,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;KAClC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnB,OAAO,MAAM,CAAC;AAClB,CAAC;AAPD,kBAOC"}
|
|
@@ -17,11 +17,11 @@ exports.TypeScriptToJavaScriptCompiler = void 0;
|
|
|
17
17
|
* See the License for the specific language governing permissions and
|
|
18
18
|
* limitations under the License.
|
|
19
19
|
*/
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
21
|
+
const vfs_1 = require("@typescript/vfs");
|
|
22
|
+
const twoslash_1 = require("@typescript/twoslash");
|
|
23
|
+
const TypeScriptCompilationContext_1 = require("./TypeScriptCompilationContext");
|
|
24
|
+
const declarations_1 = require("./runtime/declarations");
|
|
25
25
|
/**
|
|
26
26
|
* Compiles user Typescript code to JavaScript, This uses the '@typescript/twoslash'
|
|
27
27
|
* project which is maintained by the Typescript team and powers their web playground.
|
|
@@ -29,29 +29,31 @@ var declarations_1 = require("./runtime/declarations");
|
|
|
29
29
|
* that is composed of multiple TS files to compile, along with their 3rd-party module
|
|
30
30
|
* dependencies.
|
|
31
31
|
*/
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
class TypeScriptToJavaScriptCompiler {
|
|
33
|
+
constructor(modelManager, templateConceptFqn) {
|
|
34
34
|
this.context = new TypeScriptCompilationContext_1.TypeScriptCompilationContext(modelManager, templateConceptFqn).getCompilationContext();
|
|
35
35
|
}
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
compile(typescript) {
|
|
37
|
+
const fsMap = (0, vfs_1.createDefaultMapFromNodeModules)({
|
|
38
38
|
target: typescript_1.default.ScriptTarget.ES2020,
|
|
39
39
|
});
|
|
40
40
|
fsMap.set('/node_modules/@types/dayjs/index.d.ts', Buffer.from(declarations_1.DAYJS_BASE64, 'base64').toString());
|
|
41
41
|
fsMap.set('/node_modules/@types/jsonpath/index.d.ts', Buffer.from(declarations_1.JSONPATH_BASE64, 'base64').toString());
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
const twoSlashCode = `
|
|
43
|
+
${this.context}
|
|
44
|
+
${typescript}
|
|
45
|
+
`;
|
|
46
|
+
const options = {
|
|
47
|
+
fsMap,
|
|
45
48
|
defaultOptions: {
|
|
46
49
|
showEmit: true,
|
|
47
50
|
noErrorValidation: true,
|
|
48
51
|
showEmittedFile: 'code.js'
|
|
49
52
|
}
|
|
50
53
|
};
|
|
51
|
-
|
|
54
|
+
const result = (0, twoslash_1.twoslasher)(twoSlashCode, 'ts', options);
|
|
52
55
|
return result;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
}());
|
|
56
|
+
}
|
|
57
|
+
}
|
|
56
58
|
exports.TypeScriptToJavaScriptCompiler = TypeScriptToJavaScriptCompiler;
|
|
57
59
|
//# sourceMappingURL=TypeScriptToJavaScriptCompiler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeScriptToJavaScriptCompiler.js","sourceRoot":"","sources":["../src/TypeScriptToJavaScriptCompiler.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;;;GAYG;AACH,
|
|
1
|
+
{"version":3,"file":"TypeScriptToJavaScriptCompiler.js","sourceRoot":"","sources":["../src/TypeScriptToJavaScriptCompiler.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;;;GAYG;AACH,4DAA4B;AAC5B,yCAAkE;AAClE,mDAAmF;AAEnF,iFAA8E;AAC9E,yDAAuE;AAEvE;;;;;;GAMG;AACH,MAAa,8BAA8B;IAGvC,YAAY,YAA0B,EAAE,kBAA2B;QAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,2DAA4B,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC,qBAAqB,EAAE,CAAC;IAC9G,CAAC;IAED,OAAO,CAAC,UAAkB;QACtB,MAAM,KAAK,GAAG,IAAA,qCAA+B,EAAC;YAC1C,MAAM,EAAE,oBAAE,CAAC,YAAY,CAAC,MAAM;SACjC,CAAC,CAAC;QAEH,KAAK,CAAC,GAAG,CAAC,uCAAuC,EAAE,MAAM,CAAC,IAAI,CAAC,2BAAY,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnG,KAAK,CAAC,GAAG,CAAC,0CAA0C,EAAE,MAAM,CAAC,IAAI,CAAC,8BAAe,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzG,MAAM,YAAY,GAAE;EAC1B,IAAI,CAAC,OAAO;EACZ,UAAU;CACX,CAAC;QAEM,MAAM,OAAO,GAAoB;YAC7B,KAAK;YACL,cAAc,EAAE;gBACZ,QAAQ,EAAE,IAAI;gBACd,iBAAiB,EAAE,IAAI;gBACvB,eAAe,EAAE,SAAS;aAC7B;SACJ,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,qBAAU,EAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AA/BD,wEA+BC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FileWriter } from '@accordproject/concerto-util';
|
|
2
|
-
import { IClauseDefinition, IWithDefinition } from '../model-gen/org.accordproject.templatemark@0.
|
|
2
|
+
import { IClauseDefinition, IWithDefinition } from '../model-gen/org.accordproject.templatemark@0.5.0';
|
|
3
3
|
import { AbstractComplexCompiler } from './Common';
|
|
4
4
|
interface INamedClauseDefinition extends IClauseDefinition {
|
|
5
5
|
readonly functionName: string;
|
package/dist/compilers/Clause.js
CHANGED
|
@@ -1,60 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
3
|
exports.Clause = void 0;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return _super.call(this, false) || this;
|
|
4
|
+
const markdown_common_1 = require("@accordproject/markdown-common");
|
|
5
|
+
const Common_1 = require("./Common");
|
|
6
|
+
class Clause extends Common_1.AbstractComplexCompiler {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(false);
|
|
25
9
|
}
|
|
26
|
-
|
|
10
|
+
enter(fw, level, templateMarkNode) {
|
|
27
11
|
(0, Common_1.writeDebug)(fw, level, templateMarkNode);
|
|
28
12
|
(0, Common_1.writeOpenNodeScope)(fw, level);
|
|
29
13
|
(0, Common_1.writeOpenDataScope)(fw, level, templateMarkNode.name);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
|
|
14
|
+
}
|
|
15
|
+
generate(fw, level, templateMarkNode) {
|
|
16
|
+
const clone = (0, Common_1.makeCiceroMark)(templateMarkNode);
|
|
33
17
|
delete clone.condition;
|
|
34
18
|
delete clone.functionName;
|
|
35
|
-
|
|
19
|
+
const para = { $class: `${markdown_common_1.CommonMarkModel.NAMESPACE}.Paragraph` };
|
|
36
20
|
(0, Common_1.writeOpenGenerateScope)(fw, level);
|
|
37
21
|
if (templateMarkNode.condition) {
|
|
38
|
-
fw.writeLine(level,
|
|
22
|
+
fw.writeLine(level, `const isTrue:boolean = UserCode.${templateMarkNode.functionName}(data,library,options)`);
|
|
39
23
|
}
|
|
40
24
|
else {
|
|
41
25
|
fw.writeLine(level, 'const isTrue:boolean = true;');
|
|
42
26
|
}
|
|
43
27
|
fw.writeLine(level, 'if(isTrue) {');
|
|
44
|
-
fw.writeLine(level,
|
|
28
|
+
fw.writeLine(level, `return ${JSON.stringify(clone)} as ${(0, Common_1.getTypeScriptType)(clone.$class)};`);
|
|
45
29
|
fw.writeLine(level, '}');
|
|
46
30
|
fw.writeLine(level, 'else {');
|
|
47
|
-
fw.writeLine(level,
|
|
31
|
+
fw.writeLine(level, `return ${JSON.stringify(para)} as ${(0, Common_1.getTypeScriptType)(para.$class)};`);
|
|
48
32
|
fw.writeLine(level, '}');
|
|
49
33
|
(0, Common_1.writeCloseGenerateScope)(fw, level);
|
|
50
34
|
delete templateMarkNode.condition;
|
|
51
|
-
}
|
|
52
|
-
|
|
35
|
+
}
|
|
36
|
+
exit(fw, level) {
|
|
53
37
|
(0, Common_1.writeCloseDataScope)(fw, level);
|
|
54
38
|
(0, Common_1.writeCloseNodeScope)(fw, level);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
return Clause;
|
|
58
|
-
}(Common_1.AbstractComplexCompiler));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
59
41
|
exports.Clause = Clause;
|
|
42
|
+
Clause.TYPE = `${markdown_common_1.TemplateMarkModel.NAMESPACE}.ClauseDefinition`;
|
|
60
43
|
//# sourceMappingURL=Clause.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Clause.js","sourceRoot":"","sources":["../../src/compilers/Clause.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Clause.js","sourceRoot":"","sources":["../../src/compilers/Clause.ts"],"names":[],"mappings":";;;AAcA,oEAAmF;AAInF,qCAAqO;AAMrO,MAAa,MAAO,SAAQ,gCAAuB;IAE/C;QACI,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,EAAa,EAAE,KAAY,EAAC,gBAAgC;QAC9D,IAAA,mBAAU,EAAC,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACxC,IAAA,2BAAkB,EAAC,EAAE,EAAC,KAAK,CAAC,CAAC;QAC7B,IAAA,2BAAkB,EAAC,EAAE,EAAC,KAAK,EAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,QAAQ,CAAC,EAAa,EAAE,KAAY,EAAE,gBAAuC;QACzE,MAAM,KAAK,GAAG,IAAA,uBAAc,EAAC,gBAAgB,CAAY,CAAC;QAC1D,OAAQ,KAAa,CAAC,SAAS,CAAC;QAChC,OAAQ,KAAa,CAAC,YAAY,CAAC;QACnC,MAAM,IAAI,GAAG,EAAC,MAAM,EAAE,GAAG,iCAAe,CAAC,SAAS,YAAY,EAAe,CAAC;QAC9E,IAAA,+BAAsB,EAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAClC,IAAG,gBAAgB,CAAC,SAAS,EAAE;YAC3B,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,mCAAmC,gBAAgB,CAAC,YAAY,wBAAwB,CAAC,CAAC;SACjH;aACI;YACD,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,8BAA8B,CAAC,CAAC;SACvD;QACD,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QACpC,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,IAAA,0BAAiB,EAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9F,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzB,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC9B,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,IAAA,0BAAiB,EAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5F,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzB,IAAA,gCAAuB,EAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACnC,OAAO,gBAAgB,CAAC,SAAS,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,EAAa,EAAE,KAAY;QAC5B,IAAA,4BAAmB,EAAC,EAAE,EAAC,KAAK,CAAC,CAAC;QAC9B,IAAA,4BAAmB,EAAC,EAAE,EAAC,KAAK,CAAC,CAAC;IAClC,CAAC;;AArCL,wBAsCC;AArCU,WAAI,GAAG,GAAG,mCAAiB,CAAC,SAAS,mBAAmB,CAAC"}
|
package/dist/compilers/Common.js
CHANGED
|
@@ -1,41 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
3
|
exports.Ignore = exports.PassThrough = exports.AbstractSimpleCompiler = exports.AbstractComplexCompiler = exports.makeCiceroMark = exports.getTypeScriptType = exports.writeCloseDataScope = exports.writeOpenDataScope = exports.writeCloseNodeScope = exports.writeOpenNodeScope = exports.writeCloseGenerateScope = exports.writeOpenGenerateScope = exports.writeEpilog = exports.writeProlog = exports.writeImports = exports.RUNTIME_DIR = exports.writeDebug = void 0;
|
|
19
|
-
|
|
20
|
-
|
|
4
|
+
const markdown_common_1 = require("@accordproject/markdown-common");
|
|
5
|
+
const concerto_core_1 = require("@accordproject/concerto-core");
|
|
21
6
|
function writeDebug(fw, level, concept) {
|
|
22
|
-
fw.writeLine(level,
|
|
7
|
+
fw.writeLine(level, `// ${concerto_core_1.ModelUtil.getShortName(concept.$class)} ${concept.name ? `(${concept.name})` : ''}`);
|
|
23
8
|
}
|
|
24
9
|
exports.writeDebug = writeDebug;
|
|
25
10
|
exports.RUNTIME_DIR = 'runtime';
|
|
26
11
|
function writeImports(fw, level, templateClass) {
|
|
27
|
-
fw.writeLine(level,
|
|
28
|
-
fw.writeLine(level,
|
|
29
|
-
fw.writeLine(level,
|
|
30
|
-
fw.writeLine(level, 'import dayjs from \'dayjs\';');
|
|
12
|
+
fw.writeLine(level, `import * as CommonMark from './${markdown_common_1.CommonMarkModel.NAMESPACE}';`);
|
|
13
|
+
fw.writeLine(level, `import * as CiceroMark from './${markdown_common_1.CiceroMarkModel.NAMESPACE}';`);
|
|
14
|
+
fw.writeLine(level, `import * as TemplateModel from './${templateClass.getNamespace()}';`);
|
|
31
15
|
fw.writeLine(level, 'import * as UserCode from \'./usercode\';');
|
|
32
|
-
fw.writeLine(level,
|
|
33
|
-
fw.writeLine(level,
|
|
16
|
+
fw.writeLine(level, `import { getDrafter as $getDrafter } from './${exports.RUNTIME_DIR}/drafting';`);
|
|
17
|
+
fw.writeLine(level, `import * as Runtime from './${exports.RUNTIME_DIR}/TypeScriptRuntime';`);
|
|
34
18
|
}
|
|
35
19
|
exports.writeImports = writeImports;
|
|
36
20
|
function writeProlog(fw, level, templateClass) {
|
|
37
|
-
fw.writeLine(level,
|
|
38
|
-
fw.writeLine(level,
|
|
21
|
+
fw.writeLine(level, `export function generator(data:TemplateModel.I${templateClass.getName()}, library:any, options:Runtime.GenerationOptions) : CommonMark.IDocument {`);
|
|
22
|
+
fw.writeLine(level, `const docNode = {$class: '${markdown_common_1.CommonMarkModel.NAMESPACE}.Document', xmlns: '${markdown_common_1.CommonMarkModel.NAMESPACE}', nodes: []} as CommonMark.INode;`);
|
|
39
23
|
fw.writeLine(level, 'const $nodes:CommonMark.INode[] = [];'); // the stack of output CiceroMark nodes
|
|
40
24
|
fw.writeLine(level, 'const $data:any[] = [];'); // the stack of 'this' used for data access
|
|
41
25
|
fw.writeLine(level, 'let $result:any = docNode;'); // document root, or the return value
|
|
@@ -70,9 +54,8 @@ function writeCloseNodeScope(fw, level) {
|
|
|
70
54
|
}
|
|
71
55
|
exports.writeCloseNodeScope = writeCloseNodeScope;
|
|
72
56
|
// save $curNode into $stack, so we can pop it when the scope closes
|
|
73
|
-
function writeOpenDataScope(fw, level, name, allowUndefined) {
|
|
74
|
-
|
|
75
|
-
fw.writeLine(level, "Runtime.push($data, Runtime.peekProperty($data, '".concat(name, "', ").concat(allowUndefined, "));"));
|
|
57
|
+
function writeOpenDataScope(fw, level, name, allowUndefined = false) {
|
|
58
|
+
fw.writeLine(level, `Runtime.push($data, Runtime.peekProperty($data, '${name}', ${allowUndefined}));`);
|
|
76
59
|
}
|
|
77
60
|
exports.writeOpenDataScope = writeOpenDataScope;
|
|
78
61
|
// closes the scope, popping the stack and setting $curNode
|
|
@@ -81,19 +64,19 @@ function writeCloseDataScope(fw, level) {
|
|
|
81
64
|
}
|
|
82
65
|
exports.writeCloseDataScope = writeCloseDataScope;
|
|
83
66
|
function getTypeScriptType(ctoFqn) {
|
|
84
|
-
|
|
85
|
-
|
|
67
|
+
const ns = concerto_core_1.ModelUtil.getNamespace(ctoFqn);
|
|
68
|
+
const type = concerto_core_1.ModelUtil.getShortName(ctoFqn);
|
|
86
69
|
if (ns === markdown_common_1.CommonMarkModel.NAMESPACE) {
|
|
87
|
-
return
|
|
70
|
+
return `CommonMark.I${type}`;
|
|
88
71
|
}
|
|
89
72
|
else if (ns === markdown_common_1.CiceroMarkModel.NAMESPACE) {
|
|
90
|
-
return
|
|
73
|
+
return `CiceroMark.I${type}`;
|
|
91
74
|
}
|
|
92
75
|
else if (ns === markdown_common_1.TemplateMarkModel.NAMESPACE) {
|
|
93
|
-
return
|
|
76
|
+
return `CiceroMark.I${type.substring(0, type.length - 'Definition'.length)}`;
|
|
94
77
|
}
|
|
95
78
|
else {
|
|
96
|
-
throw new Error(
|
|
79
|
+
throw new Error(`No type mapping for ${ctoFqn}`);
|
|
97
80
|
}
|
|
98
81
|
}
|
|
99
82
|
exports.getTypeScriptType = getTypeScriptType;
|
|
@@ -103,25 +86,24 @@ exports.getTypeScriptType = getTypeScriptType;
|
|
|
103
86
|
* @param {boolean} deep when deep is false (the default) child nodes are not copied
|
|
104
87
|
* @returns {INode} the mapped node
|
|
105
88
|
*/
|
|
106
|
-
function makeCiceroMark(templateMarkNode, deep) {
|
|
107
|
-
if (deep === void 0) { deep = false; }
|
|
89
|
+
function makeCiceroMark(templateMarkNode, deep = false) {
|
|
108
90
|
if (!templateMarkNode.$class) {
|
|
109
91
|
throw new Error('Not a concerto type.');
|
|
110
92
|
}
|
|
111
|
-
|
|
93
|
+
const json = JSON.parse(JSON.stringify(templateMarkNode));
|
|
112
94
|
delete json.elementType;
|
|
113
95
|
if (!deep) {
|
|
114
96
|
delete json.nodes;
|
|
115
97
|
}
|
|
116
98
|
else {
|
|
117
99
|
if (json.nodes) {
|
|
118
|
-
json.nodes = json.nodes.map(
|
|
100
|
+
json.nodes = json.nodes.map((n) => makeCiceroMark(n, deep));
|
|
119
101
|
}
|
|
120
102
|
}
|
|
121
|
-
|
|
122
|
-
|
|
103
|
+
const ns = concerto_core_1.ModelUtil.getNamespace(json.$class);
|
|
104
|
+
const type = concerto_core_1.ModelUtil.getShortName(json.$class);
|
|
123
105
|
if (ns === markdown_common_1.TemplateMarkModel.NAMESPACE) {
|
|
124
|
-
json.$class =
|
|
106
|
+
json.$class = `${markdown_common_1.CiceroMarkModel.NAMESPACE}.${type.substring(0, type.length - 'Definition'.length)}`;
|
|
125
107
|
}
|
|
126
108
|
return json;
|
|
127
109
|
}
|
|
@@ -130,77 +112,69 @@ exports.makeCiceroMark = makeCiceroMark;
|
|
|
130
112
|
* A node compiler that allows code to run on node enter, exit and
|
|
131
113
|
* with a generate method to generate code for the node.
|
|
132
114
|
*/
|
|
133
|
-
|
|
134
|
-
|
|
115
|
+
class AbstractComplexCompiler {
|
|
116
|
+
constructor(leaf) {
|
|
135
117
|
this.leaf = leaf;
|
|
136
118
|
}
|
|
137
|
-
|
|
119
|
+
isLeaf() {
|
|
138
120
|
return this.leaf;
|
|
139
|
-
}
|
|
140
|
-
|
|
121
|
+
}
|
|
122
|
+
enter(fw, level, templateMarkNode) {
|
|
141
123
|
writeDebug(fw, level, templateMarkNode);
|
|
142
124
|
writeOpenNodeScope(fw, level);
|
|
143
|
-
}
|
|
125
|
+
}
|
|
144
126
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
145
|
-
|
|
127
|
+
exit(fw, level) {
|
|
146
128
|
writeCloseNodeScope(fw, level);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
}());
|
|
129
|
+
}
|
|
130
|
+
}
|
|
150
131
|
exports.AbstractComplexCompiler = AbstractComplexCompiler;
|
|
151
132
|
/**
|
|
152
133
|
* A node compiler that allows a JSON node to be constructed from
|
|
153
134
|
* the data in a templatemark node.
|
|
154
135
|
*/
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
return _super.call(this, leaf) || this;
|
|
136
|
+
class AbstractSimpleCompiler extends AbstractComplexCompiler {
|
|
137
|
+
constructor(leaf) {
|
|
138
|
+
super(leaf);
|
|
159
139
|
}
|
|
160
|
-
|
|
161
|
-
|
|
140
|
+
generate(fw, level, templateMarkNode) {
|
|
141
|
+
const node = this.getNode(templateMarkNode);
|
|
162
142
|
if (this.isLeaf()) {
|
|
163
143
|
node.nodes = []; // we are a leaf node, null out child nodes
|
|
164
144
|
}
|
|
165
145
|
writeOpenGenerateScope(fw, level);
|
|
166
|
-
fw.writeLine(level,
|
|
146
|
+
fw.writeLine(level, `return ${JSON.stringify(node)} as ${getTypeScriptType(node.$class)};`);
|
|
167
147
|
writeCloseGenerateScope(fw, level);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
}(AbstractComplexCompiler));
|
|
148
|
+
}
|
|
149
|
+
}
|
|
171
150
|
exports.AbstractSimpleCompiler = AbstractSimpleCompiler;
|
|
172
151
|
/**
|
|
173
152
|
* PassThroughNode simply maps data from TemplateMark to
|
|
174
153
|
* CiceroMark, updating namespaces but otherwise leaving
|
|
175
154
|
* the data alone.
|
|
176
155
|
*/
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
return _super.call(this, leaf) || this;
|
|
156
|
+
class PassThrough extends AbstractSimpleCompiler {
|
|
157
|
+
constructor(leaf) {
|
|
158
|
+
super(leaf);
|
|
181
159
|
}
|
|
182
|
-
|
|
160
|
+
getNode(templateMarkNode) {
|
|
183
161
|
return makeCiceroMark(templateMarkNode);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
}(AbstractSimpleCompiler));
|
|
162
|
+
}
|
|
163
|
+
}
|
|
187
164
|
exports.PassThrough = PassThrough;
|
|
188
165
|
/**
|
|
189
166
|
* Ignore doesn't write any output for a node type
|
|
190
167
|
*/
|
|
191
|
-
|
|
192
|
-
function Ignore() {
|
|
193
|
-
}
|
|
168
|
+
class Ignore {
|
|
194
169
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
195
|
-
|
|
196
|
-
}
|
|
170
|
+
enter(fw, level, templateMarkNode) {
|
|
171
|
+
}
|
|
197
172
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
198
|
-
|
|
199
|
-
}
|
|
173
|
+
generate(fw, level, templateMarkNode) {
|
|
174
|
+
}
|
|
200
175
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
201
|
-
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
}());
|
|
176
|
+
exit(fw, level, templateMarkNode) {
|
|
177
|
+
}
|
|
178
|
+
}
|
|
205
179
|
exports.Ignore = Ignore;
|
|
206
180
|
//# sourceMappingURL=Common.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Common.js","sourceRoot":"","sources":["../../src/compilers/Common.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Common.js","sourceRoot":"","sources":["../../src/compilers/Common.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FileWriter } from '@accordproject/concerto-util';
|
|
2
|
-
import { IConditionalDefinition } from '../model-gen/org.accordproject.templatemark@0.
|
|
2
|
+
import { IConditionalDefinition } from '../model-gen/org.accordproject.templatemark@0.5.0';
|
|
3
3
|
import { AbstractComplexCompiler } from './Common';
|
|
4
4
|
interface INamedConditionalDefinition extends IConditionalDefinition {
|
|
5
5
|
readonly functionName: string;
|
|
@@ -1,53 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
3
|
exports.Conditional = void 0;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return _super.call(this, false) || this;
|
|
4
|
+
const markdown_common_1 = require("@accordproject/markdown-common");
|
|
5
|
+
const Common_1 = require("./Common");
|
|
6
|
+
class Conditional extends Common_1.AbstractComplexCompiler {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(false);
|
|
25
9
|
}
|
|
26
|
-
|
|
27
|
-
|
|
10
|
+
generate(fw, level, templateMarkNode) {
|
|
11
|
+
const clone = (0, Common_1.makeCiceroMark)(templateMarkNode, true);
|
|
28
12
|
delete clone.condition;
|
|
29
13
|
delete clone.dependencies;
|
|
30
14
|
delete clone.functionName;
|
|
31
15
|
clone.isTrue = true;
|
|
32
16
|
(0, Common_1.writeOpenGenerateScope)(fw, level);
|
|
33
17
|
if (templateMarkNode.condition) {
|
|
34
|
-
fw.writeLine(level,
|
|
18
|
+
fw.writeLine(level, `const isTrue:boolean = UserCode.${templateMarkNode.functionName}(data,library,options)`);
|
|
35
19
|
}
|
|
36
20
|
else {
|
|
37
21
|
(0, Common_1.writeOpenDataScope)(fw, level, templateMarkNode.name);
|
|
38
22
|
fw.writeLine(level, 'const isTrue:boolean = Runtime.peek($data);');
|
|
39
23
|
(0, Common_1.writeCloseDataScope)(fw, level);
|
|
40
24
|
}
|
|
41
|
-
fw.writeLine(level,
|
|
25
|
+
fw.writeLine(level, `const curNode = ${JSON.stringify(clone)} as ${(0, Common_1.getTypeScriptType)(templateMarkNode.$class)};`);
|
|
42
26
|
fw.writeLine(level, '(curNode as CiceroMark.IConditional).isTrue = isTrue;');
|
|
43
27
|
fw.writeLine(level, 'return curNode;');
|
|
44
28
|
(0, Common_1.writeCloseGenerateScope)(fw, level);
|
|
45
29
|
delete templateMarkNode.condition;
|
|
46
30
|
delete templateMarkNode.whenTrue;
|
|
47
31
|
delete templateMarkNode.whenFalse;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return Conditional;
|
|
51
|
-
}(Common_1.AbstractComplexCompiler));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
52
34
|
exports.Conditional = Conditional;
|
|
35
|
+
Conditional.TYPE = `${markdown_common_1.TemplateMarkModel.NAMESPACE}.ConditionalDefinition`;
|
|
53
36
|
//# sourceMappingURL=Conditional.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Conditional.js","sourceRoot":"","sources":["../../src/compilers/Conditional.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Conditional.js","sourceRoot":"","sources":["../../src/compilers/Conditional.ts"],"names":[],"mappings":";;;AAcA,oEAAmE;AAGnE,qCAAgL;AAMhL,MAAa,WAAY,SAAQ,gCAAuB;IAEpD;QACI,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IACD,QAAQ,CAAC,EAAa,EAAE,KAAY,EAAE,gBAA4C;QAC9E,MAAM,KAAK,GAAG,IAAA,uBAAc,EAAC,gBAAgB,EAAE,IAAI,CAAiB,CAAC;QACrE,OAAQ,KAAa,CAAC,SAAS,CAAC;QAChC,OAAQ,KAAa,CAAC,YAAY,CAAC;QACnC,OAAQ,KAAa,CAAC,YAAY,CAAC;QACnC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,IAAA,+BAAsB,EAAC,EAAE,EAAC,KAAK,CAAC,CAAC;QACjC,IAAG,gBAAgB,CAAC,SAAS,EAAE;YAC3B,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,mCAAmC,gBAAgB,CAAC,YAAY,wBAAwB,CAAC,CAAC;SACjH;aACI;YACD,IAAA,2BAAkB,EAAC,EAAE,EAAC,KAAK,EAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACnD,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,6CAA6C,CAAC,CAAC;YACnE,IAAA,4BAAmB,EAAC,EAAE,EAAC,KAAK,CAAC,CAAC;SACjC;QACD,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,mBAAmB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,IAAA,0BAAiB,EAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClH,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,uDAAuD,CAAC,CAAC;QAC7E,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QACvC,IAAA,gCAAuB,EAAC,EAAE,EAAC,KAAK,CAAC,CAAC;QAClC,OAAO,gBAAgB,CAAC,SAAS,CAAC;QAClC,OAAQ,gBAAwB,CAAC,QAAQ,CAAC;QAC1C,OAAQ,gBAAwB,CAAC,SAAS,CAAC;IAE/C,CAAC;;AA5BL,kCA6BC;AA5BU,gBAAI,GAAG,GAAG,mCAAiB,CAAC,SAAS,wBAAwB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IContract } from '../model-gen/org.accordproject.ciceromark@0.6.0';
|
|
2
|
-
import { IContractDefinition } from '../model-gen/org.accordproject.templatemark@0.
|
|
2
|
+
import { IContractDefinition } from '../model-gen/org.accordproject.templatemark@0.5.0';
|
|
3
3
|
import { AbstractSimpleCompiler } from './Common';
|
|
4
4
|
export declare class ContractDefinition extends AbstractSimpleCompiler {
|
|
5
5
|
static TYPE: string;
|