docs: add typedoc-based docs

This commit is contained in:
Nolan Lawson 2020-06-06 17:36:03 -07:00
parent e63627411d
commit 54c4279a13
12 changed files with 552 additions and 50 deletions

4
.gitignore vendored
View File

@ -118,4 +118,6 @@ dist
/database.js
/database.js.map
/picker.js
/picker.js.map
/picker.js.map
/docs-tmp

180
README.md
View File

@ -154,13 +154,29 @@ const picker = new Picker();
document.body.appendChild(picker);
```
`new Picker(options)` supports a few different options:
The `new Picker(options)` constructor supports several options:
| Option | Type | Default | Description |
| ------ | ---- | ------- | ----------- |
| `dataSource` | String | `"https://cdn.jsdelivr.net/npm/emojibase-data@5/en/data.json"` | Where to fetch the emoji data from. Note that `emoji-picker-element` requires the full `data.json`, not `compact.json`. |
| `locale` | String | `"en"` | Locale, should map to the locales supported by `emojibase-data` |
| `i18n` | Object | See below | Strings to use for internationalization of the Picker itself, i.e. the text and `aria-label`s. Note that `emoji-picker-element` only ships with English by default. |
<!-- picker API start -->
#### constructor
\+ **new Picker**(`__namedParameters`: object): *Picker*
**Parameters:**
▪`Default value` **__namedParameters**: *object*= {}
Name | Type | Default | Description |
------ | ------ | ------ | ------ |
`dataSource` | string | "https://cdn.jsdelivr.net/npm/emojibase-data@5/en/data.json" | URL to fetch the emojibase data from |
`i18n` | object | - | i18n object (see below for details) |
`locale` | string | "en" | Locale string |
**Returns:** *Picker*
<!-- picker API end -->
These values can also be set at runtime, e.g.:
@ -216,19 +232,151 @@ const database = new Database();
await database.getEmojiBySearchPrefix('elephant'); // [{unicode: "🐘", ...}]
```
`new Database()` takes similar options as the picker:
Full API:
```js
const database = new Database({
locale: 'en',
dataSource: 'https://cdn.jsdelivr.net/npm/emojibase-data@5/en/data.json'
});
<!-- database API start -->
#### constructor
\+ **new Database**(`__namedParameters`: object): *Database*
Create a new Database.
Note that multiple Databases pointing to the same locale will share the
same underlying IndexedDB connection and database.
**Parameters:**
▪`Default value` **__namedParameters**: *object*= {}
Name | Type | Default | Description |
------ | ------ | ------ | ------ |
`dataSource` | string | "https://cdn.jsdelivr.net/npm/emojibase-data@5/en/data.json" | URL to fetch the emojibase data from |
`locale` | string | "en" | Locale string |
**Returns:** *Database*
#### close
**close**(): *Promisevoid*
Closes the underlying IndexedDB connection. The Database is not usable after that (or any other Databases
with the same locale).
**Returns:** *Promisevoid*
___
#### delete
**delete**(): *Promisevoid*
Deletes the underlying IndexedDB database. The Database is not usable after that (or any other Databases
with the same locale).
**Returns:** *Promisevoid*
___
#### getEmojiByGroup
**getEmojiByGroup**(`group`: number): *PromiseEmoji]*
Returns all emoji belonging to a group, ordered by `order`.
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`group` | number | the group number |
**Returns:** *Promise[Emoji]*
___
#### getEmojiBySearchQuery
**getEmojiBySearchQuery**(`query`: string): *Promise[Emoji]*
Returns all emoji matching the given search query, ordered by `order`.
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`query` | string | search query string |
**Returns:** *Promise[Emoji]*
___
#### getEmojiByShortcode
**getEmojiByShortcode**(`shortcode`: string): *Promise[Emoji | null*
Return a single emoji matching the shortcode, or null if not found.
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`shortcode` | string | |
**Returns:** *PromiseEmoji | null*
___
#### getEmojiByUnicode
**getEmojiByUnicode**(`unicode`: string): *PromiseEmoji | null*
Return a single emoji matching the unicode string, or null if not found.
**Parameters:**
Name | Type | Description |
------ | ------ | ------ |
`unicode` | string | unicode string |
**Returns:** *PromiseEmoji | null*
___
#### ready
**ready**(): *Promisevoid*
Resolves when the Database is ready, or throws an error if
the Database could not initialize.
Note that you don't need to do this before calling other APIs they will
all wait for this promise to resolve before doing anything.
**Returns:** *Promisevoid*
<!-- database API end -->
### Emoji object
This object is returned as the Event `detail` in the `emoji-click` event, or when querying the Database. Here is the format:
```ts
interface Emoji {
annotation: string;
emoticon?: string;
group: number;
name: string;
order: number;
shortcodes: string[];
tags?: string[];
version: number;
unicode: string;
}
```
In general, it's not a problem to create multiple `Database` objects with the same arguments. Under the hood, they will share the same IndexedDB connection.
<!-- TODO: Database API here -->
### Tree-shaking
If you want to import the `Database` without the `Picker`, or you want to code-split them separately, then do:

5
bin/fs.js Normal file
View File

@ -0,0 +1,5 @@
import fs from 'fs'
import { promisify } from 'util'
export const readFile = promisify(fs.readFile)
export const writeFile = promisify(fs.writeFile)

View File

@ -1,9 +1,6 @@
import sass from 'sass'
import table from 'markdown-table'
import fs from 'fs'
import { promisify } from 'util'
const readFile = promisify(fs.readFile)
const writeFile = promisify(fs.writeFile)
import { replaceInReadme } from './replaceInReadme.js'
const START_MARKER = '<!-- CSS variable options start -->'
const END_MARKER = '<!-- CSS variable options end -->'
@ -49,13 +46,7 @@ async function generateMarkdownTable (css) {
async function main () {
const css = sass.renderSync({ file: './src/picker/styles/variables.scss' }).css.toString('utf8')
const markdown = await generateMarkdownTable(css)
let readme = await readFile('./README.md', 'utf8')
const startIndex = readme.indexOf(START_MARKER)
const endIndex = readme.indexOf(END_MARKER) + END_MARKER.length
readme = readme.substring(0, startIndex) +
START_MARKER + '\n\n' + markdown + '\n\n' + END_MARKER +
readme.substring(endIndex)
await writeFile('./README.md', readme, 'utf8')
await replaceInReadme(START_MARKER, END_MARKER, markdown)
}
main().catch(err => {

View File

@ -1,27 +1,15 @@
import fs from 'fs'
import { promisify } from 'util'
const readFile = promisify(fs.readFile)
const writeFile = promisify(fs.writeFile)
import { readFile } from './fs.js'
import { replaceInReadme } from './replaceInReadme.js'
const START_MARKER = '<!-- i18n options start -->'
const END_MARKER = '<!-- i18n options end -->'
// Take the current English i18n object and inject it into the README
async function main () {
let readme = await readFile('./README.md', 'utf8')
const i18n = JSON.parse(await readFile('./src/picker/i18n/en.json', 'utf8'))
const startIndex = readme.indexOf(START_MARKER)
const endIndex = readme.indexOf(END_MARKER) + END_MARKER.length
const sortedI18n = Object.fromEntries(Object.entries(i18n).sort((a, b) => a[0] < b[0] ? -1 : 1))
readme = readme.substring(0, startIndex) +
START_MARKER + '\n\n```json\n' +
JSON.stringify(sortedI18n, null, 2) +
'\n```\n\n' + END_MARKER +
readme.substring(endIndex)
await writeFile('./README.md', readme, 'utf8')
const replacement = '```json\n' + JSON.stringify(sortedI18n, null, 2) + '\n```'
await replaceInReadme(START_MARKER, END_MARKER, replacement)
}
main().catch(err => {

49
bin/generateTypeDocs.js Normal file
View File

@ -0,0 +1,49 @@
import { replaceInReadme } from './replaceInReadme.js'
import { readFile } from './fs.js'
import replaceAll from 'string.prototype.replaceall'
replaceAll.shim()
const DB_START_MARKER = '<!-- database API start -->'
const DB_END_MARKER = '<!-- database API end -->'
const PICKER_START_MARKER = '<!-- picker API start -->'
const PICKER_END_MARKER = '<!-- picker API end -->'
// Given the typedoc output and generated into docs-tmp, inject these into the README
function removeLinks (str) {
return str.replaceAll(/\[(.*?)\]\(.*?\)/sg, (_, p1) => p1)
}
function incrementHeadings (str) {
return str.replaceAll(/#{2,}/g, _ => `#${_}`) // increase indent of headings by one
}
async function injectDatabaseDocs () {
let docs = await readFile('./docs-tmp/classes/_database_.database.md', 'utf8')
docs = docs.substring(docs.indexOf('### constructor'))
docs = docs.replace('## Methods', '')
docs = removeLinks(docs)
docs = incrementHeadings(docs)
await replaceInReadme(DB_START_MARKER, DB_END_MARKER, docs)
}
async function injectPickerDocs () {
let docs = await readFile('./docs-tmp/classes/_picker_.picker.md', 'utf8')
docs = docs.substring(docs.indexOf('### constructor'))
docs = docs.replace(/## Properties.*/s, '')
docs = removeLinks(docs)
docs = incrementHeadings(docs)
await replaceInReadme(PICKER_START_MARKER, PICKER_END_MARKER, docs)
}
async function main () {
await injectDatabaseDocs()
await injectPickerDocs()
}
main().catch(err => {
console.error(err)
process.exit(1)
})

13
bin/replaceInReadme.js Normal file
View File

@ -0,0 +1,13 @@
import { readFile, writeFile } from './fs.js'
export async function replaceInReadme (startMarker, endMarker, replacement) {
let readme = await readFile('./README.md', 'utf8')
const startIndex = readme.indexOf(startMarker)
const endIndex = readme.indexOf(endMarker) + endMarker.length
readme = readme.substring(0, startIndex) +
startMarker + '\n\n' +
replacement +
'\n\n' + endMarker +
readme.substring(endIndex)
await writeFile('./README.md', readme, 'utf8')
}

View File

@ -15,6 +15,7 @@
"build:rollup": "NODE_ENV=production rollup -c",
"build:css-docs": "node ./bin/generateCssDocs",
"build:i18n-docs": "node ./bin/generateI18nDocs",
"build:typedoc": "rm -fr docs-tmp && typedoc --out docs-tmp --theme markdown --excludePrivate --excludeNotExported --hideSources --hideBreadcrumbs ./src/types && node ./bin/generateTypeDocs && rm -fr docs-tmp",
"dev": "NODE_ENV=development rollup -c -w",
"lint": "standard && stylelint '**/*.scss'",
"lint:fix": "standard --fix && stylelint --fix '**/*.scss'",
@ -65,11 +66,15 @@
"rollup-plugin-svelte-hot": "^0.7.0",
"sass": "^1.26.7",
"standard": "^14.3.3",
"string.prototype.replaceall": "^1.0.3",
"stylelint": "^13.5.0",
"stylelint-config-recommended-scss": "^4.2.0",
"stylelint-scss": "^3.17.2",
"svelte": "^3.22.2",
"svelte-preprocess": "^3.7.4"
"svelte-preprocess": "^3.7.4",
"typedoc": "^0.17.7",
"typedoc-plugin-markdown": "^2.3.1",
"typescript": "^3.9.5"
},
"standard": {
"ignore": [

80
src/types/Database.ts Normal file
View File

@ -0,0 +1,80 @@
import { Emoji, DatabaseConstructorOptions } from "./shared";
export default class Database {
/**
* Create a new Database.
*
* Note that multiple Databases pointing to the same locale will share the
* same underlying IndexedDB connection and database.
*
* @param dataSource - URL to fetch the emojibase data from
* @param locale - Locale string
*/
constructor({
dataSource = 'https://cdn.jsdelivr.net/npm/emojibase-data@5/en/data.json',
locale = 'en'
}: DatabaseConstructorOptions = {}) {
}
/**
* Resolves when the Database is ready, or throws an error if
* the Database could not initialize.
*
* Note that you don't need to do this before calling other APIs they will
* all wait for this promise to resolve before doing anything.
*/
ready(): Promise<void> {
return Promise.resolve()
}
/**
* Returns all emoji belonging to a group, ordered by `order`.
* @param group - the group number
*/
getEmojiByGroup(group: number): Promise<Emoji[]> {
return Promise.resolve([])
}
/**
* Returns all emoji matching the given search query, ordered by `order`.
* @param query - search query string
*/
getEmojiBySearchQuery(query: string): Promise<Emoji[]> {
return Promise.resolve([])
}
/**
* Return a single emoji matching the shortcode, or null if not found.
* @param shortcode
*/
getEmojiByShortcode(shortcode: string): Promise<Emoji | null> {
return Promise.resolve(null)
}
/**
* Return a single emoji matching the unicode string, or null if not found.
* @param unicode - unicode string
*/
getEmojiByUnicode(unicode: string): Promise<Emoji | null> {
return Promise.resolve(null)
}
/**
* Closes the underlying IndexedDB connection. The Database is not usable after that (or any other Databases
* with the same locale).
*
*/
close(): Promise<void> {
return Promise.resolve()
}
/**
* Deletes the underlying IndexedDB database. The Database is not usable after that (or any other Databases
* with the same locale).
*
*/
delete(): Promise<void> {
return Promise.resolve()
}
}

25
src/types/Picker.ts Normal file
View File

@ -0,0 +1,25 @@
import {PickerConstructorOptions} from "./shared";
export default class Picker extends HTMLElement {
/**
*
* @param dataSource - URL to fetch the emojibase data from
* @param locale - Locale string
* @param i18n - i18n object (see below for details)
*/
constructor({
dataSource = 'https://cdn.jsdelivr.net/npm/emojibase-data@5/en/data.json',
locale = 'en',
i18n = {}
}: PickerConstructorOptions = {}) {
super()
}
}
// see https://justinfagnani.com/2019/11/01/how-to-publish-web-components-to-npm/
declare global {
interface HTMLElementTagNameMap {
"emoji-picker": Picker,
}
}

22
src/types/shared.ts Normal file
View File

@ -0,0 +1,22 @@
export interface Emoji {
annotation: string;
emoticon?: string;
group: number;
name: string;
order: number;
shortcodes: string[];
tags?: string[];
version: number;
unicode: string;
}
export interface DatabaseConstructorOptions {
dataSource?: string,
locale?: string
}
export interface PickerConstructorOptions {
dataSource?: string,
locale?: string,
i18n?: object
}

184
yarn.lock
View File

@ -1562,6 +1562,11 @@ asynckit@^0.4.0:
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
at-least-node@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
atob@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
@ -2074,6 +2079,11 @@ commander@^5.1.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
commander@~2.20.3:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@ -3209,6 +3219,25 @@ fresh@0.5.2:
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
fs-extra@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
dependencies:
graceful-fs "^4.2.0"
jsonfile "^4.0.0"
universalify "^0.1.0"
fs-extra@^9.0.0:
version "9.0.1"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc"
integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==
dependencies:
at-least-node "^1.0.0"
graceful-fs "^4.2.0"
jsonfile "^6.0.1"
universalify "^1.0.0"
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
@ -3313,7 +3342,7 @@ glob-to-regexp@^0.4.0:
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
glob@^7.0.0, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
version "7.1.6"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
@ -3377,7 +3406,7 @@ gonzales-pe@^4.3.0:
dependencies:
minimist "^1.2.5"
graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.2.4:
graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4:
version "4.2.4"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
@ -3387,6 +3416,18 @@ growly@^1.3.0:
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
handlebars@^4.7.6:
version "4.7.6"
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e"
integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==
dependencies:
minimist "^1.2.5"
neo-async "^2.6.0"
source-map "^0.6.1"
wordwrap "^1.0.0"
optionalDependencies:
uglify-js "^3.1.4"
har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
@ -3458,6 +3499,11 @@ has@^1.0.3:
dependencies:
function-bind "^1.1.1"
highlight.js@^10.0.0:
version "10.0.3"
resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.0.3.tgz#5effcc58420f113f279a0badb8ac50c4be06e63b"
integrity sha512-9FG7SSzv9yOY5CGGxfI6NDm7xLYtMOjKtPBxw7Zff3t5UcRcUNTGEeS8lNjhceL34KeetLMoGMFTGoaa83HwyQ==
hosted-git-info@^2.1.4:
version "2.8.8"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
@ -3649,6 +3695,11 @@ inquirer@^7.0.0:
strip-ansi "^6.0.0"
through "^2.3.6"
interpret@^1.0.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
invariant@^2.2.2, invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
@ -3888,6 +3939,13 @@ is-reference@^1.1.2:
dependencies:
"@types/estree" "0.0.39"
is-regex@^1.0.4:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff"
integrity sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==
dependencies:
has-symbols "^1.0.1"
is-regex@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae"
@ -4511,6 +4569,22 @@ json5@^2.1.2:
dependencies:
minimist "^1.2.5"
jsonfile@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
optionalDependencies:
graceful-fs "^4.1.6"
jsonfile@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179"
integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==
dependencies:
universalify "^1.0.0"
optionalDependencies:
graceful-fs "^4.1.6"
jsprim@^1.2.2:
version "1.4.1"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
@ -4738,6 +4812,11 @@ loose-envify@^1.0.0, loose-envify@^1.4.0:
dependencies:
js-tokens "^3.0.0 || ^4.0.0"
lunr@^2.3.8:
version "2.3.8"
resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.8.tgz#a8b89c31f30b5a044b97d2d28e2da191b6ba2072"
integrity sha512-oxMeX/Y35PNFuZoHp+jUj5OSEmLCaIH4KTFJh7a93cHBoFmpw2IoPs22VIz7vyO2YUnx2Tn9dzIwO2P/4quIRg==
magic-string@^0.24.0:
version "0.24.1"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.24.1.tgz#7e38e5f126cae9f15e71f0cf8e450818ca7d5a8f"
@ -4800,6 +4879,11 @@ markdown-table@^2.0.0:
dependencies:
repeat-string "^1.0.0"
marked@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/marked/-/marked-1.0.0.tgz#d35784245a04871e5988a491e28867362e941693"
integrity sha512-Wo+L1pWTVibfrSr+TTtMuiMfNzmZWiOPeO7rZsQUY5bgsxpHesBEcIWJloWVTFnrMXnf/TL30eTFSGJddmQAng==
mathml-tag-names@^2.1.3:
version "2.1.3"
resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3"
@ -4915,7 +4999,7 @@ min-indent@^1.0.0:
resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.0.tgz#cfc45c37e9ec0d8f0a0ec3dd4ef7f7c3abe39256"
integrity sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY=
minimatch@^3.0.4:
minimatch@^3.0.0, minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
@ -5003,6 +5087,11 @@ negotiator@0.6.2:
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
neo-async@^2.6.0:
version "2.6.1"
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
@ -5657,7 +5746,7 @@ process-nextick-args@~2.0.0:
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
progress@^2.0.0:
progress@^2.0.0, progress@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
@ -5860,6 +5949,13 @@ realistic-structured-clone@^2.0.1:
typeson "^5.8.2"
typeson-registry "^1.0.0-alpha.20"
rechoir@^0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=
dependencies:
resolve "^1.1.6"
redent@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f"
@ -6090,7 +6186,7 @@ resolve-url@^0.2.1:
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.3.2:
resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.3.2:
version "1.17.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
@ -6361,6 +6457,15 @@ shell-quote@^1.6.1:
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"
integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==
shelljs@^0.8.4:
version "0.8.4"
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2"
integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==
dependencies:
glob "^7.0.0"
interpret "^1.0.0"
rechoir "^0.6.2"
shellwords@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
@ -6634,6 +6739,17 @@ string.prototype.padend@^3.0.0:
define-properties "^1.1.3"
es-abstract "^1.17.0-next.1"
string.prototype.replaceall@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/string.prototype.replaceall/-/string.prototype.replaceall-1.0.3.tgz#f7839a016a290b60769138f4d4938238cbb5a809"
integrity sha512-GF8JS9jtHSDkIsVMsYBPR4dItwaU6xOSPsMcRGTAbBr12ZDfyKMtgxdC2HDFbsMogGel29pmwxioJoXeu9ztIg==
dependencies:
define-properties "^1.1.3"
es-abstract "^1.17.0-next.1"
function-bind "^1.1.1"
has-symbols "^1.0.1"
is-regex "^1.0.4"
string.prototype.trimend@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913"
@ -7117,6 +7233,42 @@ typedarray-to-buffer@^3.1.5:
dependencies:
is-typedarray "^1.0.0"
typedoc-default-themes@^0.10.1:
version "0.10.1"
resolved "https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.10.1.tgz#eb27b7d689457c7ec843e47ec0d3e500581296a7"
integrity sha512-SuqAQI0CkwhqSJ2kaVTgl37cWs733uy9UGUqwtcds8pkFK8oRF4rZmCq+FXTGIb9hIUOu40rf5Kojg0Ha6akeg==
dependencies:
lunr "^2.3.8"
typedoc-plugin-markdown@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/typedoc-plugin-markdown/-/typedoc-plugin-markdown-2.3.1.tgz#c4c6c3228f625b24875e87cc1622b9a259b914ce"
integrity sha512-7rlmg1tLjddYy11uznHCAlyoOpxdWnFXqGEZ7j2mJ4KJg2avwWgEpw6SFZVofgPCGn36zklpFS51lHxYSRTLVQ==
dependencies:
fs-extra "^9.0.0"
handlebars "^4.7.6"
typedoc@^0.17.7:
version "0.17.7"
resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.17.7.tgz#70797401140403a5f91589ed3f4f24c03841bf7a"
integrity sha512-PEnzjwQAGjb0O8a6VDE0lxyLAadqNujN5LltsTUhZETolRMiIJv6Ox+Toa8h0XhKHqAOh8MOmB0eBVcWz6nuAw==
dependencies:
fs-extra "^8.1.0"
handlebars "^4.7.6"
highlight.js "^10.0.0"
lodash "^4.17.15"
lunr "^2.3.8"
marked "1.0.0"
minimatch "^3.0.0"
progress "^2.0.3"
shelljs "^0.8.4"
typedoc-default-themes "^0.10.1"
typescript@^3.9.5:
version "3.9.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.5.tgz#586f0dba300cde8be52dd1ac4f7e1009c1b13f36"
integrity sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==
typeson-registry@^1.0.0-alpha.20:
version "1.0.0-alpha.37"
resolved "https://registry.yarnpkg.com/typeson-registry/-/typeson-registry-1.0.0-alpha.37.tgz#23e6bffc264b4dfc80603e2a8545bd4750102d42"
@ -7131,6 +7283,13 @@ typeson@5.18.2, typeson@^5.8.2:
resolved "https://registry.yarnpkg.com/typeson/-/typeson-5.18.2.tgz#0d217fc0e11184a66aa7ca0076d9aa7707eb7bc2"
integrity sha512-Vetd+OGX05P4qHyHiSLdHZ5Z5GuQDrHHwSdjkqho9NSCYVSLSfRMjklD/unpHH8tXBR9Z/R05rwJSuMpMFrdsw==
uglify-js@^3.1.4:
version "3.9.4"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.9.4.tgz#867402377e043c1fc7b102253a22b64e5862401b"
integrity sha512-8RZBJq5smLOa7KslsNsVcSH+KOXf1uDU8yqLeNuVKwmT0T3FA0ZoXlinQfRad7SDcbZZRZE4ov+2v71EnxNyCA==
dependencies:
commander "~2.20.3"
unherit@^1.0.4:
version "1.1.3"
resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22"
@ -7232,6 +7391,16 @@ unist-util-visit@^2.0.0:
unist-util-is "^4.0.0"
unist-util-visit-parents "^3.0.0"
universalify@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
universalify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d"
integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==
unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
@ -7474,6 +7643,11 @@ word-wrap@~1.2.3:
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
wordwrap@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
wrap-ansi@^6.2.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"