From eb3c720d4e5b51be5759dfbe9e0ada223d47a067 Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Thu, 27 Apr 2017 16:48:08 +0200 Subject: [PATCH] update to latest standards --- dist/smartfile.classes.smartfile.d.ts | 37 ++- dist/smartfile.classes.smartfile.js | 41 ++- package.json | 13 +- test/test.d.ts | 1 - test/test.js | 217 -------------- test/test.js.map | 1 - test/test.ts | 401 ++++++++++++-------------- ts/smartfile.classes.smartfile.ts | 54 +++- yarn.lock | 175 +++++++---- 9 files changed, 425 insertions(+), 515 deletions(-) delete mode 100644 test/test.d.ts delete mode 100644 test/test.js delete mode 100644 test/test.js.map diff --git a/dist/smartfile.classes.smartfile.d.ts b/dist/smartfile.classes.smartfile.d.ts index 3e4bb7c..6c56c8e 100644 --- a/dist/smartfile.classes.smartfile.d.ts +++ b/dist/smartfile.classes.smartfile.d.ts @@ -4,13 +4,48 @@ export interface ISmartfileConstructorOptions { contentsString?: string; contentBuffer?: Buffer; } +/** + * class Smartfile + * -> is vinyl file compatible + */ export declare class Smartfile { + /** + * the full path of the file on disk + */ path: string; + /** + * The contents of the file as Buffer + */ contents: Buffer; + /** + * The current working directory of the file + */ + cwd: string; + /** + * sync the file with disk + */ + sync: boolean; + /** + * the constructor of Smartfile + * @param optionsArg + */ constructor(optionsArg: ISmartfileConstructorOptions); + /** + * return relative path of file + * -> + */ + readonly relative: string; /** * set contents from string * @param contentString */ - setContentFromString(contentString: string): void; + setContentsFromString(contentString: string): void; + /** + * write file to disk + */ + write(): Promise; + /** + * read file from disk + */ + read(): Promise; } diff --git a/dist/smartfile.classes.smartfile.js b/dist/smartfile.classes.smartfile.js index e2dd0c8..6db656c 100644 --- a/dist/smartfile.classes.smartfile.js +++ b/dist/smartfile.classes.smartfile.js @@ -1,6 +1,22 @@ "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 Smartfile + * -> is vinyl file compatible + */ class Smartfile { + /** + * the constructor of Smartfile + * @param optionsArg + */ constructor(optionsArg) { if (optionsArg.contentBuffer) { this.contents = optionsArg.contentBuffer; @@ -10,13 +26,34 @@ class Smartfile { } this.path = optionsArg.path; } + /** + * return relative path of file + * -> + */ + get relative() { + return ''; + } /** * set contents from string * @param contentString */ - setContentFromString(contentString) { + setContentsFromString(contentString) { this.contents = new Buffer(contentString); } + /** + * write file to disk + */ + write() { + return __awaiter(this, void 0, void 0, function* () { + }); + } + /** + * read file from disk + */ + read() { + return __awaiter(this, void 0, void 0, function* () { + }); + } } exports.Smartfile = Smartfile; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxlLmNsYXNzZXMuc21hcnRmaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRmaWxlLmNsYXNzZXMuc21hcnRmaWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUE7SUFHRSxZQUFZLFVBQXdDO1FBQ2xELEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQTtRQUMxQyxDQUFDO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ3ZELENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUE7SUFDN0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILG9CQUFvQixDQUFDLGFBQXFCO1FBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDM0MsQ0FBQztDQUNGO0FBbkJELDhCQW1CQyJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxlLmNsYXNzZXMuc21hcnRmaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRmaWxlLmNsYXNzZXMuc21hcnRmaWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFRQTs7O0dBR0c7QUFDSDtJQXFCRTs7O09BR0c7SUFDSCxZQUFhLFVBQXdDO1FBQ25ELEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQTtRQUMxQyxDQUFDO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ3ZELENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUE7SUFDN0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksUUFBUTtRQUNWLE1BQU0sQ0FBQyxFQUFFLENBQUE7SUFDWCxDQUFDO0lBR0Q7OztPQUdHO0lBQ0gscUJBQXFCLENBQUMsYUFBcUI7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDRyxLQUFLOztRQUVYLENBQUM7S0FBQTtJQUVEOztPQUVHO0lBQ0csSUFBSTs7UUFDVixDQUFDO0tBQUE7Q0FDRjtBQS9ERCw4QkErREMifQ== \ No newline at end of file diff --git a/package.json b/package.json index b6aef51..749b4ca 100644 --- a/package.json +++ b/package.json @@ -26,22 +26,21 @@ }, "homepage": "https://gitlab.com/pushrocks/smartfile", "dependencies": { - "@types/fs-extra": "0.x.x", + "@types/fs-extra": "2.x.x", "@types/vinyl": "^2.0.0", - "fs-extra": "^2.0.0", + "fs-extra": "^2.1.2", "glob": "^7.1.1", - "js-yaml": "^3.8.2", + "js-yaml": "^3.8.3", "require-reload": "0.2.2", "smartpath": "^3.2.8", "smartq": "^1.1.1", "smartrequest": "^1.0.4", - "typings-global": "^1.0.14", - "vinyl": "^2.0.1", + "typings-global": "^1.0.16", + "vinyl": "^2.0.2", "vinyl-file": "^3.0.0" }, "devDependencies": { "gulp-function": "^2.2.3", - "smartchai": "^1.0.3", - "typings-test": "^1.0.3" + "tapbundle": "^1.0.9" } } diff --git a/test/test.d.ts b/test/test.d.ts deleted file mode 100644 index 2fd432a..0000000 --- a/test/test.d.ts +++ /dev/null @@ -1 +0,0 @@ -import 'typings-test'; diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 5f80fb5..0000000 --- a/test/test.js +++ /dev/null @@ -1,217 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -require("typings-test"); -const smartfile = require("../dist/index"); -const path = require("path"); -const smartchai_1 = require("smartchai"); -const vinyl = require("vinyl"); -describe('smartfile', function () { - describe('.fs', function () { - describe('.fileExistsSync', function () { - it('should return an accurate boolean', function () { - smartchai_1.expect(smartfile.fs.fileExistsSync('./test/mytest.json')).to.be.true; - smartchai_1.expect(smartfile.fs.fileExistsSync('./test/notthere.json')).be.false; - }); - }); - describe('.fileExists', function () { - it('should return a working promise', function () { - smartchai_1.expect(smartfile.fs.fileExists('./test/mytest.json')).to.be.a('promise'); - smartchai_1.expect(smartfile.fs.fileExists('./test/mytest.json')).to.be.fulfilled; - smartchai_1.expect(smartfile.fs.fileExists('./test/notthere.json')).to.not.be.fulfilled; - }); - }); - describe('.listFoldersSync()', function () { - it('should get the file type from a string', function () { - smartchai_1.expect(smartfile.fs.listFoldersSync('./test/')).to.deep.include('testfolder'); - smartchai_1.expect(smartfile.fs.listFoldersSync('./test/')).to.not.deep.include('notExistentFolder'); - }); - }); - describe('.listFolders()', function () { - it('should get the file type from a string', function (done) { - smartfile.fs.listFolders('./test/') - .then(function (folderArrayArg) { - smartchai_1.expect(folderArrayArg).to.deep.include('testfolder'); - smartchai_1.expect(folderArrayArg).to.not.deep.include('notExistentFolder'); - done(); - }); - }); - }); - describe('.listFilesSync()', function () { - it('should get the file type from a string', function () { - smartchai_1.expect(smartfile.fs.listFilesSync('./test/')).to.deep.include('mytest.json'); - smartchai_1.expect(smartfile.fs.listFilesSync('./test/')).to.not.deep.include('notExistentFile'); - smartchai_1.expect(smartfile.fs.listFilesSync('./test/', /mytest\.json/)).to.deep.include('mytest.json'); - smartchai_1.expect(smartfile.fs.listFilesSync('./test/', /mytests.json/)).to.not.deep.include('mytest.json'); - }); - }); - describe('.listFiles()', function () { - it('should get the file type from a string', function (done) { - smartfile.fs.listFiles('./test/') - .then(function (folderArrayArg) { - smartchai_1.expect(folderArrayArg).to.deep.include('mytest.json'); - smartchai_1.expect(folderArrayArg).to.not.deep.include('notExistentFile'); - done(); - }); - }); - }); - describe('.listFileTree()', function () { - it('should get a file tree', function (done) { - smartfile.fs.listFileTree(path.resolve('./test/'), '**/*.txt') - .then(function (folderArrayArg) { - smartchai_1.expect(folderArrayArg).to.deep.include('testfolder/testfile1.txt'); - smartchai_1.expect(folderArrayArg).to.not.deep.include('mytest.json'); - done(); - }); - }); - }); - describe('toObjectFromFileTree', function () { - it('should read a file tree into an Object', function () { - smartfile.fs.fileTreeToObject(path.resolve('./test/'), '**/*.txt') - .then((fileArrayArg) => { - // expect(fileArrayArg[1]).to.be.instanceof(smartfile.Smartfile) - }); - }); - }); - describe('.copy()', function () { - it('should copy a directory', function () { - smartfile.fs.copy('./test/testfolder/', './test/temp/'); - }); - it('should copy a file', function () { - smartfile.fs.copy('./test/mytest.yaml', './test/temp/'); - }); - it('should copy a file and rename it', function () { - smartfile.fs.copy('./test/mytest.yaml', './test/temp/mytestRenamed.yaml'); - }); - }); - describe('.remove()', function () { - it('should remove an entire directory', function () { - }); - it('smartfile.fs.remove -> should remove single files', function (done) { - smartfile.fs.remove('./test/temp/mytestRenamed.yaml') - .then(() => { done(); }); - }); - it('smartfile.fs.removeSync -> should remove single files synchronouly', function () { - smartfile.fs.removeSync('./test/temp/testfile1.txt'); - smartchai_1.expect(smartfile.fs.fileExistsSync('./test/temp/testfile1.txt')).to.be.false; - }); - it('smartfile.fs.removeMany -> should remove and array of files', function (done) { - smartfile.fs.removeMany(['./test/temp/testfile1.txt', './test/temp/testfile2.txt']).then(() => { - smartchai_1.expect(smartfile.fs.fileExistsSync('./test/temp/testfile1.txt')).to.be.false; - smartchai_1.expect(smartfile.fs.fileExistsSync('./test/temp/testfile2.txt')).to.be.false; - done(); - }); - }); - it('smartfile.fs.removeManySync -> should remove and array of single files synchronouly', function () { - smartfile.fs.removeManySync(['./test/temp/testfile1.txt', './test/temp/testfile2.txt']); - smartchai_1.expect(smartfile.fs.fileExistsSync('./test/temp/testfile1.txt')).to.be.false; - smartchai_1.expect(smartfile.fs.fileExistsSync('./test/temp/testfile2.txt')).to.be.false; - }); - }); - }); - describe('.interpreter', function () { - describe('.filetype()', function () { - it('should get the file type from a string', function () { - smartchai_1.expect(smartfile.interpreter.filetype('./somefolder/data.json')).equal('json'); - }); - }); - }); - describe('.fs', function () { - describe('.toObjectSync()', function () { - it('should read an ' + '.yaml' + ' file to an object', function () { - let testData = smartfile.fs.toObjectSync('./test/mytest.yaml'); - smartchai_1.expect(testData).have.property('key1', 'this works'); - smartchai_1.expect(testData).have.property('key2', 'this works too'); - }); - it('should state unknown file type for unknown file types', function () { - let testData = smartfile.fs.toObjectSync('./test/mytest.txt'); - }); - it('should read an ' + '.json' + ' file to an object', function () { - let testData = smartfile.fs.toObjectSync('./test/mytest.json'); - smartchai_1.expect(testData).have.property('key1', 'this works'); - smartchai_1.expect(testData).have.property('key2', 'this works too'); - }); - }); - describe('.toStringSync()', function () { - it('should read a file to a string', function () { - smartchai_1.expect(smartfile.fs.toStringSync('./test/mytest.txt')) - .to.equal('Some TestString &&%$'); - }); - }); - describe('.toVinylSync', function () { - it('should read an ' + '.json OR .yaml' + ' file to an ' + 'vinyl file object', function () { - let testData = smartfile.fs.toVinylSync('./test/mytest.json'); - smartchai_1.expect(vinyl.isVinyl(testData)).to.be.true; - }); - }); - }); - describe('.memory', function () { - describe('.toGulpStream()', function () { - it('should produce a valid gulp stream', function () { - let localArray = ['test1', 'test2', 'test3']; - smartfile.memory.toGulpStream(localArray); - }); - }); - describe('toVinylFileSync()', function () { - it('should produce a vinylFile', function () { - let localString = 'myString'; - let localOptions = { filename: 'vinylfile2', base: '/someDir' }; - smartchai_1.expect(smartfile.memory.toVinylFileSync(localString, localOptions) instanceof vinyl).to.be.true; - }); - }); - describe('toVinylArraySync()', function () { - it('should produce a an array of vinylfiles', function () { - let localStringArray = ['string1', 'string2', 'string3']; - let localOptions = { filename: 'vinylfile2', base: '/someDir' }; - let testResult = smartfile.memory.toVinylArraySync(localStringArray, localOptions); - smartchai_1.expect(testResult).to.be.a('array'); - smartchai_1.expect(testResult.length === 3).to.be.true; - for (let myKey in testResult) { - smartchai_1.expect(testResult[myKey] instanceof vinyl).to.be.true; - } - }); - }); - describe('vinylToStringSync()', function () { - it('should produce a String from vinyl file', function () { - let localString = smartfile.memory.vinylToStringSync(new vinyl({ - base: '/', - path: '/test.txt', - contents: new Buffer('myString') - })); - smartchai_1.expect(localString).equal('myString'); - }); - }); - describe('toFs()', function () { - it('should write a file to disk and return a promise', function (done) { - let localString = 'myString'; - smartfile.memory.toFs(localString, path.join(process.cwd(), './test/temp/testMemToFs.txt')).then(done); - }); - }); - describe('toFsSync()', function () { - it('should write a file to disk and return true if successfull', function () { - let localString = 'myString'; - smartfile.memory.toFsSync(localString, path.join(process.cwd(), './test/temp/testMemToFsSync.txt')); - }); - }); - }); - describe('.remote', function () { - describe('.toString()', function () { - it('should load a remote file to a variable', function (done) { - this.timeout(5000); - smartfile.remote.toString('https://raw.githubusercontent.com/pushrocks/smartfile/master/test/mytest.txt').then(function (responseString) { - smartchai_1.expect(responseString).to.equal('Some TestString &&%$'); - done(); - }); - }); - it('should reject a Promise when the link is false', function (done) { - this.timeout(10000); - smartfile.remote.toString('https://push.rocks/doesnotexist.txt') - .then(function () { - throw new Error('this test should not be resolved'); - }, function () { - done(); - }); - }); - }); - }); -}); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx3QkFBcUI7QUFDckIsMkNBQTBDO0FBQzFDLDZCQUE2QjtBQUU3Qix5Q0FBa0M7QUFFbEMsK0JBQThCO0FBRTlCLFFBQVEsQ0FBQyxXQUFXLEVBQUU7SUFDcEIsUUFBUSxDQUFDLEtBQUssRUFBRTtRQUNkLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixFQUFFLENBQUMsbUNBQW1DLEVBQUU7Z0JBQ3RDLGtCQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFBO2dCQUNwRSxrQkFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFBO1lBQ3RFLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7UUFDRixRQUFRLENBQUMsYUFBYSxFQUFFO1lBQ3RCLEVBQUUsQ0FBQyxpQ0FBaUMsRUFBRTtnQkFDcEMsa0JBQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUE7Z0JBQ3hFLGtCQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFBO2dCQUNyRSxrQkFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUE7WUFDN0UsQ0FBQyxDQUFDLENBQUE7UUFDSixD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 \ No newline at end of file diff --git a/test/test.js.map b/test/test.js.map deleted file mode 100644 index 9692d6f..0000000 --- a/test/test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"test.js","sourceRoot":"","sources":["test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/test/test.ts b/test/test.ts index c43339f..576ac95 100644 --- a/test/test.ts +++ b/test/test.ts @@ -1,238 +1,201 @@ -import 'typings-test' import * as smartfile from '../dist/index' import path = require('path') -import { expect } from 'smartchai' +import { expect, tap } from 'tapbundle' import * as vinyl from 'vinyl' -describe('smartfile', function () { - describe('.fs', function () { - describe('.fileExistsSync', function () { - it('should return an accurate boolean', function () { - expect(smartfile.fs.fileExistsSync('./test/mytest.json')).to.be.true - expect(smartfile.fs.fileExistsSync('./test/notthere.json')).be.false - }) - }) - describe('.fileExists', function () { - it('should return a working promise', function () { - expect(smartfile.fs.fileExists('./test/mytest.json')).to.be.a('promise') - expect(smartfile.fs.fileExists('./test/mytest.json')).to.be.fulfilled - expect(smartfile.fs.fileExists('./test/notthere.json')).to.not.be.fulfilled - }) - }) - describe('.listFoldersSync()', function () { - it('should get the file type from a string', function () { - expect(smartfile.fs.listFoldersSync('./test/')).to.deep.include('testfolder') - expect(smartfile.fs.listFoldersSync('./test/')).to.not.deep.include('notExistentFolder') - }) - }) - describe('.listFolders()', function () { - it('should get the file type from a string', function (done) { - smartfile.fs.listFolders('./test/') - .then(function (folderArrayArg) { - expect(folderArrayArg).to.deep.include('testfolder') - expect(folderArrayArg).to.not.deep.include('notExistentFolder') - done() - }) - }) - }) - describe('.listFilesSync()', function () { - it('should get the file type from a string', function () { - expect(smartfile.fs.listFilesSync('./test/')).to.deep.include('mytest.json') - expect(smartfile.fs.listFilesSync('./test/')).to.not.deep.include('notExistentFile') - expect(smartfile.fs.listFilesSync('./test/', /mytest\.json/)).to.deep.include('mytest.json') - expect(smartfile.fs.listFilesSync('./test/', /mytests.json/)).to.not.deep.include('mytest.json') - }) - }) - describe('.listFiles()', function () { - it('should get the file type from a string', function (done) { - smartfile.fs.listFiles('./test/') - .then(function (folderArrayArg) { - expect(folderArrayArg).to.deep.include('mytest.json') - expect(folderArrayArg).to.not.deep.include('notExistentFile') - done() - }) - }) - }) - describe('.listFileTree()', function () { - it('should get a file tree', function (done) { - smartfile.fs.listFileTree(path.resolve('./test/'), '**/*.txt') - .then(function (folderArrayArg) { - expect(folderArrayArg).to.deep.include('testfolder/testfile1.txt') - expect(folderArrayArg).to.not.deep.include('mytest.json') - done() - }) - }) - }) +tap.test('.fs.fileExistsSync -> should return an accurate boolean', async () => { + expect(smartfile.fs.fileExistsSync('./test/mytest.json')).to.be.true + expect(smartfile.fs.fileExistsSync('./test/notthere.json')).be.false +}) + +tap.test('.fs.fileExists should resolve or reject a promise', async () => { + expect(smartfile.fs.fileExists('./test/mytest.json')).to.be.instanceof(Promise) + await expect(smartfile.fs.fileExists('./test/mytest.json')).to.eventually.be.fulfilled + await expect(smartfile.fs.fileExists('./test/notthere.json')).to.eventually.be.rejected +}) + +tap.test('.fs.listFoldersSync() -> should get the file type from a string', async () => { + expect(smartfile.fs.listFoldersSync('./test/')).to.deep.include('testfolder') + expect(smartfile.fs.listFoldersSync('./test/')).to.not.deep.include('notExistentFolder') +}) + +tap.test('.fs.listFolders() -> should get the file type from a string', async () => { + let folderArrayArg = await smartfile.fs.listFolders('./test/') + expect(folderArrayArg).to.deep.include('testfolder') + expect(folderArrayArg).to.not.deep.include('notExistentFolder') +}) - describe('toObjectFromFileTree', function () { - it('should read a file tree into an Object', function () { - smartfile.fs.fileTreeToObject(path.resolve('./test/'), '**/*.txt') - .then((fileArrayArg) => { - // expect(fileArrayArg[1]).to.be.instanceof(smartfile.Smartfile) - }) - }) - }) - - describe('.copy()', function () { - it('should copy a directory', function () { - smartfile.fs.copy('./test/testfolder/', './test/temp/') - }) - it('should copy a file', function () { - smartfile.fs.copy('./test/mytest.yaml', './test/temp/') - }) - it('should copy a file and rename it', function () { - smartfile.fs.copy('./test/mytest.yaml', './test/temp/mytestRenamed.yaml') - }) - }) - describe('.remove()', function () { - it('should remove an entire directory', function () { +tap.test('.fs.listFilesSync() -> should get the file type from a string', async () => { + expect(smartfile.fs.listFilesSync('./test/')).to.deep.include('mytest.json') + expect(smartfile.fs.listFilesSync('./test/')).to.not.deep.include('notExistentFile') + expect(smartfile.fs.listFilesSync('./test/', /mytest\.json/)).to.deep.include('mytest.json') + expect(smartfile.fs.listFilesSync('./test/', /mytests.json/)).to.not.deep.include('mytest.json') +}) - }) - it('smartfile.fs.remove -> should remove single files', function (done) { - smartfile.fs.remove('./test/temp/mytestRenamed.yaml') - .then(() => { done() }) - }) - it('smartfile.fs.removeSync -> should remove single files synchronouly', function () { - smartfile.fs.removeSync('./test/temp/testfile1.txt') - expect(smartfile.fs.fileExistsSync('./test/temp/testfile1.txt')).to.be.false - }) - it('smartfile.fs.removeMany -> should remove and array of files', function (done) { - smartfile.fs.removeMany([ './test/temp/testfile1.txt', './test/temp/testfile2.txt' ]).then(() => { - expect(smartfile.fs.fileExistsSync('./test/temp/testfile1.txt')).to.be.false - expect(smartfile.fs.fileExistsSync('./test/temp/testfile2.txt')).to.be.false - done() - }) - }) - it('smartfile.fs.removeManySync -> should remove and array of single files synchronouly', function () { - smartfile.fs.removeManySync([ './test/temp/testfile1.txt', './test/temp/testfile2.txt' ]) - expect(smartfile.fs.fileExistsSync('./test/temp/testfile1.txt')).to.be.false - expect(smartfile.fs.fileExistsSync('./test/temp/testfile2.txt')).to.be.false - }) +tap.test('.fs.listFiles() -> should get the file type from a string', async () => { + let folderArrayArg = await smartfile.fs.listFiles('./test/') + expect(folderArrayArg).to.deep.include('mytest.json') + expect(folderArrayArg).to.not.deep.include('notExistentFile') +}) + +tap.test('.fs.listFileTree() -> should get a file tree', async () => { + let folderArrayArg = await smartfile.fs.listFileTree(path.resolve('./test/'), '**/*.txt') + expect(folderArrayArg).to.deep.include('testfolder/testfile1.txt') + expect(folderArrayArg).to.not.deep.include('mytest.json') +}) + + +tap.test('.fstoObjectFromFileTree -> should read a file tree into an Object', async () => { + let fileArrayArg = await smartfile.fs.fileTreeToObject(path.resolve('./test/'), '**/*.txt') + // expect(fileArrayArg[1]).to.be.instanceof(smartfile.Smartfile) +}) + + +tap.test('.fs.copy()', async () => { + tap.test('should copy a directory', async () => { + smartfile.fs.copy('./test/testfolder/', './test/temp/') + }) + tap.test('should copy a file', async () => { + smartfile.fs.copy('./test/mytest.yaml', './test/temp/') + }) + tap.test('should copy a file and rename it', async () => { + smartfile.fs.copy('./test/mytest.yaml', './test/temp/mytestRenamed.yaml') + }) +}) +tap.test('.fs.remove()', async () => { + tap.test('should remove an entire directory', async () => { + + }) + tap.test('smartfile.fs.remove -> should remove single files', async () => { + await expect(smartfile.fs.remove('./test/temp/mytestRenamed.yaml')).to.eventually.be.fulfilled + }) + tap.test('smartfile.fs.removeSync -> should remove single files synchronouly', async () => { + smartfile.fs.removeSync('./test/temp/testfile1.txt') + expect(smartfile.fs.fileExistsSync('./test/temp/testfile1.txt')).to.be.false + }) + tap.test('smartfile.fs.removeMany -> should remove and array of files', async () => { + smartfile.fs.removeMany(['./test/temp/testfile1.txt', './test/temp/testfile2.txt']).then(() => { + expect(smartfile.fs.fileExistsSync('./test/temp/testfile1.txt')).to.be.false + expect(smartfile.fs.fileExistsSync('./test/temp/testfile2.txt')).to.be.false }) }) + tap.test('smartfile.fs.removeManySync -> should remove and array of single files synchronouly', async () => { + smartfile.fs.removeManySync(['./test/temp/testfile1.txt', './test/temp/testfile2.txt']) + expect(smartfile.fs.fileExistsSync('./test/temp/testfile1.txt')).to.be.false + expect(smartfile.fs.fileExistsSync('./test/temp/testfile2.txt')).to.be.false + }) +}) + +// --------------------------- +// .interpreter +// --------------------------- +tap.test('.interpreter.filetype()', async () => { + tap.test('should get the file type from a string', async () => { + expect(smartfile.interpreter.filetype('./somefolder/data.json')).equal('json') + }) +}) + +tap.test('.fs', async () => { + tap.test('.toObjectSync()', async () => { + tap.test('should read an ' + '.yaml' + ' file to an object', async () => { + let testData = smartfile.fs.toObjectSync('./test/mytest.yaml') + expect(testData).have.property('key1', 'this works') + expect(testData).have.property('key2', 'this works too') + + }) + tap.test('should state unknown file type for unknown file types', async () => { + let testData = smartfile.fs.toObjectSync('./test/mytest.txt') + }) + tap.test('should read an ' + '.json' + ' file to an object', async () => { + let testData = smartfile.fs.toObjectSync('./test/mytest.json') + expect(testData).have.property('key1', 'this works') + expect(testData).have.property('key2', 'this works too') - describe('.interpreter', function () { - describe('.filetype()', function () { - it('should get the file type from a string', function () { - expect(smartfile.interpreter.filetype('./somefolder/data.json')).equal('json') - }) }) }) - - describe('.fs', function () { - describe('.toObjectSync()', function () { - it('should read an ' + '.yaml' + ' file to an object', function () { - let testData = smartfile.fs.toObjectSync('./test/mytest.yaml') - expect(testData).have.property('key1', 'this works') - expect(testData).have.property('key2', 'this works too') - - }) - it('should state unknown file type for unknown file types', function () { - let testData = smartfile.fs.toObjectSync('./test/mytest.txt') - }) - it('should read an ' + '.json' + ' file to an object', function () { - let testData = smartfile.fs.toObjectSync('./test/mytest.json') - expect(testData).have.property('key1', 'this works') - expect(testData).have.property('key2', 'this works too') - - }) - }) - describe('.toStringSync()', function () { - it('should read a file to a string', function () { - expect(smartfile.fs.toStringSync('./test/mytest.txt')) - .to.equal('Some TestString &&%$') - }) - }) - describe('.toVinylSync', function () { - it('should read an ' + '.json OR .yaml' + ' file to an ' + 'vinyl file object', function () { - let testData = smartfile.fs.toVinylSync('./test/mytest.json') - expect(vinyl.isVinyl(testData)).to.be.true - }) + tap.test('.toStringSync()', async () => { + tap.test('should read a file to a string', async () => { + expect(smartfile.fs.toStringSync('./test/mytest.txt')) + .to.equal('Some TestString &&%$') }) }) - - describe('.memory', function () { - describe('.toGulpStream()', function () { - it('should produce a valid gulp stream', function () { - let localArray = [ 'test1', 'test2', 'test3' ] - smartfile.memory.toGulpStream(localArray) - }) - }) - describe('toVinylFileSync()', function () { - it('should produce a vinylFile', function () { - let localString = 'myString' - let localOptions = { filename: 'vinylfile2', base: '/someDir' } - expect(smartfile.memory.toVinylFileSync(localString, localOptions) instanceof vinyl).to.be.true - }) - }) - describe('toVinylArraySync()', function () { - it('should produce a an array of vinylfiles', function () { - let localStringArray = [ 'string1', 'string2', 'string3' ] - let localOptions = { filename: 'vinylfile2', base: '/someDir' } - let testResult = smartfile.memory.toVinylArraySync(localStringArray, localOptions) - expect(testResult).to.be.a('array') - expect(testResult.length === 3).to.be.true - for (let myKey in testResult) { - expect(testResult[ myKey ] instanceof vinyl).to.be.true - } - }) - }) - describe('vinylToStringSync()', function () { - it('should produce a String from vinyl file', function () { - let localString = smartfile.memory.vinylToStringSync(new vinyl({ - base: '/', - path: '/test.txt', - contents: new Buffer('myString') - })) - expect(localString).equal('myString') - }) - }) - describe('toFs()', function () { - it('should write a file to disk and return a promise', function (done) { - let localString = 'myString' - smartfile.memory.toFs( - localString, - path.join(process.cwd(), './test/temp/testMemToFs.txt') - ).then(done) - }) - }) - describe('toFsSync()', function () { - it('should write a file to disk and return true if successfull', function () { - let localString = 'myString' - smartfile.memory.toFsSync( - localString, - path.join(process.cwd(), './test/temp/testMemToFsSync.txt') - ) - }) - }) - }) - - describe('.remote', function () { - describe('.toString()', function () { - it('should load a remote file to a variable', function (done) { - this.timeout(5000) - smartfile.remote.toString( - 'https://raw.githubusercontent.com/pushrocks/smartfile/master/test/mytest.txt' - ).then(function (responseString) { - expect(responseString).to.equal('Some TestString &&%$') - done() - }) - }) - it('should reject a Promise when the link is false', function (done) { - this.timeout(10000) - smartfile.remote.toString('https://push.rocks/doesnotexist.txt') - .then( - function () { - throw new Error('this test should not be resolved') - }, - function () { - done() - } - ) - }) + tap.test('.toVinylSync', async () => { + tap.test('should read an ' + '.json OR .yaml' + ' file to an ' + 'vinyl file object', async () => { + let testData = smartfile.fs.toVinylSync('./test/mytest.json') + expect(vinyl.isVinyl(testData)).to.be.true }) }) }) + +tap.test('.memory', async () => { + tap.test('.toGulpStream()', async () => { + tap.test('should produce a valid gulp stream', async () => { + let localArray = ['test1', 'test2', 'test3'] + smartfile.memory.toGulpStream(localArray) + }) + }) + tap.test('toVinylFileSync()', async () => { + tap.test('should produce a vinylFile', async () => { + let localString = 'myString' + let localOptions = { filename: 'vinylfile2', base: '/someDir' } + expect(smartfile.memory.toVinylFileSync(localString, localOptions) instanceof vinyl).to.be.true + }) + }) + tap.test('toVinylArraySync()', async () => { + tap.test('should produce a an array of vinylfiles', async () => { + let localStringArray = ['string1', 'string2', 'string3'] + let localOptions = { filename: 'vinylfile2', base: '/someDir' } + let testResult = smartfile.memory.toVinylArraySync(localStringArray, localOptions) + expect(testResult).to.be.a('array') + expect(testResult.length === 3).to.be.true + for (let myKey in testResult) { + expect(testResult[myKey] instanceof vinyl).to.be.true + } + }) + }) + tap.test('vinylToStringSync()', async () => { + tap.test('should produce a String from vinyl file', async () => { + let localString = smartfile.memory.vinylToStringSync(new vinyl({ + base: '/', + path: '/test.txt', + contents: new Buffer('myString') + })) + expect(localString).equal('myString') + }) + }) + tap.test('toFs()', async () => { + tap.test('should write a file to disk and return a promise', async () => { + let localString = 'myString' + smartfile.memory.toFs( + localString, + path.join(process.cwd(), './test/temp/testMemToFs.txt') + ) + }) + }) + tap.test('toFsSync()', async () => { + tap.test('should write a file to disk and return true if successfull', async () => { + let localString = 'myString' + smartfile.memory.toFsSync( + localString, + path.join(process.cwd(), './test/temp/testMemToFsSync.txt') + ) + }) + }) +}) + +tap.test('.remote.toString() -> should load a remote file to a variable', async () => { + let responseString = await smartfile.remote.toString( + 'https://raw.githubusercontent.com/pushrocks/smartfile/master/test/mytest.txt' + ) + expect(responseString).to.equal('Some TestString &&%$') +}) + +tap.test('.remote.toString() -> should reject a Promise when the link is false', async () => { + await expect(smartfile.remote.toString('https://push.rocks/doesnotexist.txt')) + .to.eventually.be.rejected +}) + +tap.start() diff --git a/ts/smartfile.classes.smartfile.ts b/ts/smartfile.classes.smartfile.ts index e97b95a..5c19612 100644 --- a/ts/smartfile.classes.smartfile.ts +++ b/ts/smartfile.classes.smartfile.ts @@ -6,23 +6,71 @@ export interface ISmartfileConstructorOptions { contentBuffer?: Buffer } +/** + * class Smartfile + * -> is vinyl file compatible + */ export class Smartfile { + /** + * the full path of the file on disk + */ path: string + + /** + * The contents of the file as Buffer + */ contents: Buffer - constructor(optionsArg: ISmartfileConstructorOptions) { + + /** + * The current working directory of the file + */ + cwd: string + + /** + * sync the file with disk + */ + sync: boolean + + /** + * the constructor of Smartfile + * @param optionsArg + */ + constructor (optionsArg: ISmartfileConstructorOptions) { if (optionsArg.contentBuffer) { this.contents = optionsArg.contentBuffer - } else if(optionsArg.contentsString) { + } else if (optionsArg.contentsString) { this.contents = new Buffer(optionsArg.contentsString) } this.path = optionsArg.path } + /** + * return relative path of file + * -> + */ + get relative () { + return '' + } + + /** * set contents from string * @param contentString */ - setContentFromString(contentString: string) { + setContentsFromString(contentString: string) { this.contents = new Buffer(contentString) } + + /** + * write file to disk + */ + async write () { + + } + + /** + * read file from disk + */ + async read () { + } } diff --git a/yarn.lock b/yarn.lock index 213a99f..60344ac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16,22 +16,18 @@ "@types/chai" "*" "@types/chai@*", "@types/chai@^3.4.35": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-3.4.35.tgz#e8d65f83492d2944f816fc620741821c28a8c900" + version "3.5.1" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-3.5.1.tgz#9bd77fe12503ae00648b0945b38eab666adffe2e" -"@types/fs-extra@0.x.x": - version "0.0.37" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-0.0.37.tgz#195f11bcd9a1b97d9e412c6b66899b545471a1f7" +"@types/fs-extra@2.x.x": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-2.1.0.tgz#8b350239c0455d92b8d3c626edac193860ff395f" dependencies: "@types/node" "*" -"@types/mocha@^2.2.31": - version "2.2.39" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.39.tgz#f68d63db8b69c38e9558b4073525cf96c4f7a829" - "@types/node@*": - version "7.0.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.5.tgz#96a0f0a618b7b606f1ec547403c00650210bfbb7" + version "7.0.14" + resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.14.tgz#1470fa002a113316ac9d9ad163fc738c7a0de2a4" "@types/promises-a-plus@*": version "0.0.27" @@ -41,12 +37,6 @@ version "0.0.32" resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5" -"@types/shelljs@^0.3.33": - version "0.3.33" - resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.3.33.tgz#df613bddb88225ed09ce5c835f620dcaaf155e6b" - dependencies: - "@types/node" "*" - "@types/through2@^2.0.31": version "2.0.32" resolved "https://registry.yarnpkg.com/@types/through2/-/through2-2.0.32.tgz#470024450f1ab7640f19f9ebf42d3da574c26129" @@ -59,6 +49,10 @@ 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.9" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" @@ -73,14 +67,25 @@ balanced-match@^0.4.1: version "0.4.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" +beautycolor@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/beautycolor/-/beautycolor-1.0.7.tgz#a4715738ac4c8221371e9cbeb5a6cc6d11ecbf7c" + dependencies: + ansi-256-colors "^1.1.0" + typings-global "^1.0.14" + +bindings@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11" + brace-expansion@^1.0.0: - version "1.1.6" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" + version "1.1.7" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" dependencies: balanced-match "^0.4.1" concat-map "0.0.1" -buffer-shims@^1.0.0: +buffer-shims@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" @@ -140,6 +145,14 @@ deep-eql@^0.1.3: dependencies: type-detect "0.1.1" +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" + esprima@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" @@ -150,9 +163,9 @@ first-chunk-stream@^2.0.0: dependencies: readable-stream "^2.0.2" -fs-extra@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.0.0.tgz#337352bded4a0b714f3eb84de8cea765e9d37600" +fs-extra@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.1.2.tgz#046c70163cef9aad46b0e4a7fa467fb22d71de35" dependencies: graceful-fs "^4.1.2" jsonfile "^2.1.0" @@ -204,8 +217,8 @@ inherits@2, inherits@^2.0.1, inherits@~2.0.1: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" interpret@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" + version "1.0.3" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" is-stream@^1.1.0: version "1.1.0" @@ -219,9 +232,9 @@ isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" -js-yaml@^3.8.2: - version "3.8.2" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.2.tgz#02d3e2c0f6beab20248d412c352203827d786721" +js-yaml@^3.8.3: + version "3.8.3" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.3.tgz#33a05ec481c850c8875929166fe1beb61c728766" dependencies: argparse "^1.0.7" esprima "^3.1.1" @@ -232,20 +245,39 @@ jsonfile@^2.1.0: optionalDependencies: graceful-fs "^4.1.6" +leakage@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/leakage/-/leakage-0.2.0.tgz#9e7a8cc1d241d8c8427e348769e192e172fd8733" + dependencies: + 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.1.3" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.1.3.tgz#612f61c033f3a9e08e939f1caebeea41b6f3199a" + +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.2: version "3.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" dependencies: brace-expansion "^1.0.0" -npmts-g@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/npmts-g/-/npmts-g-6.0.0.tgz#491fd50f110967f1b68f14237e7ea5157bf4ddb3" - dependencies: - "@types/shelljs" "^0.3.33" - semver "^5.3.0" - shelljs "^0.7.5" - typings-global "^1.0.14" +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.6.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" once@^1.3.0: version "1.4.0" @@ -261,28 +293,36 @@ 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" +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + 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@^1.0.6, process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" q@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" + version "1.5.0" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1" readable-stream@^2.0.2, readable-stream@^2.1.5: - version "2.2.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e" + version "2.2.9" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8" dependencies: - buffer-shims "^1.0.0" + buffer-shims "~1.0.0" core-util-is "~1.0.0" inherits "~2.0.1" isarray "~1.0.0" process-nextick-args "~1.0.6" - string_decoder "~0.10.x" + string_decoder "~1.0.0" util-deprecate "~1.0.1" rechoir@^0.6.2: @@ -304,16 +344,18 @@ require-reload@0.2.2: resolved "https://registry.yarnpkg.com/require-reload/-/require-reload-0.2.2.tgz#29a7591846caf91b6e8a3cda991683f95f8d7d42" resolve@^1.1.6: - version "1.2.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.2.0.tgz#9589c3f2f6149d1417a40becc1663db6ec6bc26c" + version "1.3.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" + dependencies: + path-parse "^1.0.5" semver@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" -shelljs@^0.7.4, shelljs@^0.7.5: - version "0.7.6" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.6.tgz#379cccfb56b91c8601e4793356eb5382924de9ad" +shelljs@^0.7.7: + version "0.7.7" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1" dependencies: glob "^7.0.0" interpret "^1.0.0" @@ -355,9 +397,11 @@ 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@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" +string_decoder@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.0.tgz#f06f41157b664d86069f84bdbdc9b0d8ab281667" + dependencies: + buffer-shims "~1.0.0" strip-bom-buf@^1.0.0: version "1.0.0" @@ -378,6 +422,16 @@ strip-bom@^2.0.0: dependencies: is-utf8 "^0.2.0" +tapbundle@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/tapbundle/-/tapbundle-1.0.9.tgz#e4afa8ccb6db21ffe02613c371805aec692dbdf3" + dependencies: + early "^2.1.1" + leakage "^0.2.0" + smartchai "^1.0.3" + smartq "^1.1.1" + typings-global "^1.0.16" + through2@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" @@ -397,19 +451,12 @@ typed-promisify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/typed-promisify/-/typed-promisify-0.3.0.tgz#1ba0af5e444c87d8047406f18ce49092a1191853" -typings-global@*, typings-global@^1.0.14: - version "1.0.14" - resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.14.tgz#ab682720a03d6b9278869fb5c30c30d7dc61d12c" +typings-global@^1.0.14, typings-global@^1.0.16: + version "1.0.16" + resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.16.tgz#489b71781af24268750c2899316400a5e482961f" dependencies: semver "^5.3.0" - shelljs "^0.7.4" - -typings-test@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/typings-test/-/typings-test-1.0.3.tgz#fbab895eb3f0c44842e73db059f65946b971e369" - dependencies: - "@types/mocha" "^2.2.31" - typings-global "*" + shelljs "^0.7.7" util-deprecate@~1.0.1: version "1.0.2" @@ -425,9 +472,9 @@ vinyl-file@^3.0.0: strip-bom-stream "^2.0.0" vinyl "^2.0.1" -vinyl@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.0.1.tgz#1c3b4931e7ac4c1efee743f3b91a74c094407bb6" +vinyl@^2.0.1, vinyl@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.0.2.tgz#0a3713d8d4e9221c58f10ca16c0116c9e25eda7c" dependencies: clone "^1.0.0" clone-buffer "^1.0.0"