diff --git a/dist/index.d.ts b/dist/index.d.ts index b7f8bd3..0f01130 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -1,12 +1,2 @@ -import { SlackMessage } from './slackme.classes.slackmessage'; -export interface ISlackmeMessage { - message: string; - author: string; -} -export { SlackMessage }; -export declare class Slackme { - private baseUrl; - private postRoute; - constructor(postRouteArg: string); - sendMessage(messageArg: SlackMessage, channelArg?: string): void; -} +export * from './slackme.classes.slackme'; +export * from './slackme.classes.slackmessage'; diff --git a/dist/index.js b/dist/index.js index 720fe9a..bc4fe8f 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,26 +1,8 @@ "use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const plugins = require("./slackme.plugins"); -const slackme_classes_slackmessage_1 = require("./slackme.classes.slackmessage"); -exports.SlackMessage = slackme_classes_slackmessage_1.SlackMessage; -class Slackme { - constructor(postRouteArg) { - this.baseUrl = 'https://hooks.slack.com/services/'; - this.postRoute = postRouteArg; - } - sendMessage(messageArg, channelArg = 'general') { - plugins.smartrequest.post(`${this.baseUrl}${this.postRoute}`, { - headers: { - 'Content-Type': 'application/json' - }, - requestBody: { - channel: channelArg, - attachments: [ - messageArg.messageOptions - ] - } - }); - } +function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } -exports.Slackme = Slackme; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZDQUE0QztBQUM1QyxpRkFBNkQ7QUFRM0QsdUJBUk8sMkNBQVksQ0FRUDtBQUdkO0lBR0UsWUFBYSxZQUFvQjtRQUZ6QixZQUFPLEdBQUcsbUNBQW1DLENBQUE7UUFHbkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUE7SUFDL0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxVQUF3QixFQUFFLGFBQXFCLFNBQVM7UUFDbEUsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBQztZQUMzRCxPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLGtCQUFrQjthQUNuQztZQUNELFdBQVcsRUFBRTtnQkFDWCxPQUFPLEVBQUUsVUFBVTtnQkFDbkIsV0FBVyxFQUFFO29CQUNYLFVBQVUsQ0FBQyxjQUFjO2lCQUMxQjthQUNGO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGO0FBcEJELDBCQW9CQyJ9 \ No newline at end of file +Object.defineProperty(exports, "__esModule", { value: true }); +__export(require("./slackme.classes.slackme")); +__export(require("./slackme.classes.slackmessage")); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtDQUF5QztBQUN6QyxvREFBOEMifQ== \ No newline at end of file diff --git a/dist/slackme.classes.slackme.d.ts b/dist/slackme.classes.slackme.d.ts new file mode 100644 index 0000000..4cd1699 --- /dev/null +++ b/dist/slackme.classes.slackme.d.ts @@ -0,0 +1,7 @@ +import { IMessageOptions } from './slackme.classes.slackmessage'; +export declare class Slackme { + private baseUrl; + private postRoute; + constructor(postRouteArg: string); + sendMessage(messageOptionsArg: IMessageOptions, channelArg?: string): void; +} diff --git a/dist/slackme.classes.slackme.js b/dist/slackme.classes.slackme.js new file mode 100644 index 0000000..bbdf2b3 --- /dev/null +++ b/dist/slackme.classes.slackme.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const plugins = require("./slackme.plugins"); +class Slackme { + constructor(postRouteArg) { + this.baseUrl = 'https://hooks.slack.com/services/'; + this.postRoute = postRouteArg; + } + sendMessage(messageOptionsArg, channelArg = 'general') { + plugins.smartrequest.post(`${this.baseUrl}${this.postRoute}`, { + headers: { + 'Content-Type': 'application/json' + }, + requestBody: { + channel: channelArg, + attachments: [ + messageOptionsArg + ] + } + }); + } +} +exports.Slackme = Slackme; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xhY2ttZS5jbGFzc2VzLnNsYWNrbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbGFja21lLmNsYXNzZXMuc2xhY2ttZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZDQUE0QztBQUc1QztJQUdFLFlBQWEsWUFBb0I7UUFGekIsWUFBTyxHQUFHLG1DQUFtQyxDQUFBO1FBR25ELElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFBO0lBQy9CLENBQUM7SUFFRCxXQUFXLENBQUMsaUJBQWtDLEVBQUUsYUFBcUIsU0FBUztRQUM1RSxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFDO1lBQzNELE9BQU8sRUFBRTtnQkFDUCxjQUFjLEVBQUUsa0JBQWtCO2FBQ25DO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixXQUFXLEVBQUU7b0JBQ1gsaUJBQWlCO2lCQUNsQjthQUNGO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGO0FBcEJELDBCQW9CQyJ9 \ No newline at end of file diff --git a/dist/slackme.classes.slackmessage.d.ts b/dist/slackme.classes.slackmessage.d.ts index 3e18058..a3c7929 100644 --- a/dist/slackme.classes.slackmessage.d.ts +++ b/dist/slackme.classes.slackmessage.d.ts @@ -1,3 +1,4 @@ +import { Slackme } from './slackme.classes.slackme'; export interface IAttachmentField { title: string; value: string; @@ -51,6 +52,8 @@ export interface IMessageOptions { ts?: number; } export declare class SlackMessage { + slackmeRef: Slackme; messageOptions: IMessageOptions; - constructor(messageOptions: IMessageOptions); + constructor(messageOptionsArg: IMessageOptions, slackmeArg?: Slackme); + sendToRoom(roomNameArg: string): void; } diff --git a/dist/slackme.classes.slackmessage.js b/dist/slackme.classes.slackmessage.js index f8badc4..f8830db 100644 --- a/dist/slackme.classes.slackmessage.js +++ b/dist/slackme.classes.slackmessage.js @@ -1,9 +1,17 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); class SlackMessage { - constructor(messageOptions) { - this.messageOptions = messageOptions; + constructor(messageOptionsArg, slackmeArg) { + if (slackmeArg) { + this.slackmeRef = slackmeArg; + } + this.messageOptions = messageOptionsArg; + } + sendToRoom(roomNameArg) { + if (this.slackmeRef) { + this.slackmeRef.sendMessage(this.messageOptions, roomNameArg); + } } } exports.SlackMessage = SlackMessage; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xhY2ttZS5jbGFzc2VzLnNsYWNrbWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NsYWNrbWUuY2xhc3Nlcy5zbGFja21lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF3REE7SUFFRSxZQUFZLGNBQStCO1FBQ3pDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFBO0lBQ3RDLENBQUM7Q0FDRjtBQUxELG9DQUtDIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xhY2ttZS5jbGFzc2VzLnNsYWNrbWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NsYWNrbWUuY2xhc3Nlcy5zbGFja21lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF5REE7SUFHRSxZQUFZLGlCQUFrQyxFQUFFLFVBQW9CO1FBQ2xFLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDZixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQTtRQUM5QixDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQTtJQUN6QyxDQUFDO0lBQ0QsVUFBVSxDQUFDLFdBQW1CO1FBQzVCLEVBQUUsQ0FBQSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUE7UUFDL0QsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWRELG9DQWNDIn0= \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..52ac2b8 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,51 @@ +{ + "name": "slackme", + "version": "1.0.3", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "conventional-commit-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-2.2.0.tgz", + "integrity": "sha1-XblXOdbCEqy+e29lahG5QLqmiUY=", + "dev": true + }, + "cz-conventional-changelog": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-2.1.0.tgz", + "integrity": "sha1-L0vHOQ4yROTfKT5ro1Hkx0Cnx2Q=", + "dev": true, + "requires": { + "conventional-commit-types": "2.2.0", + "lodash.map": "4.6.0", + "longest": "1.0.1", + "right-pad": "1.0.1", + "word-wrap": "1.2.3" + } + }, + "lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "right-pad": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz", + "integrity": "sha1-jKCMLLtbVedNr6lr9/0aJ9VoyNA=", + "dev": true + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + } + } +} diff --git a/package.json b/package.json index ffb66fe..cf2a995 100644 --- a/package.json +++ b/package.json @@ -10,11 +10,17 @@ "test": "(npmts)" }, "devDependencies": { + "@types/node": "^9.3.0", + "cz-conventional-changelog": "^2.1.0", "qenv": "^1.1.7", "tapbundle": "^1.0.13" }, "dependencies": { - "smartrequest": "^1.0.6", - "typings-global": "^1.0.16" + "smartrequest": "^1.0.6" + }, + "config": { + "commitizen": { + "path": "./node_modules/cz-conventional-changelog" + } } } diff --git a/readme.md b/readme.md index 3d8580e..9f2d785 100644 --- a/readme.md +++ b/readme.md @@ -21,6 +21,85 @@ API abstraction for mojoio ## Usage Use TypeScript for best in class instellisense. +```javascript +import * as slackme from 'slackme' + +// First setup the hook +const mySlackme = new Slackme('https://some.slack.webhook.url') +mySlackme.sendMessage:{{ + // MessageOptions here +}, 'myAwesomeChannel'} +``` + +The message interface looks like this: + +```javascript +interface IAttachmentField { + title: string + value: string + short?: boolean +} + +interface IMessageOptions { + /** + * "Required plain-text summary of the attachment." + */ + fallback?: string, + /** + * a side color + */ + color?: string, + /** + * a message to show above + */ + pretext?: string, + /** + * author name of the attachment + */ + author_name?: string, + /** + * a link to the author + */ + author_link?: string, + /** + * a string to the author + */ + author_icon?: string, + /** + * a title for the attachment + */ + title?: string, + /** + * a link for the title + */ + title_link?: string, + /** + * the main text of the message + */ + text?: string, + fields?: IAttachmentField[], + image_url?: string, + thumb_url?: string, + footer?: string, + footer_icon?: string, + /** + * timestamp as epoch time + */ + ts?: number +} +``` + +Alternatively, there is the option of specifying a SlackMessage class + +```javascript + +const mySlackMessage = new SlackMessage({ /* message options here } */, mySlackme) +mySlackMessage.title = 'new Title' // modify message options +mySlackMessage.sendToRoom('general') +mySlackMessage.title = 'another Title' +mySlackMessage.sendToRoom('anotherroom') +``` + For further information read the linked docs at the top of this README. > MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh) diff --git a/test/test.ts b/test/test.ts index c2b86bb..312f7a1 100644 --- a/test/test.ts +++ b/test/test.ts @@ -6,13 +6,14 @@ let testQenv = new Qenv(process.cwd(), process.cwd() + '/.nogit') import * as slackme from '../ts/index' let testSlackme: slackme.Slackme +let testSlackMessage: slackme.SlackMessage tap.test('should create a valid slackme instance', async () => { testSlackme = new slackme.Slackme(process.env.SLACK_TOKEN) }) tap.test('should send a message to Slack', async () => { - let slackMessage = new slackme.SlackMessage({ + testSlackMessage = new slackme.SlackMessage({ author_name: 'GitLab CI', author_link: 'https://gitlab.com/', pretext: '*Good News*: Build successfull!', @@ -30,8 +31,10 @@ tap.test('should send a message to Slack', async () => { } ], ts: (new Date()).getTime() - }) - testSlackme.sendMessage(slackMessage, 'random') + }, testSlackme) + testSlackme.sendMessage(testSlackMessage.messageOptions, 'random') + testSlackMessage.sendToRoom('random') + }) tap.start() diff --git a/ts/index.ts b/ts/index.ts index a5380e0..d215d19 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -1,33 +1,2 @@ -import * as plugins from './slackme.plugins' -import { SlackMessage } from './slackme.classes.slackmessage' -export interface ISlackmeMessage { - message: string, - author: string, - -} - -export { - SlackMessage -} - -export class Slackme { - private baseUrl = 'https://hooks.slack.com/services/' - private postRoute: string - constructor (postRouteArg: string) { - this.postRoute = postRouteArg - } - - sendMessage(messageArg: SlackMessage, channelArg: string = 'general') { - plugins.smartrequest.post(`${this.baseUrl}${this.postRoute}`,{ - headers: { - 'Content-Type': 'application/json' - }, - requestBody: { - channel: channelArg, - attachments: [ - messageArg.messageOptions - ] - } - }) - } -} +export * from './slackme.classes.slackme' +export * from './slackme.classes.slackmessage' diff --git a/ts/slackme.classes.slackme.ts b/ts/slackme.classes.slackme.ts new file mode 100644 index 0000000..abfe086 --- /dev/null +++ b/ts/slackme.classes.slackme.ts @@ -0,0 +1,24 @@ +import * as plugins from './slackme.plugins' +import { IMessageOptions } from './slackme.classes.slackmessage' + +export class Slackme { + private baseUrl = 'https://hooks.slack.com/services/' + private postRoute: string + constructor (postRouteArg: string) { + this.postRoute = postRouteArg + } + + sendMessage(messageOptionsArg: IMessageOptions, channelArg: string = 'general') { + plugins.smartrequest.post(`${this.baseUrl}${this.postRoute}`,{ + headers: { + 'Content-Type': 'application/json' + }, + requestBody: { + channel: channelArg, + attachments: [ + messageOptionsArg + ] + } + }) + } +} diff --git a/ts/slackme.classes.slackmessage.ts b/ts/slackme.classes.slackmessage.ts index f753455..ef99ee7 100644 --- a/ts/slackme.classes.slackmessage.ts +++ b/ts/slackme.classes.slackmessage.ts @@ -1,4 +1,5 @@ import * as plugins from './slackme.plugins' +import { Slackme } from './slackme.classes.slackme' export interface IAttachmentField { title: string @@ -55,8 +56,17 @@ export interface IMessageOptions { } export class SlackMessage { + slackmeRef: Slackme messageOptions: IMessageOptions - constructor(messageOptions: IMessageOptions) { - this.messageOptions = messageOptions + constructor(messageOptionsArg: IMessageOptions, slackmeArg?: Slackme) { + if (slackmeArg) { + this.slackmeRef = slackmeArg + } + this.messageOptions = messageOptionsArg + } + sendToRoom(roomNameArg: string) { + if(this.slackmeRef) { + this.slackmeRef.sendMessage(this.messageOptions, roomNameArg) + } } } diff --git a/ts/slackme.plugins.ts b/ts/slackme.plugins.ts index 50e0c73..4cecb9e 100644 --- a/ts/slackme.plugins.ts +++ b/ts/slackme.plugins.ts @@ -1,5 +1,3 @@ -import 'typings-global' - import * as smartrequest from 'smartrequest' export { diff --git a/yarn.lock b/yarn.lock index d1f6968..eca4e06 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,69 +2,30 @@ # yarn lockfile v1 -"@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.31" - resolved "https://registry.yarnpkg.com/@types/chai-string/-/chai-string-1.1.31.tgz#a22f75d713f69da8c5cf34f8bc808a62cd249405" - dependencies: - "@types/chai" "*" - -"@types/chai@*": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.0.4.tgz#fe86315d9a66827feeb16f73bc954688ec950e18" - -"@types/chai@^3.4.35": - version "3.5.2" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-3.5.2.tgz#c11cd2817d3a401b7ba0f5a420f35c56139b1c1e" +"@types/code@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/code/-/code-4.0.3.tgz#9c4de39f86eb3eba070146d2dab7dbc3f8eac35f" "@types/fs-extra@4.x.x": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-4.0.2.tgz#7b9b1bbf85962cbe029b5a83c9b530d7c75af3ba" + version "4.0.7" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-4.0.7.tgz#02533262386b5a6b9a49797dc82feffdf269140a" dependencies: "@types/node" "*" -"@types/glob@*": - version "5.0.32" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-5.0.32.tgz#aec5cfe987c72f099fdb1184452986aa506d5e8f" - dependencies: - "@types/minimatch" "*" - "@types/node" "*" +"@types/node@*", "@types/node@^9.3.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-9.3.0.tgz#3a129cda7c4e5df2409702626892cb4b96546dd5" -"@types/minimatch@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.1.tgz#b683eb60be358304ef146f5775db4c0e3696a550" +"@types/node@^8.0.33": + version "8.5.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.5.8.tgz#92509422653f10e9c0ac18d87e0610b39f9821c7" -"@types/node@*": - version "8.0.28" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.28.tgz#86206716f8d9251cf41692e384264cbd7058ad60" - -"@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/shelljs@^0.7.4": - version "0.7.4" - resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.7.4.tgz#137b5f31306eaff4de120ffe5b9d74b297809cfc" - dependencies: - "@types/glob" "*" - "@types/node" "*" - -"@types/vinyl@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/vinyl/-/vinyl-2.0.1.tgz#6b414dfdcd4a785e8e76e87565ed29e79490d9b7" +"@types/vinyl@^2.0.1": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@types/vinyl/-/vinyl-2.0.2.tgz#4f3b8dae8f5828d3800ef709b0cff488ee852de3" 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" resolved "https://registry.yarnpkg.com/ansi-256-colors/-/ansi-256-colors-1.1.0.tgz#910de50efcc7c09e3d82f2f87abd6b700c18818a" @@ -75,10 +36,6 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -assertion-error@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c" - balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -101,28 +58,6 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -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" - -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - clone-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" @@ -143,6 +78,12 @@ cloneable-readable@^1.0.0: process-nextick-args "^1.0.6" through2 "^2.0.1" +code@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/code/-/code-5.1.2.tgz#e3310c2078ca7dc0b49b9c39a8b0a7b06bd75efe" + dependencies: + hoek "5.x.x" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -151,12 +92,6 @@ core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" -deep-eql@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" - dependencies: - type-detect "0.1.1" - define-properties@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" @@ -173,8 +108,8 @@ early@^2.1.1: typings-global "^1.0.16" es-abstract@^1.5.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.2.tgz#25103263dc4decbda60e0c737ca32313518027ee" + version "1.10.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864" dependencies: es-to-primitive "^1.1.1" function-bind "^1.1.1" @@ -191,8 +126,8 @@ es-to-primitive@^1.1.1: is-symbol "^1.0.1" es6-error@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.0.2.tgz#eec5c726eacef51b7f6b73c20db6e1b13b069c98" + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" esprima@^4.0.0: version "4.0.0" @@ -208,9 +143,9 @@ foreach@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" -fs-extra@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.2.tgz#f91704c53d1b461f893452b0c307d9997647ab6b" +fs-extra@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" dependencies: graceful-fs "^4.1.2" jsonfile "^4.0.0" @@ -224,7 +159,7 @@ function-bind@^1.0.2, function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" -glob@^7.0.0, glob@^7.1.2: +glob@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: @@ -245,6 +180,10 @@ has@^1.0.1: dependencies: function-bind "^1.0.2" +hoek@5.x.x: + version "5.0.2" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-5.0.2.tgz#d2f2c95d36fe7189cf8aa8c237abc1950eca1378" + home@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/home/-/home-1.0.1.tgz#96a423ceb49b98378ff5ef3ceae059a557f9dd35" @@ -262,10 +201,6 @@ inherits@2, inherits@^2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" -interpret@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.4.tgz#820cdd588b868ffb191a809506d6c9c8f212b1b0" - is-callable@^1.1.1, is-callable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" @@ -292,11 +227,7 @@ 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-yaml@^3.9.1: +js-yaml@^3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" dependencies: @@ -320,8 +251,8 @@ leakage@^0.3.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" + version "1.2.0" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.2.0.tgz#d30a73c6b8201d8f7d8e7956ba9616087a68e0ee" lodash@^4.17.4: version "4.17.4" @@ -345,8 +276,8 @@ minimist@^1.2.0: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" nan@^2.3.2: - version "2.7.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46" + version "2.8.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" object-keys@^1.0.8: version "1.0.11" @@ -373,10 +304,6 @@ 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" @@ -409,12 +336,6 @@ readable-stream@^2.0.2, readable-stream@^2.1.5: string_decoder "~1.0.3" util-deprecate "~1.0.1" -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - dependencies: - resolve "^1.1.6" - remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -427,55 +348,34 @@ require-reload@0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/require-reload/-/require-reload-0.2.2.tgz#29a7591846caf91b6e8a3cda991683f95f8d7d42" -resolve@^1.1.6: - version "1.4.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" - dependencies: - path-parse "^1.0.5" - safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" -semver@^5.3.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" - -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" - smartchai@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/smartchai/-/smartchai-1.0.3.tgz#de6d010bb8b5aef24cb70b31a5f5334e8c41b72f" + version "1.0.8" + resolved "https://registry.yarnpkg.com/smartchai/-/smartchai-1.0.8.tgz#a074836f4ddd4b98c50f1e7ae9e8e8ad9f6f1902" dependencies: - "@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" + "@types/code" "^4.0.3" + code "^5.1.0" + typings-global "^1.0.20" smartdelay@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/smartdelay/-/smartdelay-1.0.3.tgz#5fd44dad77262d110702f0293efa80c072cfb579" + version "1.0.4" + resolved "https://registry.yarnpkg.com/smartdelay/-/smartdelay-1.0.4.tgz#791c1a4ee6770494064c10b1d2d2b8e6f3105b82" dependencies: smartq "^1.1.1" typings-global "^1.0.16" smartfile@^4.2.11: - version "4.2.20" - resolved "https://registry.yarnpkg.com/smartfile/-/smartfile-4.2.20.tgz#abc37c04fb7b3afea68fa295dfb80083361a8028" + version "4.2.26" + resolved "https://registry.yarnpkg.com/smartfile/-/smartfile-4.2.26.tgz#800f08b1089e153b7fd8e0ba165da465a071d407" dependencies: "@types/fs-extra" "4.x.x" - "@types/vinyl" "^2.0.0" - fs-extra "^4.0.0" + "@types/vinyl" "^2.0.1" + fs-extra "^4.0.2" glob "^7.1.2" - js-yaml "^3.9.1" + js-yaml "^3.10.0" require-reload "0.2.2" smartpath "^3.2.8" smartq "^1.1.6" @@ -498,22 +398,10 @@ smartq@^1.1.1, smartq@^1.1.6: util.promisify "^1.0.0" smartrequest@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/smartrequest/-/smartrequest-1.0.6.tgz#a006454332453b0a70d38a003a29963d039a7783" + version "1.0.8" + resolved "https://registry.yarnpkg.com/smartrequest/-/smartrequest-1.0.8.tgz#9af18dde34efa7d43b4ecfc92ccb157a98eda3b1" dependencies: smartq "^1.1.1" - typings-global "^1.0.17" - -smartshell@^1.0.6: - version "1.0.18" - resolved "https://registry.yarnpkg.com/smartshell/-/smartshell-1.0.18.tgz#b84ccc65cedf3a875bf676cec78ee07f4b4aa9e5" - dependencies: - "@types/shelljs" "^0.7.4" - "@types/which" "^1.0.28" - shelljs "^0.7.8" - smartq "^1.1.6" - typings-global "^1.0.20" - which "^1.3.0" sprintf-js@~1.0.2: version "1.0.3" @@ -545,9 +433,10 @@ strip-bom@^2.0.0: is-utf8 "^0.2.0" tapbundle@^1.0.13: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tapbundle/-/tapbundle-1.1.1.tgz#ec4172c0e82a77b1f6133fef2606311ede28a62d" + version "1.1.8" + resolved "https://registry.yarnpkg.com/tapbundle/-/tapbundle-1.1.8.tgz#e08aee0e100a830d8a26a583a85d37ce53312e02" dependencies: + "@types/node" "^8.0.33" early "^2.1.1" leakage "^0.3.0" smartchai "^1.0.3" @@ -562,20 +451,9 @@ through2@^2.0.1: readable-stream "^2.1.5" xtend "~4.0.1" -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" - -typings-global@^1.0.14, typings-global@^1.0.16, typings-global@^1.0.17, typings-global@^1.0.19, typings-global@^1.0.20: - version "1.0.20" - resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.20.tgz#3da769c54db538247c5d877d1d9e97eb2ec981ff" - dependencies: - semver "^5.3.0" - smartshell "^1.0.6" +typings-global@^1.0.14, typings-global@^1.0.16, typings-global@^1.0.19, typings-global@^1.0.20: + version "1.0.28" + resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.28.tgz#e28cc965476564cbc00e438739e0aa0735d323d4" universalify@^0.1.0: version "0.1.1" @@ -613,12 +491,6 @@ vinyl@^2.0.1: remove-trailing-separator "^1.0.1" replace-ext "^1.0.0" -which@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" - dependencies: - isexe "^2.0.0" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"