diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 389596190..b64a06fce 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -47,7 +47,6 @@ jobs: with: github_token: ${{ secrets.GITHUB_TOKEN }} branch: ${{ github.ref }} - continue-on-error: true # Merge @latest release back to @next. # @@ -58,3 +57,11 @@ jobs: github_token: ${{ secrets.GITHUB_TOKEN }} branch: next continue-on-error: true + + # Sync docs to rdmd.readme.io + # + - name: Sync docs to rdmd.readme.io + if: "github.ref == 'refs/heads/master'" + run: npm run sync -- --key=$KEY + env: + KEY: ${{ secrets.RDME_KEY }} diff --git a/example/Fixtures/Syntax/callouts.md b/docs/callouts.md similarity index 74% rename from example/Fixtures/Syntax/callouts.md rename to docs/callouts.md index 4cc92efbe..0c0fd8017 100644 --- a/example/Fixtures/Syntax/callouts.md +++ b/docs/callouts.md @@ -1,3 +1,17 @@ +--- +title: "Callouts" +slug: "callouts" +hidden: false +metadata: + title: "Callouts — ReadMe-Favored Markdown" + description: "Callouts are very nearly equivalent to standard Markdown block quotes in their syntax, other than some specific requirements on their content: To be considered a “callout”, a block quote must start with an initial emoji, which is used to determine the callout's theme." + image: + 0: "https://files.readme.io/9134da7-rdmd.readme-stage-pr-2438.readme.ninja_docs_callouts.png" + 1: "rdmd.readme-stage-pr-2438.readme.ninja_docs_callouts.png" + 2: 530 + 3: 173 + 4: "#edf3ec" +--- [block:api-header] { "title": "Syntax" @@ -5,7 +19,7 @@ [/block] Callouts are very nearly equivalent to standard Markdown block quotes in their syntax, other than some specific requirements on their content: To be considered a “callout”, a block quote must start with an initial emoji. This is used to determine the callout's theme. Here's an example of how you might write a warning callout. - > 👍 Success + > 👍 [Success](#edge-cases) > > Vitae reprehenderit at aliquid error voluptates eum dignissimos. @@ -19,19 +33,6 @@ Default themes are specified using one of the following emojis. (If you don't li | 👍 | `.callout_okay` | ✅ | | 🚧 | `.callout_warn` | ⚠️ | | ❗️ | `.callout_error` | 🛑 | - -
-
Tips & Tricks
- -If you have a block quote that starts with an initial emoji which *should not* be rendered as a ReadMe callout, just bold the emoji. It's a bit of a hack for sure, but it's easy enough, and hey: it works! So this: - - > **👋** Lorem ipsum dolor sit amet consectetur adipisicing elit. - -Renders to a plain ol' block quote: - -> **👋** Lorem ipsum dolor sit amet consectetur adipisicing elit. - -

[block:api-header] { "title": "Examples" @@ -61,6 +62,22 @@ If a callout starts with an emoji that's not dedicated to one of the themes (abo > 🥇 Themeless > > Lorem ipsum dolor sit amet consectetur adipisicing elit. + + + +
Tips & Tricks
+ +If you have a block quote that starts with an initial emoji which *should not* be rendered as a ReadMe callout, just bold the emoji. It's a bit of a hack for sure, but it's easy enough, and hey: it works! So this: + + > **👋** Lorem ipsum dolor sit amet consectetur adipisicing elit. + +Renders to a plain ol' block quote: + +> **👋** Lorem ipsum dolor sit amet consectetur adipisicing elit. + +

[block:api-header] { "title": "Custom CSS" @@ -89,6 +106,11 @@ Callouts come in [various themes](#section--examples-). These can be customized Each callout will also have a `theme` attribute that's set to it's emoji prefix. Combined with a basic attribute selector, we should be able to create entirely new styles per-emoji, in addition to the built in themes above! +```markdown Markdown Syntax +> 🎅 Old Saint Nick +> +> 'Twas the night before Christmas, when all through the house not a creature was stirring, not even a mouse. The stockings were hung by the chimney with care, in hopes that St. Nicholas soon would be there. The children were nestled all snug in their beds, while visions of sugar plums danced in their heads. +``` ```css Custom CSS .markdown-body .callout[theme="🎅"] { --background: #c54245; @@ -96,14 +118,9 @@ Each callout will also have a `theme` attribute that's set to it's emoji prefix. --text: #f5fffa; } ``` -```markdown Markdown Syntax -> 🎅 Old Saint Nick -> -> 'Twas the night before Christmas, when all through the house not a creature was stirring, not even a mouse. The stockings were hung by the chimney with care, in hopes that St. Nicholas soon would be there. The children were nestled all snug in their beds, while visions of sugar plums danced in their heads. -``` ```html Generated HTML -
+

🎅 Old Saint Nick

'Twas the night before Christmas, when all through the house not a creature was stirring, not even a mouse. The stockings were hung by the chimney with care, in hopes that St. Nicholas soon would be there. The children were nestled all snug in their beds, while visions of sugar plums danced in their heads.

@@ -117,47 +134,45 @@ And voilà... ### Custom Icons -Emojis are already a pretty good starting point as far as default icon options go! There are a *lot* of 'em, and they're supported across nearly all platforms. But what if we're going for a different look, or need to match our docs to a branding kit? Icons are a big part of setting the "tone" for your site. +What if we wanted to use a custom icon instead of the emoji? With just a touch of Custom CSS, we should be able to display the callout's 📷 emoji using the icon glyph we found on FontAwesome's site! +[block:code] +{ + "codes": [ + { + "code": ".callout[theme=📷] {\n --emoji: unset;\n --icon: \"\\f083\";\n --icon-color: #c50a50;\n}", + "language": "css", + "name": "Custom Icons CSS" + } + ] +} +[/block] +
This works like a charm! (Click to compare the custom icon against the default.)
-With a touch of Custom CSS, we should be able to get a callout using the 📷 emoji to display an icon font glyph! +Here's what it looks like by default: -```css Custom CSS -.callout[theme=📷] { - --emoji: unset; - --icon: "\f083"; /* copied front FontAwesome */ - --icon-color: #c50a50; -} -``` -``` Markdown Syntax > 📷 Cool pix! -> > Vitae reprehenderit at aliquid error voluptates eum dignissimos. -``` - -This works like a charm: -
+And here it is with our custom CSS: +
> 📸 Cool pix! > Vitae reprehenderit at aliquid error voluptates eum dignissimos. -[block:html] -{ - "html": "" -} -[/block] - - -
Setting the Custom Icon Font
The custom icon font defaults to `FontAwesome`, but you can use any font family available on the page by setting the `--icon-font` variable! ```css .callout[theme=📷] { - --icon-font-family: FontAwesome; /* copied from https://fontawesome.com/v4.7.0/icon/camera-retro */ + /* etc. */ + --icon-font-family: } ``` +[block:html] +{ + "html": "" +} +[/block] -

[block:api-header] { "title": "Edge Cases" @@ -165,15 +180,15 @@ The custom icon font defaults to `FontAwesome`, but you can use any font family [/block] Callouts don't need to have any body text: -> 🥇 No body text. +> 🥈 No body text. You can also skip the title, if you're so inclined! -> 🥈 +> 🥉 > > Lorem ipsum dolor sit amet consectetur adipisicing elit. Error eos animi obcaecati quod repudiandae aliquid nemo veritatis ex, quos delectus minus sit omnis vel dolores libero, recusandae ea dignissimos iure? [block:html] { "html": "" } -[/block] +[/block] \ No newline at end of file diff --git a/example/Fixtures/Syntax/code-blocks/code-block-tests.md b/docs/code-block-tests.md similarity index 94% rename from example/Fixtures/Syntax/code-blocks/code-block-tests.md rename to docs/code-block-tests.md index 6e603cb7d..69e4bc999 100644 --- a/example/Fixtures/Syntax/code-blocks/code-block-tests.md +++ b/docs/code-block-tests.md @@ -1,5 +1,11 @@ +--- +title: "Code Block Tests" +slug: "code-block-tests" +hidden: true +--- Basics === + ### Simple ```php ; diff --git a/example/Fixtures/Syntax/code-blocks.md b/docs/code-blocks.md similarity index 96% rename from example/Fixtures/Syntax/code-blocks.md rename to docs/code-blocks.md index de43af1ea..d7e5e6b78 100644 --- a/example/Fixtures/Syntax/code-blocks.md +++ b/docs/code-blocks.md @@ -1,3 +1,9 @@ +--- +title: "Code Blocks" +slug: "code-blocks" +hidden: false +--- + [block:api-header] { "title": "Examples" @@ -106,4 +112,4 @@ We support syntax highlighting on a number of languages: | SQL | `cql`, `mssql`, `mysql`, `plsql`, `postgres`, `postgresql`, `pgsql`, `sql`, `sqlite` | | Swift | `swift` | | TypeScript | `ts`, `typescript` | -| YAML | `yaml`, `yml` | +| YAML | `yaml`, `yml` | \ No newline at end of file diff --git a/docs/custom-css.md b/docs/custom-css.md new file mode 100644 index 000000000..14ce3de1f --- /dev/null +++ b/docs/custom-css.md @@ -0,0 +1,55 @@ +--- +title: "Custom Styling" +slug: "custom-css" +excerpt: "Styling best-practices and CSS selector references." +hidden: false +--- +By and large, the new markdown processor outputs standard HTML. This means most basic CSS element selectors will continue to work seamlessly. Depending on how complex your Markdown and custom CSS are, you should only have to update a few styles here and there! + +> 🐷 **Need CSS Help?** +> +> We're always happy to help troubleshoot tricky styling issues! [Shoot us an email](mailto:support@readme.io?subject=ReadMe-Flavored+Markdown+Feedback), and we'll try to make ourselves useful. + +## Scoping Your Styles + +When writing custom styles for the new processor, you should explicitly target content generated by the new Markdown engine using the **`.markdown-body`** class prefix. You can also style Markdown for a specific template by adding additional prefixes. + +```scss Markdown Selector Scope +/* Guides Pages */ +#content-body .markdown-body {} + +/* Reference Pages */ +#api-explorer .markdown-body {} +#api-explorer .markdown-body > .pin {} /* target pinned sidebar content */ +``` + +> **Note**: The `.markdown-body` prefix is unique to the new engine, which is useful when refactoring custom styles. In the run up to the production release, this can be a useful “hook” for progressively enhancing your custom CSS. Just prefix your selectors with the `.markdown-body` class and appending the new ruleset to your custom CSS + +## CSS Variables Theming + +The new Markdown engine uses CSS variables to enable simple theming for all modern browsers (i.e. IE11+.) Certain custom components offer their own theme variables. The markdown engine also offers some high-level theming variables: + +```css +.markdown-body { + --markdown-radius: 3px; + --markdown-font: Papyrus, serif; + --markdown-text: #333; + --markdown-title: hotpink; + --markdown-lineHeight: 2; +} +``` + +## Styling Components + +### Callouts + +Our callouts have been refactored to be based on the default block quote element and styling. It comes with various themes, which can be customized using the following selectors. [**More**](doc:callouts)... + +### Tables + +Tables have been simplified to mirror a more standard implementation, which should make them easier to style. [**More**](doc:tables)... +[block:html] +{ + "html": "" +} +[/block] \ No newline at end of file diff --git a/docs/embeds.md b/docs/embeds.md new file mode 100644 index 000000000..9b1bdbbce --- /dev/null +++ b/docs/embeds.md @@ -0,0 +1,35 @@ +--- +title: "Embeds" +slug: "embeds" +hidden: false +--- +[block:api-header] +{ + "title": "Syntax" +} +[/block] +Embedded content is written as a simple Markdown link, with a title of "@embed", like so: + + [Embed Title](https://youtu.be/8bh238ekw3 "@embed") +[block:api-header] +{ + "title": "Examples" +} +[/block] +### Magic Block +[block:embed] +{ + "html": "", + "url": "https://www.youtube.com/watch?v=J3-uKv1DShQ&feature=youtu.be", + "title": "Funny Solidier Drop Kick", + "favicon": "https://s.ytimg.com/yts/img/favicon-vfl8qSV2F.ico", + "image": "https://i.ytimg.com/vi/J3-uKv1DShQ/hqdefault.jpg" +} +[/block] +### Markdown Block + +[Embed Title](https://youtu.be/8bh238ekw3 "@embed") + +## Known Issues + +At the moment, embed links written in the new ReadMe-flavored markdown syntax will simply display the link. (Magic block embeds will continue to work, though!) We're aware of the shortcoming, and plan to refactor this component as we move forward. \ No newline at end of file diff --git a/example/Fixtures/Syntax/features.md b/docs/features.md similarity index 75% rename from example/Fixtures/Syntax/features.md rename to docs/features.md index b6d17e471..f040a24f4 100644 --- a/example/Fixtures/Syntax/features.md +++ b/docs/features.md @@ -1,11 +1,12 @@ +--- +title: "And more..." +slug: "features" +excerpt: "Additional Markdown features of the ReadMe platform implementation." +hidden: false +--- We've also built a lot of great features right in to the ReadMe app, which work on top of our markdown engine to give your developers a best-in-class documentation experience. These features aren't all baked in to the new engine itself, but they're worth mentioning nonetheless! -## Sectioning Semantics - -- Automatic **table of contents** based on sections. -- Generated **[heading anchor links](doc:headings#section-incremented-anchors)**. - -## Data Injection +## Data Replacement #### User Variables @@ -30,3 +31,12 @@ You can use GitHub-style emoji short codes (feat. Owlbert!) :sparkles: :owlbert-reading: This expands out to: “:sparkles: :owlbert-reading:” + +## Generative Semantics + +- Markup-based TOC generation. +- Auto-generated [heading anchors](doc:headings#section-incremented-anchors). + +## Known Issues + +- Variable and glossary term expansions are rendered even when they've been manually escaped by the author. \ No newline at end of file diff --git a/docs/getting-started.md b/docs/getting-started.md new file mode 100644 index 000000000..02d96dabf --- /dev/null +++ b/docs/getting-started.md @@ -0,0 +1,75 @@ +--- +title: "Getting Started" +slug: "getting-started" +excerpt: "ReadMe's Markdown engine, with notes of GitHub, modern styles, and a hint of magic." +hidden: false +metadata: + title: "ReadMe-Flavored Markdown" + description: "ReadMe's Markdown engine, with notes of GitHub, modern styles, and a hint of magic." + image: + 0: "https://files.readme.io/aafdc0b-share-image" + 1: "share-image" + 2: 600 + 3: 315 + 4: "#2caaf8" +--- +[](https://www.npmjs.com/package/@readme/markdown) A remark-based Markdown engine for parsing and rendering ReadMe docs. (In fact, you're looking at it right now, since we've used it to render every doc in this project!) + +```bash +npm i -S @readme/markdown +``` + +> 🧙‍ **Backwards Compatible** +> +> Our old engine was based on a format we call "magic blocks". This was our custom, JSON-based syntax for writing rich components alongside plain-text Markdown. To provide seamless backwards-compatibility, the engine ships with a built-in parser for the older format so we can transpile it directly to our new ReadMe-flavored syntax. + +## Usage + +By default, the Markdown library exports a function which takes a string of [ReadMe-flavored markdown](#readme-flavored-syntax) and returns a tree of React components: + +```javascript Component +import React from 'react'; +import rdmd from '@readme/markdown'; + +export default ({ body }) => ( +
+ {rdmd(body)} +
+); +``` + +## Exports + +### Transformers + +In addition to the default React processor, the package exports a few other methods for parsing and rendering ReadMe-flavored markdown: + +```javascript +import * as rdmd from '@readme/markdown'; +``` + +This gives you various methods and utilities: + +| Export | Description | Arguments | +|:------------- |:---------------------------------------------- | ----------------:| +| *`react`* |_default;_ returns a VDOM React tree | `text`, `options`| +| *`html`* | transform markdown in to HTML | `text`, `options`| +| *`ast`* | transform markdown to an mdast object | `text`, `options`| +| *`md`* | transform mdast in to ReadMe-flavored markdown | `ast`, `options`| + +### Utilities + +The `rdmd.utils` export gives you access to various tools and configuration settings: + +- **`options`** + _a hash of default settings accepted by the rdmd engine._ + - `markdownOptions`—configuration object passed to `remark` + - `correctnewlines`—flag to toggle newline transformation. + - `normalize`—auto-normalize magic blocks before processing. +- **``** and **``** + React provider and consumer wrappers for [ReadMe data replacement.](doc:features#section-data-replacement). +[block:html] +{ + "html": "" +} +[/block] \ No newline at end of file diff --git a/example/Fixtures/Syntax/headings.md b/docs/headings.md similarity index 73% rename from example/Fixtures/Syntax/headings.md rename to docs/headings.md index 70f0be711..2efd021b3 100644 --- a/example/Fixtures/Syntax/headings.md +++ b/docs/headings.md @@ -1,16 +1,17 @@ +--- +title: "Headings" +slug: "headings" +hidden: false +--- ## Examples -# Heading Block 1 - -## Heading Block 2 - -### Heading Block 3 - -#### Heading Block 4 - -##### Heading Block 5 - -###### Heading Block 6 +> ### Heading Block 3 +> +> #### Heading Block 4 +> +> ##### Heading Block 5 +> +> ###### Heading Block 6 ## Edge Cases @@ -45,9 +46,7 @@ For top-level headings, the underline notation is valid: ### Incremented Anchors -Occasionally, a single doc might contain multiple headings with the same text, which can cause the generated anchor links to conflict. ReadMe's new markdown processor normalizes heading anchors by auto-incrementing similar heading's IDs. - -Try clicking on either of these section headers and comparing the two URLs: +Occasionally, a single doc might contain multiple headings with the same text, which can cause the generated anchor links to conflict. ReadMe's new markdown processor normalizes heading anchors by auto-incrementing similar heading's IDs. Try it out by clicking on this section header _or_ the following sub-section title: -> #### Incremented Heading Anchors -> #### Incremented Heading Anchors +#### Incremented Heading Anchors +#### Incremented Heading Anchors \ No newline at end of file diff --git a/docs/images.md b/docs/images.md new file mode 100644 index 000000000..2ba8013fd --- /dev/null +++ b/docs/images.md @@ -0,0 +1,21 @@ +--- +title: "Images" +slug: "images" +hidden: false +--- +[block:callout] +{ + "type": "warning", + "title": "Known Issue", + "body": "The ReadMe-flavored markdown engine does not currently support lightbox functionality (click-to-zoom). **[But we're working on it!](https://github.com/readmeio/api-explorer/issues/621)**" +} +[/block] +## Syntax + + ![Alt text](https://cdn.path.to/some/image.jpg "Image Title") +[block:api-header] +{ + "title": "Examples" +} +[/block] +![Bro eats pizza and makes an OK gesture.](https://files.readme.io/6f52e22-man-eating-pizza-and-making-an-ok-gesture.jpg "Pizza Face") \ No newline at end of file diff --git a/example/Fixtures/Syntax/lists.md b/docs/lists.md similarity index 50% rename from example/Fixtures/Syntax/lists.md rename to docs/lists.md index 77d30bb29..86dd1717b 100644 --- a/example/Fixtures/Syntax/lists.md +++ b/docs/lists.md @@ -1,39 +1,24 @@ -[block:api-header] -{ - "title": "Syntax" -} -[/block] -```shell Bullet Lists -- Item Zed - - Nested Item # indented 2 spaces -* Item Alt # alternate bullet syntax -``` -```shell Numeric Lists -1. Item Zed - 1. Nested Numeric # indented 3 spaces -2. Item One -``` -```shell Check Lists -- [ ] Open Item -- [x] Item Done -``` +--- +title: "Lists" +slug: "lists" +hidden: false +--- [block:api-header] { "title": "Examples" } [/block] -
- Bulleted List
+### Unordered Lists + +#### Bulleted List - Item Zed - * Nested Item - * Nested Item + * Nested Bullet + * Nested Bullet - Item One - Item Two -
-
- Ordered List
+### Ordered List 1. Item Zed 1. Nested Numeric @@ -41,16 +26,12 @@ 1. Item One 2. Item Two -
-
- Check List
+#### Check List - [ ] Task Zed - [x] Task One - [ ] Task Two -
- ## Edge Cases ### Split Lists @@ -81,9 +62,4 @@ Starting an ordered list with any number will increment continuously from that p 98. Starting in media res 98. Another list item -98. Yet another item -[block:html] -{ - "html": "" -} -[/block] +98. Yet another item \ No newline at end of file diff --git a/docs/syntax-extensions.md b/docs/syntax-extensions.md new file mode 100644 index 000000000..c383aeef3 --- /dev/null +++ b/docs/syntax-extensions.md @@ -0,0 +1,31 @@ +--- +title: "Flavored Syntax" +slug: "syntax-extensions" +excerpt: "Specs and examples of ReadMe's (restrained) Markdown syntax extensions." +hidden: false +--- +Custom Blocks +--- + +### Code Tabs + +A tabbed interface for displaying multiple code blocks. These are written nearly identically to a series of vanilla markdown code snippets, except for their distinct *lack* of an additional line break separating each subsequent block. [**Syntax & examples**.](doc:code-blocks) + +### Callouts + +Callouts are very nearly equivalent to standard Markdown block quotes in their syntax, other than some specific requirements on their content: To be considered a “callout”, the block quote must start with an initial emoji, which is used to determine the callout's theme. [**Syntax & examples**.](doc:callouts) + +### Embeds + +Embedded content is written as a simple Markdown link, with a title of "@embed". [**Syntax & examples**.](doc:embeds) + +Standard Markdown +--- + +The engine also supports all standard markdown constructs, as well as CommonMark options, and most GitHub syntax extensions. + +- [**Tables**](doc:tables) +- [**Lists**](doc:lists) +- [**Headings**](doc:headings) +- [**Images**](doc:images) +- **Decorations** (link, strong, and emphasis tags, etc.) \ No newline at end of file diff --git a/example/Fixtures/Syntax/tables.md b/docs/tables.md similarity index 68% rename from example/Fixtures/Syntax/tables.md rename to docs/tables.md index df9f21f4e..0bad58a74 100644 --- a/example/Fixtures/Syntax/tables.md +++ b/docs/tables.md @@ -1,14 +1,18 @@ +--- +title: "Tables" +slug: "tables" +hidden: false +--- ## Syntax +> **Note**: table cells may contain inline decorations only. + | Left | Center | Right | |:-----|:--------:|------:| | L0 | **bold** | $1600 | | L1 | `code` | $12 | | L2 | _italic_ | $1 | -> ❗️ Table cells may contain inline decorations only. -> Lists, headings, and other block-level Markdown components are not valid and will cause errors. - ### Examples This example also shows off custom theming! @@ -26,11 +30,11 @@ Tables have been simplified to mirror a more standard implementation. We've also ```scss CSS Variables .markdown-body .rdmd-table { --table-text: black; - --table-head: #5b1c9f; + --table-head: #f44336; --table-head-text: white; - --table-stripe: #f0eaf7; - --table-edges: rgba(34, 5, 64, .5); - --table-row: white; + --table-stripe: #FFCDD2; + --table-edges: rgba(183, 28, 28, .33); + --table-row: #FFEBEE; } ``` ```scss CSS Selectors @@ -51,6 +55,6 @@ Tables have been simplified to mirror a more standard implementation. We've also ``` [block:html] { - "html": "" + "html": "" } -[/block] +[/block] \ No newline at end of file diff --git a/example/Fixtures/Syntax/code-blocks/vars-test.md b/docs/variable-tests.md similarity index 56% rename from example/Fixtures/Syntax/code-blocks/vars-test.md rename to docs/variable-tests.md index b203293d5..6b9f207d7 100644 --- a/example/Fixtures/Syntax/code-blocks/vars-test.md +++ b/docs/variable-tests.md @@ -1,3 +1,8 @@ +--- +title: "Variable Tests" +slug: "variable-tests" +hidden: true +--- <> and `<>` and: ``` @@ -8,4 +13,4 @@ and ```js const xyz = "<>"; -``` +``` \ No newline at end of file diff --git a/example/Fixtures/Syntax/embeds.md b/example/Fixtures/Syntax/embeds.md deleted file mode 100644 index ebd62bbb8..000000000 --- a/example/Fixtures/Syntax/embeds.md +++ /dev/null @@ -1,68 +0,0 @@ -[block:api-header] -{ - "title": "Syntax" -} -[/block] -Embedded content is written as a simple Markdown link, with a title of "@embed", like so: - - [Embed Title](https://youtu.be/8bh238ekw3 "@embed") -[block:api-header] -{ - "title": "Examples" -} -[/block] - -[block:embed] -{ - "html": false, - "url": "https://github.com/readmeio/api-explorer/pull/671", - "title": "RDMD CSS theming and style adjustments. by rafegoldberg · Pull Request #671 · readmeio/api-explorer", - "favicon": "https://github.com/favicon.ico", - "image": "img/readme-logo-white-on-blue.png" -} -[/block] - -[block:embed] -{ - "html": false, - "url": "https://www.nytimes.com/2020/05/03/us/politics/george-w-bush-coronavirus-unity.html", - "title": "George W. Bush Calls for End to Pandemic Partisanship", - "favicon": "https://www.nytimes.com/vi-assets/static-assets/favicon-4bf96cb6a1093748bf5b3c429accb9b4.ico", - "image": "img/nyt-thumbnail.jpg" -} -[/block] -
Magic Block (Embedly)
-[block:embed] -{ - "html": "", - "url": "https://www.youtube.com/watch?v=J3-uKv1DShQ&feature=youtu.be", - "title": "Funny Solidier Drop Kick", - "favicon": "https://s.ytimg.com/yts/img/favicon-vfl8qSV2F.ico", - "image": "https://i.ytimg.com/vi/J3-uKv1DShQ/hqdefault.jpg" -} -[/block] -
-
Magic Block (iFrame)
-[block:embed] -{ - "html": "", - "url": "https://www.google.com/maps/place/Mama's+Royal+Cafe/@37.829698,-122.258166,16z/data=!4m13!1m7!3m6!1s0x80857dfb145a04ff:0x96b17d967421636f!2s4126+Opal+St,+Oakland,+CA+94609!3b1!8m2!3d37.8296978!4d-122.2581661!3m4!1s0x0:0x722326b6c2ac7642!8m2!3d37.8277961!4d-122.2563006?hl=en", - "title": "Mama's Royal Cafe", - "favicon": "https://www.google.com/images/branding/product/ico/maps15_bnuw3a_32dp.ico", - "image": "http://maps-api-ssl.google.com/maps/api/staticmap?center=37.829698,-122.258166&zoom=15&size=250x250&sensor=false" -} -[/block] -
-
Markdown Block
- -[Embed Title](https://youtu.be/8bh238ekw3 "@embed") - -
- -## Known Issues -At the moment, embed links written in the new ReadMe-flavored markdown syntax will simply display the link. (Magic block embeds will continue to work, though!) We're aware of the shortcoming, and plan to refactor this component as we move forward. -[block:html] -{ - "html": "" -} -[/block] diff --git a/example/Fixtures/Syntax/images.md b/example/Fixtures/Syntax/images.md deleted file mode 100644 index 0c2fdb5e2..000000000 --- a/example/Fixtures/Syntax/images.md +++ /dev/null @@ -1,26 +0,0 @@ -## Syntax - - ![Alt text](https://cdn.path.to/some/image.jpg "This is some image...") -[block:api-header] -{ - "title": "Examples" -} -[/block] - -[block:image] -{ - "images": [ - { - "image": [ - "img/pizzabro.jpg", - "pizzabro.jpg", - 1024, - 682, - "#d1c8c5" - ], - "caption": "Click to zoom." - } - ] -} -[/block] - diff --git a/example/Fixtures/Syntax/index.js b/example/Fixtures/docs.js similarity index 52% rename from example/Fixtures/Syntax/index.js rename to example/Fixtures/docs.js index 852751400..f8e52390d 100644 --- a/example/Fixtures/Syntax/index.js +++ b/example/Fixtures/docs.js @@ -1,13 +1,14 @@ -import callouts from './callouts.md'; -import codeBlockTests from './code-blocks/code-block-tests.md'; -import codeBlockVarsTest from './code-blocks/vars-test.md'; -import codeBlocks from './code-blocks.md'; -import embeds from './embeds.md'; -import features from './features.md'; -import headings from './headings.md'; -import images from './images.md'; -import lists from './lists.md'; -import tables from './tables.md'; +import callouts from '../../docs/callouts.md'; +import codeBlocks from '../../docs/code-blocks.md'; +import embeds from '../../docs/embeds.md'; +import features from '../../docs/features.md'; +import headings from '../../docs/headings.md'; +import images from '../../docs/images.md'; +import lists from '../../docs/lists.md'; +import tables from '../../docs/tables.md'; + +import codeBlockTests from '../../docs/code-block-tests.md'; +import codeBlockVarsTest from '../../docs/variable-tests.md'; const lowerCase = str => str.replaceAll(/([a-z])([A-Z])/g, (_, p1, p2) => `${p1} ${p2.toLowerCase()}`); diff --git a/example/Fixtures/index.jsx b/example/Fixtures/index.jsx index ec20ccd9b..9bac7f1ad 100644 --- a/example/Fixtures/index.jsx +++ b/example/Fixtures/index.jsx @@ -1,7 +1,7 @@ import React, { useState } from 'react'; import PropTypes from 'prop-types'; -import syntaxFixtures from './Syntax'; +import syntaxFixtures from './docs'; const Fixtures = ({ render, selected, getRoute }) => { const [edited, setEdited] = useState(null); diff --git a/example/Header/index.jsx b/example/Header/index.jsx index cac1dde8a..3adbd70e8 100644 --- a/example/Header/index.jsx +++ b/example/Header/index.jsx @@ -5,9 +5,14 @@ function Header() {
); diff --git a/example/demo.scss b/example/demo.scss index 36e6f456b..271acc194 100644 --- a/example/demo.scss +++ b/example/demo.scss @@ -1,24 +1,47 @@ #rdmd-demo { + --rdmd-demo-container: 1200px; + --rdmd-demo-mono: menlo, monospace; + --rdmd-demo-blue: #018ef5; + .rdmd-demo--header { display: flex; flex-direction: row; + align-items: center; justify-content: center; - background-color: #018ef5; - height: 64px + background-color: var(--rdmd-demo-blue); + height: 64px; } .rdmd-demo--header-content { - width: 1200px; + display: flex; + align-items: center; + width: var(--rdmd-demo-container); padding: 0 2em; color: white; display: flex; align-items: center; - h1 { margin: 0; - margin-top: .25em; font-size: 1.5em; + line-height: 1; font-weight: 500; + code { + font-size: inherit; + font-family: var(--rdmd-demo-mono); + font-weight: bold; + } + } + #docsLink { + margin-left: auto; + padding: 0.4em; + line-height: 1; + color: white; + text-decoration: none; + border-radius: 0.3em; + &:hover { + color: var(--rdmd-demo-blue); + background: white; + } } } @@ -41,18 +64,17 @@ } .rdmd-demo--content { - max-width: 1200px; + max-width: var(--rdmd-demo-container); display: flex; flex-direction: row; } .rdmd-demo--fixture-select { - padding: 1em; + padding: 0 0 1em; border: none; border-top: 1px solid #eee; display: flex; justify-content: space-between; - } .rdmd-demo--label { @@ -65,9 +87,10 @@ color: #555; } - [name="demo-editor"] { + [name='demo-editor'] { display: block; color: #555; + font-family: var(--rdmd-demo-mono); min-height: 32em; height: calc(100vh - 20em); width: 100%; @@ -77,7 +100,8 @@ padding: 1em; } - .rdmd-demo--editor, .rdmd-demo--display { + .rdmd-demo--editor, + .rdmd-demo--display { width: 600px; padding: 2em; box-sizing: border-box; @@ -85,7 +109,13 @@ .rdmd-demo--editor-container { position: sticky; - top: 2em; + top: -1px; + height: 100vh; + display: flex; + flex-flow: nowrap column; + > [name='demo-editor'] { + flex: 1; + } } .rdmd-demo--markdown-header { @@ -96,7 +126,7 @@ line-height: 30px; margin-bottom: 1em; margin-top: 0; - padding-bottom: .5em; + padding-bottom: 0.5em; text-transform: capitalize; word-wrap: break-word; } diff --git a/index.js b/index.js index 156ae1059..79b500cfd 100644 --- a/index.js +++ b/index.js @@ -9,6 +9,7 @@ const unified = require('unified'); const sanitize = require('./sanitize.schema'); const generateTOC = require('mdast-util-toc'); + const mapNodes = require('unist-util-map'); const { selectAll } = require('unist-util-select'); @@ -19,6 +20,7 @@ const remarkParse = require('remark-parse'); const remarkStringify = require('remark-stringify'); const remarkBreaks = require('remark-breaks'); const remarkSlug = require('remark-slug'); +const remarkFrontmatter = require('remark-frontmatter'); // rehype plugins const rehypeSanitize = require('rehype-sanitize'); @@ -110,6 +112,7 @@ export function processor(opts = {}) { */ return unified() .use(remarkParse, opts.markdownOptions) + .use(remarkFrontmatter, ['yaml', 'toml']) .data('settings', opts.settings) .data('compatibilityMode', opts.compatibilityMode) .use(!opts.correctnewlines ? remarkBreaks : () => {}) diff --git a/package-lock.json b/package-lock.json index e75335216..7faffebf6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,43 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@apidevtools/json-schema-ref-parser": { + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz", + "integrity": "sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg==", + "dev": true, + "requires": { + "@jsdevtools/ono": "^7.1.3", + "call-me-maybe": "^1.0.1", + "js-yaml": "^3.13.1" + } + }, + "@apidevtools/openapi-schemas": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.0.4.tgz", + "integrity": "sha512-ob5c4UiaMYkb24pNhvfSABShAwpREvUGCkqjiz/BX9gKZ32y/S22M+ALIHftTAuv9KsFVSpVdIDzi9ZzFh5TCA==", + "dev": true + }, + "@apidevtools/swagger-methods": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", + "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", + "dev": true + }, + "@apidevtools/swagger-parser": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.0.2.tgz", + "integrity": "sha512-JFxcEyp8RlNHgBCE98nwuTkZT6eNFPc1aosWV6wPcQph72TSEEu1k3baJD4/x1qznU+JiDdz8F5pTwabZh+Dhg==", + "dev": true, + "requires": { + "@apidevtools/json-schema-ref-parser": "^9.0.6", + "@apidevtools/openapi-schemas": "^2.0.4", + "@apidevtools/swagger-methods": "^3.0.2", + "@jsdevtools/ono": "^7.1.3", + "call-me-maybe": "^1.0.1", + "z-schema": "^4.2.3" + } + }, "@babel/code-frame": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", @@ -3190,6 +3227,12 @@ } } }, + "@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", + "dev": true + }, "@mapbox/hast-util-table-cell-style": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@mapbox/hast-util-table-cell-style/-/hast-util-table-cell-style-0.1.3.tgz", @@ -4539,6 +4582,12 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, + "array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true + }, "array-filter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", @@ -5569,6 +5618,12 @@ "get-intrinsic": "^1.0.0" } }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -5672,6 +5727,21 @@ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "charm": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/charm/-/charm-1.0.1.tgz", + "integrity": "sha1-aFZqelU9T+kXlwMN0YUtDdbvqC0=", + "dev": true, + "requires": { + "inherits": "^2.0.1" + } + }, "cheerio": { "version": "1.0.0-rc.3", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", @@ -5795,6 +5865,21 @@ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.2.0.tgz", + "integrity": "sha1-hQeHN5E7iA9uyf/ntl6D7Hd2KE8=", + "dev": true + }, "cli-table": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.4.tgz", @@ -5830,6 +5915,12 @@ } } }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, "cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -5936,6 +6027,12 @@ "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", "dev": true }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -5950,12 +6047,59 @@ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==" }, + "command-line-args": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz", + "integrity": "sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg==", + "dev": true, + "requires": { + "array-back": "^3.0.1", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + } + }, + "command-line-usage": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.1.tgz", + "integrity": "sha512-F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA==", + "dev": true, + "requires": { + "array-back": "^4.0.1", + "chalk": "^2.4.2", + "table-layout": "^1.0.1", + "typical": "^5.2.0" + }, + "dependencies": { + "array-back": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.1.tgz", + "integrity": "sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg==", + "dev": true + }, + "typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true + } + } + }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "comment-patterns": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/comment-patterns/-/comment-patterns-0.11.0.tgz", + "integrity": "sha512-YgQOR0QcCIE0mYFywZ0ToK8r7V+48FjEWA6Jflfvxf5JlGZtJEi8BzMcc4BXcaVUyU1DUSGEhppSUfJOI2YC/w==", + "dev": true, + "requires": { + "lodash": "^4.17.11" + } + }, "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -6069,6 +6213,46 @@ } } }, + "config": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/config/-/config-3.3.3.tgz", + "integrity": "sha512-T3RmZQEAji5KYqUQpziWtyGJFli6Khz7h0rpxDwYNjSkr5ynyTWwO7WpfjHzTXclNCDfSWQRcwMb+NwxJesCKw==", + "dev": true, + "requires": { + "json5": "^2.1.1" + } + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "confusing-browser-globals": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", @@ -7303,6 +7487,12 @@ "safer-buffer": "^2.1.0" } }, + "editor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/editor/-/editor-1.0.0.tgz", + "integrity": "sha1-YMf4e9YrzGqJT6jM1q+3gjok90I=", + "dev": true + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -7725,6 +7915,12 @@ "is-symbol": "^1.0.2" } }, + "es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", + "dev": true + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -8555,6 +8751,12 @@ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "dev": true }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -8800,6 +9002,17 @@ } } }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, "extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", @@ -8941,6 +9154,14 @@ "reusify": "^1.0.4" } }, + "fault": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", + "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", + "requires": { + "format": "^0.2.0" + } + }, "faye-websocket": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", @@ -9241,6 +9462,15 @@ } } }, + "find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dev": true, + "requires": { + "array-back": "^3.0.1" + } + }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -9492,6 +9722,11 @@ "mime-types": "^2.1.12" } }, + "format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=" + }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -10068,6 +10303,18 @@ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, + "gray-matter": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.2.tgz", + "integrity": "sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw==", + "dev": true, + "requires": { + "js-yaml": "^3.11.0", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + } + }, "growly": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", @@ -10978,6 +11225,101 @@ "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "internal-ip": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", @@ -11015,6 +11357,12 @@ "p-is-promise": "^3.0.0" } }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", @@ -11201,8 +11549,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", - "dev": true, - "optional": true + "dev": true }, "is-extendable": { "version": "0.1.1", @@ -11394,7 +11741,6 @@ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, - "optional": true, "requires": { "is-docker": "^2.0.0" } @@ -11405,6 +11751,15 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, + "isemail": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", + "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", + "dev": true, + "requires": { + "punycode": "2.x.x" + } + }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -14286,6 +14641,15 @@ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, + "json2yaml": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/json2yaml/-/json2yaml-1.1.0.tgz", + "integrity": "sha1-VBTZB/mBZYa4DFE+wuOusquBmmw=", + "dev": true, + "requires": { + "remedial": "1.x" + } + }, "json3": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", @@ -14398,6 +14762,15 @@ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "dev": true }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -14414,6 +14787,12 @@ "type-check": "~0.4.0" } }, + "line-counter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/line-counter/-/line-counter-1.1.0.tgz", + "integrity": "sha1-EN8sBGrTVG5yT7pV+nLN4YpqAfM=", + "dev": true + }, "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", @@ -14481,6 +14860,12 @@ "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", "dev": true }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, "lodash.capitalize": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", @@ -14648,6 +15033,15 @@ "tmpl": "1.0.x" } }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", @@ -14835,6 +15229,25 @@ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "dependencies": { + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true + } + } + }, "memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", @@ -15358,12 +15771,30 @@ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, + "multilang-extract-comments": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/multilang-extract-comments/-/multilang-extract-comments-0.3.3.tgz", + "integrity": "sha512-9NqT+Cf1yvM/eYp+ILUczzz2ca4upYbdQQwSn550ldFA7hX2WVZzo7jaddFkSfq6EkIkPaeWBL+LP+BZuHK0oA==", + "dev": true, + "requires": { + "comment-patterns": "^0.11.0", + "line-counter": "^1.0.3", + "lodash": "^4.17.11", + "quotemeta": "0.0.0" + } + }, "multimap": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/multimap/-/multimap-1.1.0.tgz", "integrity": "sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==", "dev": true }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, "nan": { "version": "2.14.1", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", @@ -15637,6 +16068,15 @@ } } }, + "node-readfiles": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz", + "integrity": "sha1-271K8SE04uY1wkXvk//Pb2BnOl0=", + "dev": true, + "requires": { + "es6-promise": "^3.2.1" + } + }, "node-releases": { "version": "1.1.67", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz", @@ -15756,6 +16196,51 @@ } } }, + "node-status": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-status/-/node-status-1.0.0.tgz", + "integrity": "sha1-eQanxHplh9A0lr907GNKuqA/joA=", + "dev": true, + "requires": { + "charm": "1.0.1", + "cli-cursor": "^1.0.2", + "cli-spinners": "0.2.0", + "colors": "1.1.2" + }, + "dependencies": { + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + } + } + }, "nopt": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", @@ -19364,6 +19849,42 @@ "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", "dev": true }, + "oas": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/oas/-/oas-3.6.1.tgz", + "integrity": "sha512-WDucZ+wEoLUeAruY8Egnk5KTAh5KR47qqKvh9oDWJ1o9G571QFLDlX65r4CoxcDvA5znk8O7bxFifIxHFYDDOQ==", + "dev": true, + "requires": { + "cardinal": "^2.1.1", + "colors": "^1.1.2", + "figures": "^3.0.0", + "glob": "^7.1.2", + "inquirer": "^7.0.1", + "json2yaml": "^1.1.0", + "jsonfile": "^6.0.0", + "lodash": "^4.17.11", + "minimist": "^1.2.0", + "node-status": "^1.0.0", + "oas-normalize": "2.3.1", + "open": "^7.0.0", + "request": "^2.88.0", + "swagger-inline": "3.2.2" + } + }, + "oas-normalize": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/oas-normalize/-/oas-normalize-2.3.1.tgz", + "integrity": "sha512-B4Op0KBaqrfnGrRapM94hZJaXpPesJlfFIY9AUOA7+i5tO8lWJJIPldvQRLDJ/0aTtdpDQgoN1fGUVOIlKIlZw==", + "dev": true, + "requires": { + "@apidevtools/json-schema-ref-parser": "^9.0.1", + "deep-extend": "^0.6.0", + "r2": "^2.0.1", + "swagger-parser": "^10.0.1", + "swagger2openapi": "^2.11.16", + "yaml": "^1.10.0" + } + }, "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", @@ -19587,6 +20108,16 @@ "mimic-fn": "^2.1.0" } }, + "open": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.3.0.tgz", + "integrity": "sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, "opencollective-postinstall": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", @@ -19645,6 +20176,29 @@ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, "p-each-series": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz", @@ -20581,6 +21135,23 @@ "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true }, + "quotemeta": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/quotemeta/-/quotemeta-0.0.0.tgz", + "integrity": "sha1-UdOgbuD81uO1AdvSiQQ1Gtelo4w=", + "dev": true + }, + "r2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/r2/-/r2-2.0.1.tgz", + "integrity": "sha512-EEmxoxYCe3LHzAUhRIRxdCKERpeRNmlLj6KLUSORqnK6dWl/K5ShmDGZqM2lRZQeqJgF+wyqk0s1M7SWUveNOQ==", + "dev": true, + "requires": { + "caseless": "^0.12.0", + "node-fetch": "^2.0.0-alpha.8", + "typedarray-to-buffer": "^3.1.2" + } + }, "raf": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", @@ -20717,6 +21288,42 @@ } } }, + "rdme": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/rdme/-/rdme-3.8.2.tgz", + "integrity": "sha512-9goyE/sl2yQj/73HeLJjGQIp7AoNT4XqXXWI67xnKXKg2V8LjWnKVMNr9mc2K/C3J9LPwUyeEocHI/18mldgXg==", + "dev": true, + "requires": { + "cli-table": "^0.3.1", + "colors": "^1.1.2", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.0.2", + "config": "^3.1.0", + "configstore": "^5.0.0", + "editor": "^1.0.0", + "enquirer": "^2.3.0", + "gray-matter": "^4.0.1", + "isemail": "^3.1.3", + "oas": "^3.4.2", + "open": "^7.0.0", + "read": "^1.0.7", + "request": "^2.88.0", + "request-promise-native": "^1.0.5", + "semver": "^7.0.0", + "table-layout": "^1.0.0" + }, + "dependencies": { + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, "react": { "version": "16.14.0", "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", @@ -20792,6 +21399,15 @@ "scheduler": "^0.19.1" } }, + "read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "dev": true, + "requires": { + "mute-stream": "~0.0.4" + } + }, "read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -20875,12 +21491,24 @@ "esprima": "~4.0.0" } }, + "reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "dev": true + }, "reflect.ownkeys": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz", "integrity": "sha1-dJrO7H8/34tj+SegSAnpDFwLNGA=", "dev": true }, + "reftools": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/reftools/-/reftools-0.0.20.tgz", + "integrity": "sha512-xP04tVBgU6IEfVN3AD+jKg0tuDFjzbpAVulI8vFp9jJ6avejnq6BaTj4aneY0sNseXJbAykG6uMDuFJaun1Q9w==", + "dev": true + }, "regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -21067,6 +21695,14 @@ "resolved": "https://registry.npmjs.org/remark-breaks/-/remark-breaks-1.0.5.tgz", "integrity": "sha512-lr8+TlJI273NjEqL27eUthPYPTCgXEj4NaLbnazS3bQaQL2FySlsbtgo52gE36fE1gWeQgkn1VdmWsoT+uA7FA==" }, + "remark-frontmatter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-2.0.0.tgz", + "integrity": "sha512-uNOQt4tO14qBFWXenF0MLC4cqo3dv8qiHPGyjCl1rwOT0LomSHpcElbjjVh5CwzElInB38HD8aSRVugKQjeyHA==", + "requires": { + "fault": "^1.0.1" + } + }, "remark-parse": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-7.0.2.tgz", @@ -21155,6 +21791,12 @@ } } }, + "remedial": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/remedial/-/remedial-1.0.8.tgz", + "integrity": "sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg==", + "dev": true + }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -21350,6 +21992,16 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", @@ -21403,6 +22055,12 @@ "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", "dev": true }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, "run-parallel": { "version": "1.1.10", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", @@ -21424,6 +22082,15 @@ "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", "dev": true }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -21843,6 +22510,27 @@ } } }, + "section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", @@ -22267,6 +22955,60 @@ "dev": true, "optional": true }, + "should": { + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", + "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "dev": true, + "requires": { + "should-equal": "^2.0.0", + "should-format": "^3.0.3", + "should-type": "^1.4.0", + "should-type-adaptors": "^1.0.1", + "should-util": "^1.0.0" + } + }, + "should-equal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "dev": true, + "requires": { + "should-type": "^1.4.0" + } + }, + "should-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", + "integrity": "sha1-m/yPdPo5IFxT04w01xcwPidxJPE=", + "dev": true, + "requires": { + "should-type": "^1.3.0", + "should-type-adaptors": "^1.0.1" + } + }, + "should-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", + "integrity": "sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=", + "dev": true + }, + "should-type-adaptors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", + "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", + "dev": true, + "requires": { + "should-type": "^1.3.0", + "should-util": "^1.0.0" + } + }, + "should-util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", + "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", + "dev": true + }, "side-channel": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.3.tgz", @@ -23145,6 +23887,12 @@ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, + "strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", + "dev": true + }, "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", @@ -23224,6 +23972,279 @@ } } }, + "swagger-inline": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/swagger-inline/-/swagger-inline-3.2.2.tgz", + "integrity": "sha512-hYibOKWADD0z2nv5WqO+Uf1xYcObf4HzZ7BldLKVAOo5ZRoXajHhQPhpINM8XYD12auwtMDvpSQ3P2qg87cy1A==", + "dev": true, + "requires": { + "bluebird": "^3.4.1", + "commander": "^6.0.0", + "globby": "^11.0.1", + "js-yaml": "^3.13.1", + "lodash": "^4.17.11", + "multilang-extract-comments": "^0.3.2" + }, + "dependencies": { + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true + }, + "globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + } + } + }, + "swagger-parser": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/swagger-parser/-/swagger-parser-10.0.2.tgz", + "integrity": "sha512-9jHkHM+QXyLGFLk1DkXBwV+4HyNm0Za3b8/zk/+mjr8jgOSiqm3FOTHBSDsBjtn9scdL+8eWcHdupp2NLM8tDw==", + "dev": true, + "requires": { + "@apidevtools/swagger-parser": "10.0.2" + } + }, + "swagger2openapi": { + "version": "2.11.16", + "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-2.11.16.tgz", + "integrity": "sha512-5Pv20whg9Bn1dqKDuGatH0r+7mAEU8+tHJU1PdT9ufGeZNseqJBs9Y8AOd8EMEHKRuAgAzYYWhINvgtodAlZRA==", + "dev": true, + "requires": { + "ajv": "^5.0.1", + "call-me-maybe": "^1.0.1", + "co": "^4.6.0", + "js-yaml": "^3.6.1", + "node-fetch": "^2.0.0", + "node-readfiles": "^0.2.0", + "reftools": "0.0.20", + "should": "^13.0.1", + "yargs": "^11.0.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.1.tgz", + "integrity": "sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" + } + }, + "yargs-parser": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, "symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -23242,6 +24263,32 @@ "string-width": "^3.0.0" } }, + "table-layout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.1.tgz", + "integrity": "sha512-dEquqYNJiGwY7iPfZ3wbXDI944iqanTSchrACLL2nOB+1r+h1Nzu2eH+DuPPvWvm5Ry7iAPeFlgEtP5bIp5U7Q==", + "dev": true, + "requires": { + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" + }, + "dependencies": { + "array-back": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.1.tgz", + "integrity": "sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg==", + "dev": true + }, + "typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true + } + } + }, "tapable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", @@ -23594,6 +24641,15 @@ "setimmediate": "^1.0.4" } }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, "tmpl": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", @@ -23859,6 +24915,12 @@ "is-typedarray": "^1.0.0" } }, + "typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "dev": true + }, "uglify-js": { "version": "3.12.1", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.1.tgz", @@ -24285,6 +25347,12 @@ "spdx-expression-parse": "^3.0.0" } }, + "validator": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-12.2.0.tgz", + "integrity": "sha512-jJfE/DW6tIK1Ek8nCfNFqt8Wb3nzMoAbocBF6/Icgg1ZFSBpObdnwVY2jQj6qUqzhx5jc71fpvBWyLGO7Xl+nQ==", + "dev": true + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -25803,6 +26871,24 @@ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, + "wordwrapjs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.0.tgz", + "integrity": "sha512-Svqw723a3R34KvsMgpjFBYCgNOSdcW3mQFK4wIfhGQhtaFVOJmdYoXgi63ne3dTlWgatVcUc7t4HtQ/+bUVIzQ==", + "dev": true, + "requires": { + "reduce-flatten": "^2.0.0", + "typical": "^5.0.0" + }, + "dependencies": { + "typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "dev": true + } + } + }, "worker-farm": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", @@ -25897,6 +26983,12 @@ "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", "dev": true }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true + }, "xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", @@ -26051,6 +27143,18 @@ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true }, + "z-schema": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-4.2.3.tgz", + "integrity": "sha512-zkvK/9TC6p38IwcrbnT3ul9in1UX4cm1y/VZSs4GHKIiDCrlafc+YQBgQBUdDXLAoZHf2qvQ7gJJOo6yT1LH6A==", + "dev": true, + "requires": { + "commander": "^2.7.1", + "lodash.get": "^4.4.2", + "lodash.isequal": "^4.5.0", + "validator": "^12.0.0" + } + }, "zwitch": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", diff --git a/package.json b/package.json index 9aeb0d84e..77c108929 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,8 @@ "test.browser": "jest --runInBand --testPathPattern '__tests__/browser'", "watch": "webpack -w --progress --mode production", "release": "npx semantic-release", - "release.dry": "npx semantic-release --dry-run" + "release.dry": "npx semantic-release --dry-run", + "sync": "rdme docs ./docs --version=2" }, "dependencies": { "@readme/emojis": "^3.0.0", @@ -39,6 +40,7 @@ "rehype-sanitize": "^3.0.1", "rehype-stringify": "^6.0.0", "remark-breaks": "^1.0.0", + "remark-frontmatter": "^2.0.0", "remark-parse": "^7.0.2", "remark-rehype": "^7.0.0", "remark-slug": "^6.0.0", @@ -89,6 +91,7 @@ "prettier": "^2.2.1", "puppeteer": "^5.5.0", "raw-loader": "^4.0.2", + "rdme": "^3.8.2", "react": "^16.14.0", "react-dom": "^16.14.0", "react-hot-loader": "^4.13.0",