UNPKG

skypager-project

Version:
1,552 lines (1,223 loc) 53.2 kB
module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // identity function for calling harmory imports with the correct context /******/ __webpack_require__.i = function(value) { return value; }; /******/ /******/ // define getter function for harmory exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = "/"; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 137); /******/ }) /************************************************************************/ /******/ ({ /***/ "./src/document-types/babel-es6.js": /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.decorate = exports.transpile = exports.toAST = exports.compile = exports.testDocument = exports.rules = exports.docblockParser = undefined; var _assign = __webpack_require__(1); var _assign2 = _interopRequireDefault(_assign); var _pathMatcher = __webpack_require__(7); var _pathMatcher2 = _interopRequireDefault(_pathMatcher); var _pick = __webpack_require__(33); var _pick2 = _interopRequireDefault(_pick); var _omit = __webpack_require__(17); var _omit2 = _interopRequireDefault(_omit); var _mapValues = __webpack_require__(21); var _mapValues2 = _interopRequireDefault(_mapValues); var _omitBy = __webpack_require__(69); var _omitBy2 = _interopRequireDefault(_omitBy); var _isEmpty = __webpack_require__(32); var _isEmpty2 = _interopRequireDefault(_isEmpty); var _docblockParser = __webpack_require__(19); var _docblockParser2 = _interopRequireDefault(_docblockParser); var _entity = __webpack_require__(34); var _entity2 = _interopRequireDefault(_entity); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var docblockParser = exports.docblockParser = (0, _docblockParser2.default)({ tags: { name: _docblockParser2.default.singleParameterTag } }); var rules = exports.rules = [/\.(js|es6|jsx)$/]; var testDocument = exports.testDocument = function testDocument(doc) { return typeof rules.find(function (rule) { return (0, _pathMatcher2.default)(rule, doc.fileBaseName); }) !== 'undefined'; }; var compile = exports.compile = function compile(code, options) { return transpile(code, options).code; }; var toAST = exports.toAST = function toAST(code, options) { return __webpack_require__(27).transform(code, babelOptions(options)).ast; }; var transpile = exports.transpile = function transpile() { var code = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return __webpack_require__(27).transform(code, babelOptions(options)); }; var decorate = exports.decorate = function decorate(doc) { (0, _assign2.default)(doc, { toEntity: function toEntity() { var exportables = doc.exportables; var frontmatter = exportables.frontmatter; return (0, _assign2.default)({ id: doc.id }, frontmatter, { imports: exportables.imports, exports: exportables.exports }); }, /** multilineTilTag multilineTilEmptyLineOrTag booleanTag singleParameterTag multiParameterTag(delimiter) */ docblockParser: function docblockParser() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var parser = (0, _docblockParser2.default)({ tags: (0, _assign2.default)({ name: _docblockParser2.default.singleParameterTag }, options) }); return parser.parse; }, createExportable: function createExportable() { var exportable = (0, _entity2.default)({ id: doc.id, file: (0, _omit2.default)(doc.file, 'contents') }); exportable.lazy('babel', function () { return doc.transformBabel(); }); exportable.lazy('ast', function () { return exportable.babel.ast; }); exportable.lazy('code', function () { return exportable.babel.code; }); exportable.lazy('meta', function () { return exportable.babel.metadata; }); exportable.lazy('commentNodes', function () { return exportable.get('ast.comments', []); }); exportable.lazy('imports', function () { return exportable.get('babel.metadata.modules.imports', []).map(function (m) { return m.source; }); }, true); exportable.lazy('exports', function () { return exportable.get('babel.metadata.modules.exports.exported', []); }, true); exportable.getter('contents', function () { return doc.readFile().getFileContents(); }); exportable.lazy('frontmatter', function () { try { var result = docblockParser.parse(exportable.get('ast.comments[0].value', "/**\n**/")); var _result$tags = result.tags, tags = _result$tags === undefined ? {} : _result$tags, _result$text = result.text, text = _result$text === undefined ? '' : _result$text; var values = (0, _mapValues2.default)((0, _assign2.default)({ text: text, id: doc.id }, tags), function (v) { return typeof v === 'string' ? v.trim() : v; }); return (0, _omitBy2.default)(values, function (v) { return (0, _isEmpty2.default)(v); }); } catch (error) { return {}; } }, true); return exportable; }, readFrontmatter: function readFrontmatter() { return doc.exportables.frontmatter; }, transformBabel: function transformBabel(options) { options = options || doc.project.babelRc || { presets: ['skypager'] }; var code = options.code || doc.file.contents.toString(); return __webpack_require__(27).transform(code, babelOptions(options)); } }); doc.lazy('exportables', function () { return doc.createExportable(); }); return doc; }; exports.default = decorate; var babelOptions = function babelOptions(options) { return (0, _pick2.default)(options, "filename", "filenameRelative", "presets", "plugins", "parserOpts", "generatorOpts", "highlightCode", "only", "ignore", "auxiliaryCommentBefore", "auxiliaryCommentAfter", "sourceMaps", "inputSourceMap", "sourceMapTarget", "sourceFileName", "sourceRoot", "moduleRoot", "moduleIds", "moduleId", "getModuleId", "resolveModuleSource", "code", "no-babelrc", "ast", "compact", "minified", "comments", "shouldPrintComment", "env", "retainLines", "extends"); }; /***/ }, /***/ "./src/document-types/markdown.js": /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.decorate = exports.testDocument = exports.toAST = exports.compile = exports.getUtils = exports.getTransforms = exports.transformPresets = exports.rules = undefined; var _typeof2 = __webpack_require__(23); var _typeof3 = _interopRequireDefault(_typeof2); var _toConsumableArray2 = __webpack_require__(5); var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); var _extends2 = __webpack_require__(0); var _extends3 = _interopRequireDefault(_extends2); var _promise = __webpack_require__(6); var _promise2 = _interopRequireDefault(_promise); var _defineEnumerableProperties2 = __webpack_require__(73); var _defineEnumerableProperties3 = _interopRequireDefault(_defineEnumerableProperties2); var _assign = __webpack_require__(1); var _assign2 = _interopRequireDefault(_assign); var _keys = __webpack_require__(13); var _keys2 = _interopRequireDefault(_keys); var _jsYaml = __webpack_require__(47); var _jsYaml2 = _interopRequireDefault(_jsYaml); var _markdown2 = __webpack_require__("./src/transformers/markdown.js"); var _markdown3 = _interopRequireDefault(_markdown2); var _pathMatcher = __webpack_require__(7); var _pathMatcher2 = _interopRequireDefault(_pathMatcher); var _string = __webpack_require__(15); var _omit = __webpack_require__(17); var _omit2 = _interopRequireDefault(_omit); var _babelEs = __webpack_require__("./src/document-types/babel-es6.js"); var _lodash = __webpack_require__(35); var _lodash2 = _interopRequireDefault(_lodash); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var rules = exports.rules = [/\.md$/]; var transformPresets = exports.transformPresets = function transformPresets() { return { markdown: (0, _keys2.default)(_markdown2.profiles) }; }; var getTransforms = exports.getTransforms = function getTransforms() { return { markdown: __webpack_require__("./src/transformers/markdown.js").default }; }; var getUtils = exports.getUtils = function getUtils() { var loaders = (0, _markdown2.utilLoaders)(); return (0, _keys2.default)(loaders).reduce(function (memo, key) { var _Object$assign2, _mutatorMap; return (0, _assign2.default)(memo, (_Object$assign2 = {}, _mutatorMap = {}, _mutatorMap[key] = _mutatorMap[key] || {}, _mutatorMap[key].get = function () { return loaders[key](); }, (0, _defineEnumerableProperties3.default)(_Object$assign2, _mutatorMap), _Object$assign2)); }, {}); }; var compile = exports.compile = function compile(contents) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var profile = options.profile || 'standard'; var html = 'html'; try { var ast = toAST(contents, { profile: profile }); return (0, _markdown3.default)({ profile: 'html' }).stringify(ast); } catch (error) { var stack = ["```", error.stack, "```"].join("\n"); return (0, _markdown3.default)({ profile: 'html' }).stringify(toAST('# Error\n\n' + error.message + '\n\n' + stack + '\n')); } }; var toAST = exports.toAST = function toAST(contents, options) { var profile = options.profile || 'standard'; try { return (0, _markdown3.default)(profile, options).parse(contents); } catch (error) { return (0, _markdown3.default)(profile, options).parse('# Error\n\n' + error.message + '\n\n' + createBlock(error.stack) + '\n## Contents\n' + createBlock(contents)); } }; var testDocument = exports.testDocument = function testDocument(doc) { return typeof rules.find(function (rule) { return (0, _pathMatcher2.default)(rule, doc.fileBaseName); }) !== 'undefined'; }; var decorate = exports.decorate = function decorate(doc) { doc.lazy('exportables', function () { return doc.createExportable(); }); doc.lazy('exports', function () { return doc.createExportable(); }); (0, _assign2.default)(doc, { stringify: function stringify() { return this.markdown('stringify', {}).stringify(doc.ast); }, toCode: function toCode() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var codeBlocks = doc.compileCodeBlocks({ keyBy: 'accessor' }); return codeBlocks.mapValues(function (block, id) { return ('\n // ' + block.docPath + ' at ' + block.index + '\n ' + block.value + '\n ').trim(); }).values().join("\n\n"); }, toModule: function toModule() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return doc.project.createModule(doc.toCode(), options); }, toEntity: function toEntity() { var selectorMap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var obj = doc.exportables; var frontmatter = obj.frontmatter; var instance = (0, _assign2.default)({}, obj, frontmatter); if (_lodash2.default.isEmpty(selectorMap)) { (0, _assign2.default)(instance, doc.se); } }, transformWith: function transformWith(transformerFn) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var doc = this; transformerFn.call(doc, doc, options); return doc; }, createExportable: function createExportable() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var html = doc.markdown('html', options); var source = typeof options.transform === 'function' ? doc.transformWith(options.transform, options) || doc : doc; var contents = source.contents || source.result('file.contents', function () { return doc.readFile().get('file.contents', ''); }); var exportable = (0, _assign2.default)({}, doc.frontmatter, { id: source.id, get contents() { return contents; }, get frontmatter() { return doc.frontmatter; }, get ast() { return source.ast; }, get file() { return (0, _omit2.default)(doc.file, 'contents'); }, get html() { return doc.remarkHTML({ ast: source.renderAST || source.ast }); } }); return exportable; }, compileCodeBlocks: function compileCodeBlocks() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var babelRc = doc.result('project.babelRc', { presets: ['skypager'], plugins: ['transform-decorators-legacy'] }); return doc.selectChain('code-blocks', options).mapValues(function (nodes) { return nodes.map(function (node) { var result = void 0; try { result = (0, _babelEs.transpile)(node.value, babelRc); } catch (error) { result = { error: error, code: '', metadata: {} }; } (0, _assign2.default)(node, { run: function run() { if (result.error) { return _promise2.default.resolve((0, _assign2.default)(node, { error: error })); } return doc.asyncRunner(result.code)().then(function (result) { return (0, _assign2.default)(node, { get result() { return typeof result.value === 'function' ? result.value() : result; }, inspectResult: function inspectResult() { return __webpack_require__(78).inspect(node.result); } }); }).catch(function (error) { return (0, _assign2.default)(node, { error: error }); }); }, get compiled() { return result.code; }, get metadata() { return result.metadata; } }); return node; }); }); }, updateFrontmatter: function updateFrontmatter() { var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var save = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; var ast = doc.ast; var frontmatter = doc.frontmatter; if (!this.hasFrontmatter()) { this.ast.children.unshift({}); } frontmatter = (0, _assign2.default)(frontmatter, { updatedAt: Math.floor(new Date() / 1000) }, data); var _doc$markdown$parse = doc.markdown().parse('---\n' + _jsYaml2.default.safeDump(frontmatter) + '\n---\n'), children = _doc$markdown$parse.children; this.ast.children[0] = children[0]; if (save) { var contents = doc.contents = doc.file.contents = doc.stringify(); doc.project.writeFileSync(doc.path, contents); } return this; }, hasFrontmatter: function hasFrontmatter() { var zero = this.firstNode(); return zero && zero.type === 'yaml'; }, remarkAST: function remarkAST() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var profile = options.profile || 'standard'; var contents = options.contents || this.contents || this.getFileContents(); try { var result = doc.markdown(profile, options).parse(contents); return (0, _assign2.default)(result, { children: result.children.map(function (node) { return doc.decorateNode(node); }) }); } catch (error) { return doc.markdown(profile, options).parse('# Error\n\n' + error.message + '\n\n' + createBlock(error.stack) + '\n## Contents\n' + createBlock(contents)); } }, remarkHTML: function remarkHTML() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var profile = options.profile || 'standard'; var parser = options.parser || doc.markdown(profile, options); var contents = !options.ast && (options.contents || this.contents || this.getFileContents()); var ast = options.ast || parser.parse(contents); var html = 'html'; try { return doc.markdown(html, options).stringify(ast); } catch (error) { var stack = ["```", error.stack, "```"].join("\n"); return doc.markdown(html, {}).stringify(doc.markdown(profile, {}).parse('# Error\n\n' + error.message + '\n\n' + stack + '\n')); } }, markdown: function markdown() { var profile = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'parser'; var options = arguments[1]; return (0, _markdown3.default)((0, _extends3.default)({ profile: profile }, options)); }, createTree: function createTree() { var headings = this.createHeadingsMap('headingPath'); var tree = {}; (0, _keys2.default)(headings).forEach(function (headingPath) { var treePath = headingPath.split('/').map(function (v) { return (0, _string.camelCase)((0, _string.kebabCase)(v)); }); _lodash2.default.set(tree, treePath, headings[headingPath]); }); return tree; }, createHeadingsMap: function createHeadingsMap() { var keyBy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'accessor'; var stayChained = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var obj = this.chain.invoke('selectHeadingNodes').map(function (heading) { heading.accessorMethod = (0, _string.camelCase)((0, _string.snakeCase)(heading.textContent())); heading.headingPath = heading.getHeadingPath(); heading.accessors = heading.headingPath.split('/').map(function (i) { return (0, _string.camelCase)((0, _string.snakeCase)(i)); }); heading.accessor = (0, _string.camelCase)((0, _string.snakeCase)(heading.headingPath.replace(/\//g, '_'))); return heading; }).keyBy(keyBy); return stayChained ? obj : obj.value(); }, stringifyNode: function stringifyNode(node) { return __webpack_require__(14)(node); }, getSourceForNode: function getSourceForNode(node) { return __webpack_require__(18)(node); }, decorateNode: function decorateNode(node) { var _original = _lodash2.default.cloneDeep(node); return (0, _assign2.default)(node, { original: function original() { return _original; }, slug: function slug() { return _lodash2.default.kebabCase(this.textContent()); }, textContent: function textContent() { return doc.stringifyNode(node) || ''; }, getHeadingPath: function getHeadingPath() { if (node.type !== 'heading') { var prev = node.previousHeading(); return prev && prev.getHeadingPath(); } var textContent = (0, _string.kebabCase)(node.textContent().toLowerCase()); var prevSuperior = node.getPreviousSuperior(); var previousPath = typeof prevSuperior === 'undefined' ? '' : prevSuperior.depth >= 2 && prevSuperior.getHeadingPath() || ''; return [previousPath, textContent].filter(function (i) { return i && i.length > 0; }).join('/'); }, headingRangeSync: function headingRangeSync() { var alpha = node; var bravo = node.getFinalHeading() || doc.finalNode(); return doc.getNodesBetweenPositions(alpha, bravo || 50000).value(); }, headingRange: function headingRange() { var test = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : node.textContent(); var ast = doc.ast; return new _promise2.default(function (resolve, reject) { try { __webpack_require__(16)(ast, test, function (startNode, nodes, endNode) { resolve({ startNode: startNode, nodes: nodes, endNode: endNode }); }); } catch (error) { reject(error); } }); }, getFinalHeading: function getFinalHeading() { return doc.findAllNodesAfter(node, function (n) { return n.type === 'heading' && n.depth <= node.depth; })[0]; }, getPreviousSuperior: function getPreviousSuperior() { return node && node.getNodesBefore && node.getNodesBefore(function (n) { return n.type === 'heading' && n.depth < node.depth; })[0]; }, previousHeading: function previousHeading() { return node.getNodesBefore(function (n) { return n.type === 'heading'; }).shift(); }, nextHeading: function nextHeading() { return node.type === 'heading' ? node.getNextNode(function (n) { return n.type === 'heading' && n.depth >= node.depth; }) : node.getNextNode(function (n) { return n.type === 'heading'; }); }, getNextNode: function getNextNode() { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return doc.findNodeAfter.apply(doc, [node].concat((0, _toConsumableArray3.default)(args))); }, getNodesAfter: function getNodesAfter() { for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } return doc.findAllNodesAfter.apply(doc, [node].concat((0, _toConsumableArray3.default)(args))); }, getNodesBefore: function getNodesBefore() { for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { args[_key3] = arguments[_key3]; } return doc.findAllNodesBefore.apply(doc, [node].concat((0, _toConsumableArray3.default)(args))); }, selectChildren: function selectChildren(selector, testFn) { if (node.type === 'heading') { return node.selectHeadingChildren(selector, testFn); } var results = __webpack_require__(4)(node)(selector); return typeof testFn === 'function' ? results.filter(function (r) { return testFn.call(doc, r); }) : results; }, virtualAST: function virtualAST() { return { type: 'root', children: node.headingRangeSync().map(function (n) { return n.original(); }).map(function (n, i) { n.index = i; return n; }) }; }, selectHeadingChildrenSync: function selectHeadingChildrenSync() { var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '*'; var testFn = arguments[1]; var results = __webpack_require__(4)(node.virtualAST())(selector); results = typeof testFn === 'function' ? results.filter(function (r) { return testFn.call(doc, r); }) : results; return results; }, selectHeadingChildren: function selectHeadingChildren() { var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '*'; var testFn = arguments[1]; return node.headingRange().then(function (_ref) { var nodes = _ref.nodes; var base = { type: 'root', children: nodes }; return __webpack_require__(4)(base)(selector); }).then(function (results) { return typeof testFn === 'function' ? results.filter(function (r) { return testFn.call(doc, r); }) : results; }); } }); }, headingRange: function headingRange(test) { var ast = doc.ast; return new _promise2.default(function (resolve, reject) { try { __webpack_require__(16)(ast, test, function (startNode, nodes, endNode) { resolve({ startNode: startNode, nodes: nodes, endNode: endNode }); }); } catch (error) { reject(error); } }); }, documentTitle: function documentTitle() { var titleNode = doc.titleNode(); if (!titleNode) { return this.get('frontmatter.title', doc.variations.humanized); } else { return titleNode.textContent(); } }, yamlBlocks: function yamlBlocks() { return this.selectNodes('code[lang="yaml"], yaml'); }, introParagraphs: function introParagraphs() { var until = this.selectHeadingNodes()[1] || this.finalNode(); if (!until) { return doc.selectNodes('paragraph'); } else { var _children = until.getNodesBefore(function (node) { return ['paragraph'].indexOf(node.type) >= 0; }).reverse(); return __webpack_require__(14)({ type: 'root', children: _children }); } }, wrapSections: function wrapSections() { var _this = this; var asts = this.sectionHeadingNodes().map(function (node) { return _this.createAstFromSection(node, { offset: false, type: 'div', data: { hName: 'section', hProperties: { 'data-section-path': node.getHeadingPath(), 'data-node-index': node.index } } }); }); return asts; }, createDocumentFromSection: function createDocumentFromSection(node) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var _node$headingRange = node.headingRange(), _node$headingRange$st = _node$headingRange.startNode, startNode = _node$headingRange$st === undefined ? node : _node$headingRange$st, endNode = _node$headingRange.endNode, _node$headingRange$no = _node$headingRange.nodes, nodes = _node$headingRange$no === undefined ? [] : _node$headingRange$no; var ast = doc.createAstFromSection(startNode, nodes); return { id: doc.id + '/~/' + (node.headingPath || node.getHeadingPath()), ast: ast, contents: __webpack_require__(18)(ast) }; }, createAstFromSection: function createAstFromSection(node, children) { var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var startDepth = node.depth; var offset = options.offset !== false ? 1 - startDepth : 0; children = children.map(function (node) { return node.original ? node.original() : node; }).map(function (child) { return child.type === 'heading' ? (0, _assign2.default)(child, { depth: child.depth + offset }) : child; }); var newAST = { type: options.type || 'root', children: children, data: options.data || {} }; return newAST; }, withoutNodeIndexes: function withoutNodeIndexes() { var indexList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var ast = this.ast; return { type: 'root', children: children.filter(function (node) { return indexList.indexOf(node.index) === -1; }), data: ast.data }; }, replaceSection: function replaceSection(sectionNode, newNode) { var _this2 = this; return this.extractSectionNodes(sectionNode).then(function (nodes) { return _this2.withoutNodeIndexes(nodes.map(function (n) { return n.index; })); }).then(function (newAst) { return newAst; }); }, createContentNode: function createContentNode(tagName) { var attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var value = arguments[2]; var node = { type: 'div', data: { hName: tagName || 'div', hProperties: attributes } }; if (typeof value === 'string') { node.value = value; } return node; }, createAST: function createAST() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var newAST = { type: options.type || 'root', children: options.children || [], data: options.data || {} }; return newAST; }, extractSectionNodes: function extractSectionNodes(node) { return node.headingRange().then(function (_ref2) { var nodes = _ref2.nodes; return nodes; }); }, inspectOutline: function inspectOutline() { var headings = this.selectHeadingNodes(); return headings.map(function (headingNode) { var content = '- ' + headingNode.textContent(); return _lodash2.default.padStart(content, content.length + (headingNode.depth - 1) * 2); }).join("\n"); }, headingIndexes: function headingIndexes(depth) { return this.chain.invoke('selectHeadingNodes', depth && '[depth=' + depth + ']').sortBy(function (node) { return node.position ? node.position.start.line : node.index; }).map(function (node) { return node.index; }).value(); }, references: function references() { return (0, _assign2.default)({}, this.referenceImages(), this.referenceLinks()); }, referenceImages: function referenceImages() { return this.chain.invoke('selectNodes', 'imageReference').keyBy('identifier').mapValues(function (refLink, identifier) { var definitionNodes = doc.definitionNodes(); return (0, _assign2.default)(refLink, { definitionNode: function definitionNode() { return definitionNodes[identifier]; }, get definition() { return _lodash2.default.pick(definitionNodes[identifier], 'title', 'url', 'identifier'); } }); }).value(); }, imageNodes: function imageNodes() { return this.selectNodes('image'); }, referenceLinks: function referenceLinks() { return this.chain.invoke('selectNodes', 'linkReference').keyBy('identifier').mapValues(function (refLink, identifier) { var definitionNodes = doc.definitionNodes(); return (0, _assign2.default)(refLink, { definitionNode: function definitionNode() { return definitionNodes[identifier]; }, get definition() { return _lodash2.default.pick(definitionNodes[identifier], 'title', 'url', 'identifier'); } }); }).value(); }, definitionNodes: function definitionNodes() { return this.chain.invoke('selectNodes', 'definition').keyBy('identifier').value(); }, selectHeadingsByDepth: function selectHeadingsByDepth() { var depth = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; return this.selectHeadingNodes('[depth=' + depth + ']'); }, selectOneNode: function selectOneNode(selector) { return __webpack_require__(4)(this.ast)(selector)[0]; }, selectNodes: function selectNodes() { var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '*'; var testFn = arguments[1]; var results = __webpack_require__(4)(this.ast)(selector); return typeof testFn === 'function' ? results.filter(function (r) { return testFn.call(doc, r); }) : results; }, selectHeadingNodes: function selectHeadingNodes() { var enhance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; return doc.selectNodes(('heading' + enhance).trim()); }, selectCodeBlocks: function selectCodeBlocks() { var lang = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'javascript'; var enhance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; return doc.selectNodes(('code[lang=' + lang + ']' + enhance).trim()); }, findNodeAfter: function findNodeAfter(node) { for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) { args[_key4 - 1] = arguments[_key4]; } return __webpack_require__(24).apply(undefined, [this.ast, node].concat((0, _toConsumableArray3.default)(args))); }, findAllNodesAfter: function findAllNodesAfter(node) { for (var _len5 = arguments.length, args = Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) { args[_key5 - 1] = arguments[_key5]; } return __webpack_require__(25).apply(undefined, [this.ast, node].concat((0, _toConsumableArray3.default)(args))); }, findAllNodesBefore: function findAllNodesBefore(node) { for (var _len6 = arguments.length, args = Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) { args[_key6 - 1] = arguments[_key6]; } return __webpack_require__(26).apply(undefined, [this.ast, node].concat((0, _toConsumableArray3.default)(args))); }, nodesIndexedByPosition: function nodesIndexedByPosition() { return doc.chain.get('ast.children').keyBy(function (node) { return parseInt(node.position.start.line); }).value(); }, introNodes: function introNodes() { var f = this.selectNodes('heading'); var m = f.find(function (n) { return n.depth > 1; }); var nodes = m ? m.getNodesBefore().reverse() : this.ast.children; return nodes.filter(function (n) { return n.type !== 'yaml'; }); }, finalHeading: function finalHeading() { return this.selectNodes('heading:last-of-type'); }, titleNode: function titleNode() { return this.selectOneNode('heading[depth=1]') || this.selectOneNode('heading:first-of-type'); }, firstSectionHeadingNode: function firstSectionHeadingNode() { return this.selectOneNode('heading[depth=2]'); }, sectionHeadingNodes: function sectionHeadingNodes() { return this.selectNodes('heading[depth=2]'); }, articleHeadingNodes: function articleHeadingNodes() { return this.selectNodes('heading[depth=3]'); }, subarticleHeadingNodes: function subarticleHeadingNodes() { return this.selectNodes('heading').filter(function (n) { return n.depth >= 4; }); }, getNodesBetweenPositions: function getNodesBetweenPositions(alpha, bravo) { var start = isNode(alpha) ? alpha.position.start.line : parseInt(alpha); var end = isNode(bravo) ? bravo.position.start.line : parseInt(bravo); return doc.chain.get('ast.children').filter(function (node) { var line = node.position.start.line; return line > start && line < end; }); }, firstNode: function firstNode() { return this.chain.get('ast.children', []).first().value(); }, finalNode: function finalNode() { return this.chain.get('ast.children', []).last().value(); }, getAST: function getAST() { var _ast = doc.remarkAST(); return (0, _assign2.default)(_ast, { children: _ast.children.map(function (n, i) { var d = doc.decorateNode(n); d.index = i; return d; }) }); }, getResults: function getResults() { var _this3 = this; var codeBlocks = doc.compileCodeBlocks().values().flatten().invokeMap('run').thru(function (r) { return _promise2.default.all(r); }).value(); return codeBlocks.then(function (results) { doc.hide('codeBlockResults', results); }).then(function () { return _this3; }); } }); doc.lazy('ast', function () { return doc.getAST(); }); doc.lazy('renderAST', function () { return doc.remarkAST(); }); doc.hide('parseFrontmatter', function (val) { if (!val) { var firstNode = doc.get('ast.children[0]', {}); val = firstNode.type === 'yaml' ? firstNode.value : undefined; } return val && val.length > 0 ? _jsYaml2.default.safeLoad(val) : {}; }); doc.lazy('frontmatter', function () { var firstNode = doc.get('ast.children[0]', {}); return firstNode.type === 'yaml' ? _jsYaml2.default.load(firstNode.value) : {}; }); doc.lazy('headingsMap', function () { return doc.createHeadingsMap(); }); return doc; }; exports.default = decorate; function isNode(obj) { return (typeof obj === 'undefined' ? 'undefined' : (0, _typeof3.default)(obj)) === 'object' && typeof obj.type === 'string' && obj.position; } function createBlock(contents) { var lang = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; return ["```" + lang, contents, "```"].join("\n"); } /***/ }, /***/ "./src/document-types/spec.js": /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.markdown = exports.javascript = exports.decorate = exports.testDocument = exports.rules = undefined; var _markdown = __webpack_require__("./src/document-types/markdown.js"); var _pathMatcher = __webpack_require__(7); var _pathMatcher2 = _interopRequireDefault(_pathMatcher); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var rules = exports.rules = [/.*\.(test|spec).*\.(md|js)$/i]; var testDocument = exports.testDocument = function testDocument(doc) { return typeof rules.find(function (rule) { return (0, _pathMatcher2.default)(rule, doc.fileBaseName); }) !== 'undefined'; }; var decorate = exports.decorate = function decorate(doc) { if (doc.isJavascript) { doc = javascript(doc); } if (doc.isMarkdown) { doc = markdown(doc); } return doc; }; var javascript = exports.javascript = function javascript(doc) { return doc; }; var markdown = exports.markdown = function markdown(doc) { return doc; }; /***/ }, /***/ "./src/transformers/markdown.js": /***/ function(module, exports, __webpack_require__) { "use strict"; 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.utilLoaders = exports.addons = exports.profiles = exports.github = exports.stringifier = exports.html = exports.parser = exports.comments = exports.standard = exports.applyTo = undefined; var _promise = __webpack_require__(6); var _promise2 = _interopRequireDefault(_promise); var _remark = __webpack_require__(51); var _remark2 = _interopRequireDefault(_remark); var _remarkCommentBlocks = __webpack_require__(53); var _remarkCommentBlocks2 = _interopRequireDefault(_remarkCommentBlocks); var _remarkCommentConfig = __webpack_require__(54); var _remarkCommentConfig2 = _interopRequireDefault(_remarkCommentConfig); var _remarkHtml = __webpack_require__(56); var _remarkHtml2 = _interopRequireDefault(_remarkHtml); var _remarkSlug = __webpack_require__(59); var _remarkSlug2 = _interopRequireDefault(_remarkSlug); var _remarkSqueezeParagraphs = __webpack_require__(60); var _remarkSqueezeParagraphs2 = _interopRequireDefault(_remarkSqueezeParagraphs); var _remarkStringify = __webpack_require__(61); var _remarkStringify2 = _interopRequireDefault(_remarkStringify); var _remarkNormalizeHeadings = __webpack_require__(57); var _remarkNormalizeHeadings2 = _interopRequireDefault(_remarkNormalizeHeadings); var _remarkGithub = __webpack_require__(70); var _remarkGithub2 = _interopRequireDefault(_remarkGithub); var _remarkToc = __webpack_require__(63); var _remarkToc2 = _interopRequireDefault(_remarkToc); var _remarkAutolinkHeadings = __webpack_require__(52); var _remarkAutolinkHeadings2 = _interopRequireDefault(_remarkAutolinkHeadings); var _remarkContributors = __webpack_require__(55); var _remarkContributors2 = _interopRequireDefault(_remarkContributors); var _remarkStripBadges = __webpack_require__(62); var _remarkStripBadges2 = _interopRequireDefault(_remarkStripBadges); var _remarkParse = __webpack_require__(58); var _remarkParse2 = _interopRequireDefault(_remarkParse); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Run a remark parser profile with optional add-ons. Available profiles * can be found @see profiles and addOns @see addOns * * @param {Object} options - the options object * @param {String} options.profile - which parser profile to use? * @param {Array} options.addOns - which addons to include? */ exports.default = function () { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var _options$profile = options.profile, profile = _options$profile === undefined ? 'parser' : _options$profile, _options$addOns = options.addOns, addOns = _options$addOns === undefined ? [] : _options$addOns; var unified = profiles[profile] || parser; return addOns.reduce(function (memo, addon) { return addons[addOn] ? memo.use(addons[addOn]) : memo; }, unified(options)); }; var applyTo = exports.applyTo = function applyTo(input, options) { var _options$method = options.method, method = _options$method === undefined ? 'process' : _options$method, _options$parser = options.parser, parser = _options$parser === undefined ? 'github' : _options$parser; return new _promise2.default(function (resolve, reject) { profiles[parser](options)[method](input, function (err, file) { err ? reject(err) : resolve(file); }); }); }; var standard = exports.standard = function standard() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return (0, _remark2.default)().use(_remarkCommentConfig2.default).use(_remarkNormalizeHeadings2.default).use(_remarkSqueezeParagraphs2.default).use(_remarkSlug2.default).use(_remarkAutolinkHeadings2.default); }; var comments = exports.comments = function comments() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return standard(options).use(_remarkCommentBlocks2.default); }; var parser = exports.parser = function parser() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return standard(options).use(_remarkParse2.default); }; var html = exports.html = function html() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return standard(options).use(_remarkHtml2.default); }; var stringifier = exports.stringifier = function stringifier() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return standard(options).use(_remarkStringify2.default); }; var github = exports.github = function github() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return standard(options).use(_remarkGithub2.default).use(_remarkAutolinkHeadings2.default); }; var profiles = exports.profiles = { parser: parser, standard: standard, comments: comments, github: github, html: html, stringifier: stringifier }; var addons = exports.addons = { contributors: _remarkContributors2.default, stripBadges: _remarkStripBadges2.default, toc: _remarkToc2.default }; var utilLoaders = exports.utilLoaders = function utilLoaders() { return { filter: function filter() { return __webpack_require__(37); }, findAfter: function findAfter() { return __webpack_require__(24); }, findAllAfter: function findAllAfter() { return __webpack_require__(25); }, findAllBefore: function findAllBefore() { return __webpack_require__(26); }, index: function index() { return __webpack_require__(38); }, map: function map() { return __webpack_require__(39); }, parents: function parents() { return __webpack_require__(40); }, position: function position() { return __webpack_require__(41); }, removePosition: function removePosition() { return __webpack_require__(42); }, select: function select() { return __webpack_require__(4); }, source: function source() { return __webpack_require__(18); }, visit: function visit() { return __webpack_require__(43); }, reporter: function reporter() { return __webpack_require__(44); }, docblockParser: function docblockParser() { return __webpack_require__(19); }, toString: function toString() { return __webpack_require__(14); }, headingRange: function headingRange() { return __webpack_require__(16); }, inject: function inject() { return __webpack_require__(45); } }; }; /***/ }, /***/ 0: /***/ function(module, exports) { module.exports = require("babel-runtime/helpers/extends"); /***/ }, /***/ 1: /***/ function(module, exports) { module.exports = require("babel-runtime/core-js/object/assign"); /***/ }, /***/ 13: /***/ function(module, exports) { module.exports = require("babel-runtime/core-js/object/keys"); /***/ }, /***/ 137: /***/ function(module, exports, __webpack_require__) { module.exports = __webpack_require__("./src/document-types/spec.js"); /***/ }, /***/ 14: /***/ function(module, exports) { module.exports = require("mdast-util-to-string"); /***/ }, /***/ 15: /***/ function(module, exports) { module.exports = require("skypager-util/lib/string"); /***/ }, /***/ 16: /***/ function(module, exports) { module.exports = require("mdast-util-heading-range"); /***/ }, /***/ 17: /***/ function(module, exports) { module.exports = require("lodash/omit"); /***/ }, /***/ 18: /***/ function(module, exports) { module.exports = require("unist-util-source"); /***/ }, /***/ 19: /***/ function(module, exports) { module.exports = require("docblock-parser"); /***/ }, /***/ 21: /***/ function(module, exports) { module.exports = require("lodash/mapValues"); /***/ }, /***/ 23: /***/ function(module, exports) { module.exports = require("babel-runtime/helpers/typeof"); /***/ }, /***/ 24: /***/ function(module, exports) { module.exports = require("unist-util-find-after"); /***/ }, /***/ 25: /***/ function(module, exports) { module.exports = require("unist-util-find-all-after"); /***/ }, /***/ 26: /***/ function(module, exports) { module.exports = require("unist-util-find-all-before"); /***/ }, /***/ 27: /***/ function(module, exports) { module.exports = require("babel-core"); /***/ }, /***/ 32: /***/ function(module, exports) { module.exports = require("lodash/isEmpty"); /***/ }, /***/ 33: /***/ function(module, exports) { module.exports = require("lodash/pick"); /***/ }, /***/ 34: /***/ function(module, exports) { module.exports = require("skypager-util/lib/entity"); /***/ }, /***/ 35: /***/ function(module, exports) { module.exports = require("lodash"); /***/ }, /***/ 37: /***/ function(module, exports) { module.exports = require("unist-util-fi