mirror of
https://github.com/zhigang1992/docz.git
synced 2026-05-12 21:58:15 +08:00
feat: refac to use mdx
This commit is contained in:
14
examples/basic/src/index.mdx
Normal file
14
examples/basic/src/index.mdx
Normal file
@@ -0,0 +1,14 @@
|
||||
import { doc } from 'docz'
|
||||
|
||||
export const meta = doc('Overview')
|
||||
.route('/')
|
||||
.order(1)
|
||||
|
||||
## Introduction Hello
|
||||
A design system can help establish a common vocabulary between everyone in an organization. That’s why I’ve spent a great deal of time coming up with structure and naming for Vue Design System that would make sense. To start opening it up, let’s go through each layer in detail and what the terms mean:
|
||||
|
||||
- *Principles* are the foundation of the whole system. They form the basis of a good product and help the team with decision making. They are there to guide you and your team when working with the myriad parts of the system and help you do better and more informed decisions.
|
||||
- *Design* Tokens are the atoms of the system as Salesforce describes them. In Vue Design System they are used instead of hard coded values to ensure a better consistency across any platform.
|
||||
- *Elements* utilize decisions made on the token level. A simple example of an element would be a button, a link, or an input. Anything that cannot be broken down further. I use the name ‘element’ since everything in Vue and React world is nowadays ‘a component.’ Using that term for anything else would be confusing.
|
||||
- *Patterns* are UI Patterns that fall on the more complex side of the spectrum. So for example things like a date picker, a data table, or a visualization. Patterns utilize both elements and tokens. If you wonder whether something should be called an element or a pattern, ask yourself this question: “Can this be broken down into smaller pieces?” If the answer is yes, it should most likely be a pattern in Vue Design System.
|
||||
- *Templates* exist to document the layout and structure of a section. I am not calling these pages since semantically that would be incorrect. While they can be pages, that’s not their only functionality. Templates consist of the three things mentioned above: tokens, elements, and patterns.
|
||||
@@ -21,16 +21,14 @@
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.0.0-beta.44",
|
||||
"@babel/runtime": "^7.0.0-beta.44",
|
||||
"@mdx-js/loader": "^0.8.0",
|
||||
"@mdx-js/mdx": "^0.8.0",
|
||||
"@mdx-js/loader": "^0.8.1",
|
||||
"@mdx-js/mdx": "^0.8.1",
|
||||
"@mdx-js/mdxast": "^0.7.2",
|
||||
"@sindresorhus/slugify": "^0.3.0",
|
||||
"art-template": "^4.12.2",
|
||||
"babel-file-loader": "^1.0.3",
|
||||
"babel-generator": "^6.26.1",
|
||||
"babel-loader": "^8.0.0-beta.1",
|
||||
"babel-polyfill": "^7.0.0-beta.3",
|
||||
"babel-preset-react-app": "^4.0.0-next.b2fd8db8",
|
||||
"babel-traverse": "^6.26.0",
|
||||
"babel-types": "^6.26.0",
|
||||
"chokidar": "^2.0.3",
|
||||
"deepmerge": "^2.1.0",
|
||||
"del": "3.0.0",
|
||||
@@ -46,11 +44,14 @@
|
||||
"prettier": "^1.12.0",
|
||||
"react-dev-utils": "^5.0.1",
|
||||
"react-hot-loader": "^4.0.1",
|
||||
"remark-parse": "^5.0.0",
|
||||
"resolve": "^1.7.1",
|
||||
"socket.io": "^2.1.0",
|
||||
"thread-loader": "^1.1.5",
|
||||
"ulid": "^2.3.0",
|
||||
"unified": "^6.2.0",
|
||||
"url-loader": "^1.0.1",
|
||||
"webpack": "^4.5.0",
|
||||
"webpack": "^4.7.0",
|
||||
"webpack-chain": "^4.6.0",
|
||||
"webpack-dev-middleware": "^3.1.2",
|
||||
"webpack-dev-server-speedy": "^3.1.1",
|
||||
@@ -58,21 +59,20 @@
|
||||
"yargs": "^11.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/babel-traverse": "^6.25.3",
|
||||
"@types/bcryptjs": "^2.4.1",
|
||||
"@types/chokidar": "^1.7.5",
|
||||
"@types/deepmerge": "^2.1.0",
|
||||
"@types/del": "^3.0.1",
|
||||
"@types/express": "^4.11.1",
|
||||
"@types/html-webpack-plugin": "^2.30.3",
|
||||
"@types/mkdirp": "^0.5.2",
|
||||
"@types/node": "10.0.0",
|
||||
"@types/prettier": "^1.12.0",
|
||||
"@types/node": "10.0.4",
|
||||
"@types/prettier": "^1.12.1",
|
||||
"@types/resolve": "^0.0.7",
|
||||
"@types/webpack": "^4.1.3",
|
||||
"@types/webpack-chain": "^4.0.2",
|
||||
"@types/yargs": "^11.0.0",
|
||||
"rollup-plugin-cpy": "^1.0.0",
|
||||
"tslint": "^5.10.0",
|
||||
"typescript": "^2.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ const touch = (file: string, raw: string) => {
|
||||
const compiled = (file: string) =>
|
||||
compile(fs.readFileSync(path.join(paths.templates, file), 'utf-8'))
|
||||
|
||||
const docs = compiled('docs.tpl.js')
|
||||
const app = compiled('app.tpl.js')
|
||||
const js = compiled('index.tpl.js')
|
||||
const html = compiled('index.tpl.html')
|
||||
@@ -54,35 +55,6 @@ export class Entries {
|
||||
.map(file => new Entry(file, config.src))
|
||||
}
|
||||
|
||||
public find(file: string): Entry | undefined {
|
||||
return this.entries.find(entry => entry.filepath === file)
|
||||
}
|
||||
|
||||
public findIndex(file: string): number {
|
||||
return this.entries.findIndex(entry => entry.filepath === file)
|
||||
}
|
||||
|
||||
public add(entry: Entry): void {
|
||||
this.entries.push(entry)
|
||||
}
|
||||
|
||||
public remove(file: string): void {
|
||||
const idx = this.findIndex(file)
|
||||
|
||||
if (idx > -1) {
|
||||
this.entries.splice(idx, 1)
|
||||
}
|
||||
}
|
||||
|
||||
public update(file: string): void {
|
||||
const idx = this.findIndex(file)
|
||||
const entry = new Entry(file, this.config.src)
|
||||
|
||||
if (idx > -1) {
|
||||
this.entries.splice(idx, 1, entry)
|
||||
}
|
||||
}
|
||||
|
||||
public write(): void {
|
||||
const { plugins, title, description, theme } = this.config
|
||||
|
||||
@@ -96,8 +68,11 @@ export class Entries {
|
||||
description,
|
||||
})
|
||||
|
||||
const rawAppJs = app({
|
||||
const rawDocsJs = docs({
|
||||
imports,
|
||||
})
|
||||
|
||||
const rawAppJs = app({
|
||||
theme,
|
||||
wrappers,
|
||||
})
|
||||
@@ -109,6 +84,7 @@ export class Entries {
|
||||
|
||||
touch(paths.indexHtml, rawIndexHtml)
|
||||
touch(paths.appJs, rawAppJs)
|
||||
touch(paths.docsJs, rawDocsJs)
|
||||
touch(paths.indexJs, rawIndexJs)
|
||||
|
||||
touch(
|
||||
|
||||
@@ -1,50 +1,48 @@
|
||||
import * as fs from 'fs'
|
||||
import * as path from 'path'
|
||||
import * as t from 'babel-types'
|
||||
import { ulid } from 'ulid'
|
||||
import { NodePath } from 'babel-traverse'
|
||||
import generate from 'babel-generator'
|
||||
import get from 'lodash.get'
|
||||
import unified from 'unified'
|
||||
import remark from 'remark-parse'
|
||||
import toMDXAST from '@mdx-js/mdxast'
|
||||
import slugify from '@sindresorhus/slugify'
|
||||
|
||||
import * as paths from './config/paths'
|
||||
import { format } from './utils/format'
|
||||
import { traverseAndAssign, traverseAndAssignEach } from './utils/traverse'
|
||||
|
||||
const hasImport = (p: NodePath<any>): boolean =>
|
||||
t.isImportDeclaration(p) && get(p, 'node.source.value') === `docz`
|
||||
const parseMdx = (file: string) => {
|
||||
const raw = fs.readFileSync(file, 'utf-8')
|
||||
const tree = unified()
|
||||
.use(remark)
|
||||
.parse(raw)
|
||||
|
||||
const hasDocFn = (p: NodePath<any>): boolean =>
|
||||
p.node.specifiers &&
|
||||
p.node.specifiers.some(
|
||||
(node: NodePath<any>) =>
|
||||
t.isImportSpecifier(node) && node.imported.name === 'doc'
|
||||
return toMDXAST({})(tree)
|
||||
}
|
||||
|
||||
const checkImport = (file: string) => {
|
||||
const ast = parseMdx(file)
|
||||
|
||||
return (
|
||||
ast.children &&
|
||||
ast.children.some(
|
||||
(child: any) => child.type === 'import' && /docz/.test(child.value)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
const checkImport = traverseAndAssign<NodePath<t.Node>, boolean>({
|
||||
when: p => hasImport(p) && hasDocFn(p),
|
||||
assign: () => true,
|
||||
})
|
||||
const getNameFromDoc = (file: string) => {
|
||||
const ast = parseMdx(file)
|
||||
const found =
|
||||
ast.children &&
|
||||
ast.children.find(
|
||||
(child: any) =>
|
||||
child &&
|
||||
child.type === 'export' &&
|
||||
/export const meta/.test(child.value) &&
|
||||
/doc\(.+\)/.test(child.value)
|
||||
)
|
||||
|
||||
const getNameFromDoc = traverseAndAssign<any, string>({
|
||||
when: p => p.isCallExpression() && get(p, 'node.callee.name') === 'doc',
|
||||
assign: p => get(p, 'node.arguments[0].value'),
|
||||
})
|
||||
|
||||
const parseSections = traverseAndAssignEach<NodePath<t.Node>, string[]>({
|
||||
when: 'MemberExpression',
|
||||
assign: p => {
|
||||
const name = get(p, 'node.property.name')
|
||||
const args = get(p, 'parentPath.node.arguments')
|
||||
|
||||
if (name === 'section' && args && args.length > 0) {
|
||||
for (const arg of args) {
|
||||
if (arg.type !== 'StringLiteral') {
|
||||
const { code } = generate(arg.body)
|
||||
return format(code).slice(1, Infinity) as any
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
})
|
||||
const name = found.value.match(/(doc\()(.+)(\))/)
|
||||
return slugify(name[2])
|
||||
}
|
||||
|
||||
export class Entry {
|
||||
readonly [key: string]: any
|
||||
@@ -57,15 +55,9 @@ export class Entry {
|
||||
return getNameFromDoc(file)
|
||||
}
|
||||
|
||||
public static parseSections(file: string): string[] | null {
|
||||
const sections = parseSections(file)
|
||||
return sections && sections.reverse()
|
||||
}
|
||||
|
||||
public id: string
|
||||
public filepath: string
|
||||
public name: string | null
|
||||
public sections: string[] | null
|
||||
|
||||
constructor(file: string, src: string) {
|
||||
const filepath = path.relative(paths.root, file)
|
||||
@@ -73,6 +65,5 @@ export class Entry {
|
||||
this.id = ulid()
|
||||
this.filepath = filepath
|
||||
this.name = Entry.parseName(file)
|
||||
this.sections = Entry.parseSections(file)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,13 +24,6 @@ export interface Config extends Argv {
|
||||
hastPlugins: any[]
|
||||
}
|
||||
|
||||
const EXTS = '{j,t}{s,sx}'
|
||||
const DEFAULT_FILES_GLOB = [
|
||||
`docs/**.${EXTS}`,
|
||||
`**/__docs__/*.${EXTS}`,
|
||||
`**/*.doc.${EXTS}`,
|
||||
]
|
||||
|
||||
export const args = (yargs: any) => {
|
||||
yargs.positional('source', {
|
||||
alias: 'src',
|
||||
@@ -39,7 +32,7 @@ export const args = (yargs: any) => {
|
||||
})
|
||||
yargs.positional('files', {
|
||||
type: 'string',
|
||||
default: DEFAULT_FILES_GLOB,
|
||||
default: '**/*.mdx',
|
||||
})
|
||||
yargs.positional('title', {
|
||||
type: 'string',
|
||||
|
||||
@@ -1,46 +1,15 @@
|
||||
import { load } from 'load-cfg'
|
||||
import { FSWatcher } from 'chokidar'
|
||||
import * as chokidar from 'chokidar'
|
||||
import del from 'del'
|
||||
|
||||
import * as paths from '../config/paths'
|
||||
|
||||
import { Entry } from '../Entry'
|
||||
import { Entries } from '../Entries'
|
||||
import { Bundler } from '../Bundler'
|
||||
|
||||
import { webpack } from '../bundlers'
|
||||
import { Config } from './args'
|
||||
|
||||
process.env.BABEL_ENV = process.env.BABEL_ENV || 'development'
|
||||
process.env.NODE_ENV = process.env.NODE_ENV || 'development'
|
||||
|
||||
const writeEntriesAndWatch = (watcher: FSWatcher) => (config: Config) => {
|
||||
const entries = new Entries(config)
|
||||
const update = () => entries.write()
|
||||
|
||||
const onUnlink = (file: string) => {
|
||||
entries.remove(file)
|
||||
update()
|
||||
}
|
||||
|
||||
const onChange = (file: string) => {
|
||||
const name = Entry.parseName(file)
|
||||
const entry = entries.find(file)
|
||||
|
||||
if (name) {
|
||||
!entry && entries.add(new Entry(file, config.src))
|
||||
entry && entries.update(file)
|
||||
update()
|
||||
}
|
||||
}
|
||||
|
||||
watcher.on('unlink', onUnlink)
|
||||
watcher.on('change', onChange)
|
||||
|
||||
update()
|
||||
}
|
||||
|
||||
const start = async (bundler: Bundler): Promise<void> => {
|
||||
const config = bundler.getConfig()
|
||||
const server = await bundler.createServer(config)
|
||||
@@ -58,13 +27,9 @@ const INITIAL_CONFIG = {
|
||||
export const dev = async (args: Config) => {
|
||||
const config = load('docz', { ...args, ...INITIAL_CONFIG })
|
||||
const bundler = webpack(config)
|
||||
const watcher = chokidar.watch(config.files, {
|
||||
ignored: /(^|[\/\\])\../,
|
||||
})
|
||||
|
||||
const writeEntries = writeEntriesAndWatch(watcher)
|
||||
const entries = new Entries(config)
|
||||
|
||||
await del(paths.docz)
|
||||
writeEntries(config)
|
||||
entries.write()
|
||||
start(bundler)
|
||||
}
|
||||
|
||||
@@ -38,6 +38,7 @@ export interface Paths {
|
||||
dist: string
|
||||
templates: string
|
||||
appJs: string
|
||||
docsJs: string
|
||||
indexJs: string
|
||||
dataJson: string
|
||||
indexHtml: string
|
||||
@@ -52,7 +53,7 @@ export const servedPath = getServedPath(resolveApp('package.json'))
|
||||
export const dist = path.resolve(docz, 'dist/')
|
||||
|
||||
export const appJs = path.resolve(docz, 'app.jsx')
|
||||
export const docsJs = path.resolve(docz, 'docs.jsx')
|
||||
export const indexJs = path.resolve(docz, 'index.jsx')
|
||||
export const dataJson = path.resolve(docz, 'data.json')
|
||||
|
||||
export const indexHtml = path.resolve(docz, 'index.html')
|
||||
|
||||
7
packages/docz-core/src/types.d.ts
vendored
7
packages/docz-core/src/types.d.ts
vendored
@@ -1,6 +1,9 @@
|
||||
declare module '@mdx-js/mdxast'
|
||||
declare module '@mdx-js/mdx'
|
||||
declare module '@sindresorhus/slugify'
|
||||
declare module 'unified'
|
||||
declare module 'remark-parse'
|
||||
declare module 'art-template'
|
||||
declare module 'babel-file-loader'
|
||||
declare module 'babel-generator'
|
||||
declare module 'friendly-errors-webpack-plugin'
|
||||
declare module 'json-stringify-pretty-compact'
|
||||
declare module 'lodash.get'
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
import { loadFileSync } from 'babel-file-loader'
|
||||
|
||||
export type AssignFn<P, V> = (path: P) => V
|
||||
export type WhenFn<P> = (path: P) => boolean
|
||||
|
||||
export type TraverseReturn<V> = (filepath: string) => V | null
|
||||
|
||||
export interface TraverseAndAssign<P, V> {
|
||||
assign: AssignFn<P, V>
|
||||
when: WhenFn<P>
|
||||
}
|
||||
|
||||
export function traverseAndAssign<P = any, V = any>({
|
||||
assign,
|
||||
when,
|
||||
}: TraverseAndAssign<P, V>): TraverseReturn<V> {
|
||||
return filepath => {
|
||||
// tslint:disable
|
||||
let value = null
|
||||
|
||||
try {
|
||||
const file = loadFileSync(filepath)
|
||||
|
||||
file.path.traverse({
|
||||
enter(path: any) {
|
||||
if (when(path)) {
|
||||
value = assign(path)
|
||||
path.stop()
|
||||
}
|
||||
},
|
||||
})
|
||||
} finally {
|
||||
return value
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export interface TraverseAndAssignEach<P, V> {
|
||||
assign: AssignFn<P, V>
|
||||
when: string
|
||||
}
|
||||
|
||||
export function traverseAndAssignEach<P = any, V = any>({
|
||||
assign,
|
||||
when,
|
||||
}: TraverseAndAssignEach<P, V>): TraverseReturn<V> {
|
||||
return filepath => {
|
||||
// tslint:disable
|
||||
let value: any = []
|
||||
|
||||
try {
|
||||
const file = loadFileSync(filepath)
|
||||
|
||||
file.path.traverse({
|
||||
[when](path: any) {
|
||||
const result = assign(path)
|
||||
result && value.push(result)
|
||||
},
|
||||
})
|
||||
} finally {
|
||||
return value
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,7 @@
|
||||
<% imports.forEach(imp => { %>import '<%- imp %>'
|
||||
<% }) %>
|
||||
import React from 'react'
|
||||
import { hot } from 'react-hot-loader'
|
||||
import { Theme } from '<%- theme %>'
|
||||
import data from './data.json'
|
||||
import { Docs } from './docs'
|
||||
|
||||
const _wrappers = [<% if (wrappers) {%><%- wrappers %><%}%>]
|
||||
|
||||
@@ -18,7 +16,9 @@ const Wrapper = props =>
|
||||
|
||||
const App = () => (
|
||||
<Wrapper>
|
||||
<Theme entries={data.entries} />
|
||||
<Docs>
|
||||
{(docs) => <Theme docs={docs} />}
|
||||
</Docs>
|
||||
</Wrapper>
|
||||
)
|
||||
|
||||
|
||||
36
packages/docz-core/templates/docs.tpl.js
Normal file
36
packages/docz-core/templates/docs.tpl.js
Normal file
@@ -0,0 +1,36 @@
|
||||
import React, { Component } from 'react'
|
||||
import data from './data.json'
|
||||
|
||||
const mergeDocsWithEntries = (docs, entries) =>
|
||||
docs
|
||||
.map(doc => {
|
||||
const Component = doc.default
|
||||
const instance = doc.meta.findEntryAndMerge(entries)
|
||||
|
||||
return instance.toObject(Component)
|
||||
})
|
||||
.sort((docA, docB) => docB.order - docA.order)
|
||||
|
||||
export class Docs extends Component {
|
||||
state = {
|
||||
docs: [],
|
||||
}
|
||||
|
||||
importDocs = async () => {
|
||||
const docs = await Promise.all([<%imports.forEach((imp, index) => { %>
|
||||
import('<%- imp %>'),<% }) %>
|
||||
])
|
||||
|
||||
this.setState({
|
||||
docs: mergeDocsWithEntries(docs, data.entries)
|
||||
})
|
||||
}
|
||||
|
||||
async componentDidMount() {
|
||||
await this.importDocs()
|
||||
}
|
||||
|
||||
render() {
|
||||
return this.props.children(this.state.docs)
|
||||
}
|
||||
}
|
||||
@@ -16,12 +16,10 @@
|
||||
"build": "libundler build --ts -e all --c --sm"
|
||||
},
|
||||
"dependencies": {
|
||||
"classnames": "^2.2.5",
|
||||
"docz": "^0.0.1",
|
||||
"emotion": "^9.1.2",
|
||||
"emotion-normalize": "^7.0.1",
|
||||
"history": "^4.7.2",
|
||||
"prismjs": "^1.14.0",
|
||||
"react": "^16.3.2",
|
||||
"react-dom": "^16.3.2",
|
||||
"react-emotion": "^9.1.2",
|
||||
@@ -39,8 +37,6 @@
|
||||
"@babel/plugin-proposal-class-properties": "^7.0.0-beta.44",
|
||||
"@babel/preset-env": "^7.0.0-beta.44",
|
||||
"@babel/preset-react": "^7.0.0-beta.44",
|
||||
"@types/classnames": "^2.2.3",
|
||||
"@types/prismjs": "^1.9.0",
|
||||
"@types/react-router-dom": "^4.2.6",
|
||||
"babel-plugin-emotion": "^9.1.0"
|
||||
}
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
import React, { SFC } from 'react'
|
||||
import styled from 'react-emotion'
|
||||
import { DocObj, Section } from 'docz'
|
||||
import { Toggle } from 'react-powerplug'
|
||||
import { DocObj } from 'docz'
|
||||
import * as Icon from 'react-feather'
|
||||
|
||||
import { Highlight } from './Highlight'
|
||||
import { Render } from './Render'
|
||||
import * as colors from '../styles/colors'
|
||||
|
||||
const Container = styled('div')`
|
||||
@@ -43,73 +40,11 @@ const Filepath = styled('div')`
|
||||
color: ${colors.GRAY_MEDIUM};
|
||||
`
|
||||
|
||||
const Description = styled('p')`
|
||||
margin: 20px 0 10px;
|
||||
`
|
||||
|
||||
const Section = styled('div')`
|
||||
margin-top: 40px;
|
||||
`
|
||||
|
||||
const RenderWrapper = styled('div')`
|
||||
position: relative;
|
||||
padding: 10px;
|
||||
background: white;
|
||||
border: 1px solid ${colors.GRAY};
|
||||
border-radius: 3px 3px 0 3px;
|
||||
`
|
||||
|
||||
const CodeButton = styled('button')`
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
padding: 5px 10px;
|
||||
border: none;
|
||||
border-radius: 0 0 3px 3px;
|
||||
background: ${colors.GRAY};
|
||||
font-size: 10px;
|
||||
font-weight: 600;
|
||||
color: ${colors.GRAY_DARK};
|
||||
text-transform: uppercase;
|
||||
transform: translate(1px, 100%);
|
||||
`
|
||||
|
||||
interface ToggleProps {
|
||||
toggle: () => void
|
||||
on: boolean
|
||||
}
|
||||
|
||||
interface DocSectionProps {
|
||||
section: Section
|
||||
}
|
||||
|
||||
const DocSection: SFC<DocSectionProps> = ({ section }) => (
|
||||
<Section key={section.id}>
|
||||
{section.title && <h3>{section.title}</h3>}
|
||||
<Toggle initial={false}>
|
||||
{({ toggle, on }: ToggleProps) => (
|
||||
<RenderWrapper>
|
||||
{on ? (
|
||||
<Highlight language="jsx">{section.code}</Highlight>
|
||||
) : (
|
||||
<Render render={section.render} />
|
||||
)}
|
||||
<CodeButton onClick={toggle}>
|
||||
<Icon.Code width={15} />
|
||||
</CodeButton>
|
||||
</RenderWrapper>
|
||||
)}
|
||||
</Toggle>
|
||||
</Section>
|
||||
)
|
||||
|
||||
export const Doc: SFC<DocObj> = ({
|
||||
id,
|
||||
name,
|
||||
filepath,
|
||||
description,
|
||||
sections,
|
||||
component: Component,
|
||||
}) => (
|
||||
<Container key={id}>
|
||||
<Title>{name}</Title>
|
||||
@@ -117,11 +52,6 @@ export const Doc: SFC<DocObj> = ({
|
||||
<IconLink size={15} />
|
||||
<code>{filepath}</code>
|
||||
</Filepath>
|
||||
{description && <Description>{description}</Description>}
|
||||
{sections &&
|
||||
sections.length > 0 &&
|
||||
sections.map(section => (
|
||||
<DocSection key={section.id} section={section} />
|
||||
))}
|
||||
<Component />
|
||||
</Container>
|
||||
)
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
import 'prismjs'
|
||||
import 'prismjs/components/prism-jsx'
|
||||
import '../styles/prism-github'
|
||||
|
||||
import React, { PureComponent } from 'react'
|
||||
import cx from 'classnames'
|
||||
import prism from 'prismjs'
|
||||
|
||||
interface HighlightProps {
|
||||
language: string
|
||||
}
|
||||
|
||||
export class Highlight extends PureComponent<HighlightProps> {
|
||||
private el: Element | null
|
||||
|
||||
constructor(props: HighlightProps) {
|
||||
super(props)
|
||||
this.el = null
|
||||
}
|
||||
|
||||
public render(): JSX.Element {
|
||||
const className = cx({
|
||||
'react-prism': true,
|
||||
[`language-${this.props.language}`]: !!this.props.language,
|
||||
})
|
||||
|
||||
return (
|
||||
<pre
|
||||
className={className}
|
||||
ref={node => {
|
||||
this.el = node
|
||||
}}
|
||||
>
|
||||
<code>{this.props.children}</code>
|
||||
</pre>
|
||||
)
|
||||
}
|
||||
|
||||
public componentDidMount(): void {
|
||||
this.highlightCode()
|
||||
}
|
||||
|
||||
public componentDidUpdate(): void {
|
||||
this.highlightCode()
|
||||
}
|
||||
|
||||
private highlightCode(): void {
|
||||
prism.highlightElement(this.el as Element)
|
||||
}
|
||||
}
|
||||
@@ -22,10 +22,11 @@
|
||||
"tslint": "tslint --project ."
|
||||
},
|
||||
"dependencies": {
|
||||
"@sindresorhus/slugify": "^0.2.0",
|
||||
"@sindresorhus/slugify": "^0.3.0",
|
||||
"invariant": "^2.2.4",
|
||||
"pascalcase": "^0.1.1",
|
||||
"react": "^16.3.2",
|
||||
"react-dom": "^16.3.2",
|
||||
"ulid": "^2.3.0",
|
||||
"yargs": "^11.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
|
||||
@@ -1,18 +1,14 @@
|
||||
/* tslint:disable:variable-name */
|
||||
import { ulid } from 'ulid'
|
||||
import { ComponentType } from 'react'
|
||||
import slugify from '@sindresorhus/slugify'
|
||||
|
||||
export const cache = new Map()
|
||||
import pascalcase from 'pascalcase'
|
||||
|
||||
export const isFn = (value: any): boolean => typeof value === 'function'
|
||||
export const safeUrl = (value: string) => encodeURI(value.replace(/\s/g, ''))
|
||||
|
||||
export interface Section {
|
||||
id: string
|
||||
title?: string
|
||||
code?: string
|
||||
render: (container: HTMLElement) => any
|
||||
}
|
||||
export type MDXComponent = ComponentType<{
|
||||
components?: Record<string, ComponentType>
|
||||
}>
|
||||
|
||||
export interface DocConstructorArgs {
|
||||
name: string
|
||||
@@ -23,33 +19,34 @@ export interface DocObj {
|
||||
readonly route: string
|
||||
readonly id: string | undefined
|
||||
readonly order: number
|
||||
readonly description: string | undefined
|
||||
readonly filepath: string | undefined
|
||||
readonly category: string | undefined
|
||||
readonly sections: Section[]
|
||||
readonly component: MDXComponent
|
||||
}
|
||||
|
||||
export interface Entry {
|
||||
id: string
|
||||
name: string
|
||||
filepath: string
|
||||
importPath: string
|
||||
sections: string[]
|
||||
}
|
||||
|
||||
export class Doc {
|
||||
static categoriesFromDocs = (docs: DocObj[]) =>
|
||||
docs.reduce(
|
||||
(arr: string[], { category }: DocObj) =>
|
||||
category && arr.indexOf(category) === -1 ? arr.concat([category]) : arr,
|
||||
[]
|
||||
)
|
||||
|
||||
private _name: string
|
||||
private _route: string
|
||||
private _id: string | undefined
|
||||
private _order: number
|
||||
private _description: string | undefined
|
||||
private _filepath: string | undefined
|
||||
private _category: string | undefined
|
||||
private _sections: Section[]
|
||||
|
||||
constructor(name: string) {
|
||||
this._name = name
|
||||
this._sections = []
|
||||
this._route = `/${slugify(name)}`
|
||||
this._order = 0
|
||||
|
||||
@@ -68,61 +65,35 @@ export class Doc {
|
||||
return this
|
||||
}
|
||||
|
||||
public description(value: string): Doc {
|
||||
this._description = value
|
||||
return this
|
||||
}
|
||||
|
||||
public section(...args: any[]): Doc {
|
||||
const [title, renderMethod] = args
|
||||
const render = isFn(title) ? title : renderMethod
|
||||
const id = ulid()
|
||||
|
||||
this._sections.push({
|
||||
id,
|
||||
render: (container: HTMLElement) => render(container),
|
||||
...(title && !isFn(title) && { title }),
|
||||
})
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
public route(path: string): Doc {
|
||||
this._route = safeUrl(path)
|
||||
return this
|
||||
}
|
||||
|
||||
public findEntryAndMerge(entries: Entry[]): Doc {
|
||||
const entry = entries.find(entry => entry.name === this._name)
|
||||
const entry = entries.find(entry => entry.name === slugify(this._name))
|
||||
|
||||
if (entry) {
|
||||
this._id = entry.id
|
||||
this._filepath = entry.filepath
|
||||
this._sections.forEach((section, id) => {
|
||||
section.code = entry.sections[id]
|
||||
})
|
||||
}
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
public toObject(): DocObj {
|
||||
public toObject(Component: MDXComponent): DocObj {
|
||||
Component.displayName = pascalcase(this._name)
|
||||
|
||||
return {
|
||||
component: Component,
|
||||
id: this._id,
|
||||
name: this._name,
|
||||
order: this._order,
|
||||
category: this._category,
|
||||
description: this._description,
|
||||
filepath: this._filepath,
|
||||
route: this._route,
|
||||
sections: this._sections,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const doc = (name: string): Doc => {
|
||||
const newDoc = new Doc(name)
|
||||
|
||||
cache.set(name, newDoc)
|
||||
return newDoc
|
||||
}
|
||||
export const doc = (name: string): Doc => new Doc(name)
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import * as React from 'react'
|
||||
|
||||
import { cache, Doc, DocObj, Entry } from './Doc'
|
||||
import { DocObj } from './Doc'
|
||||
|
||||
export const isFn = (value: any): boolean => typeof value === 'function'
|
||||
export const docsContext = React.createContext([] as DocObj[])
|
||||
|
||||
export interface DocsRenderProps {
|
||||
docs: DocObj[]
|
||||
@@ -13,34 +14,18 @@ export interface DocsProps {
|
||||
children: (renderProps: DocsRenderProps) => React.ReactNode
|
||||
}
|
||||
|
||||
export const entriesContext = React.createContext([] as Entry[])
|
||||
|
||||
const mergeDocsWithEntries = (docs: Doc[], entries: Entry[]): DocObj[] =>
|
||||
docs
|
||||
.map(doc => doc.findEntryAndMerge(entries))
|
||||
.map(doc => doc.toObject())
|
||||
.sort((docA, docB) => docB.order - docA.order)
|
||||
|
||||
const categoriesFromDocs = (docs: Doc[]) =>
|
||||
docs.reduce((arr: string[], docInstance: Doc) => {
|
||||
const { category } = docInstance.toObject()
|
||||
return category && arr.indexOf(category) === -1
|
||||
? arr.concat([category])
|
||||
: arr
|
||||
}, [])
|
||||
|
||||
export const Docs: React.SFC<DocsProps> = ({ children }) => (
|
||||
<entriesContext.Consumer>
|
||||
{entries => {
|
||||
const docs = Array.from(cache.values())
|
||||
<docsContext.Consumer>
|
||||
{docs => {
|
||||
if (!isFn(children)) {
|
||||
throw new Error(
|
||||
'You need to pass a children as a function to your <Docs/> component'
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
isFn(children) &&
|
||||
children({
|
||||
docs: mergeDocsWithEntries(docs, entries),
|
||||
categories: categoriesFromDocs(docs),
|
||||
})
|
||||
)
|
||||
console.log(docs)
|
||||
|
||||
return children({ docs, categories: [] })
|
||||
}}
|
||||
</entriesContext.Consumer>
|
||||
</docsContext.Consumer>
|
||||
)
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
import * as React from 'react'
|
||||
import { ComponentType } from 'react'
|
||||
|
||||
import { entriesContext } from './Docs'
|
||||
import { docsContext } from './Docs'
|
||||
|
||||
export interface ThemeProps {
|
||||
entries: any[]
|
||||
docs: any[]
|
||||
}
|
||||
|
||||
export type Theme = (WC: ComponentType) => ComponentType<ThemeProps>
|
||||
|
||||
export const theme: Theme = WrappedComponent => ({ entries }) => (
|
||||
<entriesContext.Provider value={entries}>
|
||||
export const theme: Theme = WrappedComponent => ({ docs }) => (
|
||||
<docsContext.Provider value={docs}>
|
||||
<WrappedComponent />
|
||||
</entriesContext.Provider>
|
||||
</docsContext.Provider>
|
||||
)
|
||||
|
||||
1
packages/docz/src/types.d.ts
vendored
1
packages/docz/src/types.d.ts
vendored
@@ -1 +1,2 @@
|
||||
declare module '@sindresorhus/slugify'
|
||||
declare module 'pascalcase'
|
||||
|
||||
526
yarn.lock
526
yarn.lock
@@ -1236,15 +1236,15 @@
|
||||
version "0.6.2"
|
||||
resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.6.2.tgz#19a39bda906e5ba45f39f6f7f3512b2740ceab29"
|
||||
|
||||
"@mdx-js/loader@^0.8.0":
|
||||
version "0.8.0"
|
||||
resolved "https://registry.npmjs.org/@mdx-js/loader/-/loader-0.8.0.tgz#75a239bfa4dae01e7152b0d51587da63ad1560fd"
|
||||
"@mdx-js/loader@^0.8.1":
|
||||
version "0.8.1"
|
||||
resolved "https://registry.npmjs.org/@mdx-js/loader/-/loader-0.8.1.tgz#9e8b4d9406a4c2cd05fe364b01774ad02d28aca8"
|
||||
dependencies:
|
||||
"@mdx-js/tag" "^0.7.2"
|
||||
|
||||
"@mdx-js/mdx@^0.8.0":
|
||||
version "0.8.0"
|
||||
resolved "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-0.8.0.tgz#a9fde68032d8538cc0b5373e60a30af50524e88a"
|
||||
"@mdx-js/mdx@^0.8.1":
|
||||
version "0.8.1"
|
||||
resolved "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-0.8.1.tgz#911cb6359525245a4305dfb3cc993b040ad854c8"
|
||||
dependencies:
|
||||
"@mdx-js/mdxast" "^0.7.2"
|
||||
mdast-util-to-hast "^3.0.0"
|
||||
@@ -1282,9 +1282,9 @@
|
||||
dependencies:
|
||||
execa "^0.2.2"
|
||||
|
||||
"@sindresorhus/slugify@^0.2.0":
|
||||
version "0.2.0"
|
||||
resolved "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-0.2.0.tgz#fc293151d5ba76089df18ab17f41d4ddf2eacad7"
|
||||
"@sindresorhus/slugify@^0.3.0":
|
||||
version "0.3.0"
|
||||
resolved "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-0.3.0.tgz#39ec81f542b4fcaf7f67fbc8916efa990b65e139"
|
||||
dependencies:
|
||||
escape-string-regexp "^1.0.5"
|
||||
lodash.deburr "^4.1.0"
|
||||
@@ -1295,20 +1295,6 @@
|
||||
dependencies:
|
||||
"@types/estree" "*"
|
||||
|
||||
"@types/babel-traverse@^6.25.3":
|
||||
version "6.25.3"
|
||||
resolved "https://registry.npmjs.org/@types/babel-traverse/-/babel-traverse-6.25.3.tgz#34dd69d1e469aee75e20ba00fbc52c7bc717b1c8"
|
||||
dependencies:
|
||||
"@types/babel-types" "*"
|
||||
|
||||
"@types/babel-types@*":
|
||||
version "7.0.1"
|
||||
resolved "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.1.tgz#1405e5396968c4302994b0161ce405b72b874257"
|
||||
|
||||
"@types/bcryptjs@^2.4.1":
|
||||
version "2.4.1"
|
||||
resolved "https://registry.npmjs.org/@types/bcryptjs/-/bcryptjs-2.4.1.tgz#7fb63922b5b106edacdcfe084cd38850f78aacfc"
|
||||
|
||||
"@types/body-parser@*":
|
||||
version "1.17.0"
|
||||
resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.0.tgz#9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c"
|
||||
@@ -1323,10 +1309,6 @@
|
||||
"@types/events" "*"
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/classnames@^2.2.3":
|
||||
version "2.2.3"
|
||||
resolved "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.3.tgz#3f0ff6873da793870e20a260cada55982f38a9e5"
|
||||
|
||||
"@types/clean-css@*":
|
||||
version "3.4.30"
|
||||
resolved "https://registry.npmjs.org/@types/clean-css/-/clean-css-3.4.30.tgz#0052c136f5248002428e3638b37de4a39818641d"
|
||||
@@ -1415,17 +1397,17 @@
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/node@*", "@types/node@10.0.0", "@types/node@^10.0.0":
|
||||
"@types/node@*", "@types/node@^10.0.0":
|
||||
version "10.0.0"
|
||||
resolved "https://registry.npmjs.org/@types/node/-/node-10.0.0.tgz#c40f8e07dce607d3ef25a626b93a6a7cdcf97881"
|
||||
|
||||
"@types/prettier@^1.12.0":
|
||||
version "1.12.0"
|
||||
resolved "https://registry.npmjs.org/@types/prettier/-/prettier-1.12.0.tgz#61ed6bdc64386f49c9e1f179cf84ef26ddc4740c"
|
||||
"@types/node@10.0.4":
|
||||
version "10.0.4"
|
||||
resolved "https://registry.npmjs.org/@types/node/-/node-10.0.4.tgz#130598ee56e9a1210a53f557d64935571f05390d"
|
||||
|
||||
"@types/prismjs@^1.9.0":
|
||||
version "1.9.0"
|
||||
resolved "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.9.0.tgz#38af9491e2f105079a443703ee675fb27371ec94"
|
||||
"@types/prettier@^1.12.1":
|
||||
version "1.12.1"
|
||||
resolved "https://registry.npmjs.org/@types/prettier/-/prettier-1.12.1.tgz#d8aa9c353adc3e8c1c6e51e7acb642315fd79d2d"
|
||||
|
||||
"@types/react-dom@^16.0.5":
|
||||
version "16.0.5"
|
||||
@@ -1547,6 +1529,10 @@ address@1.0.3, address@^1.0.1:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.npmjs.org/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9"
|
||||
|
||||
after@0.8.2:
|
||||
version "0.8.2"
|
||||
resolved "https://registry.npmjs.org/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
|
||||
|
||||
ajv-keywords@^2.1.0:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762"
|
||||
@@ -1624,10 +1610,6 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1:
|
||||
dependencies:
|
||||
color-convert "^1.9.0"
|
||||
|
||||
any-promise@^1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
|
||||
|
||||
anymatch@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
|
||||
@@ -1723,6 +1705,10 @@ array-unique@^0.3.2:
|
||||
version "0.3.2"
|
||||
resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
|
||||
|
||||
arraybuffer.slice@~0.0.7:
|
||||
version "0.0.7"
|
||||
resolved "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675"
|
||||
|
||||
arrify@^1.0.0, arrify@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
|
||||
@@ -1779,6 +1765,10 @@ async-each@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
|
||||
|
||||
async-limiter@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
|
||||
|
||||
async@^1.4.0, async@^1.5.0, async@^1.5.2:
|
||||
version "1.5.2"
|
||||
resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
|
||||
@@ -1805,7 +1795,7 @@ aws4@^1.2.1:
|
||||
version "1.7.0"
|
||||
resolved "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289"
|
||||
|
||||
babel-code-frame@6.26.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
|
||||
babel-code-frame@6.26.0, babel-code-frame@^6.22.0:
|
||||
version "6.26.0"
|
||||
resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
|
||||
dependencies:
|
||||
@@ -1813,73 +1803,6 @@ babel-code-frame@6.26.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
|
||||
esutils "^2.0.2"
|
||||
js-tokens "^3.0.2"
|
||||
|
||||
babel-core@^6.24.1, babel-core@^6.25.0, babel-core@^6.26.0:
|
||||
version "6.26.3"
|
||||
resolved "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207"
|
||||
dependencies:
|
||||
babel-code-frame "^6.26.0"
|
||||
babel-generator "^6.26.0"
|
||||
babel-helpers "^6.24.1"
|
||||
babel-messages "^6.23.0"
|
||||
babel-register "^6.26.0"
|
||||
babel-runtime "^6.26.0"
|
||||
babel-template "^6.26.0"
|
||||
babel-traverse "^6.26.0"
|
||||
babel-types "^6.26.0"
|
||||
babylon "^6.18.0"
|
||||
convert-source-map "^1.5.1"
|
||||
debug "^2.6.9"
|
||||
json5 "^0.5.1"
|
||||
lodash "^4.17.4"
|
||||
minimatch "^3.0.4"
|
||||
path-is-absolute "^1.0.1"
|
||||
private "^0.1.8"
|
||||
slash "^1.0.0"
|
||||
source-map "^0.5.7"
|
||||
|
||||
babel-errors@^1.0.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.npmjs.org/babel-errors/-/babel-errors-1.1.1.tgz#43f7142dd3b365633c758d155bffa3ba41523794"
|
||||
|
||||
babel-file-loader@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.npmjs.org/babel-file-loader/-/babel-file-loader-1.0.3.tgz#b9df875e136d6cddc9dfcb36334cd1ad58fffe7f"
|
||||
dependencies:
|
||||
babel-errors "^1.0.1"
|
||||
babel-file "^1.0.2"
|
||||
babel-plugin-tester "^3.0.0"
|
||||
babel-types "^6.24.1"
|
||||
read-file-async "^1.0.0"
|
||||
resolve "^1.3.3"
|
||||
resolve-async "^1.0.1"
|
||||
|
||||
babel-file@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmjs.org/babel-file/-/babel-file-1.0.2.tgz#6435c01fc79c33365751957156a0561965a29d56"
|
||||
dependencies:
|
||||
babel-core "^6.24.1"
|
||||
babel-errors "^1.0.1"
|
||||
|
||||
babel-generator@^6.26.0, babel-generator@^6.26.1:
|
||||
version "6.26.1"
|
||||
resolved "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90"
|
||||
dependencies:
|
||||
babel-messages "^6.23.0"
|
||||
babel-runtime "^6.26.0"
|
||||
babel-types "^6.26.0"
|
||||
detect-indent "^4.0.0"
|
||||
jsesc "^1.3.0"
|
||||
lodash "^4.17.4"
|
||||
source-map "^0.5.7"
|
||||
trim-right "^1.0.1"
|
||||
|
||||
babel-helpers@^6.24.1:
|
||||
version "6.24.1"
|
||||
resolved "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
|
||||
dependencies:
|
||||
babel-runtime "^6.22.0"
|
||||
babel-template "^6.24.1"
|
||||
|
||||
babel-loader@^8.0.0-beta.1:
|
||||
version "8.0.0-beta.2"
|
||||
resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.0-beta.2.tgz#4d5b67c964dc8c9cba866fd13d6b90df3acf8723"
|
||||
@@ -1888,12 +1811,6 @@ babel-loader@^8.0.0-beta.1:
|
||||
loader-utils "^1.0.2"
|
||||
mkdirp "^0.5.1"
|
||||
|
||||
babel-messages@^6.23.0:
|
||||
version "6.23.0"
|
||||
resolved "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
|
||||
dependencies:
|
||||
babel-runtime "^6.22.0"
|
||||
|
||||
babel-plugin-emotion@^9.0.1, babel-plugin-emotion@^9.1.0, babel-plugin-emotion@^9.1.2:
|
||||
version "9.1.2"
|
||||
resolved "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-9.1.2.tgz#e26b313fa0fecd0f2cc07b1e4ef05da167e4f740"
|
||||
@@ -1926,17 +1843,6 @@ babel-plugin-syntax-jsx@^6.18.0:
|
||||
version "6.18.0"
|
||||
resolved "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
|
||||
|
||||
babel-plugin-tester@^3.0.0:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.npmjs.org/babel-plugin-tester/-/babel-plugin-tester-3.3.0.tgz#9844f77a661b48b5c7e08bd54acca590dbcee5b4"
|
||||
dependencies:
|
||||
babel-core "^6.25.0"
|
||||
common-tags "^1.4.0"
|
||||
invariant "^2.2.2"
|
||||
lodash.merge "^4.6.0"
|
||||
path-exists "^3.0.0"
|
||||
strip-indent "^2.0.0"
|
||||
|
||||
babel-plugin-transform-dynamic-import@2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.npmjs.org/babel-plugin-transform-dynamic-import/-/babel-plugin-transform-dynamic-import-2.0.0.tgz#b647ad73e5050964bdf74297587120f0e9e57703"
|
||||
@@ -1975,58 +1881,6 @@ babel-preset-react-app@^4.0.0-next.b2fd8db8:
|
||||
babel-plugin-transform-dynamic-import "2.0.0"
|
||||
babel-plugin-transform-react-remove-prop-types "0.4.12"
|
||||
|
||||
babel-register@^6.26.0:
|
||||
version "6.26.0"
|
||||
resolved "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
|
||||
dependencies:
|
||||
babel-core "^6.26.0"
|
||||
babel-runtime "^6.26.0"
|
||||
core-js "^2.5.0"
|
||||
home-or-tmp "^2.0.0"
|
||||
lodash "^4.17.4"
|
||||
mkdirp "^0.5.1"
|
||||
source-map-support "^0.4.15"
|
||||
|
||||
babel-runtime@^6.22.0, babel-runtime@^6.26.0:
|
||||
version "6.26.0"
|
||||
resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
|
||||
dependencies:
|
||||
core-js "^2.4.0"
|
||||
regenerator-runtime "^0.11.0"
|
||||
|
||||
babel-template@^6.24.1, babel-template@^6.26.0:
|
||||
version "6.26.0"
|
||||
resolved "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
|
||||
dependencies:
|
||||
babel-runtime "^6.26.0"
|
||||
babel-traverse "^6.26.0"
|
||||
babel-types "^6.26.0"
|
||||
babylon "^6.18.0"
|
||||
lodash "^4.17.4"
|
||||
|
||||
babel-traverse@^6.26.0:
|
||||
version "6.26.0"
|
||||
resolved "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
|
||||
dependencies:
|
||||
babel-code-frame "^6.26.0"
|
||||
babel-messages "^6.23.0"
|
||||
babel-runtime "^6.26.0"
|
||||
babel-types "^6.26.0"
|
||||
babylon "^6.18.0"
|
||||
debug "^2.6.8"
|
||||
globals "^9.18.0"
|
||||
invariant "^2.2.2"
|
||||
lodash "^4.17.4"
|
||||
|
||||
babel-types@^6.24.1, babel-types@^6.26.0:
|
||||
version "6.26.0"
|
||||
resolved "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
|
||||
dependencies:
|
||||
babel-runtime "^6.26.0"
|
||||
esutils "^2.0.2"
|
||||
lodash "^4.17.4"
|
||||
to-fast-properties "^1.0.3"
|
||||
|
||||
babylon@7.0.0-beta.42:
|
||||
version "7.0.0-beta.42"
|
||||
resolved "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.42.tgz#67cfabcd4f3ec82999d29031ccdea89d0ba99657"
|
||||
@@ -2035,9 +1889,9 @@ babylon@7.0.0-beta.46:
|
||||
version "7.0.0-beta.46"
|
||||
resolved "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.46.tgz#b6ddaba81bbb130313932757ff9c195d527088b6"
|
||||
|
||||
babylon@^6.18.0:
|
||||
version "6.18.0"
|
||||
resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
|
||||
backo2@1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
|
||||
|
||||
bail@^1.0.0:
|
||||
version "1.0.3"
|
||||
@@ -2047,10 +1901,18 @@ balanced-match@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
||||
|
||||
base64-arraybuffer@0.1.5:
|
||||
version "0.1.5"
|
||||
resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
|
||||
|
||||
base64-js@^1.0.2:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3"
|
||||
|
||||
base64id@1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6"
|
||||
|
||||
base@^0.11.1:
|
||||
version "0.11.2"
|
||||
resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
|
||||
@@ -2073,6 +1935,12 @@ bcrypt-pbkdf@^1.0.0:
|
||||
dependencies:
|
||||
tweetnacl "^0.14.3"
|
||||
|
||||
better-assert@~1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522"
|
||||
dependencies:
|
||||
callsite "1.0.0"
|
||||
|
||||
big.js@^3.1.3:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
|
||||
@@ -2081,6 +1949,10 @@ binary-extensions@^1.0.0:
|
||||
version "1.11.0"
|
||||
resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205"
|
||||
|
||||
blob@0.0.4:
|
||||
version "0.0.4"
|
||||
resolved "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921"
|
||||
|
||||
block-stream@*:
|
||||
version "0.0.9"
|
||||
resolved "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
|
||||
@@ -2324,6 +2196,10 @@ caller-path@^0.1.0:
|
||||
dependencies:
|
||||
callsites "^0.2.0"
|
||||
|
||||
callsite@1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
|
||||
|
||||
callsites@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
|
||||
@@ -2481,10 +2357,6 @@ class-utils@^0.3.5:
|
||||
isobject "^3.0.0"
|
||||
static-extend "^0.1.1"
|
||||
|
||||
classnames@^2.2.5:
|
||||
version "2.2.5"
|
||||
resolved "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d"
|
||||
|
||||
clean-css@4.1.x:
|
||||
version "4.1.11"
|
||||
resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz#2ecdf145aba38f54740f26cefd0ff3e03e125d6a"
|
||||
@@ -2505,14 +2377,6 @@ cli-width@^2.0.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
|
||||
|
||||
clipboard@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.npmjs.org/clipboard/-/clipboard-2.0.0.tgz#4661dc972fb72a4c4770b8db78aa9b1caef52b50"
|
||||
dependencies:
|
||||
good-listener "^1.2.2"
|
||||
select "^1.1.2"
|
||||
tiny-emitter "^2.0.0"
|
||||
|
||||
cliui@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
|
||||
@@ -2602,12 +2466,6 @@ commander@~2.13.0:
|
||||
version "2.13.0"
|
||||
resolved "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
|
||||
|
||||
common-tags@^1.4.0:
|
||||
version "1.7.2"
|
||||
resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.7.2.tgz#24d9768c63d253a56ecff93845b44b4df1d52771"
|
||||
dependencies:
|
||||
babel-runtime "^6.26.0"
|
||||
|
||||
commondir@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
|
||||
@@ -2619,10 +2477,18 @@ compare-func@^1.3.1:
|
||||
array-ify "^1.0.0"
|
||||
dot-prop "^3.0.0"
|
||||
|
||||
component-emitter@^1.2.1:
|
||||
component-bind@1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
|
||||
|
||||
component-emitter@1.2.1, component-emitter@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
|
||||
|
||||
component-inherit@0.0.3:
|
||||
version "0.0.3"
|
||||
resolved "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143"
|
||||
|
||||
compressible@~2.0.13:
|
||||
version "2.0.13"
|
||||
resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.13.tgz#0d1020ab924b2fdb4d6279875c7d6daba6baa7a9"
|
||||
@@ -2853,7 +2719,7 @@ conventional-recommended-bump@^1.2.1:
|
||||
meow "^3.3.0"
|
||||
object-assign "^4.0.1"
|
||||
|
||||
convert-source-map@^1.1.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1:
|
||||
convert-source-map@^1.1.0, convert-source-map@^1.5.0:
|
||||
version "1.5.1"
|
||||
resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5"
|
||||
|
||||
@@ -2884,7 +2750,7 @@ core-js@^1.0.0:
|
||||
version "1.2.7"
|
||||
resolved "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
|
||||
|
||||
core-js@^2.4.0, core-js@^2.5.0, core-js@^2.5.3:
|
||||
core-js@^2.4.0, core-js@^2.5.3:
|
||||
version "2.5.5"
|
||||
resolved "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz#b14dde936c640c0579a6b50cabcc132dd6127e3b"
|
||||
|
||||
@@ -3083,13 +2949,13 @@ dateformat@^3.0.0:
|
||||
version "3.0.3"
|
||||
resolved "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
|
||||
|
||||
debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9:
|
||||
debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.6, debug@^2.6.8:
|
||||
version "2.6.9"
|
||||
resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
||||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
debug@^3.1.0:
|
||||
debug@^3.1.0, debug@~3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
|
||||
dependencies:
|
||||
@@ -3193,10 +3059,6 @@ delayed-stream@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
|
||||
|
||||
delegate@^3.1.2:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166"
|
||||
|
||||
delegates@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
|
||||
@@ -3226,12 +3088,6 @@ detab@^2.0.0:
|
||||
dependencies:
|
||||
repeat-string "^1.5.4"
|
||||
|
||||
detect-indent@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
|
||||
dependencies:
|
||||
repeating "^2.0.0"
|
||||
|
||||
detect-indent@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d"
|
||||
@@ -3427,6 +3283,43 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0:
|
||||
dependencies:
|
||||
once "^1.4.0"
|
||||
|
||||
engine.io-client@~3.2.0:
|
||||
version "3.2.1"
|
||||
resolved "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36"
|
||||
dependencies:
|
||||
component-emitter "1.2.1"
|
||||
component-inherit "0.0.3"
|
||||
debug "~3.1.0"
|
||||
engine.io-parser "~2.1.1"
|
||||
has-cors "1.1.0"
|
||||
indexof "0.0.1"
|
||||
parseqs "0.0.5"
|
||||
parseuri "0.0.5"
|
||||
ws "~3.3.1"
|
||||
xmlhttprequest-ssl "~1.5.4"
|
||||
yeast "0.1.2"
|
||||
|
||||
engine.io-parser@~2.1.0, engine.io-parser@~2.1.1:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.2.tgz#4c0f4cff79aaeecbbdcfdea66a823c6085409196"
|
||||
dependencies:
|
||||
after "0.8.2"
|
||||
arraybuffer.slice "~0.0.7"
|
||||
base64-arraybuffer "0.1.5"
|
||||
blob "0.0.4"
|
||||
has-binary2 "~1.0.2"
|
||||
|
||||
engine.io@~3.2.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz#54332506f42f2edc71690d2f2a42349359f3bf7d"
|
||||
dependencies:
|
||||
accepts "~1.3.4"
|
||||
base64id "1.0.0"
|
||||
cookie "0.3.1"
|
||||
debug "~3.1.0"
|
||||
engine.io-parser "~2.1.0"
|
||||
ws "~3.3.1"
|
||||
|
||||
enhanced-resolve@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.0.0.tgz#e34a6eaa790f62fccd71d93959f56b2b432db10a"
|
||||
@@ -4245,10 +4138,6 @@ globals@^11.0.1, globals@^11.1.0:
|
||||
version "11.4.0"
|
||||
resolved "https://registry.npmjs.org/globals/-/globals-11.4.0.tgz#b85c793349561c16076a3c13549238a27945f1bc"
|
||||
|
||||
globals@^9.18.0:
|
||||
version "9.18.0"
|
||||
resolved "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
|
||||
|
||||
globby@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
|
||||
@@ -4281,12 +4170,6 @@ globby@^7.1.1:
|
||||
pify "^3.0.0"
|
||||
slash "^1.0.0"
|
||||
|
||||
good-listener@^1.2.2:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50"
|
||||
dependencies:
|
||||
delegate "^3.1.2"
|
||||
|
||||
got@^5.0.0:
|
||||
version "5.7.1"
|
||||
resolved "https://registry.npmjs.org/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35"
|
||||
@@ -4371,6 +4254,16 @@ has-ansi@^2.0.0:
|
||||
dependencies:
|
||||
ansi-regex "^2.0.0"
|
||||
|
||||
has-binary2@~1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.2.tgz#e83dba49f0b9be4d026d27365350d9f03f54be98"
|
||||
dependencies:
|
||||
isarray "2.0.1"
|
||||
|
||||
has-cors@1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39"
|
||||
|
||||
has-flag@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
|
||||
@@ -4475,13 +4368,6 @@ hoist-non-react-statics@^2.3.0, hoist-non-react-statics@^2.5.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.0.tgz#d2ca2dfc19c5a91c5a6615ce8e564ef0347e2a40"
|
||||
|
||||
home-or-tmp@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
|
||||
dependencies:
|
||||
os-homedir "^1.0.0"
|
||||
os-tmpdir "^1.0.1"
|
||||
|
||||
homedir-polyfill@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc"
|
||||
@@ -4694,7 +4580,7 @@ interpret@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614"
|
||||
|
||||
invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2:
|
||||
invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4:
|
||||
version "2.2.4"
|
||||
resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
|
||||
dependencies:
|
||||
@@ -5033,6 +4919,10 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
|
||||
|
||||
isarray@2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e"
|
||||
|
||||
isexe@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
||||
@@ -5073,10 +4963,6 @@ jsbn@~0.1.0:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
|
||||
|
||||
jsesc@^1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
|
||||
|
||||
jsesc@^2.5.1:
|
||||
version "2.5.1"
|
||||
resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe"
|
||||
@@ -5119,7 +5005,7 @@ json3@^3.3.2:
|
||||
version "3.3.2"
|
||||
resolved "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
|
||||
|
||||
json5@^0.5.0, json5@^0.5.1:
|
||||
json5@^0.5.0:
|
||||
version "0.5.1"
|
||||
resolved "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
|
||||
|
||||
@@ -5369,10 +5255,6 @@ lodash.isobject@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d"
|
||||
|
||||
lodash.merge@^4.6.0:
|
||||
version "4.6.1"
|
||||
resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54"
|
||||
|
||||
lodash.sumby@^4.6.0:
|
||||
version "4.6.0"
|
||||
resolved "https://registry.npmjs.org/lodash.sumby/-/lodash.sumby-4.6.0.tgz#7d87737ddb216da2f7e5e7cd2dd9c403a7887346"
|
||||
@@ -6051,6 +5933,10 @@ object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
||||
|
||||
object-component@0.0.3:
|
||||
version "0.0.3"
|
||||
resolved "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291"
|
||||
|
||||
object-copy@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
|
||||
@@ -6176,7 +6062,7 @@ os-locale@^2.0.0:
|
||||
lcid "^1.0.0"
|
||||
mem "^1.1.0"
|
||||
|
||||
os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2:
|
||||
os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
|
||||
|
||||
@@ -6308,6 +6194,18 @@ parse-passwd@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
|
||||
|
||||
parseqs@0.0.5:
|
||||
version "0.0.5"
|
||||
resolved "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d"
|
||||
dependencies:
|
||||
better-assert "~1.0.0"
|
||||
|
||||
parseuri@0.0.5:
|
||||
version "0.0.5"
|
||||
resolved "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a"
|
||||
dependencies:
|
||||
better-assert "~1.0.0"
|
||||
|
||||
parseurl@~1.3.2:
|
||||
version "1.3.2"
|
||||
resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
|
||||
@@ -6334,7 +6232,7 @@ path-exists@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
|
||||
|
||||
path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
|
||||
path-is-absolute@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
||||
|
||||
@@ -6487,13 +6385,7 @@ pretty-time@^1.0.0:
|
||||
is-number "^5.0.0"
|
||||
nanoseconds "^1.0.0"
|
||||
|
||||
prismjs@^1.14.0:
|
||||
version "1.14.0"
|
||||
resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.14.0.tgz#bbccfdb8be5d850d26453933cb50122ca0362ae0"
|
||||
optionalDependencies:
|
||||
clipboard "^2.0.0"
|
||||
|
||||
private@^0.1.6, private@^0.1.8:
|
||||
private@^0.1.6:
|
||||
version "0.1.8"
|
||||
resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
|
||||
|
||||
@@ -6784,13 +6676,6 @@ read-cmd-shim@^1.0.1:
|
||||
dependencies:
|
||||
graceful-fs "^4.1.2"
|
||||
|
||||
read-file-async@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmjs.org/read-file-async/-/read-file-async-1.0.0.tgz#118fd0b8d0f76dc95cbb658e72ea6f107210deae"
|
||||
dependencies:
|
||||
graceful-fs "^4.1.11"
|
||||
typeable-promisify "^1.0.1"
|
||||
|
||||
read-pkg-up@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
|
||||
@@ -7091,13 +6976,6 @@ requires-port@1.0.x, requires-port@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
|
||||
|
||||
resolve-async@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmjs.org/resolve-async/-/resolve-async-1.0.1.tgz#6bf9f26451e9a64a58a13edb82e615ddfcbda86b"
|
||||
dependencies:
|
||||
resolve "^1.3.3"
|
||||
typeable-promisify "^1.0.1"
|
||||
|
||||
resolve-cwd@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
|
||||
@@ -7133,7 +7011,7 @@ resolve@^1.1.6, resolve@^1.3.2, resolve@^1.5.0:
|
||||
dependencies:
|
||||
path-parse "^1.0.5"
|
||||
|
||||
resolve@^1.3.3, resolve@^1.7.1:
|
||||
resolve@^1.7.1:
|
||||
version "1.7.1"
|
||||
resolved "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3"
|
||||
dependencies:
|
||||
@@ -7323,10 +7201,6 @@ select-hose@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
|
||||
|
||||
select@^1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.npmjs.org/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d"
|
||||
|
||||
selfsigned@^1.9.1:
|
||||
version "1.10.2"
|
||||
resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.2.tgz#b4449580d99929b65b10a48389301a6592088758"
|
||||
@@ -7513,6 +7387,48 @@ sntp@1.x.x:
|
||||
dependencies:
|
||||
hoek "2.x.x"
|
||||
|
||||
socket.io-adapter@~1.1.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b"
|
||||
|
||||
socket.io-client@2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.0.tgz#0d0b21d460dc4ed36e57085136f2be0137ff20ff"
|
||||
dependencies:
|
||||
backo2 "1.0.2"
|
||||
base64-arraybuffer "0.1.5"
|
||||
component-bind "1.0.0"
|
||||
component-emitter "1.2.1"
|
||||
debug "~3.1.0"
|
||||
engine.io-client "~3.2.0"
|
||||
has-binary2 "~1.0.2"
|
||||
has-cors "1.1.0"
|
||||
indexof "0.0.1"
|
||||
object-component "0.0.3"
|
||||
parseqs "0.0.5"
|
||||
parseuri "0.0.5"
|
||||
socket.io-parser "~3.2.0"
|
||||
to-array "0.1.4"
|
||||
|
||||
socket.io-parser@~3.2.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077"
|
||||
dependencies:
|
||||
component-emitter "1.2.1"
|
||||
debug "~3.1.0"
|
||||
isarray "2.0.1"
|
||||
|
||||
socket.io@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.npmjs.org/socket.io/-/socket.io-2.1.0.tgz#de77161795b6303e7aefc982ea04acb0cec17395"
|
||||
dependencies:
|
||||
debug "~3.1.0"
|
||||
engine.io "~3.2.0"
|
||||
has-binary2 "~1.0.2"
|
||||
socket.io-adapter "~1.1.0"
|
||||
socket.io-client "2.1.0"
|
||||
socket.io-parser "~3.2.0"
|
||||
|
||||
sockjs-client@1.1.4:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12"
|
||||
@@ -7551,12 +7467,6 @@ source-map-resolve@^0.5.0:
|
||||
source-map-url "^0.4.0"
|
||||
urix "^0.1.0"
|
||||
|
||||
source-map-support@^0.4.15:
|
||||
version "0.4.18"
|
||||
resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
|
||||
dependencies:
|
||||
source-map "^0.5.6"
|
||||
|
||||
source-map-url@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
|
||||
@@ -7976,24 +7886,20 @@ timers-browserify@^2.0.4:
|
||||
dependencies:
|
||||
setimmediate "^1.0.4"
|
||||
|
||||
tiny-emitter@^2.0.0:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz#82d27468aca5ade8e5fd1e6d22b57dd43ebdfb7c"
|
||||
|
||||
tmp@^0.0.33:
|
||||
version "0.0.33"
|
||||
resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
|
||||
dependencies:
|
||||
os-tmpdir "~1.0.2"
|
||||
|
||||
to-array@0.1.4:
|
||||
version "0.1.4"
|
||||
resolved "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"
|
||||
|
||||
to-arraybuffer@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
|
||||
|
||||
to-fast-properties@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
|
||||
|
||||
to-fast-properties@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
|
||||
@@ -8098,6 +8004,23 @@ tslint-config-prettier@^1.12.0:
|
||||
version "1.12.0"
|
||||
resolved "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.12.0.tgz#bc8504f286ecf42b906f3d1126a093114f5729cc"
|
||||
|
||||
tslint@^5.10.0:
|
||||
version "5.10.0"
|
||||
resolved "https://registry.npmjs.org/tslint/-/tslint-5.10.0.tgz#11e26bccb88afa02dd0d9956cae3d4540b5f54c3"
|
||||
dependencies:
|
||||
babel-code-frame "^6.22.0"
|
||||
builtin-modules "^1.1.1"
|
||||
chalk "^2.3.0"
|
||||
commander "^2.12.1"
|
||||
diff "^3.2.0"
|
||||
glob "^7.1.1"
|
||||
js-yaml "^3.7.0"
|
||||
minimatch "^3.0.4"
|
||||
resolve "^1.3.2"
|
||||
semver "^5.3.0"
|
||||
tslib "^1.8.0"
|
||||
tsutils "^2.12.1"
|
||||
|
||||
tslint@^5.9.1:
|
||||
version "5.9.1"
|
||||
resolved "https://registry.npmjs.org/tslint/-/tslint-5.9.1.tgz#1255f87a3ff57eb0b0e1f0e610a8b4748046c9ae"
|
||||
@@ -8148,12 +8071,6 @@ type-is@~1.6.15, type-is@~1.6.16:
|
||||
media-typer "0.3.0"
|
||||
mime-types "~2.1.18"
|
||||
|
||||
typeable-promisify@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmjs.org/typeable-promisify/-/typeable-promisify-1.0.1.tgz#005d43502e7753affccc8af8c05e3ac24f30e617"
|
||||
dependencies:
|
||||
any-promise "^1.3.0"
|
||||
|
||||
typedarray@^0.0.6:
|
||||
version "0.0.6"
|
||||
resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
||||
@@ -8218,6 +8135,10 @@ ulid@^2.3.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.npmjs.org/ulid/-/ulid-2.3.0.tgz#93063522771a9774121a84d126ecd3eb9804071f"
|
||||
|
||||
ultron@~1.1.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
|
||||
|
||||
unherit@^1.0.4:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmjs.org/unherit/-/unherit-1.1.0.tgz#6b9aaedfbf73df1756ad9e316dd981885840cd7d"
|
||||
@@ -8256,6 +8177,17 @@ unified@^6.1.5, unified@^6.1.6:
|
||||
x-is-function "^1.0.4"
|
||||
x-is-string "^0.1.0"
|
||||
|
||||
unified@^6.2.0:
|
||||
version "6.2.0"
|
||||
resolved "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba"
|
||||
dependencies:
|
||||
bail "^1.0.0"
|
||||
extend "^3.0.0"
|
||||
is-plain-obj "^1.1.0"
|
||||
trough "^1.0.0"
|
||||
vfile "^2.0.0"
|
||||
x-is-string "^0.1.0"
|
||||
|
||||
union-value@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"
|
||||
@@ -8616,9 +8548,9 @@ webpack-sources@^1.0.1, webpack-sources@^1.1.0:
|
||||
source-list-map "^2.0.0"
|
||||
source-map "~0.6.1"
|
||||
|
||||
webpack@^4.5.0:
|
||||
version "4.6.0"
|
||||
resolved "https://registry.npmjs.org/webpack/-/webpack-4.6.0.tgz#363eafa733710eb0ed28c512b2b9b9f5fb01e69b"
|
||||
webpack@^4.7.0:
|
||||
version "4.7.0"
|
||||
resolved "https://registry.npmjs.org/webpack/-/webpack-4.7.0.tgz#a04f68dab86d5545fd0277d07ffc44e4078154c9"
|
||||
dependencies:
|
||||
acorn "^5.0.0"
|
||||
acorn-dynamic-import "^3.0.0"
|
||||
@@ -8772,6 +8704,14 @@ write@^0.2.1:
|
||||
dependencies:
|
||||
mkdirp "^0.5.1"
|
||||
|
||||
ws@~3.3.1:
|
||||
version "3.3.3"
|
||||
resolved "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
|
||||
dependencies:
|
||||
async-limiter "~1.0.0"
|
||||
safe-buffer "~5.1.0"
|
||||
ultron "~1.1.0"
|
||||
|
||||
x-is-function@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.npmjs.org/x-is-function/-/x-is-function-1.0.4.tgz#5d294dc3d268cbdd062580e0c5df77a391d1fa1e"
|
||||
@@ -8796,6 +8736,10 @@ xdg-trashdir@^2.1.1:
|
||||
user-home "^2.0.0"
|
||||
xdg-basedir "^2.0.0"
|
||||
|
||||
xmlhttprequest-ssl@~1.5.4:
|
||||
version "1.5.5"
|
||||
resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"
|
||||
|
||||
xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
|
||||
@@ -8889,3 +8833,7 @@ yargs@~3.10.0:
|
||||
cliui "^2.1.0"
|
||||
decamelize "^1.0.0"
|
||||
window-size "0.1.0"
|
||||
|
||||
yeast@0.1.2:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
|
||||
|
||||
Reference in New Issue
Block a user