@accordproject/template-engine 3.1.0 → 4.2.1
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/README.md +41 -0
- package/lib/JavaScriptEvaluator.d.ts +71 -0
- package/lib/JavaScriptEvaluator.js +245 -0
- package/lib/JavaScriptEvaluator.js.map +1 -0
- package/lib/TemplateArchiveProcessor.d.ts +151 -0
- package/lib/TemplateArchiveProcessor.js +447 -0
- package/lib/TemplateArchiveProcessor.js.map +1 -0
- package/lib/TemplateMarkInterpreter.d.ts +34 -0
- package/lib/TemplateMarkInterpreter.js +689 -0
- package/lib/TemplateMarkInterpreter.js.map +1 -0
- package/lib/TemplateMarkNodes.d.ts +19 -0
- package/lib/TemplateMarkNodes.js +45 -0
- package/lib/TemplateMarkNodes.js.map +1 -0
- package/lib/TemplateMarkToJavaScriptCompiler.d.ts +20 -0
- package/lib/TemplateMarkToJavaScriptCompiler.js +99 -0
- package/lib/TemplateMarkToJavaScriptCompiler.js.map +1 -0
- package/lib/TypeScriptCompilationContext.d.ts +42 -0
- package/lib/TypeScriptCompilationContext.js +170 -0
- package/lib/TypeScriptCompilationContext.js.map +1 -0
- package/lib/TypeScriptRuntime.d.ts +17 -0
- package/lib/TypeScriptRuntime.js +84 -0
- package/lib/TypeScriptRuntime.js.map +1 -0
- package/lib/TypeScriptToJavaScriptCompiler.d.ts +11 -0
- package/lib/TypeScriptToJavaScriptCompiler.js +169 -0
- package/lib/TypeScriptToJavaScriptCompiler.js.map +1 -0
- package/lib/drafting/Boolean/index.d.ts +6 -0
- package/lib/drafting/Boolean/index.js +30 -0
- package/lib/drafting/Boolean/index.js.map +1 -0
- package/lib/drafting/DateTime/index.d.ts +8 -0
- package/lib/drafting/DateTime/index.js +33 -0
- package/lib/drafting/DateTime/index.js.map +1 -0
- package/lib/drafting/Double/format.d.ts +14 -0
- package/lib/drafting/Double/format.js +62 -0
- package/lib/drafting/Double/format.js.map +1 -0
- package/lib/drafting/Double/index.d.ts +8 -0
- package/lib/drafting/Double/index.js +33 -0
- package/lib/drafting/Double/index.js.map +1 -0
- package/lib/drafting/DraftFormat.d.ts +5 -0
- package/lib/drafting/DraftFormat.js +18 -0
- package/lib/drafting/DraftFormat.js.map +1 -0
- package/lib/drafting/Duration/index.d.ts +6 -0
- package/lib/drafting/Duration/index.js +39 -0
- package/lib/drafting/Duration/index.js.map +1 -0
- package/lib/drafting/Integer/format.d.ts +14 -0
- package/lib/drafting/Integer/format.js +52 -0
- package/lib/drafting/Integer/format.js.map +1 -0
- package/lib/drafting/Integer/index.d.ts +8 -0
- package/lib/drafting/Integer/index.js +33 -0
- package/lib/drafting/Integer/index.js.map +1 -0
- package/lib/drafting/Long/index.d.ts +8 -0
- package/lib/drafting/Long/index.js +33 -0
- package/lib/drafting/Long/index.js.map +1 -0
- package/lib/drafting/MonetaryAmount/currencycode.d.ts +35 -0
- package/lib/drafting/MonetaryAmount/currencycode.js +53 -0
- package/lib/drafting/MonetaryAmount/currencycode.js.map +1 -0
- package/lib/drafting/MonetaryAmount/formatTokens.d.ts +13 -0
- package/lib/drafting/MonetaryAmount/formatTokens.js +44 -0
- package/lib/drafting/MonetaryAmount/formatTokens.js.map +1 -0
- package/lib/drafting/MonetaryAmount/index.d.ts +13 -0
- package/lib/drafting/MonetaryAmount/index.js +51 -0
- package/lib/drafting/MonetaryAmount/index.js.map +1 -0
- package/lib/drafting/PreciseAmount/index.d.ts +17 -0
- package/lib/drafting/PreciseAmount/index.js +113 -0
- package/lib/drafting/PreciseAmount/index.js.map +1 -0
- package/lib/drafting/String/index.d.ts +6 -0
- package/lib/drafting/String/index.js +25 -0
- package/lib/drafting/String/index.js.map +1 -0
- package/lib/drafting/index.d.ts +2 -0
- package/lib/drafting/index.js +63 -0
- package/lib/drafting/index.js.map +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.js +42 -0
- package/lib/index.js.map +1 -0
- package/lib/llm/LLMConfig.d.ts +121 -0
- package/lib/llm/LLMConfig.js +30 -0
- package/lib/llm/LLMConfig.js.map +1 -0
- package/lib/llm/LLMExecutor.d.ts +77 -0
- package/lib/llm/LLMExecutor.js +603 -0
- package/lib/llm/LLMExecutor.js.map +1 -0
- package/lib/llm/ModelManagerSchema.d.ts +14 -0
- package/lib/llm/ModelManagerSchema.js +67 -0
- package/lib/llm/ModelManagerSchema.js.map +1 -0
- package/lib/llm/Reasoners.d.ts +190 -0
- package/lib/llm/Reasoners.js +643 -0
- package/lib/llm/Reasoners.js.map +1 -0
- package/lib/model-gen/concerto.d.ts +13 -0
- package/lib/model-gen/concerto.js +4 -0
- package/lib/model-gen/concerto.js.map +1 -0
- package/lib/model-gen/concerto.metamodel@1.0.0.d.ts +196 -0
- package/lib/model-gen/concerto.metamodel@1.0.0.js +4 -0
- package/lib/model-gen/concerto.metamodel@1.0.0.js.map +1 -0
- package/lib/model-gen/concerto@1.0.0.d.ts +19 -0
- package/lib/model-gen/concerto@1.0.0.js +4 -0
- package/lib/model-gen/concerto@1.0.0.js.map +1 -0
- package/lib/model-gen/org.accordproject.ciceromark@0.6.0.d.ts +49 -0
- package/lib/model-gen/org.accordproject.ciceromark@0.6.0.js +4 -0
- package/lib/model-gen/org.accordproject.ciceromark@0.6.0.js.map +1 -0
- package/lib/model-gen/org.accordproject.commonmark@0.5.0.d.ts +89 -0
- package/lib/model-gen/org.accordproject.commonmark@0.5.0.js +4 -0
- package/lib/model-gen/org.accordproject.commonmark@0.5.0.js.map +1 -0
- package/lib/model-gen/org.accordproject.templatemark@0.5.0.d.ts +76 -0
- package/lib/model-gen/org.accordproject.templatemark@0.5.0.js +11 -0
- package/lib/model-gen/org.accordproject.templatemark@0.5.0.js.map +1 -0
- package/lib/runtime/declarations.d.ts +2 -0
- package/lib/runtime/declarations.js +21 -0
- package/lib/runtime/declarations.js.map +1 -0
- package/lib/slc/model-gen/concerto.d.ts +13 -0
- package/lib/slc/model-gen/concerto.decorator@1.0.0.d.ts +6 -0
- package/lib/slc/model-gen/concerto.decorator@1.0.0.js +5 -0
- package/lib/slc/model-gen/concerto.decorator@1.0.0.js.map +1 -0
- package/lib/slc/model-gen/concerto.js +5 -0
- package/lib/slc/model-gen/concerto.js.map +1 -0
- package/lib/slc/model-gen/concerto@1.0.0.d.ts +24 -0
- package/lib/slc/model-gen/concerto@1.0.0.js +6 -0
- package/lib/slc/model-gen/concerto@1.0.0.js.map +1 -0
- package/lib/slc/model-gen/org.accordproject.contract@0.2.0.d.ts +7 -0
- package/lib/slc/model-gen/org.accordproject.contract@0.2.0.js +5 -0
- package/lib/slc/model-gen/org.accordproject.contract@0.2.0.js.map +1 -0
- package/lib/slc/model-gen/org.accordproject.runtime@0.2.0.d.ts +15 -0
- package/lib/slc/model-gen/org.accordproject.runtime@0.2.0.js +4 -0
- package/lib/slc/model-gen/org.accordproject.runtime@0.2.0.js.map +1 -0
- package/lib/slc/model-gen/org.accordproject.time@0.3.0.d.ts +46 -0
- package/lib/slc/model-gen/org.accordproject.time@0.3.0.js +48 -0
- package/lib/slc/model-gen/org.accordproject.time@0.3.0.js.map +1 -0
- package/lib/utils.d.ts +35 -0
- package/lib/utils.js +122 -0
- package/lib/utils.js.map +1 -0
- package/lib/worker.d.ts +1 -0
- package/{dist → lib}/worker.js +12 -10
- package/lib/worker.js.map +1 -0
- package/package.json +46 -25
- package/umd/template-engine.js +13 -0
- package/umd/template-engine.js.LICENSE.txt +21 -0
- package/dist/index.d.ts +0 -186
- package/dist/index.js +0 -1275
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -1248
- package/dist/index.mjs.map +0 -1
- package/dist/worker.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateMarkInterpreter.js","sourceRoot":"","sources":["../src/TemplateMarkInterpreter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare const TEMPLATEMARK_RE: RegExp;
|
|
2
|
+
export declare const FORMULA_DEFINITION_RE: RegExp;
|
|
3
|
+
export declare const VARIABLE_DEFINITION_RE: RegExp;
|
|
4
|
+
export declare const CONDITIONAL_DEFINITION_RE: RegExp;
|
|
5
|
+
export declare const ENUM_VARIABLE_DEFINITION_RE: RegExp;
|
|
6
|
+
export declare const FORMATTED_VARIABLE_DEFINITION_RE: RegExp;
|
|
7
|
+
export declare const WITH_DEFINITION_RE: RegExp;
|
|
8
|
+
export declare const LISTBLOCK_DEFINITION_RE: RegExp;
|
|
9
|
+
export declare const JOIN_DEFINITION_RE: RegExp;
|
|
10
|
+
export declare const OPTIONAL_DEFINITION_RE: RegExp;
|
|
11
|
+
export declare const CLAUSE_DEFINITION_RE: RegExp;
|
|
12
|
+
export declare const CONTRACT_DEFINITION_RE: RegExp;
|
|
13
|
+
export declare const FOREACH_DEFINITION_RE: RegExp;
|
|
14
|
+
export type TemplateData = Record<string, unknown>;
|
|
15
|
+
/**
|
|
16
|
+
* TemplateMark nodes that implicitly change the data access scope
|
|
17
|
+
* by specifying the name of a property on the node.
|
|
18
|
+
*/
|
|
19
|
+
export declare const NAVIGATION_NODES: string[];
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License.
|
|
5
|
+
* You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
* See the License for the specific language governing permissions and
|
|
13
|
+
* limitations under the License.
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.NAVIGATION_NODES = exports.FOREACH_DEFINITION_RE = 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
|
+
const markdown_common_1 = require("@accordproject/markdown-common");
|
|
18
|
+
// use to create agreementmark from templatemark
|
|
19
|
+
exports.TEMPLATEMARK_RE = /^(org\.accordproject\.templatemark)@(.+)\.(\w+)Definition$/;
|
|
20
|
+
exports.FORMULA_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.FormulaDefinition$/;
|
|
21
|
+
exports.VARIABLE_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.VariableDefinition$/;
|
|
22
|
+
exports.CONDITIONAL_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.ConditionalDefinition$/;
|
|
23
|
+
exports.ENUM_VARIABLE_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.EnumVariableDefinition$/;
|
|
24
|
+
exports.FORMATTED_VARIABLE_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.FormattedVariableDefinition$/;
|
|
25
|
+
exports.WITH_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.WithDefinition$/;
|
|
26
|
+
exports.LISTBLOCK_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.ListBlockDefinition$/;
|
|
27
|
+
exports.JOIN_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.JoinDefinition$/;
|
|
28
|
+
exports.OPTIONAL_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.OptionalDefinition$/;
|
|
29
|
+
exports.CLAUSE_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.ClauseDefinition$/;
|
|
30
|
+
exports.CONTRACT_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.ContractDefinition$/;
|
|
31
|
+
exports.FOREACH_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.ForeachDefinition$/;
|
|
32
|
+
/**
|
|
33
|
+
* TemplateMark nodes that implicitly change the data access scope
|
|
34
|
+
* by specifying the name of a property on the node.
|
|
35
|
+
*/
|
|
36
|
+
exports.NAVIGATION_NODES = [
|
|
37
|
+
`${markdown_common_1.TemplateMarkModel.NAMESPACE}.ListBlockDefinition`,
|
|
38
|
+
`${markdown_common_1.TemplateMarkModel.NAMESPACE}.WithDefinition`,
|
|
39
|
+
`${markdown_common_1.TemplateMarkModel.NAMESPACE}.JoinDefinition`,
|
|
40
|
+
`${markdown_common_1.TemplateMarkModel.NAMESPACE}.OptionalDefinition`,
|
|
41
|
+
`${markdown_common_1.TemplateMarkModel.NAMESPACE}.ClauseDefinition`,
|
|
42
|
+
`${markdown_common_1.TemplateMarkModel.NAMESPACE}.ContractDefinition`,
|
|
43
|
+
`${markdown_common_1.TemplateMarkModel.NAMESPACE}.ForeachBlockDefinition`
|
|
44
|
+
];
|
|
45
|
+
//# sourceMappingURL=TemplateMarkNodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateMarkNodes.js","sourceRoot":"","sources":["../src/TemplateMarkNodes.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,oEAAmE;AAEnE,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;AACzF,QAAA,qBAAqB,GAAG,8DAA8D,CAAC;AAIpG;;;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;IACjD,GAAG,mCAAiB,CAAC,SAAS,qBAAqB;IACnD,GAAG,mCAAiB,CAAC,SAAS,yBAAyB;CAC1D,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ClassDeclaration, ModelManager } from '@accordproject/concerto-core';
|
|
2
|
+
import { TypeScriptToJavaScriptCompiler } from './TypeScriptToJavaScriptCompiler';
|
|
3
|
+
import { TwoSlashReturn } from '@typescript/twoslash';
|
|
4
|
+
export type CompilerError = {
|
|
5
|
+
nodeId: string;
|
|
6
|
+
code: string;
|
|
7
|
+
errors: TwoSlashReturn['errors'];
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Compiles all the Typescript nodes in a TemplateMark JSON
|
|
11
|
+
* to ES_2020 and returns a modified TemplateMark JSON.
|
|
12
|
+
*/
|
|
13
|
+
export declare class TemplateMarkToJavaScriptCompiler {
|
|
14
|
+
modelManager: ModelManager;
|
|
15
|
+
compiler: TypeScriptToJavaScriptCompiler;
|
|
16
|
+
templateClass: ClassDeclaration;
|
|
17
|
+
constructor(modelManager: ModelManager, templateConceptFqn?: string);
|
|
18
|
+
initialize(): Promise<void>;
|
|
19
|
+
compile(templateJson: any): any;
|
|
20
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License.
|
|
5
|
+
* You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
* See the License for the specific language governing permissions and
|
|
13
|
+
* limitations under the License.
|
|
14
|
+
*/
|
|
15
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
16
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
17
|
+
};
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.TemplateMarkToJavaScriptCompiler = void 0;
|
|
20
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
21
|
+
const traverse_1 = __importDefault(require("traverse"));
|
|
22
|
+
const markdown_common_1 = require("@accordproject/markdown-common");
|
|
23
|
+
const TypeScriptToJavaScriptCompiler_1 = require("./TypeScriptToJavaScriptCompiler");
|
|
24
|
+
const org_accordproject_templatemark_0_5_0_1 = require("./model-gen/org.accordproject.templatemark@0.5.0");
|
|
25
|
+
const utils_1 = require("./utils");
|
|
26
|
+
const CODE_NODES = [
|
|
27
|
+
`${markdown_common_1.TemplateMarkModel.NAMESPACE}.FormulaDefinition`,
|
|
28
|
+
`${markdown_common_1.TemplateMarkModel.NAMESPACE}.ConditionalDefinition`,
|
|
29
|
+
`${markdown_common_1.TemplateMarkModel.NAMESPACE}.ClauseDefinition`,
|
|
30
|
+
];
|
|
31
|
+
function checkCode(code) {
|
|
32
|
+
if (code.type !== org_accordproject_templatemark_0_5_0_1.CodeType.TYPESCRIPT) {
|
|
33
|
+
throw new Error(`Cannot compile ${code.contents} as it is not Typescript.`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Compiles all the Typescript nodes in a TemplateMark JSON
|
|
38
|
+
* to ES_2020 and returns a modified TemplateMark JSON.
|
|
39
|
+
*/
|
|
40
|
+
class TemplateMarkToJavaScriptCompiler {
|
|
41
|
+
constructor(modelManager, templateConceptFqn) {
|
|
42
|
+
this.modelManager = modelManager;
|
|
43
|
+
this.compiler = new TypeScriptToJavaScriptCompiler_1.TypeScriptToJavaScriptCompiler(modelManager, templateConceptFqn);
|
|
44
|
+
this.templateClass = (0, utils_1.getTemplateClassDeclaration)(modelManager, templateConceptFqn);
|
|
45
|
+
}
|
|
46
|
+
async initialize() {
|
|
47
|
+
await this.compiler.initialize();
|
|
48
|
+
}
|
|
49
|
+
compile(templateJson) {
|
|
50
|
+
const namedTemplateMark = (0, utils_1.nameUserCode)(templateJson);
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
52
|
+
const that = this;
|
|
53
|
+
const errors = Array();
|
|
54
|
+
const compiled = (0, traverse_1.default)(namedTemplateMark).map(function (x) {
|
|
55
|
+
if (x && CODE_NODES.includes(x.$class)) {
|
|
56
|
+
if (x.code) { // formula
|
|
57
|
+
checkCode(x.code);
|
|
58
|
+
const result = that.compiler.compile((0, utils_1.writeFunctionToString)(that.templateClass, x.name, 'any', x.code.contents));
|
|
59
|
+
if (result.errors.length === 0) {
|
|
60
|
+
x.code.contents = result.code;
|
|
61
|
+
x.code.type = org_accordproject_templatemark_0_5_0_1.CodeType.ES_2020;
|
|
62
|
+
this.update(x);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
errors.push({
|
|
66
|
+
nodeId: x.name,
|
|
67
|
+
code: x.code.contents,
|
|
68
|
+
errors: result.errors
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else if (x.condition) { // condition or clause (boolean condition)
|
|
73
|
+
checkCode(x.condition);
|
|
74
|
+
const result = that.compiler.compile((0, utils_1.writeFunctionToString)(that.templateClass, x.functionName, 'boolean', x.condition.contents));
|
|
75
|
+
if (result.errors.length === 0) {
|
|
76
|
+
x.condition.contents = result.code;
|
|
77
|
+
x.condition.type = org_accordproject_templatemark_0_5_0_1.CodeType.ES_2020;
|
|
78
|
+
this.update(x);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
errors.push({
|
|
82
|
+
nodeId: x.functionName,
|
|
83
|
+
code: x.condition.contents,
|
|
84
|
+
errors: result.errors
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
if (errors.length === 0) {
|
|
91
|
+
return compiled;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
throw errors;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.TemplateMarkToJavaScriptCompiler = TemplateMarkToJavaScriptCompiler;
|
|
99
|
+
//# sourceMappingURL=TemplateMarkToJavaScriptCompiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateMarkToJavaScriptCompiler.js","sourceRoot":"","sources":["../src/TemplateMarkToJavaScriptCompiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ClassDeclaration, ModelManager } from '@accordproject/concerto-core';
|
|
2
|
+
/**
|
|
3
|
+
* This class creates the typescript types
|
|
4
|
+
* required to compile Typescript expressions (used in
|
|
5
|
+
* formulae, conditions and clauses) to JavaScript. It uses
|
|
6
|
+
* these to create a compilation context for '@typescript/twoslash'
|
|
7
|
+
* which is used to compile the typescript code.
|
|
8
|
+
*/
|
|
9
|
+
export declare class TypeScriptCompilationContext {
|
|
10
|
+
modelManager: ModelManager;
|
|
11
|
+
templateClass: ClassDeclaration;
|
|
12
|
+
constructor(modelManager: ModelManager, templateConceptFqn?: string);
|
|
13
|
+
getTypeScriptFiles(): Record<string, string>;
|
|
14
|
+
/**
|
|
15
|
+
* Builds a TypeScript union type over the concrete types assignable to a runtime
|
|
16
|
+
* base type (the base itself, when concrete, plus its subclasses), along with the
|
|
17
|
+
* imports required to reference them. Because the base is included, using the bare
|
|
18
|
+
* base type or any subclass type-checks. A plain concept that does not extend the
|
|
19
|
+
* base is still rejected structurally where the base carries a distinguishing member
|
|
20
|
+
* (Response/Event require `$timestamp`); State carries only `$identifier`, so a
|
|
21
|
+
* concept-shaped state is admitted here and instead enforced nominally at runtime
|
|
22
|
+
* (see TemplateArchiveProcessor.assertRuntimeHierarchy). When the base type is absent
|
|
23
|
+
* the union is `never`.
|
|
24
|
+
* @param {string} baseFqn the fully-qualified name of the runtime base type
|
|
25
|
+
* @param {string} aliasPrefix a unique prefix for the imported type aliases
|
|
26
|
+
* @returns {{imports: string, union: string}} the import statements and union type
|
|
27
|
+
*/
|
|
28
|
+
private buildRuntimeUnion;
|
|
29
|
+
/**
|
|
30
|
+
* Emits the runtime SmartLegalContract declarations (IConcept, TemplateLogic, etc.)
|
|
31
|
+
* with the State / Request / Response / Event type positions bound to the model-derived
|
|
32
|
+
* Runtime* unions (the concrete base type plus its subclasses; see buildRuntimeUnion).
|
|
33
|
+
* Because the concrete base is included, using the bare base type or a subclass
|
|
34
|
+
* type-checks. Types that are structurally incompatible with the base still fail here
|
|
35
|
+
* (Response/Event require `$timestamp`); State carries only `$identifier`, so a
|
|
36
|
+
* concept-shaped state type-checks and is instead enforced nominally at runtime (see
|
|
37
|
+
* TemplateArchiveProcessor.assertRuntimeHierarchy).
|
|
38
|
+
* @returns {string} the runtime declarations, as a TypeScript source string
|
|
39
|
+
*/
|
|
40
|
+
private getRuntimeDeclarations;
|
|
41
|
+
getCompilationContext(): string;
|
|
42
|
+
}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TypeScriptCompilationContext = void 0;
|
|
4
|
+
const concerto_codegen_1 = require("@accordproject/concerto-codegen");
|
|
5
|
+
const concerto_util_1 = require("@accordproject/concerto-util");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
/**
|
|
8
|
+
* This class creates the typescript types
|
|
9
|
+
* required to compile Typescript expressions (used in
|
|
10
|
+
* formulae, conditions and clauses) to JavaScript. It uses
|
|
11
|
+
* these to create a compilation context for '@typescript/twoslash'
|
|
12
|
+
* which is used to compile the typescript code.
|
|
13
|
+
*/
|
|
14
|
+
class TypeScriptCompilationContext {
|
|
15
|
+
constructor(modelManager, templateConceptFqn) {
|
|
16
|
+
this.modelManager = modelManager;
|
|
17
|
+
this.templateClass = (0, utils_1.getTemplateClassDeclaration)(this.modelManager, templateConceptFqn);
|
|
18
|
+
}
|
|
19
|
+
getTypeScriptFiles() {
|
|
20
|
+
const result = {};
|
|
21
|
+
const visitor = new concerto_codegen_1.CodeGen.TypescriptVisitor();
|
|
22
|
+
const writer = new concerto_util_1.InMemoryWriter();
|
|
23
|
+
const params = {
|
|
24
|
+
fileWriter: writer
|
|
25
|
+
};
|
|
26
|
+
this.modelManager.accept(visitor, params);
|
|
27
|
+
writer.getFilesInMemory().forEach((value, key) => {
|
|
28
|
+
result[key] = value;
|
|
29
|
+
});
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Builds a TypeScript union type over the concrete types assignable to a runtime
|
|
34
|
+
* base type (the base itself, when concrete, plus its subclasses), along with the
|
|
35
|
+
* imports required to reference them. Because the base is included, using the bare
|
|
36
|
+
* base type or any subclass type-checks. A plain concept that does not extend the
|
|
37
|
+
* base is still rejected structurally where the base carries a distinguishing member
|
|
38
|
+
* (Response/Event require `$timestamp`); State carries only `$identifier`, so a
|
|
39
|
+
* concept-shaped state is admitted here and instead enforced nominally at runtime
|
|
40
|
+
* (see TemplateArchiveProcessor.assertRuntimeHierarchy). When the base type is absent
|
|
41
|
+
* the union is `never`.
|
|
42
|
+
* @param {string} baseFqn the fully-qualified name of the runtime base type
|
|
43
|
+
* @param {string} aliasPrefix a unique prefix for the imported type aliases
|
|
44
|
+
* @returns {{imports: string, union: string}} the import statements and union type
|
|
45
|
+
*/
|
|
46
|
+
buildRuntimeUnion(baseFqn, aliasPrefix) {
|
|
47
|
+
const types = (0, utils_1.getAssignableConcreteTypes)(this.modelManager, baseFqn);
|
|
48
|
+
if (types.length === 0) {
|
|
49
|
+
return { imports: '', union: 'never' };
|
|
50
|
+
}
|
|
51
|
+
const imports = [];
|
|
52
|
+
const members = [];
|
|
53
|
+
types.forEach((decl, index) => {
|
|
54
|
+
const alias = `${aliasPrefix}${index}`;
|
|
55
|
+
imports.push(`import type { I${decl.getName()} as ${alias} } from './generated/${decl.getNamespace()}';`);
|
|
56
|
+
members.push(alias);
|
|
57
|
+
});
|
|
58
|
+
return { imports: imports.join('\n'), union: members.join(' | ') };
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Emits the runtime SmartLegalContract declarations (IConcept, TemplateLogic, etc.)
|
|
62
|
+
* with the State / Request / Response / Event type positions bound to the model-derived
|
|
63
|
+
* Runtime* unions (the concrete base type plus its subclasses; see buildRuntimeUnion).
|
|
64
|
+
* Because the concrete base is included, using the bare base type or a subclass
|
|
65
|
+
* type-checks. Types that are structurally incompatible with the base still fail here
|
|
66
|
+
* (Response/Event require `$timestamp`); State carries only `$identifier`, so a
|
|
67
|
+
* concept-shaped state type-checks and is instead enforced nominally at runtime (see
|
|
68
|
+
* TemplateArchiveProcessor.assertRuntimeHierarchy).
|
|
69
|
+
* @returns {string} the runtime declarations, as a TypeScript source string
|
|
70
|
+
*/
|
|
71
|
+
getRuntimeDeclarations() {
|
|
72
|
+
const state = this.buildRuntimeUnion(utils_1.RUNTIME_STATE_FQN, '__RtState');
|
|
73
|
+
const request = this.buildRuntimeUnion(utils_1.RUNTIME_REQUEST_FQN, '__RtRequest');
|
|
74
|
+
const response = this.buildRuntimeUnion(utils_1.RUNTIME_RESPONSE_FQN, '__RtResponse');
|
|
75
|
+
const event = this.buildRuntimeUnion(utils_1.BASE_EVENT_FQN, '__RtEvent');
|
|
76
|
+
return `
|
|
77
|
+
${state.imports}
|
|
78
|
+
${request.imports}
|
|
79
|
+
${response.imports}
|
|
80
|
+
${event.imports}
|
|
81
|
+
|
|
82
|
+
/* eslint-disable @typescript-eslint/no-empty-object-type */
|
|
83
|
+
// Runtime declarations injected by the template engine. The Runtime* unions are
|
|
84
|
+
// derived from the template's Concerto model so that the type checker enforces the
|
|
85
|
+
// runtime State / Request / Response / Event class hierarchies.
|
|
86
|
+
interface IConcept {
|
|
87
|
+
$class: string;
|
|
88
|
+
}
|
|
89
|
+
interface ITransaction extends IConcept {
|
|
90
|
+
$timestamp: Date;
|
|
91
|
+
}
|
|
92
|
+
interface IEvent extends IConcept {
|
|
93
|
+
$timestamp: Date;
|
|
94
|
+
}
|
|
95
|
+
interface IState {
|
|
96
|
+
$identifier: string;
|
|
97
|
+
}
|
|
98
|
+
interface IRequest extends ITransaction {
|
|
99
|
+
}
|
|
100
|
+
interface IResponse extends ITransaction {
|
|
101
|
+
}
|
|
102
|
+
interface IAsset extends IConcept {
|
|
103
|
+
$identifier: string;
|
|
104
|
+
}
|
|
105
|
+
interface IContract extends IAsset {
|
|
106
|
+
contractId: string;
|
|
107
|
+
}
|
|
108
|
+
interface IClause extends IAsset {
|
|
109
|
+
clauseId: string;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// The concrete types assignable to each runtime base (the base itself, when concrete,
|
|
113
|
+
// plus its subclasses; never when the base is absent). Used as the state type-parameter
|
|
114
|
+
// bound, the request parameter, the result type and the emitted event type: a type that is
|
|
115
|
+
// structurally incompatible with the base (e.g. a plain concept lacking $timestamp used as
|
|
116
|
+
// a response/event) fails to compile. State is enforced nominally at runtime instead.
|
|
117
|
+
type RuntimeState = ${state.union};
|
|
118
|
+
type RuntimeRequest = ${request.union};
|
|
119
|
+
type RuntimeResponse = ${response.union};
|
|
120
|
+
type RuntimeEvent = ${event.union};
|
|
121
|
+
|
|
122
|
+
interface EngineResponse<S extends RuntimeState> {
|
|
123
|
+
state?: S;
|
|
124
|
+
events?: Array<RuntimeEvent>
|
|
125
|
+
}
|
|
126
|
+
interface TriggerResponse<S extends RuntimeState = RuntimeState> extends EngineResponse<S> {
|
|
127
|
+
result: RuntimeResponse;
|
|
128
|
+
}
|
|
129
|
+
interface InitResponse<S extends RuntimeState> extends EngineResponse<S> {}
|
|
130
|
+
|
|
131
|
+
type TemplateData = IContract|IClause;
|
|
132
|
+
|
|
133
|
+
abstract class TemplateLogic<T extends TemplateData, S extends RuntimeState = RuntimeState> {
|
|
134
|
+
abstract trigger(data: T, request: RuntimeRequest, state:S) : Promise<TriggerResponse<S>>;
|
|
135
|
+
// A concrete (stub) implementation so the class emits runtime JS (user logic does
|
|
136
|
+
// \`extends TemplateLogic\`) and does not raise TS2391 for a missing body.
|
|
137
|
+
init(data: T) : Promise<InitResponse<S>|undefined> { return Promise.resolve(undefined); }
|
|
138
|
+
}
|
|
139
|
+
`;
|
|
140
|
+
}
|
|
141
|
+
getCompilationContext() {
|
|
142
|
+
const files = this.getTypeScriptFiles();
|
|
143
|
+
let result = '';
|
|
144
|
+
// Emit the generated model files under a `generated/` folder so that the
|
|
145
|
+
// template logic's own `./generated/<namespace>` imports resolve inside the
|
|
146
|
+
// twoslash virtual filesystem. Without this the model types resolve to `any`
|
|
147
|
+
// and no type checking (including the State/Obligation hierarchy) can occur.
|
|
148
|
+
Object.keys(files).forEach(key => {
|
|
149
|
+
const content = files[key];
|
|
150
|
+
result += `
|
|
151
|
+
// @filename: generated/${key}
|
|
152
|
+
${content}
|
|
153
|
+
`;
|
|
154
|
+
});
|
|
155
|
+
result += `
|
|
156
|
+
// @filename: code.ts
|
|
157
|
+
import * as TemplateModel from './generated/${this.templateClass.getNamespace()}';
|
|
158
|
+
import dayjs from 'dayjs';
|
|
159
|
+
import jp from 'jsonpath';
|
|
160
|
+
${this.getRuntimeDeclarations()}
|
|
161
|
+
type GenerationOptions = {
|
|
162
|
+
now?:string,
|
|
163
|
+
locale?:string
|
|
164
|
+
}
|
|
165
|
+
`;
|
|
166
|
+
return result;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
exports.TypeScriptCompilationContext = TypeScriptCompilationContext;
|
|
170
|
+
//# sourceMappingURL=TypeScriptCompilationContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeScriptCompilationContext.js","sourceRoot":"","sources":["../src/TypeScriptCompilationContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BEWARE - this type is duplicated in TypeScriptCompilationContext
|
|
3
|
+
* for use by code generation
|
|
4
|
+
*/
|
|
5
|
+
export type GenerationOptions = {
|
|
6
|
+
now?: string;
|
|
7
|
+
locale?: string;
|
|
8
|
+
disableJavaScriptEvaluation?: boolean;
|
|
9
|
+
childProcessJavaScriptEvaluation?: boolean;
|
|
10
|
+
timeout?: number;
|
|
11
|
+
};
|
|
12
|
+
export declare function joinList(data: Array<string>, joinDef: any, options?: GenerationOptions): string;
|
|
13
|
+
export declare function peek($data: any[]): any;
|
|
14
|
+
export declare function peekProperty($data: any[], propertyName: string, allowUndefined?: boolean): any;
|
|
15
|
+
export declare function push($data: any[], item: any): number;
|
|
16
|
+
export declare function addChild($data: any[], item: any): void;
|
|
17
|
+
export declare function pop($data: any[]): any;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License.
|
|
5
|
+
* You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
* See the License for the specific language governing permissions and
|
|
13
|
+
* limitations under the License.
|
|
14
|
+
*/
|
|
15
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.joinList = joinList;
|
|
18
|
+
exports.peek = peek;
|
|
19
|
+
exports.peekProperty = peekProperty;
|
|
20
|
+
exports.push = push;
|
|
21
|
+
exports.addChild = addChild;
|
|
22
|
+
exports.pop = pop;
|
|
23
|
+
const DEBUG = false;
|
|
24
|
+
function joinList(data, joinDef, options) {
|
|
25
|
+
if (joinDef.separator) {
|
|
26
|
+
return data.join(joinDef.separator);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
const formatter = new Intl.ListFormat(joinDef.locale ? joinDef.locale : options?.locale, {
|
|
30
|
+
style: joinDef.style,
|
|
31
|
+
type: joinDef.type
|
|
32
|
+
});
|
|
33
|
+
return formatter.format(data);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* These utility functions are used by the typescript code that
|
|
38
|
+
* is generated from TemplateMark. They manage a stack to improve
|
|
39
|
+
* debuggability.
|
|
40
|
+
*/
|
|
41
|
+
function dump(op, $data) {
|
|
42
|
+
if (DEBUG) {
|
|
43
|
+
console.log(`${op}: ${JSON.stringify($data)}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function peek($data) {
|
|
47
|
+
if ($data.length <= 0) {
|
|
48
|
+
throw new Error('Empty array');
|
|
49
|
+
}
|
|
50
|
+
const result = $data[$data.length - 1];
|
|
51
|
+
dump('peek', $data);
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
54
|
+
function peekProperty($data, propertyName, allowUndefined = false) {
|
|
55
|
+
const head = peek($data);
|
|
56
|
+
const result = head[propertyName];
|
|
57
|
+
if (!allowUndefined && result === undefined) {
|
|
58
|
+
throw new Error(`Undefined property ${propertyName}. Current stack is ${JSON.stringify($data)}`);
|
|
59
|
+
}
|
|
60
|
+
return result;
|
|
61
|
+
}
|
|
62
|
+
function push($data, item) {
|
|
63
|
+
const result = $data.push(item);
|
|
64
|
+
dump('push', $data);
|
|
65
|
+
return result;
|
|
66
|
+
}
|
|
67
|
+
function addChild($data, item) {
|
|
68
|
+
const node = peek($data);
|
|
69
|
+
if (node.nodes) {
|
|
70
|
+
node.nodes.push(item);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
node.nodes = [item];
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function pop($data) {
|
|
77
|
+
if ($data.length <= 0) {
|
|
78
|
+
throw new Error('Empty array');
|
|
79
|
+
}
|
|
80
|
+
const result = $data.pop();
|
|
81
|
+
dump('pop', $data);
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=TypeScriptRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeScriptRuntime.js","sourceRoot":"","sources":["../src/TypeScriptRuntime.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;AACH,uDAAuD;;AAoBvD,4BAaC;AAcD,oBAOC;AAED,oCAOC;AAED,oBAIC;AAED,4BAQC;AAED,kBAOC;AArFD,MAAM,KAAK,GAAG,KAAK,CAAC;AAiBpB,SAAgB,QAAQ,CAAC,IAAkB,EAAE,OAAW,EAAE,OAA0B;IAChF,IAAG,OAAO,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;SACI,CAAC;QACF,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;IAClC,CAAC;AACL,CAAC;AAED;;;;GAIG;AAEH,SAAS,IAAI,CAAC,EAAS,EAAE,KAAW;IAChC,IAAG,KAAK,EAAE,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;AACL,CAAC;AAED,SAAgB,IAAI,CAAC,KAAW;IAC5B,IAAG,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC;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;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,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,sBAAsB,YAAY,sBAAsB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrG,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;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;AAED,SAAgB,QAAQ,CAAC,KAAW,EAAE,IAAQ;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,IAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;SACI,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;AACL,CAAC;AAED,SAAgB,GAAG,CAAC,KAAW;IAC3B,IAAG,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnB,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TwoSlashReturn } from '@typescript/twoslash';
|
|
2
|
+
import { ModelManager } from '@accordproject/concerto-core';
|
|
3
|
+
export declare class TypeScriptToJavaScriptCompiler {
|
|
4
|
+
context: string;
|
|
5
|
+
fsMap: Map<string, string> | undefined;
|
|
6
|
+
ts: any;
|
|
7
|
+
typescriptUrl: string;
|
|
8
|
+
constructor(modelManager: ModelManager, templateConceptFqn?: string);
|
|
9
|
+
initialize(typescriptUrl?: string): Promise<void>;
|
|
10
|
+
compile(typescript: string): TwoSlashReturn;
|
|
11
|
+
}
|