diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 4bd9ea8..aee5951 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -1,16 +1,18 @@ name: Base Builds -on: - workflow_dispatch: +on: + push: + branches: + - refactor-old-node jobs: build: strategy: fail-fast: false matrix: - version: ['14.19.1', '16.15.0', '18.1.0'] + version: ['14.20.0', '16.16.0', '18.5.0'] arch: [x64, x86] plat: [arm, macos, windows, linux, alpine] - exclude: + exclude: - plat: arm arch: x86 - plat: macos @@ -40,7 +42,6 @@ jobs: with: node-version: ${{ matrix.version }} - uses: actions/checkout@v3 - with: node-version: 18 - name: 'Install Dependencies' @@ -49,4 +50,3 @@ jobs: env: NEXE_TARGET: ${{ matrix.plat }}-${{ matrix.arch }}-${{ matrix.version }} run: npx ts-node tasks/build.ts - \ No newline at end of file diff --git a/.node-version b/.node-version index c818c7b..d928989 100644 --- a/.node-version +++ b/.node-version @@ -1 +1 @@ -16.15.0 \ No newline at end of file +16.15.1 diff --git a/.swcrc b/.swcrc index aa7933c..82c3bd0 100644 --- a/.swcrc +++ b/.swcrc @@ -2,17 +2,18 @@ "module": { "type": "commonjs", "ignoreDynamic": true + }, "jsc": { "parser": { - "syntax": "typescript", + "syntax": "typescript", "dynamicImport": true, "decorators": true }, "transform": { "legacyDecorator": true }, - "target": "es2019", + "target": "es2019", "externalHelpers": false } -} \ No newline at end of file +} diff --git a/.vscode/settings.json b/.vscode/settings.json index b3ad42a..b173b4a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,4 @@ { - "tslint.enable": true, - "tslint.run": "onType", - "tslint.autoFixOnSave": true, "files.exclude": { "**/.git": true, "**/.svn": true, @@ -14,5 +11,32 @@ "**/node_modules": true, "**/bower_components": true }, - "typescript.tsdk": "node_modules\\typescript\\lib" + "eslint.workingDirectories": [{ "mode": "auto" }], + "eslint.format.enable": true, + "editor.formatOnSave": true, + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact" + ], + "[javascript]": { + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[javascriptreact]": { + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescript]": { + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescriptreact]": { + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": true + } } diff --git a/LICENSE b/LICENSE index 63520b3..c03e5de 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2013-2018 Nexe Contributors +Copyright (c) 2013-2022 Nexe Contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/dockerfiles/linux/Dockerfile b/dockerfiles/linux/Dockerfile new file mode 100644 index 0000000..4f1b953 --- /dev/null +++ b/dockerfiles/linux/Dockerfile @@ -0,0 +1,13 @@ +FROM centos:7 + +RUN yum install -y which centos-release-scl \ + && yum install -y devtoolset-9-gcc \ + devtoolset-9-gcc-c++ \ + make \ + python3 \ + curl \ + && curl -sL https://rpm.nodesource.com/setup_16.x | bash - \ + && yum install -y nodejs && npm install nexe -g \ + && echo "source /opt/rh/devtoolset-9/enable" >> /etc/bashrc + +SHELL ["/bin/bash", "--login", "-c"] diff --git a/dockerfiles/musl/Dockerfile b/dockerfiles/musl/Dockerfile new file mode 100644 index 0000000..40c3eb8 --- /dev/null +++ b/dockerfiles/musl/Dockerfile @@ -0,0 +1,4 @@ +FROM node:16-alpine +RUN apk add --no-cache build-base linux-headers bash clang python3 +SHELL ["/bin/bash", "--login", "-c"] +CMD ["bash"] diff --git a/bin/index.js b/index.js old mode 100755 new mode 100644 similarity index 84% rename from bin/index.js rename to index.js index 917ae42..f189488 --- a/bin/index.js +++ b/index.js @@ -5,12 +5,12 @@ const eol = require('os').EOL async function main() { - const util = require('../lib/cjs/util') + const util = require('./lib/cjs/util.js') await util.initEsm() const color = util.color, - options = require('../lib/cjs/options'), - nexe = require('../lib/cjs/nexe'), - NexeError = require('../lib/cjs/compiler').NexeError, + options = require('./lib/cjs/options.js'), + nexe = require('./lib/cjs/nexe.js'), + NexeError = require('./lib/cjs/compiler.js').NexeError, del = eol + eol, argv = options.argv, showHelp = argv.help || argv._.some((x) => x === 'help'), diff --git a/package-lock.json b/package-lock.json index f3c2acf..6e56e99 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,42 +1,43 @@ { "name": "nexe", - "version": "4.0.0-rc.3", + "version": "4.0.0-rc.local", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "nexe", - "version": "4.0.0-rc.3", + "version": "4.0.0-rc.local", "license": "MIT", "dependencies": { "caw": "^2.0.1", "chalk": "^5.0.1", "download": "^8.0.0", "fast-glob": "^3.2.11", - "got": "^12.0.4", + "got": "^12.1.0", "meriyah": "^4.2.1", "minimist": "^1.2.6", "multistream": "^4.1.0", - "ora": "^6.1.0", - "resolve-dependencies": "^6.0.7" + "ora": "^6.1.2", + "resolve-dependencies": "^6.0.8" }, "bin": { - "nexe": "bin/index.js" + "nexe": "index.js" }, "devDependencies": { "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.181", + "@swc/core": "^1.2.210", "@types/minimist": "^1.2.2", "@types/multistream": "^4.1.0", - "@typescript-eslint/eslint-plugin": "^5.23.0", - "@typescript-eslint/parser": "^5.23.0", - "eslint": "^8.15.0", + "@typescript-eslint/eslint-plugin": "^5.30.5", + "@typescript-eslint/parser": "^5.30.5", + "eslint": "^8.19.0", "eslint-config-prettier": "~8.5.0", - "eslint-plugin-prettier": "^4.0.0", - "prettier": "^2.6.2", - "ts-node": "^10.7.0", - "typescript": "^4.6.4", - "vitest": "^0.12.3" + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-prettier": "^4.2.1", + "prettier": "^2.7.1", + "ts-node": "^10.8.2", + "typescript": "^4.7.4", + "vitest": "^0.17.0" }, "engines": { "node": ">=14" @@ -289,6 +290,12 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, "node_modules/@types/keyv": { "version": "3.1.4", "license": "MIT", @@ -587,6 +594,25 @@ "dev": true, "license": "Python-2.0" }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-union": { "version": "2.1.0", "dev": true, @@ -595,6 +621,24 @@ "node": ">=8" } }, + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/assertion-error": { "version": "1.1.0", "dev": true, @@ -742,6 +786,19 @@ "node": ">=8" } }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/callsites": { "version": "3.1.0", "dev": true, @@ -1129,6 +1186,22 @@ "node": ">=10" } }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/diff": { "version": "4.0.2", "dev": true, @@ -1343,6 +1416,71 @@ "node": ">=10.13.0" } }, + "node_modules/es-abstract": { + "version": "1.20.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz", + "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/esbuild": { "version": "0.14.48", "dev": true, @@ -1465,6 +1603,105 @@ "eslint": ">=7.0.0" } }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, "node_modules/eslint-plugin-prettier": { "version": "4.2.1", "dev": true, @@ -1825,11 +2062,38 @@ "dev": true, "license": "MIT" }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/functional-red-black-tree": { "version": "1.0.1", "dev": true, "license": "MIT" }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-func-name": { "version": "2.0.0", "dev": true, @@ -1838,6 +2102,20 @@ "node": "*" } }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-proxy": { "version": "2.1.0", "license": "MIT", @@ -1858,6 +2136,22 @@ "node": ">=6" } }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/glob": { "version": "7.2.3", "dev": true, @@ -1921,6 +2215,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/got": { "version": "12.1.0", "license": "MIT", @@ -1971,6 +2277,15 @@ "node": ">= 0.4.0" } }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "4.0.0", "dev": true, @@ -1979,6 +2294,18 @@ "node": ">=8" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbol-support-x": { "version": "1.4.2", "license": "MIT", @@ -1986,6 +2313,18 @@ "node": "*" } }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-to-string-tag-x": { "version": "1.4.1", "license": "MIT", @@ -1996,6 +2335,21 @@ "node": "*" } }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/http-cache-semantics": { "version": "4.1.0", "license": "BSD-2-Clause" @@ -2077,6 +2431,20 @@ "version": "1.3.8", "license": "ISC" }, + "node_modules/internal-slot": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/into-stream": { "version": "3.1.0", "license": "MIT", @@ -2088,6 +2456,46 @@ "node": ">=4" } }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-core-module": { "version": "2.9.0", "dev": true, @@ -2099,6 +2507,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "license": "MIT", @@ -2130,6 +2553,18 @@ "version": "4.0.1", "license": "MIT" }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-number": { "version": "7.0.0", "license": "MIT", @@ -2137,6 +2572,21 @@ "node": ">=0.12.0" } }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-object": { "version": "1.0.2", "license": "MIT", @@ -2151,6 +2601,22 @@ "node": ">=0.10.0" } }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-retry-allowed": { "version": "1.2.0", "license": "MIT", @@ -2158,6 +2624,18 @@ "node": ">=0.10.0" } }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-stream": { "version": "1.1.0", "license": "MIT", @@ -2165,6 +2643,36 @@ "node": ">=0.10.0" } }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-unicode-supported": { "version": "1.2.0", "license": "MIT", @@ -2175,6 +2683,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/isarray": { "version": "1.0.0", "license": "MIT" @@ -2220,6 +2740,18 @@ "dev": true, "license": "MIT" }, + "node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, "node_modules/keyv": { "version": "4.3.2", "license": "MIT", @@ -2461,6 +2993,59 @@ "node": ">=0.10.0" } }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/once": { "version": "1.4.0", "license": "ISC", @@ -2812,6 +3397,23 @@ "node": ">= 6" } }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regexpp": { "version": "3.2.0", "dev": true, @@ -2963,6 +3565,20 @@ ], "license": "MIT" }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/seek-bzip": { "version": "1.0.6", "license": "MIT", @@ -3011,6 +3627,20 @@ "node": ">=8" } }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/signal-exit": { "version": "3.0.7", "license": "ISC" @@ -3073,6 +3703,34 @@ "safe-buffer": "~5.2.0" } }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "dev": true, @@ -3084,6 +3742,15 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/strip-dirs": { "version": "2.1.0", "license": "MIT", @@ -3213,9 +3880,9 @@ } }, "node_modules/tinypool": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.1.3.tgz", - "integrity": "sha512-2IfcQh7CP46XGWGGbdyO4pjcKqsmVqFAPcXfPxcPXmOWt9cYkTP9HcDmGgsfijYoAEc4z9qcpM/BaBz46Y9/CQ==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.2.4.tgz", + "integrity": "sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ==", "dev": true, "engines": { "node": ">=14.0.0" @@ -3302,6 +3969,18 @@ } } }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, "node_modules/tslib": { "version": "1.14.1", "dev": true, @@ -3373,6 +4052,21 @@ "node": ">=4.2.0" } }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/unbzip2-stream": { "version": "1.4.3", "license": "MIT", @@ -3479,19 +4173,20 @@ } }, "node_modules/vitest": { - "version": "0.12.10", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.12.10.tgz", - "integrity": "sha512-TVoI6fM7rZ1zIMDjcviY8Dg5XIaPqBwDweaI3oUwvWqUz68cbM49CIHNMkF+UVoSjl94wXiBRdNhsT4ekgWuGA==", + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.17.1.tgz", + "integrity": "sha512-d6NsFC6FPmZ5XdiSYfW5rwJ/b8060wqe2steNNlVbhO69HWma6CucIm5g7PXlCSkmKvrdEbUsZHPAarlH83VGw==", "dev": true, "dependencies": { "@types/chai": "^4.3.1", "@types/chai-subset": "^1.3.3", + "@types/node": "*", "chai": "^4.3.6", "debug": "^4.3.4", "local-pkg": "^0.4.1", - "tinypool": "^0.1.3", - "tinyspy": "^0.3.2", - "vite": "^2.9.9" + "tinypool": "^0.2.1", + "tinyspy": "^0.3.3", + "vite": "^2.9.12 || ^3.0.0-0" }, "bin": { "vitest": "vitest.mjs" @@ -3503,12 +4198,16 @@ "url": "https://github.com/sponsors/antfu" }, "peerDependencies": { + "@edge-runtime/vm": "*", "@vitest/ui": "*", "c8": "*", "happy-dom": "*", "jsdom": "*" }, "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, "@vitest/ui": { "optional": true }, @@ -3544,6 +4243,22 @@ "node": ">= 8" } }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/word-wrap": { "version": "1.2.3", "dev": true, @@ -3743,6 +4458,12 @@ "version": "7.0.11", "dev": true }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, "@types/keyv": { "version": "3.1.4", "requires": { @@ -3901,10 +4622,35 @@ "version": "2.0.1", "dev": true }, + "array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + } + }, "array-union": { "version": "2.1.0", "dev": true }, + "array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, "assertion-error": { "version": "1.1.0", "dev": true @@ -3987,6 +4733,16 @@ } } }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, "callsites": { "version": "3.1.0", "dev": true @@ -4228,6 +4984,16 @@ "defer-to-connect": { "version": "2.0.1" }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, "diff": { "version": "4.0.2", "dev": true @@ -4377,6 +5143,59 @@ "tapable": "^2.2.0" } }, + "es-abstract": { + "version": "1.20.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz", + "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", + "get-symbol-description": "^1.0.0", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.2", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "unbox-primitive": "^1.0.2" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, "esbuild": { "version": "0.14.48", "dev": true, @@ -4480,6 +5299,94 @@ "dev": true, "requires": {} }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, "eslint-plugin-prettier": { "version": "4.2.1", "dev": true, @@ -4697,14 +5604,43 @@ "version": "1.1.1", "dev": true }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, "functional-red-black-tree": { "version": "1.0.1", "dev": true }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, "get-func-name": { "version": "2.0.0", "dev": true }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, "get-proxy": { "version": "2.1.0", "requires": { @@ -4717,6 +5653,16 @@ "pump": "^3.0.0" } }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, "glob": { "version": "7.2.3", "dev": true, @@ -4755,6 +5701,15 @@ "slash": "^3.0.0" } }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, "got": { "version": "12.1.0", "requires": { @@ -4788,19 +5743,49 @@ "function-bind": "^1.1.1" } }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, "has-flag": { "version": "4.0.0", "dev": true }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, "has-symbol-support-x": { "version": "1.4.2" }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, "has-to-string-tag-x": { "version": "1.4.1", "requires": { "has-symbol-support-x": "^1.4.1" } }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, "http-cache-semantics": { "version": "4.1.0" }, @@ -4844,6 +5829,17 @@ "ini": { "version": "1.3.8" }, + "internal-slot": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, "into-stream": { "version": "3.1.0", "requires": { @@ -4851,6 +5847,31 @@ "p-is-promise": "^1.1.0" } }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, "is-core-module": { "version": "2.9.0", "dev": true, @@ -4858,6 +5879,15 @@ "has": "^1.0.3" } }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-extglob": { "version": "2.1.1" }, @@ -4873,24 +5903,85 @@ "is-natural-number": { "version": "4.0.1" }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, "is-number": { "version": "7.0.0" }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-object": { "version": "1.0.2" }, "is-plain-obj": { "version": "1.1.0" }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, "is-retry-allowed": { "version": "1.2.0" }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, "is-stream": { "version": "1.1.0" }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, "is-unicode-supported": { "version": "1.2.0" }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, "isarray": { "version": "1.0.0" }, @@ -4923,6 +6014,15 @@ "version": "1.0.1", "dev": true }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, "keyv": { "version": "4.3.2", "requires": { @@ -5055,6 +6155,41 @@ "object-assign": { "version": "4.1.1" }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, "once": { "version": "1.4.0", "requires": { @@ -5240,6 +6375,17 @@ "util-deprecate": "^1.0.1" } }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, "regexpp": { "version": "3.2.0", "dev": true @@ -5312,6 +6458,17 @@ "safe-buffer": { "version": "5.2.1" }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, "seek-bzip": { "version": "1.0.6", "requires": { @@ -5341,6 +6498,17 @@ "version": "3.0.0", "dev": true }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, "signal-exit": { "version": "3.0.7" }, @@ -5377,6 +6545,28 @@ "safe-buffer": "~5.2.0" } }, + "string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, "strip-ansi": { "version": "6.0.1", "dev": true, @@ -5384,6 +6574,12 @@ "ansi-regex": "^5.0.1" } }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, "strip-dirs": { "version": "2.1.0", "requires": { @@ -5472,9 +6668,9 @@ "version": "4.0.1" }, "tinypool": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.1.3.tgz", - "integrity": "sha512-2IfcQh7CP46XGWGGbdyO4pjcKqsmVqFAPcXfPxcPXmOWt9cYkTP9HcDmGgsfijYoAEc4z9qcpM/BaBz46Y9/CQ==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.2.4.tgz", + "integrity": "sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ==", "dev": true }, "tinyspy": { @@ -5520,6 +6716,18 @@ "yn": "3.1.1" } }, + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, "tslib": { "version": "1.14.1", "dev": true @@ -5556,6 +6764,18 @@ "version": "4.7.4", "dev": true }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, "unbzip2-stream": { "version": "1.4.3", "requires": { @@ -5611,19 +6831,20 @@ } }, "vitest": { - "version": "0.12.10", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.12.10.tgz", - "integrity": "sha512-TVoI6fM7rZ1zIMDjcviY8Dg5XIaPqBwDweaI3oUwvWqUz68cbM49CIHNMkF+UVoSjl94wXiBRdNhsT4ekgWuGA==", + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.17.1.tgz", + "integrity": "sha512-d6NsFC6FPmZ5XdiSYfW5rwJ/b8060wqe2steNNlVbhO69HWma6CucIm5g7PXlCSkmKvrdEbUsZHPAarlH83VGw==", "dev": true, "requires": { "@types/chai": "^4.3.1", "@types/chai-subset": "^1.3.3", + "@types/node": "*", "chai": "^4.3.6", "debug": "^4.3.4", "local-pkg": "^0.4.1", - "tinypool": "^0.1.3", - "tinyspy": "^0.3.2", - "vite": "^2.9.9" + "tinypool": "^0.2.1", + "tinyspy": "^0.3.3", + "vite": "^2.9.12 || ^3.0.0-0" } }, "wcwidth": { @@ -5639,6 +6860,19 @@ "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, "word-wrap": { "version": "1.2.3", "dev": true diff --git a/package.json b/package.json index ae65fe9..5849656 100644 --- a/package.json +++ b/package.json @@ -3,10 +3,12 @@ "description": "Create a single executable out of your Node.js application", "license": "MIT", "type": "commonjs", - "version": "4.0.0-rc.3", + "version": "4.0.0-rc.local", "bin": { - "nexe": "./bin/index.js" + "nexe": "./index.js" }, + "types": "./lib/types/nexe.d.ts", + "main": "./lib/cjs/nexe.js", "exports": { "./package.json": "./package.json", ".": { @@ -26,16 +28,17 @@ }, "files": [ "lib", - "bin" + "index.js" ], "scripts": { "lint": "tsc --noEmit && eslint \"{src,tasks,test}/**/*.ts\" --fix", - "test": "vitest run", + "test": "vitest run && node test/exports.mjs", + "prepublishOnly": "npm run lint && npm run build && npm test", "build": "npm run cjs:build & npm run esm:build", "prebuild": "rm -rf lib", "cjs:build": "swc src -d lib/cjs --copy-files", "esm:build": "swc src -d lib/esm --copy-files -C module.type=es6", - "postbuild": "node -p \"JSON.stringify({ type: 'module'})\" > lib/esm/package.json && tsc --emitDeclarationOnly && ts-node tasks/post-build" + "postbuild": "node -p \"JSON.stringify({type:'module'})\" > lib/esm/package.json && tsc --emitDeclarationOnly && ts-node tasks/post-build" }, "contributors": [ "Craig Condon (http://crcn.io)", @@ -47,27 +50,28 @@ "chalk": "^5.0.1", "download": "^8.0.0", "fast-glob": "^3.2.11", - "got": "^12.0.4", + "got": "^12.1.0", "meriyah": "^4.2.1", "minimist": "^1.2.6", "multistream": "^4.1.0", - "ora": "^6.1.0", - "resolve-dependencies": "^6.0.7" + "ora": "^6.1.2", + "resolve-dependencies": "^6.0.8" }, "devDependencies": { "@swc/cli": "^0.1.57", - "@swc/core": "^1.2.181", + "@swc/core": "^1.2.210", "@types/minimist": "^1.2.2", "@types/multistream": "^4.1.0", - "@typescript-eslint/eslint-plugin": "^5.23.0", - "@typescript-eslint/parser": "^5.23.0", - "eslint": "^8.15.0", + "@typescript-eslint/eslint-plugin": "^5.30.5", + "@typescript-eslint/parser": "^5.30.5", + "eslint": "^8.19.0", "eslint-config-prettier": "~8.5.0", - "eslint-plugin-prettier": "^4.0.0", - "prettier": "^2.6.2", - "ts-node": "^10.7.0", - "typescript": "^4.6.4", - "vitest": "^0.12.3" + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-prettier": "^4.2.1", + "prettier": "^2.7.1", + "ts-node": "^10.8.2", + "typescript": "^4.7.4", + "vitest": "^0.17.0" }, "prettier": { "parser": "typescript", @@ -78,6 +82,7 @@ "eslintConfig": { "parser": "@typescript-eslint/parser", "plugins": [ + "import", "@typescript-eslint" ], "extends": [ @@ -87,6 +92,17 @@ "plugin:prettier/recommended" ], "rules": { + "@typescript-eslint/consistent-type-imports": [ + 2, + { + "prefer": "type-imports", + "disallowTypeAnnotations": false + } + ], + "import/extensions": [ + 2, + "ignorePackages" + ], "@typescript-eslint/no-unused-vars": [ 2, { diff --git a/src/compiler.ts b/src/compiler.ts index 0844c8a..f352186 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -1,16 +1,19 @@ import { resolve, normalize, join } from 'node:path' import { Buffer } from 'node:buffer' -import { createReadStream, ReadStream } from 'node:fs' +import type { ReadStream } from 'node:fs' +import { createReadStream } from 'node:fs' import { spawn } from 'node:child_process' -import { File } from 'resolve-dependencies' +import type { File } from 'resolve-dependencies' import MultiStream from 'multistream' -import { Logger, LogStep } from './logger' -import { readFile, writeFile, pathExists, isWindows, bound, wrap } from './util' -import { NexeOptions, version } from './options' -import { NexeTarget } from './target' -import { Bundle, toStream } from './fs/bundle' +import type { LogStep } from './logger.js' +import { Logger } from './logger.js' +import { readFile, writeFile, pathExists, isWindows, bound, wrap } from './util.js' +import { version } from './options.js' +import type { NexeOptions } from './options.js' +import type { NexeTarget } from './target.js' +import { Bundle, toStream } from './fs/bundle.js' const isBsd = Boolean(~process.platform.indexOf('bsd')), make = isWindows ? 'vcbuild.bat' : isBsd ? 'gmake' : 'make' @@ -123,7 +126,7 @@ export class NexeCompiler { async readFileAsync(file: string) { this.assertBuild() let cachedFile = this.files.find((x) => normalize(x.filename) === normalize(file)) - if (cachedFile == null) { + if (!cachedFile) { const absPath = join(this.src, file) cachedFile = { absPath, @@ -249,7 +252,7 @@ export class NexeCompiler { location = this.getNodeExecutableLocation(build ? undefined : target) let binary = (await pathExists(location)) ? createReadStream(location) : null - if (binary == null) { + if (!binary) { binary = await this.build() step.log('Node binary compiled') } diff --git a/src/fs/bundle.ts b/src/fs/bundle.ts index be339be..e4eb56b 100644 --- a/src/fs/bundle.ts +++ b/src/fs/bundle.ts @@ -3,7 +3,7 @@ import { createReadStream } from 'node:fs' import { relative } from 'node:path' import { Readable } from 'node:stream' -import { File } from 'resolve-dependencies' +import type { File } from 'resolve-dependencies' import MultiStream from 'multistream' export type MultiStreams = Array Readable)> diff --git a/src/fs/package.json b/src/fs/package.json deleted file mode 100644 index c830c02..0000000 --- a/src/fs/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "nexe-fs", - "version": "1.0.1", - "description": "Virtual File System used by nexe", - "main": "bundle.js", - "files": [ - "*.d.ts", - "*.js" - ], - "author": "Caleb Boyd", - "dependencies": { - "multistream": "^2.1.1" - }, - "license": "MIT" -} diff --git a/src/fs/patch.ts b/src/fs/patch.ts index a277b5d..7a44d39 100644 --- a/src/fs/patch.ts +++ b/src/fs/patch.ts @@ -327,7 +327,7 @@ function shimFs(binary: NexeBinary, fs: any = require('fs')) { } let returningArray: boolean patches.internalModuleReadJSON = function (this: any, original: any, ...args: any[]) { - if (returningArray == null) returningArray = Array.isArray(original.call(this, '')) + if (!returningArray) returningArray = Array.isArray(original.call(this, '')) const res = patches.internalModuleReadFile.call(this, original, ...args) return returningArray && !Array.isArray(res) ? [res, /"(main|name|type|exports|imports)"/.test(res)] diff --git a/src/logger.ts b/src/logger.ts index dd0c0ad..3f813ea 100644 --- a/src/logger.ts +++ b/src/logger.ts @@ -1,4 +1,5 @@ -import { Func, color, esm } from './util' +import type { Func } from './util.js' +import { color, esm } from './util.js' const frameLength = 120 diff --git a/src/nexe.ts b/src/nexe.ts index c3297c7..d40a07a 100644 --- a/src/nexe.ts +++ b/src/nexe.ts @@ -1,15 +1,16 @@ -import { NexeCompiler } from './compiler' -import { normalizeOptions, NexeOptions, NexePatch } from './options' +import { NexeCompiler } from './compiler.js' +import type { NexeOptions, NexePatch } from './options.js' +import { normalizeOptions } from './options.js' -import resource from './steps/resource' -import clean from './steps/clean' -import cli from './steps/cli' -import bundle from './steps/bundle' -import download from './steps/download' -import shim from './steps/shim' -import artifacts from './steps/artifacts' -import patches from './patches' -import { initEsm } from './util' +import resource from './steps/resource.js' +import clean from './steps/clean.js' +import cli from './steps/cli.js' +import bundle from './steps/bundle.js' +import download from './steps/download.js' +import shim from './steps/shim.js' +import artifacts from './steps/artifacts.js' +import patches from './patches/index.js' +import { initEsm } from './util.js' async function compile( compilerOptions?: Partial, @@ -40,7 +41,8 @@ async function compile( } export { compile, NexeCompiler } -export { argv, version, NexeOptions, help } from './options' +export { argv, version, help } from './options.js' +export type { NexeOptions } from './options.js' function exec(mw: any[], ctx: T): Promise | void { let i = -1 diff --git a/src/options.ts b/src/options.ts index 2400c6e..bc111f2 100644 --- a/src/options.ts +++ b/src/options.ts @@ -12,9 +12,11 @@ import parseArgv from 'minimist' import caw from 'caw' -import { NexeCompiler, NexeError } from './compiler' -import { getTarget, NexeTarget } from './target' -import { isWindows, STDIN_FLAG, esm } from './util' +import type { NexeCompiler } from './compiler.js' +import { NexeError } from './compiler.js' +import type { NexeTarget } from './target.js' +import { getTarget } from './target.js' +import { isWindows, STDIN_FLAG, esm } from './util.js' export const version = '{{replace:0}}' @@ -197,18 +199,18 @@ export function resolveEntry( const inputPath = padRelative(input) result = resolveSync(cwd, inputPath) } - if (isEntryFile(maybeEntry) && (result == null || !result.absPath)) { + if (isEntryFile(maybeEntry) && (!result || !result.absPath)) { const inputPath = padRelative(maybeEntry) result = resolveSync(cwd, inputPath) } - if (!process.stdin.isTTY && (result == null || !result.absPath) && bundle === defaults.bundle) { + if (!process.stdin.isTTY && !result?.absPath && bundle === defaults.bundle) { return STDIN_FLAG } - if (result == null || !result.absPath) { + if (!result?.absPath) { result = resolveSync(cwd, '.') } if (!result.absPath) { - throw new NexeError(`Entry file "${input || ''}" not found!`) + throw new NexeError(`Entry file "${input || maybeEntry}" not found!`) } return result.absPath } diff --git a/src/patches/disable-node-cli.ts b/src/patches/disable-node-cli.ts index 1a49296..f2f6c8f 100644 --- a/src/patches/disable-node-cli.ts +++ b/src/patches/disable-node-cli.ts @@ -1,4 +1,5 @@ -import { NexeCompiler, NexeError } from '../compiler' +import type { NexeCompiler } from '../compiler.js' +import { NexeError } from '../compiler.js' export default async function disableNodeCli(compiler: NexeCompiler, next: () => Promise) { if (compiler.options.enableNodeCli) { diff --git a/src/patches/flags.ts b/src/patches/flags.ts index 45070e3..bbb99c4 100644 --- a/src/patches/flags.ts +++ b/src/patches/flags.ts @@ -1,4 +1,5 @@ -import { NexeCompiler, NexeError } from '../compiler' +import type { NexeCompiler } from '../compiler.js' +import { NexeError } from '../compiler.js' export default async function flags(compiler: NexeCompiler, next: () => Promise) { const nodeflags = compiler.options.flags diff --git a/src/patches/index.ts b/src/patches/index.ts index c717d12..926592f 100644 --- a/src/patches/index.ts +++ b/src/patches/index.ts @@ -1,6 +1,6 @@ -import bootNexe from './third-party-main' -import cli from './disable-node-cli' -import flags from './flags' +import bootNexe from './third-party-main.js' +import cli from './disable-node-cli.js' +import flags from './flags.js' const patches = [bootNexe, cli, flags] diff --git a/src/patches/third-party-main.ts b/src/patches/third-party-main.ts index 74e916d..1cd4615 100644 --- a/src/patches/third-party-main.ts +++ b/src/patches/third-party-main.ts @@ -1,6 +1,7 @@ import { parse } from 'meriyah' -import { NexeCompiler, NexeError } from '../compiler' -import { wrap, semverGt } from '../util' +import type { NexeCompiler } from '../compiler.js' +import { NexeError } from '../compiler.js' +import { wrap, semverGt } from '../util.js' export default async function main(compiler: NexeCompiler, next: () => Promise) { let bootFile = 'lib/internal/bootstrap/pre_execution.js' diff --git a/src/releases.ts b/src/releases.ts index 0c31ca2..d83e56e 100644 --- a/src/releases.ts +++ b/src/releases.ts @@ -1,4 +1,4 @@ -import { platforms, architectures, NexeTarget, getTarget, targetsEqual } from './target' +import { platforms, architectures, NexeTarget, getTarget, targetsEqual } from './target.js' export { NexeTarget } const versionsToSkip = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 15, 17, 19, 21, 22] diff --git a/src/steps/artifacts.ts b/src/steps/artifacts.ts index 5c004cd..d638a30 100644 --- a/src/steps/artifacts.ts +++ b/src/steps/artifacts.ts @@ -1,8 +1,8 @@ import { join, dirname } from 'node:path' import { unlink, readdir, mkdir } from 'node:fs/promises' -import { readFile, writeFile, isDirectory } from '../util' -import { NexeCompiler } from '../compiler' +import { readFile, writeFile, isDirectory } from '../util.js' +import type { NexeCompiler } from '../compiler.js' async function readDirAsync(dir: string): Promise { return await readdir(dir).then(async (paths) => { diff --git a/src/steps/bundle.ts b/src/steps/bundle.ts index 426508a..152318c 100644 --- a/src/steps/bundle.ts +++ b/src/steps/bundle.ts @@ -1,9 +1,10 @@ import { resolve, relative } from 'node:path' -import { Readable } from 'node:stream' +import type { Readable } from 'node:stream' import resolveFiles, { resolveSync } from 'resolve-dependencies' -import { NexeCompiler, NexeError } from '../compiler' -import { dequote, STDIN_FLAG } from '../util' +import type { NexeCompiler } from '../compiler.js' +import { NexeError } from '../compiler.js' +import { dequote, STDIN_FLAG } from '../util.js' async function getStdIn(stdin: Readable): Promise { let out = '' diff --git a/src/steps/clean.ts b/src/steps/clean.ts index e360b1d..e7e0343 100644 --- a/src/steps/clean.ts +++ b/src/steps/clean.ts @@ -1,7 +1,7 @@ import { rm } from 'node:fs/promises' -import { NexeCompiler } from '../compiler' -import { NexeTarget } from '../target' +import type { NexeCompiler } from '../compiler.js' +import type { NexeTarget } from '../target.js' export default async function clean(compiler: NexeCompiler, next: () => Promise) { const { options } = compiler diff --git a/src/steps/cli.ts b/src/steps/cli.ts index 50bb1dc..f0f8995 100644 --- a/src/steps/cli.ts +++ b/src/steps/cli.ts @@ -1,8 +1,8 @@ import { dirname, normalize, relative, resolve } from 'node:path' import { createWriteStream, chmodSync, statSync, mkdirSync } from 'node:fs' -import { NexeCompiler } from '../compiler' -import { NexeTarget } from '../target' -import { STDIN_FLAG } from '../util' +import type { NexeCompiler } from '../compiler.js' +import type { NexeTarget } from '../target.js' +import { STDIN_FLAG } from '../util.js' /** * The "cli" step detects the appropriate input. If no input options are passed, diff --git a/src/steps/download.ts b/src/steps/download.ts index e97199b..ebb3d52 100644 --- a/src/steps/download.ts +++ b/src/steps/download.ts @@ -2,9 +2,10 @@ import { dirname } from 'node:path' import download from 'download' -import { pathExists } from '../util' -import { LogStep } from '../logger' -import { NexeCompiler, NexeError } from '../compiler' +import { pathExists } from '../util.js' +import type { LogStep } from '../logger.js' +import type { NexeCompiler } from '../compiler.js' +import { NexeError } from '../compiler.js' import type { IncomingMessage } from 'node:http' diff --git a/src/steps/resource.ts b/src/steps/resource.ts index 36ab0c2..f44bfc3 100644 --- a/src/steps/resource.ts +++ b/src/steps/resource.ts @@ -2,8 +2,8 @@ import { relative } from 'node:path' import fg from 'fast-glob' -import { each } from '../util' -import { NexeCompiler } from '../compiler' +import { each } from '../util.js' +import type { NexeCompiler } from '../compiler.js' export default async function resource(compiler: NexeCompiler, next: () => Promise) { const { cwd, resources } = compiler.options diff --git a/src/steps/shim.ts b/src/steps/shim.ts index ccf1611..d9c3123 100644 --- a/src/steps/shim.ts +++ b/src/steps/shim.ts @@ -1,5 +1,5 @@ -import { NexeCompiler } from '../compiler' -import { wrap } from '../util' +import type { NexeCompiler } from '../compiler.js' +import { wrap } from '../util.js' export default async function (compiler: NexeCompiler, next: () => Promise) { await next() diff --git a/src/types.d.ts b/src/types.d.ts index b13114a..3366e78 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -10,7 +10,7 @@ declare module 'got' { declare module 'caw' declare module 'download' { - import { Duplex } from 'stream' + import type { Duplex } from 'stream' interface DownloadOptions { extract?: boolean strip?: number diff --git a/tasks/build.d.ts b/tasks/build.d.ts deleted file mode 100644 index 9e7cfe6..0000000 --- a/tasks/build.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function build(target?: string | null): Promise diff --git a/tasks/post-build.d.ts b/tasks/post-build.d.ts deleted file mode 100644 index 336ce12..0000000 --- a/tasks/post-build.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {} diff --git a/test/exports.mjs b/test/exports.mjs new file mode 100644 index 0000000..7e7ef34 --- /dev/null +++ b/test/exports.mjs @@ -0,0 +1,15 @@ +import * as nexeEsm from '../lib/esm/nexe.js' +import { createRequire } from 'node:module' +import { fileURLToPath } from 'node:url' +import { ok } from 'node:assert' + +const cjs = createRequire(fileURLToPath(import.meta.url)), + nexeCjs = cjs('../lib/cjs/nexe.js'), + exports = ['NexeCompiler', 'argv', 'compile', 'help', 'version'] + +for (const exp of exports) { + ok(exp in nexeCjs) + ok(exp in nexeEsm) +} + +console.log('esm and cjs modules match') diff --git a/test/options.spec.ts b/test/options.spec.ts index 5b8bb63..3df6c39 100644 --- a/test/options.spec.ts +++ b/test/options.spec.ts @@ -1,7 +1,8 @@ import { describe, it, expect } from 'vitest' -import { normalizeOptions } from '../src/options' import * as path from 'path' +import { normalizeOptions } from '../src/options.js' + const ext = process.platform === 'win32' ? '.exe' : '' describe('options', () => { diff --git a/test/target.spec.ts b/test/target.spec.ts index 013575e..3e4d6de 100644 --- a/test/target.spec.ts +++ b/test/target.spec.ts @@ -1,8 +1,9 @@ import { describe, it, expect } from 'vitest' - -import { padRight } from '../src/util' import chalk from 'chalk' -import { getTarget } from '../src/target' + +import { padRight } from '../src/util.js' +import { getTarget } from '../src/target.js' + const b = chalk.blue, arch = process.arch === 'ia32' ? 'x86' : process.arch diff --git a/tslint.json b/tslint.json deleted file mode 100644 index 71e1f3d..0000000 --- a/tslint.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "rulesDirectory": ["tslint-plugin-prettier", "tslint-config-prettier"], - "linterOptions": { - "exclude": ["**/node_modules/**/*"] - }, - "rules": { - "prettier": [true, { "semi": false, "printWidth": 100, "singleQuote": true }] - } -}