motoko 3.0.0-beta0 → 3.0.0-beta2
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +26 -6
- package/lib/ast.d.ts +23 -0
- package/lib/ast.d.ts.map +1 -0
- package/lib/ast.js +31 -0
- package/lib/ast.js.map +1 -0
- package/lib/file.d.ts +5 -6
- package/lib/file.d.ts.map +1 -1
- package/lib/file.js +3 -0
- package/lib/file.js.map +1 -1
- package/lib/index.d.ts +20 -17
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +39 -8
- package/lib/index.js.map +1 -1
- package/lib/package.d.ts +3 -2
- package/lib/package.d.ts.map +1 -1
- package/lib/package.js +42 -6
- package/lib/package.js.map +1 -1
- package/lib/utils/resolveEntryPoint.d.ts +4 -0
- package/lib/utils/resolveEntryPoint.d.ts.map +1 -0
- package/lib/utils/resolveEntryPoint.js +48 -0
- package/lib/utils/resolveEntryPoint.js.map +1 -0
- package/lib/versions/interpreter.d.ts +18 -16
- package/lib/versions/interpreter.d.ts.map +1 -1
- package/lib/versions/moc.d.ts +18 -16
- package/lib/versions/moc.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/ast.ts +69 -0
- package/src/file.ts +3 -0
- package/src/index.ts +51 -14
- package/src/package.ts +56 -3
- package/src/utils/resolveEntryPoint.ts +64 -0
- package/versions/latest/moc.min.js +1 -1
- package/versions/latest/moc_interpreter.min.js +1 -1
package/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
|
2
|
-
#
|
2
|
+
# Motoko.js [![npm version](https://img.shields.io/npm/v/motoko.svg?logo=npm)](https://www.npmjs.com/package/motoko) [![GitHub license](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/dfinity/motoko/issues)
|
3
3
|
|
4
4
|
> #### Compile and run [Motoko](https://smartcontracts.org/) smart contracts in Node.js or the browser.
|
5
5
|
|
@@ -60,7 +60,7 @@ mo.file('Main.mo')
|
|
60
60
|
|
61
61
|
```js
|
62
62
|
mo.clearPackages();
|
63
|
-
await mo.
|
63
|
+
await mo.installPackages({
|
64
64
|
base: 'dfinity/motoko-base/master/src', // import "mo:base/...";
|
65
65
|
});
|
66
66
|
```
|
@@ -102,17 +102,25 @@ mo.delete(path)
|
|
102
102
|
// List the files in a virtual directory
|
103
103
|
mo.list(path)
|
104
104
|
|
105
|
-
|
105
|
+
// Fetch a package from GitHub or jsDelivr
|
106
|
+
await mo.fetchPackage(name, source);
|
107
|
+
await mo.fetchPackage('base', 'dfinity/motoko-base/master/src');
|
106
108
|
|
107
|
-
// Try to load packages from GitHub
|
108
|
-
await mo.
|
109
|
+
// Try to fetch and load packages from GitHub or jsDelivr
|
110
|
+
await mo.installPackages({ [packageName]: repositoryPath, ... })
|
111
|
+
|
112
|
+
// Load a value returned from `fetchPackage()`
|
113
|
+
mo.loadPackage(package)
|
109
114
|
|
110
115
|
// Use a virtual directory as a package
|
111
|
-
mo.
|
116
|
+
mo.usePackage(packageName, directory)
|
112
117
|
|
113
118
|
// Clear loaded packages
|
114
119
|
mo.clearPackages()
|
115
120
|
|
121
|
+
// Ensure that a package is correctly formatted
|
122
|
+
mo.validatePackage(package)
|
123
|
+
|
116
124
|
// Configure the compiler to resolve `import "canister:{alias}";` -> `import "canister:{id}";`
|
117
125
|
mo.setAliases({ alias: id, ... })
|
118
126
|
|
@@ -136,9 +144,18 @@ mo.wasm(path, 'wasi') // WASI interface format
|
|
136
144
|
// Return the parse tree for a Motoko string
|
137
145
|
mo.parseMotoko(motokoString)
|
138
146
|
|
147
|
+
// Return the parse tree (with types) for a Motoko string
|
148
|
+
mo.parseMotokoTyped(motokoString)
|
149
|
+
|
139
150
|
// Return the parse tree for a Candid string
|
140
151
|
mo.parseCandid(candidString)
|
141
152
|
|
153
|
+
// Find the 'Main.mo' file or an equivalent canister entry point
|
154
|
+
mo.resolveMain(directory = '')
|
155
|
+
|
156
|
+
// Find the 'Lib.mo' file or an equivalent library entry point
|
157
|
+
mo.resolveLib(directory = '')
|
158
|
+
|
142
159
|
// Get the compiler version ('latest' by default)
|
143
160
|
mo.version
|
144
161
|
|
@@ -189,6 +206,9 @@ file.wasm('wasi') // note: cannot contain actors
|
|
189
206
|
// Parse the file as a Motoko program
|
190
207
|
file.parseMotoko()
|
191
208
|
|
209
|
+
// Parse the file (with types) as a Motoko program
|
210
|
+
file.parseMotokoTypes()
|
211
|
+
|
192
212
|
// Parse the file as a Candid interface
|
193
213
|
file.parseCandid()
|
194
214
|
```
|
package/lib/ast.d.ts
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
export declare type CompilerAST = CompilerAST[] | CompilerNode | string | null;
|
2
|
+
export declare type CompilerSpan = {
|
3
|
+
name: 'Pos';
|
4
|
+
args: [string, string, string];
|
5
|
+
};
|
6
|
+
export interface CompilerNode {
|
7
|
+
name: string;
|
8
|
+
args: CompilerAST[];
|
9
|
+
}
|
10
|
+
export declare type Span = [number, number];
|
11
|
+
export declare type AST = AST[] | Node | string | null;
|
12
|
+
export interface Node {
|
13
|
+
name: string;
|
14
|
+
file?: string;
|
15
|
+
start?: Span;
|
16
|
+
end?: Span;
|
17
|
+
type?: Node;
|
18
|
+
args?: AST[];
|
19
|
+
}
|
20
|
+
export declare function simplifyAST(ast: CompilerNode): Node;
|
21
|
+
export declare function simplifyAST(ast: CompilerAST[]): AST[];
|
22
|
+
export declare function simplifyAST<T extends CompilerAST>(ast: T): T;
|
23
|
+
//# sourceMappingURL=ast.d.ts.map
|
package/lib/ast.d.ts.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW,GAAG,WAAW,EAAE,GAAG,YAAY,GAAG,MAAM,GAAG,IAAI,CAAC;AACvE,oBAAY,YAAY,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC;AAE3E,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,oBAAY,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACpC,oBAAY,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;AAE/C,MAAM,WAAW,IAAI;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;CAChB;AAQD,wBAAgB,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,CAAC;AACrD,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,GAAG,EAAE,CAAC;AACvD,wBAAgB,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC"}
|
package/lib/ast.js
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.simplifyAST = void 0;
|
4
|
+
function simplifyAST(ast) {
|
5
|
+
if (Array.isArray(ast)) {
|
6
|
+
return ast.map((a) => simplifyAST(a));
|
7
|
+
}
|
8
|
+
if (typeof ast !== 'object') {
|
9
|
+
return ast;
|
10
|
+
}
|
11
|
+
if (ast.name === '@') {
|
12
|
+
const [start, end, subAst] = ast.args;
|
13
|
+
return Object.assign(Object.assign({}, (typeof subAst === 'string'
|
14
|
+
? { name: subAst }
|
15
|
+
: simplifyAST(subAst))), { file: start.args[0], start: [+start.args[1], +start.args[2]], end: [+end.args[1], +end.args[2]] });
|
16
|
+
}
|
17
|
+
if (ast.name === ':') {
|
18
|
+
const [type, subAst] = ast.args;
|
19
|
+
// console.log(subAst); ////
|
20
|
+
return Object.assign(Object.assign({}, (typeof subAst === 'string'
|
21
|
+
? { name: subAst }
|
22
|
+
: simplifyAST(subAst))), { type: simplifyAST(type) });
|
23
|
+
}
|
24
|
+
return {
|
25
|
+
name: ast.name,
|
26
|
+
args: simplifyAST(ast.args),
|
27
|
+
};
|
28
|
+
}
|
29
|
+
exports.simplifyAST = simplifyAST;
|
30
|
+
// export function getTypeString(type: Type) {}
|
31
|
+
//# sourceMappingURL=ast.js.map
|
package/lib/ast.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":";;;AA8BA,SAAgB,WAAW,CAAC,GAAgB;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;KACzC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QACzB,OAAO,GAAG,CAAC;KACd;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;QAClB,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,IAIhC,CAAC;QACF,uCACO,CAAC,OAAO,MAAM,KAAK,QAAQ;YAC1B,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;YAClB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAC1B,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EACnB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EACvC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IACnC;KACL;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;QAClB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,IAAmC,CAAC;QAC/D,4BAA4B;QAC5B,uCACO,CAAC,OAAO,MAAM,KAAK,QAAQ;YAC1B,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;YAClB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAC1B,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IACzB;KACL;IACD,OAAO;QACH,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;KAC9B,CAAC;AACN,CAAC;AApCD,kCAoCC;AAED,+CAA+C"}
|
package/lib/file.d.ts
CHANGED
@@ -16,12 +16,11 @@ export declare const file: (mo: Motoko, path: string) => {
|
|
16
16
|
};
|
17
17
|
candid(): string;
|
18
18
|
wasm(mode: WasmMode): any;
|
19
|
-
parseMotoko():
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
parseCandid(): {
|
24
|
-
ast: object;
|
19
|
+
parseMotoko(): import("./ast").Node;
|
20
|
+
parseMotokoTyped(): {
|
21
|
+
ast: import("./ast").Node;
|
22
|
+
type: import("./ast").Node;
|
25
23
|
};
|
24
|
+
parseCandid(): object;
|
26
25
|
};
|
27
26
|
//# sourceMappingURL=file.d.ts.map
|
package/lib/file.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC;AAerC,oBAAY,UAAU,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;AAEjD,eAAO,MAAM,IAAI,OAAQ,MAAM,QAAQ,MAAM;;;YAa7B,MAAM;mBAGC,MAAM;oBAGL,MAAM;;;;;;;;;;eAoBX,QAAQ
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC;AAerC,oBAAY,UAAU,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;AAEjD,eAAO,MAAM,IAAI,OAAQ,MAAM,QAAQ,MAAM;;;YAa7B,MAAM;mBAGC,MAAM;oBAGL,MAAM;;;;;;;;;;eAoBX,QAAQ;;;;;;;CAc1B,CAAC"}
|
package/lib/file.js
CHANGED
package/lib/file.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":";;;AAEA,SAAS,YAAY,CAAC,IAAY;IAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;KACjD;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QACtB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACxB;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACpB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC5B;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAIM,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,IAAY,EAAE,EAAE;IAC7C,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,MAAM,GAAG;QACX,IAAI,IAAI;YACJ,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,kBAAkB;QAClB,uCAAuC;QACvC,iDAAiD;QACjD,KAAK;QACL,KAAK;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI;YACA,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,CAAC,OAAe;YACjB,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,CAAC,OAAe;YAClB,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACtC,IAAI,GAAG,OAAO,CAAC;YACf,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,MAAM;YACF,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI;YACA,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,KAAK;YACD,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,GAAG;YACC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,MAAM;YACF,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,IAAc;YACf,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,WAAW;YACP,OAAO,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,WAAW;YACP,OAAO,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;KACJ,CAAC;IACF,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../src/file.ts"],"names":[],"mappings":";;;AAEA,SAAS,YAAY,CAAC,IAAY;IAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;KACjD;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QACtB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACxB;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACpB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC5B;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAIM,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,IAAY,EAAE,EAAE;IAC7C,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,MAAM,GAAG;QACX,IAAI,IAAI;YACJ,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,kBAAkB;QAClB,uCAAuC;QACvC,iDAAiD;QACjD,KAAK;QACL,KAAK;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI;YACA,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,CAAC,OAAe;YACjB,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,CAAC,OAAe;YAClB,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACtC,IAAI,GAAG,OAAO,CAAC;YACf,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,MAAM;YACF,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI;YACA,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,KAAK;YACD,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,GAAG;YACC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,MAAM;YACF,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,IAAc;YACf,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,WAAW;YACP,OAAO,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,gBAAgB;YACZ,OAAO,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,WAAW;YACP,OAAO,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;KACJ,CAAC;IACF,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AArDW,QAAA,IAAI,QAqDf"}
|
package/lib/index.d.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
import {
|
1
|
+
import { Node } from './ast';
|
2
|
+
import { Package, PackageInfo } from './package';
|
2
3
|
export declare type Motoko = ReturnType<typeof wrapMotoko>;
|
3
4
|
declare type Compiler = any;
|
4
5
|
export declare type Diagnostic = {
|
@@ -41,24 +42,25 @@ export default function wrapMotoko(compiler: Compiler, version: string): {
|
|
41
42
|
};
|
42
43
|
candid(): string;
|
43
44
|
wasm(mode: WasmMode): any;
|
44
|
-
parseMotoko():
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
parseCandid(): {
|
49
|
-
ast: object;
|
45
|
+
parseMotoko(): Node;
|
46
|
+
parseMotokoTyped(): {
|
47
|
+
ast: Node;
|
48
|
+
type: Node;
|
50
49
|
};
|
50
|
+
parseCandid(): object;
|
51
51
|
};
|
52
52
|
read(path: string): string;
|
53
53
|
write(path: string, content?: string): void;
|
54
54
|
rename(path: string, newPath: string): void;
|
55
55
|
delete(path: string): void;
|
56
56
|
list(directory: string): string[];
|
57
|
-
fetchPackage(info: string | PackageInfo): Promise<
|
58
|
-
|
59
|
-
|
57
|
+
fetchPackage(name: string, info: string | PackageInfo): Promise<Package>;
|
58
|
+
installPackages(packages: Record<string, string | PackageInfo>): Promise<void>;
|
59
|
+
loadPackage(pkg: Package): void;
|
60
|
+
usePackage(name: string, directory: string): void;
|
60
61
|
clearPackages(): void;
|
61
|
-
|
62
|
+
validatePackage(pkg: Package): void;
|
63
|
+
setAliases(aliases: Record<string, string>): void;
|
62
64
|
setMetadata(values: string): void;
|
63
65
|
check(path: string): Diagnostic[];
|
64
66
|
run(path: string, libPaths?: string[] | undefined): {
|
@@ -68,13 +70,14 @@ export default function wrapMotoko(compiler: Compiler, version: string): {
|
|
68
70
|
};
|
69
71
|
candid(path: string): string;
|
70
72
|
wasm(path: string, mode: WasmMode): any;
|
71
|
-
parseMotoko(content: string):
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
parseCandid(content: string): {
|
76
|
-
ast: object;
|
73
|
+
parseMotoko(content: string): Node;
|
74
|
+
parseMotokoTyped(content: string): {
|
75
|
+
ast: Node;
|
76
|
+
type: Node;
|
77
77
|
};
|
78
|
+
parseCandid(content: string): object;
|
79
|
+
resolveMain(directory?: string): string | undefined;
|
80
|
+
resolveLib(directory?: string): string | undefined;
|
78
81
|
};
|
79
82
|
export {};
|
80
83
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,MAAM,OAAO,CAAC;AAE1C,OAAO,EAGH,OAAO,EACP,WAAW,EAEd,MAAM,WAAW,CAAC;AAGnB,oBAAY,MAAM,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEnD,aAAK,QAAQ,GAAG,GAAG,CAAC;AAGpB,oBAAY,UAAU,GAAG;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG;QAAE,MAAM,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QACH,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3C,GAAG,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;KAC5C,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,oBAAY,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC;AAErC,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM;;;eA2CnD,MAAM;;;;;;;;;;oBAkEJ,MAAM;oBAAU,MAAM;oBAAU,MAAM,GAAG,MAAM;;;;;;iBAkBlB,IAAI;kBAAQ,IAAI;;;;eAjF/C,MAAM,GAAG,MAAM;gBAGd,MAAM,YAAW,MAAM;iBAOtB,MAAM,WAAW,MAAM;iBAGvB,MAAM;oBAIH,MAAM,GAAG,MAAM,EAAE;uBAGT,MAAM,QAAQ,MAAM,GAAG,WAAW;8BAM1B,OAAO,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC;qBAGnD,OAAO;qBASP,MAAM,aAAa,MAAM;;yBAQrB,OAAO;wBAGR,OAAO,MAAM,EAAE,MAAM,CAAC;wBAItB,MAAM;gBAGd,MAAM,GAAG,UAAU,EAAE;cAKvB,MAAM,aACD,MAAM,EAAE,GAAG,SAAS,GAChC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;iBAGjD,MAAM,GAAG,MAAM;eAGjB,MAAM,QAAQ,QAAQ;yBAQZ,MAAM,GAAG,IAAI;8BAIR,MAAM;aAAU,IAAI;cAAQ,IAAI;;yBAOrC,MAAM,GAAG,MAAM;4BAGb,MAAM,GAAQ,MAAM,GAAG,SAAS;2BAGjC,MAAM,GAAQ,MAAM,GAAG,SAAS;EAO7D"}
|
package/lib/index.js
CHANGED
@@ -9,10 +9,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
9
9
|
});
|
10
10
|
};
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
+
const ast_1 = require("./ast");
|
12
13
|
const file_1 = require("./file");
|
13
14
|
const package_1 = require("./package");
|
15
|
+
const resolveEntryPoint_1 = require("./utils/resolveEntryPoint");
|
14
16
|
function wrapMotoko(compiler, version) {
|
15
|
-
const debug = require('debug')(
|
17
|
+
const debug = require('debug')(`motoko:${version}`);
|
16
18
|
const invoke = (key, unwrap, args) => {
|
17
19
|
if (!compiler) {
|
18
20
|
throw new Error('Please load a Motoko compiler before running this function');
|
@@ -70,24 +72,39 @@ function wrapMotoko(compiler, version) {
|
|
70
72
|
list(directory) {
|
71
73
|
return invoke('readDir', false, [directory]);
|
72
74
|
},
|
73
|
-
fetchPackage(info) {
|
75
|
+
fetchPackage(name, info) {
|
74
76
|
return __awaiter(this, void 0, void 0, function* () {
|
75
|
-
|
77
|
+
if (!info) {
|
78
|
+
throw new Error('Please specify both a name and source');
|
79
|
+
}
|
80
|
+
return (0, package_1.fetchPackage)(name, info);
|
76
81
|
});
|
77
82
|
},
|
78
|
-
|
83
|
+
installPackages(packages) {
|
79
84
|
return __awaiter(this, void 0, void 0, function* () {
|
80
|
-
return (0, package_1.
|
85
|
+
return (0, package_1.installPackages)(mo, packages);
|
81
86
|
});
|
82
87
|
},
|
83
|
-
|
84
|
-
debug('+package', name
|
88
|
+
loadPackage(pkg) {
|
89
|
+
debug('+package', pkg.name);
|
90
|
+
mo.validatePackage(pkg);
|
91
|
+
const directory = `.node-motoko/${pkg.name}/${pkg.version}`;
|
92
|
+
Object.entries(pkg.files).forEach(([path, file]) => {
|
93
|
+
mo.write(`${directory}/${path}`, file.content);
|
94
|
+
});
|
95
|
+
mo.usePackage(pkg.name, directory);
|
96
|
+
},
|
97
|
+
usePackage(name, directory) {
|
98
|
+
debug('@package', name, directory);
|
85
99
|
invoke('addPackage', false, [name, directory]);
|
86
100
|
},
|
87
101
|
clearPackages() {
|
88
102
|
debug('-packages');
|
89
103
|
invoke('clearPackage', false, []);
|
90
104
|
},
|
105
|
+
validatePackage(pkg) {
|
106
|
+
(0, package_1.validatePackage)(pkg);
|
107
|
+
},
|
91
108
|
setAliases(aliases) {
|
92
109
|
debug('aliases', aliases);
|
93
110
|
invoke('setActorAliases', false, [Object.entries(aliases)]);
|
@@ -115,11 +132,25 @@ function wrapMotoko(compiler, version) {
|
|
115
132
|
return invoke('compileWasm', true, [mode, path]);
|
116
133
|
},
|
117
134
|
parseMotoko(content) {
|
118
|
-
|
135
|
+
const ast = invoke('parseMotoko', true, [content]);
|
136
|
+
return (0, ast_1.simplifyAST)(ast);
|
137
|
+
},
|
138
|
+
parseMotokoTyped(content) {
|
139
|
+
const { ast, typ } = invoke('parseMotokoTyped', true, [content]);
|
140
|
+
return {
|
141
|
+
ast: (0, ast_1.simplifyAST)(ast),
|
142
|
+
type: (0, ast_1.simplifyAST)(typ),
|
143
|
+
};
|
119
144
|
},
|
120
145
|
parseCandid(content) {
|
121
146
|
return invoke('parseCandid', true, [content]);
|
122
147
|
},
|
148
|
+
resolveMain(directory = '') {
|
149
|
+
return (0, resolveEntryPoint_1.resolveMain)(mo, directory);
|
150
|
+
},
|
151
|
+
resolveLib(directory = '') {
|
152
|
+
return (0, resolveEntryPoint_1.resolveLib)(mo, directory);
|
153
|
+
},
|
123
154
|
};
|
124
155
|
// @ts-ignore
|
125
156
|
mo.default = mo;
|
package/lib/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,iCAA8B;AAC9B,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/package.d.ts
CHANGED
@@ -15,6 +15,7 @@ export declare type PackageFiles = Record<string, PackageFile>;
|
|
15
15
|
export interface PackageFile {
|
16
16
|
content: string;
|
17
17
|
}
|
18
|
-
export declare function fetchPackage(info: string | PackageInfo): Promise<Package | undefined>;
|
19
|
-
export declare function
|
18
|
+
export declare function fetchPackage(name: string, info: string | PackageInfo): Promise<Package | undefined>;
|
19
|
+
export declare function installPackages(mo: Motoko, packages: Record<string, string | PackageInfo>): Promise<void>;
|
20
|
+
export declare function validatePackage(pkg: Package): void;
|
20
21
|
//# sourceMappingURL=package.d.ts.map
|
package/lib/package.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC;
|
1
|
+
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC;AAG3B,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,YAAY,CAAC;CACvB;AAED,oBAAY,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEvD,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,MAAM,CAAC;CACnB;AA+PD,wBAAsB,YAAY,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,WAAW,GAC3B,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAa9B;AAED,wBAAsB,eAAe,CACjC,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,iBAWjD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,QAiD3C"}
|
package/lib/package.js
CHANGED
@@ -13,10 +13,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
13
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
14
14
|
};
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
16
|
-
exports.
|
16
|
+
exports.validatePackage = exports.installPackages = exports.fetchPackage = void 0;
|
17
17
|
// @ts-ignore
|
18
18
|
const isomorphic_parse_github_url_1 = __importDefault(require("isomorphic-parse-github-url"));
|
19
19
|
const cross_fetch_1 = __importDefault(require("cross-fetch"));
|
20
|
+
const sanitize_filename_1 = __importDefault(require("sanitize-filename"));
|
20
21
|
// TODO: call `fetchPackage` instead of deprecated functions
|
21
22
|
function loadPackage(mo, info) {
|
22
23
|
return __awaiter(this, void 0, void 0, function* () {
|
@@ -33,7 +34,7 @@ function loadPackage(mo, info) {
|
|
33
34
|
};
|
34
35
|
const result = yield fetchGithub_(mo, repo, info.name);
|
35
36
|
if (result) {
|
36
|
-
mo.
|
37
|
+
mo.usePackage(info.name, info.name + '/');
|
37
38
|
}
|
38
39
|
return result ? true : false;
|
39
40
|
});
|
@@ -223,7 +224,7 @@ function fetchFromService(info, serviceName, metaUrl, baseUrl, resultProperty, p
|
|
223
224
|
return files;
|
224
225
|
});
|
225
226
|
}
|
226
|
-
function fetchPackage(info) {
|
227
|
+
function fetchPackage(name, info) {
|
227
228
|
return __awaiter(this, void 0, void 0, function* () {
|
228
229
|
if (typeof info === 'string') {
|
229
230
|
info = parseGithubPackageInfo(info);
|
@@ -233,14 +234,14 @@ function fetchPackage(info) {
|
|
233
234
|
return;
|
234
235
|
}
|
235
236
|
return {
|
236
|
-
name
|
237
|
+
name,
|
237
238
|
version: info.version,
|
238
239
|
files,
|
239
240
|
};
|
240
241
|
});
|
241
242
|
}
|
242
243
|
exports.fetchPackage = fetchPackage;
|
243
|
-
function
|
244
|
+
function installPackages(mo, packages) {
|
244
245
|
return __awaiter(this, void 0, void 0, function* () {
|
245
246
|
yield Promise.all(Object.entries(packages).map(([name, path]) => {
|
246
247
|
const info = Object.assign(Object.assign({}, parseGithubPackageInfo(path)), { name });
|
@@ -248,5 +249,40 @@ function loadPackages(mo, packages) {
|
|
248
249
|
}));
|
249
250
|
});
|
250
251
|
}
|
251
|
-
exports.
|
252
|
+
exports.installPackages = installPackages;
|
253
|
+
function validatePackage(pkg) {
|
254
|
+
function showValue(value) {
|
255
|
+
const string = JSON.stringify(value);
|
256
|
+
return string.length > 50 ? string.substring(0, 50) + '...' : string;
|
257
|
+
}
|
258
|
+
function getPackageDisplayName() {
|
259
|
+
return `(${pkg.name} / ${pkg.version})`;
|
260
|
+
}
|
261
|
+
if (typeof pkg !== 'object' || Array.isArray(pkg)) {
|
262
|
+
throw new Error(`Unexpected package: ${showValue(pkg)}`);
|
263
|
+
}
|
264
|
+
if (typeof pkg.name !== 'string' || (0, sanitize_filename_1.default)(pkg.name) !== pkg.name) {
|
265
|
+
throw new Error(`Invalid package name ${getPackageDisplayName()}`);
|
266
|
+
}
|
267
|
+
if (typeof pkg.version !== 'string' ||
|
268
|
+
(0, sanitize_filename_1.default)(pkg.version) !== pkg.version) {
|
269
|
+
throw new Error(`Invalid package version ${getPackageDisplayName()}`);
|
270
|
+
}
|
271
|
+
if (typeof pkg.files !== 'object' || Array.isArray(pkg.files)) {
|
272
|
+
throw new Error(`Invalid package files: ${showValue(pkg.files)}`);
|
273
|
+
}
|
274
|
+
Object.entries(pkg.files).forEach(([path, file]) => {
|
275
|
+
if (typeof path !== 'string' ||
|
276
|
+
path.split('/').some((p) => (0, sanitize_filename_1.default)(p) !== p)) {
|
277
|
+
throw new Error(`Invalid file path ${getPackageDisplayName()} [${path}]`);
|
278
|
+
}
|
279
|
+
if (typeof file !== 'object' || Array.isArray(file)) {
|
280
|
+
throw new Error(`Invalid file ${getPackageDisplayName()} [${path}]: ${showValue(file)}`);
|
281
|
+
}
|
282
|
+
if (typeof file.content !== 'string') {
|
283
|
+
throw new Error(`Invalid file content ${getPackageDisplayName()} [${path}]: ${showValue(file.content)}`);
|
284
|
+
}
|
285
|
+
});
|
286
|
+
}
|
287
|
+
exports.validatePackage = validatePackage;
|
252
288
|
//# sourceMappingURL=package.js.map
|
package/lib/package.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"package.js","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":";AAAA,2FAA2F;;;;;;;;;;;;;;;AAE3F,aAAa;AACb,8FAA+D;AAC/D,8DAAgC;
|
1
|
+
{"version":3,"file":"package.js","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"resolveEntryPoint.d.ts","sourceRoot":"","sources":["../../src/utils/resolveEntryPoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAyD5B,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhE"}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.resolveLib = exports.resolveMain = void 0;
|
4
|
+
// function getOne<T>(values: T[]): T | undefined {
|
5
|
+
// if (values.length) {
|
6
|
+
// return values[0];
|
7
|
+
// }
|
8
|
+
// }
|
9
|
+
function resolveEntryPoint(mo, directory, expected) {
|
10
|
+
directory = directory || '';
|
11
|
+
if (directory && !directory.endsWith('/')) {
|
12
|
+
directory += '/';
|
13
|
+
}
|
14
|
+
const moFiles = mo.list(directory).filter((f) => /\.mo$/i.test(f));
|
15
|
+
if (moFiles.length === 1) {
|
16
|
+
return moFiles[0];
|
17
|
+
}
|
18
|
+
else if (moFiles.length === 0) {
|
19
|
+
throw new Error('Could not find any Motoko files in the top-level directory');
|
20
|
+
}
|
21
|
+
const expectedFiles = moFiles.filter((f) => f.toLowerCase() === expected.toLowerCase());
|
22
|
+
if (expectedFiles.length === 1) {
|
23
|
+
return expectedFiles[0];
|
24
|
+
}
|
25
|
+
else if (expectedFiles.length > 1) {
|
26
|
+
throw new Error(`Found ${expectedFiles.length} entry point files with different capitalization`);
|
27
|
+
}
|
28
|
+
throw new Error(`Found ${moFiles.length} possible entry points. Please rename one of these files to '${expected}'`);
|
29
|
+
// TODO: evaluate whether we want to choose an entry point by parsing files
|
30
|
+
// const parsedFiles = moFiles.map((f) => {
|
31
|
+
// try {
|
32
|
+
// return mo.parseMotoko(mo.read(directory + f));
|
33
|
+
// } catch (err) {
|
34
|
+
// throw new Error(`Parse error in ${f}`);
|
35
|
+
// }
|
36
|
+
// });
|
37
|
+
// console.log(parsedFiles);
|
38
|
+
// return getOne(parsedFiles.filter());
|
39
|
+
}
|
40
|
+
function resolveMain(mo, directory) {
|
41
|
+
return resolveEntryPoint(mo, directory, 'Main.mo');
|
42
|
+
}
|
43
|
+
exports.resolveMain = resolveMain;
|
44
|
+
function resolveLib(mo, directory) {
|
45
|
+
return resolveEntryPoint(mo, directory, 'Lib.mo');
|
46
|
+
}
|
47
|
+
exports.resolveLib = resolveLib;
|
48
|
+
//# sourceMappingURL=resolveEntryPoint.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"resolveEntryPoint.js","sourceRoot":"","sources":["../../src/utils/resolveEntryPoint.ts"],"names":[],"mappings":";;;AAEA,mDAAmD;AACnD,2BAA2B;AAC3B,4BAA4B;AAC5B,QAAQ;AACR,IAAI;AAEJ,SAAS,iBAAiB,CACtB,EAAU,EACV,SAAiB,EACjB,QAAgB;IAEhB,SAAS,GAAG,SAAS,IAAI,EAAE,CAAC;IAC5B,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACvC,SAAS,IAAI,GAAG,CAAC;KACpB;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;KACrB;SAAM,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,MAAM,IAAI,KAAK,CACX,4DAA4D,CAC/D,CAAC;KACL;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAChC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,CACpD,CAAC;IACF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;KAC3B;SAAM,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;QACjC,MAAM,IAAI,KAAK,CACX,SAAS,aAAa,CAAC,MAAM,kDAAkD,CAClF,CAAC;KACL;IAED,MAAM,IAAI,KAAK,CACX,SAAS,OAAO,CAAC,MAAM,gEAAgE,QAAQ,GAAG,CACrG,CAAC;IAEF,2EAA2E;IAE3E,2CAA2C;IAC3C,YAAY;IACZ,yDAAyD;IACzD,sBAAsB;IACtB,kDAAkD;IAClD,QAAQ;IACR,MAAM;IAEN,4BAA4B;IAE5B,uCAAuC;AAC3C,CAAC;AAED,SAAgB,WAAW,CAAC,EAAU,EAAE,SAAiB;IACrD,OAAO,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACvD,CAAC;AAFD,kCAEC;AAED,SAAgB,UAAU,CAAC,EAAU,EAAE,SAAiB;IACpD,OAAO,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC;AAFD,gCAEC"}
|