mirror of
https://github.com/tauri-apps/typedocusaurus.git
synced 2026-02-04 02:31:22 +01:00
14
.github/workflows/main.yml
vendored
14
.github/workflows/main.yml
vendored
@@ -2,15 +2,13 @@ name: Typedocusaurus Update
|
||||
|
||||
on:
|
||||
workflow_dispatch
|
||||
# on:
|
||||
# workflow_dispatch:
|
||||
# inputs:
|
||||
# sourcePath:
|
||||
# required: true
|
||||
# targetPath:
|
||||
# required: true
|
||||
jobs:
|
||||
update-docs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- run: echo "Test!"
|
||||
- run: echo "Beginning job..."
|
||||
- name: Check out repository code
|
||||
uses: actions/checkout@v2
|
||||
- run: echo "Repo has been cloned..."
|
||||
- run: yarn && yarn build
|
||||
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,2 +1,3 @@
|
||||
node_modules
|
||||
/index.js
|
||||
docs
|
||||
api
|
||||
14
action.yml
14
action.yml
@@ -1,14 +0,0 @@
|
||||
name: 'typedocusaurus'
|
||||
description: 'Generate Typedoc to Docusaurus.'
|
||||
inputs:
|
||||
originPath:
|
||||
required: true
|
||||
sidebarFile:
|
||||
required: true
|
||||
targetPath:
|
||||
required: true
|
||||
docusaurusPath:
|
||||
required: true
|
||||
runs:
|
||||
using: 'node12'
|
||||
main: 'dist/index.js'
|
||||
1047
dist/index.js
vendored
1047
dist/index.js
vendored
File diff suppressed because it is too large
Load Diff
15
package.json
15
package.json
@@ -4,17 +4,12 @@
|
||||
"main": "index.js",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"run-source": "node index.js",
|
||||
"pkg": "ncc build src/index.ts -o dist -e typedoc -e typedoc-plugin-markdown"
|
||||
"build": "typedoc --plugin typedoc-plugin-markdown --out docs api/src --tsconfig api/tsconfig.json --hideInPageTOC true --hideBreadcrumbs true"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^14.14.35",
|
||||
"@vercel/ncc": "^0.28.5",
|
||||
"override-require": "^1.1.1",
|
||||
"tslib": "^2.1.0",
|
||||
"typescript": "^4.2.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@actions/core": "^1.2.6"
|
||||
"docusaurus-plugin-typedoc": "^0.16.7",
|
||||
"typedoc": "^0.22.10",
|
||||
"typedoc-plugin-markdown": "^3.11.11",
|
||||
"typescript": "^4.5.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,132 +0,0 @@
|
||||
import * as path from 'path';
|
||||
|
||||
// @ts-ignore
|
||||
import { BindOption } from 'typedoc';
|
||||
// @ts-ignore
|
||||
import { Component } from 'typedoc/dist/lib/converter/components';
|
||||
// @ts-ignore
|
||||
import { RendererComponent } from 'typedoc/dist/lib/output/components';
|
||||
// @ts-ignore
|
||||
import { PageEvent } from 'typedoc/dist/lib/output/events';
|
||||
|
||||
import { FrontMatter, Sidebar } from './types';
|
||||
|
||||
// @ts-ignore
|
||||
import { reflectionTitle } from 'typedoc-plugin-markdown/dist/resources/helpers/reflection-title';
|
||||
|
||||
export interface FrontMatterVars {
|
||||
[key: string]: string | number | boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepends YAML block to a string
|
||||
* @param contents - the string to prepend
|
||||
* @param vars - object of required front matter variables
|
||||
*/
|
||||
export const prependYAML = (contents: string, vars: FrontMatterVars) => {
|
||||
return contents
|
||||
.replace(/^/, toYAML(vars) + '\n\n')
|
||||
.replace(/[\r\n]{3,}/g, '\n\n');
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns the page title as rendered in the document h1(# title)
|
||||
* @param page
|
||||
*/
|
||||
export const getPageTitle = (page: PageEvent) => {
|
||||
return reflectionTitle.call(page, false);
|
||||
};
|
||||
|
||||
/**
|
||||
* Converts YAML object to a YAML string
|
||||
* @param vars
|
||||
*/
|
||||
const toYAML = (vars: FrontMatterVars) => {
|
||||
const yaml = `---
|
||||
${Object.entries(vars)
|
||||
.map(
|
||||
([key, value]) =>
|
||||
`${key}: ${
|
||||
typeof value === 'string' ? `"${escapeString(value)}"` : value
|
||||
}`,
|
||||
)
|
||||
.join('\n')}
|
||||
---`;
|
||||
return yaml;
|
||||
};
|
||||
|
||||
// prettier-ignore
|
||||
const escapeString=(str: string) => str.replace(/([^\\])'/g, '$1\\\'');
|
||||
|
||||
@Component({ name: 'front-matter' })
|
||||
export class FrontMatterComponent extends RendererComponent {
|
||||
@BindOption('out')
|
||||
out!: string;
|
||||
@BindOption('sidebar')
|
||||
sidebar!: Sidebar;
|
||||
@BindOption('globalsTitle')
|
||||
globalsTitle!: string;
|
||||
@BindOption('readmeTitle')
|
||||
readmeTitle!: string;
|
||||
@BindOption('entryDocument')
|
||||
entryDocument!: string;
|
||||
|
||||
globalsFile = 'modules.md';
|
||||
|
||||
initialize() {
|
||||
super.initialize();
|
||||
// @ts-ignore
|
||||
this.listenTo(this.application.renderer, {
|
||||
[PageEvent.END]: this.onPageEnd,
|
||||
});
|
||||
}
|
||||
onPageEnd(page: PageEvent) {
|
||||
if (page.contents) {
|
||||
page.contents = prependYAML(page.contents, this.getYamlItems(page));
|
||||
}
|
||||
}
|
||||
|
||||
getYamlItems(page: PageEvent): any {
|
||||
const pageTitle = this.getTitle(page);
|
||||
const sidebarLabel = this.getSidebarLabel(page);
|
||||
let items: FrontMatter = {
|
||||
title: pageTitle,
|
||||
};
|
||||
if (sidebarLabel && sidebarLabel !== pageTitle) {
|
||||
items = { ...items, sidebar_label: sidebarLabel };
|
||||
}
|
||||
return {
|
||||
...items,
|
||||
custom_edit_url: null,
|
||||
hide_title: true,
|
||||
};
|
||||
}
|
||||
|
||||
getSidebarLabel(page: PageEvent) {
|
||||
if (!this.sidebar) {
|
||||
return null;
|
||||
}
|
||||
if (page.url === this.entryDocument) {
|
||||
return page.url === page.project.url
|
||||
? this.sidebar.indexLabel
|
||||
: this.sidebar.readmeLabel;
|
||||
}
|
||||
|
||||
if (page.url === this.globalsFile) {
|
||||
return this.sidebar.indexLabel;
|
||||
}
|
||||
return this.sidebar.fullNames ? page.model.getFullName() : page.model.name;
|
||||
}
|
||||
|
||||
getId(page: PageEvent) {
|
||||
return path.basename(page.url, path.extname(page.url));
|
||||
}
|
||||
|
||||
getTitle(page: PageEvent) {
|
||||
const readmeTitle = this.readmeTitle || page.project.name;
|
||||
if (page.url === this.entryDocument && page.url !== page.project.url) {
|
||||
return readmeTitle;
|
||||
}
|
||||
return getPageTitle(page);
|
||||
}
|
||||
}
|
||||
54
src/index.ts
54
src/index.ts
@@ -1,54 +0,0 @@
|
||||
let core = require("@actions/core");
|
||||
const { rmdir } = require("fs").promises;
|
||||
|
||||
const path = require("path");
|
||||
|
||||
const overrideRequire = require("override-require");
|
||||
if (process.env.DEV) {
|
||||
core = {
|
||||
getInput: (variable) => process.env[variable],
|
||||
setFailed: (message) => console.log(message)
|
||||
};
|
||||
}
|
||||
(async () => {
|
||||
try {
|
||||
// Where your docs live, should be the folder containing the crates docs
|
||||
const originPath = core.getInput("originPath"); // e.g. "/path/to/project/src/";
|
||||
|
||||
const sidebarFile = core.getInput("sidebarFile");
|
||||
// Where you'll save your MD files
|
||||
const targetPath = core.getInput("targetPath"); // e.g. "/path/to/docusaurus/website/docs/api/js/";
|
||||
const docusaurusPath = core.getInput("docusaurusPath");
|
||||
|
||||
const overrideCondition = (request) => request.startsWith("typedoc");
|
||||
|
||||
const resolveRequest = (request) =>
|
||||
require(path.normalize(
|
||||
process.cwd().replace("/dist/typedocusaurus", "") + `/${originPath}node_modules/${request}`
|
||||
));
|
||||
|
||||
overrideRequire(overrideCondition, resolveRequest);
|
||||
|
||||
const { default: generate } = require("./plugin");
|
||||
|
||||
await rmdir(targetPath, { recursive: true });
|
||||
|
||||
await generate(docusaurusPath, {
|
||||
entryPoints: originPath + "src",
|
||||
out: targetPath,
|
||||
entryDocument: "index.md",
|
||||
hideInPageTOC: true,
|
||||
hideBreadcrumbs: true,
|
||||
watch: false,
|
||||
tsconfig: originPath + "tsconfig.json",
|
||||
sidebar: {
|
||||
sidebarFile,
|
||||
},
|
||||
readme: "none",
|
||||
});
|
||||
|
||||
console.log("Tasks completed!");
|
||||
} catch (error) {
|
||||
core.setFailed(error.message);
|
||||
}
|
||||
})();
|
||||
120
src/options.ts
120
src/options.ts
@@ -1,120 +0,0 @@
|
||||
import * as path from 'path';
|
||||
|
||||
import {
|
||||
// @ts-ignore
|
||||
Application,
|
||||
// @ts-ignore
|
||||
MixedDeclarationOption,
|
||||
// @ts-ignore
|
||||
ParameterType,
|
||||
// @ts-ignore
|
||||
StringDeclarationOption,
|
||||
// @ts-ignore
|
||||
TSConfigReader,
|
||||
// @ts-ignore
|
||||
TypeDocReader,
|
||||
// @ts-ignore
|
||||
} from 'typedoc';
|
||||
|
||||
import { PluginOptions, SidebarOptions } from './types';
|
||||
|
||||
/**
|
||||
* Default plugin options
|
||||
*/
|
||||
const DEFAULT_PLUGIN_OPTIONS: PluginOptions = {
|
||||
id: 'default',
|
||||
docsRoot: 'docs',
|
||||
out: 'api',
|
||||
entryDocument: 'index.md',
|
||||
hideInPageTOC: true,
|
||||
hideBreadcrumbs: true,
|
||||
sidebar: {
|
||||
fullNames: false,
|
||||
sidebarFile: 'typedoc-sidebar.js',
|
||||
indexLabel: 'Table of contents',
|
||||
readmeLabel: 'Readme',
|
||||
sidebarPath: '',
|
||||
},
|
||||
plugin: ['none'],
|
||||
outputDirectory: '',
|
||||
siteDir: '',
|
||||
watch: false,
|
||||
};
|
||||
|
||||
/**
|
||||
* Merge default with user options
|
||||
* @param opts
|
||||
*/
|
||||
export const getOptions = (
|
||||
siteDir: string,
|
||||
opts: Partial<PluginOptions>,
|
||||
): PluginOptions => {
|
||||
// base options
|
||||
let options = {
|
||||
...DEFAULT_PLUGIN_OPTIONS,
|
||||
...opts,
|
||||
};
|
||||
// sidebar
|
||||
if (opts.sidebar === null) {
|
||||
options = { ...options, sidebar: null };
|
||||
} else {
|
||||
const sidebar = {
|
||||
...DEFAULT_PLUGIN_OPTIONS.sidebar,
|
||||
...opts.sidebar,
|
||||
} as SidebarOptions;
|
||||
options = {
|
||||
...options,
|
||||
sidebar: {
|
||||
...sidebar,
|
||||
sidebarPath: path.resolve(siteDir, sidebar.sidebarFile),
|
||||
},
|
||||
};
|
||||
}
|
||||
// additional
|
||||
options = {
|
||||
...options,
|
||||
siteDir,
|
||||
outputDirectory: path.resolve(siteDir, options.docsRoot, options.out),
|
||||
};
|
||||
return options;
|
||||
};
|
||||
|
||||
/**
|
||||
* Add docusaurus options to converter
|
||||
* @param app
|
||||
*/
|
||||
export const addOptions = (app: Application) => {
|
||||
// configure deault typedoc options
|
||||
app.options.addReader(new TypeDocReader());
|
||||
app.options.addReader(new TSConfigReader());
|
||||
|
||||
// expose plugin options to typedoc so we can access if required
|
||||
app.options.addDeclaration({
|
||||
name: 'id',
|
||||
} as StringDeclarationOption);
|
||||
|
||||
app.options.addDeclaration({
|
||||
name: 'docsRoot',
|
||||
} as StringDeclarationOption);
|
||||
|
||||
app.options.addDeclaration({
|
||||
name: 'siteDir',
|
||||
} as MixedDeclarationOption);
|
||||
|
||||
app.options.addDeclaration({
|
||||
name: 'outputDirectory',
|
||||
} as StringDeclarationOption);
|
||||
|
||||
app.options.addDeclaration({
|
||||
name: 'globalsTitle',
|
||||
} as StringDeclarationOption);
|
||||
|
||||
app.options.addDeclaration({
|
||||
name: 'readmeTitle',
|
||||
} as StringDeclarationOption);
|
||||
|
||||
app.options.addDeclaration({
|
||||
name: 'sidebar',
|
||||
type: ParameterType.Mixed,
|
||||
} as MixedDeclarationOption);
|
||||
};
|
||||
@@ -1,56 +0,0 @@
|
||||
// @ts-ignore
|
||||
import { Application } from 'typedoc';
|
||||
// @ts-ignore
|
||||
import { load } from 'typedoc-plugin-markdown';
|
||||
|
||||
import { FrontMatterComponent } from './front-matter';
|
||||
import { addOptions, getOptions } from './options';
|
||||
import { render } from './render';
|
||||
import { SidebarComponent } from './sidebar';
|
||||
import { PluginOptions } from './types';
|
||||
|
||||
|
||||
export default async function generate(
|
||||
siteDir: string,
|
||||
opts: Partial<PluginOptions>,
|
||||
) {
|
||||
// we need to generate an empty sidebar up-front so it can be resolved from sidebars.js
|
||||
const options = getOptions(siteDir, opts);
|
||||
// if (options.sidebar) {
|
||||
// writeSidebar(options.sidebar, 'module.exports=[];');
|
||||
// }
|
||||
|
||||
// initialize and build app
|
||||
const app = new Application();
|
||||
|
||||
// load the markdown plugin
|
||||
load(app);
|
||||
|
||||
// customise render
|
||||
app.renderer.render = render;
|
||||
|
||||
// add plugin options
|
||||
addOptions(app);
|
||||
|
||||
// bootstrap typedoc app
|
||||
app.bootstrap(options);
|
||||
|
||||
// add frontmatter component to typedoc renderer
|
||||
// @ts-ignore
|
||||
app.renderer.addComponent('fm', new FrontMatterComponent(app.renderer));
|
||||
|
||||
// add sidebar component to typedoc renderer
|
||||
// @ts-ignore
|
||||
app.renderer.addComponent('sidebar', new SidebarComponent(app.renderer));
|
||||
|
||||
// return the generated reflections
|
||||
const project = app.convert();
|
||||
|
||||
// if project is undefined typedoc has a problem - error logging will be supplied by typedoc.
|
||||
if (!project) {
|
||||
return;
|
||||
}
|
||||
|
||||
// generate or watch app
|
||||
return app.generateDocs(project, options.outputDirectory);
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
// @ts-ignore
|
||||
import { ProjectReflection, UrlMapping } from 'typedoc';
|
||||
// @ts-ignore
|
||||
import { RendererEvent } from 'typedoc/dist/lib/output/events';
|
||||
|
||||
export async function render(
|
||||
project: ProjectReflection,
|
||||
outputDirectory: string,
|
||||
) {
|
||||
if (!this.prepareTheme() || !this.prepareOutputDirectory(outputDirectory)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const output = new RendererEvent(
|
||||
RendererEvent.BEGIN,
|
||||
outputDirectory,
|
||||
project,
|
||||
);
|
||||
|
||||
output.settings = this.application.options.getRawValues();
|
||||
output.urls = this.theme!.getUrls(project);
|
||||
|
||||
this.trigger(output);
|
||||
|
||||
if (!output.isDefaultPrevented) {
|
||||
output.urls?.forEach((mapping: UrlMapping, i) => {
|
||||
this.renderDocument(output.createPageEvent(mapping));
|
||||
console.log(
|
||||
`\rGenerated ${i + 1} of ${output.urls?.length} TypeDoc docs`,
|
||||
);
|
||||
});
|
||||
console.log(`\n`);
|
||||
this.trigger(RendererEvent.END, output);
|
||||
}
|
||||
}
|
||||
111
src/sidebar.ts
111
src/sidebar.ts
@@ -1,111 +0,0 @@
|
||||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
// @ts-ignore
|
||||
import { BindOption } from 'typedoc';
|
||||
// @ts-ignore
|
||||
import { Component } from 'typedoc/dist/lib/converter/components';
|
||||
// @ts-ignore
|
||||
import { RendererComponent } from 'typedoc/dist/lib/output/components';
|
||||
// @ts-ignore
|
||||
import { RendererEvent } from 'typedoc/dist/lib/output/events';
|
||||
|
||||
import { SidebarItem, SidebarOptions } from './types';
|
||||
|
||||
@Component({ name: 'sidebar' })
|
||||
export class SidebarComponent extends RendererComponent {
|
||||
@BindOption('sidebar')
|
||||
sidebar!: SidebarOptions;
|
||||
@BindOption('siteDir')
|
||||
siteDir!: string;
|
||||
@BindOption('out')
|
||||
out!: string;
|
||||
|
||||
initialize() {
|
||||
// @ts-ignore
|
||||
this.listenTo(this.application.renderer, {
|
||||
[RendererEvent.BEGIN]: this.onRendererBegin,
|
||||
});
|
||||
}
|
||||
|
||||
async onRendererBegin(renderer: RendererEvent) {
|
||||
// @ts-ignore
|
||||
const navigation = this.application.renderer.theme?.getNavigation(
|
||||
renderer.project,
|
||||
);
|
||||
|
||||
const out = this.out.match(/(?:.*)en\/(.*)/)![1];
|
||||
|
||||
// map the navigation object to a Docuaurus sidebar format
|
||||
const sidebarItems = navigation?.children
|
||||
? navigation.children.map((navigationItem) => {
|
||||
if (navigationItem.isLabel) {
|
||||
const sidebarCategoryItems = navigationItem.children
|
||||
? navigationItem.children.map((navItem) => {
|
||||
const url = this.getUrlKey(out, navItem.url);
|
||||
if (navItem.children && navItem.children.length > 0) {
|
||||
const sidebarCategoryChildren = navItem.children.map(
|
||||
(childGroup) =>
|
||||
this.getSidebarCategory(
|
||||
childGroup.title,
|
||||
childGroup.children
|
||||
? childGroup.children.map((childItem) =>
|
||||
this.getUrlKey(out, childItem.url),
|
||||
)
|
||||
: [],
|
||||
),
|
||||
);
|
||||
return this.getSidebarCategory(navItem.title, [
|
||||
url,
|
||||
...sidebarCategoryChildren,
|
||||
]);
|
||||
}
|
||||
return url;
|
||||
})
|
||||
: [];
|
||||
return this.getSidebarCategory(
|
||||
navigationItem.title,
|
||||
sidebarCategoryItems,
|
||||
);
|
||||
}
|
||||
return this.getUrlKey(out, navigationItem.url);
|
||||
})
|
||||
: [];
|
||||
|
||||
const sidebarPath = this.sidebar.sidebarPath;
|
||||
|
||||
fs.writeFileSync(sidebarPath, JSON.stringify(sidebarItems, null, 2));
|
||||
// @ts-ignore
|
||||
this.application.logger.success(
|
||||
`TypeDoc sidebar written to ${sidebarPath}`,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* returns a sidebar category node
|
||||
*/
|
||||
getSidebarCategory(title: string, items: SidebarItem[]) {
|
||||
return {
|
||||
items,
|
||||
type: 'category',
|
||||
label: title,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the url key for relevant doc
|
||||
*/
|
||||
getUrlKey(out: string, url: string) {
|
||||
const urlKey = url.replace('.md', '');
|
||||
return out ? out + '/' + urlKey : urlKey;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Write content to sidebar file
|
||||
*/
|
||||
export const writeSidebar = (sidebar: SidebarOptions, content: string) => {
|
||||
if (!fs.existsSync(path.dirname(sidebar.sidebarPath))) {
|
||||
fs.mkdirSync(path.dirname(sidebar.sidebarPath));
|
||||
}
|
||||
fs.writeFileSync(sidebar.sidebarPath, content);
|
||||
};
|
||||
46
src/types.ts
46
src/types.ts
@@ -1,46 +0,0 @@
|
||||
export interface PluginOptions {
|
||||
id: string;
|
||||
docsRoot: string;
|
||||
out: string;
|
||||
sidebar: SidebarOptions | null;
|
||||
readmeTitle?: string;
|
||||
globalsTitle?: string;
|
||||
plugin: string[];
|
||||
readme?: string;
|
||||
disableOutputCheck?: boolean;
|
||||
entryPoints?: string[];
|
||||
entryDocument: string;
|
||||
hideInPageTOC: boolean;
|
||||
hideBreadcrumbs: boolean;
|
||||
siteDir: string;
|
||||
outputDirectory: string;
|
||||
watch: boolean;
|
||||
}
|
||||
|
||||
export interface FrontMatter {
|
||||
id?: string;
|
||||
title: string;
|
||||
slug?: string;
|
||||
sidebar_label?: string;
|
||||
hide_title?: boolean;
|
||||
}
|
||||
|
||||
export interface SidebarOptions {
|
||||
fullNames?: boolean;
|
||||
sidebarFile: string;
|
||||
sidebarPath: string;
|
||||
indexLabel?: string;
|
||||
readmeLabel?: string;
|
||||
}
|
||||
|
||||
export interface Sidebar {
|
||||
[sidebarId: string]: SidebarItem[];
|
||||
}
|
||||
|
||||
export interface SidebarCategory {
|
||||
type: string;
|
||||
label: string;
|
||||
items: SidebarItem[];
|
||||
}
|
||||
|
||||
export type SidebarItem = SidebarCategory | string;
|
||||
23
src/watch.ts
23
src/watch.ts
@@ -1,23 +0,0 @@
|
||||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
// @ts-ignore
|
||||
import { Application } from 'typedoc';
|
||||
|
||||
import { PluginOptions } from './types';
|
||||
|
||||
/**
|
||||
* Calls TypeDoc's `convertAndWatch` and force trigger sidebars refresh.
|
||||
*/
|
||||
export const convertAndWatch = (app: Application, options: PluginOptions) => {
|
||||
const sidebarsJsPath = path.resolve(options.siteDir, 'sidebars.js');
|
||||
app.convertAndWatch(async (project) => {
|
||||
if (options.sidebar) {
|
||||
// remove typedoc sidebar from require cache
|
||||
delete require.cache[options.sidebar.sidebarPath];
|
||||
// force trigger a sidebars.js refresh
|
||||
const sidebarJsContent = fs.readFileSync(sidebarsJsPath);
|
||||
fs.writeFileSync(sidebarsJsPath, sidebarJsContent);
|
||||
}
|
||||
await app.generateDocs(project, options.outputDirectory);
|
||||
});
|
||||
};
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"declaration": false,
|
||||
"experimentalDecorators": true,
|
||||
"lib": ["es2018", "dom"],
|
||||
"module": "commonjs",
|
||||
"moduleResolution": "node",
|
||||
"noImplicitAny": false,
|
||||
"noUnusedLocals": true,
|
||||
"removeComments": false,
|
||||
"sourceMap": false,
|
||||
"strictNullChecks": true,
|
||||
"target": "es2018",
|
||||
"outDir": "dist"
|
||||
}
|
||||
}
|
||||
189
yarn.lock
189
yarn.lock
@@ -2,32 +2,173 @@
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@actions/core@^1.2.6":
|
||||
version "1.2.6"
|
||||
resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.2.6.tgz#a78d49f41a4def18e88ce47c2cac615d5694bf09"
|
||||
integrity sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA==
|
||||
balanced-match@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
|
||||
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
|
||||
|
||||
"@types/node@^14.14.35":
|
||||
version "14.14.35"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.35.tgz#42c953a4e2b18ab931f72477e7012172f4ffa313"
|
||||
integrity sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==
|
||||
brace-expansion@^1.1.7:
|
||||
version "1.1.11"
|
||||
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
|
||||
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
|
||||
dependencies:
|
||||
balanced-match "^1.0.0"
|
||||
concat-map "0.0.1"
|
||||
|
||||
"@vercel/ncc@^0.28.5":
|
||||
version "0.28.5"
|
||||
resolved "https://registry.yarnpkg.com/@vercel/ncc/-/ncc-0.28.5.tgz#6d735379f81b70b708a9c3d2196507b2a841824f"
|
||||
integrity sha512-ZSwD4EDCon2EsnPZ2/Qcigx4N2DiuBLV/rDnF04giEPFuDeBeUDdnSTyYYfX8KNic/prrJuS1vUEmAOHmj+fRg==
|
||||
concat-map@0.0.1:
|
||||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
|
||||
|
||||
override-require@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/override-require/-/override-require-1.1.1.tgz#6ae22fadeb1f850ffb0cf4c20ff7b87e5eb650df"
|
||||
integrity sha1-auIvresfhQ/7DPTCD/e4fl62UN8=
|
||||
docusaurus-plugin-typedoc@^0.16.7:
|
||||
version "0.16.7"
|
||||
resolved "https://registry.yarnpkg.com/docusaurus-plugin-typedoc/-/docusaurus-plugin-typedoc-0.16.7.tgz#b23f22b8ec93d25d8d3e204684ab05e4636a6873"
|
||||
integrity sha512-4V/Nw+cJDbcmA6getpweAKuu1tTyky3/gHliL75DLJntk2pR5wM/x4jNFaYiHOPsnP3d5CkBfK+mSSo4M9jtvA==
|
||||
|
||||
tslib@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a"
|
||||
integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==
|
||||
fs.realpath@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
||||
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
|
||||
|
||||
typescript@^4.2.3:
|
||||
version "4.2.3"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.3.tgz#39062d8019912d43726298f09493d598048c1ce3"
|
||||
integrity sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==
|
||||
glob@^7.2.0:
|
||||
version "7.2.0"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
|
||||
integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
|
||||
dependencies:
|
||||
fs.realpath "^1.0.0"
|
||||
inflight "^1.0.4"
|
||||
inherits "2"
|
||||
minimatch "^3.0.4"
|
||||
once "^1.3.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
|
||||
handlebars@^4.7.7:
|
||||
version "4.7.7"
|
||||
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1"
|
||||
integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==
|
||||
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"
|
||||
|
||||
inflight@^1.0.4:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
||||
integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
|
||||
dependencies:
|
||||
once "^1.3.0"
|
||||
wrappy "1"
|
||||
|
||||
inherits@2:
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
||||
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
||||
|
||||
jsonc-parser@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22"
|
||||
integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==
|
||||
|
||||
lunr@^2.3.9:
|
||||
version "2.3.9"
|
||||
resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1"
|
||||
integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==
|
||||
|
||||
marked@^3.0.8:
|
||||
version "3.0.8"
|
||||
resolved "https://registry.yarnpkg.com/marked/-/marked-3.0.8.tgz#2785f0dc79cbdc6034be4bb4f0f0a396bd3f8aeb"
|
||||
integrity sha512-0gVrAjo5m0VZSJb4rpL59K1unJAMb/hm8HRXqasD8VeC8m91ytDPMritgFSlKonfdt+rRYYpP/JfLxgIX8yoSw==
|
||||
|
||||
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==
|
||||
dependencies:
|
||||
brace-expansion "^1.1.7"
|
||||
|
||||
minimist@^1.2.5:
|
||||
version "1.2.5"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
|
||||
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
|
||||
|
||||
neo-async@^2.6.0:
|
||||
version "2.6.2"
|
||||
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
|
||||
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
|
||||
|
||||
once@^1.3.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
||||
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
||||
dependencies:
|
||||
wrappy "1"
|
||||
|
||||
path-is-absolute@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
||||
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
|
||||
|
||||
shiki@^0.9.12:
|
||||
version "0.9.15"
|
||||
resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.9.15.tgz#2481b46155364f236651319d2c18e329ead6fa44"
|
||||
integrity sha512-/Y0z9IzhJ8nD9nbceORCqu6NgT9X6I8Fk8c3SICHI5NbZRLdZYFaB233gwct9sU0vvSypyaL/qaKvzyQGJBZSw==
|
||||
dependencies:
|
||||
jsonc-parser "^3.0.0"
|
||||
vscode-oniguruma "^1.6.1"
|
||||
vscode-textmate "5.2.0"
|
||||
|
||||
source-map@^0.6.1:
|
||||
version "0.6.1"
|
||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
||||
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
||||
|
||||
typedoc-plugin-markdown@^3.11.11:
|
||||
version "3.11.11"
|
||||
resolved "https://registry.yarnpkg.com/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.11.11.tgz#5a7cdac2ebf4a11a622c2947484893decbbe54df"
|
||||
integrity sha512-LyephgG2yHiSqJppuDVKy3dPLSbzP+ke/VBxGvH4I/+31NXzuEhLFhxx/X4UMqzh2XbUB44ttABtGd11biKr4Q==
|
||||
dependencies:
|
||||
handlebars "^4.7.7"
|
||||
|
||||
typedoc@^0.22.10:
|
||||
version "0.22.10"
|
||||
resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.22.10.tgz#221e1a2b17bcb71817ef027dc4c4969d572e7620"
|
||||
integrity sha512-hQYZ4WtoMZ61wDC6w10kxA42+jclWngdmztNZsDvIz7BMJg7F2xnT+uYsUa7OluyKossdFj9E9Ye4QOZKTy8SA==
|
||||
dependencies:
|
||||
glob "^7.2.0"
|
||||
lunr "^2.3.9"
|
||||
marked "^3.0.8"
|
||||
minimatch "^3.0.4"
|
||||
shiki "^0.9.12"
|
||||
|
||||
typescript@^4.5.4:
|
||||
version "4.5.4"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.4.tgz#a17d3a0263bf5c8723b9c52f43c5084edf13c2e8"
|
||||
integrity sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==
|
||||
|
||||
uglify-js@^3.1.4:
|
||||
version "3.14.5"
|
||||
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.5.tgz#cdabb7d4954231d80cb4a927654c4655e51f4859"
|
||||
integrity sha512-qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ==
|
||||
|
||||
vscode-oniguruma@^1.6.1:
|
||||
version "1.6.1"
|
||||
resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.6.1.tgz#2bf4dfcfe3dd2e56eb549a3068c8ee39e6c30ce5"
|
||||
integrity sha512-vc4WhSIaVpgJ0jJIejjYxPvURJavX6QG41vu0mGhqywMkQqulezEqEQ3cO3gc8GvcOpX6ycmKGqRoROEMBNXTQ==
|
||||
|
||||
vscode-textmate@5.2.0:
|
||||
version "5.2.0"
|
||||
resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e"
|
||||
integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==
|
||||
|
||||
wordwrap@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
|
||||
integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
|
||||
|
||||
wrappy@1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
||||
|
||||
Reference in New Issue
Block a user