@accordproject/template-engine 1.0.19 → 1.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Common.js +9 -9
- package/dist/Common.js.map +1 -1
- package/dist/TemplateMarkInterpreter.js +113 -151
- package/dist/TemplateMarkInterpreter.js.map +1 -1
- package/dist/TemplateMarkToJavaScriptCompiler.js +31 -24
- package/dist/TemplateMarkToJavaScriptCompiler.js.map +1 -1
- package/dist/TemplateMarkToTypeScriptCompiler.js +90 -92
- package/dist/TemplateMarkToTypeScriptCompiler.js.map +1 -1
- package/dist/TypeScriptCompilationContext.js +29 -22
- package/dist/TypeScriptCompilationContext.js.map +1 -1
- package/dist/TypeScriptRuntime.d.ts +1 -0
- package/dist/TypeScriptRuntime.js +24 -12
- package/dist/TypeScriptRuntime.js.map +1 -1
- package/dist/TypeScriptToJavaScriptCompiler.js +18 -16
- package/dist/TypeScriptToJavaScriptCompiler.js.map +1 -1
- package/dist/compilers/Clause.d.ts +1 -1
- package/dist/compilers/Clause.js +18 -35
- package/dist/compilers/Clause.js.map +1 -1
- package/dist/compilers/Common.js +55 -80
- package/dist/compilers/Common.js.map +1 -1
- package/dist/compilers/Conditional.d.ts +1 -1
- package/dist/compilers/Conditional.js +12 -29
- package/dist/compilers/Conditional.js.map +1 -1
- package/dist/compilers/ContractDefinition.d.ts +1 -1
- package/dist/compilers/ContractDefinition.js +10 -27
- package/dist/compilers/ContractDefinition.js.map +1 -1
- package/dist/compilers/EnumVariable.d.ts +1 -1
- package/dist/compilers/EnumVariable.js +12 -29
- package/dist/compilers/EnumVariable.js.map +1 -1
- package/dist/compilers/FormattedVariable.d.ts +1 -1
- package/dist/compilers/FormattedVariable.js +14 -31
- package/dist/compilers/FormattedVariable.js.map +1 -1
- package/dist/compilers/Formula.d.ts +1 -1
- package/dist/compilers/Formula.js +14 -31
- package/dist/compilers/Formula.js.map +1 -1
- package/dist/compilers/Join.d.ts +1 -1
- package/dist/compilers/Join.js +12 -28
- package/dist/compilers/Join.js.map +1 -1
- package/dist/compilers/ListBlock.d.ts +1 -1
- package/dist/compilers/ListBlock.js +17 -35
- package/dist/compilers/ListBlock.js.map +1 -1
- package/dist/compilers/NodeCompilers.js +44 -44
- package/dist/compilers/NodeCompilers.js.map +1 -1
- package/dist/compilers/Optional.d.ts +1 -1
- package/dist/compilers/Optional.js +17 -34
- package/dist/compilers/Optional.js.map +1 -1
- package/dist/compilers/Variable.d.ts +1 -1
- package/dist/compilers/Variable.js +12 -29
- package/dist/compilers/Variable.js.map +1 -1
- package/dist/compilers/With.d.ts +1 -1
- package/dist/compilers/With.js +13 -30
- package/dist/compilers/With.js.map +1 -1
- package/dist/drafting/DateTime/index.js +3 -3
- package/dist/drafting/DateTime/index.js.map +1 -1
- package/dist/drafting/Double/format.js +5 -5
- package/dist/drafting/Double/format.js.map +1 -1
- package/dist/drafting/Double/index.js +2 -2
- package/dist/drafting/Double/index.js.map +1 -1
- package/dist/drafting/Integer/format.js +3 -3
- package/dist/drafting/Integer/format.js.map +1 -1
- package/dist/drafting/Integer/index.js +2 -2
- package/dist/drafting/Integer/index.js.map +1 -1
- package/dist/drafting/Long/index.js +2 -2
- package/dist/drafting/Long/index.js.map +1 -1
- package/dist/drafting/MonetaryAmount/index.js +4 -4
- package/dist/drafting/MonetaryAmount/index.js.map +1 -1
- package/dist/drafting/index.js +7 -7
- package/dist/drafting/index.js.map +1 -1
- package/dist/model-gen/concerto.d.ts +13 -0
- package/dist/model-gen/concerto.js +5 -0
- package/dist/model-gen/concerto.js.map +1 -0
- package/dist/model-gen/concerto.metamodel@1.0.0.d.ts +24 -1
- package/dist/model-gen/concerto@1.0.0.d.ts +3 -2
- package/dist/model-gen/org.accordproject.commonmark@0.5.0.d.ts +2 -2
- package/dist/model-gen/{org.accordproject.templatemark@0.4.0.d.ts → org.accordproject.templatemark@0.5.0.d.ts} +5 -1
- package/dist/model-gen/{org.accordproject.templatemark@0.4.0.js → org.accordproject.templatemark@0.5.0.js} +3 -2
- package/dist/model-gen/org.accordproject.templatemark@0.5.0.js.map +1 -0
- package/dist/runtime/runtime.d.ts +1 -1
- package/dist/runtime/runtime.js +1 -1
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime.tgz +0 -0
- package/package.json +8 -8
- package/dist/model-gen/org.accordproject.templatemark@0.4.0.js.map +0 -1
|
@@ -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) {
|
|
19
|
+
if (joinDef.separator) {
|
|
20
|
+
return data.join(joinDef.separator);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
const formatter = new Intl.ListFormat(joinDef.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;AAEpB,SAAgB,QAAQ,CAAC,IAAkB,EAAE,OAAW;IACpD,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,EACjD;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,now)`);
|
|
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,oBAAoB,CAAC,CAAC;SAC7G;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,26 @@
|
|
|
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,
|
|
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()}';`);
|
|
30
15
|
fw.writeLine(level, 'import dayjs from \'dayjs\';');
|
|
31
16
|
fw.writeLine(level, 'import * as UserCode from \'./usercode\';');
|
|
32
|
-
fw.writeLine(level,
|
|
33
|
-
fw.writeLine(level,
|
|
17
|
+
fw.writeLine(level, `import { getDrafter as $getDrafter } from './${exports.RUNTIME_DIR}/drafting';`);
|
|
18
|
+
fw.writeLine(level, `import * as Runtime from './${exports.RUNTIME_DIR}/TypeScriptRuntime';`);
|
|
34
19
|
}
|
|
35
20
|
exports.writeImports = writeImports;
|
|
36
21
|
function writeProlog(fw, level, templateClass) {
|
|
37
|
-
fw.writeLine(level,
|
|
38
|
-
fw.writeLine(level,
|
|
22
|
+
fw.writeLine(level, `export function generator(data:TemplateModel.I${templateClass.getName()}, library:any, now:dayjs.Dayjs) : CommonMark.IDocument {`);
|
|
23
|
+
fw.writeLine(level, `const docNode = {$class: '${markdown_common_1.CommonMarkModel.NAMESPACE}.Document', xmlns: '${markdown_common_1.CommonMarkModel.NAMESPACE}', nodes: []} as CommonMark.INode;`);
|
|
39
24
|
fw.writeLine(level, 'const $nodes:CommonMark.INode[] = [];'); // the stack of output CiceroMark nodes
|
|
40
25
|
fw.writeLine(level, 'const $data:any[] = [];'); // the stack of 'this' used for data access
|
|
41
26
|
fw.writeLine(level, 'let $result:any = docNode;'); // document root, or the return value
|
|
@@ -70,9 +55,8 @@ function writeCloseNodeScope(fw, level) {
|
|
|
70
55
|
}
|
|
71
56
|
exports.writeCloseNodeScope = writeCloseNodeScope;
|
|
72
57
|
// 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, "));"));
|
|
58
|
+
function writeOpenDataScope(fw, level, name, allowUndefined = false) {
|
|
59
|
+
fw.writeLine(level, `Runtime.push($data, Runtime.peekProperty($data, '${name}', ${allowUndefined}));`);
|
|
76
60
|
}
|
|
77
61
|
exports.writeOpenDataScope = writeOpenDataScope;
|
|
78
62
|
// closes the scope, popping the stack and setting $curNode
|
|
@@ -81,19 +65,19 @@ function writeCloseDataScope(fw, level) {
|
|
|
81
65
|
}
|
|
82
66
|
exports.writeCloseDataScope = writeCloseDataScope;
|
|
83
67
|
function getTypeScriptType(ctoFqn) {
|
|
84
|
-
|
|
85
|
-
|
|
68
|
+
const ns = concerto_core_1.ModelUtil.getNamespace(ctoFqn);
|
|
69
|
+
const type = concerto_core_1.ModelUtil.getShortName(ctoFqn);
|
|
86
70
|
if (ns === markdown_common_1.CommonMarkModel.NAMESPACE) {
|
|
87
|
-
return
|
|
71
|
+
return `CommonMark.I${type}`;
|
|
88
72
|
}
|
|
89
73
|
else if (ns === markdown_common_1.CiceroMarkModel.NAMESPACE) {
|
|
90
|
-
return
|
|
74
|
+
return `CiceroMark.I${type}`;
|
|
91
75
|
}
|
|
92
76
|
else if (ns === markdown_common_1.TemplateMarkModel.NAMESPACE) {
|
|
93
|
-
return
|
|
77
|
+
return `CiceroMark.I${type.substring(0, type.length - 'Definition'.length)}`;
|
|
94
78
|
}
|
|
95
79
|
else {
|
|
96
|
-
throw new Error(
|
|
80
|
+
throw new Error(`No type mapping for ${ctoFqn}`);
|
|
97
81
|
}
|
|
98
82
|
}
|
|
99
83
|
exports.getTypeScriptType = getTypeScriptType;
|
|
@@ -103,25 +87,24 @@ exports.getTypeScriptType = getTypeScriptType;
|
|
|
103
87
|
* @param {boolean} deep when deep is false (the default) child nodes are not copied
|
|
104
88
|
* @returns {INode} the mapped node
|
|
105
89
|
*/
|
|
106
|
-
function makeCiceroMark(templateMarkNode, deep) {
|
|
107
|
-
if (deep === void 0) { deep = false; }
|
|
90
|
+
function makeCiceroMark(templateMarkNode, deep = false) {
|
|
108
91
|
if (!templateMarkNode.$class) {
|
|
109
92
|
throw new Error('Not a concerto type.');
|
|
110
93
|
}
|
|
111
|
-
|
|
94
|
+
const json = JSON.parse(JSON.stringify(templateMarkNode));
|
|
112
95
|
delete json.elementType;
|
|
113
96
|
if (!deep) {
|
|
114
97
|
delete json.nodes;
|
|
115
98
|
}
|
|
116
99
|
else {
|
|
117
100
|
if (json.nodes) {
|
|
118
|
-
json.nodes = json.nodes.map(
|
|
101
|
+
json.nodes = json.nodes.map((n) => makeCiceroMark(n, deep));
|
|
119
102
|
}
|
|
120
103
|
}
|
|
121
|
-
|
|
122
|
-
|
|
104
|
+
const ns = concerto_core_1.ModelUtil.getNamespace(json.$class);
|
|
105
|
+
const type = concerto_core_1.ModelUtil.getShortName(json.$class);
|
|
123
106
|
if (ns === markdown_common_1.TemplateMarkModel.NAMESPACE) {
|
|
124
|
-
json.$class =
|
|
107
|
+
json.$class = `${markdown_common_1.CiceroMarkModel.NAMESPACE}.${type.substring(0, type.length - 'Definition'.length)}`;
|
|
125
108
|
}
|
|
126
109
|
return json;
|
|
127
110
|
}
|
|
@@ -130,77 +113,69 @@ exports.makeCiceroMark = makeCiceroMark;
|
|
|
130
113
|
* A node compiler that allows code to run on node enter, exit and
|
|
131
114
|
* with a generate method to generate code for the node.
|
|
132
115
|
*/
|
|
133
|
-
|
|
134
|
-
|
|
116
|
+
class AbstractComplexCompiler {
|
|
117
|
+
constructor(leaf) {
|
|
135
118
|
this.leaf = leaf;
|
|
136
119
|
}
|
|
137
|
-
|
|
120
|
+
isLeaf() {
|
|
138
121
|
return this.leaf;
|
|
139
|
-
}
|
|
140
|
-
|
|
122
|
+
}
|
|
123
|
+
enter(fw, level, templateMarkNode) {
|
|
141
124
|
writeDebug(fw, level, templateMarkNode);
|
|
142
125
|
writeOpenNodeScope(fw, level);
|
|
143
|
-
}
|
|
126
|
+
}
|
|
144
127
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
145
|
-
|
|
128
|
+
exit(fw, level) {
|
|
146
129
|
writeCloseNodeScope(fw, level);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
}());
|
|
130
|
+
}
|
|
131
|
+
}
|
|
150
132
|
exports.AbstractComplexCompiler = AbstractComplexCompiler;
|
|
151
133
|
/**
|
|
152
134
|
* A node compiler that allows a JSON node to be constructed from
|
|
153
135
|
* the data in a templatemark node.
|
|
154
136
|
*/
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
return _super.call(this, leaf) || this;
|
|
137
|
+
class AbstractSimpleCompiler extends AbstractComplexCompiler {
|
|
138
|
+
constructor(leaf) {
|
|
139
|
+
super(leaf);
|
|
159
140
|
}
|
|
160
|
-
|
|
161
|
-
|
|
141
|
+
generate(fw, level, templateMarkNode) {
|
|
142
|
+
const node = this.getNode(templateMarkNode);
|
|
162
143
|
if (this.isLeaf()) {
|
|
163
144
|
node.nodes = []; // we are a leaf node, null out child nodes
|
|
164
145
|
}
|
|
165
146
|
writeOpenGenerateScope(fw, level);
|
|
166
|
-
fw.writeLine(level,
|
|
147
|
+
fw.writeLine(level, `return ${JSON.stringify(node)} as ${getTypeScriptType(node.$class)};`);
|
|
167
148
|
writeCloseGenerateScope(fw, level);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
}(AbstractComplexCompiler));
|
|
149
|
+
}
|
|
150
|
+
}
|
|
171
151
|
exports.AbstractSimpleCompiler = AbstractSimpleCompiler;
|
|
172
152
|
/**
|
|
173
153
|
* PassThroughNode simply maps data from TemplateMark to
|
|
174
154
|
* CiceroMark, updating namespaces but otherwise leaving
|
|
175
155
|
* the data alone.
|
|
176
156
|
*/
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
return _super.call(this, leaf) || this;
|
|
157
|
+
class PassThrough extends AbstractSimpleCompiler {
|
|
158
|
+
constructor(leaf) {
|
|
159
|
+
super(leaf);
|
|
181
160
|
}
|
|
182
|
-
|
|
161
|
+
getNode(templateMarkNode) {
|
|
183
162
|
return makeCiceroMark(templateMarkNode);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
}(AbstractSimpleCompiler));
|
|
163
|
+
}
|
|
164
|
+
}
|
|
187
165
|
exports.PassThrough = PassThrough;
|
|
188
166
|
/**
|
|
189
167
|
* Ignore doesn't write any output for a node type
|
|
190
168
|
*/
|
|
191
|
-
|
|
192
|
-
function Ignore() {
|
|
193
|
-
}
|
|
169
|
+
class Ignore {
|
|
194
170
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
195
|
-
|
|
196
|
-
}
|
|
171
|
+
enter(fw, level, templateMarkNode) {
|
|
172
|
+
}
|
|
197
173
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
198
|
-
|
|
199
|
-
}
|
|
174
|
+
generate(fw, level, templateMarkNode) {
|
|
175
|
+
}
|
|
200
176
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
201
|
-
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
}());
|
|
177
|
+
exit(fw, level, templateMarkNode) {
|
|
178
|
+
}
|
|
179
|
+
}
|
|
205
180
|
exports.Ignore = Ignore;
|
|
206
181
|
//# 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,now)`);
|
|
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,oBAAoB,CAAC,CAAC;SAC7G;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;
|