diff --git a/.github/labeler.yml b/.github/labeler.yml index 590039102..dcb29f1e7 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -14,6 +14,10 @@ chore: - packages/discord.js/* - packages/discord.js/**/* +'packages:docgen': + - packages/docgen/* + - packages/docgen/**/* + 'packages:proxy': - packages/proxy/* - packages/proxy/**/* diff --git a/.github/labels.yml b/.github/labels.yml index b644606f9..fc60b1b6c 100644 --- a/.github/labels.yml +++ b/.github/labels.yml @@ -50,6 +50,8 @@ color: 'fbca04' - name: 'packages:discord.js' color: 'fbca04' +- name: 'packages:docgen' + color: 'fbca04' - name: 'packages:proxy' color: 'fbca04' - name: 'packages:rest' diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000..3f2939e87 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,8 @@ +**/CHANGELOG.md +**/.turbo +**/dist/ +**/docs/**/* +**/!docs/index.yml +**/!docs/README.md +**/coverage/ +**/LICENSE diff --git a/packages/actions/.prettierignore b/packages/actions/.prettierignore index 553e0ea6c..a8f763a7c 100644 --- a/packages/actions/.prettierignore +++ b/packages/actions/.prettierignore @@ -6,3 +6,4 @@ docs/**/* !docs/index.yml !docs/README.md coverage/ +tsup.config.*.mjs diff --git a/packages/actions/LICENSE b/packages/actions/LICENSE index cbe9c6540..e2822e9d8 100644 --- a/packages/actions/LICENSE +++ b/packages/actions/LICENSE @@ -175,8 +175,7 @@ END OF TERMS AND CONDITIONS - Copyright 2021 Noel Buechler - Copyright 2021 Vlad Frangu + Copyright 2022 Noel Buechler Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/packages/builders/.prettierignore b/packages/builders/.prettierignore index 553e0ea6c..a8f763a7c 100644 --- a/packages/builders/.prettierignore +++ b/packages/builders/.prettierignore @@ -6,3 +6,4 @@ docs/**/* !docs/index.yml !docs/README.md coverage/ +tsup.config.*.mjs diff --git a/packages/collection/.prettierignore b/packages/collection/.prettierignore index 553e0ea6c..a8f763a7c 100644 --- a/packages/collection/.prettierignore +++ b/packages/collection/.prettierignore @@ -6,3 +6,4 @@ docs/**/* !docs/index.yml !docs/README.md coverage/ +tsup.config.*.mjs diff --git a/packages/collection/LICENSE b/packages/collection/LICENSE index 52b53d446..d21f37a65 100644 --- a/packages/collection/LICENSE +++ b/packages/collection/LICENSE @@ -175,8 +175,8 @@ END OF TERMS AND CONDITIONS - Copyright 2015 - 2021 Noel Buechler - Copyright 2015 - 2021 Amish Shah + Copyright 2021 Noel Buechler + Copyright 2015 Amish Shah Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/packages/discord.js/.gitignore b/packages/discord.js/.gitignore index c159805a3..1781cfe4a 100644 --- a/packages/discord.js/.gitignore +++ b/packages/discord.js/.gitignore @@ -15,11 +15,13 @@ pids .env test/auth.json test/auth.js -docs/deploy/deploy_key -docs/deploy/deploy_key.pub -deploy/deploy_key -deploy/deploy_key.pub # Dist dist/ -docs/docs.json +docs/**/* +!docs/index.json + +# Miscellaneous +.tmp/ +coverage/ +tsconfig.tsbuildinfo diff --git a/packages/discord.js/.prettierignore b/packages/discord.js/.prettierignore index 553e0ea6c..a8f763a7c 100644 --- a/packages/discord.js/.prettierignore +++ b/packages/discord.js/.prettierignore @@ -6,3 +6,4 @@ docs/**/* !docs/index.yml !docs/README.md coverage/ +tsup.config.*.mjs diff --git a/packages/discord.js/LICENSE b/packages/discord.js/LICENSE index 52b53d446..d21f37a65 100644 --- a/packages/discord.js/LICENSE +++ b/packages/discord.js/LICENSE @@ -175,8 +175,8 @@ END OF TERMS AND CONDITIONS - Copyright 2015 - 2021 Noel Buechler - Copyright 2015 - 2021 Amish Shah + Copyright 2021 Noel Buechler + Copyright 2015 Amish Shah Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/packages/discord.js/docs/index.json b/packages/discord.js/docs/index.json new file mode 100644 index 000000000..557341ae9 --- /dev/null +++ b/packages/discord.js/docs/index.json @@ -0,0 +1 @@ +[{ "name": "General", "files": [{ "name": "Welcome", "id": "welcome", "path": "../../README.md" }] }] diff --git a/packages/discord.js/docs/index.yml b/packages/discord.js/docs/index.yml deleted file mode 100644 index 2c993519e..000000000 --- a/packages/discord.js/docs/index.yml +++ /dev/null @@ -1,5 +0,0 @@ -- name: General - files: - - name: Welcome - id: welcome - path: ../../README.md diff --git a/packages/discord.js/package.json b/packages/discord.js/package.json index 7f360d6f6..95879477e 100644 --- a/packages/discord.js/package.json +++ b/packages/discord.js/package.json @@ -7,8 +7,8 @@ "test:typescript": "tsc --noEmit && tsd", "lint": "prettier --check . && eslint src && tslint typings/index.d.ts", "format": "prettier --write . && eslint src --fix", - "docs": "docgen --source ./src --custom ./docs/index.yml --root ../../ --output ./docs/docs.json", - "docs:test": "docgen --source ./src --custom ./docs/index.yml --root ../../", + "docs": "docgen -i ./src/*.js ./src/**/*.js -c ./docs/index.json -r ../../ -o ./docs/docs.json", + "docs:test": "docgen -i ./src/*.js ./src/**/*.js -c ./docs/index.json -r ../../", "prepublishOnly": "yarn lint && yarn test", "changelog": "git cliff --prepend ./CHANGELOG.md -u -c ./cliff.toml -r ../../ --include-path 'packages/discord.js/*'", "release": "cliff-jumper --skip-tag --verbose" @@ -61,7 +61,7 @@ "ws": "^8.7.0" }, "devDependencies": { - "@discordjs/docgen": "^0.11.1", + "@discordjs/docgen": "workspace:^", "@favware/cliff-jumper": "^1.8.3", "@types/node": "^16.11.38", "dtslint": "^4.2.1", diff --git a/packages/docgen/.eslintrc.json b/packages/docgen/.eslintrc.json new file mode 100644 index 000000000..0998f03ac --- /dev/null +++ b/packages/docgen/.eslintrc.json @@ -0,0 +1,12 @@ +{ + "root": true, + "extends": "marine/prettier/node", + "parserOptions": { + "project": "./tsconfig.eslint.json", + "extraFileExtensions": [".mjs"] + }, + "ignorePatterns": ["**/dist/*"], + "env": { + "jest": true + } +} diff --git a/packages/docgen/.gitignore b/packages/docgen/.gitignore new file mode 100644 index 000000000..5189c6c61 --- /dev/null +++ b/packages/docgen/.gitignore @@ -0,0 +1,25 @@ +# Packages +node_modules/ + +# Log files +logs/ +*.log +npm-debug.log* + +# Runtime data +pids +*.pid +*.seed + +# Env +.env + +# Dist +dist/ +typings/ + +docs/**/* + +# Miscellaneous +.tmp/ +coverage/ diff --git a/packages/docgen/.prettierignore b/packages/docgen/.prettierignore new file mode 100644 index 000000000..a8f763a7c --- /dev/null +++ b/packages/docgen/.prettierignore @@ -0,0 +1,9 @@ +# Autogenerated +CHANGELOG.md +.turbo +dist/ +docs/**/* +!docs/index.yml +!docs/README.md +coverage/ +tsup.config.*.mjs diff --git a/packages/docgen/.prettierrc.json b/packages/docgen/.prettierrc.json new file mode 100644 index 000000000..eba3f4077 --- /dev/null +++ b/packages/docgen/.prettierrc.json @@ -0,0 +1,8 @@ +{ + "printWidth": 120, + "useTabs": true, + "singleQuote": true, + "quoteProps": "as-needed", + "trailingComma": "all", + "endOfLine": "lf" +} diff --git a/packages/docgen/LICENSE b/packages/docgen/LICENSE new file mode 100644 index 000000000..934d08520 --- /dev/null +++ b/packages/docgen/LICENSE @@ -0,0 +1,191 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + Copyright 2022 Noel Buechler + Copyright 2015 Amish Shah + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/docgen/README.md b/packages/docgen/README.md new file mode 100644 index 000000000..d1a9eca44 --- /dev/null +++ b/packages/docgen/README.md @@ -0,0 +1,31 @@ +
+
+

+ discord.js +

+
+

+ Discord server + Build status +

+
+ +## Links + +- [Website](https://discord.js.org/) ([source](https://github.com/discordjs/website)) +- [Documentation](https://discord.js.org/#/docs) +- [Guide](https://discordjs.guide/) ([source](https://github.com/discordjs/guide)) + See also the [Update Guide](https://discordjs.guide/additional-info/changes-in-v13.html), including updated and removed items in the library. +- [discord.js Discord server](https://discord.gg/djs) +- [Discord API Discord server](https://discord.gg/discord-api) +- [GitHub](https://github.com/discordjs/discord.js/tree/main/packages/scripts) +- [Related libraries](https://discord.com/developers/docs/topics/community-resources#libraries) + +## Contributing + +See [the contribution guide](https://github.com/discordjs/discord.js/blob/main/.github/CONTRIBUTING.md) if you'd like to submit a PR. + +## Help + +If you don't understand something in the documentation, you are experiencing problems, or you just need a gentle +nudge in the right direction, please don't hesitate to join our official [discord.js Server](https://discord.gg/djs). diff --git a/packages/docgen/package.json b/packages/docgen/package.json new file mode 100644 index 000000000..a1da8b632 --- /dev/null +++ b/packages/docgen/package.json @@ -0,0 +1,74 @@ +{ + "name": "@discordjs/docgen", + "version": "0.12.0-dev", + "description": "The docs.json generator for discord.js and its related projects", + "scripts": { + "build": "tsup", + "lint": "prettier --check . && eslint src --ext mjs,js,ts", + "format": "prettier --write . && eslint src --ext mjs,js,ts --fix", + "prepublishOnly": "yarn build && yarn lint && yarn test", + "changelog": "git cliff --prepend ./CHANGELOG.md -u -c ./cliff.toml -r ../../ --include-path 'packages/docgen/*'", + "release": "cliff-jumper" + }, + "bin": "./dist/index.js", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "exports": { + "import": "./dist/index.mjs", + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + }, + "directories": { + "lib": "src" + }, + "files": [ + "dist" + ], + "contributors": [ + "Crawl ", + "Amish Shah ", + "Schuyler Cebulskie " + ], + "license": "Apache-2.0", + "keywords": [ + "documentation", + "docs", + "generator", + "docgen", + "docsgen", + "node", + "discordjs" + ], + "repository": { + "type": "git", + "url": "https://github.com/discordjs/discord.js.git" + }, + "bugs": { + "url": "https://github.com/discordjs/discord.js/issues" + }, + "homepage": "https://discord.js.org", + "dependencies": { + "@discordjs/collection": "workspace:^", + "commander": "^9.3.0", + "jsdoc-to-markdown": "^7.1.1", + "tslib": "^2.4.0" + }, + "devDependencies": { + "@favware/cliff-jumper": "^1.8.3", + "@types/jsdoc-to-markdown": "^7.0.3", + "@types/node": "^16.11.38", + "@typescript-eslint/eslint-plugin": "^5.27.1", + "@typescript-eslint/parser": "^5.27.1", + "eslint": "^8.17.0", + "eslint-config-marine": "^9.4.1", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-import": "^2.26.0", + "prettier": "^2.6.2", + "tsup": "^6.1.0", + "typescript": "^4.7.3" + }, + "engines": { + "node": ">=16.9.0" + } +} diff --git a/packages/docgen/src/documentation.ts b/packages/docgen/src/documentation.ts new file mode 100644 index 000000000..8535c1d07 --- /dev/null +++ b/packages/docgen/src/documentation.ts @@ -0,0 +1,143 @@ +import { join } from 'path'; +import { Collection } from '@discordjs/collection'; +import type { ChildTypes, Class, Config, CustomDocs, RootTypes } from './interfaces/index.js'; +import { DocumentedClass } from './types/class.js'; +import { DocumentedConstructor } from './types/constructor.js'; +import { DocumentedEvent } from './types/event.js'; +import { DocumentedExternal } from './types/external.js'; +import { DocumentedInterface } from './types/interface.js'; +import { DocumentedMember } from './types/member.js'; +import { DocumentedMethod } from './types/method.js'; +import { DocumentedTypeDef } from './types/typedef.js'; +import packageFile from '../package.json'; + +export class Documentation { + public readonly classes = new Collection(); + + public readonly functions = new Collection(); + + public readonly interfaces = new Collection(); + + public readonly typedefs = new Collection(); + + public readonly externals = new Collection(); + + public constructor( + data: RootTypes[], + private readonly config: Config, + private readonly custom?: Record, + ) { + let items = data; + for (const item of items) { + switch (item.kind) { + case 'class': { + this.classes.set(item.name, new DocumentedClass(item, config)); + items = items.filter((i) => i.longname !== item.longname); + break; + } + case 'function': { + if (item.scope === 'global' || !item.memberof) { + this.functions.set(item.name, new DocumentedMethod(item, config)); + items = items.filter((i) => i.longname !== item.longname); + } + break; + } + case 'interface': { + this.interfaces.set(item.name, new DocumentedInterface(item as unknown as Class, config)); + items = items.filter((i) => i.longname !== item.longname); + break; + } + case 'typedef': { + this.typedefs.set(item.name, new DocumentedTypeDef(item, config)); + items = items.filter((i) => i.longname !== item.longname); + break; + } + case 'external': { + this.externals.set(item.name, new DocumentedExternal(item, config)); + items = items.filter((i) => i.longname !== item.longname); + break; + } + default: + break; + } + } + + this.parse(items as ChildTypes[]); + } + + public parse(items: ChildTypes[]) { + for (const member of items) { + let item: DocumentedMethod | DocumentedConstructor | DocumentedMember | DocumentedEvent | null = null; + + switch (member.kind) { + case 'constructor': { + item = new DocumentedConstructor(member, this.config); + break; + } + case 'function': { + item = new DocumentedMethod(member, this.config); + break; + } + case 'member': { + item = new DocumentedMember(member, this.config); + break; + } + case 'event': { + item = new DocumentedEvent(member, this.config); + break; + } + default: { + // @ts-expect-error + // eslint-disable-next-line @typescript-eslint/restrict-template-expressions + console.warn(`- Unknown documentation kind "${member.kind}" - \n${JSON.stringify(member)}\n`); + } + } + + const parent = this.classes.get(member.memberof ?? '') ?? this.interfaces.get(member.memberof ?? ''); + if (parent) { + if (item) { + parent.add(item); + } else { + console.warn( + `- Documentation item could not be constructed for "${member.name}" - \n${JSON.stringify(member)}\n`, + ); + } + continue; + } + + const info = []; + const name = (member.name || item?.data.name) ?? 'UNKNOWN'; + const memberof = member.memberof ?? item?.data.memberof; + const meta = + member.kind === 'constructor' + ? null + : { file: member.meta.filename, line: member.meta.lineno, path: member.meta.path }; + + if (memberof) info.push(`member of "${memberof}"`); + if (meta) info.push(`${join(meta.path, meta.file)}${meta.line ? `:${meta.line}` : ''}`); + + console.warn(`- "${name}"${info.length ? ` (${info.join(', ')})` : ''} has no accessible parent.`); + if (!name && !info.length) console.warn('Raw object:', member); + } + } + + public serialize() { + return { + meta: { + generator: packageFile.version, + format: Documentation.FORMAT_VERSION, + date: Date.now(), + }, + classes: this.classes.map((c) => c.serialize()), + functions: this.functions.map((f) => f.serialize()), + interfaces: this.interfaces.map((i) => i.serialize()), + typedefs: this.typedefs.map((t) => t.serialize()), + externals: this.externals.map((e) => e.serialize()), + custom: this.custom, + }; + } + + public static get FORMAT_VERSION() { + return 30; + } +} diff --git a/packages/docgen/src/index.ts b/packages/docgen/src/index.ts new file mode 100644 index 000000000..753ac66ae --- /dev/null +++ b/packages/docgen/src/index.ts @@ -0,0 +1,88 @@ +#!/usr/bin/env node +import { readFileSync, writeFileSync } from 'fs'; +import { join, basename, extname, dirname, relative } from 'path'; +import { createCommand } from 'commander'; +import jsdoc2md from 'jsdoc-to-markdown'; +import { Documentation } from './documentation.js'; +import type { ChildTypes, CustomDocs, RootTypes } from './interfaces/index.js'; +import packageFile from '../package.json'; + +interface CLIOptions { + input: string[]; + custom: string; + root: string; + output: string; +} + +interface CustomFiles { + id?: string; + name: string; + path?: string; + files: { + id?: string; + name: string; + path: string; + }[]; +} + +const command = createCommand() + .version(packageFile.version) + .option('-i, --input ', 'Source directories to parse JSDocs in') + .option('-c, --custom ', 'Custom docs definition file to use') + .option('-r, --root [string]', 'Root directory of the project', '.') + .option('-o, --output ', 'Path to output file'); + +const program = command.parse(process.argv); +const options = program.opts(); + +console.log('Parsing JSDocs in source files...'); +const data = jsdoc2md.getTemplateDataSync({ files: options.input }) as (RootTypes & ChildTypes)[]; +console.log(`${data.length} JSDoc items parsed.`); + +const custom: Record = {}; +if (options.custom) { + console.log('Loading custom docs files...'); + const customDir = dirname(options.custom); + const file = readFileSync(options.custom, 'utf-8'); + const data = JSON.parse(file) as CustomFiles[]; + + for (const category of data) { + const categoryId = category.id ?? category.name.toLowerCase(); + const dir = join(customDir, category.path ?? categoryId); + custom[categoryId] = { + name: category.name || category.id, + files: {}, + }; + + for (const f of category.files) { + const fileRootPath = join(dir, f.path); + const extension = extname(f.path); + const fileId = f.id ?? basename(f.path, extension); + const fileData = readFileSync(fileRootPath, 'utf-8'); + custom[categoryId]!.files[fileId] = { + name: f.name, + type: extension.toLowerCase().replace(/^\./, ''), + content: fileData, + path: relative(options.root, fileRootPath).replace(/\\/g, '/'), + }; + } + } + + const fileCount = Object.keys(custom) + .map((k) => Object.keys(custom[k]!)) + .reduce((prev, c) => prev + c.length, 0); + const categoryCount = Object.keys(custom).length; + console.log( + `${fileCount} custom docs file${fileCount === 1 ? '' : 's'} in ` + + `${categoryCount} categor${categoryCount === 1 ? 'y' : 'ies'} loaded.`, + ); +} + +console.log(`Serializing documentation with format version ${Documentation.FORMAT_VERSION}...`); +const docs = new Documentation(data, options, custom); + +if (options.output) { + console.log(`Writing to ${options.output}...`); + writeFileSync(options.output, JSON.stringify(docs.serialize())); +} +console.log('Done!'); diff --git a/packages/docgen/src/interfaces/access.type.ts b/packages/docgen/src/interfaces/access.type.ts new file mode 100644 index 000000000..29c4a4be0 --- /dev/null +++ b/packages/docgen/src/interfaces/access.type.ts @@ -0,0 +1 @@ +export type Access = 'public' | 'private' | 'protected'; diff --git a/packages/docgen/src/interfaces/childTypes.type.ts b/packages/docgen/src/interfaces/childTypes.type.ts new file mode 100644 index 000000000..7c1181871 --- /dev/null +++ b/packages/docgen/src/interfaces/childTypes.type.ts @@ -0,0 +1,3 @@ +import type { Constructor, Event, Member, Method } from './index.js'; + +export type ChildTypes = Constructor | Member | Method | Event; diff --git a/packages/docgen/src/interfaces/class.interface.ts b/packages/docgen/src/interfaces/class.interface.ts new file mode 100644 index 000000000..7ef86fe58 --- /dev/null +++ b/packages/docgen/src/interfaces/class.interface.ts @@ -0,0 +1,13 @@ +import type { Access, Item, Meta, Scope } from './index.js'; + +export interface Class extends Item { + kind: 'class'; + scope: Scope; + implements?: string[]; + augments?: string[]; + see?: string[]; + access?: Access; + virtual?: boolean; + deprecated?: boolean | string; + meta: Meta; +} diff --git a/packages/docgen/src/interfaces/config.interface.ts b/packages/docgen/src/interfaces/config.interface.ts new file mode 100644 index 000000000..fc7b97ba9 --- /dev/null +++ b/packages/docgen/src/interfaces/config.interface.ts @@ -0,0 +1,3 @@ +export interface Config { + root: string; +} diff --git a/packages/docgen/src/interfaces/constructor.interface.ts b/packages/docgen/src/interfaces/constructor.interface.ts new file mode 100644 index 000000000..2e18838b0 --- /dev/null +++ b/packages/docgen/src/interfaces/constructor.interface.ts @@ -0,0 +1,9 @@ +import type { Access, Item, Param } from './index.js'; + +export interface Constructor extends Item { + kind: 'constructor'; + memberof: string; + see?: string[]; + access?: Access; + params?: Param[]; +} diff --git a/packages/docgen/src/interfaces/customDocs.interface.ts b/packages/docgen/src/interfaces/customDocs.interface.ts new file mode 100644 index 000000000..5ad119c8b --- /dev/null +++ b/packages/docgen/src/interfaces/customDocs.interface.ts @@ -0,0 +1,12 @@ +export interface CustomDocs { + name?: string; + files: Record< + string, + { + name?: string; + type?: string; + content?: string; + path?: string; + } + >; +} diff --git a/packages/docgen/src/interfaces/event.interface.ts b/packages/docgen/src/interfaces/event.interface.ts new file mode 100644 index 000000000..fc389b5c3 --- /dev/null +++ b/packages/docgen/src/interfaces/event.interface.ts @@ -0,0 +1,11 @@ +import type { Item, Meta, Param, Scope } from './index.js'; + +export interface Event extends Item { + kind: 'event'; + scope: Scope; + memberof: string; + see?: string[]; + deprecated?: boolean | string; + params?: Param[]; + meta: Meta; +} diff --git a/packages/docgen/src/interfaces/exception.interface.ts b/packages/docgen/src/interfaces/exception.interface.ts new file mode 100644 index 000000000..763bb541f --- /dev/null +++ b/packages/docgen/src/interfaces/exception.interface.ts @@ -0,0 +1,7 @@ +import type { Type } from './index.js'; + +export interface Exception { + type: Type; + nullable?: boolean; + description?: string; +} diff --git a/packages/docgen/src/interfaces/external.interface.ts b/packages/docgen/src/interfaces/external.interface.ts new file mode 100644 index 000000000..aef5da7fd --- /dev/null +++ b/packages/docgen/src/interfaces/external.interface.ts @@ -0,0 +1,7 @@ +import type { Item, Meta } from './index.js'; + +export interface External extends Item { + kind: 'external'; + see?: string[]; + meta: Meta; +} diff --git a/packages/docgen/src/interfaces/index.ts b/packages/docgen/src/interfaces/index.ts new file mode 100644 index 000000000..11e2364a6 --- /dev/null +++ b/packages/docgen/src/interfaces/index.ts @@ -0,0 +1,21 @@ +export * from './access.type.js'; +export * from './childTypes.type'; +export * from './class.interface.js'; +export * from './config.interface.js'; +export * from './constructor.interface.js'; +export * from './customDocs.interface.js'; +export * from './event.interface.js'; +export * from './exception.interface.js'; +export * from './external.interface.js'; +export * from './interface.interface.js'; +export * from './item.interface.js'; +export * from './member.interface.js'; +export * from './meta.interface.js'; +export * from './method.interface.js'; +export * from './param.interface.js'; +export * from './return.interface.js'; +export * from './rootTypes.type.js'; +export * from './scope.type.js'; +export * from './type.interface.js'; +export * from './typedef.interface.js'; +export * from './var-type.interface'; diff --git a/packages/docgen/src/interfaces/interface.interface.ts b/packages/docgen/src/interfaces/interface.interface.ts new file mode 100644 index 000000000..01aa7293e --- /dev/null +++ b/packages/docgen/src/interfaces/interface.interface.ts @@ -0,0 +1,7 @@ +import type { Class } from './index.js'; + +// @ts-expect-error +export interface Interface extends Class { + kind: 'interface'; + classdesc: string; +} diff --git a/packages/docgen/src/interfaces/item.interface.ts b/packages/docgen/src/interfaces/item.interface.ts new file mode 100644 index 000000000..95c34b375 --- /dev/null +++ b/packages/docgen/src/interfaces/item.interface.ts @@ -0,0 +1,8 @@ +export interface Item { + id: string; + longname: string; + name: string; + kind: string; + description: string; + order: number; +} diff --git a/packages/docgen/src/interfaces/member.interface.ts b/packages/docgen/src/interfaces/member.interface.ts new file mode 100644 index 000000000..c71a08379 --- /dev/null +++ b/packages/docgen/src/interfaces/member.interface.ts @@ -0,0 +1,17 @@ +import type { Access, Item, Meta, Param, Scope, Type } from './index.js'; + +export interface Member extends Item { + kind: 'member'; + see?: string[]; + scope: Scope; + memberof: string; + type: Type; + access?: Access; + readonly?: boolean; + nullable?: boolean; + virtual?: boolean; + deprecated?: boolean | string; + default?: string; + properties?: Param[]; + meta: Meta; +} diff --git a/packages/docgen/src/interfaces/meta.interface.ts b/packages/docgen/src/interfaces/meta.interface.ts new file mode 100644 index 000000000..df50bf525 --- /dev/null +++ b/packages/docgen/src/interfaces/meta.interface.ts @@ -0,0 +1,5 @@ +export interface Meta { + lineno: number; + filename: string; + path: string; +} diff --git a/packages/docgen/src/interfaces/method.interface.ts b/packages/docgen/src/interfaces/method.interface.ts new file mode 100644 index 000000000..4d2421d20 --- /dev/null +++ b/packages/docgen/src/interfaces/method.interface.ts @@ -0,0 +1,22 @@ +import type { Access, Exception, Item, Meta, Param, Return, Scope } from './index.js'; + +export interface Method extends Item { + kind: 'function'; + see?: string[]; + scope: Scope; + access?: Access; + inherits?: string; + inherited?: boolean; + implements?: string[]; + examples?: string[]; + virtual?: boolean; + deprecated?: boolean | string; + memberof?: string; + params?: Param[]; + async?: boolean; + generator?: boolean; + fires?: string[]; + returns?: Return[]; + exceptions?: Exception[]; + meta: Meta; +} diff --git a/packages/docgen/src/interfaces/param.interface.ts b/packages/docgen/src/interfaces/param.interface.ts new file mode 100644 index 000000000..d6bde6839 --- /dev/null +++ b/packages/docgen/src/interfaces/param.interface.ts @@ -0,0 +1,11 @@ +import type { Type } from './index.js'; + +export interface Param { + type: Type; + description: string; + name: string; + optional?: boolean; + defaultvalue?: string; + variable?: string; + nullable?: boolean; +} diff --git a/packages/docgen/src/interfaces/return.interface.ts b/packages/docgen/src/interfaces/return.interface.ts new file mode 100644 index 000000000..8a7e658ff --- /dev/null +++ b/packages/docgen/src/interfaces/return.interface.ts @@ -0,0 +1,7 @@ +import type { Type } from './index.js'; + +export interface Return { + type: Type; + nullable?: boolean; + description?: string; +} diff --git a/packages/docgen/src/interfaces/rootTypes.type.ts b/packages/docgen/src/interfaces/rootTypes.type.ts new file mode 100644 index 000000000..0247aa03e --- /dev/null +++ b/packages/docgen/src/interfaces/rootTypes.type.ts @@ -0,0 +1,3 @@ +import type { Class, External, Interface, Method, Typedef } from './index.js'; + +export type RootTypes = Class | Method | Interface | Typedef | External; diff --git a/packages/docgen/src/interfaces/scope.type.ts b/packages/docgen/src/interfaces/scope.type.ts new file mode 100644 index 000000000..ee033faf9 --- /dev/null +++ b/packages/docgen/src/interfaces/scope.type.ts @@ -0,0 +1 @@ +export type Scope = 'global' | 'instance' | 'static'; diff --git a/packages/docgen/src/interfaces/type.interface.ts b/packages/docgen/src/interfaces/type.interface.ts new file mode 100644 index 000000000..6e623deb4 --- /dev/null +++ b/packages/docgen/src/interfaces/type.interface.ts @@ -0,0 +1,3 @@ +export interface Type { + names?: string[]; +} diff --git a/packages/docgen/src/interfaces/typedef.interface.ts b/packages/docgen/src/interfaces/typedef.interface.ts new file mode 100644 index 000000000..73da28bbe --- /dev/null +++ b/packages/docgen/src/interfaces/typedef.interface.ts @@ -0,0 +1,14 @@ +import type { Access, Item, Meta, Param, Return, Scope, Type } from './index.js'; + +export interface Typedef extends Item { + kind: 'typedef'; + scope: Scope; + see?: string[]; + access?: Access; + deprecated?: boolean | string; + type: Type; + properties?: Param[]; + params?: Param[]; + returns?: Return[]; + meta: Meta; +} diff --git a/packages/docgen/src/interfaces/var-type.interface.ts b/packages/docgen/src/interfaces/var-type.interface.ts new file mode 100644 index 000000000..421fe06ca --- /dev/null +++ b/packages/docgen/src/interfaces/var-type.interface.ts @@ -0,0 +1,6 @@ +import type { Type } from './index.js'; + +export interface VarType extends Type { + description?: string; + nullable?: boolean; +} diff --git a/packages/docgen/src/types/class.ts b/packages/docgen/src/types/class.ts new file mode 100644 index 000000000..b740c91c0 --- /dev/null +++ b/packages/docgen/src/types/class.ts @@ -0,0 +1,76 @@ +import { Collection } from '@discordjs/collection'; +import { DocumentedConstructor } from './constructor.js'; +import { DocumentedEvent } from './event.js'; +import { DocumentedItemMeta } from './item-meta.js'; +import { DocumentedItem } from './item.js'; +import { DocumentedMember } from './member.js'; +import { DocumentedMethod } from './method.js'; +import { DocumentedVarType } from './var-type.js'; +import type { Class, Config } from '../interfaces/index.js'; + +export class DocumentedClass extends DocumentedItem { + public readonly props = new Collection(); + + public readonly methods = new Collection(); + + public readonly events = new Collection(); + + public construct: DocumentedConstructor | null = null; + + public extends: DocumentedVarType | null = null; + + public implements: DocumentedVarType | null = null; + + public constructor(data: Class, config: Config) { + super(data, config); + + if (data.augments) { + this.extends = new DocumentedVarType({ names: data.augments }, this.config); + } + + if (data.implements) { + this.implements = new DocumentedVarType({ names: data.implements }, this.config); + } + } + + public add(item: DocumentedConstructor | DocumentedMethod | DocumentedMember | DocumentedEvent) { + if (item instanceof DocumentedConstructor) { + if (this.construct) throw new Error(`Doc ${this.data.name} already has constructor`); + this.construct = item; + } else if (item instanceof DocumentedMethod) { + const prefix = item.data.scope === 'static' ? 's-' : ''; + if (this.methods.has(prefix + item.data.name)) { + throw new Error(`Doc ${this.data.name} already has method ${item.data.name}`); + } + this.methods.set(prefix + item.data.name, item); + } else if (item instanceof DocumentedMember) { + if (this.props.has(item.data.name)) { + throw new Error(`Doc ${this.data.name} already has prop ${item.data.name}`); + } + this.props.set(item.data.name, item); + } else if (item instanceof DocumentedEvent) { + if (this.events.has(item.data.name)) { + throw new Error(`Doc ${this.data.name} already has event ${item.data.name}`); + } + this.events.set(item.data.name, item); + } + } + + public override serializer() { + return { + name: this.data.name, + description: this.data.description, + see: this.data.see, + extends: this.extends?.serialize(), + implements: this.implements?.serialize(), + access: this.data.access, + abstract: this.data.virtual, + deprecated: this.data.deprecated, + construct: this.construct?.serialize(), + props: this.props.size ? this.props.map((p) => p.serialize()) : undefined, + methods: this.methods.size ? this.methods.map((m) => m.serialize()) : undefined, + events: this.events.size ? this.events.map((e) => e.serialize()) : undefined, + meta: new DocumentedItemMeta(this.data.meta, this.config).serialize(), + }; + } +} diff --git a/packages/docgen/src/types/constructor.ts b/packages/docgen/src/types/constructor.ts new file mode 100644 index 000000000..eb9c029ca --- /dev/null +++ b/packages/docgen/src/types/constructor.ts @@ -0,0 +1,17 @@ +import { DocumentedItem } from './item.js'; +import { DocumentedParam } from './param.js'; +import type { Constructor } from '../interfaces/index.js'; + +export class DocumentedConstructor extends DocumentedItem { + public override serializer() { + return { + name: this.data.name, + description: this.data.description, + see: this.data.see, + access: this.data.access, + params: this.data.params?.length + ? this.data.params.map((p) => new DocumentedParam(p, this.config).serialize()) + : undefined, + }; + } +} diff --git a/packages/docgen/src/types/event.ts b/packages/docgen/src/types/event.ts new file mode 100644 index 000000000..25ca0fddf --- /dev/null +++ b/packages/docgen/src/types/event.ts @@ -0,0 +1,19 @@ +import { DocumentedItemMeta } from './item-meta.js'; +import { DocumentedItem } from './item.js'; +import { DocumentedParam } from './param.js'; +import type { Event } from '../interfaces/index.js'; + +export class DocumentedEvent extends DocumentedItem { + public override serializer() { + return { + name: this.data.name, + description: this.data.description, + see: this.data.see, + deprecated: this.data.deprecated, + params: this.data.params?.length + ? this.data.params.map((p) => new DocumentedParam(p, this.config).serialize()) + : undefined, + meta: new DocumentedItemMeta(this.data.meta, this.config).serialize(), + }; + } +} diff --git a/packages/docgen/src/types/external.ts b/packages/docgen/src/types/external.ts new file mode 100644 index 000000000..477797972 --- /dev/null +++ b/packages/docgen/src/types/external.ts @@ -0,0 +1,14 @@ +import { DocumentedItemMeta } from './item-meta.js'; +import { DocumentedItem } from './item.js'; +import type { External } from '../interfaces/index.js'; + +export class DocumentedExternal extends DocumentedItem { + public override serializer() { + return { + name: this.data.name, + description: this.data.description, + see: this.data.see, + meta: new DocumentedItemMeta(this.data.meta, this.config).serialize(), + }; + } +} diff --git a/packages/docgen/src/types/interface.ts b/packages/docgen/src/types/interface.ts new file mode 100644 index 000000000..39b94f1d4 --- /dev/null +++ b/packages/docgen/src/types/interface.ts @@ -0,0 +1,11 @@ +import { DocumentedClass } from './class.js'; +import type { Interface } from '../interfaces/index.js'; + +export class DocumentedInterface extends DocumentedClass { + public override serializer() { + const data = this.data as unknown as Interface; + const serialized = super.serializer(); + serialized.description = data.classdesc; + return serialized; + } +} diff --git a/packages/docgen/src/types/item-meta.ts b/packages/docgen/src/types/item-meta.ts new file mode 100644 index 000000000..a1c6c1064 --- /dev/null +++ b/packages/docgen/src/types/item-meta.ts @@ -0,0 +1,13 @@ +import { relative } from 'path'; +import { DocumentedItem } from './item.js'; +import type { Meta } from '../interfaces/index.js'; + +export class DocumentedItemMeta extends DocumentedItem { + public override serializer() { + return { + line: this.data.lineno, + file: this.data.filename, + path: relative(this.config.root, this.data.path).replace(/\\/g, '/'), + }; + } +} diff --git a/packages/docgen/src/types/item.ts b/packages/docgen/src/types/item.ts new file mode 100644 index 000000000..5814440f9 --- /dev/null +++ b/packages/docgen/src/types/item.ts @@ -0,0 +1,27 @@ +import type { Config, Item } from '../interfaces/index.js'; + +export class DocumentedItem { + public constructor(public readonly data: T, public readonly config: Config) {} + + public serialize() { + try { + return this.serializer(); + } catch (err) { + const error = err as Error; + error.message = `Error while serializing ${this.detailedName()}: ${error.message}`; + throw error; + } + } + + protected serializer() { + throw new Error("Method 'serializer()' must be implemented."); + } + + private detailedName() { + const data = this.data as Item | undefined; + if (!data) return this.constructor.name; + if (data.id) return `${data.id} (${this.constructor.name})`; + if (data.name) return `${data.name} (${this.constructor.name})`; + return this.constructor.name; + } +} diff --git a/packages/docgen/src/types/member.ts b/packages/docgen/src/types/member.ts new file mode 100644 index 000000000..0c82c1452 --- /dev/null +++ b/packages/docgen/src/types/member.ts @@ -0,0 +1,44 @@ +import { DocumentedItemMeta } from './item-meta.js'; +import { DocumentedItem } from './item.js'; +import { DocumentedParam } from './param.js'; +import { DocumentedVarType } from './var-type.js'; +import type { Member } from '../interfaces/index.js'; + +export class DocumentedMember extends DocumentedItem { + public override serializer() { + return { + name: this.data.name, + description: this.data.description, + see: this.data.see, + scope: this.data.scope, + access: this.data.access, + readonly: this.data.readonly, + nullable: this.data.nullable, + abstract: this.data.virtual, + deprecated: this.data.deprecated, + default: this.data.default, + type: new DocumentedVarType(this.data.type, this.config).serialize(), + props: this.data.properties?.length + ? this.data.properties.map((p) => new DocumentedParam(p, this.config).serialize()) + : undefined, + meta: new DocumentedItemMeta(this.data.meta, this.config).serialize(), + }; + } +} + +/* +{ id: 'Client#rest', + longname: 'Client#rest', + name: 'rest', + scope: 'instance', + kind: 'member', + description: 'The REST manager of the client', + memberof: 'Client', + type: { names: [ 'RESTManager' ] }, + access: 'private', + meta: + { lineno: 32, + filename: 'Client.js', + path: 'src/client' }, + order: 11 } +*/ diff --git a/packages/docgen/src/types/method.ts b/packages/docgen/src/types/method.ts new file mode 100644 index 000000000..4c2b2011c --- /dev/null +++ b/packages/docgen/src/types/method.ts @@ -0,0 +1,34 @@ +import { DocumentedItemMeta } from './item-meta.js'; +import { DocumentedItem } from './item.js'; +import { DocumentedParam } from './param.js'; +import { DocumentedVarType } from './var-type.js'; +import type { Method } from '../interfaces/index.js'; + +export class DocumentedMethod extends DocumentedItem { + public override serializer() { + return { + name: this.data.name, + description: this.data.description, + see: this.data.see, + scope: this.data.scope, + access: this.data.access, + inherits: this.data.inherits, + inherited: this.data.inherited, + implements: this.data.implements, + examples: this.data.examples, + abstract: this.data.virtual && !this.data.inherited, + deprecated: this.data.deprecated, + emits: this.data.fires, + throws: this.data.exceptions, + params: this.data.params?.length + ? this.data.params.map((p) => new DocumentedParam(p, this.config).serialize()) + : undefined, + async: this.data.async, + generator: this.data.generator, + returns: this.data.returns?.length + ? this.data.returns.map((p) => new DocumentedVarType(p, this.config).serialize()) + : undefined, + meta: new DocumentedItemMeta(this.data.meta, this.config).serialize(), + }; + } +} diff --git a/packages/docgen/src/types/param.ts b/packages/docgen/src/types/param.ts new file mode 100644 index 000000000..86f7e6908 --- /dev/null +++ b/packages/docgen/src/types/param.ts @@ -0,0 +1,17 @@ +import { DocumentedItem } from './item.js'; +import { DocumentedVarType } from './var-type.js'; +import type { Param } from '../interfaces/index.js'; + +export class DocumentedParam extends DocumentedItem { + public override serializer() { + return { + name: this.data.name, + description: this.data.description, + optional: this.data.optional, + default: this.data.defaultvalue, + variable: this.data.variable, + nullable: this.data.nullable, + type: new DocumentedVarType(this.data.type, this.config).serialize(), + }; + } +} diff --git a/packages/docgen/src/types/typedef.ts b/packages/docgen/src/types/typedef.ts new file mode 100644 index 000000000..d7abca9c1 --- /dev/null +++ b/packages/docgen/src/types/typedef.ts @@ -0,0 +1,28 @@ +import { DocumentedItemMeta } from './item-meta.js'; +import { DocumentedItem } from './item.js'; +import { DocumentedParam } from './param.js'; +import { DocumentedVarType } from './var-type.js'; +import type { Typedef } from '../interfaces/index.js'; + +export class DocumentedTypeDef extends DocumentedItem { + public override serializer() { + return { + name: this.data.name, + description: this.data.description, + see: this.data.see, + access: this.data.access, + deprecated: this.data.deprecated, + type: new DocumentedVarType(this.data.type, this.config).serialize(), + props: this.data.properties?.length + ? this.data.properties.map((p) => new DocumentedParam(p, this.config).serialize()) + : undefined, + params: this.data.params?.length + ? this.data.params.map((p) => new DocumentedParam(p, this.config).serialize()) + : undefined, + returns: this.data.returns?.length + ? this.data.returns.map((p) => new DocumentedVarType(p, this.config).serialize()) + : undefined, + meta: new DocumentedItemMeta(this.data.meta, this.config).serialize(), + }; + } +} diff --git a/packages/docgen/src/types/var-type.ts b/packages/docgen/src/types/var-type.ts new file mode 100644 index 000000000..b18feadf5 --- /dev/null +++ b/packages/docgen/src/types/var-type.ts @@ -0,0 +1,34 @@ +import { DocumentedItem } from './item.js'; +import type { VarType } from '../interfaces/index.js'; + +export class DocumentedVarType extends DocumentedItem { + public override serializer() { + const names = this.data.names?.map((name) => this.splitVarName(name)); + + if (!this.data.description && !this.data.nullable) { + return names; + } + + return { + types: names, + description: this.data.description, + nullable: this.data.nullable, + }; + } + + private splitVarName(str: string) { + if (str === '*') return ['*']; + str = str.replace(/\./g, ''); + const matches = str.match(/([\w*]+)([^\w*]+)/g); + const output = []; + if (matches) { + for (const match of matches) { + const groups = /([\w*]+)([^\w*]+)/.exec(match); + output.push([groups![1], groups![2]]); + } + } else { + output.push([str.match(/([\w*]+)/g)![0]]); + } + return output; + } +} diff --git a/packages/docgen/tsconfig.eslint.json b/packages/docgen/tsconfig.eslint.json new file mode 100644 index 000000000..d04d4be3a --- /dev/null +++ b/packages/docgen/tsconfig.eslint.json @@ -0,0 +1,20 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "allowJs": true + }, + "include": [ + "**/*.ts", + "**/*.tsx", + "**/*.js", + "**/*.mjs", + "**/*.jsx", + "**/*.test.ts", + "**/*.test.js", + "**/*.test.mjs", + "**/*.spec.ts", + "**/*.spec.js", + "**/*.spec.mjs" + ], + "exclude": [] +} diff --git a/packages/docgen/tsconfig.json b/packages/docgen/tsconfig.json new file mode 100644 index 000000000..fd8b5e417 --- /dev/null +++ b/packages/docgen/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.json", + "include": ["src/**/*.ts"] +} diff --git a/packages/docgen/tsup.config.ts b/packages/docgen/tsup.config.ts new file mode 100644 index 000000000..0699d3e27 --- /dev/null +++ b/packages/docgen/tsup.config.ts @@ -0,0 +1,13 @@ +import { defineConfig } from 'tsup'; + +export default defineConfig({ + clean: true, + dts: true, + entryPoints: ['src/index.ts'], + format: ['esm', 'cjs'], + keepNames: true, + minify: false, + skipNodeModulesBundle: true, + sourcemap: true, + target: 'es2021', +}); diff --git a/packages/proxy/.gitignore b/packages/proxy/.gitignore index b5e30aac1..a1f7b02f5 100644 --- a/packages/proxy/.gitignore +++ b/packages/proxy/.gitignore @@ -25,8 +25,3 @@ docs/**/* .tmp/ coverage/ tsconfig.tsbuildinfo -.turbo - -# Yarn files -.yarn/install-state.gz -.yarn/build-state.yml diff --git a/packages/proxy/.prettierignore b/packages/proxy/.prettierignore index 553e0ea6c..a8f763a7c 100644 --- a/packages/proxy/.prettierignore +++ b/packages/proxy/.prettierignore @@ -6,3 +6,4 @@ docs/**/* !docs/index.yml !docs/README.md coverage/ +tsup.config.*.mjs diff --git a/packages/rest/.gitignore b/packages/rest/.gitignore index b5e30aac1..a1f7b02f5 100644 --- a/packages/rest/.gitignore +++ b/packages/rest/.gitignore @@ -25,8 +25,3 @@ docs/**/* .tmp/ coverage/ tsconfig.tsbuildinfo -.turbo - -# Yarn files -.yarn/install-state.gz -.yarn/build-state.yml diff --git a/packages/rest/.prettierignore b/packages/rest/.prettierignore index 553e0ea6c..a8f763a7c 100644 --- a/packages/rest/.prettierignore +++ b/packages/rest/.prettierignore @@ -6,3 +6,4 @@ docs/**/* !docs/index.yml !docs/README.md coverage/ +tsup.config.*.mjs diff --git a/packages/rest/LICENSE b/packages/rest/LICENSE index ddcbd0bff..f0a87dd79 100644 --- a/packages/rest/LICENSE +++ b/packages/rest/LICENSE @@ -176,8 +176,8 @@ END OF TERMS AND CONDITIONS Copyright 2021 Noel Buechler - Copyright 2021 Antonio Román Copyright 2021 Vlad Frangu + Copyright 2021 Antonio Román Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/packages/scripts/.gitignore b/packages/scripts/.gitignore index 69227d965..5189c6c61 100644 --- a/packages/scripts/.gitignore +++ b/packages/scripts/.gitignore @@ -19,10 +19,6 @@ dist/ typings/ docs/**/* -!docs/index.yml -!docs/README.md -!docs/examples/ -!docs/examples/*.md # Miscellaneous .tmp/ diff --git a/packages/scripts/.prettierignore b/packages/scripts/.prettierignore index 553e0ea6c..a8f763a7c 100644 --- a/packages/scripts/.prettierignore +++ b/packages/scripts/.prettierignore @@ -6,3 +6,4 @@ docs/**/* !docs/index.yml !docs/README.md coverage/ +tsup.config.*.mjs diff --git a/packages/scripts/LICENSE b/packages/scripts/LICENSE index cbe9c6540..e2822e9d8 100644 --- a/packages/scripts/LICENSE +++ b/packages/scripts/LICENSE @@ -175,8 +175,7 @@ END OF TERMS AND CONDITIONS - Copyright 2021 Noel Buechler - Copyright 2021 Vlad Frangu + Copyright 2022 Noel Buechler Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/packages/voice/.prettierignore b/packages/voice/.prettierignore index 553e0ea6c..a8f763a7c 100644 --- a/packages/voice/.prettierignore +++ b/packages/voice/.prettierignore @@ -6,3 +6,4 @@ docs/**/* !docs/index.yml !docs/README.md coverage/ +tsup.config.*.mjs diff --git a/packages/voice/LICENSE b/packages/voice/LICENSE index fb66f2b1c..1675b6c15 100644 --- a/packages/voice/LICENSE +++ b/packages/voice/LICENSE @@ -175,7 +175,8 @@ END OF TERMS AND CONDITIONS - Copyright 2020-2021 Amish Shah + Copyright 2022 Noel Buechler + Copyright 2020 Amish Shah Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/yarn.lock b/yarn.lock index b3d34adcd..a6b458085 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1667,20 +1667,30 @@ __metadata: languageName: unknown linkType: soft -"@discordjs/docgen@npm:^0.11.1": - version: 0.11.1 - resolution: "@discordjs/docgen@npm:0.11.1" +"@discordjs/docgen@workspace:^, @discordjs/docgen@workspace:packages/docgen": + version: 0.0.0-use.local + resolution: "@discordjs/docgen@workspace:packages/docgen" dependencies: - eslint: ^6.3.0 - js-yaml: ^3.13.1 - jsdoc-to-markdown: ^5.0.1 - tsubaki: ^1.3.2 - yargs: ^14.0.0 + "@discordjs/collection": "workspace:^" + "@favware/cliff-jumper": ^1.8.3 + "@types/jsdoc-to-markdown": ^7.0.3 + "@types/node": ^16.11.38 + "@typescript-eslint/eslint-plugin": ^5.27.1 + "@typescript-eslint/parser": ^5.27.1 + commander: ^9.3.0 + eslint: ^8.17.0 + eslint-config-marine: ^9.4.1 + eslint-config-prettier: ^8.5.0 + eslint-plugin-import: ^2.26.0 + jsdoc-to-markdown: ^7.1.1 + prettier: ^2.6.2 + tslib: ^2.4.0 + tsup: ^6.1.0 + typescript: ^4.7.3 bin: - docgen: src/index.js - checksum: 3b183ee673b7910d33ccf0209835cb099f2a3e65972053b6be7493c0c07fd6ec30ccb3889d85abab5b7eaecf638b89ea27066e677ac190246a6e747a59993107 - languageName: node - linkType: hard + docgen: ./dist/index.js + languageName: unknown + linkType: soft "@discordjs/proxy@workspace:packages/proxy": version: 0.0.0-use.local @@ -2534,6 +2544,13 @@ __metadata: languageName: node linkType: hard +"@types/jsdoc-to-markdown@npm:^7.0.3": + version: 7.0.3 + resolution: "@types/jsdoc-to-markdown@npm:7.0.3" + checksum: f215d35d573616df64aa61358ea1576261afe81921940568e675e1b34e5b82694c3b59be1d02b3e6128c7f5f35b8c19ece4196f232b54fba1e723c85f484a03e + languageName: node + linkType: hard + "@types/json-schema@npm:*, @types/json-schema@npm:^7.0.9": version: 7.0.9 resolution: "@types/json-schema@npm:7.0.9" @@ -2548,6 +2565,30 @@ __metadata: languageName: node linkType: hard +"@types/linkify-it@npm:*": + version: 3.0.2 + resolution: "@types/linkify-it@npm:3.0.2" + checksum: dff8f10fafb885422474e456596f12d518ec4cdd6c33cca7a08e7c86b912d301ed91cf5a7613e148c45a12600dc9ab3d85ad16d5b48dc1aaeda151a68f16b536 + languageName: node + linkType: hard + +"@types/markdown-it@npm:^12.2.3": + version: 12.2.3 + resolution: "@types/markdown-it@npm:12.2.3" + dependencies: + "@types/linkify-it": "*" + "@types/mdurl": "*" + checksum: 868824a3e4d00718ba9cd4762cf16694762a670860f4b402e6e9f952b6841a2027488bdc55d05c2b960bf5078df21a9d041270af7e8949514645fe88fdb722ac + languageName: node + linkType: hard + +"@types/mdurl@npm:*": + version: 1.0.2 + resolution: "@types/mdurl@npm:1.0.2" + checksum: 79c7e523b377f53cf1f5a240fe23d0c6cae856667692bd21bf1d064eafe5ccc40ae39a2aa0a9a51e8c94d1307228c8f6b121e847124591a9a828c3baf65e86e2 + languageName: node + linkType: hard + "@types/minimist@npm:^1.2.0": version: 1.2.2 resolution: "@types/minimist@npm:1.2.2" @@ -2807,7 +2848,7 @@ __metadata: languageName: node linkType: hard -"acorn-jsx@npm:^5.2.0, acorn-jsx@npm:^5.3.2": +"acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" peerDependencies: @@ -2823,15 +2864,6 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^7.1.1": - version: 7.4.1 - resolution: "acorn@npm:7.4.1" - bin: - acorn: bin/acorn - checksum: 1860f23c2107c910c6177b7b7be71be350db9e1080d814493fae143ae37605189504152d1ba8743ba3178d0b37269ce1ffc42b101547fdc1827078f82671e407 - languageName: node - linkType: hard - "acorn@npm:^8.4.1": version: 8.7.0 resolution: "acorn@npm:8.7.0" @@ -2887,7 +2919,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.10.0, ajv@npm:^6.10.2, ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.6": +"ajv@npm:^6.10.0, ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.6": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -2924,13 +2956,6 @@ __metadata: languageName: node linkType: hard -"ansi-regex@npm:^4.1.0": - version: 4.1.0 - resolution: "ansi-regex@npm:4.1.0" - checksum: 97aa4659538d53e5e441f5ef2949a3cffcb838e57aeaad42c4194e9d7ddb37246a6526c4ca85d3940a9d1e19b11cc2e114530b54c9d700c8baf163c31779baf8 - languageName: node - linkType: hard - "ansi-regex@npm:^5.0.1": version: 5.0.1 resolution: "ansi-regex@npm:5.0.1" @@ -2945,7 +2970,7 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^3.2.0, ansi-styles@npm:^3.2.1": +"ansi-styles@npm:^3.2.1": version: 3.2.1 resolution: "ansi-styles@npm:3.2.1" dependencies: @@ -3044,7 +3069,7 @@ __metadata: languageName: node linkType: hard -"array-back@npm:^1.0.2, array-back@npm:^1.0.3, array-back@npm:^1.0.4": +"array-back@npm:^1.0.2, array-back@npm:^1.0.3": version: 1.0.4 resolution: "array-back@npm:1.0.4" dependencies: @@ -3069,13 +3094,27 @@ __metadata: languageName: node linkType: hard -"array-back@npm:^4.0.0, array-back@npm:^4.0.1": +"array-back@npm:^4.0.1": version: 4.0.2 resolution: "array-back@npm:4.0.2" checksum: f30603270771eeb54e5aad5f54604c62b3577a18b6db212a7272b2b6c32049121b49431f656654790ed1469411e45f387e7627c0de8fd0515995cc40df9b9294 languageName: node linkType: hard +"array-back@npm:^5.0.0": + version: 5.0.0 + resolution: "array-back@npm:5.0.0" + checksum: 4e42d54e4b748dff229981df778cef8b8093f8bd1b6f1cdbfb92e89f883ddafd3e0e7b20939eb3d7b8a85b478c1b77924545923e6aad571c16ebb022a54805d5 + languageName: node + linkType: hard + +"array-back@npm:^6.2.2": + version: 6.2.2 + resolution: "array-back@npm:6.2.2" + checksum: baae1e3a1687300a307d3bdf09715f6415e1099b5729d3d8e397309fb1e43d90b939d694602892172aaca7e0aeed38da89d04aa4951637d31c2a21350809e003 + languageName: node + linkType: hard + "array-ify@npm:^1.0.0": version: 1.0.0 resolution: "array-ify@npm:1.0.0" @@ -3151,13 +3190,6 @@ __metadata: languageName: node linkType: hard -"astral-regex@npm:^1.0.0": - version: 1.0.0 - resolution: "astral-regex@npm:1.0.0" - checksum: 93417fc0879531cd95ace2560a54df865c9461a3ac0714c60cbbaa5f1f85d2bee85489e78d82f70b911b71ac25c5f05fc5a36017f44c9bb33c701bee229ff848 - languageName: node - linkType: hard - "asynckit@npm:^0.4.0": version: 0.4.0 resolution: "asynckit@npm:0.4.0" @@ -3517,14 +3549,14 @@ __metadata: languageName: node linkType: hard -"cache-point@npm:^1.0.0": - version: 1.0.0 - resolution: "cache-point@npm:1.0.0" +"cache-point@npm:^2.0.0": + version: 2.0.0 + resolution: "cache-point@npm:2.0.0" dependencies: - array-back: ^4.0.0 + array-back: ^4.0.1 fs-then-native: ^2.0.0 mkdirp2: ^1.0.4 - checksum: 9a90f49d7aa09db05d21e0b08595b44447c05067121496b9267f025a65e3a8ab57c29292b5f3ea8beb754ec52be34697e9b69cf7803769cb7244350629b59806 + checksum: 700466a46596ff84a68d061a169a1f50892050a32cdd4ded0a69c44a9626cce599e22e7baaf26d19b12db4b86a86c727ddfa7d67fbd6e8025f1e2f436f68a318 languageName: node linkType: hard @@ -3621,7 +3653,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.0.0, chalk@npm:^2.1.0, chalk@npm:^2.3.0": +"chalk@npm:^2.0.0, chalk@npm:^2.3.0": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -3649,13 +3681,6 @@ __metadata: languageName: node linkType: hard -"chardet@npm:^0.7.0": - version: 0.7.0 - resolution: "chardet@npm:0.7.0" - checksum: 6fd5da1f5d18ff5712c1e0aed41da200d7c51c28f11b36ee3c7b483f3696dabc08927fc6b227735eb8f0e1215c9a8abd8154637f3eff8cada5959df7f58b024d - languageName: node - linkType: hard - "charm@npm:^1.0.2": version: 1.0.2 resolution: "charm@npm:1.0.2" @@ -3719,33 +3744,6 @@ __metadata: languageName: node linkType: hard -"cli-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "cli-cursor@npm:3.1.0" - dependencies: - restore-cursor: ^3.1.0 - checksum: 2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 - languageName: node - linkType: hard - -"cli-width@npm:^3.0.0": - version: 3.0.0 - resolution: "cli-width@npm:3.0.0" - checksum: 4c94af3769367a70e11ed69aa6095f1c600c0ff510f3921ab4045af961820d57c0233acfa8b6396037391f31b4c397e1f614d234294f979ff61430a6c166c3f6 - languageName: node - linkType: hard - -"cliui@npm:^5.0.0": - version: 5.0.0 - resolution: "cliui@npm:5.0.0" - dependencies: - string-width: ^3.1.0 - strip-ansi: ^5.2.0 - wrap-ansi: ^5.1.0 - checksum: 0bb8779efe299b8f3002a73619eaa8add4081eb8d1c17bc4fedc6240557fb4eacdc08fe87c39b002eacb6cfc117ce736b362dbfd8bf28d90da800e010ee97df4 - languageName: node - linkType: hard - "cliui@npm:^6.0.0": version: 6.0.0 resolution: "cliui@npm:6.0.0" @@ -3782,7 +3780,7 @@ __metadata: languageName: node linkType: hard -"collect-all@npm:^1.0.3": +"collect-all@npm:^1.0.4": version: 1.0.4 resolution: "collect-all@npm:1.0.4" dependencies: @@ -3935,7 +3933,7 @@ __metadata: languageName: node linkType: hard -"common-sequence@npm:^2.0.0": +"common-sequence@npm:^2.0.2": version: 2.0.2 resolution: "common-sequence@npm:2.0.2" checksum: 35c183bac415c6069840940145c7251121fcc13d2166af8e764bc98c40be7ffaaf050bdba2ec85f9c2ab6a41f115e642d6becf44e0fb2bbd3c19f49a794ee196 @@ -4288,19 +4286,6 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^6.0.5": - version: 6.0.5 - resolution: "cross-spawn@npm:6.0.5" - dependencies: - nice-try: ^1.0.4 - path-key: ^2.0.1 - semver: ^5.5.0 - shebang-command: ^1.2.0 - which: ^1.2.9 - checksum: f893bb0d96cd3d5751d04e67145bdddf25f99449531a72e82dcbbd42796bbc8268c1076c6b3ea51d4d455839902804b94bc45dfb37ecbb32ea8e54a6741c3ab9 - languageName: node - linkType: hard - "cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" @@ -4335,7 +4320,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2": +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2": version: 4.3.3 resolution: "debug@npm:4.3.3" dependencies: @@ -4417,7 +4402,7 @@ __metadata: languageName: node linkType: hard -"deep-is@npm:^0.1.3, deep-is@npm:~0.1.3": +"deep-is@npm:^0.1.3": version: 0.1.4 resolution: "deep-is@npm:0.1.4" checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804 @@ -4535,7 +4520,7 @@ __metadata: dependencies: "@discordjs/builders": "workspace:^" "@discordjs/collection": "workspace:^" - "@discordjs/docgen": ^0.11.1 + "@discordjs/docgen": "workspace:^" "@discordjs/rest": "workspace:^" "@favware/cliff-jumper": ^1.8.3 "@sapphire/snowflake": ^3.2.2 @@ -4562,23 +4547,23 @@ __metadata: languageName: unknown linkType: soft -"dmd@npm:^4.0.5": - version: 4.0.6 - resolution: "dmd@npm:4.0.6" +"dmd@npm:^6.1.0": + version: 6.1.0 + resolution: "dmd@npm:6.1.0" dependencies: - array-back: ^4.0.1 - cache-point: ^1.0.0 - common-sequence: ^2.0.0 - file-set: ^3.0.0 - handlebars: ^4.5.3 - marked: ^0.7.0 - object-get: ^2.1.0 - reduce-flatten: ^3.0.0 + array-back: ^6.2.2 + cache-point: ^2.0.0 + common-sequence: ^2.0.2 + file-set: ^4.0.2 + handlebars: ^4.7.7 + marked: ^4.0.12 + object-get: ^2.1.1 + reduce-flatten: ^3.0.1 reduce-unique: ^2.0.1 reduce-without: ^1.0.1 test-value: ^3.0.0 - walk-back: ^4.0.0 - checksum: 66557567405bad29b3f946760128da8d9ff765fe0a966be71563858d0f4f1170cb1bf7821414e01a270c35257622c89afa36245c1b9b6dd1cba28abd6c4cff5f + walk-back: ^5.1.0 + checksum: 3ae5730dac70e261c321299b2a4b355822660ab54da8a75d1521cc3f9cf8546c634fea7d42f24e3374ca7b34895590fdd92e536caf1f18c2a0db12eff3aa18e4 languageName: node linkType: hard @@ -4671,13 +4656,6 @@ dts-critic@latest: languageName: node linkType: hard -"emoji-regex@npm:^7.0.1": - version: 7.0.3 - resolution: "emoji-regex@npm:7.0.3" - checksum: 9159b2228b1511f2870ac5920f394c7e041715429a68459ebe531601555f11ea782a8e1718f969df2711d38c66268174407cbca57ce36485544f695c2dfdc96e - languageName: node - linkType: hard - "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -4703,10 +4681,10 @@ dts-critic@latest: languageName: node linkType: hard -"entities@npm:~2.0.0": - version: 2.0.3 - resolution: "entities@npm:2.0.3" - checksum: 5a7899fcc622e0d76afdeafe4c58a6b40ae3a8ee4772e5825a648c11a2ca324a9a02515386f512e466baac4aeb551f3d3b79eaece5cd98369b9f8601be336b1a +"entities@npm:~2.1.0": + version: 2.1.0 + resolution: "entities@npm:2.1.0" + checksum: a10a877e489586a3f6a691fe49bf3fc4e58f06c8e80522f08214a5150ba457e7017b447d4913a3fa041bda06ee4c92517baa4d8d75373eaa79369e9639225ffd languageName: node linkType: hard @@ -5330,7 +5308,7 @@ dts-critic@latest: languageName: node linkType: hard -"eslint-scope@npm:^5.0.0, eslint-scope@npm:^5.1.1": +"eslint-scope@npm:^5.1.1": version: 5.1.1 resolution: "eslint-scope@npm:5.1.1" dependencies: @@ -5350,15 +5328,6 @@ dts-critic@latest: languageName: node linkType: hard -"eslint-utils@npm:^1.4.3": - version: 1.4.3 - resolution: "eslint-utils@npm:1.4.3" - dependencies: - eslint-visitor-keys: ^1.1.0 - checksum: a20630e686034107138272f245c460f6d77705d1f4bb0628c1a1faf59fc800f441188916b3ec3b957394dc405aa200a3017dfa2b0fff0976e307a4e645a18d1e - languageName: node - linkType: hard - "eslint-utils@npm:^3.0.0": version: 3.0.0 resolution: "eslint-utils@npm:3.0.0" @@ -5370,13 +5339,6 @@ dts-critic@latest: languageName: node linkType: hard -"eslint-visitor-keys@npm:^1.1.0": - version: 1.3.0 - resolution: "eslint-visitor-keys@npm:1.3.0" - checksum: 37a19b712f42f4c9027e8ba98c2b06031c17e0c0a4c696cd429bd9ee04eb43889c446f2cd545e1ff51bef9593fcec94ecd2c2ef89129fcbbf3adadbef520376a - languageName: node - linkType: hard - "eslint-visitor-keys@npm:^2.0.0": version: 2.1.0 resolution: "eslint-visitor-keys@npm:2.1.0" @@ -5391,53 +5353,6 @@ dts-critic@latest: languageName: node linkType: hard -"eslint@npm:^6.3.0": - version: 6.8.0 - resolution: "eslint@npm:6.8.0" - dependencies: - "@babel/code-frame": ^7.0.0 - ajv: ^6.10.0 - chalk: ^2.1.0 - cross-spawn: ^6.0.5 - debug: ^4.0.1 - doctrine: ^3.0.0 - eslint-scope: ^5.0.0 - eslint-utils: ^1.4.3 - eslint-visitor-keys: ^1.1.0 - espree: ^6.1.2 - esquery: ^1.0.1 - esutils: ^2.0.2 - file-entry-cache: ^5.0.1 - functional-red-black-tree: ^1.0.1 - glob-parent: ^5.0.0 - globals: ^12.1.0 - ignore: ^4.0.6 - import-fresh: ^3.0.0 - imurmurhash: ^0.1.4 - inquirer: ^7.0.0 - is-glob: ^4.0.0 - js-yaml: ^3.13.1 - json-stable-stringify-without-jsonify: ^1.0.1 - levn: ^0.3.0 - lodash: ^4.17.14 - minimatch: ^3.0.4 - mkdirp: ^0.5.1 - natural-compare: ^1.4.0 - optionator: ^0.8.3 - progress: ^2.0.0 - regexpp: ^2.0.1 - semver: ^6.1.2 - strip-ansi: ^5.2.0 - strip-json-comments: ^3.0.1 - table: ^5.2.3 - text-table: ^0.2.0 - v8-compile-cache: ^2.0.3 - bin: - eslint: ./bin/eslint.js - checksum: d4edbe69589ef194e7d3470a18632560c5399a5f685295bd59a11cddba4c6f7e03a137a15a21389f8f85712ebd82d0a628ee4e9cd4391113556029c486616e25 - languageName: node - linkType: hard - "eslint@npm:^8.17.0": version: 8.17.0 resolution: "eslint@npm:8.17.0" @@ -5483,17 +5398,6 @@ dts-critic@latest: languageName: node linkType: hard -"espree@npm:^6.1.2": - version: 6.2.1 - resolution: "espree@npm:6.2.1" - dependencies: - acorn: ^7.1.1 - acorn-jsx: ^5.2.0 - eslint-visitor-keys: ^1.1.0 - checksum: 99c508950b5b9f53d008d781d2abb7a4ef3496ea699306fb6eb737c7e513aa594644314364c50ec27abb220124c6851fff64a6b62c358479534369904849360b - languageName: node - linkType: hard - "espree@npm:^9.3.2": version: 9.3.2 resolution: "espree@npm:9.3.2" @@ -5515,7 +5419,7 @@ dts-critic@latest: languageName: node linkType: hard -"esquery@npm:^1.0.1, esquery@npm:^1.4.0": +"esquery@npm:^1.4.0": version: 1.4.0 resolution: "esquery@npm:1.4.0" dependencies: @@ -5598,17 +5502,6 @@ dts-critic@latest: languageName: node linkType: hard -"external-editor@npm:^3.0.3": - version: 3.1.0 - resolution: "external-editor@npm:3.1.0" - dependencies: - chardet: ^0.7.0 - iconv-lite: ^0.4.24 - tmp: ^0.0.33 - checksum: 1c2a616a73f1b3435ce04030261bed0e22d4737e14b090bb48e58865da92529c9f2b05b893de650738d55e692d071819b45e1669259b2b354bc3154d27a698c7 - languageName: node - linkType: hard - "extsprintf@npm:1.3.0": version: 1.3.0 resolution: "extsprintf@npm:1.3.0" @@ -5670,7 +5563,7 @@ dts-critic@latest: languageName: node linkType: hard -"fast-levenshtein@npm:^2.0.6, fast-levenshtein@npm:~2.0.6": +"fast-levenshtein@npm:^2.0.6": version: 2.0.6 resolution: "fast-levenshtein@npm:2.0.6" checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c @@ -5702,24 +5595,6 @@ dts-critic@latest: languageName: node linkType: hard -"figures@npm:^3.0.0": - version: 3.2.0 - resolution: "figures@npm:3.2.0" - dependencies: - escape-string-regexp: ^1.0.5 - checksum: 85a6ad29e9aca80b49b817e7c89ecc4716ff14e3779d9835af554db91bac41c0f289c418923519392a1e582b4d10482ad282021330cd045bb7b80c84152f2a2b - languageName: node - linkType: hard - -"file-entry-cache@npm:^5.0.1": - version: 5.0.1 - resolution: "file-entry-cache@npm:5.0.1" - dependencies: - flat-cache: ^2.0.1 - checksum: 9014b17766815d59b8b789633aed005242ef857348c09be558bd85b4a24e16b0ad1e0e5229ccea7a2109f74ef1b3db1a559b58afe12b884f09019308711376fd - languageName: node - linkType: hard - "file-entry-cache@npm:^6.0.1": version: 6.0.1 resolution: "file-entry-cache@npm:6.0.1" @@ -5729,23 +5604,13 @@ dts-critic@latest: languageName: node linkType: hard -"file-set@npm:^2.0.1": - version: 2.0.1 - resolution: "file-set@npm:2.0.1" +"file-set@npm:^4.0.2": + version: 4.0.2 + resolution: "file-set@npm:4.0.2" dependencies: - array-back: ^2.0.0 - glob: ^7.1.3 - checksum: 8fdeebbbcacff466d78288645f5c8f2ee6409225b39ded802f1e768fc6ded1b29765baa5b467949a87f5d594f87fd6fce77085fde26f97ea452288a2caae6eb5 - languageName: node - linkType: hard - -"file-set@npm:^3.0.0": - version: 3.0.0 - resolution: "file-set@npm:3.0.0" - dependencies: - array-back: ^4.0.0 - glob: ^7.1.5 - checksum: 030ff37c8c3ead906d33ad641c3b45eefd1758bf168097474fa01723d8533db87183a752d263e70f39341d9090671b95d446df7a3dfff5b63a06b118a281aef0 + array-back: ^5.0.0 + glob: ^7.1.6 + checksum: 6eacb9df4a0a95fbfb09e8ccdf8c3ef7f30de8c0b5043ff0530a79c0c0003550a0725eba517a5c7fe1c452df57c3b4d506e91859ccc248aebb2f038790eb66e6 languageName: node linkType: hard @@ -5776,15 +5641,6 @@ dts-critic@latest: languageName: node linkType: hard -"find-up@npm:^3.0.0": - version: 3.0.0 - resolution: "find-up@npm:3.0.0" - dependencies: - locate-path: ^3.0.0 - checksum: 38eba3fe7a66e4bc7f0f5a1366dc25508b7cfc349f852640e3678d26ad9a6d7e2c43eff0a472287de4a9753ef58f066a0ea892a256fa3636ad51b3fe1e17fae9 - languageName: node - linkType: hard - "find-up@npm:^4.0.0, find-up@npm:^4.1.0": version: 4.1.0 resolution: "find-up@npm:4.1.0" @@ -5805,17 +5661,6 @@ dts-critic@latest: languageName: node linkType: hard -"flat-cache@npm:^2.0.1": - version: 2.0.1 - resolution: "flat-cache@npm:2.0.1" - dependencies: - flatted: ^2.0.0 - rimraf: 2.6.3 - write: 1.0.3 - checksum: 0f5e66467658039e6fcaaccb363b28f43906ba72fab7ff2a4f6fcd5b4899679e13ca46d9fc6cc48b68ac925ae93137106d4aaeb79874c13f21f87a361705f1b1 - languageName: node - linkType: hard - "flat-cache@npm:^3.0.4": version: 3.0.4 resolution: "flat-cache@npm:3.0.4" @@ -5826,13 +5671,6 @@ dts-critic@latest: languageName: node linkType: hard -"flatted@npm:^2.0.0": - version: 2.0.2 - resolution: "flatted@npm:2.0.2" - checksum: 473c754db7a529e125a22057098f1a4c905ba17b8cc269c3acf77352f0ffa6304c851eb75f6a1845f74461f560e635129ca6b0b8a78fb253c65cea4de3d776f2 - languageName: node - linkType: hard - "flatted@npm:^3.1.0": version: 3.2.4 resolution: "flatted@npm:3.2.4" @@ -6157,7 +5995,7 @@ dts-critic@latest: languageName: node linkType: hard -"glob-parent@npm:^5.0.0, glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": +"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" dependencies: @@ -6189,7 +6027,7 @@ dts-critic@latest: languageName: node linkType: hard -"glob@npm:^7.1.1, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.5, glob@npm:^7.2.0": +"glob@npm:^7.1.1, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.0": version: 7.2.0 resolution: "glob@npm:7.2.0" dependencies: @@ -6203,6 +6041,20 @@ dts-critic@latest: languageName: node linkType: hard +"glob@npm:^7.1.6": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^3.1.1 + once: ^1.3.0 + path-is-absolute: ^1.0.0 + checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 + languageName: node + linkType: hard + "glob@npm:^8.0.3": version: 8.0.3 resolution: "glob@npm:8.0.3" @@ -6232,15 +6084,6 @@ dts-critic@latest: languageName: node linkType: hard -"globals@npm:^12.1.0": - version: 12.4.0 - resolution: "globals@npm:12.4.0" - dependencies: - type-fest: ^0.8.1 - checksum: 7ae5ee16a96f1e8d71065405f57da0e33267f6b070cd36a5444c7780dd28639b48b92413698ac64f04bf31594f9108878bd8cb158ecdf759c39e05634fefcca6 - languageName: node - linkType: hard - "globals@npm:^13.15.0": version: 13.15.0 resolution: "globals@npm:13.15.0" @@ -6278,7 +6121,7 @@ dts-critic@latest: languageName: node linkType: hard -"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4": +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4": version: 4.2.8 resolution: "graceful-fs@npm:4.2.8" checksum: 5d224c8969ad0581d551dfabdb06882706b31af2561bd5e2034b4097e67cc27d05232849b8643866585fd0a41c7af152950f8776f4dd5579e9853733f31461c6 @@ -6299,7 +6142,7 @@ dts-critic@latest: languageName: node linkType: hard -"handlebars@npm:^4.5.3, handlebars@npm:^4.7.7": +"handlebars@npm:^4.7.7": version: 4.7.7 resolution: "handlebars@npm:4.7.7" dependencies: @@ -6497,15 +6340,6 @@ dts-critic@latest: languageName: node linkType: hard -"iconv-lite@npm:^0.4.24": - version: 0.4.24 - resolution: "iconv-lite@npm:0.4.24" - dependencies: - safer-buffer: ">= 2.1.2 < 3" - checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 - languageName: node - linkType: hard - "iconv-lite@npm:^0.6.2": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" @@ -6522,13 +6356,6 @@ dts-critic@latest: languageName: node linkType: hard -"ignore@npm:^4.0.6": - version: 4.0.6 - resolution: "ignore@npm:4.0.6" - checksum: 248f82e50a430906f9ee7f35e1158e3ec4c3971451dd9f99c9bc1548261b4db2b99709f60ac6c6cac9333494384176cc4cc9b07acbe42d52ac6a09cad734d800 - languageName: node - linkType: hard - "ignore@npm:^5.1.4, ignore@npm:^5.2.0": version: 5.2.0 resolution: "ignore@npm:5.2.0" @@ -6603,27 +6430,6 @@ dts-critic@latest: languageName: node linkType: hard -"inquirer@npm:^7.0.0": - version: 7.3.3 - resolution: "inquirer@npm:7.3.3" - dependencies: - 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 - checksum: 4d387fc1eb6126acbd58cbdb9ad99d2887d181df86ab0c2b9abdf734e751093e2d5882c2b6dc7144d9ab16b7ab30a78a1d7f01fb6a2850a44aeb175d1e3f8778 - languageName: node - linkType: hard - "internal-slot@npm:^1.0.3": version: 1.0.3 resolution: "internal-slot@npm:1.0.3" @@ -6745,13 +6551,6 @@ dts-critic@latest: languageName: node linkType: hard -"is-fullwidth-code-point@npm:^2.0.0": - version: 2.0.0 - resolution: "is-fullwidth-code-point@npm:2.0.0" - checksum: eef9c6e15f68085fec19ff6a978a6f1b8f48018fd1265035552078ee945573594933b09bbd6f562553e2a241561439f1ef5339276eba68d272001343084cfab8 - languageName: node - linkType: hard - "is-fullwidth-code-point@npm:^3.0.0": version: 3.0.0 resolution: "is-fullwidth-code-point@npm:3.0.0" @@ -7508,7 +7307,7 @@ dts-critic@latest: languageName: node linkType: hard -"js2xmlparser@npm:^4.0.1": +"js2xmlparser@npm:^4.0.2": version: 4.0.2 resolution: "js2xmlparser@npm:4.0.2" dependencies: @@ -7524,75 +7323,76 @@ dts-critic@latest: languageName: node linkType: hard -"jsdoc-api@npm:^5.0.4": - version: 5.0.4 - resolution: "jsdoc-api@npm:5.0.4" +"jsdoc-api@npm:^7.1.1": + version: 7.1.1 + resolution: "jsdoc-api@npm:7.1.1" dependencies: - array-back: ^4.0.0 - cache-point: ^1.0.0 - collect-all: ^1.0.3 - file-set: ^2.0.1 + array-back: ^6.2.2 + cache-point: ^2.0.0 + collect-all: ^1.0.4 + file-set: ^4.0.2 fs-then-native: ^2.0.0 - jsdoc: ^3.6.3 - object-to-spawn-args: ^1.1.1 + jsdoc: ^3.6.10 + object-to-spawn-args: ^2.0.1 temp-path: ^1.0.0 - walk-back: ^3.0.1 - checksum: d980c92392cd171f903c39fd0b689ab33ce72861d7fc184c1f067da2d44d05b9e80882ec9be84c06c795d42b57d5d6a3bca723866f20463c7f7af5e2d059348e + walk-back: ^5.1.0 + checksum: 9d9e361f84208137e261e90b7291269cf3114d57091161ba58628652f2f143be8bbebeab6de0964dd5b474c4777d56ccb606733390e15bd84d9b3f2f269d7312 languageName: node linkType: hard -"jsdoc-parse@npm:^4.0.1": - version: 4.0.1 - resolution: "jsdoc-parse@npm:4.0.1" +"jsdoc-parse@npm:^6.1.0": + version: 6.1.0 + resolution: "jsdoc-parse@npm:6.1.0" dependencies: - array-back: ^4.0.0 + array-back: ^6.2.2 lodash.omit: ^4.5.0 lodash.pick: ^4.4.0 reduce-extract: ^1.0.0 - sort-array: ^2.0.0 + sort-array: ^4.1.4 test-value: ^3.0.0 - checksum: 748c6dcd7d315ba9ec0372db957ee2840086bcfeaeeaca91a71d97273aa9bcd86750fbaad1f9d117f9302145ccf18432137ecebd6f0a66c794831c017c184a00 + checksum: a4294105d70157d033ce3d64104d0e6251dd42612cd489f0bc6ac6afb9df1fc36d5f979f115f4ad221d473b4b3c8a2dc148b80b64f046c98ba4b9ea93446b305 languageName: node linkType: hard -"jsdoc-to-markdown@npm:^5.0.1": - version: 5.0.3 - resolution: "jsdoc-to-markdown@npm:5.0.3" +"jsdoc-to-markdown@npm:^7.1.1": + version: 7.1.1 + resolution: "jsdoc-to-markdown@npm:7.1.1" dependencies: - array-back: ^4.0.1 + array-back: ^6.2.2 command-line-tool: ^0.8.0 config-master: ^3.1.0 - dmd: ^4.0.5 - jsdoc-api: ^5.0.4 - jsdoc-parse: ^4.0.1 - walk-back: ^4.0.0 + dmd: ^6.1.0 + jsdoc-api: ^7.1.1 + jsdoc-parse: ^6.1.0 + walk-back: ^5.1.0 bin: jsdoc2md: bin/cli.js - checksum: 6961b70eb91de64b30c8266b7bc6e44868f37f4671c842ca1718526c3a366a30193634e03808d057940215ab7694fee27b0ed8ca389ba0ace69418b988a71381 + checksum: bae4892fd552e65c46634b3a61fc9a15fd9bff26f2731fbc63cf8b8b75cbe0fa391af8ac04b53fac17a395cdde5c74ada1e6af479a39d2ba2758f5583ac3afc4 languageName: node linkType: hard -"jsdoc@npm:^3.6.3": - version: 3.6.7 - resolution: "jsdoc@npm:3.6.7" +"jsdoc@npm:^3.6.10": + version: 3.6.10 + resolution: "jsdoc@npm:3.6.10" dependencies: "@babel/parser": ^7.9.4 + "@types/markdown-it": ^12.2.3 bluebird: ^3.7.2 catharsis: ^0.9.0 escape-string-regexp: ^2.0.0 - js2xmlparser: ^4.0.1 - klaw: ^3.0.0 - markdown-it: ^10.0.0 - markdown-it-anchor: ^5.2.7 - marked: ^2.0.3 + js2xmlparser: ^4.0.2 + klaw: ^4.0.1 + markdown-it: ^12.3.2 + markdown-it-anchor: ^8.4.1 + marked: ^4.0.10 mkdirp: ^1.0.4 requizzle: ^0.2.3 strip-json-comments: ^3.1.0 taffydb: 2.6.2 - underscore: ~1.13.1 + underscore: ~1.13.2 bin: jsdoc: jsdoc.js - checksum: 5733cf01b8544a39b16a86fa620c23c849900cb0cd0dc893bccbeef1c7de20bb88ae837257a58d719d7583bdc3aecded24c06b12c0c2a32a4988c9367b5c143a + checksum: 8902aa91a51c393036e0c4701ec6b1134dee5f0b42e6b9c7660958410200868368d6bf3df537d1c0fbcd193da83cbea9b8a60804f93bca658bc10e37ae999ab7 languageName: node linkType: hard @@ -7750,12 +7550,10 @@ dts-critic@latest: languageName: node linkType: hard -"klaw@npm:^3.0.0": - version: 3.0.0 - resolution: "klaw@npm:3.0.0" - dependencies: - graceful-fs: ^4.1.9 - checksum: 1bf9de22392c80d28de8a2babd6f0de29fa52fcdc1654838fd35174b3641c168ec32b8b03022191e3c190efd535c31fce23f85e29cb260245571da7263ef418e +"klaw@npm:^4.0.1": + version: 4.0.1 + resolution: "klaw@npm:4.0.1" + checksum: 7835649ef632f96099d500f94b38c032acf1432ad5e87da596a2509c2f6a63a7fc346fb357e2227091cc433af5c1378ed448e1c0522ed028981dcd446152291e languageName: node linkType: hard @@ -7773,16 +7571,6 @@ dts-critic@latest: languageName: node linkType: hard -"levn@npm:^0.3.0, levn@npm:~0.3.0": - version: 0.3.0 - resolution: "levn@npm:0.3.0" - dependencies: - prelude-ls: ~1.1.2 - type-check: ~0.3.2 - checksum: 0d084a524231a8246bb10fec48cdbb35282099f6954838604f3c7fc66f2e16fa66fd9cc2f3f20a541a113c4dafdf181e822c887c8a319c9195444e6c64ac395e - languageName: node - linkType: hard - "levn@npm:^0.4.1": version: 0.4.1 resolution: "levn@npm:0.4.1" @@ -7807,12 +7595,12 @@ dts-critic@latest: languageName: node linkType: hard -"linkify-it@npm:^2.0.0": - version: 2.2.0 - resolution: "linkify-it@npm:2.2.0" +"linkify-it@npm:^3.0.1": + version: 3.0.3 + resolution: "linkify-it@npm:3.0.3" dependencies: uc.micro: ^1.0.1 - checksum: d198871d0b3f3cfdb745dae564bfd6743474f20cd0ef1057e6ca29451834749e7f3da52b59b4de44e98f31a1e5c71bdad160490d4ae54de251cbcde57e4d7837 + checksum: 31367a4bb70c5bbc9703246236b504b0a8e049bcd4e0de4291fa50f0ebdebf235b5eb54db6493cb0b1319357c6eeafc4324c9f4aa34b0b943d9f2e11a1268fbc languageName: node linkType: hard @@ -7852,16 +7640,6 @@ dts-critic@latest: languageName: node linkType: hard -"locate-path@npm:^3.0.0": - version: 3.0.0 - resolution: "locate-path@npm:3.0.0" - dependencies: - p-locate: ^3.0.0 - path-exists: ^3.0.0 - checksum: 53db3996672f21f8b0bf2a2c645ae2c13ffdae1eeecfcd399a583bce8516c0b88dcb4222ca6efbbbeb6949df7e46860895be2c02e8d3219abd373ace3bfb4e11 - languageName: node - linkType: hard - "locate-path@npm:^5.0.0": version: 5.0.0 resolution: "locate-path@npm:5.0.0" @@ -8048,45 +7826,37 @@ dts-critic@latest: languageName: node linkType: hard -"markdown-it-anchor@npm:^5.2.7": - version: 5.3.0 - resolution: "markdown-it-anchor@npm:5.3.0" +"markdown-it-anchor@npm:^8.4.1": + version: 8.6.4 + resolution: "markdown-it-anchor@npm:8.6.4" peerDependencies: + "@types/markdown-it": "*" markdown-it: "*" - checksum: e1092fe45001ec9fb6df24afcada4f0cb774eebbe76db7c57943bcd84e0977c85764c5e6cd539617eef2a0f0c7abed59890f748b55c7379e2e4c45ff8b69f813 + checksum: bde310d0202450a228662921df9d9c2e95b3c5762512e8eed1d472fcc812fb20e6b4e98480cda88c8b56b0baf34ac70d6bf8404309c5a2321ebe62da43cd6fe6 languageName: node linkType: hard -"markdown-it@npm:^10.0.0": - version: 10.0.0 - resolution: "markdown-it@npm:10.0.0" +"markdown-it@npm:^12.3.2": + version: 12.3.2 + resolution: "markdown-it@npm:12.3.2" dependencies: - argparse: ^1.0.7 - entities: ~2.0.0 - linkify-it: ^2.0.0 + argparse: ^2.0.1 + entities: ~2.1.0 + linkify-it: ^3.0.1 mdurl: ^1.0.1 uc.micro: ^1.0.5 bin: markdown-it: bin/markdown-it.js - checksum: 69f5ee640cbebb451b80d3cce308fff7230767e05c0f8c206a1e413775b7a6e5a08e91e9f3ec59f9b5c5a45493f9ce7ac089379cffb60c9d3e6677ed9d535086 + checksum: 890555711c1c00fa03b936ca2b213001a3b9b37dea140d8445ae4130ce16628392aad24b12e2a0a9935336ca5951f2957a38f4e5309a2e38eab44e25ff32a41e languageName: node linkType: hard -"marked@npm:^0.7.0": - version: 0.7.0 - resolution: "marked@npm:0.7.0" +"marked@npm:^4.0.10, marked@npm:^4.0.16": + version: 4.0.16 + resolution: "marked@npm:4.0.16" bin: - marked: ./bin/marked - checksum: 5965e990ee0497aceae1b63c479ad614773331e255c7c9feb00120813574370d03e104d062f3c52ca4d96e7c4ff726ad8ca7ef2debe53728fb73975677b6878e - languageName: node - linkType: hard - -"marked@npm:^2.0.3": - version: 2.1.3 - resolution: "marked@npm:2.1.3" - bin: - marked: bin/marked - checksum: 21a5ecd4941bc760aba21dfd97185853ec3b464cf707ad971e3ddb3aeb2f44d0deeb36b0889932afdb6f734975a994d92f18815dd0fabadbd902bdaff997cc5b + marked: bin/marked.js + checksum: c0ef780bf56c9bb49c15b66683e5648410c924c1d725f1489fc3c7dc3bd01194c50d720052bb0282ad7907f472dfdc8fa278acbc7903c5db3be4b83487e0d684 languageName: node linkType: hard @@ -8099,15 +7869,6 @@ dts-critic@latest: languageName: node linkType: hard -"marked@npm:^4.0.16": - version: 4.0.16 - resolution: "marked@npm:4.0.16" - bin: - marked: bin/marked.js - checksum: c0ef780bf56c9bb49c15b66683e5648410c924c1d725f1489fc3c7dc3bd01194c50d720052bb0282ad7907f472dfdc8fa278acbc7903c5db3be4b83487e0d684 - languageName: node - linkType: hard - "mdurl@npm:^1.0.1": version: 1.0.1 resolution: "mdurl@npm:1.0.1" @@ -8233,7 +7994,7 @@ dts-critic@latest: languageName: node linkType: hard -"minimatch@npm:^3.1.2": +"minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" dependencies: @@ -8434,13 +8195,6 @@ dts-critic@latest: languageName: node linkType: hard -"mute-stream@npm:0.0.8": - version: 0.0.8 - resolution: "mute-stream@npm:0.0.8" - checksum: ff48d251fc3f827e5b1206cda0ffdaec885e56057ee86a3155e1951bc940fd5f33531774b1cc8414d7668c10a8907f863f6561875ee6e8768931a62121a531a1 - languageName: node - linkType: hard - "mz@npm:^2.7.0": version: 2.7.0 resolution: "mz@npm:2.7.0" @@ -8482,13 +8236,6 @@ dts-critic@latest: languageName: node linkType: hard -"nice-try@npm:^1.0.4": - version: 1.0.5 - resolution: "nice-try@npm:1.0.5" - checksum: 0b4af3b5bb5d86c289f7a026303d192a7eb4417231fe47245c460baeabae7277bcd8fd9c728fb6bd62c30b3e15cd6620373e2cf33353b095d8b403d3e8a15aff - languageName: node - linkType: hard - "node-fetch@npm:2.6.1": version: 2.6.1 resolution: "node-fetch@npm:2.6.1" @@ -8651,7 +8398,7 @@ dts-critic@latest: languageName: node linkType: hard -"object-get@npm:^2.1.0": +"object-get@npm:^2.1.1": version: 2.1.1 resolution: "object-get@npm:2.1.1" checksum: a015f70a6246024bb9ee49835609a2f516232d671c3de393ac62389853385807ebbecf0609784e8b5da1f30a5ca001b8dd5bfb32c8847dc1ed7f8e73e4b2080f @@ -8672,10 +8419,10 @@ dts-critic@latest: languageName: node linkType: hard -"object-to-spawn-args@npm:^1.1.1": - version: 1.1.1 - resolution: "object-to-spawn-args@npm:1.1.1" - checksum: 8bcf4468ee909127067cb0174b2430af159ffda7552a48814f4cd0eb03ba501e5505199f7c4e95285ca43b15921016f5729959a9c467f26c8c1edbae236887e6 +"object-to-spawn-args@npm:^2.0.1": + version: 2.0.1 + resolution: "object-to-spawn-args@npm:2.0.1" + checksum: 845e75613d973fe92f04142589535175673fe2349d9a5c2f55fb3046e464626cf3fc58a601a0843d3b498128b7b674d1663dd1833feab40584f136762e183add languageName: node linkType: hard @@ -8711,7 +8458,7 @@ dts-critic@latest: languageName: node linkType: hard -"onetime@npm:^5.1.0, onetime@npm:^5.1.2": +"onetime@npm:^5.1.2": version: 5.1.2 resolution: "onetime@npm:5.1.2" dependencies: @@ -8720,20 +8467,6 @@ dts-critic@latest: languageName: node linkType: hard -"optionator@npm:^0.8.3": - version: 0.8.3 - resolution: "optionator@npm:0.8.3" - dependencies: - deep-is: ~0.1.3 - fast-levenshtein: ~2.0.6 - levn: ~0.3.0 - prelude-ls: ~1.1.2 - type-check: ~0.3.2 - word-wrap: ~1.2.3 - checksum: b8695ddf3d593203e25ab0900e265d860038486c943ff8b774f596a310f8ceebdb30c6832407a8198ba3ec9debe1abe1f51d4aad94843612db3b76d690c61d34 - languageName: node - linkType: hard - "optionator@npm:^0.9.1": version: 0.9.1 resolution: "optionator@npm:0.9.1" @@ -8748,13 +8481,6 @@ dts-critic@latest: languageName: node linkType: hard -"os-tmpdir@npm:~1.0.2": - version: 1.0.2 - resolution: "os-tmpdir@npm:1.0.2" - checksum: 5666560f7b9f10182548bf7013883265be33620b1c1b4a4d405c25be2636f970c5488ff3e6c48de75b55d02bde037249fe5dbfbb4c0fb7714953d56aed062e6d - languageName: node - linkType: hard - "p-limit@npm:^1.1.0": version: 1.3.0 resolution: "p-limit@npm:1.3.0" @@ -8764,7 +8490,7 @@ dts-critic@latest: languageName: node linkType: hard -"p-limit@npm:^2.0.0, p-limit@npm:^2.2.0": +"p-limit@npm:^2.2.0": version: 2.3.0 resolution: "p-limit@npm:2.3.0" dependencies: @@ -8791,15 +8517,6 @@ dts-critic@latest: languageName: node linkType: hard -"p-locate@npm:^3.0.0": - version: 3.0.0 - resolution: "p-locate@npm:3.0.0" - dependencies: - p-limit: ^2.0.0 - checksum: 83991734a9854a05fe9dbb29f707ea8a0599391f52daac32b86f08e21415e857ffa60f0e120bfe7ce0cc4faf9274a50239c7895fc0d0579d08411e513b83a4ae - languageName: node - linkType: hard - "p-locate@npm:^4.1.0": version: 4.1.0 resolution: "p-locate@npm:4.1.0" @@ -8900,13 +8617,6 @@ dts-critic@latest: languageName: node linkType: hard -"path-key@npm:^2.0.1": - version: 2.0.1 - resolution: "path-key@npm:2.0.1" - checksum: f7ab0ad42fe3fb8c7f11d0c4f849871e28fbd8e1add65c370e422512fc5887097b9cf34d09c1747d45c942a8c1e26468d6356e2df3f740bf177ab8ca7301ebfd - languageName: node - linkType: hard - "path-key@npm:^3.0.0, path-key@npm:^3.1.0": version: 3.1.1 resolution: "path-key@npm:3.1.1" @@ -9044,13 +8754,6 @@ dts-critic@latest: languageName: node linkType: hard -"prelude-ls@npm:~1.1.2": - version: 1.1.2 - resolution: "prelude-ls@npm:1.1.2" - checksum: c4867c87488e4a0c233e158e4d0d5565b609b105d75e4c05dc760840475f06b731332eb93cc8c9cecb840aa8ec323ca3c9a56ad7820ad2e63f0261dadcb154e4 - languageName: node - linkType: hard - "prettier-linter-helpers@npm:^1.0.0": version: 1.0.0 resolution: "prettier-linter-helpers@npm:1.0.0" @@ -9132,13 +8835,6 @@ dts-critic@latest: languageName: node linkType: hard -"progress@npm:^2.0.0": - version: 2.0.3 - resolution: "progress@npm:2.0.3" - checksum: f67403fe7b34912148d9252cb7481266a354bd99ce82c835f79070643bb3c6583d10dbcfda4d41e04bbc1d8437e9af0fb1e1f2135727878f5308682a579429b7 - languageName: node - linkType: hard - "promise-inflight@npm:^1.0.1": version: 1.0.1 resolution: "promise-inflight@npm:1.0.1" @@ -9343,7 +9039,7 @@ dts-critic@latest: languageName: node linkType: hard -"reduce-flatten@npm:^3.0.0": +"reduce-flatten@npm:^3.0.1": version: 3.0.1 resolution: "reduce-flatten@npm:3.0.1" checksum: d46b9c93a12c2ad6275d6c50e2599778870d3e55362052ce02087f83eca890c5be975fa8e253f5890d5130379834e5b74d019e41e0c2c59c34bf57149c310207 @@ -9398,13 +9094,6 @@ dts-critic@latest: languageName: node linkType: hard -"regexpp@npm:^2.0.1": - version: 2.0.1 - resolution: "regexpp@npm:2.0.1" - checksum: 1f41cf80ac08514c6665812e3dcc0673569431d3285db27053f8b237a758992fb55d6ddfbc264db399ff4f7a7db432900ca3a029daa28a75e0436231872091b1 - languageName: node - linkType: hard - "regexpp@npm:^3.2.0": version: 3.2.0 resolution: "regexpp@npm:3.2.0" @@ -9580,16 +9269,6 @@ dts-critic@latest: languageName: node linkType: hard -"restore-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "restore-cursor@npm:3.1.0" - dependencies: - onetime: ^5.1.0 - signal-exit: ^3.0.2 - checksum: f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630 - languageName: node - linkType: hard - "retry@npm:^0.12.0": version: 0.12.0 resolution: "retry@npm:0.12.0" @@ -9615,17 +9294,6 @@ dts-critic@latest: languageName: node linkType: hard -"rimraf@npm:2.6.3": - version: 2.6.3 - resolution: "rimraf@npm:2.6.3" - dependencies: - glob: ^7.1.3 - bin: - rimraf: ./bin.js - checksum: 3ea587b981a19016297edb96d1ffe48af7e6af69660e3b371dbfc73722a73a0b0e9be5c88089fbeeb866c389c1098e07f64929c7414290504b855f54f901ab10 - languageName: node - linkType: hard - "rimraf@npm:^3.0.0, rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" @@ -9651,13 +9319,6 @@ dts-critic@latest: languageName: node linkType: hard -"run-async@npm:^2.4.0": - version: 2.4.1 - resolution: "run-async@npm:2.4.1" - checksum: a2c88aa15df176f091a2878eb840e68d0bdee319d8d97bbb89112223259cebecb94bc0defd735662b83c2f7a30bed8cddb7d1674eb48ae7322dc602b22d03797 - languageName: node - linkType: hard - "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -9667,15 +9328,6 @@ dts-critic@latest: languageName: node linkType: hard -"rxjs@npm:^6.6.0": - version: 6.6.7 - resolution: "rxjs@npm:6.6.7" - dependencies: - tslib: ^1.9.0 - checksum: bc334edef1bb8bbf56590b0b25734ba0deaf8825b703256a93714308ea36dff8a11d25533671adf8e104e5e8f256aa6fdfe39b2e248cdbd7a5f90c260acbbd1b - languageName: node - linkType: hard - "safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" @@ -9690,7 +9342,7 @@ dts-critic@latest: languageName: node linkType: hard -"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0": +"safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 @@ -9708,7 +9360,7 @@ dts-critic@latest: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.3.0, semver@npm:^5.5.0": +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.3.0": version: 5.7.1 resolution: "semver@npm:5.7.1" bin: @@ -9753,15 +9405,6 @@ dts-critic@latest: languageName: node linkType: hard -"shebang-command@npm:^1.2.0": - version: 1.2.0 - resolution: "shebang-command@npm:1.2.0" - dependencies: - shebang-regex: ^1.0.0 - checksum: 9eed1750301e622961ba5d588af2212505e96770ec376a37ab678f965795e995ade7ed44910f5d3d3cb5e10165a1847f52d3348c64e146b8be922f7707958908 - languageName: node - linkType: hard - "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -9771,13 +9414,6 @@ dts-critic@latest: languageName: node linkType: hard -"shebang-regex@npm:^1.0.0": - version: 1.0.0 - resolution: "shebang-regex@npm:1.0.0" - checksum: 404c5a752cd40f94591dfd9346da40a735a05139dac890ffc229afba610854d8799aaa52f87f7e0c94c5007f2c6af55bdcaeb584b56691926c5eaf41dc8f1372 - languageName: node - linkType: hard - "shebang-regex@npm:^3.0.0": version: 3.0.0 resolution: "shebang-regex@npm:3.0.0" @@ -9835,17 +9471,6 @@ dts-critic@latest: languageName: node linkType: hard -"slice-ansi@npm:^2.1.0": - version: 2.1.0 - resolution: "slice-ansi@npm:2.1.0" - dependencies: - ansi-styles: ^3.2.0 - astral-regex: ^1.0.0 - is-fullwidth-code-point: ^2.0.0 - checksum: 4e82995aa59cef7eb03ef232d73c2239a15efa0ace87a01f3012ebb942e963fbb05d448ce7391efcd52ab9c32724164aba2086f5143e0445c969221dde3b6b1e - languageName: node - linkType: hard - "slide@npm:^1.1.6": version: 1.1.6 resolution: "slide@npm:1.1.6" @@ -9881,14 +9506,13 @@ dts-critic@latest: languageName: node linkType: hard -"sort-array@npm:^2.0.0": - version: 2.0.0 - resolution: "sort-array@npm:2.0.0" +"sort-array@npm:^4.1.4": + version: 4.1.5 + resolution: "sort-array@npm:4.1.5" dependencies: - array-back: ^1.0.4 - object-get: ^2.1.0 - typical: ^2.6.0 - checksum: 428510d027451c1a6f7fdf4007bab949ec3585953e219d826bf2049ec8ade63c211b8631819715e282cbbed45fc6811f7a11e6fea06bb0445386ad8547c5e591 + array-back: ^5.0.0 + typical: ^6.0.1 + checksum: ffaf7c255988af15ec08d78347743d7414ad495b94cd32d201be887b63258b453c9bda240d1c388bd71b46922db307ff7dbc988e717d3ded7eb20513698ea178 languageName: node linkType: hard @@ -10071,17 +9695,6 @@ dts-critic@latest: languageName: node linkType: hard -"string-width@npm:^3.0.0, string-width@npm:^3.1.0": - version: 3.1.0 - resolution: "string-width@npm:3.1.0" - dependencies: - emoji-regex: ^7.0.1 - is-fullwidth-code-point: ^2.0.0 - strip-ansi: ^5.1.0 - checksum: 57f7ca73d201682816d573dc68bd4bb8e1dff8dc9fcf10470fdfc3474135c97175fec12ea6a159e67339b41e86963112355b64529489af6e7e70f94a7caf08b2 - languageName: node - linkType: hard - "string.prototype.trimend@npm:^1.0.4": version: 1.0.4 resolution: "string.prototype.trimend@npm:1.0.4" @@ -10129,15 +9742,6 @@ dts-critic@latest: languageName: node linkType: hard -"strip-ansi@npm:^5.0.0, strip-ansi@npm:^5.1.0, strip-ansi@npm:^5.2.0": - version: 5.2.0 - resolution: "strip-ansi@npm:5.2.0" - dependencies: - ansi-regex: ^4.1.0 - checksum: bdb5f76ade97062bd88e7723aa019adbfacdcba42223b19ccb528ffb9fb0b89a5be442c663c4a3fb25268eaa3f6ea19c7c3fbae830bd1562d55adccae1fcec46 - languageName: node - linkType: hard - "strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" @@ -10184,7 +9788,7 @@ dts-critic@latest: languageName: node linkType: hard -"strip-json-comments@npm:^3.0.1, strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": +"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 @@ -10301,18 +9905,6 @@ dts-critic@latest: languageName: node linkType: hard -"table@npm:^5.2.3": - version: 5.4.6 - resolution: "table@npm:5.4.6" - dependencies: - ajv: ^6.10.2 - lodash: ^4.17.14 - slice-ansi: ^2.1.0 - string-width: ^3.0.0 - checksum: 9e35d3efa788edc17237eef8852f8e4b9178efd65a7d115141777b2ee77df4b7796c05f4ed3712d858f98894ac5935a481ceeb6dcb9895e2f67a61cce0e63b6c - languageName: node - linkType: hard - "taffydb@npm:2.6.2": version: 2.6.2 resolution: "taffydb@npm:2.6.2" @@ -10491,7 +10083,7 @@ dts-critic@latest: languageName: node linkType: hard -"through@npm:2, through@npm:>=2.2.7 <3, through@npm:^2.3.6": +"through@npm:2, through@npm:>=2.2.7 <3": version: 2.3.8 resolution: "through@npm:2.3.8" checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd @@ -10519,15 +10111,6 @@ dts-critic@latest: languageName: node linkType: hard -"tmp@npm:^0.0.33": - version: 0.0.33 - resolution: "tmp@npm:0.0.33" - dependencies: - os-tmpdir: ~1.0.2 - checksum: 902d7aceb74453ea02abbf58c203f4a8fc1cead89b60b31e354f74ed5b3fb09ea817f94fb310f884a5d16987dd9fa5a735412a7c2dd088dd3d415aa819ae3a28 - languageName: node - linkType: hard - "tmp@npm:^0.2.1": version: 0.2.1 resolution: "tmp@npm:0.2.1" @@ -10675,7 +10258,7 @@ dts-critic@latest: languageName: node linkType: hard -"tslib@npm:^1.13.0, tslib@npm:^1.8.0, tslib@npm:^1.8.1, tslib@npm:^1.9.0": +"tslib@npm:^1.13.0, tslib@npm:^1.8.0, tslib@npm:^1.8.1": version: 1.14.1 resolution: "tslib@npm:1.14.1" checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd @@ -10739,13 +10322,6 @@ dts-critic@latest: languageName: node linkType: hard -"tsubaki@npm:^1.3.2": - version: 1.3.14 - resolution: "tsubaki@npm:1.3.14" - checksum: b45e6a839b73ebc2e8c04cb1df2c560ba29bb258966d26ac92cfd475076d58e395ee01abe4ba892dd1cf7b1fc73b9fc4c5b416afc1b796165d3cf50521e422de - languageName: node - linkType: hard - "tsup@npm:^6.1.0": version: 6.1.0 resolution: "tsup@npm:6.1.0" @@ -10984,15 +10560,6 @@ dts-critic@latest: languageName: node linkType: hard -"type-check@npm:~0.3.2": - version: 0.3.2 - resolution: "type-check@npm:0.3.2" - dependencies: - prelude-ls: ~1.1.2 - checksum: dd3b1495642731bc0e1fc40abe5e977e0263005551ac83342ecb6f4f89551d106b368ec32ad3fb2da19b3bd7b2d1f64330da2ea9176d8ddbfe389fb286eb5124 - languageName: node - linkType: hard - "type-detect@npm:4.0.8, type-detect@npm:^4.0.0, type-detect@npm:^4.0.5": version: 4.0.8 resolution: "type-detect@npm:4.0.8" @@ -11110,6 +10677,13 @@ dts-critic@latest: languageName: node linkType: hard +"typical@npm:^6.0.1": + version: 6.0.1 + resolution: "typical@npm:6.0.1" + checksum: 4eae0d3a964150a09f709b8ceed2e2800f10525f66e58212555aadf0339b16c524e6d0c4b259541ac10e8a21f5135b5a2e99a2a39be755122b19a4ecf9fa8f8c + languageName: node + linkType: hard + "uc.micro@npm:^1.0.1, uc.micro@npm:^1.0.5": version: 1.0.6 resolution: "uc.micro@npm:1.0.6" @@ -11138,10 +10712,10 @@ dts-critic@latest: languageName: node linkType: hard -"underscore@npm:~1.13.1": - version: 1.13.2 - resolution: "underscore@npm:1.13.2" - checksum: 6ab156c845ccc757fd01d8b9eb28be18ba89ac68993370dd7397a66a95b124f2ba26947fd53e687c084d334429914fc3dd1620d5123b6e0a7cf112cdcf4e859f +"underscore@npm:~1.13.2": + version: 1.13.4 + resolution: "underscore@npm:1.13.4" + checksum: 6b04f66cd454e8793a552dc49c71e24e5208a29b9d9c0af988a96948af79103399c36fb15db43f3629bfed152f8b1fe94f44e1249e9d196069c0fc7edfadb636 languageName: node linkType: hard @@ -11377,17 +10951,10 @@ dts-critic@latest: languageName: node linkType: hard -"walk-back@npm:^3.0.1": - version: 3.0.1 - resolution: "walk-back@npm:3.0.1" - checksum: 6711647d20166d7110784e09849b24ff3a38ce7b4f95a2f56176496b75db35771eb373cd2c43256d8a5da5aeb32f3746b6c1626dc0fbe4d6b84ececffc2a8286 - languageName: node - linkType: hard - -"walk-back@npm:^4.0.0": - version: 4.0.0 - resolution: "walk-back@npm:4.0.0" - checksum: 44cedd6bd8506697a234c741667884e8c87197956bccaac9373f5bc10527c024eba9bfe4f5e23e3cff0608363f06e196ed9960133e27a3c6a1c8b96d5e4e57a1 +"walk-back@npm:^5.1.0": + version: 5.1.0 + resolution: "walk-back@npm:5.1.0" + checksum: b0e9acdac22dcd281d24fb857af52f39ca4e8f3b18921106b676b0baa96fb7f97c55630d9df0814207a194e6a75f175d8c8282648914458fd949eae901b276f5 languageName: node linkType: hard @@ -11438,17 +11005,6 @@ dts-critic@latest: languageName: node linkType: hard -"which@npm:^1.2.9": - version: 1.3.1 - resolution: "which@npm:1.3.1" - dependencies: - isexe: ^2.0.0 - bin: - which: ./bin/which - checksum: f2e185c6242244b8426c9df1510e86629192d93c1a986a7d2a591f2c24869e7ffd03d6dac07ca863b2e4c06f59a4cc9916c585b72ee9fa1aa609d0124df15e04 - languageName: node - linkType: hard - "which@npm:^2.0.1, which@npm:^2.0.2": version: 2.0.2 resolution: "which@npm:2.0.2" @@ -11469,7 +11025,7 @@ dts-critic@latest: languageName: node linkType: hard -"word-wrap@npm:^1.2.3, word-wrap@npm:~1.2.3": +"word-wrap@npm:^1.2.3": version: 1.2.3 resolution: "word-wrap@npm:1.2.3" checksum: 30b48f91fcf12106ed3186ae4fa86a6a1842416df425be7b60485de14bec665a54a68e4b5156647dec3a70f25e84d270ca8bc8cd23182ed095f5c7206a938c1f @@ -11493,17 +11049,6 @@ dts-critic@latest: languageName: node linkType: hard -"wrap-ansi@npm:^5.1.0": - version: 5.1.0 - resolution: "wrap-ansi@npm:5.1.0" - dependencies: - ansi-styles: ^3.2.0 - string-width: ^3.0.0 - strip-ansi: ^5.0.0 - checksum: 9b48c862220e541eb0daa22661b38b947973fc57054e91be5b0f2dcc77741a6875ccab4ebe970a394b4682c8dfc17e888266a105fb8b0a9b23c19245e781ceae - languageName: node - linkType: hard - "wrap-ansi@npm:^6.2.0": version: 6.2.0 resolution: "wrap-ansi@npm:6.2.0" @@ -11543,15 +11088,6 @@ dts-critic@latest: languageName: node linkType: hard -"write@npm:1.0.3": - version: 1.0.3 - resolution: "write@npm:1.0.3" - dependencies: - mkdirp: ^0.5.1 - checksum: 6496197ceb2d6faeeb8b5fe2659ca804e801e4989dff9fb8a66fe76179ce4ccc378c982ef906733caea1220c8dbe05a666d82127959ac4456e70111af8b8df73 - languageName: node - linkType: hard - "ws@npm:^8.7.0": version: 8.7.0 resolution: "ws@npm:8.7.0" @@ -11609,16 +11145,6 @@ dts-critic@latest: languageName: node linkType: hard -"yargs-parser@npm:^15.0.1": - version: 15.0.3 - resolution: "yargs-parser@npm:15.0.3" - dependencies: - camelcase: ^5.0.0 - decamelize: ^1.2.0 - checksum: 06611c1893fa9f1c25ae79df3c6e2edbac7c8d75257a4b55b8432cbc87ee03eda86bea0537f65b4b8a0d9684c83fa6e9ef61ef720a1e5cc8a9aa6893b54ee4c3 - languageName: node - linkType: hard - "yargs-parser@npm:^18.1.2": version: 18.1.3 resolution: "yargs-parser@npm:18.1.3" @@ -11643,25 +11169,6 @@ dts-critic@latest: languageName: node linkType: hard -"yargs@npm:^14.0.0": - version: 14.2.3 - resolution: "yargs@npm:14.2.3" - dependencies: - cliui: ^5.0.0 - decamelize: ^1.2.0 - find-up: ^3.0.0 - get-caller-file: ^2.0.1 - require-directory: ^2.1.1 - require-main-filename: ^2.0.0 - set-blocking: ^2.0.0 - string-width: ^3.0.0 - which-module: ^2.0.0 - y18n: ^4.0.0 - yargs-parser: ^15.0.1 - checksum: 684fcb1896e6c873c31c09c5c16445d6253dfe505aa879cff56d49425f5bca44f2ab8d7a1c949f3b932ae8654128425e89770e5e2f2c3d816e5816b9eb6efb6f - languageName: node - linkType: hard - "yargs@npm:^15.1.0, yargs@npm:^15.3.1": version: 15.4.1 resolution: "yargs@npm:15.4.1"