solc-typed-ast 8.0.0 → 9.0.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 +37 -13
- package/dist/ast/implementation/declaration/index.js +5 -1
- package/dist/ast/implementation/declaration/index.js.map +1 -1
- package/dist/ast/implementation/expression/index.js +5 -1
- package/dist/ast/implementation/expression/index.js.map +1 -1
- package/dist/ast/implementation/meta/index.js +5 -1
- package/dist/ast/implementation/meta/index.js.map +1 -1
- package/dist/ast/implementation/statement/index.js +5 -1
- package/dist/ast/implementation/statement/index.js.map +1 -1
- package/dist/ast/implementation/type/index.js +5 -1
- package/dist/ast/implementation/type/index.js.map +1 -1
- package/dist/ast/index.js +5 -1
- package/dist/ast/index.js.map +1 -1
- package/dist/ast/legacy/index.js +5 -1
- package/dist/ast/legacy/index.js.map +1 -1
- package/dist/ast/modern/index.js +5 -1
- package/dist/ast/modern/index.js.map +1 -1
- package/dist/ast/postprocessing/index.js +5 -1
- package/dist/ast/postprocessing/index.js.map +1 -1
- package/dist/ast/writing/index.js +5 -1
- package/dist/ast/writing/index.js.map +1 -1
- package/dist/bin/compile.js +6 -1
- package/dist/bin/compile.js.map +1 -1
- package/dist/compile/constants.d.ts.map +1 -1
- package/dist/compile/constants.js +2 -1
- package/dist/compile/constants.js.map +1 -1
- package/dist/compile/index.js +5 -1
- package/dist/compile/index.js.map +1 -1
- package/dist/compile/inference/imports.d.ts +5 -7
- package/dist/compile/inference/imports.d.ts.map +1 -1
- package/dist/compile/inference/imports.js +56 -38
- package/dist/compile/inference/imports.js.map +1 -1
- package/dist/compile/inference/index.js +5 -1
- package/dist/compile/inference/index.js.map +1 -1
- package/dist/compile/input.d.ts +4 -9
- package/dist/compile/input.d.ts.map +1 -1
- package/dist/compile/input.js +4 -13
- package/dist/compile/input.js.map +1 -1
- package/dist/compile/kinds/compiler.d.ts +13 -1
- package/dist/compile/kinds/compiler.d.ts.map +1 -1
- package/dist/compile/kinds/compiler.js +114 -3
- package/dist/compile/kinds/compiler.js.map +1 -1
- package/dist/compile/kinds/index.d.ts +0 -2
- package/dist/compile/kinds/index.d.ts.map +1 -1
- package/dist/compile/kinds/index.js +5 -3
- package/dist/compile/kinds/index.js.map +1 -1
- package/dist/compile/kinds/md.d.ts +3 -1
- package/dist/compile/kinds/md.d.ts.map +1 -1
- package/dist/compile/kinds/md.js +26 -32
- package/dist/compile/kinds/md.js.map +1 -1
- package/dist/compile/utils.d.ts +1 -1
- package/dist/compile/utils.d.ts.map +1 -1
- package/dist/compile/utils.js +12 -24
- package/dist/compile/utils.js.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/misc/index.js +5 -1
- package/dist/misc/index.js.map +1 -1
- package/dist/types/ast/index.d.ts +1 -0
- package/dist/types/ast/index.d.ts.map +1 -1
- package/dist/types/ast/index.js +6 -1
- package/dist/types/ast/index.js.map +1 -1
- package/dist/types/ast/rational_literal.d.ts +14 -0
- package/dist/types/ast/rational_literal.d.ts.map +1 -0
- package/dist/types/ast/rational_literal.js +19 -0
- package/dist/types/ast/rational_literal.js.map +1 -0
- package/dist/types/builtins.d.ts.map +1 -1
- package/dist/types/builtins.js +5 -0
- package/dist/types/builtins.js.map +1 -1
- package/dist/types/index.js +5 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/typeStrings/index.js +5 -1
- package/dist/types/typeStrings/index.js.map +1 -1
- package/dist/types/typeStrings/typeString_parser.d.ts.map +1 -1
- package/dist/types/typeStrings/typeString_parser.js +1 -1
- package/dist/types/typeStrings/typeString_parser.js.map +1 -1
- package/dist/types/typeStrings/typeString_parser_header.d.ts.map +1 -1
- package/dist/types/typeStrings/typeString_parser_header.js.map +1 -1
- package/dist/types/utils.js +1 -1
- package/dist/types/utils.js.map +1 -1
- package/package.json +15 -78
- package/dist/compile/kinds/native.d.ts +0 -11
- package/dist/compile/kinds/native.d.ts.map +0 -1
- package/dist/compile/kinds/native.js +0 -101
- package/dist/compile/kinds/native.js.map +0 -1
- package/dist/compile/kinds/wasm.d.ts +0 -20
- package/dist/compile/kinds/wasm.d.ts.map +0 -1
- package/dist/compile/kinds/wasm.js +0 -70
- package/dist/compile/kinds/wasm.js.map +0 -1
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ A TypeScript package providing a normalized typed Solidity AST along with the ut
|
|
|
11
11
|
|
|
12
12
|
## Features
|
|
13
13
|
|
|
14
|
-
- Various [
|
|
14
|
+
- Various [Solidity](https://github.com/ethereum/solidity) compiler versions support, starting from **0.4.13**.
|
|
15
15
|
- Various compiler selection strategies, including compiler auto-detection via `pragma solidity` directives in Solidity sources with possible fallback options.
|
|
16
16
|
- Interaction with AST nodes, using type definitions.
|
|
17
17
|
- Compensation of differences between legacy and compact Solidity AST.
|
|
@@ -68,16 +68,34 @@ console.log(result);
|
|
|
68
68
|
|
|
69
69
|
The second argument with the `"auto"` value specifies a compiler selection strategy. If `"auto"` is specified and source code contains valid `pragma solidity` directive, then compiler version will be automatically picked from it. If compile process will not succedd, the execution will fall back to _"compiler guessing"_: trying to compile source with a few different versions of the new and old Solidity compilers. The other option would be to specify a concrete supported compiler version string, like `"0.7.0"` for example. There is also a support for various compiler selection strategies, including used-defined custom ones (`CompilerVersionSelectionStrategy` interface implementations).
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
### Used compilers
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
Package supports switching between native binary Solc compilers and its WASM versions. The CLI option `--compiler-kind` and `kind` argument of `compile*()` functions family may be used for that purpose. Compilers **are downloaded on-demand** to the directory `.compiler_cache` at the package installation directory (by default). The compiler cache location may be customized by setting `SOL_AST_COMPILER_CACHE` environment variable to a custom path. For example:
|
|
74
74
|
|
|
75
|
-
|
|
75
|
+
```bash
|
|
76
|
+
SOL_AST_COMPILER_CACHE=~/.compiler_cache sol-ast-compile sample.sol --compiler-kind native --tree
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
or
|
|
76
80
|
|
|
77
81
|
```bash
|
|
78
|
-
SOL_AST_COMPILER_CACHE=~/.compiler_cache
|
|
82
|
+
export SOL_AST_COMPILER_CACHE=~/.compiler_cache
|
|
83
|
+
|
|
84
|
+
sol-ast-compile sample.sol --compiler-kind native --tree
|
|
79
85
|
```
|
|
80
86
|
|
|
87
|
+
#### Invalidation of downloaded compler cache
|
|
88
|
+
|
|
89
|
+
If there is a need to invalidate the downloaded compiler cache, then follow next steps:
|
|
90
|
+
|
|
91
|
+
1. Locate `.compiler_cache` directory:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
sol-ast-compile --locate-compiler-cache
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
2. Manually remove `list.json` files to invalidate list of available compilers, remove certain compilers, or remove entire directory. Missing pieces will be downloaded again.
|
|
98
|
+
|
|
81
99
|
### Typed universal AST
|
|
82
100
|
|
|
83
101
|
After the source is compiled and original compiler has provided the raw AST, the `ASTReader` could be used to read the typed universal AST:
|
|
@@ -138,7 +156,7 @@ Use `--help` to see all available features.
|
|
|
138
156
|
The project have following directory structure:
|
|
139
157
|
|
|
140
158
|
```
|
|
141
|
-
├── .compiler_cache # Cache of downloaded
|
|
159
|
+
├── .compiler_cache # Cache of downloaded compilers (by default, if not configured by SOL_AST_COMPILER_CACHE).
|
|
142
160
|
├── coverage # Test coverage report, produced by "npm test" command.
|
|
143
161
|
├── dist # Generated JavaScript sources for package distribution (produced by "npm run build" and published by "npm publish" commands).
|
|
144
162
|
├── docs # Project documentation and API reference, produced by "npm run docs:render" or "npm run docs:refresh" commands.
|
|
@@ -174,24 +192,30 @@ A key points for better understanding:
|
|
|
174
192
|
|
|
175
193
|
## Development installation
|
|
176
194
|
|
|
177
|
-
|
|
195
|
+
### Prerequisites
|
|
178
196
|
|
|
179
|
-
|
|
180
|
-
- NPM version **6.9.0** or newer.
|
|
197
|
+
We suggest to use latest NodeJS LTS release `lts/gallium` (v16.14.0) and associated version of NPM. If there is a need to run different NodeJS versions, consider using [NVM](https://github.com/nvm-sh/nvm) or similar tool, that is available for your platform.
|
|
181
198
|
|
|
182
|
-
Clone
|
|
199
|
+
### Clone and build
|
|
200
|
+
|
|
201
|
+
Clone repository, install and link:
|
|
183
202
|
|
|
184
203
|
```bash
|
|
185
204
|
git clone https://github.com/ConsenSys/solc-typed-ast.git
|
|
205
|
+
cd solc-typed-ast/
|
|
206
|
+
npm install
|
|
207
|
+
npm link
|
|
186
208
|
```
|
|
187
209
|
|
|
188
|
-
|
|
210
|
+
Prior to running tests the compiler pre-downloading script `docker/download.sh` may be used to setup local compiler cache:
|
|
189
211
|
|
|
190
212
|
```bash
|
|
191
|
-
|
|
192
|
-
|
|
213
|
+
docker/download.sh 'linux-amd64' '.compiler_cache' # platform-dependent native compiler builds
|
|
214
|
+
docker/download.sh 'wasm' '.compiler_cache' # cross-platform WASM compiler builds
|
|
193
215
|
```
|
|
194
216
|
|
|
217
|
+
Supported platforms are listed here: https://github.com/ethereum/solc-bin
|
|
218
|
+
|
|
195
219
|
## Project documentation and API reference
|
|
196
220
|
|
|
197
221
|
The project documentation is contained in the `docs/` directory. It could be built via following command:
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ast/implementation/declaration/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ast/implementation/declaration/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,oDAAkC;AAClC,+CAA6B;AAC7B,qDAAmC;AACnC,qDAAmC;AACnC,wDAAsC;AACtC,wDAAsC;AACtC,sDAAoC;AACpC,uEAAqD;AACrD,yDAAuC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ast/implementation/expression/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ast/implementation/expression/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,qDAAmC;AACnC,gDAA8B;AAC9B,oEAAkD;AAClD,+CAA6B;AAC7B,kDAAgC;AAChC,0DAAwC;AACxC,+CAA6B;AAC7B,iDAA+B;AAC/B,uDAAqC;AACrC,4CAA0B;AAC1B,kDAAgC;AAChC,mDAAiC;AACjC,uDAAqC;AACrC,qDAAmC;AACnC,oDAAkC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ast/implementation/meta/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ast/implementation/meta/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,qDAAmC;AACnC,0DAAwC;AACxC,wDAAsC;AACtC,uDAAqC;AACrC,mDAAiC;AACjC,qDAAmC;AACnC,gDAA8B;AAC9B,6DAA2C;AAC3C,wDAAsC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ast/implementation/statement/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ast/implementation/statement/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,0CAAwB;AACxB,6CAA2B;AAC3B,uDAAqC;AACrC,mDAAiC;AACjC,yDAAuC;AACvC,kDAAgC;AAChC,iDAA+B;AAC/B,oDAAkC;AAClC,0DAAwC;AACxC,2CAAyB;AACzB,qDAAmC;AACnC,8CAA4B;AAC5B,0CAAwB;AACxB,qDAAmC;AACnC,kDAAgC;AAChC,oDAAkC;AAClC,mEAAiD;AACjD,oDAAkC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ast/implementation/type/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ast/implementation/type/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,yDAAuC;AACvC,uDAAqC;AACrC,4CAA0B;AAC1B,8CAA4B;AAC5B,2DAAyC"}
|
package/dist/ast/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/dist/ast/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ast/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ast/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,8DAA4C;AAC5C,wDAAsC;AACtC,6DAA2C;AAC3C,wDAAsC;AACtC,qDAAmC;AACnC,uDAAqC;AACrC,6CAA2B;AAC3B,+CAA6B;AAC7B,8CAA4B;AAC5B,mDAAiC;AACjC,4CAA0B;AAC1B,6CAA2B;AAC3B,gDAA8B;AAC9B,0CAAwB;AACxB,0CAAwB;AACxB,2CAAyB"}
|
package/dist/ast/legacy/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ast/legacy/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ast/legacy/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAEhC,8DAA4C;AAC5C,yDAAuC;AACvC,+DAA6C;AAC7C,oDAAkC;AAClC,oDAAkC;AAClC,0DAAwC;AACxC,uDAAqC;AACrC,kEAAgD;AAChD,iEAA+C;AAC/C,8EAA4D;AAC5D,mEAAiD;AACjD,6DAA2C;AAC3C,8DAA4C;AAC5C,yDAAuC;AACvC,+DAA6C;AAC7C,yDAAuC;AACvC,mEAAiD;AACjD,4DAA0C;AAC1C,oEAAkD;AAClD,4DAA0C;AAC1C,kEAAgD;AAChD,iEAA+C;AAC/C,yDAAuC;AACvC,2DAAyC;AACzC,+DAA6C;AAC7C,2DAAyC;AACzC,iEAA+C;AAC/C,oEAAkD;AAClD,8DAA4C;AAC5C,sDAAoC;AACpC,sDAAoC;AACpC,4DAA0C;AAC1C,kEAAgD;AAChD,kEAAgD;AAChD,6DAA2C;AAC3C,mDAAiC;AACjC,iEAA+C;AAC/C,6DAA2C;AAC3C,oEAAkD;AAClD,+DAA6C;AAC7C,qDAAmC;AACnC,0DAAwC;AACxC,uEAAqD;AACrD,gEAA8C;AAC9C,oDAAkC;AAClC,+DAA6C;AAC7C,4DAA0C;AAC1C,+DAA6C;AAC7C,wDAAsC;AACtC,8DAA4C;AAC5C,qEAAmD;AACnD,kEAAgD;AAChD,mEAAiD;AACjD,6EAA2D;AAC3D,8DAA4C"}
|
package/dist/ast/modern/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ast/modern/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ast/modern/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAEhC,8DAA4C;AAC5C,yDAAuC;AACvC,+DAA6C;AAC7C,oDAAkC;AAClC,oDAAkC;AAClC,0DAAwC;AACxC,uDAAqC;AACrC,kEAAgD;AAChD,iEAA+C;AAC/C,8EAA4D;AAC5D,mEAAiD;AACjD,6DAA2C;AAC3C,8DAA4C;AAC5C,yDAAuC;AACvC,+DAA6C;AAC7C,+DAA6C;AAC7C,yDAAuC;AACvC,mEAAiD;AACjD,4DAA0C;AAC1C,oEAAkD;AAClD,4DAA0C;AAC1C,kEAAgD;AAChD,iEAA+C;AAC/C,8DAA4C;AAC5C,yDAAuC;AACvC,2DAAyC;AACzC,+DAA6C;AAC7C,2DAAyC;AACzC,iEAA+C;AAC/C,oEAAkD;AAClD,8DAA4C;AAC5C,sDAAoC;AACpC,sDAAoC;AACpC,4DAA0C;AAC1C,kEAAgD;AAChD,kEAAgD;AAChD,6DAA2C;AAC3C,mDAAiC;AACjC,iEAA+C;AAC/C,6DAA2C;AAC3C,oEAAkD;AAClD,+DAA6C;AAC7C,qDAAmC;AACnC,+DAA6C;AAC7C,0DAAwC;AACxC,uEAAqD;AACrD,gEAA8C;AAC9C,oDAAkC;AAClC,+DAA6C;AAC7C,4DAA0C;AAC1C,+DAA6C;AAC7C,wDAAsC;AACtC,8DAA4C;AAC5C,8DAA4C;AAC5C,qEAAmD;AACnD,iFAA+D;AAC/D,kEAAgD;AAChD,mEAAiD;AACjD,6EAA2D;AAC3D,8DAA4C"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ast/postprocessing/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ast/postprocessing/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8EAA4D;AAC5D,yCAAuB;AACvB,4EAA0D"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ast/writing/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ast/writing/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,gDAA8B;AAC9B,8CAA4B;AAC5B,2CAAyB"}
|
package/dist/bin/compile.js
CHANGED
|
@@ -18,7 +18,8 @@ const cli = {
|
|
|
18
18
|
"raw",
|
|
19
19
|
"with-sources",
|
|
20
20
|
"tree",
|
|
21
|
-
"source"
|
|
21
|
+
"source",
|
|
22
|
+
"locate-compiler-cache"
|
|
22
23
|
],
|
|
23
24
|
number: ["depth"],
|
|
24
25
|
string: [
|
|
@@ -51,6 +52,9 @@ const cli = {
|
|
|
51
52
|
].join("\n");
|
|
52
53
|
console.log(message);
|
|
53
54
|
}
|
|
55
|
+
else if (args["locate-compiler-cache"]) {
|
|
56
|
+
console.log(__1.CACHE_DIR);
|
|
57
|
+
}
|
|
54
58
|
else if (args.help || (!args._.length && !args.stdin)) {
|
|
55
59
|
const message = `Compiles Solidity input and prints typed AST.
|
|
56
60
|
|
|
@@ -88,6 +92,7 @@ OPTIONS:
|
|
|
88
92
|
--depth Number of children for each of AST node to print.
|
|
89
93
|
Minimum value is 0. Not affects "raw", "tree" and "source".
|
|
90
94
|
Default value: ${cli.default.depth}
|
|
95
|
+
--locate-compiler-cache Print location of cache directory, that is used to store downloaded compilers.
|
|
91
96
|
`;
|
|
92
97
|
console.log(message);
|
|
93
98
|
}
|
package/dist/bin/compile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/bin/compile.ts"],"names":[],"mappings":";;;;;;AACA,wDAA2B;AAC3B,wDAAgC;AAChC,gDAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/bin/compile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/compile/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,UAe9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAmB9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAc9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAAkE,CAAC;AAElG,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/compile/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,UAe9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAmB9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAc9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAAkE,CAAC;AAElG,eAAO,MAAM,kBAAkB,UAc9B,CAAC;AAEF,eAAO,MAAM,cAAc,YAM1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,UAM5B,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAgD,CAAC;AAEnF,oBAAY,YAAY;IACpB,IAAI,SAAS;IACb,MAAM,WAAW;CACpB;AAED;;;GAGG;AACH,oBAAY,iBAAiB;IACzB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,EAAE,OAAO;IACT,YAAY,gBAAgB;IAC5B,cAAc,kBAAkB;IAChC,GAAG,QAAQ;IACX,YAAY,iBAAiB;IAC7B,mBAAmB,uBAAuB;IAC1C,YAAY,iBAAiB;IAC7B,mBAAmB,wBAAwB;IAC3C,oBAAoB,yBAAyB;IAC7C,sBAAsB,2BAA2B;IACjD,2BAA2B,gCAAgC;IAC3D,6BAA6B,kCAAkC;IAC/D,wCAAwC,6CAA6C;IACrF,qBAAqB,0BAA0B;IAC/C,gBAAgB,qBAAqB;IACrC,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,GAAG,MAAM;CACZ;AAED,eAAO,MAAM,qBAAqB,aAA+C,CAAC;AAElF,eAAO,MAAM,0BAA0B,aAAoD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/compile/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG;IAC9B,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;CACX,CAAC;AAEW,QAAA,kBAAkB,GAAG;IAC9B,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;CACX,CAAC;AAEW,QAAA,kBAAkB,GAAG;IAC9B,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;CACX,CAAC;AAEW,QAAA,kBAAkB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAErF,QAAA,kBAAkB,GAAG;IAC9B,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;CACX,CAAC;AAEW,QAAA,cAAc,GAAG;IAC1B,0BAAkB;IAClB,0BAAkB;IAClB,0BAAkB;IAClB,0BAAkB;IAClB,0BAAkB;CACrB,CAAC;AAEW,QAAA,gBAAgB,GAAG;IAC5B,GAAG,0BAAkB;IACrB,GAAG,0BAAkB;IACrB,GAAG,0BAAkB;IACrB,GAAG,0BAAkB;IACrB,GAAG,0BAAkB;CACxB,CAAC;AAEW,QAAA,qBAAqB,GAAG,wBAAgB,CAAC,wBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAEnF,IAAY,YAGX;AAHD,WAAY,YAAY;IACpB,6BAAa,CAAA;IACb,iCAAiB,CAAA;AACrB,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB;AAED;;;GAGG;AACH,IAAY,iBAwBX;AAxBD,WAAY,iBAAiB;IACzB,gCAAW,CAAA;IACX,gCAAW,CAAA;IACX,sCAAiB,CAAA;IACjB,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,8BAAS,CAAA;IACT,iDAA4B,CAAA;IAC5B,qDAAgC,CAAA;IAChC,gCAAW,CAAA;IACX,kDAA6B,CAAA;IAC7B,+DAA0C,CAAA;IAC1C,kDAA6B,CAAA;IAC7B,gEAA2C,CAAA;IAC3C,kEAA6C,CAAA;IAC7C,sEAAiD,CAAA;IACjD,gFAA2D,CAAA;IAC3D,oFAA+D,CAAA;IAC/D,0GAAqF,CAAA;IACrF,oEAA+C,CAAA;IAC/C,0DAAqC,CAAA;IACrC,8CAAyB,CAAA;IACzB,8CAAyB,CAAA;IACzB,8BAAS,CAAA;AACb,CAAC,EAxBW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAwB5B;AAEY,QAAA,qBAAqB,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AAErE,QAAA,0BAA0B,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/compile/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG;IAC9B,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;CACX,CAAC;AAEW,QAAA,kBAAkB,GAAG;IAC9B,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;CACX,CAAC;AAEW,QAAA,kBAAkB,GAAG;IAC9B,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;CACX,CAAC;AAEW,QAAA,kBAAkB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAErF,QAAA,kBAAkB,GAAG;IAC9B,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;CACX,CAAC;AAEW,QAAA,cAAc,GAAG;IAC1B,0BAAkB;IAClB,0BAAkB;IAClB,0BAAkB;IAClB,0BAAkB;IAClB,0BAAkB;CACrB,CAAC;AAEW,QAAA,gBAAgB,GAAG;IAC5B,GAAG,0BAAkB;IACrB,GAAG,0BAAkB;IACrB,GAAG,0BAAkB;IACrB,GAAG,0BAAkB;IACrB,GAAG,0BAAkB;CACxB,CAAC;AAEW,QAAA,qBAAqB,GAAG,wBAAgB,CAAC,wBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAEnF,IAAY,YAGX;AAHD,WAAY,YAAY;IACpB,6BAAa,CAAA;IACb,iCAAiB,CAAA;AACrB,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB;AAED;;;GAGG;AACH,IAAY,iBAwBX;AAxBD,WAAY,iBAAiB;IACzB,gCAAW,CAAA;IACX,gCAAW,CAAA;IACX,sCAAiB,CAAA;IACjB,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,8BAAS,CAAA;IACT,iDAA4B,CAAA;IAC5B,qDAAgC,CAAA;IAChC,gCAAW,CAAA;IACX,kDAA6B,CAAA;IAC7B,+DAA0C,CAAA;IAC1C,kDAA6B,CAAA;IAC7B,gEAA2C,CAAA;IAC3C,kEAA6C,CAAA;IAC7C,sEAAiD,CAAA;IACjD,gFAA2D,CAAA;IAC3D,oFAA+D,CAAA;IAC/D,0GAAqF,CAAA;IACrF,oEAA+C,CAAA;IAC/C,0DAAqC,CAAA;IACrC,8CAAyB,CAAA;IACzB,8CAAyB,CAAA;IACzB,8BAAS,CAAA;AACb,CAAC,EAxBW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAwB5B;AAEY,QAAA,qBAAqB,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AAErE,QAAA,0BAA0B,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC"}
|
package/dist/compile/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compile/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compile/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,8CAA4B;AAC5B,oDAAkC;AAClC,8CAA4B;AAC5B,0CAAwB;AACxB,0CAAwB;AACxB,4CAA0B"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { ImportResolver, Remapping } from "..";
|
|
2
|
-
export declare function normalizeImportPath(path: string): string;
|
|
3
2
|
/**
|
|
4
|
-
* Given a partial map `files` from
|
|
5
|
-
* `remappings` and a list of `ImportResolver`s `resolvers`, find
|
|
6
|
-
*
|
|
7
|
-
* missing in `files
|
|
8
|
-
* contents.
|
|
3
|
+
* Given a partial map `files` from **source unit names** to file contents, a list of
|
|
4
|
+
* `remappings` and a list of `ImportResolver`s - `resolvers`, find all
|
|
5
|
+
* files that are imported from the starting set `files` but are
|
|
6
|
+
* **missing** in `files` and add them into the files map.
|
|
9
7
|
*/
|
|
10
|
-
export declare function findAllFiles(files: Map<string, string>, remappings: Remapping[], resolvers: ImportResolver[]):
|
|
8
|
+
export declare function findAllFiles(files: Map<string, string>, remappings: Remapping[], resolvers: ImportResolver[]): void;
|
|
11
9
|
//# sourceMappingURL=imports.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../../src/compile/inference/imports.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,cAAc,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../../src/compile/inference/imports.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,cAAc,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAsFtE;;;;;GAKG;AACH,wBAAgB,YAAY,CACxB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1B,UAAU,EAAE,SAAS,EAAE,EACvB,SAAS,EAAE,cAAc,EAAE,GAC5B,IAAI,CA8DN"}
|
|
@@ -3,10 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.findAllFiles =
|
|
6
|
+
exports.findAllFiles = void 0;
|
|
7
7
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
8
8
|
const path_1 = require("path");
|
|
9
9
|
const __1 = require("..");
|
|
10
|
+
const __2 = require("../..");
|
|
10
11
|
const file_level_definitions_parser_1 = require("./file_level_definitions_parser");
|
|
11
12
|
/**
|
|
12
13
|
* Apply the first remapping in `remappings` that fits `path` and
|
|
@@ -20,11 +21,6 @@ function applyRemappings(remappings, path) {
|
|
|
20
21
|
}
|
|
21
22
|
return path;
|
|
22
23
|
}
|
|
23
|
-
function normalizeImportPath(path) {
|
|
24
|
-
const normalized = (0, path_1.normalize)(path);
|
|
25
|
-
return (0, path_1.isAbsolute)(normalized) ? normalized : "./" + normalized;
|
|
26
|
-
}
|
|
27
|
-
exports.normalizeImportPath = normalizeImportPath;
|
|
28
24
|
/**
|
|
29
25
|
* Check that `path` starts with a relative prefix "." or "./". Note that we
|
|
30
26
|
* don't use `!path.isAbsolute(path)` on purpose. Otherwise it might consider
|
|
@@ -34,58 +30,81 @@ function isPathWithRelativePrefix(path) {
|
|
|
34
30
|
return path.startsWith("./") || path.startsWith("../");
|
|
35
31
|
}
|
|
36
32
|
/**
|
|
37
|
-
*
|
|
38
|
-
*
|
|
33
|
+
* Normalize a relative import path as described in
|
|
34
|
+
* https://docs.soliditylang.org/en/v0.8.8/path-resolution.html#relative-imports
|
|
35
|
+
* @param importer - source unit name of importing unit
|
|
36
|
+
* @param imported - path of import directive
|
|
37
|
+
*/
|
|
38
|
+
function normalizeRelativeImportPath(importer, imported) {
|
|
39
|
+
imported = (0, path_1.normalize)(imported);
|
|
40
|
+
let prefix = (0, path_1.dirname)(importer);
|
|
41
|
+
const importedSegments = imported.split("/").filter((s) => s != "");
|
|
42
|
+
let strippedSegments = 0;
|
|
43
|
+
while (strippedSegments < importedSegments.length &&
|
|
44
|
+
importedSegments[strippedSegments] === "..") {
|
|
45
|
+
prefix = (0, path_1.dirname)(prefix);
|
|
46
|
+
strippedSegments++;
|
|
47
|
+
}
|
|
48
|
+
// According to https://docs.soliditylang.org/en/v0.8.8/path-resolution.html#relative-imports when prefix
|
|
49
|
+
// is empty there is no leading "./". However `dirname` always returns non-empty prefixes.
|
|
50
|
+
// Handle this edge case.
|
|
51
|
+
if (prefix === "." && !importer.startsWith(".")) {
|
|
52
|
+
prefix = "";
|
|
53
|
+
}
|
|
54
|
+
(0, __2.assert)(prefix === "" || !prefix.endsWith("/"), `Invalid prefix ${prefix}`);
|
|
55
|
+
const suffix = importedSegments.slice(strippedSegments).join("/");
|
|
56
|
+
return prefix === "" ? suffix : prefix + "/" + suffix;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Given the `importer` source unit path, and the path `imported` of an import
|
|
60
|
+
* directive compute the expected **source unit name** of the imported file.
|
|
61
|
+
* This is the name the compiler will look for in its "VFS" as defined starting
|
|
62
|
+
* here:
|
|
39
63
|
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
64
|
+
* https://docs.soliditylang.org/en/v0.8.8/path-resolution.html
|
|
65
|
+
*
|
|
66
|
+
* This takes into account relative and absolute paths and remappings.
|
|
42
67
|
*/
|
|
43
|
-
function
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const importingFileDir = (0, path_1.dirname)(importer);
|
|
47
|
-
result = normalizeImportPath((0, path_1.join)(importingFileDir, result));
|
|
68
|
+
function computeSourceUnitName(importerSourceUnit, imported, remappings) {
|
|
69
|
+
if (isPathWithRelativePrefix(imported)) {
|
|
70
|
+
return normalizeRelativeImportPath(importerSourceUnit, imported);
|
|
48
71
|
}
|
|
49
|
-
return
|
|
72
|
+
return applyRemappings(remappings, imported);
|
|
50
73
|
}
|
|
51
74
|
/**
|
|
52
|
-
* Given a partial map `files` from
|
|
53
|
-
* `remappings` and a list of `ImportResolver`s `resolvers`, find
|
|
54
|
-
*
|
|
55
|
-
* missing in `files
|
|
56
|
-
* contents.
|
|
75
|
+
* Given a partial map `files` from **source unit names** to file contents, a list of
|
|
76
|
+
* `remappings` and a list of `ImportResolver`s - `resolvers`, find all
|
|
77
|
+
* files that are imported from the starting set `files` but are
|
|
78
|
+
* **missing** in `files` and add them into the files map.
|
|
57
79
|
*/
|
|
58
80
|
function findAllFiles(files, remappings, resolvers) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
queue.push([undefined, fileName]);
|
|
62
|
-
}
|
|
81
|
+
// Queue of source unit names to process
|
|
82
|
+
const queue = [...files.keys()];
|
|
63
83
|
const visited = new Set();
|
|
64
|
-
const result = new Map();
|
|
65
84
|
while (queue.length > 0) {
|
|
66
|
-
const
|
|
67
|
-
const realPath = computeRealPath(importer, imported, remappings);
|
|
85
|
+
const sourceUnitName = queue.pop();
|
|
68
86
|
/**
|
|
69
|
-
* Skip already processed
|
|
87
|
+
* Skip already processed units
|
|
70
88
|
*/
|
|
71
|
-
if (visited.has(
|
|
89
|
+
if (visited.has(sourceUnitName)) {
|
|
72
90
|
continue;
|
|
73
91
|
}
|
|
74
|
-
|
|
92
|
+
visited.add(sourceUnitName);
|
|
93
|
+
let content = files.get(sourceUnitName);
|
|
94
|
+
// Missing contents - try and fill them in from the resolvers
|
|
75
95
|
if (content === undefined) {
|
|
76
96
|
for (const resolver of resolvers) {
|
|
77
|
-
const resolvedPath = resolver.resolve(
|
|
97
|
+
const resolvedPath = resolver.resolve(sourceUnitName);
|
|
78
98
|
if (resolvedPath !== undefined) {
|
|
79
99
|
content = fs_extra_1.default.readFileSync(resolvedPath, { encoding: "utf-8" });
|
|
80
100
|
break;
|
|
81
101
|
}
|
|
82
102
|
}
|
|
83
103
|
if (content === undefined) {
|
|
84
|
-
throw new __1.CompileInferenceError(`Couldn't find ${
|
|
104
|
+
throw new __1.CompileInferenceError(`Couldn't find ${sourceUnitName}`);
|
|
85
105
|
}
|
|
86
|
-
|
|
106
|
+
files.set(sourceUnitName, content);
|
|
87
107
|
}
|
|
88
|
-
visited.add(realPath);
|
|
89
108
|
let flds;
|
|
90
109
|
try {
|
|
91
110
|
flds = (0, file_level_definitions_parser_1.parseFileLevelDefinitions)(content);
|
|
@@ -95,17 +114,16 @@ function findAllFiles(files, remappings, resolvers) {
|
|
|
95
114
|
const start = e.location.start.offset;
|
|
96
115
|
const end = e.location.end.offset;
|
|
97
116
|
const length = end - start;
|
|
98
|
-
throw new __1.CompileInferenceError(`Failed parsing imports at ${
|
|
117
|
+
throw new __1.CompileInferenceError(`Failed parsing imports at ${sourceUnitName}:${start}:${length} - ${e.message}`);
|
|
99
118
|
}
|
|
100
119
|
throw e;
|
|
101
120
|
}
|
|
102
121
|
for (const fld of flds) {
|
|
103
122
|
if (fld.kind === file_level_definitions_parser_1.FileLevelNodeKind.Import) {
|
|
104
|
-
queue.push(
|
|
123
|
+
queue.push(computeSourceUnitName(sourceUnitName, fld.path, remappings));
|
|
105
124
|
}
|
|
106
125
|
}
|
|
107
126
|
}
|
|
108
|
-
return result;
|
|
109
127
|
}
|
|
110
128
|
exports.findAllFiles = findAllFiles;
|
|
111
129
|
//# sourceMappingURL=imports.js.map
|