From 81b5ce22ce1bdc0e614ee4b3fa5c4286bb5b6ac1 Mon Sep 17 00:00:00 2001 From: Kevin Marrec Date: Wed, 24 Jul 2019 09:26:44 +0200 Subject: [PATCH] feat: externalize typescript support (#5858) --- .circleci/config.yml | 18 +- .eslintignore | 1 - distributions/nuxt-ts/README.md | 3 - distributions/nuxt-ts/bin/nuxt-ts.js | 49 - distributions/nuxt-ts/package.js | 23 - distributions/nuxt-ts/package.json | 79 -- examples/jsx/README.md | 2 +- examples/pm2-typescript/README.md | 28 - examples/pm2-typescript/ecosystem.config.js | 13 - examples/pm2-typescript/nuxt.config.ts | 13 - examples/pm2-typescript/package.json | 18 - examples/pm2-typescript/pages/index.vue | 12 - examples/pm2-typescript/tsconfig.json | 32 - examples/typescript-eslint/.eslintrc.js | 9 - examples/typescript-eslint/.gitignore | 15 - examples/typescript-eslint/README.md | 33 - examples/typescript-eslint/nuxt.config.ts | 5 - examples/typescript-eslint/package.json | 24 - examples/typescript-eslint/pages/index.vue | 14 - examples/typescript-eslint/tsconfig.json | 32 - examples/typescript-tsx/README.md | 1 - .../components/HelloWorld/HelloWorld.tsx | 14 - .../components/HelloWorld/index.ts | 3 - .../components/HelloWorld/styles.css | 4 - .../components/HelloWorld/styles.css.d.ts | 1 - examples/typescript-tsx/nuxt.config.ts | 19 - examples/typescript-tsx/package.json | 21 - examples/typescript-tsx/pages/index.tsx | 13 - examples/typescript-tsx/shims-tsx.d.ts | 11 - examples/typescript-tsx/tsconfig.json | 34 - examples/typescript-vuex/README.md | 3 - examples/typescript-vuex/assets/css/main.css | 4 - examples/typescript-vuex/components/Card.vue | 28 - examples/typescript-vuex/layouts/default.vue | 12 - examples/typescript-vuex/nuxt.config.ts | 17 - examples/typescript-vuex/package.json | 22 - examples/typescript-vuex/pages/index.vue | 39 - examples/typescript-vuex/static/favicon.ico | Bin 1150 -> 0 bytes .../typescript-vuex/static/random-data.json | 1000 ----------------- examples/typescript-vuex/store/index.ts | 28 - .../typescript-vuex/store/modules/people.ts | 71 -- examples/typescript-vuex/store/root.ts | 26 - examples/typescript-vuex/tsconfig.json | 32 - examples/typescript/README.md | 3 - examples/typescript/components/HelloWorld.vue | 14 - examples/typescript/nuxt.config.ts | 7 - examples/typescript/package.json | 19 - examples/typescript/pages/index.vue | 15 - examples/typescript/plugins/hello.ts | 3 - examples/typescript/tsconfig.json | 32 - jest.config.js | 2 - package.json | 10 +- packages/builder/src/builder.js | 2 +- packages/builder/test/builder.ctor.test.js | 2 +- .../builder/test/builder.generate.test.js | 6 +- packages/builder/test/builder.plugin.test.js | 2 +- packages/builder/test/builder.watch.test.js | 6 +- packages/cli/src/command.js | 9 - packages/cli/src/imports.js | 3 - packages/cli/src/utils/banner.js | 4 - packages/cli/src/utils/config.js | 6 +- packages/cli/src/utils/typescript.js | 68 -- packages/cli/test/unit/typescript.test.js | 50 - packages/config/package.json | 4 +- packages/config/src/config/build.js | 12 - packages/config/src/options.js | 2 +- .../test/__snapshots__/options.test.js.snap | 17 - .../config/__snapshots__/index.test.js.snap | 32 - packages/config/test/options.test.js | 2 +- packages/config/types/build.d.ts | 81 -- packages/config/types/env.d.ts | 6 - packages/config/types/fetch.d.ts | 9 - packages/config/types/generate.d.ts | 19 - packages/config/types/globals.d.ts | 7 - packages/config/types/head.d.ts | 9 - packages/config/types/hooks.d.ts | 50 - packages/config/types/index.d.ts | 94 -- packages/config/types/loading.d.ts | 27 - packages/config/types/module.d.ts | 9 - packages/config/types/plugin.d.ts | 7 - packages/config/types/render.d.ts | 28 - packages/config/types/router.d.ts | 22 - packages/config/types/server-middleware.d.ts | 8 - packages/config/types/server.d.ts | 15 - packages/config/types/vue-configuration.d.ts | 9 - packages/config/types/watchers.d.ts | 14 - packages/core/test/resolver.test.js | 12 - packages/typescript/package.js | 3 - packages/typescript/package.json | 37 - packages/typescript/src/index.js | 48 - packages/typescript/test/setup.test.js | 31 - packages/utils/src/route.js | 2 +- packages/vue-app/package.json | 2 - packages/vue-app/types/index.d.ts | 97 -- packages/vue-app/types/process.d.ts | 14 - packages/vue-app/types/vue.d.ts | 30 - packages/webpack/src/config/base.js | 32 +- packages/webpack/src/config/client.js | 16 +- test/fixtures/typescript/layouts/default.vue | 12 - test/fixtures/typescript/middleware/test.ts | 1 - test/fixtures/typescript/modules/module.ts | 3 - test/fixtures/typescript/nuxt.config.ts | 15 - test/fixtures/typescript/pages/about.ts | 8 - test/fixtures/typescript/pages/contact.tsx | 9 - test/fixtures/typescript/pages/index.vue | 12 - test/fixtures/typescript/pages/interface.vue | 22 - test/fixtures/typescript/plugins/plugin.ts | 1 - .../typescript/server-middleware/test.ts | 7 - test/fixtures/typescript/tsconfig.json | 33 - test/fixtures/typescript/typescript.test.js | 3 - test/types/index.ts | 2 - test/types/process.ts | 17 - test/types/tsconfig.json | 13 - test/types/vue.ts | 106 -- test/unit/basic.dev.test.js | 4 +- test/unit/typescript-build.test.js | 44 - test/unit/typescript.modern.test.js | 23 - test/unit/typescript.test.js | 50 - yarn.lock | 389 +------ 119 files changed, 74 insertions(+), 3596 deletions(-) delete mode 100644 distributions/nuxt-ts/README.md delete mode 100755 distributions/nuxt-ts/bin/nuxt-ts.js delete mode 100644 distributions/nuxt-ts/package.js delete mode 100644 distributions/nuxt-ts/package.json delete mode 100644 examples/pm2-typescript/README.md delete mode 100644 examples/pm2-typescript/ecosystem.config.js delete mode 100644 examples/pm2-typescript/nuxt.config.ts delete mode 100644 examples/pm2-typescript/package.json delete mode 100644 examples/pm2-typescript/pages/index.vue delete mode 100644 examples/pm2-typescript/tsconfig.json delete mode 100644 examples/typescript-eslint/.eslintrc.js delete mode 100644 examples/typescript-eslint/.gitignore delete mode 100644 examples/typescript-eslint/README.md delete mode 100644 examples/typescript-eslint/nuxt.config.ts delete mode 100644 examples/typescript-eslint/package.json delete mode 100644 examples/typescript-eslint/pages/index.vue delete mode 100644 examples/typescript-eslint/tsconfig.json delete mode 100644 examples/typescript-tsx/README.md delete mode 100644 examples/typescript-tsx/components/HelloWorld/HelloWorld.tsx delete mode 100644 examples/typescript-tsx/components/HelloWorld/index.ts delete mode 100644 examples/typescript-tsx/components/HelloWorld/styles.css delete mode 100644 examples/typescript-tsx/components/HelloWorld/styles.css.d.ts delete mode 100644 examples/typescript-tsx/nuxt.config.ts delete mode 100644 examples/typescript-tsx/package.json delete mode 100644 examples/typescript-tsx/pages/index.tsx delete mode 100644 examples/typescript-tsx/shims-tsx.d.ts delete mode 100644 examples/typescript-tsx/tsconfig.json delete mode 100644 examples/typescript-vuex/README.md delete mode 100644 examples/typescript-vuex/assets/css/main.css delete mode 100644 examples/typescript-vuex/components/Card.vue delete mode 100644 examples/typescript-vuex/layouts/default.vue delete mode 100644 examples/typescript-vuex/nuxt.config.ts delete mode 100644 examples/typescript-vuex/package.json delete mode 100644 examples/typescript-vuex/pages/index.vue delete mode 100644 examples/typescript-vuex/static/favicon.ico delete mode 100644 examples/typescript-vuex/static/random-data.json delete mode 100644 examples/typescript-vuex/store/index.ts delete mode 100644 examples/typescript-vuex/store/modules/people.ts delete mode 100644 examples/typescript-vuex/store/root.ts delete mode 100644 examples/typescript-vuex/tsconfig.json delete mode 100644 examples/typescript/README.md delete mode 100644 examples/typescript/components/HelloWorld.vue delete mode 100644 examples/typescript/nuxt.config.ts delete mode 100644 examples/typescript/package.json delete mode 100644 examples/typescript/pages/index.vue delete mode 100644 examples/typescript/plugins/hello.ts delete mode 100644 examples/typescript/tsconfig.json delete mode 100644 packages/cli/src/utils/typescript.js delete mode 100644 packages/cli/test/unit/typescript.test.js delete mode 100644 packages/config/types/build.d.ts delete mode 100644 packages/config/types/env.d.ts delete mode 100644 packages/config/types/fetch.d.ts delete mode 100644 packages/config/types/generate.d.ts delete mode 100644 packages/config/types/globals.d.ts delete mode 100644 packages/config/types/head.d.ts delete mode 100644 packages/config/types/hooks.d.ts delete mode 100644 packages/config/types/index.d.ts delete mode 100644 packages/config/types/loading.d.ts delete mode 100644 packages/config/types/module.d.ts delete mode 100644 packages/config/types/plugin.d.ts delete mode 100644 packages/config/types/render.d.ts delete mode 100644 packages/config/types/router.d.ts delete mode 100644 packages/config/types/server-middleware.d.ts delete mode 100644 packages/config/types/server.d.ts delete mode 100644 packages/config/types/vue-configuration.d.ts delete mode 100644 packages/config/types/watchers.d.ts delete mode 100644 packages/typescript/package.js delete mode 100644 packages/typescript/package.json delete mode 100644 packages/typescript/src/index.js delete mode 100644 packages/typescript/test/setup.test.js delete mode 100644 packages/vue-app/types/index.d.ts delete mode 100644 packages/vue-app/types/process.d.ts delete mode 100644 packages/vue-app/types/vue.d.ts delete mode 100644 test/fixtures/typescript/layouts/default.vue delete mode 100644 test/fixtures/typescript/middleware/test.ts delete mode 100644 test/fixtures/typescript/modules/module.ts delete mode 100644 test/fixtures/typescript/nuxt.config.ts delete mode 100644 test/fixtures/typescript/pages/about.ts delete mode 100644 test/fixtures/typescript/pages/contact.tsx delete mode 100644 test/fixtures/typescript/pages/index.vue delete mode 100644 test/fixtures/typescript/pages/interface.vue delete mode 100644 test/fixtures/typescript/plugins/plugin.ts delete mode 100644 test/fixtures/typescript/server-middleware/test.ts delete mode 100644 test/fixtures/typescript/tsconfig.json delete mode 100644 test/fixtures/typescript/typescript.test.js delete mode 100644 test/types/index.ts delete mode 100644 test/types/process.ts delete mode 100644 test/types/tsconfig.json delete mode 100644 test/types/vue.ts delete mode 100644 test/unit/typescript-build.test.js delete mode 100644 test/unit/typescript.modern.test.js delete mode 100644 test/unit/typescript.test.js diff --git a/.circleci/config.yml b/.circleci/config.yml index 12aa7a18ec..d70af7d757 100755 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -125,7 +125,7 @@ jobs: command: yarn lint:app # -------------------------------------------------------------------------- - # Phase 3: Unit, E2E and types tests + # Phase 3: Unit and E2E tests # -------------------------------------------------------------------------- test-unit: <<: *defaults @@ -164,16 +164,6 @@ jobs: - store_test_results: path: reports/junit - test-types: - <<: *defaults - steps: - - checkout - - attach_workspace: - at: ~/project - - run: - name: Types Tests - command: yarn test:types - # -------------------------------------------------------------------------- # Phase 4: Release (dev branch only) # -------------------------------------------------------------------------- @@ -200,9 +190,8 @@ workflows: - lint-app: { requires: [build] } - test-unit: { requires: [build] } - test-e2e: { requires: [build] } - - test-types: { requires: [build] } - release-commit: - requires: [build, lint, lint-app, audit, test-unit, test-e2e, test-types] + requires: [build, lint, lint-app, audit, test-unit, test-e2e] filters: <<: *release_branches @@ -216,9 +205,8 @@ workflows: - lint-app: { requires: [build] } - test-unit: { requires: [build] } - test-e2e: { requires: [build] } - - test-types: { requires: [build] } - release-nightly: - requires: [build, lint, lint-app, audit, test-unit, test-e2e, test-types] + requires: [build, lint, lint-app, audit, test-unit, test-e2e] triggers: - schedule: cron: "0 0 * * *" diff --git a/.eslintignore b/.eslintignore index a3837325b1..8e3846f0c8 100644 --- a/.eslintignore +++ b/.eslintignore @@ -9,7 +9,6 @@ coverage ## cofeescript examples/coffeescript/pages/index.vue examples/pug-stylus-coffee/ -examples/typescript-eslint/ # Packages # vue-app diff --git a/distributions/nuxt-ts/README.md b/distributions/nuxt-ts/README.md deleted file mode 100644 index 21a22a2ec4..0000000000 --- a/distributions/nuxt-ts/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# nuxt-ts - -> Nuxt With Runtime Typescript Support diff --git a/distributions/nuxt-ts/bin/nuxt-ts.js b/distributions/nuxt-ts/bin/nuxt-ts.js deleted file mode 100755 index a7948cc57d..0000000000 --- a/distributions/nuxt-ts/bin/nuxt-ts.js +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env node - -const boxen = require('boxen') -const chalk = require('chalk').default - -const warningBox = boxen([ - chalk.yellow.bold('IMPORTANT : Package deprecation'), - '', - `Nuxt TypeScript Support has been refactored to be used with ${chalk.green.bold('nuxt')} package.`, - `Which means that ${chalk.yellow.bold(`nuxt-ts`)} package is now no longer needed and is now tagged as ${chalk.yellow.bold('deprecated')}.`, - `${chalk.bold.underline('We highly recommend')} to follow the guidelines below :`, - '', - chalk.yellow.bold('Migration guide (2.5.x)'), - '', - chalk.bold('Using yarn'), - 'yarn remove nuxt-ts', - 'yarn add nuxt', - 'yarn add -D @nuxt/typescript', - '', - chalk.bold('Using npm'), - 'npm uninstall nuxt-ts', - 'npm install nuxt', - 'npm install -D @nuxt/typescript', - '', - ` ----- ${chalk.bold('nuxt.config.ts')} -----`, - '| build: { |', - `| ${chalk.red('-- useForkTsChecker: ...')} |`, - `| ${chalk.green('++ typescript : {')} |`, - `| ${chalk.green('++ typeCheck: ...')} |`, - `| ${chalk.green('++ }')} |`, - '| } |', - ' --------------------------', - '', - 'Find more information in updated docs : ' + chalk.blue.underline('https://nuxtjs.org/guide/typescript') -].join('\n'), Object.assign({ - borderColor: 'yellow', - borderStyle: 'round', - padding: 1, - margin: 1 -})) + '\n' - -process.stdout.write(warningBox) - -const suffix = require('../package.json').name.includes('-edge') ? '-edge' : '' -require('@nuxt/cli' + suffix).run() - .catch((error) => { - require('consola').fatal(error) - process.exit(2) - }) diff --git a/distributions/nuxt-ts/package.js b/distributions/nuxt-ts/package.js deleted file mode 100644 index 1d36d3a987..0000000000 --- a/distributions/nuxt-ts/package.js +++ /dev/null @@ -1,23 +0,0 @@ -export default { - build: false, - hooks: { - async 'build:done' (pkg) { - const mono = pkg.load('../..') - const nuxt = pkg.load('../nuxt') - - await pkg.copyFilesFrom(mono, [ - 'LICENSE' - ]) - - pkg.copyFieldsFrom(nuxt, [ - 'license', - 'repository', - 'contributors', - 'keywords', - 'collective' - ]) - - await pkg.writePackage() - } - } -} diff --git a/distributions/nuxt-ts/package.json b/distributions/nuxt-ts/package.json deleted file mode 100644 index 338d0604d2..0000000000 --- a/distributions/nuxt-ts/package.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "name": "nuxt-ts", - "version": "2.8.1", - "description": "Nuxt With Runtime Typescript Support", - "keywords": [ - "nuxt", - "nuxt-ts", - "nuxt.js", - "nuxt.ts", - "nuxtjs", - "nuxts", - "ssr", - "vue", - "vue isomorphic", - "vue server side", - "vue ssr", - "vue universal", - "vue versatile", - "vue.js", - "vuejs" - ], - "homepage": "https://github.com/nuxt/nuxt.js#readme", - "repository": "nuxt/nuxt.js", - "license": "MIT", - "contributors": [ - { - "name": "Sebastien Chopin (@Atinux)" - }, - { - "name": "Alexandre Chopin (@alexchopin)" - }, - { - "name": "Pooya Parsa (@pi0)" - }, - { - "name": "Clark Du (@clarkdo)" - }, - { - "name": "Jonas Galvez (@galvez)" - }, - { - "name": "Alexander Lichter (@manniL)" - }, - { - "name": "Dmitry Molotkov (@aldarund)" - }, - { - "name": "Kevin Marrec (@kevinmarrec)" - }, - { - "name": "Pim (@pimlie)" - } - ], - "files": [ - "bin" - ], - "bin": { - "nuxt-ts": "bin/nuxt-ts.js", - "nuxts": "bin/nuxt-ts.js" - }, - "dependencies": { - "@nuxt/builder": "2.8.1", - "@nuxt/cli": "2.8.1", - "@nuxt/core": "2.8.1", - "@nuxt/generator": "2.8.1", - "@nuxt/loading-screen": "^0.5.2", - "@nuxt/opencollective": "^0.2.2", - "@nuxt/typescript": "2.8.1", - "@nuxt/webpack": "2.8.1" - }, - "engines": { - "node": ">=6.0.0", - "npm": ">=3.0.0" - }, - "collective": { - "url": "https://opencollective.com/nuxtjs", - "logoUrl": "https://opencollective.com/nuxtjs/logo.txt?reverse=true&variant=variant2" - } -} diff --git a/examples/jsx/README.md b/examples/jsx/README.md index 6366fe4ee0..5bcdfae9c3 100644 --- a/examples/jsx/README.md +++ b/examples/jsx/README.md @@ -4,4 +4,4 @@ Vue: https://vuejs.org/v2/guide/render-function.html -Also see [TSX example](https://github.com/nuxt/nuxt.js/examples/typescript-tsx) +Also see [TSX example](https://github.com/nuxt/typescript/examples/tsx) diff --git a/examples/pm2-typescript/README.md b/examples/pm2-typescript/README.md deleted file mode 100644 index 1af8a28295..0000000000 --- a/examples/pm2-typescript/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# Nuxt.ts with PM2 example - -> [pm2](http://pm2.keymetrics.io/) ia an advanced process manager for production Node.js applications. Load balancer, logs facility, startup script, micro service management and more. - -[Gracefull zero-downtime restart](https://pm2.io/doc/en/runtime/best-practices/graceful-shutdown/#graceful-start) - -`ecosystem.config.js` - configuration file for pm2 - -`listen_timeout` option depends on your need - -## Zero-downtime deployment -*all depends on your deployment method. It's just example - -#### Directories: -- `$PROJECT_ROOT` - your project root path on server -- `/current` - root dir for nginx(if you are using [proxy configuration](https://nuxtjs.org/faq/nginx-proxy/)) -- `/_tmp` - Temporary dir to install and build project -- `/_old` - Previous build. Can be useful for fast reverting - -#### Steps: -- deploy project to $PROJECT_ROOT/_tmp -- `cd $PROJECT_ROOT/_tmp` -- `npm i` -- `nuxt build` or if you are using TypeScript `nuxt-ts build` -- `mv $PROJECT_ROOT/current $PROJECT_ROOT/_old` -- `mv $PROJECT_ROOT/_tmp $PROJECT_ROOT/current` -- `cd $PROJECT_PATH/current` -- `pm2 startOrReload ecosystem.config.js` diff --git a/examples/pm2-typescript/ecosystem.config.js b/examples/pm2-typescript/ecosystem.config.js deleted file mode 100644 index a3fbabbfd4..0000000000 --- a/examples/pm2-typescript/ecosystem.config.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = { - apps: [ - { - name: 'pm2-nuxt-typescript', - script: './node_modules/.bin/nuxt', - args: 'start', - instances: 2, - exec_mode: 'cluster', - wait_ready: true, - listen_timeout: 5000 - } - ] -} diff --git a/examples/pm2-typescript/nuxt.config.ts b/examples/pm2-typescript/nuxt.config.ts deleted file mode 100644 index 15c9d3fed6..0000000000 --- a/examples/pm2-typescript/nuxt.config.ts +++ /dev/null @@ -1,13 +0,0 @@ -import NuxtConfiguration from '@nuxt/config' - -const config: NuxtConfiguration = { - hooks: { - listen () { - if (process.send) { - process.send('ready') - } - } - } -} - -export default config diff --git a/examples/pm2-typescript/package.json b/examples/pm2-typescript/package.json deleted file mode 100644 index 12c6eb525e..0000000000 --- a/examples/pm2-typescript/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "version": "1.0.0", - "private": true, - "dependencies": { - "nuxt": "latest", - "ts-node": "^8.1.0", - "vue-property-decorator": "^7.3.0" - }, - "scripts": { - "dev": "nuxt", - "build": "nuxt build", - "start": "nuxt start", - "generate": "nuxt generate" - }, - "devDependencies": { - "@nuxt/typescript": "latest" - } -} diff --git a/examples/pm2-typescript/pages/index.vue b/examples/pm2-typescript/pages/index.vue deleted file mode 100644 index 0f6dbe1e07..0000000000 --- a/examples/pm2-typescript/pages/index.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/examples/pm2-typescript/tsconfig.json b/examples/pm2-typescript/tsconfig.json deleted file mode 100644 index 13a3531e48..0000000000 --- a/examples/pm2-typescript/tsconfig.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "module": "esnext", - "moduleResolution": "node", - "lib": [ - "esnext", - "esnext.asynciterable", - "dom" - ], - "esModuleInterop": true, - "experimentalDecorators": true, - "allowJs": true, - "sourceMap": true, - "strict": true, - "noImplicitAny": false, - "noEmit": true, - "baseUrl": ".", - "paths": { - "~/*": [ - "./*" - ], - "@/*": [ - "./*" - ] - }, - "types": [ - "@types/node", - "@nuxt/vue-app" - ] - } -} diff --git a/examples/typescript-eslint/.eslintrc.js b/examples/typescript-eslint/.eslintrc.js deleted file mode 100644 index f4d35c167d..0000000000 --- a/examples/typescript-eslint/.eslintrc.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - plugins: ['@typescript-eslint'], - parserOptions: { - parser: '@typescript-eslint/parser' - }, - extends: [ - '@nuxtjs' - ] -} diff --git a/examples/typescript-eslint/.gitignore b/examples/typescript-eslint/.gitignore deleted file mode 100644 index 283de77f4b..0000000000 --- a/examples/typescript-eslint/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -# Dependencies -node_modules - -# Logs -*.log* - -# IDE -.idea -.vscode - -# Nuxt build -.nuxt - -# Nuxt generate -dist diff --git a/examples/typescript-eslint/README.md b/examples/typescript-eslint/README.md deleted file mode 100644 index b30cfcfcf5..0000000000 --- a/examples/typescript-eslint/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# Nuxt with TypeScript & ESLint example - -Use `yarn lint` or `npm run lint` to lint your TypeScript project ! - -## Why ESLint and not TSLint ? - -See https://eslint.org/blog/2019/01/future-typescript-eslint - -## - -## VSCode settings - -If you're using VSCode, we recommend using these settings : - -```json -"eslint.autoFixOnSave": true, -"eslint.validate": [ - { - "language": "javascript", - "autoFix": true - }, - { - "language": "typescript", - "autoFix": true - }, - { - "language": "vue", - "autoFix": true - } -] -``` - -It will lint your `.js`, `.ts` & `.vue` files whenever you're saving them. diff --git a/examples/typescript-eslint/nuxt.config.ts b/examples/typescript-eslint/nuxt.config.ts deleted file mode 100644 index c50e0b5088..0000000000 --- a/examples/typescript-eslint/nuxt.config.ts +++ /dev/null @@ -1,5 +0,0 @@ -import NuxtConfiguration from '@nuxt/config' - -const config: NuxtConfiguration = {} - -export default config diff --git a/examples/typescript-eslint/package.json b/examples/typescript-eslint/package.json deleted file mode 100644 index 5c08fb2a63..0000000000 --- a/examples/typescript-eslint/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "version": "1.0.0", - "private": true, - "dependencies": { - "nuxt": "latest", - "ts-node": "^8.1.0", - "vue-property-decorator": "^7.3.0" - }, - "scripts": { - "dev": "nuxt", - "build": "nuxt build", - "start": "nuxt start", - "generate": "nuxt generate", - "lint": "eslint --ext .ts,.js,.vue --ignore-path .gitignore .", - "lint:fix": "yarn lint --fix", - "post-update": "yarn upgrade --latest" - }, - "devDependencies": { - "@nuxt/typescript": "latest", - "@nuxtjs/eslint-config": "latest", - "@typescript-eslint/eslint-plugin": "^1.4.2", - "eslint": "^5.14.1" - } -} diff --git a/examples/typescript-eslint/pages/index.vue b/examples/typescript-eslint/pages/index.vue deleted file mode 100644 index 730e10426b..0000000000 --- a/examples/typescript-eslint/pages/index.vue +++ /dev/null @@ -1,14 +0,0 @@ - - - diff --git a/examples/typescript-eslint/tsconfig.json b/examples/typescript-eslint/tsconfig.json deleted file mode 100644 index 13a3531e48..0000000000 --- a/examples/typescript-eslint/tsconfig.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "module": "esnext", - "moduleResolution": "node", - "lib": [ - "esnext", - "esnext.asynciterable", - "dom" - ], - "esModuleInterop": true, - "experimentalDecorators": true, - "allowJs": true, - "sourceMap": true, - "strict": true, - "noImplicitAny": false, - "noEmit": true, - "baseUrl": ".", - "paths": { - "~/*": [ - "./*" - ], - "@/*": [ - "./*" - ] - }, - "types": [ - "@types/node", - "@nuxt/vue-app" - ] - } -} diff --git a/examples/typescript-tsx/README.md b/examples/typescript-tsx/README.md deleted file mode 100644 index 79cf06ddb4..0000000000 --- a/examples/typescript-tsx/README.md +++ /dev/null @@ -1 +0,0 @@ -# Nuxt with [TSX](https://www.typescriptlang.org/docs/handbook/jsx.html) diff --git a/examples/typescript-tsx/components/HelloWorld/HelloWorld.tsx b/examples/typescript-tsx/components/HelloWorld/HelloWorld.tsx deleted file mode 100644 index ae3dc5c485..0000000000 --- a/examples/typescript-tsx/components/HelloWorld/HelloWorld.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import Vue from 'vue' -import styles from './styles.css' - -export default Vue.extend({ - beforeCreate () { - // Render Inline CSS on SSR - if ((styles as any).__inject__) { - (styles as any).__inject__(this.$ssrContext) - } - }, - render () { - return

Hello world!

- } -}) diff --git a/examples/typescript-tsx/components/HelloWorld/index.ts b/examples/typescript-tsx/components/HelloWorld/index.ts deleted file mode 100644 index 15483d21b0..0000000000 --- a/examples/typescript-tsx/components/HelloWorld/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import HelloWorld from './HelloWorld' - -export default HelloWorld diff --git a/examples/typescript-tsx/components/HelloWorld/styles.css b/examples/typescript-tsx/components/HelloWorld/styles.css deleted file mode 100644 index 18820dbb8d..0000000000 --- a/examples/typescript-tsx/components/HelloWorld/styles.css +++ /dev/null @@ -1,4 +0,0 @@ -.title { - font-style: italic; - color: green; -} diff --git a/examples/typescript-tsx/components/HelloWorld/styles.css.d.ts b/examples/typescript-tsx/components/HelloWorld/styles.css.d.ts deleted file mode 100644 index 59532069e2..0000000000 --- a/examples/typescript-tsx/components/HelloWorld/styles.css.d.ts +++ /dev/null @@ -1 +0,0 @@ -export const title: string; diff --git a/examples/typescript-tsx/nuxt.config.ts b/examples/typescript-tsx/nuxt.config.ts deleted file mode 100644 index fa51a857b4..0000000000 --- a/examples/typescript-tsx/nuxt.config.ts +++ /dev/null @@ -1,19 +0,0 @@ -import NuxtConfiguration from '@nuxt/config' - -const config: NuxtConfiguration = { - build: { - loaders: { - vueStyle: { - manualInject: true - }, - css: { - modules: { - localIdentName: '[local]_[hash:base64:5]' - }, - importLoaders: 1 - } - } - } -} - -export default config diff --git a/examples/typescript-tsx/package.json b/examples/typescript-tsx/package.json deleted file mode 100644 index 9bc4ed5618..0000000000 --- a/examples/typescript-tsx/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "typescript-tsx", - "private": true, - "version": "1.0.0", - "scripts": { - "dev": "nuxt", - "build": "nuxt build", - "start": "nuxt start", - "generate": "nuxt generate", - "post-update": "yarn upgrade --latest", - "watch:css": "tcm components -w" - }, - "dependencies": { - "nuxt": "latest", - "ts-node": "^8.1.0" - }, - "devDependencies": { - "@nuxt/typescript": "latest", - "typed-css-modules": "^0.3.7" - } -} diff --git a/examples/typescript-tsx/pages/index.tsx b/examples/typescript-tsx/pages/index.tsx deleted file mode 100644 index aa5ea4f55d..0000000000 --- a/examples/typescript-tsx/pages/index.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import Vue from 'vue' -import HelloWorld from '../components/HelloWorld' - -export default Vue.extend({ - name: 'Home', - render () { - return ( -
- -
- ) - } -}) diff --git a/examples/typescript-tsx/shims-tsx.d.ts b/examples/typescript-tsx/shims-tsx.d.ts deleted file mode 100644 index 64fc0a8a6d..0000000000 --- a/examples/typescript-tsx/shims-tsx.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import Vue, { VNode } from 'vue' - -declare global { - namespace JSX { - interface Element extends VNode {} - interface ElementClass extends Vue {} - interface IntrinsicElements { - [elem: string]: any - } - } -} diff --git a/examples/typescript-tsx/tsconfig.json b/examples/typescript-tsx/tsconfig.json deleted file mode 100644 index 42a8ff1d69..0000000000 --- a/examples/typescript-tsx/tsconfig.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "module": "esnext", - "moduleResolution": "node", - "lib": [ - "esnext", - "esnext.asynciterable", - "dom" - ], - "esModuleInterop": true, - "experimentalDecorators": true, - "allowJs": true, - "jsx": "preserve", - "sourceMap": true, - "strict": true, - "noImplicitAny": false, - "noImplicitThis": true, - "noEmit": true, - "baseUrl": ".", - "paths": { - "~/*": [ - "./*" - ], - "@/*": [ - "./*" - ] - }, - "types": [ - "@types/node", - "@nuxt/vue-app" - ] - } -} diff --git a/examples/typescript-vuex/README.md b/examples/typescript-vuex/README.md deleted file mode 100644 index aab5baa867..0000000000 --- a/examples/typescript-vuex/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Nuxt with TypeScript and Vuex - -https://nuxtjs.org/examples/typescript-vuex diff --git a/examples/typescript-vuex/assets/css/main.css b/examples/typescript-vuex/assets/css/main.css deleted file mode 100644 index 204e350e04..0000000000 --- a/examples/typescript-vuex/assets/css/main.css +++ /dev/null @@ -1,4 +0,0 @@ -.container { - background-color: #2a272e; - background-image: url("data:image/svg+xml,%3Csvg width='360' height='360' viewBox='0 0 360 360' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.4' fill-rule='evenodd'%3E%3Cpath d='M0 52.702l8.38-4.838C7.486 45.41 7 42.762 7 40c0-2.762.487-5.41 1.38-7.864L0 27.298v25.404zm0-39.16C6.5 6.176 15.673 1.222 26 .198v17.15c-5.433.95-10.21 3.81-13.616 7.863L0 18.06v-4.518zm0 52.916c6.5 7.366 15.673 12.32 26 13.344v-17.15c-5.433-.95-10.21-3.81-13.616-7.863L0 61.94v4.518zm34 13.344c11.713-1.162 21.94-7.378 28.47-16.437L47.616 54.79C44.21 58.84 39.433 61.7 34 62.652v17.15zm32.476-23.36C68.74 51.424 70 45.86 70 40c0-5.86-1.26-11.425-3.524-16.44L51.62 32.135C52.514 34.59 53 37.238 53 40c0 2.762-.487 5.41-1.38 7.864l14.856 8.577zM62.47 16.634C55.94 7.575 45.713 1.36 34 .198v17.15c5.433.95 10.21 3.81 13.616 7.863l14.854-8.575zM0 50.392l5.976-3.45C5.34 44.738 5 42.41 5 40c0-2.41.34-4.738.976-6.942L0 29.608v20.784zm.503-34.35C6.275 8.942 14.56 3.97 24 2.472v13.253c-4.656 1.147-8.8 3.598-12.018 6.944L.502 16.04zm0 47.916C6.275 71.058 14.56 76.03 24 77.528V64.276c-4.656-1.147-8.8-3.598-12.018-6.944L.502 63.96zM36 77.528c9.44-1.497 17.725-6.47 23.497-13.57l-11.48-6.627C44.8 60.678 40.658 63.13 36 64.276V77.53zm29.505-23.957C67.117 49.357 68 44.78 68 40c0-4.78-.883-9.356-2.495-13.57l-11.48 6.628C54.658 35.262 55 37.59 55 40c0 2.41-.34 4.738-.976 6.942l11.48 6.63zm-6.008-37.528C53.725 8.942 45.44 3.97 36 2.472v13.253c4.656 1.147 8.8 3.598 12.018 6.944l11.48-6.628zM0 85.016l4.624-4.265c2.316 1.447 4.764 2.7 7.323 3.74l-1.2 10.24 2.66.864 5.05-8.99c2.627.648 5.34 1.08 8.12 1.276L28.6 98h2.8l2.024-10.12c2.78-.196 5.492-.628 8.12-1.277l5.048 8.99 2.662-.864-1.2-10.24c2.558-1.04 5.006-2.293 7.322-3.74l7.583 6.996 2.264-1.646-4.31-9.378c2.096-1.768 4.04-3.712 5.808-5.81l9.378 4.312 1.646-2.265-6.995-7.584c1.447-2.316 2.7-4.764 3.74-7.323l10.24 1.2.864-2.66-8.99-5.05c.648-2.627 1.08-5.34 1.276-8.12L88 41.4v-2.8l-10.12-2.024c-.196-2.78-.628-5.492-1.277-8.12l8.99-5.048-.864-2.662-10.24 1.2c-1.04-2.558-2.293-5.006-3.74-7.322l6.996-7.583L76.1 4.777l-9.378 4.31c-1.768-2.096-3.712-4.04-5.81-5.808L62.42 0H0v85.016zm0 2.67l4.84-4.467c1.607.935 3.27 1.785 4.983 2.542L8.606 96.136l5.706 1.854 5.115-9.11c1.806.39 3.65.68 5.523.868L27 100h6l2.05-10.252c1.874-.188 3.717-.48 5.523-.868l5.115 9.11 5.706-1.854-1.217-10.374c1.713-.757 3.376-1.607 4.982-2.543l7.68 7.084 4.854-3.526-4.368-9.503c1.388-1.242 2.707-2.56 3.95-3.95l9.502 4.37 3.526-4.855-7.085-7.68c.935-1.607 1.785-3.27 2.542-4.983l10.374 1.217 1.854-5.706-9.11-5.115c.39-1.806.68-3.65.868-5.523L90 43v-6l-10.252-2.05c-.188-1.874-.48-3.717-.868-5.523l9.11-5.115-1.854-5.706-10.374 1.217c-.757-1.713-1.607-3.376-2.543-4.982l7.084-7.68-3.526-4.854-9.503 4.368c-1.242-1.388-2.56-2.707-3.95-3.95L64.58 0H0v87.685zM30 54c7.732 0 14-6.268 14-14s-6.268-14-14-14-14 6.268-14 14 6.268 14 14 14zm0-2c6.627 0 12-5.373 12-12s-5.373-12-12-12-12 5.373-12 12 5.373 12 12 12zm0-2c5.523 0 10-4.477 10-10s-4.477-10-10-10-10 4.477-10 10 4.477 10 10 10zm0-2c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8zM122.67 92.05l-.503-6.05h-2.334l-.504 6.05c-2.185.128-4.3.506-6.323 1.107l-2.54-5.506-2.192.8 1.594 5.85c-1.983.86-3.845 1.94-5.557 3.214l-4.274-4.31-1.788 1.5 3.502 4.96c-1.555 1.47-2.94 3.12-4.127 4.913l-5.49-2.587-1.165 2.02 4.982 3.458c-.95 1.898-1.693 3.92-2.196 6.032l-6.04-.553-.404 2.298 5.868 1.546c-.12 1.054-.182 2.125-.182 3.21s.062 2.156.182 3.21l-5.868 1.545.405 2.298 6.038-.553c.503 2.113 1.245 4.134 2.196 6.032l-4.982 3.458 1.166 2.02 5.49-2.587c1.185 1.793 2.57 3.442 4.126 4.914l-3.502 4.96 1.787 1.498 4.273-4.31c1.712 1.274 3.574 2.356 5.556 3.215l-1.595 5.85 2.193.8 2.54-5.507c2.02.6 4.137.98 6.32 1.108l.505 6.05h2.334l.504-6.05c2.185-.128 4.3-.506 6.323-1.107l2.54 5.506 2.192-.8-1.594-5.85c1.983-.86 3.845-1.94 5.557-3.214l4.274 4.31 1.788-1.5-3.502-4.96c1.555-1.47 2.94-3.12 4.127-4.913l5.49 2.587 1.165-2.02-4.982-3.458c.95-1.898 1.693-3.92 2.196-6.032l6.04.553.404-2.298-5.868-1.546c.12-1.054.182-2.125.182-3.21s-.062-2.156-.182-3.21l5.868-1.545-.405-2.298-6.038.553c-.503-2.113-1.245-4.134-2.196-6.032l4.982-3.458-1.166-2.02-5.49 2.587c-1.185-1.793-2.57-3.442-4.126-4.914l3.502-4.96-1.787-1.498-4.273 4.31c-1.712-1.274-3.574-2.356-5.556-3.215l1.595-5.85-2.193-.8-2.54 5.507c-2.02-.6-4.137-.98-6.32-1.108zm-15.198 1.122c-1.02.508-2.004 1.072-2.953 1.687l-4.347-4.378-4.626 3.88 3.532 5.007c-.79.828-1.534 1.7-2.225 2.614l-5.522-2.6-3.02 5.23 4.974 3.457c-.46 1.055-.86 2.14-1.2 3.253l-6.016-.548-1.047 5.947 5.833 1.54c-.033.576-.05 1.155-.05 1.738s.017 1.162.05 1.737l-5.833 1.54 1.048 5.948 6.018-.548c.338 1.112.74 2.198 1.2 3.252l-4.975 3.455 3.02 5.23 5.522-2.6c.69.914 1.434 1.787 2.224 2.616l-3.533 5.007 4.626 3.88 4.346-4.376c.948.616 1.933 1.18 2.952 1.688l-1.622 5.968 5.675 2.066 2.606-5.642c1.09.252 2.2.445 3.33.576l.52 6.204h6.04l.52-6.204c1.13-.13 2.24-.324 3.33-.576l2.605 5.642 5.675-2.066-1.622-5.968c1.02-.508 2.004-1.072 2.953-1.687l4.347 4.378 4.626-3.88-3.532-5.007c.79-.828 1.534-1.7 2.225-2.614l5.522 2.6 3.02-5.23-4.974-3.457c.46-1.055.86-2.14 1.2-3.253l6.016.548 1.047-5.947-5.833-1.54c.033-.576.05-1.155.05-1.738s-.017-1.162-.05-1.737l5.833-1.54-1.048-5.948-6.018.548c-.338-1.112-.74-2.198-1.2-3.252l4.975-3.455-3.02-5.23-5.522 2.6c-.69-.914-1.434-1.787-2.224-2.616l3.533-5.007-4.626-3.88-4.346 4.376c-.948-.616-1.933-1.18-2.952-1.688l1.622-5.968-5.675-2.066-2.606 5.642c-1.09-.252-2.2-.445-3.33-.576L124.02 84h-6.04l-.52 6.204c-1.13.13-2.24.324-3.33.576l-2.605-5.642-5.675 2.066 1.622 5.968zM121 128c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8zm0-2c3.314 0 6-2.686 6-6s-2.686-6-6-6-6 2.686-6 6 2.686 6 6 6zm0-18c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm8.485 3.515c1.953 1.952 5.12 1.952 7.07 0 1.954-1.953 1.954-5.12 0-7.07-1.95-1.954-5.117-1.954-7.07 0-1.952 1.95-1.952 5.117 0 7.07zM133 120c0 2.76 2.24 5 5 5s5-2.24 5-5-2.24-5-5-5-5 2.24-5 5zm-3.515 8.485c-1.952 1.953-1.952 5.12 0 7.07 1.953 1.954 5.12 1.954 7.07 0 1.954-1.95 1.954-5.117 0-7.07-1.95-1.952-5.117-1.952-7.07 0zM121 132c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm-8.485-3.515c-1.953-1.952-5.12-1.952-7.07 0-1.954 1.953-1.954 5.12 0 7.07 1.95 1.954 5.117 1.954 7.07 0 1.952-1.95 1.952-5.117 0-7.07zM109 120c0-2.76-2.24-5-5-5s-5 2.24-5 5 2.24 5 5 5 5-2.24 5-5zm3.515-8.485c1.952-1.953 1.952-5.12 0-7.07-1.953-1.954-5.12-1.954-7.07 0-1.954 1.95-1.954 5.117 0 7.07 1.95 1.952 5.117 1.952 7.07 0zM121 106c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm9.9 4.1c1.17 1.172 3.07 1.172 4.242 0 1.172-1.17 1.172-3.07 0-4.242-1.17-1.172-3.07-1.172-4.243 0-1.172 1.17-1.172 3.07 0 4.243zm4.1 9.9c0 1.657 1.343 3 3 3s3-1.343 3-3-1.343-3-3-3-3 1.343-3 3zm-4.1 9.9c-1.172 1.17-1.172 3.07 0 4.242 1.17 1.172 3.07 1.172 4.242 0 1.172-1.17 1.172-3.07 0-4.243-1.17-1.172-3.07-1.172-4.243 0zM121 134c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3-1.343-3-3-3zm-9.9-4.1c-1.17-1.172-3.07-1.172-4.242 0-1.172 1.17-1.172 3.07 0 4.242 1.17 1.172 3.07 1.172 4.243 0 1.172-1.17 1.172-3.07 0-4.243zM107 120c0-1.657-1.343-3-3-3s-3 1.343-3 3 1.343 3 3 3 3-1.343 3-3zm4.1-9.9c1.172-1.17 1.172-3.07 0-4.242-1.17-1.172-3.07-1.172-4.242 0-1.172 1.17-1.172 3.07 0 4.243 1.17 1.172 3.07 1.172 4.243 0zM218.64 113.197c-4.648 2.87-8.574 6.795-11.443 11.442l5.2 3c2.338-3.738 5.505-6.905 9.244-9.243l-3-5.2zm1.73-1c4.672-2.53 9.984-4.025 15.63-4.183v6.003c-4.554.154-8.84 1.358-12.628 3.378l-3.002-5.2zm-14.174 14.173c-2.528 4.672-4.024 9.984-4.182 15.63h6.003c.154-4.554 1.358-8.84 3.378-12.628l-5.2-3.002zM202.014 144c.158 5.646 1.654 10.958 4.182 15.63l5.2-3.002c-2.02-3.787-3.225-8.074-3.38-12.628h-6.002zm5.183 17.36c2.87 4.648 6.795 8.574 11.442 11.443l3-5.2c-3.738-2.338-6.905-5.505-9.243-9.244l-5.2 3zm13.173 12.444c4.672 2.528 9.984 4.024 15.63 4.182v-6.003c-4.554-.154-8.84-1.358-12.628-3.378l-3.002 5.2zm17.63 4.182c5.646-.158 10.958-1.654 15.63-4.182l-3.002-5.2c-3.787 2.02-8.074 3.225-12.628 3.38v6.002zm17.36-5.183c4.648-2.87 8.574-6.795 11.443-11.442l-5.2-3c-2.338 3.738-5.505 6.905-9.244 9.243l3 5.2zm12.444-13.173c2.528-4.672 4.024-9.984 4.182-15.63h-6.003c-.154 4.554-1.358 8.84-3.378 12.628l5.2 3.002zm4.182-17.63c-.158-5.646-1.654-10.958-4.182-15.63l-5.2 3.002c2.02 3.787 3.225 8.074 3.38 12.628h6.002zm-5.183-17.36c-2.87-4.648-6.795-8.574-11.442-11.443l-3 5.2c3.738 2.338 6.905 5.505 9.243 9.244l5.2-3zM238 108.013c5.646.158 10.958 1.654 15.63 4.182l-3.002 5.2c-3.787-2.02-8.074-3.225-12.628-3.38v-6.002zm-20.03 8.023c-3.074 2.173-5.76 4.86-7.933 7.932l1.74 1.003c1.987-2.775 4.42-5.21 7.196-7.196l-1.004-1.74zm5.192-3.004c3.348-1.55 6.998-2.552 10.838-2.898v2.008c-3.477.334-6.787 1.243-9.833 2.63l-1.005-1.74zm-16.13 16.13c-1.548 3.347-2.55 6.997-2.897 10.837h2.008c.334-3.477 1.243-6.787 2.63-9.833l-1.74-1.005zM204.136 146c.346 3.84 1.35 7.49 2.898 10.838l1.74-1.005c-1.387-3.046-2.296-6.356-2.63-9.833h-2.008zm5.902 16.03c2.173 3.074 4.86 5.76 7.932 7.933l1.003-1.74c-2.775-1.987-5.21-4.42-7.196-7.196l-1.74 1.004zm13.125 10.937c3.348 1.55 6.998 2.552 10.838 2.898v-2.008c-3.477-.334-6.787-1.243-9.833-2.63l-1.005 1.74zM240 175.865c3.84-.346 7.49-1.35 10.838-2.898l-1.005-1.74c-3.046 1.387-6.356 2.296-9.833 2.63v2.008zm16.03-5.902c3.074-2.173 5.76-4.86 7.933-7.932l-1.74-1.003c-1.987 2.775-4.42 5.21-7.196 7.196l1.004 1.74zm10.937-13.125c1.55-3.348 2.552-6.998 2.898-10.838h-2.008c-.334 3.477-1.243 6.787-2.63 9.833l1.74 1.005zM269.865 140c-.346-3.84-1.35-7.49-2.898-10.838l-1.74 1.005c1.387 3.046 2.296 6.356 2.63 9.833h2.008zm-5.902-16.03c-2.173-3.074-4.86-5.76-7.932-7.933l-1.003 1.74c2.775 1.987 5.21 4.42 7.196 7.196l1.74-1.004zm-13.125-10.937c-3.348-1.55-6.998-2.552-10.838-2.898v2.008c3.477.334 6.787 1.243 9.833 2.63l1.005-1.74zm-10.32-9.88L240 99l-1-4h-4l-1 4-.52 4.153c-.872.076-1.737.18-2.593.31l-1.51-3.91-1.94-3.638-3.88.968-.003 4.123.5 4.136c-.83.283-1.645.592-2.448.927l-2.414-3.433-2.76-3.063-3.533 1.878.994 4 1.483 3.89c-.733.472-1.45.968-2.15 1.485l-3.187-2.758-3.42-2.305-2.972 2.677 1.933 3.642 2.378 3.41c-.61.643-1.197 1.306-1.763 1.988l-3.678-1.945-3.85-1.475-2.294 3.276 2.703 3.114 3.12 2.82c-.43.757-.837 1.53-1.217 2.315l-4.043-.998-4.092-.5-1.434 3.734 3.377 2.367 3.697 1.977c-.234.836-.443 1.683-.623 2.54l-4.173.01-4.092.504-.488 3.97 3.85 1.48 4.064 1.024c-.013.434-.02.87-.02 1.306 0 .437.007.872.02 1.306l-4.064 1.023-3.85 1.48.49 3.97 4.09.504 4.175.01c.18.856.39 1.703.624 2.54l-3.697 1.975-3.376 2.366 1.435 3.735 4.092-.5 4.042-.997c.38.786.785 1.558 1.215 2.314l-3.12 2.82-2.702 3.115 2.294 3.276 3.85-1.475 3.678-1.945c.566.682 1.154 1.345 1.763 1.988l-2.377 3.41-1.932 3.642 2.972 2.677 3.42-2.304 3.187-2.757c.7.517 1.417 1.013 2.15 1.485l-1.483 3.89-.995 4 3.53 1.878 2.762-3.063 2.414-3.432c.803.336 1.62.645 2.447.928l-.5 4.136.004 4.123 3.88.968 1.94-3.64 1.51-3.91c.856.132 1.72.236 2.594.312L234 187l1 4h4l1-4 .52-4.153c.872-.076 1.737-.18 2.593-.31l1.51 3.91 1.94 3.638 3.88-.968.003-4.123-.5-4.136c.83-.283 1.645-.592 2.448-.927l2.414 3.433 2.76 3.063 3.533-1.878-.994-4-1.483-3.89c.733-.472 1.45-.968 2.15-1.485l3.187 2.758 3.42 2.305 2.972-2.677-1.933-3.642-2.378-3.41c.61-.643 1.197-1.306 1.763-1.988l3.678 1.945 3.85 1.475 2.294-3.276-2.703-3.114-3.12-2.82c.43-.757.837-1.53 1.217-2.315l4.043.998 4.092.5 1.434-3.734-3.377-2.367-3.697-1.977c.234-.836.443-1.683.623-2.54l4.173-.01 4.092-.504.488-3.97-3.85-1.48-4.064-1.024c.013-.434.02-.87.02-1.306 0-.437-.007-.872-.02-1.306l4.064-1.023 3.85-1.48-.49-3.97-4.09-.504-4.175-.01c-.18-.856-.39-1.703-.624-2.54l3.697-1.975 3.376-2.366-1.435-3.735-4.092.5-4.042.997c-.38-.786-.785-1.558-1.215-2.314l3.12-2.82 2.702-3.115-2.294-3.276-3.85 1.475-3.678 1.945c-.566-.682-1.154-1.345-1.763-1.988l2.377-3.41 1.932-3.642-2.972-2.677-3.42 2.304-3.187 2.757c-.7-.517-1.417-1.013-2.15-1.485l1.483-3.89.995-4-3.53-1.878-2.762 3.063-2.414 3.432c-.803-.336-1.62-.645-2.447-.928l.5-4.136-.004-4.123-3.88-.968-1.94 3.64-1.51 3.91c-.856-.132-1.72-.236-2.594-.312zm-14.3 3.398c-1.825.54-3.594 1.213-5.294 2.008l-3.503-4.98-1.38-1.53-.882.468.497 2 2.163 5.674c-1.634.957-3.19 2.033-4.656 3.216l-4.614-3.994-1.71-1.15-.743.668.966 1.82 3.473 4.982c-1.367 1.328-2.635 2.757-3.79 4.277l-5.37-2.84-1.924-.738-.575.82 1.352 1.556 4.52 4.088c-.996 1.595-1.877 3.27-2.632 5.012l-5.893-1.455-2.046-.25-.36.933 1.69 1.184 5.366 2.868c-.582 1.78-1.035 3.615-1.35 5.5l-6.08.012-2.045.252-.122.993 1.924.74 5.904 1.486c-.07.935-.104 1.878-.104 2.83 0 .952.035 1.895.104 2.83l-5.905 1.485-1.925.74.122.993 2.046.252 6.08.013c.314 1.884.767 3.72 1.35 5.5l-5.368 2.867-1.688 1.184.36.933 2.045-.25 5.893-1.455c.755 1.742 1.636 3.417 2.632 5.012l-4.52 4.088-1.352 1.557.574.818 1.924-.737 5.368-2.84c1.156 1.52 2.424 2.95 3.79 4.278l-3.47 4.98-.967 1.822.743.67 1.71-1.152 4.614-3.994c1.466 1.183 3.022 2.26 4.656 3.216l-2.163 5.673-.497 2 .882.47 1.38-1.53 3.504-4.98c1.7.794 3.47 1.467 5.295 2.006l-.728 6.028v2.06l.972.243.97-1.82 2.192-5.675c1.83.36 3.706.588 5.62.675L236 187l.5 2h1l.5-2 .755-6.04c1.913-.087 3.79-.315 5.62-.675l2.192 5.676.97 1.82.97-.24v-2.062l-.726-6.03c1.827-.538 3.596-1.21 5.296-2.006l3.503 4.98 1.38 1.53.882-.468-.497-2-2.163-5.674c1.634-.957 3.19-2.033 4.656-3.216l4.614 3.994 1.71 1.15.743-.668-.966-1.82-3.473-4.982c1.367-1.328 2.635-2.757 3.79-4.277l5.37 2.84 1.924.738.575-.82-1.352-1.556-4.52-4.088c.996-1.595 1.877-3.27 2.632-5.012l5.893 1.455 2.046.25.36-.933-1.69-1.184-5.366-2.868c.582-1.78 1.035-3.615 1.35-5.5l6.08-.012 2.045-.252.122-.993-1.924-.74-5.904-1.486c.07-.935.104-1.878.104-2.83 0-.952-.035-1.895-.104-2.83l5.905-1.485 1.925-.74-.122-.993-2.046-.252-6.08-.013c-.314-1.884-.767-3.72-1.35-5.5l5.368-2.867 1.688-1.184-.36-.933-2.045.25-5.893 1.455c-.755-1.742-1.636-3.417-2.632-5.012l4.52-4.088 1.352-1.557-.574-.818-1.924.737-5.368 2.84c-1.156-1.52-2.424-2.95-3.79-4.278l3.47-4.98.967-1.822-.743-.67-1.71 1.152-4.614 3.994c-1.466-1.183-3.022-2.26-4.656-3.216l2.163-5.673.497-2-.882-.47-1.38 1.53-3.504 4.98c-1.7-.794-3.47-1.467-5.295-2.006l.728-6.028v-2.06l-.972-.243-.97 1.82-2.192 5.675c-1.83-.36-3.706-.588-5.62-.675L238 99l-.5-2h-1l-.5 2-.755 6.04c-1.913.087-3.79.315-5.62.675l-2.192-5.676-.97-1.82-.97.24v2.062l.726 6.03zM237 156c7.18 0 13-5.82 13-13s-5.82-13-13-13-13 5.82-13 13 5.82 13 13 13zm0-2c6.075 0 11-4.925 11-11s-4.925-11-11-11-11 4.925-11 11 4.925 11 11 11zM137.153 27c1.4 13.62 12.227 24.447 25.847 25.847V38.7c-5.877-1.193-10.507-5.823-11.7-11.7h-14.147zm12.563-27c-6.896 4.688-11.665 12.27-12.563 21H151.3c1.193-5.877 5.823-10.507 11.7-11.7V0h-13.284zM169 52.847c13.62-1.4 24.447-12.227 25.847-25.847H180.7c-1.193 5.877-5.823 10.507-11.7 11.7v14.147zM182.284 0c6.896 4.688 11.665 12.27 12.563 21H180.7c-1.193-5.877-5.823-10.507-11.7-11.7V0h13.284zm-42.822 29c2.04 10.903 10.635 19.497 21.538 21.538V40.253c-5.368-1.65-9.603-5.885-11.253-11.253h-10.285zm14.156-29c-7.263 3.755-12.604 10.71-14.156 19h10.285c1.65-5.368 5.885-9.603 11.253-11.253V0h-7.382zM171 50.538c10.903-2.04 19.497-10.635 21.538-21.538h-10.285c-1.65 5.368-5.885 9.603-11.253 11.253v10.285zM178.382 0c7.263 3.755 12.604 10.71 14.156 19h-10.285c-1.65-5.368-5.885-9.603-11.253-11.253V0h7.382zm-40.84 0l.737 1.03c-.574.69-1.123 1.405-1.644 2.138l-7.74-2.9-2 3.464 6.376 5.25c-.374.816-.72 1.648-1.034 2.495l-8.22-.797-1.036 3.864 7.522 3.422c-.15.88-.266 1.773-.35 2.675L122 22v4l8.155 1.36c.083.9.2 1.793.35 2.674l-7.523 3.422 1.035 3.864 8.22-.797c.315.847.66 1.68 1.035 2.495l-6.377 5.25 2 3.464 7.74-2.9c.522.733 1.07 1.447 1.644 2.138l-4.807 6.728 2.83 2.83 6.727-4.807c.69.574 1.405 1.123 2.138 1.644l-2.9 7.74 3.464 2 5.25-6.376c.816.374 1.648.72 2.495 1.034l-.797 8.22 3.864 1.036 3.422-7.522c.88.15 1.773.266 2.675.35L164 68h4l1.36-8.155c.9-.083 1.793-.2 2.674-.35l3.422 7.523 3.864-1.035-.797-8.22c.847-.315 1.68-.66 2.495-1.035l5.25 6.377 3.464-2-2.9-7.74c.733-.522 1.447-1.07 2.138-1.644l6.728 4.807 2.83-2.83-4.807-6.727c.574-.69 1.123-1.405 1.644-2.138l7.74 2.9 2-3.464-6.376-5.25c.374-.816.72-1.648 1.034-2.495l8.22.797 1.036-3.864-7.522-3.422c.15-.88.266-1.773.35-2.675L210 26v-4l-8.155-1.36c-.083-.9-.2-1.793-.35-2.674l7.523-3.422-1.035-3.864-8.22.797c-.315-.847-.66-1.68-1.035-2.495l6.377-5.25-2-3.464-7.74 2.9c-.522-.733-1.07-1.447-1.644-2.138l.737-1.03h-56.914zm2.426 0l.836 1.17c-1.242 1.37-2.373 2.84-3.38 4.4l-7.63-2.86-.334.58 6.288 5.175c-.842 1.637-1.555 3.35-2.126 5.128l-8.105-.785-.172.644 7.414 3.372c-.385 1.786-.63 3.624-.72 5.503l-8.04 1.34v.666l8.04 1.34c.09 1.88.335 3.717.72 5.503l-7.415 3.372.172.644 8.105-.785c.57 1.777 1.284 3.49 2.126 5.128l-6.288 5.176.334.58 7.63-2.86c1.007 1.56 2.138 3.03 3.38 4.4l-4.738 6.633.47.47 6.635-4.737c1.37 1.242 2.84 2.373 4.4 3.38l-2.86 7.63.58.334 5.175-6.288c1.637.842 3.35 1.555 5.128 2.126l-.785 8.105.644.172 3.372-7.414c1.786.385 3.624.63 5.503.72l1.34 8.04h.666l1.34-8.04c1.88-.09 3.717-.335 5.503-.72l3.372 7.415.644-.172-.785-8.105c1.777-.57 3.49-1.284 5.128-2.126l5.176 6.288.58-.334-2.86-7.63c1.56-1.007 3.03-2.138 4.4-3.38l6.633 4.738.47-.47-4.737-6.635c1.242-1.37 2.373-2.84 3.38-4.4l7.63 2.86.334-.58-6.288-5.175c.842-1.637 1.555-3.35 2.126-5.128l8.105.785.172-.644-7.414-3.372c.385-1.786.63-3.624.72-5.503l8.04-1.34v-.666l-8.04-1.34c-.09-1.88-.335-3.717-.72-5.503l7.415-3.372-.172-.644-8.105.785c-.57-1.777-1.284-3.49-2.126-5.128l6.288-5.176-.334-.58-7.63 2.86c-1.007-1.56-2.138-3.03-3.38-4.4l.836-1.17h-52.064zM166 34c5.523 0 10-4.477 10-10s-4.477-10-10-10-10 4.477-10 10 4.477 10 10 10zm0-2c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8zM126.49 208.15c-.32 1.566-.49 3.19-.49 4.85 0 1.66.17 3.284.49 4.85l-10.667 7.954 6 10.392 12.227-5.263c2.412 2.147 5.26 3.815 8.396 4.854L144 249h12l1.554-13.213c3.136-1.04 5.984-2.707 8.396-4.854l12.227 5.263 6-10.392-10.667-7.954c.32-1.566.49-3.19.49-4.85 0-1.66-.17-3.284-.49-4.85l10.667-7.954-6-10.392-12.227 5.263c-2.412-2.147-5.26-3.815-8.396-4.854L156 177h-12l-1.554 13.213c-3.136 1.04-5.984 2.707-8.396 4.854l-12.227-5.263-6 10.392 10.667 7.954zm29.246-16.395l-1.5-12.755h-8.47l-1.502 12.755c-3.755 1.012-7.113 2.992-9.79 5.658l-11.8-5.08-4.237 7.335 10.297 7.677c-.48 1.805-.734 3.7-.734 5.655s.255 3.85.734 5.655l-10.297 7.677 4.236 7.336 11.802-5.08c2.676 2.665 6.034 4.645 9.79 5.657l1.5 12.755h8.47l1.5-12.755c3.756-1.012 7.114-2.992 9.79-5.658l11.802 5.08 4.236-7.335-10.297-7.677c.48-1.805.734-3.7.734-5.655s-.255-3.85-.734-5.655l10.297-7.677-4.236-7.336-11.802 5.08c-2.676-2.665-6.034-4.645-9.79-5.657zM150 225c6.627 0 12-5.373 12-12s-5.373-12-12-12-12 5.373-12 12 5.373 12 12 12zm0-2c5.523 0 10-4.477 10-10s-4.477-10-10-10-10 4.477-10 10 4.477 10 10 10zM136.115 288.14c-1.552-.73-3.286-1.14-5.115-1.14-1.83 0-3.563.41-5.115 1.14l3.013 5.218c.654-.244 1.362-.377 2.102-.377.74 0 1.448.134 2.102.378l3.013-5.217zm1.73 1.003c2.86 1.99 4.81 5.19 5.114 8.857h-6.024c-.243-1.458-1.01-2.738-2.102-3.64l3.012-5.217zm-13.69 0c-2.86 1.99-4.81 5.19-5.114 8.857h6.024c.243-1.458 1.01-2.738 2.102-3.64l-3.012-5.217zM119.04 300c.304 3.668 2.256 6.868 5.114 8.857l3.012-5.217c-1.09-.902-1.86-2.182-2.102-3.64h-6.023zm6.845 9.86c1.552.73 3.286 1.14 5.115 1.14 1.83 0 3.563-.41 5.115-1.14l-3.013-5.218c-.654.244-1.362.377-2.102.377-.74 0-1.448-.134-2.102-.378l-3.013 5.217zm11.96-1.003c2.86-1.99 4.81-5.19 5.114-8.857h-6.024c-.243 1.458-1.01 2.738-2.102 3.64l3.012 5.217zm-4.672-19.62c-.7-.155-1.427-.237-2.173-.237s-1.473.082-2.173.237l1.052 1.822c.365-.052.74-.08 1.12-.08.38 0 .755.028 1.12.08l1.053-1.823zm5.195 3.002c.98 1.065 1.73 2.345 2.174 3.76h-2.103c-.284-.702-.664-1.354-1.123-1.94l1.05-1.82zm-14.736 0c-.98 1.065-1.73 2.345-2.174 3.76h2.103c.284-.702.664-1.354 1.123-1.94l-1.05-1.82zm-2.174 9.76c.444 1.415 1.195 2.695 2.174 3.76l1.05-1.82c-.458-.586-.838-1.238-1.12-1.94h-2.104zm7.37 6.763c.7.155 1.426.237 2.172.237.746 0 1.473-.082 2.173-.237l-1.052-1.822c-.365.052-.74.08-1.12.08-.38 0-.755-.028-1.12-.08l-1.053 1.823zm9.54-3.002c.98-1.065 1.73-2.345 2.174-3.76h-2.103c-.284.702-.664 1.354-1.123 1.94l1.05 1.82zm15.164-15.043c-.224-.61-.472-1.207-.743-1.792l2.96-3.06-1-1.73-4.134 1.034c-.373-.53-.766-1.04-1.18-1.536l2.07-3.726-1.414-1.414-3.726 2.07c-.495-.414-1.007-.807-1.535-1.18l1.036-4.133-1.732-1-3.06 2.96c-.584-.27-1.182-.518-1.79-.742l-.07-4.255-1.933-.518-2.19 3.652c-.63-.108-1.27-.192-1.92-.25L132 271h-2l-1.17 4.097c-.65.058-1.29.142-1.92.25l-2.19-3.652-1.933.518-.07 4.255c-.61.224-1.207.472-1.792.743l-3.06-2.96-1.73 1 1.034 4.134c-.53.373-1.04.766-1.536 1.18l-3.726-2.07-1.414 1.414 2.07 3.726c-.414.495-.807 1.007-1.18 1.535l-4.133-1.036-1 1.732 2.96 3.06c-.27.584-.518 1.182-.742 1.79l-4.255.07-.518 1.933 3.652 2.19c-.108.63-.192 1.27-.25 1.92L103 298v2l4.097 1.17c.058.65.142 1.29.25 1.92l-3.652 2.19.518 1.933 4.255.07c.224.61.472 1.207.743 1.792l-2.96 3.06 1 1.73 4.134-1.034c.373.53.766 1.04 1.18 1.536l-2.07 3.726 1.414 1.414 3.726-2.07c.495.414 1.007.807 1.535 1.18l-1.036 4.133 1.732 1 3.06-2.96c.584.27 1.182.518 1.79.742l.07 4.255 1.933.518 2.19-3.652c.63.108 1.27.192 1.92.25L130 327h2l1.17-4.097c.65-.058 1.29-.142 1.92-.25l2.19 3.652 1.933-.518.07-4.255c.61-.224 1.207-.472 1.792-.743l3.06 2.96 1.73-1-1.034-4.134c.53-.373 1.04-.766 1.536-1.18l3.726 2.07 1.414-1.414-2.07-3.726c.414-.495.807-1.007 1.18-1.535l4.133 1.036 1-1.732-2.96-3.06c.27-.584.518-1.182.742-1.79l4.255-.07.518-1.933-3.652-2.19c.108-.63.192-1.27.25-1.92L159 300v-2l-4.097-1.17c-.058-.65-.142-1.29-.25-1.92l3.652-2.19-.518-1.933-4.255-.07zM109 299c0 12.15 9.85 22 22 22s22-9.85 22-22-9.85-22-22-22-22 9.85-22 22zm18 0c0 2.21 1.79 4 4 4s4-1.79 4-4-1.79-4-4-4-4 1.79-4 4zm2 0c0 1.105.895 2 2 2s2-.895 2-2-.895-2-2-2-2 .895-2 2zm15 0c0 2.21 1.79 4 4 4s4-1.79 4-4-1.79-4-4-4-4 1.79-4 4zm2 0c0 1.105.895 2 2 2s2-.895 2-2-.895-2-2-2-2 .895-2 2zm-8.5 11.258c-1.913 1.105-2.57 3.55-1.464 5.464 1.104 1.914 3.55 2.57 5.464 1.465 1.913-1.105 2.57-3.55 1.464-5.465-1.104-1.913-3.55-2.568-5.464-1.464zm-13 0c-1.913-1.104-4.36-.45-5.464 1.464-1.105 1.914-.45 4.36 1.464 5.465 1.913 1.104 4.36.45 5.464-1.465 1.105-1.913.45-4.36-1.464-5.464zM118 299c0-2.21-1.79-4-4-4s-4 1.79-4 4 1.79 4 4 4 4-1.79 4-4zm6.5-11.258c1.913-1.105 2.57-3.55 1.464-5.464-1.104-1.914-3.55-2.57-5.464-1.465-1.913 1.105-2.57 3.55-1.464 5.465 1.104 1.913 3.55 2.568 5.464 1.464zm13 0c1.913 1.104 4.36.45 5.464-1.464 1.105-1.914.45-4.36-1.464-5.465-1.913-1.104-4.36-.45-5.464 1.465-1.105 1.913-.45 4.36 1.464 5.464zm1 24.248c-.957.553-1.284 1.776-.732 2.732.552.957 1.775 1.285 2.732.732.957-.552 1.284-1.775.732-2.732-.552-.956-1.775-1.284-2.732-.732zm-15 0c-.957-.552-2.18-.224-2.732.732-.552.957-.225 2.18.732 2.732.957.553 2.18.225 2.732-.732.552-.956.225-2.18-.732-2.732zM116 299c0-1.105-.895-2-2-2s-2 .895-2 2 .895 2 2 2 2-.895 2-2zm7.5-12.99c.957-.553 1.284-1.776.732-2.732-.552-.957-1.775-1.285-2.732-.732-.957.552-1.284 1.775-.732 2.732.552.956 1.775 1.284 2.732.732zm15 0c.957.552 2.18.224 2.732-.732.552-.957.225-2.18-.732-2.732-.957-.553-2.18-.225-2.732.732-.552.956-.225 2.18.732 2.732zM248.997 275.802c-.643 1.607-.997 3.36-.997 5.198 0 1.837.354 3.59.997 5.198l-33.873 19.556C211.214 298.366 209 289.94 209 281c0-8.94 2.214-17.366 6.124-24.754l33.873 19.556zM251 272.34c2.173-2.758 5.36-4.678 9-5.198v-39.105c-18.067.67-33.822 10.384-42.873 24.746L251 272.34zm0 17.32c2.173 2.758 5.36 4.678 9 5.198v39.105c-18.067-.67-33.822-10.384-42.873-24.746L251 289.66zm13 5.198c3.64-.52 6.827-2.44 9-5.197l33.873 19.557c-9.05 14.362-24.806 24.076-42.873 24.746v-39.105zm11.003-8.66c.643-1.607.997-3.36.997-5.198 0-1.837-.354-3.59-.997-5.198l33.873-19.556C312.786 263.634 315 272.06 315 281c0 8.94-2.214 17.366-6.124 24.754l-33.873-19.556zM273 272.338c-2.173-2.756-5.36-4.676-9-5.196v-39.105c18.067.67 33.822 10.384 42.873 24.746L273 272.34zm-57.042-13.3C212.78 265.687 211 273.135 211 281c0 7.864 1.78 15.312 4.958 21.963l30.622-17.68c-.378-1.363-.58-2.8-.58-4.283 0-1.484.202-2.92.58-4.284l-30.622-17.68zm4.007-6.926c8.486-12.325 22.253-20.733 38.035-21.957v35.35c-2.86.735-5.41 2.242-7.416 4.285l-30.62-17.678zm0 57.776c8.486 12.325 22.253 20.733 38.035 21.957v-35.35c-2.86-.735-5.41-2.242-7.416-4.285l-30.62 17.678zM266 331.845c15.782-1.224 29.55-9.632 38.035-21.957l-30.62-17.678c-2.005 2.043-4.555 3.55-7.415 4.286v35.35zm42.042-28.882c3.178-6.65 4.958-14.1 4.958-21.963 0-7.864-1.78-15.312-4.958-21.963l-30.622 17.68c.378 1.363.58 2.8.58 4.283 0 1.484-.202 2.92-.58 4.284l30.622 17.68zm-4.007-50.85c-8.486-12.326-22.253-20.734-38.035-21.958v35.35c2.86.735 5.41 2.242 7.416 4.285l30.62-17.678zm-59.618-26.4c-3.15 1-6.184 2.264-9.076 3.763l-5.185-6.3-2.31 1.333 2.865 7.646c-2.765 1.774-5.37 3.778-7.786 5.982l-6.65-4.75-1.886 1.886 4.75 6.65c-2.204 2.417-4.208 5.02-5.982 7.786l-7.647-2.865-1.334 2.31 6.3 5.186c-1.5 2.893-2.762 5.927-3.763 9.077l-8.12-.787-.69 2.576 7.43 3.38c-.69 3.157-1.12 6.41-1.272 9.737l-8.06 1.344v2.666l8.06 1.344c.152 3.327.583 6.58 1.272 9.738l-7.428 3.38.69 2.575 8.12-.787c1 3.15 2.263 6.184 3.762 9.076l-6.3 5.185 1.333 2.31 7.646-2.865c1.774 2.765 3.778 5.37 5.982 7.786l-4.75 6.65 1.886 1.886 6.65-4.75c2.417 2.204 5.02 4.208 7.786 5.982l-2.865 7.647 2.31 1.334 5.186-6.3c2.893 1.5 5.927 2.762 9.077 3.763l-.787 8.12 2.576.69 3.38-7.43c3.157.69 6.41 1.12 9.737 1.272l1.344 8.06h2.666l1.344-8.06c3.327-.152 6.58-.583 9.738-1.272l3.38 7.428 2.575-.69-.787-8.12c3.15-1 6.184-2.263 9.076-3.762l5.185 6.3 2.31-1.333-2.865-7.646c2.765-1.774 5.37-3.778 7.786-5.982l6.65 4.75 1.886-1.886-4.75-6.65c2.204-2.417 4.208-5.02 5.982-7.786l7.647 2.865 1.334-2.31-6.3-5.186c1.5-2.893 2.762-5.927 3.763-9.077l8.12.787.69-2.576-7.43-3.38c.69-3.157 1.12-6.41 1.272-9.737l8.06-1.344v-2.666l-8.06-1.344c-.152-3.327-.583-6.58-1.272-9.738l7.428-3.38-.69-2.575-8.12.787c-1-3.15-2.263-6.184-3.762-9.076l6.3-5.185-1.333-2.31-7.646 2.865c-1.774-2.765-3.778-5.37-5.982-7.786l4.75-6.65-1.886-1.886-6.65 4.75c-2.417-2.204-5.02-4.208-7.786-5.982l2.865-7.647-2.31-1.334-5.186 6.3c-2.893-1.5-5.927-2.762-9.077-3.763l.787-8.12-2.576-.69-3.38 7.43c-3.157-.69-6.41-1.12-9.737-1.272l-1.344-8.06h-2.666l-1.344 8.06c-3.327.152-6.58.583-9.738 1.272l-3.38-7.428-2.575.69.787 8.12zm-2.118-1.404c-2.214.768-4.368 1.663-6.454 2.675l-5.248-6.375-5.196 3 2.9 7.74c-1.928 1.31-3.776 2.732-5.534 4.252l-6.73-4.807-4.243 4.243 4.807 6.73c-1.52 1.758-2.94 3.606-4.252 5.534l-7.74-2.9-3 5.196 6.375 5.248c-1.012 2.086-1.907 4.24-2.676 6.453l-8.216-.797-1.553 5.795 7.52 3.42c-.432 2.265-.736 4.575-.904 6.923L194 278v6l8.156 1.36c.168 2.347.472 4.657.903 6.922l-7.52 3.42 1.554 5.795 8.215-.796c.768 2.214 1.663 4.368 2.675 6.454l-6.375 5.248 3 5.196 7.74-2.9c1.31 1.928 2.732 3.776 4.252 5.534l-4.807 6.73 4.243 4.243 6.73-4.807c1.758 1.52 3.606 2.94 5.534 4.252l-2.9 7.74 5.196 3 5.248-6.375c2.086 1.012 4.24 1.907 6.453 2.676l-.797 8.216 5.795 1.553 3.42-7.52c2.265.432 4.575.736 6.923.904L259 349h6l1.36-8.156c2.347-.168 4.657-.472 6.922-.903l3.42 7.52 5.795-1.554-.796-8.215c2.214-.768 4.368-1.663 6.454-2.675l5.248 6.375 5.196-3-2.9-7.74c1.928-1.31 3.776-2.732 5.534-4.252l6.73 4.807 4.243-4.243-4.807-6.73c1.52-1.758 2.94-3.606 4.252-5.534l7.74 2.9 3-5.196-6.375-5.248c1.012-2.086 1.907-4.24 2.676-6.453l8.216.797 1.553-5.795-7.52-3.42c.432-2.265.736-4.575.904-6.923L330 284v-6l-8.156-1.36c-.168-2.347-.472-4.657-.903-6.922l7.52-3.42-1.554-5.795-8.215.796c-.768-2.214-1.663-4.368-2.675-6.454l6.375-5.248-3-5.196-7.74 2.9c-1.31-1.928-2.732-3.776-4.252-5.534l4.807-6.73-4.243-4.243-6.73 4.807c-1.758-1.52-3.606-2.94-5.534-4.252l2.9-7.74-5.196-3-5.248 6.375c-2.086-1.012-4.24-1.907-6.453-2.676l.797-8.216-5.795-1.553-3.42 7.52c-2.265-.432-4.575-.736-6.923-.904L265 213h-6l-1.36 8.156c-2.347.168-4.657.472-6.922.903l-3.42-7.52-5.795 1.554.796 8.215zM262 290c4.97 0 9-4.03 9-9s-4.03-9-9-9-9 4.03-9 9 4.03 9 9 9zm0-2c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zM0 244.514l1.76.254 6.41 3.07c1.4-2.066 3.01-3.98 4.798-5.71l-4.14-5.782-1.01-3.07 1.227-1.028 2.847 1.527 4.974 5.078c2.006-1.457 4.17-2.712 6.458-3.735l-1.91-6.84.1-3.23 1.505-.547 2.153 2.41 2.933 6.467c2.36-.673 4.818-1.112 7.35-1.288L36 225l1.2-3h1.6l1.2 3 .545 7.09c2.53.175 4.99.614 7.35 1.287l2.932-6.468 2.154-2.41 1.505.548.1 3.23-1.91 6.84c2.29 1.023 4.453 2.278 6.46 3.735l4.973-5.078 2.847-1.527 1.226 1.028-1.008 3.07-4.14 5.782c1.788 1.73 3.398 3.644 4.797 5.71l6.41-3.07 3.197-.46.8 1.385-1.998 2.54-5.862 4.012c1.082 2.22 1.943 4.566 2.553 7.012l7.07-.693 3.162.66.278 1.576-2.746 1.703-6.885 1.767c.125 1.226.19 2.47.19 3.73 0 1.26-.065 2.504-.19 3.73l6.884 1.767 2.746 1.703-.278 1.576-3.163.66-7.07-.693c-.61 2.446-1.47 4.793-2.552 7.012l5.86 4.013 2 2.54-.8 1.385-3.2-.46-6.41-3.072c-1.398 2.068-3.008 3.982-4.796 5.712l4.14 5.782 1.01 3.07-1.227 1.028-2.847-1.527-4.974-5.078c-2.006 1.457-4.17 2.712-6.458 3.735l1.91 6.84-.1 3.23-1.505.547-2.153-2.41-2.933-6.467c-2.36.673-4.818 1.112-7.35 1.288L40 311l-1.2 3h-1.6l-1.2-3-.545-7.09c-2.53-.175-4.99-.614-7.35-1.287l-2.932 6.468-2.154 2.41-1.505-.548-.1-3.23 1.91-6.84c-2.29-1.023-4.453-2.278-6.46-3.735l-4.973 5.078-2.847 1.527-1.226-1.028 1.008-3.07 4.14-5.782c-1.788-1.73-3.398-3.644-4.797-5.71l-6.41 3.07-1.76.254v-3.882l5.622-3.85c-1.082-2.218-1.943-4.565-2.553-7.01l-3.07.3v-4.752l2.19-.562C2.066 270.504 2 269.26 2 268c0-1.26.065-2.504.19-3.73L0 263.708v-4.752l3.07.3c.61-2.445 1.47-4.792 2.552-7.01L0 248.395v-3.882zm0-1.876l2.76.398 4.753 2.277c.885-1.187 1.837-2.32 2.852-3.396l-3.07-4.286-1.68-5.115 3.063-2.57 4.746 2.544 3.686 3.762c1.23-.812 2.513-1.554 3.84-2.22l-1.416-5.07.17-5.383 3.758-1.37 3.59 4.015 2.174 4.793c1.427-.337 2.886-.594 4.37-.766L34 225l2-5h4l2 5 .404 5.252c1.484.172 2.943.43 4.37.766l2.174-4.793 3.59-4.014 3.758 1.37.17 5.38-1.416 5.07c1.327.668 2.61 1.41 3.84 2.222l3.686-3.763 4.746-2.546 3.064 2.57-1.682 5.117-3.07 4.287c1.016 1.075 1.968 2.21 2.853 3.396l4.752-2.277 5.33-.768 2 3.464-3.33 4.232-4.343 2.973c.585 1.35 1.093 2.743 1.52 4.17l5.235-.513 5.27 1.1.696 3.94-4.577 2.838-5.104 1.31c.043.735.064 1.474.064 2.218s-.02 1.483-.064 2.217l5.105 1.31 4.578 2.838-.695 3.94-5.27 1.1-5.237-.512c-.426 1.427-.934 2.82-1.52 4.17l4.343 2.973 3.33 4.232-2 3.464-5.33-.768-4.753-2.277c-.885 1.187-1.837 2.32-2.852 3.396l3.07 4.286 1.68 5.115-3.063 2.57-4.746-2.544-3.686-3.762c-1.23.812-2.513 1.554-3.84 2.22l1.416 5.07-.17 5.383-3.758 1.37-3.59-4.015-2.174-4.793c-1.427.337-2.886.594-4.37.766L42 311l-2 5h-4l-2-5-.404-5.252c-1.484-.172-2.943-.43-4.37-.766l-2.174 4.793-3.59 4.014-3.758-1.37-.17-5.38 1.416-5.07c-1.327-.668-2.61-1.41-3.84-2.222l-3.686 3.763-4.746 2.546-3.064-2.57 1.682-5.117 3.07-4.287c-1.016-1.075-1.968-2.21-2.853-3.396l-4.752 2.277-2.76.398v-8.174l3.103-2.125c-.585-1.35-1.093-2.743-1.52-4.17L0 279.048v-8.815l.064-.016C.02 269.483 0 268.744 0 268s.02-1.483.064-2.217L0 265.767v-8.815l1.584.155c.426-1.427.934-2.82 1.52-4.17L0 250.812v-8.174zM38 272c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0-2c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zm0-26c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm24 24c0 2.21 1.79 4 4 4s4-1.79 4-4-1.79-4-4-4-4 1.79-4 4zm-24 24c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-24-24c0-2.21-1.79-4-4-4s-4 1.79-4 4 1.79 4 4 4 4-1.79 4-4zm24-26c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zm26 26c0 1.105.895 2 2 2s2-.895 2-2-.895-2-2-2-2 .895-2 2zm-26 26c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm-26-26c0-1.105-.895-2-2-2s-2 .895-2 2 .895 2 2 2 2-.895 2-2zm3.373 22.627c4.686 4.687 12.284 4.687 16.97 0 4.686-4.686 4.686-12.284 0-16.97-4.686-4.686-12.284-4.686-16.97 0-4.687 4.686-4.687 12.284 0 16.97zm0-45.254c-4.687 4.686-4.687 12.284 0 16.97 4.686 4.686 12.284 4.686 16.97 0 4.686-4.686 4.686-12.284 0-16.97-4.686-4.687-12.284-4.687-16.97 0zm45.254 0c-4.686-4.687-12.284-4.687-16.97 0-4.686 4.686-4.686 12.284 0 16.97 4.686 4.686 12.284 4.686 16.97 0 4.687-4.686 4.687-12.284 0-16.97zm0 45.254c4.687-4.686 4.687-12.284 0-16.97-4.686-4.686-12.284-4.686-16.97 0-4.686 4.686-4.686 12.284 0 16.97 4.686 4.687 12.284 4.687 16.97 0zM45.07 260.93c3.906 3.904 10.238 3.904 14.143 0 3.905-3.906 3.905-10.238 0-14.143-3.905-3.905-10.237-3.905-14.142 0-3.904 3.905-3.904 10.237 0 14.142zm0 14.14c-3.904 3.906-3.904 10.238 0 14.143 3.906 3.905 10.238 3.905 14.143 0 3.905-3.905 3.905-10.237 0-14.142-3.905-3.904-10.237-3.904-14.142 0zm-14.14 0c-3.906-3.904-10.238-3.904-14.143 0-3.905 3.906-3.905 10.238 0 14.143 3.905 3.905 10.237 3.905 14.142 0 3.904-3.905 3.904-10.237 0-14.142zm0-14.14c3.904-3.906 3.904-10.238 0-14.143-3.906-3.905-10.238-3.905-14.143 0-3.905 3.905-3.905 10.237 0 14.142 3.905 3.904 10.237 3.904 14.142 0zM261.822 15.54c-1.043.36-2.06.783-3.042 1.26l-2.914-3.013-1.732 1 1.154 4.034c-.91.618-1.78 1.288-2.61 2.005l-3.598-2.16-1.415 1.415 2.16 3.6c-.717.828-1.387 1.7-2.004 2.608l-4.033-1.154-1 1.732 3.013 2.914c-.477.983-.9 2-1.26 3.042l-4.19-.07-.518 1.932 3.665 2.035c-.203 1.066-.347 2.155-.425 3.262L239 41v2l4.072 1.018c.078 1.107.222 2.196.425 3.263l-3.665 2.036.517 1.932 4.19-.07c.36 1.043.783 2.06 1.26 3.042l-3.013 2.914 1 1.732 4.034-1.154c.618.91 1.288 1.78 2.005 2.61l-2.16 3.598 1.415 1.415 3.6-2.16c.828.717 1.7 1.387 2.608 2.004l-1.154 4.033 1.732 1 2.914-3.013c.983.477 2 .9 3.042 1.26l-.07 4.19 1.932.518 2.035-3.665c1.066.203 2.155.347 3.262.425L270 74h2l1.018-4.072c1.107-.078 2.196-.222 3.263-.425l2.036 3.665 1.932-.517-.07-4.19c1.043-.36 2.06-.783 3.042-1.26l2.914 3.013 1.732-1-1.154-4.034c.91-.618 1.78-1.288 2.61-2.005l3.598 2.16 1.415-1.415-2.16-3.6c.717-.828 1.387-1.7 2.004-2.608l4.033 1.154 1-1.732-3.013-2.914c.477-.983.9-2 1.26-3.042l4.19.07.518-1.932-3.665-2.035c.203-1.066.347-2.155.425-3.262L303 43v-2l-4.072-1.018c-.078-1.107-.222-2.196-.425-3.263l3.665-2.036-.517-1.932-4.19.07c-.36-1.043-.783-2.06-1.26-3.042l3.013-2.914-1-1.732-4.034 1.154c-.618-.91-1.288-1.78-2.005-2.61l2.16-3.598-1.415-1.415-3.6 2.16c-.828-.717-1.7-1.387-2.608-2.004l1.154-4.033-1.732-1-2.914 3.013c-.983-.477-2-.9-3.042-1.26l.07-4.19-1.932-.518-2.035 3.665c-1.066-.203-2.155-.347-3.262-.425L272 10h-2l-1.018 4.072c-1.107.078-2.196.222-3.263.425l-2.036-3.665-1.932.517.07 4.19zM271 68c14.36 0 26-11.64 26-26s-11.64-26-26-26-26 11.64-26 26 11.64 26 26 26zm0-9c9.39 0 17-7.61 17-17s-7.61-17-17-17-17 7.61-17 17 7.61 17 17 17zm0-2c8.284 0 15-6.716 15-15 0-8.284-6.716-15-15-15-8.284 0-15 6.716-15 15 0 8.284 6.716 15 15 15zm0-8c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm0-2c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm0-14c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zm9 9c0 1.105.895 2 2 2s2-.895 2-2-.895-2-2-2-2 .895-2 2zm-9 9c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm-9-9c0-1.105-.895-2-2-2s-2 .895-2 2 .895 2 2 2 2-.895 2-2zM309.933 95.785c-.284.33-.54.683-.77 1.056l-4.267-.5-.618 1.903 3.748 2.104c-.017.215-.026.433-.026.653 0 .22.01.438.026.653l-3.748 2.104.618 1.902 4.268-.5c.228.372.485.725.77 1.055l-1.796 3.905 1.618 1.176 3.158-2.913c.4.167.814.303 1.243.404L315 113h2l.843-4.213c.43-.1.844-.237 1.243-.404l3.158 2.913 1.618-1.176-1.795-3.905c.284-.33.54-.683.77-1.056l4.267.5.618-1.903-3.748-2.104c.017-.215.026-.433.026-.653 0-.22-.01-.438-.026-.653l3.748-2.104-.618-1.902-4.268.5c-.228-.372-.485-.725-.77-1.055l1.796-3.905-1.618-1.176-3.158 2.913c-.4-.167-.814-.303-1.243-.404L317 89h-2l-.843 4.213c-.43.1-.844.237-1.243.404l-3.158-2.913-1.618 1.176 1.795 3.905zM316 106c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zM75.734 179.206c-.562.453-1.075.966-1.528 1.528l-2.098-.6-1 1.732 1.567 1.515c-.258.666-.448 1.366-.56 2.09L70 186v2l2.116.53c.11.724.3 1.424.56 2.09l-1.568 1.514 1 1.732 2.098-.6c.453.562.966 1.075 1.528 1.528l-.6 2.098 1.732 1 1.515-1.567c.666.258 1.366.448 2.09.56L81 199h2l.53-2.116c.724-.11 1.424-.3 2.09-.56l1.514 1.568 1.732-1-.6-2.098c.562-.453 1.075-.966 1.528-1.528l2.098.6 1-1.732-1.567-1.515c.258-.666.448-1.366.56-2.09L94 188v-2l-2.116-.53c-.11-.724-.3-1.424-.56-2.09l1.568-1.514-1-1.732-2.098.6c-.453-.562-.966-1.075-1.528-1.528l.6-2.098-1.732-1-1.515 1.567c-.666-.258-1.366-.448-2.09-.56L83 175h-2l-.53 2.116c-.724.11-1.424.3-2.09.56l-1.514-1.568-1.732 1 .6 2.098zm2.146.935c-1.12.676-2.064 1.62-2.74 2.74l-.145.253C74.36 184.28 74 185.597 74 187s.36 2.72.995 3.867l.146.253c.676 1.12 1.62 2.064 2.74 2.74l.253.145c1.146.634 2.464.995 3.867.995s2.72-.36 3.867-.995l.253-.146c1.12-.676 2.064-1.62 2.74-2.74l.145-.253c.634-1.146.995-2.464.995-3.867s-.36-2.72-.995-3.867l-.146-.253c-.676-1.12-1.62-2.064-2.74-2.74l-.253-.145C84.72 179.36 83.403 179 82 179s-2.72.36-3.867.995l-.253.146zM82 193c3.314 0 6-2.686 6-6s-2.686-6-6-6-6 2.686-6 6 2.686 6 6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zM360 139.08c-1.242.543-2.43 1.183-3.558 1.912l3.558 3.8v-5.712zm0 22.678l-14.172 6.646c-.54-2.044-.828-4.19-.828-6.404 0-7.82 3.59-14.8 9.21-19.384l5.79 10.497v8.645zm0 23.162c-6.088-2.66-10.912-7.675-13.32-13.893l13.32-2.56v16.453zm0-43.638c-.13.063-.26.127-.388.192l.388.414v-.606zm0 18.284l-12.73 5.97c-.178-1.153-.27-2.334-.27-3.536 0-6.328 2.556-12.06 6.69-16.218l6.31 11.44v2.344zm0 23.152c-4.502-2.177-8.186-5.778-10.47-10.218l10.47-2.01v12.228zm0 7.928l-4.46 6.58-4.11-2.004 2.536-7.862c-1.856-1.176-3.574-2.55-5.124-4.09l-7.085 4.234-2.877-3.553 5.652-6.087c-1.144-1.833-2.095-3.798-2.826-5.867l-8.236.702-1.028-4.455 7.733-2.988c-.116-1.07-.175-2.155-.175-3.255s.06-2.186.175-3.255l-7.733-2.988 1.028-4.455 8.236.702c.73-2.07 1.682-4.034 2.826-5.867l-5.652-6.088 2.877-3.554 7.085 4.235c1.55-1.54 3.268-2.914 5.124-4.09l-2.535-7.862 4.11-2.004 4.46 6.58v57.292zm0 3.537l-3.792 5.594-7.19-3.507 2.602-8.07c-1.075-.757-2.1-1.577-3.074-2.457l-7.27 4.346-5.034-6.218 5.816-6.265c-.633-1.13-1.2-2.303-1.693-3.512l-8.458.72-1.8-7.795 7.95-3.073c-.037-.644-.057-1.293-.057-1.947 0-.654.02-1.303.058-1.947l-7.95-3.073 1.8-7.795 8.457.72c.494-1.21 1.06-2.382 1.693-3.512l-5.816-6.265 5.035-6.217 7.27 4.347c.972-.88 1.998-1.7 3.073-2.456l-2.602-8.07 7.19-3.507 3.792 5.594v64.366zM34.172 168.404c.54-2.044.828-4.19.828-6.404 0-7.82-3.59-14.8-9.21-19.384l-8.673 15.726c.386.75.657 1.57.79 2.434l16.265 7.628zm-.85 2.623c-3.464 8.94-11.917 15.39-21.942 15.936l2.227-17.82c.77-.39 1.468-.9 2.07-1.506l17.644 3.39zM0 139.08c3.062-1.338 6.444-2.08 10-2.08 4.997 0 9.652 1.466 13.558 3.992l-12.278 13.11c-.417-.067-.844-.102-1.28-.102-.436 0-.863.035-1.28.102L0 144.792v-5.712zm0 22.678l2.093-.982c.133-.865.404-1.684.79-2.434L0 153.112v8.646zm0 23.162c2.664 1.164 5.57 1.877 8.62 2.043l-2.227-17.82c-.77-.39-1.468-.9-2.07-1.506l-4.323.83v16.453zm0-43.638C3.024 139.82 6.416 139 10 139c3.738 0 7.268.892 10.388 2.474l-9.87 10.54c-.172-.01-.345-.014-.518-.014-.173 0-.346.004-.517.013L0 141.888v-.606zm0 18.284l.34-.16c.09-.336.197-.665.32-.986L0 157.223v2.343zm0 23.152c1.972.954 4.102 1.634 6.34 1.992l-1.792-14.326c-.29-.188-.57-.39-.836-.608L0 170.49v12.228zm13.66 1.992c7.344-1.174 13.526-5.824 16.81-12.21l-14.182-2.724c-.267.217-.547.42-.836.608l-1.79 14.326zm19.07-19.174c.178-1.153.27-2.334.27-3.536 0-6.328-2.556-12.06-6.69-16.218l-6.97 12.638c.123.32.23.65.32.987l13.07 6.13zM0 133.354l.193.285c2.027-.7 4.153-1.19 6.35-1.443L7.713 124h4.573l1.17 8.197c2.198.252 4.324.742 6.35 1.442l4.654-6.866 4.11 2.004-2.536 7.862c1.856 1.176 3.574 2.55 5.124 4.09l7.085-4.234 2.877 3.553-5.652 6.087c1.144 1.833 2.095 3.798 2.826 5.867l8.236-.702 1.028 4.455-7.733 2.988c.116 1.07.175 2.155.175 3.255s-.06 2.186-.175 3.255l7.733 2.988-1.028 4.455-8.236-.702c-.73 2.07-1.682 4.034-2.826 5.867l5.652 6.088-2.877 3.554-7.085-4.235c-1.55 1.54-3.268 2.914-5.124 4.09l2.535 7.862-4.11 2.004-4.653-6.865c-2.027.7-4.153 1.19-6.35 1.443L12.287 200H7.713l-1.17-8.197c-2.198-.252-4.324-.742-6.35-1.442l-.194.286v-57.292zm0-3.537l.995 1.468c1.238-.363 2.507-.652 3.802-.864L6 122h8l1.203 8.42c1.295.213 2.564.502 3.802.865l4.787-7.062 7.19 3.507-2.602 8.07c1.075.757 2.1 1.577 3.074 2.457l7.27-4.346 5.034 6.218-5.816 6.265c.633 1.13 1.2 2.303 1.693 3.512l8.458-.72 1.8 7.795-7.95 3.073c.037.644.057 1.293.057 1.947 0 .654-.02 1.303-.058 1.947l7.95 3.073-1.8 7.795-8.457-.72c-.494 1.21-1.06 2.382-1.693 3.512l5.816 6.265-5.035 6.217-7.27-4.347c-.972.88-1.998 1.7-3.073 2.456l2.602 8.07-7.19 3.507-4.787-7.062c-1.238.363-2.507.652-3.802.864L14 202H6l-1.203-8.42c-1.295-.213-2.564-.502-3.802-.865L0 194.183v-64.366zM10 156c-3.314 0-6 2.686-6 6s2.686 6 6 6 6-2.686 6-6-2.686-6-6-6zm0 2c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zM149.716 360c3.863-2.626 8.393-4.344 13.284-4.847V360h-13.284zm32.568 0c-3.863-2.626-8.393-4.344-13.284-4.847V360h13.284zm-28.666 0c2.29-1.183 4.77-2.05 7.382-2.538V360h-7.382zm24.764 0c-2.29-1.183-4.77-2.05-7.382-2.538V360h7.382zm-40.84 0l-4.07-5.698 2.83-2.83 6.728 4.807c.69-.574 1.405-1.123 2.138-1.644l-2.9-7.74 3.464-2 5.25 6.376c.816-.374 1.648-.72 2.495-1.034l-.797-8.22 3.864-1.036 3.422 7.522c.88-.15 1.773-.266 2.675-.35L164 340h4l1.36 8.155c.9.083 1.793.2 2.674.35l3.422-7.523 3.864 1.035-.797 8.22c.847.315 1.68.66 2.495 1.035l5.25-6.377 3.464 2-2.9 7.74c.733.522 1.447 1.07 2.138 1.644l6.728-4.807 2.83 2.83-4.07 5.697h-56.915zm2.426 0l-3.902-5.463.47-.47 6.635 4.737c1.37-1.242 2.84-2.373 4.4-3.38l-2.86-7.63.58-.334 5.175 6.288c1.637-.842 3.35-1.555 5.128-2.126l-.785-8.105.644-.172 3.372 7.414c1.786-.385 3.624-.63 5.503-.72l1.34-8.04h.666l1.34 8.04c1.88.09 3.717.335 5.503.72l3.372-7.415.644.172-.785 8.105c1.777.57 3.49 1.284 5.128 2.126l5.176-6.288.58.334-2.86 7.63c1.56 1.007 3.03 2.138 4.4 3.38l6.633-4.738.47.47-3.9 5.464h-52.065zM360 52.702l-6.476 3.74C351.26 51.424 350 45.86 350 40c0-5.86 1.26-11.425 3.524-16.44L360 27.297v25.404zm0-39.16c-.873.988-1.697 2.02-2.47 3.093L360 18.06v-4.518zm0 52.916c-.873-.988-1.697-2.02-2.47-3.093L360 61.94v4.518zm0-16.066l-5.505 3.18C352.883 49.355 352 44.78 352 40c0-4.78.883-9.356 2.495-13.57L360 29.607v20.784zM357.58 0l1.507 3.278c-2.097 1.768-4.04 3.712-5.81 5.81L343.9 4.775l-1.646 2.265 6.995 7.584c-1.447 2.316-2.7 4.764-3.74 7.323l-10.24-1.2-.864 2.66 8.99 5.05c-.648 2.627-1.08 5.34-1.276 8.12L332 38.6v2.8l10.12 2.024c.196 2.78.628 5.492 1.277 8.12l-8.99 5.048.864 2.662 10.24-1.2c1.04 2.558 2.293 5.006 3.74 7.322l-6.996 7.583 1.646 2.264 9.378-4.31c1.768 2.096 3.712 4.04 5.81 5.808l-4.312 9.378 2.265 1.646 2.96-2.73V0h-2.42zm-2.158 0l1.252 2.725c-1.388 1.242-2.707 2.56-3.95 3.95l-9.502-4.37-3.526 4.855 7.085 7.68c-.935 1.607-1.785 3.27-2.542 4.983l-10.374-1.217-1.854 5.706 9.11 5.115c-.39 1.806-.68 3.65-.868 5.523L330 37v6l10.252 2.05c.188 1.874.48 3.717.868 5.523l-9.11 5.115 1.854 5.706 10.374-1.217c.757 1.713 1.607 3.376 2.543 4.982l-7.084 7.68 3.526 4.854 9.503-4.368c1.242 1.388 2.56 2.707 3.95 3.95l-4.37 9.502 4.855 3.526 2.84-2.62V0h-4.578zM0 354.984l4.624 4.265c2.316-1.447 4.764-2.7 7.323-3.74l-1.2-10.24 2.66-.864 5.05 8.99c2.627-.648 5.34-1.08 8.12-1.276L28.6 342h2.8l2.024 10.12c2.78.196 5.492.628 8.12 1.277l5.048-8.99 2.662.864-1.2 10.24c2.558 1.04 5.006 2.293 7.322 3.74l7.583-6.996 2.264 1.646-2.804 6.1H0v-5.016zm0-2.67l4.84 4.467c1.607-.935 3.27-1.785 4.983-2.542l-1.217-10.374 5.706-1.854 5.115 9.11c1.806-.39 3.65-.68 5.523-.868L27 340h6l2.05 10.252c1.874.188 3.717.48 5.523.868l5.115-9.11 5.706 1.854-1.217 10.374c1.713.757 3.376 1.607 4.982 2.543l7.68-7.084 4.854 3.526L64.578 360H0v-7.685zM360 244.514l-1.437-.207-.8 1.386 1.998 2.54.24.163v-3.882zm0 14.442l-4-.392-3.162.66-.278 1.576 2.746 1.703 4.694 1.205v-4.752zm0 13.336l-4.694 1.205-2.746 1.703.278 1.576 3.163.66 4-.392v-4.752zm0 15.312l-.24.164-1.997 2.54.8 1.385 1.437-.207v-3.882zm0 5.758l-2.57.37-2-3.464 3.33-4.232 1.24-.848v8.174zm0-14.314l-3.652.358-5.27-1.1-.696-3.94 4.577-2.838 5.04-1.295v8.815zm0-13.28l-5.04-1.296-4.578-2.837.695-3.94 5.27-1.1 3.653.357v8.815zm0-14.956l-1.24-.848-3.33-4.232 2-3.464 2.57.37v8.174zM360 354.984l-2.96-2.73-2.264 1.646 2.804 6.1H360v-5.016zm0-2.67l-2.84-2.618-4.854 3.526 3.116 6.778H360v-7.685z'/%3E%3C/g%3E%3C/svg%3E"); -} diff --git a/examples/typescript-vuex/components/Card.vue b/examples/typescript-vuex/components/Card.vue deleted file mode 100644 index eab608c226..0000000000 --- a/examples/typescript-vuex/components/Card.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - diff --git a/examples/typescript-vuex/layouts/default.vue b/examples/typescript-vuex/layouts/default.vue deleted file mode 100644 index a11d79fb00..0000000000 --- a/examples/typescript-vuex/layouts/default.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/examples/typescript-vuex/nuxt.config.ts b/examples/typescript-vuex/nuxt.config.ts deleted file mode 100644 index c62619d02d..0000000000 --- a/examples/typescript-vuex/nuxt.config.ts +++ /dev/null @@ -1,17 +0,0 @@ -import NuxtConfiguration from '@nuxt/config' - -const config: NuxtConfiguration = { - head: { - title: 'starter', - meta: [ - { charset: 'utf-8' }, - { name: 'viewport', content: 'width=device-width, initial-scale=1' }, - { hid: 'description', name: 'description', content: 'Nuxt TS project' } - ], - link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }] - }, - loading: { color: '#3B8070' }, - css: ['tachyons/css/tachyons.min.css', '~/assets/css/main.css'] -} - -export default config diff --git a/examples/typescript-vuex/package.json b/examples/typescript-vuex/package.json deleted file mode 100644 index 9d560efb0b..0000000000 --- a/examples/typescript-vuex/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "version": "1.0.0", - "private": true, - "dependencies": { - "axios": "^0.19.0", - "nuxt": "latest", - "tachyons": "^4.11.1", - "ts-node": "^8.1.0", - "vue-property-decorator": "^7.3.0", - "vuex-class": "^0.3.1" - }, - "scripts": { - "dev": "nuxt", - "build": "nuxt build", - "start": "nuxt start", - "generate": "nuxt generate", - "post-update": "yarn upgrade --latest" - }, - "devDependencies": { - "@nuxt/typescript": "latest" - } -} diff --git a/examples/typescript-vuex/pages/index.vue b/examples/typescript-vuex/pages/index.vue deleted file mode 100644 index 6142163f38..0000000000 --- a/examples/typescript-vuex/pages/index.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - diff --git a/examples/typescript-vuex/static/favicon.ico b/examples/typescript-vuex/static/favicon.ico deleted file mode 100644 index 382fecbbf96d6e1e614e0e2cc8b73e355bd946cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmZQzU<5(|0R|wcz>vYhz#zuJz@P!dKp~(AL>x#lFaYI-8)(_-RMWh}@jndLuXgyK z;A{Fn&J#OMi823Q&|nS5g-td!^Y-RSMpI2!G(|^BVz5@p+ zJll3Uhal^3+~)80K_I1H1Blkn|X#f`-nA@7V7^0XJCNg21cM?f%pJ31V3PB ZU;yC{{0s~~ { - return new Vuex.Store({ - state: root.state(), - getters: root.getters, - mutations: root.mutations, - actions: root.actions, - modules: { - [people.name]: people - } - }) -} - -export default createStore diff --git a/examples/typescript-vuex/store/modules/people.ts b/examples/typescript-vuex/store/modules/people.ts deleted file mode 100644 index f6deceb8a0..0000000000 --- a/examples/typescript-vuex/store/modules/people.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { ActionTree, MutationTree, GetterTree, ActionContext } from 'vuex' -import { RootState } from 'store' - -export const name = 'people' - -export const types = { - SELECT: 'SELECT', - SET: 'SET' -} - -export interface PersonContact { - email: string - phone: string -} - -export interface PersonAddress { - city: string - country: string - postalCode: string - state: string - street: string -} - -export interface Person { - id: number - first_name: string - last_name: string - contact: PersonContact - gender: string - ip_address: string - avatar: string - address: PersonAddress -} - -export interface State { - selected: number - people: Person[] -} - -export const namespaced = true - -export const state = (): State => ({ - selected: 1, - people: [] -}) - -export const getters: GetterTree = { - selectedPerson: state => { - const p = state.people.find(person => person.id === state.selected) - return p ? p : { first_name: 'Please,', last_name: 'select someone' } - } -} - -export interface Actions extends ActionTree { - select (context: ActionContext, id: number): void -} - -export const actions: Actions = { - select ({ commit }, id: number) { - commit(types.SELECT, id) - } -} - -export const mutations: MutationTree = { - [types.SELECT] (state, id: number) { - state.selected = id - }, - [types.SET] (state, people: Person[]) { - state.people = people - } -} diff --git a/examples/typescript-vuex/store/root.ts b/examples/typescript-vuex/store/root.ts deleted file mode 100644 index 145020363a..0000000000 --- a/examples/typescript-vuex/store/root.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { GetterTree, ActionContext, ActionTree, MutationTree } from 'vuex' -import axios from 'axios' -import { RootState } from 'store' -import * as people from './modules/people' - -export const types = {} - -export interface State {} - -export const state = (): State => ({}) - -export const getters: GetterTree = {} - -export interface Actions extends ActionTree { - nuxtServerInit (context: ActionContext): void -} - -export const actions: Actions = { - async nuxtServerInit ({ commit }) { - const response = await axios.get('/random-data.json', { proxy: { host: '127.0.0.1', port: 3000 } }) - const staticPeople = response.data.slice(0, 10) - commit(`${people.name}/${people.types.SET}`, staticPeople, { root: true }) - } -} - -export const mutations: MutationTree = {} diff --git a/examples/typescript-vuex/tsconfig.json b/examples/typescript-vuex/tsconfig.json deleted file mode 100644 index 13a3531e48..0000000000 --- a/examples/typescript-vuex/tsconfig.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "module": "esnext", - "moduleResolution": "node", - "lib": [ - "esnext", - "esnext.asynciterable", - "dom" - ], - "esModuleInterop": true, - "experimentalDecorators": true, - "allowJs": true, - "sourceMap": true, - "strict": true, - "noImplicitAny": false, - "noEmit": true, - "baseUrl": ".", - "paths": { - "~/*": [ - "./*" - ], - "@/*": [ - "./*" - ] - }, - "types": [ - "@types/node", - "@nuxt/vue-app" - ] - } -} diff --git a/examples/typescript/README.md b/examples/typescript/README.md deleted file mode 100644 index 01814ee4b7..0000000000 --- a/examples/typescript/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Nuxt with TypeScript example - -https://codesandbox.io/s/0qmykr7wq0 diff --git a/examples/typescript/components/HelloWorld.vue b/examples/typescript/components/HelloWorld.vue deleted file mode 100644 index 92c06e3df1..0000000000 --- a/examples/typescript/components/HelloWorld.vue +++ /dev/null @@ -1,14 +0,0 @@ - - - diff --git a/examples/typescript/nuxt.config.ts b/examples/typescript/nuxt.config.ts deleted file mode 100644 index 206389a4c7..0000000000 --- a/examples/typescript/nuxt.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import NuxtConfiguration from '@nuxt/config' - -const config: NuxtConfiguration = { - plugins: ['~/plugins/hello'] -} - -export default config diff --git a/examples/typescript/package.json b/examples/typescript/package.json deleted file mode 100644 index aa5c53f7d1..0000000000 --- a/examples/typescript/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "version": "1.0.0", - "private": true, - "dependencies": { - "nuxt": "latest", - "ts-node": "^8.1.0", - "vue-property-decorator": "^7.3.0" - }, - "scripts": { - "dev": "nuxt", - "build": "nuxt build", - "start": "nuxt start", - "generate": "nuxt generate", - "post-update": "yarn upgrade --latest" - }, - "devDependencies": { - "@nuxt/typescript": "latest" - } -} diff --git a/examples/typescript/pages/index.vue b/examples/typescript/pages/index.vue deleted file mode 100644 index 1bfe2bdf0b..0000000000 --- a/examples/typescript/pages/index.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/examples/typescript/plugins/hello.ts b/examples/typescript/plugins/hello.ts deleted file mode 100644 index e37dd192fe..0000000000 --- a/examples/typescript/plugins/hello.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default () => { - console.log(`Hello from ${process.server ? 'Server' : 'Client'} !`) -} diff --git a/examples/typescript/tsconfig.json b/examples/typescript/tsconfig.json deleted file mode 100644 index 13a3531e48..0000000000 --- a/examples/typescript/tsconfig.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "module": "esnext", - "moduleResolution": "node", - "lib": [ - "esnext", - "esnext.asynciterable", - "dom" - ], - "esModuleInterop": true, - "experimentalDecorators": true, - "allowJs": true, - "sourceMap": true, - "strict": true, - "noImplicitAny": false, - "noEmit": true, - "baseUrl": ".", - "paths": { - "~/*": [ - "./*" - ], - "@/*": [ - "./*" - ] - }, - "types": [ - "@types/node", - "@nuxt/vue-app" - ] - } -} diff --git a/jest.config.js b/jest.config.js index 6d32ff11ae..c1ae1b72a6 100644 --- a/jest.config.js +++ b/jest.config.js @@ -34,13 +34,11 @@ module.exports = { ], transform: { - '^.+\\.ts$': 'ts-jest', '^.+\\.js$': 'babel-jest', '^.+\\.vue$': 'vue-jest' }, moduleFileExtensions: [ - 'ts', 'js', 'json' ], diff --git a/package.json b/package.json index 3e018a77e6..b221515499 100644 --- a/package.json +++ b/package.json @@ -23,11 +23,10 @@ "lint:app": "eslint-multiplexer eslint --ignore-path packages/vue-app/template/.eslintignore 'test/fixtures/!(missing-plugin)/.nuxt!(-dev)/**' | eslint-multiplexer -b", "nuxt": "node -r esm ./packages/cli/bin/nuxt-cli.js", "pkg": "node -r esm ./scripts/package", - "test": "yarn test:fixtures && yarn test:unit && yarn test:types", + "test": "yarn test:fixtures && yarn test:unit", "test:e2e": "jest -i test/e2e --forceExit", "test:fixtures": "jest test/fixtures --forceExit", "test:lint": "yarn lint", - "test:types": "tsc -p test/types", "test:unit": "jest test/unit packages --forceExit" }, "devDependencies": { @@ -74,11 +73,6 @@ "rollup-plugin-node-resolve": "^5.2.0", "rollup-plugin-replace": "^2.2.0", "sort-package-json": "^1.22.1", - "ts-jest": "^24.0.2", - "ts-node": "^8.3.0", - "tslint": "^5.18.0", - "typescript": "^3.5.3", - "vue-jest": "^4.0.0-beta.2", - "vue-property-decorator": "^8.2.1" + "vue-jest": "^4.0.0-beta.2" } } diff --git a/packages/builder/src/builder.js b/packages/builder/src/builder.js index 037c0a4b42..65566ef80b 100644 --- a/packages/builder/src/builder.js +++ b/packages/builder/src/builder.js @@ -44,7 +44,7 @@ export default class Builder { restart: null } - this.supportedExtensions = ['vue', 'js', 'ts', 'tsx', ...(this.options.build.additionalExtensions || [])] + this.supportedExtensions = ['vue', 'js', ...(this.options.build.additionalExtensions || [])] // Helper to resolve build paths this.relativeToBuild = (...args) => relativeTo(this.options.buildDir, ...args) diff --git a/packages/builder/test/builder.ctor.test.js b/packages/builder/test/builder.ctor.test.js index 73c9ac6750..0b46314514 100644 --- a/packages/builder/test/builder.ctor.test.js +++ b/packages/builder/test/builder.ctor.test.js @@ -32,7 +32,7 @@ describe('builder: builder constructor', () => { custom: null, restart: null }) - expect(builder.supportedExtensions).toEqual(['vue', 'js', 'ts', 'tsx']) + expect(builder.supportedExtensions).toEqual(['vue', 'js']) expect(builder.relativeToBuild).toBeInstanceOf(Function) expect(builder._buildStatus).toEqual(1) diff --git a/packages/builder/test/builder.generate.test.js b/packages/builder/test/builder.generate.test.js index 0a9c0a8b1d..571f831321 100644 --- a/packages/builder/test/builder.generate.test.js +++ b/packages/builder/test/builder.generate.test.js @@ -76,7 +76,7 @@ describe('builder: builder generate', () => { ]) expect(builder.resolveCustomTemplates).toBeCalledTimes(1) expect(builder.resolveLoadingIndicator).toBeCalledTimes(1) - expect(builder.options.build.watch).toEqual(['/var/nuxt/src/template/**/*.{vue,js,ts,tsx}']) + expect(builder.options.build.watch).toEqual(['/var/nuxt/src/template/**/*.{vue,js}']) expect(builder.compileTemplates).toBeCalledTimes(1) expect(consola.success).toBeCalledTimes(1) expect(consola.success).toBeCalledWith('Nuxt files generated') @@ -95,7 +95,7 @@ describe('builder: builder generate', () => { expect(Glob).toBeCalledTimes(1) expect(Glob).toBeCalledWith( - '/var/nuxt/dir/**/*.{vue,js,ts,tsx}', + '/var/nuxt/dir/**/*.{vue,js}', { cwd: '/var/nuxt/src', ignore: '/var/nuxt/ignore' } ) expect(builder.ignore.filter).toBeCalledTimes(1) @@ -624,7 +624,7 @@ describe('builder: builder generate', () => { srcDir: '/var/nuxt/src', pagesDir: '/var/nuxt/pages', routeNameSplitter: '[splitter]', - supportedExtensions: ['vue', 'js', 'ts', 'tsx'] + supportedExtensions: ['vue', 'js'] }) expect(nuxt.callHook).toBeCalledTimes(1) expect(nuxt.callHook).toBeCalledWith( diff --git a/packages/builder/test/builder.plugin.test.js b/packages/builder/test/builder.plugin.test.js index 009e682b42..f398dbdd4c 100644 --- a/packages/builder/test/builder.plugin.test.js +++ b/packages/builder/test/builder.plugin.test.js @@ -117,7 +117,7 @@ describe('builder: builder plugins', () => { ] builder.relativeToBuild = jest.fn(src => `relative(${src})`) - Glob.mockImplementationOnce(src => [`${src}.js`, `${src}.ts`]) + Glob.mockImplementationOnce(src => [`${src}.js`]) isIndexFileAndFolder.mockReturnValueOnce(false) await builder.resolvePlugins() diff --git a/packages/builder/test/builder.watch.test.js b/packages/builder/test/builder.watch.test.js index 21229c6fb0..f638eb9e85 100644 --- a/packages/builder/test/builder.watch.test.js +++ b/packages/builder/test/builder.watch.test.js @@ -46,8 +46,8 @@ describe('builder: builder watch', () => { ] const globbedPatterns = [ - '/var/nuxt/src/layouts/**/*.{vue,js,ts,tsx}', - '/var/nuxt/src/middleware/**/*.{vue,js,ts,tsx}' + '/var/nuxt/src/layouts/**/*.{vue,js}', + '/var/nuxt/src/middleware/**/*.{vue,js}' ] expect(r).toBeCalledTimes(2) @@ -133,7 +133,7 @@ describe('builder: builder watch', () => { expect(r).nthCalledWith(3, '/var/nuxt/src', '/var/nuxt/src/pages') expect(upath.normalizeSafe).toBeCalledTimes(3) - expect(upath.normalizeSafe).nthCalledWith(3, '/var/nuxt/src/pages/**/*.{vue,js,ts,tsx}', 2, expect.any(Array)) + expect(upath.normalizeSafe).nthCalledWith(3, '/var/nuxt/src/pages/**/*.{vue,js}', 2, expect.any(Array)) }) test('should invoke generateRoutesAndFiles on file refresh', () => { diff --git a/packages/cli/src/command.js b/packages/cli/src/command.js index 8bc86a7842..fd965ce8c9 100644 --- a/packages/cli/src/command.js +++ b/packages/cli/src/command.js @@ -1,5 +1,4 @@ -import path from 'path' import consola from 'consola' import minimist from 'minimist' import { name, version } from '../package.json' @@ -7,7 +6,6 @@ import { forceExit } from './utils' import { loadNuxtConfig } from './utils/config' import { indent, foldLines, colorize } from './utils/formatting' import { startSpaces, optionSpaces, forceExitTimeout } from './utils/constants' -import { detectTypeScript } from './utils/typescript' import * as imports from './imports' export default class NuxtCommand { @@ -92,16 +90,9 @@ export default class NuxtCommand { } async getNuxtConfig (extraOptions = {}) { - const rootDir = path.resolve(this.argv._[0] || '.') - // Flag to indicate nuxt is running with CLI (not programmatic) extraOptions._cli = true - // Typescript support - extraOptions._typescript = await detectTypeScript(rootDir, { - transpileOnly: this.cmd.name === 'start' - }) - const config = await loadNuxtConfig(this.argv) const options = Object.assign(config, extraOptions) diff --git a/packages/cli/src/imports.js b/packages/cli/src/imports.js index 51aac282d8..50e283fc45 100644 --- a/packages/cli/src/imports.js +++ b/packages/cli/src/imports.js @@ -27,7 +27,4 @@ export const webpack = () => _import('@nuxt/webpack') export const generator = () => _import('@nuxt/generator') export const core = () => _import('@nuxt/core') -export const tsNode = () => _import('ts-node') -export const nuxtTypescript = () => _import('@nuxt/typescript') - export const importModule = _import diff --git a/packages/cli/src/utils/banner.js b/packages/cli/src/utils/banner.js index 6575d41f3b..9d0968904c 100644 --- a/packages/cli/src/utils/banner.js +++ b/packages/cli/src/utils/banner.js @@ -25,10 +25,6 @@ export function showBanner (nuxt, showMemoryUsage = true) { // Running mode titleLines.push(`Running in ${nuxt.options.dev ? chalk.bold.blue('development') : chalk.bold.green('production')} mode (${chalk.bold(nuxt.options.mode)})`) - if (nuxt.options._typescript && nuxt.options._typescript.runtime) { - titleLines.push(`TypeScript support is ${chalk.green.bold('enabled')}`) - } - if (showMemoryUsage) { titleLines.push(getFormattedMemoryUsage()) } diff --git a/packages/cli/src/utils/config.js b/packages/cli/src/utils/config.js index 718e9a3d79..af676ffa0d 100644 --- a/packages/cli/src/utils/config.js +++ b/packages/cli/src/utils/config.js @@ -24,11 +24,7 @@ export async function loadNuxtConfig (argv) { // Clear cache clearRequireCache(nuxtConfigFile) - if (nuxtConfigFile.endsWith('.ts')) { - options = require(nuxtConfigFile) || {} - } else { - options = esm(module)(nuxtConfigFile) || {} - } + options = esm(module)(nuxtConfigFile) || {} if (options.default) { options = options.default diff --git a/packages/cli/src/utils/typescript.js b/packages/cli/src/utils/typescript.js deleted file mode 100644 index ca5e849b04..0000000000 --- a/packages/cli/src/utils/typescript.js +++ /dev/null @@ -1,68 +0,0 @@ -import path from 'path' -import fs from 'fs-extra' -import * as imports from '../imports' - -let _guard = false -export const setGuard = (val) => { _guard = val } - -async function registerTSNode ({ tsConfigPath, options }) { - if (_guard) { - return - } - - const { register } = await imports.tsNode() - - // https://github.com/TypeStrong/ts-node - register({ - project: tsConfigPath, - compilerOptions: { - module: 'commonjs' - }, - ...options - }) - - _guard = true -} - -async function getNuxtTypeScript () { - try { - return await imports.nuxtTypescript() - } catch (error) { - if (error.code !== 'MODULE_NOT_FOUND') { - throw (error) - } - } -} - -export async function detectTypeScript (rootDir, options = {}) { - const typescript = { - tsConfigPath: path.resolve(rootDir, 'tsconfig.json'), - tsConfigExists: false, - runtime: false, - build: false, - options - } - - // Check if tsconfig.json exists - typescript.tsConfigExists = await fs.exists(typescript.tsConfigPath) - - // Skip if tsconfig.json not exists - if (!typescript.tsConfigExists) { - return typescript - } - - // Register runtime support - typescript.runtime = true - await registerTSNode(typescript) - - // Try to load @nuxt/typescript - const nuxtTypeScript = await getNuxtTypeScript() - - // If exists do additional setup - if (nuxtTypeScript) { - typescript.build = true - await nuxtTypeScript.setupDefaults(typescript.tsConfigPath) - } - - return typescript -} diff --git a/packages/cli/test/unit/typescript.test.js b/packages/cli/test/unit/typescript.test.js deleted file mode 100644 index 2e247434b8..0000000000 --- a/packages/cli/test/unit/typescript.test.js +++ /dev/null @@ -1,50 +0,0 @@ -import { resolve } from 'path' -import { mkdirp, writeFile, remove } from 'fs-extra' -import { register } from 'ts-node' -import { detectTypeScript, setGuard } from '../../src/utils/typescript' - -jest.mock('ts-node') - -describe('Typescript Support', () => { - const rootDir = 'tmp' - const rootDir2 = 'tmp2' - const tsConfigPath = resolve(rootDir, 'tsconfig.json') - - beforeAll(async () => { - await mkdirp(rootDir) - await mkdirp(rootDir2) - await writeFile(tsConfigPath, '{}', 'utf-8') - }) - - beforeEach(() => { - register.mockReset() - setGuard(false) - }) - - test('detectTypeScript detects and registers runtime', async () => { - await detectTypeScript(rootDir) - expect(register).toHaveBeenCalledTimes(1) - expect(register).toHaveBeenCalledWith({ - project: tsConfigPath, - compilerOptions: { - module: 'commonjs' - } - }) - }) - - test('multiple detectTypeScript calls registers runtime only once', async () => { - await detectTypeScript(rootDir) - await detectTypeScript(rootDir) - expect(register).toHaveBeenCalledTimes(1) - }) - - test('detectTypeScript skips rootDir without tsconfig.json', async () => { - await detectTypeScript(rootDir2) - expect(register).toHaveBeenCalledTimes(0) - }) - - afterAll(async () => { - await remove(rootDir) - await remove(rootDir2) - }) -}) diff --git a/packages/config/package.json b/packages/config/package.json index a4dc8c7a55..a932bb5688 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -4,11 +4,9 @@ "repository": "nuxt/nuxt.js", "license": "MIT", "files": [ - "dist", - "types/*.d.ts" + "dist" ], "main": "dist/config.js", - "typings": "types/index.d.ts", "dependencies": { "@nuxt/utils": "2.8.1", "consola": "^2.9.0", diff --git a/packages/config/src/config/build.js b/packages/config/src/config/build.js index 894c20e862..ea071a4005 100644 --- a/packages/config/src/config/build.js +++ b/packages/config/src/config/build.js @@ -51,20 +51,8 @@ export default () => ({ }, scss: {}, stylus: {}, - ts: { - transpileOnly: true, - appendTsSuffixTo: [/\.vue$/] - }, - tsx: { - transpileOnly: true, - appendTsxSuffixTo: [/\.vue$/] - }, vueStyle: {} }, - typescript: { - typeCheck: true, - ignoreNotFoundWarnings: false - }, styleResources: {}, plugins: [], terser: {}, diff --git a/packages/config/src/options.js b/packages/config/src/options.js index f06b09fbb9..4eab89a796 100644 --- a/packages/config/src/options.js +++ b/packages/config/src/options.js @@ -153,7 +153,7 @@ export function getNuxtConfig (_options) { ) ) - const mandatoryExtensions = ['js', 'mjs', 'ts'] + const mandatoryExtensions = ['js', 'mjs'] options.extensions = mandatoryExtensions .filter(ext => !options.extensions.includes(ext)) diff --git a/packages/config/test/__snapshots__/options.test.js.snap b/packages/config/test/__snapshots__/options.test.js.snap index 062ce70d10..5c00059e22 100644 --- a/packages/config/test/__snapshots__/options.test.js.snap +++ b/packages/config/test/__snapshots__/options.test.js.snap @@ -91,18 +91,6 @@ Object { "stylus": Object { "sourceMap": false, }, - "ts": Object { - "appendTsSuffixTo": Array [ - /\\\\\\.vue\\$/, - ], - "transpileOnly": true, - }, - "tsx": Object { - "appendTsxSuffixTo": Array [ - /\\\\\\.vue\\$/, - ], - "transpileOnly": true, - }, "vue": Object { "productionMode": true, "transformAssetUrls": Object { @@ -151,10 +139,6 @@ Object { "templates": Array [], "terser": Object {}, "transpile": Array [], - "typescript": Object { - "ignoreNotFoundWarnings": false, - "typeCheck": true, - }, "warningIgnoreFilters": Array [], "watch": Array [], }, @@ -179,7 +163,6 @@ Object { "extensions": Array [ "js", "mjs", - "ts", ], "fetch": Object { "client": true, diff --git a/packages/config/test/config/__snapshots__/index.test.js.snap b/packages/config/test/config/__snapshots__/index.test.js.snap index 452cc7c18e..0b780ec202 100644 --- a/packages/config/test/config/__snapshots__/index.test.js.snap +++ b/packages/config/test/config/__snapshots__/index.test.js.snap @@ -68,18 +68,6 @@ Object { }, "scss": Object {}, "stylus": Object {}, - "ts": Object { - "appendTsSuffixTo": Array [ - /\\\\\\.vue\\$/, - ], - "transpileOnly": true, - }, - "tsx": Object { - "appendTsxSuffixTo": Array [ - /\\\\\\.vue\\$/, - ], - "transpileOnly": true, - }, "vue": Object { "transformAssetUrls": Object { "embed": "src", @@ -131,10 +119,6 @@ Object { "templates": Array [], "terser": Object {}, "transpile": Array [], - "typescript": Object { - "ignoreNotFoundWarnings": false, - "typeCheck": true, - }, "warningIgnoreFilters": Array [], "watch": Array [], }, @@ -410,18 +394,6 @@ Object { }, "scss": Object {}, "stylus": Object {}, - "ts": Object { - "appendTsSuffixTo": Array [ - /\\\\\\.vue\\$/, - ], - "transpileOnly": true, - }, - "tsx": Object { - "appendTsxSuffixTo": Array [ - /\\\\\\.vue\\$/, - ], - "transpileOnly": true, - }, "vue": Object { "transformAssetUrls": Object { "embed": "src", @@ -473,10 +445,6 @@ Object { "templates": Array [], "terser": Object {}, "transpile": Array [], - "typescript": Object { - "ignoreNotFoundWarnings": false, - "typeCheck": true, - }, "warningIgnoreFilters": Array [], "watch": Array [], }, diff --git a/packages/config/test/options.test.js b/packages/config/test/options.test.js index 15573d0b94..0eefbd41ce 100644 --- a/packages/config/test/options.test.js +++ b/packages/config/test/options.test.js @@ -74,7 +74,7 @@ describe('config: options', () => { test('should transform extensions to array', () => { const { extensions } = getNuxtConfig({ extensions: 'ext' }) - expect(extensions).toEqual(['js', 'mjs', 'ts', 'ext']) + expect(extensions).toEqual(['js', 'mjs', 'ext']) }) test('should support custom global name', () => { diff --git a/packages/config/types/build.d.ts b/packages/config/types/build.d.ts deleted file mode 100644 index e3de5bf2f6..0000000000 --- a/packages/config/types/build.d.ts +++ /dev/null @@ -1,81 +0,0 @@ -/** - * NuxtConfigurationBuild - * Documentation: https://nuxtjs.org/api/configuration-build - */ - -import { - Configuration as WebpackConfiguration, - Options as WebpackOptions, - Plugin as WebpackPlugin -} from 'webpack' -import { TransformOptions, PluginItem } from '@babel/core' -import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer' -import { Options as WebpackDevMiddlewareOptions } from 'webpack-dev-middleware' -import { Options as WebpackHotMiddlewareOptions } from 'webpack-hot-middleware' -import { Options as HtmlMinifierOptions } from 'html-minifier' -import { Options as OptimizeCssAssetsWebpackPluginOptions } from 'optimize-css-assets-webpack-plugin' -import { TerserPluginOptions } from 'terser-webpack-plugin' - -type NuxtConfigurationLoaders = any // TBD - -interface NuxtBabelPresetEnv { - isServer: boolean -} - -interface NuxtBabelOptions extends Pick> { - cacheCompression?: boolean - cacheDirectory?: boolean - cacheIdentifier?: string - customize?: string | null - presets?: ((env: NuxtBabelPresetEnv, defaultPreset: [string, object]) => PluginItem[] | void) | PluginItem[] | null -} - -export interface NuxtConfigurationBuild { - analyze?: BundleAnalyzerPlugin.Options | boolean - babel?: NuxtBabelOptions - cache?: boolean - crossorigin?: string - cssSourceMap?: boolean - devMiddleware?: WebpackDevMiddlewareOptions - devtools?: boolean - extend?( - config: WebpackConfiguration, - ctx: { - isDev: boolean, - isClient: boolean, - isServer: boolean, - loaders: NuxtConfigurationLoaders - } - ): void - extractCSS?: boolean - filenames?: { [key in 'app' | 'chunk' | 'css' | 'img' | 'font' | 'video']?: (ctx: { isDev: boolean }) => string } - friendlyErrors?: boolean - hardSource?: boolean - hotMiddleware?: WebpackHotMiddlewareOptions - html?: { minify: HtmlMinifierOptions } - indicator?: boolean - loaders?: NuxtConfigurationLoaders - optimization?: WebpackOptions.Optimization - optimizeCSS?: OptimizeCssAssetsWebpackPluginOptions | boolean - parallel?: boolean - plugins?: WebpackPlugin[] - postcss?: any // TBD - profile?: boolean - publicPath?: string - quiet?: boolean - splitChunks?: { - commons?: boolean - layouts?: boolean - pages?: boolean - } - ssr?: boolean - standalone?: boolean - templates?: any - terser?: TerserPluginOptions | boolean - transpile?: (string | RegExp)[] - typescript?: { - typeCheck?: { [key: string]: any } | boolean, // TBD - Couldn't find typedefs for the forkTsCheckerWebpackPlugin options - ignoreNotFoundWarnings?: boolean - } - watch?: string[] -} diff --git a/packages/config/types/env.d.ts b/packages/config/types/env.d.ts deleted file mode 100644 index 42d83c86e2..0000000000 --- a/packages/config/types/env.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -/** - * NuxtConfigurationEnv - * Documentation: https://nuxtjs.org/api/configuration-env - */ - -export type NuxtConfigurationEnv = { [key: string]: string } diff --git a/packages/config/types/fetch.d.ts b/packages/config/types/fetch.d.ts deleted file mode 100644 index 0860e01ebb..0000000000 --- a/packages/config/types/fetch.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * NuxtConfigurationFetch - * Documentation: ? - */ - -export interface NuxtConfigurationFetch { - client?: boolean - server?: boolean -} diff --git a/packages/config/types/generate.d.ts b/packages/config/types/generate.d.ts deleted file mode 100644 index 2adf9eb0e1..0000000000 --- a/packages/config/types/generate.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * NuxtConfigurationGenerate - * Documentation: https://nuxtjs.org/api/configuration-generate - */ - -type NuxtConfigurationGenerateRoute = string | { route: string, payload: any } - -type NuxtConfigurationGenerateRoutesFunction = () => (Promise | NuxtConfigurationGenerateRoute[]) -type NuxtConfigurationGenerateRoutesFunctionWithCallback = (callback: (err: Error, routes: NuxtConfigurationGenerateRoute[]) => void) => void - -export interface NuxtConfigurationGenerate { - concurrency?: number - devtools?: boolean - dir?: string - fallback?: string | boolean - interval?: number - routes?: NuxtConfigurationGenerateRoute[] | NuxtConfigurationGenerateRoutesFunction | NuxtConfigurationGenerateRoutesFunctionWithCallback - subFolders?: boolean -} diff --git a/packages/config/types/globals.d.ts b/packages/config/types/globals.d.ts deleted file mode 100644 index 624be78c1e..0000000000 --- a/packages/config/types/globals.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * NuxtConfigurationGlobals - * Documentation: https://nuxtjs.org/api/configuration-globals - */ - -type NuxtConfigurationCustomizableGlobalName = 'id' | 'nuxt' | 'context' | 'pluginPrefix' | 'readyCallback' | 'loadedCallback' -export type NuxtConfigurationGlobals = { [key in NuxtConfigurationCustomizableGlobalName]?: (globalName: string) => string } diff --git a/packages/config/types/head.d.ts b/packages/config/types/head.d.ts deleted file mode 100644 index 57d5658e5e..0000000000 --- a/packages/config/types/head.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * NuxtConfigurationHead - * Documentation: https://nuxtjs.org/api/configuration-head - * https://github.com/declandewet/vue-meta#recognized-metainfo-properties - */ - -import { MetaInfo } from 'vue-meta' - -export type NuxtConfigurationHead = MetaInfo diff --git a/packages/config/types/hooks.d.ts b/packages/config/types/hooks.d.ts deleted file mode 100644 index 0593007758..0000000000 --- a/packages/config/types/hooks.d.ts +++ /dev/null @@ -1,50 +0,0 @@ -/** - * NuxtConfigurationHooks - * Documentation: https://nuxtjs.org/api/configuration-hooks - * https://nuxtjs.org/api/internals-nuxt#hooks - * https://nuxtjs.org/api/internals-renderer#hooks - * https://nuxtjs.org/api/internals-module-container#hooks - * https://nuxtjs.org/api/internals-builder#hooks - * https://nuxtjs.org/api/internals-generator#hooks - */ - -export interface NuxtConfigurationHooks { - build?: { - before?(builder: any, buildOptions: any): void - compile?(params: { name: 'client' | 'server', compiler: any }): void - compiled?(params: { name: 'client' | 'server', compiler: any, stats: any }): void - done?(builder: any): void - extendRoutes?(routes: any, resolve: any): void - templates?(params: { templateFiles: any, templateVars: any, resolve: any }): void - } - close?(nuxt: any): void - error?(error: Error): void - generate?: { - before?(generator: any, generateOptions: any): void - distCopied?(generator: any): void - distRemoved?(generator: any): void - done?(generator: any): void - extendRoutes?(routes: any): void - page?(params: { route: any, path: any, html: any }): void - routeCreated?(route: any, path: any, errors: any): void - routeFailed?(route: any, errors: any): void - } - listen?(server: any, params: { host: string, port: number | string }): void - modules?: { - before?(moduleContainer: any, options: any): void - done?(moduleContainer: any): void - } - ready?(nuxt: any): void - render?: { - before?(renderer: any, options: any): void - done?(renderer: any): void - errorMiddleware?(app: any): void - resourcesLoaded?(resources: any): void - route?(url: string, result: any, context: any): void - routeContext?(context: any): void - routeDone?(url: string, result: any, context: any): void - setupMiddleware?(app: any): void - } -} - -// Hooks need too many core typedefs to be 100% defined diff --git a/packages/config/types/index.d.ts b/packages/config/types/index.d.ts deleted file mode 100644 index f278c25cd3..0000000000 --- a/packages/config/types/index.d.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { NuxtConfigurationBuild } from './build' -import { NuxtConfigurationEnv } from './env' -import { NuxtConfigurationFetch } from './fetch' -import { NuxtConfigurationGenerate } from './generate' -import { NuxtConfigurationHead } from './head' -import { NuxtConfigurationHooks } from './hooks' -import { NuxtConfigurationGlobals } from './globals' -import { NuxtConfigurationLoading, NuxtConfigurationLoadingIndicator } from './loading' -import { NuxtConfigurationModule } from './module' -import { NuxtConfigurationPlugin } from './plugin' -import { NuxtConfigurationRender } from './render' -import { NuxtConfigurationRouter, NuxtRouteConfig } from './router' -import { NuxtConfigurationServer } from './server' -import { NuxtConfigurationServerMiddleware } from './server-middleware' -import { NuxtConfigurationVueConfiguration } from './vue-configuration' -import { NuxtConfigurationWatchers } from './watchers' - -type ExtendableConfiguration = { [key: string]: any } - -export default interface NuxtConfiguration extends ExtendableConfiguration { - build?: NuxtConfigurationBuild - buildDir?: string - css?: string[] - dev?: boolean - env?: NuxtConfigurationEnv - fetch?: NuxtConfigurationFetch - generate?: NuxtConfigurationGenerate - globalName?: string - globals?: NuxtConfigurationGlobals - head?: NuxtConfigurationHead - hooks?: NuxtConfigurationHooks - ignorePrefix?: string - ignore?: string[] - layoutTransition?: any // TBD - should be of type `Transition` already defined in @nuxt/vue-app - loading?: NuxtConfigurationLoading | false | string - loadingIndicator?: NuxtConfigurationLoadingIndicator | false | string - mode?: 'spa' | 'universal' // TBR (To Be Reviewed) - should be a `NuxtMode` interface which should be used in @nuxt/vue-app/types/process.d.ts as well - modern?: 'client' | 'server' | boolean - modules?: NuxtConfigurationModule[] - devModules?: NuxtConfigurationModule[] - modulesDir?: string[] - plugins?: NuxtConfigurationPlugin[] - render?: NuxtConfigurationRender - rootDir?: string - router?: NuxtConfigurationRouter - server?: NuxtConfigurationServer - serverMiddleware?: NuxtConfigurationServerMiddleware[] - srcDir?: string - transition?: any // TBD - should be of type `Transition` already defined in @nuxt/vue-app - 'vue.config'?: NuxtConfigurationVueConfiguration - watch?: string[] - watchers?: NuxtConfigurationWatchers -} - -export { - NuxtConfigurationBuild as Build, - NuxtConfigurationEnv as Env, - NuxtConfigurationFetch as Fetch, - NuxtConfigurationGenerate as Generate, - NuxtConfigurationHead as Head, - NuxtConfigurationHooks as Hooks, - NuxtConfigurationGlobals as Globals, - NuxtConfigurationLoading as Loading, - NuxtConfigurationLoadingIndicator as LoadingIndicator, - NuxtConfigurationModule as Module, - NuxtConfigurationPlugin as Plugin, - NuxtConfigurationRender as Render, - NuxtConfigurationRouter as Router, - NuxtRouteConfig as RouteConfig, - NuxtConfigurationServer as Server, - NuxtConfigurationServerMiddleware as ServerMiddleware, - NuxtConfigurationVueConfiguration as VueConfiguration, - NuxtConfigurationWatchers as Watchers -} - -export namespace NuxtConfiguration { - export type Build = NuxtConfigurationBuild - export type Env = NuxtConfigurationEnv - export type Fetch = NuxtConfigurationFetch - export type Generate = NuxtConfigurationGenerate - export type Head = NuxtConfigurationHead - export type Hooks = NuxtConfigurationHooks - export type Globals = NuxtConfigurationGlobals - export type Loading = NuxtConfigurationLoading - export type LoadingIndicator = NuxtConfigurationLoadingIndicator - export type Module = NuxtConfigurationModule - export type Plugin = NuxtConfigurationPlugin - export type Render = NuxtConfigurationRender - export type Router = NuxtConfigurationRouter - export type Server = NuxtConfigurationServer - export type ServerMiddleware = NuxtConfigurationServerMiddleware - export type VueConfiguration = NuxtConfigurationVueConfiguration - export type Watchers = NuxtConfigurationWatchers -} diff --git a/packages/config/types/loading.d.ts b/packages/config/types/loading.d.ts deleted file mode 100644 index b3d70615c2..0000000000 --- a/packages/config/types/loading.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * NuxtConfigurationLoading - * Documentation: https://nuxtjs.org/api/configuration-loading - */ - -export interface NuxtConfigurationLoading { - color?: string - continuous?: boolean - css?: boolean - duration?: number - failedColor?: string - height?: string - rtl?: boolean - throttle?: number -} - -/** - * NuxtConfigurationLoadingIndicator - * Documentation: https://nuxtjs.org/api/configuration-loading-indicator - */ - -export interface NuxtConfigurationLoadingIndicator { - background?: string - color?: string - color2?: string - name?: string -} diff --git a/packages/config/types/module.d.ts b/packages/config/types/module.d.ts deleted file mode 100644 index 28416a59eb..0000000000 --- a/packages/config/types/module.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * NuxtConfigurationModule - * Documentation: https://nuxtjs.org/api/configuration-modules - * https://nuxtjs.org/guide/modules - */ - -type NuxtConfigurationModuleFunction = (this: any, moduleOptions?: { [key: string]: any }) => Promise | void // this, this.options & this.nuxt TBD - -export type NuxtConfigurationModule = string | [string, { [key: string]: any }] | NuxtConfigurationModuleFunction diff --git a/packages/config/types/plugin.d.ts b/packages/config/types/plugin.d.ts deleted file mode 100644 index 9db8ff2423..0000000000 --- a/packages/config/types/plugin.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * NuxtConfigurationPlugin - * Documentation: https://nuxtjs.org/api/configuration-plugins - * https://nuxtjs.org/guide/plugins - */ - -export type NuxtConfigurationPlugin = { mode?: 'all' | 'client' | 'server', src: string, ssr?: boolean } | string diff --git a/packages/config/types/render.d.ts b/packages/config/types/render.d.ts deleted file mode 100644 index 08ee6cea68..0000000000 --- a/packages/config/types/render.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * NuxtConfigurationRender - * Documentation: https://nuxtjs.org/api/configuration-render - * https://ssr.vuejs.org/api/#renderer-options - * https://github.com/expressjs/compression#readme - * https://github.com/expressjs/serve-static#readme - * https://github.com/jshttp/etag#readme - */ - -import { CompressionOptions } from 'compression' -import { Options as EtagOptions } from 'etag' -import { ServeStaticOptions } from 'serve-static' -import { BundleRendererOptions } from 'vue-server-renderer' -import { NuxtConfigurationServerMiddleware } from './server-middleware' - -export interface NuxtConfigurationRender { - bundleRenderer?: BundleRendererOptions - compressor?: CompressionOptions | NuxtConfigurationServerMiddleware - csp?: any // TBD - dist?: ServeStaticOptions - etag?: EtagOptions | false - fallback?: any // https://github.com/nuxt/serve-placeholder types TBD - http2?: any // TBD - resourceHints?: boolean - ssr?: boolean - ssrLog?: boolean | 'collapsed' - static?: ServeStaticOptions -} diff --git a/packages/config/types/router.d.ts b/packages/config/types/router.d.ts deleted file mode 100644 index c035f48a42..0000000000 --- a/packages/config/types/router.d.ts +++ /dev/null @@ -1,22 +0,0 @@ - -/** - * NuxtConfigurationRouter - * Documentation: https://nuxtjs.org/api/configuration-router - * https://router.vuejs.org/api/#router-construction-options - */ - -import { RouterOptions, RouteConfig } from 'vue-router' - -export interface NuxtRouteConfig extends RouteConfig { - chunkNames: { [key: string]: string } - component?: RouteConfig['component'] | string - children?: NuxtRouteConfig[] -} - -export interface NuxtConfigurationRouter extends RouterOptions { - routeNameSplitter?: string - extendRoutes?(routes: NuxtRouteConfig[], resolve: (...pathSegments: string[]) => string): void - linkPrefetchedClass?: string - middleware?: string | string[] - prefetchLinks?: boolean -} diff --git a/packages/config/types/server-middleware.d.ts b/packages/config/types/server-middleware.d.ts deleted file mode 100644 index e4d0ac5f3f..0000000000 --- a/packages/config/types/server-middleware.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -/** - * NuxtConfigurationServerMiddleware - * Documentation: https://nuxtjs.org/api/configuration-servermiddleware - */ - -import { RequestHandler } from 'express' - -export type NuxtConfigurationServerMiddleware = string | { path: string, handler: string | Function } | RequestHandler diff --git a/packages/config/types/server.d.ts b/packages/config/types/server.d.ts deleted file mode 100644 index c7057b4fec..0000000000 --- a/packages/config/types/server.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * NuxtConfigurationServer - * Documentation: https://nuxtjs.org/api/configuration-server - */ - -export interface NuxtConfigurationServer { - host?: string - https?: { - cert?: string | Buffer - key?: string | Buffer - } - port?: number | string - socket?: string - timing?: boolean | { total?: boolean } -} diff --git a/packages/config/types/vue-configuration.d.ts b/packages/config/types/vue-configuration.d.ts deleted file mode 100644 index 99a12a10d9..0000000000 --- a/packages/config/types/vue-configuration.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * NuxtConfigurationVueConfiguration - * Documentation: https://nuxtjs.org/api/configuration-vue-config - * https://vuejs.org/v2/api/#Global-Config - */ - -import { VueConstructor } from 'vue' - -export type NuxtConfigurationVueConfiguration = VueConstructor['config'] diff --git a/packages/config/types/watchers.d.ts b/packages/config/types/watchers.d.ts deleted file mode 100644 index 999f1ac48f..0000000000 --- a/packages/config/types/watchers.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * NuxtConfigurationWatchers - * Documentation: https://nuxtjs.org/api/configuration-watchers - * https://github.com/paulmillr/chokidar#api - * https://webpack.js.org/configuration/watch/#watchoptions - */ - -import { WatchOptions as ChokidarWatchOptions } from 'chokidar' -import { WatchOptions as WebpackWatchOptions } from 'webpack' - -export type NuxtConfigurationWatchers = { - chokidar?: ChokidarWatchOptions - webpack?: WebpackWatchOptions -} diff --git a/packages/core/test/resolver.test.js b/packages/core/test/resolver.test.js index b1bcd6d52a..8c3ac46e53 100644 --- a/packages/core/test/resolver.test.js +++ b/packages/core/test/resolver.test.js @@ -392,18 +392,6 @@ describe('core: resolver', () => { expect(resolvedModule).toBe(path) }) - test('should resolve with commonjs for ts module', () => { - const resolver = new Resolver({ - options: {} - }) - resolver.resolvePath = jest.fn(() => '/var/nuxt/resolver/module.ts') - resolver.esm = jest.fn(() => ({ default: 'resolved ts module' })) - - expect(() => resolver.requireModule('/var/nuxt/resolver/module')).toThrow( - "Cannot find module '/var/nuxt/resolver/module.ts'" - ) - }) - test('should throw error if resolvePath failed', () => { const resolver = new Resolver({ options: {} diff --git a/packages/typescript/package.js b/packages/typescript/package.js deleted file mode 100644 index 19d0ef6e2d..0000000000 --- a/packages/typescript/package.js +++ /dev/null @@ -1,3 +0,0 @@ -export default { - build: true -} diff --git a/packages/typescript/package.json b/packages/typescript/package.json deleted file mode 100644 index 3cebbf32de..0000000000 --- a/packages/typescript/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "@nuxt/typescript", - "version": "2.8.1", - "repository": "nuxt/nuxt.js", - "license": "MIT", - "files": [ - "dist" - ], - "main": "dist/typescript.js", - "dependencies": { - "@types/babel__core": "^7.1.2", - "@types/chokidar": "^2.1.3", - "@types/compression": "^0.0.36", - "@types/etag": "^1.8.0", - "@types/express": "^4.17.0", - "@types/html-minifier": "^3.5.3", - "@types/node": "^11.13.18", - "@types/optimize-css-assets-webpack-plugin": "^1.3.4", - "@types/serve-static": "^1.13.2", - "@types/terser-webpack-plugin": "^1.2.1", - "@types/webpack": "^4.32.0", - "@types/webpack-bundle-analyzer": "^2.13.2", - "@types/webpack-dev-middleware": "^2.0.3", - "@types/webpack-hot-middleware": "^2.16.5", - "consola": "^2.9.0", - "fork-ts-checker-webpack-plugin": "^1.4.3", - "fs-extra": "^8.1.0", - "ts-loader": "^6.0.4", - "typescript": "^3.5.3" - }, - "engines": { - "node": ">=8.6.0" - }, - "publishConfig": { - "access": "public" - } -} diff --git a/packages/typescript/src/index.js b/packages/typescript/src/index.js deleted file mode 100644 index 1ce0a210bc..0000000000 --- a/packages/typescript/src/index.js +++ /dev/null @@ -1,48 +0,0 @@ -import { exists, readFile, writeJSON } from 'fs-extra' -import consola from 'consola' - -export const defaultTsJsonConfig = { - compilerOptions: { - target: 'esnext', - module: 'esnext', - moduleResolution: 'node', - lib: [ - 'esnext', - 'esnext.asynciterable', - 'dom' - ], - esModuleInterop: true, - experimentalDecorators: true, - allowJs: true, - sourceMap: true, - strict: true, - noImplicitAny: false, - noEmit: true, - baseUrl: '.', - paths: { - '~/*': [ - './*' - ], - '@/*': [ - './*' - ] - }, - types: [ - '@types/node', - '@nuxt/vue-app' - ] - } -} - -export async function setupDefaults (tsConfigPath) { - let contents = '' - - if (await exists(tsConfigPath)) { - contents = await readFile(tsConfigPath, 'utf-8') - } - - if (!contents || contents === '{}') { - consola.info(`Generating ${tsConfigPath.replace(process.cwd(), '')}`) - await writeJSON(tsConfigPath, defaultTsJsonConfig, { spaces: 2 }) - } -} diff --git a/packages/typescript/test/setup.test.js b/packages/typescript/test/setup.test.js deleted file mode 100644 index 34d876c904..0000000000 --- a/packages/typescript/test/setup.test.js +++ /dev/null @@ -1,31 +0,0 @@ -import { resolve } from 'path' -import { mkdirp, readJSON, writeFile, remove, readFile } from 'fs-extra' -import { defaultTsJsonConfig, setupDefaults } from '@nuxt/typescript' - -describe('typescript setup', () => { - const rootDir = 'tmp' - const tsConfigPath = resolve(rootDir, 'tsconfig.json') - - beforeAll(async () => { - await mkdirp(rootDir) - await writeFile(tsConfigPath, '{}', 'utf-8') - }) - - test('Create tsconfig.json with defaults', async () => { - await setupDefaults(tsConfigPath) - expect(await readJSON(tsConfigPath)).toEqual(defaultTsJsonConfig) - }) - - test('Do not override tsconfig.json', async () => { - const fooJSON = '{ "foo": 123 }' - await writeFile(tsConfigPath, fooJSON, 'utf-8') - - await setupDefaults(tsConfigPath) - - expect(await readFile(tsConfigPath, 'utf-8')).toEqual(fooJSON) - }) - - afterAll(async () => { - await remove(rootDir) - }) -}) diff --git a/packages/utils/src/route.js b/packages/utils/src/route.js index 6263bab1e4..5beeeadd2d 100644 --- a/packages/utils/src/route.js +++ b/packages/utils/src/route.js @@ -136,7 +136,7 @@ export const createRoutes = function createRoutes ({ srcDir, pagesDir = '', routeNameSplitter = '-', - supportedExtensions = ['vue', 'js', 'ts', 'tsx'] + supportedExtensions = ['vue', 'js'] }) { const routes = [] files.forEach((file) => { diff --git a/packages/vue-app/package.json b/packages/vue-app/package.json index 56b6e960ba..4a6e4a0057 100644 --- a/packages/vue-app/package.json +++ b/packages/vue-app/package.json @@ -6,11 +6,9 @@ "files": [ "dist", "template", - "types/*.d.ts", "vetur" ], "main": "dist/vue-app.js", - "typings": "types/index.d.ts", "dependencies": { "node-fetch": "^2.6.0", "unfetch": "^4.1.0", diff --git a/packages/vue-app/types/index.d.ts b/packages/vue-app/types/index.d.ts deleted file mode 100644 index 0d7c0f5607..0000000000 --- a/packages/vue-app/types/index.d.ts +++ /dev/null @@ -1,97 +0,0 @@ -import Vue, { ComponentOptions } from 'vue' -import VueRouter, { Route } from 'vue-router' -import { Store } from 'vuex' -import { IncomingMessage, ServerResponse } from 'http' - -// augment typings of NodeJS.Process -import './process' - -// augment typings of Vue.js -import './vue' - -// augment typings of Vuex -import './vuex' - -type Dictionary = { [key: string]: T } - -type NuxtState = Dictionary - -export interface Context { - app: NuxtAppOptions - /** - * @deprecated Use process.client instead - */ - isClient: boolean - /** - * @deprecated Use process.server instead - */ - isServer: boolean - /** - * @deprecated Use process.static instead - */ - isStatic: boolean - isDev: boolean - isHMR: boolean - route: Route - store: Store - env: Dictionary - params: Route['params'] - payload: any - query: Route['query'] - req: IncomingMessage - res: ServerResponse - redirect(status: number, path: string, query?: Route['query']): void - redirect(path: string, query?: Route['query']): void - error(params: NuxtError): void - nuxtState: NuxtState - beforeNuxtRender(fn: (params: { Components: VueRouter['getMatchedComponents'], nuxtState: NuxtState }) => void): void -} - -export type Middleware = string | ((ctx: Context, cb: Function) => Promise | void) - -export interface Transition { - name?: string - mode?: string - css?: boolean - duration?: number - type?: string - enterClass?: string - enterToClass?: string - enterActiveClass?: string - leaveClass?: string - leaveToClass?: string - leaveActiveClass?: string - beforeEnter?(el: HTMLElement): void - enter?(el: HTMLElement, done: Function): void - afterEnter?(el: HTMLElement): void - enterCancelled?(el: HTMLElement): void - beforeLeave?(el: HTMLElement): void - leave?(el: HTMLElement, done: Function): void - afterLeave?(el: HTMLElement): void - leaveCancelled?(el: HTMLElement): void -} - -export interface NuxtError { - message?: string - path?: string - statusCode?: number -} - -export interface NuxtLoading extends Vue { - fail?(): NuxtLoading - finish(): NuxtLoading - increase?(num: number): NuxtLoading - pause?(): NuxtLoading - start(): NuxtLoading -} - -export interface NuxtAppOptions extends ComponentOptions { - [key: string]: any // TBD -} - -export interface NuxtApp extends Vue { - $options: NuxtAppOptions - $loading: NuxtLoading - isOffline: boolean - isOnline: boolean -} diff --git a/packages/vue-app/types/process.d.ts b/packages/vue-app/types/process.d.ts deleted file mode 100644 index abb0696f1a..0000000000 --- a/packages/vue-app/types/process.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Extends NodeJS.Process interface - */ - -declare namespace NodeJS { - interface Process { - browser: boolean - client: boolean - mode: 'spa' | 'universal' - modern: boolean - server: boolean - static: boolean - } -} diff --git a/packages/vue-app/types/vue.d.ts b/packages/vue-app/types/vue.d.ts deleted file mode 100644 index 5bf203dda9..0000000000 --- a/packages/vue-app/types/vue.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Extends interfaces in Vue.js - */ - -import Vue, { ComponentOptions } from 'vue' -import { Route } from 'vue-router' -import { MetaInfo } from 'vue-meta' -import { Context, Middleware, Transition, NuxtApp } from './index' - -declare module 'vue/types/options' { - interface ComponentOptions { - asyncData?(ctx: Context): object | undefined - fetch?(ctx: Context): Promise | void - head?: MetaInfo | (() => MetaInfo) - key?: string | ((to: Route) => string) - layout?: string | ((ctx: Context) => string) - loading?: boolean - middleware?: Middleware | Middleware[] - scrollToTop?: boolean - transition?: string | Transition | ((to: Route, from: Route) => string) - validate?(ctx: Context): Promise | boolean - watchQuery?: boolean | string[] - } -} - -declare module 'vue/types/vue' { - interface Vue { - $nuxt: NuxtApp - } -} diff --git a/packages/webpack/src/config/base.js b/packages/webpack/src/config/base.js index 0cda640968..a81ef7b336 100644 --- a/packages/webpack/src/config/base.js +++ b/packages/webpack/src/config/base.js @@ -159,7 +159,7 @@ export default class WebpackBaseConfig { return { resolve: { - extensions: ['.wasm', '.mjs', '.js', '.json', '.vue', '.jsx', '.ts', '.tsx'], + extensions: ['.wasm', '.mjs', '.js', '.json', '.vue', '.jsx'], alias: this.alias(), modules: webpackModulesDir }, @@ -262,26 +262,6 @@ export default class WebpackBaseConfig { }, use: perfLoader.js().concat(babelLoader) }, - { - test: /\.ts$/i, - use: [ - babelLoader, - { - loader: 'ts-loader', - options: this.loaders.ts - } - ] - }, - { - test: /\.tsx$/i, - use: [ - babelLoader, - { - loader: 'ts-loader', - options: this.loaders.tsx - } - ] - }, { test: /\.css$/i, oneOf: styleLoader.apply('css') @@ -422,22 +402,14 @@ export default class WebpackBaseConfig { } warningIgnoreFilter () { - const { buildOptions, options: { _typescript = {} } } = this.buildContext const filters = [ // Hide warnings about plugins without a default export (#1179) warn => warn.name === 'ModuleDependencyWarning' && warn.message.includes(`export 'default'`) && warn.message.includes('nuxt_plugin_'), - ...(buildOptions.warningIgnoreFilters || []) + ...(this.buildContext.buildOptions.warningIgnoreFilters || []) ] - if (_typescript.build && buildOptions.typescript && buildOptions.typescript.ignoreNotFoundWarnings) { - filters.push( - warn => warn.name === 'ModuleDependencyWarning' && - /export .* was not found in /.test(warn.message) - ) - } - return warn => !filters.some(ignoreFilter => ignoreFilter(warn)) } diff --git a/packages/webpack/src/config/client.js b/packages/webpack/src/config/client.js index aa2bb365dc..1c6ecda007 100644 --- a/packages/webpack/src/config/client.js +++ b/packages/webpack/src/config/client.js @@ -1,6 +1,5 @@ import path from 'path' import querystring from 'querystring' -import consola from 'consola' import webpack from 'webpack' import HTMLPlugin from 'html-webpack-plugin' import BundleAnalyzer from 'webpack-bundle-analyzer' @@ -89,7 +88,7 @@ export default class WebpackClientConfig extends WebpackBaseConfig { plugins () { const plugins = super.plugins() - const { buildOptions, options: { appTemplatePath, buildDir, modern, rootDir, _typescript = {} } } = this.buildContext + const { buildOptions, options: { appTemplatePath, buildDir, modern } } = this.buildContext // Generate output HTML for SSR if (buildOptions.ssr) { @@ -150,19 +149,6 @@ export default class WebpackClientConfig extends WebpackBaseConfig { })) } - // TypeScript type checker - // Only performs once per client compilation and only if `ts-loader` checker is not used (transpileOnly: true) - if (_typescript.build && buildOptions.typescript && buildOptions.typescript.typeCheck && !this.isModern && this.loaders.ts.transpileOnly) { - const ForkTsCheckerWebpackPlugin = require(this.buildContext.nuxt.resolver.resolveModule('fork-ts-checker-webpack-plugin')) - plugins.push(new ForkTsCheckerWebpackPlugin(Object.assign({ - vue: true, - tsconfig: path.resolve(rootDir, 'tsconfig.json'), - tslint: false, // We recommend using ESLint so we set this option to `false` by default - formatter: 'codeframe', - logger: consola - }, buildOptions.typescript.typeCheck))) - } - return plugins } diff --git a/test/fixtures/typescript/layouts/default.vue b/test/fixtures/typescript/layouts/default.vue deleted file mode 100644 index c0e0ef391d..0000000000 --- a/test/fixtures/typescript/layouts/default.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/test/fixtures/typescript/middleware/test.ts b/test/fixtures/typescript/middleware/test.ts deleted file mode 100644 index ead516c976..0000000000 --- a/test/fixtures/typescript/middleware/test.ts +++ /dev/null @@ -1 +0,0 @@ -export default () => {} diff --git a/test/fixtures/typescript/modules/module.ts b/test/fixtures/typescript/modules/module.ts deleted file mode 100644 index 26e6f060ff..0000000000 --- a/test/fixtures/typescript/modules/module.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default function testTSModule() { - -} diff --git a/test/fixtures/typescript/nuxt.config.ts b/test/fixtures/typescript/nuxt.config.ts deleted file mode 100644 index 26dc21fd3b..0000000000 --- a/test/fixtures/typescript/nuxt.config.ts +++ /dev/null @@ -1,15 +0,0 @@ -import NuxtConfiguration from '@nuxt/config' - -const config: NuxtConfiguration = { - modules: [ - '~/modules/module' - ], - plugins: [ - '~/plugins/plugin' - ], - serverMiddleware: [ - '~/server-middleware/test.ts' - ] -} - -export default config diff --git a/test/fixtures/typescript/pages/about.ts b/test/fixtures/typescript/pages/about.ts deleted file mode 100644 index 1218ba9b58..0000000000 --- a/test/fixtures/typescript/pages/about.ts +++ /dev/null @@ -1,8 +0,0 @@ -import Vue from 'vue' - -export default Vue.extend({ - name: 'About', - render (h) { - return h('div', 'About Page') - } -}) diff --git a/test/fixtures/typescript/pages/contact.tsx b/test/fixtures/typescript/pages/contact.tsx deleted file mode 100644 index 21879491a8..0000000000 --- a/test/fixtures/typescript/pages/contact.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import Vue from 'vue' - -export default Vue.extend({ - name: 'Contact', - // @ts-ignore: h not used but needed to compile - render (h) { - return
Contact Page
- } -}) diff --git a/test/fixtures/typescript/pages/index.vue b/test/fixtures/typescript/pages/index.vue deleted file mode 100644 index d29cf5e56e..0000000000 --- a/test/fixtures/typescript/pages/index.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/test/fixtures/typescript/pages/interface.vue b/test/fixtures/typescript/pages/interface.vue deleted file mode 100644 index 6e21446eda..0000000000 --- a/test/fixtures/typescript/pages/interface.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - diff --git a/test/fixtures/typescript/plugins/plugin.ts b/test/fixtures/typescript/plugins/plugin.ts deleted file mode 100644 index ead516c976..0000000000 --- a/test/fixtures/typescript/plugins/plugin.ts +++ /dev/null @@ -1 +0,0 @@ -export default () => {} diff --git a/test/fixtures/typescript/server-middleware/test.ts b/test/fixtures/typescript/server-middleware/test.ts deleted file mode 100644 index cdb0ac4668..0000000000 --- a/test/fixtures/typescript/server-middleware/test.ts +++ /dev/null @@ -1,7 +0,0 @@ -export default { - path: '/api/test', - handler(_, res) { - const message: String = 'Works!' - res.end(message) - } -} diff --git a/test/fixtures/typescript/tsconfig.json b/test/fixtures/typescript/tsconfig.json deleted file mode 100644 index 5829f5af81..0000000000 --- a/test/fixtures/typescript/tsconfig.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "module": "esnext", - "moduleResolution": "node", - "lib": [ - "esnext", - "esnext.asynciterable", - "dom" - ], - "esModuleInterop": true, - "experimentalDecorators": true, - "allowJs": true, - "jsx": "preserve", - "sourceMap": true, - "strict": true, - "noImplicitAny": false, - "noEmit": true, - "baseUrl": ".", - "paths": { - "~/*": [ - "./*" - ], - "@/*": [ - "./*" - ] - }, - "types": [ - "@types/node", - "@nuxt/vue-app" - ] - } -} diff --git a/test/fixtures/typescript/typescript.test.js b/test/fixtures/typescript/typescript.test.js deleted file mode 100644 index 0d352b49dd..0000000000 --- a/test/fixtures/typescript/typescript.test.js +++ /dev/null @@ -1,3 +0,0 @@ -import { buildFixture } from '../../utils/build' - -buildFixture('typescript') diff --git a/test/types/index.ts b/test/types/index.ts deleted file mode 100644 index 0375e1c1b9..0000000000 --- a/test/types/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import './vue' -import './process' diff --git a/test/types/process.ts b/test/types/process.ts deleted file mode 100644 index 47f2279ce9..0000000000 --- a/test/types/process.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Test extended type definitions of NodeJS Process interface - * @nuxt/vue-app/types/process.d.ts - */ - -process.browser = true - -process.client = true - -process.mode = 'universal' -process.mode = 'spa' - -process.modern = true - -process.server = true - -process.static = true diff --git a/test/types/tsconfig.json b/test/types/tsconfig.json deleted file mode 100644 index 385c8552e3..0000000000 --- a/test/types/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "moduleResolution": "node", - "strict": true, - "noEmit": true, - "lib": [ - "esnext", - "esnext.asynciterable", - "dom" - ] - } -} diff --git a/test/types/vue.ts b/test/types/vue.ts deleted file mode 100644 index c3be7c69dc..0000000000 --- a/test/types/vue.ts +++ /dev/null @@ -1,106 +0,0 @@ -/** - * Test extended type definitions of Vue interfaces - * @nuxt/vue-app/types/vue.d.ts - */ - -import Vue, { ComponentOptions } from 'vue' -import { Middleware } from '@nuxt/vue-app' - -const options: ComponentOptions = {} - -// asyncData - -options.asyncData = (context) => { - return { - foo: 'bar' - } -} - -options.asyncData = () => undefined - -// fetch - -options.fetch = ({ store }) => { - return Promise.resolve('bar').then(res => { - store.commit('setFoo', res) - }) -} - -options.fetch = async ({ store }) => { - let res = await Promise.resolve('bar') - store.commit('setFoo', res) -} - -// key - -options.key = 'foo' -options.key = (to) => to.fullPath - -// head - -const metaInfo = { - title: 'Home', - meta: [ - { hid: 'description', name: 'description', content: 'My custom description' } - ] -} - -options.head = metaInfo -options.head = () => metaInfo - -// layout - -options.layout = 'foo' -options.layout = (context) => 'foo' - -// loading - -options.loading = true - -// middleware - -const middlewares: Middleware[] = [ - 'foo', - (ctx) => {}, - (ctx, cb) => {}, - async (ctx) => {}, - async (ctx, cb) => {} // unlikely -] - -options.middleware = middlewares -options.middleware = middlewares[0] -options.middleware = middlewares[1] -options.middleware = middlewares[2] - -// scrollToTop - -options.scrollToTop = true - -// transition - -options.transition = 'foo' -options.transition = { name: 'foo' } -options.transition = (to, from) => 'foo' - -// validate - -options.validate = (context) => true -options.validate = async (context) => true - -// watchQuery - -options.watchQuery = true -options.watchQuery = ['foo', 'bar'] - -// $nuxt - -const vm = new Vue(options) - -if (vm.$nuxt.$loading.fail) vm.$nuxt.$loading.fail() -vm.$nuxt.$loading.finish() -if (vm.$nuxt.$loading.increase) vm.$nuxt.$loading.increase(1) -if (vm.$nuxt.$loading.pause) vm.$nuxt.$loading.pause() -vm.$nuxt.$loading.start() - -vm.$nuxt.isOffline = true -vm.$nuxt.isOnline = true diff --git a/test/unit/basic.dev.test.js b/test/unit/basic.dev.test.js index 4944e20d09..22a1fa29a5 100644 --- a/test/unit/basic.dev.test.js +++ b/test/unit/basic.dev.test.js @@ -88,10 +88,10 @@ describe('basic dev', () => { }) test('Config: build.loaders', () => { - expect(Object.keys(loadersOptions)).toHaveLength(14) + expect(Object.keys(loadersOptions)).toHaveLength(12) expect(loadersOptions).toHaveProperty( 'file', 'fontUrl', 'imgUrl', 'pugPlain', 'vue', - 'css', 'cssModules', 'less', 'sass', 'scss', 'stylus', 'ts', 'tsx', 'vueStyle' + 'css', 'cssModules', 'less', 'sass', 'scss', 'stylus', 'vueStyle' ) const { cssModules, vue } = loadersOptions expect(cssModules.modules.localIdentName).toBe('[hash:base64:6]') diff --git a/test/unit/typescript-build.test.js b/test/unit/typescript-build.test.js deleted file mode 100644 index 31e1725016..0000000000 --- a/test/unit/typescript-build.test.js +++ /dev/null @@ -1,44 +0,0 @@ -import WebpackBaseConfig from '../../packages/webpack/src/config/base' - -const createWebpackBaseConfig = (typescriptBuild, ignoreNotFoundWarnings) => { - const builder = { - buildContext: { - buildOptions: { - typescript: { ignoreNotFoundWarnings }, - transpile: [] - }, - options: { - _typescript: { build: typescriptBuild } - } - } - } - - return new WebpackBaseConfig(builder) -} - -describe('warningIgnoreFilter', () => { - let filters - const name = 'ModuleDependencyWarning' - - describe('disabled ignoreNotFoundWarnings', () => { - beforeEach(() => { - filters = createWebpackBaseConfig(true, false).warningIgnoreFilter() - }) - - test('should be true', () => expect(filters({})).toBe(true)) - test('should be true', () => expect(filters({ name, message: 'error!' })).toBe(true)) - test('should be false', () => expect(filters({ name, message: `export 'default' nuxt_plugin_xxxx` })).toBe(false)) - test('should be true', () => expect(filters({ name, message: `export 'xxx' was not found in ` })).toBe(true)) - }) - - describe('enabled ignoreNotFoundWarnings', () => { - beforeEach(() => { - filters = createWebpackBaseConfig(true, true).warningIgnoreFilter() - }) - - test('should be true', () => expect(filters({})).toBe(true)) - test('should be true', () => expect(filters({ name, message: 'error!' })).toBe(true)) - test('should be false', () => expect(filters({ name, message: `export 'default' nuxt_plugin_xxxx` })).toBe(false)) - test('should be false', () => expect(filters({ name, message: `export 'xxx' was not found in ` })).toBe(false)) - }) -}) diff --git a/test/unit/typescript.modern.test.js b/test/unit/typescript.modern.test.js deleted file mode 100644 index a14bafe199..0000000000 --- a/test/unit/typescript.modern.test.js +++ /dev/null @@ -1,23 +0,0 @@ -import ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin' -import { loadFixture, Nuxt, Builder, BundleBuilder } from '../utils' - -jest.mock('fork-ts-checker-webpack-plugin') - -describe('typescript modern', () => { - let nuxt - - beforeAll(async () => { - const options = await loadFixture('typescript') - nuxt = new Nuxt(Object.assign(options, { modern: true, _typescript: { build: true } })) - await new Builder(nuxt, BundleBuilder).build() - }) - - test('check types only once', () => { - expect(ForkTsCheckerWebpackPlugin).toHaveBeenCalledTimes(1) - }) - - // Close server and ask nuxt to stop listening to file changes - afterAll(async () => { - await nuxt.close() - }) -}) diff --git a/test/unit/typescript.test.js b/test/unit/typescript.test.js deleted file mode 100644 index 00888320d9..0000000000 --- a/test/unit/typescript.test.js +++ /dev/null @@ -1,50 +0,0 @@ -import { loadFixture, getPort, Nuxt, rp } from '../utils' - -describe('typescript', () => { - let nuxt - let port - const url = route => 'http://localhost:' + port + route - - beforeAll(async () => { - const options = await loadFixture('typescript') - nuxt = new Nuxt(options) - await nuxt.ready() - - port = await getPort() - await nuxt.server.listen(port, '0.0.0.0') - }) - - test('/', async () => { - const { html } = await nuxt.server.renderRoute('/') - expect(html).toContain('
Index Page
') - }) - - test('/about', async () => { - const { html } = await nuxt.server.renderRoute('/about') - expect(html).toContain('
About Page
') - }) - - test('/interface', async () => { - const { html } = await nuxt.server.renderRoute('/interface') - expect(html).toContain('
Interface Page
') - }) - - test('/contact', async () => { - const { html } = await nuxt.server.renderRoute('/contact') - expect(html).toContain('
Contact Page
') - }) - - test('/api/test', async () => { - const html = await rp(url('/api/test')) - expect(html).toContain('Works!') - }) - - test('TS module successfully required', () => { - expect(nuxt.moduleContainer.requiredModules.testTSModule).toBeDefined() - }) - - // Close server and ask nuxt to stop listening to file changes - afterAll(async () => { - await nuxt.close() - }) -}) diff --git a/yarn.lock b/yarn.lock index f8ac310cfa..a345f95301 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1839,12 +1839,31 @@ universal-user-agent "^3.0.0" url-template "^2.0.8" -"@types/anymatch@*": - version "1.3.1" - resolved "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" - integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== +"@snyk/composer-lockfile-parser@1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@snyk/composer-lockfile-parser/-/composer-lockfile-parser-1.0.2.tgz#d748e56076bc1c25b130c1f13ed705fa285a1994" + integrity sha512-kFzMajJLgWYsRTD+j1B79RckP1nYolM3UU9wJAo6VjvaBJ1R8E6IXmz0lEJBwK2zXM4EPrgk41ZqmoQS3hselQ== + dependencies: + lodash "4.17.11" -"@types/babel__core@^7.1.0", "@types/babel__core@^7.1.2": +"@snyk/dep-graph@1.8.1": + version "1.8.1" + resolved "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.8.1.tgz#4286dc42f691e826c4779a77722e7ac7fa692420" + integrity sha512-cWqJwuiU1+9hL0Fd/qgq0DYeWM/6mqPIa/B0yoEsHD8nR/IPFgalVvMbOSdPKeApvi/AxDzcRxr8tfqHJ7aq2w== + dependencies: + graphlib "^2.1.5" + lodash "^4" + object-hash "^1.3.1" + semver "^6.0.0" + source-map-support "^0.5.11" + tslib "^1.9.3" + +"@snyk/gemfile@1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@snyk/gemfile/-/gemfile-1.2.0.tgz#919857944973cce74c650e5428aaf11bcd5c0457" + integrity sha512-nI7ELxukf7pT4/VraL4iabtNNMz8mUo7EXlqCFld8O5z6mIMLX9llps24iPpaIZOwArkY3FWA+4t+ixyvtTSIA== + +"@types/babel__core@^7.1.0": version "7.1.2" resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.2.tgz#608c74f55928033fce18b99b213c16be4b3d114f" integrity sha512-cfCCrFmiGY/yq0NuKNxIQvZFy9kY/1immpSpTngOnyIbD4+eJOG5mxphhHDv3CHL9GltO4GcKr54kGBg3RNdbg== @@ -1877,94 +1896,16 @@ dependencies: "@babel/types" "^7.3.0" -"@types/body-parser@*": - version "1.17.0" - resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.0.tgz#9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c" - integrity sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/chokidar@^2.1.3": - version "2.1.3" - resolved "https://registry.npmjs.org/@types/chokidar/-/chokidar-2.1.3.tgz#123ab795dba6d89be04bf076e6aecaf8620db674" - integrity sha512-6qK3xoLLAhQVTucQGHTySwOVA1crHRXnJeLwqK6KIFkkKa2aoMFXh+WEi8PotxDtvN6MQJLyYN9ag9P6NLV81w== - dependencies: - chokidar "*" - -"@types/clean-css@*": - version "4.2.1" - resolved "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.1.tgz#cb0134241ec5e6ede1b5344bc829668fd9871a8d" - integrity sha512-A1HQhQ0hkvqqByJMgg+Wiv9p9XdoYEzuwm11SVo1mX2/4PSdhjcrUlilJQoqLscIheC51t1D5g+EFWCXZ2VTQQ== - dependencies: - "@types/node" "*" - -"@types/compression@^0.0.36": - version "0.0.36" - resolved "https://registry.npmjs.org/@types/compression/-/compression-0.0.36.tgz#7646602ffbfc43ea48a8bf0b2f1d5e5f9d75c0d0" - integrity sha512-B66iZCIcD2eB2F8e8YDIVtCUKgfiseOR5YOIbmMN2tM57Wu55j1xSdxdSw78aVzsPmbZ6G+hINc+1xe1tt4NBg== - dependencies: - "@types/express" "*" - -"@types/connect@*": - version "3.4.32" - resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.32.tgz#aa0e9616b9435ccad02bc52b5b454ffc2c70ba28" - integrity sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg== - dependencies: - "@types/node" "*" - "@types/estree@0.0.39": version "0.0.39" resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== -"@types/etag@^1.8.0": - version "1.8.0" - resolved "https://registry.npmjs.org/@types/etag/-/etag-1.8.0.tgz#37f0b1f3ea46da7ae319bbedb607e375b4c99f7e" - integrity sha512-EdSN0x+Y0/lBv7YAb8IU4Jgm6DWM+Bqtz7o5qozl96fzaqdqbdfHS5qjdpFeIv7xQ8jSLyjMMNShgYtMajEHyQ== - dependencies: - "@types/node" "*" - "@types/events@*": version "3.0.0" resolved "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== -"@types/express-serve-static-core@*": - version "4.16.7" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.7.tgz#50ba6f8a691c08a3dd9fa7fba25ef3133d298049" - integrity sha512-847KvL8Q1y3TtFLRTXcVakErLJQgdpFSaq+k043xefz9raEf0C7HalpSY7OW5PyjCnY8P7bPW5t/Co9qqp+USg== - dependencies: - "@types/node" "*" - "@types/range-parser" "*" - -"@types/express@*", "@types/express@^4.17.0": - version "4.17.0" - resolved "https://registry.npmjs.org/@types/express/-/express-4.17.0.tgz#49eaedb209582a86f12ed9b725160f12d04ef287" - integrity sha512-CjaMu57cjgjuZbh9DpkloeGxV45CnMGlVd+XpG7Gm9QgVrd7KFq+X4HY0vM+2v0bczS48Wg7bvnMY5TN+Xmcfw== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "*" - "@types/serve-static" "*" - -"@types/glob@^7.1.1": - version "7.1.1" - resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== - dependencies: - "@types/events" "*" - "@types/minimatch" "*" - "@types/node" "*" - -"@types/html-minifier@^3.5.3": - version "3.5.3" - resolved "https://registry.npmjs.org/@types/html-minifier/-/html-minifier-3.5.3.tgz#5276845138db2cebc54c789e0aaf87621a21e84f" - integrity sha512-j1P/4PcWVVCPEy5lofcHnQ6BtXz9tHGiFPWzqm7TtGuWZEfCHEP446HlkSNc9fQgNJaJZ6ewPtp2aaFla/Uerg== - dependencies: - "@types/clean-css" "*" - "@types/relateurl" "*" - "@types/uglify-js" "*" - "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": version "2.0.1" resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" @@ -1985,55 +1926,16 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" -"@types/memory-fs@*": - version "0.3.2" - resolved "https://registry.npmjs.org/@types/memory-fs/-/memory-fs-0.3.2.tgz#5d4753f9b390cb077c8c8af97bc96463399ceccd" - integrity sha512-j5AcZo7dbMxHoOimcHEIh0JZe5e1b8q8AqGSpZJrYc7xOgCIP79cIjTdx5jSDLtySnQDwkDTqwlC7Xw7uXw7qg== - dependencies: - "@types/node" "*" - -"@types/mime@*": - version "2.0.1" - resolved "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz#dc488842312a7f075149312905b5e3c0b054c79d" - integrity sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw== - -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== - "@types/node@*", "@types/node@^12.6.2": version "12.6.3" resolved "https://registry.npmjs.org/@types/node/-/node-12.6.3.tgz#44d507c5634f85e7164707ca36bba21b5213d487" integrity sha512-7TEYTQT1/6PP53NftXXabIZDaZfaoBdeBm8Md/i7zsWRoBe0YwOXguyK8vhHs8ehgB/w9U4K/6EWuTyp0W6nIA== -"@types/node@^11.13.18": - version "11.13.18" - resolved "https://registry.npmjs.org/@types/node/-/node-11.13.18.tgz#758ec2bf26339d3cc83da22676b64777d0c2befe" - integrity sha512-sMHdXLccscaxI+Hlzz58yLQue3lQyXP+6aQniDRi5oju3n0123kcjhicVGF20WF7cHiwJ2vxMbXc4skOclosoA== - -"@types/optimize-css-assets-webpack-plugin@^1.3.4": - version "1.3.4" - resolved "https://registry.npmjs.org/@types/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-1.3.4.tgz#6838ab7a3a5ec1253ad98c348bdcd009e91b39cd" - integrity sha512-04LJJFAdZ7sW7V66htTeKz95WP/E+aTuKv3wikgM6bmmeO1alcqQ9eDoRSTrrkL/zeuoaoW4WR1FdjvqiWoSkQ== - dependencies: - "@types/webpack" "*" - "@types/q@^1.5.1": version "1.5.2" resolved "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== -"@types/range-parser@*": - version "1.2.3" - resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" - integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== - -"@types/relateurl@*": - version "0.2.28" - resolved "https://registry.npmjs.org/@types/relateurl/-/relateurl-0.2.28.tgz#6bda7db8653fa62643f5ee69e9f69c11a392e3a6" - integrity sha1-a9p9uGU/piZD9e5p6facEaOS46Y= - "@types/resolve@0.0.8": version "0.0.8" resolved "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" @@ -2041,86 +1943,11 @@ dependencies: "@types/node" "*" -"@types/serve-static@*", "@types/serve-static@^1.13.2": - version "1.13.2" - resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.2.tgz#f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48" - integrity sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q== - dependencies: - "@types/express-serve-static-core" "*" - "@types/mime" "*" - "@types/stack-utils@^1.0.1": version "1.0.1" resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== -"@types/tapable@*": - version "1.0.4" - resolved "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.4.tgz#b4ffc7dc97b498c969b360a41eee247f82616370" - integrity sha512-78AdXtlhpCHT0K3EytMpn4JNxaf5tbqbLcbIRoQIHzpTIyjpxLQKRoxU55ujBXAtg3Nl2h/XWvfDa9dsMOd0pQ== - -"@types/terser-webpack-plugin@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@types/terser-webpack-plugin/-/terser-webpack-plugin-1.2.1.tgz#02c2cacd7769c533cbdac28dd7610c24e46b5c95" - integrity sha512-5mzQulZabFsqiLh0PhJdccIKqpd5535UYpZ+Skugz8kPzZdajMMYBRKQSzM1KOkZ42NwLxbZSzQp6xKtaq46Gg== - dependencies: - "@types/webpack" "*" - terser "^3.16.1" - -"@types/uglify-js@*": - version "3.0.4" - resolved "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.0.4.tgz#96beae23df6f561862a830b4288a49e86baac082" - integrity sha512-SudIN9TRJ+v8g5pTG8RRCqfqTMNqgWCKKd3vtynhGzkIIjxaicNAMuY5TRadJ6tzDu3Dotf3ngaMILtmOdmWEQ== - dependencies: - source-map "^0.6.1" - -"@types/webpack-bundle-analyzer@^2.13.2": - version "2.13.2" - resolved "https://registry.npmjs.org/@types/webpack-bundle-analyzer/-/webpack-bundle-analyzer-2.13.2.tgz#d5183ae083b29b8cd0dc7352eaf008ed220c13d9" - integrity sha512-DcTExvdZusgPRVL3cbqdiqyo8YNYxDqMctymmBZ0dgjRnu6PpAJ494q6mKtCOwT9GRWqPZBm52Y9JbQo7NVzXg== - dependencies: - "@types/webpack" "*" - -"@types/webpack-dev-middleware@^2.0.3": - version "2.0.3" - resolved "https://registry.npmjs.org/@types/webpack-dev-middleware/-/webpack-dev-middleware-2.0.3.tgz#aefb145281b3326a052325d583d2339debbf1be3" - integrity sha512-DzNJJ6ah/6t1n8sfAgQyEbZ/OMmFcF9j9P3aesnm7G6/iBFR/qiGin8K89J0RmaWIBzhTMdDg3I5PmKmSv7N9w== - dependencies: - "@types/connect" "*" - "@types/memory-fs" "*" - "@types/webpack" "*" - loglevel "^1.6.2" - -"@types/webpack-hot-middleware@^2.16.5": - version "2.16.5" - resolved "https://registry.npmjs.org/@types/webpack-hot-middleware/-/webpack-hot-middleware-2.16.5.tgz#5271eada42f34670a7ae79ddb6f1c419a19c985f" - integrity sha512-41qSQeyRGZkWSi366jMQVsLo5fdLT8EgmvHNoBwcCtwZcHrQk6An6tD+ZfC0zMdNHzVEFlzQvT2mTte8zDxqNw== - dependencies: - "@types/connect" "*" - "@types/webpack" "*" - -"@types/webpack@*": - version "4.4.35" - resolved "https://registry.npmjs.org/@types/webpack/-/webpack-4.4.35.tgz#b7088eb2d471d5645e5503d272783cafa753583b" - integrity sha512-kf+mn/+CB4HsFb+Rz0QBRlo8nNC9LFhwqeK5xxhd3FEPRWJv6MFVnljKV5ARac56+syO8vIhq+nGt860+3wx7A== - dependencies: - "@types/anymatch" "*" - "@types/node" "*" - "@types/tapable" "*" - "@types/uglify-js" "*" - source-map "^0.6.0" - -"@types/webpack@^4.32.0": - version "4.32.0" - resolved "https://registry.npmjs.org/@types/webpack/-/webpack-4.32.0.tgz#bd4a149964cd471538f2781f2be5f9815175463b" - integrity sha512-kpz5wHDyG/WEpzX9gcwFp/w0oSsq0n/rmFdJelk/QBMHmNIOZdiTDInV0Lj8itGKBahQrBgJGJRss/6UHgLuKg== - dependencies: - "@types/anymatch" "*" - "@types/node" "*" - "@types/tapable" "*" - "@types/uglify-js" "*" - source-map "^0.6.0" - "@types/yargs@^12.0.2", "@types/yargs@^12.0.9": version "12.0.12" resolved "https://registry.npmjs.org/@types/yargs/-/yargs-12.0.12.tgz#45dd1d0638e8c8f153e87d296907659296873916" @@ -2602,11 +2429,6 @@ are-we-there-yet@~1.1.2: delegates "^1.0.0" readable-stream "^2.0.6" -arg@^4.1.0: - version "4.1.1" - resolved "https://registry.npmjs.org/arg/-/arg-4.1.1.tgz#485f8e7c390ce4c5f78257dbea80d4be11feda4c" - integrity sha512-SlmP3fEA88MBv0PypnXZ8ZfJhwmDeIE3SP71j37AiXQBXYosPV0x6uISAaHYSlSVhmHOVkomen0tbGk6Anlebw== - argparse@^1.0.7: version "1.0.10" resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -3050,7 +2872,7 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.1, braces@^3.0.2: +braces@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -3185,11 +3007,6 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -builtin-modules@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= - builtin-modules@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484" @@ -3436,20 +3253,10 @@ cheerio@^1.0.0-rc.2, cheerio@^1.0.0-rc.3: lodash "^4.15.0" parse5 "^3.0.1" -chokidar@*, chokidar@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.0.2.tgz#0d1cd6d04eb2df0327446188cd13736a3367d681" - integrity sha512-c4PR2egjNjI1um6bamCQ6bUNPDiyofNQruHvKgHQ4gDUP/ITSVSzNsiI5OWtHOsX323i5ha/kk4YmOZ1Ktg7KA== - dependencies: - anymatch "^3.0.1" - braces "^3.0.2" - glob-parent "^5.0.0" - is-binary-path "^2.1.0" - is-glob "^4.0.1" - normalize-path "^3.0.0" - readdirp "^3.1.1" - optionalDependencies: - fsevents "^2.0.6" +child_process@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz#b1f7e7fc73d25e7fd1d455adc94e143830182b5a" + integrity sha1-sffn/HPSXn/R1FWtyU4UODAYK1o= chokidar@^2.0.2, chokidar@^2.0.4: version "2.1.6" @@ -3470,6 +3277,21 @@ chokidar@^2.0.2, chokidar@^2.0.4: optionalDependencies: fsevents "^1.2.7" +chokidar@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.0.2.tgz#0d1cd6d04eb2df0327446188cd13736a3367d681" + integrity sha512-c4PR2egjNjI1um6bamCQ6bUNPDiyofNQruHvKgHQ4gDUP/ITSVSzNsiI5OWtHOsX323i5ha/kk4YmOZ1Ktg7KA== + dependencies: + anymatch "^3.0.1" + braces "^3.0.2" + glob-parent "^5.0.0" + is-binary-path "^2.1.0" + is-glob "^4.0.1" + normalize-path "^3.0.0" + readdirp "^3.1.1" + optionalDependencies: + fsevents "^2.0.6" + chownr@^1.1.1: version "1.1.2" resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" @@ -3653,7 +3475,7 @@ commander@2.17.x: resolved "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== -commander@^2.12.1, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0, commander@~2.20.0: +commander@^2.18.0, commander@^2.19.0, commander@~2.20.0: version "2.20.0" resolved "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== @@ -4454,11 +4276,6 @@ diff-sequences@^24.3.0: resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.3.0.tgz#0f20e8a1df1abddaf4d9c226680952e64118b975" integrity sha512-xLqpez+Zj9GKSnPWS0WZw1igGocZ+uua8+y+5dDNTT934N3QuY1sp2LkHzwiaYQGz60hMq0pjAshdeXm5VUOEw== -diff@^3.2.0: - version "3.5.0" - resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - diff@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff" @@ -4664,7 +4481,7 @@ enhanced-resolve@^3.4.1: object-assign "^4.0.1" tapable "^0.2.7" -enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0: +enhanced-resolve@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== @@ -7454,11 +7271,6 @@ lodash@^4.17.15: resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== -loglevel@^1.6.2: - version "1.6.3" - resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.6.3.tgz#77f2eb64be55a404c9fd04ad16d57c1d6d6b1280" - integrity sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA== - loose-envify@^1.0.0: version "1.4.0" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -7535,7 +7347,7 @@ make-dir@^3.0.0: dependencies: semver "^6.0.0" -make-error@1.x, make-error@^1.1.1: +make-error@1.x: version "1.3.5" resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== @@ -7728,14 +7540,6 @@ micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" - integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== - dependencies: - braces "^3.0.1" - picomatch "^2.0.5" - miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -8750,7 +8554,7 @@ performance-now@^2.1.0: resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -picomatch@^2.0.4, picomatch@^2.0.5: +picomatch@^2.0.4: version "2.0.7" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA== @@ -11100,15 +10904,6 @@ terser-webpack-plugin@^1.1.0, terser-webpack-plugin@^1.3.0: webpack-sources "^1.3.0" worker-farm "^1.7.0" -terser@^3.16.1: - version "3.17.0" - resolved "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2" - integrity sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ== - dependencies: - commander "^2.19.0" - source-map "~0.6.1" - source-map-support "~0.5.10" - terser@^4.0.0: version "4.1.2" resolved "https://registry.npmjs.org/terser/-/terser-4.1.2.tgz#b2656c8a506f7ce805a3f300a2ff48db022fa391" @@ -11344,74 +11139,11 @@ ts-jest@^23.10.5: semver "^5.5" yargs-parser "10.x" -ts-jest@^24.0.2: - version "24.0.2" - resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-24.0.2.tgz#8dde6cece97c31c03e80e474c749753ffd27194d" - integrity sha512-h6ZCZiA1EQgjczxq+uGLXQlNgeg02WWJBbeT8j6nyIBRQdglqbvzDoHahTEIiS6Eor6x8mK6PfZ7brQ9Q6tzHw== - dependencies: - bs-logger "0.x" - buffer-from "1.x" - fast-json-stable-stringify "2.x" - json5 "2.x" - make-error "1.x" - mkdirp "0.x" - resolve "1.x" - semver "^5.5" - yargs-parser "10.x" - -ts-loader@^6.0.4: - version "6.0.4" - resolved "https://registry.npmjs.org/ts-loader/-/ts-loader-6.0.4.tgz#bc331ad91a887a60632d94c9f79448666f2c4b63" - integrity sha512-p2zJYe7OtwR+49kv4gs7v4dMrfYD1IPpOtqiSPCbe8oR+4zEBtdHwzM7A7M91F+suReqgzZrlClk4LRSSp882g== - dependencies: - chalk "^2.3.0" - enhanced-resolve "^4.0.0" - loader-utils "^1.0.2" - micromatch "^4.0.0" - semver "^6.0.0" - -ts-node@^8.3.0: - version "8.3.0" - resolved "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz#e4059618411371924a1fb5f3b125915f324efb57" - integrity sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ== - dependencies: - arg "^4.1.0" - diff "^4.0.1" - make-error "^1.1.1" - source-map-support "^0.5.6" - yn "^3.0.0" - -tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: +tslib@^1.9.0, tslib@^1.9.3: version "1.10.0" resolved "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== -tslint@^5.18.0: - version "5.18.0" - resolved "https://registry.npmjs.org/tslint/-/tslint-5.18.0.tgz#f61a6ddcf372344ac5e41708095bbf043a147ac6" - integrity sha512-Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w== - dependencies: - "@babel/code-frame" "^7.0.0" - builtin-modules "^1.1.1" - chalk "^2.3.0" - commander "^2.12.1" - diff "^3.2.0" - glob "^7.1.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" - mkdirp "^0.5.1" - resolve "^1.3.2" - semver "^5.3.0" - tslib "^1.8.0" - tsutils "^2.29.0" - -tsutils@^2.29.0: - version "2.29.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" - integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== - dependencies: - tslib "^1.8.1" - tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -11459,11 +11191,6 @@ typedarray@^0.0.6: resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^3.5.3: - version "3.5.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" - integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== - ua-parser-js@^0.7.20: version "0.7.20" resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.20.tgz#7527178b82f6a62a0f243d1f94fd30e3e3c21098" @@ -11734,11 +11461,6 @@ vm-browserify@^1.0.1: resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== -vue-class-component@^7.0.1: - version "7.1.0" - resolved "https://registry.npmjs.org/vue-class-component/-/vue-class-component-7.1.0.tgz#b33efcb10e17236d684f70b1e96f1946ec793e87" - integrity sha512-G9152NzUkz0i0xTfhk0Afc8vzdXxDR1pfN4dTwE72cskkgJtdXfrKBkMfGvDuxUh35U500g5Ve4xL8PEGdWeHg== - vue-client-only@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/vue-client-only/-/vue-client-only-2.0.0.tgz#ddad8d675ee02c761a14229f0e440e219de1da1c" @@ -11796,14 +11518,6 @@ vue-no-ssr@^1.1.1: resolved "https://registry.npmjs.org/vue-no-ssr/-/vue-no-ssr-1.1.1.tgz#875f3be6fb0ae41568a837f3ac1a80eaa137b998" integrity sha512-ZMjqRpWabMPqPc7gIrG0Nw6vRf1+itwf0Itft7LbMXs2g3Zs/NFmevjZGN1x7K3Q95GmIjWbQZTVerxiBxI+0g== -vue-property-decorator@^8.2.1: - version "8.2.1" - resolved "https://registry.npmjs.org/vue-property-decorator/-/vue-property-decorator-8.2.1.tgz#3791662033b20d20d098cb20e86fd23842982508" - integrity sha512-zgtcvzGB2JpDqnIxVhTK+6m+dv3uyhYs+tL8elL+DWiXj9kDonKcPY7f1DHYX1NlnWPCj7ht0nL/i8+S1gg76Q== - dependencies: - vue "^2.6.10" - vue-class-component "^7.0.1" - vue-router@^3.0.7: version "3.0.7" resolved "https://registry.npmjs.org/vue-router/-/vue-router-3.0.7.tgz#b36ca107b4acb8ff5bc4ff824584059c23fcb87b" @@ -12288,8 +12002,3 @@ yauzl@2.4.1: integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= dependencies: fd-slicer "~1.0.1" - -yn@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/yn/-/yn-3.1.0.tgz#fcbe2db63610361afcc5eb9e0ac91e976d046114" - integrity sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==