diff options
| -rw-r--r-- | .gitignore | 4 | ||||
| -rw-r--r-- | platform/web/package-lock.json | 1221 | ||||
| -rw-r--r-- | platform/web/package.json | 6 | ||||
| -rw-r--r-- | platform/web/serve.json | 21 | ||||
| -rwxr-xr-x | platform/web/serve.py | 52 | 
5 files changed, 57 insertions, 1247 deletions
diff --git a/.gitignore b/.gitignore index 539003ca6b..1a83e4707e 100644 --- a/.gitignore +++ b/.gitignore @@ -82,9 +82,9 @@ platform/android/java/*/libs/  # iOS  *.dSYM -# Javascript +# Web platform  *.bc -platform/javascript/node_modules/ +platform/web/node_modules/  # Misc  *.debug diff --git a/platform/web/package-lock.json b/platform/web/package-lock.json index f8c67b206f..9a7d871c64 100644 --- a/platform/web/package-lock.json +++ b/platform/web/package-lock.json @@ -12,8 +12,7 @@          "eslint": "^7.28.0",          "eslint-config-airbnb-base": "^14.2.1",          "eslint-plugin-import": "^2.23.4", -        "jsdoc": "^3.6.7", -        "serve": "^13.0.2" +        "jsdoc": "^3.6.7"        }      },      "node_modules/@babel/code-frame": { @@ -131,25 +130,6 @@        "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==",        "dev": true      }, -    "node_modules/@zeit/schemas": { -      "version": "2.6.0", -      "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.6.0.tgz", -      "integrity": "sha512-uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg==", -      "dev": true -    }, -    "node_modules/accepts": { -      "version": "1.3.7", -      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", -      "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", -      "dev": true, -      "dependencies": { -        "mime-types": "~2.1.24", -        "negotiator": "0.6.2" -      }, -      "engines": { -        "node": ">= 0.6" -      } -    },      "node_modules/acorn": {        "version": "7.4.1",        "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -187,15 +167,6 @@          "url": "https://github.com/sponsors/epoberezkin"        }      }, -    "node_modules/ansi-align": { -      "version": "3.0.1", -      "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", -      "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", -      "dev": true, -      "dependencies": { -        "string-width": "^4.1.0" -      } -    },      "node_modules/ansi-colors": {        "version": "4.1.1",        "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -226,32 +197,6 @@          "node": ">=4"        }      }, -    "node_modules/arch": { -      "version": "2.2.0", -      "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", -      "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", -      "dev": true, -      "funding": [ -        { -          "type": "github", -          "url": "https://github.com/sponsors/feross" -        }, -        { -          "type": "patreon", -          "url": "https://www.patreon.com/feross" -        }, -        { -          "type": "consulting", -          "url": "https://feross.org/support" -        } -      ] -    }, -    "node_modules/arg": { -      "version": "2.0.0", -      "resolved": "https://registry.npmjs.org/arg/-/arg-2.0.0.tgz", -      "integrity": "sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w==", -      "dev": true -    },      "node_modules/argparse": {        "version": "1.0.10",        "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -318,28 +263,6 @@        "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",        "dev": true      }, -    "node_modules/boxen": { -      "version": "5.1.2", -      "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", -      "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", -      "dev": true, -      "dependencies": { -        "ansi-align": "^3.0.0", -        "camelcase": "^6.2.0", -        "chalk": "^4.1.0", -        "cli-boxes": "^2.2.1", -        "string-width": "^4.2.2", -        "type-fest": "^0.20.2", -        "widest-line": "^3.1.0", -        "wrap-ansi": "^7.0.0" -      }, -      "engines": { -        "node": ">=10" -      }, -      "funding": { -        "url": "https://github.com/sponsors/sindresorhus" -      } -    },      "node_modules/brace-expansion": {        "version": "1.1.11",        "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -350,15 +273,6 @@          "concat-map": "0.0.1"        }      }, -    "node_modules/bytes": { -      "version": "3.0.0", -      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", -      "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", -      "dev": true, -      "engines": { -        "node": ">= 0.8" -      } -    },      "node_modules/call-bind": {        "version": "1.0.2",        "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -381,18 +295,6 @@          "node": ">=6"        }      }, -    "node_modules/camelcase": { -      "version": "6.3.0", -      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", -      "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", -      "dev": true, -      "engines": { -        "node": ">=10" -      }, -      "funding": { -        "url": "https://github.com/sponsors/sindresorhus" -      } -    },      "node_modules/catharsis": {        "version": "0.9.0",        "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", @@ -475,32 +377,6 @@          "node": ">=8"        }      }, -    "node_modules/cli-boxes": { -      "version": "2.2.1", -      "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", -      "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", -      "dev": true, -      "engines": { -        "node": ">=6" -      }, -      "funding": { -        "url": "https://github.com/sponsors/sindresorhus" -      } -    }, -    "node_modules/clipboardy": { -      "version": "2.3.0", -      "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", -      "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", -      "dev": true, -      "dependencies": { -        "arch": "^2.1.1", -        "execa": "^1.0.0", -        "is-wsl": "^2.1.1" -      }, -      "engines": { -        "node": ">=8" -      } -    },      "node_modules/color-convert": {        "version": "1.9.3",        "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -516,51 +392,6 @@        "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",        "dev": true      }, -    "node_modules/compressible": { -      "version": "2.0.18", -      "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", -      "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", -      "dev": true, -      "dependencies": { -        "mime-db": ">= 1.43.0 < 2" -      }, -      "engines": { -        "node": ">= 0.6" -      } -    }, -    "node_modules/compression": { -      "version": "1.7.3", -      "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", -      "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", -      "dev": true, -      "dependencies": { -        "accepts": "~1.3.5", -        "bytes": "3.0.0", -        "compressible": "~2.0.14", -        "debug": "2.6.9", -        "on-headers": "~1.0.1", -        "safe-buffer": "5.1.2", -        "vary": "~1.1.2" -      }, -      "engines": { -        "node": ">= 0.8.0" -      } -    }, -    "node_modules/compression/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/compression/node_modules/ms": { -      "version": "2.0.0", -      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", -      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", -      "dev": true -    },      "node_modules/concat-map": {        "version": "0.0.1",        "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -573,15 +404,6 @@        "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==",        "dev": true      }, -    "node_modules/content-disposition": { -      "version": "0.5.2", -      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", -      "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", -      "dev": true, -      "engines": { -        "node": ">= 0.6" -      } -    },      "node_modules/cross-spawn": {        "version": "7.0.3",        "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -613,15 +435,6 @@          }        }      }, -    "node_modules/deep-extend": { -      "version": "0.6.0", -      "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", -      "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", -      "dev": true, -      "engines": { -        "node": ">=4.0.0" -      } -    },      "node_modules/deep-is": {        "version": "0.1.3",        "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -658,15 +471,6 @@        "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",        "dev": true      }, -    "node_modules/end-of-stream": { -      "version": "1.4.4", -      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", -      "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", -      "dev": true, -      "dependencies": { -        "once": "^1.4.0" -      } -    },      "node_modules/enquirer": {        "version": "2.3.6",        "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", @@ -1075,91 +879,6 @@          "node": ">=0.10.0"        }      }, -    "node_modules/execa": { -      "version": "1.0.0", -      "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", -      "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", -      "dev": true, -      "dependencies": { -        "cross-spawn": "^6.0.0", -        "get-stream": "^4.0.0", -        "is-stream": "^1.1.0", -        "npm-run-path": "^2.0.0", -        "p-finally": "^1.0.0", -        "signal-exit": "^3.0.0", -        "strip-eof": "^1.0.0" -      }, -      "engines": { -        "node": ">=6" -      } -    }, -    "node_modules/execa/node_modules/cross-spawn": { -      "version": "6.0.5", -      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", -      "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", -      "dev": true, -      "dependencies": { -        "nice-try": "^1.0.4", -        "path-key": "^2.0.1", -        "semver": "^5.5.0", -        "shebang-command": "^1.2.0", -        "which": "^1.2.9" -      }, -      "engines": { -        "node": ">=4.8" -      } -    }, -    "node_modules/execa/node_modules/path-key": { -      "version": "2.0.1", -      "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", -      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", -      "dev": true, -      "engines": { -        "node": ">=4" -      } -    }, -    "node_modules/execa/node_modules/semver": { -      "version": "5.7.1", -      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", -      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", -      "dev": true, -      "bin": { -        "semver": "bin/semver" -      } -    }, -    "node_modules/execa/node_modules/shebang-command": { -      "version": "1.2.0", -      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", -      "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", -      "dev": true, -      "dependencies": { -        "shebang-regex": "^1.0.0" -      }, -      "engines": { -        "node": ">=0.10.0" -      } -    }, -    "node_modules/execa/node_modules/shebang-regex": { -      "version": "1.0.0", -      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", -      "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", -      "dev": true, -      "engines": { -        "node": ">=0.10.0" -      } -    }, -    "node_modules/execa/node_modules/which": { -      "version": "1.3.1", -      "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", -      "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", -      "dev": true, -      "dependencies": { -        "isexe": "^2.0.0" -      }, -      "bin": { -        "which": "bin/which" -      } -    },      "node_modules/fast-deep-equal": {        "version": "3.1.3",        "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -1178,21 +897,6 @@        "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",        "dev": true      }, -    "node_modules/fast-url-parser": { -      "version": "1.1.3", -      "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", -      "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", -      "dev": true, -      "dependencies": { -        "punycode": "^1.3.2" -      } -    }, -    "node_modules/fast-url-parser/node_modules/punycode": { -      "version": "1.4.1", -      "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", -      "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", -      "dev": true -    },      "node_modules/file-entry-cache": {        "version": "6.0.1",        "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -1268,18 +972,6 @@          "url": "https://github.com/sponsors/ljharb"        }      }, -    "node_modules/get-stream": { -      "version": "4.1.0", -      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", -      "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", -      "dev": true, -      "dependencies": { -        "pump": "^3.0.0" -      }, -      "engines": { -        "node": ">=6" -      } -    },      "node_modules/glob": {        "version": "7.1.7",        "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", @@ -1431,12 +1123,6 @@        "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",        "dev": true      }, -    "node_modules/ini": { -      "version": "1.3.8", -      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", -      "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", -      "dev": true -    },      "node_modules/is-arrayish": {        "version": "0.2.1",        "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -1503,21 +1189,6 @@          "url": "https://github.com/sponsors/ljharb"        }      }, -    "node_modules/is-docker": { -      "version": "2.2.1", -      "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", -      "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", -      "dev": true, -      "bin": { -        "is-docker": "cli.js" -      }, -      "engines": { -        "node": ">=8" -      }, -      "funding": { -        "url": "https://github.com/sponsors/sindresorhus" -      } -    },      "node_modules/is-extglob": {        "version": "2.1.1",        "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -1588,15 +1259,6 @@          "url": "https://github.com/sponsors/ljharb"        }      }, -    "node_modules/is-stream": { -      "version": "1.1.0", -      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", -      "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", -      "dev": true, -      "engines": { -        "node": ">=0.10.0" -      } -    },      "node_modules/is-string": {        "version": "1.0.6",        "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", @@ -1624,18 +1286,6 @@          "url": "https://github.com/sponsors/ljharb"        }      }, -    "node_modules/is-wsl": { -      "version": "2.2.0", -      "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", -      "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", -      "dev": true, -      "dependencies": { -        "is-docker": "^2.0.0" -      }, -      "engines": { -        "node": ">=8" -      } -    },      "node_modules/isexe": {        "version": "2.0.0",        "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -1883,27 +1533,6 @@        "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=",        "dev": true      }, -    "node_modules/mime-db": { -      "version": "1.51.0", -      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", -      "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", -      "dev": true, -      "engines": { -        "node": ">= 0.6" -      } -    }, -    "node_modules/mime-types": { -      "version": "2.1.34", -      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", -      "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", -      "dev": true, -      "dependencies": { -        "mime-db": "1.51.0" -      }, -      "engines": { -        "node": ">= 0.6" -      } -    },      "node_modules/minimatch": {        "version": "3.0.4",        "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -1946,21 +1575,6 @@        "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",        "dev": true      }, -    "node_modules/negotiator": { -      "version": "0.6.2", -      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", -      "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", -      "dev": true, -      "engines": { -        "node": ">= 0.6" -      } -    }, -    "node_modules/nice-try": { -      "version": "1.0.5", -      "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", -      "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", -      "dev": true -    },      "node_modules/normalize-package-data": {        "version": "2.5.0",        "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -1982,27 +1596,6 @@          "semver": "bin/semver"        }      }, -    "node_modules/npm-run-path": { -      "version": "2.0.2", -      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", -      "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", -      "dev": true, -      "dependencies": { -        "path-key": "^2.0.0" -      }, -      "engines": { -        "node": ">=4" -      } -    }, -    "node_modules/npm-run-path/node_modules/path-key": { -      "version": "2.0.1", -      "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", -      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", -      "dev": true, -      "engines": { -        "node": ">=4" -      } -    },      "node_modules/object-inspect": {        "version": "1.10.3",        "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", @@ -2070,15 +1663,6 @@          "url": "https://github.com/sponsors/ljharb"        }      }, -    "node_modules/on-headers": { -      "version": "1.0.2", -      "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", -      "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", -      "dev": true, -      "engines": { -        "node": ">= 0.8" -      } -    },      "node_modules/once": {        "version": "1.4.0",        "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -2105,15 +1689,6 @@          "node": ">= 0.8.0"        }      }, -    "node_modules/p-finally": { -      "version": "1.0.0", -      "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", -      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", -      "dev": true, -      "engines": { -        "node": ">=4" -      } -    },      "node_modules/p-limit": {        "version": "1.3.0",        "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -2190,12 +1765,6 @@          "node": ">=0.10.0"        }      }, -    "node_modules/path-is-inside": { -      "version": "1.0.2", -      "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", -      "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", -      "dev": true -    },      "node_modules/path-key": {        "version": "3.1.1",        "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -2211,12 +1780,6 @@        "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",        "dev": true      }, -    "node_modules/path-to-regexp": { -      "version": "2.2.1", -      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", -      "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==", -      "dev": true -    },      "node_modules/path-type": {        "version": "3.0.0",        "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", @@ -2280,16 +1843,6 @@          "node": ">=0.4.0"        }      }, -    "node_modules/pump": { -      "version": "3.0.0", -      "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", -      "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", -      "dev": true, -      "dependencies": { -        "end-of-stream": "^1.1.0", -        "once": "^1.3.1" -      } -    },      "node_modules/punycode": {        "version": "2.1.1",        "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -2299,39 +1852,6 @@          "node": ">=6"        }      }, -    "node_modules/range-parser": { -      "version": "1.2.0", -      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", -      "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", -      "dev": true, -      "engines": { -        "node": ">= 0.6" -      } -    }, -    "node_modules/rc": { -      "version": "1.2.8", -      "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", -      "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", -      "dev": true, -      "dependencies": { -        "deep-extend": "^0.6.0", -        "ini": "~1.3.0", -        "minimist": "^1.2.0", -        "strip-json-comments": "~2.0.1" -      }, -      "bin": { -        "rc": "cli.js" -      } -    }, -    "node_modules/rc/node_modules/strip-json-comments": { -      "version": "2.0.1", -      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", -      "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", -      "dev": true, -      "engines": { -        "node": ">=0.10.0" -      } -    },      "node_modules/read-pkg": {        "version": "3.0.0",        "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", @@ -2371,28 +1891,6 @@          "url": "https://github.com/sponsors/mysticatea"        }      }, -    "node_modules/registry-auth-token": { -      "version": "3.3.2", -      "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", -      "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", -      "dev": true, -      "dependencies": { -        "rc": "^1.1.6", -        "safe-buffer": "^5.0.1" -      } -    }, -    "node_modules/registry-url": { -      "version": "3.1.0", -      "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", -      "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", -      "dev": true, -      "dependencies": { -        "rc": "^1.0.1" -      }, -      "engines": { -        "node": ">=0.10.0" -      } -    },      "node_modules/require-from-string": {        "version": "2.0.2",        "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -2448,12 +1946,6 @@          "url": "https://github.com/sponsors/isaacs"        }      }, -    "node_modules/safe-buffer": { -      "version": "5.1.2", -      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", -      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", -      "dev": true -    },      "node_modules/semver": {        "version": "7.3.5",        "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -2469,86 +1961,6 @@          "node": ">=10"        }      }, -    "node_modules/serve": { -      "version": "13.0.2", -      "resolved": "https://registry.npmjs.org/serve/-/serve-13.0.2.tgz", -      "integrity": "sha512-71R6fKvNgKrqARAag6lYJNnxDzpH7DCNrMuvPY5PLVaC2PDhJsGTj/34o4o4tPWhTuLgEXqvgnAWbATQ9zGZTQ==", -      "dev": true, -      "dependencies": { -        "@zeit/schemas": "2.6.0", -        "ajv": "6.12.6", -        "arg": "2.0.0", -        "boxen": "5.1.2", -        "chalk": "2.4.1", -        "clipboardy": "2.3.0", -        "compression": "1.7.3", -        "serve-handler": "6.1.3", -        "update-check": "1.5.2" -      }, -      "bin": { -        "serve": "bin/serve.js" -      } -    }, -    "node_modules/serve-handler": { -      "version": "6.1.3", -      "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.3.tgz", -      "integrity": "sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==", -      "dev": true, -      "dependencies": { -        "bytes": "3.0.0", -        "content-disposition": "0.5.2", -        "fast-url-parser": "1.1.3", -        "mime-types": "2.1.18", -        "minimatch": "3.0.4", -        "path-is-inside": "1.0.2", -        "path-to-regexp": "2.2.1", -        "range-parser": "1.2.0" -      } -    }, -    "node_modules/serve-handler/node_modules/mime-db": { -      "version": "1.33.0", -      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", -      "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", -      "dev": true, -      "engines": { -        "node": ">= 0.6" -      } -    }, -    "node_modules/serve-handler/node_modules/mime-types": { -      "version": "2.1.18", -      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", -      "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", -      "dev": true, -      "dependencies": { -        "mime-db": "~1.33.0" -      }, -      "engines": { -        "node": ">= 0.6" -      } -    }, -    "node_modules/serve/node_modules/chalk": { -      "version": "2.4.1", -      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", -      "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", -      "dev": true, -      "dependencies": { -        "ansi-styles": "^3.2.1", -        "escape-string-regexp": "^1.0.5", -        "supports-color": "^5.3.0" -      }, -      "engines": { -        "node": ">=4" -      } -    }, -    "node_modules/serve/node_modules/escape-string-regexp": { -      "version": "1.0.5", -      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", -      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", -      "dev": true, -      "engines": { -        "node": ">=0.8.0" -      } -    },      "node_modules/shebang-command": {        "version": "2.0.0",        "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -2570,12 +1982,6 @@          "node": ">=8"        }      }, -    "node_modules/signal-exit": { -      "version": "3.0.6", -      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", -      "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", -      "dev": true -    },      "node_modules/slice-ansi": {        "version": "4.0.0",        "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -2725,15 +2131,6 @@          "node": ">=4"        }      }, -    "node_modules/strip-eof": { -      "version": "1.0.0", -      "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", -      "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", -      "dev": true, -      "engines": { -        "node": ">=0.10.0" -      } -    },      "node_modules/strip-json-comments": {        "version": "3.1.1",        "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -2872,16 +2269,6 @@        "integrity": "sha512-QvjkYpiD+dJJraRA8+dGAU4i7aBbb2s0S3jA45TFOvg2VgqvdCDd/3N6CqA8gluk1W91GLoXg5enMUx560QzuA==",        "dev": true      }, -    "node_modules/update-check": { -      "version": "1.5.2", -      "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.2.tgz", -      "integrity": "sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ==", -      "dev": true, -      "dependencies": { -        "registry-auth-token": "3.3.2", -        "registry-url": "3.1.0" -      } -    },      "node_modules/uri-js": {        "version": "4.4.1",        "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -2907,15 +2294,6 @@          "spdx-expression-parse": "^3.0.0"        }      }, -    "node_modules/vary": { -      "version": "1.1.2", -      "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", -      "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", -      "dev": true, -      "engines": { -        "node": ">= 0.8" -      } -    },      "node_modules/which": {        "version": "2.0.2",        "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -2947,18 +2325,6 @@          "url": "https://github.com/sponsors/ljharb"        }      }, -    "node_modules/widest-line": { -      "version": "3.1.0", -      "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", -      "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", -      "dev": true, -      "dependencies": { -        "string-width": "^4.0.0" -      }, -      "engines": { -        "node": ">=8" -      } -    },      "node_modules/word-wrap": {        "version": "1.2.3",        "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -2968,56 +2334,6 @@          "node": ">=0.10.0"        }      }, -    "node_modules/wrap-ansi": { -      "version": "7.0.0", -      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", -      "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", -      "dev": true, -      "dependencies": { -        "ansi-styles": "^4.0.0", -        "string-width": "^4.1.0", -        "strip-ansi": "^6.0.0" -      }, -      "engines": { -        "node": ">=10" -      }, -      "funding": { -        "url": "https://github.com/chalk/wrap-ansi?sponsor=1" -      } -    }, -    "node_modules/wrap-ansi/node_modules/ansi-styles": { -      "version": "4.3.0", -      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", -      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", -      "dev": true, -      "dependencies": { -        "color-convert": "^2.0.1" -      }, -      "engines": { -        "node": ">=8" -      }, -      "funding": { -        "url": "https://github.com/chalk/ansi-styles?sponsor=1" -      } -    }, -    "node_modules/wrap-ansi/node_modules/color-convert": { -      "version": "2.0.1", -      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", -      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", -      "dev": true, -      "dependencies": { -        "color-name": "~1.1.4" -      }, -      "engines": { -        "node": ">=7.0.0" -      } -    }, -    "node_modules/wrap-ansi/node_modules/color-name": { -      "version": "1.1.4", -      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", -      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", -      "dev": true -    },      "node_modules/wrappy": {        "version": "1.0.2",        "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -3134,22 +2450,6 @@        "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==",        "dev": true      }, -    "@zeit/schemas": { -      "version": "2.6.0", -      "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.6.0.tgz", -      "integrity": "sha512-uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg==", -      "dev": true -    }, -    "accepts": { -      "version": "1.3.7", -      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", -      "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", -      "dev": true, -      "requires": { -        "mime-types": "~2.1.24", -        "negotiator": "0.6.2" -      } -    },      "acorn": {        "version": "7.4.1",        "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -3175,15 +2475,6 @@          "uri-js": "^4.2.2"        }      }, -    "ansi-align": { -      "version": "3.0.1", -      "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", -      "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", -      "dev": true, -      "requires": { -        "string-width": "^4.1.0" -      } -    },      "ansi-colors": {        "version": "4.1.1",        "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -3205,18 +2496,6 @@          "color-convert": "^1.9.0"        }      }, -    "arch": { -      "version": "2.2.0", -      "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", -      "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", -      "dev": true -    }, -    "arg": { -      "version": "2.0.0", -      "resolved": "https://registry.npmjs.org/arg/-/arg-2.0.0.tgz", -      "integrity": "sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w==", -      "dev": true -    },      "argparse": {        "version": "1.0.10",        "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -3268,22 +2547,6 @@        "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",        "dev": true      }, -    "boxen": { -      "version": "5.1.2", -      "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", -      "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", -      "dev": true, -      "requires": { -        "ansi-align": "^3.0.0", -        "camelcase": "^6.2.0", -        "chalk": "^4.1.0", -        "cli-boxes": "^2.2.1", -        "string-width": "^4.2.2", -        "type-fest": "^0.20.2", -        "widest-line": "^3.1.0", -        "wrap-ansi": "^7.0.0" -      } -    },      "brace-expansion": {        "version": "1.1.11",        "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3294,12 +2557,6 @@          "concat-map": "0.0.1"        }      }, -    "bytes": { -      "version": "3.0.0", -      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", -      "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", -      "dev": true -    },      "call-bind": {        "version": "1.0.2",        "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -3316,12 +2573,6 @@        "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",        "dev": true      }, -    "camelcase": { -      "version": "6.3.0", -      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", -      "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", -      "dev": true -    },      "catharsis": {        "version": "0.9.0",        "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", @@ -3382,23 +2633,6 @@          }        }      }, -    "cli-boxes": { -      "version": "2.2.1", -      "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", -      "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", -      "dev": true -    }, -    "clipboardy": { -      "version": "2.3.0", -      "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", -      "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", -      "dev": true, -      "requires": { -        "arch": "^2.1.1", -        "execa": "^1.0.0", -        "is-wsl": "^2.1.1" -      } -    },      "color-convert": {        "version": "1.9.3",        "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -3414,47 +2648,6 @@        "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",        "dev": true      }, -    "compressible": { -      "version": "2.0.18", -      "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", -      "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", -      "dev": true, -      "requires": { -        "mime-db": ">= 1.43.0 < 2" -      } -    }, -    "compression": { -      "version": "1.7.3", -      "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", -      "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", -      "dev": true, -      "requires": { -        "accepts": "~1.3.5", -        "bytes": "3.0.0", -        "compressible": "~2.0.14", -        "debug": "2.6.9", -        "on-headers": "~1.0.1", -        "safe-buffer": "5.1.2", -        "vary": "~1.1.2" -      }, -      "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" -          } -        }, -        "ms": { -          "version": "2.0.0", -          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", -          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", -          "dev": true -        } -      } -    },      "concat-map": {        "version": "0.0.1",        "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -3467,12 +2660,6 @@        "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==",        "dev": true      }, -    "content-disposition": { -      "version": "0.5.2", -      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", -      "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", -      "dev": true -    },      "cross-spawn": {        "version": "7.0.3",        "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -3493,12 +2680,6 @@          "ms": "2.1.2"        }      }, -    "deep-extend": { -      "version": "0.6.0", -      "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", -      "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", -      "dev": true -    },      "deep-is": {        "version": "0.1.3",        "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -3529,15 +2710,6 @@        "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",        "dev": true      }, -    "end-of-stream": { -      "version": "1.4.4", -      "resolved": "https://registry.npmjs.org/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" -      } -    },      "enquirer": {        "version": "2.3.6",        "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", @@ -3862,72 +3034,6 @@        "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",        "dev": true      }, -    "execa": { -      "version": "1.0.0", -      "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", -      "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", -      "dev": true, -      "requires": { -        "cross-spawn": "^6.0.0", -        "get-stream": "^4.0.0", -        "is-stream": "^1.1.0", -        "npm-run-path": "^2.0.0", -        "p-finally": "^1.0.0", -        "signal-exit": "^3.0.0", -        "strip-eof": "^1.0.0" -      }, -      "dependencies": { -        "cross-spawn": { -          "version": "6.0.5", -          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", -          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", -          "dev": true, -          "requires": { -            "nice-try": "^1.0.4", -            "path-key": "^2.0.1", -            "semver": "^5.5.0", -            "shebang-command": "^1.2.0", -            "which": "^1.2.9" -          } -        }, -        "path-key": { -          "version": "2.0.1", -          "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", -          "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", -          "dev": true -        }, -        "semver": { -          "version": "5.7.1", -          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", -          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", -          "dev": true -        }, -        "shebang-command": { -          "version": "1.2.0", -          "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", -          "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", -          "dev": true, -          "requires": { -            "shebang-regex": "^1.0.0" -          } -        }, -        "shebang-regex": { -          "version": "1.0.0", -          "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", -          "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", -          "dev": true -        }, -        "which": { -          "version": "1.3.1", -          "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", -          "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", -          "dev": true, -          "requires": { -            "isexe": "^2.0.0" -          } -        } -      } -    },      "fast-deep-equal": {        "version": "3.1.3",        "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -3946,23 +3052,6 @@        "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",        "dev": true      }, -    "fast-url-parser": { -      "version": "1.1.3", -      "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", -      "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", -      "dev": true, -      "requires": { -        "punycode": "^1.3.2" -      }, -      "dependencies": { -        "punycode": { -          "version": "1.4.1", -          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", -          "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", -          "dev": true -        } -      } -    },      "file-entry-cache": {        "version": "6.0.1",        "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -4026,15 +3115,6 @@          "has-symbols": "^1.0.1"        }      }, -    "get-stream": { -      "version": "4.1.0", -      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", -      "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", -      "dev": true, -      "requires": { -        "pump": "^3.0.0" -      } -    },      "glob": {        "version": "7.1.7",        "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", @@ -4144,12 +3224,6 @@        "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",        "dev": true      }, -    "ini": { -      "version": "1.3.8", -      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", -      "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", -      "dev": true -    },      "is-arrayish": {        "version": "0.2.1",        "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -4192,12 +3266,6 @@        "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==",        "dev": true      }, -    "is-docker": { -      "version": "2.2.1", -      "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", -      "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", -      "dev": true -    },      "is-extglob": {        "version": "2.1.1",        "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -4241,12 +3309,6 @@          "has-symbols": "^1.0.2"        }      }, -    "is-stream": { -      "version": "1.1.0", -      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", -      "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", -      "dev": true -    },      "is-string": {        "version": "1.0.6",        "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", @@ -4262,15 +3324,6 @@          "has-symbols": "^1.0.2"        }      }, -    "is-wsl": { -      "version": "2.2.0", -      "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", -      "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", -      "dev": true, -      "requires": { -        "is-docker": "^2.0.0" -      } -    },      "isexe": {        "version": "2.0.0",        "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -4480,21 +3533,6 @@        "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=",        "dev": true      }, -    "mime-db": { -      "version": "1.51.0", -      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", -      "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", -      "dev": true -    }, -    "mime-types": { -      "version": "2.1.34", -      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", -      "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", -      "dev": true, -      "requires": { -        "mime-db": "1.51.0" -      } -    },      "minimatch": {        "version": "3.0.4",        "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -4528,18 +3566,6 @@        "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",        "dev": true      }, -    "negotiator": { -      "version": "0.6.2", -      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", -      "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", -      "dev": true -    }, -    "nice-try": { -      "version": "1.0.5", -      "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", -      "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", -      "dev": true -    },      "normalize-package-data": {        "version": "2.5.0",        "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -4560,23 +3586,6 @@          }        }      }, -    "npm-run-path": { -      "version": "2.0.2", -      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", -      "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", -      "dev": true, -      "requires": { -        "path-key": "^2.0.0" -      }, -      "dependencies": { -        "path-key": { -          "version": "2.0.1", -          "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", -          "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", -          "dev": true -        } -      } -    },      "object-inspect": {        "version": "1.10.3",        "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", @@ -4623,12 +3632,6 @@          "es-abstract": "^1.18.2"        }      }, -    "on-headers": { -      "version": "1.0.2", -      "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", -      "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", -      "dev": true -    },      "once": {        "version": "1.4.0",        "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -4652,12 +3655,6 @@          "word-wrap": "^1.2.3"        }      }, -    "p-finally": { -      "version": "1.0.0", -      "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", -      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", -      "dev": true -    },      "p-limit": {        "version": "1.3.0",        "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -4713,12 +3710,6 @@        "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",        "dev": true      }, -    "path-is-inside": { -      "version": "1.0.2", -      "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", -      "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", -      "dev": true -    },      "path-key": {        "version": "3.1.1",        "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -4731,12 +3722,6 @@        "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",        "dev": true      }, -    "path-to-regexp": { -      "version": "2.2.1", -      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", -      "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==", -      "dev": true -    },      "path-type": {        "version": "3.0.0",        "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", @@ -4782,48 +3767,12 @@        "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",        "dev": true      }, -    "pump": { -      "version": "3.0.0", -      "resolved": "https://registry.npmjs.org/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" -      } -    },      "punycode": {        "version": "2.1.1",        "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",        "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",        "dev": true      }, -    "range-parser": { -      "version": "1.2.0", -      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", -      "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", -      "dev": true -    }, -    "rc": { -      "version": "1.2.8", -      "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", -      "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", -      "dev": true, -      "requires": { -        "deep-extend": "^0.6.0", -        "ini": "~1.3.0", -        "minimist": "^1.2.0", -        "strip-json-comments": "~2.0.1" -      }, -      "dependencies": { -        "strip-json-comments": { -          "version": "2.0.1", -          "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", -          "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", -          "dev": true -        } -      } -    },      "read-pkg": {        "version": "3.0.0",        "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", @@ -4851,25 +3800,6 @@        "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",        "dev": true      }, -    "registry-auth-token": { -      "version": "3.3.2", -      "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", -      "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", -      "dev": true, -      "requires": { -        "rc": "^1.1.6", -        "safe-buffer": "^5.0.1" -      } -    }, -    "registry-url": { -      "version": "3.1.0", -      "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", -      "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", -      "dev": true, -      "requires": { -        "rc": "^1.0.1" -      } -    },      "require-from-string": {        "version": "2.0.2",        "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -4910,12 +3840,6 @@          "glob": "^7.1.3"        }      }, -    "safe-buffer": { -      "version": "5.1.2", -      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", -      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", -      "dev": true -    },      "semver": {        "version": "7.3.5",        "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -4925,75 +3849,6 @@          "lru-cache": "^6.0.0"        }      }, -    "serve": { -      "version": "13.0.2", -      "resolved": "https://registry.npmjs.org/serve/-/serve-13.0.2.tgz", -      "integrity": "sha512-71R6fKvNgKrqARAag6lYJNnxDzpH7DCNrMuvPY5PLVaC2PDhJsGTj/34o4o4tPWhTuLgEXqvgnAWbATQ9zGZTQ==", -      "dev": true, -      "requires": { -        "@zeit/schemas": "2.6.0", -        "ajv": "6.12.6", -        "arg": "2.0.0", -        "boxen": "5.1.2", -        "chalk": "2.4.1", -        "clipboardy": "2.3.0", -        "compression": "1.7.3", -        "serve-handler": "6.1.3", -        "update-check": "1.5.2" -      }, -      "dependencies": { -        "chalk": { -          "version": "2.4.1", -          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", -          "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", -          "dev": true, -          "requires": { -            "ansi-styles": "^3.2.1", -            "escape-string-regexp": "^1.0.5", -            "supports-color": "^5.3.0" -          } -        }, -        "escape-string-regexp": { -          "version": "1.0.5", -          "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", -          "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", -          "dev": true -        } -      } -    }, -    "serve-handler": { -      "version": "6.1.3", -      "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.3.tgz", -      "integrity": "sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==", -      "dev": true, -      "requires": { -        "bytes": "3.0.0", -        "content-disposition": "0.5.2", -        "fast-url-parser": "1.1.3", -        "mime-types": "2.1.18", -        "minimatch": "3.0.4", -        "path-is-inside": "1.0.2", -        "path-to-regexp": "2.2.1", -        "range-parser": "1.2.0" -      }, -      "dependencies": { -        "mime-db": { -          "version": "1.33.0", -          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", -          "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", -          "dev": true -        }, -        "mime-types": { -          "version": "2.1.18", -          "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", -          "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", -          "dev": true, -          "requires": { -            "mime-db": "~1.33.0" -          } -        } -      } -    },      "shebang-command": {        "version": "2.0.0",        "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -5009,12 +3864,6 @@        "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",        "dev": true      }, -    "signal-exit": { -      "version": "3.0.6", -      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", -      "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", -      "dev": true -    },      "slice-ansi": {        "version": "4.0.0",        "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -5136,12 +3985,6 @@        "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",        "dev": true      }, -    "strip-eof": { -      "version": "1.0.0", -      "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", -      "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", -      "dev": true -    },      "strip-json-comments": {        "version": "3.1.1",        "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -5254,16 +4097,6 @@        "integrity": "sha512-QvjkYpiD+dJJraRA8+dGAU4i7aBbb2s0S3jA45TFOvg2VgqvdCDd/3N6CqA8gluk1W91GLoXg5enMUx560QzuA==",        "dev": true      }, -    "update-check": { -      "version": "1.5.2", -      "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.2.tgz", -      "integrity": "sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ==", -      "dev": true, -      "requires": { -        "registry-auth-token": "3.3.2", -        "registry-url": "3.1.0" -      } -    },      "uri-js": {        "version": "4.4.1",        "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -5289,12 +4122,6 @@          "spdx-expression-parse": "^3.0.0"        }      }, -    "vary": { -      "version": "1.1.2", -      "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", -      "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", -      "dev": true -    },      "which": {        "version": "2.0.2",        "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -5317,58 +4144,12 @@          "is-symbol": "^1.0.3"        }      }, -    "widest-line": { -      "version": "3.1.0", -      "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", -      "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", -      "dev": true, -      "requires": { -        "string-width": "^4.0.0" -      } -    },      "word-wrap": {        "version": "1.2.3",        "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",        "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",        "dev": true      }, -    "wrap-ansi": { -      "version": "7.0.0", -      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", -      "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", -      "dev": true, -      "requires": { -        "ansi-styles": "^4.0.0", -        "string-width": "^4.1.0", -        "strip-ansi": "^6.0.0" -      }, -      "dependencies": { -        "ansi-styles": { -          "version": "4.3.0", -          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", -          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", -          "dev": true, -          "requires": { -            "color-convert": "^2.0.1" -          } -        }, -        "color-convert": { -          "version": "2.0.1", -          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", -          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", -          "dev": true, -          "requires": { -            "color-name": "~1.1.4" -          } -        }, -        "color-name": { -          "version": "1.1.4", -          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", -          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", -          "dev": true -        } -      } -    },      "wrappy": {        "version": "1.0.2",        "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/platform/web/package.json b/platform/web/package.json index 0a8d9e4334..8d4983663b 100644 --- a/platform/web/package.json +++ b/platform/web/package.json @@ -14,8 +14,7 @@      "format:engine": "npm run lint:engine -- --fix",      "format:libs": "npm run lint:libs -- --fix",      "format:modules": "npm run lint:modules -- --fix", -    "format:tools": "npm run lint:tools -- --fix", -    "serve": "serve" +    "format:tools": "npm run lint:tools -- --fix"    },    "author": "Godot Engine contributors",    "license": "MIT", @@ -23,7 +22,6 @@      "eslint": "^7.28.0",      "eslint-config-airbnb-base": "^14.2.1",      "eslint-plugin-import": "^2.23.4", -    "jsdoc": "^3.6.7", -    "serve": "^13.0.2" +    "jsdoc": "^3.6.7"    }  } diff --git a/platform/web/serve.json b/platform/web/serve.json deleted file mode 100644 index f2ef24751f..0000000000 --- a/platform/web/serve.json +++ /dev/null @@ -1,21 +0,0 @@ -{ -    "public": "../../bin", -    "headers": [{ -        "source": "**/*", -        "headers": [ -            { -                "key": "Cross-Origin-Embedder-Policy", -                "value": "require-corp" -            }, { -                "key": "Cross-Origin-Opener-Policy", -                "value": "same-origin" -            }, { -                "key":  "Access-Control-Allow-Origin", -                "value": "*" -            }, { -                "key": "Cache-Control", -                "value": "no-store, max-age=0" -            } -        ] -    }] -} diff --git a/platform/web/serve.py b/platform/web/serve.py new file mode 100755 index 0000000000..14e87e9ea1 --- /dev/null +++ b/platform/web/serve.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python3 + +from http.server import HTTPServer, SimpleHTTPRequestHandler, test  # type: ignore +from pathlib import Path +import os +import sys +import argparse +import subprocess + + +class CORSRequestHandler(SimpleHTTPRequestHandler): +    def end_headers(self): +        self.send_header("Cross-Origin-Opener-Policy", "same-origin") +        self.send_header("Cross-Origin-Embedder-Policy", "require-corp") +        self.send_header("Access-Control-Allow-Origin", "*") +        super().end_headers() + + +def shell_open(url): +    if sys.platform == "win32": +        os.startfile(url) +    else: +        opener = "open" if sys.platform == "darwin" else "xdg-open" +        subprocess.call([opener, url]) + + +if __name__ == "__main__": +    parser = argparse.ArgumentParser() +    parser.add_argument("-p", "--port", help="port to listen on", default=8060, type=int) +    parser.add_argument( +        "-r", "--root", help="path to serve as root (relative to `platform/web/`)", default="../../bin", type=Path +    ) +    browser_parser = parser.add_mutually_exclusive_group(required=False) +    browser_parser.add_argument( +        "-n", "--no-browser", help="don't open default web browser automatically", dest="browser", action="store_false" +    ) +    parser.set_defaults(browser=True) +    args = parser.parse_args() + +    # Change to the directory where the script is located, +    # so that the script can be run from any location. +    os.chdir(Path(__file__).resolve().parent) + +    if args.root: +        os.chdir(args.root) + +    if args.browser: +        # Open the served page in the user's default browser. +        print("Opening the served URL in the default browser (use `--no-browser` or `-n` to disable this).") +        shell_open(f"http://127.0.0.1:{args.port}") + +    test(CORSRequestHandler, HTTPServer, port=args.port)  |