UNPKG

skypager-runtimes-node

Version:

the skypager node runtime

1,338 lines (1,038 loc) 190 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("babel-runtime/core-js/json/stringify"), require("babel-runtime/core-js/object/assign"), require("babel-runtime/core-js/object/keys"), require("babel-runtime/core-js/promise"), require("babel-runtime/core-js/weak-map"), require("babel-runtime/helpers/asyncToGenerator"), require("babel-runtime/helpers/defineProperty"), require("babel-runtime/helpers/extends"), require("babel-runtime/helpers/slicedToArray"), require("babel-runtime/helpers/toConsumableArray"), require("babel-runtime/helpers/typeof"), require("babel-runtime/regenerator"), require("child-process-promise"), require("child_process"), require("detect-port"), require("find-up"), require("fs"), require("fs-extra-promise"), require("http"), require("https"), require("lodash"), require("micromatch"), require("mime"), require("minimist"), require("opn"), require("os"), require("path"), require("path-to-regexp"), require("semver"), (function webpackLoadOptionalExternalModule() { try { return require("skypager-features-file-manager"); } catch(e) {} }()), require("skypager-helpers-client"), require("skypager-helpers-command"), require("skypager-helpers-page"), require("skypager-helpers-project-type"), require("skypager-helpers-repl"), require("skypager-helpers-server"), require("skypager-runtime"), require("skywalker"), require("winston"), require("zlib")); else if(typeof define === 'function' && define.amd) define(["babel-runtime/core-js/json/stringify", "babel-runtime/core-js/object/assign", "babel-runtime/core-js/object/keys", "babel-runtime/core-js/promise", "babel-runtime/core-js/weak-map", "babel-runtime/helpers/asyncToGenerator", "babel-runtime/helpers/defineProperty", "babel-runtime/helpers/extends", "babel-runtime/helpers/slicedToArray", "babel-runtime/helpers/toConsumableArray", "babel-runtime/helpers/typeof", "babel-runtime/regenerator", "child-process-promise", "child_process", "detect-port", "find-up", "fs", "fs-extra-promise", "http", "https", "lodash", "micromatch", "mime", "minimist", "opn", "os", "path", "path-to-regexp", "semver", "skypager-features-file-manager", "skypager-helpers-client", "skypager-helpers-command", "skypager-helpers-page", "skypager-helpers-project-type", "skypager-helpers-repl", "skypager-helpers-server", "skypager-runtime", "skywalker", "winston", "zlib"], factory); else { var a = typeof exports === 'object' ? factory(require("babel-runtime/core-js/json/stringify"), require("babel-runtime/core-js/object/assign"), require("babel-runtime/core-js/object/keys"), require("babel-runtime/core-js/promise"), require("babel-runtime/core-js/weak-map"), require("babel-runtime/helpers/asyncToGenerator"), require("babel-runtime/helpers/defineProperty"), require("babel-runtime/helpers/extends"), require("babel-runtime/helpers/slicedToArray"), require("babel-runtime/helpers/toConsumableArray"), require("babel-runtime/helpers/typeof"), require("babel-runtime/regenerator"), require("child-process-promise"), require("child_process"), require("detect-port"), require("find-up"), require("fs"), require("fs-extra-promise"), require("http"), require("https"), require("lodash"), require("micromatch"), require("mime"), require("minimist"), require("opn"), require("os"), require("path"), require("path-to-regexp"), require("semver"), (function webpackLoadOptionalExternalModule() { try { return require("skypager-features-file-manager"); } catch(e) {} }()), require("skypager-helpers-client"), require("skypager-helpers-command"), require("skypager-helpers-page"), require("skypager-helpers-project-type"), require("skypager-helpers-repl"), require("skypager-helpers-server"), require("skypager-runtime"), require("skywalker"), require("winston"), require("zlib")) : factory(root["babel-runtime/core-js/json/stringify"], root["babel-runtime/core-js/object/assign"], root["babel-runtime/core-js/object/keys"], root["babel-runtime/core-js/promise"], root["babel-runtime/core-js/weak-map"], root["babel-runtime/helpers/asyncToGenerator"], root["babel-runtime/helpers/defineProperty"], root["babel-runtime/helpers/extends"], root["babel-runtime/helpers/slicedToArray"], root["babel-runtime/helpers/toConsumableArray"], root["babel-runtime/helpers/typeof"], root["babel-runtime/regenerator"], root["child-process-promise"], root["child_process"], root["detect-port"], root["find-up"], root["fs"], root["fs-extra-promise"], root["http"], root["https"], root["lodash"], root["micromatch"], root["mime"], root["minimist"], root["opn"], root["os"], root["path"], root["path-to-regexp"], root["semver"], root["skypager-features-file-manager"], root["skypager-helpers-client"], root["skypager-helpers-command"], root["skypager-helpers-page"], root["skypager-helpers-project-type"], root["skypager-helpers-repl"], root["skypager-helpers-server"], root["skypager-runtime"], root["skywalker"], root["winston"], root["zlib"]); for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; } })(this, function(__WEBPACK_EXTERNAL_MODULE_9__, __WEBPACK_EXTERNAL_MODULE_16__, __WEBPACK_EXTERNAL_MODULE_5__, __WEBPACK_EXTERNAL_MODULE_3__, __WEBPACK_EXTERNAL_MODULE_17__, __WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_18__, __WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_19__, __WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_20__, __WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_21__, __WEBPACK_EXTERNAL_MODULE_22__, __WEBPACK_EXTERNAL_MODULE_23__, __WEBPACK_EXTERNAL_MODULE_24__, __WEBPACK_EXTERNAL_MODULE_25__, __WEBPACK_EXTERNAL_MODULE_10__, __WEBPACK_EXTERNAL_MODULE_26__, __WEBPACK_EXTERNAL_MODULE_27__, __WEBPACK_EXTERNAL_MODULE_28__, __WEBPACK_EXTERNAL_MODULE_11__, __WEBPACK_EXTERNAL_MODULE_29__, __WEBPACK_EXTERNAL_MODULE_30__, __WEBPACK_EXTERNAL_MODULE_31__, __WEBPACK_EXTERNAL_MODULE_6__, __WEBPACK_EXTERNAL_MODULE_8__, __WEBPACK_EXTERNAL_MODULE_32__, __WEBPACK_EXTERNAL_MODULE_12__, __WEBPACK_EXTERNAL_MODULE_33__, __WEBPACK_EXTERNAL_MODULE_34__, __WEBPACK_EXTERNAL_MODULE_35__, __WEBPACK_EXTERNAL_MODULE_36__, __WEBPACK_EXTERNAL_MODULE_37__, __WEBPACK_EXTERNAL_MODULE_38__, __WEBPACK_EXTERNAL_MODULE_39__, __WEBPACK_EXTERNAL_MODULE_40__, __WEBPACK_EXTERNAL_MODULE_13__, __WEBPACK_EXTERNAL_MODULE_7__, __WEBPACK_EXTERNAL_MODULE_41__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // identity function for calling harmory imports with the correct context /******/ __webpack_require__.i = function(value) { return value; }; /******/ /******/ // define getter function for harmory exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = "/"; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 42); /******/ }) /************************************************************************/ /******/ ({ /***/ "./src/runtime/lodash-dependencies.js": /***/ function(module, exports, __webpack_require__) { "use strict"; "use strict"; module.exports = typeof lodash !== "undefined" ? lodash : __webpack_require__(28); /***/ }, /***/ "./src/runtime/utils/path-matcher.js": /***/ function(module, exports, __webpack_require__) { "use strict"; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pathMatcher = undefined; var _arguments = arguments; var _lodashDependencies = __webpack_require__("./src/runtime/lodash-dependencies.js"); var pathMatcher = exports.pathMatcher = function pathMatcher(rule, subject) { if ((0, _lodashDependencies.isUndefined)(rule) || (0, _lodashDependencies.isUndefined)(subject)) { throw new Error("Expects a rule to test and a subject to test against"); } if ((0, _lodashDependencies.isString)(rule) && !(0, _lodashDependencies.isString)(subject)) { rule = _arguments[1]; subject = _arguments[0]; } if ((0, _lodashDependencies.isRegExp)(rule)) { return rule.test(subject); } else if ((0, _lodashDependencies.isFunction)(rule)) { return !!rule(subject); } else if ((0, _lodashDependencies.isArray)(rule)) { return (0, _lodashDependencies.every)(rule, function (condition) { return pathMatcher(condition, subject); }); } else if ((0, _lodashDependencies.isString)(rule)) { return new RegExp(rule).test(subject); } else { throw new Error("Invalid include / exclude rule"); } }; exports.default = pathMatcher; /***/ }, /***/ "./src/runtimes/node/feature.js": /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.hostMethods = undefined; var _keys = __webpack_require__(5); var _keys2 = _interopRequireDefault(_keys); var _toConsumableArray2 = __webpack_require__(4); var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); exports.featureWasEnabled = featureWasEnabled; exports.enabledHook = enabledHook; exports.parseArgv = parseArgv; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var hostMethods = exports.hostMethods = ['parseArgv']; /** TODO Node runtime initialization is out of control at the moment. Every feature available is autoloaded no matter what command is being run. Move these to the command prepare step */ function featureWasEnabled() { try { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } enabledHook.call.apply(enabledHook, [this].concat(args)); } catch (error) { console.error('Error enabling node runtime'); console.error(error.message); console.log(error.stack); } } function enabledHook() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var runtime = this.runtime; var _runtime$lodash = runtime.lodash, get = _runtime$lodash.get, omit = _runtime$lodash.omit, defaultsDeep = _runtime$lodash.defaultsDeep; defaultsDeep(runtime.argv, runtime.parseArgv(runtime.argv)); if (runtime.argv.profile) { runtime.feature('profiler').enable(); } runtime.invoke('profiler.profileStart', 'nodeRuntimeEnabled'); runtime.invoke('profiler.profileStart', 'helperCommandEnabled'); runtime.use(__webpack_require__(35), 'INITIALIZING'); runtime.invoke('profiler.profileEnd', 'helperCommandEnabled'); // TODO can this safely be moved to src/features/node in the portfolio? // Reasoning is it is c runtime.features.add(__webpack_require__(14)); runtime.invoke('profiler.profileStart', 'osAdaptersEnabled'); runtime.feature('fs-adapter').enable(); runtime.lazy('proc', function () { var procFeature = runtime.feature('child-process-adapter'); procFeature.enable(); return procFeature; }); runtime.lazy('os', function () { var osFeature = runtime.feature('os-adapter'); osFeature.enable(); return osFeature; }); runtime.lazy('networking', function () { var netFeature = runtime.feature('networking'); netFeature.enable(); return netFeature; }); runtime.invoke('profiler.profileEnd', 'osAdaptersEnabled'); if (runtime.argv.logging || process.env.USE_SKYPAGER_LOGGING) { runtime.invoke('profiler.profileStart', 'loggerEnabled'); runtime.feature('logging').enable(); runtime.invoke('profiler.profileEnd', 'loggerEnabled'); } else { runtime.lazy('logger', function () { return console; }); } runtime.lazy('opener', function () { var opener = runtime.feature('opener'); opener.enable(); return opener; }); runtime.hide('_argv_paths', runtime.helperTags.map(function (tag) { return ['currentPackage', 'skypager'].concat((0, _toConsumableArray3.default)(tag.split('/'))); })); var packageConfig = runtime.get('currentPackage.skypager', {}); var env = runtime.env, target = runtime.target; var targetConfig = defaultsDeep({}, get(packageConfig, [env]), get(packageConfig, [target])); runtime.hide('projectConfig', defaultsDeep({}, targetConfig, omit(packageConfig, target, env))); defaultsDeep(runtime.argv, runtime.parseArgv(runtime.argv), runtime.projectConfig); runtime.lazy('homeFolder', function () { var homeDirectory = runtime.feature('home-directory'); homeDirectory.enable(); return runtime.homeFolder; }); runtime.lazy('skywalker', function () { var skywalker = runtime.feature('skywalker'); skywalker.enable(); return skywalker; }); runtime.invoke('profiler.profileStart', 'packageFinderEnabled'); runtime.feature('package-finder').enable(); runtime.invoke('profiler.profileEnd', 'packageFinderEnabled'); runtime.lazy('autoDiscovery', function () { var autoDiscovery = runtime.feature('auto-discovery'); autoDiscovery.enable(); return autoDiscovery; }); runtime.invoke('profiler.profileStart', 'findCurrentPackage'); runtime.packageFinder.findNearest().then(function (currentPackagePath) { runtime.state.set('currentPackagePath', currentPackagePath); runtime.invoke('profiler.profileEnd', 'findCurrentPackage'); }).catch(function (error) { runtime.state.set('packageFinderError', error); // swallow the erro }); runtime.feature('git').enable(); // This seems to be an ok way of lazy loading a feature runtime.lazy('packageCache', function () { runtime.feature('package-cache').enable(); return runtime.packageCache; }); runtime.lazy('fileDownloader', function () { var downloader = runtime.feature('file-downloader'); downloader.enable(); return downloader; }); runtime.lazy('fileManager', function () { try { runtime.invoke('profiler.profileStart', 'fileManagerEnabled'); __webpack_require__(33).attach(runtime); runtime.invoke('profiler.profileEnd', 'fileManagerEnabled'); return runtime.feature('file-manager'); } catch (e) {} }); runtime.selectors.add(__webpack_require__(15)); runtime.feature('main-script').enable(); var attached = {}; runtime.hideGetter('attachedHelpers', function () { return attached; }); var lazyAttach = function lazyAttach(baseName, fn) { runtime.invoke('profiler.profileStart', 'lazyAttached_' + baseName); runtime.lazy(baseName, function () { if (attached[baseName]) { return runtime[baseName]; } fn(); runtime.invoke('profiler.profileEnd', 'lazyAttached_' + baseName); attached[baseName] = true; return runtime[baseName]; }); runtime.lazy(baseName + 's', function () { if (attached[baseName]) { return runtime[baseName + 's']; } fn(); attached[baseName] = true; return runtime[baseName + 's']; }); }; lazyAttach('client', function () { runtime.invoke('profiler.profileStart', 'clientHelperEnabled'); runtime.use(__webpack_require__(34), 'INITIALIZING'); runtime.invoke('profiler.profileEnd', 'clientHelperEnabled'); }); lazyAttach('repl', function () { runtime.invoke('profiler.profileStart', 'replHelperEnabled'); runtime.use(__webpack_require__(38), 'INITIALIZING'); runtime.invoke('profiler.profileEnd', 'replHelperEnabled'); }); lazyAttach('page', function () { runtime.invoke('profiler.profileStart', 'pageHelperEnabled'); runtime.use(__webpack_require__(36), 'INITIALIZING'); runtime.invoke('profiler.profileEnd', 'pageHelperEnabled'); }); lazyAttach('server', function () { runtime.invoke('profiler.profileStart', 'serverHelperEnabled'); runtime.use(__webpack_require__(39), 'INITIALIZING'); runtime.use('node/server-helper'); runtime.invoke('profiler.profileEnd', 'serverHelperEnabled'); }); lazyAttach('projectType', function () { runtime.use(__webpack_require__(37), 'INITIALIZING'); }); var requestedFeatures = runtime.chain.plant(runtime.lodash.castArray(runtime.argv.use)).intersection(runtime.features.available).without((0, _keys2.default)(runtime.enabledFeatures)).value(); if (requestedFeatures.length) { runtime.debug('Enabling features requested via command line', { requestedFeatures: requestedFeatures }); requestedFeatures.forEach(function (featureId) { var result = runtime.lodash.attempt(function () { return runtime.feature(featureId).enable(runtime.argv); }); if (runtime.lodash.isError(result)) { runtime.error('Error while enabling requested feature', { featureId: featureId, message: result.message }); } }); } if (!runtime.state.get('mainScriptRan')) { runtime.invoke('profiler.profileStart', 'mainScriptRunner'); runtime.mainScript.runMainScript().then(function () { runtime.setState({ mainScriptRan: true }); runtime.invoke('profiler.profileEnd', 'mainScriptRunner'); }).catch(function (err) { runtime.error('Error running mainScript', { error: err.message }); runtime.setState({ mainScriptError: err }); runtime.invoke('profiler.profileEnd', 'mainScriptRunner'); if (runtime.argv.safeMode) { console.error('Error while running skypager main script. ' + err.message); process.exit(1); } }); } if (runtime.argv.profile) { runtime.profiler.profileEnd('nodeRuntimeEnabled'); } runtime.setState({ nodeFeatureEnabled: true }); runtime.emit('nodeFeatureEnabled'); } function parseArgv() { var base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var _stringUtils = this.stringUtils, snakeCase = _stringUtils.snakeCase, camelCase = _stringUtils.camelCase; var _lodash = this.lodash, defaultsDeep = _lodash.defaultsDeep, omitBy = _lodash.omitBy, mapKeys = _lodash.mapKeys; var procArgs = __webpack_require__(30)(process.argv.slice(2)); return omitBy(defaultsDeep({}, base, procArgs, { _: [] }, mapKeys(procArgs, function (v, k) { return camelCase(snakeCase(k)); })), function (v, k) { return !k || k.length === 0 || k.match(/^\w+\-\w+/); }); } /***/ }, /***/ "./src/runtimes/node/features/auto-discovery.js": /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.discoverRuntimes = exports.discoverApps = exports.discoverFeatures = exports.discoverHelpers = exports.discoverProjectTypes = exports.discoverDocumentTypes = exports.registerProjectTypes = exports.registerDocumentTypes = exports.discover = exports.featureMethods = exports.shortcut = undefined; var _slicedToArray2 = __webpack_require__(19); var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); var _regenerator = __webpack_require__(1); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = __webpack_require__(0); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _keys = __webpack_require__(5); var _keys2 = _interopRequireDefault(_keys); var discover = exports.discover = function () { var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return this.discoverApps(); case 2: _context.next = 4; return this.discoverDocumentTypes(); case 4: _context.next = 6; return this.discoverFeatures(); case 6: _context.next = 8; return this.discoverHelpers(); case 8: _context.next = 10; return this.discoverProjectTypes(); case 10: _context.next = 12; return this.discoverRuntimes(); case 12: return _context.abrupt('return', this); case 13: case 'end': return _context.stop(); } } }, _callee, this); })); return function discover() { return _ref.apply(this, arguments); }; }(); var registerDocumentTypes = exports.registerDocumentTypes = function () { var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var runtime, documentTypes; return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: runtime = this.runtime, documentTypes = this.documentTypes; if (runtime.documentTypes) { _context2.next = 3; break; } throw new Error('The document types helper has not been loaded on this runtime'); case 3: documentTypes.entries().forEach(function (_ref3) { var _ref4 = (0, _slicedToArray3.default)(_ref3, 2), id = _ref4[0], data = _ref4[1]; if (runtime.documentTypes.available.indexOf(id) === -1) { runtime.documentTypes.register(id, function () { return require(data.file.dirname); }); } }); return _context2.abrupt('return', this); case 5: case 'end': return _context2.stop(); } } }, _callee2, this); })); return function registerDocumentTypes() { return _ref2.apply(this, arguments); }; }(); var registerProjectTypes = exports.registerProjectTypes = function () { var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var runtime, projectTypes; return _regenerator2.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: runtime = this.runtime, projectTypes = this.projectTypes; if (runtime.projectTypes) { _context3.next = 3; break; } throw new Error('The project types helper has not been loaded on this runtime'); case 3: projectTypes.entries().forEach(function (_ref6) { var _ref7 = (0, _slicedToArray3.default)(_ref6, 2), id = _ref7[0], data = _ref7[1]; if (runtime.projectTypes.available.indexOf(id) === -1) { runtime.projectTypes.register(id, function () { return require(data.file.dirname); }); } }); return _context3.abrupt('return', this); case 5: case 'end': return _context3.stop(); } } }, _callee3, this); })); return function registerProjectTypes() { return _ref5.apply(this, arguments); }; }(); var discoverDocumentTypes = exports.discoverDocumentTypes = function () { var _ref8 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4() { var _this = this; var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var _options$prefix, prefix, documentTypes; return _regenerator2.default.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _options$prefix = options.prefix, prefix = _options$prefix === undefined ? 'skypager-document-types-' : _options$prefix; _context4.next = 3; return this.find(new RegExp(prefix), { parse: 'matches' }); case 3: documentTypes = _context4.sent; documentTypes.forEach(function (documentType) { var id = documentType.name.replace(prefix, ''); _this.documentTypes.set(id, documentType); }); return _context4.abrupt('return', this.documentTypes.toJSON()); case 6: case 'end': return _context4.stop(); } } }, _callee4, this); })); return function discoverDocumentTypes() { return _ref8.apply(this, arguments); }; }(); var discoverProjectTypes = exports.discoverProjectTypes = function () { var _ref9 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5() { var _this2 = this; var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var _options$prefix2, prefix, projectTypes; return _regenerator2.default.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _options$prefix2 = options.prefix, prefix = _options$prefix2 === undefined ? 'skypager-project-types-' : _options$prefix2; _context5.next = 3; return this.find(new RegExp(prefix), { parse: 'matches' }); case 3: projectTypes = _context5.sent; projectTypes.forEach(function (projectType) { var id = projectType.name.replace(prefix, ''); _this2.projectTypes.set(id, projectType); }); if (!(options.register !== false)) { _context5.next = 8; break; } _context5.next = 8; return this.registerProjectTypes(); case 8: return _context5.abrupt('return', this.projectTypes.toJSON()); case 9: case 'end': return _context5.stop(); } } }, _callee5, this); })); return function discoverProjectTypes() { return _ref9.apply(this, arguments); }; }(); var discoverHelpers = exports.discoverHelpers = function () { var _ref10 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee6() { var _this3 = this; var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var _options$prefix3, prefix, helpers; return _regenerator2.default.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: _options$prefix3 = options.prefix, prefix = _options$prefix3 === undefined ? 'skypager-helpers-' : _options$prefix3; _context6.next = 3; return this.find(new RegExp(prefix), { parse: 'matches' }); case 3: helpers = _context6.sent; helpers.forEach(function (helper) { var id = helper.name.replace(prefix, ''); _this3.helpers.set(id, helper); }); return _context6.abrupt('return', this.helpers.toJSON()); case 6: case 'end': return _context6.stop(); } } }, _callee6, this); })); return function discoverHelpers() { return _ref10.apply(this, arguments); }; }(); var discoverFeatures = exports.discoverFeatures = function () { var _ref11 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee7() { var _this4 = this; var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var _options$prefix4, prefix, features; return _regenerator2.default.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: _options$prefix4 = options.prefix, prefix = _options$prefix4 === undefined ? 'skypager-features-' : _options$prefix4; _context7.next = 3; return this.find(new RegExp(prefix), { parse: 'matches' }); case 3: features = _context7.sent; features.forEach(function (feature) { var id = feature.name.replace(prefix, ''); _this4.features.set(id, feature); }); return _context7.abrupt('return', this.features.toJSON()); case 6: case 'end': return _context7.stop(); } } }, _callee7, this); })); return function discoverFeatures() { return _ref11.apply(this, arguments); }; }(); var discoverApps = exports.discoverApps = function () { var _ref12 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee8() { var _this5 = this; var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var _options$prefix5, prefix, apps; return _regenerator2.default.wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: _options$prefix5 = options.prefix, prefix = _options$prefix5 === undefined ? 'skypager-apps-' : _options$prefix5; _context8.next = 3; return this.find(new RegExp(prefix), { parse: 'matches' }); case 3: apps = _context8.sent; apps.forEach(function (app) { var id = app.name.replace(prefix, ''); _this5.apps.set(id, app); }); return _context8.abrupt('return', this.apps.toJSON()); case 6: case 'end': return _context8.stop(); } } }, _callee8, this); })); return function discoverApps() { return _ref12.apply(this, arguments); }; }(); var discoverRuntimes = exports.discoverRuntimes = function () { var _ref13 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee9() { var _this6 = this; var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var _options$prefix6, prefix, runtimes; return _regenerator2.default.wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: _options$prefix6 = options.prefix, prefix = _options$prefix6 === undefined ? 'skypager-runtimes-' : _options$prefix6; _context9.next = 3; return this.find(new RegExp(prefix), { parse: 'matches' }); case 3: runtimes = _context9.sent; runtimes.forEach(function (runtime) { var id = runtime.name.replace(prefix, ''); _this6.runtimes.set(id, runtime); }); return _context9.abrupt('return', this.runtimes.toJSON()); case 6: case 'end': return _context9.stop(); } } }, _callee9, this); })); return function discoverRuntimes() { return _ref13.apply(this, arguments); }; }(); exports.observables = observables; exports.getPackageFinder = getPackageFinder; exports.find = find; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var shortcut = exports.shortcut = 'autoDiscovery'; var featureMethods = exports.featureMethods = ['discover', 'discoverFeatures', 'discoverProjectTypes', 'discoverHelpers', 'discoverDocumentTypes', 'discoverApps', 'discoverRuntimes', 'registerProjectTypes', 'registerDocumentTypes', 'getPackageFinder', 'find']; function observables() { return { apps: ['shallowMap', {}], documentTypes: ['shallowMap', {}], features: ['shallowMap', {}], helpers: ['shallowMap', {}], projectTypes: ['shallowMap', {}], runtimes: ['shallowMap', {}], discoveredApps: ['computed', function () { return (0, _keys2.default)(this.apps.toJSON()); }], discoveredHelpers: ['computed', function () { return (0, _keys2.default)(this.helpers.toJSON()); }], discoveredRuntimes: ['computed', function () { return (0, _keys2.default)(this.runtimes.toJSON()); }], discoveredProjectTypes: ['computed', function () { return (0, _keys2.default)(this.projectTypes.toJSON()); }], discoveredDocumentTypes: ['computed', function () { return (0, _keys2.default)(this.documentTypes.toJSON()); }], discoveredFeatures: ['computed', function () { return (0, _keys2.default)(this.features.toJSON()); }] }; } function getPackageFinder() { return this.runtime.packageFinder; } function find() { var _packageFinder; return (_packageFinder = this.packageFinder).find.apply(_packageFinder, arguments); } /***/ }, /***/ "./src/runtimes/node/features/child-process-adapter.js": /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.featureMethods = exports.createGetter = undefined; var _toConsumableArray2 = __webpack_require__(4); var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); var _extends2 = __webpack_require__(2); var _extends3 = _interopRequireDefault(_extends2); exports.exec = exec; exports.execFile = execFile; exports.spawn = spawn; exports.fork = fork; exports.execFileSync = execFileSync; exports.execSync = execSync; exports.spawnSync = spawnSync; exports.forkSync = forkSync; exports.lazyAsync = lazyAsync; exports.featureMixinOptions = featureMixinOptions; var _child_process = __webpack_require__(22); var cp = _interopRequireWildcard(_child_process); var _childProcessPromise = __webpack_require__(21); var cpAsync = _interopRequireWildcard(_childProcessPromise); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var createGetter = exports.createGetter = 'proc'; function exec(cmd, options) { for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { args[_key - 2] = arguments[_key]; } return cp.exec.apply(cp, [cmd, (0, _extends3.default)({ cwd: this.runtime.cwd }, options)].concat(args)); } function execFile(cmd, argv, options) { for (var _len2 = arguments.length, args = Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) { args[_key2 - 3] = arguments[_key2]; } return cp.execFile.apply(cp, [cmd, argv, (0, _extends3.default)({ cwd: this.runtime.cwd }, options)].concat(args)); } function spawn(cmd, argv, options) { for (var _len3 = arguments.length, args = Array(_len3 > 3 ? _len3 - 3 : 0), _key3 = 3; _key3 < _len3; _key3++) { args[_key3 - 3] = arguments[_key3]; } return cp.spawn.apply(cp, [cmd, argv, (0, _extends3.default)({ cwd: this.runtime.cwd }, options)].concat(args)); } function fork(cmd, argv, options) { for (var _len4 = arguments.length, args = Array(_len4 > 3 ? _len4 - 3 : 0), _key4 = 3; _key4 < _len4; _key4++) { args[_key4 - 3] = arguments[_key4]; } return cp.fork.apply(cp, [cmd, argv, (0, _extends3.default)({ cwd: this.runtime.cwd }, options)].concat(args)); } function execFileSync(cmd, argv, options) { for (var _len5 = arguments.length, args = Array(_len5 > 3 ? _len5 - 3 : 0), _key5 = 3; _key5 < _len5; _key5++) { args[_key5 - 3] = arguments[_key5]; } return cp.execFileSync.apply(cp, [cmd, argv, (0, _extends3.default)({ cwd: this.runtime.cwd }, options)].concat(args)); } function execSync(cmd, options) { for (var _len6 = arguments.length, args = Array(_len6 > 2 ? _len6 - 2 : 0), _key6 = 2; _key6 < _len6; _key6++) { args[_key6 - 2] = arguments[_key6]; } return cp.execSync.apply(cp, [cmd, (0, _extends3.default)({ cwd: this.runtime.cwd }, options)].concat(args)); } function spawnSync(cmd, argv, options) { for (var _len7 = arguments.length, args = Array(_len7 > 3 ? _len7 - 3 : 0), _key7 = 3; _key7 < _len7; _key7++) { args[_key7 - 3] = arguments[_key7]; } return cp.spawnSync.apply(cp, [cmd, argv, (0, _extends3.default)({ cwd: this.runtime.cwd }, options)].concat(args)); } function forkSync(cmd, argv, options) { for (var _len8 = arguments.length, args = Array(_len8 > 3 ? _len8 - 3 : 0), _key8 = 3; _key8 < _len8; _key8++) { args[_key8 - 3] = arguments[_key8]; } return cp.forkSync.apply(cp, [cmd, argv, (0, _extends3.default)({ cwd: this.runtime.cwd }, options)].concat(args)); } function lazyAsync() { var runtime = this.runtime; var cwd = runtime.cwd; return { exec: function exec(cmd) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; for (var _len9 = arguments.length, args = Array(_len9 > 2 ? _len9 - 2 : 0), _key9 = 2; _key9 < _len9; _key9++) { args[_key9 - 2] = arguments[_key9]; } return cpAsync.exec.apply(cpAsync, [cmd, (0, _extends3.default)({ cwd: cwd }, options)].concat((0, _toConsumableArray3.default)(args))); }, execFile: function execFile(cmd) { var a = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; for (var _len10 = arguments.length, args = Array(_len10 > 3 ? _len10 - 3 : 0), _key10 = 3; _key10 < _len10; _key10++) { args[_key10 - 3] = arguments[_key10]; } return cpAsync.execFile.apply(cpAsync, [cmd, a, (0, _extends3.default)({ cwd: cwd }, options)].concat((0, _toConsumableArray3.default)(args))); }, spawn: function spawn(cmd) { var a = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; for (var _len11 = arguments.length, args = Array(_len11 > 3 ? _len11 - 3 : 0), _key11 = 3; _key11 < _len11; _key11++) { args[_key11 - 3] = arguments[_key11]; } return cpAsync.spawn.apply(cpAsync, [cmd, a, (0, _extends3.default)({ cwd: cwd }, options)].concat((0, _toConsumableArray3.default)(args))); }, fork: function fork(cmd) { var a = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; for (var _len12 = arguments.length, args = Array(_len12 > 3 ? _len12 - 3 : 0), _key12 = 3; _key12 < _len12; _key12++) { args[_key12 - 3] = arguments[_key12]; } return cpAsync.fork.apply(cpAsync, [cmd, a, (0, _extends3.default)({ cwd: cwd }, options)].concat((0, _toConsumableArray3.default)(args))); } }; } var featureMethods = exports.featureMethods = ['lazyAsync', 'spawn', 'spawnSync', 'exec', 'execSync', 'fork', 'forkSync', 'execFile', 'execFileSync']; function featureMixinOptions() { return { transformKeys: true, scope: this, partial: [], insertOptions: false, right: true, hidden: false }; } /***/ }, /***/ "./src/runtimes/node/features/feature-finder.js": /***/ function(module, exports, __webpack_require__) { "use strict"; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.findFeatureFolders = exports.findFeatureFiles = exports.featureMethods = exports.hostMethods = undefined; var _regenerator = __webpack_require__(1); var _regenerator2 = _interopRequireDefault(_regenerator); var _toConsumableArray2 = __webpack_require__(4); var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); var _asyncToGenerator2 = __webpack_require__(0); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var findFeatureFiles = exports.findFeatureFiles = function () { var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() { var _this2 = this; var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var _options$base, base, srcPath, flatten, helperTags, fileTags, _runtime$currentState, featureFolders, _runtime$fsx, checkLocations, results; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _options$base = options.base, base = _options$base === undefined ? "src" : _options$base; srcPath = function srcPath() { var _runtime$pathUtils; for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return (_runtime$pathUtils = _this2.runtime.pathUtils).resolve.apply(_runtime$pathUtils, [base].concat(args)); }; flatten = this.runtime.lodash.flatten; helperTags = this.runtime.helperTags; fileTags = flatten([helperTags.map(function (t) { return t + ".js"; }), helperTags.map(function (t) { return t + "." + _this2.runtime.target + ".js"; }), helperTags.map(function (t) { return t + "/index.js"; }), helperTags.map(function (t) { return t + "/index." + _this2.runtime.target + ".js"; })]); _runtime$currentState = this.runtime.currentState.featureFolders, featureFolders = _runtime$currentState === undefined ? [] : _runtime$currentState; _context.prev = 6; if (!(!featureFolders || !featureFolders.length)) { _context.next = 10; break; } _context.next = 10; return this.findFeatureFolders(options).then(function (results) { return featureFolders.push.apply(featureFolders, (0, _toConsumableArray3.default)(results)); }); case 10: checkLocations = flatten(featureFolders.map(function (b) { return fileTags.map(function (t) { return srcPath(b, t); }); })); results = (_runtime$fsx = this.runtime.fsx).existingAsync.apply(_runtime$fsx, (0, _toConsumableArray3.default)(checkLocations)); return _context.abrupt("return", results); case 15: _context.prev = 15; _context.t0 = _context["catch"](6); console.log("error", _context.t0); return _context.abrupt("return", []); case 19: case "end": return _context.stop(); } } }, _callee, this, [[6, 15]]); })); return function findFeatureFiles() { return _ref.apply(this, arguments); }; }(); var findFeatureFolders = exports.findFeatureFolders = function () { var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2() { var _this3 = this, _runtime$fsx2; var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var _options$base2, base, srcPath, flatten, helperTags, checkLocations, results; return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _options$base2 = options.base, base = _options$base2 === undefined ? "src" : _options$base2; srcPath = function srcPath() { var _runtime; for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } return (_runtime = _this3.runtime).join.apply(_runtime, [base].concat(args)); }; flatten = this.runtime.lodash.flatten; helperTags = this.runtime.helperTags; checkLocations = flatten([srcPath("features"), srcPath("helpers/features"), srcPath("features/helpers"), helperTags.map(function (t) { return srcPath("features", t); }), helperTags.map(function (t) { return srcPath("helpers/features", t); }), helperTags.map(function (t) { return srcPath("features/helpers", t); })]); _context2.next = 7; return (_runtime$fsx2 = this.runtime.fsx).existingAsync.apply(_runtime$fsx2, (0, _toConsumableArray3.default)(checkLocations)); case 7: results = _context2.sent; return _context2.abrupt("return", results); case 9: case "end": return _context2.stop(); } } }, _callee2, this); })); return function findFeatureFolders() { return _ref2.apply(this, arguments); }; }(); exports.featureWasEnabled = featureWasEnabled; exports.getFeatureFinder = getFeatureFinder; exports.getFeatureFolders = getFeatureFolders; exports.getFeatureFiles = getFeatureFiles; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var hostMethods = exports.hostMethods = ["getFeatureFinder", "getFeatureFiles", "getFeatureFolders"]; var featureMethods = exports.featureMethods = ["findFeatureFolders", "findFeatureFiles"]; function featureWasEnabled() { var _this = this; this.findFeatureFolders().then(function () { var featureFolders = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; return _this.runtime.setState({ featureFolders: featureFolders }); }).then(function () { return _this.findFeatureFiles(); }).then(function () { var featureFiles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; return _this.runtime.setState({ featureFiles: featureFiles }); }).catch(function (error) { console.log("error", error.message); }); } function getFeatureFinder() { return this.feature("feature-finder"); } function getFeatureFolders() { return this.get("currentState.featureFolders", []); } function getFeatureFiles() { return this.get("currentState.featureFiles", []); } /***/ }, /***/ "./src/runtimes/node/features/file-downloader.js": /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.downloadAsync = exports.featureMixinOptions = exports.featureMethods = exports.createGetter = undefined; var _regenerator = __webpack_require__(1); var _regenerator2 = _interopRequireDefault(_regenerator); var _promise = __webpack_require__(3); var _promise2 = _interopRequireDefault(_promise); var _asyncToGenerator2 = __webpack_require__(0); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var downloadAsync = exports.downloadAsync = function () { var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(sourceUrl, destinationPath) { var _this = this; var skypager, dest, req; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: skypager = this.runtime; dest = skypager.resolve(destinationPath); _context.next = 4; return skypager.fsx.ensureDirAsync(skypager.pathUtils.dirname(dest)); case 4: req = new _promise2.default(function (resolve, reject) { _this.download(sourceUrl, dest, function (err, loc) { err ? reject(err) : resolve(loc || dest); }); }); _context.next = 7; return req.catch(function (e) { return false; }).then(function (l) { return l || dest; }); case 7: return _context.abrupt('return', _context.sent); case 8: case 'end': return _context.stop(); } } }, _callee, this); })); return function downloadAsync(_x, _x2) {