diff --git a/ts2panda/BUILD.gn b/ts2panda/BUILD.gn index 58901e4fd4bc5f5b7d4bae8704deeef5a8f1781b..3f5e084297b06b94c973289fbac9e8a7dc019e35 100755 --- a/ts2panda/BUILD.gn +++ b/ts2panda/BUILD.gn @@ -31,8 +31,13 @@ ohos_copy("node_modules") { module_install_name = "" } -ohos_copy("tsconfig_json") { - sources = [ "${ts2abc_root}/tsconfig.json" ] +ohos_copy("config_files") { + sources = [ + "${ts2abc_root}/package-lock.json", + "${ts2abc_root}/package.json", + "${ts2abc_root}/tsconfig.json", + "${ts2abc_root}/webpack.config.js", + ] outputs = [ target_out_dir + "/{{source_file_part}}" ] module_install_name = "" @@ -71,11 +76,12 @@ ark_gen_file("ts2abc_irnodes_ts") { action("npm_run_build") { visibility = [ ":*" ] deps = [ + "$ts2abc_root:config_files", "$ts2abc_root:node_modules", "$ts2abc_root:ts2abc_diagnostic_ts", "$ts2abc_root:ts2abc_irnodes_ts", "$ts2abc_root:ts2abc_src", - "$ts2abc_root:tsconfig_json", + "$ts2abc_root/ts2abc:ts2abc", ] script = "${ts2abc_root}/scripts/run.py" @@ -94,79 +100,58 @@ action("npm_run_build") { args += [ "--platform", "linux", + "--js2abc", + rebase_path("${root_out_dir}/ark/ark/js2abc"), ] } else if (is_mingw) { args += [ "--platform", "win", + "--js2abc", + rebase_path("${root_out_dir}/ark/ark/js2abc.exe"), ] } else if (is_mac) { args += [ "--platform", "mac", + "--js2abc", + rebase_path("${root_out_dir}/ark/ark/js2abc"), ] } + + if (is_debug) { + args += [ + "--buildMode", + "debug", + ] + } else { + args += [ + "--buildMode", + "release", + ] + } + outputs = [] if (is_mingw) { - outputs += [ "${target_out_dir}/build-win" ] + outputs += [ "${root_out_dir}/ark/ark/build-win" ] } else if (is_mac) { - outputs += [ "${target_out_dir}/build-mac" ] + outputs += [ "${root_out_dir}/ark/ark/build-mac" ] } else { - outputs += [ "${target_out_dir}/build" ] + outputs += [ "${root_out_dir}/ark/ark/build" ] } } if (is_linux) { - ohos_copy("src_linux") { - deps = [ "$ts2abc_root:npm_run_build" ] - sources = [ "${target_out_dir}/build" ] - outputs = [ "${root_out_dir}/ark/ark/build" ] - module_source_dir = target_out_dir + "/build/src" - module_install_name = "" - } - - ohos_copy("ts2abc_tool") { - sources = [ "${root_out_dir}/ark/ark/js2abc" ] - outputs = [ "${root_out_dir}/ark/ark/build/bin/{{source_file_part}}" ] - module_install_name = "" - - deps = [ - ":src_linux", - "$ts2abc_root/ts2abc:ts2abc", - ] - } - - ohos_copy("ts2abc_linux") { - deps = [ - ":ts2abc_tool", - "$ts2abc_root/ts2abc:ts2abc", - ] - sources = [ "${root_out_dir}/ark/ark/js2abc" ] - outputs = [ "${target_out_dir}/build/bin/{{source_file_part}}" ] - module_source_dir = "${root_out_dir}/ark/ark/build/bin" - module_install_name = "" - } - ohos_copy("ts2abc_build") { - deps = [ - ":panda_ts2abc", - ":ts2abc_linux", - ] - sources = [ - "${ts2abc_root}/package-lock.json", - "${ts2abc_root}/package.json", - ] - - outputs = [ "${root_out_dir}/ark/ark/build/{{source_file_part}}" ] + deps = [ "$ts2abc_root:npm_run_build" ] + sources = [ "${root_out_dir}/ark/ark/build" ] + outputs = [ "${target_out_dir}/build-tmp" ] module_source_dir = "${root_out_dir}/ark/ark/build" module_install_name = "" } ohos_copy("ts2abc_build_ets") { - deps = [ - ":src_linux", - ":ts2abc_build", - ] + deps = [ "$ts2abc_root:npm_run_build" ] sources = [ "${root_out_dir}/ark/ark/build" ] outputs = [ "${root_out_dir}/ark/ark/build-ets" ] @@ -176,55 +161,16 @@ if (is_linux) { } if (is_mingw) { - ohos_copy("src_win") { - deps = [ "$ts2abc_root:npm_run_build" ] - sources = [ "${target_out_dir}/build-win" ] - outputs = [ "${root_out_dir}/ark/ark/build-win" ] - module_source_dir = target_out_dir + "/build-win/src" - module_install_name = "" - } - - ohos_copy("ts2abc_tool_win") { - sources = [ "${root_out_dir}/ark/ark/js2abc.exe" ] - outputs = [ "${root_out_dir}/ark/ark/build-win/bin/{{source_file_part}}" ] - module_install_name = "" - - deps = [ - ":src_win", - "$ts2abc_root/ts2abc:ts2abc", - ] - } - - ohos_copy("ts2abc_win") { - deps = [ - ":ts2abc_tool_win", - "$ts2abc_root/ts2abc:ts2abc", - ] - sources = [ "${root_out_dir}/ark/ark/js2abc.exe" ] - outputs = [ "${target_out_dir}/build-win/bin/{{source_file_part}}" ] - module_source_dir = "${root_out_dir}/ark/ark/build-win/bin" - module_install_name = "" - } - ohos_copy("ts2abc_build_win") { - deps = [ - ":panda_ts2abc", - ":ts2abc_win", - ] - sources = [ - "${ts2abc_root}/package-lock.json", - "${ts2abc_root}/package.json", - ] - outputs = [ "${root_out_dir}/ark/ark/build-win/{{source_file_part}}" ] + deps = [ "$ts2abc_root:npm_run_build" ] + sources = [ "${root_out_dir}/ark/ark/build-win" ] + outputs = [ "${target_out_dir}/build-tmp" ] module_source_dir = "${root_out_dir}/ark/ark/build-win" module_install_name = "" } ohos_copy("ts2abc_build_win_ets") { - deps = [ - ":src_win", - ":ts2abc_build_win", - ] + deps = [ "$ts2abc_root:npm_run_build" ] sources = [ "${root_out_dir}/ark/ark/build-win" ] outputs = [ "${root_out_dir}/ark/ark/build-win-ets" ] module_source_dir = "${root_out_dir}/ark/ark/build-win-ets" @@ -233,55 +179,16 @@ if (is_mingw) { } if (is_mac) { - ohos_copy("src_mac") { - deps = [ "$ts2abc_root:npm_run_build" ] - sources = [ "${target_out_dir}/build-mac" ] - outputs = [ "${root_out_dir}/ark/ark/build-mac" ] - module_source_dir = target_out_dir + "/build-mac/src" - module_install_name = "" - } - - ohos_copy("ts2abc_tool_mac") { - sources = [ "${root_out_dir}/ark/ark/js2abc" ] - outputs = [ "${root_out_dir}/ark/ark/build-mac/bin/{{source_file_part}}" ] - module_install_name = "" - - deps = [ - ":src_mac", - "$ts2abc_root/ts2abc:ts2abc", - ] - } - - ohos_copy("ts2abc_mac") { - deps = [ - ":ts2abc_tool_mac", - "$ts2abc_root/ts2abc:ts2abc", - ] - sources = [ "${root_out_dir}/ark/ark/js2abc" ] - outputs = [ "${target_out_dir}/build-mac/bin/{{source_file_part}}" ] - module_source_dir = "${root_out_dir}/ark/ark/build-mac/bin" - module_install_name = "" - } - ohos_copy("ts2abc_build_mac") { - deps = [ - ":panda_ts2abc", - ":ts2abc_mac", - ] - sources = [ - "${ts2abc_root}/package-lock.json", - "${ts2abc_root}/package.json", - ] - outputs = [ "${root_out_dir}/ark/ark/build-mac/{{source_file_part}}" ] + deps = [ "$ts2abc_root:npm_run_build" ] + sources = [ "${root_out_dir}/ark/ark/build-mac" ] + outputs = [ "${target_out_dir}/build-tmp" ] module_source_dir = "${root_out_dir}/ark/ark/build-mac" module_install_name = "" } ohos_copy("ts2abc_build_mac_ets") { - deps = [ - ":src_mac", - ":ts2abc_build_mac", - ] + deps = [ "$ts2abc_root:npm_run_build" ] sources = [ "${root_out_dir}/ark/ark/build-mac" ] outputs = [ "${root_out_dir}/ark/ark/build-mac-ets" ] module_source_dir = "${root_out_dir}/ark/ark/build-mac-ets" diff --git a/ts2panda/package-lock.json b/ts2panda/package-lock.json index 646821ba8881cb3f9add02ae06249b613d902356..74fc58965509dec3cc76c239b1a5b4a7558d9729 100644 --- a/ts2panda/package-lock.json +++ b/ts2panda/package-lock.json @@ -963,6 +963,12 @@ "to-fast-properties": "^2.0.0" } }, + "@discoveryjs/json-ext": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", + "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", + "dev": true + }, "@sinonjs/commons": { "version": "1.8.3", "resolved": "https://repo.huaweicloud.com/repository/npm/@sinonjs/commons/-/commons-1.8.3.tgz", @@ -1021,9 +1027,9 @@ "dev": true }, "@types/node": { - "version": "14.17.21", - "resolved": "https://repo.huaweicloud.com/repository/npm/@types/node/-/node-14.17.21.tgz", - "integrity": "sha512-zv8ukKci1mrILYiQOwGSV4FpkZhyxQtuFWGya2GujWg+zVAeRQ4qbaMmWp9vb9889CFA8JECH7lkwCL6Ygg8kA==", + "version": "10.5.5", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-10.5.5.tgz", + "integrity": "sha512-6Qnb1gXbp3g1JX9QVJj3A6ORzc9XCyhokxUKaoonHgNXcQhmk8adhotxfkeK8El9TnFeUuH72yI6jQ5nDJKS6w==", "dev": true }, "@types/sinon": { @@ -1057,6 +1063,244 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webpack-cli/configtest": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@webpack-cli/configtest/-/configtest-1.1.1.tgz", + "integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==", + "dev": true + }, + "@webpack-cli/info": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/@webpack-cli/info/-/info-1.4.1.tgz", + "integrity": "sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==", + "dev": true, + "requires": { + "envinfo": "^7.7.3" + } + }, + "@webpack-cli/serve": { + "version": "1.6.1", + "resolved": "https://registry.npmmirror.com/@webpack-cli/serve/-/serve-1.6.1.tgz", + "integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==", + "dev": true + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, "ansi-colors": { "version": "4.1.1", "resolved": "https://repo.huaweicloud.com/repository/npm/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -1086,6 +1330,12 @@ "picomatch": "^2.0.4" } }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, "argparse": { "version": "1.0.10", "resolved": "https://repo.huaweicloud.com/repository/npm/argparse/-/argparse-1.0.10.tgz", @@ -1094,17 +1344,94 @@ "sprintf-js": "~1.0.2" } }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true + }, "array-back": { "version": "3.1.0", "resolved": "https://repo.huaweicloud.com/repository/npm/array-back/-/array-back-3.1.0.tgz", "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==" }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmmirror.com/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmmirror.com/util/-/util-0.10.3.tgz", + "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, "assertion-error": { "version": "1.1.0", "resolved": "https://repo.huaweicloud.com/repository/npm/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true + }, "ast-types": { "version": "0.14.2", "resolved": "https://repo.huaweicloud.com/repository/npm/ast-types/-/ast-types-0.14.2.tgz", @@ -1113,6 +1440,78 @@ "tslib": "^2.0.1" } }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true, + "optional": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmmirror.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true + } + } + }, "babel-plugin-dynamic-import-node": { "version": "2.3.3", "resolved": "https://repo.huaweicloud.com/repository/npm/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", @@ -1153,12 +1552,91 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmmirror.com/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, "binary-extensions": { "version": "2.2.0", "resolved": "https://repo.huaweicloud.com/repository/npm/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://repo.huaweicloud.com/repository/npm/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1177,12 +1655,110 @@ "fill-range": "^7.0.1" } }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true + }, "browser-stdout": { "version": "1.3.1", "resolved": "https://repo.huaweicloud.com/repository/npm/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, "browserslist": { "version": "4.17.3", "resolved": "https://repo.huaweicloud.com/repository/npm/browserslist/-/browserslist-4.17.3.tgz", @@ -1195,34 +1771,134 @@ "picocolors": "^0.2.1" } }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmmirror.com/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "fast-json-stable-stringify": "2.x" } }, - "camelcase": { - "version": "6.2.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001265", - "resolved": "https://repo.huaweicloud.com/repository/npm/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", - "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" - }, - "chai": { - "version": "4.3.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "dev": true, "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + } + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmmirror.com/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001265", + "resolved": "https://repo.huaweicloud.com/repository/npm/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", + "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==" + }, + "chai": { + "version": "4.3.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", "pathval": "^1.1.1", @@ -1261,6 +1937,60 @@ "readdirp": "~3.5.0" } }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmmirror.com/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-webpack-plugin": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/clean-webpack-plugin/-/clean-webpack-plugin-1.0.1.tgz", + "integrity": "sha512-gvwfMsqu3HBgTVvaBa1H3AZKO03CHpr5uP92SPIktP3827EovAitwW+1xoqXyTxCuXnLYpMHG5ytS4AoukHDWA==", + "dev": true, + "requires": { + "rimraf": "^2.6.1" + } + }, "cliui": { "version": "7.0.4", "resolved": "https://repo.huaweicloud.com/repository/npm/cliui/-/cliui-7.0.4.tgz", @@ -1271,6 +2001,27 @@ "wrap-ansi": "^7.0.0" } }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, "color-convert": { "version": "1.9.3", "resolved": "https://repo.huaweicloud.com/repository/npm/color-convert/-/color-convert-1.9.3.tgz", @@ -1284,6 +2035,18 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, + "colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmmirror.com/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, "command-line-args": { "version": "5.2.0", "resolved": "https://repo.huaweicloud.com/repository/npm/command-line-args/-/command-line-args-5.2.0.tgz", @@ -1318,11 +2081,53 @@ } } }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, "concat-map": { "version": "0.0.1", "resolved": "https://repo.huaweicloud.com/repository/npm/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, "convert-source-map": { "version": "1.8.0", "resolved": "https://repo.huaweicloud.com/repository/npm/convert-source-map/-/convert-source-map-1.8.0.tgz", @@ -1331,6 +2136,26 @@ "safe-buffer": "~5.1.1" } }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true + }, "core-js-compat": { "version": "3.18.2", "resolved": "https://repo.huaweicloud.com/repository/npm/core-js-compat/-/core-js-compat-3.18.2.tgz", @@ -1347,6 +2172,93 @@ } } }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmmirror.com/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmmirror.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A==", + "dev": true + }, "debug": { "version": "4.3.2", "resolved": "https://repo.huaweicloud.com/repository/npm/debug/-/debug-4.3.2.tgz", @@ -1361,6 +2273,12 @@ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", + "dev": true + }, "deep-eql": { "version": "3.0.1", "resolved": "https://repo.huaweicloud.com/repository/npm/deep-eql/-/deep-eql-3.0.1.tgz", @@ -1383,22 +2301,174 @@ "object-keys": "^1.0.12" } }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, "diff": { "version": "5.0.0", "resolved": "https://repo.huaweicloud.com/repository/npm/diff/-/diff-5.0.0.tgz", "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmmirror.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmmirror.com/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, "electron-to-chromium": { "version": "1.3.861", "resolved": "https://repo.huaweicloud.com/repository/npm/electron-to-chromium/-/electron-to-chromium-1.3.861.tgz", "integrity": "sha512-GZyflmpMnZRdZ1e2yAyvuFwz1MPSVQelwHX4TJZyXypB8NcxdPvPNwy5lOTxnlkrK13EiQzyTPugRSnj6cBgKg==" }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmmirror.com/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://repo.huaweicloud.com/repository/npm/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + } + }, + "envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmmirror.com/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, "escalade": { "version": "3.1.1", "resolved": "https://repo.huaweicloud.com/repository/npm/escalade/-/escalade-3.1.1.tgz", @@ -1409,35 +2479,272 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, "esprima": { "version": "4.0.1", "resolved": "https://repo.huaweicloud.com/repository/npm/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, "esutils": { "version": "2.0.3", "resolved": "https://repo.huaweicloud.com/repository/npm/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, "requires": { - "to-regex-range": "^5.0.1" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, - "find-replace": { - "version": "3.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, "requires": { - "array-back": "^3.0.1" - } - }, - "find-up": { - "version": "5.0.0", + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmmirror.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmmirror.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-replace": { + "version": "3.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "requires": { + "array-back": "^3.0.1" + } + }, + "find-up": { + "version": "5.0.0", "resolved": "https://repo.huaweicloud.com/repository/npm/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, @@ -1446,12 +2753,83 @@ "path-exists": "^4.0.0" } }, + "findup-sync": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/findup-sync/-/findup-sync-0.3.0.tgz", + "integrity": "sha512-z8Nrwhi6wzxNMIbxlrTzuUW6KWuKkogZ/7OdDVq+0+kxn77KUH1nipx8iU6suqkHqc4y6n7a9A8IpmxY/pTjWg==", + "dev": true, + "requires": { + "glob": "~5.0.0" + }, + "dependencies": { + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmmirror.com/glob/-/glob-5.0.15.tgz", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, "flat": { "version": "5.0.2", "resolved": "https://repo.huaweicloud.com/repository/npm/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://repo.huaweicloud.com/repository/npm/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -1496,6 +2874,18 @@ "has-symbols": "^1.0.1" } }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true + }, "glob": { "version": "7.1.6", "resolved": "https://repo.huaweicloud.com/repository/npm/glob/-/glob-7.1.6.tgz", @@ -1543,6 +2933,23 @@ "function-bind": "^1.1.1" } }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + } + } + }, "has-flag": { "version": "3.0.0", "resolved": "https://repo.huaweicloud.com/repository/npm/has-flag/-/has-flag-3.0.0.tgz", @@ -1553,12 +2960,209 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/has-symbols/-/has-symbols-1.0.2.tgz", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmmirror.com/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, "he": { "version": "1.2.0", "resolved": "https://repo.huaweicloud.com/repository/npm/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", + "dev": true + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://repo.huaweicloud.com/repository/npm/inflight/-/inflight-1.0.6.tgz", @@ -1575,6 +3179,32 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-binary-path": { "version": "2.1.0", "resolved": "https://repo.huaweicloud.com/repository/npm/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -1584,6 +3214,12 @@ "binary-extensions": "^2.0.0" } }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, "is-core-module": { "version": "2.7.0", "resolved": "https://repo.huaweicloud.com/repository/npm/is-core-module/-/is-core-module-2.7.0.tgz", @@ -1592,6 +3228,51 @@ "has": "^1.0.3" } }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, "is-extglob": { "version": "2.1.1", "resolved": "https://repo.huaweicloud.com/repository/npm/is-extglob/-/is-extglob-2.1.1.tgz", @@ -1624,6 +3305,33 @@ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true + }, "isarray": { "version": "0.0.1", "resolved": "https://repo.huaweicloud.com/repository/npm/isarray/-/isarray-0.0.1.tgz", @@ -1636,6 +3344,12 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://repo.huaweicloud.com/repository/npm/js-tokens/-/js-tokens-4.0.0.tgz", @@ -1655,6 +3369,18 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "json5": { "version": "2.2.0", "resolved": "https://repo.huaweicloud.com/repository/npm/json5/-/json5-2.2.0.tgz", @@ -1669,6 +3395,12 @@ "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", "dev": true }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, "klaw": { "version": "2.1.1", "resolved": "https://repo.huaweicloud.com/repository/npm/klaw/-/klaw-2.1.1.tgz", @@ -1677,6 +3409,34 @@ "graceful-fs": "^4.1.9" } }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, "locate-path": { "version": "6.0.0", "resolved": "https://repo.huaweicloud.com/repository/npm/locate-path/-/locate-path-6.0.0.tgz", @@ -1736,32 +3496,248 @@ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "color-name": "~1.1.4" + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmmirror.com/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmmirror.com/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, "requires": { - "has-flag": "^4.0.0" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } } } }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, "minimatch": { "version": "3.0.4", "resolved": "https://repo.huaweicloud.com/repository/npm/minimatch/-/minimatch-3.0.4.tgz", @@ -1775,6 +3751,45 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "mkdirp": { "version": "0.5.5", "resolved": "https://repo.huaweicloud.com/repository/npm/mkdirp/-/mkdirp-0.5.5.tgz", @@ -1883,6 +3898,20 @@ } } }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, "ms": { "version": "2.1.2", "resolved": "https://repo.huaweicloud.com/repository/npm/ms/-/ms-2.1.2.tgz", @@ -1894,6 +3923,31 @@ "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==", "dev": true }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, "nise": { "version": "4.1.0", "resolved": "https://repo.huaweicloud.com/repository/npm/nise/-/nise-4.1.0.tgz", @@ -1907,6 +3961,45 @@ "path-to-regexp": "^1.7.0" } }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + } + } + }, "node-releases": { "version": "1.1.77", "resolved": "https://repo.huaweicloud.com/repository/npm/node-releases/-/node-releases-1.1.77.tgz", @@ -1918,11 +4011,66 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "object-keys": { "version": "1.1.1", "resolved": "https://repo.huaweicloud.com/repository/npm/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, "object.assign": { "version": "4.1.2", "resolved": "https://repo.huaweicloud.com/repository/npm/object.assign/-/object.assign-4.1.2.tgz", @@ -1934,6 +4082,15 @@ "object-keys": "^1.1.1" } }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, "once": { "version": "1.4.0", "resolved": "https://repo.huaweicloud.com/repository/npm/once/-/once-1.4.0.tgz", @@ -1943,6 +4100,39 @@ "wrappy": "1" } }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g==", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw==", + "dev": true + } + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://repo.huaweicloud.com/repository/npm/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -1966,6 +4156,61 @@ "p-limit": "^3.0.2" } }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmmirror.com/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true, + "optional": true + }, "path-exists": { "version": "4.0.0", "resolved": "https://repo.huaweicloud.com/repository/npm/path-exists/-/path-exists-4.0.0.tgz", @@ -1978,6 +4223,12 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, "path-parse": { "version": "1.0.7", "resolved": "https://repo.huaweicloud.com/repository/npm/path-parse/-/path-parse-1.0.7.tgz", @@ -1998,6 +4249,19 @@ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, "picocolors": { "version": "0.2.1", "resolved": "https://repo.huaweicloud.com/repository/npm/picocolors/-/picocolors-0.2.1.tgz", @@ -2009,6 +4273,175 @@ "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "dev": true }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true + }, + "prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmmirror.com/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmmirror.com/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true + }, "randombytes": { "version": "2.1.0", "resolved": "https://repo.huaweicloud.com/repository/npm/randombytes/-/randombytes-2.1.0.tgz", @@ -2018,6 +4451,39 @@ "safe-buffer": "^5.1.0" } }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + } + } + }, "readdirp": { "version": "3.5.0", "resolved": "https://repo.huaweicloud.com/repository/npm/readdirp/-/readdirp-3.5.0.tgz", @@ -2045,6 +4511,15 @@ } } }, + "rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmmirror.com/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "requires": { + "resolve": "^1.9.0" + } + }, "reduce-flatten": { "version": "2.0.0", "resolved": "https://repo.huaweicloud.com/repository/npm/reduce-flatten/-/reduce-flatten-2.0.0.tgz", @@ -2076,6 +4551,16 @@ "@babel/runtime": "^7.8.4" } }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, "regexpp": { "version": "3.2.0", "resolved": "https://repo.huaweicloud.com/repository/npm/regexpp/-/regexpp-3.2.0.tgz", @@ -2114,6 +4599,25 @@ } } }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true, + "optional": true + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true + }, "require-directory": { "version": "2.1.1", "resolved": "https://repo.huaweicloud.com/repository/npm/require-directory/-/require-directory-2.1.1.tgz", @@ -2128,6 +4632,61 @@ "path-parse": "^1.0.6" } }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmmirror.com/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, "rxjs": { "version": "6.6.7", "resolved": "https://repo.huaweicloud.com/repository/npm/rxjs/-/rxjs-6.6.7.tgz", @@ -2148,6 +4707,32 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, "semver": { "version": "6.3.0", "resolved": "https://repo.huaweicloud.com/repository/npm/semver/-/semver-6.3.0.tgz", @@ -2162,6 +4747,75 @@ "randombytes": "^2.1.0" } }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmmirror.com/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "sinon": { "version": "9.2.4", "resolved": "https://repo.huaweicloud.com/repository/npm/sinon/-/sinon-9.2.4.tgz", @@ -2199,16 +4853,259 @@ } } }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmmirror.com/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, "source-map": { "version": "0.5.7", "resolved": "https://repo.huaweicloud.com/repository/npm/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://repo.huaweicloud.com/repository/npm/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, + "ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmmirror.com/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, "string-width": { "version": "4.2.3", "resolved": "https://repo.huaweicloud.com/repository/npm/string-width/-/string-width-4.2.3.tgz", @@ -2219,6 +5116,15 @@ "strip-ansi": "^6.0.1" } }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, "strip-ansi": { "version": "6.0.1", "resolved": "https://repo.huaweicloud.com/repository/npm/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -2227,6 +5133,12 @@ "ansi-regex": "^5.0.1" } }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://repo.huaweicloud.com/repository/npm/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -2264,6 +5176,65 @@ } } }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "test262-stream": { "version": "1.4.0", "resolved": "https://repo.huaweicloud.com/repository/npm/test262-stream/-/test262-stream-1.4.0.tgz", @@ -2273,11 +5244,68 @@ "klaw": "^2.1.0" } }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmmirror.com/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://repo.huaweicloud.com/repository/npm/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -2287,6 +5315,91 @@ "is-number": "^7.0.0" } }, + "ts-jest": { + "version": "23.10.5", + "resolved": "https://registry.npmmirror.com/ts-jest/-/ts-jest-23.10.5.tgz", + "integrity": "sha512-MRCs9qnGoyKgFc8adDEntAOP64fWK1vZKnOYU1o2HxaqjdJvGqmkLCPCnVq1/If4zkUmEjKPnCiUisTrlX2p2A==", + "dev": true, + "requires": { + "bs-logger": "0.x", + "buffer-from": "1.x", + "fast-json-stable-stringify": "2.x", + "json5": "2.x", + "make-error": "1.x", + "mkdirp": "0.x", + "resolve": "1.x", + "semver": "^5.5", + "yargs-parser": "10.x" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "ts-lint": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/ts-lint/-/ts-lint-4.5.1.tgz", + "integrity": "sha512-gSRiCaiSisGhS5dI1UglhqisHXZyJxBiddMGwaVRqVX9tX7jFGfScYFKUgZOEyKoJv8YB+vsQ3jrda+q0R19gQ==", + "dev": true, + "requires": { + "babel-code-frame": "^6.20.0", + "colors": "^1.1.2", + "diff": "^3.0.1", + "findup-sync": "~0.3.0", + "glob": "^7.1.1", + "optimist": "~0.6.0", + "resolve": "^1.1.7", + "tsutils": "^1.1.0" + }, + "dependencies": { + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + } + } + }, + "ts-loader": { + "version": "5.4.5", + "resolved": "https://registry.npmmirror.com/ts-loader/-/ts-loader-5.4.5.tgz", + "integrity": "sha512-XYsjfnRQCBum9AMRZpk2rTYSVpdZBpZK+kDh0TeT3kxmQNBDVIeUjdPjY5RZry4eIAb8XHc4gYSUiUWPYvzSRw==", + "dev": true, + "requires": { + "chalk": "^2.3.0", + "enhanced-resolve": "^4.0.0", + "loader-utils": "^1.0.2", + "micromatch": "^3.1.4", + "semver": "^5.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, "ts-sinon": { "version": "1.2.1", "resolved": "https://repo.huaweicloud.com/repository/npm/ts-sinon/-/ts-sinon-1.2.1.tgz", @@ -2312,12 +5425,80 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/tslib/-/tslib-2.3.1.tgz", "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, + "tslint": { + "version": "5.20.1", + "resolved": "https://registry.npmmirror.com/tslint/-/tslint-5.20.1.tgz", + "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.29.0" + }, + "dependencies": { + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmmirror.com/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + } + } + }, + "tsutils": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/tsutils/-/tsutils-1.9.1.tgz", + "integrity": "sha512-Z4MMpdLvxER0Wz+l9TM71URBKGoHKBzArEraOFmTp44jxzdqiG8oTCtpjiZ9YtFXNwWQfMv+g8VAxTlBEVS6yw==", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmmirror.com/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "dev": true + }, "type-detect": { "version": "4.0.8", "resolved": "https://repo.huaweicloud.com/repository/npm/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, "typescript": { "version": "4.4.3", "resolved": "https://registry.npmmirror.com/typescript/download/typescript-4.4.3.tgz?cache=0&sync_timestamp=1632381565165&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftypescript%2Fdownload%2Ftypescript-4.4.3.tgz", @@ -2358,6 +5539,36 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==" }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, "unique-temp-dir": { "version": "1.0.0", "resolved": "https://repo.huaweicloud.com/repository/npm/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz", @@ -2368,6 +5579,426 @@ "uid2": "0.0.3" } }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "optional": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmmirror.com/url/-/url-0.11.0.tgz", + "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", + "dev": true + } + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmmirror.com/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "webpack": { + "version": "4.46.0", + "resolved": "https://registry.npmmirror.com/webpack/-/webpack-4.46.0.tgz", + "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "webpack-cli": { + "version": "4.9.2", + "resolved": "https://registry.npmmirror.com/webpack-cli/-/webpack-cli-4.9.2.tgz", + "integrity": "sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.1.1", + "@webpack-cli/info": "^1.4.1", + "@webpack-cli/serve": "^1.6.1", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + } + } + }, + "webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmmirror.com/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "which": { "version": "2.0.2", "resolved": "https://repo.huaweicloud.com/repository/npm/which/-/which-2.0.2.tgz", @@ -2419,6 +6050,18 @@ } } }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==", + "dev": true + }, "wordwrapjs": { "version": "4.0.1", "resolved": "https://repo.huaweicloud.com/repository/npm/wordwrapjs/-/wordwrapjs-4.0.1.tgz", @@ -2435,6 +6078,15 @@ } } }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, "workerpool": { "version": "6.1.0", "resolved": "https://repo.huaweicloud.com/repository/npm/workerpool/-/workerpool-6.1.0.tgz", @@ -2480,11 +6132,23 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, "y18n": { "version": "5.0.8", "resolved": "https://repo.huaweicloud.com/repository/npm/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, "yargs": { "version": "16.2.0", "resolved": "https://repo.huaweicloud.com/repository/npm/yargs/-/yargs-16.2.0.tgz", diff --git a/ts2panda/package.json b/ts2panda/package.json old mode 100755 new mode 100644 index f37f0d41b643c30529a895a3837a4db118232e35..4d2d5abd58136b94ed80b3cb96ef613a0f689281 --- a/ts2panda/package.json +++ b/ts2panda/package.json @@ -2,38 +2,36 @@ "name": "ts2panda", "version": "1.0.0", "description": "", - "main": "index.js", + "main": "src/index.js", + "types": "types/index.d.ts", + "private": false, "scripts": { - "build:ts2abc-linux": "mkdir -p build && cd build && cmake -DCMAKE_TOOLCHAIN_FILE=../../submodules/panda/cmake/toolchain/host_clang_8.cmake ../ts2abc && make ts2abc -j4", - "build:ts2abc-win": "mkdir -p build-win && cd build-win && cmake -DCMAKE_TOOLCHAIN_FILE=../../submodules/panda/cmake/toolchain/cross-clang-8-x86_64-w64-mingw32-static.cmake ../ts2abc && make ts2abc -j4", - "build:ts2abc-mac": "mkdir -p build-mac && cd build-mac && cmake -DPANDA_ENABLE_CLANG_TIDY=false ../ts2abc && make ts2abc -j4", - "build": "npm run build:irnodes && npm run build:diagnostic && npm run build:ts2abc-linux && npm run build:sources-linux", - "build-win": "npm run build:irnodes && npm run build:diagnostic && npm run build:ts2abc-win && npm run build:sources-win", - "build-mac": "npm run build:irnodes && npm run build:diagnostic && npm run build:ts2abc-mac && npm run build:sources-mac", - "build-full": "npm run build && npm run build-win && npm run build-mac", - "build:irnodes": "scripts/gen_irnodes.sh", - "build:diagnostic": "scripts/gen_diagnostic.sh", - "build:sources-linux": "tsc -b src", - "build:sources-win": "tsc -b src/tsconfig.win.json", - "build:sources-mac": "node_modules/typescript/bin/tsc -b src/tsconfig.mac.json", - "build:tests": "tsc -b src tests", - "run:tests": "mocha \"build/tests/**/*.test.js\"", - "test": "npm run build:tests && npm run run:tests", - "ast": "tsc -b tools && node build/tools/astPrinter.js", - "dev": "node --expose-gc build/src/index.js", - "clean": "rm -rf build && rm -fr build-win && rm -fr build-mac && rm -f src/irnodes.ts && rm -rf src/diagnostic.ts && rm -rf src/builtinsMap.ts" + "build": "node_modules/webpack/bin/webpack.js --config webpack.config.js --progress --env buildMode=release && rm -rf build && mv dist build && cp -r node_modules build/", + "build-debug": "node_modules/webpack/bin/webpack.js --config webpack.config.js --progress --env buildMode=debug && rm -rf build && mv dist build && cp -r node_modules build/" + }, + "repository": { + "type": "", + "url": "" }, "author": "", "license": "", "devDependencies": { "@types/chai": "^4.2.12", "@types/mocha": "^8.0.2", - "@types/node": "^14.0.27", + "clean-webpack-plugin": "^1.0.1", + "@types/node": "10.5.5", + "prettier": "^1.16.4", + "ts-jest": "^23.0.1", "chai": "^4.2.0", "mocha": "^8.1.1", "sinon": "^9.0.3", + "ts-lint": "^4.5.1", + "ts-loader": "^5.3.3", + "tslint": "^5.11.0", "ts-sinon": "^1.2.1", - "typescript": "^4.1.3" + "typescript": "^4.1.3", + "webpack": "^4.46.0", + "webpack-cli": "^4.9.2" }, "dependencies": { "@babel/core": "^7.12.10", diff --git a/ts2panda/scripts/run.py b/ts2panda/scripts/run.py index 089868e28ebadbc5744a2d904db3804377078657..661c1c02c037670ece8318acd835e15ab6be4f0d 100755 --- a/ts2panda/scripts/run.py +++ b/ts2panda/scripts/run.py @@ -23,6 +23,7 @@ import sys import subprocess import argparse import platform +import shutil def parse_args(): @@ -38,7 +39,10 @@ def parse_args(): help='node path') parser.add_argument("--node-modules", help='path to node-modules exetuable') - + parser.add_argument("--buildMode", + help='buildMode, as: debug, release') + parser.add_argument("--js2abc", + help='js2abc file') return parser.parse_args() @@ -72,20 +76,47 @@ def node_modules(options): run_command(['npm', 'install'], dist_dir) +def per_platForm_config(options, dir): + dist_dir = options.dist_dir + if os.path.exists(os.path.join(dist_dir, dir)): + shutil.rmtree(os.path.join(dist_dir, dir), ignore_errors=True) + cmd = ['mv', 'dist', dir] + run_command(cmd, dist_dir) + run_command(['cp', '-f', "package.json", + "./{}/package.json".format(dir)], dist_dir) + run_command(['cp', '-f', "package-lock.json", + "./{}/package-lock.json".format(dir)], dist_dir) + (js2abc_dir, _) = os.path.split(options.js2abc) + build_dir = os.path.join(js2abc_dir, dir) + if os.path.exists(build_dir): + shutil.rmtree(build_dir) + run_command(['cp', '-r', os.path.join(dist_dir, dir), js2abc_dir]) + bin_dir = os.path.join(build_dir, 'bin') + if not os.path.exists(bin_dir): + os.mkdir(bin_dir) + run_command(['cp', '-f', options.js2abc, bin_dir]) + obj_bin_dir = os.path.join(dist_dir, dir, 'bin/') + if not os.path.exists(obj_bin_dir): + os.mkdir(obj_bin_dir) + run_command(['cp', '-f', options.js2abc, obj_bin_dir]) + run_command(['cp', '-r', os.path.join(dist_dir,"node_modules"), + os.path.join(dist_dir, dir)]) + + def npm_run_build(options): plat_form = options.platform os.chdir(options.dist_dir) - tsc = "node_modules/typescript/bin/tsc" + webpack = "node_modules/webpack/bin/webpack.js" + cmd = [webpack, '--config', 'webpack.config.js', '--progress', + '--env', 'buildMode={}'.format(options.buildMode)] + run_command(cmd, options.dist_dir) if plat_form == "linux": - cmd = [tsc, '-b', 'src'] - run_command(cmd, options.dist_dir) + per_platForm_config(options, "build") elif plat_form == "win": - cmd = [tsc, '-b', 'src/tsconfig.win.json'] - run_command(cmd, options.dist_dir) + per_platForm_config(options, "build-win") elif plat_form == 'mac': - cmd = [tsc, '-b', 'src/tsconfig.mac.json'] - run_command(cmd, options.dist_dir) + per_platForm_config(options, "build-mac") def main(): diff --git a/ts2panda/src/addVariable2Scope.ts b/ts2panda/src/addVariable2Scope.ts index a4416549993d1fcc20ce215af9ca64a4e04b4a00..dfba18218434a271d88aee22aa319e438128611b 100644 --- a/ts2panda/src/addVariable2Scope.ts +++ b/ts2panda/src/addVariable2Scope.ts @@ -30,13 +30,11 @@ import { VariableScope } from "./scope"; import { isGlobalIdentifier } from "./syntaxCheckHelper"; +import { TypeRecorder } from "./typeRecorder"; import { VarDeclarationKind, Variable } from "./variable"; -import { TypeRecorder } from "./typeRecorder"; -import { CmdOptions } from "./cmdOptions"; -import { PrimitiveType } from "./base/typeSystem"; function setVariableOrParameterType(node: ts.Node, v: Variable | undefined) { if (v) { @@ -127,6 +125,7 @@ export function addVariableToScope(recorder: Recorder, enableTypeRecord: boolean hoistDecls = hoistMap.get(nearestVariableScope); for (let j = 0; j < decls.length; j++) { let decl = decls[j]; + // @ts-ignore if (hoistDecls && hoistDecls.includes(decl)) { continue; } diff --git a/ts2panda/src/assemblyDumper.ts b/ts2panda/src/assemblyDumper.ts index c425d876fd61d73eab8fac56a20e11827d81adf6..c2de81cd0283aad8ca96173ec79dea77f9590ca9 100644 --- a/ts2panda/src/assemblyDumper.ts +++ b/ts2panda/src/assemblyDumper.ts @@ -82,7 +82,7 @@ export class AssemblyDumper { for (let i = 0; i < parametersCount; ++i) { let node = irNodes[i]; this.output += "\t"; - this.output += node.mnemonic + " v" + (node.operands[0]).num + ", a" + ((node.operands[0]).num) + "\n"; + this.output += node.getMnemonic() + " v" + (node.operands[0]).num + ", a" + ((node.operands[0]).num) + "\n"; } for (let i = parametersCount; i < irNodes.length; ++i) { @@ -96,16 +96,16 @@ export class AssemblyDumper { } this.output += "\t" - this.output += node.mnemonic + " "; + this.output += node.getMnemonic() + " "; let operands = node.operands; - let formats = node.formats; + let formats = node.getFormats(); var outputRangeVregNum = getRangeExplicitVregNums(node); for (let j = 0; j < operands.length; ++j) { if (outputRangeVregNum == 0) { break; } let format = formats[0]; - let kind = format[j].kind; + let kind = format[j][0]; let op = operands[j]; if (kind == OperandKind.Imm) { @@ -122,7 +122,7 @@ export class AssemblyDumper { || kind == OperandKind.SrcVReg) { let v = op; if (v.num < 0) { - throw Error("invalid register, please check your insn!\nRegister was allocated at:\n" + v.getStackTrace() + "\n"); + throw Error("invalid register, please check your insn!\n"); } this.output += "v" + v.num.toString(); // we don't need to print all the registers for range inst, just the first one diff --git a/ts2panda/src/base/bcGenUtil.ts b/ts2panda/src/base/bcGenUtil.ts index 4f195377993e283eddb3c9dc4ad6dcd08b555bf1..04dd4d9de377616e249bc7539649bb0bbbd5445c 100755 --- a/ts2panda/src/base/bcGenUtil.ts +++ b/ts2panda/src/base/bcGenUtil.ts @@ -96,7 +96,6 @@ import { LdaiDyn, LdaStr, MovDyn, - ResultType, StaDyn, EcmaStclasstoglobalrecord, EcmaStconsttoglobalrecord, @@ -105,11 +104,11 @@ import { } from "../irnodes"; export function loadAccumulatorInt(value: number): IRNode { - return new LdaiDyn(new Imm(ResultType.Int, value)); + return new LdaiDyn(new Imm(value)); } export function loadAccumulatorFloat(value: number): IRNode { - return new FldaiDyn(new Imm(ResultType.Float, value)); + return new FldaiDyn(new Imm(value)); } export function loadAccumulatorString(value: string): IRNode { @@ -161,7 +160,7 @@ export function throwDeleteSuperProperty() { } export function newLexicalEnv(numVars: number) { - return new EcmaNewlexenvdyn(new Imm(ResultType.Int, numVars)); + return new EcmaNewlexenvdyn(new Imm(numVars)); } export function loadLexicalEnv() { @@ -173,11 +172,11 @@ export function popLexicalEnv() { } export function loadLexicalVar(level: number, slot: number) { - return new EcmaLdlexvardyn(new Imm(ResultType.Int, level), new Imm(ResultType.Int, slot)); + return new EcmaLdlexvardyn(new Imm(level), new Imm(slot)); } export function storeLexicalVar(level: number, slot: number, value: VReg) { - return new EcmaStlexvardyn(new Imm(ResultType.Int, level), new Imm(ResultType.Int, slot), value); + return new EcmaStlexvardyn(new Imm(level), new Imm(slot), value); } export function tryLoadGlobalByName(key: string) { @@ -205,11 +204,11 @@ export function storeObjByName(obj: VReg, key: string) { } export function loadObjByIndex(obj: VReg, index: number) { - return new EcmaLdobjbyindex(obj, new Imm(ResultType.Int, index)); + return new EcmaLdobjbyindex(obj, new Imm(index)); } export function storeObjByIndex(obj: VReg, index: number) { - return new EcmaStobjbyindex(obj, new Imm(ResultType.Int, index)); + return new EcmaStobjbyindex(obj, new Imm(index)); } export function loadObjByValue(obj: VReg, prop: VReg): IRNode { @@ -225,7 +224,7 @@ export function storeOwnByName(obj: VReg, key: string, nameSetting: boolean): IR } export function storeOwnByIndex(obj: VReg, index: number) { - return new EcmaStownbyindex(obj, new Imm(ResultType.Int, index)); + return new EcmaStownbyindex(obj, new Imm(index)); } export function storeOwnByValue(obj: VReg, value: VReg, nameSetting: boolean) { @@ -233,7 +232,7 @@ export function storeOwnByValue(obj: VReg, value: VReg, nameSetting: boolean) { } export function throwIfSuperNotCorrectCall(num: number) { - return new EcmaThrowifsupernotcorrectcall(new Imm(ResultType.Int, num)); + return new EcmaThrowifsupernotcorrectcall(new Imm(num)); } export function call(args: VReg[], passThis: boolean) { @@ -254,17 +253,17 @@ export function call(args: VReg[], passThis: boolean) { insn = new EcmaCallargs3dyn(args[0], args[1], args[2], args[3]); break; default: - insn = new EcmaCallirangedyn(new Imm(ResultType.Int, length - 1), args); + insn = new EcmaCallirangedyn(new Imm(length - 1), args); } } else { - insn = new EcmaCallithisrangedyn(new Imm(ResultType.Int, length - 1), args); + insn = new EcmaCallithisrangedyn(new Imm(length - 1), args); } return insn; } export function newObject(args: VReg[]) { - return new EcmaNewobjdynrange(new Imm(ResultType.Int, args.length), args); + return new EcmaNewobjdynrange(new Imm(args.length), args); } export function getPropIterator() { @@ -284,11 +283,11 @@ export function createEmptyObject() { } export function createObjectHavingMethod(idx: number) { - return new EcmaCreateobjecthavingmethod(new Imm(ResultType.Int, idx)); + return new EcmaCreateobjecthavingmethod(new Imm(idx)); } export function createObjectWithBuffer(idx: number) { - return new EcmaCreateobjectwithbuffer(new Imm(ResultType.Int, idx)); + return new EcmaCreateobjectwithbuffer(new Imm(idx)); } export function setObjectWithProto(proto: VReg, object: VReg) { @@ -308,7 +307,7 @@ export function createEmptyArray() { } export function createArrayWithBuffer(idx: number) { - return new EcmaCreatearraywithbuffer(new Imm(ResultType.Int, idx)); + return new EcmaCreatearraywithbuffer(new Imm(idx)); } export function storeArraySpread(array: VReg, index: VReg) { @@ -316,11 +315,11 @@ export function storeArraySpread(array: VReg, index: VReg) { } export function defineClassWithBuffer(id: string, idx: number, parameterLength: number, env: VReg, base: VReg) { - return new EcmaDefineclasswithbuffer(id, new Imm(ResultType.Int, idx), new Imm(ResultType.Int, parameterLength), env, base); + return new EcmaDefineclasswithbuffer(id, new Imm(idx), new Imm(parameterLength), env, base); } export function createObjectWithExcludedKeys(obj: VReg, args: VReg[]) { - return new EcmaCreateobjectwithexcludedkeys(new Imm(ResultType.Int, args.length - 1), obj, args); + return new EcmaCreateobjectwithexcludedkeys(new Imm(args.length - 1), obj, args); } export function throwObjectNonCoercible() { @@ -344,7 +343,7 @@ export function closeIterator(iter: VReg) { } export function superCall(num: number, start: VReg) { - return new EcmaSupercall(new Imm(ResultType.Int, num), start); + return new EcmaSupercall(new Imm(num), start); } export function superCallSpread(vs: VReg) { @@ -388,23 +387,23 @@ export function loadHomeObject() { } export function defineFunc(name: string, env: VReg, paramLength: number) { - return new EcmaDefinefuncdyn(name, new Imm(ResultType.Int, paramLength), env); + return new EcmaDefinefuncdyn(name, new Imm(paramLength), env); } export function defineAsyncFunc(name: string, env: VReg, paramLength: number) { - return new EcmaDefineasyncfunc(name, new Imm(ResultType.Int, paramLength), env); + return new EcmaDefineasyncfunc(name, new Imm(paramLength), env); } export function defineGeneratorFunc(name: string, env: VReg, paramLength: number) { - return new EcmaDefinegeneratorfunc(name, new Imm(ResultType.Int, paramLength), env); + return new EcmaDefinegeneratorfunc(name, new Imm(paramLength), env); } export function defineNCFunc(name: string, env: VReg, paramLength: number) { - return new EcmaDefinencfuncdyn(name, new Imm(ResultType.Int, paramLength), env); + return new EcmaDefinencfuncdyn(name, new Imm(paramLength), env); } export function defineMethod(name: string, env: VReg, paramLength: number) { - return new EcmaDefinemethod(name, new Imm(ResultType.Int, paramLength), env); + return new EcmaDefinemethod(name, new Imm(paramLength), env); } export function isTrue() { @@ -416,7 +415,7 @@ export function isFalse() { } export function createRegExpWithLiteral(pattern: string, flags: number) { - return new EcmaCreateregexpwithliteral(pattern, new Imm(ResultType.Int, flags)); + return new EcmaCreateregexpwithliteral(pattern, new Imm(flags)); } export function stLetToGlobalRecord (name: string) { diff --git a/ts2panda/src/base/literal.ts b/ts2panda/src/base/literal.ts index c98f498528c47dc2c52b40c681fece3044b22751..f4483a1d37bf95a7d4fc5afff689c1606025a7c7 100755 --- a/ts2panda/src/base/literal.ts +++ b/ts2panda/src/base/literal.ts @@ -26,44 +26,44 @@ export enum LiteralTag { } export class Literal { - private tag: LiteralTag; - private value: any; + private t: LiteralTag; + private v: any; - constructor(tag: LiteralTag, value: any) { - this.tag = tag; - this.value = value; + constructor(t: LiteralTag, v: any) { + this.t = t; + this.v = v; } getTag() { - return this.tag; + return this.t; } getValue() { - return this.value; + return this.v; } } export class LiteralBuffer { - private literalBuffer: Literal[] = []; + private lb: Literal[] = []; constructor() { }; addLiterals(...literals: Array) { - this.literalBuffer.push(...literals); + this.lb.push(...literals); } getLiterals() { - return this.literalBuffer; + return this.lb; } isEmpty() { - return this.literalBuffer.length == 0; + return this.lb.length == 0; } getLiteral(index: number) { - if (index >= this.literalBuffer.length || this.literalBuffer.length <=0) { + if (index >= this.lb.length || this.lb.length <=0) { return ; } - return this.literalBuffer[index]; + return this.lb[index]; } } \ No newline at end of file diff --git a/ts2panda/src/base/typeSystem.ts b/ts2panda/src/base/typeSystem.ts index 92022145631829b4be6b5ecebe39ca7f51245caa..edda3c06d61c095bfbd48c551492158a1c8d97ca 100755 --- a/ts2panda/src/base/typeSystem.ts +++ b/ts2panda/src/base/typeSystem.ts @@ -14,17 +14,15 @@ */ import * as ts from "typescript"; +import * as jshelpers from "../jshelpers"; +import { PandaGen } from "../pandagen"; +import { TypeChecker } from "../typeChecker"; +import { TypeRecorder } from "../typeRecorder"; import { Literal, LiteralBuffer, LiteralTag } from "./literal"; -import { LOGD } from "../log"; -import { TypeChecker } from "../typeChecker"; -import { TypeRecorder } from "../typeRecorder"; -import { PandaGen } from "../pandagen"; -import * as jshelpers from "../jshelpers"; -import { access } from "fs"; export enum PrimitiveType { ANY, diff --git a/ts2panda/src/base/util.ts b/ts2panda/src/base/util.ts old mode 100755 new mode 100644 index b985453a4b61b7be100b1a260e303858276ce86d..f13a1906b5d0661648a207229f6ed00289dee091 --- a/ts2panda/src/base/util.ts +++ b/ts2panda/src/base/util.ts @@ -13,7 +13,7 @@ * limitations under the License. */ -import path = require("path"); +import * as path from "path"; import { extractCtorOfClass } from "../statement/classStatement"; import { LocalVariable, Variable } from "../variable"; import * as ts from "typescript"; @@ -192,8 +192,9 @@ export function escapeUnicode(data: string) { } export function initiateTs2abc(args: Array) { - let js2abc = path.join(path.resolve(__dirname, '../../bin'), "js2abc"); + let js2abc = path.join(path.resolve(__dirname, '../bin'), "js2abc"); args.unshift("--compile-by-pipe"); + // @ts-ignore var spawn = require('child_process').spawn; let child = spawn(js2abc, [...args], { stdio: ['pipe', 'inherit', 'inherit', 'pipe'] diff --git a/ts2panda/src/cmdOptions.ts b/ts2panda/src/cmdOptions.ts index 884d706ea7ffed403982e683fcd50e820285d88c..f802f1302f6e0c89116bdd85571c23a619ee5523 100644 --- a/ts2panda/src/cmdOptions.ts +++ b/ts2panda/src/cmdOptions.ts @@ -18,11 +18,10 @@ import commandLineArgs from "command-line-args"; import commandLineUsage from "command-line-usage"; import * as ts from "typescript"; import { LOGE } from "./log"; -import path = require("path"); +import * as path from "path"; import { execute } from "./base/util"; const ts2pandaOptions = [ - { name: 'variant-bytecode', alias: 'r', type: Boolean, defaultValue: true, description: "emit 2nd bytecode to pandafile." }, { name: 'modules', alias: 'm', type: Boolean, defaultValue: false, description: "compile as module." }, { name: 'debug-log', alias: 'l', type: Boolean, defaultValue: false, description: "show info debug log and generate the json file."}, { name: 'dump-assembly', alias: 'a', type: Boolean, defaultValue: false, description: "dump assembly to file." }, @@ -79,13 +78,6 @@ export class CmdOptions { return this.options["modules"]; } - static isVariantBytecode(): boolean { - if (!this.options) { - return true; - } - return this.options["variant-bytecode"]; - } - static getOptLevel(): number { return this.options["opt-level"]; } @@ -210,6 +202,7 @@ export class CmdOptions { return this.options["debug-type"]; } + // @ts-ignore static parseUserCmd(args: string[]): ts.ParsedCommandLine | undefined { this.options = commandLineArgs(ts2pandaOptions, { partial: true }); if (this.options.help) { diff --git a/ts2panda/src/compiler.ts b/ts2panda/src/compiler.ts index b323fc7b57b1b4b19bf7d1b31ca0b52fa3ff48bd..a8057b1eca6f3467d787544167fcda5fe9479204 100644 --- a/ts2panda/src/compiler.ts +++ b/ts2panda/src/compiler.ts @@ -33,6 +33,7 @@ import { setVariableExported } from "./base/util"; import { CacheList, getVregisterCache } from "./base/vregisterCache"; +import { CmdOptions } from "./cmdOptions"; import { CompilerDriver } from "./compilerDriver"; import { DebugInfo, NodeKind } from "./debuginfo"; import { DiagnosticCode, DiagnosticError } from "./diagnostic"; @@ -84,7 +85,6 @@ import { import { checkValidUseSuperBeforeSuper, compileClassDeclaration, - compileConstructor, compileDefaultConstructor, compileDefaultInitClassMembers, compileReturnThis4Ctor, @@ -176,6 +176,9 @@ export class Compiler { } private callOpt() { + if (CmdOptions.isDebugMode()) { + return; + } let CallMap: Map = new Map([ ["this", 1], ["4newTarget", 2], @@ -204,6 +207,7 @@ export class Compiler { tempLocals.push(this.pandaGen.getLocals()[i]); } let name2variable = scope.getName2variable(); + // @ts-ignore name2variable.forEach((value, key) => { if (tempNames.has(key)) { name2variable.delete(key) diff --git a/ts2panda/src/compilerDriver.ts b/ts2panda/src/compilerDriver.ts index e4dd5dc0c6a34290e38ef6b1db101abba0b67565..99d7568ac9b03301e99104e62e26370ce2cacfea 100644 --- a/ts2panda/src/compilerDriver.ts +++ b/ts2panda/src/compilerDriver.ts @@ -25,7 +25,6 @@ import { import { CompilerStatistics } from "./compilerStatistics"; import { DebugInfo } from "./debuginfo"; import { hoisting } from "./hoisting"; -import { IntrinsicExpander } from "./intrinsicExpander"; import { LOGD } from "./log"; import { setExportBinding, setImport } from "./modules"; import { PandaGen } from "./pandagen"; @@ -59,13 +58,14 @@ export class PendingCompilationUnit { * It handles all dependencies and run passes. */ export class CompilerDriver { + static isTsFile: boolean = false; private fileName: string; - private passes: Pass[]; + private passes: Pass[] = []; private compilationUnits: PandaGen[]; pendingCompilationUnits: PendingCompilationUnit[]; private functionId: number = 1; // 0 reserved for main private funcIdMap: Map = new Map(); - private statistics: CompilerStatistics; + private statistics: CompilerStatistics | undefined; private needDumpHeader: boolean = true; private ts2abcProcess: any = undefined; @@ -74,12 +74,13 @@ export class CompilerDriver { // register passes here this.passes = [ new CacheExpander(), - new IntrinsicExpander(), new RegAlloc() ]; this.compilationUnits = []; this.pendingCompilationUnits = []; - this.statistics = new CompilerStatistics(); + if (CmdOptions.showHistogramStatistics() || CmdOptions.showHoistingStatistics()) { + this.statistics = new CompilerStatistics(); + } } initiateTs2abcChildProcess() { @@ -152,6 +153,7 @@ export class CompilerDriver { } compile(node: ts.SourceFile): void { + CompilerDriver.isTsFile = CompilerDriver.isTypeScriptSourceFile(node); if (CmdOptions.showASTStatistics()) { let statics: number[] = new Array(ts.SyntaxKind.Count).fill(0); @@ -240,7 +242,7 @@ export class CompilerDriver { } if (CmdOptions.showHistogramStatistics()) { - this.statistics.getInsHistogramStatistics(pandaGen); + this.statistics!.getInsHistogramStatistics(pandaGen); } } @@ -276,7 +278,7 @@ export class CompilerDriver { this.compilationUnits.push(pandaGen); } - private isTypeScriptSourceFile(node: ts.SourceFile) { + static isTypeScriptSourceFile(node: ts.SourceFile) { let fileName = node.fileName; if (fileName && fileName.endsWith(".ts")) { return true; @@ -293,12 +295,11 @@ export class CompilerDriver { topLevelScope = new GlobalScope(node); } - let isTsFile = this.isTypeScriptSourceFile(node); - let enableTypeRecord = recordType && CmdOptions.needRecordType() && isTsFile; + let enableTypeRecord = recordType && CmdOptions.needRecordType() && CompilerDriver.isTsFile; if (enableTypeRecord) { TypeRecorder.createInstance(); } - let recorder = new Recorder(node, topLevelScope, this, enableTypeRecord, isTsFile); + let recorder = new Recorder(node, topLevelScope, this, enableTypeRecord, CompilerDriver.isTsFile); recorder.record(); addVariableToScope(recorder, enableTypeRecord); @@ -313,11 +314,11 @@ export class CompilerDriver { showStatistics(): void { if (CmdOptions.showHistogramStatistics()) { - this.statistics.printHistogram(false); + this.statistics!.printHistogram(false); } if (CmdOptions.showHoistingStatistics()) { - this.statistics.printHoistStatistics(); + this.statistics!.printHoistStatistics(); } } diff --git a/ts2panda/src/compilerStatistics.ts b/ts2panda/src/compilerStatistics.ts index 71f1ef1c7ee0761ec76ebc48dbb262ab3563595f..5fd1d08069035c96b05f42bc6808ba8b5d28c4cb 100644 --- a/ts2panda/src/compilerStatistics.ts +++ b/ts2panda/src/compilerStatistics.ts @@ -13,7 +13,7 @@ * limitations under the License. */ -import { getInstructionSize, Imm, IRNode, IRNodeKind } from "./irnodes"; +import { getInstructionSize, IRNode, IRNodeKind } from "./irnodes"; import { LOGD } from "./log"; import { PandaGen } from "./pandagen"; @@ -129,7 +129,7 @@ class HistogramStatistics { let part = mnemonic.split('.'); return part[2]; } - return ins.mnemonic; + return ins.getMnemonic(); } unionStatistics(histogram: HistogramStatistics): void { @@ -175,6 +175,7 @@ class HistogramStatistics { getTotal() { let totalInsnsNum: number = 0; let totalSize: number = 0; + // @ts-ignore this.insHistogram.forEach((value, key) => { totalInsnsNum += value.getCount(); totalSize += value.getTotalSize(); @@ -252,7 +253,8 @@ export class CompilerStatistics { printHistogram(verbose: boolean) { let totalHistogram = new HistogramStatistics("Total"); - + + // @ts-ignore this.histogramMap.forEach((histogram, funcName) => { totalHistogram.unionStatistics(histogram); diff --git a/ts2panda/src/compilerUtils.ts b/ts2panda/src/compilerUtils.ts index 4e667e175810d6493c47126d780ca5664c28a6e5..2480032b1d3459b1bdb2c6e312d5e658a4f77a43 100644 --- a/ts2panda/src/compilerUtils.ts +++ b/ts2panda/src/compilerUtils.ts @@ -29,7 +29,7 @@ import { Label, VReg } from "./irnodes"; -import jshelpers from "./jshelpers"; +import * as jshelpers from "./jshelpers"; import { CatchTable, LabelPair diff --git a/ts2panda/src/debuginfo.ts b/ts2panda/src/debuginfo.ts index 0eac8157e6c2df57d3045c98042328fda43a3371..67f03b09b2d3701ef0d560d0fe3e00ced3387daa 100644 --- a/ts2panda/src/debuginfo.ts +++ b/ts2panda/src/debuginfo.ts @@ -18,7 +18,8 @@ import { CmdOptions } from "./cmdOptions"; import { CalliDynRange, CallRange, - DebugInsPlaceHolder, + DebugInsStartPlaceHolder, + DebugInsEndPlaceHolder, IRNode, Label, VReg @@ -31,11 +32,10 @@ import { } from "./variable"; export class DebugPosInfo { - private boundLeft: number | undefined = 0; - private boundRight: number | undefined = 0; - private lineNum: number = -1; - private columnNum: number = -1; - private wholeLine: string | undefined = ""; + private bl: number | undefined; // bound left + private br: number | undefined; // bound right + private l: number = -1; // line number + private c: number = -1; // column number private nodeKind: NodeKind | undefined = NodeKind.FirstNodeOfFunction; constructor() { } @@ -53,74 +53,65 @@ export class DebugPosInfo { } public setBoundLeft(boundLeft: number): void { - this.boundLeft = boundLeft; + this.bl = boundLeft; } public getBoundLeft(): number | undefined { - return this.boundLeft; + return this.bl; } public setBoundRight(boundRight: number): void { - this.boundRight = boundRight; + this.br = boundRight; } public getBoundRight(): number | undefined { - return this.boundRight; + return this.br; } public setSourecLineNum(lineNum: number): void { - this.lineNum = lineNum; + this.l = lineNum; } public getSourceLineNum(): number { - return this.lineNum; + return this.l; } public setSourecColumnNum(columnNum: number): void { - this.columnNum = columnNum; + this.c = columnNum; } public getSourceColumnNum(): number { - return this.columnNum; + return this.c; } - public setWholeLine(wholeLine: string): void { - this.wholeLine = wholeLine; - } - - public getWholeLine(): string | undefined { - return this.wholeLine; - } - - public ClearMembersForReleaseBuild(): void { - this.ClearMembersForDebugBuild(); - this.boundLeft = undefined; - this.boundRight = undefined; - } - - public ClearMembersForDebugBuild(): void { - this.wholeLine = undefined; + public ClearNodeKind(): void { this.nodeKind = undefined; } } export class VariableDebugInfo { - private name = ""; - private variable: Variable | undefined; - private signature = ""; - private signatureType = ""; - private reg: number = -1; + // @ts-ignore + private n = ""; // name + // @ts-ignore + private v: Variable | undefined; // variables + // @ts-ignore + private s = ""; // signature + // @ts-ignore + private st = ""; // signature type + // @ts-ignore + private r: number = -1; private start: number = -1; - private length: number = -1; + // @ts-ignore + private len: number = -1; constructor(name: string, signature: string, signatureType: string, reg: number, start: number = 0, length: number = 0) { - this.name = name; - this.signature = signature; - this.signatureType = signatureType; - this.reg = reg; + this.n = name; + this.s = signature; + this.st = signatureType; + this.r = reg; this.start = start; - this.length = length; + this.len = length; } public setStart(start: number): void { @@ -132,7 +123,7 @@ export class VariableDebugInfo { } public setLength(length: number): void { - this.length = length; + this.len = length; } } @@ -179,17 +170,14 @@ export class DebugInfo { loc: { line : -1, character : -1 - }, - wholeLineText: "" + } } } pos = node.getStart(); let loc = file.getLineAndCharacterOfPosition(pos); - let wholeLineText = node.getText(); return { - loc: loc, - wholeLineText: wholeLineText + loc: loc } } @@ -202,7 +190,6 @@ export class DebugInfo { } posInfo.setSourecLineNum(res.loc.line); posInfo.setSourecColumnNum(res.loc.character); - posInfo.setWholeLine(res.wholeLineText); } } @@ -223,35 +210,31 @@ export class DebugInfo { let lineNumber = -1; let columnNumber = -1; - let wholeLineText = ""; if (DebugInfo.isNode(node)) { let tsNode = (node); let res = this.searchForPos(tsNode); if (!res) { return; } - wholeLineText = res.wholeLineText; lineNumber = res.loc.line; columnNumber = res.loc.character; } - for (let i = 0; i < insns.length; i++) { - let pos = new DebugPosInfo(); - pos.setSourecLineNum(lineNumber); - pos.setSourecColumnNum(columnNumber); - pos.setWholeLine(wholeLineText); - pos.setDebugPosInfoNodeState(node); - - insns[i].debugPosInfo = pos; - } + insns.forEach(insn => { + insn.debugPosInfo.setSourecLineNum(lineNumber); + insn.debugPosInfo.setSourecColumnNum(columnNumber); + insn.debugPosInfo.setDebugPosInfoNodeState(node); + }) } private static matchFormat(irnode: IRNode): number { let formatIndex = 0; - for (let i = 0; i < irnode.formats[0].length; i++) { + let formats = irnode.getFormats(); + for (let i = 0; i < formats[0].length; i++) { if (irnode.operands[i] instanceof VReg) { - for (let j = 0; j < irnode.formats.length; j++) { - if ((irnode.operands[i]).num < (1 << irnode.formats[j][i].bitwidth)) { + for (let j = 0; j < formats.length; j++) { + // formats[j][i][1] is vreg’s bitwidth + if ((irnode.operands[i]).num < (1 << formats[j][i][1])) { formatIndex = j > formatIndex ? j : formatIndex; continue; } @@ -262,72 +245,45 @@ export class DebugInfo { } private static getIRNodeWholeLength(irnode: IRNode): number { - if (irnode instanceof Label || irnode instanceof DebugInsPlaceHolder) { + if (irnode instanceof Label || + irnode instanceof DebugInsStartPlaceHolder || + irnode instanceof DebugInsEndPlaceHolder) { return 0; } let length = 1; - if (!irnode.formats[0]) { + if (!irnode.getFormats()[0]) { return 0; } let formatIndex = this.matchFormat(irnode); - let formats = irnode.formats[formatIndex]; + let formats = irnode.getFormats()[formatIndex]; // count operands length for (let i = 0; i < formats.length; i++) { if ((irnode instanceof CalliDynRange) || (irnode instanceof CallRange)) { - length += formats[0].bitwidth / 8; // 8 indicates that one byte is composed of 8 bits - length += formats[1].bitwidth / 8; + length += formats[0][1] / 8; // 8 indicates that one byte is composed of 8 bits + length += formats[1][1] / 8; break; } - length += (formats[i].bitwidth / 8); + length += (formats[i][1] / 8); } return length; } - private static setVariablesDebugInfoInternal(pandaGen: PandaGen, scope: Scope) { - let insns = pandaGen.getInsns(); - // count variables offset - let startIdx = 0; - let startIns = scope.getScopeStartIns(); - let endIns = scope.getScopeEndIns(); - - for (let i = 0; i < insns.length; i++) { - if (startIns == insns[i]) { - startIdx = i; - } - - if (endIns == insns[i]) { - let name2variable = scope.getName2variable(); - name2variable.forEach((value, key) => { - if (!value.hasAlreadyBinded()) { - return; - } - let variableInfo = new VariableDebugInfo(key, "any", "any", (value.getVreg().num)); - variableInfo.setStart(startIdx); - variableInfo.setLength(i - startIdx + 1); - pandaGen.addDebugVariableInfo(variableInfo); - }); - } - } - } - private static setPosDebugInfo(pandaGen: PandaGen) { - let insns = pandaGen.getInsns(); + let insns: IRNode[] = pandaGen.getInsns(); let offset = 0; + // count pos offset for (let i = 0; i < insns.length; i++) { if (insns[i].debugPosInfo.getDebugPosInfoNodeState() == NodeKind.FirstNodeOfFunction) { DebugInfo.setPosInfoForUninitializeIns(insns[i].debugPosInfo, pandaGen); } - } - // count pos offset - for (let i = 0; i < insns.length; i++) { let insLength = DebugInfo.getIRNodeWholeLength(insns[i]); let insnsDebugPosInfo = insns[i].debugPosInfo; - if (insnsDebugPosInfo) { + if (insnsDebugPosInfo && CmdOptions.isDebugMode()) { insnsDebugPosInfo.setBoundLeft(offset); insnsDebugPosInfo.setBoundRight(offset + insLength); } @@ -340,20 +296,36 @@ export class DebugInfo { } } - private static removeDebugIns(pandaGen: PandaGen) { + private static setVariablesDebugInfo(pandaGen: PandaGen) { let insns = pandaGen.getInsns(); + for (let i = 0; i < insns.length; i++) { - if (insns[i] instanceof DebugInsPlaceHolder) { + if (insns[i] instanceof DebugInsStartPlaceHolder) { + ( insns[i]).getScope().setScopeStartInsIdx(i); + // delete ins placeholder + insns.splice(i, 1); + i--; + } + if (insns[i] instanceof DebugInsEndPlaceHolder) { + ( insns[i]).getScope().setScopeEndInsIdx(i); + // delete ins placeholder insns.splice(i, 1); i--; } } - } - private static setVariablesDebugInfo(pandaGen: PandaGen) { let recordArray = DebugInfo.getScopeArray(); recordArray.forEach(scope => { - DebugInfo.setVariablesDebugInfoInternal(pandaGen, scope); + let name2variable = scope.getName2variable(); + name2variable.forEach((value, key) => { + if (!value.hasAlreadyBinded()) { + return; + } + let variableInfo = new VariableDebugInfo(key, "any", "any", (value.getVreg().num)); + variableInfo.setStart(scope.getScopeStartInsIdx()); + variableInfo.setLength(scope.getScopeEndInsIdx() - scope.getScopeStartInsIdx()); + pandaGen.addDebugVariableInfo(variableInfo); + }); }); } @@ -364,9 +336,6 @@ export class DebugInfo { // set variable debug info DebugInfo.setVariablesDebugInfo(pandaGen); - // delete ins placeholder - DebugInfo.removeDebugIns(pandaGen) - // clear scope array DebugInfo.clearScopeArray(); return; @@ -397,14 +366,15 @@ export class DebugInfo { if (!CmdOptions.isDebugMode()) { return; } + let insns = pandaGen.getInsns(); - let placeHolder = new DebugInsPlaceHolder(); - insns.push(placeHolder); + let placeHolder: IRNode; if (isStart) { - scope.setScopeStartIns(placeHolder); + placeHolder = new DebugInsStartPlaceHolder(scope); DebugInfo.addScope(scope); } else { - scope.setScopeEndIns(placeHolder); + placeHolder = new DebugInsEndPlaceHolder(scope); } + insns.push(placeHolder); } } diff --git a/ts2panda/src/expression/callExpression.ts b/ts2panda/src/expression/callExpression.ts index 90603bedb619465bb43a664bf77d84df4f699d39..ef5336575c466d9a04be4cb3fa493890938bde15 100644 --- a/ts2panda/src/expression/callExpression.ts +++ b/ts2panda/src/expression/callExpression.ts @@ -14,15 +14,16 @@ */ import * as ts from "typescript"; +import { isMemberExpression } from "../base/util"; import { CacheList, getVregisterCache } from "../base/vregisterCache"; import { Compiler } from "../compiler"; import { VReg } from "../irnodes"; import { compileSuperCall, compileSuperProperty } from "../statement/classStatement"; import { createArrayFromElements } from "./arrayLiteralExpression"; import { getObjAndProp } from "./memberAccessExpression"; -import { isMemberExpression } from "../base/util"; +// @ts-ignore export function compileCallExpression(expr: ts.CallExpression, compiler: Compiler, inTailPos?: boolean) { let pandaGen = compiler.getPandaGen(); // import call should be supported further @@ -58,6 +59,7 @@ export function getHiddenParameters(expr: ts.Expression, compiler: Compiler) { passThis = true; let thisReg = pandaGen.getTemp(); let propReg = pandaGen.getTemp(); + // @ts-ignore let { obj: obj, prop: prop } = getObjAndProp(expr, thisReg, propReg, compiler); if ((expr).expression.kind == ts.SyntaxKind.SuperKeyword) { diff --git a/ts2panda/src/function/asyncFunctionBuilder.ts b/ts2panda/src/function/asyncFunctionBuilder.ts index 63b68879fc771ab0bdbc199928cda416dd88c561..5c29ae1f70095b9771722685ee45000b46087559 100644 --- a/ts2panda/src/function/asyncFunctionBuilder.ts +++ b/ts2panda/src/function/asyncFunctionBuilder.ts @@ -13,7 +13,7 @@ * limitations under the License. */ -import ts from "typescript"; +import * as ts from "typescript"; import { CacheList, getVregisterCache } from "../base/vregisterCache"; import { NodeKind } from "../debuginfo"; import { diff --git a/ts2panda/src/function/functionBuilder.ts b/ts2panda/src/function/functionBuilder.ts old mode 100755 new mode 100644 index 0d56c987cbf2906e5a6ca597088fe9d58285153f..f05185a8e159f2d17fc4a7425d63fb70250bfb7c --- a/ts2panda/src/function/functionBuilder.ts +++ b/ts2panda/src/function/functionBuilder.ts @@ -20,9 +20,11 @@ import { AsyncFunctionBuilder } from "./asyncFunctionBuilder"; export type FunctionBuilderType = AsyncFunctionBuilder | GeneratorFunctionBuilder | FunctionBuilder; export class FunctionBuilder { + // @ts-ignore prepare(node: ts.Node): void { } + // @ts-ignore cleanUp(node: ts.Node): void { } } \ No newline at end of file diff --git a/ts2panda/src/function/generatorFunctionBuilder.ts b/ts2panda/src/function/generatorFunctionBuilder.ts index 73a26c6be44ff69a8472f50db41a2eea4feec2d8..b7297aebd1462233cc4ef8002c0448c3d4f006cc 100755 --- a/ts2panda/src/function/generatorFunctionBuilder.ts +++ b/ts2panda/src/function/generatorFunctionBuilder.ts @@ -14,7 +14,7 @@ */ import { Scope } from "src/scope"; -import ts from "typescript"; +import * as ts from "typescript"; import { CacheList, getVregisterCache } from "../base/vregisterCache"; import { Compiler, ControlFlowChange } from "../compiler"; import { @@ -47,8 +47,8 @@ export class GeneratorFunctionBuilder { prepare(node: ts.Node, recorder: Recorder) { let pandaGen = this.pandaGen; + // @ts-ignore let scope = recorder.getScopeOfNode(node); - let funcObj = scope.getName2variable().get("4funcObj")!.getVreg(); // backend handle funcobj, frontend set undefined pandaGen.createGeneratorObj(node, getVregisterCache(pandaGen, CacheList.FUNC)); diff --git a/ts2panda/src/index.ts b/ts2panda/src/index.ts index 0c4ef703815165fb00d5b7a78df50858f7b434e6..93f4886b35b503e2307cc65323dc8c0790cee8c0 100644 --- a/ts2panda/src/index.ts +++ b/ts2panda/src/index.ts @@ -13,20 +13,16 @@ * limitations under the License. */ +import * as path from "path"; import * as ts from "typescript"; +import * as fs from "fs"; import { CmdOptions } from "./cmdOptions"; import { CompilerDriver } from "./compilerDriver"; import * as diag from "./diagnostic"; -import { LOGD, LOGE } from "./log"; -import { Pass } from "./pass"; -import { CacheExpander } from "./pass/cacheExpander"; -import { ICPass } from "./pass/ICPass"; -import { RegAlloc } from "./regAllocator"; -import { setGlobalStrict, setGlobalDeclare, isGlobalDeclare } from "./strictMode"; +import * as jshelpers from "./jshelpers"; +import { LOGE } from "./log"; +import { setGlobalDeclare, setGlobalStrict } from "./strictMode"; import { TypeChecker } from "./typeChecker"; -import { TypeRecorder } from "./typeRecorder"; -import jshelpers = require("./jshelpers"); -import path = require("path"); import { setPos } from "./base/util"; function checkIsGlobalDeclaration(sourceFile: ts.SourceFile) { @@ -50,15 +46,6 @@ function generateDTs(node: ts.SourceFile, options: ts.CompilerOptions) { let outputBinName = getOutputBinName(node); let compilerDriver = new CompilerDriver(outputBinName); setGlobalStrict(jshelpers.isEffectiveStrictModeSourceFile(node, options)); - if (CmdOptions.isVariantBytecode()) { - LOGD("variant bytecode dump"); - let passes: Pass[] = [ - new CacheExpander(), - new ICPass(), - new RegAlloc() - ]; - compilerDriver.setCustomPasses(passes); - } compilerDriver.compile(node); compilerDriver.showStatistics(); } @@ -84,6 +71,7 @@ function main(fileNames: string[], options: ts.CompilerOptions) { undefined, { before: [ + // @ts-ignore (ctx: ts.TransformationContext) => { return (node: ts.SourceFile) => { let outputBinName = getOutputBinName(node); @@ -94,6 +82,7 @@ function main(fileNames: string[], options: ts.CompilerOptions) { } ], after: [ + // @ts-ignore (ctx: ts.TransformationContext) => { return (node: ts.SourceFile) => { if (ts.getEmitHelpers(node)) { @@ -113,15 +102,6 @@ function main(fileNames: string[], options: ts.CompilerOptions) { let outputBinName = getOutputBinName(node); let compilerDriver = new CompilerDriver(outputBinName); setGlobalStrict(jshelpers.isEffectiveStrictModeSourceFile(node, options)); - if (CmdOptions.isVariantBytecode()) { - LOGD("variant bytecode dump"); - let passes: Pass[] = [ - new CacheExpander(), - new ICPass(), - new RegAlloc() - ]; - compilerDriver.setCustomPasses(passes); - } compilerDriver.compile(node); compilerDriver.showStatistics(); return node; @@ -155,6 +135,25 @@ function getOutputBinName(node: ts.SourceFile) { return outputBinName; } +function getDtsFiles(libDir: string): string[] { + let dtsFiles:string[] = []; + function finDtsFile(dir){ + let files = fs.readdirSync(dir); + files.forEach(function (item, _) { + let fPath = path.join(dir,item); + let stat = fs.statSync(fPath); + if(stat.isDirectory() === true) { + finDtsFile(fPath); + } + if (stat.isFile() === true && item.endsWith(".d.ts") === true) { + dtsFiles.push(fPath); + } + }); + } + finDtsFile(libDir); + return dtsFiles; +} + namespace Compiler { export namespace Options { export let Default: ts.CompilerOptions = { @@ -200,5 +199,7 @@ function run(args: string[], options?: ts.CompilerOptions): void { } } +let dtsFiles = getDtsFiles(path["join"](__dirname, "../node_modules/typescript/lib")); +process.argv.push(...dtsFiles); run(process.argv.slice(2), Compiler.Options.Default); global.gc(); diff --git a/ts2panda/src/intrinsicExpander.ts b/ts2panda/src/intrinsicExpander.ts deleted file mode 100644 index cefb3c22b00827f153780142726c92ac15de9ed8..0000000000000000000000000000000000000000 --- a/ts2panda/src/intrinsicExpander.ts +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Copyright (c) 2021 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { AssemblyDumper, IntrinsicInfo } from "./assemblyDumper"; -import { DebugInfo } from "./debuginfo"; -import { - Call, - CallRange, - CallShort, - FldaiDyn, - Imm, - Intrinsic, - IRNode, - LdaiDyn, - LdaStr, - OperandKind, - ResultDst, - ResultType, - StaDyn, - VReg -} from "./irnodes"; -import { PandaGen } from "./pandagen"; -import { Pass } from "./pass"; - -export class IntrinsicExpanderInternal { - private temps: VReg[] = []; - - getTemp(): VReg { - if (this.temps.length > 0) { - return this.temps.pop()!; - } else { - return new VReg(); - } - } - - freeTemps(temps: VReg[]) { - this.temps = this.temps.concat(temps); - } - - // this method records the intrinsic usage during the whole source code - // it can help dumper to write the intrinsic function declaration in the front of bytecode - intrinsicDeclRec(ins: Intrinsic) { - let intrinsicName = ins.mnemonic; - let argsNum = ins.operands.length; - let resultType: string = ""; - if (ins.resultIn() == ResultDst.None) { - resultType = "void"; - } else if (ins.resultIn() == ResultDst.Acc) { - resultType = "any"; - } else { - throw new Error("resultType of" + ins.resultIn() + "is not implement"); - } - let intrinsicInfo = new IntrinsicInfo(intrinsicName, argsNum, resultType); - AssemblyDumper.intrinsicRec.set(ins.mnemonic, intrinsicInfo); - } - - // Transforms a synthetic "intrinsic instruction" into an intrinsic function call. - // Returns an array of instructions forming intrinsic call and - // an array of temporary registers used for expansion. - expandInstruction(ins: Intrinsic): [IRNode[], VReg[]] { - let operands = ins.operands; - let formats = ins.formats; - let expansion: IRNode[] = []; - let callArgs: VReg[] = []; - let tempVregs: VReg[] = []; - - let intrinsicName = "Ecmascript.Intrinsics." + ins.mnemonic; - - // Walk the rest of the arguments. - for (let i = 0; i < operands.length; ++i) { - let format = formats[0]; - let kind: OperandKind; - kind = format[i].kind; - - let operand = operands[i]; - - if (kind === OperandKind.SrcVReg) { - callArgs.push(operand); - continue; - } - - // Imm has to be put into a vreg to be passed to intrinsic. - // for defineFuncDyn - if (kind === OperandKind.Imm) { - let tempImm: VReg = this.getTemp(); - let imm = operand; - let type = imm.resultType(); - if (type == ResultType.Int || type == ResultType.Long) { - expansion.push(new LdaiDyn(imm)); - } else if (type == ResultType.Float) { - expansion.push(new FldaiDyn(imm)); - } else { - throw new Error("Unexpected result type for an Imm"); - } - expansion.push(new StaDyn(tempImm)); - callArgs.push(tempImm); - tempVregs.push(tempImm); - continue; - } - - // Put id into vreg as a string object. - if (kind === OperandKind.Id) { - let tempId: VReg = this.getTemp(); - expansion.push(new LdaStr(operand)); - expansion.push(new StaDyn(tempId)); - callArgs.push(tempId); - tempVregs.push(tempId); - continue; - } - - // For simplicity, intrinsics shall not have destinations other than accumulator. - // Also, no labels are allowed as operands. - if (kind === OperandKind.DstVReg - || kind === OperandKind.SrcDstVReg - || ins.resultIn() === ResultDst.VReg) { - throw new Error("Intrinsic " + ins.mnemonic + " has unexpected operand kinds"); - } else { - throw new Error("Unknown operand kind for intrinsic " + ins.mnemonic); - } - } - - // Call the intrinsic. - switch (callArgs.length) { - case 0: - expansion.push(new CallShort(intrinsicName)); - break; - case 1: - expansion.push(new CallShort(intrinsicName, callArgs[0])); - break; - case 2: - expansion.push(new CallShort(intrinsicName, callArgs[0], callArgs[1])); - break; - case 3: - expansion.push(new Call(intrinsicName, callArgs[0], callArgs[1], callArgs[2])); - break; - case 4: - expansion.push(new Call(intrinsicName, callArgs[0], callArgs[1], callArgs[2], callArgs[3])); - break; - default: - expansion.push(new CallRange(intrinsicName, callArgs)); - } - return [expansion, tempVregs]; - } - - run(pg: PandaGen): void { - let insns: IRNode[] = pg.getInsns(); - let origTemps: VReg[] = pg.getTemps(); - - for (let i = 0; i < insns.length; ++i) { - let ins: IRNode = insns[i]; - if (ins instanceof Intrinsic) { - // record the intrinsic - if (!AssemblyDumper.intrinsicRec.has(ins.mnemonic)) { - this.intrinsicDeclRec(ins); - } - - let [expansion, temps] = this.expandInstruction(ins); - - // for debuginfo - DebugInfo.copyDebugInfo(insns[i], expansion); - - insns.splice(i, 1, ...expansion); - // Since we put something into the original array, its length changed. - // Skip what we've just added. - let step = expansion.length - 1; - i += step; - - this.freeTemps(temps); - } - } - // We need extra registers in the function. - origTemps.push(...this.temps); - } -} -export class IntrinsicExpander implements Pass { - run(pg: PandaGen): void { - let intrinsicExpanderInternal = new IntrinsicExpanderInternal(); - intrinsicExpanderInternal.run(pg); - } -} diff --git a/ts2panda/src/lexenv.ts b/ts2panda/src/lexenv.ts index d4c1cc77760c973702b96b8a651974effd2fb03f..525929630268edd5df6acc92651d8d037f000034 100644 --- a/ts2panda/src/lexenv.ts +++ b/ts2panda/src/lexenv.ts @@ -13,7 +13,7 @@ * limitations under the License. */ -import ts from "typescript"; +import * as ts from "typescript"; import { loadAccumulator, loadAccumulatorString, @@ -37,7 +37,7 @@ import { LocalVariable, Variable } from "./variable"; -import jshelpers from "./jshelpers"; +import * as jshelpers from "./jshelpers"; abstract class VariableAccessBase { variable: Variable; diff --git a/ts2panda/src/modules.ts b/ts2panda/src/modules.ts index 8e1ea468a7997abc8d56396a510f4141e71c6a66..90113f6969b5757f7c59fd36a3e4555d88a18883 100644 --- a/ts2panda/src/modules.ts +++ b/ts2panda/src/modules.ts @@ -15,7 +15,7 @@ import * as ts from "typescript"; import { PandaGen } from "./pandagen"; -import jshelpers from "./jshelpers"; +import * as jshelpers from "./jshelpers"; import { LocalVariable } from "./variable"; import { DiagnosticCode, DiagnosticError } from "./diagnostic"; import { ModuleScope } from "./scope"; diff --git a/ts2panda/src/pandagen.ts b/ts2panda/src/pandagen.ts index d7b0bfceb7e66f4b1721e37373cd78d29550fcc6..a40bbe240d0609df4d9f18ff8674f4b5fa60ae91 100644 --- a/ts2panda/src/pandagen.ts +++ b/ts2panda/src/pandagen.ts @@ -110,7 +110,6 @@ import { getVregisterCache, VregisterCache } from "./base/vregisterCache"; -import { CmdOptions } from "./cmdOptions"; import { DebugInfo, NodeKind, @@ -164,7 +163,6 @@ import { IRNode, Jeqz, Label, - ResultType, ReturnDyn, VReg } from "./irnodes"; @@ -187,6 +185,7 @@ import { BaseType } from "./base/typeSystem"; import { TypeRecorder } from "./typeRecorder"; export class PandaGen { + // @ts-ignore private debugTag: string = "PandaGen"; readonly internalName: string; private parametersCount: number; @@ -202,7 +201,6 @@ export class PandaGen { private firstStmt: ts.Statement | undefined; private sourceFileDebugInfo: string = ""; private sourceCodeDebugInfo: string | undefined; - private icSize: number = 0; private callType: number = 0; private static literalArrayBuffer: Array = new Array(); @@ -276,14 +274,6 @@ export class PandaGen { } } - getICSize() { - return this.icSize; - } - - setICSize(total: number) { - this.icSize = total; - } - static appendTypeArrayBuffer(type: BaseType): number { let index = PandaGen.literalArrayBuffer.length; PandaGen.literalArrayBuffer.push(type.transfer2LiteralBuffer()); @@ -348,20 +338,10 @@ export class PandaGen { retval = new VReg(); } - if (CmdOptions.isEnableDebugLog()) { - if (retval.getStackTrace() !== undefined) { - throw new Error("stack trace of new temp register is not empty"); - } - retval.setStackTrace(); - } return retval; } freeTemps(...temps: VReg[]) { - if (CmdOptions.isEnableDebugLog()) - for (let value of temps) - value.setStackTrace(null); - this.temps.unshift(...temps); } @@ -654,6 +634,7 @@ export class PandaGen { this.add(node, moveVreg(vd, vs)); } + // @ts-ignore label(node: ts.Node, label: Label) { this.add(NodeKind.FirstNodeOfFunction, label); } @@ -1010,7 +991,7 @@ export class PandaGen { } copyRestArgs(node: ts.Node, index: number) { - this.add(node, new EcmaCopyrestargs(new Imm(ResultType.Int, index))); + this.add(node, new EcmaCopyrestargs(new Imm(index))); } getPropIterator(node: ts.Node) { @@ -1297,6 +1278,6 @@ export class PandaGen { // set pos debug info if debug mode DebugInfo.setDebuginfoForIns(node, ...insns); - this.insns = this.insns.concat(insns); + this.insns.push(...insns); } } diff --git a/ts2panda/src/pandasm.ts b/ts2panda/src/pandasm.ts index 565615a2f5f02e75553723fec2af9ccf9d17fbee..3b1ecdfa8d60bce4139fcda2002afe7a06eaffad 100644 --- a/ts2panda/src/pandasm.ts +++ b/ts2panda/src/pandasm.ts @@ -27,84 +27,83 @@ export class Metadata { } export class Signature { - public params: number; - public retType: string | undefined; // return type is always 'any', so we ignore it in json + public p: number; // parameters + public rt: string | undefined; // return type is always 'any', so we ignore it in json constructor(params: number = 0, retType?: string | undefined) { - this.params = params; - this.retType = retType; + this.p = params; + this.rt = retType; } } export class Ins { - public op: string; - public regs: Array | undefined; - public ids: Array | undefined; - public imms: Array | undefined; - public label: string | undefined; + public o: number | undefined; // op + public r: Array | undefined; // resgs + public id: Array | undefined; // ids + public im: Array | undefined; // imms + public l: string | undefined; // label - public debug_pos_info: DebugPosInfo | undefined; + public d: DebugPosInfo | undefined; // debug position info constructor( - op: string, + op: number | undefined = undefined, regs: Array | undefined = undefined, ids: Array | undefined = undefined, imms: Array | undefined = undefined, label: string | undefined = undefined, - debug_pos_info: DebugPosInfo | undefined = undefined, + dbg_pos: DebugPosInfo | undefined = undefined, ) { - this.op = op; - this.regs = regs; - this.ids = ids; - this.imms = imms; - this.label = label; - this.debug_pos_info = debug_pos_info; + this.o = op; + this.r = regs; + this.id = ids; + this.im = imms; + this.l = label; + this.d = dbg_pos; } } export class Function { - public name: string; - public signature: Signature; - public regs_num: number; - public ins: Array; - public labels: Array; - public metadata: Metadata; - public catchTables: Array; - public variables: Array | undefined; - public sourceFile: string; - public sourceCode: string | undefined; - public callType: number; - public typeInfo: Array; - public exportedSymbol2Types: Array | undefined; - public declaredSymbol2Types: Array | undefined; + public n: string; // name + public s: Signature; // signature + public r: number; // regs number + public i: Array; // ins + public l: Array | undefined; // labels + public ca_tab: Array | undefined; // catch tabels + public v: Array | undefined; // variables + public sf: string; // source file + public sc: string | undefined; // source code + public ct: number | undefined; // call type + public ti: Array | undefined; // typeinfo: record type index array, starts from reg_0 + public es2t: Array | undefined; // exportedSymbol2Types + public ds2t: Array | undefined; // declaredSymbol2Types constructor( name: string, signature: Signature, regs_num: number = 0, ins: Array = [], - labels: Array = [], - variables: Array | undefined = undefined, - sourceFile: string = "", - sourceCode: string | undefined = undefined, - callType: number = 0, - typeInfo: Array, + labs: Array | undefined = undefined, + vars: Array | undefined = undefined, + catchTables: Array | undefined = undefined, + sourceFiles: string = "", + sourceCodes: string | undefined = undefined, + callType: number | undefined = undefined, + typeInfo: Array | undefined = undefined, exportedSymbol2Types: Array | undefined = undefined, declaredSymbol2Types: Array | undefined = undefined ) { - this.name = name; - this.signature = signature; - this.ins = ins; - this.labels = labels; - this.regs_num = regs_num; - this.metadata = new Metadata(); - this.catchTables = []; - this.variables = variables; - this.sourceFile = sourceFile; - this.sourceCode = sourceCode; - this.callType = callType; - this.typeInfo = typeInfo; - this.exportedSymbol2Types = exportedSymbol2Types; - this.declaredSymbol2Types = declaredSymbol2Types; + this.n = name; + this.s = signature; + this.i = ins; + this.l = labs; + this.r = regs_num; + this.ca_tab = catchTables; + this.v = vars; + this.sf = sourceFiles; + this.sc = sourceCodes; + this.ct = callType; + this.ti = typeInfo; + this.es2t = exportedSymbol2Types; + this.ds2t = declaredSymbol2Types; } } @@ -163,23 +162,25 @@ export class Program { } export class CatchTable { - public tryBeginLabel: string; - public tryEndLabel: string; - public catchBeginLabel: string; + public tb_lab: string; // try begine label + public te_lab: string; // try end label + public cb_lab: string; // catch begin label constructor( tryBeginLabel: string, tryEndLabel: string, catchBeginLabel: string ) { - this.tryBeginLabel = tryBeginLabel; - this.tryEndLabel = tryEndLabel; - this.catchBeginLabel = catchBeginLabel; + this.tb_lab = tryBeginLabel; + this.te_lab = tryEndLabel; + this.cb_lab = catchBeginLabel; } } export class TypeOfVreg { + // @ts-ignore private vregNum: number; + // @ts-ignore private typeIndex: number; constructor(vregNum: number, typeIndex: number) { @@ -189,7 +190,9 @@ export class TypeOfVreg { } export class ExportedSymbol2Type { + // @ts-ignore private symbol: string; + // @ts-ignore private type: number; constructor(symbol: string, type: number) { @@ -199,7 +202,9 @@ export class ExportedSymbol2Type { } export class DeclaredSymbol2Type { + // @ts-ignore private symbol: string; + // @ts-ignore private type: number; constructor(symbol: string, type: number) { diff --git a/ts2panda/src/pass/ICPass.ts b/ts2panda/src/pass/ICPass.ts deleted file mode 100644 index e05499f05c8cfa76ebf5ca86174f9e49b6b4f0cd..0000000000000000000000000000000000000000 --- a/ts2panda/src/pass/ICPass.ts +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2021 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { - Intrinsic, IRNode -} from "../irnodes"; -import { LOGE } from "../log"; -import { PandaGen } from "../pandagen"; -import { Pass } from "../pass"; - -class ICPassImpl { - constructor() { } - - run(pg: PandaGen): void { - let insns: IRNode[] = pg.getInsns(); - let icSize: number = 0; - - for (let i = 0; i < insns.length; ++i) { - if (!(insns[i] instanceof Intrinsic)) { - continue; - } - - let ins: Intrinsic = (insns[i]); - if (!ins.hasIC()) { - continue; - } - - icSize = ins.updateICOffset(icSize); - } - - if (icSize >= 0xFFFF) { - LOGE("ICPass: <" + pg.internalName + "> slot size overflow! total:" + icSize); - } - pg.setICSize(icSize); - } -} - -export class ICPass implements Pass { - run(pg: PandaGen): void { - let icPass = new ICPassImpl(); - icPass.run(pg); - } -} \ No newline at end of file diff --git a/ts2panda/src/recorder.ts b/ts2panda/src/recorder.ts index 670bd357f2cb17b733691f9442c546a9a33a013d..d500a8d297a91f558ae4f0d3d0648804890485bd 100644 --- a/ts2panda/src/recorder.ts +++ b/ts2panda/src/recorder.ts @@ -13,7 +13,7 @@ * limitations under the License. */ -import ts from "typescript"; +import * as ts from "typescript"; import * as astutils from "./astutils"; import { isAnonymousFunctionDefinition } from "./base/util"; import { CmdOptions } from "./cmdOptions"; @@ -473,15 +473,19 @@ export class Recorder { let outerNode = findOuterNodeOfParenthesis(node); if (ts.isVariableDeclaration(outerNode)) { + // @ts-ignore let id = outerNode.name; if (ts.isIdentifier(id)) { name = jshelpers.getTextOfIdentifierOrLiteral(id); } } else if (ts.isBinaryExpression(outerNode)) { + // @ts-ignore if (outerNode.operatorToken.kind == ts.SyntaxKind.EqualsToken && ts.isIdentifier(outerNode.left)) { + // @ts-ignore name = jshelpers.getTextOfIdentifierOrLiteral(outerNode.left); } } else if (ts.isPropertyAssignment(outerNode)) { + // @ts-ignore let propName = outerNode.name; if (ts.isIdentifier(propName) || ts.isStringLiteral(propName) || ts.isNumericLiteral(propName)) { name = jshelpers.getTextOfIdentifierOrLiteral(propName); diff --git a/ts2panda/src/regAllocator.ts b/ts2panda/src/regAllocator.ts index b771b6b2f62fcf78b59eb3c1b3a4af2dd7a60ca7..985262132e01524aa049484641aed64ff2098f42 100644 --- a/ts2panda/src/regAllocator.ts +++ b/ts2panda/src/regAllocator.ts @@ -13,27 +13,20 @@ * limitations under the License. */ +import { + getRangeStartVregPos, isRangeInst +} from "./base/util"; import { CacheList } from "./base/vregisterCache"; import { DebugInfo } from "./debuginfo"; import { - EcmaCallithisrangedyn, - EcmaCallirangedyn, - EcmaNewobjdynrange, - EcmaCreateobjectwithexcludedkeys, Format, IRNode, MovDyn, OperandKind, OperandType, - VReg, - Imm + VReg } from "./irnodes"; import { PandaGen } from "./pandagen"; -import { - isRangeInst, - getRangeStartVregPos, - getRangeExplicitVregNums, -} from "./base/util"; const MAX_VREGA = 16; const MAX_VREGB = 256; @@ -114,7 +107,7 @@ class RegAllocator { let num = 0; for (let j = 0; j < operands.length; ++j) { if (operands[j] instanceof VReg) { - if ((operands[j]).num >= (1 << format[j].bitwidth)) { + if ((operands[j]).num >= (1 << format[j][1])) { num++; } } @@ -142,22 +135,22 @@ class RegAllocator { for (let j = 0; j < operands.length; ++j) { if (operands[j] instanceof VReg) { let vOrigin = operands[j]; - if (vOrigin.num >= (1 << format[j].bitwidth)) { + if (vOrigin.num >= (1 << format[j][1])) { let spill = this.allocSpill(); spills.push(spill); let vTmp; try { - vTmp = this.findTmpVreg(1 << format[j].bitwidth); + vTmp = this.findTmpVreg(1 << format[j][1]); } catch { throw Error("no available tmp vReg"); } head.push(new MovDyn(spill, vTmp)); operands[j] = vTmp; - if (format[j].kind == OperandKind.SrcVReg) { + if (format[j][0] == OperandKind.SrcVReg) { head.push(new MovDyn(vTmp, vOrigin)); - } else if (format[j].kind == OperandKind.DstVReg) { + } else if (format[j][0] == OperandKind.DstVReg) { tail.push(new MovDyn(vOrigin, vTmp)) - } else if (format[j].kind == OperandKind.SrcDstVReg) { + } else if (format[j][0] == OperandKind.SrcDstVReg) { head.push(new MovDyn(vTmp, vOrigin)); tail.push(new MovDyn(vOrigin, vTmp)) } else { @@ -185,7 +178,7 @@ class RegAllocator { checkDynRangeInstruction(irNodes: IRNode[], index: number): boolean { let operands = irNodes[index].operands; let rangeRegOffset = getRangeStartVregPos(irNodes[index]); - let level = 1 << irNodes[index].formats[0][rangeRegOffset].bitwidth; + let level = 1 << (irNodes[index].getFormats())[0][rangeRegOffset][1]; /* 1. "CalliDynRange 4, v255" is a valid insn, there is no need for all 4 registers numbers to be less than 255, @@ -202,7 +195,6 @@ class RegAllocator { /* the first operand is an imm */ let startNum = (operands[rangeRegOffset]).num; let i = rangeRegOffset + 1; - let implicitRegNums = (irNodes[index]).operands.length - i; for (; i < (irNodes[index]).operands.length; ++i) { if ((startNum + 1) != (operands[i]).num) { throw Error("Warning: VReg sequence of DynRange is not continuous. Please adjust it now."); @@ -229,7 +221,7 @@ class RegAllocator { let rangeRegOffset = getRangeStartVregPos(irNodes[index]); let regNums = operands.length - getRangeStartVregPos(irNodes[index]); - let level = 1 << irNodes[index].formats[0][rangeRegOffset].bitwidth; + let level = 1 << (irNodes[index].getFormats())[0][rangeRegOffset][1]; let tmp = this.findTmpVreg(level); for (let i = 0; i < regNums; i++) { @@ -260,7 +252,7 @@ class RegAllocator { adjustInstructionsIfNeeded(irNodes: IRNode[]): void { for (let i = 0; i < irNodes.length; ++i) { let operands = irNodes[i].operands; - let formats = irNodes[i].formats; + let formats = irNodes[i].getFormats(); if (isRangeInst(irNodes[i])) { if (this.checkDynRangeInstruction(irNodes, i)) { continue; diff --git a/ts2panda/src/scope.ts b/ts2panda/src/scope.ts index 79a59c04865401021aba827a91071010202e6d23..209c246c5c980db6ffb4ee9e9dc8c41f524dd6b7 100644 --- a/ts2panda/src/scope.ts +++ b/ts2panda/src/scope.ts @@ -14,7 +14,6 @@ */ import * as ts from "typescript"; -import { DebugInsPlaceHolder } from "./irnodes"; import { LOGD, LOGE } from "./log"; import { GlobalVariable, @@ -86,8 +85,8 @@ export abstract class Scope { protected decls: Decl[] = []; protected parent: Scope | undefined = undefined; // for debuginfo - protected startIns: DebugInsPlaceHolder = new DebugInsPlaceHolder(); - protected endIns: DebugInsPlaceHolder = new DebugInsPlaceHolder(); + protected startInsIdx: number | undefined; + protected endInsIdx: number | undefined; constructor() { } abstract add(name: string, declKind: VarDeclarationKind, status?: InitStatus): Variable | undefined; @@ -96,20 +95,20 @@ export abstract class Scope { return this.name2variable; } - getScopeStartIns() { - return this.startIns; + getScopeStartInsIdx() { + return this.startInsIdx; } - setScopeStartIns(startIns: DebugInsPlaceHolder) { - this.startIns = startIns; + setScopeStartInsIdx(startInsIdx: number) { + this.startInsIdx = startInsIdx; } - setScopeEndIns(endIns: DebugInsPlaceHolder) { - this.endIns = endIns; + setScopeEndInsIdx(endInsIdx: number) { + this.endInsIdx = endInsIdx; } - getScopeEndIns() { - return this.endIns; + getScopeEndInsIdx() { + return this.endInsIdx; } setParent(parentScope: Scope | undefined) { diff --git a/ts2panda/src/statement/classStatement.ts b/ts2panda/src/statement/classStatement.ts index 982d1ab35dd80d43d486a00a5184c8284fd87401..880f4a5f6439912b09efb1f636363e4f9ed8bc00 100644 --- a/ts2panda/src/statement/classStatement.ts +++ b/ts2panda/src/statement/classStatement.ts @@ -13,7 +13,6 @@ * limitations under the License. */ -import { Ts2Panda } from "src/ts2panda"; import * as ts from "typescript"; import { Literal, LiteralBuffer, LiteralTag } from "../base/literal"; import { LReference } from "../base/lreference"; @@ -402,7 +401,6 @@ function loadCtorObj(node: ts.CallExpression, compiler: Compiler) { } if (ts.isConstructorDeclaration(nearestFunc)) { - let funcObj = nearestFuncScope.findLocal("4funcObj"); pandaGen.loadAccumulator(node, getVregisterCache(pandaGen, CacheList.FUNC)); } else { let outerFunc = jshelpers.getContainingFunctionDeclaration(nearestFunc); @@ -610,7 +608,7 @@ function generatePropertyFromExpr(node: ts.ClassLikeDeclaration, classFields: Ar let staticItems = properties.slice(properties.length - staticNum) properties = properties.slice(0, properties.length - staticNum); properties = properties.reverse(); - properties = properties.concat(staticItems); + properties.push(...staticItems); if (constructNode) { defineClassMember("constructor", constructNode, PropertyKind.Variable, properties, namedPropertyMap); diff --git a/ts2panda/src/statement/tryStatement.ts b/ts2panda/src/statement/tryStatement.ts index d720e5420da8226cb338697f6cb146f30bf40d77..2ae2fa97d592c49d4b0f9ab99a1f3f152e177bd3 100644 --- a/ts2panda/src/statement/tryStatement.ts +++ b/ts2panda/src/statement/tryStatement.ts @@ -25,10 +25,10 @@ import { CacheList, getVregisterCache } from "../base/vregisterCache"; -import { IteratorType, IteratorRecord } from "./forOfStatement"; +import { IteratorRecord } from "./forOfStatement"; import * as astutils from "../astutils"; import { VarDeclarationKind } from "../variable"; -import jshelpers from "../jshelpers"; +import * as jshelpers from "../jshelpers"; // adjust the try...catch...finally into nested try(try...catch) finally export function transformTryCatchFinally(tryStmt: ts.TryStatement, recorder: Recorder): ts.TryStatement { @@ -206,8 +206,10 @@ export class TryBuilder extends TryBuilderBase { this.compiler.pushScope(catchClause); compileCatchClauseVariableDeclaration(this.compiler, catchClause.variableDeclaration); let catchBlock = catchClause.block; + this.compiler.pushScope(catchBlock); catchBlock.statements.forEach((stmt) => this.compiler.compileStatement(stmt)); this.compiler.popScope(); + this.compiler.popScope(); } else { // finallyBlock rethrow exception when it catch the exception let exceptionVreg = this.pandaGen.getTemp(); @@ -219,6 +221,7 @@ export class TryBuilder extends TryBuilderBase { } } + // @ts-ignore compileFinalizer(cfc: ControlFlowChange, continueTargetLabel: Label) { this.compiler.compileStatement((this.stmt).finallyBlock!); } diff --git a/ts2panda/src/strictMode.ts b/ts2panda/src/strictMode.ts index 901098efb5c65b0734d38e87591327c3195dbd9b..b23d76e820a1a3145543528a2179cecbfb21fe62 100644 --- a/ts2panda/src/strictMode.ts +++ b/ts2panda/src/strictMode.ts @@ -14,7 +14,7 @@ */ import * as ts from "typescript"; -import jshelpers from "./jshelpers"; +import * as jshelpers from "./jshelpers"; let globalStrict = true; let globalDeclare = false; diff --git a/ts2panda/src/syntaxCheckHelper.ts b/ts2panda/src/syntaxCheckHelper.ts index 8439b27263c0053e12b7543c7300efa8f5c99d11..d7e4ba85967a5440066a4d4b222cfb389c5f2daf 100644 --- a/ts2panda/src/syntaxCheckHelper.ts +++ b/ts2panda/src/syntaxCheckHelper.ts @@ -14,7 +14,7 @@ */ import * as ts from "typescript"; -import jshelpers = require("./jshelpers"); +import * as jshelpers from "./jshelpers"; export function isOctalNumber(num: string): boolean { if (!num || num.length < 2) { diff --git a/ts2panda/src/syntaxChecker.ts b/ts2panda/src/syntaxChecker.ts index 185e3a2df366f5fa3369b44b7e2d68d8dd127b38..b8eadcc202713f4e7dfc49d35e3b25debb177da4 100644 --- a/ts2panda/src/syntaxChecker.ts +++ b/ts2panda/src/syntaxChecker.ts @@ -21,7 +21,8 @@ import { } from "./diagnostic"; import { hasExportKeywordModifier } from "./base/util"; import { findInnerExprOfParenthesis } from "./expression/parenthesizedExpression"; -import jshelpers, { getContainingFunction, getContainingFunctionDeclaration, getSourceFileOfNode } from "./jshelpers"; +import * as jshelpers from "./jshelpers"; +import { getContainingFunction, getContainingFunctionDeclaration, getSourceFileOfNode } from "./jshelpers"; import { LOGE } from "./log"; import { Recorder } from "./recorder"; import { @@ -215,6 +216,7 @@ function checkDuplicateParameter(node: ts.FunctionLikeDeclaration, recorder: Rec return; } parameters.forEach(param => { + // @ts-ignore if (tempNames.includes(param.name)) { throwDupIdError(param); } else { @@ -233,6 +235,7 @@ function checkDuplicateParameterVar(parameterNames: string[] | undefined, scope: continue; } let name = decls[i].name; + // @ts-ignore if (parameterNames.includes(name)) { throwDupIdError(decls[i]); } @@ -1028,6 +1031,7 @@ function checkInvalidQuestionMark(questionToken: ts.QuestionToken | undefined) { } } +// @ts-ignore function getPropertieDeclaration(node: ts.Node, name: ts.Node) { let decl = undefined; if (ts.isShorthandPropertyAssignment(node)) { @@ -1424,6 +1428,7 @@ export function checkExportEntries(recorder: Recorder) { let exportNames: Set = new Set(); exportStmts.forEach(exportStmt => { let bindingNameMap = exportStmt.getBindingNameMap(); + // @ts-ignore bindingNameMap.forEach((value: string, key: string) => { if (!exportNames.has(key)) { exportNames.add(key); diff --git a/ts2panda/src/syntaxCheckerForStrcitMode.ts b/ts2panda/src/syntaxCheckerForStrcitMode.ts index 42b09db21ea3cbc61e3a2d34db731a325edbddff..c251b517f4c49e031ab02b406377163cefdaa98c 100644 --- a/ts2panda/src/syntaxCheckerForStrcitMode.ts +++ b/ts2panda/src/syntaxCheckerForStrcitMode.ts @@ -17,7 +17,7 @@ import * as ts from "typescript"; import { CmdOptions } from "./cmdOptions"; import { DiagnosticCode, DiagnosticError } from "./diagnostic"; import { findInnerExprOfParenthesis } from "./expression/parenthesizedExpression"; -import jshelpers from "./jshelpers"; +import * as jshelpers from "./jshelpers"; import { checkStrictModeStatementList } from "./strictMode"; import { isAssignmentOperator, diff --git a/ts2panda/src/ts2panda.ts b/ts2panda/src/ts2panda.ts index 6e0d6e7cd998823d434bf796f1d7ba567171bcc9..dd1555e4fd94d6d7e9df8e068f977bf54fd2930d 100644 --- a/ts2panda/src/ts2panda.ts +++ b/ts2panda/src/ts2panda.ts @@ -14,10 +14,10 @@ */ import { CmdOptions } from "./cmdOptions"; -import { DebugPosInfo } from "./debuginfo"; import { Imm, IRNode, + IRNodeKind, Label, OperandType, VReg @@ -38,8 +38,8 @@ import { isRangeInst, getRangeStartVregPos } from "./base/util"; -import { TypeOfVreg } from "./pandasm"; import { LiteralBuffer } from "./base/literal"; +import { CompilerDriver } from "./compilerDriver"; const dollarSign: RegExp = /\$/g; @@ -53,7 +53,7 @@ const JsonType = { }; export class Ts2Panda { static strings: Set = new Set(); - static labelPrefix = "LABEL_"; + static labelPrefix = "L_"; static jsonString: string = ""; constructor() { @@ -68,12 +68,11 @@ export class Ts2Panda { let labels: Array = []; pg.getInsns().forEach((insn: IRNode) => { - let insOpcode = insn.mnemonic; + let insOpcode = insn.kind >= IRNodeKind.VREG ? undefined : insn.kind; let insRegs: Array = []; let insIds: Array = []; let insImms: Array = []; let insLabel: string = ""; - let insDebugInfo: DebugPosInfo = new DebugPosInfo(); if (insn instanceof Label) { insLabel = Ts2Panda.labelPrefix + insn.id; @@ -103,12 +102,8 @@ export class Ts2Panda { } }); } - insDebugInfo = insn.debugPosInfo; - if (CmdOptions.isDebugMode()) { - insDebugInfo.ClearMembersForDebugBuild(); - } else { - insDebugInfo.ClearMembersForReleaseBuild(); - } + + insn.debugPosInfo.ClearNodeKind(); insns.push(new Ins( insOpcode, @@ -116,32 +111,31 @@ export class Ts2Panda { insIds.length == 0 ? undefined : insIds, insImms.length == 0 ? undefined : insImms, insLabel === "" ? undefined : insLabel, - insDebugInfo, + insn.debugPosInfo, )); }); return { insns: insns, regsNum: (pg.getTotalRegsNum() - pg.getParametersCount()), - labels: labels + labels: labels.length == 0 ? undefined : labels }; } static dumpStringsArray(ts2abc: any) { let strings_arr = Array.from(Ts2Panda.strings); - strings_arr.forEach(function(str) { - let strObject = { - "type": JsonType.string, - "string": str - } - let jsonStrUnicode = escapeUnicode(JSON.stringify(strObject, null, 2)); - jsonStrUnicode = "$" + jsonStrUnicode.replace(dollarSign, '#$') + "$"; - if (CmdOptions.isEnableDebugLog()) { - Ts2Panda.jsonString += jsonStrUnicode; - } - ts2abc.stdio[3].write(jsonStrUnicode + '\n'); - }); + let strObject = { + "t": JsonType.string, + "s": strings_arr + } + + let jsonStrUnicode = escapeUnicode(JSON.stringify(strObject, null, 2)); + jsonStrUnicode = "$" + jsonStrUnicode.replace(dollarSign, '#$') + "$"; + if (CmdOptions.isEnableDebugLog()) { + Ts2Panda.jsonString += jsonStrUnicode; + } + ts2abc.stdio[3].write(jsonStrUnicode + '\n'); } static dumpTypeLiteralArrayBuffer() { @@ -168,8 +162,8 @@ export class Ts2Panda { literalArrays.forEach(function(literalArray) { let literalArrayObject = { - "type": JsonType.literal_arr, - "literalArray": literalArray + "t": JsonType.literal_arr, + "lit_arr": literalArray } let jsonLiteralArrUnicode = escapeUnicode(JSON.stringify(literalArrayObject, null, 2)); jsonLiteralArrUnicode = "$" + jsonLiteralArrUnicode.replace(dollarSign, '#$') + "$"; @@ -182,7 +176,7 @@ export class Ts2Panda { static dumpCmdOptions(ts2abc: any): void { let options = { - "type": JsonType.options, + "t": JsonType.options, "module_mode": CmdOptions.isModules(), "debug_mode": CmdOptions.isDebugMode(), "log_enabled": CmdOptions.isEnableDebugLog(), @@ -197,6 +191,7 @@ export class Ts2Panda { ts2abc.stdio[3].write(jsonOpt + '\n'); } + // @ts-ignore static dumpPandaGen(pg: PandaGen, ts2abc: any, recordType?: boolean): void { let funcName = pg.internalName; let funcSignature = Ts2Panda.getFuncSignature(pg); @@ -204,34 +199,39 @@ export class Ts2Panda { let sourceFile = pg.getSourceFileDebugInfo(); let callType = pg.getCallType(); let typeRecord = pg.getLocals(); - let typeInfo = new Array(); - typeRecord.forEach((vreg) => { - let typeOfVreg = new TypeOfVreg(vreg.num, vreg.getTypeIndex()); - typeInfo.push(typeOfVreg); - if (CmdOptions.enableTypeLog()) { - console.log("---------------------------------------"); - console.log("- vreg name:", vreg.getVariableName()); - console.log("- vreg local num:", vreg.num); - console.log("- vreg type:", vreg.getTypeIndex()); - } - }); - - let exportedTypes = PandaGen.getExportedTypes(); - let exportedSymbol2Types = exportedTypes.size == 0 ? undefined : new Array(); - if (funcName == "func_main_0") { - exportedTypes.forEach((type: number, symbol: string) => { - let exportedSymbol2Type = new ExportedSymbol2Type(symbol, type); - exportedSymbol2Types!.push(exportedSymbol2Type); - }) - } + let typeInfo = undefined; + let exportedSymbol2Types: undefined | Array = undefined; + let declaredSymbol2Types: undefined | Array = undefined; + if (CmdOptions.needRecordType() && CompilerDriver.isTsFile) { + typeInfo = new Array(); + typeRecord.forEach((vreg) => { + typeInfo.push(vreg.getTypeIndex()); + if (CmdOptions.enableTypeLog()) { + console.log("---------------------------------------"); + console.log("- vreg name:", vreg.getVariableName()); + console.log("- vreg local num:", vreg.num); + console.log("- vreg type:", vreg.getTypeIndex()); + } + }); - let declareddTypes = PandaGen.getDeclaredTypes(); - let declaredSymbol2Types = declareddTypes.size == 0 ? undefined : new Array(); - if (funcName == "func_main_0") { - declareddTypes.forEach((type: number, symbol: string) => { - let declaredSymbol2Type = new DeclaredSymbol2Type(symbol, type); - declaredSymbol2Types!.push(declaredSymbol2Type); - }) + if (funcName == "func_main_0") { + let exportedTypes = PandaGen.getExportedTypes(); + let declareddTypes = PandaGen.getDeclaredTypes(); + if (exportedTypes.size != 0) { + exportedSymbol2Types = new Array(); + exportedTypes.forEach((type: number, symbol: string) => { + let exportedSymbol2Type = new ExportedSymbol2Type(symbol, type); + exportedSymbol2Types.push(exportedSymbol2Type); + }); + } + if (declareddTypes.size != 0) { + declaredSymbol2Types = new Array(); + declareddTypes.forEach((type: number, symbol: string) => { + let declaredSymbol2Type = new DeclaredSymbol2Type(symbol, type); + declaredSymbol2Types.push(declaredSymbol2Type); + }); + } + } } let variables, sourceCode; @@ -243,6 +243,25 @@ export class Ts2Panda { sourceCode = undefined; } + let catchTableArr; + let catchTables = generateCatchTables(pg.getCatchMap()); + if (!catchTables) { + catchTableArr = undefined; + } else { + catchTableArr = []; + catchTables.forEach((catchTable) => { + let catchBeginLabel = catchTable.getCatchBeginLabel(); + let labelPairs = catchTable.getLabelPairs(); + labelPairs.forEach((labelPair) => { + catchTableArr.push(new CatchTable( + Ts2Panda.labelPrefix + labelPair.getBeginLabel().id, + Ts2Panda.labelPrefix + labelPair.getEndLabel().id, + Ts2Panda.labelPrefix + catchBeginLabel.id + )); + }); + }); + } + let func = new Function( funcName, funcSignature, @@ -250,6 +269,7 @@ export class Ts2Panda { funcInsnsAndRegsNum.insns, funcInsnsAndRegsNum.labels, variables, + catchTableArr, sourceFile, sourceCode, callType, @@ -257,24 +277,12 @@ export class Ts2Panda { exportedSymbol2Types, declaredSymbol2Types ); - let catchTables = generateCatchTables(pg.getCatchMap()); - catchTables.forEach((catchTable) => { - let catchBeginLabel = catchTable.getCatchBeginLabel(); - let labelPairs = catchTable.getLabelPairs(); - labelPairs.forEach((labelPair) => { - func.catchTables.push(new CatchTable( - Ts2Panda.labelPrefix + labelPair.getBeginLabel().id, - Ts2Panda.labelPrefix + labelPair.getEndLabel().id, - Ts2Panda.labelPrefix + catchBeginLabel.id - )); - }); - }); LOGD(func); let funcObject = { - "type": JsonType.function, - "func_body": func + "t": JsonType.function, + "fb": func } let jsonFuncUnicode = escapeUnicode(JSON.stringify(funcObject, null, 2)); jsonFuncUnicode = "$" + jsonFuncUnicode.replace(dollarSign, '#$') + "$"; diff --git a/ts2panda/src/typeChecker.ts b/ts2panda/src/typeChecker.ts index 5d2f71a0a3a93ae8b2e1c7bc490e958ca406e87a..07a10c131f42eb7cad12926d5d8774ff5ad3632d 100755 --- a/ts2panda/src/typeChecker.ts +++ b/ts2panda/src/typeChecker.ts @@ -1,21 +1,20 @@ -import ts, { forEachChild } from "typescript"; +import * as ts from "typescript"; import { - ClassType, + ArrayType, ClassInstType, + ClassType, ExternalType, - UnionType, - ArrayType, FunctionType, InterfaceType, - ObjectType + ObjectType, + PrimitiveType, + UnionType } from "./base/typeSystem"; -import { ModuleStmt } from "./modules"; -import { TypeRecorder } from "./typeRecorder"; import * as jshelpers from "./jshelpers"; import { LOGD } from "./log"; -import { PrimitiveType } from "./base/typeSystem"; +import { ModuleStmt } from "./modules"; import { isGlobalDeclare } from "./strictMode"; -import { syncBuiltinESMExports } from "module"; +import { TypeRecorder } from "./typeRecorder"; export class TypeChecker { private static instance: TypeChecker; diff --git a/ts2panda/src/typeRecorder.ts b/ts2panda/src/typeRecorder.ts index 33169181b74a9d5b8e35f4948df0a12be3d4bc81..686758d7d856690050522445f5f74aad592d687b 100755 --- a/ts2panda/src/typeRecorder.ts +++ b/ts2panda/src/typeRecorder.ts @@ -13,16 +13,13 @@ * limitations under the License. */ -import ts, { IndexedAccessType } from "typescript"; +import * as ts from "typescript"; import { - ClassType, - ExternalType, - TypeSummary + ExternalType, PrimitiveType, TypeSummary } from "./base/typeSystem"; +import * as jshelpers from "./jshelpers"; import { ModuleStmt } from "./modules"; import { TypeChecker } from "./typeChecker"; -import { PrimitiveType } from "./base/typeSystem"; -import * as jshelpers from "./jshelpers"; export class TypeRecorder { private static instance: TypeRecorder; diff --git a/ts2panda/templates/diagnostic.ts.erb b/ts2panda/templates/diagnostic.ts.erb index 795fda099aa820287af95bc61ec1e981a6c8638a..b489f8f98ddc0efd7de83a4f2c21ff74777f9e38 100755 --- a/ts2panda/templates/diagnostic.ts.erb +++ b/ts2panda/templates/diagnostic.ts.erb @@ -84,6 +84,7 @@ export function createDiagnostic(file:ts.SourceFile | undefined, location: ts.No return diagnostic } +// @ts-ignore function diag(code:number, category:ts.DiagnosticCategory, key:string, message:string, reportsUnnecessary?:{},elidedInCompatabilityPyramid?:{}):ts.DiagnosticMessage { return { code: code, category: category, key: key, message: message, reportsUnnecessary: reportsUnnecessary }; } diff --git a/ts2panda/templates/irnodes.ts.erb b/ts2panda/templates/irnodes.ts.erb index bbe51f5d1f63d45df2e16e879710d7e807dbb627..40cbc33f374074fa546881fd82027161e85e9185 100755 --- a/ts2panda/templates/irnodes.ts.erb +++ b/ts2panda/templates/irnodes.ts.erb @@ -14,27 +14,177 @@ % def get_node_kind(mnemonic) % return "#{mnemonic.gsub('.', '_').upcase}" % end - +% +% def insn2node(insn) +% mnemonic = insn.mnemonic.split('.') +% return mnemonic.map{|el| el == '64' ? 'Wide' : el.capitalize}.join() +% end +% +% def get_result_type(insn) +% if insn.mnemonic.start_with? "call" +% return "ResultType.Unknown" +% end +% case insn.dtype +% when 'i32' +% return "ResultType.Int" +% when 'i64', 'b64' +% return "ResultType.Long" +% when 'f64' +% return "ResultType.Float" +% when 'obj' +% return "ResultType.Obj" +% else +% return "ResultType.None" +% end +% end +% +% def get_result_dst(insn) +% if insn.properties.include? "acc_write" +% return "ResultDst.Acc" +% end +% dst_operands = insn.operands.select { |op| op.dst? } +% if dst_operands.length > 0 and dst_operands[0].reg? +% return "ResultDst.VReg" +% end +% return "ResultDst.None" +% end +% +% def is_VReg(name) +% if name == :v +% return true +% end +% end +% +% def is_Acc(name) +% if name == :acc +% return true +% end +% end +% +% def is_Imm(name) +% if name == :imm +% return true +% end +% end +% +% def is_Id(name) +% if %i[method_id type_id field_id string_id literalarray_id callsite_id].include?(name) +% return true +% end +% end +% +% def is_Call(insn) +% if insn.mnemonic.start_with? "call" +% return true +% end +% return false +% end +% +% def is_CallRange(insn) +% if insn.mnemonic == "call.range" or insn.mnemonic == "calli.dyn.range" or insn.mnemonic == "ecma.callirangedyn" or insn.mnemonic == "ecma.callithisrangedyn" or insn.mnemonic == "ecma.createobjectwithexcludedkeys" or insn.mnemonic == "ecma.newobjdynrange" +% return true +% end +% return false +% end +% +% def get_operand_type(name, insn) +% if is_VReg(name) +% return "VReg" +% elsif is_Imm(name) +% is_jump = insn.properties.include? 'jump' +% return is_jump ? "Label" : "Imm" +% elsif is_Id(name) +% return "string" +% else +% return nil +% end +% end +% +% def get_operands(sig) +% return [] unless sig.include? ' ' +% _, operands = sig.match(/(\S+) (.+)/).captures +% operands = operands.split(', ') +% end +% +% def get_ctor_args(insn) +% operands = get_operands(insn.sig) +% ops = Array.new +% ctor_args = Array.new +% operands.map do |operand| +% operand_parts = operand.split(':') +% case operand_parts.size +% when 1 +% name = operand_parts[0] +% when 2 +% name, _ = operand_parts +% when 3 +% name, _, _ = operand_parts +% else +% raise 'Unexpected operand string' +% end +% ops.push(name) +% name_tmp = name.to_s.gsub(/[0-9]/, '').to_sym +% type = get_operand_type(name_tmp,insn) +% if is_Call(insn) and !is_CallRange(insn) and is_VReg(name_tmp) and !insn.mnemonic.include?('acc') +% ctor_args.push("#{name}?: #{type}") +% else +% ctor_args.push("#{name}: #{type}") +% end +% end +% return ops,ctor_args +% end +% +% def get_operand_kind(op, insn) +% if op.reg? +% if op.src? and op.dst? +% return 2 +% elsif op.src? +% return 0 +% elsif op.dst? +% return 1 +% end +% return nil +% elsif op.imm? +% is_jump = insn.properties.include? 'jump' +% return is_jump ? 6 : 3 +% elsif op.id? +% is_string_id = insn.properties.include? 'string_id' +% return is_string_id ? 5 : 4 +% else +% return nil +% end +% end +% +% def make_format(fmt, insn) +% operands = fmt.operands.map {|op| "[#{get_operand_kind(op, insn)}, #{op.width}]"} +% return "[" + operands.join(", ") + "]" +% end +% +% def get_parent_type(insn) +% if insn.prefix != nil and insn.prefix.name == "ecma" +% return "Intrinsic" +% else +% return "IRNode" +% end +% end // Autogenerated file -- DO NOT EDIT! -import { PandaGen } from "./pandagen"; import * as ts from "typescript"; -import * as jshelpers from "./jshelpers"; import { - DebugInfo, DebugPosInfo, NodeKind } from "./debuginfo"; -import { LOGE } from "./log" +import { Scope } from "./scope"; export enum IRNodeKind { +% Panda::instructions.group_by(&:mnemonic).each do |mnemonic, group| + <%= get_node_kind(mnemonic) %>, +% end VREG, IMM, LABEL, - VIRTUALINS_DYN, + VIRTUALSTARTINS_DYN, + VIRTUALENDINS_DYN, DEFINE_GLOBAL_VAR, -% Panda::instructions.group_by(&:mnemonic).each do |mnemonic, group| - <%= get_node_kind(mnemonic) %>, -% end } export function getInstructionSize(opcode: IRNodeKind) { @@ -92,41 +242,62 @@ export type OperandType = VReg | Imm | Label | string | number export enum OperandKind { // the least significant bit indicates vreg // the second bit indicates src or dst - SrcVReg, DstVReg, SrcDstVReg, Imm, Id, StringId, Label + SrcVReg = 0, DstVReg, SrcDstVReg, Imm, Id, StringId, Label } export namespace OperandKind { + // @ts-ignore function isVReg(kind: OperandKind): boolean { return kind === OperandKind.SrcVReg || kind === OperandKind.DstVReg || kind === OperandKind.SrcDstVReg; } } -export class FormatItem { - constructor( - readonly kind: OperandKind, - readonly bitwidth: number, - ) {} +export type Format = number[][] + +export function getInsnMnemonic(opcode: IRNodeKind): string { + switch(opcode) { +% Panda::instructions.group_by(&:mnemonic).each do |mnemonic, group| +% node_kind = get_node_kind(mnemonic) +% kind = "IRNodeKind." + node_kind + case <%= kind %>: + return "<%= mnemonic %>"; +% end + default: + return ''; + } } -export type Format = FormatItem[] +export function getInsnFormats(opcode: IRNodeKind) { + switch(opcode) { +% Panda::instructions.group_by(&:mnemonic).each do |mnemonic, group| +% insn = group.first +% formats = group.map {|i| make_format(i,insn) } +% node_kind = get_node_kind(mnemonic) +% kind = "IRNodeKind." + node_kind + case <%= kind %>: { + return [ + <%= formats.join(",\n ") %> + ]; + } +% end + default: + return []; + } +} export abstract class IRNode { private node: ts.Node | NodeKind = NodeKind.Normal; constructor( readonly kind: IRNodeKind, - readonly mnemonic: string, readonly operands: OperandType[], - readonly formats: Format[] ) {} // for debuginfo public debugPosInfo: DebugPosInfo = new DebugPosInfo(); - abstract resultType(): ResultType; - abstract resultIn(): ResultDst; - toString(): string { - let out = this.mnemonic + "\t"; - if (this.mnemonic.length < 8) { + let mnemonic = this.getMnemonic(); + let out = mnemonic + "\t"; + if (mnemonic.length < 8) { out += "\t"; } @@ -150,127 +321,64 @@ export abstract class IRNode { return "undefined"; } + + getMnemonic() { + return getInsnMnemonic(this.kind); + } + + getFormats() { + return getInsnFormats(this.kind); + } } export abstract class Intrinsic extends IRNode { - slotSize: number = 0; constructor( readonly kind: IRNodeKind, - readonly mnemonic: string, readonly operands: OperandType[], - readonly formats: Format[] ) { - super(kind, mnemonic, operands, formats); + super(kind, operands); } toString(): string { return super.toString() + " [i]"; } - - hasIC(): boolean { - return this.slotSize > 0; - } - - updateICOffset(base: number): number {return 0}; - - validateIC(offset: number, slotSize: number): number { - let end = offset + slotSize; - if (end > 0xFFFF) { - return 0xFFFF; - } else { - return offset; - } - } } export class VReg { - private static global_id = 0; - private typeIndex: number = 0; - private variableName: string = ""; - readonly id: number; // used for debug purpose to distinguish one instance from another num: number = -1; - // for debug purposes - private stacktrace: (undefined | string); - toString(): string { - if (this.num != -1) { return "V" + this.num; - } else { - return "L" + this.id; - } } constructor() { - this.id = VReg.global_id++; - - // for debug purposes - this.setStackTrace(null); - } - - // for debug purposes - getStackTrace(): (undefined | string) { - return this.stacktrace; - } - - setStackTrace(stack?: null): void { - if (stack === undefined) { - let error = new Error(); - let trace = error.stack; - - this.stacktrace = trace; - return; - } - - if (stack === null) { - this.stacktrace = undefined; - return; - } } getTypeIndex() { - return this.typeIndex; + return 0; } + // @ts-ignore setTypeIndex(typeIndex: number) { - this.typeIndex = typeIndex; } getVariableName() { - return this.variableName; + return ''; } + // @ts-ignore setVariableName(variableName: string) { - this.variableName = variableName; } } export class Imm extends IRNode { - private type: ResultType; readonly value: number; - constructor(type: ResultType, value: number) { - super(IRNodeKind.IMM, "", [], []); - this.type = type; + constructor(value: number) { + super(IRNodeKind.IMM, []); this.value = value; } - static zero(): Imm { - return new Imm(ResultType.Int, 0); - } - - static one(): Imm { - return new Imm(ResultType.Int, 1); - } - - resultType(): ResultType { - return this.type; - } - - resultIn(): ResultDst { - return ResultDst.None; - } - toString(): string { return "#" + this.value; } @@ -278,192 +386,44 @@ export class Imm extends IRNode { export class Label extends IRNode { private static global_id = 0; - readonly id: number; // used for debug purpose to distinguish one instance from another + readonly id: number; constructor() { - super(IRNodeKind.LABEL, "", [], []); + super(IRNodeKind.LABEL, []); this.id = Label.global_id++; } - resultType(): ResultType { - return ResultType.None; + toString(): string { + return "LABEL_" + this.id; } +} + +export class DebugInsStartPlaceHolder extends IRNode { + private scope: Scope; - resultIn(): ResultDst { - return ResultDst.None; + constructor(scope: Scope) { + super(IRNodeKind.VIRTUALSTARTINS_DYN, []); + this.scope = scope; } - toString(): string { - return "LABEL_" + this.id; + getScope() { + return this.scope; } } -export class DebugInsPlaceHolder extends IRNode { - constructor() { - super(IRNodeKind.VIRTUALINS_DYN, "", [], []); - } +export class DebugInsEndPlaceHolder extends IRNode { + private scope: Scope; - resultType(): ResultType { - return ResultType.None; + constructor(scope: Scope) { + super(IRNodeKind.VIRTUALENDINS_DYN, []); + this.scope = scope; } - resultIn(): ResultDst { - return ResultDst.None; + getScope() { + return this.scope; } } -% def insn2node(insn) -% mnemonic = insn.mnemonic.split('.') -% return mnemonic.map{|el| el == '64' ? 'Wide' : el.capitalize}.join() -% end -% -% def get_result_type(insn) -% if insn.mnemonic.start_with? "call" -% return "ResultType.Unknown" -% end -% case insn.dtype -% when 'i32' -% return "ResultType.Int" -% when 'i64', 'b64' -% return "ResultType.Long" -% when 'f64' -% return "ResultType.Float" -% when 'obj' -% return "ResultType.Obj" -% else -% return "ResultType.None" -% end -% end -% -% def get_result_dst(insn) -% if insn.properties.include? "acc_write" -% return "ResultDst.Acc" -% end -% dst_operands = insn.operands.select { |op| op.dst? } -% if dst_operands.length > 0 and dst_operands[0].reg? -% return "ResultDst.VReg" -% end -% return "ResultDst.None" -% end -% -% def is_VReg(name) -% if name == :v -% return true -% end -% end -% -% def is_Acc(name) -% if name == :acc -% return true -% end -% end -% -% def is_Imm(name) -% if name == :imm -% return true -% end -% end -% -% def is_Id(name) -% if %i[method_id type_id field_id string_id literalarray_id callsite_id].include?(name) -% return true -% end -% end -% -% def is_Call(insn) -% if insn.mnemonic.start_with? "call" -% return true -% end -% return false -% end -% -% def is_CallRange(insn) -% if insn.mnemonic == "call.range" or insn.mnemonic == "calli.dyn.range" or insn.mnemonic == "ecma.callirangedyn" or insn.mnemonic == "ecma.callithisrangedyn" or insn.mnemonic == "ecma.createobjectwithexcludedkeys" or insn.mnemonic == "ecma.newobjdynrange" -% return true -% end -% return false -% end -% -% def get_operand_type(name, insn) -% if is_VReg(name) -% return "VReg" -% elsif is_Imm(name) -% is_jump = insn.properties.include? 'jump' -% return is_jump ? "Label" : "Imm" -% elsif is_Id(name) -% return "string" -% else -% return nil -% end -% end -% -% def get_operands(sig) -% return [] unless sig.include? ' ' -% _, operands = sig.match(/(\S+) (.+)/).captures -% operands = operands.split(', ') -% end -% -% def get_ctor_args(insn) -% operands = get_operands(insn.sig) -% ops = Array.new -% ctor_args = Array.new -% operands.map do |operand| -% operand_parts = operand.split(':') -% case operand_parts.size -% when 1 -% name = operand_parts[0] -% when 2 -% name, _ = operand_parts -% when 3 -% name, _, _ = operand_parts -% else -% raise 'Unexpected operand string' -% end -% ops.push(name) -% name_tmp = name.to_s.gsub(/[0-9]/, '').to_sym -% type = get_operand_type(name_tmp,insn) -% if is_Call(insn) and !is_CallRange(insn) and is_VReg(name_tmp) and !insn.mnemonic.include?('acc') -% ctor_args.push("#{name}?: #{type}") -% else -% ctor_args.push("#{name}: #{type}") -% end -% end -% return ops,ctor_args -% end -% -% def get_operand_kind(op, insn) -% if op.reg? -% if op.src? and op.dst? -% return "OperandKind.SrcDstVReg" -% elsif op.src? -% return "OperandKind.SrcVReg" -% elsif op.dst? -% return "OperandKind.DstVReg" -% end -% return nil -% elsif op.imm? -% is_jump = insn.properties.include? 'jump' -% return is_jump ? "OperandKind.Label" : "OperandKind.Imm" -% elsif op.id? -% is_string_id = insn.properties.include? 'string_id' -% return is_string_id ? "OperandKind.StringId" : "OperandKind.Id" -% else -% return nil -% end -% end -% -% def make_format(fmt, insn) -% operands = fmt.operands.map {|op| "new FormatItem(#{get_operand_kind(op, insn)}, #{op.width})"} -% return "[" + operands.join(", ") + "]" -% end -% -% def get_parent_type(insn) -% if insn.prefix != nil and insn.prefix.name == "ecma" -% return "Intrinsic" -% else -% return "IRNode" -% end -% end % Panda::instructions.group_by(&:mnemonic).each do |mnemonic, group| % insn = group.first % jump = insn.properties.include? 'jump' @@ -472,7 +432,6 @@ export class DebugInsPlaceHolder extends IRNode { % ops_list,ctor_arg_list = get_ctor_args(insn) % ctor_args = ctor_arg_list.map {|arg| "#{arg}"}.join(", ") % ops = ops_list.map { |op| "#{op}"}.join(", ") -% formats = group.map {|i| make_format(i,insn) } % result_type = get_result_type(insn) % result_dst = get_result_dst(insn); % is_call_op = is_Call(insn) @@ -513,28 +472,20 @@ export class <%= insn2node(insn) %> extends <%=parent_type %> { % end super( <%= kind %>, - "<%= insn.mnemonic %>", % if is_call_op or is_callrange_op or insn2node(insn) == "BuiltinR2i" operands, % else - [<%= ops %>], + [<%= ops %>] % end - [ - <%= formats.join(",\n ") %> - ] ); } - resultType(): ResultType { - return <%= result_type %>; - } - resultIn(): ResultDst { - return <%= result_dst %>; - } % if jump % target_index = insn.operands.index {|op| op.imm? } + getTarget(): Label { return