(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("react")); else if(typeof define === 'function' && define.amd) define(["react"], factory); else if(typeof exports === 'object') exports["GraphQLDocs"] = factory(require("react")); else root["GraphQLDocs"] = factory(root["React"]); })(this, function(__WEBPACK_EXTERNAL_MODULE_1__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ exports: {}, /******/ id: moduleId, /******/ loaded: false /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.loaded = 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; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(0); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.GraphQLDocs = undefined; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _react = __webpack_require__(1); var _react2 = _interopRequireDefault(_react); var _SchemaDocsView = __webpack_require__(2); var _model = __webpack_require__(3); var _introspectionQuery = __webpack_require__(30); var _introspectionQuery2 = _interopRequireDefault(_introspectionQuery); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var GraphQLDocs = exports.GraphQLDocs = function (_React$Component) { _inherits(GraphQLDocs, _React$Component); function GraphQLDocs() { _classCallCheck(this, GraphQLDocs); return _possibleConstructorReturn(this, (GraphQLDocs.__proto__ || Object.getPrototypeOf(GraphQLDocs)).apply(this, arguments)); } _createClass(GraphQLDocs, [{ key: 'componentWillMount', value: function componentWillMount() { var _this2 = this; var promise = this.props.fetcher(_introspectionQuery2.default); promise.then(function (json) { _this2.setState({ schema: new _model.Schema(json.data) }); }); } }, { key: 'render', value: function render() { if (this.state && this.state.schema) { return _react2.default.createElement(_SchemaDocsView.SchemaDocsView, { schema: this.state.schema }); } else { return _react2.default.createElement('div', null); } } }]); return GraphQLDocs; }(_react2.default.Component); /***/ }, /* 1 */ /***/ function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_1__; /***/ }, /* 2 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.SchemaDocsView = undefined; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _react = __webpack_require__(1); var _react2 = _interopRequireDefault(_react); var _model = __webpack_require__(3); var _schemaWalker = __webpack_require__(4); var _TypeDocsViews = __webpack_require__(5); var _SchemaDocsView = __webpack_require__(27); var StyleSheet = _interopRequireWildcard(_SchemaDocsView); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var SchemaDocsView = exports.SchemaDocsView = function (_React$Component) { _inherits(SchemaDocsView, _React$Component); function SchemaDocsView() { _classCallCheck(this, SchemaDocsView); return _possibleConstructorReturn(this, (SchemaDocsView.__proto__ || Object.getPrototypeOf(SchemaDocsView)).apply(this, arguments)); } _createClass(SchemaDocsView, [{ key: 'render', value: function render() { var _this2 = this; var types = (0, _schemaWalker.getReferencesInSchema)(this.props.schema).map(function (tn) { return _this2.props.schema.types[tn]; }); var components = []; types.forEach(function (t) { if (t instanceof _model.ObjectType) { components.push(_react2.default.createElement(_TypeDocsViews.ObjectDocsView, { key: t.name, type: t, titleOverride: _this2.titleOverrideFor(t) })); } if (t instanceof _model.InterfaceType) { components.push(_react2.default.createElement(_TypeDocsViews.InterfaceDocsView, { key: t.name, type: t })); } if (t instanceof _model.EnumType) { components.push(_react2.default.createElement(_TypeDocsViews.EnumDocsView, { key: t.name, type: t })); } if (t instanceof _model.InputObjectType) { components.push(_react2.default.createElement(_TypeDocsViews.InputObjectDocsView, { key: t.name, type: t })); } }); types.forEach(function (t) { if (t instanceof _model.ScalarType) { components.push(_react2.default.createElement(_TypeDocsViews.ScalarDocsView, { key: t.name, type: t })); } }); return _react2.default.createElement( 'div', { className: StyleSheet.wrapper }, _react2.default.createElement( 'div', { className: StyleSheet.container }, components ) ); } }, { key: 'titleOverrideFor', value: function titleOverrideFor(t) { if (t === this.props.schema.getQueryType()) { return 'Root query'; } if (t === this.props.schema.getMutationType()) { return 'Mutations'; } return null; } }]); return SchemaDocsView; }(_react2.default.Component); /***/ }, /* 3 */ /***/ function(module, exports) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var TYPE_KINDS = exports.TYPE_KINDS = ['SCALAR', 'INTERFACE', 'OBJECT', 'ENUM', 'INPUT_OBJECT']; var Schema = exports.Schema = function () { function Schema(introspectionResult) { var _this = this; _classCallCheck(this, Schema); if (!introspectionResult.__schema) { throw new Error('Function "Schema" precondition failed: introspectionResult.__schema'); } if (!Array.isArray(introspectionResult.__schema.types)) { throw new Error('Function "Schema" precondition failed: Array.isArray(introspectionResult.__schema.types)'); } if (!introspectionResult.__schema.queryType) { throw new Error('Function "Schema" precondition failed: introspectionResult.__schema.queryType'); } if (!(introspectionResult.__schema.mutationType === null || typeof introspectionResult.__schema.mutationType.name === 'string')) { throw new Error('Function "Schema" precondition failed: introspectionResult.__schema.mutationType === null || typeof introspectionResult.__schema.mutationType.name === \'string\''); } this.types = {}; introspectionResult.__schema.types.forEach(function (t) { if (!(typeof t.name === 'string')) { throw new Error('Function precondition failed: typeof t.name === \'string\''); } _this.types[t.name] = Type.fromIntrospectionType(t); }); this.queryTypeId = introspectionResult.__schema.queryType.name; if (introspectionResult.__schema.mutationType) { this.mutationTypeId = introspectionResult.__schema.mutationType.name; } else { this.mutationTypeId = null; } } _createClass(Schema, [{ key: 'getQueryType', value: function getQueryType() { var queryType = this.types[this.queryTypeId]; if (queryType instanceof ObjectType) { return queryType; } else { throw new Error('Query type must be an ObjectType'); } } }, { key: 'getMutationType', value: function getMutationType() { if (!this.mutationTypeId) { return null; } var mutationType = this.types[this.mutationTypeId]; if (mutationType instanceof ObjectType) { return mutationType; } else { throw new Error('Mutation type must be an ObjectType'); } } }]); return Schema; }(); var Type = exports.Type = function () { _createClass(Type, null, [{ key: 'fromIntrospectionType', value: function fromIntrospectionType(introspectionType) { if (introspectionType.kind === 'OBJECT') { return new ObjectType(introspectionType); } else if (introspectionType.kind === 'SCALAR') { return new ScalarType(introspectionType); } else if (introspectionType.kind === 'INTERFACE') { return new InterfaceType(introspectionType); } else if (introspectionType.kind === 'ENUM') { return new EnumType(introspectionType); } else if (introspectionType.kind === 'INPUT_OBJECT') { return new InputObjectType(introspectionType); } else { throw new Error('Unsupported type kind: ' + introspectionType.kind); } } }]); function Type(introspectionType) { _classCallCheck(this, Type); if (!(this.constructor !== Type)) { throw new Error('Function "Type" precondition failed: this.constructor !== Type'); } if (!(typeof introspectionType.name === 'string')) { throw new Error('Function "Type" precondition failed: typeof introspectionType.name === \'string\''); } if (!(introspectionType.description === null || typeof introspectionType.description === 'string')) { throw new Error('Function "Type" precondition failed: introspectionType.description === null || typeof introspectionType.description === \'string\''); } this.name = introspectionType.name; this.description = introspectionType.description; } return Type; }(); var ObjectType = exports.ObjectType = function (_Type) { _inherits(ObjectType, _Type); function ObjectType(introspectionType) { _classCallCheck(this, ObjectType); if (!(introspectionType.kind === 'OBJECT')) { throw new Error('Function "ObjectType" precondition failed: introspectionType.kind === \'OBJECT\''); } if (!Array.isArray(introspectionType.fields)) { throw new Error('Function "ObjectType" precondition failed: Array.isArray(introspectionType.fields)'); } if (!(introspectionType.interfaces === null || Array.isArray(introspectionType.interfaces))) { throw new Error('Function "ObjectType" precondition failed: introspectionType.interfaces === null || Array.isArray(introspectionType.interfaces)'); } var _this2 = _possibleConstructorReturn(this, (ObjectType.__proto__ || Object.getPrototypeOf(ObjectType)).call(this, introspectionType)); _this2.fields = introspectionType.fields.map(function (f) { return new Field(f); }); if (introspectionType.interfaces) { _this2.interfaces = introspectionType.interfaces.map(function (r) { return TypeRef.fromIntrospectionRef(r); }); } else { _this2.interfaces = []; } return _this2; } return ObjectType; }(Type); var ScalarType = exports.ScalarType = function (_Type2) { _inherits(ScalarType, _Type2); function ScalarType(introspectionType) { _classCallCheck(this, ScalarType); if (!(introspectionType.kind === 'SCALAR')) { throw new Error('Function "ScalarType" precondition failed: introspectionType.kind === \'SCALAR\''); } return _possibleConstructorReturn(this, (ScalarType.__proto__ || Object.getPrototypeOf(ScalarType)).call(this, introspectionType)); } return ScalarType; }(Type); var InterfaceType = exports.InterfaceType = function (_Type3) { _inherits(InterfaceType, _Type3); function InterfaceType(introspectionType) { _classCallCheck(this, InterfaceType); if (!(introspectionType.kind === 'INTERFACE')) { throw new Error('Function "InterfaceType" precondition failed: introspectionType.kind === \'INTERFACE\''); } if (!Array.isArray(introspectionType.fields)) { throw new Error('Function "InterfaceType" precondition failed: Array.isArray(introspectionType.fields)'); } if (!Array.isArray(introspectionType.possibleTypes)) { throw new Error('Function "InterfaceType" precondition failed: Array.isArray(introspectionType.possibleTypes)'); } var _this4 = _possibleConstructorReturn(this, (InterfaceType.__proto__ || Object.getPrototypeOf(InterfaceType)).call(this, introspectionType)); _this4.fields = introspectionType.fields.map(function (f) { return new Field(f); }); _this4.possibleTypes = introspectionType.possibleTypes.map(function (r) { return TypeRef.fromIntrospectionRef(r); }); return _this4; } return InterfaceType; }(Type); var EnumType = exports.EnumType = function (_Type4) { _inherits(EnumType, _Type4); function EnumType(introspectionType) { _classCallCheck(this, EnumType); if (!(introspectionType.kind === 'ENUM')) { throw new Error('Function "EnumType" precondition failed: introspectionType.kind === \'ENUM\''); } if (!Array.isArray(introspectionType.enumValues)) { throw new Error('Function "EnumType" precondition failed: Array.isArray(introspectionType.enumValues)'); } var _this5 = _possibleConstructorReturn(this, (EnumType.__proto__ || Object.getPrototypeOf(EnumType)).call(this, introspectionType)); _this5.enumValues = introspectionType.enumValues.map(function (v) { return new EnumValue(v); }); return _this5; } return EnumType; }(Type); var InputObjectType = exports.InputObjectType = function (_Type5) { _inherits(InputObjectType, _Type5); function InputObjectType(introspectionType) { _classCallCheck(this, InputObjectType); if (!(introspectionType.kind === 'INPUT_OBJECT')) { throw new Error('Function "InputObjectType" precondition failed: introspectionType.kind === \'INPUT_OBJECT\''); } if (!Array.isArray(introspectionType.inputFields)) { throw new Error('Function "InputObjectType" precondition failed: Array.isArray(introspectionType.inputFields)'); } var _this6 = _possibleConstructorReturn(this, (InputObjectType.__proto__ || Object.getPrototypeOf(InputObjectType)).call(this, introspectionType)); _this6.inputFields = introspectionType.inputFields.map(function (f) { return new InputValue(f); }); return _this6; } return InputObjectType; }(Type); var Field = exports.Field = function Field(introspectionField) { _classCallCheck(this, Field); if (!(typeof introspectionField.name === 'string')) { throw new Error('Function "Field" precondition failed: typeof introspectionField.name === \'string\''); } if (!(introspectionField.description === null || typeof introspectionField.description === 'string')) { throw new Error('Function "Field" precondition failed: introspectionField.description === null || typeof introspectionField.description === \'string\''); } if (!introspectionField.type) { throw new Error('Function "Field" precondition failed: introspectionField.type'); } if (!Array.isArray(introspectionField.args)) { throw new Error('Function "Field" precondition failed: Array.isArray(introspectionField.args)'); } this.name = introspectionField.name; this.description = introspectionField.description; this.args = introspectionField.args.map(function (a) { return new InputValue(a); }); this.type = TypeRef.fromIntrospectionRef(introspectionField.type); }; var InputValue = exports.InputValue = function InputValue(introspectionValue) { _classCallCheck(this, InputValue); if (!(typeof introspectionValue.name === 'string')) { throw new Error('Function "InputValue" precondition failed: typeof introspectionValue.name === \'string\''); } if (!(introspectionValue.description === null || typeof introspectionValue.description === 'string')) { throw new Error('Function "InputValue" precondition failed: introspectionValue.description === null || typeof introspectionValue.description === \'string\''); } if (!introspectionValue.type) { throw new Error('Function "InputValue" precondition failed: introspectionValue.type'); } if (!(introspectionValue.defaultValue !== undefined)) { throw new Error('Function "InputValue" precondition failed: introspectionValue.defaultValue !== undefined'); } this.name = introspectionValue.name; this.type = TypeRef.fromIntrospectionRef(introspectionValue.type); this.description = introspectionValue.description; this.defaultValue = introspectionValue.defaultValue; }; var TypeRef = exports.TypeRef = function () { function TypeRef() { _classCallCheck(this, TypeRef); if (!(this.constructor !== TypeRef)) { throw new Error('Function "TypeRef" precondition failed: this.constructor !== TypeRef'); } } _createClass(TypeRef, null, [{ key: 'fromIntrospectionRef', value: function fromIntrospectionRef(introspectionRef) { if (introspectionRef.kind === 'NON_NULL') { return new NonNullTypeRef(introspectionRef); } else if (introspectionRef.kind === 'LIST') { return new ListTypeRef(introspectionRef); } else if (TYPE_KINDS.indexOf(introspectionRef.kind) !== -1) { return new NamedTypeRef(introspectionRef); } else { throw new Error('Unsupported type ref kind: ' + introspectionRef.kind); } } }]); return TypeRef; }(); var NonNullTypeRef = exports.NonNullTypeRef = function (_TypeRef) { _inherits(NonNullTypeRef, _TypeRef); function NonNullTypeRef(introspectionRef) { _classCallCheck(this, NonNullTypeRef); if (!introspectionRef.ofType) { throw new Error('Function "NonNullTypeRef" precondition failed: introspectionRef.ofType'); } var _this7 = _possibleConstructorReturn(this, (NonNullTypeRef.__proto__ || Object.getPrototypeOf(NonNullTypeRef)).call(this)); _this7.ofType = TypeRef.fromIntrospectionRef(introspectionRef.ofType); return _this7; } return NonNullTypeRef; }(TypeRef); var NamedTypeRef = exports.NamedTypeRef = function (_TypeRef2) { _inherits(NamedTypeRef, _TypeRef2); function NamedTypeRef(introspectionRef) { _classCallCheck(this, NamedTypeRef); if (!(typeof introspectionRef.name === 'string')) { throw new Error('Function "NamedTypeRef" precondition failed: typeof introspectionRef.name === \'string\''); } var _this8 = _possibleConstructorReturn(this, (NamedTypeRef.__proto__ || Object.getPrototypeOf(NamedTypeRef)).call(this)); _this8.typeName = introspectionRef.name; return _this8; } return NamedTypeRef; }(TypeRef); var ListTypeRef = exports.ListTypeRef = function (_TypeRef3) { _inherits(ListTypeRef, _TypeRef3); function ListTypeRef(introspectionRef) { _classCallCheck(this, ListTypeRef); if (!introspectionRef.ofType) { throw new Error('Function "ListTypeRef" precondition failed: introspectionRef.ofType'); } var _this9 = _possibleConstructorReturn(this, (ListTypeRef.__proto__ || Object.getPrototypeOf(ListTypeRef)).call(this)); _this9.ofType = TypeRef.fromIntrospectionRef(introspectionRef.ofType); return _this9; } return ListTypeRef; }(TypeRef); var EnumValue = exports.EnumValue = function EnumValue(introspectionValue) { _classCallCheck(this, EnumValue); if (!(typeof introspectionValue.name === 'string')) { throw new Error('Function "EnumValue" precondition failed: typeof introspectionValue.name === \'string\''); } if (!(introspectionValue.description === null || typeof introspectionValue.description === 'string')) { throw new Error('Function "EnumValue" precondition failed: introspectionValue.description === null || typeof introspectionValue.description === \'string\''); } if (!(typeof introspectionValue.isDeprecated === 'boolean')) { throw new Error('Function "EnumValue" precondition failed: typeof introspectionValue.isDeprecated === \'boolean\''); } if (!(!introspectionValue.isDeprecated || typeof introspectionValue.deprecationReason === 'string')) { throw new Error('Function "EnumValue" precondition failed: !introspectionValue.isDeprecated || typeof introspectionValue.deprecationReason === \'string\''); } if (!(introspectionValue.isDeprecated || introspectionValue.deprecationReason === null)) { throw new Error('Function "EnumValue" precondition failed: introspectionValue.isDeprecated || introspectionValue.deprecationReason === null'); } this.name = introspectionValue.name; this.description = introspectionValue.description; this.isDeprecated = introspectionValue.isDeprecated; this.deprecationReason = introspectionValue.deprecationReason; }; /***/ }, /* 4 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.getReferencesInSchema = getReferencesInSchema; var _model = __webpack_require__(3); function getReferencesInSchema(schema) { var visitQueue = []; var visited = []; visitQueue.push(schema.getQueryType().name); var mutationType = schema.getMutationType(); if (mutationType) { visitQueue.push(mutationType.name); } while (visitQueue.length) { var typeId = visitQueue.shift(); if (visited.indexOf(typeId) !== -1) { continue; } var type = schema.types[typeId]; if (!type) { throw new Error('Type ' + typeId + ' not found in schema'); } var newRefs = getReferencesInType(type); visited.push(typeId); [].push.apply(visitQueue, Object.keys(newRefs)); } return visited; } function getReferencesInType(type) { var refs = {}; addTypeToBag(type, refs); if (type instanceof _model.ObjectType) { type.fields.forEach(function (f) { return getReferencesInField(f, refs); }); type.interfaces.forEach(function (r) { return addTypeRefToBag(r, refs); }); } if (type instanceof _model.InterfaceType) { type.fields.forEach(function (f) { return getReferencesInField(f, refs); }); type.possibleTypes.forEach(function (r) { return addTypeRefToBag(r, refs); }); } if (type instanceof _model.InputObjectType) { type.inputFields.forEach(function (iv) { return addTypeRefToBag(iv.type, refs); }); } return refs; } function getReferencesInField(field, refs) { addTypeRefToBag(field.type, refs); field.args.forEach(function (arg) { return addTypeRefToBag(arg.type, refs); }); } function addTypeRefToBag(typeRef, refs) { if (typeRef instanceof _model.NonNullTypeRef) { addTypeRefToBag(typeRef.ofType, refs); } else if (typeRef instanceof _model.ListTypeRef) { addTypeRefToBag(typeRef.ofType, refs); } else if (typeRef instanceof _model.NamedTypeRef) { refs[typeRef.typeName] = (refs[typeRef.typeName] || 0) + 1; } else { throw new Error('Unknown type ref: ' + typeRef.toString()); } } function addTypeToBag(type, refs) { refs[type.name] = (refs[type.name] || 0) + 1; } /***/ }, /* 5 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.InputObjectDocsView = exports.ScalarDocsView = exports.EnumDocsView = exports.InterfaceDocsView = exports.ObjectDocsView = undefined; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _react = __webpack_require__(1); var _react2 = _interopRequireDefault(_react); var _model = __webpack_require__(3); var _DescriptionView = __webpack_require__(6); var _FieldView = __webpack_require__(12); var _TypeRefView = __webpack_require__(14); var _FieldArgumentsTableView = __webpack_require__(20); var _TypeDocsViews = __webpack_require__(25); var StyleSheet = _interopRequireWildcard(_TypeDocsViews); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var ObjectDocsView = exports.ObjectDocsView = function (_React$Component) { _inherits(ObjectDocsView, _React$Component); function ObjectDocsView() { _classCallCheck(this, ObjectDocsView); return _possibleConstructorReturn(this, (ObjectDocsView.__proto__ || Object.getPrototypeOf(ObjectDocsView)).apply(this, arguments)); } _createClass(ObjectDocsView, [{ key: 'render', value: function render() { var type = this.props.type; return _react2.default.createElement( 'div', { className: StyleSheet.type }, renderTitle(type.name, this.props.titleOverride), renderDescription(type.description), renderInterfaces(type.interfaces), renderFields(type.fields) ); } }]); return ObjectDocsView; }(_react2.default.Component); ObjectDocsView.defaultProps = { titleOverride: null }; var InterfaceDocsView = exports.InterfaceDocsView = function (_React$Component2) { _inherits(InterfaceDocsView, _React$Component2); function InterfaceDocsView() { _classCallCheck(this, InterfaceDocsView); return _possibleConstructorReturn(this, (InterfaceDocsView.__proto__ || Object.getPrototypeOf(InterfaceDocsView)).apply(this, arguments)); } _createClass(InterfaceDocsView, [{ key: 'render', value: function render() { var type = this.props.type; return _react2.default.createElement( 'div', { className: StyleSheet.type }, renderTitle(type.name), renderDescription(type.description), renderImplementors(type.possibleTypes), renderFields(type.fields) ); } }]); return InterfaceDocsView; }(_react2.default.Component); var EnumDocsView = exports.EnumDocsView = function (_React$Component3) { _inherits(EnumDocsView, _React$Component3); function EnumDocsView() { _classCallCheck(this, EnumDocsView); return _possibleConstructorReturn(this, (EnumDocsView.__proto__ || Object.getPrototypeOf(EnumDocsView)).apply(this, arguments)); } _createClass(EnumDocsView, [{ key: 'render', value: function render() { var type = this.props.type; return _react2.default.createElement( 'div', { className: StyleSheet.type }, renderTitle(type.name), renderDescription(type.description), renderEnumValues(type.enumValues) ); } }]); return EnumDocsView; }(_react2.default.Component); var ScalarDocsView = exports.ScalarDocsView = function (_React$Component4) { _inherits(ScalarDocsView, _React$Component4); function ScalarDocsView() { _classCallCheck(this, ScalarDocsView); return _possibleConstructorReturn(this, (ScalarDocsView.__proto__ || Object.getPrototypeOf(ScalarDocsView)).apply(this, arguments)); } _createClass(ScalarDocsView, [{ key: 'render', value: function render() { var type = this.props.type; return _react2.default.createElement( 'div', { className: StyleSheet.type }, renderTitle(type.name), renderDescription(type.description) ); } }]); return ScalarDocsView; }(_react2.default.Component); var InputObjectDocsView = exports.InputObjectDocsView = function (_React$Component5) { _inherits(InputObjectDocsView, _React$Component5); function InputObjectDocsView() { _classCallCheck(this, InputObjectDocsView); return _possibleConstructorReturn(this, (InputObjectDocsView.__proto__ || Object.getPrototypeOf(InputObjectDocsView)).apply(this, arguments)); } _createClass(InputObjectDocsView, [{ key: 'render', value: function render() { var type = this.props.type; return _react2.default.createElement( 'div', { className: StyleSheet.type }, renderTitle(type.name), renderDescription(type.description), _react2.default.createElement(_FieldArgumentsTableView.FieldArgumentsTableView, { args: type.inputFields }) ); } }]); return InputObjectDocsView; }(_react2.default.Component); function renderTitle(typeName) { var titleOverride = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1]; return _react2.default.createElement( 'h2', { className: StyleSheet.heading }, _react2.default.createElement('a', { name: typeName }), titleOverride || typeName ); } function renderDescription(description) { if (!description) { return null; } return _react2.default.createElement( 'div', null, _react2.default.createElement(_DescriptionView.DescriptionView, { description: description }) ); } function renderFields(fields) { return _react2.default.createElement( 'div', null, _react2.default.createElement( 'div', { className: StyleSheet.subHeading }, 'Fields' ), fields.map(function (f) { return _react2.default.createElement(_FieldView.FieldView, { key: f.name, field: f }); }) ); } function renderInterfaces(interfaces) { if (!interfaces.length) { return null; } return _react2.default.createElement( 'div', null, _react2.default.createElement( 'div', { className: StyleSheet.subHeading }, 'Implements' ), _react2.default.createElement( 'ul', { className: StyleSheet.interfacesList }, interfaces.map(function (r, i) { return _react2.default.createElement( 'li', { key: i }, _react2.default.createElement(_TypeRefView.TypeRefView, { key: i, typeRef: r }) ); }) ) ); } function renderImplementors(possibleTypes) { if (!possibleTypes.length) { return null; } return _react2.default.createElement( 'div', null, _react2.default.createElement( 'div', { className: StyleSheet.subHeading }, 'Implemented by' ), _react2.default.createElement( 'ul', { className: StyleSheet.interfacesList }, possibleTypes.map(function (r, i) { return _react2.default.createElement( 'li', { key: i }, _react2.default.createElement(_TypeRefView.TypeRefView, { key: i, typeRef: r }) ); }) ) ); } function renderEnumValues(enumValues) { if (!enumValues.length) { return null; } return _react2.default.createElement( 'div', null, _react2.default.createElement( 'div', { className: StyleSheet.subHeading }, 'Possible Enum Values' ), _react2.default.createElement( 'table', null, _react2.default.createElement( 'tbody', null, enumValues.map(function (v) { return _react2.default.createElement( 'tr', { key: v.name, className: StyleSheet.enumRow }, _react2.default.createElement( 'td', { className: StyleSheet.enumName }, v.name ), _react2.default.createElement( 'td', null, v.description && _react2.default.createElement(_DescriptionView.DescriptionView, { description: v.description }) ) ); }) ) ) ); } /***/ }, /* 6 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.DescriptionView = undefined; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _react = __webpack_require__(1); var _react2 = _interopRequireDefault(_react); var _marked = __webpack_require__(7); var _marked2 = _interopRequireDefault(_marked); var _DescriptionView = __webpack_require__(8); var StyleSheet = _interopRequireWildcard(_DescriptionView); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var DescriptionView = exports.DescriptionView = function (_React$Component) { _inherits(DescriptionView, _React$Component); function DescriptionView() { _classCallCheck(this, DescriptionView); return _possibleConstructorReturn(this, (DescriptionView.__proto__ || Object.getPrototypeOf(DescriptionView)).apply(this, arguments)); } _createClass(DescriptionView, [{ key: 'render', value: function render() { var html = (0, _marked2.default)(this.props.description); return _react2.default.createElement('div', { className: [StyleSheet.container, this.props.className].join(' '), dangerouslySetInnerHTML: { __html: html } }); } }]); return DescriptionView; }(_react2.default.Component); DescriptionView.defaultProps = { className: '' }; /***/ }, /* 7 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {/** * marked - a markdown parser * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed) * https://github.com/chjj/marked */ ;(function() { /** * Block-Level Grammar */ var block = { newline: /^\n+/, code: /^( {4}[^\n]+\n*)+/, fences: noop, hr: /^( *[-*_]){3,} *(?:\n+|$)/, heading: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/, nptable: noop, lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/, blockquote: /^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/, list: /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/, html: /^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/, def: /^ *\[([^\]]+)\]: *]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/, table: noop, paragraph: /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/, text: /^[^\n]+/ }; block.bullet = /(?:[*+-]|\d+\.)/; block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/; block.item = replace(block.item, 'gm') (/bull/g, block.bullet) (); block.list = replace(block.list) (/bull/g, block.bullet) ('hr', '\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))') ('def', '\\n+(?=' + block.def.source + ')') (); block.blockquote = replace(block.blockquote) ('def', block.def) (); block._tag = '(?!(?:' + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code' + '|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo' + '|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b'; block.html = replace(block.html) ('comment', //) ('closed', /<(tag)[\s\S]+?<\/\1>/) ('closing', /])*?>/) (/tag/g, block._tag) (); block.paragraph = replace(block.paragraph) ('hr', block.hr) ('heading', block.heading) ('lheading', block.lheading) ('blockquote', block.blockquote) ('tag', '<' + block._tag) ('def', block.def) (); /** * Normal Block Grammar */ block.normal = merge({}, block); /** * GFM Block Grammar */ block.gfm = merge({}, block.normal, { fences: /^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/, paragraph: /^/, heading: /^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/ }); block.gfm.paragraph = replace(block.paragraph) ('(?!', '(?!' + block.gfm.fences.source.replace('\\1', '\\2') + '|' + block.list.source.replace('\\1', '\\3') + '|') (); /** * GFM + Tables Block Grammar */ block.tables = merge({}, block.gfm, { nptable: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/, table: /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/ }); /** * Block Lexer */ function Lexer(options) { this.tokens = []; this.tokens.links = {}; this.options = options || marked.defaults; this.rules = block.normal; if (this.options.gfm) { if (this.options.tables) { this.rules = block.tables; } else { this.rules = block.gfm; } } } /** * Expose Block Rules */ Lexer.rules = block; /** * Static Lex Method */ Lexer.lex = function(src, options) { var lexer = new Lexer(options); return lexer.lex(src); }; /** * Preprocessing */ Lexer.prototype.lex = function(src) { src = src .replace(/\r\n|\r/g, '\n') .replace(/\t/g, ' ') .replace(/\u00a0/g, ' ') .replace(/\u2424/g, '\n'); return this.token(src, true); }; /** * Lexing */ Lexer.prototype.token = function(src, top, bq) { var src = src.replace(/^ +$/gm, '') , next , loose , cap , bull , b , item , space , i , l; while (src) { // newline if (cap = this.rules.newline.exec(src)) { src = src.substring(cap[0].length); if (cap[0].length > 1) { this.tokens.push({ type: 'space' }); } } // code if (cap = this.rules.code.exec(src)) { src = src.substring(cap[0].length); cap = cap[0].replace(/^ {4}/gm, ''); this.tokens.push({ type: 'code', text: !this.options.pedantic ? cap.replace(/\n+$/, '') : cap }); continue; } // fences (gfm) if (cap = this.rules.fences.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({ type: 'code', lang: cap[2], text: cap[3] || '' }); continue; } // heading if (cap = this.rules.heading.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({ type: 'heading', depth: cap[1].length, text: cap[2] }); continue; } // table no leading pipe (gfm) if (top && (cap = this.rules.nptable.exec(src))) { src = src.substring(cap[0].length); item = { type: 'table', header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */), align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), cells: cap[3].replace(/\n$/, '').split('\n') }; for (i = 0; i < item.align.length; i++) { if (/^ *-+: *$/.test(item.align[i])) { item.align[i] = 'right'; } else if (/^ *:-+: *$/.test(item.align[i])) { item.align[i] = 'center'; } else if (/^ *:-+ *$/.test(item.align[i])) { item.align[i] = 'left'; } else { item.align[i] = null; } } for (i = 0; i < item.cells.length; i++) { item.cells[i] = item.cells[i].split(/ *\| */); } this.tokens.push(item); continue; } // lheading if (cap = this.rules.lheading.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({ type: 'heading', depth: cap[2] === '=' ? 1 : 2, text: cap[1] }); continue; } // hr if (cap = this.rules.hr.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({ type: 'hr' }); continue; } // blockquote if (cap = this.rules.blockquote.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({ type: 'blockquote_start' }); cap = cap[0].replace(/^ *> ?/gm, ''); // Pass `top` to keep the current // "toplevel" state. This is exactly // how markdown.pl works. this.token(cap, top, true); this.tokens.push({ type: 'blockquote_end' }); continue; } // list if (cap = this.rules.list.exec(src)) { src = src.substring(cap[0].length); bull = cap[2]; this.tokens.push({ type: 'list_start', ordered: bull.length > 1 }); // Get each top-level item. cap = cap[0].match(this.rules.item); next = false; l = cap.length; i = 0; for (; i < l; i++) { item = cap[i]; // Remove the list item's bullet // so it is seen as the next token. space = item.length; item = item.replace(/^ *([*+-]|\d+\.) +/, ''); // Outdent whatever the // list item contains. Hacky. if (~item.indexOf('\n ')) { space -= item.length; item = !this.options.pedantic ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '') : item.replace(/^ {1,4}/gm, ''); } // Determine whether the next list item belongs here. // Backpedal if it does not belong in this list. if (this.options.smartLists && i !== l - 1) { b = block.bullet.exec(cap[i + 1])[0]; if (bull !== b && !(bull.length > 1 && b.length > 1)) { src = cap.slice(i + 1).join('\n') + src; i = l - 1; } } // Determine whether item is loose or not. // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/ // for discount behavior. loose = next || /\n\n(?!\s*$)/.test(item); if (i !== l - 1) { next = item.charAt(item.length - 1) === '\n'; if (!loose) loose = next; } this.tokens.push({ type: loose ? 'loose_item_start' : 'list_item_start' }); // Recurse. this.token(item, false, bq); this.tokens.push({ type: 'list_item_end' }); } this.tokens.push({ type: 'list_end' }); continue; } // html if (cap = this.rules.html.exec(src)) { src = src.substring(cap[0].length); this.tokens.push({ type: this.options.sanitize ? 'paragraph' : 'html', pre: !this.options.sanitizer && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'), text: cap[0] }); continue; } // def if ((!bq && top) && (cap = this.rules.def.exec(src))) { src = src.substring(cap[0].length); this.tokens.links[cap[1].toLowerCase()] = { href: cap[2], title: cap[3] }; continue; } // table (gfm) if (top && (cap = this.rules.table.exec(src))) { src = src.substring(cap[0].length); item = { type: 'table', header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */), align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), cells: cap[3].replace(/(?: *\| *)?\n$/, '').split('\n') }; for (i = 0; i < item.align.length; i++) { if (/^ *-+: *$/.test(item.align[i])) { item.align[i] = 'right'; } else if (/^ *:-+: *$/.test(item.align[i])) { item.align[i] = 'center'; } else if (/^ *:-+ *$/.test(item.align[i])) { item.align[i] = 'left'; } else { item.align[i] = null; } } for (i = 0; i < item.cells.length; i++) { item.cells[i] = item.cells[i] .replace(/^ *\| *| *\| *$/g, '') .split(/ *\| */); } this.tokens.push(item); continue; } // top-level paragraph if (top && (cap = this.rules.paragraph.exec(src))) { src = src.substring(cap[0].length); this.tokens.push({ type: 'paragraph', text: cap[1].charAt(cap[1].length - 1) === '\n' ? cap[1].slice(0, -1) : cap[1] }); continue; } // text if (cap = this.rules.text.exec(src)) { // Top-level should never reach here. src = src.substring(cap[0].length); this.tokens.push({ type: 'text', text: cap[0] }); continue; } if (src) { throw new Error('Infinite loop on byte: ' + src.charCodeAt(0)); } } return this.tokens; }; /** * Inline-Level Grammar */ var inline = { escape: /^\\([\\`*{}\[\]()#+\-.!_>])/, autolink: /^<([^ >]+(@|:\/)[^ >]+)>/, url: noop, tag: /^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/, link: /^!?\[(inside)\]\(href\)/, reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/, nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/, strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/, em: /^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, code: /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/, br: /^ {2,}\n(?!\s*$)/, del: noop, text: /^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/; inline.link = replace(inline.link) ('inside', inline._inside) ('href', inline._href) (); inline.reflink = replace(inline.reflink) ('inside', inline._inside) (); /** * Normal Inline Grammar */ inline.normal = merge({}, inline); /** * Pedantic Inline Grammar */ inline.pedantic = merge({}, inline.normal, { strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/, em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/ }); /** * GFM Inline Grammar */ inline.gfm = merge({}, inline.normal, { escape: replace(inline.escape)('])', '~|])')(), url: /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/, del: /^~~(?=\S)([\s\S]*?\S)~~/, text: replace(inline.text) (']|', '~]|') ('|', '|https?://|') () }); /** * GFM + Line Breaks Inline Grammar */ inline.breaks = merge({}, inline.gfm, { br: replace(inline.br)('{2,}', '*')(), text: replace(inline.gfm.text)('{2,}', '*')() }); /** * Inline Lexer & Compiler */ function InlineLexer(links, options) { this.options = options || marked.defaults; this.links = links; this.rules = inline.normal; this.renderer = this.options.renderer || new Renderer; this.renderer.options = this.options; if (!this.links) { throw new Error('Tokens array requires a `links` property.'); } if (this.options.gfm) { if (this.options.breaks) { this.rules = inline.breaks; } else { this.rules = inline.gfm; } } else if (this.options.pedantic) { this.rules = inline.pedantic; } } /** * Expose Inline Rules */ InlineLexer.rules = inline; /** * Static Lexing/Compiling Method */ InlineLexer.output = function(src, links, options) { var inline = new InlineLexer(links, options); return inline.output(src); }; /** * Lexing/Compiling */ InlineLexer.prototype.output = function(src) { var out = '' , link , text , href , cap; while (src) { // escape if (cap = this.rules.escape.exec(src)) { src = src.substring(cap[0].length); out += cap[1]; continue; } // autolink if (cap = this.rules.autolink.exec(src)) { src = src.substring(cap[0].length); if (cap[2] === '@') { text = cap[1].charAt(6) === ':' ? this.mangle(cap[1].substring(7)) : this.mangle(cap[1]); href = this.mangle('mailto:') + text; } else { text = escape(cap[1]); href = text; } out += this.renderer.link(href, null, text); continue; } // url (gfm) if (!this.inLink && (cap = this.rules.url.exec(src))) { src = src.substring(cap[0].length); text = escape(cap[1]); href = text; out += this.renderer.link(href, null, text); continue; } // tag if (cap = this.rules.tag.exec(src)) { if (!this.inLink && /^/i.test(cap[0])) { this.inLink = false; } src = src.substring(cap[0].length); out += this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]) : cap[0] continue; } // link if (cap = this.rules.link.exec(src)) { src = src.substring(cap[0].length); this.inLink = true; out += this.outputLink(cap, { href: cap[2], title: cap[3] }); this.inLink = false; continue; } // reflink, nolink if ((cap = this.rules.reflink.exec(src)) || (cap = this.rules.nolink.exec(src))) { src = src.substring(cap[0].length); link = (cap[2] || cap[1]).replace(/\s+/g, ' '); link = this.links[link.toLowerCase()]; if (!link || !link.href) { out += cap[0].charAt(0); src = cap[0].substring(1) + src; continue; } this.inLink = true; out += this.outputLink(cap, link); this.inLink = false; continue; } // strong if (cap = this.rules.strong.exec(src)) { src = src.substring(cap[0].length); out += this.renderer.strong(this.output(cap[2] || cap[1])); continue; } // em if (cap = this.rules.em.exec(src)) { src = src.substring(cap[0].length); out += this.renderer.em(this.output(cap[2] || cap[1])); continue; } // code if (cap = this.rules.code.exec(src)) { src = src.substring(cap[0].length); out += this.renderer.codespan(escape(cap[2], true)); continue; } // br if (cap = this.rules.br.exec(src)) { src = src.substring(cap[0].length); out += this.renderer.br(); continue; } // del (gfm) if (cap = this.rules.del.exec(src)) { src = src.substring(cap[0].length); out += this.renderer.del(this.output(cap[1])); continue; } // text if (cap = this.rules.text.exec(src)) { src = src.substring(cap[0].length); out += this.renderer.text(escape(this.smartypants(cap[0]))); continue; } if (src) { throw new Error('Infinite loop on byte: ' + src.charCodeAt(0)); } } return out; }; /** * Compile Link */ InlineLexer.prototype.outputLink = function(cap, link) { var href = escape(link.href) , title = link.title ? escape(link.title) : null; return cap[0].charAt(0) !== '!' ? this.renderer.link(href, title, this.output(cap[1])) : this.renderer.image(href, title, escape(cap[1])); }; /** * Smartypants Transformations */ InlineLexer.prototype.smartypants = function(text) { if (!this.options.smartypants) return text; return text // em-dashes .replace(/---/g, '\u2014') // en-dashes .replace(/--/g, '\u2013') // opening singles .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018') // closing singles & apostrophes .replace(/'/g, '\u2019') // opening doubles .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c') // closing doubles .replace(/"/g, '\u201d') // ellipses .replace(/\.{3}/g, '\u2026'); }; /** * Mangle Links */ InlineLexer.prototype.mangle = function(text) { if (!this.options.mangle) return text; var out = '' , l = text.length , i = 0 , ch; for (; i < l; i++) { ch = text.charCodeAt(i); if (Math.random() > 0.5) { ch = 'x' + ch.toString(16); } out += '&#' + ch + ';'; } return out; }; /** * Renderer */ function Renderer(options) { this.options = options || {}; } Renderer.prototype.code = function(code, lang, escaped) { if (this.options.highlight) { var out = this.options.highlight(code, lang); if (out != null && out !== code) { escaped = true; code = out; } } if (!lang) { return '
'
	      + (escaped ? code : escape(code, true))
	      + '\n
'; } return '
'
	    + (escaped ? code : escape(code, true))
	    + '\n
\n'; }; Renderer.prototype.blockquote = function(quote) { return '
\n' + quote + '
\n'; }; Renderer.prototype.html = function(html) { return html; }; Renderer.prototype.heading = function(text, level, raw) { return '' + text + '\n'; }; Renderer.prototype.hr = function() { return this.options.xhtml ? '
\n' : '
\n'; }; Renderer.prototype.list = function(body, ordered) { var type = ordered ? 'ol' : 'ul'; return '<' + type + '>\n' + body + '\n'; }; Renderer.prototype.listitem = function(text) { return '
  • ' + text + '
  • \n'; }; Renderer.prototype.paragraph = function(text) { return '

    ' + text + '

    \n'; }; Renderer.prototype.table = function(header, body) { return '\n' + '\n' + header + '\n' + '\n' + body + '\n' + '
    \n'; }; Renderer.prototype.tablerow = function(content) { return '\n' + content + '\n'; }; Renderer.prototype.tablecell = function(content, flags) { var type = flags.header ? 'th' : 'td'; var tag = flags.align ? '<' + type + ' style="text-align:' + flags.align + '">' : '<' + type + '>'; return tag + content + '\n'; }; // span level renderer Renderer.prototype.strong = function(text) { return '' + text + ''; }; Renderer.prototype.em = function(text) { return '' + text + ''; }; Renderer.prototype.codespan = function(text) { return '' + text + ''; }; Renderer.prototype.br = function() { return this.options.xhtml ? '
    ' : '
    '; }; Renderer.prototype.del = function(text) { return '' + text + ''; }; Renderer.prototype.link = function(href, title, text) { if (this.options.sanitize) { try { var prot = decodeURIComponent(unescape(href)) .replace(/[^\w:]/g, '') .toLowerCase(); } catch (e) { return ''; } if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0) { return ''; } } var out = '
    '; return out; }; Renderer.prototype.image = function(href, title, text) { var out = '' + text + '' : '>'; return out; }; Renderer.prototype.text = function(text) { return text; }; /** * Parsing & Compiling */ function Parser(options) { this.tokens = []; this.token = null; this.options = options || marked.defaults; this.options.renderer = this.options.renderer || new Renderer; this.renderer = this.options.renderer; this.renderer.options = this.options; } /** * Static Parse Method */ Parser.parse = function(src, options, renderer) { var parser = new Parser(options, renderer); return parser.parse(src); }; /** * Parse Loop */ Parser.prototype.parse = function(src) { this.inline = new InlineLexer(src.links, this.options, this.renderer); this.tokens = src.reverse(); var out = ''; while (this.next()) { out += this.tok(); } return out; }; /** * Next Token */ Parser.prototype.next = function() { return this.token = this.tokens.pop(); }; /** * Preview Next Token */ Parser.prototype.peek = function() { return this.tokens[this.tokens.length - 1] || 0; }; /** * Parse Text Tokens */ Parser.prototype.parseText = function() { var body = this.token.text; while (this.peek().type === 'text') { body += '\n' + this.next().text; } return this.inline.output(body); }; /** * Parse Current Token */ Parser.prototype.tok = function() { switch (this.token.type) { case 'space': { return ''; } case 'hr': { return this.renderer.hr(); } case 'heading': { return this.renderer.heading( this.inline.output(this.token.text), this.token.depth, this.token.text); } case 'code': { return this.renderer.code(this.token.text, this.token.lang, this.token.escaped); } case 'table': { var header = '' , body = '' , i , row , cell , flags , j; // header cell = ''; for (i = 0; i < this.token.header.length; i++) { flags = { header: true, align: this.token.align[i] }; cell += this.renderer.tablecell( this.inline.output(this.token.header[i]), { header: true, align: this.token.align[i] } ); } header += this.renderer.tablerow(cell); for (i = 0; i < this.token.cells.length; i++) { row = this.token.cells[i]; cell = ''; for (j = 0; j < row.length; j++) { cell += this.renderer.tablecell( this.inline.output(row[j]), { header: false, align: this.token.align[j] } ); } body += this.renderer.tablerow(cell); } return this.renderer.table(header, body); } case 'blockquote_start': { var body = ''; while (this.next().type !== 'blockquote_end') { body += this.tok(); } return this.renderer.blockquote(body); } case 'list_start': { var body = '' , ordered = this.token.ordered; while (this.next().type !== 'list_end') { body += this.tok(); } return this.renderer.list(body, ordered); } case 'list_item_start': { var body = ''; while (this.next().type !== 'list_item_end') { body += this.token.type === 'text' ? this.parseText() : this.tok(); } return this.renderer.listitem(body); } case 'loose_item_start': { var body = ''; while (this.next().type !== 'list_item_end') { body += this.tok(); } return this.renderer.listitem(body); } case 'html': { var html = !this.token.pre && !this.options.pedantic ? this.inline.output(this.token.text) : this.token.text; return this.renderer.html(html); } case 'paragraph': { return this.renderer.paragraph(this.inline.output(this.token.text)); } case 'text': { return this.renderer.paragraph(this.parseText()); } } }; /** * Helpers */ function escape(html, encode) { return html .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, '''); } function unescape(html) { // explicitly match decimal, hex, and named HTML entities return html.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g, function(_, n) { n = n.toLowerCase(); if (n === 'colon') return ':'; if (n.charAt(0) === '#') { return n.charAt(1) === 'x' ? String.fromCharCode(parseInt(n.substring(2), 16)) : String.fromCharCode(+n.substring(1)); } return ''; }); } function replace(regex, opt) { regex = regex.source; opt = opt || ''; return function self(name, val) { if (!name) return new RegExp(regex, opt); val = val.source || val; val = val.replace(/(^|[^\[])\^/g, '$1'); regex = regex.replace(name, val); return self; }; } function noop() {} noop.exec = noop; function merge(obj) { var i = 1 , target , key; for (; i < arguments.length; i++) { target = arguments[i]; for (key in target) { if (Object.prototype.hasOwnProperty.call(target, key)) { obj[key] = target[key]; } } } return obj; } /** * Marked */ function marked(src, opt, callback) { if (callback || typeof opt === 'function') { if (!callback) { callback = opt; opt = null; } opt = merge({}, marked.defaults, opt || {}); var highlight = opt.highlight , tokens , pending , i = 0; try { tokens = Lexer.lex(src, opt) } catch (e) { return callback(e); } pending = tokens.length; var done = function(err) { if (err) { opt.highlight = highlight; return callback(err); } var out; try { out = Parser.parse(tokens, opt); } catch (e) { err = e; } opt.highlight = highlight; return err ? callback(err) : callback(null, out); }; if (!highlight || highlight.length < 3) { return done(); } delete opt.highlight; if (!pending) return done(); for (; i < tokens.length; i++) { (function(token) { if (token.type !== 'code') { return --pending || done(); } return highlight(token.text, token.lang, function(err, code) { if (err) return done(err); if (code == null || code === token.text) { return --pending || done(); } token.text = code; token.escaped = true; --pending || done(); }); })(tokens[i]); } return; } try { if (opt) opt = merge({}, marked.defaults, opt); return Parser.parse(Lexer.lex(src, opt), opt); } catch (e) { e.message += '\nPlease report this to https://github.com/chjj/marked.'; if ((opt || marked.defaults).silent) { return '

    An error occured:

    '
    	        + escape(e.message + '', true)
    	        + '
    '; } throw e; } } /** * Options */ marked.options = marked.setOptions = function(opt) { merge(marked.defaults, opt); return marked; }; marked.defaults = { gfm: true, tables: true, breaks: false, pedantic: false, sanitize: false, sanitizer: null, mangle: true, smartLists: false, silent: false, highlight: null, langPrefix: 'lang-', smartypants: false, headerPrefix: '', renderer: new Renderer, xhtml: false }; /** * Expose */ marked.Parser = Parser; marked.parser = Parser.parse; marked.Renderer = Renderer; marked.Lexer = Lexer; marked.lexer = Lexer.lex; marked.InlineLexer = InlineLexer; marked.inlineLexer = InlineLexer.output; marked.parse = marked; if (true) { module.exports = marked; } else if (typeof define === 'function' && define.amd) { define(function() { return marked; }); } else { this.marked = marked; } }).call(function() { return this || (typeof window !== 'undefined' ? window : global); }()); /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) /***/ }, /* 8 */ /***/ function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a