From dff335a6fbcbc94b8a61eb98f15c04e10051adfa Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Thu, 10 May 2018 19:47:14 +0200 Subject: [PATCH] feat(core): initial --- .gitignore | 6 + .gitlab-ci.yml | 125 +++++++++ dist/index.d.ts | 6 + dist/index.js | 28 ++ dist/smartcsv.plugins.d.ts | 2 + dist/smartcsv.plugins.js | 5 + npmextra.json | 8 + package.json | 20 ++ test/sample.csv | 3 + test/test.ts | 21 ++ ts/index.ts | 64 +++++ ts/smartcsv.plugins.ts | 5 + tslint.json | 13 + yarn-error.log | 319 +++++++++++++++++++++++ yarn.lock | 521 +++++++++++++++++++++++++++++++++++++ 15 files changed, 1146 insertions(+) create mode 100644 .gitignore create mode 100644 .gitlab-ci.yml create mode 100644 dist/index.d.ts create mode 100644 dist/index.js create mode 100644 dist/smartcsv.plugins.d.ts create mode 100644 dist/smartcsv.plugins.js create mode 100644 npmextra.json create mode 100644 package.json create mode 100644 test/sample.csv create mode 100644 test/test.ts create mode 100644 ts/index.ts create mode 100644 ts/smartcsv.plugins.ts create mode 100644 tslint.json create mode 100644 yarn-error.log create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..344b0dc --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +.nogit/ +node_modules/ +coverage/ +public/ +pages/ +.yarn/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..ee7bd94 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,125 @@ +# gitzone standard +image: hosttoday/ht-docker-node:npmci + +cache: + paths: + - .yarn/ + key: "$CI_BUILD_STAGE" + +stages: +- security +- test +- release +- metadata + +mirror: + stage: security + script: + - npmci git mirror + tags: + - docker + - notpriv + +snyk: + stage: security + script: + - npmci command yarn global add snyk + - npmci command yarn install --ignore-scripts + - npmci command snyk test + tags: + - docker + - notpriv + +testLEGACY: + stage: test + script: + - npmci node install legacy + - npmci npm install + - npmci npm test + coverage: /\d+.?\d+?\%\s*coverage/ + tags: + - docker + - notpriv + allow_failure: true + +testLTS: + stage: test + script: + - npmci node install lts + - npmci npm install + - npmci npm test + coverage: /\d+.?\d+?\%\s*coverage/ + tags: + - docker + - notpriv + +testSTABLE: + stage: test + script: + - npmci node install stable + - npmci npm install + - npmci npm test + coverage: /\d+.?\d+?\%\s*coverage/ + tags: + - docker + - notpriv + +release: + stage: release + script: + - npmci node install stable + - npmci npm prepare + - npmci npm publish + only: + - tags + tags: + - docker + - notpriv + +# ==================== +# metadata stage +# ==================== +codequality: + stage: metadata + image: docker:stable + allow_failure: true + services: + - docker:stable-dind + script: + - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/') + - docker run + --env SOURCE_CODE="$PWD" + --volume "$PWD":/code + --volume /var/run/docker.sock:/var/run/docker.sock + "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code + artifacts: + paths: [codeclimate.json] + tags: + - docker + - priv + +trigger: + stage: metadata + script: + - npmci trigger + only: + - tags + tags: + - docker + - notpriv + +pages: + image: hosttoday/ht-docker-node:npmci + stage: metadata + script: + - npmci command yarn global add npmpage + - npmci command npmpage + tags: + - docker + - notpriv + only: + - tags + artifacts: + expire_in: 1 week + paths: + - public diff --git a/dist/index.d.ts b/dist/index.d.ts new file mode 100644 index 0000000..9062c68 --- /dev/null +++ b/dist/index.d.ts @@ -0,0 +1,6 @@ +export declare class Csv { + static createCsvFromString(csvStringArg: string): Promise; + csvString: string; + getHeaders(): void; + exportAsJson(): void; +} diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..bbc710f --- /dev/null +++ b/dist/index.js @@ -0,0 +1,28 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +class Csv { + static createCsvFromString(csvStringArg) { + return __awaiter(this, void 0, void 0, function* () { + const csvInstance = new Csv(); + csvInstance.csvString = csvStringArg; + return csvInstance; + }); + } + getHeaders() { + } + exportAsJson() { + let json = { + [`key`]: 'hi' + }; + } +} +exports.Csv = Csv; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBRUE7SUFDUyxNQUFNLENBQU8sbUJBQW1CLENBQUUsWUFBb0I7O1lBQzNELE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7WUFDOUIsV0FBVyxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7WUFDckMsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQztLQUFBO0lBR00sVUFBVTtJQUVqQixDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLElBQUksR0FBRztZQUNULENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSTtTQUNkLENBQUM7SUFDSixDQUFDO0NBRUY7QUFsQkQsa0JBa0JDIn0= \ No newline at end of file diff --git a/dist/smartcsv.plugins.d.ts b/dist/smartcsv.plugins.d.ts new file mode 100644 index 0000000..aeefb70 --- /dev/null +++ b/dist/smartcsv.plugins.d.ts @@ -0,0 +1,2 @@ +import * as csv from 'csv'; +export { csv }; diff --git a/dist/smartcsv.plugins.js b/dist/smartcsv.plugins.js new file mode 100644 index 0000000..3fcda0b --- /dev/null +++ b/dist/smartcsv.plugins.js @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const csv = require("csv"); +exports.csv = csv; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRjc3YucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0Y3N2LnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQkFBMkI7QUFHekIsa0JBQUcifQ== \ No newline at end of file diff --git a/npmextra.json b/npmextra.json new file mode 100644 index 0000000..aa842b7 --- /dev/null +++ b/npmextra.json @@ -0,0 +1,8 @@ +{ + "npmci": { + "npmGlobalTools": [ + "@gitzone/npmts", + "ts-node" + ] + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..c2fd9ea --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "name": "@pushrocks/smartcsv", + "version": "1.0.1", + "description": "handle csv data", + "main": "dist/index.js", + "typings": "dist/index.d.ts", + "author": "Lossless GmbH", + "license": "MIT", + "scripts": { + "test": "(ts-node -O '{\"lib\": [ \"es2015\" ]}' test/test.ts)", + "format": "(gitzone format)" + }, + "devDependencies": { + "smartfile": "^4.2.28", + "tapbundle": "^2.0.0" + }, + "dependencies": { + "smartq": "^1.1.8" + } +} diff --git a/test/sample.csv b/test/sample.csv new file mode 100644 index 0000000..897f16d --- /dev/null +++ b/test/sample.csv @@ -0,0 +1,3 @@ +Header 1;Header 2; Header3 +row1data1; row1data2; row1data3 +row2data1; row2data2; row2data3 diff --git a/test/test.ts b/test/test.ts new file mode 100644 index 0000000..b2936f5 --- /dev/null +++ b/test/test.ts @@ -0,0 +1,21 @@ +// tslint:disable-next-line:no-implicit-dependencies +import { expect, tap } from 'tapbundle'; +import * as smartcsv from '../ts/index'; + +// tslint:disable-next-line:no-implicit-dependencies +import * as smartfile from 'smartfile'; + +let fileString: string; +let testCsv: smartcsv.Csv; + +tap.test('should read a file', async (tools) => { + fileString = smartfile.fs.toStringSync('./test/sample.csv'); +}); + +tap.test('should create a valid csv', async () => { + testCsv = await smartcsv.Csv.createCsvFromString(fileString, {headers: true}); + const result = await testCsv.exportAsObject(); + console.log(result); +}); + +tap.start(); diff --git a/ts/index.ts b/ts/index.ts new file mode 100644 index 0000000..6f45b75 --- /dev/null +++ b/ts/index.ts @@ -0,0 +1,64 @@ +import * as plugins from './smartcsv.plugins'; + +export interface ICsvConstructorOptions { + headers: boolean; +} + +export class Csv { + public static async createCsvFromString (csvStringArg: string, options: ICsvConstructorOptions): Promise { + const csvInstance = new Csv(); + csvInstance.csvString = csvStringArg; + return csvInstance; + } + public csvString: string; + public headers: string[]; + + public options: ICsvConstructorOptions = { + headers: true + }; + + public serializeCsvString () { + const rowArray = this.getRows(); + const resultArray = []; + if (this.options.headers) { + this.getHeaders(); + rowArray.shift(); + } + for (const row of rowArray) { + resultArray.push(row.split(';')); + } + return resultArray; + } + + public getRows () { + return this.csvString.split('\n'); + } + + public getHeaders () { + const rowArray = this.getRows(); + if (this.options.headers) { + let headerRow = rowArray[ 0 ]; + this.headers = headerRow.split(';'); + } + return this.headers; + } + + public createDataObject (dataArray: string[]) { + const neededIterations = dataArray.length; + let resultJson: any = {}; + for(let i = 0; i < neededIterations; i++) { + resultJson[this.headers[i]] = dataArray[i]; + } + return resultJson; + } + + public async exportAsObject (): Promise { + const serializedData = this.serializeCsvString(); + const dataObjects = []; + for (const dataArray of serializedData) { + dataObjects.push(this.createDataObject(dataArray)); + } + return dataObjects; + } + +} diff --git a/ts/smartcsv.plugins.ts b/ts/smartcsv.plugins.ts new file mode 100644 index 0000000..6fa8854 --- /dev/null +++ b/ts/smartcsv.plugins.ts @@ -0,0 +1,5 @@ +import * as smartq from 'smartq'; + +export { + smartq +}; diff --git a/tslint.json b/tslint.json new file mode 100644 index 0000000..9f5c33e --- /dev/null +++ b/tslint.json @@ -0,0 +1,13 @@ +{ + "extends": [ + "tslint:latest", + "tslint-config-prettier" + ], + "rules": { + "semicolon": [ + true, + "always" + ] + } + } + \ No newline at end of file diff --git a/yarn-error.log b/yarn-error.log new file mode 100644 index 0000000..7125e72 --- /dev/null +++ b/yarn-error.log @@ -0,0 +1,319 @@ +Arguments: + /Users/philkunz/.nvm/versions/node/v9.7.1/bin/node /Users/philkunz/.yarn/bin/yarn.js remove smartcsv + +PATH: + /Users/philkunz/.yarn/bin:/Users/philkunz/.config/yarn/global/node_modules/.bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/philkunz/.yarn/bin:/Users/philkunz/.config/yarn/global/node_modules/.bin:/Users/philkunz/.nvm/versions/node/v9.7.1/bin + +Yarn version: + 1.5.1 + +Node version: + 9.7.1 + +Platform: + darwin x64 + +npm manifest: + { + "name": "@pushrocks/smartcsv", + "version": "1.0.1", + "description": "handle csv data", + "main": "dist/index.js", + "typings": "dist/index.d.ts", + "author": "Lossless GmbH", + "license": "", + "scripts": { + "test": "(npmts)", + "format": "(gitzone format)" + }, + "devDependencies": { + "tapbundle": "^2.0.0" + }, + "dependencies": { + "csv": "^3.0.2" + } + } + +yarn manifest: + No manifest + +Lockfile: + # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. + # yarn lockfile v1 + + + "@types/chai-as-promised@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.0.tgz#010b04cde78eacfb6e72bfddb3e58fe23c2e78b9" + dependencies: + "@types/chai" "*" + + "@types/chai-string@^1.4.0": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@types/chai-string/-/chai-string-1.4.1.tgz#3a9d22716c27f2759bf272a4dbbdb593f18399e3" + dependencies: + "@types/chai" "*" + + "@types/chai@*", "@types/chai@^4.1.2": + version "4.1.3" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.3.tgz#b8a74352977a23b604c01aa784f5b793443fb7dc" + + ansi-256-colors@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-256-colors/-/ansi-256-colors-1.1.0.tgz#910de50efcc7c09e3d82f2f87abd6b700c18818a" + + assertion-error@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + + beautycolor@^1.0.7: + version "1.0.11" + resolved "https://registry.yarnpkg.com/beautycolor/-/beautycolor-1.0.11.tgz#71c5568d5a7ed5c144d3a54f753ad1b08862aea5" + dependencies: + ansi-256-colors "^1.1.0" + typings-global "^1.0.14" + + bindings@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7" + + chai-as-promised@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" + dependencies: + check-error "^1.0.2" + + chai-string@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/chai-string/-/chai-string-1.4.0.tgz#359140c051d36a4e4b1a5fc6b910152f438a8d49" + + chai@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c" + dependencies: + assertion-error "^1.0.1" + check-error "^1.0.1" + deep-eql "^3.0.0" + get-func-name "^2.0.0" + pathval "^1.0.0" + type-detect "^4.0.0" + + check-error@^1.0.1, check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + + csv-generate@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/csv-generate/-/csv-generate-2.0.2.tgz#1c26c52be318f1f0b6435f8df3d1249fb1503f4b" + + csv-parse@^2.2.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-2.4.0.tgz#d4c72a1533734b2c2a65f486d13091264cacc115" + + csv-stringify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-3.0.0.tgz#ed2b4eaae5a3be382309f7864168458970307d7f" + dependencies: + lodash.get "~4.4.2" + + csv@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/csv/-/csv-3.0.2.tgz#3f29d92cd27c75e3ba21265b5cad29bd2d785358" + dependencies: + csv-generate "^2.0.2" + csv-parse "^2.2.0" + csv-stringify "^3.0.0" + stream-transform "^1.0.2" + + deep-eql@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + dependencies: + type-detect "^4.0.0" + + define-properties@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" + + early@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/early/-/early-2.1.1.tgz#841e23254ea5dc54d8afaeee82f5ab65c00ee23c" + dependencies: + beautycolor "^1.0.7" + smartq "^1.1.1" + typings-global "^1.0.16" + + es-abstract@^1.5.1: + version "1.11.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.11.0.tgz#cce87d518f0496893b1a30cd8461835535480681" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + + es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + + es6-error@^4.0.2: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + + foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + + function-bind@^1.0.2, function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + + get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + + has@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" + dependencies: + function-bind "^1.0.2" + + is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + + is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + + is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + + is-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + + leakage@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/leakage/-/leakage-0.3.0.tgz#15d698abdc76bbc6439601f4f3020e77e2d50c39" + dependencies: + es6-error "^4.0.2" + left-pad "^1.1.3" + memwatch-next "^0.3.0" + minimist "^1.2.0" + pretty-bytes "^4.0.2" + + left-pad@^1.1.3: + version "1.3.0" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + + lodash.get@~4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + + memwatch-next@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/memwatch-next/-/memwatch-next-0.3.0.tgz#2111050f9a906e0aa2d72a4ec0f0089c78726f8f" + dependencies: + bindings "^1.2.1" + nan "^2.3.2" + + minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + + nan@^2.3.2: + version "2.10.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" + + object-keys@^1.0.8: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + + object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + + pathval@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + + pretty-bytes@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" + + smartchai@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/smartchai/-/smartchai-2.0.1.tgz#d20f17221f0e3c6c3473600b78ddfba0ab0ea762" + dependencies: + "@types/chai" "^4.1.2" + "@types/chai-as-promised" "^7.1.0" + "@types/chai-string" "^1.4.0" + chai "^4.1.2" + chai-as-promised "^7.1.1" + chai-string "^1.4.0" + + smartdelay@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/smartdelay/-/smartdelay-1.0.4.tgz#791c1a4ee6770494064c10b1d2d2b8e6f3105b82" + dependencies: + smartq "^1.1.1" + typings-global "^1.0.16" + + smartq@^1.1.1: + version "1.1.8" + resolved "https://registry.yarnpkg.com/smartq/-/smartq-1.1.8.tgz#7e2f3b9739eb5d6c9f45f2a86e339ec81e49e8d2" + dependencies: + util.promisify "^1.0.0" + + stream-transform@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/stream-transform/-/stream-transform-1.0.2.tgz#47de4d15fbc29b7e2a7e54d25e99538876f114c1" + + tapbundle@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/tapbundle/-/tapbundle-2.0.0.tgz#79fce68ff185c786fabaf6eb589a4afc7d2714b7" + dependencies: + early "^2.1.1" + leakage "^0.3.0" + smartchai "^2.0.0" + smartdelay "^1.0.3" + smartq "^1.1.1" + + type-detect@^4.0.0: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + + typings-global@^1.0.14, typings-global@^1.0.16: + version "1.0.28" + resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.28.tgz#e28cc965476564cbc00e438739e0aa0735d323d4" + + util.promisify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +Trace: + Error: This module isn't specified in a manifest. + at new MessageError (/Users/philkunz/.yarn/lib/cli.js:186:110) + at Object. (/Users/philkunz/.yarn/lib/cli.js:60445:15) + at Generator.next () + at step (/Users/philkunz/.yarn/lib/cli.js:98:30) + at /Users/philkunz/.yarn/lib/cli.js:109:13 + at diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..4e789e3 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,521 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@types/chai-as-promised@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.0.tgz#010b04cde78eacfb6e72bfddb3e58fe23c2e78b9" + dependencies: + "@types/chai" "*" + +"@types/chai-string@^1.4.0": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@types/chai-string/-/chai-string-1.4.1.tgz#3a9d22716c27f2759bf272a4dbbdb593f18399e3" + dependencies: + "@types/chai" "*" + +"@types/chai@*", "@types/chai@^4.1.2": + version "4.1.3" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.3.tgz#b8a74352977a23b604c01aa784f5b793443fb7dc" + +"@types/fs-extra@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-5.0.0.tgz#d3e225b35eb5c6d3a5a782c28219df365c781413" + dependencies: + "@types/node" "*" + +"@types/node@*": + version "10.0.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.0.6.tgz#c0bce8e539bf34c1b850c13ff46bead2fecc2e58" + +"@types/vinyl@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@types/vinyl/-/vinyl-2.0.2.tgz#4f3b8dae8f5828d3800ef709b0cff488ee852de3" + dependencies: + "@types/node" "*" + +ansi-256-colors@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-256-colors/-/ansi-256-colors-1.1.0.tgz#910de50efcc7c09e3d82f2f87abd6b700c18818a" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + dependencies: + sprintf-js "~1.0.2" + +assertion-error@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +beautycolor@^1.0.7: + version "1.0.11" + resolved "https://registry.yarnpkg.com/beautycolor/-/beautycolor-1.0.11.tgz#71c5568d5a7ed5c144d3a54f753ad1b08862aea5" + dependencies: + ansi-256-colors "^1.1.0" + typings-global "^1.0.14" + +bindings@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +chai-as-promised@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" + dependencies: + check-error "^1.0.2" + +chai-string@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/chai-string/-/chai-string-1.4.0.tgz#359140c051d36a4e4b1a5fc6b910152f438a8d49" + +chai@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c" + dependencies: + assertion-error "^1.0.1" + check-error "^1.0.1" + deep-eql "^3.0.0" + get-func-name "^2.0.0" + pathval "^1.0.0" + type-detect "^4.0.0" + +check-error@^1.0.1, check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + +clone-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + +clone-stats@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + +clone@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb" + +cloneable-readable@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.2.tgz#d591dee4a8f8bc15da43ce97dceeba13d43e2a65" + dependencies: + inherits "^2.0.1" + process-nextick-args "^2.0.0" + readable-stream "^2.3.5" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +deep-eql@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + dependencies: + type-detect "^4.0.0" + +define-properties@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" + +early@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/early/-/early-2.1.1.tgz#841e23254ea5dc54d8afaeee82f5ab65c00ee23c" + dependencies: + beautycolor "^1.0.7" + smartq "^1.1.1" + typings-global "^1.0.16" + +es-abstract@^1.5.1: + version "1.11.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.11.0.tgz#cce87d518f0496893b1a30cd8461835535480681" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + +es6-error@^4.0.2: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + +esprima@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + +first-chunk-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70" + dependencies: + readable-stream "^2.0.2" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + +fs-extra@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +function-bind@^1.0.2, function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + +glob@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + 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" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +has@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" + dependencies: + function-bind "^1.0.2" + +home@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/home/-/home-1.0.1.tgz#96a423ceb49b98378ff5ef3ceae059a557f9dd35" + dependencies: + os-homedir "^1.0.1" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + +is-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + +is-utf8@^0.2.0, is-utf8@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +js-yaml@^3.10.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + optionalDependencies: + graceful-fs "^4.1.6" + +leakage@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/leakage/-/leakage-0.3.0.tgz#15d698abdc76bbc6439601f4f3020e77e2d50c39" + dependencies: + es6-error "^4.0.2" + left-pad "^1.1.3" + memwatch-next "^0.3.0" + minimist "^1.2.0" + pretty-bytes "^4.0.2" + +left-pad@^1.1.3: + version "1.3.0" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + +memwatch-next@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/memwatch-next/-/memwatch-next-0.3.0.tgz#2111050f9a906e0aa2d72a4ec0f0089c78726f8f" + dependencies: + bindings "^1.2.1" + nan "^2.3.2" + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +nan@^2.3.2: + version "2.10.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" + +object-keys@^1.0.8: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +pathval@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + +pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pretty-bytes@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" + +process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + +readable-stream@^2.0.2, readable-stream@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + +replace-ext@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + +require-reload@0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/require-reload/-/require-reload-0.2.2.tgz#29a7591846caf91b6e8a3cda991683f95f8d7d42" + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + +smartchai@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/smartchai/-/smartchai-2.0.1.tgz#d20f17221f0e3c6c3473600b78ddfba0ab0ea762" + dependencies: + "@types/chai" "^4.1.2" + "@types/chai-as-promised" "^7.1.0" + "@types/chai-string" "^1.4.0" + chai "^4.1.2" + chai-as-promised "^7.1.1" + chai-string "^1.4.0" + +smartdelay@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/smartdelay/-/smartdelay-1.0.4.tgz#791c1a4ee6770494064c10b1d2d2b8e6f3105b82" + dependencies: + smartq "^1.1.1" + typings-global "^1.0.16" + +smartfile@^4.2.28: + version "4.2.28" + resolved "https://registry.yarnpkg.com/smartfile/-/smartfile-4.2.28.tgz#ab089e0bad63dec5feddb5f3d1cd5d99b76da118" + dependencies: + "@types/fs-extra" "5.0.0" + "@types/vinyl" "^2.0.2" + fs-extra "^5.0.0" + glob "^7.1.2" + js-yaml "^3.10.0" + require-reload "0.2.2" + smartpath "^3.2.8" + smartq "^1.1.6" + smartrequest "^1.0.8" + vinyl-file "^3.0.0" + +smartpath@^3.2.8: + version "3.2.8" + resolved "https://registry.yarnpkg.com/smartpath/-/smartpath-3.2.8.tgz#4834bd3a8bae2295baacadba23c87a501952f940" + dependencies: + home "^1.0.1" + typings-global "^1.0.14" + +smartq@^1.1.1, smartq@^1.1.6, smartq@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/smartq/-/smartq-1.1.8.tgz#7e2f3b9739eb5d6c9f45f2a86e339ec81e49e8d2" + dependencies: + util.promisify "^1.0.0" + +smartrequest@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/smartrequest/-/smartrequest-1.0.8.tgz#9af18dde34efa7d43b4ecfc92ccb157a98eda3b1" + dependencies: + smartq "^1.1.1" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + dependencies: + safe-buffer "~5.1.0" + +strip-bom-buf@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz#1cb45aaf57530f4caf86c7f75179d2c9a51dd572" + dependencies: + is-utf8 "^0.2.1" + +strip-bom-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz#f87db5ef2613f6968aa545abfe1ec728b6a829ca" + dependencies: + first-chunk-stream "^2.0.0" + strip-bom "^2.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +tapbundle@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/tapbundle/-/tapbundle-2.0.0.tgz#79fce68ff185c786fabaf6eb589a4afc7d2714b7" + dependencies: + early "^2.1.1" + leakage "^0.3.0" + smartchai "^2.0.0" + smartdelay "^1.0.3" + smartq "^1.1.1" + +type-detect@^4.0.0: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + +typings-global@^1.0.14, typings-global@^1.0.16: + version "1.0.28" + resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.28.tgz#e28cc965476564cbc00e438739e0aa0735d323d4" + +universalify@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util.promisify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +vinyl-file@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-3.0.0.tgz#b104d9e4409ffa325faadd520642d0a3b488b365" + dependencies: + graceful-fs "^4.1.2" + pify "^2.3.0" + strip-bom-buf "^1.0.0" + strip-bom-stream "^2.0.0" + vinyl "^2.0.1" + +vinyl@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.1.0.tgz#021f9c2cf951d6b939943c89eb5ee5add4fd924c" + dependencies: + clone "^2.1.1" + clone-buffer "^1.0.0" + clone-stats "^1.0.0" + cloneable-readable "^1.0.0" + remove-trailing-separator "^1.0.1" + replace-ext "^1.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"