9 lines
16 KiB
JavaScript
9 lines
16 KiB
JavaScript
/**
|
|
* jibo-gulp - Standard extendable Gulp tasking for Jibo libraries
|
|
* @version v2.0.5
|
|
* Copyright (c) 2016, Jibo, Inc. All rights reserved.
|
|
* All use of the Jibo SDK is subject to the Jibo SDK End User License Agreement (EULA)
|
|
* distributed herewith. If you did not receive a copy of the EULA, you may view a
|
|
* copy at https://developers.jibo.com/license.
|
|
*/
|
|
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var s;s="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,s.jiboGulp=e()}}(function(){return function e(s,t,r){function i(o,u){if(!t[o]){if(!s[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(n)return n(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var l=t[o]={exports:{}};s[o][0].call(l.exports,function(e){var t=s[o][1][e];return i(t?t:e)},l,l.exports,e,s,t,r)}return t[o].exports}for(var n="function"==typeof require&&require,o=0;o<r.length;o++)i(r[o]);return i}({1:[function(e,s,t){"use strict";s.exports=[e("babel-preset-jibo"),e("babel-preset-react")]},{"babel-preset-jibo":void 0,"babel-preset-react":void 0}],2:[function(e,s,t){"use strict";s.exports=function(s,t,r){return t=Object.assign({dest:"lib",destDebugMaps:"maps",babel:e("./babel-presets")},t),function(){t.pipeline=t.pipeline||"babel";var e=s.src(t.src).pipe(r.cached("build-debug")).pipe(r.sourcemaps.init()).pipe(r.preprocess({context:{DEBUG:!0,RELEASE:!1}}));if("typescript"===t.pipeline){t.addsrc&&(e=e.pipe(r.addsrc.prepend(t.addsrc)));var i={target:"ES5",allowJs:!0,module:"commonjs",moduleResolution:"node"};t.dts&&(i.declaration=!0),e=e.pipe(r.typescript(i))}else e=e.pipe(r.babel({presets:t.babel})).on("error",function(e){console.error(e.toString()),this.emit("end")});var n=[e.pipe(r.sourcemaps.write(t.destDebugMaps)).pipe(s.dest(r.path.join(t.dest,t.destDebug)))];return t.dts&&n.push(e.dts.pipe(s.dest(r.path.join(t.dest,t.destDebug,t.dts)))),r.merge(n)}}},{"./babel-presets":1}],3:[function(e,s,t){"use strict";s.exports=function(s,t,r){return t=Object.assign({dest:"lib",babel:e("./babel-presets"),uglifyOptions:{},argv:{},typescript:{}},t),function(e){function i(s){var t=r.chalk.red,i=String(s.stack);i=i.substr(i.indexOf("\n")+1),console.error(t.bold(s)),console.error(t(i)),e()}var n=r.browserify({entries:t.argv.app||t.app,ignoreMissing:!0,detectGlobals:!1,insertGlobals:!1,bundleExternal:!1,standalone:t.name,debug:!1});"typescript"===t.pipeline&&n.plugin(r.tsify,{target:"ES5",allowJs:!0,module:"commonjs",moduleResolution:"node"});var o=t.releaseHeader||r.path.join(r.findRoot(__dirname),"licenses","license-code.txt");return n.transform(r.babelify.configure({presets:t.babel,sourceMaps:!1})).transform(r.preprocessify({DEBUG:!1,RELEASE:!0})).bundle().on("error",i).pipe(r.source(t.name+".js")).pipe(r.buffer()).pipe(r.derequire([{from:"module",to:"_modu_"},{from:"require",to:"_requi_"}])).pipe(r.uglify(t.uglifyOptions)).pipe(r.license(r,o)).pipe(s.dest(t.dest))}}},{"./babel-presets":1}],4:[function(e,s,t){"use strict";s.exports=function(e,s,t){return s=Object.assign({dest:"lib",destDebug:"debug"},s),function(e){var r=t.path.join(s.dest,s.name+".js"),i='module.exports = require("./'+s.destDebug+'");';t.fs.writeFile(r,i,e)}}},{}],5:[function(e,s,t){"use strict";s.exports=function(s,t){function r(){return e(s.path.join(process.cwd(),"package.json"))}return s.header(s.fs.readFileSync(t),{pkg:r(),year:(new Date).getFullYear()})}},{}],6:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("build-debug",t.babelTask(e,s,t))}},{}],7:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("build",t.browserifyTask(e,s,t))}},{}],8:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("ci-coverage",function(){var r=s.dest+"/**/*.js";return e.src([r,"!"+s.tests]).pipe(t.istanbul({includeUntested:!0})).pipe(t.istanbul.hookRequire()).on("finish",function(){e.start("ci-report")}).on("error",function(e){console.error("\n\nTests Failed.\n\n"),console.error(e),process.exit(1)})})}},{}],9:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("ci-report",function(){return e.src(s.tests,{read:!1}).pipe(t.mocha({reporter:"mocha-junit-reporter",reporterOptions:{mochaFile:"./tmp/test-results.xml"}})).on("error",function(){e.start("unit-tests")}).pipe(t.istanbul.writeReports({dir:"./tmp/coverage-report",reporters:["clover","lcov","json","text","text-summary"]}))})}},{}],10:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("ci-test",function(e){t.sequence("debug","ci-coverage",e)})}},{}],11:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("clean",function(){return t.del(s.clean)})}},{}],12:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("debug-launcher",t.launcherTask(e,s,t))}},{}],13:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("debug",function(s){var r=["lint","tslint","clean"];e.hasTask("pre-build-debug")&&r.push("pre-build-debug"),r.push("build-debug"),e.hasTask("post-build-debug")&&r.push("post-build-debug"),r.push("debug-launcher",s),t.sequence.apply(t.sequence,r)})}},{}],14:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("default",function(s){var r=["lint","tslint","clean"];e.hasTask("pre-build")&&r.push("pre-build"),r.push("build"),e.hasTask("post-build")&&r.push("post-build"),r.push("unit-tests",s),t.sequence.apply(t.sequence,r)})}},{}],15:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("dependencies",function(){return e.src("package.json").pipe(t.david())})}},{}],16:[function(e,s,t){"use strict";s.exports=function(e){e.task("dev",["watch"])}},{}],17:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("format",function(){return e.src(s.src).pipe(t.prettify({mode:"VERIFY_AND_WRITE",logSuccess:!1})).pipe(e.dest(function(e){return e.base}))})}},{}],18:[function(e,s,t){"use strict";s.exports={"build-debug":e("./build-debug"),build:e("./build"),"ci-coverage":e("./ci-coverage"),"ci-report":e("./ci-report"),"ci-test":e("./ci-test"),clean:e("./clean"),"debug-launcher":e("./debug-launcher"),debug:e("./debug"),"default":e("./default"),dependencies:e("./dependencies"),dev:e("./dev"),format:e("./format"),lint:e("./lint"),"publish-bump":e("./publish-bump"),"publish-confirm":e("./publish-confirm"),"publish-exec":e("./publish-exec"),"publish-tags":e("./publish-tags"),"publish-push":e("./publish-push"),publish:e("./publish"),"release-clean":e("./release-clean"),"release-confirm":e("./release-confirm"),"release-license":e("./release-license"),"release-package":e("./release-package"),"release-readme":e("./release-readme"),"release-stage":e("./release-stage"),"release-exec":e("./release-exec"),release:e("./release"),test:e("./test"),tslint:e("./tslint"),"unit-tests":e("./unit-tests"),watch:e("./watch")}},{"./build":7,"./build-debug":6,"./ci-coverage":8,"./ci-report":9,"./ci-test":10,"./clean":11,"./debug":13,"./debug-launcher":12,"./default":14,"./dependencies":15,"./dev":16,"./format":17,"./lint":19,"./publish":25,"./publish-bump":20,"./publish-confirm":21,"./publish-exec":22,"./publish-push":23,"./publish-tags":24,"./release":33,"./release-clean":26,"./release-confirm":27,"./release-exec":28,"./release-license":29,"./release-package":30,"./release-readme":31,"./release-stage":32,"./test":34,"./tslint":35,"./unit-tests":36,"./watch":37}],19:[function(e,s,t){"use strict";s.exports=function(e,s,t){s.eslint=s.eslint||{};var r=s.eslint,i={"extends":["eslint:recommended","plugin:react/recommended"],rules:Object.assign({"no-console":0,"no-debugger":1,"react/jsx-uses-react":1,"react/display-name":0,"react/prop-types":0,"react/no-direct-mutation-state":0,"react/no-danger":0,"react/no-deprecated":0,"react/no-is-mounted":0,"react/no-unknown-property":0},r.rules),parserOptions:Object.assign({ecmaVersion:6,sourceType:"module",ecmaFeatures:{jsx:!0}},r.parserOptions),envs:Object.assign({node:!0,browser:!0,es6:!0,mocha:!0},r.envs||r.env),globals:Object.assign({},r.globals),plugins:["react"]};e.task("lint",function(){return e.src(s.lint||s.lintSrc||s.src).pipe(t.cached("lint")).pipe(t.eslint(i)).pipe(t.eslint.format()).pipe(t.eslint.failAfterError())})}},{}],20:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("publish-bump",function(r){function i(i){return s.argv.dryrun?(console.log(t.chalk.green("npm publish "+i)),r()):void t.exec("npm version "+i,function(s,i){s?e.emit("error",s):console.log(t.chalk.green(i)),r()})}function n(){t.inquirer.prompt({type:"input",name:"bump",message:"What is the semver to use for this project?"},function(e){i(e.bump)})}t.inquirer.prompt({type:"list",name:"bump",message:"What type of bump would you like to do?",choices:["patch","minor","major","manual","skip"]},function(e){switch(e.bump){case"skip":return console.log(t.chalk.gray("No version bump. Note: no git tag will be auto-created.")),r();case"manual":return n();default:return i(e.bump)}})})}},{}],21:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("publish-confirm",function(e){var r=s.argv.registry||"http://npm.jibo.com:8080";t.inquirer.prompt({type:"confirm",name:"confirm",message:"Do you want to publish to the NPM registry ("+r+")?"},function(s){s.confirm||(console.log(t.chalk.yellow("Publish cancelled.")),process.exit(1)),e()})})}},{}],22:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("publish-exec",function(r){var i=s.argv.registry||"http://npm.jibo.com:8080";return s.argv.dryrun?(console.log(t.chalk.green("npm publish --registry="+i)),r()):void t.exec("npm publish --registry="+i,function(s,i){s&&e.emit("error",s),console.log(t.chalk.green(i)),r()})})}},{}],23:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("publish-push",function(r){return s.argv.dryrun?(console.log(t.chalk.green("git push")),r()):void t.exec("git push",function(s,i,n){s&&e.emit("error",s),console.log(t.chalk.green(n)),r()})})}},{}],24:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("publish-tags",function(r){return s.argv.dryrun?(console.log(t.chalk.green("git push --tags")),r()):void t.exec("git push --tags",function(s,i,n){s&&e.emit("error",s),console.log(t.chalk.green(n)),r()})})}},{}],25:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("publish",function(r){e.on("error",function(e){console.log(t.chalk.red(e.message)),process.exit(1)});var i=["publish-confirm","publish-bump"];e.hasTask("pre-publish")&&i.push("pre-publish"),i.push(s.argv.publishTask||"debug","publish-exec","publish-tags","publish-push"),e.hasTask("post-publish")&&i.push("post-publish"),i.push(r),t.sequence.apply(t.sequence,i)})}},{}],26:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("release-clean",function(e){return s.argv.dryrun?(console.log(t.chalk.green("Delete for release"),s.releaseDest),e()):t.del(s.releaseDest)})}},{}],27:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("release-confirm",function(e){var r=s.argv.releaseRegistry||"https://registry.npmjs.com/";t.inquirer.prompt({type:"confirm",name:"confirm",message:"Do you want to publish to the NPM registry ("+r+")?"},function(s){s.confirm||(console.log(t.chalk.yellow("Publish cancelled.")),process.exit(1)),e()})})}},{}],28:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("release-exec",function(r){var i=s.argv.releaseRegistry||"https://registry.npmjs.com/",n=t.path.join(process.cwd(),s.releaseDest);return s.argv.dryrun?(console.log(t.chalk.gray("Publish Path: "+n)),console.log(t.chalk.green("npm publish --registry="+i)),r()):void t.exec("npm publish --registry="+i,{cwd:n},function(s,i){s&&e.emit("error",s),console.log(t.chalk.green(i)),r()})})}},{}],29:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("release-license",function(r){var i=t.findRoot(__dirname),n=t.path.join(i,"licenses","LICENSE.txt"),o=s.releaseLicense||t.path.join(t.findRoot(__dirname),"licenses","license-release.txt");return e.src(n).pipe(t.license(t,o)).pipe(e.dest(s.releaseDest))})}},{}],30:[function(e,s,t){"use strict";s.exports=function(s,t,r){s.task("release-package",function(s){var i=r.path.join(process.cwd(),t.releaseDest,"package.json"),n=e(i);delete n.repository,delete n.devDependencies,delete n.publishConfig,delete n["private"],n.scripts&&delete n.scripts.test,n.license="SEE LICENSE IN LICENSE.txt",n.author="Jibo, Inc. <sdkearlyaccess@jibo.com>",r.fs.writeFile(i,JSON.stringify(n,null," "),s)})}},{}],31:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("release-readme",function(e){var r=t.path.resolve(s.argv.releaseReadme||s.releaseReadme),i=t.path.join(process.cwd(),s.releaseDest,"README.md");return t.fs.createReadStream(r).pipe(t.fs.createWriteStream(i))})}},{}],32:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("release-stage",function(t){return e.src(s.releaseSrc,{base:"."}).pipe(e.dest(s.releaseDest))})}},{}],33:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("release",function(r){var i=["release-confirm",s.argv.releaseTask||s.releaseTask||"default","release-clean"];e.hasTask("pre-release")&&i.push("pre-release"),i.push("release-stage","release-package","release-license"),(s.argv.releaseReadme||s.releaseReadme)&&i.push("release-readme"),e.hasTask("post-release")&&i.push("post-release"),i.push("release-exec"),s.argv.dryrun||i.push("release-clean"),i.push(r),t.sequence.apply(t.sequence,i)})}},{}],34:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("test",function(e){t.sequence("tslint","lint","unit-tests",e)})}},{}],35:[function(e,s,t){"use strict";s.exports=function(e,s,t){var r={configuration:{rules:{curly:!0,"triple-equals":!0,semicolon:[!0,"always"],"no-var-keyword":!0,"no-unused-variable":!0,"no-unused-expression":!0,"no-unreachable":!0,"no-empty":!0,"jsdoc-format":!0,"no-duplicate-variable":!0,"no-duplicate-key":!0,"no-debugger":!0,"member-ordering":[!0,"public-before-private","static-before-instance","variables-before-functions"]}}},i={emitError:!1,reportLimit:10,summarizeFailureOutput:!1};e.task("tslint",function(){var n=e.src(s.tslintSrc);return s.addscr&&(n=n.pipe(t.addsrc.prepend(s.addsrc))),n.pipe(t.tslint(r)).pipe(t.tslint.report("prose",i))})}},{}],36:[function(e,s,t){"use strict";s.exports=function(e,s,t){e.task("unit-tests",function(){return e.src(s.tests,{read:!1}).pipe(t.mocha({reporter:"spec"}))})}},{}],37:[function(e,s,t){"use strict";s.exports=function(e,s){e.task("watch",["debug"],function(){var t=["lint","tslint"];e.hasTask("pre-build-debug")&&t.push("pre-build-debug"),t.push("build-debug"),e.hasTask("post-build-debug")&&t.push("post-build-debug"),t.push("debug-launcher"),e.watch(s.watch||s.src,t)})}},{}],38:[function(e,s,t){"use strict";s.exports=function(s,t,r){t=Object.assign({tslintSrc:"src/**/*.ts",pattern:["tasks/**/*.js"],src:"src/**/*.js",tests:"tests/**/*.js",app:"src",name:"index",dest:"lib",destDebug:"debug",destDebugMaps:"map",releaseSrc:["lib/**",".npmignore","package.json"],releaseDest:".release",clean:["lib"],babel:e("./babel-presets")},t),r=Object.assign({cached:e("gulp-cached"),mocha:e("gulp-mocha"),eslint:e("gulp-eslint"),david:e("gulp-david"),prettify:e("gulp-jsbeautifier"),babelify:e("babelify"),babel:e("gulp-babel"),typescript:e("gulp-typescript"),sourcemaps:e("gulp-sourcemaps"),browserify:e("browserify"),buffer:e("vinyl-buffer"),source:e("vinyl-source-stream"),uglify:e("gulp-uglify-harmony"),del:e("del"),chalk:e("chalk"),findRoot:e("find-root"),exec:e("child_process").exec,derequire:e("gulp-derequire"),sequence:e("gulp-sequence").use(s),babelTask:e("./babel-task"),browserifyTask:e("./browserify-task"),header:e("gulp-header"),launcherTask:e("./launcher-task"),inquirer:e("inquirer"),preprocess:e("gulp-preprocess"),preprocessify:e("preprocessify"),path:e("path"),fs:e("fs"),addsrc:e("gulp-add-src"),tslint:e("gulp-tslint"),license:e("./license"),tsify:e("tsify"),merge:e("merge2"),istanbul:e("gulp-istanbul")},r);var i=e("./tasks");for(var n in i)i[n](s,t,r);return e("load-gulp-tasks")(s,t,r),{options:t,plugins:r}}},{"./babel-presets":1,"./babel-task":2,"./browserify-task":3,"./launcher-task":4,"./license":5,"./tasks":18,babelify:void 0,browserify:void 0,chalk:void 0,child_process:void 0,del:void 0,"find-root":void 0,fs:void 0,"gulp-add-src":void 0,"gulp-babel":void 0,"gulp-cached":void 0,"gulp-david":void 0,"gulp-derequire":void 0,"gulp-eslint":void 0,"gulp-header":void 0,"gulp-istanbul":void 0,"gulp-jsbeautifier":void 0,"gulp-mocha":void 0,"gulp-preprocess":void 0,"gulp-sequence":void 0,"gulp-sourcemaps":void 0,"gulp-tslint":void 0,"gulp-typescript":void 0,"gulp-uglify-harmony":void 0,inquirer:void 0,"load-gulp-tasks":void 0,merge2:void 0,path:void 0,preprocessify:void 0,tsify:void 0,"vinyl-buffer":void 0,"vinyl-source-stream":void 0}]},{},[38])(38)}); |