pax_global_header00006660000000000000000000000064133474201310014510gustar00rootroot0000000000000052 comment=1643f4e3d668e457318a92959702fbc9123e5f9d rollup-plugin-typescript-1.0.0/000077500000000000000000000000001334742013100165235ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/.eslintignore000066400000000000000000000000251334742013100212230ustar00rootroot00000000000000typescript-helpers.jsrollup-plugin-typescript-1.0.0/.eslintrc.yml000066400000000000000000000015511334742013100211510ustar00rootroot00000000000000root: true env: es6: true browser: true node: true mocha: true parserOptions: ecmaVersion: 8 sourceType: "module" extends: "eslint:recommended" rules: indent: [ 2, "tab", { SwitchCase: 1 } ] semi: [ 2, "always" ] keyword-spacing: [ 2, { before: true, after: true } ] space-before-blocks: [ 2, "always" ] space-before-function-paren: [ 2, "always" ] no-mixed-spaces-and-tabs: [ 2, "smart-tabs" ] no-cond-assign: 0 no-unused-vars: 2 object-shorthand: [ 2, "always" ] no-const-assign: 2 no-class-assign: 2 no-this-before-super: 2 no-var: 2 no-unreachable: 2 valid-typeof: 2 quote-props: [ 2, "as-needed" ] one-var: [ 2, "never" ] prefer-arrow-callback: 2 prefer-const: [ 2, { destructuring: "all" } ] arrow-spacing: 2 no-irregular-whitespace: 0 no-console: 0 rollup-plugin-typescript-1.0.0/.gitignore000066400000000000000000000000771334742013100205170ustar00rootroot00000000000000/node_modules !test/sample/dts/node_modules dist test/**/*.out rollup-plugin-typescript-1.0.0/.travis.yml000066400000000000000000000000651334742013100206350ustar00rootroot00000000000000language: node_js node_js: - "10" - "8" - "7" rollup-plugin-typescript-1.0.0/CHANGELOG.md000066400000000000000000000056201334742013100203370ustar00rootroot00000000000000# rollup-plugin-typescript changelog ## 1.0.0 *unreleased* * Require TypeScript as peer dependency ([#121](https://github.com/rollup/rollup-plugin-typescript/issues/121)) * Also test on Node 10 ([#119](https://github.com/rollup/rollup-plugin-typescript/issues/119)) * Fix example in readme ([#98](https://github.com/rollup/rollup-plugin-typescript/issues/98)) ## 0.8.1 * Ignore typescript-helpers in source maps ([#61](https://github.com/rollup/rollup-plugin-typescript/issues/61)) ## 0.8.0 * Fix the rollup breaking change with paths ([#52](https://github.com/rollup/rollup-plugin-typescript/issues/52)) * Don't fail without source maps ([#57](https://github.com/rollup/rollup-plugin-typescript/pull/57)) ## 0.7.7 * Add missing `__assign` helper ([#49](https://github.com/rollup/rollup-plugin-typescript/issues/49)) ## 0.7.6 * Ignore the `declaration` option ([#45](https://github.com/rollup/rollup-plugin-typescript/issues/45)) * Disable `strictNullChecks` with a warning for TypeScript versions that don't support it ([#46](https://github.com/rollup/rollup-plugin-typescript/issues/46)) ## 0.7.5 * Ensure NPM doesn't ignore typescript-helpers ## 0.7.4 * Resolve typescript-helpers to a file in the filesystem. ## 0.7.3 * Update Tippex to ^2.1.1 ## 0.7.2 * Don't error if both `sourceMap` and `inlineSourceMap` are specified ## 0.7.1 * No plugin specific options should be forwarded to TypeScript ## 0.7.0 * Use `compilerOptions` from `tsconfig.json` if found ([#39](https://github.com/rollup/rollup-plugin-typescript/pull/32)) ## 0.6.1 * Upgrade Tippex to ^2.1.0 * Upgrade TypeScript to ^1.8.9 ## 0.6.0 * Upgrade to TypeScript ^1.8.7 * Update `__awaiter` helper to support TypeScript 1.8.x ([#32](https://github.com/rollup/rollup-plugin-typescript/pull/32)) * Update `ts.nodeModuleNameResolver` to support both 1.7.x and 1.8.x ([#31](https://github.com/rollup/rollup-plugin-typescript/issues/31)) ## 0.5.0 * Do not duplicate TypeScript's helpers ([#24](https://github.com/rollup/rollup-plugin-typescript/issues/24)) * Handle `export abstract class` ([#23](https://github.com/rollup/rollup-plugin-typescript/issues/23)) ## 0.4.1 * Does not attempt resolve or transform `.d.ts` files ([#22](https://github.com/rollup/rollup-plugin-typescript/pull/22)) ## 0.4.0 * Work around TypeScript 1.7.5's transpilation issues ([#9](https://github.com/rollup/rollup-plugin-typescript/issues/9)) * Overridable TypeScript version when transpiling ([#4](https://github.com/rollup/rollup-plugin-typescript/issues/4)) * Add `jsx` support ([#11](https://github.com/rollup/rollup-plugin-typescript/issues/11)) ## 0.3.0 * Author plugin in TypeScript * Report diagnostics * Resolve identifiers using `ts.nodeModuleNameResolver` ## 0.2.1 * Upgrade to TypeScript ^1.7.5 * Enable source maps per default ## 0.2.0 * Use (_prerelease version of_) TypeScript 1.7.0 to generate ES5 while preserving ES2015 imports for efficient bundling. ## 0.1.0 * Initial release rollup-plugin-typescript-1.0.0/LICENSE.md000066400000000000000000000022011334742013100201220ustar00rootroot00000000000000The MIT License (MIT) Copyright (c) 2015 [these people](https://github.com/rollup/rollup-plugin-typescript/graphs/contributors) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. rollup-plugin-typescript-1.0.0/README.md000066400000000000000000000071321334742013100200050ustar00rootroot00000000000000# rollup-plugin-typescript [![Build Status](https://travis-ci.org/rollup/rollup-plugin-typescript.svg?branch=master)](https://travis-ci.org/rollup/rollup-plugin-typescript) ![npm-version](https://img.shields.io/npm/v/rollup-plugin-typescript.svg?maxAge=2592000) ![npm-monthly-downloads](https://img.shields.io/npm/dm/rollup-plugin-typescript.svg?maxAge=2592000) ![npm-dependencies](https://img.shields.io/david/rollup/rollup-plugin-typescript.svg?maxAge=2592000) Seamless integration between Rollup and Typescript. ## Why? See [rollup-plugin-babel](https://github.com/rollup/rollup-plugin-babel). ## Installation ```bash npm install --save-dev rollup-plugin-typescript typescript tslib ``` Note that both `typescript` and `tslib` are peer dependencies of this plugin that need to be installed separately. ## Usage ```js // rollup.config.js import typescript from 'rollup-plugin-typescript'; export default { input: './main.ts', plugins: [ typescript() ] } ``` The plugin loads any [`compilerOptions`](http://www.typescriptlang.org/docs/handbook/compiler-options.html) from the `tsconfig.json` file by default. Passing options to the plugin directly overrides those options: ```js ... export default { input: './main.ts', plugins: [ typescript({lib: ["es5", "es6", "dom"], target: "es5"}) ] } ``` The following options are unique to `rollup-plugin-typescript`: * `options.include` and `options.exclude` (each a minimatch pattern, or array of minimatch patterns), which determine which files are transpiled by Typescript (all `.ts` and `.tsx` files by default). * `tsconfig` when set to false, ignores any options specified in the config file. If set to a string that corresponds to a file path, the specified file will be used as config file. * `typescript` overrides TypeScript used for transpilation: ```js typescript({ typescript: require('some-fork-of-typescript') }) ``` * `tslib` overrides the injected TypeScript helpers with a custom version ```js typescript({ tslib: require('some-fork-of-tslib') }) ``` ### TypeScript version Due to the use of `tslib` to inject helpers, this plugin requires at least [TypeScript 2.1](https://github.com/Microsoft/TypeScript/wiki/Roadmap#21-december-2016). See also [here](https://blog.mariusschulz.com/2016/12/16/typescript-2-1-external-helpers-library#the-importhelpers-flag-and-tslib). ### Importing CommonJS Though it is not recommended, it is possible to configure this plugin to handle imports of CommonJS files from TypeScript. For this, you need to specify `CommonJS` as the module format and add `rollup-plugin-commonjs` to transpile the CommonJS output generated by TypeScript to ES Modules so that rollup can process it. ```js // rollup.config.js import typescript from 'rollup-plugin-typescript'; import commonjs from 'rollup-plugin-commonjs'; export default { input: './main.ts', plugins: [ typescript({module: 'CommonJS'}), commonjs({extensions: ['.js', '.ts']}) // the ".ts" extension is required ] } ``` Note that this will often result in less optimal output. ## Issues This plugin will currently **not warn for any type violations**. This plugin relies on TypeScript's [transpileModule](https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#a-simple-transform-function) function which basically transpiles TypeScript to JavaScript by stripping any type information on a per-file basis. While this is faster than using the language service, no cross-file type checks are possible with this approach. This also causes issues with emit-less types, see [#28](https://github.com/rollup/rollup-plugin-typescript/issues/28). rollup-plugin-typescript-1.0.0/appveyor.yml000066400000000000000000000004661334742013100211210ustar00rootroot00000000000000environment: matrix: - nodejs_version: "10" - nodejs_version: "9" - nodejs_version: "8" - nodejs_version: "7" version: "{build}" build: off deploy: off install: - ps: Install-Product node $env:nodejs_version - node --version - npm --version - npm install test_script: - npm test rollup-plugin-typescript-1.0.0/package-lock.json000066400000000000000000001536421334742013100217520ustar00rootroot00000000000000{ "name": "rollup-plugin-typescript", "version": "1.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "dev": true, "requires": { "@babel/highlight": "^7.0.0" } }, "@babel/highlight": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", "dev": true, "requires": { "chalk": "^2.0.0", "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, "@types/node": { "version": "10.9.4", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.9.4.tgz", "integrity": "sha512-fCHV45gS+m3hH17zgkgADUSi2RR1Vht6wOZ0jyHP8rjiQra9f+mIcgwPQHllmDocYOstIEbKlxbFDYlgrTPYqw==", "dev": true }, "acorn": { "version": "5.7.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", "dev": true }, "acorn-dynamic-import": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", "dev": true, "requires": { "acorn": "^5.0.0" } }, "acorn-jsx": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-4.1.1.tgz", "integrity": "sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==", "dev": true, "requires": { "acorn": "^5.0.3" } }, "ajv": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "ajv-keywords": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", "dev": true }, "ansi-escapes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", "dev": true }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" } }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { "sprintf-js": "~1.0.2" } }, "arr-diff": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "requires": { "arr-flatten": "^1.0.1" } }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { "array-uniq": "^1.0.1" } }, "array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", "dev": true }, "array-unique": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "requires": { "expand-range": "^1.8.1", "preserve": "^0.2.0", "repeat-element": "^1.1.2" } }, "browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, "buble": { "version": "0.19.3", "resolved": "https://registry.npmjs.org/buble/-/buble-0.19.3.tgz", "integrity": "sha512-3B0Lcy2u6x6km0BqTz/FS3UnrOJlnIlBWsyjvtqzdtmWkqiS0+Sg4hc6L9Mmm63hZKTACpYS9vUeIoKSi1vcrQ==", "dev": true, "requires": { "acorn": "^5.4.1", "acorn-dynamic-import": "^3.0.0", "acorn-jsx": "^4.1.1", "chalk": "^2.3.1", "magic-string": "^0.22.4", "minimist": "^1.2.0", "os-homedir": "^1.0.1", "vlq": "^1.0.0" } }, "caller-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { "callsites": "^0.2.0" } }, "callsites": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", "dev": true }, "chalk": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, "circular-json": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", "dev": true }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { "restore-cursor": "^2.0.0" } }, "cli-width": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", "dev": true }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { "color-name": "1.1.3" } }, "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "commander": { "version": "2.15.1", "resolved": "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz", "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", "dev": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" } }, "debug": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", "dev": true, "requires": { "ms": "^2.1.1" } }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, "del": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { "globby": "^5.0.0", "is-path-cwd": "^1.0.0", "is-path-in-cwd": "^1.0.0", "object-assign": "^4.0.1", "pify": "^2.0.0", "pinkie-promise": "^2.0.0", "rimraf": "^2.2.8" } }, "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, "doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { "esutils": "^2.0.2" } }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "eslint": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.6.0.tgz", "integrity": "sha512-/eVYs9VVVboX286mBK7bbKnO1yamUy2UCRjiY6MryhQL2PaaXCExsCQ2aO83OeYRhU2eCU/FMFP+tVMoOrzNrA==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "ajv": "^6.5.3", "chalk": "^2.1.0", "cross-spawn": "^6.0.5", "debug": "^3.1.0", "doctrine": "^2.1.0", "eslint-scope": "^4.0.0", "eslint-utils": "^1.3.1", "eslint-visitor-keys": "^1.0.0", "espree": "^4.0.0", "esquery": "^1.0.1", "esutils": "^2.0.2", "file-entry-cache": "^2.0.0", "functional-red-black-tree": "^1.0.1", "glob": "^7.1.2", "globals": "^11.7.0", "ignore": "^4.0.6", "imurmurhash": "^0.1.4", "inquirer": "^6.1.0", "is-resolvable": "^1.1.0", "js-yaml": "^3.12.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.3.0", "lodash": "^4.17.5", "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", "optionator": "^0.8.2", "path-is-inside": "^1.0.2", "pluralize": "^7.0.0", "progress": "^2.0.0", "regexpp": "^2.0.0", "require-uncached": "^1.0.3", "semver": "^5.5.1", "strip-ansi": "^4.0.0", "strip-json-comments": "^2.0.1", "table": "^4.0.3", "text-table": "^0.2.0" } }, "eslint-scope": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "dev": true, "requires": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" } }, "eslint-utils": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", "dev": true }, "eslint-visitor-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", "dev": true }, "espree": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/espree/-/espree-4.0.0.tgz", "integrity": "sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg==", "dev": true, "requires": { "acorn": "^5.6.0", "acorn-jsx": "^4.1.1" } }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "esquery": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { "estraverse": "^4.0.0" } }, "esrecurse": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { "estraverse": "^4.1.0" } }, "estraverse": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", "dev": true }, "estree-walker": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz", "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==" }, "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, "expand-brackets": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "requires": { "is-posix-bracket": "^0.1.0" } }, "expand-range": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "requires": { "fill-range": "^2.1.0" } }, "external-editor": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", "dev": true, "requires": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" } }, "extglob": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "requires": { "is-extglob": "^1.0.0" } }, "fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", "dev": true }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { "flat-cache": "^1.2.1", "object-assign": "^4.0.1" } }, "filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" }, "fill-range": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "requires": { "is-number": "^2.1.0", "isobject": "^2.0.0", "randomatic": "^3.0.0", "repeat-element": "^1.1.2", "repeat-string": "^1.5.2" } }, "flat-cache": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { "circular-json": "^0.3.1", "del": "^2.0.2", "graceful-fs": "^4.1.2", "write": "^0.2.1" } }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, "for-own": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "requires": { "for-in": "^1.0.1" } }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, "glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "glob-base": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "requires": { "glob-parent": "^2.0.0", "is-glob": "^2.0.0" } }, "glob-parent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { "is-glob": "^2.0.0" } }, "globals": { "version": "11.7.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", "dev": true }, "globby": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { "array-union": "^1.0.1", "arrify": "^1.0.0", "glob": "^7.0.3", "object-assign": "^4.0.1", "pify": "^2.0.0", "pinkie-promise": "^2.0.0" } }, "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, "growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "he": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", "dev": true }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" } }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "inquirer": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz", "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", "dev": true, "requires": { "ansi-escapes": "^3.0.0", "chalk": "^2.0.0", "cli-cursor": "^2.1.0", "cli-width": "^2.0.0", "external-editor": "^3.0.0", "figures": "^2.0.0", "lodash": "^4.17.10", "mute-stream": "0.0.7", "run-async": "^2.2.0", "rxjs": "^6.1.0", "string-width": "^2.1.0", "strip-ansi": "^4.0.0", "through": "^2.3.6" } }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" }, "is-equal-shallow": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "requires": { "is-primitive": "^2.0.0" } }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { "is-extglob": "^1.0.0" } }, "is-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "requires": { "kind-of": "^3.0.2" } }, "is-path-cwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", "dev": true }, "is-path-in-cwd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { "is-path-inside": "^1.0.0" } }, "is-path-inside": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { "path-is-inside": "^1.0.1" } }, "is-posix-bracket": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=" }, "is-primitive": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" }, "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", "dev": true }, "is-resolvable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", "dev": true }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "requires": { "isarray": "1.0.0" } }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "js-yaml": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" } }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" } }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" } }, "lodash": { "version": "4.17.11", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true }, "magic-string": { "version": "0.22.5", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", "dev": true, "requires": { "vlq": "^0.2.2" }, "dependencies": { "vlq": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", "dev": true } } }, "math-random": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=" }, "micromatch": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "requires": { "arr-diff": "^2.0.0", "array-unique": "^0.2.1", "braces": "^1.8.2", "expand-brackets": "^0.1.4", "extglob": "^0.3.1", "filename-regex": "^2.0.0", "is-extglob": "^1.0.0", "is-glob": "^2.0.1", "kind-of": "^3.0.2", "normalize-path": "^2.0.1", "object.omit": "^2.0.0", "parse-glob": "^3.0.4", "regex-cache": "^0.4.2" } }, "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "1.2.0", "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, "mkdirp": { "version": "0.5.1", "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" }, "dependencies": { "minimist": { "version": "0.0.8", "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true } } }, "mocha": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", "dev": true, "requires": { "browser-stdout": "1.3.1", "commander": "2.15.1", "debug": "3.1.0", "diff": "3.5.0", "escape-string-regexp": "1.0.5", "glob": "7.1.2", "growl": "1.10.5", "he": "1.1.1", "minimatch": "3.0.4", "mkdirp": "0.5.1", "supports-color": "5.4.0" }, "dependencies": { "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { "ms": "2.0.0" } }, "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "supports-color": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { "remove-trailing-separator": "^1.0.1" } }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "requires": { "for-own": "^0.1.4", "is-extendable": "^0.1.1" } }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1" } }, "onetime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { "mimic-fn": "^1.0.0" } }, "optionator": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.4", "levn": "~0.3.0", "prelude-ls": "~1.1.2", "type-check": "~0.3.2", "wordwrap": "~1.0.0" } }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, "parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "requires": { "glob-base": "^0.3.0", "is-dotfile": "^1.0.0", "is-extglob": "^1.0.0", "is-glob": "^2.0.0" } }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", "dev": true }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { "pinkie": "^2.0.0" } }, "pluralize": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", "dev": true }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, "preserve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" }, "progress": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", "dev": true }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, "randomatic": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", "requires": { "is-number": "^4.0.0", "kind-of": "^6.0.0", "math-random": "^1.0.1" }, "dependencies": { "is-number": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" } } }, "regex-cache": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "requires": { "is-equal-shallow": "^0.1.3" } }, "regexpp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.0.tgz", "integrity": "sha512-g2FAVtR8Uh8GO1Nv5wpxW7VFVwHcCEr4wyA8/MHiRkO8uHoR5ntAA8Uq3P1vvMTX/BeQiRVSpDGLd+Wn5HNOTA==", "dev": true }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "require-uncached": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { "caller-path": "^0.1.0", "resolve-from": "^1.0.0" } }, "resolve": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "requires": { "path-parse": "^1.0.5" } }, "resolve-from": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", "dev": true }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" } }, "rimraf": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { "glob": "^7.0.5" } }, "rollup": { "version": "0.65.2", "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.65.2.tgz", "integrity": "sha512-BbXOrpxVbx0MpElI6vVLR2B6vnWHvYU/QAMw3GcEXvs601bvgrozuaW30cnvt43B96a6DeoYA0i9T5THanN+Rw==", "dev": true, "requires": { "@types/estree": "0.0.39", "@types/node": "*" } }, "rollup-plugin-buble": { "version": "0.19.2", "resolved": "https://registry.npmjs.org/rollup-plugin-buble/-/rollup-plugin-buble-0.19.2.tgz", "integrity": "sha512-dxK0prR8j/7qhI2EZDz/evKCRuhuZMpRlUGPrRWmpg5/2V8tP1XFW+Uk0WfxyNgFfJHvy0GmxnJSTb5dIaNljQ==", "dev": true, "requires": { "buble": "^0.19.2", "rollup-pluginutils": "^2.0.1" } }, "rollup-plugin-commonjs": { "version": "9.1.6", "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-9.1.6.tgz", "integrity": "sha512-J7GOJm9uzEeLqkVxYSgjyoieh34hATWpa9G2M1ilGzWOLYGfQx5IDQ9ewG8QUj/Z2dzgV+d0/AyloAzElkABAA==", "dev": true, "requires": { "estree-walker": "^0.5.1", "magic-string": "^0.22.4", "resolve": "^1.5.0", "rollup-pluginutils": "^2.0.1" } }, "rollup-pluginutils": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.1.tgz", "integrity": "sha512-JZS8aJMHEHhqmY2QVPMXwKP6lsD1ShkrcGYjhAIvqKKdXQyPHw/9NF0tl3On/xOJ4ACkxfeG7AF+chfCN1NpBg==", "requires": { "estree-walker": "^0.5.2", "micromatch": "^2.3.11" } }, "run-async": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { "is-promise": "^2.1.0" } }, "rxjs": { "version": "6.3.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.2.tgz", "integrity": "sha512-hV7criqbR0pe7EeL3O66UYVg92IR0XsA97+9y+BWTePK9SKmEI5Qd3Zj6uPnGkNzXsBywBQWTvujPl+1Kn9Zjw==", "dev": true, "requires": { "tslib": "^1.9.0" } }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, "semver": { "version": "5.5.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", "dev": true }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "slice-ansi": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0" } }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" } }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { "ansi-regex": "^3.0.0" } }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" } }, "table": { "version": "4.0.3", "resolved": "http://registry.npmjs.org/table/-/table-4.0.3.tgz", "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", "dev": true, "requires": { "ajv": "^6.0.1", "ajv-keywords": "^3.0.0", "chalk": "^2.1.0", "lodash": "^4.17.4", "slice-ansi": "1.0.0", "string-width": "^2.1.1" } }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, "through": { "version": "2.3.8", "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { "os-tmpdir": "~1.0.2" } }, "tslib": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", "dev": true }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { "prelude-ls": "~1.1.2" } }, "typescript": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.0.3.tgz", "integrity": "sha512-kk80vLW9iGtjMnIv11qyxLqZm20UklzuR2tL0QAnDIygIUIemcZMxlMWudl9OOt76H3ntVzcTiddQ1/pAAJMYg==", "dev": true }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { "punycode": "^2.1.0" } }, "vlq": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.0.tgz", "integrity": "sha512-o3WmXySo+oI5thgqr7Qy8uBkT/v9Zr+sRyrh1lr8aWPUkgDWdWt4Nae2WKBrLsocgE8BuWWD0jLc+VW8LeU+2g==", "dev": true }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" } }, "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "write": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { "mkdirp": "^0.5.1" } } } } rollup-plugin-typescript-1.0.0/package.json000066400000000000000000000026311334742013100210130ustar00rootroot00000000000000{ "name": "rollup-plugin-typescript", "version": "1.0.0", "description": "Seamless integration between Rollup and TypeScript.", "main": "dist/rollup-plugin-typescript.cjs.js", "module": "dist/rollup-plugin-typescript.es.js", "jsnext:main": "dist/rollup-plugin-typescript.es.js", "files": [ "dist", "src" ], "keywords": [ "rollup-plugin", "typescript", "es2015" ], "license": "MIT", "homepage": "https://github.com/rollup/rollup-plugin-typescript", "author": "Oskar Segersvärd", "scripts": { "prebuild": "rimraf dist/*", "build": "rollup -c", "lint": "eslint src test/*.js", "pretest": "npm run build", "test": "mocha", "posttest": "npm run lint", "prepublishOnly": "npm run test", "prepare": "npm run build" }, "dependencies": { "resolve": "^1.8.1", "rollup-pluginutils": "^2.3.1" }, "peerDependencies": { "tslib": "*", "typescript": ">=2.1.0" }, "devDependencies": { "buble": "^0.19.3", "eslint": "^5.6.0", "mocha": "^5.2.0", "rimraf": "^2.5.4", "rollup": "^0.65.2", "rollup-plugin-buble": "^0.19.2", "rollup-plugin-commonjs": "^9.1.6", "tslib": "^1.9.3", "typescript": "^3.0.3" }, "repository": { "type": "git", "url": "git+https://github.com/rollup/rollup-plugin-typescript.git" }, "bugs": { "url": "https://github.com/rollup/rollup-plugin-typescript/issues" } } rollup-plugin-typescript-1.0.0/rollup.config.js000066400000000000000000000005241334742013100216430ustar00rootroot00000000000000import buble from 'rollup-plugin-buble'; import pkg from './package.json'; export default { input: 'src/index.js', external: [ 'path', 'fs', 'resolve', 'rollup-pluginutils', 'typescript' ], plugins: [ buble() ], output: [ { format: 'cjs', file: pkg.main }, { format: 'es', file: pkg.module } ] }; rollup-plugin-typescript-1.0.0/src/000077500000000000000000000000001334742013100173125ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/src/index.js000066400000000000000000000100321334742013100207530ustar00rootroot00000000000000import * as ts from 'typescript'; import { createFilter } from 'rollup-pluginutils'; import * as fs from 'fs'; import resolveId from 'resolve'; import { endsWith } from './string'; import { getDefaultOptions, getCompilerOptionsFromTsConfig, adjustCompilerOptions } from './options.js'; import resolveHost from './resolveHost'; const TSLIB_ID = '\0tslib'; export default function typescript ( options = {} ) { options = Object.assign( {}, options ); const filter = createFilter( options.include || [ '*.ts+(|x)', '**/*.ts+(|x)' ], options.exclude || [ '*.d.ts', '**/*.d.ts' ] ); delete options.include; delete options.exclude; // Allow users to override the TypeScript version used for transpilation and tslib version used for helpers. const typescript = options.typescript || ts; const tslib = options.tslib || fs.readFileSync(resolveId.sync('tslib/tslib.es6.js', { basedir: __dirname }), 'utf-8' ); delete options.typescript; delete options.tslib; // Load options from `tsconfig.json` unless explicitly asked not to. const tsconfig = options.tsconfig === false ? {} : getCompilerOptionsFromTsConfig( typescript, options.tsconfig ); delete options.tsconfig; // Since the CompilerOptions aren't designed for the Rollup // use case, we'll adjust them for use with Rollup. adjustCompilerOptions( typescript, tsconfig ); adjustCompilerOptions( typescript, options ); options = Object.assign( tsconfig, getDefaultOptions(), options ); // Verify that we're targeting ES2015 modules. const moduleType = options.module.toUpperCase(); if ( moduleType !== 'ES2015' && moduleType !== 'ES6' && moduleType !== 'ESNEXT' && moduleType !== 'COMMONJS' ) { throw new Error( `rollup-plugin-typescript: The module kind should be 'ES2015' or 'ESNext, found: '${ options.module }'` ); } const parsed = typescript.convertCompilerOptionsFromJson( options, process.cwd() ); if ( parsed.errors.length ) { parsed.errors.forEach( error => console.error( `rollup-plugin-typescript: ${ error.messageText }` ) ); throw new Error( `rollup-plugin-typescript: Couldn't process compiler options` ); } const compilerOptions = parsed.options; return { name: 'typescript', resolveId ( importee, importer ) { if ( importee === 'tslib' ) { return TSLIB_ID; } if ( !importer ) return null; importer = importer.split('\\').join('/'); const result = typescript.nodeModuleNameResolver(importee, importer, compilerOptions, resolveHost); if ( result.resolvedModule && result.resolvedModule.resolvedFileName ) { if ( endsWith( result.resolvedModule.resolvedFileName, '.d.ts' ) ) { return null; } return result.resolvedModule.resolvedFileName; } return null; }, load ( id ) { if ( id === TSLIB_ID ) { return tslib; } }, transform ( code, id ) { if ( !filter( id ) ) return null; const transformed = typescript.transpileModule( code, { fileName: id, reportDiagnostics: true, compilerOptions }); // All errors except `Cannot compile modules into 'es6' when targeting 'ES5' or lower.` const diagnostics = transformed.diagnostics ? transformed.diagnostics.filter( diagnostic => diagnostic.code !== 1204 ) : []; let fatalError = false; diagnostics.forEach( diagnostic => { const message = typescript.flattenDiagnosticMessageText(diagnostic.messageText, '\n'); if ( diagnostic.file ) { const { line, character } = diagnostic.file.getLineAndCharacterOfPosition( diagnostic.start ); console.error( `${diagnostic.file.fileName}(${line + 1},${character + 1}): error TS${diagnostic.code}: ${message}` ); } else { console.error( `Error: ${message}` ); } if ( diagnostic.category === ts.DiagnosticCategory.Error ) { fatalError = true; } }); if ( fatalError ) { throw new Error( `There were TypeScript errors transpiling` ); } return { code: transformed.outputText, // Rollup expects `map` to be an object so we must parse the string map: transformed.sourceMapText ? JSON.parse(transformed.sourceMapText) : null }; } }; } rollup-plugin-typescript-1.0.0/src/options.js000066400000000000000000000033771334742013100213550ustar00rootroot00000000000000import * as path from 'path'; import { existsSync, readFileSync } from 'fs'; export function getDefaultOptions () { return { noEmitHelpers: true, module: 'ESNext', sourceMap: true, importHelpers: true }; } // Gratefully lifted from 'look-up', due to problems using it directly: // https://github.com/jonschlinkert/look-up/blob/master/index.js // MIT Licenced function findFile ( cwd, filename ) { let fp = cwd ? ( cwd + '/' + filename ) : filename; if ( existsSync( fp ) ) { return fp; } const segs = cwd.split( path.sep ); let len = segs.length; while ( len-- ) { cwd = segs.slice( 0, len ).join( '/' ); fp = cwd + '/' + filename; if ( existsSync( fp ) ) { return fp; } } return null; } export function getCompilerOptionsFromTsConfig (typescript, tsconfigPath) { if (tsconfigPath && !existsSync(tsconfigPath)) { throw new Error(`Could not find specified tsconfig.json at ${tsconfigPath}`); } const existingTsConfig = tsconfigPath || findFile( process.cwd(), 'tsconfig.json' ); if (!existingTsConfig) { return {}; } const tsconfig = typescript.readConfigFile( existingTsConfig, path => readFileSync( path, 'utf8' ) ); if ( !tsconfig.config || !tsconfig.config.compilerOptions ) return {}; return tsconfig.config.compilerOptions; } export function adjustCompilerOptions ( typescript, options ) { // Set `sourceMap` to `inlineSourceMap` if it's a boolean // under the assumption that both are never specified simultaneously. if ( typeof options.inlineSourceMap === 'boolean' ) { options.sourceMap = options.inlineSourceMap; delete options.inlineSourceMap; } // Delete the `declaration` option to prevent compilation error. // See: https://github.com/rollup/rollup-plugin-typescript/issues/45 delete options.declaration; } rollup-plugin-typescript-1.0.0/src/resolveHost.js000066400000000000000000000004551334742013100221710ustar00rootroot00000000000000import { statSync } from 'fs'; export default { directoryExists ( dirPath ) { try { return statSync( dirPath ).isDirectory(); } catch ( err ) { return false; } }, fileExists ( filePath ) { try { return statSync( filePath ).isFile(); } catch ( err ) { return false; } } }; rollup-plugin-typescript-1.0.0/src/string.js000066400000000000000000000001471334742013100211600ustar00rootroot00000000000000export function endsWith ( str, tail ) { return !tail.length || str.slice( -tail.length ) === tail; } rollup-plugin-typescript-1.0.0/test/000077500000000000000000000000001334742013100175025ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/000077500000000000000000000000001334742013100207635ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/assign/000077500000000000000000000000001334742013100222475ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/assign/main.ts000066400000000000000000000001261334742013100235420ustar00rootroot00000000000000const others = { b: 2, c: 1, d: 3 }; export default { a: 5, ...others, c: 3 }; rollup-plugin-typescript-1.0.0/test/sample/async/000077500000000000000000000000001334742013100221005ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/async/main.ts000066400000000000000000000003051334742013100233720ustar00rootroot00000000000000export default async function ( n: number ) { while ( --n ) { await delay( 10 ); } } function delay ( interval: number ) { return new Promise( resolve => setTimeout( resolve, interval ) ); } rollup-plugin-typescript-1.0.0/test/sample/basic/000077500000000000000000000000001334742013100220445ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/basic/main.ts000066400000000000000000000001051334742013100233340ustar00rootroot00000000000000const answer: number = 42; console.log( `the answer is ${answer}` ); rollup-plugin-typescript-1.0.0/test/sample/commonjs-imports/000077500000000000000000000000001334742013100243035ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/commonjs-imports/cjs.js000066400000000000000000000000531334742013100254160ustar00rootroot00000000000000module.exports = 'exported from commonjs'; rollup-plugin-typescript-1.0.0/test/sample/commonjs-imports/main.ts000066400000000000000000000000641334742013100255770ustar00rootroot00000000000000import cjs = require('./cjs'); export default cjs; rollup-plugin-typescript-1.0.0/test/sample/dedup-helpers/000077500000000000000000000000001334742013100235245ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/dedup-helpers/A.ts000066400000000000000000000000721334742013100242530ustar00rootroot00000000000000import Base from './Base'; export class A extends Base {} rollup-plugin-typescript-1.0.0/test/sample/dedup-helpers/B.ts000066400000000000000000000000721334742013100242540ustar00rootroot00000000000000import Base from './Base'; export class B extends Base {} rollup-plugin-typescript-1.0.0/test/sample/dedup-helpers/Base.ts000066400000000000000000000000351334742013100247440ustar00rootroot00000000000000export default class Base {} rollup-plugin-typescript-1.0.0/test/sample/dedup-helpers/main.ts000066400000000000000000000000641334742013100250200ustar00rootroot00000000000000export { A } from './A'; export { B } from './B'; rollup-plugin-typescript-1.0.0/test/sample/dts/000077500000000000000000000000001334742013100215555ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/dts/main.ts000066400000000000000000000000511334742013100230450ustar00rootroot00000000000000import { foo } from 'an-import'; foo(); rollup-plugin-typescript-1.0.0/test/sample/dts/node_modules/000077500000000000000000000000001334742013100242325ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/dts/node_modules/an-import.d.ts000066400000000000000000000000111334742013100267220ustar00rootroot00000000000000// empty rollup-plugin-typescript-1.0.0/test/sample/dynamic-imports/000077500000000000000000000000001334742013100241025ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/dynamic-imports/dynamic.ts000066400000000000000000000000531334742013100260740ustar00rootroot00000000000000console.log('dynamic'); export default 42; rollup-plugin-typescript-1.0.0/test/sample/dynamic-imports/main.ts000066400000000000000000000000441334742013100253740ustar00rootroot00000000000000export default import('./dynamic'); rollup-plugin-typescript-1.0.0/test/sample/export-abstract-class/000077500000000000000000000000001334742013100252105ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/export-abstract-class/main.ts000066400000000000000000000000331334742013100265000ustar00rootroot00000000000000export abstract class A {} rollup-plugin-typescript-1.0.0/test/sample/export-class-fix/000077500000000000000000000000001334742013100241735ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/export-class-fix/default.ts000066400000000000000000000000761334742013100261720ustar00rootroot00000000000000// the odd spacing is intentional export default class A {} rollup-plugin-typescript-1.0.0/test/sample/export-class-fix/main.ts000066400000000000000000000001121334742013100254610ustar00rootroot00000000000000import A from './default'; import { B } from './named'; export { A, B }; rollup-plugin-typescript-1.0.0/test/sample/export-class-fix/named.ts000066400000000000000000000000661334742013100256310ustar00rootroot00000000000000// the odd spacing is intentional export class B {} rollup-plugin-typescript-1.0.0/test/sample/export-class/000077500000000000000000000000001334742013100234075ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/export-class/Foo.ts000066400000000000000000000000451334742013100245010ustar00rootroot00000000000000export class Foo { foo = 'bar'; }rollup-plugin-typescript-1.0.0/test/sample/export-class/main.ts000066400000000000000000000000711334742013100247010ustar00rootroot00000000000000import {Foo} from './Foo.ts'; export default new Foo(); rollup-plugin-typescript-1.0.0/test/sample/export-fodule/000077500000000000000000000000001334742013100235605ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/export-fodule/main.ts000066400000000000000000000001341334742013100250520ustar00rootroot00000000000000export function test() { return 0; } export namespace test { export const foo = "2" }rollup-plugin-typescript-1.0.0/test/sample/export-namespace-export-class/000077500000000000000000000000001334742013100266605ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/export-namespace-export-class/test.ts000066400000000000000000000002321334742013100302040ustar00rootroot00000000000000// https://github.com/rollup/rollup-plugin-typescript/issues/70#issuecomment-336216349 // test.ts export namespace MODE { export class MODE { } }rollup-plugin-typescript-1.0.0/test/sample/import-class/000077500000000000000000000000001334742013100234005ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/import-class/A.ts000066400000000000000000000001731334742013100241310ustar00rootroot00000000000000class A { getArgs: () => any[]; constructor(...args: any[]) { this.getArgs = () => args; } } export default A; rollup-plugin-typescript-1.0.0/test/sample/import-class/main.ts000066400000000000000000000000371334742013100246740ustar00rootroot00000000000000import A from './A'; new A(); rollup-plugin-typescript-1.0.0/test/sample/jsx/000077500000000000000000000000001334742013100215675ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/jsx/main.tsx000066400000000000000000000000531334742013100232510ustar00rootroot00000000000000export default Yo! rollup-plugin-typescript-1.0.0/test/sample/overriding-tslib/000077500000000000000000000000001334742013100242465ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/overriding-tslib/main.ts000066400000000000000000000001701334742013100255400ustar00rootroot00000000000000class Base { static baseMethod() { return 'base method'; } } export default class Main extends Base {} rollup-plugin-typescript-1.0.0/test/sample/overriding-typescript/000077500000000000000000000000001334742013100253375ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/overriding-typescript/main.ts000066400000000000000000000000111334742013100266230ustar00rootroot00000000000000// empty rollup-plugin-typescript-1.0.0/test/sample/syntax-error/000077500000000000000000000000001334742013100234405ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/syntax-error/missing-type.ts000066400000000000000000000000111334742013100264300ustar00rootroot00000000000000var a: ; rollup-plugin-typescript-1.0.0/test/sample/tsconfig-jsx/000077500000000000000000000000001334742013100234015ustar00rootroot00000000000000rollup-plugin-typescript-1.0.0/test/sample/tsconfig-jsx/main.tsx000066400000000000000000000000531334742013100250630ustar00rootroot00000000000000export default Yo! rollup-plugin-typescript-1.0.0/test/sample/tsconfig-jsx/tsconfig.json000066400000000000000000000000621334742013100261060ustar00rootroot00000000000000{ "compilerOptions": { "jsx": "react" } } rollup-plugin-typescript-1.0.0/test/test.js000066400000000000000000000215301334742013100210200ustar00rootroot00000000000000const assert = require( 'assert' ); const rollup = require( 'rollup' ); const assign = require( 'object-assign' ); const typescript = require( '..' ); const path = require('path'); const commonjs = require('rollup-plugin-commonjs'); async function bundle (main, options) { return rollup.rollup({ input: main, plugins: [typescript(options)] }); } const getOutputFromGenerated = generated => generated.output ? generated.output[0] : generated; async function getCodeFromBundle (bundle) { return getOutputFromGenerated(await bundle.generate({ format: 'esm' })).code; } async function getCode ( main, options ) { return getCodeFromBundle(await bundle(main, options)); } async function evaluateBundle ( bundle ) { const module = { exports: {} }; new Function( 'module', 'exports', getOutputFromGenerated(await bundle.generate({ format: 'cjs' })).code )( module, module.exports ); return module.exports; } async function evaluate ( main, options ) { return evaluateBundle(await bundle(main, options)); } describe( 'rollup-plugin-typescript', () => { beforeEach(() => process.chdir(__dirname)); it( 'runs code through typescript', async () => { const code = await getCode( 'sample/basic/main.ts' ); assert.ok( code.indexOf( 'number' ) === -1, code ); assert.ok( code.indexOf( 'const' ) === -1, code ); }); it( 'ignores the declaration option', () => { return bundle( 'sample/basic/main.ts', { declaration: true }); }); it( 'throws for unsupported module types', async () => { let caughtError = null; try { await bundle( 'sample/basic/main.ts', { module: 'ES5' } ); } catch (error) { caughtError = error; } assert.ok(!!caughtError, 'Throws an error.'); assert.ok(caughtError.message.indexOf( 'The module kind should be \'ES2015\' or \'ESNext, found: \'ES5\'' ) !== -1, `Unexpected error message: ${caughtError.message}`); }); it( 'ignores case of module types', async () => { return bundle( 'sample/basic/main.ts', { module: 'eSnExT' } ); }); it( 'handles async functions', async () => { const wait = await evaluate('sample/async/main.ts'); return wait(3); }); it( 'does not duplicate helpers', async () => { const code = await getCode('sample/dedup-helpers/main.ts'); // The `__extends` function is defined in the bundle. assert.ok( code.indexOf( 'function __extends' ) > -1, code ); // No duplicate `__extends` helper is defined. assert.equal( code.indexOf( '__extends$1' ), -1, code ); }); it( 'transpiles `export class A` correctly', async () => { const bundled = await bundle( 'sample/export-class-fix/main.ts' ); const code = await getCodeFromBundle(bundled); assert.ok( code.indexOf( 'export { A, B };' ) !== -1, code ); const { A, B } = await evaluateBundle(bundled); const aInst = new A(); const bInst = new B(); assert.ok(aInst instanceof A); assert.ok(bInst instanceof B); }); it( 'transpiles ES6 features to ES5 with source maps', async () => { const code = await getCode( 'sample/import-class/main.ts' ); assert.equal( code.indexOf( '...' ), -1, code ); assert.equal( code.indexOf( '=>' ), -1, code ); }); it( 'reports diagnostics and throws if errors occur during transpilation', async () => { let caughtError = null; try { await bundle( 'sample/syntax-error/missing-type.ts' ); } catch (error) { caughtError = error; } assert.ok(!!caughtError, 'throws an error'); assert.ok( caughtError.message.indexOf( 'There were TypeScript errors transpiling' ) !== -1, `Unexpected error message: ${caughtError.message}`); }); it( 'works with named exports for abstract classes', async () => { const code = await getCode('sample/export-abstract-class/main.ts' ); assert.ok( code.length > 0, code ); }); it( 'should use named exports for classes', async () => { assert.equal( (await evaluate( 'sample/export-class/main.ts' )).foo, 'bar' ); }); it( 'supports overriding the TypeScript version', async () => { const result = await evaluate('sample/overriding-typescript/main.ts', { // Don't use `tsconfig.json` tsconfig: false, // test with a mocked version of TypeScript typescript: fakeTypescript({ version: '1.8.0-fake', transpileModule: () => { // Ignore the code to transpile. Always return the same thing. return { outputText: 'export default 1337;', diagnostics: [], sourceMapText: JSON.stringify({ mappings: '' }) }; } }) }); assert.equal( result, 1337 ); }); it( 'supports overriding tslib', async () => { const code = await evaluate('sample/overriding-tslib/main.ts', { tslib: 'export const __extends = (Main, Super) => Main.myParent = Super' }); assert.equal( code.myParent.baseMethod(), 'base method' ); }); it( 'should not resolve .d.ts files', async () => { const imports = (await bundle( 'sample/dts/main.ts' )).cache.modules[0].dependencies; assert.deepEqual( imports, [ 'an-import' ] ); }); it( 'should transpile JSX if enabled', async () => { const code = await getCode( 'sample/jsx/main.tsx', { jsx: 'react' }); assert.notEqual( code.indexOf( 'var __assign = ' ), -1, 'should contain __assign definition' ); const usage = code.indexOf( 'React.createElement("span", __assign({}, props), "Yo!")' ); assert.notEqual( usage, -1, 'should contain usage' ); }); it( 'automatically loads tsconfig.json from the current directory', async () => { process.chdir('sample/tsconfig-jsx'); const code = await getCode( 'main.tsx'); const usage = code.indexOf( 'React.createElement("span", __assign({}, props), "Yo!")' ); assert.notEqual( usage, -1, 'should contain usage' ); }); it( 'allows specifying a path for tsconfig.json', async () => { const code = await getCode( 'sample/tsconfig-jsx/main.tsx', {tsconfig: path.resolve(__dirname, 'sample/tsconfig-jsx/tsconfig.json')}); const usage = code.indexOf( 'React.createElement("span", __assign({}, props), "Yo!")' ); assert.notEqual( usage, -1, 'should contain usage' ); }); it( 'throws if tsconfig cannot be found', async () => { let caughtError = null; try { await bundle( 'sample/tsconfig-jsx/main.tsx', {tsconfig: path.resolve(__dirname, 'does-not-exist.json')} ); } catch (error) { caughtError = error; } assert.ok(!!caughtError, 'Throws an error.'); assert.ok(caughtError.message.indexOf( 'Could not find specified tsconfig.json' ) !== -1, `Unexpected error message: ${caughtError.message}`); }); it('should throw on bad options', () => { return bundle('does-not-matter.ts', { foo: 'bar' }).then(() => { throw new Error('plugin did not throw'); }).catch(err => assert.equal(err.message, 'rollup-plugin-typescript: Couldn\'t process compiler options')); }); it( 'prevents errors due to conflicting `sourceMap`/`inlineSourceMap` options', () => { return bundle( 'sample/overriding-typescript/main.ts', { inlineSourceMap: true }); }); it ( 'should not fail if source maps are off', () => { return bundle( 'sample/overriding-typescript/main.ts', { inlineSourceMap: false, sourceMap: false }); }); it( 'does not include helpers in source maps', async () => { const bundled = await bundle( 'sample/dedup-helpers/main.ts', { sourceMap: true }); const map = getOutputFromGenerated(await bundled.generate({ format: 'es', sourcemap: true })).map; assert.ok( map.sources.every( source => source.indexOf( 'tslib' ) === -1) ); }); it( 'should allow a namespace containing a class', async () => { const MODE = (await evaluate('sample/export-namespace-export-class/test.ts')).MODE.MODE; const mode = new MODE(); assert.ok(mode instanceof MODE); }); it( 'should allow merging an exported function and namespace', async () => { const f = (await evaluate('sample/export-fodule/main.ts')).test; assert.equal(f(), 0); assert.equal(f.foo, "2"); }); it('supports dynamic imports', async () => { const code = await getCodeFromBundle(await rollup.rollup({ input: 'sample/dynamic-imports/main.ts', inlineDynamicImports: true, plugins: [typescript()] })); assert.notEqual( code.indexOf( 'console.log(\'dynamic\')' ), -1 ); }); it('supports CommonJS imports when the output format is CommonJS', async () => { const output = await evaluateBundle(await rollup.rollup({ input: 'sample/commonjs-imports/main.ts', plugins: [typescript({module: 'CommonJS'}), commonjs({extensions: ['.ts', '.js']})] })); assert.equal(output, 'exported from commonjs'); }); }); function fakeTypescript ( custom ) { return assign({ transpileModule () { return { outputText: '', diagnostics: [], sourceMapText: JSON.stringify({ mappings: '' }) }; }, convertCompilerOptionsFromJson ( options ) { [ 'include', 'exclude', 'typescript', 'tslib', 'tsconfig' ].forEach( option => { if ( option in options ) { throw new Error( 'unrecognized compiler option "' + option + '"' ); } }); return { options, errors: [] }; } }, custom); }