UNPKG

252 kBJavaScriptView Raw
1try { require("source-map-support").install(); } catch(error) { }
2module.exports =
3/******/ (function(modules) { // webpackBootstrap
4/******/ // The module cache
5/******/ var installedModules = {};
6/******/
7/******/ // The require function
8/******/ function __webpack_require__(moduleId) {
9/******/
10/******/ // Check if module is in cache
11/******/ if(installedModules[moduleId])
12/******/ return installedModules[moduleId].exports;
13/******/
14/******/ // Create a new module (and put it into the cache)
15/******/ var module = installedModules[moduleId] = {
16/******/ i: moduleId,
17/******/ l: false,
18/******/ exports: {}
19/******/ };
20/******/
21/******/ // Execute the module function
22/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
23/******/
24/******/ // Flag the module as loaded
25/******/ module.l = true;
26/******/
27/******/ // Return the exports of the module
28/******/ return module.exports;
29/******/ }
30/******/
31/******/
32/******/ // expose the modules object (__webpack_modules__)
33/******/ __webpack_require__.m = modules;
34/******/
35/******/ // expose the module cache
36/******/ __webpack_require__.c = installedModules;
37/******/
38/******/ // identity function for calling harmory imports with the correct context
39/******/ __webpack_require__.i = function(value) { return value; };
40/******/
41/******/ // define getter function for harmory exports
42/******/ __webpack_require__.d = function(exports, name, getter) {
43/******/ Object.defineProperty(exports, name, {
44/******/ configurable: false,
45/******/ enumerable: true,
46/******/ get: getter
47/******/ });
48/******/ };
49/******/
50/******/ // getDefaultExport function for compatibility with non-harmony modules
51/******/ __webpack_require__.n = function(module) {
52/******/ var getter = module && module.__esModule ?
53/******/ function getDefault() { return module['default']; } :
54/******/ function getModuleExports() { return module; };
55/******/ __webpack_require__.d(getter, 'a', getter);
56/******/ return getter;
57/******/ };
58/******/
59/******/ // Object.prototype.hasOwnProperty.call
60/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
61/******/
62/******/ // __webpack_public_path__
63/******/ __webpack_require__.p = "/";
64/******/
65/******/ // Load entry module and return exports
66/******/ return __webpack_require__(__webpack_require__.s = 118);
67/******/ })
68/************************************************************************/
69/******/ ({
70
71/***/ "../skypager/node_modules/webpack/buildin/module.js":
72/***/ function(module, exports) {
73
74module.exports = function(module) {
75 if(!module.webpackPolyfill) {
76 module.deprecate = function() {};
77 module.paths = [];
78 // module.parent = undefined by default
79 if(!module.children) module.children = [];
80 Object.defineProperty(module, "loaded", {
81 enumerable: true,
82 configurable: false,
83 get: function() { return module.l; }
84 });
85 Object.defineProperty(module, "id", {
86 enumerable: true,
87 configurable: false,
88 get: function() { return module.i; }
89 });
90 module.webpackPolyfill = 1;
91 }
92 return module;
93}
94
95
96/***/ },
97
98/***/ "./src/cache.js":
99/***/ function(module, exports, __webpack_require__) {
100
101"use strict";
102'use strict';
103
104Object.defineProperty(exports, "__esModule", {
105 value: true
106});
107exports.Cache = undefined;
108
109var _map = __webpack_require__(67);
110
111var _map2 = _interopRequireDefault(_map);
112
113var _classCallCheck2 = __webpack_require__(1);
114
115var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
116
117var _createClass2 = __webpack_require__(2);
118
119var _createClass3 = _interopRequireDefault(_createClass2);
120
121var _skypagerUtil = __webpack_require__(3);
122
123function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
124
125var Cache = exports.Cache = function () {
126 function Cache(init) {
127 var _this = this;
128
129 (0, _classCallCheck3.default)(this, Cache);
130
131 (0, _skypagerUtil.hideProperty)(this, 'hide', function () {
132 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
133 args[_key] = arguments[_key];
134 }
135
136 return _skypagerUtil.hideProperty.apply(undefined, [_this].concat(args));
137 });
138
139 this.clear(init);
140 this.write = function (k, v) {
141 return _this.set(k, v).get(k);
142 };
143 }
144
145 (0, _createClass3.default)(Cache, [{
146 key: 'fetch',
147 value: function fetch(k, defaultValue) {
148 if (this.has(k)) {
149 return this.get(k);
150 } else {
151 this.set(k, typeof defaultValue === 'function' ? defaultValue(k) : defaultValue);
152 return this.get(k);
153 }
154 }
155 }, {
156 key: 'clear',
157 value: function clear(init) {
158 delete this._wm;
159 this._wm = new _map2.default(init);
160 }
161 }, {
162 key: 'delete',
163 value: function _delete(k) {
164 return this._wm.delete(k);
165 }
166 }, {
167 key: 'get',
168 value: function get(k) {
169 return this._wm.get(k);
170 }
171 }, {
172 key: 'has',
173 value: function has(k) {
174 return this._wm.has(k);
175 }
176 }, {
177 key: 'set',
178 value: function set(k, v) {
179 this._wm.set(k, v);
180 return this;
181 }
182 }]);
183 return Cache;
184}();
185
186exports.default = Cache;
187
188/***/ },
189
190/***/ "./src/collection/index.js":
191/***/ function(module, exports, __webpack_require__) {
192
193"use strict";
194'use strict';
195
196Object.defineProperty(exports, "__esModule", {
197 value: true
198});
199exports.PatternMapping = exports.Collection = undefined;
200
201var _values = __webpack_require__(18);
202
203var _values2 = _interopRequireDefault(_values);
204
205var _promise = __webpack_require__(12);
206
207var _promise2 = _interopRequireDefault(_promise);
208
209var _toConsumableArray2 = __webpack_require__(4);
210
211var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
212
213var _defineProperty2 = __webpack_require__(10);
214
215var _defineProperty3 = _interopRequireDefault(_defineProperty2);
216
217var _extends2 = __webpack_require__(0);
218
219var _extends3 = _interopRequireDefault(_extends2);
220
221var _classCallCheck2 = __webpack_require__(1);
222
223var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
224
225var _createClass2 = __webpack_require__(2);
226
227var _createClass3 = _interopRequireDefault(_createClass2);
228
229exports.create = create;
230
231var _lodash = __webpack_require__(11);
232
233var _lodash2 = _interopRequireDefault(_lodash);
234
235var _path = __webpack_require__(8);
236
237var _pathIsAbsolute = __webpack_require__(42);
238
239var _pathIsAbsolute2 = _interopRequireDefault(_pathIsAbsolute);
240
241var _skypagerUtil = __webpack_require__(3);
242
243var _document = __webpack_require__("./src/document/index.js");
244
245var _document2 = _interopRequireDefault(_document);
246
247function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
248
249var compact = _lodash2.default.compact;
250var set = _lodash2.default.set;
251var groupBy = _lodash2.default.groupBy;
252var snakeCase = _lodash2.default.snakeCase;
253var uniq = _lodash2.default.uniq;
254var chain = _lodash2.default.chain;
255var mapValues = _lodash2.default.mapValues;
256var values = _values2.default;
257
258var Collection = exports.Collection = function () {
259 (0, _createClass3.default)(Collection, null, [{
260 key: 'mount',
261 value: function mount(cwd) {
262 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
263
264 return create((0, _extends3.default)({
265 cwd: cwd }, options)).imported.withDocuments;
266 }
267
268 /**
269 * Create a collection which wraps a directory and creates a queryable index
270 * of all of the files inside of it. Files exist as VFile (@see https://github.com/wooorm/vfile) and are
271 * wrapped by Document classes which provide the interface for metadata, transformations, and things of that nature.
272 * A collection also provides a lodash wrapper interface for building extraction functions from the collections
273 * files and data.
274 *
275 * @param {Object} options - the options hash
276 * @param {String} options.type - the type of document - will determine which document model wrapper is used
277 * @param {String} options.cwd - the root of the collection, defaults to process.cwd()
278 * @param {String} options.cwd - the cwd, if different from the base
279 * @param {Array} options.include - an array of glob patterns to include
280 * @param {Array} options.exclude - an array of glob patterns to exclude
281 * @param {Object} options.documentOptions - an object that will be passed to the document wrapper when created
282 * @param {Object} options.importerOptions - an object that will be passed to the document importer when created
283 */
284
285 }]);
286
287 function Collection() {
288 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
289 (0, _classCallCheck3.default)(this, Collection);
290
291 (0, _skypagerUtil.mixinPropertyUtils)(this);
292
293 this.hide('cwd', options.cwd || options.root || options.base || options.basePath);
294 this.hide('options', normalize(options));
295
296 this.pathId = this.cwd.split('/').reverse().slice(0, 2).join('-');
297 this.instanceId = this.pathId + '-' + Math.floor(Date.now() / 1000);
298
299 this.hideGetter('collection', options.collection);
300 this.hide('filesIndex', {});
301 this.hide('documentsIndex', {});
302 this.hide('project', options.project);
303 }
304
305 (0, _createClass3.default)(Collection, [{
306 key: 'shouldRejectFile',
307 value: function shouldRejectFile(file) {
308 if (typeof this.options.rejectFile === 'function') {
309 return this.options.rejectFile.call(this, file);
310 }
311
312 if (file.path.indexOf('/ios/') >= 0) {
313 return true;
314 }
315
316 if (file.path.indexOf('/android/') >= 0) {
317 return true;
318 }
319
320 return !file.path.startsWith(this.cwd);
321 }
322 }, {
323 key: 'createDocuments',
324 value: function createDocuments() {
325 var _this = this;
326
327 var documentOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
328
329 var Document = this.Document;
330
331 _lodash2.default.mapValues(this.filesIndex, function (file, path) {
332 path = (0, _path.relative)(_this.cwd, path);
333
334 _this.documentsIndex[path] = _this.documentsIndex[path] || new Document(file, (0, _extends3.default)({}, _this.documentOptions, documentOptions, {
335 project: _this.project,
336 collection: _this
337 }));
338 });
339
340 return this;
341 }
342 }, {
343 key: 'isDirectory',
344 value: function isDirectory(file) {
345 var path = file.path ? file.path : file;
346
347 return typeof file.isDirectory === 'function' ? file.isDirectory() : !path.match(/\.\w+$/);
348 }
349 }, {
350 key: 'add',
351 value: function add(file) {
352 if (file.path && !this.isDirectory(file)) {
353 _lodash2.default.assign(this.filesIndex, (0, _defineProperty3.default)({}, (0, _path.relative)(this.cwd, file.path), file));
354 }
355 }
356 }, {
357 key: 'indexFiles',
358 value: function indexFiles() {
359 var _this2 = this;
360
361 var files = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
362
363 var cwd = this.cwd;
364
365 files = _lodash2.default.chain(files).reject(function (f) {
366 return _this2.isDirectory(f);
367 }).reject(function (f) {
368 return _this2.shouldRejectFile(f);
369 }).compact().sortBy(function (f) {
370 return f.path.length;
371 }).keyBy(function (f) {
372 return (0, _path.relative)(cwd, f.path);
373 }).value();
374
375 _lodash2.default.assign(this.filesIndex, (0, _extends3.default)({}, this.filesIndex, files));
376
377 return this;
378 }
379 }, {
380 key: 'loadFiles',
381 value: function loadFiles() {
382 var _this3 = this;
383
384 return this.importer.fileWrappers.then(function (files) {
385 return _this3.indexFiles(files.map(function (file) {
386 return file.toVFile ? file.toVFile() : file;
387 }));
388 }).then(function (collection) {
389 return collection.withDocuments;
390 }).catch(function (error) {
391 return error;
392 });
393 }
394 }, {
395 key: 'createRouter',
396 value: function createRouter(name) {
397 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
398
399 if (options.getter) {
400 options.pathsGetter = options.getter;
401 }
402 if (options.property) {
403 options.pathProperty = options.property;
404 }
405
406 (0, _skypagerUtil.router)(this._routers, (0, _extends3.default)({
407 routerProperty: name,
408 pathsGetter: name,
409 pathProperty: 'id'
410 }, options, {
411 host: this,
412 matchesOnly: true
413 }));
414 }
415 }, {
416 key: 'createDelegators',
417 value: function createDelegators(receiver) {
418 var _this4 = this;
419
420 for (var _len = arguments.length, propNames = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
421 propNames[_key - 1] = arguments[_key];
422 }
423
424 propNames.forEach(function (propName) {
425 receiver.hideGetter(propName, function () {
426 return _this4[propName];
427 });
428 });
429 }
430 }, {
431 key: 'getFileByRelativePath',
432 value: function getFileByRelativePath(relativeFilePath) {
433 var index = this.filesIndex[relativeFilePath].index;
434
435 return this.files[index];
436 }
437 }, {
438 key: 'join',
439 value: function join() {
440 for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
441 args[_key2] = arguments[_key2];
442 }
443
444 return _path.join.apply(undefined, [this.cwd].concat(args));
445 }
446 }, {
447 key: 'relative',
448 value: function relative() {
449 for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
450 args[_key3] = arguments[_key3];
451 }
452
453 return _path.relative.apply(undefined, [this.cwd].concat(args));
454 }
455 }, {
456 key: 'resolve',
457 value: function resolve() {
458 for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
459 args[_key4] = arguments[_key4];
460 }
461
462 return _path.resolve.apply(undefined, [this.cwd].concat(args));
463 }
464 }, {
465 key: 'select',
466 value: function select() {
467 return this.selectChain.apply(this, arguments).value();
468 }
469 }, {
470 key: 'selectChain',
471 value: function selectChain() {
472 var _chain;
473
474 for (var _len5 = arguments.length, paths = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
475 paths[_key5] = arguments[_key5];
476 }
477
478 var set = function set(obj, path, val) {
479 _lodash2.default.set(obj, path, val);
480 return obj;
481 };
482
483 return (_chain = this.chain).at.apply(_chain, (0, _toConsumableArray3.default)(_lodash2.default.sortBy(paths, function (p) {
484 return p.length;
485 }))).map(function (value, index) {
486 return [paths[index], value];
487 }).reduce(function (memo, pair) {
488 return set.apply(undefined, [memo].concat((0, _toConsumableArray3.default)(pair)));
489 }, {});
490 }
491 }, {
492 key: 'selectByObject',
493 value: function selectByObject(pathObject) {
494 var _chain2;
495
496 var keys = keys(pathObject);
497 var paths = values(pathObject);
498
499 return (_chain2 = this.chain).at.apply(_chain2, (0, _toConsumableArray3.default)(paths)).reduce(function (memo, val, index) {
500 return set(memo, keys[index], val);
501 }, {}).value();
502 }
503 }, {
504 key: 'findDocumentById',
505 value: function findDocumentById(documentId) {
506 return this.documents.find(function (doc) {
507 return doc.id === documentId;
508 });
509 }
510 }, {
511 key: 'applyFilesRoute',
512 value: function applyFilesRoute(pattern) {
513 var path = route()(pattern);
514 var results = this.files.map(function (f) {
515 return { path: f.relative, pathData: path(f.relative) };
516 }).filter(function (f) {
517 return f.pathData;
518 });
519
520 return {
521 results: results,
522 pattern: pattern
523 };
524 }
525 }, {
526 key: 'gitInfo',
527 get: function get() {
528 try {
529 return __webpack_require__("./src/git/index.js")(this.cwd);
530 } catch (error) {
531 return {};
532 }
533 }
534 }, {
535 key: 'importer',
536 get: function get() {
537 return new this.Importer(this.cwd, (0, _extends3.default)({}, this.importerOptions, { patterns: this.patterns
538 }));
539 }
540 }, {
541 key: 'type',
542 get: function get() {
543 return snakeCase(this.options.type || 'Project').replace(/s$/i, '');
544 }
545 }, {
546 key: 'files',
547 get: function get() {
548 return _lodash2.default.chain(this.filesIndex).values().compact().sortBy(function (d) {
549 return d.path;
550 }).value();
551 }
552 }, {
553 key: 'documents',
554 get: function get() {
555 return _lodash2.default.chain(this.documentsIndex).values().compact().sortBy(function (d) {
556 return d.file.path;
557 }).value();
558 }
559 }, {
560 key: 'documentClass',
561 get: function get() {
562 return this.options.documentClass || _document2.default;
563 }
564 }, {
565 key: 'importerOptions',
566 get: function get() {
567 var c = this;
568
569 return (0, _extends3.default)({}, c.options.importerOptions, {
570 patterns: _lodash2.default.uniq([].concat((0, _toConsumableArray3.default)(c.patterns || []), (0, _toConsumableArray3.default)(c.options.importerOptions.patterns || [])))
571 });
572 }
573 }, {
574 key: 'documentOptions',
575 get: function get() {
576 var collection = this;
577
578 return (0, _extends3.default)({
579 cwd: collection.cwd,
580 collectionType: collection.type
581 }, collection.options.documentOptions || {});
582 }
583 }, {
584 key: 'Document',
585 get: function get() {
586 return this.documentClass;
587 }
588 }, {
589 key: 'withDocuments',
590 get: function get() {
591 this.createDocuments();
592 return this;
593 }
594 }, {
595 key: 'loaderPrefix',
596 get: function get() {
597 return this.get('options.loaderPrefix', '');
598 }
599 }, {
600 key: 'documentEntryPoints',
601 get: function get() {
602 var _this5 = this;
603
604 return this.chain.get('documents').keyBy('id').mapValues(function (doc) {
605 return ['' + _this5.loaderPrefix + doc.file.path];
606 }).mapValues(function (array) {
607 return compact(array);
608 }).value();
609 }
610 }, {
611 key: 'documentsMappedById',
612 get: function get() {
613 return this.chain.get('documents').keyBy('id').value();
614 }
615 }, {
616 key: 'documentsMap',
617 get: function get() {
618 return this.documentsIndex;
619 }
620 }, {
621 key: 'Importer',
622 get: function get() {
623 return this.options.importer ? __webpack_require__(60)("./" + this.options.importer + '.js') : __webpack_require__("./src/importers/node-vinyl.js").DocumentImporter;
624 }
625 }, {
626 key: 'patterns',
627 get: function get() {
628 return _lodash2.default.uniq(this.includePatterns.concat(this.excludePatterns));
629 }
630 }, {
631 key: 'includePatterns',
632 get: function get() {
633 return _lodash2.default.uniq(this.options.include.concat(this.typePatterns));
634 }
635 }, {
636 key: 'typePatterns',
637 get: function get() {
638 switch (this.type.toUpperCase()) {
639 case PACKAGE:
640 return PatternMapping.Package;
641 break;
642 case SCRIPT:
643 return PatternMapping.Script;
644 break;
645 case (SETTINGS_FILE, COPY_FILE):
646 return PatternMapping.SettingsFile;
647 break;
648 case DOCUMENT:
649 return PatternMapping.Document;
650 break;
651 case STYLESHEET:
652 return PatternMapping.Stylesheet;
653 break;
654 case VECTOR:
655 return PatternMapping.Vector;
656 break;
657 case PROJECT:
658 default:
659 return PatternMapping.Project;
660 }
661 }
662 }, {
663 key: 'router',
664 get: function get() {
665 return this.routers.documents;
666 }
667 }, {
668 key: 'routers',
669 get: function get() {
670 if (!this._routers) {
671 this.hide('_routers', {});
672
673 this.createRouter('files', {
674 pathProperty: 'relative'
675 });
676
677 this.createRouter('documents', {
678 pathProperty: 'baseRelativePath',
679 pathsGetter: 'documents'
680 });
681
682 this.createRouter('folders', {
683 pathProperty: 'toString',
684 pathsGetter: 'subFolderNames'
685 });
686 }
687
688 return mapValues(this._routers, function (router) {
689 return router.get.bind(router);
690 });
691 }
692 }, {
693 key: 'chain',
694 get: function get() {
695 return chain(this);
696 }
697 }, {
698 key: 'relativeObjectPaths',
699 get: function get() {
700 var _this6 = this;
701
702 return this.chain.get('files').sortBy(function (f) {
703 return f.dirname.length;
704 }).map(function (f) {
705 return [_this6.relative(f.dirname).replace(/\//g, '.'), f.basename, f.relative];
706 }).groupBy(function (i) {
707 return i.shift();
708 }).value();
709 }
710 }, {
711 key: 'subFolderObjectPaths',
712 get: function get() {
713 return this.chain.get('subFolderNames').sortBy(function (v) {
714 return v.length;
715 }).map(function (p) {
716 return p.replace(/\//g, '.');
717 }).value();
718 }
719 }, {
720 key: 'excludePatterns',
721 get: function get() {
722 if (this.options.includeAll || this.options.exclude === false) {
723 return [];
724 }
725
726 return this.options.exclude
727 // HACK tmp
728 .concat(this.project ? this.project.skypagerIgnoreContents || [] : []).map(function (p) {
729 return p.startsWith('!') ? p : '!' + p;
730 }).concat(['!**/node_modules/**', '*.xcodeproj', '!_*']);
731 }
732 }, {
733 key: 'imported',
734 get: function get() {
735 if (this.files.length === 0) {
736 this.indexFiles(this.importer.readFilesSync(false));
737 }
738
739 return this;
740 }
741 }, {
742 key: 'rootFiles',
743 get: function get() {
744 return this.chains.files.filter(function (f) {
745 return f.dirname === project.root;
746 }).value();
747 }
748 }, {
749 key: 'groupedByChildFolder',
750 get: function get() {
751 var _this7 = this;
752
753 return this.chains.files.groupBy(function (f) {
754 return _this7.relative(f.dirname).split('/').shift();
755 }).pickBy(function (v, k) {
756 return k.length > 0;
757 }).value();
758 }
759 }, {
760 key: 'groupedByChildFolderAndExtension',
761 get: function get() {
762 var _this8 = this;
763
764 return this.chains.files.groupBy(function (f) {
765 return _this8.relative(f.dirname).split('/').shift();
766 }).mapValues(function (v) {
767 return groupBy(v, function (v) {
768 return v.extname;
769 });
770 }).pickBy(function (v, k) {
771 return k.length > 0;
772 }).value();
773 }
774 }, {
775 key: 'chains',
776 get: function get() {
777 return {
778 documents: chain(this.documents),
779 files: chain(this.files)
780 };
781 }
782 }, {
783 key: 'query',
784 get: function get() {
785 var collection = this;
786
787 return {
788 get files() {
789 return _skypagerUtil.query.bind(_skypagerUtil.query, collection.files);
790 },
791 get documents() {
792 return _skypagerUtil.query.bind(_skypagerUtil.query, collection.documents);
793 }
794 };
795 }
796 }, {
797 key: 'depths',
798 get: function get() {
799 var _this9 = this;
800
801 return this.chains.files.map(function (f) {
802 return _this9.relative(f.dirname);
803 }).uniq().groupBy(function (f) {
804 return f.split(_path.sep).length - 1;
805 }).omit('').value();
806 }
807 }, {
808 key: 'relativeFilePaths',
809 get: function get() {
810 var _this10 = this;
811
812 return this.files.map(function (file) {
813 return (0, _path.relative)(_this10.cwd, file.path);
814 });
815 }
816 }, {
817 key: 'relativeSubFolderPaths',
818 get: function get() {
819 var _this11 = this;
820
821 return this.files.map(function (file) {
822 return (0, _path.relative)(_this11.cwd, file.dirname);
823 });
824 }
825 }, {
826 key: 'subFolderPaths',
827 get: function get() {
828 return uniq(this.files.map(function (f) {
829 return f.dirname;
830 }));
831 }
832 }, {
833 key: 'subFolderNames',
834 get: function get() {
835 var _this12 = this;
836
837 return this.subFolderPaths.map(function (f) {
838 return (0, _path.relative)(_this12.cwd, f);
839 }).filter(function (f) {
840 return f.length > 0;
841 });
842 }
843 }, {
844 key: 'subFolderBasenames',
845 get: function get() {
846 var _this13 = this;
847
848 return this.subFolderPaths.map(function (f) {
849 return (0, _path.relative)(_this13.cwd, f);
850 }).map(function (f) {
851 return (0, _path.basename)(f);
852 });
853 }
854 }, {
855 key: 'childFolderNames',
856 get: function get() {
857 return uniq(this.subFolderNames.map(function (p) {
858 return p.split('/').shift();
859 }));
860 }
861 }, {
862 key: 'childFolderPaths',
863 get: function get() {
864 var _this14 = this;
865
866 return uniq(this.childFolderNames.map(function (p) {
867 return _this14.join(p);
868 }));
869 }
870 }, {
871 key: 'ready',
872 get: function get() {
873 var _this15 = this;
874
875 return this.importer.status === 'LOADED' ? _promise2.default.resolve(this) : this.loadFiles().then(function () {
876 return _this15;
877 });
878 }
879 }], [{
880 key: 'create',
881 value: function create() {
882 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
883 var ready = arguments[1];
884
885 var collection = new Collection(options);
886
887 return typeof ready === 'function' ? ready(collection, Collection) : collection;
888 }
889 }, {
890 key: 'Document',
891 get: function get() {
892 return _document2.default;
893 }
894 }]);
895 return Collection;
896}();
897
898exports.default = Collection;
899
900
901var PACKAGE = 'PACKAGE';
902var SCRIPT = 'SCRIPT';
903var DOCUMENT = 'DOCUMENT';
904var SETTINGS_FILE = 'SETTINGS_FILE';
905var COPY_FILE = 'COPY_FILE';
906var PROJECT = 'PROJECT';
907var VECTOR = 'VECTOR';
908var STYLESHEET = 'STYLESHEET';
909
910var PatternMapping = exports.PatternMapping = {
911 'Package': ['**/package.json'],
912 'Document': ['**/*.md'],
913 'Script': ['**/*.js', '**/*.jsx'],
914 'Stylesheet': ['**/*.{css,less,sass,scss,styl'],
915 'SettingsFile': ['**/*.yml'],
916 'CopyFile': ['**/*.yml'],
917 'Vector': ['**/*.svg'],
918 'DataSource': ['**/*.json', '**/*.yml', '**/*.data.js'],
919 'Project': ['**/*']
920};
921
922function create() {
923 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
924
925 return Collection.create(options);
926}
927
928function normalize() {
929 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
930
931 return (0, _extends3.default)({}, options, {
932 importerOptions: options.importerOptions || {},
933 documentOptions: options.documentOptions || {},
934 include: [].concat((0, _toConsumableArray3.default)(options.include || []), (0, _toConsumableArray3.default)(options.patterns || [])),
935 exclude: [].concat((0, _toConsumableArray3.default)(options.exclude || []), (0, _toConsumableArray3.default)(options.ignore || []))
936 });
937}
938
939/***/ },
940
941/***/ "./src/config-builders/project.js":
942/***/ function(module, exports, __webpack_require__) {
943
944"use strict";
945'use strict';
946
947Object.defineProperty(exports, "__esModule", {
948 value: true
949});
950exports.initialState = exports.api = exports.features = exports.reducers = undefined;
951
952var _index = __webpack_require__("./src/config-builders/project/index.js");
953
954var builder = _interopRequireWildcard(_index);
955
956function _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; } }
957
958var reducers = exports.reducers = builder.defaultReducers;
959var features = exports.features = builder.defaultFeatures;
960var api = exports.api = builder.api;
961var initialState = exports.initialState = builder.defaultInitialState;
962
963exports.default = api;
964
965/***/ },
966
967/***/ "./src/config-builders/project/Expression.js":
968/***/ function(module, exports, __webpack_require__) {
969
970"use strict";
971"use strict";
972
973Object.defineProperty(exports, "__esModule", {
974 value: true
975});
976exports.default = undefined;
977
978var _classCallCheck2 = __webpack_require__(1);
979
980var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
981
982var _createClass2 = __webpack_require__(2);
983
984var _createClass3 = _interopRequireDefault(_createClass2);
985
986function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
987
988var Expression = function () {
989 function Expression(expression) {
990 (0, _classCallCheck3.default)(this, Expression);
991
992 this.expression = expression;
993 }
994
995 (0, _createClass3.default)(Expression, [{
996 key: "toString",
997 value: function toString() {
998 return this.expression.toString();
999 }
1000 }, {
1001 key: "value",
1002 value: function value() {
1003 return this.expression();
1004 }
1005 }]);
1006 return Expression;
1007}();
1008
1009exports.default = Expression;
1010
1011/***/ },
1012
1013/***/ "./src/config-builders/project/features/collection.js":
1014/***/ function(module, exports, __webpack_require__) {
1015
1016"use strict";
1017'use strict';
1018
1019Object.defineProperty(exports, "__esModule", {
1020 value: true
1021});
1022
1023var _toConsumableArray2 = __webpack_require__(4);
1024
1025var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
1026
1027exports.default = collection;
1028
1029var _isEmpty = __webpack_require__(34);
1030
1031var _isEmpty2 = _interopRequireDefault(_isEmpty);
1032
1033function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1034
1035function collection(existing) {
1036 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
1037 args[_key - 1] = arguments[_key];
1038 }
1039
1040 if (!(0, _isEmpty2.default)(args)) {
1041 return [].concat((0, _toConsumableArray3.default)(existing || []), [args]);
1042 } else {
1043 return existing;
1044 }
1045}
1046
1047/***/ },
1048
1049/***/ "./src/config-builders/project/features/feature.js":
1050/***/ function(module, exports, __webpack_require__) {
1051
1052"use strict";
1053'use strict';
1054
1055Object.defineProperty(exports, "__esModule", {
1056 value: true
1057});
1058
1059var _defineProperty2 = __webpack_require__(10);
1060
1061var _defineProperty3 = _interopRequireDefault(_defineProperty2);
1062
1063var _extends3 = __webpack_require__(0);
1064
1065var _extends4 = _interopRequireDefault(_extends3);
1066
1067exports.default = feature;
1068
1069function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1070
1071function feature(existing, id) {
1072 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1073
1074 if (!id) {
1075 return existing;
1076 }
1077
1078 if (typeof options === 'string') {
1079 options = { id: options };
1080 }
1081
1082 if (typeof options === 'function') {
1083 options = options.call(this, existing, id);
1084 }
1085
1086 return (0, _extends4.default)({}, existing || {}, (0, _defineProperty3.default)({}, id, options));
1087}
1088
1089/***/ },
1090
1091/***/ "./src/config-builders/project/features/scope.js":
1092/***/ function(module, exports, __webpack_require__) {
1093
1094"use strict";
1095"use strict";
1096
1097Object.defineProperty(exports, "__esModule", {
1098 value: true
1099});
1100
1101var _toConsumableArray2 = __webpack_require__(4);
1102
1103var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
1104
1105exports.default = scope;
1106
1107function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1108
1109function scope(existing) {
1110 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
1111 args[_key - 1] = arguments[_key];
1112 }
1113
1114 if (args.length > 0) {
1115 return [].concat((0, _toConsumableArray3.default)(existing), [args]);
1116 } else {
1117 return existing;
1118 }
1119}
1120
1121/***/ },
1122
1123/***/ "./src/config-builders/project/features/selector.js":
1124/***/ function(module, exports, __webpack_require__) {
1125
1126"use strict";
1127'use strict';
1128
1129Object.defineProperty(exports, "__esModule", {
1130 value: true
1131});
1132
1133var _defineProperty2 = __webpack_require__(10);
1134
1135var _defineProperty3 = _interopRequireDefault(_defineProperty2);
1136
1137var _extends3 = __webpack_require__(0);
1138
1139var _extends4 = _interopRequireDefault(_extends3);
1140
1141exports.default = selector;
1142
1143function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1144
1145function selector(existing, id, handler) {
1146 if (!id || typeof handler !== 'function') {
1147 return existing;
1148 }
1149
1150 return (0, _extends4.default)({}, existing || {}, (0, _defineProperty3.default)({}, id, handler.bind ? handler.bind(this) : handler));
1151}
1152
1153/***/ },
1154
1155/***/ "./src/config-builders/project/index.js":
1156/***/ function(module, exports, __webpack_require__) {
1157
1158"use strict";
1159"use strict";
1160
1161Object.defineProperty(exports, "__esModule", {
1162 value: true
1163});
1164exports.defaultInitialState = exports.defaultReducers = exports.defaultFeatures = undefined;
1165
1166var _toConsumableArray2 = __webpack_require__(4);
1167
1168var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
1169
1170var _defineProperty2 = __webpack_require__(10);
1171
1172var _defineProperty3 = _interopRequireDefault(_defineProperty2);
1173
1174var _extends8 = __webpack_require__(0);
1175
1176var _extends9 = _interopRequireDefault(_extends8);
1177
1178exports.api = api;
1179
1180var _lodash = __webpack_require__(11);
1181
1182var _stringify = __webpack_require__("./src/config-builders/project/stringify.js");
1183
1184var _stringify2 = _interopRequireDefault(_stringify);
1185
1186var _string = __webpack_require__(23);
1187
1188function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1189
1190var featuresReq = __webpack_require__(53);
1191var reducersReq = __webpack_require__(54);
1192var es6 = function es6(mod) {
1193 return mod.default ? mod.default : mod;
1194};
1195
1196var defaultFeatures = exports.defaultFeatures = featuresReq.keys().reduce(function (memo, key) {
1197 return (0, _extends9.default)({}, memo, (0, _defineProperty3.default)({}, key.replace(/\.\//, '').replace(/\.js$/, ''), es6(featuresReq(key))));
1198}, {});
1199
1200var defaultReducers = exports.defaultReducers = reducersReq.keys().reduce(function (memo, key) {
1201 return (0, _extends9.default)({}, memo, (0, _defineProperty3.default)({}, key.replace(/\.\//, '').replace(/\.js$/, ''), es6(reducersReq(key))));
1202}, {});
1203
1204var defaultInitialState = exports.defaultInitialState = function defaultInitialState() {
1205 return {};
1206};
1207
1208function api() {
1209 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1210 var _options$history = options.history;
1211 var history = _options$history === undefined ? [] : _options$history;
1212 var _options$scope = options.scope;
1213 var scope = _options$scope === undefined ? this : _options$scope;
1214 var _options$features = options.features;
1215 var features = _options$features === undefined ? {} : _options$features;
1216 var _options$reducers = options.reducers;
1217 var reducers = _options$reducers === undefined ? {} : _options$reducers;
1218 var _options$keyFn = options.keyFn;
1219 var keyFn = _options$keyFn === undefined ? _string.pluralize : _options$keyFn;
1220
1221
1222 features = (0, _lodash.mapValues)((0, _extends9.default)({}, defaultFeatures, features), function (fn) {
1223 return fn.bind ? fn.bind(scope) : fn;
1224 });
1225 reducers = (0, _lodash.mapValues)((0, _extends9.default)({}, defaultReducers, reducers), function (fn) {
1226 return fn.bind ? fn.bind(scope) : fn;
1227 });
1228
1229 var getState = function getState() {
1230 var initialState = (0, _lodash.reduce)(features, function (acc, feature, name) {
1231 var defaultValue = feature();
1232
1233 if ((0, _lodash.isUndefined)(defaultValue)) {
1234 return acc;
1235 }
1236
1237 return (0, _extends9.default)({}, acc, (0, _defineProperty3.default)({}, name, defaultValue));
1238 }, defaultInitialState());
1239
1240 var state = history.reduce(function (acc, _ref) {
1241 var name = _ref.name;
1242 var args = _ref.args;
1243
1244 var featureState = acc[name];
1245 var feature = features[name];
1246
1247 return (0, _extends9.default)({}, acc, (0, _defineProperty3.default)({}, name, feature.apply(undefined, [featureState].concat((0, _toConsumableArray3.default)(args)))));
1248 }, initialState);
1249
1250 Object.defineProperty(state, "toString", {
1251 value: function value() {
1252 return (0, _stringify2.default)(state);
1253 }
1254 });
1255
1256 return state;
1257 };
1258
1259 var _getConfig = function _getConfig() {
1260 var tap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : options.tap;
1261
1262 var state = getState();
1263 var config = (0, _lodash.reduce)(reducers, function (config, reducer, name) {
1264 var reduced = reducer(state);
1265
1266 if ((0, _lodash.isUndefined)(reduced)) {
1267 return config;
1268 }
1269
1270 return (0, _extends9.default)({}, config, (0, _defineProperty3.default)({}, name, reducer(state)));
1271 }, {});
1272
1273 if (typeof tap === 'function') {
1274 config = tap.call(scope, config, options);
1275 }
1276
1277 Object.defineProperty(config, "toString", {
1278 value: function value() {
1279 return (0, _stringify2.default)(config);
1280 }
1281 });
1282
1283 return config;
1284 };
1285
1286 var when = function when(env, configure) {
1287 var envs = Array.isArray(env) ? env : [env];
1288 var _process$env$NODE_ENV = process.env.NODE_ENV;
1289 var NODE_ENV = _process$env$NODE_ENV === undefined ? "development" : _process$env$NODE_ENV;
1290
1291
1292 if (env === true || envs.indexOf(NODE_ENV) !== -1) {
1293 return configure(api({ features: features, reducers: reducers, history: history }));
1294 } else if (typeof env === 'function' && env(getState(), _getConfig)) {
1295 return configure({ features: features, reducers: reducers, history: history });
1296 }
1297
1298 return api({ features: features, reducers: reducers, history: history });
1299 };
1300
1301 return (0, _lodash.reduce)(features, function (acc, feature, name) {
1302 return (0, _extends9.default)({}, acc, (0, _defineProperty3.default)({}, name, function () {
1303 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
1304 args[_key] = arguments[_key];
1305 }
1306
1307 return api({
1308 features: features,
1309 reducers: reducers,
1310 history: history.concat({ args: args, name: name })
1311 });
1312 }));
1313 }, {
1314 getConfig: function getConfig() {
1315 return (0, _lodash.mapKeys)(_getConfig.apply(undefined, arguments), function (v, k) {
1316 return keyFn(k);
1317 });
1318 },
1319 getState: getState,
1320 history: history,
1321 when: when
1322 });
1323}
1324
1325exports.default = api;
1326
1327/***/ },
1328
1329/***/ "./src/config-builders/project/reducers/collection.js":
1330/***/ function(module, exports, __webpack_require__) {
1331
1332"use strict";
1333'use strict';
1334
1335Object.defineProperty(exports, "__esModule", {
1336 value: true
1337});
1338
1339var _extends2 = __webpack_require__(0);
1340
1341var _extends3 = _interopRequireDefault(_extends2);
1342
1343exports.default = collection;
1344
1345var _path = __webpack_require__(8);
1346
1347var _lang = __webpack_require__(36);
1348
1349function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1350
1351function collection(state) {
1352 var collection = state.collection;
1353
1354
1355 if (!collection) {
1356 return undefined;
1357 }
1358
1359 var args = collection.map(function (val) {
1360 if (val.length === 1 && (0, _lang.isString)(val[0])) {
1361 return {
1362 name: (0, _path.basename)(val[0]),
1363 cwd: val[0]
1364 };
1365 }
1366
1367 if (val.length === 1 && (0, _lang.isObject)(val[0])) {
1368 return val[0];
1369 }
1370
1371 if (val.length === 1 && (0, _lang.isString)(val[0]) && (0, _lang.isString)(val[1])) {
1372 return {
1373 name: val[0],
1374 cwd: (0, _path.resolve)(val[1], state.context || process.cwd())
1375 };
1376 }
1377
1378 if (val.length === 1 && (0, _lang.isString)(val[0]) && (0, _lang.isObject)(val[1])) {
1379 return (0, _extends3.default)({
1380 name: val[0]
1381 }, val[1]);
1382 }
1383
1384 return val;
1385 });
1386
1387 return args.filter(function (i) {
1388 return i.length > 0;
1389 });
1390}
1391
1392/***/ },
1393
1394/***/ "./src/config-builders/project/reducers/feature.js":
1395/***/ function(module, exports) {
1396
1397"use strict";
1398"use strict";
1399
1400Object.defineProperty(exports, "__esModule", {
1401 value: true
1402});
1403exports.default = feature;
1404function feature(state) {
1405 return state.feature;
1406}
1407
1408/***/ },
1409
1410/***/ "./src/config-builders/project/reducers/scope.js":
1411/***/ function(module, exports) {
1412
1413"use strict";
1414"use strict";
1415
1416Object.defineProperty(exports, "__esModule", {
1417 value: true
1418});
1419exports.default = scope;
1420function scope(state) {
1421 var scope = state.scope;
1422
1423
1424 return scope;
1425}
1426
1427/***/ },
1428
1429/***/ "./src/config-builders/project/reducers/selector.js":
1430/***/ function(module, exports) {
1431
1432"use strict";
1433"use strict";
1434
1435Object.defineProperty(exports, "__esModule", {
1436 value: true
1437});
1438exports.default = selector;
1439function selector(state) {
1440 return state.selector;
1441}
1442
1443/***/ },
1444
1445/***/ "./src/config-builders/project/stringify.js":
1446/***/ function(module, exports, __webpack_require__) {
1447
1448"use strict";
1449"use strict";
1450
1451Object.defineProperty(exports, "__esModule", {
1452 value: true
1453});
1454
1455var _stringify = __webpack_require__(30);
1456
1457var _stringify2 = _interopRequireDefault(_stringify);
1458
1459var _keys = __webpack_require__(14);
1460
1461var _keys2 = _interopRequireDefault(_keys);
1462
1463exports.default = stringify;
1464
1465var _lodash = __webpack_require__(11);
1466
1467var _Expression = __webpack_require__("./src/config-builders/project/Expression.js");
1468
1469var _Expression2 = _interopRequireDefault(_Expression);
1470
1471function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1472
1473function stringify(value) {
1474 var replacements = [];
1475
1476 var replace = function replace(replacement) {
1477 return "__REPLACEMENT_" + (replacements.push(replacement) - 1) + "__";
1478 };
1479
1480 var sort = function sort(object) {
1481 return (0, _keys2.default)(object).sort().reduce(function (sorted, key) {
1482 sorted[key] = object[key];
1483
1484 return sorted;
1485 }, {});
1486 };
1487
1488 var replacer = function replacer(key, value) {
1489 if (value instanceof _Expression2.default) {
1490 return replace(value.toString());
1491 }
1492
1493 if (value instanceof RegExp) {
1494 return replace(value.toString());
1495 }
1496
1497 return value;
1498 };
1499
1500 var string = (0, _stringify2.default)(_lodash.isPlainObject ? sort(value) : value, replacer, 2);
1501
1502 return string.replace(/(^[\s]+)?"__REPLACEMENT_([\d]+)__"/gm, function (match) {
1503 var indent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
1504 var index = arguments[2];
1505 return ("" + indent + replacements[index]).split("\n").join("\n" + indent);
1506 });
1507}
1508
1509/***/ },
1510
1511/***/ "./src/config/Expression.js":
1512/***/ function(module, exports, __webpack_require__) {
1513
1514"use strict";
1515"use strict";
1516
1517Object.defineProperty(exports, "__esModule", {
1518 value: true
1519});
1520exports.default = undefined;
1521
1522var _classCallCheck2 = __webpack_require__(1);
1523
1524var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
1525
1526var _createClass2 = __webpack_require__(2);
1527
1528var _createClass3 = _interopRequireDefault(_createClass2);
1529
1530function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1531
1532var Expression = function () {
1533 function Expression(expression) {
1534 (0, _classCallCheck3.default)(this, Expression);
1535
1536 this.expression = expression;
1537 }
1538
1539 (0, _createClass3.default)(Expression, [{
1540 key: "toString",
1541 value: function toString() {
1542 return this.expression.toString();
1543 }
1544 }, {
1545 key: "value",
1546 value: function value() {
1547 return this.expression();
1548 }
1549 }]);
1550 return Expression;
1551}();
1552
1553exports.default = Expression;
1554
1555/***/ },
1556
1557/***/ "./src/config/features/collection.js":
1558/***/ function(module, exports, __webpack_require__) {
1559
1560"use strict";
1561'use strict';
1562
1563Object.defineProperty(exports, "__esModule", {
1564 value: true
1565});
1566
1567var _toConsumableArray2 = __webpack_require__(4);
1568
1569var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
1570
1571exports.default = collection;
1572
1573var _isEmpty = __webpack_require__(34);
1574
1575var _isEmpty2 = _interopRequireDefault(_isEmpty);
1576
1577function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1578
1579function collection(existing) {
1580 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
1581 args[_key - 1] = arguments[_key];
1582 }
1583
1584 if (!(0, _isEmpty2.default)(args)) {
1585 return [].concat((0, _toConsumableArray3.default)(existing || []), [args]);
1586 } else {
1587 return existing;
1588 }
1589}
1590
1591/***/ },
1592
1593/***/ "./src/config/features/feature.js":
1594/***/ function(module, exports, __webpack_require__) {
1595
1596"use strict";
1597"use strict";
1598
1599Object.defineProperty(exports, "__esModule", {
1600 value: true
1601});
1602
1603var _defineProperty2 = __webpack_require__(10);
1604
1605var _defineProperty3 = _interopRequireDefault(_defineProperty2);
1606
1607var _extends3 = __webpack_require__(0);
1608
1609var _extends4 = _interopRequireDefault(_extends3);
1610
1611exports.default = feature;
1612
1613function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1614
1615function feature(existing, id) {
1616 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1617
1618 if (!id) {
1619 return existing;
1620 }
1621
1622 var settings = (0, _extends4.default)({}, existing && existing[id] || {}, options, {
1623 id: id
1624 });
1625
1626 return (0, _extends4.default)({}, existing || {}, (0, _defineProperty3.default)({}, id, settings));
1627}
1628
1629/***/ },
1630
1631/***/ "./src/config/features/scope.js":
1632/***/ function(module, exports, __webpack_require__) {
1633
1634"use strict";
1635"use strict";
1636
1637Object.defineProperty(exports, "__esModule", {
1638 value: true
1639});
1640
1641var _toConsumableArray2 = __webpack_require__(4);
1642
1643var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
1644
1645exports.default = scope;
1646
1647function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1648
1649function scope(existing) {
1650 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
1651 args[_key - 1] = arguments[_key];
1652 }
1653
1654 if (args.length > 0) {
1655 return [].concat((0, _toConsumableArray3.default)(existing), [args]);
1656 } else {
1657 return existing;
1658 }
1659}
1660
1661/***/ },
1662
1663/***/ "./src/config/features/selector.js":
1664/***/ function(module, exports, __webpack_require__) {
1665
1666"use strict";
1667'use strict';
1668
1669Object.defineProperty(exports, "__esModule", {
1670 value: true
1671});
1672
1673var _defineProperty2 = __webpack_require__(10);
1674
1675var _defineProperty3 = _interopRequireDefault(_defineProperty2);
1676
1677var _extends3 = __webpack_require__(0);
1678
1679var _extends4 = _interopRequireDefault(_extends3);
1680
1681exports.default = selector;
1682
1683function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1684
1685function selector(existing, id, handler) {
1686 if (!id || typeof handler !== 'function') {
1687 return existing;
1688 }
1689
1690 return (0, _extends4.default)({}, existing || {}, (0, _defineProperty3.default)({}, id, handler.bind ? handler.bind(this) : handler));
1691}
1692
1693/***/ },
1694
1695/***/ "./src/config/index.js":
1696/***/ function(module, exports, __webpack_require__) {
1697
1698"use strict";
1699"use strict";
1700
1701Object.defineProperty(exports, "__esModule", {
1702 value: true
1703});
1704exports.defaultReducers = exports.defaultFeatures = undefined;
1705
1706var _toConsumableArray2 = __webpack_require__(4);
1707
1708var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
1709
1710var _defineProperty2 = __webpack_require__(10);
1711
1712var _defineProperty3 = _interopRequireDefault(_defineProperty2);
1713
1714var _extends8 = __webpack_require__(0);
1715
1716var _extends9 = _interopRequireDefault(_extends8);
1717
1718exports.api = api;
1719
1720var _lodash = __webpack_require__(11);
1721
1722var _stringify = __webpack_require__("./src/config/stringify.js");
1723
1724var _stringify2 = _interopRequireDefault(_stringify);
1725
1726var _string = __webpack_require__(23);
1727
1728function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1729
1730var featuresReq = __webpack_require__(55);
1731var reducersReq = __webpack_require__(56);
1732var es6 = function es6(mod) {
1733 return mod.default ? mod.default : mod;
1734};
1735
1736var defaultFeatures = exports.defaultFeatures = featuresReq.keys().reduce(function (memo, key) {
1737 return (0, _extends9.default)({}, memo, (0, _defineProperty3.default)({}, key.replace(/\.\//, '').replace(/\.js$/, ''), es6(featuresReq(key))));
1738}, {});
1739
1740var defaultReducers = exports.defaultReducers = reducersReq.keys().reduce(function (memo, key) {
1741 return (0, _extends9.default)({}, memo, (0, _defineProperty3.default)({}, key.replace(/\.\//, '').replace(/\.js$/, ''), es6(reducersReq(key))));
1742}, {});
1743
1744function api() {
1745 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1746 var _options$history = options.history;
1747 var history = _options$history === undefined ? [] : _options$history;
1748 var _options$scope = options.scope;
1749 var scope = _options$scope === undefined ? this : _options$scope;
1750 var _options$features = options.features;
1751 var features = _options$features === undefined ? {} : _options$features;
1752 var _options$reducers = options.reducers;
1753 var reducers = _options$reducers === undefined ? {} : _options$reducers;
1754 var _options$keyFn = options.keyFn;
1755 var keyFn = _options$keyFn === undefined ? _string.pluralize : _options$keyFn;
1756
1757
1758 features = (0, _lodash.mapValues)((0, _extends9.default)({}, defaultFeatures, features), function (fn) {
1759 return fn.bind ? fn.bind(scope) : fn;
1760 });
1761 reducers = (0, _lodash.mapValues)((0, _extends9.default)({}, defaultReducers, reducers), function (fn) {
1762 return fn.bind ? fn.bind(scope) : fn;
1763 });
1764
1765 var getState = function getState() {
1766 var initialState = (0, _lodash.reduce)(features, function (acc, feature, name) {
1767 var defaultValue = feature();
1768
1769 if ((0, _lodash.isUndefined)(defaultValue)) {
1770 return acc;
1771 }
1772
1773 return (0, _extends9.default)({}, acc, (0, _defineProperty3.default)({}, name, defaultValue));
1774 }, {});
1775
1776 var state = history.reduce(function (acc, _ref) {
1777 var name = _ref.name;
1778 var args = _ref.args;
1779
1780 var featureState = acc[name];
1781 var feature = features[name];
1782
1783 return (0, _extends9.default)({}, acc, (0, _defineProperty3.default)({}, name, feature.apply(undefined, [featureState].concat((0, _toConsumableArray3.default)(args)))));
1784 }, initialState);
1785
1786 Object.defineProperty(state, "toString", {
1787 value: function value() {
1788 return (0, _stringify2.default)(state);
1789 }
1790 });
1791
1792 return state;
1793 };
1794
1795 var _getConfig = function _getConfig() {
1796 var tap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : options.tap;
1797
1798 var state = getState();
1799 var config = (0, _lodash.reduce)(reducers, function (config, reducer, name) {
1800 var reduced = reducer(state);
1801
1802 if ((0, _lodash.isUndefined)(reduced)) {
1803 return config;
1804 }
1805
1806 return (0, _extends9.default)({}, config, (0, _defineProperty3.default)({}, name, reducer(state)));
1807 }, {});
1808
1809 if (typeof tap === 'function') {
1810 config = tap.call(scope, config, options);
1811 }
1812
1813 Object.defineProperty(config, "toString", {
1814 value: function value() {
1815 return (0, _stringify2.default)(config);
1816 }
1817 });
1818
1819 return config;
1820 };
1821
1822 var when = function when(env, configure) {
1823 var envs = Array.isArray(env) ? env : [env];
1824 var _process$env$NODE_ENV = process.env.NODE_ENV;
1825 var NODE_ENV = _process$env$NODE_ENV === undefined ? "development" : _process$env$NODE_ENV;
1826
1827
1828 if (env === true || envs.indexOf(NODE_ENV) !== -1) {
1829 return configure(api({ features: features, reducers: reducers, history: history }));
1830 } else if (typeof env === 'function' && env(getState(), _getConfig)) {
1831 return configure({ features: features, reducers: reducers, history: history });
1832 }
1833
1834 return api({ features: features, reducers: reducers, history: history });
1835 };
1836
1837 return (0, _lodash.reduce)(features, function (acc, feature, name) {
1838 return (0, _extends9.default)({}, acc, (0, _defineProperty3.default)({}, name, function () {
1839 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
1840 args[_key] = arguments[_key];
1841 }
1842
1843 return api({
1844 features: features,
1845 reducers: reducers,
1846 history: history.concat({ args: args, name: name })
1847 });
1848 }));
1849 }, {
1850 getConfig: function getConfig() {
1851 return (0, _lodash.mapKeys)(_getConfig.apply(undefined, arguments), function (v, k) {
1852 return keyFn(k);
1853 });
1854 },
1855 getState: getState,
1856 history: history,
1857 when: when
1858 });
1859}
1860
1861exports.default = api;
1862
1863/***/ },
1864
1865/***/ "./src/config/reducers/collection.js":
1866/***/ function(module, exports, __webpack_require__) {
1867
1868"use strict";
1869'use strict';
1870
1871Object.defineProperty(exports, "__esModule", {
1872 value: true
1873});
1874
1875var _extends2 = __webpack_require__(0);
1876
1877var _extends3 = _interopRequireDefault(_extends2);
1878
1879exports.default = collection;
1880
1881var _path = __webpack_require__(8);
1882
1883var _lang = __webpack_require__(36);
1884
1885function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1886
1887function collection(state) {
1888 var collection = state.collection;
1889
1890
1891 if (!collection) {
1892 return undefined;
1893 }
1894
1895 var args = collection.map(function (val) {
1896 if (val.length === 1 && (0, _lang.isString)(val[0])) {
1897 return {
1898 name: (0, _path.basename)(val[0]),
1899 cwd: val[0]
1900 };
1901 }
1902
1903 if (val.length === 1 && (0, _lang.isObject)(val[0])) {
1904 return val[0];
1905 }
1906
1907 if (val.length === 1 && (0, _lang.isString)(val[0]) && (0, _lang.isString)(val[1])) {
1908 return {
1909 name: val[0],
1910 cwd: (0, _path.resolve)(val[1], state.context || process.cwd())
1911 };
1912 }
1913
1914 if (val.length === 1 && (0, _lang.isString)(val[0]) && (0, _lang.isObject)(val[1])) {
1915 return (0, _extends3.default)({
1916 name: val[0]
1917 }, val[1]);
1918 }
1919
1920 return val;
1921 });
1922
1923 return args.filter(function (i) {
1924 return i.length > 0;
1925 });
1926}
1927
1928/***/ },
1929
1930/***/ "./src/config/reducers/feature.js":
1931/***/ function(module, exports) {
1932
1933"use strict";
1934"use strict";
1935
1936Object.defineProperty(exports, "__esModule", {
1937 value: true
1938});
1939exports.default = feature;
1940function feature(state) {
1941 return state.feature;
1942}
1943
1944/***/ },
1945
1946/***/ "./src/config/reducers/scope.js":
1947/***/ function(module, exports) {
1948
1949"use strict";
1950"use strict";
1951
1952Object.defineProperty(exports, "__esModule", {
1953 value: true
1954});
1955exports.default = scope;
1956function scope(state) {
1957 var scope = state.scope;
1958
1959
1960 return scope;
1961}
1962
1963/***/ },
1964
1965/***/ "./src/config/reducers/selector.js":
1966/***/ function(module, exports) {
1967
1968"use strict";
1969"use strict";
1970
1971Object.defineProperty(exports, "__esModule", {
1972 value: true
1973});
1974exports.default = selector;
1975function selector(state) {
1976 return state.selector;
1977}
1978
1979/***/ },
1980
1981/***/ "./src/config/stringify.js":
1982/***/ function(module, exports, __webpack_require__) {
1983
1984"use strict";
1985"use strict";
1986
1987Object.defineProperty(exports, "__esModule", {
1988 value: true
1989});
1990
1991var _stringify = __webpack_require__(30);
1992
1993var _stringify2 = _interopRequireDefault(_stringify);
1994
1995var _keys = __webpack_require__(14);
1996
1997var _keys2 = _interopRequireDefault(_keys);
1998
1999exports.default = stringify;
2000
2001var _lodash = __webpack_require__(11);
2002
2003var _Expression = __webpack_require__("./src/config/Expression.js");
2004
2005var _Expression2 = _interopRequireDefault(_Expression);
2006
2007function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2008
2009function stringify(value) {
2010 var replacements = [];
2011
2012 var replace = function replace(replacement) {
2013 return "__REPLACEMENT_" + (replacements.push(replacement) - 1) + "__";
2014 };
2015
2016 var sort = function sort(object) {
2017 return (0, _keys2.default)(object).sort().reduce(function (sorted, key) {
2018 sorted[key] = object[key];
2019
2020 return sorted;
2021 }, {});
2022 };
2023
2024 var replacer = function replacer(key, value) {
2025 if (value instanceof _Expression2.default) {
2026 return replace(value.toString());
2027 }
2028
2029 if (value instanceof RegExp) {
2030 return replace(value.toString());
2031 }
2032
2033 return value;
2034 };
2035
2036 var string = (0, _stringify2.default)(_lodash.isPlainObject ? sort(value) : value, replacer, 2);
2037
2038 return string.replace(/(^[\s]+)?"__REPLACEMENT_([\d]+)__"/gm, function (match) {
2039 var indent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
2040 var index = arguments[2];
2041 return ("" + indent + replacements[index]).split("\n").join("\n" + indent);
2042 });
2043}
2044
2045/***/ },
2046
2047/***/ "./src/data-sources/git-stats.js":
2048/***/ function(module, exports, __webpack_require__) {
2049
2050"use strict";
2051'use strict';
2052
2053Object.defineProperty(exports, "__esModule", {
2054 value: true
2055});
2056
2057var _promise = __webpack_require__(12);
2058
2059var _promise2 = _interopRequireDefault(_promise);
2060
2061exports.request = request;
2062
2063var _git = __webpack_require__("./src/git/index.js");
2064
2065var _git2 = _interopRequireDefault(_git);
2066
2067function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2068
2069function request() {
2070 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2071 var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2072 var project = context.project;
2073 var _options$cwd = options.cwd;
2074 var cwd = _options$cwd === undefined ? project.cwd : _options$cwd;
2075
2076
2077 return _promise2.default.resolve((0, _git2.default)(projectPath));
2078}
2079
2080exports.default = request;
2081
2082/***/ },
2083
2084/***/ "./src/data-sources/github-stats.js":
2085/***/ function(module, exports, __webpack_require__) {
2086
2087"use strict";
2088"use strict";
2089
2090Object.defineProperty(exports, "__esModule", {
2091 value: true
2092});
2093
2094var _promise = __webpack_require__(12);
2095
2096var _promise2 = _interopRequireDefault(_promise);
2097
2098exports.request = request;
2099
2100function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2101
2102function request() {
2103 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2104 var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2105
2106 return _promise2.default.resolve({ NOT_YET_IMPLEMENTED: true });
2107}
2108
2109exports.default = request;
2110
2111/***/ },
2112
2113/***/ "./src/data-sources/npm-stats.js":
2114/***/ function(module, exports, __webpack_require__) {
2115
2116"use strict";
2117"use strict";
2118
2119Object.defineProperty(exports, "__esModule", {
2120 value: true
2121});
2122
2123var _promise = __webpack_require__(12);
2124
2125var _promise2 = _interopRequireDefault(_promise);
2126
2127exports.request = request;
2128
2129function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2130
2131function request() {
2132 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2133 var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2134
2135 return _promise2.default.resolve({ NOT_YET_IMPLEMENTED: true });
2136}
2137
2138exports.default = request;
2139
2140/***/ },
2141
2142/***/ "./src/data-sources/packages.js":
2143/***/ function(module, exports) {
2144
2145"use strict";
2146'use strict';
2147
2148Object.defineProperty(exports, "__esModule", {
2149 value: true
2150});
2151var request = exports.request = function request() {
2152 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2153 var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2154 var project = context.project;
2155 var _options$pattern = options.pattern;
2156 var pattern = _options$pattern === undefined ? ':packageFolder/:name/package.json' : _options$pattern;
2157
2158
2159 var packageDocs = project.routeDocuments(pattern);
2160
2161 return packageDocs.map(function (result) {
2162 if (options.load) {
2163 result.doc = result.doc.ready;
2164 }
2165
2166 return result;
2167 });
2168};
2169
2170exports.default = request;
2171
2172/***/ },
2173
2174/***/ "./src/document-types/babel-es6.js":
2175/***/ function(module, exports, __webpack_require__) {
2176
2177"use strict";
2178'use strict';
2179
2180Object.defineProperty(exports, "__esModule", {
2181 value: true
2182});
2183exports.decorate = exports.testDocument = exports.rules = undefined;
2184
2185var _skypagerUtil = __webpack_require__(3);
2186
2187var rules = exports.rules = [/\.(js|es6|jsx)$/];
2188
2189var testDocument = exports.testDocument = function testDocument(doc) {
2190 return typeof rules.find(function (rule) {
2191 return (0, _skypagerUtil.testRule)(rule, doc.fileBaseName);
2192 }) !== 'undefined';
2193};
2194
2195var decorate = exports.decorate = function decorate(doc) {
2196 return doc;
2197};
2198
2199exports.default = decorate;
2200
2201/***/ },
2202
2203/***/ "./src/document-types/markdown.js":
2204/***/ function(module, exports, __webpack_require__) {
2205
2206"use strict";
2207'use strict';
2208
2209Object.defineProperty(exports, "__esModule", {
2210 value: true
2211});
2212exports.decorate = exports.testDocument = exports.getUtils = exports.getTransforms = exports.transformPresets = exports.rules = undefined;
2213
2214var _typeof2 = __webpack_require__(19);
2215
2216var _typeof3 = _interopRequireDefault(_typeof2);
2217
2218var _toConsumableArray2 = __webpack_require__(4);
2219
2220var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
2221
2222var _extends2 = __webpack_require__(0);
2223
2224var _extends3 = _interopRequireDefault(_extends2);
2225
2226var _defineEnumerableProperties2 = __webpack_require__(32);
2227
2228var _defineEnumerableProperties3 = _interopRequireDefault(_defineEnumerableProperties2);
2229
2230var _assign = __webpack_require__(13);
2231
2232var _assign2 = _interopRequireDefault(_assign);
2233
2234var _keys = __webpack_require__(14);
2235
2236var _keys2 = _interopRequireDefault(_keys);
2237
2238var _jsYaml = __webpack_require__(78);
2239
2240var _jsYaml2 = _interopRequireDefault(_jsYaml);
2241
2242var _markdown2 = __webpack_require__("./src/transformers/markdown.js");
2243
2244var _markdown3 = _interopRequireDefault(_markdown2);
2245
2246var _rehype2 = __webpack_require__("./src/transformers/rehype.js");
2247
2248var _rehype3 = _interopRequireDefault(_rehype2);
2249
2250var _retext2 = __webpack_require__("./src/transformers/retext.js");
2251
2252var _retext3 = _interopRequireDefault(_retext2);
2253
2254var _skypagerUtil = __webpack_require__(3);
2255
2256var _string = __webpack_require__(23);
2257
2258var _unistUtilVisit = __webpack_require__(28);
2259
2260var _unistUtilVisit2 = _interopRequireDefault(_unistUtilVisit);
2261
2262var _omit = __webpack_require__(37);
2263
2264var _omit2 = _interopRequireDefault(_omit);
2265
2266var _get = __webpack_require__(15);
2267
2268var _get2 = _interopRequireDefault(_get);
2269
2270var _lodash = __webpack_require__(11);
2271
2272var _lodash2 = _interopRequireDefault(_lodash);
2273
2274function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2275
2276var rules = exports.rules = [/\.md$/];
2277
2278var transformPresets = exports.transformPresets = function transformPresets() {
2279 return {
2280 markdown: (0, _keys2.default)(_markdown2.profiles),
2281 rehype: (0, _keys2.default)(_rehype2.profiles),
2282 retext: (0, _keys2.default)(_retext2.profiles)
2283 };
2284};
2285
2286var getTransforms = exports.getTransforms = function getTransforms() {
2287 return {
2288 markdown: __webpack_require__("./src/transformers/markdown.js").default,
2289 rehype: __webpack_require__("./src/transformers/rehype.js").default,
2290 retext: __webpack_require__("./src/transformers/retext.js").default
2291 };
2292};
2293
2294var getUtils = exports.getUtils = function getUtils() {
2295 var loaders = (0, _markdown2.utilLoaders)();
2296
2297 return (0, _keys2.default)(loaders).reduce(function (memo, key) {
2298 var _Object$assign2, _mutatorMap;
2299
2300 return (0, _assign2.default)(memo, (_Object$assign2 = {}, _mutatorMap = {}, _mutatorMap[key] = _mutatorMap[key] || {}, _mutatorMap[key].get = function () {
2301 return loaders[key]();
2302 }, (0, _defineEnumerableProperties3.default)(_Object$assign2, _mutatorMap), _Object$assign2));
2303 }, {});
2304};
2305
2306var testDocument = exports.testDocument = function testDocument(doc) {
2307 return typeof rules.find(function (rule) {
2308 return (0, _skypagerUtil.testRule)(rule, doc.fileBaseName);
2309 }) !== 'undefined';
2310};
2311
2312var decorate = exports.decorate = function decorate(doc) {
2313 doc.lazy('exportables', function () {
2314 return doc.createExportable();
2315 });
2316
2317 (0, _assign2.default)(doc, {
2318 createExportable: function createExportable() {
2319 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2320
2321 var ast = doc.markdown(options.profile || 'parser', options);
2322 var html = doc.markdown('html', options);
2323
2324 var exportable = {
2325 id: doc.id,
2326 visit: function visit(fn) {
2327 return (0, _unistUtilVisit2.default)(exportable.ast, fn);
2328 },
2329
2330 get file() {
2331 return (0, _omit2.default)(doc.file, 'contents');
2332 }
2333 };
2334
2335 (0, _skypagerUtil.lazy)(exportable, 'contents', function () {
2336 return doc.readFile().getFileContents();
2337 });
2338 (0, _skypagerUtil.lazy)(exportable, 'ast', function () {
2339 return ast.parse(exportable.contents);
2340 });
2341 (0, _skypagerUtil.lazy)(exportable, 'html', function () {
2342 return html.stringify(exportable.ast);
2343 });
2344 (0, _skypagerUtil.lazy)(exportable, 'frontmatter', function () {
2345 var _exportable$ast$child = exportable.ast.children;
2346 var children = _exportable$ast$child === undefined ? [] : _exportable$ast$child;
2347
2348 var head = children[0] || {};
2349
2350 return head && head.type === 'yaml' && head.value ? _jsYaml2.default.load(head.value) : {};
2351 });
2352
2353 return exportable;
2354 },
2355 readFrontmatter: function readFrontmatter() {
2356 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2357 var _options$contents = options.contents;
2358 var contents = _options$contents === undefined ? doc.getFileContents() : _options$contents;
2359
2360 var parser = doc.markdown(options.parser || 'parser');
2361
2362 var _parser$parse = parser.parse(contents);
2363
2364 var _parser$parse$childre = _parser$parse.children;
2365 var children = _parser$parse$childre === undefined ? [] : _parser$parse$childre;
2366
2367
2368 if (children[0] && children[0].type === 'yaml') {
2369 return _jsYaml2.default.load(children[0].value || '');
2370 }
2371
2372 return {};
2373 },
2374 retextAnalysis: function retextAnalysis() {
2375 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2376
2377 var profile = options.profile || 'rehype';
2378 var parser = doc.markdown(options.parser || 'parser', options);
2379 var contents = options.contents || doc.getFileContents();
2380 var ast = options.ast || parser.parse(contents);
2381
2382 return doc.retext('retext', options).process(ast);
2383 },
2384 rehypeDocument: function rehypeDocument() {
2385 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2386
2387 var parser = doc.markdown(options.parser || 'parser', options);
2388 var contents = options.contents || doc.getFileContents();
2389 var ast = options.ast || parser.parse(contents);
2390
2391 return doc.rehype(profile, options).run(ast);
2392 },
2393 remarkAST: function remarkAST() {
2394 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2395
2396 var profile = options.profile || 'parser';
2397 var contents = options.contents || this.getFileContents();
2398
2399 return doc.markdown(profile, options).parse(contents);
2400 },
2401 remarkHTML: function remarkHTML() {
2402 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2403
2404 var profile = options.profile || 'github';
2405 var parser = options.parser || doc.markdown(profile, options);
2406 var contents = options.contents || this.getFileContents();
2407 var ast = options.ast || parser.parse(contents);
2408 var html = 'html';
2409
2410 return doc.markdown(html, options).stringify(ast);
2411 },
2412 retext: function retext() {
2413 var profile = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'retext';
2414 var options = arguments[1];
2415
2416 return (0, _retext3.default)((0, _extends3.default)({
2417 profile: profile
2418 }, options));
2419 },
2420 rehype: function rehype() {
2421 var profile = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'rehype';
2422 var options = arguments[1];
2423
2424 return (0, _rehype3.default)((0, _extends3.default)({
2425 profile: profile
2426 }, options));
2427 },
2428 markdown: function markdown() {
2429 var profile = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'parser';
2430 var options = arguments[1];
2431
2432 return (0, _markdown3.default)((0, _extends3.default)({
2433 profile: profile
2434 }, options));
2435 },
2436 createHeadingsMap: function createHeadingsMap() {
2437 return this.chain.invoke('selectHeadingNodes').keyBy(function (heading) {
2438 var node = heading.children.find(function (n) {
2439 return n.type === 'text';
2440 });
2441 var value = node && node.value || '';
2442
2443 return (0, _string.camelCase)((0, _string.snakeCase)(value));
2444 }).value();
2445 },
2446 stringifyNode: function stringifyNode(node) {
2447 return __webpack_require__(22)(node);
2448 },
2449 getSourceForNode: function getSourceForNode(node) {
2450 return __webpack_require__(27)(node);
2451 },
2452 decorateNode: function decorateNode(node) {
2453 return (0, _assign2.default)(node, {
2454 textContent: function textContent() {
2455 return doc.stringifyNode(node);
2456 },
2457 getFinalHeading: function getFinalHeading() {
2458 return doc.findAllNodesAfter(node, function (n) {
2459 return n.type === 'heading' && n.depth <= node.depth;
2460 })[0];
2461 },
2462 previousHeading: function previousHeading() {
2463 return node.getNodesBefore(function (n) {
2464 return n.type === 'heading';
2465 }).pop();
2466 },
2467 nextHeading: function nextHeading() {
2468 return node.type === 'heading' ? node.getNextNode(function (n) {
2469 return n.type === 'heading' && n.depth >= node.depth;
2470 }) : node.getNextNode(function (n) {
2471 return n.type === 'heading';
2472 });
2473 },
2474 getNextNode: function getNextNode() {
2475 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
2476 args[_key] = arguments[_key];
2477 }
2478
2479 return doc.findNodeAfter.apply(doc, [node].concat((0, _toConsumableArray3.default)(args)));
2480 },
2481 getNodesAfter: function getNodesAfter() {
2482 for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
2483 args[_key2] = arguments[_key2];
2484 }
2485
2486 return doc.findAllNodesAfter.apply(doc, [node].concat((0, _toConsumableArray3.default)(args)));
2487 },
2488 getNodesBefore: function getNodesBefore() {
2489 for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
2490 args[_key3] = arguments[_key3];
2491 }
2492
2493 return doc.findAllNodesBefore.apply(doc, [node].concat((0, _toConsumableArray3.default)(args)));
2494 }
2495 });
2496 },
2497 createDocumentFromSection: function createDocumentFromSection(node) {
2498 var stringify = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
2499
2500 var startDepth = node.depth;
2501 var offset = 1 - startDepth;
2502 var children = doc.extractSectionNodes(node).map(function (child) {
2503 return child.type === 'heading' ? (0, _extends3.default)({}, child, { depth: child.depth + offset }) : child;
2504 });
2505
2506 var newAST = {
2507 type: 'root',
2508 children: children
2509 };
2510
2511 return newAST;
2512 },
2513 extractSectionNodes: function extractSectionNodes(node) {
2514 var startAt = node.index;
2515 var finalHeading = node.getFinalHeading();
2516 var endAt = finalHeading ? finalHeading.index : doc.finalHeading() || Infinity;
2517
2518 return [node].concat((0, _toConsumableArray3.default)(this.selectNodes('*', function (n) {
2519 return n.index > startAt && n.index < endAt;
2520 })));
2521 },
2522 inspectOutline: function inspectOutline() {
2523 var headings = this.selectHeadingNodes();
2524
2525 return headings.map(function (headingNode) {
2526 var content = '- ' + headingNode.textContent();
2527 return _lodash2.default.padStart(content, content.length + (headingNode.depth - 1) * 2);
2528 }).join("\n");
2529 },
2530 headingIndexes: function headingIndexes(depth) {
2531 return this.chain.invoke('selectHeadingNodes', depth && '[depth=' + depth + ']').sortBy(function (node) {
2532 return node.position ? node.position.start.line : node.index;
2533 }).map(function (node) {
2534 return node.index;
2535 }).value();
2536 },
2537 selectHeadingsByDepth: function selectHeadingsByDepth() {
2538 var depth = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
2539
2540 return this.selectHeadingNodes('[depth=' + depth + ']');
2541 },
2542 selectOneNode: function selectOneNode(selector) {
2543 return __webpack_require__(16)(this.ast)(selector)[0];
2544 },
2545 selectNodes: function selectNodes() {
2546 var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '*';
2547 var testFn = arguments[1];
2548
2549 var results = __webpack_require__(16)(this.ast)(selector);
2550
2551 return typeof testFn === 'function' ? results.filter(function (r) {
2552 return testFn.call(doc, r);
2553 }) : results;
2554 },
2555 selectHeadingNodes: function selectHeadingNodes() {
2556 var enhance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
2557
2558 return doc.selectNodes(('heading' + enhance).trim());
2559 },
2560 selectCodeBlocks: function selectCodeBlocks() {
2561 var lang = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'javascript';
2562 var enhance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
2563
2564 return doc.selectNodes(('code[lang=' + lang + ']' + enhance).trim());
2565 },
2566 findNodeAfter: function findNodeAfter(node) {
2567 for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
2568 args[_key4 - 1] = arguments[_key4];
2569 }
2570
2571 return __webpack_require__(24).apply(undefined, [this.ast, node].concat((0, _toConsumableArray3.default)(args)));
2572 },
2573 findAllNodesAfter: function findAllNodesAfter(node) {
2574 for (var _len5 = arguments.length, args = Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {
2575 args[_key5 - 1] = arguments[_key5];
2576 }
2577
2578 return __webpack_require__(25).apply(undefined, [this.ast, node].concat((0, _toConsumableArray3.default)(args)));
2579 },
2580 findAllNodesBefore: function findAllNodesBefore(node) {
2581 for (var _len6 = arguments.length, args = Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {
2582 args[_key6 - 1] = arguments[_key6];
2583 }
2584
2585 return __webpack_require__(26).apply(undefined, [this.ast, node].concat((0, _toConsumableArray3.default)(args)));
2586 },
2587 nodesIndexedByPosition: function nodesIndexedByPosition() {
2588 return doc.chain.get('ast.children').keyBy(function (node) {
2589 return parseInt(node.position.start.line);
2590 }).value();
2591 },
2592 introNodes: function introNodes() {
2593 var f = this.selectNodes('heading');
2594 var m = f.find(function (n) {
2595 return n.depth > 1;
2596 });
2597
2598 return m ? m.getNodesBefore().reverse() : this.ast.children;
2599 },
2600 titleNode: function titleNode() {
2601 return this.selectOneNode('heading[depth=1]');
2602 },
2603 firstSectionHeadingNode: function firstSectionHeadingNode() {
2604 return this.selectOneNode('heading[depth=2]');
2605 },
2606 sectionHeadingNodes: function sectionHeadingNodes() {
2607 return this.selectNodes('heading[depth=2]');
2608 },
2609 articleHeadingNodes: function articleHeadingNodes() {
2610 return this.selectNodes('heading[depth=3]');
2611 },
2612 subarticleHeadingNodes: function subarticleHeadingNodes() {
2613 return this.selectNodes('heading').filter(function (n) {
2614 return n.depth >= 4;
2615 });
2616 },
2617 getNodesBetweenPositions: function getNodesBetweenPositions(alpha, bravo) {
2618 var start = isNode(alpha) ? alpha.position.start.line : parseInt(alpha);
2619 var end = isNode(bravo) ? bravo.position.start.line : parseInt(bravo);
2620
2621 return doc.chain.get('ast.children').filter(function (node) {
2622 var line = node.position.start.line;
2623
2624
2625 return line > start && line < end;
2626 });
2627 },
2628 finalNode: function finalNode() {
2629 return this.chain.get('ast.children', []).last().value();
2630 },
2631 getAST: function getAST() {
2632 return doc.project.cache.fetch('asts:' + doc.cacheKey, function () {
2633 var _ast = doc.remarkAST();
2634
2635 return (0, _extends3.default)({}, _ast, {
2636 children: _ast.children.map(function (n, i) {
2637 var d = doc.decorateNode(n);
2638 d.index = i;
2639 return d;
2640 })
2641 });
2642 });
2643 }
2644 });
2645
2646 doc.lazy('ast', function () {
2647 return doc.getAST();
2648 });
2649 doc.lazy('headingsMap', function () {
2650 return doc.createHeadingsMap();
2651 });
2652
2653 return doc;
2654};
2655
2656exports.default = decorate;
2657
2658
2659function isNode(obj) {
2660 return (typeof obj === 'undefined' ? 'undefined' : (0, _typeof3.default)(obj)) === 'object' && typeof obj.type === 'string' && obj.position;
2661}
2662
2663/***/ },
2664
2665/***/ "./src/document-types/packageManifest.js":
2666/***/ function(module, exports, __webpack_require__) {
2667
2668"use strict";
2669'use strict';
2670
2671Object.defineProperty(exports, "__esModule", {
2672 value: true
2673});
2674exports.decorate = exports.testDocument = exports.rules = undefined;
2675
2676var _assign = __webpack_require__(13);
2677
2678var _assign2 = _interopRequireDefault(_assign);
2679
2680var _skypagerUtil = __webpack_require__(3);
2681
2682function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2683
2684var rules = exports.rules = [/package.json$/];
2685
2686var testDocument = exports.testDocument = function testDocument(doc) {
2687 return typeof rules.find(function (rule) {
2688 return (0, _skypagerUtil.testRule)(rule, doc.fileBaseName);
2689 }) !== 'undefined';
2690};
2691
2692var decorate = exports.decorate = function decorate(doc) {
2693 return (0, _assign2.default)(doc, {
2694 loadProject: function loadProject() {
2695 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2696
2697 return doc.project ? doc.project.portfolio.load(doc.file.dirname, { sync: false }) : doc.project;
2698 }
2699 });
2700};
2701
2702exports.default = decorate;
2703
2704/***/ },
2705
2706/***/ "./src/document-types/page-config.js":
2707/***/ function(module, exports, __webpack_require__) {
2708
2709"use strict";
2710'use strict';
2711
2712Object.defineProperty(exports, "__esModule", {
2713 value: true
2714});
2715exports.markdownPageConfig = exports.formatId = exports.javascriptPageConfig = exports.decorate = exports.testDocument = undefined;
2716
2717var _extends2 = __webpack_require__(0);
2718
2719var _extends3 = _interopRequireDefault(_extends2);
2720
2721var _assign = __webpack_require__(13);
2722
2723var _assign2 = _interopRequireDefault(_assign);
2724
2725function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2726
2727var pathToRegexp = __webpack_require__(89);
2728
2729var testDocument = exports.testDocument = function testDocument(doc) {
2730 var project = doc.project;
2731
2732 var pagesPattern = project.getOption('pages.pattern', '*pages*');
2733
2734 return pathToRegexp(pagesPattern).test(doc.id);
2735};
2736
2737var decorate = exports.decorate = function decorate(doc) {
2738
2739 (0, _assign2.default)(doc, {
2740 buildPageConfig: function buildPageConfig() {
2741 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2742
2743 if (doc.fileExtname === '.md') {
2744 return markdownPageConfig(doc);
2745 } else if (doc.fileExtname === '.js') {
2746 return javascriptPageConfig(doc);
2747 }
2748 }
2749 });
2750
2751 return doc;
2752};
2753
2754var javascriptPageConfig = exports.javascriptPageConfig = function javascriptPageConfig(doc) {
2755 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2756 var _options$buildRoute = options.buildRoute;
2757 var buildRoute = _options$buildRoute === undefined ? function (v) {
2758 return v;
2759 } : _options$buildRoute;
2760 var _options$publicRoot = options.publicRoot;
2761 var publicRoot = _options$publicRoot === undefined ? /.*pages\/?/ : _options$publicRoot;
2762
2763
2764 return {
2765 id: doc.id,
2766 idParts: doc.idParts,
2767 baseRelativePath: doc.baseRelativePath,
2768 isIndex: doc.isIndex,
2769 route: buildRoute(formatId(doc.id)).replace(publicRoot, '/'),
2770 meta: {
2771 id: doc.id,
2772 cacheKey: doc.cacheKey,
2773 lastModified: doc.get('file.stat.mtime')
2774 }
2775 };
2776};
2777
2778var formatId = exports.formatId = function formatId(id) {
2779 return id.replace(/index.*$/, '').replace(/\/$/, '');
2780};
2781
2782var markdownPageConfig = exports.markdownPageConfig = function markdownPageConfig(doc) {
2783 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2784 var frontmatter = doc.exportables.frontmatter;
2785 var _options$publicRoot2 = options.publicRoot;
2786 var publicRoot = _options$publicRoot2 === undefined ? /.*pages\/?/ : _options$publicRoot2;
2787 var _options$buildRoute2 = options.buildRoute;
2788 var buildRoute = _options$buildRoute2 === undefined ? function (v) {
2789 return v;
2790 } : _options$buildRoute2;
2791
2792
2793 return {
2794 id: doc.id,
2795 route: buildRoute(frontmatter.route || formatId(doc.id)).replace(publicRoot, '/'),
2796 idParts: doc.idParts,
2797 baseRelativePath: doc.baseRelativePath,
2798 isIndex: doc.isIndex,
2799 meta: (0, _extends3.default)({
2800 id: doc.id,
2801 cacheKey: doc.cacheKey
2802 }, frontmatter)
2803 };
2804};
2805
2806/***/ },
2807
2808/***/ "./src/document-types/spec.js":
2809/***/ function(module, exports, __webpack_require__) {
2810
2811"use strict";
2812'use strict';
2813
2814Object.defineProperty(exports, "__esModule", {
2815 value: true
2816});
2817exports.markdown = exports.javascript = exports.decorate = exports.testDocument = exports.rules = undefined;
2818
2819var _markdown = __webpack_require__("./src/document-types/markdown.js");
2820
2821var _skypagerUtil = __webpack_require__(3);
2822
2823var rules = exports.rules = [/.*\.(test|spec).*\.(md|js)$/i];
2824
2825var testDocument = exports.testDocument = function testDocument(doc) {
2826 return typeof rules.find(function (rule) {
2827 return (0, _skypagerUtil.testRule)(rule, doc.fileBaseName);
2828 }) !== 'undefined';
2829};
2830
2831var decorate = exports.decorate = function decorate(doc) {
2832 if (doc.isJavascript) {
2833 doc = javascript(doc);
2834 }
2835
2836 if (doc.isMarkdown) {
2837 doc = markdown(doc);
2838 }
2839
2840 return doc;
2841};
2842
2843var javascript = exports.javascript = function javascript(doc) {
2844 return doc;
2845};
2846
2847var markdown = exports.markdown = function markdown(doc) {
2848 return doc;
2849};
2850
2851/***/ },
2852
2853/***/ "./src/document/index.js":
2854/***/ function(module, exports, __webpack_require__) {
2855
2856"use strict";
2857'use strict';
2858
2859Object.defineProperty(exports, "__esModule", {
2860 value: true
2861});
2862exports.Document = exports.patterns = exports.DefaultPatterns = undefined;
2863
2864var _values = __webpack_require__(18);
2865
2866var _values2 = _interopRequireDefault(_values);
2867
2868var _extends2 = __webpack_require__(0);
2869
2870var _extends3 = _interopRequireDefault(_extends2);
2871
2872var _classCallCheck2 = __webpack_require__(1);
2873
2874var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
2875
2876var _createClass2 = __webpack_require__(2);
2877
2878var _createClass3 = _interopRequireDefault(_createClass2);
2879
2880var _class, _temp;
2881
2882exports.normalizeUri = normalizeUri;
2883
2884var _url = __webpack_require__(113);
2885
2886var _url2 = _interopRequireDefault(_url);
2887
2888var _path = __webpack_require__(8);
2889
2890var _skypagerUtil = __webpack_require__(3);
2891
2892var _pathIsAbsolute = __webpack_require__(42);
2893
2894var _pathIsAbsolute2 = _interopRequireDefault(_pathIsAbsolute);
2895
2896var _collection = __webpack_require__("./src/collection/index.js");
2897
2898var _collection2 = _interopRequireDefault(_collection);
2899
2900var _mapValues = __webpack_require__(21);
2901
2902var _mapValues2 = _interopRequireDefault(_mapValues);
2903
2904var _isFunction = __webpack_require__(35);
2905
2906var _isFunction2 = _interopRequireDefault(_isFunction);
2907
2908var _vfile = __webpack_require__(114);
2909
2910var _vfile2 = _interopRequireDefault(_vfile);
2911
2912var _get = __webpack_require__(15);
2913
2914var _get2 = _interopRequireDefault(_get);
2915
2916var _result = __webpack_require__(39);
2917
2918var _result2 = _interopRequireDefault(_result);
2919
2920var _set = __webpack_require__(40);
2921
2922var _set2 = _interopRequireDefault(_set);
2923
2924var _omit = __webpack_require__(37);
2925
2926var _omit2 = _interopRequireDefault(_omit);
2927
2928var _pick = __webpack_require__(38);
2929
2930var _pick2 = _interopRequireDefault(_pick);
2931
2932var _uniq = __webpack_require__(41);
2933
2934var _uniq2 = _interopRequireDefault(_uniq);
2935
2936function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2937
2938var DefaultPatterns = exports.DefaultPatterns = ['**/*.{js,md,yml,json,svg,html,css,scss,less,json}', '!node_modules/**'];
2939
2940var patterns = exports.patterns = DefaultPatterns;
2941
2942var Document = exports.Document = (_temp = _class = function () {
2943 (0, _createClass3.default)(Document, null, [{
2944 key: 'mountCollection',
2945 value: function mountCollection() {
2946 var cwd = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : process.cwd();
2947 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2948
2949 return _collection2.default.mount(cwd, options);
2950 }
2951 }]);
2952
2953 function Document(vFileOrPath) {
2954 var _this = this;
2955
2956 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2957 (0, _classCallCheck3.default)(this, Document);
2958
2959 (0, _skypagerUtil.mixinPropertyUtils)(this);
2960
2961 var originalURI = normalizeUri(vFileOrPath.path ? vFileOrPath.path : vFileOrPath, options.cwd || process.cwd());
2962
2963 if (options.project) {
2964 this.hide('project', options.project);
2965 delete options.project;
2966 }
2967
2968 if (options.collection) {
2969 this.hide('collection', options.collection);
2970 delete options.collection;
2971 }
2972
2973 this.hide('options', options);
2974 this.hide('cwd', options.cwd);
2975 this.hide('originalURI', originalURI);
2976 this.hide('parsedURI', _url2.default.parse(this.originalURI));
2977 this.hide('url', this.parsedURI.href);
2978 this.hide('uri', this.url);
2979 this.hide('path', unescape(this.parsedURI.path));
2980
2981 if (vFileOrPath.path) {
2982 this.options.file = vFileOrPath;
2983 }
2984
2985 this.lazy('file', function () {
2986 return _this.toVFile((0, _extends3.default)({
2987 cwd: _this.cwd
2988 }, _this.options.file || {}));
2989 });
2990
2991 this.hide('data', {});
2992 this.lazy('id', this.buildId.bind(this));
2993 }
2994
2995 (0, _createClass3.default)(Document, [{
2996 key: 'getTransformPresets',
2997 value: function getTransformPresets() {
2998 return this.matchingDocTypes.reduce(function (memo, docType) {
2999 return (0, _extends3.default)({}, memo, docType.getTransforms ? docType.getTransforms() : {});
3000 });
3001 }
3002 }, {
3003 key: 'getTransforms',
3004 value: function getTransforms() {
3005 return this.matchingDocTypes.reduce(function (memo, docType) {
3006 return (0, _extends3.default)({}, memo, docType.getTransforms ? docType.getTransforms() : {});
3007 });
3008 }
3009 }, {
3010 key: 'getUtils',
3011 value: function getUtils() {
3012 return this.matchingDocTypes.reduce(function (memo, docType) {
3013 return (0, _extends3.default)({}, memo, docType.getUtils ? docType.getUtils() : {});
3014 });
3015 }
3016 }, {
3017 key: 'buildId',
3018 value: function buildId() {
3019 if ((0, _isFunction2.default)(this.options.buildId)) {
3020 return this.options.buildId((0, _path.relative)(this.cwd, this.path));
3021 } else if (this.collection && (0, _isFunction2.default)(this.collection.buildId)) {
3022 return this.collection.buildId((0, _path.relative)(this.cwd, this.path));
3023 } else {
3024 return (0, _path.relative)(this.cwd, this.path).replace(/\.\w+$/g, '').replace(/\.js$/g, '');
3025 }
3026 }
3027 }, {
3028 key: 'applyDoctypes',
3029 value: function applyDoctypes() {
3030 var _this2 = this;
3031
3032 this.matchingDocTypes.forEach(function (docType) {
3033 docType.decorate(_this2);
3034 });
3035
3036 return this;
3037 }
3038 }, {
3039 key: 'toJson',
3040 value: function toJson() {
3041 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3042
3043 return (0, _extends3.default)({
3044 id: this.id,
3045 file: (0, _omit2.default)(this.file, 'contents', '_contents'),
3046 metadata: this.metadata,
3047 idParts: this.idParts,
3048 categoryFolder: this.categoryFolder,
3049 categoryFolderName: this.categoryFolderName,
3050 baseFolder: this.baseFolder,
3051 variations: this.variations
3052 }, options.pick ? (0, _pick2.default)(this, options.pick) : {}, options.pickBy ? pickBy(this, options.pickBy) : {}, options.includeContents ? { contents: this.file.contents } : {});
3053 }
3054 }, {
3055 key: 'toVFile',
3056 value: function toVFile() {
3057 var fileOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3058
3059 return (0, _vfile2.default)((0, _extends3.default)({
3060 path: this.path
3061 }, fileOptions));
3062 }
3063 }, {
3064 key: 'readFile',
3065 value: function readFile() {
3066 var cache = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
3067
3068 this.file.contents = cache && this.contents ? this.contents : this.project.readFileSync(this.file.path).toString();
3069
3070 return this;
3071 }
3072 }, {
3073 key: 'readFileAsync',
3074 value: function readFileAsync() {
3075 var _this3 = this;
3076
3077 return this.project.readFileAsync(this.file.path).then(function (contents) {
3078 return _this3.contents = contents.toString();
3079 });
3080 }
3081 }, {
3082 key: 'createStemVariations',
3083 value: function createStemVariations() {
3084 var base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.variationsBase;
3085 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3086 var startCase = _skypagerUtil.strings.startCase;
3087 var camelCase = _skypagerUtil.strings.camelCase;
3088 var kebabCase = _skypagerUtil.strings.kebabCase;
3089 var snakeCase = _skypagerUtil.strings.snakeCase;
3090
3091
3092 return (0, _mapValues2.default)({
3093 classified: startCase(camelCase(base)).replace(/\s+/g, ''),
3094 camel: camelCase(base),
3095 kebab: kebabCase(base),
3096 snake: snakeCase(base),
3097 underscored: kebabCase(base).replace(/\-/g, '_')
3098 }, function (v) {
3099 var value = '' + (options.prefix || '') + v + (options.suffix || '');
3100 var modifier = options.pluralize ? _skypagerUtil.strings.pluralize : options.singularize ? _skypagerUtil.strings.singularize : function (v) {
3101 return v;
3102 };
3103
3104 return modifier(value);
3105 });
3106 }
3107 }, {
3108 key: 'getFileContents',
3109 value: function getFileContents() {
3110 return this.get('file.contents', '').toString();
3111 }
3112 }, {
3113 key: 'decorated',
3114 get: function get() {
3115 this.applyDoctypes();
3116 return this;
3117 }
3118 }, {
3119 key: 'chain',
3120 get: function get() {
3121 return this.project.chain.plant(this);
3122 }
3123 }, {
3124 key: 'exporter',
3125 get: function get() {
3126 return this.project.chain.plant(this.ready);
3127 }
3128 }, {
3129 key: 'ready',
3130 get: function get() {
3131 return this.readFile().decorated;
3132 }
3133 }, {
3134 key: 'doctypes',
3135 get: function get() {
3136 return this.docTypes;
3137 }
3138 }, {
3139 key: 'docTypes',
3140 get: function get() {
3141 var project = this.project;
3142
3143
3144 return project.chain.get('documentTypes.available').thru(function (list) {
3145 return list.map(function (docType) {
3146 return project.documentType(docType);
3147 });
3148 }).value();
3149 }
3150 }, {
3151 key: 'matchingDocTypes',
3152 get: function get() {
3153 var _this4 = this;
3154
3155 var project = this.project;
3156
3157
3158 return project.chain.get('documentTypes.available').thru(function (list) {
3159 return list.map(function (docType) {
3160 return project.documentType(docType);
3161 });
3162 }).flatten().filter(function (docType) {
3163 return docType.testDocument(_this4);
3164 }).value();
3165 }
3166 }, {
3167 key: 'idParts',
3168 get: function get() {
3169 return this.id.split('/');
3170 }
3171 }, {
3172 key: 'baseFolder',
3173 get: function get() {
3174 return this.idParts[0];
3175 }
3176 }, {
3177 key: 'categoryFolderName',
3178 get: function get() {
3179 return this.idParts[1];
3180 }
3181 }, {
3182 key: 'categoryFolder',
3183 get: function get() {
3184 return this.idParts.slice(0, 2).join('/');
3185 }
3186 }, {
3187 key: 'metadata',
3188 get: function get() {
3189 return (0, _extends3.default)({}, this.fileData, this.data);
3190 }
3191 }, {
3192 key: 'idPair',
3193 get: function get() {
3194 return [this.id, this];
3195 }
3196 }, {
3197 key: 'isIndex',
3198 get: function get() {
3199 return !!(this.id.match(/index$/) || this.file.basename === 'index.js');
3200 }
3201 }, {
3202 key: 'isPackageManifest',
3203 get: function get() {
3204 return this.fileBaseName === 'package.json';
3205 }
3206 }, {
3207 key: 'variationsBase',
3208 get: function get() {
3209 return this.isIndex ? this.fileDirnameBasename : this.fileStem;
3210 }
3211 }, {
3212 key: 'fileExtname',
3213 get: function get() {
3214 return this.file.extname;
3215 }
3216 }, {
3217 key: 'isMarkdown',
3218 get: function get() {
3219 return this.fileExtname && this.fileExtname.match(/.md$/);
3220 }
3221 }, {
3222 key: 'isJavascript',
3223 get: function get() {
3224 return this.fileExtname && this.fileExtname.match(/.js$/);
3225 }
3226 }, {
3227 key: 'fileData',
3228 get: function get() {
3229 return (0, _isFunction2.default)(this.options.getFileData) ? this.options.getFileData.call(this, this.file) : this.get('file.data', {});
3230 }
3231 }, {
3232 key: 'fileMessages',
3233 get: function get() {
3234 return this.file.messages;
3235 }
3236 }, {
3237 key: 'variations',
3238 get: function get() {
3239 return (0, _extends3.default)({}, this.createStemVariations(this.variationsBase), {
3240 singularized: this.createStemVariations(this.variationsBase, {
3241 singularize: true
3242 }),
3243 pluralized: this.createStemVariations(this.variationsBase, {
3244 pluralize: true
3245 })
3246 });
3247 }
3248 }, {
3249 key: 'nameVariations',
3250 get: function get() {
3251 var variations = this.variations;
3252
3253 return (0, _uniq2.default)((0, _values2.default)((0, _omit2.default)(variations, 'pluralized', 'singularized')).concat((0, _values2.default)(variations.pluralized), (0, _values2.default)(variations.singularized)));
3254 }
3255 }, {
3256 key: 'indexVariations',
3257 get: function get() {
3258 return this.createStemVariations(this.variationsBase, {
3259 suffix: '/index' + this.fileExtname
3260 });
3261 }
3262 }, {
3263 key: 'filenameVariations',
3264 get: function get() {
3265 return (0, _extends3.default)({}, this.createStemVariations(this.variationsBase, {
3266 suffix: this.fileExtname
3267 }));
3268 }
3269 }, {
3270 key: 'fileStem',
3271 get: function get() {
3272 return this.file.stem;
3273 }
3274 }, {
3275 key: 'fileBaseName',
3276 get: function get() {
3277 return this.file.basename;
3278 }
3279 }, {
3280 key: 'fileDirname',
3281 get: function get() {
3282 return this.file.dirname;
3283 }
3284 }, {
3285 key: 'fileDirnameBasename',
3286 get: function get() {
3287 return (0, _path.basename)(this.fileDirname);
3288 }
3289 }, {
3290 key: 'baseRelativePath',
3291 get: function get() {
3292 return (0, _path.relative)(this.cwd, this.path);
3293 }
3294 }, {
3295 key: 'stat',
3296 get: function get() {
3297 return this.get('file.stat', {});
3298 }
3299 }, {
3300 key: 'cacheKey',
3301 get: function get() {
3302 return this.file && this.file.stat ? [Math.floor(this.stat.mtime / 100), this.stat.size].join(':') : this.id;
3303 }
3304 }, {
3305 key: 'isRemote',
3306 get: function get() {
3307 return this.uri.protocol.indexOf('http') !== -1;
3308 }
3309 }]);
3310 return Document;
3311}(), _class.patterns = DefaultPatterns, _temp);
3312exports.default = Document;
3313function normalizeUri(input) {
3314 var cwd = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : process.cwd();
3315
3316 if (typeof input !== 'string') {
3317 throw 'Must pass the URI as a string';
3318 }
3319
3320 var parsed = _url2.default.parse(input);
3321
3322 var isFilePath = parsed.protocol === null || parsed.protocol.indexOf('file') !== -1;
3323 var isRemoteUrl = !isFilePath && parsed.protocol.indexOf('http') !== -1;
3324 var isAbsoluteFilePath = isFilePath && (0, _pathIsAbsolute2.default)(parsed.path);
3325
3326 if (isRemoteUrl) {
3327 return _url2.default.format(parsed);
3328 }
3329
3330 if (isFilePath && isAbsoluteFilePath) {
3331 return _url2.default.format({
3332 protocol: 'file:',
3333 slashes: true,
3334 pathname: parsed.path
3335 });
3336 } else {
3337 return _url2.default.format({
3338 protocol: 'file:',
3339 slashes: true,
3340 pathname: (0, _path.resolve)(cwd, parsed.path)
3341 });
3342 }
3343
3344 return input;
3345}
3346
3347/***/ },
3348
3349/***/ "./src/file-systems/node.js":
3350/***/ function(module, exports, __webpack_require__) {
3351
3352"use strict";
3353'use strict';
3354
3355Object.defineProperty(exports, "__esModule", {
3356 value: true
3357});
3358
3359var _toConsumableArray2 = __webpack_require__(4);
3360
3361var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
3362
3363var _pick = __webpack_require__(38);
3364
3365var _pick2 = _interopRequireDefault(_pick);
3366
3367var _mapValues = __webpack_require__(21);
3368
3369var _mapValues2 = _interopRequireDefault(_mapValues);
3370
3371var _fsExtraPromise = __webpack_require__(76);
3372
3373var _fsExtraPromise2 = _interopRequireDefault(_fsExtraPromise);
3374
3375function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3376
3377exports.default = function () {
3378 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3379 var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3380
3381 var host = options.host || options.project || context.project;
3382
3383 var _options$methods = options.methods;
3384 var methods = _options$methods === undefined ? ['walk', 'outputJson', 'writeFile', 'readFile', 'readdir', 'readJson', 'writeJson', 'outputFile', 'exists', 'mkdirp', 'copy'] : _options$methods;
3385
3386
3387 methods.push.apply(methods, (0, _toConsumableArray3.default)(methods.map(function (name) {
3388 return name + 'Sync';
3389 })));
3390 methods.push.apply(methods, (0, _toConsumableArray3.default)(methods.map(function (name) {
3391 return name + 'Async';
3392 })));
3393
3394 host.hide('fsx', (0, _pick2.default)(_fsExtraPromise2.default, methods));
3395 host.hide('fs', host.fsx);
3396
3397 // proxy the methods from directly on the host
3398 (0, _mapValues2.default)(host.fsx, function (fn, name) {
3399 return host.hide(name, function () {
3400 var _host$fsx;
3401
3402 return (_host$fsx = host.fsx)[name].apply(_host$fsx, arguments);
3403 });
3404 });
3405
3406 return host;
3407};
3408
3409/***/ },
3410
3411/***/ "./src/generators/portfolio.js":
3412/***/ function(module, exports) {
3413
3414"use strict";
3415"use strict";
3416
3417Object.defineProperty(exports, "__esModule", {
3418 value: true
3419});
3420var create = exports.create = function create() {
3421 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3422 var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3423};
3424
3425/***/ },
3426
3427/***/ "./src/generators/project.js":
3428/***/ function(module, exports) {
3429
3430"use strict";
3431"use strict";
3432
3433Object.defineProperty(exports, "__esModule", {
3434 value: true
3435});
3436var create = exports.create = function create() {
3437 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3438 var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3439};
3440
3441/***/ },
3442
3443/***/ "./src/git/index.js":
3444/***/ function(module, exports, __webpack_require__) {
3445
3446"use strict";
3447'use strict';
3448
3449var fs = __webpack_require__(75);
3450var path = __webpack_require__(8);
3451var zlib = __webpack_require__(117);
3452
3453var GIT_DIR = '.git';
3454
3455function findRepo(startingPath) {
3456 var gitPath = void 0,
3457 lastPath = void 0;
3458 var currentPath = startingPath;
3459
3460 if (!currentPath) {
3461 currentPath = process.cwd();
3462 }
3463
3464 do {
3465 gitPath = path.join(currentPath, GIT_DIR);
3466
3467 if (fs.existsSync(gitPath)) {
3468 return gitPath;
3469 }
3470
3471 lastPath = currentPath;
3472 currentPath = path.resolve(currentPath, '..');
3473 } while (lastPath !== currentPath);
3474
3475 return null;
3476}
3477
3478function findPackedTag(gitPath, sha) {
3479 var packedRefsFilePath = path.join(gitPath, 'packed-refs');
3480 if (fs.existsSync(packedRefsFilePath)) {
3481 var packedRefsFile = fs.readFileSync(packedRefsFilePath, { encoding: 'utf8' });
3482 var tagLine = packedRefsFile.split('\n').filter(function (line) {
3483 return line.indexOf('refs/tags') > -1 && line.indexOf(sha) > -1;
3484 })[0];
3485
3486 if (tagLine) {
3487 return tagLine.split('tags/')[1];
3488 }
3489 }
3490}
3491
3492function commitForTag(gitPath, tag) {
3493 var tagPath = path.join(gitPath, 'refs', 'tags', tag);
3494 var taggedObject = fs.readFileSync(tagPath, { encoding: 'utf8' }).trim();
3495 var objectPath = path.join(gitPath, 'objects', taggedObject.slice(0, 2), taggedObject.slice(2));
3496
3497 if (!zlib.inflateSync || !fs.existsSync(objectPath)) {
3498 // we cannot support annotated tags on node v0.10 because
3499 // zlib does not allow sync access
3500 return taggedObject;
3501 }
3502
3503 var objectContents = zlib.inflateSync(fs.readFileSync(objectPath)).toString();
3504
3505 // 'tag 172\u0000object c1ee41c325d54f410b133e0018c7a6b1316f6cda\ntype commit\ntag awesome-tag\ntagger Robert Jackson <robert.w.jackson@me.com> 1429100021 -0400\n\nI am making an annotated tag.\n'
3506 if (objectContents.slice(0, 3) === 'tag') {
3507 var sections = objectContents.split(/\0|\n/);
3508 var sha = sections[1].slice(7);
3509
3510 return sha;
3511 } else {
3512 // this will return the tag for lightweight tags
3513 return taggedObject;
3514 }
3515}
3516
3517function findTag(gitPath, sha) {
3518 var tag = findPackedTag(gitPath, sha);
3519 if (tag) {
3520 return tag;
3521 }
3522
3523 var tagsPath = path.join(gitPath, 'refs', 'tags');
3524 if (!fs.existsSync(tagsPath)) {
3525 return false;
3526 }
3527
3528 var tags = fs.readdirSync(tagsPath);
3529
3530 for (var i = 0, l = tags.length; i < l; i++) {
3531 tag = tags[i];
3532 var commitAtTag = commitForTag(gitPath, tags[i]);
3533
3534 if (commitAtTag === sha) {
3535 return tag;
3536 }
3537 }
3538}
3539
3540module.exports = function (gitPath) {
3541 gitPath = findRepo(gitPath);
3542
3543 var result = {
3544 sha: null,
3545 abbreviatedSha: null,
3546 branch: null,
3547 tag: null,
3548 root: path.resolve(gitPath, '..')
3549 };
3550
3551 try {
3552 var headFilePath = path.join(gitPath, 'HEAD');
3553
3554 if (fs.existsSync(headFilePath)) {
3555 var headFile = fs.readFileSync(headFilePath, { encoding: 'utf8' });
3556 var branchName = headFile.split('/').slice(2).join('/').trim();
3557 if (!branchName) {
3558 branchName = headFile.split('/').slice(-1)[0].trim();
3559 }
3560 var refPath = headFile.split(' ')[1];
3561
3562 // Find branch and SHA
3563 if (refPath) {
3564 var branchPath = path.join(gitPath, refPath.trim());
3565
3566 result.branch = branchName;
3567 result.sha = fs.readFileSync(branchPath, { encoding: 'utf8' }).trim();
3568 } else {
3569 result.sha = branchName;
3570 }
3571
3572 result.abbreviatedSha = result.sha.slice(0, 10);
3573
3574 // Find tag
3575 var tag = findTag(gitPath, result.sha);
3576 if (tag) {
3577 result.tag = tag;
3578 }
3579 }
3580 } catch (e) {
3581 if (!module.exports._suppressErrors) {
3582 throw e; // helps with testing and scenarios where we do not expect errors
3583 } else {
3584 // eat the error
3585 }
3586 }
3587
3588 return result;
3589};
3590
3591module.exports._suppressErrors = true;
3592module.exports._findRepo = findRepo;
3593
3594/***/ },
3595
3596/***/ "./src/helper.js":
3597/***/ function(module, exports, __webpack_require__) {
3598
3599"use strict";
3600'use strict';
3601
3602Object.defineProperty(exports, "__esModule", {
3603 value: true
3604});
3605exports.attach = exports.Helper = exports.requireContext = undefined;
3606
3607var _extends2 = __webpack_require__(0);
3608
3609var _extends3 = _interopRequireDefault(_extends2);
3610
3611var _classCallCheck2 = __webpack_require__(1);
3612
3613var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
3614
3615var _createClass2 = __webpack_require__(2);
3616
3617var _createClass3 = _interopRequireDefault(_createClass2);
3618
3619var _class, _temp;
3620
3621var _lodash = __webpack_require__(11);
3622
3623var _lodash2 = _interopRequireDefault(_lodash);
3624
3625var _skypagerRegistry = __webpack_require__(9);
3626
3627var _skypagerUtil = __webpack_require__(3);
3628
3629var _emitter = __webpack_require__("./src/utils/emitter.js");
3630
3631var _emitter2 = _interopRequireDefault(_emitter);
3632
3633function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3634
3635var camelize = _skypagerUtil.strings.camelize;
3636var underscore = _skypagerUtil.strings.underscore;
3637var singularize = _skypagerUtil.strings.singularize;
3638var pluralize = _skypagerUtil.strings.pluralize;
3639
3640
3641Promise.resolve().catch(function(err) { __webpack_require__.oe(err); }).then((function () {
3642 Helper.modules = new _skypagerRegistry.Context('helpers', { context: __webpack_require__(17) });
3643}).bind(null, __webpack_require__));
3644
3645var requireContext = exports.requireContext = __webpack_require__(17);
3646
3647var Helper = exports.Helper = (_temp = _class = function () {
3648 (0, _createClass3.default)(Helper, null, [{
3649 key: 'cacheable',
3650 value: function cacheable() {
3651 var setting = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
3652
3653 return this.isCacheable = !!setting;
3654 }
3655 }, {
3656 key: 'attach',
3657 value: function attach(host) {
3658 var helperClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Helper;
3659 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
3660
3661 return _attach(host, helperClass, options);
3662 }
3663 }]);
3664
3665 function Helper() {
3666 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3667 var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3668 (0, _classCallCheck3.default)(this, Helper);
3669 this.isInitialized = false;
3670 this.isConfigured = false;
3671
3672 (0, _skypagerUtil.mixinPropertyUtils)(this);
3673 (0, _emitter2.default)(this);
3674
3675 this.hide('context', context);
3676 this.hide('project', context.project);
3677 this.hideGetter('options', function () {
3678 return _lodash2.default.omit(options, 'provider');
3679 });
3680 this.getter('provider', function () {
3681 return options.provider;
3682 });
3683
3684 this.name = options.provider.name || options.id;
3685 this.id = [this.get('project.id', this.constructor.name), this.name, Math.floor(new Date() / 100)].join(':');
3686
3687 if (options.initialize !== false) {
3688 this.doInitialize();
3689 }
3690 }
3691
3692 (0, _createClass3.default)(Helper, [{
3693 key: 'doInitialize',
3694 value: function doInitialize() {
3695 this.isInitialized = !!this.result('initialize', function () {
3696 return true;
3697 });
3698
3699 if (this.configure && this.options.configure) {
3700 this.configure(this.options.configure);
3701 }
3702 }
3703 }, {
3704 key: 'initialized',
3705 get: function get() {
3706 this.doInitialize();
3707 return this;
3708 }
3709 }, {
3710 key: 'chain',
3711 get: function get() {
3712 return _lodash2.default.chain(this);
3713 }
3714 }]);
3715 return Helper;
3716}(), _class.isCacheable = true, _class.requireContext = requireContext, _class.createRegistry = function () {
3717 return Helper.modules || new _skypagerRegistry.Context('helpers', { context: __webpack_require__(17) });
3718}, _temp);
3719exports.default = Helper;
3720var _attach = function _attach(host, helperClass) {
3721 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
3722 var _options$registryProp = options.registryProp;
3723 var registryProp = _options$registryProp === undefined ? camelize(pluralize(underscore(helperClass.name))).toLowerCase() : _options$registryProp;
3724 var _options$lookupProp = options.lookupProp;
3725 var lookupProp = _options$lookupProp === undefined ? singularize(camelize(underscore(helperClass.name))).toLowerCase() : _options$lookupProp;
3726
3727
3728 if (host[registryProp]) {
3729 return host;
3730 }
3731
3732 (0, _skypagerUtil.lazy)(host, registryProp, function () {
3733 return options.registry || helperClass.createRegistry();
3734 });
3735
3736 (0, _skypagerUtil.hideProperty)(host, lookupProp, function (name) {
3737 var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3738 var ctx = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
3739
3740 var reg = host[registryProp];
3741
3742 var _opts$cacheHelper = opts.cacheHelper;
3743 var cacheHelper = _opts$cacheHelper === undefined ? !!(helperClass.isCacheable || opts.cacheHelper) : _opts$cacheHelper;
3744
3745
3746 if (!cacheHelper) {
3747 return new helperClass((0, _extends3.default)({}, opts, {
3748 provider: reg.lookup(name),
3749 id: name
3750 }), (0, _extends3.default)({}, host.createSandbox(), {
3751 host: host,
3752 reg: reg
3753 }));
3754 } else {
3755 return host.cache.fetch(host.instanceId + ':' + lookupProp + ':' + name, function () {
3756 return new helperClass((0, _extends3.default)({}, opts, { provider: reg.lookup(name), id: name }), (0, _extends3.default)({}, host.createSandbox(ctx), {
3757 host: host,
3758 reg: reg
3759 }));
3760 });
3761 }
3762 });
3763
3764 return host;
3765};
3766exports.attach = _attach;
3767
3768/***/ },
3769
3770/***/ "./src/helpers/config-builder.js":
3771/***/ function(module, exports, __webpack_require__) {
3772
3773"use strict";
3774'use strict';
3775
3776Object.defineProperty(exports, "__esModule", {
3777 value: true
3778});
3779exports.ConfigBuilder = undefined;
3780
3781var _extends2 = __webpack_require__(0);
3782
3783var _extends3 = _interopRequireDefault(_extends2);
3784
3785var _defineEnumerableProperties2 = __webpack_require__(32);
3786
3787var _defineEnumerableProperties3 = _interopRequireDefault(_defineEnumerableProperties2);
3788
3789var _assign = __webpack_require__(13);
3790
3791var _assign2 = _interopRequireDefault(_assign);
3792
3793var _keys = __webpack_require__(14);
3794
3795var _keys2 = _interopRequireDefault(_keys);
3796
3797var _getPrototypeOf = __webpack_require__(5);
3798
3799var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
3800
3801var _classCallCheck2 = __webpack_require__(1);
3802
3803var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
3804
3805var _createClass2 = __webpack_require__(2);
3806
3807var _createClass3 = _interopRequireDefault(_createClass2);
3808
3809var _possibleConstructorReturn2 = __webpack_require__(7);
3810
3811var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
3812
3813var _inherits2 = __webpack_require__(6);
3814
3815var _inherits3 = _interopRequireDefault(_inherits2);
3816
3817var _class, _temp;
3818
3819var _skypagerRegistry = __webpack_require__(9);
3820
3821var _helper = __webpack_require__("./src/helper.js");
3822
3823var _helper2 = _interopRequireDefault(_helper);
3824
3825function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3826
3827var ConfigBuilder = exports.ConfigBuilder = (_temp = _class = function (_Helper) {
3828 (0, _inherits3.default)(ConfigBuilder, _Helper);
3829
3830 function ConfigBuilder() {
3831 (0, _classCallCheck3.default)(this, ConfigBuilder);
3832 return (0, _possibleConstructorReturn3.default)(this, (ConfigBuilder.__proto__ || (0, _getPrototypeOf2.default)(ConfigBuilder)).apply(this, arguments));
3833 }
3834
3835 (0, _createClass3.default)(ConfigBuilder, [{
3836 key: 'initialize',
3837 value: function initialize() {
3838 var _this2 = this;
3839
3840 var api = this.api = this.build(this.options);
3841
3842 (0, _keys2.default)(this.api).forEach(function (key) {
3843 var _Object$assign2, _mutatorMap;
3844
3845 (0, _assign2.default)(_this2, (_Object$assign2 = {}, _mutatorMap = {}, _mutatorMap[key] = _mutatorMap[key] || {}, _mutatorMap[key].get = function () {
3846 return api[key];
3847 }, (0, _defineEnumerableProperties3.default)(_Object$assign2, _mutatorMap), _Object$assign2));
3848 });
3849 }
3850 }, {
3851 key: 'build',
3852 value: function build() {
3853 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3854
3855 return this.cached = this.cached || this.provider.api({
3856 features: this.features,
3857 reducers: this.reducers,
3858 scope: this.project
3859 }, this.context);
3860 }
3861 }, {
3862 key: 'features',
3863 get: function get() {
3864 return this.result('provider.features', this.result('provider.defaultFeatures', function () {
3865 return {};
3866 }));
3867 }
3868 }, {
3869 key: 'reducers',
3870 get: function get() {
3871 return this.result('provider.reducers', this.result('provider.defaultReducers', function () {
3872 return {};
3873 }));
3874 }
3875 }, {
3876 key: 'config',
3877 get: function get() {
3878 return this.api.getConfig();
3879 }
3880 }], [{
3881 key: 'cacheable',
3882 value: function cacheable() {
3883 var setting = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
3884
3885 return this.isCacheable = !!setting;
3886 }
3887 }, {
3888 key: 'attach',
3889 value: function attach(project) {
3890 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3891
3892 return _helper2.default.attach(project, ConfigBuilder, (0, _extends3.default)({
3893 registryProp: 'configBuilders',
3894 lookupProp: 'configBuilder',
3895 registry: options.registry || ConfigBuilder.createRegistry()
3896 }, options));
3897 }
3898 }]);
3899 return ConfigBuilder;
3900}(_helper2.default), _class.isCacheable = true, _class.createRegistry = function () {
3901 return new _skypagerRegistry.Context('configBuilders', {
3902 context: __webpack_require__(52)
3903 });
3904}, _temp);
3905exports.default = ConfigBuilder;
3906
3907/***/ },
3908
3909/***/ "./src/helpers/data-source.js":
3910/***/ function(module, exports, __webpack_require__) {
3911
3912"use strict";
3913'use strict';
3914
3915Object.defineProperty(exports, "__esModule", {
3916 value: true
3917});
3918exports.DataSource = undefined;
3919
3920var _extends2 = __webpack_require__(0);
3921
3922var _extends3 = _interopRequireDefault(_extends2);
3923
3924var _promise = __webpack_require__(12);
3925
3926var _promise2 = _interopRequireDefault(_promise);
3927
3928var _getPrototypeOf = __webpack_require__(5);
3929
3930var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
3931
3932var _classCallCheck2 = __webpack_require__(1);
3933
3934var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
3935
3936var _createClass2 = __webpack_require__(2);
3937
3938var _createClass3 = _interopRequireDefault(_createClass2);
3939
3940var _possibleConstructorReturn2 = __webpack_require__(7);
3941
3942var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
3943
3944var _inherits2 = __webpack_require__(6);
3945
3946var _inherits3 = _interopRequireDefault(_inherits2);
3947
3948var _class, _temp;
3949
3950var _skypagerRegistry = __webpack_require__(9);
3951
3952var _helper = __webpack_require__("./src/helper.js");
3953
3954var _helper2 = _interopRequireDefault(_helper);
3955
3956function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3957
3958var DataSource = exports.DataSource = (_temp = _class = function (_Helper) {
3959 (0, _inherits3.default)(DataSource, _Helper);
3960
3961 function DataSource() {
3962 (0, _classCallCheck3.default)(this, DataSource);
3963 return (0, _possibleConstructorReturn3.default)(this, (DataSource.__proto__ || (0, _getPrototypeOf2.default)(DataSource)).apply(this, arguments));
3964 }
3965
3966 (0, _createClass3.default)(DataSource, [{
3967 key: 'load',
3968 value: function load() {
3969 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3970
3971 return _promise2.default.resolve(this.source(options));
3972 }
3973 }, {
3974 key: 'source',
3975 get: function get() {
3976 var _this2 = this;
3977
3978 var source = this.provider.default ? this.provider.default : this.provider;
3979
3980 return typeof source === 'function' ? function () {
3981 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3982 return source((0, _extends3.default)({}, _this2.options, options), _this2.context);
3983 } : function () {
3984 return source;
3985 };
3986 }
3987 }], [{
3988 key: 'cacheable',
3989 value: function cacheable() {
3990 var setting = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
3991
3992 return this.isCacheable = !!setting;
3993 }
3994 }, {
3995 key: 'attach',
3996 value: function attach(project) {
3997 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3998
3999 return (0, _helper.attach)(project, DataSource, (0, _extends3.default)({
4000 registryProp: 'dataSources',
4001 lookupProp: 'dataSource',
4002 registry: options.registry || DataSource.createRegistry()
4003 }, options));
4004 }
4005 }]);
4006 return DataSource;
4007}(_helper2.default), _class.isCacheable = true, _class.createRegistry = function () {
4008 return new _skypagerRegistry.Context('dataSources', {
4009 context: __webpack_require__(57)
4010 });
4011}, _temp);
4012exports.default = DataSource;
4013
4014/***/ },
4015
4016/***/ "./src/helpers/document-type.js":
4017/***/ function(module, exports, __webpack_require__) {
4018
4019"use strict";
4020'use strict';
4021
4022Object.defineProperty(exports, "__esModule", {
4023 value: true
4024});
4025exports.DocumentType = undefined;
4026
4027var _extends2 = __webpack_require__(0);
4028
4029var _extends3 = _interopRequireDefault(_extends2);
4030
4031var _getPrototypeOf = __webpack_require__(5);
4032
4033var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
4034
4035var _classCallCheck2 = __webpack_require__(1);
4036
4037var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
4038
4039var _createClass2 = __webpack_require__(2);
4040
4041var _createClass3 = _interopRequireDefault(_createClass2);
4042
4043var _possibleConstructorReturn2 = __webpack_require__(7);
4044
4045var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
4046
4047var _inherits2 = __webpack_require__(6);
4048
4049var _inherits3 = _interopRequireDefault(_inherits2);
4050
4051var _class, _temp;
4052
4053var _skypagerRegistry = __webpack_require__(9);
4054
4055var _helper = __webpack_require__("./src/helper.js");
4056
4057var _helper2 = _interopRequireDefault(_helper);
4058
4059function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4060
4061var DocumentType = exports.DocumentType = (_temp = _class = function (_Helper) {
4062 (0, _inherits3.default)(DocumentType, _Helper);
4063
4064 function DocumentType() {
4065 (0, _classCallCheck3.default)(this, DocumentType);
4066 return (0, _possibleConstructorReturn3.default)(this, (DocumentType.__proto__ || (0, _getPrototypeOf2.default)(DocumentType)).apply(this, arguments));
4067 }
4068
4069 (0, _createClass3.default)(DocumentType, [{
4070 key: 'loadMatchingDocuments',
4071 value: function loadMatchingDocuments() {
4072 var _this2 = this;
4073
4074 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
4075 var _options$ready = options.ready;
4076 var ready = _options$ready === undefined ? true : _options$ready;
4077 var _options$pattern = options.pattern;
4078 var pattern = _options$pattern === undefined ? '*' : _options$pattern;
4079
4080
4081 return this.project.route(pattern).filter(function (r) {
4082 return _this2.testDocument(r.doc);
4083 }).map(function (_ref) {
4084 var doc = _ref.doc;
4085 return ready ? doc.ready : doc;
4086 });
4087 }
4088 }, {
4089 key: 'testDocument',
4090 value: function testDocument(doc) {
4091 return this.provider.testDocument(doc);
4092 }
4093 }, {
4094 key: 'decorate',
4095 value: function decorate(doc) {
4096 return this.provider.decorate(doc);
4097 }
4098 }, {
4099 key: 'markdownTransforms',
4100 value: function markdownTransforms() {
4101 return {
4102 markdown: __webpack_require__("./src/transformers/markdown.js").default,
4103 retext: __webpack_require__("./src/transformers/retext.js").default,
4104 rehype: __webpack_require__("./src/transformers/rehype.js").default
4105 };
4106 }
4107 }, {
4108 key: 'markdownUtils',
4109 value: function markdownUtils() {
4110 return {
4111 filter: __webpack_require__(45),
4112 findAfter: __webpack_require__(24),
4113 findAllAfter: __webpack_require__(25),
4114 findAllBefore: __webpack_require__(26),
4115 index: __webpack_require__(46),
4116 map: __webpack_require__(47),
4117 parents: __webpack_require__(48),
4118 position: __webpack_require__(49),
4119 removePosition: __webpack_require__(50),
4120 select: __webpack_require__(16),
4121 source: __webpack_require__(27),
4122 visit: __webpack_require__(28),
4123 reporter: __webpack_require__(51),
4124 rehypeDocument: __webpack_require__(43),
4125 toString: __webpack_require__(22),
4126 docblockParser: __webpack_require__(20)
4127 };
4128 }
4129 }, {
4130 key: 'matchingDocuments',
4131 get: function get() {
4132 return this.loadMatchingDocuments({ ready: false });
4133 }
4134 }], [{
4135 key: 'cacheable',
4136 value: function cacheable() {
4137 var setting = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
4138
4139 return this.isCacheable = !!setting;
4140 }
4141 }, {
4142 key: 'attach',
4143 value: function attach(project) {
4144 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
4145
4146 return _helper2.default.attach(project, DocumentType, (0, _extends3.default)({
4147 registryProp: 'documentTypes',
4148 lookupProp: 'documentType',
4149 registry: options.registry || DocumentType.createRegistry()
4150 }, options));
4151 }
4152 }]);
4153 return DocumentType;
4154}(_helper2.default), _class.isCacheable = true, _class.createRegistry = function () {
4155 return new _skypagerRegistry.Context('documentTypes', {
4156 context: __webpack_require__(58)
4157 });
4158}, _temp);
4159exports.default = DocumentType;
4160
4161/***/ },
4162
4163/***/ "./src/helpers/generator.js":
4164/***/ function(module, exports, __webpack_require__) {
4165
4166"use strict";
4167'use strict';
4168
4169Object.defineProperty(exports, "__esModule", {
4170 value: true
4171});
4172exports.Generator = undefined;
4173
4174var _getPrototypeOf = __webpack_require__(5);
4175
4176var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
4177
4178var _classCallCheck2 = __webpack_require__(1);
4179
4180var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
4181
4182var _createClass2 = __webpack_require__(2);
4183
4184var _createClass3 = _interopRequireDefault(_createClass2);
4185
4186var _possibleConstructorReturn2 = __webpack_require__(7);
4187
4188var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
4189
4190var _inherits2 = __webpack_require__(6);
4191
4192var _inherits3 = _interopRequireDefault(_inherits2);
4193
4194var _class, _temp;
4195
4196var _helper = __webpack_require__("./src/helper.js");
4197
4198var _helper2 = _interopRequireDefault(_helper);
4199
4200function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4201
4202var Generator = exports.Generator = (_temp = _class = function (_Helper) {
4203 (0, _inherits3.default)(Generator, _Helper);
4204
4205 function Generator() {
4206 (0, _classCallCheck3.default)(this, Generator);
4207 return (0, _possibleConstructorReturn3.default)(this, (Generator.__proto__ || (0, _getPrototypeOf2.default)(Generator)).apply(this, arguments));
4208 }
4209
4210 (0, _createClass3.default)(Generator, [{
4211 key: 'run',
4212 value: function run() {
4213 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
4214 }
4215 }, {
4216 key: 'configure',
4217 value: function configure(fn) {}
4218 }], [{
4219 key: 'cacheable',
4220 value: function cacheable() {
4221 var setting = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
4222
4223 return this.isCacheable = !!setting;
4224 }
4225 }]);
4226 return Generator;
4227}(_helper2.default), _class.requireContext = __webpack_require__(59), _class.isCacheable = true, _temp);
4228exports.default = Generator;
4229
4230/***/ },
4231
4232/***/ "./src/helpers/importer.js":
4233/***/ function(module, exports, __webpack_require__) {
4234
4235"use strict";
4236'use strict';
4237
4238Object.defineProperty(exports, "__esModule", {
4239 value: true
4240});
4241exports.Importer = undefined;
4242
4243var _extends2 = __webpack_require__(0);
4244
4245var _extends3 = _interopRequireDefault(_extends2);
4246
4247var _getPrototypeOf = __webpack_require__(5);
4248
4249var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
4250
4251var _classCallCheck2 = __webpack_require__(1);
4252
4253var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
4254
4255var _createClass2 = __webpack_require__(2);
4256
4257var _createClass3 = _interopRequireDefault(_createClass2);
4258
4259var _possibleConstructorReturn2 = __webpack_require__(7);
4260
4261var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
4262
4263var _inherits2 = __webpack_require__(6);
4264
4265var _inherits3 = _interopRequireDefault(_inherits2);
4266
4267var _class, _temp;
4268
4269var _skypagerRegistry = __webpack_require__(9);
4270
4271var _helper = __webpack_require__("./src/helper.js");
4272
4273var _helper2 = _interopRequireDefault(_helper);
4274
4275function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4276
4277var Importer = exports.Importer = (_temp = _class = function (_Helper) {
4278 (0, _inherits3.default)(Importer, _Helper);
4279
4280 function Importer() {
4281 (0, _classCallCheck3.default)(this, Importer);
4282 return (0, _possibleConstructorReturn3.default)(this, (Importer.__proto__ || (0, _getPrototypeOf2.default)(Importer)).apply(this, arguments));
4283 }
4284
4285 (0, _createClass3.default)(Importer, null, [{
4286 key: 'cacheable',
4287 value: function cacheable() {
4288 var setting = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
4289
4290 return this.isCacheable = !!setting;
4291 }
4292 }, {
4293 key: 'attach',
4294 value: function attach(project) {
4295 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
4296
4297 return _helper2.default.attach(project, Importer, (0, _extends3.default)({
4298 registryProp: 'importers',
4299 lookupProp: 'importer',
4300 registry: options.registry || Importer.createRegistry()
4301 }, options));
4302 }
4303 }]);
4304 return Importer;
4305}(_helper2.default), _class.isCacheable = true, _class.createRegistry = function () {
4306 return new _skypagerRegistry.Context('importers', {
4307 context: __webpack_require__(61)
4308 });
4309}, _temp);
4310exports.default = Importer;
4311
4312/***/ },
4313
4314/***/ "./src/helpers/initializer.js":
4315/***/ function(module, exports, __webpack_require__) {
4316
4317"use strict";
4318'use strict';
4319
4320Object.defineProperty(exports, "__esModule", {
4321 value: true
4322});
4323exports.Initializer = undefined;
4324
4325var _getPrototypeOf = __webpack_require__(5);
4326
4327var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
4328
4329var _classCallCheck2 = __webpack_require__(1);
4330
4331var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
4332
4333var _createClass2 = __webpack_require__(2);
4334
4335var _createClass3 = _interopRequireDefault(_createClass2);
4336
4337var _possibleConstructorReturn2 = __webpack_require__(7);
4338
4339var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
4340
4341var _inherits2 = __webpack_require__(6);
4342
4343var _inherits3 = _interopRequireDefault(_inherits2);
4344
4345var _class, _temp;
4346
4347var _helper = __webpack_require__("./src/helper.js");
4348
4349var _helper2 = _interopRequireDefault(_helper);
4350
4351function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4352
4353var Initializer = exports.Initializer = (_temp = _class = function (_Helper) {
4354 (0, _inherits3.default)(Initializer, _Helper);
4355
4356 function Initializer() {
4357 (0, _classCallCheck3.default)(this, Initializer);
4358 return (0, _possibleConstructorReturn3.default)(this, (Initializer.__proto__ || (0, _getPrototypeOf2.default)(Initializer)).apply(this, arguments));
4359 }
4360
4361 (0, _createClass3.default)(Initializer, [{
4362 key: 'run',
4363 value: function run() {
4364 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
4365 }
4366 }, {
4367 key: 'configure',
4368 value: function configure(fn) {}
4369 }], [{
4370 key: 'cacheable',
4371 value: function cacheable() {
4372 var setting = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
4373
4374 return this.isCacheable = !!setting;
4375 }
4376 }]);
4377 return Initializer;
4378}(_helper2.default), _class.requireContext = __webpack_require__(62), _class.isCacheable = true, _temp);
4379exports.default = Initializer;
4380
4381/***/ },
4382
4383/***/ "./src/helpers/project-type.js":
4384/***/ function(module, exports, __webpack_require__) {
4385
4386"use strict";
4387'use strict';
4388
4389Object.defineProperty(exports, "__esModule", {
4390 value: true
4391});
4392exports.ProjectType = undefined;
4393
4394var _extends2 = __webpack_require__(0);
4395
4396var _extends3 = _interopRequireDefault(_extends2);
4397
4398var _getPrototypeOf = __webpack_require__(5);
4399
4400var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
4401
4402var _classCallCheck2 = __webpack_require__(1);
4403
4404var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
4405
4406var _createClass2 = __webpack_require__(2);
4407
4408var _createClass3 = _interopRequireDefault(_createClass2);
4409
4410var _possibleConstructorReturn2 = __webpack_require__(7);
4411
4412var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
4413
4414var _inherits2 = __webpack_require__(6);
4415
4416var _inherits3 = _interopRequireDefault(_inherits2);
4417
4418var _class, _temp;
4419
4420var _skypagerRegistry = __webpack_require__(9);
4421
4422var _helper = __webpack_require__("./src/helper.js");
4423
4424var _helper2 = _interopRequireDefault(_helper);
4425
4426function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4427
4428var ProjectType = exports.ProjectType = (_temp = _class = function (_Helper) {
4429 (0, _inherits3.default)(ProjectType, _Helper);
4430
4431 function ProjectType() {
4432 (0, _classCallCheck3.default)(this, ProjectType);
4433 return (0, _possibleConstructorReturn3.default)(this, (ProjectType.__proto__ || (0, _getPrototypeOf2.default)(ProjectType)).apply(this, arguments));
4434 }
4435
4436 (0, _createClass3.default)(ProjectType, [{
4437 key: 'attach',
4438 value: function attach() {
4439 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
4440
4441 if (this.provider && this.provider.attach) {
4442 this.provider.attach(this.project, (0, _extends3.default)({}, this.options, options));
4443 }
4444
4445 return this;
4446 }
4447 }, {
4448 key: 'use',
4449 value: function use() {
4450 if (this.provider && this.provider.use) {
4451 this.project.use(this.provider.use);
4452 }
4453
4454 return this;
4455 }
4456 }], [{
4457 key: 'cacheable',
4458 value: function cacheable() {
4459 var setting = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
4460
4461 return this.isCacheable = !!setting;
4462 }
4463 }, {
4464 key: 'attach',
4465 value: function attach(project) {
4466 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
4467
4468 return _helper2.default.attach(project, ProjectType, (0, _extends3.default)({
4469 registryProp: 'projectTypes',
4470 lookupProp: 'projectType',
4471 registry: options.registry || ProjectType.createRegistry()
4472 }, options));
4473 }
4474 }]);
4475 return ProjectType;
4476}(_helper2.default), _class.isCacheable = true, _class.createRegistry = function () {
4477 return new _skypagerRegistry.Context('projectTypes', {
4478 context: __webpack_require__(63)
4479 });
4480}, _temp);
4481exports.default = ProjectType;
4482
4483/***/ },
4484
4485/***/ "./src/helpers/transformer.js":
4486/***/ function(module, exports, __webpack_require__) {
4487
4488"use strict";
4489'use strict';
4490
4491Object.defineProperty(exports, "__esModule", {
4492 value: true
4493});
4494exports.Transformer = undefined;
4495
4496var _extends2 = __webpack_require__(0);
4497
4498var _extends3 = _interopRequireDefault(_extends2);
4499
4500var _promise = __webpack_require__(12);
4501
4502var _promise2 = _interopRequireDefault(_promise);
4503
4504var _getPrototypeOf = __webpack_require__(5);
4505
4506var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
4507
4508var _classCallCheck2 = __webpack_require__(1);
4509
4510var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
4511
4512var _createClass2 = __webpack_require__(2);
4513
4514var _createClass3 = _interopRequireDefault(_createClass2);
4515
4516var _possibleConstructorReturn2 = __webpack_require__(7);
4517
4518var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
4519
4520var _inherits2 = __webpack_require__(6);
4521
4522var _inherits3 = _interopRequireDefault(_inherits2);
4523
4524var _class, _temp;
4525
4526var _skypagerRegistry = __webpack_require__(9);
4527
4528var _helper = __webpack_require__("./src/helper.js");
4529
4530var _helper2 = _interopRequireDefault(_helper);
4531
4532function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4533
4534var Transformer = exports.Transformer = (_temp = _class = function (_Helper) {
4535 (0, _inherits3.default)(Transformer, _Helper);
4536
4537 function Transformer() {
4538 (0, _classCallCheck3.default)(this, Transformer);
4539 return (0, _possibleConstructorReturn3.default)(this, (Transformer.__proto__ || (0, _getPrototypeOf2.default)(Transformer)).apply(this, arguments));
4540 }
4541
4542 (0, _createClass3.default)(Transformer, [{
4543 key: 'run',
4544 value: function run() {
4545 var _this2 = this;
4546
4547 for (var _len = arguments.length, inputs = Array(_len), _key = 0; _key < _len; _key++) {
4548 inputs[_key] = arguments[_key];
4549 }
4550
4551 return inputs.map(function (input) {
4552 return _promise2.default.resolve().then(function () {
4553 return _this2.parsed = _this2.parse(input);
4554 }).then(function () {
4555 return _this2.rendered = _this2.render(_this2.parsed);
4556 }).then(function () {
4557 return _this2.pick('parsed', 'rendered', 'projectCacheKey');
4558 });
4559 });
4560 }
4561 }, {
4562 key: 'render',
4563 value: function render(input) {
4564 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
4565
4566 if (typeof input === 'string') {
4567 input = this.parse(input, (0, _extends3.default)({}, options, {
4568 method: 'parse'
4569 }));
4570 }
4571
4572 return this.provider.applyTo(input, (0, _extends3.default)({
4573 method: 'stringify'
4574 }, options));
4575 }
4576 }, {
4577 key: 'parse',
4578 value: function parse(input) {
4579 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
4580
4581 return this.provider.applyTo(input, (0, _extends3.default)({}, options, {
4582 method: 'parse'
4583 }));
4584 }
4585 }, {
4586 key: 'projectCacheKey',
4587 get: function get() {
4588 return this.get('project.cacheKey', this.cacheKey);
4589 }
4590 }], [{
4591 key: 'cacheable',
4592 value: function cacheable() {
4593 var setting = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
4594
4595 return this.isCacheable = !!setting;
4596 }
4597 }, {
4598 key: 'attach',
4599 value: function attach(project) {
4600 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
4601
4602 return _helper2.default.attach(project, Transformer, (0, _extends3.default)({
4603 registryProp: 'transformers',
4604 lookupProp: 'transformer',
4605 registry: options.registry || Transformer.createRegistry()
4606 }, options));
4607 }
4608 }]);
4609 return Transformer;
4610}(_helper2.default), _class.isCacheable = false, _class.createRegistry = function () {
4611 return new _skypagerRegistry.Context('transformers', {
4612 context: __webpack_require__(65)
4613 });
4614}, _temp);
4615exports.default = Transformer;
4616
4617/***/ },
4618
4619/***/ "./src/importers/node-vinyl.js":
4620/***/ function(module, exports, __webpack_require__) {
4621
4622"use strict";
4623'use strict';
4624
4625Object.defineProperty(exports, "__esModule", {
4626 value: true
4627});
4628exports.DocumentImporter = exports.toVFile = exports.DefaultOptions = undefined;
4629
4630var _defineProperty = __webpack_require__(31);
4631
4632var _defineProperty2 = _interopRequireDefault(_defineProperty);
4633
4634var _toConsumableArray2 = __webpack_require__(4);
4635
4636var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
4637
4638var _extends2 = __webpack_require__(0);
4639
4640var _extends3 = _interopRequireDefault(_extends2);
4641
4642var _classCallCheck2 = __webpack_require__(1);
4643
4644var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
4645
4646var _createClass2 = __webpack_require__(2);
4647
4648var _createClass3 = _interopRequireDefault(_createClass2);
4649
4650var _class, _temp;
4651
4652var _isArray = __webpack_require__(80);
4653
4654var _isArray2 = _interopRequireDefault(_isArray);
4655
4656var _uniq = __webpack_require__(41);
4657
4658var _uniq2 = _interopRequireDefault(_uniq);
4659
4660var _vinylRead = __webpack_require__(115);
4661
4662var _vinylRead2 = _interopRequireDefault(_vinylRead);
4663
4664var _convertVinylToVfile = __webpack_require__(72);
4665
4666var _convertVinylToVfile2 = _interopRequireDefault(_convertVinylToVfile);
4667
4668var _skypagerUtil = __webpack_require__(3);
4669
4670var _document = __webpack_require__("./src/document/index.js");
4671
4672function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4673
4674var defineProperty = _defineProperty2.default;
4675var DefaultOptions = exports.DefaultOptions = {
4676 patterns: _document.DefaultPatterns
4677};
4678
4679var toVFile = exports.toVFile = function toVFile(vinyl) {
4680 return (0, _convertVinylToVfile2.default)(vinyl);
4681};
4682
4683var DocumentImporter = exports.DocumentImporter = (_temp = _class = function () {
4684 (0, _createClass3.default)(DocumentImporter, null, [{
4685 key: 'create',
4686 value: function create(cwd) {
4687 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
4688
4689 if (typeof options === 'string') {
4690 options = {
4691 patterns: [options],
4692 cwd: cwd
4693 };
4694 }
4695
4696 if ((0, _isArray2.default)(options)) {
4697 options = {
4698 cwd: cwd,
4699 patterns: options
4700 };
4701 }
4702
4703 var importer = new DocumentImporter(cwd, (0, _extends3.default)({
4704 cwd: cwd
4705 }, options));
4706
4707 return importer;
4708 }
4709 }]);
4710
4711 function DocumentImporter() {
4712 var cwd = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : process.cwd();
4713 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
4714 (0, _classCallCheck3.default)(this, DocumentImporter);
4715
4716 (0, _skypagerUtil.mixinPropertyUtils)(this);
4717
4718 if (typeof cwd !== 'string') {
4719 throw 'Document Importers must be created with a cwd path';
4720 }
4721
4722 this.cwd = cwd;
4723
4724 this.hide('options', (0, _extends3.default)({}, DefaultOptions, options));
4725
4726 delete this.options.cwd;
4727
4728 this.patterns = [].concat((0, _toConsumableArray3.default)(this.options.patterns || DefaultOptions.patterns || []), ['!**/*.lock']);
4729
4730 if (this.options.collection) {
4731 var _patterns;
4732
4733 (_patterns = this.patterns).push.apply(_patterns, (0, _toConsumableArray3.default)(this.options.collection.patterns || []));
4734 }
4735
4736 this.patterns = (0, _uniq2.default)(this.patterns);
4737
4738 var status = 'CREATED';
4739
4740 defineProperty(this, 'status', {
4741 configurable: false,
4742 get: function get() {
4743 return status;
4744 },
4745 set: function set(newValue) {
4746 return status = newValue;
4747 }
4748 });
4749 }
4750
4751 (0, _createClass3.default)(DocumentImporter, [{
4752 key: 'readFilesSync',
4753 value: function readFilesSync(includeContents) {
4754 return _vinylRead2.default.sync(this.patterns, (0, _extends3.default)({
4755 base: this.cwd,
4756 read: includeContents !== false && this.options.includeContents === true
4757 }, this.options));
4758 }
4759 }, {
4760 key: 'readFiles',
4761 value: function readFiles() {
4762 var includeContents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
4763
4764 return (0, _vinylRead2.default)(this.patterns, (0, _extends3.default)({
4765 base: this.cwd,
4766 read: includeContents === true
4767 }, this.options));
4768 }
4769 }, {
4770 key: 'fileWrappersSync',
4771 get: function get() {
4772 return _vinylRead2.default.sync(this.patterns, (0, _extends3.default)({
4773 base: this.cwd,
4774 cwd: this.cwd,
4775 read: this.options.includeContents === true
4776 }, this.options));
4777 }
4778 }, {
4779 key: 'fileWrappers',
4780 get: function get() {
4781 return (0, _vinylRead2.default)(this.patterns, (0, _extends3.default)({
4782 base: this.cwd,
4783 read: this.options.includeContents === true
4784 }, this.options));
4785 }
4786 }]);
4787 return DocumentImporter;
4788}(), _class.patterns = _document.DefaultPatterns, _temp);
4789exports.default = DocumentImporter;
4790
4791/***/ },
4792
4793/***/ "./src/index.js":
4794/***/ function(module, exports, __webpack_require__) {
4795
4796"use strict";
4797'use strict';
4798
4799Object.defineProperty(exports, "__esModule", {
4800 value: true
4801});
4802exports.load = exports.Skypager = exports.Cache = exports.Helper = exports.Portfolio = undefined;
4803
4804var _getPrototypeOf = __webpack_require__(5);
4805
4806var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
4807
4808var _classCallCheck2 = __webpack_require__(1);
4809
4810var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
4811
4812var _createClass2 = __webpack_require__(2);
4813
4814var _createClass3 = _interopRequireDefault(_createClass2);
4815
4816var _possibleConstructorReturn2 = __webpack_require__(7);
4817
4818var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
4819
4820var _inherits2 = __webpack_require__(6);
4821
4822var _inherits3 = _interopRequireDefault(_inherits2);
4823
4824var _portfolio = __webpack_require__("./src/portfolio.js");
4825
4826var _portfolio2 = _interopRequireDefault(_portfolio);
4827
4828var _project = __webpack_require__("./src/project.js");
4829
4830var _project2 = _interopRequireDefault(_project);
4831
4832var _helper = __webpack_require__("./src/helper.js");
4833
4834var _helper2 = _interopRequireDefault(_helper);
4835
4836var _cache = __webpack_require__("./src/cache.js");
4837
4838var _cache2 = _interopRequireDefault(_cache);
4839
4840var _path = __webpack_require__(8);
4841
4842function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4843
4844var Portfolio = exports.Portfolio = _portfolio2.default; /**
4845 * Skypager
4846 * @copyright Jonathan Soeder <jon@chicago.com>
4847 */
4848var Helper = exports.Helper = _helper2.default;
4849var Cache = exports.Cache = _cache2.default;
4850
4851var Skypager = exports.Skypager = function (_Portfolio2) {
4852 (0, _inherits3.default)(Skypager, _Portfolio2);
4853
4854 function Skypager() {
4855 var _ref;
4856
4857 var _temp, _this, _ret;
4858
4859 (0, _classCallCheck3.default)(this, Skypager);
4860
4861 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
4862 args[_key] = arguments[_key];
4863 }
4864
4865 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Skypager.__proto__ || (0, _getPrototypeOf2.default)(Skypager)).call.apply(_ref, [this].concat(args))), _this), _this.dirname = (0, _path.join)(__dirname, '..'), _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
4866 }
4867
4868 (0, _createClass3.default)(Skypager, null, [{
4869 key: 'namespace',
4870 get: function get() {
4871 return 'Skypager';
4872 }
4873 }]);
4874 return Skypager;
4875}(Portfolio);
4876
4877var instance = new Skypager({
4878 Project: _project2.default,
4879 Helper: Helper
4880});
4881
4882instance.getter('cwd', function () {
4883 return instance.current;
4884});
4885
4886instance.lazy('current', instance.load.bind(instance, process.cwd(), {
4887 sync: false
4888}));
4889
4890instance.lazy('projectModule', function () {
4891 return instance.load((0, _path.join)(__dirname, '..'));
4892});
4893
4894exports.default = instance;
4895var load = exports.load = instance.load.bind(instance);
4896
4897/***/ },
4898
4899/***/ "./src/initializers/portfolio.js":
4900/***/ function(module, exports) {
4901
4902"use strict";
4903"use strict";
4904
4905/***/ },
4906
4907/***/ "./src/initializers/project.js":
4908/***/ function(module, exports) {
4909
4910"use strict";
4911"use strict";
4912
4913/***/ },
4914
4915/***/ "./src/logger.js":
4916/***/ function(module, exports, __webpack_require__) {
4917
4918"use strict";
4919/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_winston__ = __webpack_require__(116);
4920/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_winston___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_winston__);
4921/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_partial__ = __webpack_require__(82);
4922/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_partial___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_partial__);
4923/* harmony export (immutable) */ exports["use"] = use;
4924/* harmony export (immutable) */ exports["attach"] = attach;
4925
4926
4927
4928function use(options = {}, next) {
4929 if(this.logger) {
4930 next()
4931 } else {
4932 attach(this)
4933 next()
4934 }
4935}
4936
4937function attach(project, options = {}) {
4938 if (project.logger) { return project.logger }
4939
4940 const debug = !!(options.debug || project.get('environment.SKYPAGER_DEBUG') || project.get('argv.debug'))
4941
4942 let _transports = [
4943 new __WEBPACK_IMPORTED_MODULE_0_winston__["transports"].File({
4944 name: `project`,
4945 filename: project.join('log', `project.${ project.env }.log`),
4946 timestamp: true,
4947 json: false,
4948 prettyPrint: false,
4949 maxSize: 1024
4950 })
4951 ]
4952
4953 if (project.result('console', () => !!options.console)) {
4954 _transports.push(
4955 new __WEBPACK_IMPORTED_MODULE_0_winston__["transports"].Console({
4956 name: 'console',
4957 colorize: true,
4958 prettyPrint: true,
4959 level: debug ? 'debug' : 'info'
4960 })
4961 )
4962 }
4963
4964 project.hide(
4965 'logger',
4966 new __WEBPACK_IMPORTED_MODULE_0_winston__["Logger"]({ level: 'debug', transports: _transports }),
4967 false
4968 )
4969
4970 project.hide(
4971 'streamer',
4972 new __WEBPACK_IMPORTED_MODULE_0_winston__["Logger"]({ level: 'debug', transports: [
4973 new __WEBPACK_IMPORTED_MODULE_0_winston__["transports"].File({
4974 name: `json`,
4975 filename: project.join('log', `${project.env}-${project.name}.json.log`),
4976 timestamp: true,
4977 json: true,
4978 prettyPrint: false
4979 }),
4980 new __WEBPACK_IMPORTED_MODULE_0_winston__["transports"].File({
4981 name: `pretty-json-stream`,
4982 filename: project.join('log', `${project.env}-${project.name}.pretty.json.log`),
4983 timestamp: true,
4984 json: true,
4985 prettyPrint: true,
4986 colorize: true,
4987 })
4988 ]})
4989 )
4990
4991 project.hide('info', (...args) => {
4992 project.logger.info(...args)
4993
4994 if (project.getOption('streamLogs')) {
4995 project.streamer.info(...args)
4996 }
4997 })
4998
4999 project.hide('error', (...args) => {
5000 project.logger.error(...args)
5001
5002 if (project.getOption('streamLogs')) {
5003 project.streamer.error(...args)
5004 }
5005 })
5006
5007 project.hide('debug', (...args) => {
5008 project.logger.debug(...args)
5009
5010 if (project.getOption('streamLogs')) {
5011 project.streamer.debug(...args)
5012 }
5013 })
5014
5015 project.hide('log', (...args) => {
5016 project.logger.info(...args)
5017
5018 if (project.getOption('streamLogs')) {
5019 project.streamer.info(...args)
5020 }
5021 })
5022
5023 project.hide('warn', (...args) => {
5024 project.logger.warn(...args)
5025
5026 if (project.getOption('streamLogs')) {
5027 project.streamer.warn(...args)
5028 }
5029 })
5030
5031 return project
5032}
5033
5034/* harmony default export */ exports["default"] = attach;
5035
5036const { assign, defineProperty } = Object
5037
5038
5039/***/ },
5040
5041/***/ "./src/middleware.js":
5042/***/ function(module, exports, __webpack_require__) {
5043
5044"use strict";
5045'use strict';
5046
5047Object.defineProperty(exports, "__esModule", {
5048 value: true
5049});
5050exports.middleware = middleware;
5051
5052var _mware = __webpack_require__(86);
5053
5054var _mware2 = _interopRequireDefault(_mware);
5055
5056var _partialRight = __webpack_require__(83);
5057
5058var _partialRight2 = _interopRequireDefault(_partialRight);
5059
5060var _result = __webpack_require__(39);
5061
5062var _result2 = _interopRequireDefault(_result);
5063
5064function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5065
5066function middleware(project) {
5067 var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'project';
5068
5069 var m = (0, _mware2.default)(project);
5070 return m;
5071}
5072
5073exports.default = middleware;
5074
5075/***/ },
5076
5077/***/ "./src/middlewares/registries.js":
5078/***/ function(module, exports, __webpack_require__) {
5079
5080"use strict";
5081'use strict';
5082
5083Object.defineProperty(exports, "__esModule", {
5084 value: true
5085});
5086
5087var _extends2 = __webpack_require__(0);
5088
5089var _extends3 = _interopRequireDefault(_extends2);
5090
5091exports.use = use;
5092exports.attach = attach;
5093exports.createRegistry = createRegistry;
5094
5095var _skypagerRegistry = __webpack_require__(9);
5096
5097var _mapValues = __webpack_require__(21);
5098
5099var _mapValues2 = _interopRequireDefault(_mapValues);
5100
5101function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5102
5103function use() {
5104 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
5105 var next = arguments[1];
5106
5107 attach(this, options);
5108 next && next();
5109}
5110
5111function attach(project) {
5112 var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5113
5114 project.registries = (0, _skypagerRegistry.create)({
5115 name: 'registries',
5116 type: 'Directory',
5117 silenceFailures: true
5118 });
5119
5120 project.createRegistry = createRegistry.bind(project);
5121
5122 (0, _mapValues2.default)(defaults, function () {
5123 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
5124 var name = arguments[1];
5125
5126 project.createRegistry(name, options);
5127 });
5128
5129 return project;
5130}
5131
5132function createRegistry(name) {
5133 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5134
5135 var project = this;
5136
5137 if (project.registries.available.indexOf(name) >= 0) {
5138 return project.registries.lookup(name);
5139 }
5140
5141 project.registries.register(name, function () {
5142 return (0, _skypagerRegistry.create)((0, _extends3.default)({
5143 name: name,
5144 type: 'Directory'
5145 }, options));
5146 });
5147
5148 if (options.prop !== false && typeof project[name] === 'undefined') {
5149 project.hideGetter(name, function () {
5150 return project.registries.lookup(name);
5151 });
5152 }
5153}
5154
5155/***/ },
5156
5157/***/ "./src/portfolio.js":
5158/***/ function(module, exports, __webpack_require__) {
5159
5160"use strict";
5161/* WEBPACK VAR INJECTION */(function(module) {'use strict';
5162
5163Object.defineProperty(exports, "__esModule", {
5164 value: true
5165});
5166exports.Portfolio = undefined;
5167
5168var _getOwnPropertyDescriptors = __webpack_require__(68);
5169
5170var _getOwnPropertyDescriptors2 = _interopRequireDefault(_getOwnPropertyDescriptors);
5171
5172var _keys = __webpack_require__(14);
5173
5174var _keys2 = _interopRequireDefault(_keys);
5175
5176var _extends2 = __webpack_require__(0);
5177
5178var _extends3 = _interopRequireDefault(_extends2);
5179
5180var _typeof2 = __webpack_require__(19);
5181
5182var _typeof3 = _interopRequireDefault(_typeof2);
5183
5184var _classCallCheck2 = __webpack_require__(1);
5185
5186var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
5187
5188var _createClass2 = __webpack_require__(2);
5189
5190var _createClass3 = _interopRequireDefault(_createClass2);
5191
5192var _findupSync = __webpack_require__(74);
5193
5194var _findupSync2 = _interopRequireDefault(_findupSync);
5195
5196var _get = __webpack_require__(15);
5197
5198var _get2 = _interopRequireDefault(_get);
5199
5200var _mapKeys = __webpack_require__(81);
5201
5202var _mapKeys2 = _interopRequireDefault(_mapKeys);
5203
5204var _defaults = __webpack_require__(79);
5205
5206var _defaults2 = _interopRequireDefault(_defaults);
5207
5208var _isFunction = __webpack_require__(35);
5209
5210var _isFunction2 = _interopRequireDefault(_isFunction);
5211
5212var _bluebird = __webpack_require__(70);
5213
5214var _path = __webpack_require__(8);
5215
5216var _skypagerUtil = __webpack_require__(3);
5217
5218var _skypagerRegistry = __webpack_require__(9);
5219
5220var _index = __webpack_require__("./src/config/index.js");
5221
5222var _index2 = _interopRequireDefault(_index);
5223
5224var _node = __webpack_require__("./src/file-systems/node.js");
5225
5226var _node2 = _interopRequireDefault(_node);
5227
5228var _helper = __webpack_require__("./src/helper.js");
5229
5230var _helper2 = _interopRequireDefault(_helper);
5231
5232var _project = __webpack_require__("./src/project.js");
5233
5234var _project2 = _interopRequireDefault(_project);
5235
5236var _cache = __webpack_require__("./src/cache.js");
5237
5238var _cache2 = _interopRequireDefault(_cache);
5239
5240function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5241
5242var InstanceIdMap = {};
5243var ProjectsCache = {};
5244var keys = _keys2.default;
5245var getOwnPropertyDescriptors = _getOwnPropertyDescriptors2.default;
5246
5247var Portfolio = exports.Portfolio = function () {
5248 (0, _createClass3.default)(Portfolio, [{
5249 key: 'promisify',
5250 get: function get() {
5251 return _bluebird.promisify;
5252 }
5253 }], [{
5254 key: 'Project',
5255 get: function get() {
5256 return _project2.default;
5257 }
5258 }, {
5259 key: 'Helper',
5260 get: function get() {
5261 return _helper2.default;
5262 }
5263 }]);
5264
5265 function Portfolio() {
5266 var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'Skypager';
5267 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5268 (0, _classCallCheck3.default)(this, Portfolio);
5269
5270 if ((typeof name === 'undefined' ? 'undefined' : (0, _typeof3.default)(name)) === 'object') {
5271 options = name;
5272 name = options.name || this.constructor.name;
5273 }
5274
5275 (0, _skypagerUtil.mixinPropertyUtils)(this);
5276
5277 this.hide('configuration', {});
5278
5279 this.instanceId = name + '-' + Math.floor(Date.now() / 1000);
5280
5281 this.hide('cache', new _cache2.default());
5282 this.hide('__project_cache', ProjectsCache[this.instanceId] = {});
5283 this.hide('moduleId', (0, _get2.default)(module, 'id', __filename));
5284
5285 (0, _node2.default)({
5286 host: this
5287 });
5288
5289 if (!this.dirname) {
5290 this.dirname = (0, _path.join)(__dirname, '..');
5291 }
5292
5293 this.hideGetter('Project', function () {
5294 return options.Project || require('./project').Project;
5295 });
5296 this.hideGetter('Helper', function () {
5297 return options.Helper || require('./helper').Helper;
5298 });
5299
5300 var helpers = new _skypagerRegistry.Context('helpers', {
5301 context: __webpack_require__(29)
5302 });
5303
5304 this.getter('helpers', function () {
5305 return helpers;
5306 });
5307 }
5308
5309 // TODO
5310 // I want to try and use the trick i learned from terse-webpack which uses
5311 // a registry of features and reducers to expose a composable / chainable
5312 // configuration functions that can be used to create presets as project templates
5313
5314
5315 (0, _createClass3.default)(Portfolio, [{
5316 key: 'configure',
5317 value: function configure() {
5318 var scope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'portfolio';
5319 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5320
5321 var current = this.configuration[scope];
5322
5323 if (current) {
5324 return (0, _index2.default)((0, _extends3.default)({}, options, {
5325 history: current.history
5326 }));
5327 }
5328
5329 return this.configuration[scope] = (0, _index2.default)((0, _extends3.default)({}, options, {
5330 history: [{ scope: scope }]
5331 }));
5332 }
5333 }, {
5334 key: 'connect',
5335 value: function connect() {
5336 var _this = this;
5337
5338 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
5339
5340 try {
5341 var _ret = function () {
5342 var project = _this.load(options.cwd || process.cwd(), options);
5343
5344 return {
5345 v: project.start().then(function () {
5346 return project;
5347 }).catch(function (error) {
5348 throw error;
5349 })
5350 };
5351 }();
5352
5353 if ((typeof _ret === 'undefined' ? 'undefined' : (0, _typeof3.default)(_ret)) === "object") return _ret.v;
5354 } catch (error) {
5355 console.log('Fatal error loading project');
5356 throw error;
5357 }
5358 }
5359
5360 /**
5361 * Lookup a project by project type alias
5362 */
5363
5364 }, {
5365 key: 'projectType',
5366 value: function projectType() {
5367 var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';
5368
5369 try {
5370 return this.projectTypes.lookup(type) || this.Project;
5371 } catch (error) {
5372 return this.Project;
5373 }
5374 }
5375 }, {
5376 key: 'createProject',
5377 value: function createProject() {
5378 var cwd = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : process.cwd();
5379 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5380
5381 (0, _defaults2.default)(options, {
5382 manifestFilename: 'package.json',
5383 manifestPath: (0, _path.join)(cwd, 'package.json'),
5384 type: 'default'
5385 });
5386
5387 if (!this.fsx.existsSync(options.manifestPath)) {
5388 throw 'Can not load a Skypager project without a manifest file';
5389 }
5390
5391 var manifest = this.fsx.readJsonSync(options.manifestPath);
5392 var manifestOptions = (0, _get2.default)(manifest, options.membershipKey, {});
5393 var ProjectType = options.type === 'default' ? this.Project : this.projectType(manifestOptions.type || options.type);
5394
5395 return ProjectType.load(cwd, (0, _extends3.default)({
5396 manifest: manifest
5397 }, manifestOptions, options), {
5398 portfolio: this,
5399 framework: this.framework
5400 });
5401 }
5402
5403 /**
5404 * Load a project from a folder, checking the cache first to see if it exists.
5405 */
5406
5407 }, {
5408 key: 'load',
5409 value: function load() {
5410 var cwd = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : process.cwd();
5411
5412 var _this2 = this;
5413
5414 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5415 var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
5416
5417 var instanceId = (0, _get2.default)(this.__project_cache, cwd);
5418
5419 if (!options.fresh && instanceId && InstanceIdMap[instanceId]) {
5420 return InstanceIdMap[instanceId];
5421 }
5422
5423 var project = this.createProject(cwd, options, (0, _extends3.default)({
5424 portfolio: this,
5425 framework: this.framework
5426 }, context));
5427
5428 (0, _node2.default)({
5429 host: project
5430 });
5431
5432 this.__project_cache[cwd] = project.id;
5433
5434 this.helpers.available.map(function (id) {
5435 return _this2.helpers.lookup(id);
5436 }).map(function (type) {
5437 return type.default ? type.default : type;
5438 }).filter(function (helperClass) {
5439 return helperClass.attach;
5440 }).forEach(function (helperClass) {
5441 return helperClass.attach(project, helperClass);
5442 });
5443
5444 var decorated = InstanceIdMap[project.id] = this.projectDidLoad ? passThroughLocalConfig(this.projectDidLoad(project)) : passThroughLocalConfig(project);
5445
5446 return decorated;
5447 }
5448 }, {
5449 key: 'clearProjectCache',
5450 value: function clearProjectCache() {
5451 var _this3 = this;
5452
5453 this.requireCacheEntries.forEach(function (entry) {
5454 return delete __webpack_require__.c[entry];
5455 });
5456
5457 this.projectCacheKeys.forEach(function (cacheKey) {
5458 var instanceId = _this3.projects[cacheKey];
5459 var target = InstanceIdMap[instanceId];
5460
5461 if (target) {
5462 delete InstanceIdMap[instanceId];
5463 }
5464
5465 delete _this3.projects[cacheKey];
5466 });
5467 }
5468 }, {
5469 key: 'findProjectByInstanceId',
5470 value: function findProjectByInstanceId(instanceId) {
5471 return InstanceIdMap[instanceId];
5472 }
5473 }, {
5474 key: 'framework',
5475 get: function get() {
5476 return this.constructor;
5477 }
5478 }, {
5479 key: 'allProjects',
5480 get: function get() {
5481 var _this4 = this;
5482
5483 return this.projectCacheKeys.map(function (i) {
5484 return _this4.__project_cache[i];
5485 }).map(function (instanceId) {
5486 return InstanceIdMap[instanceId];
5487 });
5488 }
5489 }, {
5490 key: 'projectInstanceIds',
5491 get: function get() {
5492 return keys(InstanceIdMap);
5493 }
5494 }, {
5495 key: 'projects',
5496 get: function get() {
5497 return (0, _mapKeys2.default)(this.__project_cache, function (project) {
5498 return project.name;
5499 });
5500 }
5501 }, {
5502 key: 'projectCacheKeys',
5503 get: function get() {
5504 return keys(getOwnPropertyDescriptors(this.__project_cache));
5505 }
5506 }, {
5507 key: 'projectRoots',
5508 get: function get() {
5509 return this.allProjects.map(function (p) {
5510 return p.cwd;
5511 });
5512 }
5513 }, {
5514 key: 'requireCacheEntries',
5515 get: function get() {
5516 var moduleIds = keys(__webpack_require__.c);
5517
5518 return this.projectRoots.map(function (rootPath) {
5519 return moduleIds.filter(function (moduleId) {
5520 return moduleId.startsWith(rootPath);
5521 });
5522 });
5523 }
5524 }, {
5525 key: 'userHome',
5526 get: function get() {
5527 return process.env[process.platform == 'win32' ? 'USERPROFILE' : 'HOME'] || process.cwd();
5528 }
5529 }, {
5530 key: 'isDevelopingLocally',
5531 get: function get() {
5532 return this.dirname === process.cwd();
5533 }
5534 }, {
5535 key: 'isNodeModule',
5536 get: function get() {
5537 return this.parentFolderName === 'node_modules';
5538 }
5539 }, {
5540 key: 'localPackage',
5541 get: function get() {
5542 return (0, _findupSync2.default)('package.json', {
5543 cwd: process.cwd()
5544 });
5545 }
5546 }, {
5547 key: 'parentPackage',
5548 get: function get() {
5549 return this.parentPackagePath && this.fsx.readJsonSync(this.parentPackagePath);
5550 }
5551 }, {
5552 key: 'parentPackagePath',
5553 get: function get() {
5554 return (0, _findupSync2.default)('package.json', {
5555 cwd: this.parentFolder
5556 });
5557 }
5558 }, {
5559 key: 'parentFolder',
5560 get: function get() {
5561 return (0, _path.join)(this.dirname, '..');
5562 }
5563 }, {
5564 key: 'parentFolderName',
5565 get: function get() {
5566 return (0, _path.basename)(this.parentFolder);
5567 }
5568 }, {
5569 key: 'grandParentFolder',
5570 get: function get() {
5571 return (0, _path.join)(this.parentFolder, '..');
5572 }
5573 }]);
5574 return Portfolio;
5575}();
5576
5577exports.default = Portfolio;
5578
5579
5580var passThroughLocalConfig = function passThroughLocalConfig(project) {
5581 var main = project.skypagerMain;
5582 var localConfig = project.existsSync(project.join(main)) ? attemptNormalRequire(project.join(main)) : function (project) {
5583 return project;
5584 };
5585
5586 localConfig = localConfig && localConfig.default ? localConfig.default : localConfig;
5587
5588 if ((0, _isFunction2.default)(localConfig)) {
5589 localConfig(project);
5590 }
5591
5592 return project;
5593};
5594
5595var attemptNormalRequire = function attemptNormalRequire(moduleId) {
5596 var retryAgain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
5597
5598 try {
5599 return require(moduleId);
5600 } catch (error) {
5601 if (retryAgain && error.message.match(/Unexpected token/i)) {
5602 __webpack_require__(66);
5603 return attemptNormalRequire(moduleId, false);
5604 }
5605
5606 console.log('\n There was an error loading the config file found at:\n ' + moduleId + '\n\n The exact error was:\n\n ' + error.message + '\n\n Stacktrace:\n\n\n ' + error.stack + '\n ');
5607
5608 return false;
5609 }
5610};
5611/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__("../skypager/node_modules/webpack/buildin/module.js")(module)))
5612
5613/***/ },
5614
5615/***/ "./src/project-types/application.js":
5616/***/ function(module, exports) {
5617
5618"use strict";
5619"use strict";
5620
5621Object.defineProperty(exports, "__esModule", {
5622 value: true
5623});
5624exports.use = use;
5625exports.attach = attach;
5626function use() {
5627 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
5628 var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5629 var next = arguments[2];
5630 var _context$project = context.project;
5631 var project = _context$project === undefined ? this : _context$project;
5632
5633
5634 attach(project, options, next);
5635}
5636
5637function attach(project) {
5638 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5639 var next = arguments[2];
5640
5641 next();
5642}
5643
5644/***/ },
5645
5646/***/ "./src/project-types/library.js":
5647/***/ function(module, exports, __webpack_require__) {
5648
5649"use strict";
5650/* harmony export (immutable) */ exports["use"] = use;
5651/* harmony export (immutable) */ exports["attach"] = attach;
5652function use (options = {}, context = {}, next) {
5653 const { project = this } = context
5654
5655 attach(project, options, next)
5656}
5657
5658function attach (project, options = {}, next) {
5659 next()
5660}
5661
5662
5663/***/ },
5664
5665/***/ "./src/project-types/mobile-app.js":
5666/***/ function(module, exports) {
5667
5668"use strict";
5669"use strict";
5670
5671Object.defineProperty(exports, "__esModule", {
5672 value: true
5673});
5674exports.use = use;
5675exports.attach = attach;
5676function use() {
5677 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
5678 var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5679 var next = arguments[2];
5680 var _context$project = context.project;
5681 var project = _context$project === undefined ? this : _context$project;
5682
5683
5684 attach(project, options, next);
5685}
5686
5687function attach(project) {
5688 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5689 var next = arguments[2];
5690
5691 next();
5692}
5693
5694/***/ },
5695
5696/***/ "./src/project-types/portfolio.js":
5697/***/ function(module, exports) {
5698
5699"use strict";
5700"use strict";
5701
5702Object.defineProperty(exports, "__esModule", {
5703 value: true
5704});
5705exports.use = use;
5706exports.attach = attach;
5707function use() {
5708 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
5709 var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5710 var next = arguments[2];
5711 var _context$project = context.project;
5712 var project = _context$project === undefined ? this : _context$project;
5713
5714
5715 attach(project, options, next);
5716}
5717
5718function attach(project) {
5719 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5720 var next = arguments[2];
5721
5722 next();
5723}
5724
5725/***/ },
5726
5727/***/ "./src/project-types/website.js":
5728/***/ function(module, exports) {
5729
5730"use strict";
5731'use strict';
5732
5733Object.defineProperty(exports, "__esModule", {
5734 value: true
5735});
5736exports.use = use;
5737exports.attach = attach;
5738function use() {
5739 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
5740 var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5741 var next = arguments[2];
5742 var _context$project = context.project;
5743 var project = _context$project === undefined ? this : _context$project;
5744
5745
5746 attach(project, options, next);
5747}
5748
5749function attach(project) {
5750 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5751 var next = arguments[2];
5752
5753 decorate(project, options);
5754 typeof next === 'function' && next();
5755
5756 return project;
5757}
5758
5759var helpers = exports.helpers = {
5760 selectors: 'website/sitemap'
5761};
5762
5763var decorate = exports.decorate = function decorate(project) {
5764 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5765
5766 project.selectors.register('website/sitemap', function () {
5767 return function (chain) {
5768 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5769 var _options$prefix = options.prefix;
5770 var prefix = _options$prefix === undefined ? '/' : _options$prefix;
5771
5772
5773 return chain.invoke('documentType', 'page-config').invoke('loadMatchingDocuments').map(function (doc) {
5774 return doc.buildPageConfig(options);
5775 }).keyBy(function (doc) {
5776 return doc.route || doc.id;
5777 }).thru(function (routes) {
5778 return { prefix: prefix, routes: routes };
5779 });
5780 };
5781 });
5782
5783 return project;
5784};
5785
5786/***/ },
5787
5788/***/ "./src/project.js":
5789/***/ function(module, exports, __webpack_require__) {
5790
5791"use strict";
5792'use strict';
5793
5794Object.defineProperty(exports, "__esModule", {
5795 value: true
5796});
5797exports.Project = exports.querySources = exports.chainSources = exports.DefaultOptions = undefined;
5798
5799var _values = __webpack_require__(18);
5800
5801var _values2 = _interopRequireDefault(_values);
5802
5803var _defineProperty2 = __webpack_require__(10);
5804
5805var _defineProperty3 = _interopRequireDefault(_defineProperty2);
5806
5807var _typeof2 = __webpack_require__(19);
5808
5809var _typeof3 = _interopRequireDefault(_typeof2);
5810
5811var _assign = __webpack_require__(13);
5812
5813var _assign2 = _interopRequireDefault(_assign);
5814
5815var _promise = __webpack_require__(12);
5816
5817var _promise2 = _interopRequireDefault(_promise);
5818
5819var _slicedToArray2 = __webpack_require__(69);
5820
5821var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
5822
5823var _defineProperty4 = __webpack_require__(31);
5824
5825var _defineProperty5 = _interopRequireDefault(_defineProperty4);
5826
5827var _keys = __webpack_require__(14);
5828
5829var _keys2 = _interopRequireDefault(_keys);
5830
5831var _extends5 = __webpack_require__(0);
5832
5833var _extends6 = _interopRequireDefault(_extends5);
5834
5835var _toConsumableArray2 = __webpack_require__(4);
5836
5837var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
5838
5839var _classCallCheck2 = __webpack_require__(1);
5840
5841var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
5842
5843var _createClass2 = __webpack_require__(2);
5844
5845var _createClass3 = _interopRequireDefault(_createClass2);
5846
5847var _class, _temp;
5848
5849exports.load = load;
5850exports.attachEmitter = attachEmitter;
5851exports.attachRegistry = attachRegistry;
5852
5853__webpack_require__(71);
5854
5855var _path = __webpack_require__(8);
5856
5857var _fbemitter = __webpack_require__(33);
5858
5859var _lodash = __webpack_require__(11);
5860
5861var _lodash2 = _interopRequireDefault(_lodash);
5862
5863var _findUp2 = __webpack_require__(73);
5864
5865var _findUp3 = _interopRequireDefault(_findUp2);
5866
5867var _isomorphicVm = __webpack_require__(77);
5868
5869var _isomorphicVm2 = _interopRequireDefault(_isomorphicVm);
5870
5871var _skypagerUtil = __webpack_require__(3);
5872
5873var _collection = __webpack_require__("./src/collection/index.js");
5874
5875var _collection2 = _interopRequireDefault(_collection);
5876
5877var _document = __webpack_require__("./src/document/index.js");
5878
5879var _document2 = _interopRequireDefault(_document);
5880
5881var _middleware = __webpack_require__("./src/middleware.js");
5882
5883var _middleware2 = _interopRequireDefault(_middleware);
5884
5885var _tree = __webpack_require__("./src/tree.js");
5886
5887var _tree2 = _interopRequireDefault(_tree);
5888
5889var _cache = __webpack_require__("./src/cache.js");
5890
5891var _cache2 = _interopRequireDefault(_cache);
5892
5893var _objectHash = __webpack_require__(87);
5894
5895var _objectHash2 = _interopRequireDefault(_objectHash);
5896
5897var _module = __webpack_require__(85);
5898
5899var _module2 = _interopRequireDefault(_module);
5900
5901function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5902
5903var sortBy = _lodash2.default.sortBy;
5904var omit = _lodash2.default.omit;
5905var isError = _lodash2.default.isError;
5906var attempt = _lodash2.default.attempt;
5907var isFunction = _lodash2.default.isFunction;
5908var defaults = _lodash2.default.defaults;
5909var result = _lodash2.default.result;
5910var mapValues = _lodash2.default.mapValues;
5911var isArray = _lodash2.default.isArray;
5912var get = _lodash2.default.get;
5913var chain = _lodash2.default.chain;
5914var singularize = _skypagerUtil.strings.singularize;
5915var keys = _keys2.default;
5916var values = _values2.default;
5917var assign = _assign2.default;
5918var DefaultOptions = exports.DefaultOptions = {
5919 cwd: process.cwd(),
5920 target: 'node',
5921 paths: {
5922 source: 'src',
5923 cache: 'node_modules/.cache/skypager-project',
5924 output: 'dist',
5925 library: 'lib',
5926 bundles: 'dist/bundles',
5927 ast: 'dist/ast',
5928 docs: 'docs',
5929 data: 'data',
5930 logs: 'log',
5931 temp: 'tmp',
5932 main: 'skypager.js',
5933 manifest: 'package.json'
5934 }
5935};
5936
5937var chainSources = exports.chainSources = ['scopes.available', 'constructor.chainProps', 'options.chainProps'];
5938
5939var querySources = exports.querySources = ['scopes.available', 'constructor.queryProps', 'options.queryProps'];
5940
5941var Project = exports.Project = (_temp = _class = function () {
5942 /**
5943 * Create a Skypager Project wrapper around a package folder.
5944 *
5945 * @param cwd {String} an absolute path for the Project. Should be the folder which has the package.json in it.
5946 * @param options {Object} the options Object
5947 * @param options.filesystem {Boolean} use the portfolios file system adapters
5948 * @type {Object}
5949 */
5950 function Project() {
5951 var cwd = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : process.cwd();
5952
5953 var _this = this;
5954
5955 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5956 var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
5957 (0, _classCallCheck3.default)(this, Project);
5958
5959 (0, _skypagerUtil.mixinPropertyUtils)(this);
5960 attachEmitter(this);
5961 var project = this;
5962
5963 this.cwd = cwd;
5964
5965 this.instanceId = result(options, 'id', function () {
5966 return _this.namespace + '-' + Math.floor(Date.now() / 1000);
5967 });
5968
5969 this.hide('current', {
5970 collection: 'project',
5971 middleware: 'project',
5972 configuration: 'project'
5973 });
5974
5975 this.hideGetter('framework', function () {
5976 return context.framework || context.portfolio;
5977 });
5978 this.getter('portfolio', function () {
5979 return context.portfolio;
5980 });
5981
5982 this.hide('manifest', options.manifest || this.readJsonSync(this.join(get(options, 'paths.manifest', 'package.json'))));
5983
5984 var computedOptions = defaults(options, this.get('manifest.skypager'), DefaultOptions);
5985
5986 this.hide('options', omit(computedOptions, 'manifest', 'portfolio', 'fs', 'fsx'));
5987
5988 this.hide('middleware', (0, _middleware2.default)(this));
5989
5990 __webpack_require__("./src/logger.js").attach(this, this.getOption('logging', {
5991 console: true
5992 }));
5993
5994 this.hide('configuration', options.configuration || {});
5995
5996 this.hide('cache', new _cache2.default());
5997
5998 __webpack_require__("./src/middlewares/registries.js").attach(this, {
5999 collections: {
6000 type: 'Directory',
6001 wrapper: function wrapper(cfg, id) {
6002 return project.cache.fetch('collections:' + id + ':' + project.instanceId + ':' + cfg.cwd, function () {
6003 return project.mountCollection(cfg.cwd, cfg);
6004 });
6005 }
6006 },
6007
6008 middlewares: {
6009 type: 'Directory'
6010 },
6011
6012 routes: {
6013 type: 'Directory',
6014 wrapper: function wrapper(fn, id) {
6015 var opts = isFunction(fn) ? fn.call(project) : fn;
6016 return project.cache.fetch('routes:' + id + ':' + project.cacheKey, function () {
6017 return project.createRouteMap(id, opts);
6018 });
6019 }
6020 },
6021
6022 selectors: {
6023 type: 'Context',
6024 context: __webpack_require__(64),
6025
6026 wrapper: function wrapper(fn, id) {
6027 return function () {
6028 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
6029 args[_key] = arguments[_key];
6030 }
6031
6032 return project.cache.fetch('selectors:' + id + ':' + (0, _objectHash2.default)({ args: args }) + ':' + project.cacheKey, function () {
6033 return fn.call.apply(fn, [project, project.chain].concat(args)).value();
6034 });
6035 };
6036 }
6037 },
6038
6039 configurations: {
6040 type: 'Directory',
6041 wrapper: function wrapper(cfg, id) {
6042 return project.cache.fetch('configurations:' + id + ':' + project.instanceId, function () {
6043 return cfg.call(project, project.configure({ scope: id })).getConfig();
6044 });
6045 }
6046 },
6047
6048 helpers: {
6049 type: 'Context',
6050 context: __webpack_require__(29),
6051 fallback: function fallback(requestId) {
6052 return project.portfolio.helpers.lookup(requestId);
6053 }
6054 }
6055 });
6056
6057 this.register.collection('project', {
6058 cwd: this.cwd,
6059 sync: !!options.sync
6060 });
6061
6062 this.register.collection('source', {
6063 cwd: this.paths.source,
6064 sync: !!options.sync,
6065 exclude: ['**/*.spec.*']
6066 });
6067
6068 this.register.collection('asts', {
6069 cwd: this.paths.ast,
6070 sync: false,
6071 exclude: ['**/*.spec.*']
6072 });
6073
6074 this.register.collection('logs', {
6075 cwd: this.paths.logs,
6076 sync: false
6077 });
6078
6079 this.register.collection('bundles', {
6080 cwd: this.paths.bundles,
6081 sync: false,
6082 type: 'script'
6083 });
6084
6085 this.register.collection('output', {
6086 cwd: this.paths.output,
6087 sync: false,
6088 exclude: ['**/ast/**']
6089 });
6090
6091 if (options.sync) {
6092 var cachedCollection = this.collection.cached;
6093 this.emit('collectionDidLoad', cachedCollection);
6094 }
6095
6096 this.lazy('files', function () {
6097 return _this.collection.files.map(function (f) {
6098 return _this.loadFile(f);
6099 });
6100 });
6101 this.lazy('documents', function () {
6102 return _this.collection.withDocuments.documents.map(function (d) {
6103 return _this.loadDocument(d);
6104 });
6105 });
6106 this.lazy('exportableDocumentsTree', function () {
6107 return _this.createExportableDocumentsTree();
6108 });
6109 this.lazy('cacheKey', function () {
6110 return _this.calculateCacheKey();
6111 });
6112
6113 this.get('constructor.collectionDelegators', Project.collectionDelegators).forEach(function (meth) {
6114 return _this.hideGetter(meth, function () {
6115 return project.result('collection.' + meth);
6116 });
6117 });
6118
6119 this.hide('configHistory', {
6120 project: []
6121 });
6122 }
6123
6124 (0, _createClass3.default)(Project, [{
6125 key: 'getOption',
6126 value: function getOption(key, defaultValue) {
6127 return this.result(['options'].concat((0, _toConsumableArray3.default)(_lodash2.default.castArray(key))), defaultValue);
6128 }
6129 }, {
6130 key: 'hasDependency',
6131 value: function hasDependency(dep) {
6132 return typeof this.select('dependencies')[dep] !== 'undefined';
6133 }
6134 }, {
6135 key: 'document',
6136 value: function document(documentId) {
6137 var doc = this.get(['documentsMappedById', documentId]);
6138 return doc ? doc.ready : doc;
6139 }
6140 }, {
6141 key: 'createExportableDocumentsTree',
6142 value: function createExportableDocumentsTree() {
6143 return mapValues(this.loadedDocumentsTree, function (v) {
6144 return v.createExportable ? v.exportables : v;
6145 });
6146 }
6147 }, {
6148 key: 'createFileCache',
6149 value: function createFileCache() {
6150 var location = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.paths.cache;
6151
6152 return this.mkdirpAsync(this.paths.cache);
6153 }
6154 }, {
6155 key: 'readJsonCache',
6156 value: function readJsonCache(relativePath) {
6157 for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
6158 args[_key2 - 1] = arguments[_key2];
6159 }
6160
6161 return this.readJsonAsync.apply(this, [this.resolve(this.paths.cache, relativePath)].concat(args));
6162 }
6163 }, {
6164 key: 'readCacheFile',
6165 value: function readCacheFile(relativePath) {
6166 for (var _len3 = arguments.length, args = Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
6167 args[_key3 - 1] = arguments[_key3];
6168 }
6169
6170 return this.readFileAsync.apply(this, [this.resolve(this.paths.cache, relativePath)].concat(args));
6171 }
6172 }, {
6173 key: 'cacheJson',
6174 value: function cacheJson(relativePath, object) {
6175 var _this2 = this;
6176
6177 return this.createFileCache().then(function () {
6178 return _this2.writeJsonAsync(_this2.resolve(_this2.paths.cache, relativePath), object, 'utf8');
6179 });
6180 }
6181 }, {
6182 key: 'cacheFile',
6183 value: function cacheFile(relativePath, contents) {
6184 var _this3 = this;
6185
6186 return this.createFileCache().then(function () {
6187 return _this3.writeFileAsync(_this3.resolve(_this3.paths.cache, relativePath), contents, 'utf8');
6188 });
6189 }
6190 }, {
6191 key: 'configure',
6192 value: function configure() {
6193 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6194
6195 if (typeof options === 'string') {
6196 options = { scope: '' + options };
6197 }
6198
6199 var _options = options;
6200 var _options$scope = _options.scope;
6201 var scope = _options$scope === undefined ? this.current.configuration || 'project' : _options$scope;
6202 var _options$builder = _options.builder;
6203 var builder = _options$builder === undefined ? 'project' : _options$builder;
6204
6205
6206 var builderHelper = this.configBuilders.available.indexOf(builder) >= 0 ? this.configBuilder(builder, (0, _extends6.default)({}, options, { bucket: scope })) : this.configBuilder('project', (0, _extends6.default)({}, options, { bucket: scope }));
6207
6208 return this.configuration[scope] = this.configuration[scope] || builderHelper;
6209 }
6210 }, {
6211 key: 'route',
6212 value: function route(pattern, chain) {
6213 return this.routeDocuments(pattern, chain);
6214 }
6215 }, {
6216 key: 'routeDocuments',
6217 value: function routeDocuments(pattern, chain) {
6218 var project = this;
6219 var collection = this.collection;
6220
6221 var results = collection.routers.documents(pattern).map(function (result) {
6222 var id = result.path[0];
6223 var doc = result.path[1];
6224 var file = doc.file;
6225 var idParts = id.split('/');
6226
6227 return {
6228 id: id,
6229 doc: doc,
6230 idParts: idParts,
6231 baseFolder: idParts[0],
6232 categoryFolder: idParts[1] || idParts[0],
6233 meta: get(result, 'result', {}),
6234 file: (0, _extends6.default)({
6235 path: file.path
6236 }, project.wrapFile(file))
6237 };
6238 });
6239
6240 return chain ? _lodash2.default.chain(results) : results;
6241 }
6242 }, {
6243 key: 'routeFiles',
6244 value: function routeFiles(pattern, chain) {
6245 var project = this;
6246 var collection = this.collection;
6247
6248 var results = collection.routers.files(pattern).map(function (result) {
6249 var file = result.path[1];
6250 var id = file.relative;
6251 var idParts = id.split('/');
6252
6253 return (0, _extends6.default)({
6254 id: id,
6255 file: file,
6256 idParts: idParts,
6257 baseFolder: idParts[0],
6258 categoryFolder: idParts[1] || idParts[0],
6259 meta: get(result, 'result', {})
6260 }, project.wrapFile(file));
6261 });
6262
6263 return chain ? _lodash2.default.chain(results) : results;
6264 }
6265 }, {
6266 key: 'createRouteMap',
6267
6268
6269 /**
6270 * Takes a map of named routes and returns a function interface for each one
6271 */
6272 value: function createRouteMap(name) {
6273 var _this4 = this;
6274
6275 var cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6276 var defaultOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
6277
6278 var functions = _lodash2.default.mapValues(cfg, function (options, key) {
6279
6280 if (typeof options === 'string') {
6281 options = {
6282 patterns: [options.toString()]
6283 };
6284 }
6285
6286 var cacheKey = ['routes/' + name + '/' + key, options.patterns.join('|')].join(':');
6287
6288 return function () {
6289 return _this4.cache.fetch(cacheKey, _this4.createRouteFunction((0, _extends6.default)({}, defaultOptions, options)));
6290 };
6291 });
6292
6293 var mapper = {};
6294
6295 (0, _keys2.default)(functions).forEach(function (key) {
6296 return (0, _defineProperty5.default)(mapper, key, {
6297 enumerable: true,
6298 configurable: false,
6299 get: functions[key]
6300 });
6301 });
6302
6303 return mapper;
6304 }
6305 }, {
6306 key: 'createRouteFunction',
6307 value: function createRouteFunction() {
6308 var _this5 = this;
6309
6310 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6311
6312 if (typeof options === 'string') {
6313 options = {
6314 patterns: [options.toString()]
6315 };
6316 }
6317
6318 var _options2 = options;
6319 var _options2$baseRoute = _options2.baseRoute;
6320 var baseRoute = _options2$baseRoute === undefined ? '' : _options2$baseRoute;
6321 var patterns = _options2.patterns;
6322
6323
6324 patterns = _lodash2.default.castArray(patterns).map(function (pattern) {
6325 return '' + baseRoute + pattern;
6326 });
6327
6328 return function () {
6329 return _lodash2.default.chain(patterns).map(function (pattern) {
6330 return _this5.route(pattern);
6331 }).flatten().compact().uniqBy(function (r) {
6332 return r.id;
6333 }).map(function (result, index) {
6334 return isFunction(options.transform) ? options.transform.call(_this5, result, index) : result;
6335 }).value();
6336 };
6337 }
6338 }, {
6339 key: 'invoke',
6340 value: function invoke() {
6341 var _chain;
6342
6343 return (_chain = this.chain).invoke.apply(_chain, arguments).value();
6344 }
6345 }, {
6346 key: 'run',
6347 value: function run(helperId) {
6348 var _this6 = this;
6349
6350 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6351 var callback = arguments[2];
6352
6353 var _helperId$split = helperId.split('/');
6354
6355 var _helperId$split2 = (0, _slicedToArray3.default)(_helperId$split, 2);
6356
6357 var type = _helperId$split2[0];
6358 var id = _helperId$split2[1];
6359
6360
6361 if (isFunction(options)) {
6362 callback = options;
6363 options = {};
6364 }
6365
6366 var helper = this.invoke(type.replace(/s$/, ''), id, options);
6367
6368 return _promise2.default.resolve(helper.run()).catch(function (error) {
6369 return isFunction(callback) && callback(null, error);
6370 }).then(function (result) {
6371 isFunction(callback) && callback.call(_this6, result);
6372 return result;
6373 });
6374 }
6375 }, {
6376 key: 'resolvePromiseHash',
6377 value: function resolvePromiseHash() {
6378 var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6379
6380 return (0, _skypagerUtil.promiseHash)(object);
6381 }
6382 }, {
6383 key: 'selectAsync',
6384 value: function selectAsync(selector) {
6385 var _this7 = this;
6386
6387 for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
6388 args[_key4 - 1] = arguments[_key4];
6389 }
6390
6391 return this.selectChain.apply(this, [selector].concat(args)).thru(function (result) {
6392 return _this7.resolvePromiseHash(result);
6393 }).value();
6394 }
6395 }, {
6396 key: 'createSandbox',
6397 value: function createSandbox() {
6398 var locals = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6399
6400 return (0, _extends6.default)({
6401 project: this,
6402 Skypager: this.portfolio,
6403 lodash: _lodash2.default,
6404 fs: this.fsx
6405 }, locals, {
6406 console: console
6407 });
6408 }
6409 }, {
6410 key: 'loadFile',
6411 value: function loadFile(file) {
6412 return file;
6413 }
6414 }, {
6415 key: 'loadDocument',
6416 value: function loadDocument(doc) {
6417 return (0, _assign2.default)(doc.decorated, {
6418 visit: function visit(visitor) {
6419 visitor(doc);
6420 return doc;
6421 }
6422 });
6423 }
6424 }, {
6425 key: 'visit',
6426 value: function visit(route, visitor) {
6427 var _this8 = this;
6428
6429 this.invoke('route', route).forEach(function (result, _index) {
6430 return result.doc.visit(_lodash2.default.partialRight(visitor, (0, _extends6.default)({}, result, { _index: _index }), _this8.createSandbox()));
6431 });
6432 }
6433 }, {
6434 key: 'createScriptRunner',
6435 value: function createScriptRunner(code) {
6436 var _this9 = this;
6437
6438 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6439 var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
6440
6441 var script = this.createScript(code, options);
6442
6443 return function () {
6444 var ctx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6445 return script.runInContext(_this9.vm.createContext((0, _extends6.default)({}, _this9.sandbox, options, context, ctx)));
6446 };
6447 }
6448 }, {
6449 key: 'createModule',
6450 value: function createModule() {
6451 var code = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
6452 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6453
6454 var project = this;
6455 var runCode = _module2.default.wrap(code);
6456
6457 options = (0, _extends6.default)({
6458 filename: this.name + '-module-' + _lodash2.default.uniqueId() + '.js',
6459 dirname: this.cwd
6460 }, options);
6461
6462 var id = __webpack_require__(8).join(options.dirname, options.filename);
6463
6464 var mod = new _module2.default(id);
6465
6466 mod.paths = _module2.default._nodeModulePaths(options.dirname);
6467 mod.filename = options.filename;
6468
6469 return {
6470 code: code,
6471 id: id,
6472 mod: mod,
6473 options: options,
6474 get ctx() {
6475 return project.vm.createContext((0, _extends6.default)({}, project.createSandbox(), options.context || {}, {
6476 module: mod,
6477 exports: mod.exports,
6478 require: mod.require.bind(mod)
6479 }));
6480 },
6481 get script() {
6482 return project.vm.createScript(_module2.default.wrap(code), options);
6483 },
6484 get exports() {
6485 this.script.runInContext(this.ctx)(mod.exports, mod.require, mod, options.filename, options.dirname);
6486
6487 mod.loaded = true;
6488 return mod.exports;
6489 }
6490 };
6491 }
6492 }, {
6493 key: 'createScript',
6494 value: function createScript() {
6495 var code = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
6496 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6497
6498 return new this.vm.Script(code.toString(), options);
6499 }
6500 }, {
6501 key: 'createAsyncScriptRunner',
6502 value: function createAsyncScriptRunner(code) {
6503 var _this10 = this;
6504
6505 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6506 var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
6507
6508 return function () {
6509 var ctx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6510 return _promise2.default.resolve().then(function () {
6511 return _this10.createScriptRunner(code, options, context)(ctx);
6512 });
6513 };
6514 }
6515 }, {
6516 key: 'wrapFile',
6517 value: function wrapFile(file) {
6518 var project = this;
6519 var path = file.path;
6520
6521
6522 return {
6523 contents: function contents() {
6524 return project.readFileSync(path).toString();
6525 },
6526 getFile: function getFile() {
6527 return file;
6528 },
6529 json: function json() {
6530 return project.readJsonSync(path);
6531 },
6532 read: function read() {
6533 return project.readFileAsync(path).then(function (file) {
6534 return file.toString();
6535 });
6536 },
6537 readJson: function readJson() {
6538 return project.readJsonAsync(path);
6539 }
6540 };
6541 }
6542 /**
6543 * Get information about this project's parent. It will look up the path for the closest package.json
6544 * @return {Object} An object which provides access to the package.json path, folder path, and contents
6545 */
6546
6547 }, {
6548 key: 'calculateCacheKey',
6549 value: function calculateCacheKey() {
6550 var wrappers = this.chain.get('collection.importer.fileWrappersSync');
6551
6552 this.maxUpdatedAt = wrappers.map(function (f) {
6553 return f.stat && f.stat.mtime && f.stat.mtime.getTime();
6554 }).max().value();
6555
6556 this.filesCount = wrappers.size().value();
6557
6558 return this.id + ':' + this.maxUpdatedAt + ':' + this.filesCount;
6559 }
6560 }, {
6561 key: 'join',
6562
6563
6564 /**
6565 PATH HELPERS
6566 Helpers to make working with project paths easier
6567 */
6568 value: function join() {
6569 for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
6570 args[_key5] = arguments[_key5];
6571 }
6572
6573 return _path.join.apply(undefined, [this.cwd].concat(args));
6574 }
6575 }, {
6576 key: 'relative',
6577 value: function relative() {
6578 for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
6579 args[_key6] = arguments[_key6];
6580 }
6581
6582 return _path.relative.apply(undefined, [this.cwd].concat(args));
6583 }
6584 }, {
6585 key: 'resolve',
6586 value: function resolve() {
6587 for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
6588 args[_key7] = arguments[_key7];
6589 }
6590
6591 return _path.resolve.apply(undefined, [this.cwd].concat(args));
6592 }
6593
6594 /**
6595 * Access one of the project options, providing a default value should one
6596 * not already be set.
6597 * @param {String} value an object path including something like whatever.nested.value
6598 * @param {Any} defaultValue an optional default value should the requested value not be defined
6599 */
6600
6601 }, {
6602 key: 'getOption',
6603 value: function getOption(key, defaultValue) {
6604 return this.get('options.' + key, this.getConfig(key, defaultValue));
6605 }
6606 }, {
6607 key: 'getConfig',
6608 value: function getConfig(key, defaultValue) {
6609 return this.get('configuration.' + this.current.config + '.' + key, defaultValue);
6610 }
6611 /**
6612 * Access one of the project options, invoking a function if found. Providing a default value should one
6613 * not already be set, including a function which will be lazily evaluated.
6614 * @param {String} value an object path including something like whatever.nested.value
6615 * @param {Any} defaultValue an optional default value, or function returning one,
6616 * should the requested value not be defined
6617 */
6618
6619 }, {
6620 key: 'resultOption',
6621 value: function resultOption(value, defaultValue) {
6622 return this.result('options.' + value, defaultValue);
6623 }
6624 }, {
6625 key: 'attemptReadSync',
6626 value: function attemptReadSync(path) {
6627 var _this11 = this;
6628
6629 var fallbackValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
6630
6631 var result = attempt(function () {
6632 return _this11.fs.readFileSync(_this11.join(path)).toString();
6633 });
6634
6635 return isError(result) ? fallbackValue : result;
6636 }
6637 }, {
6638 key: 'use',
6639 value: function use(middleware) {
6640 if (isFunction(middleware)) {
6641 this.middleware(middleware);
6642 }
6643
6644 return this;
6645 }
6646 }, {
6647 key: 'start',
6648 value: function start() {
6649 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6650 var callback = arguments[1];
6651
6652 if (isFunction(callback)) {
6653 return this.middleware.run(options, this.sandbox, callback);
6654 } else {
6655 return this.startAsync(options, this.sandbox);
6656 }
6657 }
6658 }, {
6659 key: 'startAsync',
6660 value: function startAsync() {
6661 var _this12 = this;
6662
6663 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6664
6665 return new _promise2.default(function (resolve, reject) {
6666 _this12.middleware.run(options, _this12.sandbox, function (err) {
6667 for (var _len8 = arguments.length, callbackArgs = Array(_len8 > 1 ? _len8 - 1 : 0), _key8 = 1; _key8 < _len8; _key8++) {
6668 callbackArgs[_key8 - 1] = arguments[_key8];
6669 }
6670
6671 if (err) {
6672 reject(err);
6673 } else {
6674 resolve(callbackArgs);
6675 }
6676 });
6677 }).catch(function (error) {
6678 console.log('Error in start async method', _this12, error);
6679 });
6680 }
6681 }, {
6682 key: 'partialMixin',
6683 value: function partialMixin(InterfaceDefinition) {
6684 for (var _len9 = arguments.length, args = Array(_len9 > 1 ? _len9 - 1 : 0), _key9 = 1; _key9 < _len9; _key9++) {
6685 args[_key9 - 1] = arguments[_key9];
6686 }
6687
6688 var project = this;
6689
6690 chain(InterfaceDefinition).pickBy(function (v) {
6691 return typeof v === 'function';
6692 }).mapValues(function (fn) {
6693 return fn.bind.apply(fn, [project].concat(args));
6694 }).mapValues(function (fn, methodName) {
6695 return project.hide(methodName, fn, true);
6696 });
6697
6698 return this;
6699 }
6700 }, {
6701 key: 'mixin',
6702 value: function mixin() {
6703 var _this13 = this;
6704
6705 var InterfaceDefinition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6706
6707 assign(this, mapValues(InterfaceDefinition, function (fn) {
6708 return fn.bind(_this13);
6709 }));
6710 return this;
6711 }
6712 }, {
6713 key: 'mountCollection',
6714 value: function mountCollection() {
6715 var cwd = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.cwd;
6716 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6717
6718 var project = this;
6719
6720 options = (0, _extends6.default)({
6721 importerOptions: project.get('options.importer', project.get('options.importerOptions', {})),
6722 project: project,
6723 documentClass: _document2.default
6724 }, options, {
6725 exclude: options.exclude === false || options.includeAll ? [] : [].concat((0, _toConsumableArray3.default)(options.exclude || []), (0, _toConsumableArray3.default)(options.ignore || []), (0, _toConsumableArray3.default)(project.gitignores || []), (0, _toConsumableArray3.default)(project.skypagerIgnoreContents || []))
6726 });
6727
6728 return _collection2.default.mount(cwd, (0, _extends6.default)({}, options, {
6729 collection: this
6730 }));
6731 }
6732 }, {
6733 key: 'findUp',
6734 value: function findUp(fileName) {
6735 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6736
6737 return _findUp3.default.sync(fileName, (0, _extends6.default)({
6738 cwd: this.parentFolder
6739 }, options));
6740 }
6741 }, {
6742 key: 'select',
6743 value: function select(selector) {
6744 for (var _len10 = arguments.length, args = Array(_len10 > 1 ? _len10 - 1 : 0), _key10 = 1; _key10 < _len10; _key10++) {
6745 args[_key10 - 1] = arguments[_key10];
6746 }
6747
6748 if (isFunction(selector)) {
6749 var _result = selector.call.apply(selector, [this, this.chain].concat(args));
6750 return _result && typeof _result.value === 'function' ? _result.value() : _result;
6751 } else if (typeof selector === 'string') {
6752 return this.selectors.lookup(selector).apply(undefined, args);
6753 }
6754 }
6755 }, {
6756 key: 'selectChain',
6757 value: function selectChain(selector) {
6758 var _chain2;
6759
6760 for (var _len11 = arguments.length, args = Array(_len11 > 1 ? _len11 - 1 : 0), _key11 = 1; _key11 < _len11; _key11++) {
6761 args[_key11 - 1] = arguments[_key11];
6762 }
6763
6764 return (_chain2 = this.chain).invoke.apply(_chain2, ['select', selector].concat(args));
6765 }
6766 }, {
6767 key: 'selectorMap',
6768 value: function selectorMap() {
6769 var _this14 = this;
6770
6771 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6772 var resolveChain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
6773
6774 var c = this.chain.plant(config).mapValues(function (selector) {
6775 return _this14.select.apply(_this14, (0, _toConsumableArray3.default)(_lodash2.default.castArray(selector)));
6776 });
6777
6778 return resolveChain ? c.value() : c;
6779 }
6780
6781 /**
6782 * Create a lodash chain by picking some properties from the project.
6783 * @param {Array[String]} properties List of properties you want to be a part of the chain
6784 * @return {Chain} The lodash chain whose initial value consists of the properties given
6785 */
6786
6787 }, {
6788 key: 'pick',
6789 value: function pick(properties) {
6790 return this.chain.pick(properties);
6791 }
6792
6793 /**
6794 * Create a lodash chain with the given object paths.
6795 */
6796
6797 }, {
6798 key: 'at',
6799 value: function at() {
6800 var _chain3;
6801
6802 return (_chain3 = this.chain).at.apply(_chain3, arguments);
6803 }
6804 }, {
6805 key: 'resolveRequest',
6806 value: function resolveRequest(request) {
6807 var _this15 = this;
6808
6809 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6810
6811 if (!options.async) {
6812 return _promise2.default.resolve(this.resolveSync(request, options)).catch(function (error) {
6813 console.log('ERROR in Resolve Request', error);
6814 });
6815 } else {
6816 return new _promise2.default(function (resolve, reject) {
6817 resolve(_this15.resolveSync(request, options));
6818 }).catch(function (error) {
6819 console.log('ERROR in Resolve Request', error);
6820 });
6821 }
6822 }
6823 }, {
6824 key: 'resolveRequestSync',
6825 value: function resolveRequestSync(request) {
6826 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6827
6828 if ((typeof request === 'undefined' ? 'undefined' : (0, _typeof3.default)(request)) === 'object') {
6829 return request;
6830 } else if (typeof request === 'string') {
6831 return {
6832 request: request
6833 };
6834 }
6835 }
6836 }, {
6837 key: 'documentClass',
6838 get: function get() {
6839 return this.getOption('documentClass', _document2.default);
6840 }
6841 }, {
6842 key: 'documentTransforms',
6843 get: function get() {
6844 return this.get('documentTypes.available', []).map(this.documentType.bind(this)).filter(function (docType) {
6845 return docType.getTransforms;
6846 }).reduce(function (memo, docType) {
6847 return (0, _extends6.default)({}, memo, docType.getTransforms());
6848 }, []);
6849 }
6850 }, {
6851 key: 'documentUtils',
6852 get: function get() {
6853 return this.get('documentTypes.available', []).map(this.documentType.bind(this)).filter(function (docType) {
6854 return docType.getTransforms;
6855 }).reduce(function (memo, docType) {
6856 return (0, _extends6.default)({}, memo, docType.getTransforms());
6857 }, []);
6858 }
6859 }, {
6860 key: 'lookup',
6861 get: function get() {
6862 var p = this;
6863
6864 return p.registries.available.reduce(function (memo, prop) {
6865 return (0, _extends6.default)({}, memo, (0, _defineProperty3.default)({}, singularize(prop), function () {
6866 var _p$registries$lookup;
6867
6868 return (_p$registries$lookup = p.registries.lookup(prop)).lookup.apply(_p$registries$lookup, arguments);
6869 }));
6870 }, {});
6871 }
6872 }, {
6873 key: 'register',
6874 get: function get() {
6875 var p = this;
6876
6877 return p.registries.available.reduce(function (memo, prop) {
6878 return (0, _extends6.default)({}, memo, (0, _defineProperty3.default)({}, singularize(prop), function () {
6879 var _p$registries$lookup2;
6880
6881 return (_p$registries$lookup2 = p.registries.lookup(prop)).register.apply(_p$registries$lookup2, arguments);
6882 }));
6883 }, {});
6884 }
6885 }, {
6886 key: 'isReact',
6887 get: function get() {
6888 return this.hasDependency('react');
6889 }
6890 }, {
6891 key: 'isReactNative',
6892 get: function get() {
6893 return this.hasDependency('react-native');
6894 }
6895 }, {
6896 key: 'documentsTree',
6897 get: function get() {
6898 return (0, _tree2.default)(this, {
6899 ready: false
6900 });
6901 }
6902 }, {
6903 key: 'loadedDocumentsTree',
6904 get: function get() {
6905 return (0, _tree2.default)(this, {
6906 ready: true
6907 });
6908 }
6909 }, {
6910 key: 'context',
6911 get: function get() {
6912 return this.cwd;
6913 }
6914 }, {
6915 key: 'root',
6916 get: function get() {
6917 return this.cwd;
6918 }
6919 }, {
6920 key: 'parentFolder',
6921 get: function get() {
6922 return (0, _path.dirname)(this.cwd);
6923 }
6924 }, {
6925 key: 'id',
6926 get: function get() {
6927 return this.instanceId + '-' + this.get('manifest.version');
6928 }
6929 }, {
6930 key: 'name',
6931 get: function get() {
6932 return this.get('options.name') || this.get('manifest.name') || this.constructor.name.toLowerCase();
6933 }
6934 }, {
6935 key: 'paths',
6936 get: function get() {
6937 var project = this;
6938
6939 return (0, _extends6.default)({
6940 cwd: this.cwd
6941 }, this.chain.get('options.paths', {}).defaults(DefaultOptions.paths).mapValues(function (p) {
6942 return project.resolve(p);
6943 }).value());
6944 }
6945
6946 /**
6947 * A namespace can be set in the Project options, it will default
6948 * to the package.json scope if it exists (e.g @skypager/package) otherwise
6949 * the name of the Projects parent folder will be used.
6950 */
6951
6952 }, {
6953 key: 'namespace',
6954 get: function get() {
6955 var name = this.name;
6956
6957 return this.result('options.namespace', function () {
6958 return name.match(/^\@\w+\//) ? name.split('/')[0].replace(/\^\@/, '') : name.split('-')[0];
6959 });
6960 }
6961 }, {
6962 key: 'packageMain',
6963 get: function get() {
6964 return this.get('manifest.main', 'index.js');
6965 }
6966 }, {
6967 key: 'skypagerMain',
6968 get: function get() {
6969 return this.get('manifest.skypager.main', 'skypager.js');
6970 }
6971 }, {
6972 key: 'isCli',
6973 get: function get() {
6974 return !!this.get('environment.SKYPAGER_CLI', false);
6975 }
6976 }, {
6977 key: 'isServer',
6978 get: function get() {
6979 return !!this.get('environment.SKYPAGER_SERVER', false);
6980 }
6981 }, {
6982 key: 'isElectron',
6983 get: function get() {
6984 return !!this.get('environment.SKYPAGER_ELECTRON', false);
6985 }
6986 }, {
6987 key: 'chain',
6988 get: function get() {
6989 return chain(this);
6990 }
6991 }, {
6992 key: 'collection',
6993 get: function get() {
6994 return this.collections.lookup(this.current.collection);
6995 }
6996 }, {
6997 key: 'availableHelpers',
6998 get: function get() {
6999 return this.chain.at('helpers.available', 'portfolio.helpers.available').flatten().uniq().sort().value();
7000 }
7001 }, {
7002 key: 'helpersMap',
7003 get: function get() {
7004 var _this16 = this;
7005
7006 var helpersRoot = this.getOption('helpersRoot', 'src');
7007 var helpers = this.getOption('helpers', []);
7008
7009 var normalized = helpers.map(function (entry) {
7010 return typeof entry === 'string' ? { name: entry, pattern: helpersRoot + '/' + entry + '/:name*' } : entry;
7011 });
7012
7013 return normalized.reduce(function (memo, cfg) {
7014 return (0, _extends6.default)({}, memo, (0, _defineProperty3.default)({}, cfg.name, (0, _extends6.default)({}, cfg, { documents: _this16.routeDocuments(cfg.pattern) })));
7015 }, {});
7016 }
7017 }, {
7018 key: 'vm',
7019 get: function get() {
7020 return _isomorphicVm2.default;
7021 }
7022 }, {
7023 key: 'vmSandbox',
7024 get: function get() {
7025 return this.vm.createContext(this.sandbox);
7026 }
7027 }, {
7028 key: 'sandbox',
7029 get: function get() {
7030 return this.createSandbox();
7031 }
7032 }, {
7033 key: 'module',
7034 get: function get() {
7035 return __webpack_require__.c[require.resolve(this.paths.manifest)];
7036 }
7037 }, {
7038 key: 'parentModule',
7039 get: function get() {
7040 var proj = this;
7041
7042 return {
7043 get path() {
7044 return proj.findUp('package.json', {
7045 cwd: proj.parentFolder
7046 });
7047 },
7048
7049 get folder() {
7050 return (0, _path.dirname)(proj.parentModule.path);
7051 },
7052
7053 get manifest() {
7054 return proj.framework.readJsonSync(proj.parentModule.path);
7055 },
7056
7057 get projectLoader() {
7058 return function () {
7059 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7060 return proj.portfolio.load(proj.parentModule.folder, options);
7061 };
7062 },
7063
7064 get project() {
7065 return proj.parentModule.projectLoader({
7066 sync: false
7067 });
7068 }
7069 };
7070 }
7071 }, {
7072 key: 'argv',
7073 get: function get() {
7074 return (0, _extends6.default)({}, __webpack_require__(84)(process.argv), this.getOption('argv', {}));
7075 }
7076 }, {
7077 key: 'env',
7078 get: function get() {
7079 var env = this.environment;
7080 return env.SKYPAGER_ENV ? env.SKYPAGER_ENV : env.NODE_ENV;
7081 }
7082 }, {
7083 key: 'environment',
7084 get: function get() {
7085 return (0, _extends6.default)({
7086 NODE_ENV: 'development'
7087 }, this.getOption('env', process.env));
7088 }
7089 }, {
7090 key: 'sourceFilePaths',
7091 get: function get() {
7092 var sourcePaths = this.validSourcePaths;
7093 return this.files.filter(function (f) {
7094 return sourcePaths.indexOf(f.dirname) >= 0;
7095 }).map(function (f) {
7096 return f.path;
7097 }).filter(function (f) {
7098 return !f.match(/(spec|test).*\.\w+$/);
7099 });
7100 }
7101 }, {
7102 key: 'validSourcePaths',
7103 get: function get() {
7104 var _this17 = this;
7105
7106 return this.sourcePaths.filter(function (p) {
7107 return _this17.fs.existsSync(p);
7108 });
7109 }
7110 }, {
7111 key: 'sourcePaths',
7112 get: function get() {
7113 return this.chain.get('options.sourcePaths', []).concat([this.paths.source]).uniq().value();
7114 }
7115 }, {
7116 key: 'chains',
7117 get: function get() {
7118 var _chain4;
7119
7120 var project = this;
7121
7122 var chains = (_chain4 = this.chain).at.apply(_chain4, chainSources).flatten().compact().uniq().reduce(function (memo, prop) {
7123 (0, _skypagerUtil.lazy)(memo, prop, function () {
7124 return chain(project.get(prop));
7125 });
7126 return memo;
7127 }, {});
7128
7129 return chains.value();
7130 }
7131 }, {
7132 key: 'queries',
7133 get: function get() {
7134 var _chain5;
7135
7136 var project = this;
7137
7138 var queries = (_chain5 = this.chain).at.apply(_chain5, querySources).flatten().compact().uniq().reduce(function (memo, prop) {
7139 memo[prop] = function () {
7140 for (var _len12 = arguments.length, args = Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {
7141 args[_key12] = arguments[_key12];
7142 }
7143
7144 return _skypagerUtil.query.apply(undefined, [project.get(prop)].concat(args));
7145 };
7146 return memo;
7147 }, {});
7148
7149 return queries.value();
7150 }
7151 }, {
7152 key: 'gitignores',
7153 get: function get() {
7154 return this.getOption('ignorePaths', ['tmp/', 'log/', 'dist/', '.DS_Store']).concat(this.gitignoreContents).map(function (p) {
7155 return '!' + p;
7156 });
7157 }
7158 }, {
7159 key: 'gitignoreContents',
7160 get: function get() {
7161 return this.attemptReadSync('.gitignore', '').split("\n").filter(function (p) {
7162 return p && p.length > 2 && !p.trim().startsWith('#');
7163 });
7164 }
7165 }, {
7166 key: 'skypagerIgnoreContents',
7167 get: function get() {
7168 return this.attemptReadSync('.skypagerignore', '').split("\n").filter(function (p) {
7169 return p && p.length > 2 && !p.trim().startsWith('#');
7170 });
7171 }
7172 }, {
7173 key: 'started',
7174 get: function get() {
7175 var _this18 = this;
7176
7177 return this.startAsync().then(function () {
7178 return _this18;
7179 });
7180 }
7181 }, {
7182 key: 'hostname',
7183 get: function get() {
7184 try {
7185 return __webpack_require__(88).hostname();
7186 } catch (error) {
7187 return this.name + '.skypager.local';
7188 }
7189 }
7190 }], [{
7191 key: 'load',
7192 value: function load() {
7193 var cwd = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : process.cwd();
7194 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7195 var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
7196
7197 return new this(cwd, options, context);
7198 }
7199 }, {
7200 key: 'loadSync',
7201 value: function loadSync() {
7202 var cwd = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : process.cwd();
7203 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7204 var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
7205
7206 return this.load(cwd, (0, _extends6.default)({}, options, {
7207 sync: true
7208 }), context);
7209 }
7210 }, {
7211 key: 'Collection',
7212 get: function get() {
7213 return _collection2.default;
7214 }
7215 }, {
7216 key: 'Document',
7217 get: function get() {
7218 return _document2.default;
7219 }
7220 }]);
7221 return Project;
7222}(), _class.collectionDelegators = ['childFolderNames', 'childFolderPaths', 'subFolderNames', 'subFolderPaths', 'rootFiles', 'groupedByChildFolder', 'groupedByChildFolderAndExtension', 'relativeFilePaths', 'relativeSubFolderPaths', 'getFileByRelativePath', 'filesIndex', 'relativeObjectPaths', 'subFolderObjectPaths', 'routers', 'documentsMap', 'documentsMappedById', 'documentEntryPoints', 'depths', 'gitInfo'], _class.chainProps = ['files', 'documents', 'childFolderPaths', 'childFolderNames', 'subFolderNames', 'subFolderPaths'], _class.queryProps = ['files', 'documents', 'childFolderPaths', 'childFolderNames', 'subFolderNames', 'subFolderPaths'], _temp);
7223exports.default = Project;
7224function load() {
7225 var cwd = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : process.cwd();
7226 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7227 var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
7228
7229 return new Project(cwd, options, context);
7230}
7231
7232function attachEmitter(project) {
7233 project.hide('emitter', new _fbemitter.EventEmitter());
7234 project.hide('on', project.emitter.addListener.bind(project.emitter));
7235 project.hide('once', project.emitter.once.bind(project.emitter));
7236 project.hide('off', project.emitter.removeCurrentListener.bind(project.emitter));
7237 project.hide('emit', project.emitter.emit.bind(project.emitter));
7238 project.hide('trigger', project.emitter.emit.bind(project.emitter));
7239}
7240
7241function attachRegistry(project, name) {
7242 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
7243
7244 if (project.registries.available.indexOf(name) >= 0) {
7245 return project.registries.lookup(name);
7246 }
7247
7248 project.registries.register(name, function () {
7249 return create((0, _extends6.default)({
7250 name: name,
7251 type: 'Directory'
7252 }, options));
7253 });
7254
7255 if (options.prop !== false && typeof project[name] === 'undefined') {
7256 project.getter(name, function () {
7257 return project.registries.lookup(name);
7258 });
7259 }
7260
7261 if (options.prop !== false && typeof project[singularize(name)] === 'undefined') {
7262 project.getter(singularize(name), function () {
7263 var _project$name;
7264
7265 return (_project$name = project[name]).lookup.apply(_project$name, arguments);
7266 });
7267 }
7268
7269 return project;
7270}
7271
7272/***/ },
7273
7274/***/ "./src/selectors/dependencies.js":
7275/***/ function(module, exports, __webpack_require__) {
7276
7277"use strict";
7278'use strict';
7279
7280var _assign = __webpack_require__(13);
7281
7282var _assign2 = _interopRequireDefault(_assign);
7283
7284function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7285
7286module.exports = function (chain) {
7287 return chain.get('manifest').pick('depdendencies', 'devDependencies', 'peerDependencies', 'optionalDependencies').values().reduce(function (memo, obj) {
7288 return (0, _assign2.default)(memo, obj);
7289 }, {});
7290};
7291
7292/***/ },
7293
7294/***/ "./src/selectors/markdown-editor.js":
7295/***/ function(module, exports) {
7296
7297"use strict";
7298'use strict';
7299
7300module.exports = function (chain) {
7301 return chain.invoke('selectorMap', {
7302 documents: 'markdown/documents',
7303 workbench: 'markdown/workbench'
7304 }).thru(function (markdown) {
7305 return { markdown: markdown };
7306 });
7307};
7308
7309/***/ },
7310
7311/***/ "./src/selectors/markdown/documents.js":
7312/***/ function(module, exports, __webpack_require__) {
7313
7314"use strict";
7315'use strict';
7316
7317var _extends2 = __webpack_require__(0);
7318
7319var _extends3 = _interopRequireDefault(_extends2);
7320
7321function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7322
7323module.exports = function (chain) {
7324 return chain.invoke('route', '*.md').map(function (result) {
7325 return (0, _extends3.default)({}, result, {
7326 doc: result.doc.ready
7327 }, result.doc.chain.get('exportables').pick('contents', 'html', 'ast').value());
7328 }).keyBy('id');
7329};
7330
7331/***/ },
7332
7333/***/ "./src/selectors/markdown/workbench.js":
7334/***/ function(module, exports) {
7335
7336"use strict";
7337'use strict';
7338
7339module.exports = function (chain) {
7340 var project = this;
7341 var docType = project.documentType('markdown');
7342
7343 return chain.pick('gitInfo', 'cacheKey', 'cwd', 'manifest', 'env', 'hostname').thru(function (project) {
7344 return { project: project };
7345 }).merge({
7346 documentHelpers: {
7347 utils: docType.markdownUtils(),
7348 transformers: docType.markdownTransforms()
7349 }
7350 });
7351};
7352
7353/***/ },
7354
7355/***/ "./src/transformers/docblock.js":
7356/***/ function(module, exports, __webpack_require__) {
7357
7358"use strict";
7359'use strict';
7360
7361Object.defineProperty(exports, "__esModule", {
7362 value: true
7363});
7364exports.profiles = exports.applyTo = undefined;
7365
7366var _docblockParser = __webpack_require__(20);
7367
7368var _docblockParser2 = _interopRequireDefault(_docblockParser);
7369
7370function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7371
7372var applyTo = exports.applyTo = function applyTo() {
7373 var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '/**\n*\n*\n**/';
7374 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7375
7376 return (0, _docblockParser2.default)({
7377 tags: {
7378 providesModule: _docblockParser.singleParameterTag,
7379 name: _docblockParser.singleParameterTag
7380 }
7381 }).parse(input);
7382};
7383
7384exports.default = _docblockParser2.default;
7385var profiles = exports.profiles = {
7386 docblock: _docblockParser2.default
7387};
7388
7389/***/ },
7390
7391/***/ "./src/transformers/markdown.js":
7392/***/ function(module, exports, __webpack_require__) {
7393
7394"use strict";
7395'use strict';
7396
7397Object.defineProperty(exports, "__esModule", {
7398 value: true
7399});
7400exports.utilLoaders = exports.addons = exports.profiles = exports.github = exports.stringifier = exports.html = exports.parser = exports.comments = exports.standard = exports.applyTo = undefined;
7401
7402var _remark = __webpack_require__(44);
7403
7404var _remark2 = _interopRequireDefault(_remark);
7405
7406var _remarkCommentBlocks = __webpack_require__(92);
7407
7408var _remarkCommentBlocks2 = _interopRequireDefault(_remarkCommentBlocks);
7409
7410var _remarkCommentConfig = __webpack_require__(93);
7411
7412var _remarkCommentConfig2 = _interopRequireDefault(_remarkCommentConfig);
7413
7414var _remarkHtml = __webpack_require__(96);
7415
7416var _remarkHtml2 = _interopRequireDefault(_remarkHtml);
7417
7418var _remarkSlug = __webpack_require__(102);
7419
7420var _remarkSlug2 = _interopRequireDefault(_remarkSlug);
7421
7422var _remarkSqueezeParagraphs = __webpack_require__(103);
7423
7424var _remarkSqueezeParagraphs2 = _interopRequireDefault(_remarkSqueezeParagraphs);
7425
7426var _remarkYamlAnnotations = __webpack_require__(109);
7427
7428var _remarkYamlAnnotations2 = _interopRequireDefault(_remarkYamlAnnotations);
7429
7430var _remarkStringify = __webpack_require__(104);
7431
7432var _remarkStringify2 = _interopRequireDefault(_remarkStringify);
7433
7434var _remarkNormalizeHeadings = __webpack_require__(98);
7435
7436var _remarkNormalizeHeadings2 = _interopRequireDefault(_remarkNormalizeHeadings);
7437
7438var _remarkGithub = __webpack_require__(95);
7439
7440var _remarkGithub2 = _interopRequireDefault(_remarkGithub);
7441
7442var _remarkToc = __webpack_require__(106);
7443
7444var _remarkToc2 = _interopRequireDefault(_remarkToc);
7445
7446var _remarkAutolinkHeadings = __webpack_require__(91);
7447
7448var _remarkAutolinkHeadings2 = _interopRequireDefault(_remarkAutolinkHeadings);
7449
7450var _remarkContributors = __webpack_require__(94);
7451
7452var _remarkContributors2 = _interopRequireDefault(_remarkContributors);
7453
7454var _remarkLicense = __webpack_require__(97);
7455
7456var _remarkLicense2 = _interopRequireDefault(_remarkLicense);
7457
7458var _remarkStripBadges = __webpack_require__(105);
7459
7460var _remarkStripBadges2 = _interopRequireDefault(_remarkStripBadges);
7461
7462var _remarkUsage = __webpack_require__(107);
7463
7464var _remarkUsage2 = _interopRequireDefault(_remarkUsage);
7465
7466var _remarkValidateLinks = __webpack_require__(108);
7467
7468var _remarkValidateLinks2 = _interopRequireDefault(_remarkValidateLinks);
7469
7470var _remarkParse = __webpack_require__(99);
7471
7472var _remarkParse2 = _interopRequireDefault(_remarkParse);
7473
7474function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7475
7476/**
7477 * Run a remark parser profile with optional add-ons. Available profiles
7478 * can be found @see profiles and addOns @see addOns
7479 *
7480 * @param {Object} options - the options object
7481 * @param {String} options.profile - which parser profile to use?
7482 * @param {Array} options.addOns - which addons to include?
7483 */
7484exports.default = function () {
7485 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7486 var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7487 var _options$profile = options.profile;
7488 var profile = _options$profile === undefined ? 'parser' : _options$profile;
7489 var _options$addOns = options.addOns;
7490 var addOns = _options$addOns === undefined ? [] : _options$addOns;
7491
7492 var unified = profiles[profile] || parser;
7493
7494 return addOns.reduce(function (memo, addon) {
7495 return addons[addOn] ? memo.use(addons[addOn]) : memo;
7496 }, unified(options));
7497};
7498
7499var applyTo = exports.applyTo = function applyTo(input, options) {
7500 var _options$method = options.method;
7501 var method = _options$method === undefined ? 'parse' : _options$method;
7502 var _options$parser = options.parser;
7503 var parser = _options$parser === undefined ? 'github' : _options$parser;
7504
7505 return profiles[parser](options)[method](input);
7506};
7507
7508var standard = exports.standard = function standard() {
7509 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7510 return (0, _remark2.default)().use(_remarkCommentConfig2.default).use(_remarkNormalizeHeadings2.default).use(_remarkSqueezeParagraphs2.default).use(_remarkSlug2.default).use(_remarkYamlAnnotations2.default).use(_remarkAutolinkHeadings2.default);
7511};
7512
7513var comments = exports.comments = function comments() {
7514 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7515 return standard(options).use(_remarkCommentBlocks2.default);
7516};
7517
7518var parser = exports.parser = function parser() {
7519 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7520 return standard(options).use(_remarkParse2.default);
7521};
7522
7523var html = exports.html = function html() {
7524 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7525 return standard(options).use(_remarkHtml2.default);
7526};
7527
7528var stringifier = exports.stringifier = function stringifier() {
7529 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7530 return standard(options).use(_remarkStringify2.default);
7531};
7532
7533var github = exports.github = function github() {
7534 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7535 return standard(options).use(_remarkGithub2.default).use(_remarkAutolinkHeadings2.default);
7536};
7537
7538var profiles = exports.profiles = {
7539 parser: parser,
7540 standard: standard,
7541 comments: comments,
7542 github: github,
7543 html: html,
7544 stringifier: stringifier
7545};
7546
7547var addons = exports.addons = {
7548 contributors: _remarkContributors2.default,
7549 license: _remarkLicense2.default,
7550 stripBadges: _remarkStripBadges2.default,
7551 usage: _remarkUsage2.default,
7552 validateLinks: _remarkValidateLinks2.default,
7553 toc: _remarkToc2.default
7554};
7555
7556var utilLoaders = exports.utilLoaders = function utilLoaders() {
7557 return {
7558 filter: function filter() {
7559 return __webpack_require__(45);
7560 },
7561 findAfter: function findAfter() {
7562 return __webpack_require__(24);
7563 },
7564 findAllAfter: function findAllAfter() {
7565 return __webpack_require__(25);
7566 },
7567 findAllBefore: function findAllBefore() {
7568 return __webpack_require__(26);
7569 },
7570 index: function index() {
7571 return __webpack_require__(46);
7572 },
7573 map: function map() {
7574 return __webpack_require__(47);
7575 },
7576 parents: function parents() {
7577 return __webpack_require__(48);
7578 },
7579 position: function position() {
7580 return __webpack_require__(49);
7581 },
7582 removePosition: function removePosition() {
7583 return __webpack_require__(50);
7584 },
7585 select: function select() {
7586 return __webpack_require__(16);
7587 },
7588 source: function source() {
7589 return __webpack_require__(27);
7590 },
7591 visit: function visit() {
7592 return __webpack_require__(28);
7593 },
7594 reporter: function reporter() {
7595 return __webpack_require__(51);
7596 },
7597 rehypeDocument: function rehypeDocument() {
7598 return __webpack_require__(43);
7599 },
7600 docblockParser: function docblockParser() {
7601 return __webpack_require__(20);
7602 },
7603 toString: function toString() {
7604 return __webpack_require__(22);
7605 }
7606 };
7607};
7608
7609/***/ },
7610
7611/***/ "./src/transformers/rehype.js":
7612/***/ function(module, exports, __webpack_require__) {
7613
7614"use strict";
7615'use strict';
7616
7617Object.defineProperty(exports, "__esModule", {
7618 value: true
7619});
7620exports.profiles = exports.nestedSections = exports.rehype = exports.applyTo = undefined;
7621
7622var _markdown = __webpack_require__("./src/transformers/markdown.js");
7623
7624var _remarkRehype = __webpack_require__(100);
7625
7626var _remarkRehype2 = _interopRequireDefault(_remarkRehype);
7627
7628var _rehypeStringify = __webpack_require__(90);
7629
7630var _rehypeStringify2 = _interopRequireDefault(_rehypeStringify);
7631
7632function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7633
7634exports.default = function () {
7635 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7636 var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7637 var _options$profile = options.profile;
7638 var profile = _options$profile === undefined ? 'default' : _options$profile;
7639
7640 return (profiles[profile] || nestedSections)(options);
7641};
7642
7643var applyTo = exports.applyTo = function applyTo(input, options) {
7644 var _options$method = options.method;
7645 var method = _options$method === undefined ? 'parse' : _options$method;
7646 var _options$parser = options.parser;
7647 var parser = _options$parser === undefined ? 'nested' : _options$parser;
7648
7649 return profiles[parser](options)[method](input);
7650};
7651
7652var rehype = exports.rehype = function rehype() {
7653 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7654 return (0, _markdown.parser)(options).use(_remarkRehype2.default).use(_rehypeStringify2.default);
7655};
7656
7657var nestedSections = exports.nestedSections = function nestedSections() {
7658 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7659 return rehype(options).use(function () {
7660 return nestSections;
7661 }).use(_rehypeStringify2.default);
7662};
7663
7664var profiles = exports.profiles = {
7665 default: nestedSections,
7666 nested: nestedSections,
7667 standard: rehype
7668};
7669
7670/* eslint-disable */
7671
7672// Thanks to titus @wooorm the author of remark / retext / rehype for this!
7673var nestSections = function nestSections(tree) {
7674 var result = [];
7675 var section = void 0;
7676 var article = void 0;
7677
7678 tree.children.forEach(function (child) {
7679 var ctx;
7680
7681 if (child.tagName === 'h2') {
7682 ctx = result;
7683 article = null;
7684 section = child = h('section', [child]);
7685 } else if (child.tagName === 'h3') {
7686 ctx = section ? section.children : result;
7687 article = child = h('article', [child]);
7688 } else {
7689 ctx = (article || section || {}).children || result;
7690 }
7691
7692 ctx.push(child);
7693 });
7694
7695 tree.children = [h('main', result)];
7696};
7697
7698/***/ },
7699
7700/***/ "./src/transformers/retext.js":
7701/***/ function(module, exports, __webpack_require__) {
7702
7703"use strict";
7704'use strict';
7705
7706Object.defineProperty(exports, "__esModule", {
7707 value: true
7708});
7709exports.applyTo = exports.profiles = exports.retext = undefined;
7710
7711var _remark = __webpack_require__(44);
7712
7713var _remark2 = _interopRequireDefault(_remark);
7714
7715var _unified = __webpack_require__(112);
7716
7717var _unified2 = _interopRequireDefault(_unified);
7718
7719var _remarkRetext = __webpack_require__(101);
7720
7721var _remarkRetext2 = _interopRequireDefault(_remarkRetext);
7722
7723var _retextEnglish = __webpack_require__(110);
7724
7725var _retextEnglish2 = _interopRequireDefault(_retextEnglish);
7726
7727var _retextKeywords = __webpack_require__(111);
7728
7729var _retextKeywords2 = _interopRequireDefault(_retextKeywords);
7730
7731function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7732
7733var retext = exports.retext = function retext() {
7734 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7735 return (0, _unified2.default)().use((0, _remark2.default)()).use(_remarkRetext2.default, (0, _unified2.default)().use(_retextEnglish2.default).use(_retextKeywords2.default));
7736};
7737
7738exports.default = function () {
7739 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7740 var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7741 var _options$profile = options.profile;
7742 var profile = _options$profile === undefined ? 'default' : _options$profile;
7743
7744 return (profiles[profile] || retext)(options);
7745};
7746
7747var profiles = exports.profiles = {
7748 default: retext,
7749 retext: retext
7750};
7751
7752var applyTo = exports.applyTo = function applyTo(input, options) {
7753 var _options$method = options.method;
7754 var method = _options$method === undefined ? 'parse' : _options$method;
7755 var _options$parser = options.parser;
7756 var parser = _options$parser === undefined ? 'retext' : _options$parser;
7757
7758 return profiles[parser](options)[method](input);
7759};
7760
7761/***/ },
7762
7763/***/ "./src/tree.js":
7764/***/ function(module, exports, __webpack_require__) {
7765
7766"use strict";
7767'use strict';
7768
7769Object.defineProperty(exports, "__esModule", {
7770 value: true
7771});
7772exports.createDocumentTree = exports.treeConfig = undefined;
7773
7774var _skypagerUtil = __webpack_require__(3);
7775
7776var _set = __webpack_require__(40);
7777
7778var _set2 = _interopRequireDefault(_set);
7779
7780var _get = __webpack_require__(15);
7781
7782var _get2 = _interopRequireDefault(_get);
7783
7784function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7785
7786var camelCase = _skypagerUtil.strings.camelCase;
7787var snakeCase = _skypagerUtil.strings.snakeCase;
7788var treeConfig = exports.treeConfig = function treeConfig(project) {
7789 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7790 return project.chain.get('documentsMap').mapValues(function (doc, id) {
7791 return {
7792 doc: doc,
7793 id: id,
7794 idParts: doc.idParts.map(function (p) {
7795 return camelCase(snakeCase(p).replace(/-/g, '_'));
7796 }),
7797 bucket: doc.idParts.map(function (p) {
7798 return camelCase(snakeCase(p).replace(/-/g, '_'));
7799 }).slice(0, doc.idParts.length - 1)
7800 };
7801 });
7802};
7803
7804var createDocumentTree = exports.createDocumentTree = function createDocumentTree(project) {
7805 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7806 return treeConfig(project, options).values().sortBy(function (cfg) {
7807 return cfg.idParts.length;
7808 }).reduce(function (memo, cfg) {
7809 var existingBucket = (0, _get2.default)(memo, cfg.bucket, {});
7810 (0, _set2.default)(memo, cfg.bucket, existingBucket);
7811 (0, _set2.default)(memo, cfg.idParts, options.ready ? cfg.doc.ready : cfg.doc);
7812 return memo;
7813 }, {}).value();
7814};
7815
7816exports.default = createDocumentTree;
7817
7818/***/ },
7819
7820/***/ "./src/utils/emitter.js":
7821/***/ function(module, exports, __webpack_require__) {
7822
7823"use strict";
7824'use strict';
7825
7826Object.defineProperty(exports, "__esModule", {
7827 value: true
7828});
7829exports.attachEmitter = attachEmitter;
7830
7831var _fbemitter = __webpack_require__(33);
7832
7833function attachEmitter(project) {
7834 project.hide('emitter', new _fbemitter.EventEmitter());
7835 project.hide('on', project.emitter.addListener.bind(project.emitter));
7836 project.hide('once', project.emitter.once.bind(project.emitter));
7837 project.hide('off', project.emitter.removeCurrentListener.bind(project.emitter));
7838 project.hide('emit', project.emitter.emit.bind(project.emitter));
7839 project.hide('trigger', project.emitter.emit.bind(project.emitter));
7840}
7841
7842exports.default = attachEmitter;
7843
7844/***/ },
7845
7846/***/ 0:
7847/***/ function(module, exports) {
7848
7849module.exports = require("babel-runtime/helpers/extends");
7850
7851/***/ },
7852
7853/***/ 1:
7854/***/ function(module, exports) {
7855
7856module.exports = require("babel-runtime/helpers/classCallCheck");
7857
7858/***/ },
7859
7860/***/ 10:
7861/***/ function(module, exports) {
7862
7863module.exports = require("babel-runtime/helpers/defineProperty");
7864
7865/***/ },
7866
7867/***/ 100:
7868/***/ function(module, exports) {
7869
7870module.exports = require("remark-rehype");
7871
7872/***/ },
7873
7874/***/ 101:
7875/***/ function(module, exports) {
7876
7877module.exports = require("remark-retext");
7878
7879/***/ },
7880
7881/***/ 102:
7882/***/ function(module, exports) {
7883
7884module.exports = require("remark-slug");
7885
7886/***/ },
7887
7888/***/ 103:
7889/***/ function(module, exports) {
7890
7891module.exports = require("remark-squeeze-paragraphs");
7892
7893/***/ },
7894
7895/***/ 104:
7896/***/ function(module, exports) {
7897
7898module.exports = require("remark-stringify");
7899
7900/***/ },
7901
7902/***/ 105:
7903/***/ function(module, exports) {
7904
7905module.exports = require("remark-strip-badges");
7906
7907/***/ },
7908
7909/***/ 106:
7910/***/ function(module, exports) {
7911
7912module.exports = require("remark-toc");
7913
7914/***/ },
7915
7916/***/ 107:
7917/***/ function(module, exports) {
7918
7919module.exports = require("remark-usage");
7920
7921/***/ },
7922
7923/***/ 108:
7924/***/ function(module, exports) {
7925
7926module.exports = require("remark-validate-links");
7927
7928/***/ },
7929
7930/***/ 109:
7931/***/ function(module, exports) {
7932
7933module.exports = require("remark-yaml-annotations");
7934
7935/***/ },
7936
7937/***/ 11:
7938/***/ function(module, exports) {
7939
7940module.exports = require("lodash");
7941
7942/***/ },
7943
7944/***/ 110:
7945/***/ function(module, exports) {
7946
7947module.exports = require("retext-english");
7948
7949/***/ },
7950
7951/***/ 111:
7952/***/ function(module, exports) {
7953
7954module.exports = require("retext-keywords");
7955
7956/***/ },
7957
7958/***/ 112:
7959/***/ function(module, exports) {
7960
7961module.exports = require("unified");
7962
7963/***/ },
7964
7965/***/ 113:
7966/***/ function(module, exports) {
7967
7968module.exports = require("url");
7969
7970/***/ },
7971
7972/***/ 114:
7973/***/ function(module, exports) {
7974
7975module.exports = require("vfile");
7976
7977/***/ },
7978
7979/***/ 115:
7980/***/ function(module, exports) {
7981
7982module.exports = require("vinyl-read");
7983
7984/***/ },
7985
7986/***/ 116:
7987/***/ function(module, exports) {
7988
7989module.exports = require("winston");
7990
7991/***/ },
7992
7993/***/ 117:
7994/***/ function(module, exports) {
7995
7996module.exports = require("zlib");
7997
7998/***/ },
7999
8000/***/ 118:
8001/***/ function(module, exports, __webpack_require__) {
8002
8003module.exports = __webpack_require__("./src/index.js");
8004
8005
8006/***/ },
8007
8008/***/ 12:
8009/***/ function(module, exports) {
8010
8011module.exports = require("babel-runtime/core-js/promise");
8012
8013/***/ },
8014
8015/***/ 13:
8016/***/ function(module, exports) {
8017
8018module.exports = require("babel-runtime/core-js/object/assign");
8019
8020/***/ },
8021
8022/***/ 14:
8023/***/ function(module, exports) {
8024
8025module.exports = require("babel-runtime/core-js/object/keys");
8026
8027/***/ },
8028
8029/***/ 15:
8030/***/ function(module, exports) {
8031
8032module.exports = require("lodash/get");
8033
8034/***/ },
8035
8036/***/ 16:
8037/***/ function(module, exports) {
8038
8039module.exports = require("unist-util-select");
8040
8041/***/ },
8042
8043/***/ 17:
8044/***/ function(module, exports, __webpack_require__) {
8045
8046var map = {
8047 "./config-builder.js": "./src/helpers/config-builder.js",
8048 "./data-source.js": "./src/helpers/data-source.js",
8049 "./document-type.js": "./src/helpers/document-type.js",
8050 "./generator.js": "./src/helpers/generator.js",
8051 "./importer.js": "./src/helpers/importer.js",
8052 "./initializer.js": "./src/helpers/initializer.js",
8053 "./project-type.js": "./src/helpers/project-type.js",
8054 "./transformer.js": "./src/helpers/transformer.js"
8055};
8056function webpackContext(req) {
8057 return __webpack_require__(webpackContextResolve(req));
8058};
8059function webpackContextResolve(req) {
8060 var id = map[req];
8061 if(!(id + 1)) // check for number
8062 throw new Error("Cannot find module '" + req + "'.");
8063 return id;
8064};
8065webpackContext.keys = function webpackContextKeys() {
8066 return Object.keys(map);
8067};
8068webpackContext.resolve = webpackContextResolve;
8069module.exports = webpackContext;
8070webpackContext.id = 17;
8071
8072
8073/***/ },
8074
8075/***/ 18:
8076/***/ function(module, exports) {
8077
8078module.exports = require("babel-runtime/core-js/object/values");
8079
8080/***/ },
8081
8082/***/ 19:
8083/***/ function(module, exports) {
8084
8085module.exports = require("babel-runtime/helpers/typeof");
8086
8087/***/ },
8088
8089/***/ 2:
8090/***/ function(module, exports) {
8091
8092module.exports = require("babel-runtime/helpers/createClass");
8093
8094/***/ },
8095
8096/***/ 20:
8097/***/ function(module, exports) {
8098
8099module.exports = require("docblock-parser");
8100
8101/***/ },
8102
8103/***/ 21:
8104/***/ function(module, exports) {
8105
8106module.exports = require("lodash/mapValues");
8107
8108/***/ },
8109
8110/***/ 22:
8111/***/ function(module, exports) {
8112
8113module.exports = require("mdast-util-to-string");
8114
8115/***/ },
8116
8117/***/ 23:
8118/***/ function(module, exports) {
8119
8120module.exports = require("skypager-util/lib/string");
8121
8122/***/ },
8123
8124/***/ 24:
8125/***/ function(module, exports) {
8126
8127module.exports = require("unist-util-find-after");
8128
8129/***/ },
8130
8131/***/ 25:
8132/***/ function(module, exports) {
8133
8134module.exports = require("unist-util-find-all-after");
8135
8136/***/ },
8137
8138/***/ 26:
8139/***/ function(module, exports) {
8140
8141module.exports = require("unist-util-find-all-before");
8142
8143/***/ },
8144
8145/***/ 27:
8146/***/ function(module, exports) {
8147
8148module.exports = require("unist-util-source");
8149
8150/***/ },
8151
8152/***/ 28:
8153/***/ function(module, exports) {
8154
8155module.exports = require("unist-util-visit");
8156
8157/***/ },
8158
8159/***/ 29:
8160/***/ function(module, exports, __webpack_require__) {
8161
8162var map = {
8163 "./config-builder.js": "./src/helpers/config-builder.js",
8164 "./data-source.js": "./src/helpers/data-source.js",
8165 "./document-type.js": "./src/helpers/document-type.js",
8166 "./generator.js": "./src/helpers/generator.js",
8167 "./importer.js": "./src/helpers/importer.js",
8168 "./initializer.js": "./src/helpers/initializer.js",
8169 "./project-type.js": "./src/helpers/project-type.js",
8170 "./transformer.js": "./src/helpers/transformer.js"
8171};
8172function webpackContext(req) {
8173 return __webpack_require__(webpackContextResolve(req));
8174};
8175function webpackContextResolve(req) {
8176 var id = map[req];
8177 if(!(id + 1)) // check for number
8178 throw new Error("Cannot find module '" + req + "'.");
8179 return id;
8180};
8181webpackContext.keys = function webpackContextKeys() {
8182 return Object.keys(map);
8183};
8184webpackContext.resolve = webpackContextResolve;
8185module.exports = webpackContext;
8186webpackContext.id = 29;
8187
8188
8189/***/ },
8190
8191/***/ 3:
8192/***/ function(module, exports) {
8193
8194module.exports = require("skypager-util");
8195
8196/***/ },
8197
8198/***/ 30:
8199/***/ function(module, exports) {
8200
8201module.exports = require("babel-runtime/core-js/json/stringify");
8202
8203/***/ },
8204
8205/***/ 31:
8206/***/ function(module, exports) {
8207
8208module.exports = require("babel-runtime/core-js/object/define-property");
8209
8210/***/ },
8211
8212/***/ 32:
8213/***/ function(module, exports) {
8214
8215module.exports = require("babel-runtime/helpers/defineEnumerableProperties");
8216
8217/***/ },
8218
8219/***/ 33:
8220/***/ function(module, exports) {
8221
8222module.exports = require("fbemitter");
8223
8224/***/ },
8225
8226/***/ 34:
8227/***/ function(module, exports) {
8228
8229module.exports = require("lodash/isEmpty");
8230
8231/***/ },
8232
8233/***/ 35:
8234/***/ function(module, exports) {
8235
8236module.exports = require("lodash/isFunction");
8237
8238/***/ },
8239
8240/***/ 36:
8241/***/ function(module, exports) {
8242
8243module.exports = require("lodash/lang");
8244
8245/***/ },
8246
8247/***/ 37:
8248/***/ function(module, exports) {
8249
8250module.exports = require("lodash/omit");
8251
8252/***/ },
8253
8254/***/ 38:
8255/***/ function(module, exports) {
8256
8257module.exports = require("lodash/pick");
8258
8259/***/ },
8260
8261/***/ 39:
8262/***/ function(module, exports) {
8263
8264module.exports = require("lodash/result");
8265
8266/***/ },
8267
8268/***/ 4:
8269/***/ function(module, exports) {
8270
8271module.exports = require("babel-runtime/helpers/toConsumableArray");
8272
8273/***/ },
8274
8275/***/ 40:
8276/***/ function(module, exports) {
8277
8278module.exports = require("lodash/set");
8279
8280/***/ },
8281
8282/***/ 41:
8283/***/ function(module, exports) {
8284
8285module.exports = require("lodash/uniq");
8286
8287/***/ },
8288
8289/***/ 42:
8290/***/ function(module, exports) {
8291
8292module.exports = require("path-is-absolute");
8293
8294/***/ },
8295
8296/***/ 43:
8297/***/ function(module, exports) {
8298
8299module.exports = require("rehype-document");
8300
8301/***/ },
8302
8303/***/ 44:
8304/***/ function(module, exports) {
8305
8306module.exports = require("remark");
8307
8308/***/ },
8309
8310/***/ 45:
8311/***/ function(module, exports) {
8312
8313module.exports = require("unist-util-filter");
8314
8315/***/ },
8316
8317/***/ 46:
8318/***/ function(module, exports) {
8319
8320module.exports = require("unist-util-index");
8321
8322/***/ },
8323
8324/***/ 47:
8325/***/ function(module, exports) {
8326
8327module.exports = require("unist-util-map");
8328
8329/***/ },
8330
8331/***/ 48:
8332/***/ function(module, exports) {
8333
8334module.exports = require("unist-util-parents");
8335
8336/***/ },
8337
8338/***/ 49:
8339/***/ function(module, exports) {
8340
8341module.exports = require("unist-util-position");
8342
8343/***/ },
8344
8345/***/ 5:
8346/***/ function(module, exports) {
8347
8348module.exports = require("babel-runtime/core-js/object/get-prototype-of");
8349
8350/***/ },
8351
8352/***/ 50:
8353/***/ function(module, exports) {
8354
8355module.exports = require("unist-util-remove-position");
8356
8357/***/ },
8358
8359/***/ 51:
8360/***/ function(module, exports) {
8361
8362module.exports = require("vfile-reporter");
8363
8364/***/ },
8365
8366/***/ 52:
8367/***/ function(module, exports, __webpack_require__) {
8368
8369var map = {
8370 "./project.js": "./src/config-builders/project.js"
8371};
8372function webpackContext(req) {
8373 return __webpack_require__(webpackContextResolve(req));
8374};
8375function webpackContextResolve(req) {
8376 var id = map[req];
8377 if(!(id + 1)) // check for number
8378 throw new Error("Cannot find module '" + req + "'.");
8379 return id;
8380};
8381webpackContext.keys = function webpackContextKeys() {
8382 return Object.keys(map);
8383};
8384webpackContext.resolve = webpackContextResolve;
8385module.exports = webpackContext;
8386webpackContext.id = 52;
8387
8388
8389/***/ },
8390
8391/***/ 53:
8392/***/ function(module, exports, __webpack_require__) {
8393
8394var map = {
8395 "./collection.js": "./src/config-builders/project/features/collection.js",
8396 "./feature.js": "./src/config-builders/project/features/feature.js",
8397 "./scope.js": "./src/config-builders/project/features/scope.js",
8398 "./selector.js": "./src/config-builders/project/features/selector.js"
8399};
8400function webpackContext(req) {
8401 return __webpack_require__(webpackContextResolve(req));
8402};
8403function webpackContextResolve(req) {
8404 var id = map[req];
8405 if(!(id + 1)) // check for number
8406 throw new Error("Cannot find module '" + req + "'.");
8407 return id;
8408};
8409webpackContext.keys = function webpackContextKeys() {
8410 return Object.keys(map);
8411};
8412webpackContext.resolve = webpackContextResolve;
8413module.exports = webpackContext;
8414webpackContext.id = 53;
8415
8416
8417/***/ },
8418
8419/***/ 54:
8420/***/ function(module, exports, __webpack_require__) {
8421
8422var map = {
8423 "./collection.js": "./src/config-builders/project/reducers/collection.js",
8424 "./feature.js": "./src/config-builders/project/reducers/feature.js",
8425 "./scope.js": "./src/config-builders/project/reducers/scope.js",
8426 "./selector.js": "./src/config-builders/project/reducers/selector.js"
8427};
8428function webpackContext(req) {
8429 return __webpack_require__(webpackContextResolve(req));
8430};
8431function webpackContextResolve(req) {
8432 var id = map[req];
8433 if(!(id + 1)) // check for number
8434 throw new Error("Cannot find module '" + req + "'.");
8435 return id;
8436};
8437webpackContext.keys = function webpackContextKeys() {
8438 return Object.keys(map);
8439};
8440webpackContext.resolve = webpackContextResolve;
8441module.exports = webpackContext;
8442webpackContext.id = 54;
8443
8444
8445/***/ },
8446
8447/***/ 55:
8448/***/ function(module, exports, __webpack_require__) {
8449
8450var map = {
8451 "./collection.js": "./src/config/features/collection.js",
8452 "./feature.js": "./src/config/features/feature.js",
8453 "./scope.js": "./src/config/features/scope.js",
8454 "./selector.js": "./src/config/features/selector.js"
8455};
8456function webpackContext(req) {
8457 return __webpack_require__(webpackContextResolve(req));
8458};
8459function webpackContextResolve(req) {
8460 var id = map[req];
8461 if(!(id + 1)) // check for number
8462 throw new Error("Cannot find module '" + req + "'.");
8463 return id;
8464};
8465webpackContext.keys = function webpackContextKeys() {
8466 return Object.keys(map);
8467};
8468webpackContext.resolve = webpackContextResolve;
8469module.exports = webpackContext;
8470webpackContext.id = 55;
8471
8472
8473/***/ },
8474
8475/***/ 56:
8476/***/ function(module, exports, __webpack_require__) {
8477
8478var map = {
8479 "./collection.js": "./src/config/reducers/collection.js",
8480 "./feature.js": "./src/config/reducers/feature.js",
8481 "./scope.js": "./src/config/reducers/scope.js",
8482 "./selector.js": "./src/config/reducers/selector.js"
8483};
8484function webpackContext(req) {
8485 return __webpack_require__(webpackContextResolve(req));
8486};
8487function webpackContextResolve(req) {
8488 var id = map[req];
8489 if(!(id + 1)) // check for number
8490 throw new Error("Cannot find module '" + req + "'.");
8491 return id;
8492};
8493webpackContext.keys = function webpackContextKeys() {
8494 return Object.keys(map);
8495};
8496webpackContext.resolve = webpackContextResolve;
8497module.exports = webpackContext;
8498webpackContext.id = 56;
8499
8500
8501/***/ },
8502
8503/***/ 57:
8504/***/ function(module, exports, __webpack_require__) {
8505
8506var map = {
8507 "./git-stats.js": "./src/data-sources/git-stats.js",
8508 "./github-stats.js": "./src/data-sources/github-stats.js",
8509 "./npm-stats.js": "./src/data-sources/npm-stats.js",
8510 "./packages.js": "./src/data-sources/packages.js"
8511};
8512function webpackContext(req) {
8513 return __webpack_require__(webpackContextResolve(req));
8514};
8515function webpackContextResolve(req) {
8516 var id = map[req];
8517 if(!(id + 1)) // check for number
8518 throw new Error("Cannot find module '" + req + "'.");
8519 return id;
8520};
8521webpackContext.keys = function webpackContextKeys() {
8522 return Object.keys(map);
8523};
8524webpackContext.resolve = webpackContextResolve;
8525module.exports = webpackContext;
8526webpackContext.id = 57;
8527
8528
8529/***/ },
8530
8531/***/ 58:
8532/***/ function(module, exports, __webpack_require__) {
8533
8534var map = {
8535 "./babel-es6.js": "./src/document-types/babel-es6.js",
8536 "./markdown.js": "./src/document-types/markdown.js",
8537 "./packageManifest.js": "./src/document-types/packageManifest.js",
8538 "./page-config.js": "./src/document-types/page-config.js",
8539 "./spec.js": "./src/document-types/spec.js"
8540};
8541function webpackContext(req) {
8542 return __webpack_require__(webpackContextResolve(req));
8543};
8544function webpackContextResolve(req) {
8545 var id = map[req];
8546 if(!(id + 1)) // check for number
8547 throw new Error("Cannot find module '" + req + "'.");
8548 return id;
8549};
8550webpackContext.keys = function webpackContextKeys() {
8551 return Object.keys(map);
8552};
8553webpackContext.resolve = webpackContextResolve;
8554module.exports = webpackContext;
8555webpackContext.id = 58;
8556
8557
8558/***/ },
8559
8560/***/ 59:
8561/***/ function(module, exports, __webpack_require__) {
8562
8563var map = {
8564 "./portfolio.js": "./src/generators/portfolio.js",
8565 "./project.js": "./src/generators/project.js"
8566};
8567function webpackContext(req) {
8568 return __webpack_require__(webpackContextResolve(req));
8569};
8570function webpackContextResolve(req) {
8571 var id = map[req];
8572 if(!(id + 1)) // check for number
8573 throw new Error("Cannot find module '" + req + "'.");
8574 return id;
8575};
8576webpackContext.keys = function webpackContextKeys() {
8577 return Object.keys(map);
8578};
8579webpackContext.resolve = webpackContextResolve;
8580module.exports = webpackContext;
8581webpackContext.id = 59;
8582
8583
8584/***/ },
8585
8586/***/ 6:
8587/***/ function(module, exports) {
8588
8589module.exports = require("babel-runtime/helpers/inherits");
8590
8591/***/ },
8592
8593/***/ 60:
8594/***/ function(module, exports, __webpack_require__) {
8595
8596var map = {
8597 "./node-vinyl.js": "./src/importers/node-vinyl.js"
8598};
8599function webpackContext(req) {
8600 return __webpack_require__(webpackContextResolve(req));
8601};
8602function webpackContextResolve(req) {
8603 var id = map[req];
8604 if(!(id + 1)) // check for number
8605 throw new Error("Cannot find module '" + req + "'.");
8606 return id;
8607};
8608webpackContext.keys = function webpackContextKeys() {
8609 return Object.keys(map);
8610};
8611webpackContext.resolve = webpackContextResolve;
8612module.exports = webpackContext;
8613webpackContext.id = 60;
8614
8615
8616/***/ },
8617
8618/***/ 61:
8619/***/ function(module, exports, __webpack_require__) {
8620
8621var map = {
8622 "./node-vinyl.js": "./src/importers/node-vinyl.js"
8623};
8624function webpackContext(req) {
8625 return __webpack_require__(webpackContextResolve(req));
8626};
8627function webpackContextResolve(req) {
8628 var id = map[req];
8629 if(!(id + 1)) // check for number
8630 throw new Error("Cannot find module '" + req + "'.");
8631 return id;
8632};
8633webpackContext.keys = function webpackContextKeys() {
8634 return Object.keys(map);
8635};
8636webpackContext.resolve = webpackContextResolve;
8637module.exports = webpackContext;
8638webpackContext.id = 61;
8639
8640
8641/***/ },
8642
8643/***/ 62:
8644/***/ function(module, exports, __webpack_require__) {
8645
8646var map = {
8647 "./portfolio.js": "./src/initializers/portfolio.js",
8648 "./project.js": "./src/initializers/project.js"
8649};
8650function webpackContext(req) {
8651 return __webpack_require__(webpackContextResolve(req));
8652};
8653function webpackContextResolve(req) {
8654 var id = map[req];
8655 if(!(id + 1)) // check for number
8656 throw new Error("Cannot find module '" + req + "'.");
8657 return id;
8658};
8659webpackContext.keys = function webpackContextKeys() {
8660 return Object.keys(map);
8661};
8662webpackContext.resolve = webpackContextResolve;
8663module.exports = webpackContext;
8664webpackContext.id = 62;
8665
8666
8667/***/ },
8668
8669/***/ 63:
8670/***/ function(module, exports, __webpack_require__) {
8671
8672var map = {
8673 "./application.js": "./src/project-types/application.js",
8674 "./library.js": "./src/project-types/library.js",
8675 "./mobile-app.js": "./src/project-types/mobile-app.js",
8676 "./portfolio.js": "./src/project-types/portfolio.js",
8677 "./website.js": "./src/project-types/website.js"
8678};
8679function webpackContext(req) {
8680 return __webpack_require__(webpackContextResolve(req));
8681};
8682function webpackContextResolve(req) {
8683 var id = map[req];
8684 if(!(id + 1)) // check for number
8685 throw new Error("Cannot find module '" + req + "'.");
8686 return id;
8687};
8688webpackContext.keys = function webpackContextKeys() {
8689 return Object.keys(map);
8690};
8691webpackContext.resolve = webpackContextResolve;
8692module.exports = webpackContext;
8693webpackContext.id = 63;
8694
8695
8696/***/ },
8697
8698/***/ 64:
8699/***/ function(module, exports, __webpack_require__) {
8700
8701var map = {
8702 "./dependencies.js": "./src/selectors/dependencies.js",
8703 "./markdown-editor.js": "./src/selectors/markdown-editor.js",
8704 "./markdown/documents.js": "./src/selectors/markdown/documents.js",
8705 "./markdown/workbench.js": "./src/selectors/markdown/workbench.js"
8706};
8707function webpackContext(req) {
8708 return __webpack_require__(webpackContextResolve(req));
8709};
8710function webpackContextResolve(req) {
8711 var id = map[req];
8712 if(!(id + 1)) // check for number
8713 throw new Error("Cannot find module '" + req + "'.");
8714 return id;
8715};
8716webpackContext.keys = function webpackContextKeys() {
8717 return Object.keys(map);
8718};
8719webpackContext.resolve = webpackContextResolve;
8720module.exports = webpackContext;
8721webpackContext.id = 64;
8722
8723
8724/***/ },
8725
8726/***/ 65:
8727/***/ function(module, exports, __webpack_require__) {
8728
8729var map = {
8730 "./docblock.js": "./src/transformers/docblock.js",
8731 "./markdown.js": "./src/transformers/markdown.js",
8732 "./rehype.js": "./src/transformers/rehype.js",
8733 "./retext.js": "./src/transformers/retext.js"
8734};
8735function webpackContext(req) {
8736 return __webpack_require__(webpackContextResolve(req));
8737};
8738function webpackContextResolve(req) {
8739 var id = map[req];
8740 if(!(id + 1)) // check for number
8741 throw new Error("Cannot find module '" + req + "'.");
8742 return id;
8743};
8744webpackContext.keys = function webpackContextKeys() {
8745 return Object.keys(map);
8746};
8747webpackContext.resolve = webpackContextResolve;
8748module.exports = webpackContext;
8749webpackContext.id = 65;
8750
8751
8752/***/ },
8753
8754/***/ 66:
8755/***/ function(module, exports) {
8756
8757module.exports = require("babel-register");
8758
8759/***/ },
8760
8761/***/ 67:
8762/***/ function(module, exports) {
8763
8764module.exports = require("babel-runtime/core-js/map");
8765
8766/***/ },
8767
8768/***/ 68:
8769/***/ function(module, exports) {
8770
8771module.exports = require("babel-runtime/core-js/object/get-own-property-descriptors");
8772
8773/***/ },
8774
8775/***/ 69:
8776/***/ function(module, exports) {
8777
8778module.exports = require("babel-runtime/helpers/slicedToArray");
8779
8780/***/ },
8781
8782/***/ 7:
8783/***/ function(module, exports) {
8784
8785module.exports = require("babel-runtime/helpers/possibleConstructorReturn");
8786
8787/***/ },
8788
8789/***/ 70:
8790/***/ function(module, exports) {
8791
8792module.exports = require("bluebird");
8793
8794/***/ },
8795
8796/***/ 71:
8797/***/ function(module, exports) {
8798
8799module.exports = require("clean-stack");
8800
8801/***/ },
8802
8803/***/ 72:
8804/***/ function(module, exports) {
8805
8806module.exports = require("convert-vinyl-to-vfile");
8807
8808/***/ },
8809
8810/***/ 73:
8811/***/ function(module, exports) {
8812
8813module.exports = require("find-up");
8814
8815/***/ },
8816
8817/***/ 74:
8818/***/ function(module, exports) {
8819
8820module.exports = require("findup-sync");
8821
8822/***/ },
8823
8824/***/ 75:
8825/***/ function(module, exports) {
8826
8827module.exports = require("fs");
8828
8829/***/ },
8830
8831/***/ 76:
8832/***/ function(module, exports) {
8833
8834module.exports = require("fs-extra-promise");
8835
8836/***/ },
8837
8838/***/ 77:
8839/***/ function(module, exports) {
8840
8841module.exports = require("isomorphic-vm");
8842
8843/***/ },
8844
8845/***/ 78:
8846/***/ function(module, exports) {
8847
8848module.exports = require("js-yaml");
8849
8850/***/ },
8851
8852/***/ 79:
8853/***/ function(module, exports) {
8854
8855module.exports = require("lodash/defaults");
8856
8857/***/ },
8858
8859/***/ 8:
8860/***/ function(module, exports) {
8861
8862module.exports = require("path");
8863
8864/***/ },
8865
8866/***/ 80:
8867/***/ function(module, exports) {
8868
8869module.exports = require("lodash/isArray");
8870
8871/***/ },
8872
8873/***/ 81:
8874/***/ function(module, exports) {
8875
8876module.exports = require("lodash/mapKeys");
8877
8878/***/ },
8879
8880/***/ 82:
8881/***/ function(module, exports) {
8882
8883module.exports = require("lodash/partial");
8884
8885/***/ },
8886
8887/***/ 83:
8888/***/ function(module, exports) {
8889
8890module.exports = require("lodash/partialRight");
8891
8892/***/ },
8893
8894/***/ 84:
8895/***/ function(module, exports) {
8896
8897module.exports = require("minimist");
8898
8899/***/ },
8900
8901/***/ 85:
8902/***/ function(module, exports) {
8903
8904module.exports = require("module");
8905
8906/***/ },
8907
8908/***/ 86:
8909/***/ function(module, exports) {
8910
8911module.exports = require("mware");
8912
8913/***/ },
8914
8915/***/ 87:
8916/***/ function(module, exports) {
8917
8918module.exports = require("object-hash");
8919
8920/***/ },
8921
8922/***/ 88:
8923/***/ function(module, exports) {
8924
8925module.exports = require("os");
8926
8927/***/ },
8928
8929/***/ 89:
8930/***/ function(module, exports) {
8931
8932module.exports = require("path-to-regexp");
8933
8934/***/ },
8935
8936/***/ 9:
8937/***/ function(module, exports) {
8938
8939module.exports = require("skypager-registry");
8940
8941/***/ },
8942
8943/***/ 90:
8944/***/ function(module, exports) {
8945
8946module.exports = require("rehype-stringify");
8947
8948/***/ },
8949
8950/***/ 91:
8951/***/ function(module, exports) {
8952
8953module.exports = require("remark-autolink-headings");
8954
8955/***/ },
8956
8957/***/ 92:
8958/***/ function(module, exports) {
8959
8960module.exports = require("remark-comment-blocks");
8961
8962/***/ },
8963
8964/***/ 93:
8965/***/ function(module, exports) {
8966
8967module.exports = require("remark-comment-config");
8968
8969/***/ },
8970
8971/***/ 94:
8972/***/ function(module, exports) {
8973
8974module.exports = require("remark-contributors");
8975
8976/***/ },
8977
8978/***/ 95:
8979/***/ function(module, exports) {
8980
8981module.exports = require("remark-github");
8982
8983/***/ },
8984
8985/***/ 96:
8986/***/ function(module, exports) {
8987
8988module.exports = require("remark-html");
8989
8990/***/ },
8991
8992/***/ 97:
8993/***/ function(module, exports) {
8994
8995module.exports = require("remark-license");
8996
8997/***/ },
8998
8999/***/ 98:
9000/***/ function(module, exports) {
9001
9002module.exports = require("remark-normalize-headings");
9003
9004/***/ },
9005
9006/***/ 99:
9007/***/ function(module, exports) {
9008
9009module.exports = require("remark-parse");
9010
9011/***/ }
9012
9013/******/ });
9014//# sourceMappingURL=index.js.map
\No newline at end of file