@accordproject/template-engine 2.6.6 → 2.7.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/index.d.ts +86 -2
- package/dist/index.js +93 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +93 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +138 -138
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,75 @@
|
|
|
1
1
|
import { ModelManager, ClassDeclaration } from '@accordproject/concerto-core';
|
|
2
2
|
import { Template } from '@accordproject/cicero-core';
|
|
3
3
|
|
|
4
|
+
/*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/* eslint-disable @typescript-eslint/no-empty-object-type */
|
|
19
|
+
|
|
20
|
+
// we duplicate these interfaces here to avoid imports into the runtime
|
|
21
|
+
interface IConcept {
|
|
22
|
+
$class: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
interface ITransaction extends IConcept {
|
|
26
|
+
$timestamp: Date;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
interface IEvent extends IConcept {
|
|
30
|
+
$timestamp: Date;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
interface IState {
|
|
34
|
+
$identifier: string;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
interface EngineResponse<S extends IState> {
|
|
38
|
+
state?: S;
|
|
39
|
+
events?: Array<IEvent>
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
interface IRequest extends ITransaction {
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
interface IResponse extends ITransaction {
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
interface IAsset extends IConcept {
|
|
49
|
+
$identifier: string;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
interface IContract extends IAsset {
|
|
53
|
+
contractId: string;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
interface IClause extends IAsset {
|
|
57
|
+
clauseId: string;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
interface TriggerResponse$1<S extends IState = IState> extends EngineResponse<S> {
|
|
61
|
+
result: IResponse;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
interface InitResponse$1<S extends IState> extends EngineResponse<S> {}
|
|
65
|
+
|
|
66
|
+
type TemplateData$1 = IContract|IClause;
|
|
67
|
+
|
|
68
|
+
declare abstract class TemplateLogic<T extends TemplateData$1, S extends IState = IState> {
|
|
69
|
+
abstract trigger(data: T, request: IRequest, state:S) : Promise<TriggerResponse$1<S>>;
|
|
70
|
+
init(data: T) : Promise<InitResponse$1<S>|undefined>;
|
|
71
|
+
}
|
|
72
|
+
|
|
4
73
|
type TemplateData = Record<string, unknown>;
|
|
5
74
|
|
|
6
75
|
/**
|
|
@@ -47,6 +116,14 @@ declare class TemplateMarkInterpreter {
|
|
|
47
116
|
generate(templateMark: object, data: TemplateData, options?: GenerationOptions): Promise<any>;
|
|
48
117
|
}
|
|
49
118
|
|
|
119
|
+
type State = object;
|
|
120
|
+
type Response = object;
|
|
121
|
+
type TriggerResponse = {
|
|
122
|
+
result: Response;
|
|
123
|
+
};
|
|
124
|
+
type InitResponse = {
|
|
125
|
+
state: State;
|
|
126
|
+
};
|
|
50
127
|
/**
|
|
51
128
|
* A template archive processor: can draft content using the
|
|
52
129
|
* templatemark for the archive and trigger the logic of the archive
|
|
@@ -75,7 +152,14 @@ declare class TemplateArchiveProcessor {
|
|
|
75
152
|
* @param {[number]} utcOffset - the UTC offer, defaults to zero
|
|
76
153
|
* @returns {Promise} the response and any events
|
|
77
154
|
*/
|
|
78
|
-
trigger(data: any, request: any, state?: any, currentTime?: string, utcOffset?: number): Promise<
|
|
155
|
+
trigger(data: any, request: any, state?: any, currentTime?: string, utcOffset?: number): Promise<TriggerResponse>;
|
|
156
|
+
/**
|
|
157
|
+
* Init the logic of a template
|
|
158
|
+
* @param {[string]} currentTime - the current time, defaults to now
|
|
159
|
+
* @param {[number]} utcOffset - the UTC offer, defaults to zero
|
|
160
|
+
* @returns {Promise} the response and any events
|
|
161
|
+
*/
|
|
162
|
+
init(data: any, currentTime?: string, utcOffset?: number): Promise<InitResponse>;
|
|
79
163
|
}
|
|
80
164
|
|
|
81
165
|
declare function ensureDirSync(path: string): void;
|
|
@@ -84,4 +168,4 @@ declare function writeFunctionToString(templateClass: ClassDeclaration, function
|
|
|
84
168
|
declare function nameUserCode(templateMarkDom: any): any;
|
|
85
169
|
declare function getTemplateClassDeclaration(modelManager: ModelManager, templateConceptFqn?: string): ClassDeclaration;
|
|
86
170
|
|
|
87
|
-
export { TemplateArchiveProcessor, TemplateMarkInterpreter, ensureDirSync, getTemplateClassDeclaration, nameUserCode, removeSync, writeFunctionToString };
|
|
171
|
+
export { TemplateArchiveProcessor, TemplateLogic, TemplateMarkInterpreter, ensureDirSync, getTemplateClassDeclaration, nameUserCode, removeSync, writeFunctionToString };
|
package/dist/index.js
CHANGED
|
@@ -327,7 +327,7 @@ type GenerationOptions = {
|
|
|
327
327
|
|
|
328
328
|
const DAYJS_BASE64 = "Ly8vIDxyZWZlcmVuY2UgcGF0aD0iLi9sb2NhbGUvaW5kZXguZC50cyIgLz4KCmV4cG9ydCA9IGRheWpzOwoKZGVjbGFyZSBmdW5jdGlvbiBkYXlqcyAoZGF0ZT86IGRheWpzLkNvbmZpZ1R5cGUpOiBkYXlqcy5EYXlqcwoKZGVjbGFyZSBmdW5jdGlvbiBkYXlqcyAoZGF0ZT86IGRheWpzLkNvbmZpZ1R5cGUsIGZvcm1hdD86IGRheWpzLk9wdGlvblR5cGUsIHN0cmljdD86IGJvb2xlYW4pOiBkYXlqcy5EYXlqcwoKZGVjbGFyZSBmdW5jdGlvbiBkYXlqcyAoZGF0ZT86IGRheWpzLkNvbmZpZ1R5cGUsIGZvcm1hdD86IGRheWpzLk9wdGlvblR5cGUsIGxvY2FsZT86IHN0cmluZywgc3RyaWN0PzogYm9vbGVhbik6IGRheWpzLkRheWpzCgpkZWNsYXJlIG5hbWVzcGFjZSBkYXlqcyB7CiAgaW50ZXJmYWNlIENvbmZpZ1R5cGVNYXAgewogICAgZGVmYXVsdDogc3RyaW5nIHwgbnVtYmVyIHwgRGF0ZSB8IERheWpzIHwgbnVsbCB8IHVuZGVmaW5lZAogIH0KCiAgZXhwb3J0IHR5cGUgQ29uZmlnVHlwZSA9IENvbmZpZ1R5cGVNYXBba2V5b2YgQ29uZmlnVHlwZU1hcF0KCiAgZXhwb3J0IGludGVyZmFjZSBGb3JtYXRPYmplY3QgeyBsb2NhbGU/OiBzdHJpbmcsIGZvcm1hdD86IHN0cmluZywgdXRjPzogYm9vbGVhbiB9CgogIGV4cG9ydCB0eXBlIE9wdGlvblR5cGUgPSBGb3JtYXRPYmplY3QgfCBzdHJpbmcgfCBzdHJpbmdbXQoKICBleHBvcnQgdHlwZSBVbml0VHlwZVNob3J0ID0gJ2QnIHwgJ0QnIHwgJ00nIHwgJ3knIHwgJ2gnIHwgJ20nIHwgJ3MnIHwgJ21zJwoKICBleHBvcnQgdHlwZSBVbml0VHlwZUxvbmcgPSAnbWlsbGlzZWNvbmQnIHwgJ3NlY29uZCcgfCAnbWludXRlJyB8ICdob3VyJyB8ICdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJyB8ICdkYXRlJwoKICBleHBvcnQgdHlwZSBVbml0VHlwZUxvbmdQbHVyYWwgPSAnbWlsbGlzZWNvbmRzJyB8ICdzZWNvbmRzJyB8ICdtaW51dGVzJyB8ICdob3VycycgfCAnZGF5cycgfCAnbW9udGhzJyB8ICd5ZWFycycgfCAnZGF0ZXMnCiAgCiAgZXhwb3J0IHR5cGUgVW5pdFR5cGUgPSBVbml0VHlwZUxvbmcgfCBVbml0VHlwZUxvbmdQbHVyYWwgfCBVbml0VHlwZVNob3J0OwoKICBleHBvcnQgdHlwZSBPcFVuaXRUeXBlID0gVW5pdFR5cGUgfCAid2VlayIgfCAid2Vla3MiIHwgJ3cnOwogIGV4cG9ydCB0eXBlIFFVbml0VHlwZSA9IFVuaXRUeXBlIHwgInF1YXJ0ZXIiIHwgInF1YXJ0ZXJzIiB8ICdRJzsKICBleHBvcnQgdHlwZSBNYW5pcHVsYXRlVHlwZSA9IEV4Y2x1ZGU8T3BVbml0VHlwZSwgJ2RhdGUnIHwgJ2RhdGVzJz47CiAgY2xhc3MgRGF5anMgewogICAgY29uc3RydWN0b3IgKGNvbmZpZz86IENvbmZpZ1R5cGUpCiAgICAvKioKICAgICAqIEFsbCBEYXkuanMgb2JqZWN0cyBhcmUgaW1tdXRhYmxlLiBTdGlsbCwgYGRheWpzI2Nsb25lYCBjYW4gY3JlYXRlIGEgY2xvbmUgb2YgdGhlIGN1cnJlbnQgb2JqZWN0IGlmIHlvdSBuZWVkIG9uZS4KICAgICAqIGBgYAogICAgICogZGF5anMoKS5jbG9uZSgpLy8gPT4gRGF5anMKICAgICAqIGRheWpzKGRheWpzKCcyMDE5LTAxLTI1JykpIC8vIHBhc3NpbmcgYSBEYXlqcyBvYmplY3QgdG8gYSBjb25zdHJ1Y3RvciB3aWxsIGFsc28gY2xvbmUgaXQKICAgICAqIGBgYAogICAgICogRG9jczogaHR0cHM6Ly9kYXkuanMub3JnL2RvY3MvZW4vcGFyc2UvZGF5anMtY2xvbmUKICAgICAqLwogICAgY2xvbmUoKTogRGF5anMKICAgIC8qKgogICAgICogVGhpcyByZXR1cm5zIGEgYGJvb2xlYW5gIGluZGljYXRpbmcgd2hldGhlciB0aGUgRGF5LmpzIG9iamVjdCBjb250YWlucyBhIHZhbGlkIGRhdGUgb3Igbm90LgogICAgICogYGBgCiAgICAgKiBkYXlqcygpLmlzVmFsaWQoKS8vID0+IGJvb2xlYW4KICAgICAqIGBgYAogICAgICogRG9jczogaHR0cHM6Ly9kYXkuanMub3JnL2RvY3MvZW4vcGFyc2UvaXMtdmFsaWQKICAgICAqLwogICAgaXNWYWxpZCgpOiBib29sZWFuCiAgICAvKioKICAgICAqIEdldCB0aGUgeWVhci4KICAgICAqIGBgYAogICAgICogZGF5anMoKS55ZWFyKCkvLyA9PiAyMDIwCiAgICAgKiBgYGAKICAgICAqIERvY3M6IGh0dHBzOi8vZGF5LmpzLm9yZy9kb2NzL2VuL2dldC1zZXQveWVhcgogICAgICovCiAgICB5ZWFyKCk6IG51bWJlcgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHllYXIuCiAgICAgKiBgYGAKICAgICAqIGRheWpzKCkueWVhcigyMDAwKS8vID0+IERheWpzCiAgICAgKiBgYGAKICAgICAqIERvY3M6IGh0dHBzOi8vZGF5LmpzLm9yZy9kb2NzL2VuL2dldC1zZXQveWVhcgogICAgICovCiAgICB5ZWFyKHZhbHVlOiBudW1iZXIpOiBEYXlqcwogICAgLyoqCiAgICAgKiBHZXQgdGhlIG1vbnRoLgogICAgICoKICAgICAqIE1vbnRocyBhcmUgemVybyBpbmRleGVkLCBzbyBKYW51YXJ5IGlzIG1vbnRoIDAuCiAgICAgKiBgYGAKICAgICAqIGRheWpzKCkubW9udGgoKS8vID0+IDAtMTEKICAgICAqIGBgYAogICAgICogRG9jczogaHR0cHM6Ly9kYXkuanMub3JnL2RvY3MvZW4vZ2V0LXNldC9tb250aAogICAgICovCiAgICBtb250aCgpOiBudW1iZXIKICAgIC8qKgogICAgICogU2V0IHRoZSBtb250aC4KICAgICAqCiAgICAgKiBNb250aHMgYXJlIHplcm8gaW5kZXhlZCwgc28gSmFudWFyeSBpcyBtb250aCAwLgogICAgICoKICAgICAqIEFjY2VwdHMgbnVtYmVycyBmcm9tIDAgdG8gMTEuIElmIHRoZSByYW5nZSBpcyBleGNlZWRlZCwgaXQgd2lsbCBidWJibGUgdXAgdG8gdGhlIG5leHQgeWVhci4KICAgICAqIGBgYAogICAgICogZGF5anMoKS5tb250aCgwKS8vID0+IERheWpzCiAgICAgKiBgYGAKICAgICAqIERvY3M6IGh0dHBzOi8vZGF5LmpzLm9yZy9kb2NzL2VuL2dldC1zZXQvbW9udGgKICAgICAqLwogICAgbW9udGgodmFsdWU6IG51bWJlcik6IERheWpzCiAgICAvKioKICAgICAqIEdldCB0aGUgZGF0ZSBvZiB0aGUgbW9udGguCiAgICAgKiBgYGAKICAgICAqIGRheWpzKCkuZGF0ZSgpLy8gPT4gMS0zMQogICAgICogYGBgCiAgICAgKiBEb2NzOiBodHRwczovL2RheS5qcy5vcmcvZG9jcy9lbi9nZXQtc2V0L2RhdGUKICAgICAqLwogICAgZGF0ZSgpOiBudW1iZXIKICAgIC8qKgogICAgICogU2V0IHRoZSBkYXRlIG9mIHRoZSBtb250aC4KICAgICAqCiAgICAgKiBBY2NlcHRzIG51bWJlcnMgZnJvbSAxIHRvIDMxLiBJZiB0aGUgcmFuZ2UgaXMgZXhjZWVkZWQsIGl0IHdpbGwgYnViYmxlIHVwIHRvIHRoZSBuZXh0IG1vbnRocy4KICAgICAqIGBgYAogICAgICogZGF5anMoKS5kYXRlKDEpLy8gPT4gRGF5anMKICAgICAqIGBgYAogICAgICogRG9jczogaHR0cHM6Ly9kYXkuanMub3JnL2RvY3MvZW4vZ2V0LXNldC9kYXRlCiAgICAgKi8KICAgIGRhdGUodmFsdWU6IG51bWJlcik6IERheWpzCiAgICAvKioKICAgICAqIEdldCB0aGUgZGF5IG9mIHRoZSB3ZWVrLgogICAgICoKICAgICAqIFJldHVybnMgbnVtYmVycyBmcm9tIDAgKFN1bmRheSkgdG8gNiAoU2F0dXJkYXkpLgogICAgICogYGBgCiAgICAgKiBkYXlqcygpLmRheSgpLy8gMC02CiAgICAgKiBgYGAKICAgICAqIERvY3M6IGh0dHBzOi8vZGF5LmpzLm9yZy9kb2NzL2VuL2dldC1zZXQvZGF5CiAgICAgKi8KICAgIGRheSgpOiAwIHwgMSB8IDIgfCAzIHwgNCB8IDUgfCA2CiAgICAvKioKICAgICAqIFNldCB0aGUgZGF5IG9mIHRoZSB3ZWVrLgogICAgICoKICAgICAqIEFjY2VwdHMgbnVtYmVycyBmcm9tIDAgKFN1bmRheSkgdG8gNiAoU2F0dXJkYXkpLiBJZiB0aGUgcmFuZ2UgaXMgZXhjZWVkZWQsIGl0IHdpbGwgYnViYmxlIHVwIHRvIG5leHQgd2Vla3MuCiAgICAgKiBgYGAKICAgICAqIGRheWpzKCkuZGF5KDApLy8gPT4gRGF5anMKICAgICAqIGBgYAogICAgICogRG9jczogaHR0cHM6Ly9kYXkuanMub3JnL2RvY3MvZW4vZ2V0LXNldC9kYXkKICAgICAqLwogICAgZGF5KHZhbHVlOiBudW1iZXIpOiBEYXlqcwogICAgLyoqCiAgICAgKiBHZXQgdGhlIGhvdXIuCiAgICAgKiBgYGAKICAgICAqIGRheWpzKCkuaG91cigpLy8gPT4gMC0yMwogICAgICogYGBgCiAgICAgKiBEb2NzOiBodHRwczovL2RheS5qcy5vcmcvZG9jcy9lbi9nZXQtc2V0L2hvdXIKICAgICAqLwogICAgaG91cigpOiBudW1iZXIKICAgIC8qKgogICAgICogU2V0IHRoZSBob3VyLgogICAgICoKICAgICAqIEFjY2VwdHMgbnVtYmVycyBmcm9tIDAgdG8gMjMuIElmIHRoZSByYW5nZSBpcyBleGNlZWRlZCwgaXQgd2lsbCBidWJibGUgdXAgdG8gdGhlIG5leHQgZGF5LgogICAgICogYGBgCiAgICAgKiBkYXlqcygpLmhvdXIoMTIpLy8gPT4gRGF5anMKICAgICAqIGBgYAogICAgICogRG9jczogaHR0cHM6Ly9kYXkuanMub3JnL2RvY3MvZW4vZ2V0LXNldC9ob3VyCiAgICAgKi8KICAgIGhvdXIodmFsdWU6IG51bWJlcik6IERheWpzCiAgICAvKioKICAgICAqIEdldCB0aGUgbWludXRlcy4KICAgICAqIGBgYAogICAgICogZGF5anMoKS5taW51dGUoKS8vID0+IDAtNTkKICAgICAqIGBgYAogICAgICogRG9jczogaHR0cHM6Ly9kYXkuanMub3JnL2RvY3MvZW4vZ2V0LXNldC9taW51dGUKICAgICAqLwogICAgbWludXRlKCk6IG51bWJlcgogICAgLyoqCiAgICAgKiBTZXQgdGhlIG1pbnV0ZXMuCiAgICAgKgogICAgICogQWNjZXB0cyBudW1iZXJzIGZyb20gMCB0byA1OS4gSWYgdGhlIHJhbmdlIGlzIGV4Y2VlZGVkLCBpdCB3aWxsIGJ1YmJsZSB1cCB0byB0aGUgbmV4dCBob3VyLgogICAgICogYGBgCiAgICAgKiBkYXlqcygpLm1pbnV0ZSg1OSkvLyA9PiBEYXlqcwogICAgICogYGBgCiAgICAgKiBEb2NzOiBodHRwczovL2RheS5qcy5vcmcvZG9jcy9lbi9nZXQtc2V0L21pbnV0ZQogICAgICovCiAgICBtaW51dGUodmFsdWU6IG51bWJlcik6IERheWpzCiAgICAvKioKICAgICAqIEdldCB0aGUgc2Vjb25kcy4KICAgICAqIGBgYAogICAgICogZGF5anMoKS5zZWNvbmQoKS8vID0+IDAtNTkKICAgICAqIGBgYAogICAgICogRG9jczogaHR0cHM6Ly9kYXkuanMub3JnL2RvY3MvZW4vZ2V0LXNldC9zZWNvbmQKICAgICAqLwogICAgc2Vjb25kKCk6IG51bWJlcgogICAgLyoqCiAgICAgKiBTZXQgdGhlIHNlY29uZHMuCiAgICAgKgogICAgICogQWNjZXB0cyBudW1iZXJzIGZyb20gMCB0byA1OS4gSWYgdGhlIHJhbmdlIGlzIGV4Y2VlZGVkLCBpdCB3aWxsIGJ1YmJsZSB1cCB0byB0aGUgbmV4dCBtaW51dGVzLgogICAgICogYGBgCiAgICAgKiBkYXlqcygpLnNlY29uZCgxKS8vIERheWpzCiAgICAgKiBgYGAKICAgICAqLwogICAgc2Vjb25kKHZhbHVlOiBudW1iZXIpOiBEYXlqcwogICAgLyoqCiAgICAgKiBHZXQgdGhlIG1pbGxpc2Vjb25kcy4KICAgICAqIGBgYAogICAgICogZGF5anMoKS5taWxsaXNlY29uZCgpLy8gPT4gMC05OTkKICAgICAqIGBgYAogICAgICogRG9jczogaHR0cHM6Ly9kYXkuanMub3JnL2RvY3MvZW4vZ2V0LXNldC9taWxsaXNlY29uZAogICAgICovCiAgICBtaWxsaXNlY29uZCgpOiBudW1iZXIKICAgIC8qKgogICAgICogU2V0IHRoZSBtaWxsaXNlY29uZHMuCiAgICAgKgogICAgICogQWNjZXB0cyBudW1iZXJzIGZyb20gMCB0byA5OTkuIElmIHRoZSByYW5nZSBpcyBleGNlZWRlZCwgaXQgd2lsbCBidWJibGUgdXAgdG8gdGhlIG5leHQgc2Vjb25kcy4KICAgICAqIGBgYAogICAgICogZGF5anMoKS5taWxsaXNlY29uZCgxKS8vID0+IERheWpzCiAgICAgKiBgYGAKICAgICAqIERvY3M6IGh0dHBzOi8vZGF5LmpzLm9yZy9kb2NzL2VuL2dldC1zZXQvbWlsbGlzZWNvbmQKICAgICAqLwogICAgbWlsbGlzZWNvbmQodmFsdWU6IG51bWJlcik6IERheWpzCiAgICAvKioKICAgICAqIEdlbmVyaWMgc2V0dGVyLCBhY2NlcHRpbmcgdW5pdCBhcyBmaXJzdCBhcmd1bWVudCwgYW5kIHZhbHVlIGFzIHNlY29uZCwgcmV0dXJucyBhIG5ldyBpbnN0YW5jZSB3aXRoIHRoZSBhcHBsaWVkIGNoYW5nZXMuCiAgICAgKgogICAgICogSW4gZ2VuZXJhbDoKICAgICAqIGBgYAogICAgICogZGF5anMoKS5zZXQodW5pdCwgdmFsdWUpID09PSBkYXlqcygpW3VuaXRdKHZhbHVlKQogICAgICogYGBgCiAgICAgKiBVbml0cyBhcmUgY2FzZSBpbnNlbnNpdGl2ZSwgYW5kIHN1cHBvcnQgcGx1cmFsIGFuZCBzaG9ydCBmb3Jtcy4KICAgICAqIGBgYAogICAgICogZGF5anMoKS5zZXQoJ2RhdGUnLCAxKQogICAgICogZGF5anMoKS5zZXQoJ21vbnRoJywgMykgLy8gQXByaWwKICAgICAqIGRheWpzKCkuc2V0KCdzZWNvbmQnLCAzMCkKICAgICAqIGBgYAogICAgICogRG9jczogaHR0cHM6Ly9kYXkuanMub3JnL2RvY3MvZW4vZ2V0LXNldC9zZXQKICAgICAqLwogICAgc2V0KHVuaXQ6IFVuaXRUeXBlLCB2YWx1ZTogbnVtYmVyKTogRGF5anMKICAgIC8qKgogICAgICogU3RyaW5nIGdldHRlciwgcmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyBpbmZvcm1hdGlvbiBnZXR0aW5nIGZyb20gRGF5LmpzIG9iamVjdC4KICAgICAqCiAgICAgKiBJbiBnZW5lcmFsOgogICAgICogYGBgCiAgICAgKiBkYXlqcygpLmdldCh1bml0KSA9PT0gZGF5anMoKVt1bml0XSgpCiAgICAgKiBgYGAKICAgICAqIFVuaXRzIGFyZSBjYXNlIGluc2Vuc2l0aXZlLCBhbmQgc3VwcG9ydCBwbHVyYWwgYW5kIHNob3J0IGZvcm1zLgogICAgICogYGBgCiAgICAgKiBkYXlqcygpLmdldCgneWVhcicpCiAgICAgKiBkYXlqcygpLmdldCgnbW9udGgnKSAvLyBzdGFydCAwCiAgICAgKiBkYXlqcygpLmdldCgnZGF0ZScpCiAgICAgKiBgYGAKICAgICAqIERvY3M6IGh0dHBzOi8vZGF5LmpzLm9yZy9kb2NzL2VuL2dldC1zZXQvZ2V0CiAgICAgKi8KICAgIGdldCh1bml0OiBVbml0VHlwZSk6IG51bWJlcgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgY2xvbmVkIERheS5qcyBvYmplY3Qgd2l0aCBhIHNwZWNpZmllZCBhbW91bnQgb2YgdGltZSBhZGRlZC4KICAgICAqIGBgYAogICAgICogZGF5anMoKS5hZGQoNywgJ2RheScpLy8gPT4gRGF5anMKICAgICAqIGBgYAogICAgICogVW5pdHMgYXJlIGNhc2UgaW5zZW5zaXRpdmUsIGFuZCBzdXBwb3J0IHBsdXJhbCBhbmQgc2hvcnQgZm9ybXMuCiAgICAgKgogICAgICogRG9jczogaHR0cHM6Ly9kYXkuanMub3JnL2RvY3MvZW4vbWFuaXB1bGF0ZS9hZGQKICAgICAqLwogICAgYWRkKHZhbHVlOiBudW1iZXIsIHVuaXQ/OiBNYW5pcHVsYXRlVHlwZSk6IERheWpzCiAgICAvKioKICAgICAqIFJldHVybnMgYSBjbG9uZWQgRGF5LmpzIG9iamVjdCB3aXRoIGEgc3BlY2lmaWVkIGFtb3VudCBvZiB0aW1lIHN1YnRyYWN0ZWQuCiAgICAgKiBgYGAKICAgICAqIGRheWpzKCkuc3VidHJhY3QoNywgJ3llYXInKS8vID0+IERheWpzCiAgICAgKiBgYGAKICAgICAqIFVuaXRzIGFyZSBjYXNlIGluc2Vuc2l0aXZlLCBhbmQgc3VwcG9ydCBwbHVyYWwgYW5kIHNob3J0IGZvcm1zLgogICAgICoKICAgICAqIERvY3M6IGh0dHBzOi8vZGF5LmpzLm9yZy9kb2NzL2VuL21hbmlwdWxhdGUvc3VidHJhY3QKICAgICAqLwogICAgc3VidHJhY3QodmFsdWU6IG51bWJlciwgdW5pdD86IE1hbmlwdWxhdGVUeXBlKTogRGF5anMKICAgIC8qKgogICAgICogUmV0dXJucyBhIGNsb25lZCBEYXkuanMgb2JqZWN0IGFuZCBzZXQgaXQgdG8gdGhlIHN0YXJ0IG9mIGEgdW5pdCBvZiB0aW1lLgogICAgICogYGBgCiAgICAgKiBkYXlqcygpLnN0YXJ0T2YoJ3llYXInKS8vID0+IERheWpzCiAgICAgKiBgYGAKICAgICAqIFVuaXRzIGFyZSBjYXNlIGluc2Vuc2l0aXZlLCBhbmQgc3VwcG9ydCBwbHVyYWwgYW5kIHNob3J0IGZvcm1zLgogICAgICoKICAgICAqIERvY3M6IGh0dHBzOi8vZGF5LmpzLm9yZy9kb2NzL2VuL21hbmlwdWxhdGUvc3RhcnQtb2YKICAgICAqLwogICAgc3RhcnRPZih1bml0OiBPcFVuaXRUeXBlKTogRGF5anMKICAgIC8qKgogICAgICogUmV0dXJucyBhIGNsb25lZCBEYXkuanMgb2JqZWN0IGFuZCBzZXQgaXQgdG8gdGhlIGVuZCBvZiBhIHVuaXQgb2YgdGltZS4KICAgICAqIGBgYAogICAgICogZGF5anMoKS5lbmRPZignbW9udGgnKS8vID0+IERheWpzCiAgICAgKiBgYGAKICAgICAqIFVuaXRzIGFyZSBjYXNlIGluc2Vuc2l0aXZlLCBhbmQgc3VwcG9ydCBwbHVyYWwgYW5kIHNob3J0IGZvcm1zLgogICAgICoKICAgICAqIERvY3M6IGh0dHBzOi8vZGF5LmpzLm9yZy9kb2NzL2VuL21hbmlwdWxhdGUvZW5kLW9mCiAgICAgKi8KICAgIGVuZE9mKHVuaXQ6IE9wVW5pdFR5cGUpOiBEYXlqcwogICAgLyoqCiAgICAgKiBHZXQgdGhlIGZvcm1hdHRlZCBkYXRlIGFjY29yZGluZyB0byB0aGUgc3RyaW5nIG9mIHRva2VucyBwYXNzZWQgaW4uCiAgICAgKgogICAgICogVG8gZXNjYXBlIGNoYXJhY3RlcnMsIHdyYXAgdGhlbSBpbiBzcXVhcmUgYnJhY2tldHMgKGUuZy4gW01NXSkuCiAgICAgKiBgYGAKICAgICAqIGRheWpzKCkuZm9ybWF0KCkvLyA9PiBjdXJyZW50IGRhdGUgaW4gSVNPODYwMSwgd2l0aG91dCBmcmFjdGlvbiBzZWNvbmRzIGUuZy4gJzIwMjAtMDQtMDJUMDg6MDI6MTctMDU6MDAnCiAgICAgKiBkYXlqcygnMjAxOS0wMS0yNScpLmZvcm1hdCgnW1lZWVllc2NhcGVdIFlZWVktTU0tRERUSEg6bW06c3NaW1pdJykvLyAnWVlZWWVzY2FwZSAyMDE5LTAxLTI1VDAwOjAwOjAwLTAyOjAwWicKICAgICAqIGRheWpzKCcyMDE5LTAxLTI1JykuZm9ybWF0KCdERC9NTS9ZWVlZJykgLy8gJzI1LzAxLzIwMTknCiAgICAgKiBgYGAKICAgICAqIERvY3M6IGh0dHBzOi8vZGF5LmpzLm9yZy9kb2NzL2VuL2Rpc3BsYXkvZm9ybWF0CiAgICAgKi8KICAgIGZvcm1hdCh0ZW1wbGF0ZT86IHN0cmluZyk6IHN0cmluZwogICAgLyoqCiAgICAgKiBUaGlzIGluZGljYXRlcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHR3byBkYXRlLXRpbWUgaW4gdGhlIHNwZWNpZmllZCB1bml0LgogICAgICoKICAgICAqIFRvIGdldCB0aGUgZGlmZmVyZW5jZSBpbiBtaWxsaXNlY29uZHMsIHVzZSBgZGF5anMjZGlmZmAKICAgICAqIGBgYAogICAgICogY29uc3QgZGF0ZTEgPSBkYXlqcygnMjAxOS0wMS0yNScpCiAgICAgKiBjb25zdCBkYXRlMiA9IGRheWpzKCcyMDE4LTA2LTA1JykKICAgICAqIGRhdGUxLmRpZmYoZGF0ZTIpIC8vIDIwMjE0MDAwMDAwIGRlZmF1bHQgbWlsbGlzZWNvbmRzCiAgICAgKiBkYXRlMS5kaWZmKCkgLy8gbWlsbGlzZWNvbmRzIHRvIGN1cnJlbnQgdGltZQogICAgICogYGBgCiAgICAgKgogICAgICogVG8gZ2V0IHRoZSBkaWZmZXJlbmNlIGluIGFub3RoZXIgdW5pdCBvZiBtZWFzdXJlbWVudCwgcGFzcyB0aGF0IG1lYXN1cmVtZW50IGFzIHRoZSBzZWNvbmQgYXJndW1lbnQuCiAgICAgKiBgYGAKICAgICAqIGNvbnN0IGRhdGUxID0gZGF5anMoJzIwMTktMDEtMjUnKQogICAgICogZGF0ZTEuZGlmZignMjAxOC0wNi0wNScsICdtb250aCcpIC8vIDcKICAgICAqIGBgYAogICAgICogVW5pdHMgYXJlIGNhc2UgaW5zZW5zaXRpdmUsIGFuZCBzdXBwb3J0IHBsdXJhbCBhbmQgc2hvcnQgZm9ybXMuCiAgICAgKgogICAgICogRG9jczogaHR0cHM6Ly9kYXkuanMub3JnL2RvY3MvZW4vZGlzcGxheS9kaWZmZXJlbmNlCiAgICAgKi8KICAgIGRpZmYoZGF0ZT86IENvbmZpZ1R5cGUsIHVuaXQ/OiBRVW5pdFR5cGUgfCBPcFVuaXRUeXBlLCBmbG9hdD86IGJvb2xlYW4pOiBudW1iZXIKICAgIC8qKgogICAgICogVGhpcyByZXR1cm5zIHRoZSBudW1iZXIgb2YgKiptaWxsaXNlY29uZHMqKiBzaW5jZSB0aGUgVW5peCBFcG9jaCBvZiB0aGUgRGF5LmpzIG9iamVjdC4KICAgICAqIGBgYAogICAgICogZGF5anMoJzIwMTktMDEtMjUnKS52YWx1ZU9mKCkgLy8gMTU0ODM4MTYwMDAwMAogICAgICogK2RheWpzKDE1NDgzODE2MDAwMDApIC8vIDE1NDgzODE2MDAwMDAKICAgICAqIGBgYAogICAgICogVG8gZ2V0IGEgVW5peCB0aW1lc3RhbXAgKHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSB0aGUgZXBvY2gpIGZyb20gYSBEYXkuanMgb2JqZWN0LCB5b3Ugc2hvdWxkIHVzZSBVbml4IFRpbWVzdGFtcCBgZGF5anMjdW5peCgpYC4KICAgICAqCiAgICAgKiBEb2NzOiBodHRwczovL2RheS5qcy5vcmcvZG9jcy9lbi9kaXNwbGF5L3VuaXgtdGltZXN0YW1wLW1pbGxpc2Vjb25kcwogICAgICovCiAgICB2YWx1ZU9mKCk6IG51bWJlcgogICAgLyoqCiAgICAgKiBUaGlzIHJldHVybnMgdGhlIFVuaXggdGltZXN0YW1wICh0aGUgbnVtYmVyIG9mICoqc2Vjb25kcyoqIHNpbmNlIHRoZSBVbml4IEVwb2NoKSBvZiB0aGUgRGF5LmpzIG9iamVjdC4KICAgICAqIGBgYAogICAgICogZGF5anMoJzIwMTktMDEtMjUnKS51bml4KCkgLy8gMTU0ODM4MTYwMAogICAgICogYGBgCiAgICAgKiBUaGlzIHZhbHVlIGlzIGZsb29yZWQgdG8gdGhlIG5lYXJlc3Qgc2Vjb25kLCBhbmQgZG9lcyBub3QgaW5jbHVkZSBhIG1pbGxpc2Vjb25kcyBjb21wb25lbnQuCiAgICAgKgogICAgICogRG9jczogaHR0cHM6Ly9kYXkuanMub3JnL2RvY3MvZW4vZGlzcGxheS91bml4LXRpbWVzdGFtcAogICAgICovCiAgICB1bml4KCk6IG51bWJlcgogICAgLyoqCiAgICAgKiBHZXQgdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBjdXJyZW50IG1vbnRoLgogICAgICogYGBgCiAgICAgKiBkYXlqcygnMjAxOS0wMS0yNScpLmRheXNJbk1vbnRoKCkgLy8gMzEKICAgICAqIGBgYAogICAgICogRG9jczogaHR0cHM6Ly9kYXkuanMub3JnL2RvY3MvZW4vZGlzcGxheS9kYXlzLWluLW1vbnRoCiAgICAgKi8KICAgIGRheXNJbk1vbnRoKCk6IG51bWJlcgogICAgLyoqCiAgICAgKiBUbyBnZXQgYSBjb3B5IG9mIHRoZSBuYXRpdmUgYERhdGVgIG9iamVjdCBwYXJzZWQgZnJvbSB0aGUgRGF5LmpzIG9iamVjdCB1c2UgYGRheWpzI3RvRGF0ZWAuCiAgICAgKiBgYGAKICAgICAqIGRheWpzKCcyMDE5LTAxLTI1JykudG9EYXRlKCkvLyA9PiBEYXRlCiAgICAgKiBgYGAKICAgICAqLwogICAgdG9EYXRlKCk6IERhdGUKICAgIC8qKgogICAgICogVG8gc2VyaWFsaXplIGFzIGFuIElTTyA4NjAxIHN0cmluZy4KICAgICAqIGBgYAogICAgICogZGF5anMoJzIwMTktMDEtMjUnKS50b0pTT04oKSAvLyAnMjAxOS0wMS0yNVQwMjowMDowMC4wMDBaJwogICAgICogYGBgCiAgICAgKiBEb2NzOiBodHRwczovL2RheS5qcy5vcmcvZG9jcy9lbi9kaXNwbGF5L2FzLWpzb24KICAgICAqLwogICAgdG9KU09OKCk6IHN0cmluZwogICAgLyoqCiAgICAgKiBUbyBmb3JtYXQgYXMgYW4gSVNPIDg2MDEgc3RyaW5nLgogICAgICogYGBgCiAgICAgKiBkYXlqcygnMjAxOS0wMS0yNScpLnRvSVNPU3RyaW5nKCkgLy8gJzIwMTktMDEtMjVUMDI6MDA6MDAuMDAwWicKICAgICAqIGBgYAogICAgICogRG9jczogaHR0cHM6Ly9kYXkuanMub3JnL2RvY3MvZW4vZGlzcGxheS9hcy1pc28tc3RyaW5nCiAgICAgKi8KICAgIHRvSVNPU3RyaW5nKCk6IHN0cmluZwogICAgLyoqCiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkYXRlLgogICAgICogYGBgCiAgICAgKiBkYXlqcygnMjAxOS0wMS0yNScpLnRvU3RyaW5nKCkgLy8gJ0ZyaSwgMjUgSmFuIDIwMTkgMDI6MDA6MDAgR01UJwogICAgICogYGBgCiAgICAgKiBEb2NzOiBodHRwczovL2RheS5qcy5vcmcvZG9jcy9lbi9kaXNwbGF5L2FzLXN0cmluZwogICAgICovCiAgICB0b1N0cmluZygpOiBzdHJpbmcKICAgIC8qKgogICAgICogR2V0IHRoZSBVVEMgb2Zmc2V0IGluIG1pbnV0ZXMuCiAgICAgKiBgYGAKICAgICAqIGRheWpzKCkudXRjT2Zmc2V0KCkKICAgICAqIGBgYAogICAgICogRG9jczogaHR0cHM6Ly9kYXkuanMub3JnL2RvY3MvZW4vbWFuaXB1bGF0ZS91dGMtb2Zmc2V0CiAgICAgKi8KICAgIHV0Y09mZnNldCgpOiBudW1iZXIKICAgIC8qKgogICAgICogVGhpcyBpbmRpY2F0ZXMgd2hldGhlciB0aGUgRGF5LmpzIG9iamVjdCBpcyBiZWZvcmUgdGhlIG90aGVyIHN1cHBsaWVkIGRhdGUtdGltZS4KICAgICAqIGBgYAogICAgICogZGF5anMoKS5pc0JlZm9yZShkYXlqcygnMjAxMS0wMS0wMScpKSAvLyBkZWZhdWx0IG1pbGxpc2Vjb25kcwogICAgICogYGBgCiAgICAgKiBJZiB5b3Ugd2FudCB0byBsaW1pdCB0aGUgZ3JhbnVsYXJpdHkgdG8gYSB1bml0IG90aGVyIHRoYW4gbWlsbGlzZWNvbmRzLCBwYXNzIGl0IGFzIHRoZSBzZWNvbmQgcGFyYW1ldGVyLgogICAgICogYGBgCiAgICAgKiBkYXlqcygpLmlzQmVmb3JlKCcyMDExLTAxLTAxJywgJ3llYXInKS8vID0+IGJvb2xlYW4KICAgICAqIGBgYAogICAgICogVW5pdHMgYXJlIGNhc2UgaW5zZW5zaXRpdmUsIGFuZCBzdXBwb3J0IHBsdXJhbCBhbmQgc2hvcnQgZm9ybXMuCiAgICAgKgogICAgICogRG9jczogaHR0cHM6Ly9kYXkuanMub3JnL2RvY3MvZW4vcXVlcnkvaXMtYmVmb3JlCiAgICAgKi8KICAgIGlzQmVmb3JlKGRhdGU/OiBDb25maWdUeXBlLCB1bml0PzogT3BVbml0VHlwZSk6IGJvb2xlYW4KICAgIC8qKgogICAgICogVGhpcyBpbmRpY2F0ZXMgd2hldGhlciB0aGUgRGF5LmpzIG9iamVjdCBpcyB0aGUgc2FtZSBhcyB0aGUgb3RoZXIgc3VwcGxpZWQgZGF0ZS10aW1lLgogICAgICogYGBgCiAgICAgKiBkYXlqcygpLmlzU2FtZShkYXlqcygnMjAxMS0wMS0wMScpKSAvLyBkZWZhdWx0IG1pbGxpc2Vjb25kcwogICAgICogYGBgCiAgICAgKiBJZiB5b3Ugd2FudCB0byBsaW1pdCB0aGUgZ3JhbnVsYXJpdHkgdG8gYSB1bml0IG90aGVyIHRoYW4gbWlsbGlzZWNvbmRzLCBwYXNzIGl0IGFzIHRoZSBzZWNvbmQgcGFyYW1ldGVyLgogICAgICogYGBgCiAgICAgKiBkYXlqcygpLmlzU2FtZSgnMjAxMS0wMS0wMScsICd5ZWFyJykvLyA9PiBib29sZWFuCiAgICAgKiBgYGAKICAgICAqIERvY3M6IGh0dHBzOi8vZGF5LmpzLm9yZy9kb2NzL2VuL3F1ZXJ5L2lzLXNhbWUKICAgICAqLwogICAgaXNTYW1lKGRhdGU/OiBDb25maWdUeXBlLCB1bml0PzogT3BVbml0VHlwZSk6IGJvb2xlYW4KICAgIC8qKgogICAgICogVGhpcyBpbmRpY2F0ZXMgd2hldGhlciB0aGUgRGF5LmpzIG9iamVjdCBpcyBhZnRlciB0aGUgb3RoZXIgc3VwcGxpZWQgZGF0ZS10aW1lLgogICAgICogYGBgCiAgICAgKiBkYXlqcygpLmlzQWZ0ZXIoZGF5anMoJzIwMTEtMDEtMDEnKSkgLy8gZGVmYXVsdCBtaWxsaXNlY29uZHMKICAgICAqIGBgYAogICAgICogSWYgeW91IHdhbnQgdG8gbGltaXQgdGhlIGdyYW51bGFyaXR5IHRvIGEgdW5pdCBvdGhlciB0aGFuIG1pbGxpc2Vjb25kcywgcGFzcyBpdCBhcyB0aGUgc2Vjb25kIHBhcmFtZXRlci4KICAgICAqIGBgYAogICAgICogZGF5anMoKS5pc0FmdGVyKCcyMDExLTAxLTAxJywgJ3llYXInKS8vID0+IGJvb2xlYW4KICAgICAqIGBgYAogICAgICogVW5pdHMgYXJlIGNhc2UgaW5zZW5zaXRpdmUsIGFuZCBzdXBwb3J0IHBsdXJhbCBhbmQgc2hvcnQgZm9ybXMuCiAgICAgKgogICAgICogRG9jczogaHR0cHM6Ly9kYXkuanMub3JnL2RvY3MvZW4vcXVlcnkvaXMtYWZ0ZXIKICAgICAqLwogICAgaXNBZnRlcihkYXRlPzogQ29uZmlnVHlwZSwgdW5pdD86IE9wVW5pdFR5cGUpOiBib29sZWFuCgogICAgbG9jYWxlKCk6IHN0cmluZwoKICAgIGxvY2FsZShwcmVzZXQ6IHN0cmluZyB8IElMb2NhbGUsIG9iamVjdD86IFBhcnRpYWw8SUxvY2FsZT4pOiBEYXlqcwogIH0KCiAgZXhwb3J0IHR5cGUgUGx1Z2luRnVuYzxUID0gdW5rbm93bj4gPSAob3B0aW9uOiBULCBjOiB0eXBlb2YgRGF5anMsIGQ6IHR5cGVvZiBkYXlqcykgPT4gdm9pZAoKICBleHBvcnQgZnVuY3Rpb24gZXh0ZW5kPFQgPSB1bmtub3duPihwbHVnaW46IFBsdWdpbkZ1bmM8VD4sIG9wdGlvbj86IFQpOiBEYXlqcwoKICBleHBvcnQgZnVuY3Rpb24gbG9jYWxlKHByZXNldD86IHN0cmluZyB8IElMb2NhbGUsIG9iamVjdD86IFBhcnRpYWw8SUxvY2FsZT4sIGlzTG9jYWw/OiBib29sZWFuKTogc3RyaW5nCgogIGV4cG9ydCBmdW5jdGlvbiBpc0RheWpzKGQ6IGFueSk6IGQgaXMgRGF5anMKCiAgZXhwb3J0IGZ1bmN0aW9uIHVuaXgodDogbnVtYmVyKTogRGF5anMKCiAgY29uc3QgTHMgOiB7IFtrZXk6IHN0cmluZ10gOiAgSUxvY2FsZSB9Cn0K";
|
|
329
329
|
const JSONPATH_BASE64 = "dHlwZSBQYXRoQ29tcG9uZW50ID0gc3RyaW5nIHwgbnVtYmVyOwoKLyoqCiAqIEZpbmQgZWxlbWVudHMgaW4gYG9iamAgbWF0Y2hpbmcgYHBhdGhFeHByZXNzaW9uYC4gUmV0dXJucyBhbiBhcnJheSBvZiBlbGVtZW50cyB0aGF0CiAqIHNhdGlzZnkgdGhlIHByb3ZpZGVkIEpTT05QYXRoIGV4cHJlc3Npb24sb3IgYW4gZW1wdHkgYXJyYXkgaWYgbm9uZSB3ZXJlIG1hdGNoZWQuCiAqIFJldHVybnMgb25seSBmaXJzdCBgY291bnRgIGVsZW1lbnRzIGlmIHNwZWNpZmllZC4KICovCmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHF1ZXJ5KG9iajogYW55LCBwYXRoRXhwcmVzc2lvbjogc3RyaW5nLCBjb3VudD86IG51bWJlcik6IGFueVtdOwoKLyoqCiAqIEZpbmQgcGF0aHMgdG8gZWxlbWVudHMgaW4gYG9iamAgbWF0Y2hpbmcgYHBhdGhFeHByZXNzaW9uYC4gUmV0dXJucyBhbiBhcnJheSBvZgogKiBlbGVtZW50IHBhdGhzIHRoYXQgc2F0aXNmeSB0aGUgcHJvdmlkZWQgSlNPTlBhdGggZXhwcmVzc2lvbi4gRWFjaCBwYXRoIGlzIGl0c2VsZiBhbgogKiBhcnJheSBvZiBrZXlzIHJlcHJlc2VudGluZyB0aGUgbG9jYXRpb24gd2l0aGluIGBvYmpgIG9mIHRoZSBtYXRjaGluZyBlbGVtZW50LiBSZXR1cm5zCiAqIG9ubHkgZmlyc3QgYGNvdW50YCBwYXRocyBpZiBzcGVjaWZpZWQuCiAqLwpleHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBwYXRocyhvYmo6IGFueSwgcGF0aEV4cHJlc3Npb246IHN0cmluZywgY291bnQ/OiBudW1iZXIpOiBQYXRoQ29tcG9uZW50W11bXTsKCi8qKgogKiBGaW5kIGVsZW1lbnRzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHBhdGhzIGluIGBvYmpgIG1hdGNoaW5nIGBwYXRoRXhwcmVzc2lvbmAuCiAqIFJldHVybnMgYW4gYXJyYXkgb2Ygbm9kZSBvYmplY3RzIHdoZXJlIGVhY2ggbm9kZSBoYXMgYSBgcGF0aGAgY29udGFpbmluZyBhbiBhcnJheSBvZgogKiBrZXlzIHJlcHJlc2VudGluZyB0aGUgbG9jYXRpb24gd2l0aGluIGBvYmpgLCBhbmQgYSBgdmFsdWVgIHBvaW50aW5nIHRvIHRoZSBtYXRjaGVkCiAqIGVsZW1lbnQuIFJldHVybnMgb25seSBmaXJzdCBgY291bnRgIG5vZGVzIGlmIHNwZWNpZmllZC4KICovCmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIG5vZGVzKAogICAgb2JqOiBhbnksCiAgICBwYXRoRXhwcmVzc2lvbjogc3RyaW5nLAogICAgY291bnQ/OiBudW1iZXIsCik6IEFycmF5PHsgcGF0aDogUGF0aENvbXBvbmVudFtdOyB2YWx1ZTogYW55IH0+OwoKLyoqCiAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBmaXJzdCBlbGVtZW50IG1hdGNoaW5nIGBwYXRoRXhwcmVzc2lvbmAuIElmIGBuZXdWYWx1ZWAgaXMKICogcHJvdmlkZWQsIHNldHMgdGhlIHZhbHVlIG9mIHRoZSBmaXJzdCBtYXRjaGluZyBlbGVtZW50IGFuZCByZXR1cm5zIHRoZSBuZXcgdmFsdWUuCiAqLwpleHBvcnQgZGVjbGFyZSBmdW5jdGlvbiB2YWx1ZShvYmo6IGFueSwgcGF0aEV4cHJlc3Npb246IHN0cmluZyk6IGFueTsKZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gdmFsdWU8VD4ob2JqOiBhbnksIHBhdGhFeHByZXNzaW9uOiBzdHJpbmcsIG5ld1ZhbHVlOiBUKTogVDsKCi8qKgogKiBSZXR1cm5zIHRoZSBwYXJlbnQgb2YgdGhlIGZpcnN0IG1hdGNoaW5nIGVsZW1lbnQuCiAqLwpleHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBwYXJlbnQob2JqOiBhbnksIHBhdGhFeHByZXNzaW9uOiBzdHJpbmcpOiBhbnk7CgovKioKICogUnVucyB0aGUgc3VwcGxpZWQgZnVuY3Rpb24gYGZuYCBvbiBlYWNoIG1hdGNoaW5nIGVsZW1lbnQsIGFuZCByZXBsYWNlcyBlYWNoCiAqIG1hdGNoaW5nIGVsZW1lbnQgd2l0aCB0aGUgcmV0dXJuIHZhbHVlIGZyb20gdGhlIGZ1bmN0aW9uLiBUaGUgZnVuY3Rpb24gYWNjZXB0cyB0aGUKICogdmFsdWUgb2YgdGhlIG1hdGNoaW5nIGVsZW1lbnQgYXMgaXRzIG9ubHkgcGFyYW1ldGVyLiBSZXR1cm5zIG1hdGNoaW5nIG5vZGVzIHdpdGgKICogdGhlaXIgdXBkYXRlZCB2YWx1ZXMuCiAqLwpleHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBhcHBseSgKICAgIG9iajogYW55LAogICAgcGF0aEV4cHJlc3Npb246IHN0cmluZywKICAgIGZuOiAoeDogYW55KSA9PiBhbnksCik6IEFycmF5PHsgcGF0aDogUGF0aENvbXBvbmVudFtdOyB2YWx1ZTogYW55IH0+OwoKLyoqCiAqIFBhcnNlIHRoZSBwcm92aWRlZCBKU09OUGF0aCBleHByZXNzaW9uIGludG8gcGF0aCBjb21wb25lbnRzIGFuZCB0aGVpciBhc3NvY2lhdGVkCiAqIG9wZXJhdGlvbnMuCiAqLwpleHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBwYXJzZShwYXRoRXhwcmVzc2lvbjogc3RyaW5nKTogYW55W107CgovKioKICogUmV0dXJucyBhIHBhdGggZXhwcmVzc2lvbiBpbiBzdHJpbmcgZm9ybSwgZ2l2ZW4gYSBwYXRoLiBUaGUgc3VwcGxpZWQgcGF0aCBtYXkgZWl0aGVyCiAqIGJlIGEgZmxhdCBhcnJheSBvZiBrZXlzLCBhcyByZXR1cm5lZCBieSBganAubm9kZXNgIGZvciBleGFtcGxlLCBvciBtYXkgYWx0ZXJuYXRpdmVseSBiZSBhCiAqIGZ1bGx5IHBhcnNlZCBwYXRoIGV4cHJlc3Npb24gaW4gdGhlIGZvcm0gb2YgYW4gYXJyYXkgb2YgcGF0aCBjb21wb25lbnRzIGFzIHJldHVybmVkCiAqIGJ5IGBqcC5wYXJzZWAuCiAqLwpleHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBzdHJpbmdpZnkocGF0aDogUGF0aENvbXBvbmVudFtdKTogc3RyaW5nOwoKZXhwb3J0IGFzIG5hbWVzcGFjZSBqc29ucGF0aDsK";
|
|
330
|
-
const SMART_LEGAL_CONTRACT_BASE64 = "LyoKICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiAqCiAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogKgogKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgogKi8KCi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1vYmplY3QtdHlwZSAqLwoKLy8gd2UgZHVwbGljYXRlIHRoZXNlIGludGVyZmFjZXMgaGVyZSB0byBhdm9pZCBpbXBvcnRzIGludG8gdGhlIHJ1bnRpbWUKaW50ZXJmYWNlIElDb25jZXB0IHsKICAgICRjbGFzczogc3RyaW5nOwogfQoKaW50ZXJmYWNlIElUcmFuc2FjdGlvbiBleHRlbmRzIElDb25jZXB0IHsKICAgICR0aW1lc3RhbXA6IERhdGU7CiB9CgppbnRlcmZhY2UgSUV2ZW50IGV4dGVuZHMgSUNvbmNlcHQgewogICAkdGltZXN0YW1wOiBEYXRlOwp9CgppbnRlcmZhY2UgSVN0YXRlIHsKICAgICRpZGVudGlmaWVyOiBzdHJpbmc7Cn0KCmludGVyZmFjZSBFbmdpbmVSZXNwb25zZTxTIGV4dGVuZHMgSVN0YXRlPiB7CiAgICBzdGF0ZT86IFM7CiAgICBldmVudHM/OiBBcnJheTxJRXZlbnQ+
|
|
330
|
+
const SMART_LEGAL_CONTRACT_BASE64 = "LyoKICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiAqCiAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogKgogKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgogKi8KCi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1vYmplY3QtdHlwZSAqLwoKLy8gd2UgZHVwbGljYXRlIHRoZXNlIGludGVyZmFjZXMgaGVyZSB0byBhdm9pZCBpbXBvcnRzIGludG8gdGhlIHJ1bnRpbWUKaW50ZXJmYWNlIElDb25jZXB0IHsKICAgICRjbGFzczogc3RyaW5nOwogfQoKaW50ZXJmYWNlIElUcmFuc2FjdGlvbiBleHRlbmRzIElDb25jZXB0IHsKICAgICR0aW1lc3RhbXA6IERhdGU7CiB9CgppbnRlcmZhY2UgSUV2ZW50IGV4dGVuZHMgSUNvbmNlcHQgewogICAkdGltZXN0YW1wOiBEYXRlOwp9CgppbnRlcmZhY2UgSVN0YXRlIHsKICAgICRpZGVudGlmaWVyOiBzdHJpbmc7Cn0KCmludGVyZmFjZSBFbmdpbmVSZXNwb25zZTxTIGV4dGVuZHMgSVN0YXRlPiB7CiAgICBzdGF0ZT86IFM7CiAgICBldmVudHM/OiBBcnJheTxJRXZlbnQ+Cn0KCmludGVyZmFjZSBJUmVxdWVzdCBleHRlbmRzIElUcmFuc2FjdGlvbiB7Cn0KCmludGVyZmFjZSBJUmVzcG9uc2UgZXh0ZW5kcyBJVHJhbnNhY3Rpb24gewp9CgppbnRlcmZhY2UgSUFzc2V0IGV4dGVuZHMgSUNvbmNlcHQgewogICAkaWRlbnRpZmllcjogc3RyaW5nOwp9CgppbnRlcmZhY2UgSUNvbnRyYWN0IGV4dGVuZHMgSUFzc2V0IHsKICAgY29udHJhY3RJZDogc3RyaW5nOwp9CgppbnRlcmZhY2UgSUNsYXVzZSBleHRlbmRzIElBc3NldCB7CiAgIGNsYXVzZUlkOiBzdHJpbmc7Cn0KCmludGVyZmFjZSBUcmlnZ2VyUmVzcG9uc2U8UyBleHRlbmRzIElTdGF0ZSA9IElTdGF0ZT4gZXh0ZW5kcyBFbmdpbmVSZXNwb25zZTxTPiB7CiAgICByZXN1bHQ6IElSZXNwb25zZTsKfQoKaW50ZXJmYWNlIEluaXRSZXNwb25zZTxTIGV4dGVuZHMgSVN0YXRlPiBleHRlbmRzIEVuZ2luZVJlc3BvbnNlPFM+IHt9Cgp0eXBlIFRlbXBsYXRlRGF0YSA9IElDb250cmFjdHxJQ2xhdXNlOwoKZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRlbXBsYXRlTG9naWM8VCBleHRlbmRzIFRlbXBsYXRlRGF0YSwgUyBleHRlbmRzIElTdGF0ZSA9IElTdGF0ZT4gewogICAgYWJzdHJhY3QgdHJpZ2dlcihkYXRhOiBULCByZXF1ZXN0OiBJUmVxdWVzdCwgc3RhdGU6UykgOiBQcm9taXNlPFRyaWdnZXJSZXNwb25zZTxTPj47CiAgICBpbml0KGRhdGE6IFQpIDogUHJvbWlzZTxJbml0UmVzcG9uc2U8Uz58dW5kZWZpbmVkPjsKfQo=";
|
|
331
331
|
|
|
332
332
|
const TYPESCRIPT_URL = process.env.TYPESCRIPT_URL ? process.env.TYPESCRIPT_URL : "https://cdn.jsdelivr.net/npm/typescript@4.9.4/+esm";
|
|
333
333
|
const SCRIPT_TARGET = 9;
|
|
@@ -508,7 +508,10 @@ class JavaScriptEvaluator {
|
|
|
508
508
|
const dataUri = "data:text/javascript;base64," + btoa(request.code);
|
|
509
509
|
dynamicImport(dataUri).then((templateLogicConstructor) => {
|
|
510
510
|
const instance = new templateLogicConstructor();
|
|
511
|
-
|
|
511
|
+
if (!request.functionName) {
|
|
512
|
+
throw new Error("No function name specified for template logic");
|
|
513
|
+
}
|
|
514
|
+
result = instance[request.functionName](...request.arguments);
|
|
512
515
|
const end = (/* @__PURE__ */ new Date()).getTime();
|
|
513
516
|
resolve({ result, elapsed: end - start });
|
|
514
517
|
}).catch((err) => {
|
|
@@ -729,6 +732,35 @@ async function evaluateUserCode(clauseLibrary, templateMark, data, options) {
|
|
|
729
732
|
}
|
|
730
733
|
return result;
|
|
731
734
|
}
|
|
735
|
+
async function generateOptionalBlocks(modelManager, clauseLibrary, templateMark, data, options) {
|
|
736
|
+
const result = {};
|
|
737
|
+
const paths = traverse(templateMark).paths();
|
|
738
|
+
for (let n = 0; n < paths.length; n++) {
|
|
739
|
+
const thisPath = paths[n];
|
|
740
|
+
const context = traverse(templateMark).get(thisPath);
|
|
741
|
+
if (typeof context === "object" && context.$class && typeof context.$class === "string") {
|
|
742
|
+
const nodeClass = context.$class;
|
|
743
|
+
if (OPTIONAL_DEFINITION_RE.test(nodeClass)) {
|
|
744
|
+
const path = getJsonPath(templateMark, context, thisPath);
|
|
745
|
+
const variableValues = jp.query(data, path, 1);
|
|
746
|
+
if (variableValues.length > 0) {
|
|
747
|
+
const optionalPropertyValue = variableValues[0];
|
|
748
|
+
if (context.whenSome && context.whenSome.length > 0) {
|
|
749
|
+
const whenSomeParagraph = {
|
|
750
|
+
$class: "org.accordproject.commonmark@0.5.0.Paragraph",
|
|
751
|
+
nodes: context.whenSome
|
|
752
|
+
};
|
|
753
|
+
const subResult = await generateAgreement(modelManager, clauseLibrary, whenSomeParagraph, optionalPropertyValue, options);
|
|
754
|
+
result[thisPath.join("/")] = subResult.nodes ? subResult.nodes : [];
|
|
755
|
+
} else {
|
|
756
|
+
result[thisPath.join("/")] = [];
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
return result;
|
|
763
|
+
}
|
|
732
764
|
async function generateRecursiveBlocks(modelManager, clauseLibrary, templateMark, data, nodeRegExp, childNodeClass, options) {
|
|
733
765
|
const result = {};
|
|
734
766
|
const paths = traverse(templateMark).paths();
|
|
@@ -769,6 +801,7 @@ async function generateAgreement(modelManager, clauseLibrary, templateMark, data
|
|
|
769
801
|
const userCodeResults = await evaluateUserCode(clauseLibrary, templateMark, data, options);
|
|
770
802
|
const listBlockResults = await generateRecursiveBlocks(modelManager, clauseLibrary, templateMark, data, LISTBLOCK_DEFINITION_RE, `${markdownCommon.CommonMarkModel.NAMESPACE}.Item`, options);
|
|
771
803
|
const foreachBlockResults = await generateRecursiveBlocks(modelManager, clauseLibrary, templateMark, data, FOREACH_DEFINITION_RE, `${markdownCommon.CommonMarkModel.NAMESPACE}.Paragraph`, options);
|
|
804
|
+
const optionalBlockResults = await generateOptionalBlocks(modelManager, clauseLibrary, templateMark, data, options);
|
|
772
805
|
return traverse(templateMark).map(function(context) {
|
|
773
806
|
let stopHere = false;
|
|
774
807
|
if (typeof context === "object" && context.$class && typeof context.$class === "string") {
|
|
@@ -894,14 +927,21 @@ async function generateAgreement(modelManager, clauseLibrary, templateMark, data
|
|
|
894
927
|
if (variableValues.length === 1) {
|
|
895
928
|
context.hasSome = true;
|
|
896
929
|
context.whenNone = [];
|
|
930
|
+
if (optionalBlockResults[this.path.join("/")]) {
|
|
931
|
+
context.nodes = optionalBlockResults[this.path.join("/")];
|
|
932
|
+
context.whenSome = [];
|
|
933
|
+
stopHere = true;
|
|
934
|
+
} else {
|
|
935
|
+
context.nodes = context.whenSome;
|
|
936
|
+
}
|
|
897
937
|
} else {
|
|
898
938
|
throw new Error(`Multiple values found for path '${path}' in data ${data}.`);
|
|
899
939
|
}
|
|
900
940
|
} else {
|
|
901
941
|
context.hasSome = false;
|
|
902
942
|
context.whenSome = [];
|
|
943
|
+
context.nodes = context.whenNone;
|
|
903
944
|
}
|
|
904
|
-
context.nodes = context.hasSome ? context.whenSome : context.whenNone;
|
|
905
945
|
}
|
|
906
946
|
}
|
|
907
947
|
this.update(context, stopHere);
|
|
@@ -1056,15 +1096,62 @@ class TemplateArchiveProcessor {
|
|
|
1056
1096
|
const evaluator = new JavaScriptEvaluator();
|
|
1057
1097
|
const evalResponse = await evaluator.evalDangerously({
|
|
1058
1098
|
templateLogic: true,
|
|
1059
|
-
verbose:
|
|
1099
|
+
verbose: false,
|
|
1100
|
+
functionName: "trigger",
|
|
1060
1101
|
code: compiledCode["logic/logic.ts"].code,
|
|
1061
1102
|
// TODO DCS - how to find the code to run?
|
|
1062
1103
|
argumentNames: ["data", "request", "state"],
|
|
1063
1104
|
arguments: [data, request, state, currentTime, utcOffset]
|
|
1064
1105
|
});
|
|
1065
|
-
|
|
1106
|
+
if (evalResponse.result) {
|
|
1107
|
+
return evalResponse.result;
|
|
1108
|
+
} else {
|
|
1109
|
+
throw new Error("Trigger failed with message: " + evalResponse.message);
|
|
1110
|
+
}
|
|
1111
|
+
} else {
|
|
1112
|
+
throw new Error("Only TypeScript is supported at this time");
|
|
1113
|
+
}
|
|
1114
|
+
}
|
|
1115
|
+
/**
|
|
1116
|
+
* Init the logic of a template
|
|
1117
|
+
* @param {[string]} currentTime - the current time, defaults to now
|
|
1118
|
+
* @param {[number]} utcOffset - the UTC offer, defaults to zero
|
|
1119
|
+
* @returns {Promise} the response and any events
|
|
1120
|
+
*/
|
|
1121
|
+
async init(data, currentTime, utcOffset) {
|
|
1122
|
+
const logicManager = this.template.getLogicManager();
|
|
1123
|
+
if (logicManager.getLanguage() === "typescript") {
|
|
1124
|
+
const compiledCode = {};
|
|
1125
|
+
const tsFiles = logicManager.getScriptManager().getScriptsForTarget("typescript");
|
|
1126
|
+
for (let n = 0; n < tsFiles.length; n++) {
|
|
1127
|
+
const tsFile = tsFiles[n];
|
|
1128
|
+
const compiler = new TypeScriptToJavaScriptCompiler(
|
|
1129
|
+
this.template.getModelManager(),
|
|
1130
|
+
this.template.getTemplateModel().getFullyQualifiedName()
|
|
1131
|
+
);
|
|
1132
|
+
await compiler.initialize();
|
|
1133
|
+
const code = `${Buffer.from(SMART_LEGAL_CONTRACT_BASE64, "base64").toString()}
|
|
1134
|
+
${tsFile.getContents()}`;
|
|
1135
|
+
const result = compiler.compile(code);
|
|
1136
|
+
compiledCode[tsFile.getIdentifier()] = result;
|
|
1137
|
+
}
|
|
1138
|
+
const evaluator = new JavaScriptEvaluator();
|
|
1139
|
+
const evalResponse = await evaluator.evalDangerously({
|
|
1140
|
+
templateLogic: true,
|
|
1141
|
+
verbose: false,
|
|
1142
|
+
functionName: "init",
|
|
1143
|
+
code: compiledCode["logic/logic.ts"].code,
|
|
1144
|
+
// TODO DCS - how to find the code to run?
|
|
1145
|
+
argumentNames: ["data"],
|
|
1146
|
+
arguments: [data, currentTime, utcOffset]
|
|
1147
|
+
});
|
|
1148
|
+
if (evalResponse.result) {
|
|
1149
|
+
return evalResponse.result;
|
|
1150
|
+
} else {
|
|
1151
|
+
throw new Error("Init failed with message: " + evalResponse.message);
|
|
1152
|
+
}
|
|
1066
1153
|
} else {
|
|
1067
|
-
|
|
1154
|
+
throw new Error("Only TypeScript is supported at this time");
|
|
1068
1155
|
}
|
|
1069
1156
|
}
|
|
1070
1157
|
}
|