diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 575384f..e6be27f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,19 +1,22 @@
-image: hosttoday/ht-docker-node:npmts
+# gitzone standard
+image: hosttoday/ht-docker-node:npmci
+
+cache:
+ paths:
+ - .yarn/
+ key: "$CI_BUILD_STAGE"
stages:
- test
- release
-
-before_script:
- - apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
- - echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-3.2.list
- - apt-get update
- - apt-get install -y mongodb-org
+- trigger
+- pages
testLEGACY:
stage: test
script:
- npmci test legacy
+ coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
allow_failure: true
@@ -22,6 +25,7 @@ testLTS:
stage: test
script:
- npmci test lts
+ coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
@@ -29,15 +33,40 @@ testSTABLE:
stage: test
script:
- npmci test stable
+ coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
release:
stage: release
- environment: npm_registry
script:
- npmci publish
only:
- tags
tags:
- - docker
\ No newline at end of file
+ - docker
+
+trigger:
+ stage: trigger
+ script:
+ - npmci trigger
+ only:
+ - tags
+ tags:
+ - docker
+
+pages:
+ image: hosttoday/ht-docker-node:npmci
+ stage: pages
+ script:
+ - npmci command yarn global add npmpage
+ - npmci command npmpage
+ tags:
+ - docker
+ only:
+ - tags
+ artifacts:
+ expire_in: 1 week
+ paths:
+ - public
+ allow_failure: true
diff --git a/dist/smartdata.classes.db.d.ts b/dist/smartdata.classes.db.d.ts
index cb596ac..e28055c 100644
--- a/dist/smartdata.classes.db.d.ts
+++ b/dist/smartdata.classes.db.d.ts
@@ -1,33 +1,27 @@
-///
import * as plugins from './smartdata.plugins';
import { Objectmap } from 'lik';
import { DbCollection } from './smartdata.classes.dbcollection';
-/**
- * interface - indicates the database type
- */
-export declare type TDbType = 'mongodb' | 'nedb';
/**
* interface - indicates the connection status of the db
*/
export declare type TConnectionStatus = 'disconnected' | 'connected' | 'failed';
export declare class Db {
- dbType: TDbType;
dbUrl: string;
db: plugins.mongodb.Db;
status: TConnectionStatus;
collections: Objectmap>;
- constructor(dbUrlArg: string, dbTypeArg?: TDbType);
+ constructor(dbUrlArg: string);
/**
* connects to the database that was specified during instance creation
*/
- connect(): plugins.q.Promise;
+ connect(): Promise;
/**
* closes the connection to the databse
*/
- close(): plugins.q.Promise;
+ close(): Promise;
/**
* gets a collection by name: string
*/
- getCollectionByName(nameArg: string): plugins.q.Promise>;
+ getCollectionByName(nameArg: string): Promise>;
addCollection(dbCollectionArg: DbCollection): void;
}
diff --git a/dist/smartdata.classes.db.js b/dist/smartdata.classes.db.js
index d9d53cf..8cc66e2 100644
--- a/dist/smartdata.classes.db.js
+++ b/dist/smartdata.classes.db.js
@@ -3,9 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
const plugins = require("./smartdata.plugins");
const lik_1 = require("lik");
class Db {
- constructor(dbUrlArg, dbTypeArg = 'mongodb') {
+ constructor(dbUrlArg) {
this.collections = new lik_1.Objectmap();
- this.dbType = dbTypeArg;
this.dbUrl = dbUrlArg;
}
// basic connection stuff ----------------------------------------------
@@ -13,31 +12,24 @@ class Db {
* connects to the database that was specified during instance creation
*/
connect() {
- let done = plugins.q.defer();
- if (this.dbType === 'mongodb') {
- plugins.mongodb.MongoClient.connect(this.dbUrl, (err, db) => {
- if (err) {
- console.log(err);
- }
- plugins.assert.equal(null, err);
- this.db = db;
- plugins.beautylog.success(`connected to database at ${this.dbUrl}`);
- done.resolve(this.db);
- });
- }
- else if (this.dbType === 'nedb') {
- this.db = null;
- }
+ let done = plugins.smartq.defer();
+ plugins.mongodb.MongoClient.connect(this.dbUrl, (err, db) => {
+ if (err) {
+ console.log(err);
+ }
+ plugins.assert.equal(null, err);
+ this.db = db;
+ plugins.beautylog.success(`connected to database at ${this.dbUrl}`);
+ done.resolve(this.db);
+ });
return done.promise;
}
/**
* closes the connection to the databse
*/
close() {
- let done = plugins.q.defer();
- if (this.dbType === 'mongodb') {
- this.db.close();
- }
+ let done = plugins.smartq.defer();
+ this.db.close();
plugins.beautylog.ok(`disconnected to database at ${this.dbUrl}`);
done.resolve();
return done.promise;
@@ -47,7 +39,7 @@ class Db {
* gets a collection by name: string
*/
getCollectionByName(nameArg) {
- let done = plugins.q.defer();
+ let done = plugins.smartq.defer();
let resultCollection = this.collections.find((dbCollectionArg) => {
return dbCollectionArg.name === nameArg;
});
@@ -56,10 +48,9 @@ class Db {
}
return done.promise;
}
- ;
addCollection(dbCollectionArg) {
this.collections.add(dbCollectionArg);
}
}
exports.Db = Db;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRkYXRhLmNsYXNzZXMuZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGRhdGEuY2xhc3Nlcy5kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtDQUE4QztBQUM5Qyw2QkFBK0I7QUFjL0I7SUFPRSxZQUFZLFFBQWdCLEVBQUUsWUFBcUIsU0FBUztRQUY1RCxnQkFBVyxHQUFHLElBQUksZUFBUyxFQUFxQixDQUFBO1FBRzlDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFBO0lBQ3ZCLENBQUM7SUFFRCx3RUFBd0U7SUFFeEU7O09BRUc7SUFDSCxPQUFPO1FBQ0wsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUM1QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDdEQsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUFDLENBQUM7Z0JBQzdCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQTtnQkFDL0IsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUE7Z0JBQ1osT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsNEJBQTRCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO2dCQUNuRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUN2QixDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQ2hCLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0gsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUM1QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNqQixDQUFDO1FBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsK0JBQStCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO1FBQ2pFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUNkLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBQ3JCLENBQUM7SUFFRCw0RUFBNEU7SUFFNUU7O09BRUc7SUFDSCxtQkFBbUIsQ0FBSSxPQUFlO1FBQ3BDLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFxQixDQUFBO1FBQy9DLElBQUksZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlO1lBQzNELE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQTtRQUN6QyxDQUFDLENBQUMsQ0FBQTtRQUNGLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBQ2hDLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUNyQixDQUFDO0lBQUEsQ0FBQztJQUVGLGFBQWEsQ0FBQyxlQUFrQztRQUM5QyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUN2QyxDQUFDO0NBRUY7QUFsRUQsZ0JBa0VDIn0=
\ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRkYXRhLmNsYXNzZXMuZGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGRhdGEuY2xhc3Nlcy5kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtDQUE4QztBQUM5Qyw2QkFBK0I7QUFTL0I7SUFNRSxZQUFhLFFBQWdCO1FBRjdCLGdCQUFXLEdBQUcsSUFBSSxlQUFTLEVBQXFCLENBQUE7UUFHOUMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUE7SUFDdkIsQ0FBQztJQUVELHdFQUF3RTtJQUV4RTs7T0FFRztJQUNILE9BQU87UUFDTCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2pDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDdEQsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQUMsQ0FBQztZQUM3QixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUE7WUFDL0IsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUE7WUFDWixPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUE7WUFDbkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDdkIsQ0FBQyxDQUFDLENBQUE7UUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0gsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNqQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2YsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsK0JBQStCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO1FBQ2pFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUNkLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBQ3JCLENBQUM7SUFFRCw0RUFBNEU7SUFFNUU7O09BRUc7SUFDSCxtQkFBbUIsQ0FBSSxPQUFlO1FBQ3BDLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFxQixDQUFBO1FBQ3BELElBQUksZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlO1lBQzNELE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQTtRQUN6QyxDQUFDLENBQUMsQ0FBQTtRQUNGLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBQ2hDLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUNyQixDQUFDO0lBRUQsYUFBYSxDQUFFLGVBQWtDO1FBQy9DLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7Q0FFRjtBQTFERCxnQkEwREMifQ==
\ No newline at end of file
diff --git a/dist/smartdata.classes.dbcollection.d.ts b/dist/smartdata.classes.dbcollection.d.ts
index 5cfb383..c018b5d 100644
--- a/dist/smartdata.classes.dbcollection.d.ts
+++ b/dist/smartdata.classes.dbcollection.d.ts
@@ -1,6 +1,6 @@
-///
import * as plugins from './smartdata.plugins';
import { Db } from './smartdata.classes.db';
+import { DbDoc } from './smartdata.classes.dbDoc';
export interface IFindOptions {
limit?: number;
}
@@ -14,10 +14,11 @@ export declare class DbCollection {
* can be nedb datastore (sub api of mongodb)
*/
collection: plugins.mongodb.Collection;
+ collectedClass: T & DbDoc;
+ objectValidation: IDocValidation;
name: string;
db: Db;
- objectValidation: IDocValidation;
- constructor(nameArg: string, dbArg: Db);
+ constructor(collectedClassArg: T & DbDoc, dbArg: Db);
/**
* adds a validation function that all newly inserted and updated objects have to pass
*/
@@ -25,15 +26,15 @@ export declare class DbCollection {
/**
* finds an object in the DbCollection
*/
- find(docMatchArg: T | any, optionsArg?: IFindOptions): plugins.q.Promise;
+ find(docMatchArg: T | any, optionsArg?: IFindOptions): Promise;
/**
* inserts object into the DbCollection
*/
- insertOne(docArg: T): plugins.q.Promise;
+ insertOne(docArg: T): Promise;
/**
* inserts many objects at once into the DbCollection
*/
- insertMany(docArrayArg: T[]): plugins.q.Promise;
+ insertMany(docArrayArg: T[]): Promise;
/**
* checks a Doc for constraints
*/
diff --git a/dist/smartdata.classes.dbcollection.js b/dist/smartdata.classes.dbcollection.js
index 139d990..3a65601 100644
--- a/dist/smartdata.classes.dbcollection.js
+++ b/dist/smartdata.classes.dbcollection.js
@@ -8,18 +8,14 @@ function Collection(db) {
}
exports.Collection = Collection;
class DbCollection {
- constructor(nameArg, dbArg) {
+ constructor(collectedClassArg, dbArg) {
this.objectValidation = null;
// tell the collection where it belongs
- this.name = nameArg;
+ this.collectedClass = collectedClassArg;
+ this.name = collectedClassArg.name;
this.db = dbArg;
// make sure it actually exists
- if (this.db.dbType === 'mongodb') {
- this.collection = dbArg.db.collection(nameArg);
- }
- else {
- this.collection = new plugins.nedb();
- }
+ this.collection = dbArg.db.collection(this.name);
// tell the db class about it (important since Db uses different systems under the hood)
this.db.addCollection(this);
}
@@ -33,52 +29,30 @@ class DbCollection {
* finds an object in the DbCollection
*/
find(docMatchArg, optionsArg) {
- let done = plugins.q.defer();
- if (this.db.dbType === 'mongodb') {
- let findCursor = this.collection.find(docMatchArg);
- if (optionsArg) {
- if (optionsArg.limit) {
- findCursor = findCursor.limit(1);
- }
+ let done = plugins.smartq.defer();
+ let findCursor = this.collection.find(docMatchArg);
+ if (optionsArg) {
+ if (optionsArg.limit) {
+ findCursor = findCursor.limit(1);
}
- findCursor.toArray((err, docs) => {
- if (err) {
- done.reject(err);
- throw err;
- }
- done.resolve(docs);
- });
- }
- else if (this.db.dbType === 'nedb') {
- this.collection.find(docMatchArg, (err, docs) => {
- if (err) {
- done.reject(err);
- throw err;
- }
- done.resolve(docs);
- });
}
+ findCursor.toArray((err, docs) => {
+ if (err) {
+ done.reject(err);
+ throw err;
+ }
+ done.resolve(docs);
+ });
return done.promise;
}
/**
* inserts object into the DbCollection
*/
insertOne(docArg) {
- let done = plugins.q.defer();
+ let done = plugins.smartq.defer();
this.checkDoc(docArg).then(() => {
- if (this.db.dbType === 'mongodb') {
- this.collection.insertOne(docArg)
- .then(() => { done.resolve(); });
- }
- else if (this.db.dbType === 'nedb') {
- this.collection.insert(docArg, (err, newDoc) => {
- if (err) {
- done.reject(err);
- throw err;
- }
- done.resolve();
- });
- }
+ this.collection.insertOne(docArg)
+ .then(() => { done.resolve(); });
}, () => {
done.reject(new Error('one the docs did not pass validation'));
});
@@ -88,26 +62,14 @@ class DbCollection {
* inserts many objects at once into the DbCollection
*/
insertMany(docArrayArg) {
- let done = plugins.q.defer();
+ let done = plugins.smartq.defer();
let checkDocPromiseArray = [];
for (let docArg of docArrayArg) {
checkDocPromiseArray.push(this.checkDoc(docArg));
}
- plugins.q.all(checkDocPromiseArray).then(() => {
- if (this.db.dbType === 'mongodb') {
- this.collection.insertMany(docArrayArg)
- .then(() => { done.resolve(); });
- }
- else if (this.db.dbType === 'nedb') {
- let paramArray = plugins.lodash.concat(docArrayArg, (err, newDoc) => {
- if (err) {
- done.reject(err);
- throw err;
- }
- done.resolve();
- });
- this.collection.insert.apply(null, paramArray);
- }
+ Promise.all(checkDocPromiseArray).then(() => {
+ this.collection.insertMany(docArrayArg)
+ .then(() => { done.resolve(); });
});
return done.promise;
}
@@ -115,7 +77,7 @@ class DbCollection {
* checks a Doc for constraints
*/
checkDoc(docArg) {
- let done = plugins.q.defer();
+ let done = plugins.smartq.defer();
let validationResult = true;
if (this.objectValidation) {
validationResult = this.objectValidation(docArg);
@@ -130,4 +92,4 @@ class DbCollection {
}
}
exports.DbCollection = DbCollection;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRkYXRhLmNsYXNzZXMuZGJjb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRkYXRhLmNsYXNzZXMuZGJjb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0NBQThDO0FBVzlDLG9CQUEyQixFQUFNO0lBQzdCLE1BQU0sQ0FBQyxVQUFVLFdBQVc7UUFDeEIsV0FBVyxDQUFDLGNBQWMsQ0FBQyxHQUFHLElBQUksWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDeEUsQ0FBQyxDQUFBO0FBQ0wsQ0FBQztBQUpELGdDQUlDO0FBRUQ7SUFXSSxZQUFZLE9BQWUsRUFBRSxLQUFTO1FBSHRDLHFCQUFnQixHQUFzQixJQUFJLENBQUE7UUFJdEMsdUNBQXVDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFBO1FBQ25CLElBQUksQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFBO1FBRWYsK0JBQStCO1FBQy9CLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNsRCxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ3hDLENBQUM7UUFFRCx3RkFBd0Y7UUFDeEYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUMsT0FBMEI7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQTtJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLENB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
\ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRkYXRhLmNsYXNzZXMuZGJjb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRkYXRhLmNsYXNzZXMuZGJjb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0NBQThDO0FBWTlDLG9CQUE0QixFQUFNO0lBQ2hDLE1BQU0sQ0FBQyxVQUFVLFdBQVc7UUFDMUIsV0FBVyxDQUFFLGNBQWMsQ0FBRSxHQUFHLElBQUksWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDeEUsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQUpELGdDQUlDO0FBRUQ7SUFXRSxZQUFhLGlCQUErQixFQUFFLEtBQVM7UUFKdkQscUJBQWdCLEdBQXNCLElBQUksQ0FBQTtRQUt4Qyx1Q0FBdUM7UUFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQTtRQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQTtRQUNsQyxJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQTtRQUVmLCtCQUErQjtRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUVoRCx3RkFBd0Y7UUFDeEYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUUsT0FBMEI7UUFDMUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQTtJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLENBQUUsV0FBb0IsRUFBRSxVQUF5QjtRQUNuRCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBTyxDQUFBO1FBQ3RDLElBQUksVUFBVSxHQUFHLElBQUksQ0FB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
\ No newline at end of file
diff --git a/dist/smartdata.classes.dbdoc.d.ts b/dist/smartdata.classes.dbdoc.d.ts
index c3305a9..41191ce 100644
--- a/dist/smartdata.classes.dbdoc.d.ts
+++ b/dist/smartdata.classes.dbdoc.d.ts
@@ -18,10 +18,14 @@ export declare class DbDoc {
* an array of saveable properties of a doc
*/
saveableProperties: string[];
+ /**
+ * name
+ */
+ name: string;
/**
* class constructor
*/
- constructor();
+ constructor(nameArg: string);
/**
* saves this instance but not any connected items
* may lead to data inconsistencies, but is faster
diff --git a/dist/smartdata.classes.dbdoc.js b/dist/smartdata.classes.dbdoc.js
index 17dd368..1148424 100644
--- a/dist/smartdata.classes.dbdoc.js
+++ b/dist/smartdata.classes.dbdoc.js
@@ -18,15 +18,16 @@ class DbDoc {
/**
* class constructor
*/
- constructor() {
+ constructor(nameArg) {
this.collection = this.constructor['dbCollection'];
+ this.name = nameArg;
}
/**
* saves this instance but not any connected items
* may lead to data inconsistencies, but is faster
*/
save() {
- let saveableObject = {}; // isn not exposed to outside, so any is ok here
+ let saveableObject = {}; // is not exposed to outside, so any is ok here
for (let propertyNameString of this.saveableProperties) {
saveableObject[propertyNameString] = this[propertyNameString];
}
@@ -57,4 +58,4 @@ class DbDoc {
}
}
exports.DbDoc = DbDoc;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRkYXRhLmNsYXNzZXMuZGJkb2MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGRhdGEuY2xhc3Nlcy5kYmRvYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLDZCQUErQjtBQU8vQjs7R0FFRztBQUNIO0lBQ0UsTUFBTSxDQUFDLENBQUMsTUFBa0IsRUFBRSxHQUFXO1FBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDekIsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1lBQUMsTUFBTSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQTtRQUFDLENBQUM7UUFDbEUsTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNyQyxDQUFDLENBQUE7QUFDSCxDQUFDO0FBTkQsb0JBTUM7QUFFRDtJQWlCRTs7T0FFRztJQUNIO1FBQ0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFFLGNBQWMsQ0FBRSxDQUFBO0lBQ3RELENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJO1FBQ0YsSUFBSSxjQUFjLEdBQVEsRUFBRSxDQUFBLENBQUMsZ0RBQWdEO1FBQzdFLEdBQUcsQ0FBQyxDQUFDLElBQUksa0JBQWtCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztZQUN2RCxjQUFjLENBQUUsa0JBQWtCLENBQUUsR0FBRyxJQUFJLENBQUUsa0JBQWtCLENBQUUsQ0FBQTtRQUNuRSxDQUFDO1FBQ0QsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDMUIsS0FBSyxJQUFJO2dCQUNQLElBQUksQ0FBQyxVQUFVLENBQUEsQ0FBQyxxQ0FBcUM7Z0JBQ3JELEtBQUssQ0FBQTtZQUNQLEtBQUssS0FBSztnQkFDUixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUM3QyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxjQUFxQyxJQUFJO1FBQ2hELEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNqQixXQUFXLEdBQUcsSUFBSSxlQUFTLEVBQWMsQ0FBQTtRQUMzQyxDQUFDO1FBQ0QsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDWCxHQUFHLENBQUMsQ0FBQyxJQUFJLFdBQVcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzdCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBRSxXQUFXLENBQUUsQ0FBQTtZQUNsQyxFQUFFLENBQUMsQ0FBQyxRQUFRLFlBQVksS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZFLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7WUFDaEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUEzREQsc0JBMkRDIn0=
\ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRkYXRhLmNsYXNzZXMuZGJEb2MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGRhdGEuY2xhc3Nlcy5kYkRvYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLDZCQUErQjtBQU8vQjs7R0FFRztBQUNIO0lBQ0UsTUFBTSxDQUFDLENBQUMsTUFBa0IsRUFBRSxHQUFXO1FBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDekIsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1lBQUMsTUFBTSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQTtRQUFDLENBQUM7UUFDbEUsTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNyQyxDQUFDLENBQUE7QUFDSCxDQUFDO0FBTkQsb0JBTUM7QUFFRDtJQXNCRTs7T0FFRztJQUNILFlBQVksT0FBZTtRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUUsY0FBYyxDQUFFLENBQUE7UUFDcEQsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUE7SUFDckIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUk7UUFDRixJQUFJLGNBQWMsR0FBUSxFQUFFLENBQUEsQ0FBQywrQ0FBK0M7UUFDNUUsR0FBRyxDQUFDLENBQUMsSUFBSSxrQkFBa0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELGNBQWMsQ0FBRSxrQkFBa0IsQ0FBRSxHQUFHLElBQUksQ0FBRSxrQkFBa0IsQ0FBRSxDQUFBO1FBQ25FLENBQUM7UUFDRCxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUMxQixLQUFLLElBQUk7Z0JBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQSxDQUFDLHFDQUFxQztnQkFDckQsS0FBSyxDQUFBO1lBQ1AsS0FBSyxLQUFLO2dCQUNSLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLGNBQXFDLElBQUk7UUFDaEQsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLFdBQVcsR0FBRyxJQUFJLGVBQVMsRUFBYyxDQUFBO1FBQzNDLENBQUM7UUFDRCxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUNYLEdBQUcsQ0FBQyxDQUFDLElBQUksV0FBVyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDN0IsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFFLFdBQVcsQ0FBRSxDQUFBO1lBQ2xDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsWUFBWSxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUNoQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWpFRCxzQkFpRUMifQ==
\ No newline at end of file
diff --git a/dist/smartdata.plugins.d.ts b/dist/smartdata.plugins.d.ts
index fdb52e7..f232ef8 100644
--- a/dist/smartdata.plugins.d.ts
+++ b/dist/smartdata.plugins.d.ts
@@ -3,6 +3,5 @@ import * as assert from 'assert';
import * as beautylog from 'beautylog';
import * as lodash from 'lodash';
import * as mongodb from 'mongodb';
-import * as q from 'q';
-declare let nedb: any;
-export { assert, beautylog, lodash, mongodb, q, nedb };
+import * as smartq from 'smartq';
+export { assert, beautylog, lodash, mongodb, smartq };
diff --git a/dist/smartdata.plugins.js b/dist/smartdata.plugins.js
index 7cf5728..f62c96a 100644
--- a/dist/smartdata.plugins.js
+++ b/dist/smartdata.plugins.js
@@ -9,8 +9,6 @@ const lodash = require("lodash");
exports.lodash = lodash;
const mongodb = require("mongodb");
exports.mongodb = mongodb;
-const q = require("q");
-exports.q = q;
-let nedb = require('nedb');
-exports.nedb = nedb;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRkYXRhLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGRhdGEucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDBCQUF1QjtBQUN2QixpQ0FBZ0M7QUFRNUIsd0JBQU07QUFQVix1Q0FBc0M7QUFRbEMsOEJBQVM7QUFQYixpQ0FBZ0M7QUFRNUIsd0JBQU07QUFQVixtQ0FBa0M7QUFROUIsMEJBQU87QUFQWCx1QkFBc0I7QUFRbEIsY0FBQztBQVBMLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQVF0QixvQkFBSSJ9
\ No newline at end of file
+const smartq = require("smartq");
+exports.smartq = smartq;
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRkYXRhLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGRhdGEucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDBCQUF1QjtBQUN2QixpQ0FBZ0M7QUFPNUIsd0JBQU07QUFOVix1Q0FBc0M7QUFPbEMsOEJBQVM7QUFOYixpQ0FBZ0M7QUFPNUIsd0JBQU07QUFOVixtQ0FBa0M7QUFPOUIsMEJBQU87QUFOWCxpQ0FBZ0M7QUFPNUIsd0JBQU0ifQ==
\ No newline at end of file
diff --git a/package.json b/package.json
index f315b21..faaf854 100644
--- a/package.json
+++ b/package.json
@@ -20,25 +20,20 @@
},
"homepage": "https://gitlab.com/pushrocks/smartdata#README",
"dependencies": {
- "@types/lodash": "^4.14.53",
- "@types/mongodb": "^2.1.41",
- "@types/nedb": "0.0.31",
- "@types/q": "0.0.32",
- "beautylog": "^6.1.1",
- "lik": "^1.0.27",
+ "@types/lodash": "^4.14.66",
+ "@types/mongodb": "^2.2.6",
+ "beautylog": "^6.1.10",
+ "lik": "^1.0.32",
"lodash": "^4.17.4",
- "mongodb": "^2.2.24",
- "nedb": "^1.8.0",
- "q": "^1.4.1",
+ "mongodb": "^2.2.28",
"runtime-type-checks": "0.0.4",
- "typings-global": "^1.0.14"
+ "smartq": "^1.1.1",
+ "typings-global": "^1.0.17"
},
"devDependencies": {
- "@types/shelljs": "^0.7.0",
- "@types/should": "^8.1.30",
- "shelljs": "^0.7.6",
- "should": "^11.2.0",
+ "@types/shelljs": "^0.7.2",
+ "shelljs": "^0.7.8",
"smartstring": "^2.0.24",
- "typings-test": "^1.0.3"
+ "tapbundle": "^1.0.14"
}
}
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 e4b9345..0000000
--- a/test/test.js
+++ /dev/null
@@ -1,130 +0,0 @@
-"use strict";
-var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
- return c > 3 && r && Object.defineProperty(target, key, r), r;
-};
-var __metadata = (this && this.__metadata) || function (k, v) {
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-require("typings-test");
-const shelljs = require("shelljs");
-const should = require("should");
-const smartstring = require("smartstring");
-// the tested module
-const smartdata = require("../dist/index");
-let mongoChildProcess;
-let testDb;
-let testDbCollection;
-describe('mongodb', function () {
- it('should start mongodb', function (done) {
- this.timeout(30000);
- mongoChildProcess = shelljs.exec('mongod --dbpath=./test/data --port 27017', { async: true, silent: true });
- let doneCalled = false;
- mongoChildProcess.stdout.on('data', function (data) {
- console.log(smartstring.indent.indentWithPrefix(data, '*** MongoDB Process *** : '));
- if (!doneCalled) {
- if (/waiting for connections on port 27017/.test(data)) {
- doneCalled = true;
- done();
- }
- }
- });
- });
-});
-describe('smartdata', function () {
- it('should establish a connection to mongodb', function (done) {
- testDb = new smartdata.Db('mongodb://localhost:27017/smartdata');
- testDb.connect().then(() => { done(); });
- });
- it('should create a collection', function () {
- testDbCollection = new smartdata.DbCollection('something', testDb);
- });
- it('should insert a doc into the collection', function (done) {
- testDbCollection.insertOne({ value1: 'test' }).then(() => { done(); });
- });
- it('should find all docs of testDbCollection', function (done) {
- testDbCollection.find({}).then((resultArray) => {
- console.log(resultArray);
- should(resultArray[0].value1).equal('test');
- done();
- });
- });
- it('should insert many docs into the collection', function (done) {
- testDbCollection.insertMany([
- { value1: 'test2' },
- { value1: 'test', value2: 3, value3: 'hi' }
- ]).then(() => { done(); });
- });
- it('should find a specified doc', function (done) {
- testDbCollection.find({ 'value3': { '$exists': true } }).then((resultArray) => {
- console.log(resultArray);
- should(resultArray[0].value3).equal('hi');
- done();
- }).catch(console.log);
- });
- it('should close the db Connection', function () {
- testDb.close();
- });
- it('should create an extended class', function () {
- let TestCar = class TestCar extends smartdata.DbDoc {
- constructor(optionsArg) {
- super();
- this.color = optionsArg.color;
- }
- };
- __decorate([
- smartdata.svDb(),
- __metadata("design:type", String)
- ], TestCar.prototype, "color", void 0);
- TestCar = __decorate([
- smartdata.Collection(testDb),
- __metadata("design:paramtypes", [Object])
- ], TestCar);
- ;
- let testCarInstance = new TestCar({
- color: 'red',
- property2: 2
- });
- should(testCarInstance.saveableProperties[0]).equal('color');
- console.log(TestCar);
- should(testCarInstance.collection).be.instanceof(smartdata.DbCollection);
- should(testCarInstance).be.instanceof(smartdata.DbDoc);
- testCarInstance.save();
- it('should get a collection for testCar', function () {
- });
- });
-});
-describe('mongodb', function () {
- it('should kill mongodb', function (done) {
- this.timeout(30000);
- mongoChildProcess.stdout.on('data', function (data) {
- if (/dbexit: rc: 0/.test(data)) {
- done();
- }
- });
- shelljs.exec('mongod --dbpath=./test/data --shutdown');
- mongoChildProcess.kill('SIGTERM');
- });
-});
-describe('smartdata with nedb', function () {
- let testDb;
- let testCollection;
- it('should create a DB with nedb', function () {
- testDb = new smartdata.Db('any', 'nedb');
- testDb.connect();
- testCollection = new smartdata.DbCollection('anyName', testDb);
- });
- it('should insert a doc', function (done) {
- testCollection.insertOne({ value1: 'hi' }).then(() => { done(); });
- });
- it('should find the inserted document', function (done) {
- testCollection.find({ value1: 'hi' }).then(x => {
- console.log(x);
- done();
- });
- });
-});
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSx3QkFBcUI7QUFFckIsbUNBQWtDO0FBQ2xDLGlDQUFnQztBQUNoQywyQ0FBMEM7QUFFMUMsb0JBQW9CO0FBQ3BCLDJDQUEwQztBQUUxQyxJQUFJLGlCQUFpQixDQUFBO0FBQ3JCLElBQUksTUFBb0IsQ0FBQTtBQVF4QixJQUFJLGdCQUFzRCxDQUFBO0FBRTFELFFBQVEsQ0FBQyxTQUFTLEVBQUU7SUFDbEIsRUFBRSxDQUFDLHNCQUFzQixFQUFFLFVBQVUsSUFBSTtRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ25CLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsMENBQTBDLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQzNHLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQTtRQUN0QixpQkFBaUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLElBQUk7WUFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSw0QkFBNEIsQ0FBQyxDQUFDLENBQUE7WUFDcEYsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUNoQixFQUFFLENBQUMsQ0FBQyx1Q0FBdUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN2RCxVQUFVLEdBQUcsSUFBSSxDQUFBO29CQUNqQixJQUFJLEVBQUUsQ0FBQTtnQkFDUixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUMsQ0FBQTtBQUVGLFFBQVEsQ0FBQyxXQUFX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
\ No newline at end of file
diff --git a/test/test.ts b/test/test.ts
index 3c3ed83..5dc8d37 100644
--- a/test/test.ts
+++ b/test/test.ts
@@ -1,8 +1,5 @@
-import 'typings-test'
-
-import * as shelljs from 'shelljs'
-import * as should from 'should'
-import * as smartstring from 'smartstring'
+import { tap, expect } from 'tapbundle'
+import * as smartq from 'smartq'
// the tested module
import * as smartdata from '../dist/index'
@@ -18,116 +15,67 @@ interface ITestObject1 {
let testDbCollection: smartdata.DbCollection
-describe('mongodb', function () {
- it('should start mongodb', function (done) {
- this.timeout(30000)
- mongoChildProcess = shelljs.exec('mongod --dbpath=./test/data --port 27017', { async: true, silent: true })
- let doneCalled = false
- mongoChildProcess.stdout.on('data', function (data) {
- console.log(smartstring.indent.indentWithPrefix(data, '*** MongoDB Process *** : '))
- if (!doneCalled) {
- if (/waiting for connections on port 27017/.test(data)) {
- doneCalled = true
- done()
- }
- }
- })
+tap.test('should establish a connection to mongodb', async () => {
+ testDb = new smartdata.Db('mongodb://localhost:27017/smartdata')
+ await testDb.connect()
+})
+
+tap.test('should insert a doc into the collection', async () => {
+ await testDbCollection.insertOne({ value1: 'test' })
+})
+
+tap.test('should find all docs of testDbCollection', async () => {
+ await testDbCollection.find({}).then(async (resultArray) => {
+ console.log(resultArray)
+ expect(resultArray[ 0 ].value1).equal('test')
})
})
-describe('smartdata', function () {
- it('should establish a connection to mongodb', function (done) {
- testDb = new smartdata.Db('mongodb://localhost:27017/smartdata')
- testDb.connect().then(() => { done() })
- })
- it('should create a collection', function () {
- testDbCollection = new smartdata.DbCollection('something', testDb)
- })
- it('should insert a doc into the collection', function (done) {
- testDbCollection.insertOne({ value1: 'test' }).then(() => { done() })
- })
- it('should find all docs of testDbCollection', function (done) {
- testDbCollection.find({}).then((resultArray) => {
- console.log(resultArray)
- should(resultArray[ 0 ].value1).equal('test')
- done()
- })
- })
- it('should insert many docs into the collection', function (done) {
- testDbCollection.insertMany([
- { value1: 'test2' },
- { value1: 'test', value2: 3, value3: 'hi' }
- ]).then(() => { done() })
- })
- it('should find a specified doc', function (done) {
- testDbCollection.find({ 'value3': { '$exists': true } }).then((resultArray) => {
- console.log(resultArray)
- should(resultArray[ 0 ].value3).equal('hi')
- done()
- }).catch(console.log)
- })
- it('should close the db Connection', function () {
- testDb.close()
- })
- it('should create an extended class', function () {
- @smartdata.Collection(testDb)
- class TestCar extends smartdata.DbDoc {
- @smartdata.svDb()
- color: string
- constructor(optionsArg: {
- color: string,
- property2: number
- }) {
- super()
- this.color = optionsArg.color
- }
- };
- let testCarInstance = new TestCar({
- color: 'red',
- property2: 2
- })
+tap.test('should insert many docs into the collection', async () => {
+ await testDbCollection.insertMany([
+ { value1: 'test2' },
+ { value1: 'test', value2: 3, value3: 'hi' }
+ ])
+})
- should(testCarInstance.saveableProperties[ 0 ]).equal('color')
- console.log(TestCar)
- should(testCarInstance.collection).be.instanceof(smartdata.DbCollection)
- should(testCarInstance).be.instanceof(smartdata.DbDoc)
- testCarInstance.save()
- it('should get a collection for testCar', function () {
-
- })
+tap.test('should find a specified doc', async () => {
+ await testDbCollection.find({ 'value3': { '$exists': true } }).then((resultArray) => {
+ console.log(resultArray)
+ expect(resultArray[ 0 ].value3).equal('hi')
})
})
-describe('mongodb', function () {
- it('should kill mongodb', function (done) {
- this.timeout(30000)
- mongoChildProcess.stdout.on('data', function (data) {
- if (/dbexit: rc: 0/.test(data)) {
- done()
- }
- })
- shelljs.exec('mongod --dbpath=./test/data --shutdown')
- mongoChildProcess.kill('SIGTERM')
- })
+tap.test('should close the db Connection', async () => {
+ testDb.close()
})
-describe('smartdata with nedb', function () {
- let testDb: smartdata.Db
- let testCollection: smartdata.DbCollection
- it('should create a DB with nedb', function () {
- testDb = new smartdata.Db('any', 'nedb')
- testDb.connect()
- testCollection = new smartdata.DbCollection('anyName', testDb)
+tap.test('should create an extended class', async () => {
+ @smartdata.Collection(testDb)
+ class TestCar extends smartdata.DbDoc {
+ @smartdata.svDb()
+ color: string
+ constructor (optionsArg: {
+ color: string,
+ property2: number
+ }) {
+ super('TestCar')
+ this.color = optionsArg.color
+ }
+ }
+ let testCarInstance = new TestCar({
+ color: 'red',
+ property2: 2
})
- it('should insert a doc', function (done) {
- testCollection.insertOne({ value1: 'hi' }).then(() => { done() })
- })
-
- it('should find the inserted document', function (done) {
- testCollection.find({ value1: 'hi' }).then(x => {
- console.log(x)
- done()
- })
- })
+ expect(testCarInstance.saveableProperties[ 0 ]).equal('color')
+ console.log(TestCar)
+ expect(testCarInstance.collection).be.instanceof(smartdata.DbCollection)
+ expect(testCarInstance).be.instanceof(smartdata.DbDoc)
+ testCarInstance.save()
})
+
+tap.test('should get a collection for testCar', async () => {
+ //
+})
+
+tap.start()
diff --git a/ts/smartdata.classes.db.ts b/ts/smartdata.classes.db.ts
index 3f71241..07e734a 100644
--- a/ts/smartdata.classes.db.ts
+++ b/ts/smartdata.classes.db.ts
@@ -3,25 +3,18 @@ import { Objectmap } from 'lik'
import { DbCollection } from './smartdata.classes.dbcollection'
-/**
- * interface - indicates the database type
- */
-export type TDbType = 'mongodb' | 'nedb'
-
/**
* interface - indicates the connection status of the db
*/
export type TConnectionStatus = 'disconnected' | 'connected' | 'failed'
export class Db {
- dbType: TDbType
dbUrl: string
db: plugins.mongodb.Db
status: TConnectionStatus
collections = new Objectmap>()
- constructor(dbUrlArg: string, dbTypeArg: TDbType = 'mongodb') {
- this.dbType = dbTypeArg
+ constructor (dbUrlArg: string) {
this.dbUrl = dbUrlArg
}
@@ -30,30 +23,24 @@ export class Db {
/**
* connects to the database that was specified during instance creation
*/
- connect(): plugins.q.Promise {
- let done = plugins.q.defer()
- if (this.dbType === 'mongodb') {
- plugins.mongodb.MongoClient.connect(this.dbUrl, (err, db) => {
- if (err) { console.log(err) }
- plugins.assert.equal(null, err)
- this.db = db
- plugins.beautylog.success(`connected to database at ${this.dbUrl}`)
- done.resolve(this.db)
- })
- } else if (this.dbType === 'nedb') {
- this.db = null
- }
+ connect (): Promise {
+ let done = plugins.smartq.defer()
+ plugins.mongodb.MongoClient.connect(this.dbUrl, (err, db) => {
+ if (err) { console.log(err) }
+ plugins.assert.equal(null, err)
+ this.db = db
+ plugins.beautylog.success(`connected to database at ${this.dbUrl}`)
+ done.resolve(this.db)
+ })
return done.promise
}
/**
* closes the connection to the databse
*/
- close(): plugins.q.Promise {
- let done = plugins.q.defer()
- if (this.dbType === 'mongodb') {
- this.db.close()
- }
+ close (): Promise {
+ let done = plugins.smartq.defer()
+ this.db.close()
plugins.beautylog.ok(`disconnected to database at ${this.dbUrl}`)
done.resolve()
return done.promise
@@ -64,8 +51,8 @@ export class Db {
/**
* gets a collection by name: string
*/
- getCollectionByName(nameArg: string): plugins.q.Promise> {
- let done = plugins.q.defer>()
+ getCollectionByName(nameArg: string): Promise> {
+ let done = plugins.smartq.defer>()
let resultCollection = this.collections.find((dbCollectionArg) => {
return dbCollectionArg.name === nameArg
})
@@ -73,9 +60,9 @@ export class Db {
done.resolve(resultCollection)
}
return done.promise
- };
+ }
- addCollection(dbCollectionArg: DbCollection) {
+ addCollection (dbCollectionArg: DbCollection) {
this.collections.add(dbCollectionArg)
}
diff --git a/ts/smartdata.classes.dbcollection.ts b/ts/smartdata.classes.dbcollection.ts
index ee6890e..6da0654 100644
--- a/ts/smartdata.classes.dbcollection.ts
+++ b/ts/smartdata.classes.dbcollection.ts
@@ -1,150 +1,117 @@
import * as plugins from './smartdata.plugins'
import { Db } from './smartdata.classes.db'
+import { DbDoc } from './smartdata.classes.dbDoc'
export interface IFindOptions {
- limit?: number
+ limit?: number
}
export interface IDocValidation {
- (doc: T): boolean
+ (doc: T): boolean
}
-export function Collection(db: Db) {
- return function (constructor) {
- constructor['dbCollection'] = new DbCollection(constructor.name, db)
- }
+export function Collection (db: Db) {
+ return function (constructor) {
+ constructor[ 'dbCollection' ] = new DbCollection(constructor.name, db)
+ }
}
export class DbCollection {
- /**
- * the collection that is used, defaults to mongodb collection,
- * can be nedb datastore (sub api of mongodb)
- */
- collection: plugins.mongodb.Collection
- name: string
- db: Db
- objectValidation: IDocValidation = null
+ /**
+ * the collection that is used, defaults to mongodb collection,
+ * can be nedb datastore (sub api of mongodb)
+ */
+ collection: plugins.mongodb.Collection
+ collectedClass: T & DbDoc
+ objectValidation: IDocValidation = null
+ name: string
+ db: Db
+ constructor (collectedClassArg: T & DbDoc, dbArg: Db) {
+ // tell the collection where it belongs
+ this.collectedClass = collectedClassArg
+ this.name = collectedClassArg.name
+ this.db = dbArg
- constructor(nameArg: string, dbArg: Db) {
- // tell the collection where it belongs
- this.name = nameArg
- this.db = dbArg
+ // make sure it actually exists
+ this.collection = dbArg.db.collection(this.name)
- // make sure it actually exists
- if (this.db.dbType === 'mongodb') {
- this.collection = dbArg.db.collection(nameArg)
- } else {
- this.collection = new plugins.nedb()
- }
+ // tell the db class about it (important since Db uses different systems under the hood)
+ this.db.addCollection(this)
+ }
- // tell the db class about it (important since Db uses different systems under the hood)
- this.db.addCollection(this)
+ /**
+ * adds a validation function that all newly inserted and updated objects have to pass
+ */
+ addDocValidation (funcArg: IDocValidation) {
+ this.objectValidation = funcArg
+ }
+
+ /**
+ * finds an object in the DbCollection
+ */
+ find (docMatchArg: T | any, optionsArg?: IFindOptions): Promise {
+ let done = plugins.smartq.defer()
+ let findCursor = this.collection.find(docMatchArg)
+ if (optionsArg) {
+ if (optionsArg.limit) { findCursor = findCursor.limit(1) }
}
+ findCursor.toArray((err, docs) => {
+ if (err) {
+ done.reject(err)
+ throw err
+ }
+ done.resolve(docs)
+ })
+ return done.promise
+ }
- /**
- * adds a validation function that all newly inserted and updated objects have to pass
- */
- addDocValidation(funcArg: IDocValidation) {
- this.objectValidation = funcArg
- }
+ /**
+ * inserts object into the DbCollection
+ */
+ insertOne (docArg: T): Promise {
+ let done = plugins.smartq.defer()
+ this.checkDoc(docArg).then(
+ () => {
+ this.collection.insertOne(docArg)
+ .then(() => { done.resolve() })
+ },
+ () => {
+ done.reject(new Error('one the docs did not pass validation'))
+ })
+ return done.promise
+ }
- /**
- * finds an object in the DbCollection
- */
- find(docMatchArg: T | any, optionsArg?: IFindOptions): plugins.q.Promise {
- let done = plugins.q.defer()
- if (this.db.dbType === 'mongodb') {
- let findCursor = this.collection.find(docMatchArg)
- if (optionsArg) {
- if (optionsArg.limit) { findCursor = findCursor.limit(1) }
- }
- findCursor.toArray((err, docs) => {
- if (err) {
- done.reject(err)
- throw err
- }
- done.resolve(docs)
- })
- } else if (this.db.dbType === 'nedb') {
- this.collection.find(docMatchArg, (err, docs) => {
- if (err) {
- done.reject(err)
- throw err
- }
- done.resolve(docs)
- })
- }
- return done.promise
+ /**
+ * inserts many objects at once into the DbCollection
+ */
+ insertMany (docArrayArg: T[]): Promise {
+ let done = plugins.smartq.defer()
+ let checkDocPromiseArray: Promise[] = []
+ for (let docArg of docArrayArg) {
+ checkDocPromiseArray.push(this.checkDoc(docArg))
}
+ Promise.all(checkDocPromiseArray).then(() => {
+ this.collection.insertMany(docArrayArg)
+ .then(() => { done.resolve() })
+ })
+ return done.promise
+ }
- /**
- * inserts object into the DbCollection
- */
- insertOne(docArg: T): plugins.q.Promise {
- let done = plugins.q.defer()
- this.checkDoc(docArg).then(
- () => {
- if (this.db.dbType === 'mongodb') {
- this.collection.insertOne(docArg)
- .then(() => { done.resolve() })
- } else if (this.db.dbType === 'nedb') {
- this.collection.insert(docArg, (err, newDoc) => {
- if (err) {
- done.reject(err)
- throw err
- }
- done.resolve()
- })
- }
- },
- () => {
- done.reject(new Error('one the docs did not pass validation'))
- })
- return done.promise
+ /**
+ * checks a Doc for constraints
+ */
+ private checkDoc (docArg: T): Promise {
+ let done = plugins.smartq.defer()
+ let validationResult = true
+ if (this.objectValidation) {
+ validationResult = this.objectValidation(docArg)
}
-
- /**
- * inserts many objects at once into the DbCollection
- */
- insertMany(docArrayArg: T[]): plugins.q.Promise {
- let done = plugins.q.defer()
- let checkDocPromiseArray: plugins.q.Promise[] = []
- for (let docArg of docArrayArg) {
- checkDocPromiseArray.push(this.checkDoc(docArg))
- }
- plugins.q.all(checkDocPromiseArray).then(() => {
- if (this.db.dbType === 'mongodb') {
- this.collection.insertMany(docArrayArg)
- .then(() => { done.resolve() })
- } else if (this.db.dbType === 'nedb') {
- let paramArray = plugins.lodash.concat(docArrayArg, (err, newDoc) => {
- if (err) {
- done.reject(err)
- throw err
- }
- done.resolve()
- })
- this.collection.insert.apply(null, paramArray)
- }
- })
- return done.promise
- }
-
- /**
- * checks a Doc for constraints
- */
- private checkDoc(docArg: T): plugins.q.Promise {
- let done = plugins.q.defer()
- let validationResult = true
- if (this.objectValidation) {
- validationResult = this.objectValidation(docArg)
- }
- if (validationResult) {
- done.resolve()
- } else {
- done.reject('validation of object did not pass')
- }
- return done.promise
+ if (validationResult) {
+ done.resolve()
+ } else {
+ done.reject('validation of object did not pass')
}
+ return done.promise
+ }
}
diff --git a/ts/smartdata.classes.dbdoc.ts b/ts/smartdata.classes.dbdoc.ts
index 5651d98..76668dc 100644
--- a/ts/smartdata.classes.dbdoc.ts
+++ b/ts/smartdata.classes.dbdoc.ts
@@ -35,11 +35,17 @@ export class DbDoc {
*/
saveableProperties: string[]
+ /**
+ * name
+ */
+ name: string
+
/**
* class constructor
*/
- constructor() {
+ constructor(nameArg: string) {
this.collection = this.constructor[ 'dbCollection' ]
+ this.name = nameArg
}
/**
@@ -47,7 +53,7 @@ export class DbDoc {
* may lead to data inconsistencies, but is faster
*/
save() {
- let saveableObject: any = {} // isn not exposed to outside, so any is ok here
+ let saveableObject: any = {} // is not exposed to outside, so any is ok here
for (let propertyNameString of this.saveableProperties) {
saveableObject[ propertyNameString ] = this[ propertyNameString ]
}
diff --git a/ts/smartdata.plugins.ts b/ts/smartdata.plugins.ts
index 6d983c0..b21e3f0 100644
--- a/ts/smartdata.plugins.ts
+++ b/ts/smartdata.plugins.ts
@@ -3,14 +3,12 @@ import * as assert from 'assert'
import * as beautylog from 'beautylog'
import * as lodash from 'lodash'
import * as mongodb from 'mongodb'
-import * as q from 'q'
-let nedb = require('nedb')
+import * as smartq from 'smartq'
export {
assert,
beautylog,
lodash,
mongodb,
- q,
- nedb
+ smartq
}
diff --git a/tsconfig.json b/tsconfig.json
index 90fbfaf..cc2bee1 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,5 +1,8 @@
{
"compilerOptions": {
- "experimentalDecorators": true
+ "experimentalDecorators": true,
+ "lib": [
+ "es2015"
+ ]
}
}
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index 05149c8..8852508 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,53 +2,71 @@
# yarn lockfile v1
-"@types/lodash@4.x.x", "@types/lodash@^4.14.35", "@types/lodash@^4.14.53":
- version "4.14.53"
- resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.53.tgz#c81ee7f2a551f92fb8692a2f6766d0430ccce9eb"
+"@types/bson@*":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@types/bson/-/bson-1.0.3.tgz#6c26f0876bf9d8cbb06edd4019e29354bf3a03e0"
+ dependencies:
+ "@types/node" "*"
+
+"@types/chai-as-promised@0.0.29":
+ version "0.0.29"
+ resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-0.0.29.tgz#43d52892aa998e185a3de3e2477edb8573be1d77"
+ dependencies:
+ "@types/chai" "*"
+ "@types/promises-a-plus" "*"
+
+"@types/chai-string@^1.1.30":
+ version "1.1.30"
+ resolved "https://registry.yarnpkg.com/@types/chai-string/-/chai-string-1.1.30.tgz#4d8744b31a5a2295fc01c981ed1e2d4c8a070f0a"
+ dependencies:
+ "@types/chai" "*"
+
+"@types/chai@*", "@types/chai@^3.4.35":
+ version "3.5.2"
+ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-3.5.2.tgz#c11cd2817d3a401b7ba0f5a420f35c56139b1c1e"
+
+"@types/lodash@^4.14.55", "@types/lodash@^4.14.62", "@types/lodash@^4.14.66":
+ version "4.14.66"
+ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.66.tgz#3dbb83477becf130611f8fac82a8fdb199805981"
"@types/minimatch@2.x.x":
version "2.0.29"
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-2.0.29.tgz#5002e14f75e2d71e564281df0431c8c1b4a2a36a"
-"@types/mocha@^2.2.31":
- version "2.2.39"
- resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.39.tgz#f68d63db8b69c38e9558b4073525cf96c4f7a829"
-
-"@types/mongodb@^2.1.41":
- version "2.1.41"
- resolved "https://registry.yarnpkg.com/@types/mongodb/-/mongodb-2.1.41.tgz#92ea0f832b9e0269c7826fb7f899cf86fe5c4df5"
+"@types/mongodb@^2.2.6":
+ version "2.2.6"
+ resolved "https://registry.yarnpkg.com/@types/mongodb/-/mongodb-2.2.6.tgz#cd7cb4c439219af1dfba5860d302eeaf2b0a13e4"
dependencies:
+ "@types/bson" "*"
"@types/node" "*"
-"@types/nedb@0.0.31":
- version "0.0.31"
- resolved "https://registry.yarnpkg.com/@types/nedb/-/nedb-0.0.31.tgz#e556992cc4ac50e28eb926407fc6da008e3dcdd7"
+"@types/node@*", "@types/node@^7.0.29":
+ version "7.0.31"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.31.tgz#80ea4d175599b2a00149c29a10a4eb2dff592e86"
-"@types/node@*":
- version "7.0.5"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.5.tgz#96a0f0a618b7b606f1ec547403c00650210bfbb7"
+"@types/promises-a-plus@*":
+ version "0.0.27"
+ resolved "https://registry.yarnpkg.com/@types/promises-a-plus/-/promises-a-plus-0.0.27.tgz#c64651134614c84b8f5d7114ce8901d36a609780"
-"@types/q@0.0.32", "@types/q@0.x.x":
- version "0.0.32"
- resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5"
-
-"@types/shelljs@^0.7.0":
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.7.0.tgz#229c157c6bc1e67d6b990e6c5e18dbd2ff58cff0"
- dependencies:
- "@types/node" "*"
-
-"@types/should@^8.1.30":
- version "8.1.30"
- resolved "https://registry.yarnpkg.com/@types/should/-/should-8.1.30.tgz#e6b4f3ca4fb0799f6ce3303f3a8c003df6585aa3"
-
-acorn@^1.0.3:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-1.2.2.tgz#c8ce27de0acc76d896d2b1fad3df588d9e82f014"
-
-amdefine@>=0.0.4:
+"@types/q@1.x.x":
version "1.0.1"
- resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
+ resolved "https://registry.yarnpkg.com/@types/q/-/q-1.0.1.tgz#dbccb01bd8f0f801a12a4604c7d7af59bb02ae2f"
+
+"@types/shelljs@^0.6.0":
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.6.0.tgz#090b705c102ce7fc5c0c5ea9b524418ff15840df"
+ dependencies:
+ "@types/node" "*"
+
+"@types/shelljs@^0.7.2":
+ version "0.7.2"
+ resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.7.2.tgz#c2bdb3fe80cd7a3da08750ca898ae44c589671f3"
+ dependencies:
+ "@types/node" "*"
+
+"@types/which@^1.0.28":
+ version "1.0.28"
+ resolved "https://registry.yarnpkg.com/@types/which/-/which-1.0.28.tgz#016e387629b8817bed653fe32eab5d11279c8df6"
ansi-256-colors@^1.1.0:
version "1.1.0"
@@ -62,63 +80,71 @@ ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
-ast-types@0.8.15:
- version "0.8.15"
- resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.8.15.tgz#8eef0827f04dff0ec8857ba925abe3fea6194e52"
+assertion-error@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c"
-async@0.2.10:
- version "0.2.10"
- resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
+balanced-match@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
-balanced-match@^0.4.1:
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
-
-base62@0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/base62/-/base62-0.1.1.tgz#7b4174c2f94449753b11c2651c083da841a7b084"
-
-beautycolor@^1.0.5:
+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"
-beautylog@^6.1.1:
- version "6.1.1"
- resolved "https://registry.yarnpkg.com/beautylog/-/beautylog-6.1.1.tgz#2a83603ad7e2a0a09701ac63d7d3064a588dc779"
+beautylog@^6.1.10:
+ version "6.1.10"
+ resolved "https://registry.yarnpkg.com/beautylog/-/beautylog-6.1.10.tgz#9c27e566937684cb689f9372d98cfa5415d50b72"
dependencies:
- "@types/lodash" "4.x.x"
- beautycolor "^1.0.5"
+ "@types/lodash" "^4.14.55"
+ beautycolor "^1.0.7"
figlet "^1.2.0"
lodash "^4.17.4"
ora "^1.1.0"
smartenv "^2.0.0"
- smartq "^1.0.4"
+ smartq "^1.1.1"
typings-global "^1.0.14"
-binary-search-tree@0.2.5:
- version "0.2.5"
- resolved "https://registry.yarnpkg.com/binary-search-tree/-/binary-search-tree-0.2.5.tgz#7dbb3b210fdca082450dad2334c304af39bdc784"
- dependencies:
- underscore "~1.4.4"
+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"
+brace-expansion@^1.1.7:
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
dependencies:
- balanced-match "^0.4.1"
+ balanced-match "^1.0.0"
concat-map "0.0.1"
bson@~1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/bson/-/bson-1.0.4.tgz#93c10d39eaa5b58415cbc4052f3e53e562b0b72c"
-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"
+chai-as-promised@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-6.0.0.tgz#1a02a433a6f24dafac63b9c96fa1684db1aa8da6"
+ dependencies:
+ check-error "^1.0.2"
+
+chai-string@^1.3.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/chai-string/-/chai-string-1.4.0.tgz#359140c051d36a4e4b1a5fc6b910152f438a8d49"
+
+chai@^3.5.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247"
+ dependencies:
+ assertion-error "^1.0.1"
+ deep-eql "^0.1.3"
+ type-detect "^1.0.0"
+
chalk@^1.0.0, chalk@^1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
@@ -129,6 +155,10 @@ chalk@^1.0.0, chalk@^1.1.1:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
+check-error@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
+
cli-cursor@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
@@ -147,13 +177,23 @@ 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"
-es3ify@^0.1.3:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/es3ify/-/es3ify-0.1.4.tgz#ad9fa5df1ae34f3f31e1211b5818b2d51078dfd1"
+deep-eql@^0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2"
dependencies:
- esprima-fb "~3001.0001.0000-dev-harmony-fb"
- jstransform "~3.0.0"
- through "~2.3.4"
+ 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"
+
+es6-error@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.0.2.tgz#eec5c726eacef51b7f6b73c20db6e1b13b069c98"
es6-promise@3.2.1:
version "3.2.1"
@@ -163,47 +203,22 @@ escape-string-regexp@^1.0.2:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-esmangle-evaluator@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/esmangle-evaluator/-/esmangle-evaluator-1.0.1.tgz#620d866ef4861b3311f75766d52a8572bb3c6336"
-
-esprima-fb@~15001.1001.0-dev-harmony-fb:
- version "15001.1001.0-dev-harmony-fb"
- resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz#43beb57ec26e8cf237d3dd8b33e42533577f2659"
-
-esprima-fb@~3001.0001.0000-dev-harmony-fb, esprima-fb@~3001.1.0-dev-harmony-fb:
- version "3001.1.0-dev-harmony-fb"
- resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz#b77d37abcd38ea0b77426bb8bc2922ce6b426411"
-
-falafel@^1.0.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/falafel/-/falafel-1.2.0.tgz#c18d24ef5091174a497f318cd24b026a25cddab4"
- dependencies:
- acorn "^1.0.3"
- foreach "^2.0.5"
- isarray "0.0.1"
- object-keys "^1.0.6"
-
figlet@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.2.0.tgz#6c46537378fab649146b5a6143dda019b430b410"
-foreach@^2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
-
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
glob@^7.0.0:
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
+ 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.2"
+ minimatch "^3.0.4"
once "^1.3.0"
path-is-absolute "^1.0.0"
@@ -213,10 +228,6 @@ has-ansi@^2.0.0:
dependencies:
ansi-regex "^2.0.0"
-immediate@~3.0.5:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
-
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
@@ -228,66 +239,52 @@ inherits@2, inherits@~2.0.1:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
-inline-process-browser@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/inline-process-browser/-/inline-process-browser-1.0.0.tgz#46a61b153dd3c9b1624b1a00626edb4f7f414f22"
- dependencies:
- falafel "^1.0.1"
- through2 "^0.6.5"
-
interpret@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c"
-
-isarray@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90"
isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+
js-base64@^2.1.9:
version "2.1.9"
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce"
-jstransform@~3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/jstransform/-/jstransform-3.0.0.tgz#a2591ab6cee8d97bf3be830dbfa2313b87cd640b"
+leakage@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/leakage/-/leakage-0.3.0.tgz#15d698abdc76bbc6439601f4f3020e77e2d50c39"
dependencies:
- base62 "0.1.1"
- esprima-fb "~3001.1.0-dev-harmony-fb"
- source-map "0.1.31"
+ es6-error "^4.0.2"
+ left-pad "^1.1.3"
+ memwatch-next "^0.3.0"
+ minimist "^1.2.0"
+ pretty-bytes "^4.0.2"
-lie@3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/lie/-/lie-3.0.2.tgz#ffda21d7bba26f377cad865d3649b2fc8ce39fea"
- dependencies:
- es3ify "^0.1.3"
- immediate "~3.0.5"
- inline-process-browser "^1.0.0"
- unreachable-branch-transform "^0.3.0"
+left-pad@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.1.3.tgz#612f61c033f3a9e08e939f1caebeea41b6f3199a"
-lik@^1.0.27:
- version "1.0.27"
- resolved "https://registry.yarnpkg.com/lik/-/lik-1.0.27.tgz#699a336225109c8b9ccb9d3dd32d7016d1532c8f"
+lik@^1.0.32:
+ version "1.0.32"
+ resolved "https://registry.yarnpkg.com/lik/-/lik-1.0.32.tgz#41ee6c8edd483eaa11bd089775263955f5555060"
dependencies:
- "@types/lodash" "^4.14.35"
+ "@types/lodash" "^4.14.62"
"@types/minimatch" "2.x.x"
- "@types/q" "0.x.x"
- lodash "^4.16.1"
+ "@types/q" "1.x.x"
+ lodash "^4.17.4"
minimatch "^3.0.3"
- q "^1.4.1"
- rxjs "^5.0.0-beta.12"
+ q "^1.5.0"
+ rxjs "^5.3.0"
+ smartq "^1.1.1"
+ tapbundle "^1.0.14"
typings-global "^1.0.14"
-localforage@^1.3.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/localforage/-/localforage-1.5.0.tgz#6b994e19b56611fa85df3992df397ac4ab66e815"
- dependencies:
- lie "3.0.2"
-
-lodash@^4.16.1, lodash@^4.17.2, lodash@^4.17.4:
+lodash@^4.17.4:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
@@ -297,54 +294,45 @@ log-symbols@^1.0.2:
dependencies:
chalk "^1.0.0"
+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"
+
mimic-fn@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
-minimatch@^3.0.2, minimatch@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
+minimatch@^3.0.3, minimatch@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
dependencies:
- brace-expansion "^1.0.0"
+ brace-expansion "^1.1.7"
-minimist@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+minimist@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
-mkdirp@~0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
- dependencies:
- minimist "0.0.8"
-
-mongodb-core@2.1.8:
- version "2.1.8"
- resolved "https://registry.yarnpkg.com/mongodb-core/-/mongodb-core-2.1.8.tgz#b33e0370d0a59d97b6cb1ec610527be9e95ca2c0"
+mongodb-core@2.1.12:
+ version "2.1.12"
+ resolved "https://registry.yarnpkg.com/mongodb-core/-/mongodb-core-2.1.12.tgz#1531192511bc16ef160ac6ae0cc46776ffd8451d"
dependencies:
bson "~1.0.4"
require_optional "~1.0.0"
-mongodb@^2.2.24:
- version "2.2.24"
- resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-2.2.24.tgz#80f40d6ec5bdec0ddecf0f9ce0144e794c46449a"
+mongodb@^2.2.28:
+ version "2.2.28"
+ resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-2.2.28.tgz#d8ff45754366e03973fa259bf4f11447858da657"
dependencies:
es6-promise "3.2.1"
- mongodb-core "2.1.8"
- readable-stream "2.1.5"
+ mongodb-core "2.1.12"
+ readable-stream "2.2.7"
-nedb@^1.8.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/nedb/-/nedb-1.8.0.tgz#0e3502cd82c004d5355a43c9e55577bd7bd91d88"
- dependencies:
- async "0.2.10"
- binary-search-tree "0.2.5"
- localforage "^1.3.0"
- mkdirp "~0.5.1"
- underscore "~1.4.4"
-
-object-keys@^1.0.6:
- version "1.0.11"
- resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
+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"
@@ -353,14 +341,14 @@ once@^1.3.0:
wrappy "1"
onetime@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.0.tgz#52aa8110e52fc5126ffc667bd8ec21c2ed209ce6"
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
dependencies:
mimic-fn "^1.0.0"
ora@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/ora/-/ora-1.1.0.tgz#69aaa4a209630e43b142c5f7ff41820da87e2faf"
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/ora/-/ora-1.3.0.tgz#80078dd2b92a934af66a3ad72a5b910694ede51a"
dependencies:
chalk "^1.1.1"
cli-cursor "^2.1.0"
@@ -375,48 +363,30 @@ path-parse@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
-private@~0.1.5:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1"
+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:
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"
+q@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1"
-readable-stream@2.1.5:
- version "2.1.5"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0"
+readable-stream@2.2.7:
+ version "2.2.7"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.7.tgz#07057acbe2467b22042d36f98c5ad507054e95b1"
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"
-"readable-stream@>=1.0.33-1 <1.1.0-0":
- version "1.0.34"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "0.0.1"
- string_decoder "~0.10.x"
-
-recast@^0.10.1:
- version "0.10.43"
- resolved "https://registry.yarnpkg.com/recast/-/recast-0.10.43.tgz#b95d50f6d60761a5f6252e15d80678168491ce7f"
- dependencies:
- ast-types "0.8.15"
- esprima-fb "~15001.1001.0-dev-harmony-fb"
- private "~0.1.5"
- source-map "~0.5.0"
-
rechoir@^0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
@@ -428,8 +398,8 @@ reflect-metadata@^0.1.2:
resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.10.tgz#b4f83704416acad89988c9b15635d47e03b9344a"
require_optional@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.0.tgz#52a86137a849728eb60a55533617f8f914f59abf"
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.1.tgz#4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e"
dependencies:
resolve-from "^2.0.0"
semver "^5.1.0"
@@ -439,8 +409,8 @@ resolve-from@^2.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57"
resolve@^1.1.6:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.1.tgz#5d0a1632609b6b00a22284293db1d5d973676314"
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5"
dependencies:
path-parse "^1.0.5"
@@ -457,82 +427,75 @@ runtime-type-checks@0.0.4:
dependencies:
reflect-metadata "^0.1.2"
-rxjs@^5.0.0-beta.12:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.2.0.tgz#db537de8767c05fa73721587a29e0085307d318b"
+rxjs@^5.3.0:
+ version "5.4.1"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.4.1.tgz#b62f757f279445d265a18a58fb0a70dc90e91626"
dependencies:
symbol-observable "^1.0.1"
+safe-buffer@~5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
+
semver@^5.1.0, 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.6:
- version "0.7.6"
- resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.6.tgz#379cccfb56b91c8601e4793356eb5382924de9ad"
+shelljs@^0.7.6, shelljs@^0.7.8:
+ version "0.7.8"
+ resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3"
dependencies:
glob "^7.0.0"
interpret "^1.0.0"
rechoir "^0.6.2"
-should-equal@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/should-equal/-/should-equal-1.0.1.tgz#0b6e9516f2601a9fb0bb2dcc369afa1c7e200af7"
- dependencies:
- should-type "^1.0.0"
-
-should-format@^3.0.2:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/should-format/-/should-format-3.0.3.tgz#9bfc8f74fa39205c53d38c34d717303e277124f1"
- dependencies:
- should-type "^1.3.0"
- should-type-adaptors "^1.0.1"
-
-should-type-adaptors@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/should-type-adaptors/-/should-type-adaptors-1.0.1.tgz#efe5553cdf68cff66e5c5f51b712dc351c77beaa"
- dependencies:
- should-type "^1.3.0"
- should-util "^1.0.0"
-
-should-type@^1.0.0, should-type@^1.3.0, should-type@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/should-type/-/should-type-1.4.0.tgz#0756d8ce846dfd09843a6947719dfa0d4cff5cf3"
-
-should-util@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/should-util/-/should-util-1.0.0.tgz#c98cda374aa6b190df8ba87c9889c2b4db620063"
-
-should@^11.2.0:
- version "11.2.0"
- resolved "https://registry.yarnpkg.com/should/-/should-11.2.0.tgz#7afca3182c234781d786d2278a87805b5ecf0409"
- dependencies:
- should-equal "^1.0.0"
- should-format "^3.0.2"
- should-type "^1.4.0"
- should-type-adaptors "^1.0.1"
- should-util "^1.0.0"
-
signal-exit@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
-smartenv@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/smartenv/-/smartenv-2.0.0.tgz#ede4e2044efcf9bec318388bb1dab53024ee3d16"
+smartchai@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/smartchai/-/smartchai-1.0.3.tgz#de6d010bb8b5aef24cb70b31a5f5334e8c41b72f"
dependencies:
- "@types/q" "0.x.x"
- lodash "^4.17.2"
- q "^1.4.1"
+ "@types/chai" "^3.4.35"
+ "@types/chai-as-promised" "0.0.29"
+ "@types/chai-string" "^1.1.30"
+ chai "^3.5.0"
+ chai-as-promised "^6.0.0"
+ chai-string "^1.3.0"
+
+smartdelay@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/smartdelay/-/smartdelay-1.0.3.tgz#5fd44dad77262d110702f0293efa80c072cfb579"
+ dependencies:
+ smartq "^1.1.1"
+ typings-global "^1.0.16"
+
+smartenv@^2.0.0:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/smartenv/-/smartenv-2.0.6.tgz#b38c679b0c151b9af548f68c3a072c29d1417e8d"
+ dependencies:
+ lodash "^4.17.4"
+ smartq "^1.1.1"
typings-global "^1.0.14"
-smartq@^1.0.4:
+smartq@^1.1.0, smartq@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/smartq/-/smartq-1.1.1.tgz#efb358705260d41ae18aef7ffd815f7b6fe17dd3"
dependencies:
typed-promisify "^0.3.0"
typings-global "^1.0.14"
+smartshell@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/smartshell/-/smartshell-1.0.6.tgz#27b1c79029784abe72ac7e91fe698b7ebecc6629"
+ dependencies:
+ "@types/shelljs" "^0.6.0"
+ "@types/which" "^1.0.28"
+ shelljs "^0.7.6"
+ smartq "^1.1.0"
+ which "^1.2.12"
+
smartstring@^2.0.24:
version "2.0.24"
resolved "https://registry.yarnpkg.com/smartstring/-/smartstring-2.0.24.tgz#dc1c5efb738c10a2d7daeea3d800ad2ecc65a26c"
@@ -540,19 +503,11 @@ smartstring@^2.0.24:
js-base64 "^2.1.9"
typings-global "^1.0.14"
-source-map@0.1.31:
- version "0.1.31"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.31.tgz#9f704d0d69d9e138a81badf6ebb4fde33d151c61"
+string_decoder@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.2.tgz#b29e1f4e1125fa97a10382b8a533737b7491e179"
dependencies:
- amdefine ">=0.0.4"
-
-source-map@~0.5.0:
- version "0.5.6"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
-
-string_decoder@~0.10.x:
- version "0.10.31"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
+ safe-buffer "~5.0.1"
strip-ansi@^3.0.0:
version "3.0.1"
@@ -568,55 +523,47 @@ symbol-observable@^1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
-through2@^0.6.2, through2@^0.6.5:
- version "0.6.5"
- resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48"
+tapbundle@^1.0.14:
+ version "1.0.14"
+ resolved "https://registry.yarnpkg.com/tapbundle/-/tapbundle-1.0.14.tgz#75827e335fcb02216f0267a26a26d702ddc02e3c"
dependencies:
- readable-stream ">=1.0.33-1 <1.1.0-0"
- xtend ">=4.0.0 <4.1.0-0"
+ early "^2.1.1"
+ leakage "^0.3.0"
+ smartchai "^1.0.3"
+ smartdelay "^1.0.3"
+ smartq "^1.1.1"
+ typings-global "^1.0.16"
-through@~2.3.4:
- version "2.3.8"
- resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+type-detect@0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822"
+
+type-detect@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2"
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, typings-global@^1.0.17:
+ version "1.0.17"
+ resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.17.tgz#41edc331ccec3168289adc8849e1e255efbe7152"
dependencies:
+ "@types/node" "^7.0.29"
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 "*"
-
-underscore@~1.4.4:
- version "1.4.4"
- resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604"
-
-unreachable-branch-transform@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/unreachable-branch-transform/-/unreachable-branch-transform-0.3.0.tgz#d99cc4c6e746d264928845b611db54b0f3474caa"
- dependencies:
- esmangle-evaluator "^1.0.0"
- recast "^0.10.1"
- through2 "^0.6.2"
+ smartshell "^1.0.6"
util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+which@^1.2.12:
+ version "1.2.14"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5"
+ dependencies:
+ isexe "^2.0.0"
+
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
-
-"xtend@>=4.0.0 <4.1.0-0":
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"