From 5ec82285048ecb0007fffa2450122f72d94192dc Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Thu, 25 Jan 2024 10:22:05 -0500 Subject: [PATCH] [ACS-6659] cleanup unused docs utils (#9274) * remove unused scripts * remove unused scripts * remove unused scripts * remove unused libs * remove unused code * remove unused code and libs, fix linting issues * code cleanup * linting fixes * linting fixes --- cspell.json | 1 - package-lock.json | 41 - package.json | 7 - tools/doc/ReviewCheckerGuide.md | 33 - tools/doc/buildYamlSourceInfo.js | 43 +- tools/doc/commitStoplist.json | 1 - tools/doc/docProcessor.js | 165 ++-- tools/doc/libsearch.js | 42 +- tools/doc/mqDefs.ts | 76 +- tools/doc/ngHelpers.js | 64 +- tools/doc/package-lock.json | 1478 ++++++++++++++---------------- tools/doc/package.json | 4 +- tools/doc/remarkGraphQl.js | 23 - tools/doc/remarkGraphQl.ts | 65 -- tools/doc/reviewChecker.js | 109 --- tools/doc/reviewChecker.ts | 182 ---- tools/doc/stoplist.js | 30 - tools/doc/stoplist.ts | 48 - tools/doc/tools/seealso.js | 77 +- tools/doc/tools/toc.js | 135 ++- tools/doc/tools/tsInfo.ts | 97 +- tools/doc/tools/tutorialIndex.ts | 42 +- tools/doc/tools/versionIndex.js | 129 ++- tools/doc/tsconfig.json | 4 +- tools/doc/unistHelpers.js | 127 +-- 25 files changed, 1088 insertions(+), 1935 deletions(-) delete mode 100644 tools/doc/ReviewCheckerGuide.md delete mode 100644 tools/doc/commitStoplist.json delete mode 100644 tools/doc/remarkGraphQl.js delete mode 100644 tools/doc/remarkGraphQl.ts delete mode 100644 tools/doc/reviewChecker.js delete mode 100644 tools/doc/reviewChecker.ts delete mode 100644 tools/doc/stoplist.js delete mode 100644 tools/doc/stoplist.ts diff --git a/cspell.json b/cspell.json index f8f274258ec..a5fe7c47b03 100644 --- a/cspell.json +++ b/cspell.json @@ -77,7 +77,6 @@ "lastname", "listgrid", "mapitem", - "markdownlint", "mimetype", "mincount", "minlength", diff --git a/package-lock.json b/package-lock.json index be503ffd800..3c7ec51f0d0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -111,7 +111,6 @@ "eslint-plugin-unicorn": "^49.0.0", "github-api": "^3.4.0", "graphql": "^16.8.1", - "graphql-request": "^6.1.0", "husky": "^7.0.4", "jasmine-ajax": "4.0.0", "jasmine-core": "4.6.0", @@ -28792,33 +28791,6 @@ "version": "1.5.13", "license": "MIT" }, - "node_modules/cross-fetch": { - "version": "3.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "node_modules/cross-fetch/node_modules/node-fetch": { - "version": "2.6.7", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/cross-spawn": { "version": "7.0.3", "license": "MIT", @@ -33448,19 +33420,6 @@ "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } }, - "node_modules/graphql-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", - "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", - "dev": true, - "dependencies": { - "@graphql-typed-document-node/core": "^3.2.0", - "cross-fetch": "^3.1.5" - }, - "peerDependencies": { - "graphql": "14 - 16" - } - }, "node_modules/graphql-tag": { "version": "2.12.6", "license": "MIT", diff --git a/package.json b/package.json index 3e007ab13ac..f0ab31fd879 100644 --- a/package.json +++ b/package.json @@ -9,16 +9,10 @@ "ng": "nx", "00": "echo -------------------------------------------- DOC -----------------------------------------------", "build-doc-tools": "tsc -p ./tools/doc/tsconfig.json", - "markdownlint": "markdownlint ./docs", "docbuild": "(cd ./tools/doc; npm i) && node tools/doc/node_modules/typedoc/bin/typedoc --tsconfig lib/tsconfig.doc.json && node tools/doc/buildYamlSourceInfo.js docs/docs.json && node ./tools/doc/docProcessor.js", - "review-checker": "node ./tools/doc/reviewChecker.js", "01": "echo -------------------------------------------- Build Lib -----------------------------------------------", "affected:libs": "nx affected:libs", "coverage": "./lib/config/create-coverage-index.sh && lite-server -c ./lib/config/proxy-coverage.json", - "print-affected:build": "nx print-affected --target=build --select=tasks.target.project", - "print-affected:test": "nx print-affected --target=test --select=tasks.target.project", - "print-affected:e2e": "nx print-affected --target=e2e --select=tasks.target.project", - "print-affected:lint": "nx print-affected --target=lint --select=tasks.target.project", "03": "echo -------------------------------------------- Lint -----------------------------------------------", "affected:lint": "nx affected:lint", "04": "echo -------------------------------------------- Demo Shell -----------------------------------------------", @@ -161,7 +155,6 @@ "eslint-plugin-unicorn": "^49.0.0", "github-api": "^3.4.0", "graphql": "^16.8.1", - "graphql-request": "^6.1.0", "husky": "^7.0.4", "jasmine-ajax": "4.0.0", "jasmine-core": "4.6.0", diff --git a/tools/doc/ReviewCheckerGuide.md b/tools/doc/ReviewCheckerGuide.md deleted file mode 100644 index 5daabd4d0aa..00000000000 --- a/tools/doc/ReviewCheckerGuide.md +++ /dev/null @@ -1,33 +0,0 @@ -# Review checker guide - -The review checker tool queries the Github repo to look for recent -commits to the component source files. The dates of these commits -are compared against against a review date stored in the Markdown doc -file for each component. The time and the number of commits since the -last review are then combined into a "score" that gives an indication -of how urgently the doc file needs a review. - -## Review date metadata - -The review date is kept in the YAML metadata section at the top of each -Markdown file. The key is "Last reviewed" and the date is in the form -YYYY-MM-DD. - -## Commit message stoplist - -The checker will ignore any commits that match regular expressions stored -in the `commitStoplist.json` file in the `DocProcessor` folder. You could -use this, for example, to filter out JIRA tasks that don't involve any -changes in functionality (and therefore don't need documenting). - -## Output format - -The script sends comma-separated text to the command line. You can copy/paste -this into a spreadsheet or redirect the output to a text file with a ".csv" -suffix. - -To use this tool you need before to set graphAuthToken variable with you github access token: - -export graphAuthToken=GITHUB_TOKEN - -npm run review-checker diff --git a/tools/doc/buildYamlSourceInfo.js b/tools/doc/buildYamlSourceInfo.js index da927b8771a..11ae257a831 100644 --- a/tools/doc/buildYamlSourceInfo.js +++ b/tools/doc/buildYamlSourceInfo.js @@ -1,12 +1,12 @@ -var fs = require("fs"); -var path = require("path"); -var ejs = require("ejs"); +const fs = require('fs'); +const path = require('path'); +const ejs = require('ejs'); -var templateFolder = path.resolve("tools", "doc", "yamlTemplates"); -var outputFolder = path.resolve("docs", "sourceinfo"); +const templateFolder = path.resolve('tools', 'doc', 'yamlTemplates'); +const outputFolder = path.resolve('docs', 'sourceinfo'); if (process.argv.length < 3) { - console.log("Error: Source filename required"); + console.log('Error: Source filename required'); process.exit(); } @@ -16,41 +16,36 @@ if (!fs.existsSync(outputFolder)) { fs.mkdirSync(outputFolder); } -var docData = JSON.parse(fs.readFileSync(path.resolve(process.argv[2]), "utf8")); -var tempFilename = path.resolve(templateFolder, "template.ejs"); -var tempSource = fs.readFileSync(tempFilename, "utf8"); -var template = ejs.compile( - tempSource, - { - filename: tempFilename, - cache: true - } -); +const docData = JSON.parse(fs.readFileSync(path.resolve(process.argv[2]), 'utf8')); +const tempFilename = path.resolve(templateFolder, 'template.ejs'); +const tempSource = fs.readFileSync(tempFilename, 'utf8'); +const template = ejs.compile(tempSource, { + filename: tempFilename, + cache: true +}); searchItemsRecursively(docData); function searchItemsRecursively(item) { if (interestedIn(item.kind)) { - processItem(item); } else if (item.children) { - item.children.forEach(child => { + item.children.forEach((child) => { searchItemsRecursively(child); }); } } function interestedIn(itemKind) { - return (itemKind === 128) || (itemKind === 256) || (itemKind === 4194304); + return itemKind === 128 || itemKind === 256 || itemKind === 4194304; } - function processItem(item) { - var docText = template(item); + const docText = template(item); - if( item.name === 'Widget'){ - console.log('item ' + JSON.stringify(item.name )); + if (item.name === 'Widget') { + console.log('item ' + JSON.stringify(item.name)); } - fs.writeFileSync(path.resolve(outputFolder, item.name + ".yml"), docText); + fs.writeFileSync(path.resolve(outputFolder, item.name + '.yml'), docText); } diff --git a/tools/doc/commitStoplist.json b/tools/doc/commitStoplist.json deleted file mode 100644 index cd9793875a6..00000000000 --- a/tools/doc/commitStoplist.json +++ /dev/null @@ -1 +0,0 @@ -["ADF-1769"] \ No newline at end of file diff --git a/tools/doc/docProcessor.js b/tools/doc/docProcessor.js index c39fed8c669..e74923d358d 100644 --- a/tools/doc/docProcessor.js +++ b/tools/doc/docProcessor.js @@ -1,25 +1,22 @@ -var fs = require("fs"); -var path = require("path"); - -var program = require("commander"); -var lodash = require("lodash"); -var jsyaml = require("js-yaml"); - -var remark = require("remark"); -var frontMatter = require("remark-frontmatter"); -var mdCompact = require("mdast-util-compact"); -var minimatch = require("minimatch"); - -var si = require("./sourceInfoClasses"); +const fs = require('fs'); +const path = require('path'); +const program = require('commander'); +const lodash = require('lodash'); +const jsyaml = require('js-yaml'); +const remark = require('remark'); +const frontMatter = require('remark-frontmatter'); +const mdCompact = require('mdast-util-compact'); +const minimatch = require('minimatch'); + +const si = require('./sourceInfoClasses'); // "Aggregate" data collected over the whole file set. -var aggData = {}; - -var toolsFolderName = "tools"; -var configFileName = "doctool.config.json"; -var defaultFolder = path.resolve("docs"); -var sourceInfoFolder = path.resolve("docs", "sourceinfo"); +const aggData = {}; +const toolsFolderName = 'tools'; +const configFileName = 'doctool.config.json'; +const defaultFolder = path.resolve('docs'); +const sourceInfoFolder = path.resolve('docs', 'sourceinfo'); function filterFiles(filePath) { let isAllowed = true; @@ -27,31 +24,33 @@ function filterFiles(filePath) { this.excludedFileList = aggData['config'].exclude; if (this.excludedFileList) { - isAllowed = this.excludedFileList.filter((pattern) => { - return minimatch(filePath, pattern.toString(), { - nocase: true - }); - }).length === 0; + isAllowed = + this.excludedFileList.filter((pattern) => { + return minimatch(filePath, pattern.toString(), { + nocase: true + }); + }).length === 0; } return isAllowed; } +const toolModules = loadToolModules(); -function updatePhase(mdCache, aggData) { +let toolList; - toolList.forEach(toolName => { +function updatePhase(mdCache, aggData) { + toolList.forEach((toolName) => { console.log(`Tool: ${toolName}`); toolModules[toolName].processDocs(mdCache, aggData); }); - var filenames = Object.keys(mdCache); - + const filenames = Object.keys(mdCache); - for (var i = 0; i < filenames.length; i++) { - var pathname = filenames[i]; - var tree = mdCache[pathname].mdOutTree; - var original = mdCache[pathname].mdInTree; + for (let i = 0; i < filenames.length; i++) { + const pathname = filenames[i]; + const tree = mdCache[pathname].mdOutTree; + const original = mdCache[pathname].mdInTree; if (program.json) { let filename = path.basename(pathname); @@ -67,30 +66,36 @@ function updatePhase(mdCache, aggData) { console.log(`Modified: ${pathname}`); } - fs.writeFileSync(filenames[i], remark().use(frontMatter, { - type: 'yaml', - fence: '---' - }).data("settings", {paddedTable: false, gfm: false}).stringify(tree)); + fs.writeFileSync( + filenames[i], + remark() + .use(frontMatter, { + type: 'yaml', + fence: '---' + }) + .data('settings', { paddedTable: false, gfm: false }) + .stringify(tree) + ); } } } function minimiseTree(tree) { - let minPropsTree = JSON.parse(JSON.stringify(tree, (key, value) => key === "position" ? undefined : value)); + let minPropsTree = JSON.parse(JSON.stringify(tree, (key, value) => (key === 'position' ? undefined : value))); mdCompact(minPropsTree); return minPropsTree; } function loadToolModules() { - var mods = {}; - var toolsFolderPath = path.resolve(__dirname, toolsFolderName); - var modFiles = fs.readdirSync(toolsFolderPath); + const mods = {}; + const toolsFolderPath = path.resolve(__dirname, toolsFolderName); + const modFiles = fs.readdirSync(toolsFolderPath); - for (var i = 0; i < modFiles.length; i++) { - var modPath = path.resolve(toolsFolderPath, modFiles[i]) + for (let i = 0; i < modFiles.length; i++) { + const modPath = path.resolve(toolsFolderPath, modFiles[i]); - if (path.extname(modPath) === ".js") { - var toolName = path.basename(modPath, ".js"); + if (path.extname(modPath) === '.js') { + const toolName = path.basename(modPath, '.js'); mods[toolName] = require(modPath); } } @@ -98,19 +103,17 @@ function loadToolModules() { return mods; } - function loadConfig() { - var configFilePath = path.resolve(__dirname, configFileName) + const configFilePath = path.resolve(__dirname, configFileName); return JSON.parse(fs.readFileSync(configFilePath)); } - function getAllDocFilePaths(docFolder, files) { - var items = fs.readdirSync(docFolder); + const items = fs.readdirSync(docFolder); - for (var i = 0; i < items.length; i++) { - var itemPath = path.resolve(docFolder, items[i]); - var itemInfo = fs.statSync(itemPath); + for (let i = 0; i < items.length; i++) { + const itemPath = path.resolve(docFolder, items[i]); + const itemInfo = fs.statSync(itemPath); if (itemInfo.isFile()) { files.push(itemPath); @@ -120,16 +123,15 @@ function getAllDocFilePaths(docFolder, files) { } } - function initMdCache(filenames) { - var mdCache = {}; + const mdCache = {}; - for (var i = 0; i < filenames.length; i++) { - var pathname = filenames[i]; + for (let i = 0; i < filenames.length; i++) { + const pathname = filenames[i]; mdCache[pathname] = {}; - var src = fs.readFileSync(pathname); - var tree = remark().use(frontMatter, ["yaml"]).parse(src); + const src = fs.readFileSync(pathname); + const tree = remark().use(frontMatter, ['yaml']).parse(src); mdCache[pathname].mdInTree = minimiseTree(tree); mdCache[pathname].mdOutTree = minimiseTree(tree); } @@ -138,13 +140,13 @@ function initMdCache(filenames) { } function initClassInfo(aggData) { - var yamlFilenames = fs.readdirSync(path.resolve(sourceInfoFolder)); + const yamlFilenames = fs.readdirSync(path.resolve(sourceInfoFolder)); aggData.classInfo = {}; - yamlFilenames.forEach(yamlFilename => { - var classYamlText = fs.readFileSync(path.resolve(sourceInfoFolder, yamlFilename), "utf8"); - var classYaml = jsyaml.safeLoad(classYamlText); + yamlFilenames.forEach((yamlFilename) => { + const classYamlText = fs.readFileSync(path.resolve(sourceInfoFolder, yamlFilename), 'utf8'); + const classYaml = jsyaml.safeLoad(classYamlText); if (program.verbose) { console.log(classYaml.items[0].name); @@ -155,20 +157,20 @@ function initClassInfo(aggData) { } program - .usage("[options] ") - .option("-p, --profile [profileName]", "Select named config profile", "default") - .option("-j, --json", "Output JSON data for Markdown syntax tree") - .option("-v, --verbose", "Log doc files as they are processed") - .option("-t, --timing", "Output time taken for run") + .usage('[options] ') + .option('-p, --profile [profileName]', 'Select named config profile', 'default') + .option('-j, --json', 'Output JSON data for Markdown syntax tree') + .option('-v, --verbose', 'Log doc files as they are processed') + .option('-t, --timing', 'Output time taken for run') .parse(process.argv); -var startTime; +let startTime; if (program.timing) { startTime = process.hrtime(); } -var sourcePath; +let sourcePath; if (program.args.length === 0) { sourcePath = defaultFolder; @@ -176,25 +178,20 @@ if (program.args.length === 0) { sourcePath = path.resolve(program.args[0]); } -var sourceInfo = fs.statSync(sourcePath); - -var toolModules = loadToolModules(); - -var config = loadConfig(); +const sourceInfo = fs.statSync(sourcePath); +const config = loadConfig(); aggData['config'] = config; -var toolList; - if (config.profiles[program.profile]) { toolList = config.profiles[program.profile]; - var toolListText = toolList.join(", "); + var toolListText = toolList.join(', '); console.log(`Using '${program.profile}' profile: ${toolListText}`); } else { console.log(`Aborting: unknown profile '${program.profile}`); return 0; } -var files = []; +let files = []; if (sourceInfo.isDirectory()) { getAllDocFilePaths(sourcePath, files); @@ -203,22 +200,18 @@ if (sourceInfo.isDirectory()) { files = [sourcePath]; } -files = files.filter(filename => - (filename !== undefined) && - (path.extname(filename) === ".md") && - (filename !== "README.md") && filterFiles(filename) -); +files = files.filter((filename) => filename !== undefined && path.extname(filename) === '.md' && filename !== 'README.md' && filterFiles(filename)); -var mdCache = initMdCache(files); +const mdCache = initMdCache(files); -console.log("Loading source data..."); +console.log('Loading source data...'); initClassInfo(aggData); -console.log("Updating Markdown files..."); +console.log('Updating Markdown files...'); updatePhase(mdCache, aggData); if (program.timing) { - var endTime = process.hrtime(startTime); + const endTime = process.hrtime(startTime); console.log(`Run complete in ${endTime[0]} sec`); } diff --git a/tools/doc/libsearch.js b/tools/doc/libsearch.js index d0d662879e7..74aa113b564 100644 --- a/tools/doc/libsearch.js +++ b/tools/doc/libsearch.js @@ -1,31 +1,31 @@ -var fs = require("fs"); -var path = require("path"); +const fs = require('fs'); +const path = require('path'); -module.exports = searchLibraryRecursive; - -var angFilenameRegex = /([a-zA-Z0-9\-]+)\.((component)|(dialog)|(directive)|(model)|(pipe)|(service)|(widget))\.ts/; -var searchFolderOmitRegex = /(config)|(mock)|(i18n)|(assets)|(styles)/; +const angFilenameRegex = /([a-zA-Z0-9\-]+)\.((component)|(dialog)|(directive)|(model)|(pipe)|(service)|(widget))\.ts/; +const searchFolderOmitRegex = /(config)|(mock)|(i18n)|(assets)|(styles)/; // Search source folders for .ts files to discover all components, directives, etc. function searchLibraryRecursive(srcData, folderPath) { - var items = fs.readdirSync(folderPath); - - for (var i = 0; i < items.length; i++) { - var itemPath = path.resolve(folderPath, items[i]); - var info = fs.statSync(itemPath); - - if (info.isFile() && (items[i].match(angFilenameRegex))) { - var nameNoSuffix = path.basename(items[i], '.ts'); - - var displayPath = itemPath.replace(/\\/g, '/'); - displayPath = displayPath.substr(displayPath.indexOf("lib") + 4); + const items = fs.readdirSync(folderPath); + + for (let i = 0; i < items.length; i++) { + const itemPath = path.resolve(folderPath, items[i]); + const info = fs.statSync(itemPath); + + if (info.isFile() && items[i].match(angFilenameRegex)) { + const nameNoSuffix = path.basename(items[i], '.ts'); + + let displayPath = itemPath.replace(/\\/g, '/'); + displayPath = displayPath.substring(displayPath.indexOf('lib') + 4); // Type == "component", "directive", etc. - var itemType = nameNoSuffix.split('.')[1]; - - srcData[nameNoSuffix] = { "path": displayPath, "type": itemType }; + const itemType = nameNoSuffix.split('.')[1]; + + srcData[nameNoSuffix] = { path: displayPath, type: itemType }; } else if (info.isDirectory() && !items[i].match(searchFolderOmitRegex)) { searchLibraryRecursive(srcData, itemPath); } } -} \ No newline at end of file +} + +module.exports = searchLibraryRecursive; diff --git a/tools/doc/mqDefs.ts b/tools/doc/mqDefs.ts index 9b3861eb5de..0b8cc39e7e3 100644 --- a/tools/doc/mqDefs.ts +++ b/tools/doc/mqDefs.ts @@ -17,7 +17,7 @@ import { MDAST } from 'mdast'; import { UNIST } from 'unist'; -import * as mdToString from 'mdast-util-to-string'; +import { toString } from 'mdast-util-to-string'; import * as jsyaml from 'js-yaml'; export const schema = ` @@ -116,7 +116,7 @@ export class Node { children(): Node[] { if (this.orig['children']) { - return this.orig['children'].map(x => new Node(x)); + return this.orig['children'].map((x) => new Node(x)); } else { return null; } @@ -124,53 +124,34 @@ export class Node { } export class Parent { - constructor(protected orig: UNIST.Parent) {} plaintext(): string { - return mdToString(this.orig); + return toString(this.orig); } paragraph(): Paragraph { - return new Paragraph( this.orig.children.find( - (ch: UNIST.Node) => (ch.type === 'paragraph') - )); + return new Paragraph(this.orig.children.find((ch: UNIST.Node) => ch.type === 'paragraph')); } paragraphs(): Paragraph[] { - return this.orig.children.filter( - (ch: UNIST.Node) => - (ch.type === 'paragraph') - ) - .map(ch => new Paragraph( ch)); + return this.orig.children.filter((ch: UNIST.Node) => ch.type === 'paragraph').map((ch) => new Paragraph(ch)); } link(): Link { - return new Link( this.orig.children.find( - (ch: UNIST.Node) => (ch.type === 'link') - )); + return new Link(this.orig.children.find((ch: UNIST.Node) => ch.type === 'link')); } links(): Link[] { - return this.orig.children.filter( - (ch: UNIST.Node) => - (ch.type === 'link') - ) - .map(ch => new Link( ch)); + return this.orig.children.filter((ch: UNIST.Node) => ch.type === 'link').map((ch) => new Link(ch)); } text(): Text { - return new Text( this.orig.children.find( - (ch: UNIST.Node) => (ch.type === 'text') - )); + return new Text(this.orig.children.find((ch: UNIST.Node) => ch.type === 'text')); } texts(): Text[] { - return this.orig.children.filter( - (ch: UNIST.Node) => - (ch.type === 'text') - ) - .map(ch => new Text( ch)); + return this.orig.children.filter((ch: UNIST.Node) => ch.type === 'text').map((ch) => new Text(ch)); } } @@ -192,9 +173,7 @@ export class Root extends Parent { metadata(args): string { if (!this._meta) { - const yamlElement: any = this.orig.children.find( - (ch: UNIST.Node) => (ch.type === 'yaml') - ); + const yamlElement: any = this.orig.children.find((ch: UNIST.Node) => ch.type === 'yaml'); if (yamlElement) { this._meta = jsyaml.safeLoad(yamlElement.value); @@ -213,41 +192,35 @@ export class Root extends Parent { heading(args): Heading { const depth = args['depth']; - return new Heading( this.orig.children.find( - (ch: UNIST.Node) => - (ch.type === 'heading') && - ((depth === 0) || (depth === ( ch).depth)) - )); + return new Heading( + this.orig.children.find((ch: UNIST.Node) => ch.type === 'heading' && (depth === 0 || depth === (ch).depth)) + ); } headings(args): Heading[] { const depth = args['depth']; - return this.orig.children.filter( - (ch: UNIST.Node) => - (ch.type === 'heading') && - ((depth === 0) || (depth === ( ch).depth))) - .map(ch => new Heading( ch)); + return this.orig.children + .filter((ch: UNIST.Node) => ch.type === 'heading' && (depth === 0 || depth === (ch).depth)) + .map((ch) => new Heading(ch)); } } export class Heading extends Parent { depth(): number { - return ( this.orig).depth; + return (this.orig).depth; } } -export class Paragraph extends Parent { -} +export class Paragraph extends Parent {} export class Link extends Parent { - title(): string { - return ( this.orig).title; + return (this.orig).title; } url(): string { - return ( this.orig).url; + return (this.orig).url; } } @@ -269,11 +242,8 @@ export class Docset { const pathnames = Object.keys(mdCache); - pathnames.forEach(pathname => { - - if (!pathname.match(/README/) && - pathname.match(libNamesRegex) - ) { + pathnames.forEach((pathname) => { + if (!pathname.match(/README/) && pathname.match(libNamesRegex)) { const doc = new Root(mdCache[pathname].mdInTree); doc.id = pathname.replace(/\\/g, '/'); this.docs.push(doc); @@ -285,7 +255,7 @@ export class Docset { if (args['idFilter'] === '') { return this.docs; } else { - return this.docs.filter(doc => doc.id.indexOf(args['idFilter'] + '/') !== -1); + return this.docs.filter((doc) => doc.id.indexOf(args['idFilter'] + '/') !== -1); } } diff --git a/tools/doc/ngHelpers.js b/tools/doc/ngHelpers.js index e6a3ca2b8be..be11c64c184 100644 --- a/tools/doc/ngHelpers.js +++ b/tools/doc/ngHelpers.js @@ -1,67 +1,55 @@ module.exports = { - "ngNameToDisplayName": ngNameToDisplayName, - "ngNameToClassName": ngNameToClassName, - "dekebabifyName": dekebabifyName, - "kebabifyClassName": kebabifyClassName, - "classTypes": ["component", "dialog", "directive", "model", "pipe", "service", "widget"] -} - + ngNameToDisplayName: ngNameToDisplayName, + ngNameToClassName: ngNameToClassName, + dekebabifyName: dekebabifyName, + kebabifyClassName: kebabifyClassName, + classTypes: ['component', 'dialog', 'directive', 'model', 'pipe', 'service', 'widget'] +}; function ngNameToDisplayName(ngName) { - var mainSections = ngName.split("."); + const mainSections = ngName.split('.'); mainSections[0] = dekebabifyName(mainSections[0]); - return mainSections.join(" "); + return mainSections.join(' '); } - function initialCap(str) { return str[0].toUpperCase() + str.substr(1); } - function ngNameToClassName(rawName, nameExceptions) { - if (nameExceptions[rawName]) - return nameExceptions[rawName]; + if (nameExceptions[rawName]) return nameExceptions[rawName]; + + const name = rawName.replace(/\]|\(|\)/g, ''); + + const fileNameSections = name.split('.'); + const compNameSections = fileNameSections[0].split('-'); - var name = rawName.replace(/\]|\(|\)/g, ''); - - var fileNameSections = name.split('.'); - var compNameSections = fileNameSections[0].split('-'); - - var outCompName = ''; - - for (var i = 0; i < compNameSections.length; i++) { + let outCompName = ''; + + for (let i = 0; i < compNameSections.length; i++) { outCompName = outCompName + initialCap(compNameSections[i]); } - - var itemTypeIndicator = ''; - + + let itemTypeIndicator = ''; + if (fileNameSections.length > 1) { itemTypeIndicator = initialCap(fileNameSections[1]); } - - var finalName = outCompName + itemTypeIndicator; - - return finalName; -} -function displayNameToNgName(name) { - var noSpaceName = ngName.replace(/ ([a-zA-Z])/, "$1".toUpperCase()); - return noSpaceName.substr(0, 1).toUpperCase() + noSpaceName.substr(1); + return outCompName + itemTypeIndicator; } - function dekebabifyName(name) { - var result = name.replace(/-/g, " "); + let result = name.replace(/-/g, ' '); result = result.substr(0, 1).toUpperCase() + result.substr(1); return result; } function kebabifyClassName(name) { - var result = name.replace(/(Component|Directive|Interface|Model|Pipe|Service|Widget)$/, match => { - return "." + match.toLowerCase(); + let result = name.replace(/(Component|Directive|Interface|Model|Pipe|Service|Widget)$/, (match) => { + return '.' + match.toLowerCase(); }); - result = result.replace(/([A-Z])/g, "-$1"); + result = result.replace(/([A-Z])/g, '-$1'); return result.substr(1).toLowerCase(); -} \ No newline at end of file +} diff --git a/tools/doc/package-lock.json b/tools/doc/package-lock.json index 645bffb4469..a2390a3de01 100644 --- a/tools/doc/package-lock.json +++ b/tools/doc/package-lock.json @@ -1,1008 +1,909 @@ { "name": "adf-doc-tools", "version": "4.2.0", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@alfresco/js-api": { + "packages": { + "": { + "name": "adf-doc-tools", + "version": "4.2.0", + "license": "Apache-2.0", + "dependencies": { + "@alfresco/js-api": ">=6.2.0-982", + "ejs": "^3.1.6", + "fast-levenshtein": "^3.0.0", + "graphql": "^15.4.0", + "js-yaml": "3.14.1", + "mdast": "3.0.0", + "mdast-util-compact": "1.0.3", + "mdast-util-heading-range": "2.1.3", + "mdast-util-to-string": "^4.0.0", + "mdast-util-toc": "2.1.0", + "mdast-zone": "3.0.4", + "remark": "^9.0.0", + "remark-frontmatter": "^1.2.0", + "rxjs": "^6.6.6", + "typedoc": "^0.24.8", + "typescript": "3.9.8", + "unist-util-select": "4.0.3" + }, + "devDependencies": { + "@paperist/types-remark": "0.1.3", + "@types/node": "^14.14.26" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@alfresco/js-api": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/@alfresco/js-api/-/js-api-6.2.0.tgz", "integrity": "sha512-jwoO5tKE0MqE/7vQx5Epyy6RQqXX7lzKiTAaGZ0dF810itBbIZEdM6g21eHG/+DmEYtkmaR5fPKLD3PqtKlF8A==", - "requires": { + "dependencies": { "event-emitter": "^0.3.5", "superagent": "^6.0.0", "tslib": "^2.0.0" - }, - "dependencies": { - "tslib": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==" - } } }, - "@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "requires": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "string-width-cjs": { - "version": "npm:string-width@4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "strip-ansi-cjs": { - "version": "npm:strip-ansi@6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - } - } - }, - "wrap-ansi-cjs": { - "version": "npm:wrap-ansi@7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - } - } + "node_modules/@alfresco/js-api/node_modules/tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==" }, - "@paperist/types-remark": { + "node_modules/@paperist/types-remark": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@paperist/types-remark/-/types-remark-0.1.3.tgz", "integrity": "sha512-liJvMxGB0IinhxcoMYiSVOgk2z5CZ5/gvpNCXzVC9xVGVtON0lLJZro1ixo5qZJg1ir6N0BY99Y1u6jp2ZNYEg==", - "dev": true + "dev": true, + "peerDependencies": { + "remark-parse": "^4.0.0", + "unist-util-visit": "^1.1.3" + } }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true + "node_modules/@types/mdast": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", + "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", + "dependencies": { + "@types/unist": "*" + } }, - "@types/node": { + "node_modules/@types/node": { "version": "14.14.31", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.31.tgz", "integrity": "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==", "dev": true }, - "@types/unist": { + "node_modules/@types/unist": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" }, - "ansi-sequence-parser": { + "node_modules/ansi-sequence-parser": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz", "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==" }, - "ansi-styles": { + "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { + "dependencies": { "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "argparse": { + "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { + "dependencies": { "sprintf-js": "~1.0.2" } }, - "async": { + "node_modules/async": { "version": "0.9.2", "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" }, - "asynckit": { + "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, - "bail": { + "node_modules/bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "balanced-match": { + "node_modules/balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "boolbase": { + "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, - "brace-expansion": { + "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { + "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "call-bind": { + "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { + "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "ccount": { + "node_modules/ccount": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", - "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==" + "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "chalk": { + "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { + "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "character-entities": { + "node_modules/character-entities": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "character-entities-html4": { + "node_modules/character-entities-html4": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz", - "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==" + "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "character-entities-legacy": { + "node_modules/character-entities-legacy": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "character-reference-invalid": { + "node_modules/character-reference-invalid": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "collapse-white-space": { + "node_modules/collapse-white-space": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", - "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==" + "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "color-convert": { + "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { + "dependencies": { "color-name": "1.1.3" } }, - "color-name": { + "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, - "combined-stream": { + "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { + "dependencies": { "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "component-emitter": { + "node_modules/component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, - "concat-map": { + "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "cookiejar": { + "node_modules/cookiejar": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==" }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "requires": { - "node-fetch": "2.6.7" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - } - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "css-selector-parser": { + "node_modules/css-selector-parser": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz", "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==" }, - "d": { + "node_modules/d": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { + "dependencies": { "es5-ext": "^0.10.50", "type": "^1.0.1" } }, - "debug": { + "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { + "dependencies": { "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "delayed-stream": { + "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } }, - "ejs": { + "node_modules/ejs": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", - "requires": { + "dependencies": { "jake": "^10.6.1" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" } }, - "emoji-regex": { + "node_modules/emoji-regex": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz", "integrity": "sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4=" }, - "entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==" - }, - "es5-ext": { + "node_modules/es5-ext": { "version": "0.10.62", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "requires": { + "hasInstallScript": true, + "dependencies": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" } }, - "es6-iterator": { + "node_modules/es6-iterator": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "requires": { + "dependencies": { "d": "1", "es5-ext": "^0.10.35", "es6-symbol": "^3.1.1" } }, - "es6-symbol": { + "node_modules/es6-symbol": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "requires": { + "dependencies": { "d": "^1.0.1", "ext": "^1.1.2" } }, - "escape-string-regexp": { + "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } }, - "esprima": { + "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } }, - "event-emitter": { + "node_modules/event-emitter": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "requires": { + "dependencies": { "d": "1", "es5-ext": "~0.10.14" } }, - "ext": { + "node_modules/ext": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "requires": { - "type": "^2.7.2" - }, "dependencies": { - "type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - } + "type": "^2.7.2" } }, - "extend": { + "node_modules/ext/node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + }, + "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, - "extract-files": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", - "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==" - }, - "fast-levenshtein": { + "node_modules/fast-levenshtein": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", - "requires": { + "dependencies": { "fastest-levenshtein": "^1.0.7" } }, - "fast-safe-stringify": { + "node_modules/fast-safe-stringify": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" }, - "fastest-levenshtein": { + "node_modules/fastest-levenshtein": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==" }, - "fault": { + "node_modules/fault": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", - "requires": { + "dependencies": { "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "filelist": { + "node_modules/filelist": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", - "requires": { - "minimatch": "^3.0.4" - }, "dependencies": { - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - } + "minimatch": "^3.0.4" } }, - "foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" + "node_modules/filelist/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "form-data": { + "node_modules/form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { + "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, - "format": { + "node_modules/format": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", - "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=" + "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=", + "engines": { + "node": ">=0.4.x" + } }, - "formidable": { + "node_modules/formidable": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz", - "integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==" + "integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==", + "deprecated": "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau", + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } }, - "function-bind": { + "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "get-intrinsic": { + "node_modules/get-intrinsic": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "requires": { + "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", "has-proto": "^1.0.1", "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "get-stdin": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==" - }, - "github-slugger": { + "node_modules/github-slugger": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz", "integrity": "sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q==", - "requires": { + "dependencies": { "emoji-regex": ">=6.0.0 <=6.1.1" } }, - "graphql": { + "node_modules/graphql": { "version": "15.5.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz", - "integrity": "sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA==" - }, - "graphql-request": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.4.0.tgz", - "integrity": "sha512-acrTzidSlwAj8wBNO7Q/UQHS8T+z5qRGquCQRv9J1InwR01BBWV9ObnoE+JS5nCCEj8wSGS0yrDXVDoRiKZuOg==", - "requires": { - "cross-fetch": "^3.0.6", - "extract-files": "^9.0.0", - "form-data": "^3.0.0" + "integrity": "sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA==", + "engines": { + "node": ">= 10.x" } }, - "has": { + "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { + "dependencies": { "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" } }, - "has-flag": { + "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } }, - "has-proto": { + "node_modules/has-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-symbols": { + "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==" + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "inherits": { + "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "is-alphabetical": { + "node_modules/is-alphabetical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "is-alphanumeric": { + "node_modules/is-alphanumeric": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", - "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=" + "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=", + "engines": { + "node": ">=0.10.0" + } }, - "is-alphanumerical": { + "node_modules/is-alphanumerical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "requires": { + "dependencies": { "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "is-buffer": { + "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, - "is-decimal": { + "node_modules/is-decimal": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "is-hexadecimal": { + "node_modules/is-hexadecimal": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "is-plain-obj": { + "node_modules/is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "engines": { + "node": ">=0.10.0" + } }, - "is-whitespace-character": { + "node_modules/is-whitespace-character": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", - "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==" + "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "is-word-character": { + "node_modules/is-word-character": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", - "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "jackspeak": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.0.tgz", - "integrity": "sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==", - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" + "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "jake": { + "node_modules/jake": { "version": "10.8.2", "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", - "requires": { + "dependencies": { "async": "0.9.x", "chalk": "^2.4.2", "filelist": "^1.0.1", "minimatch": "^3.0.4" }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jake/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dependencies": { - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - } + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "js-yaml": { + "node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "requires": { + "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "jsonc-parser": { + "node_modules/jsonc-parser": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" }, - "linkify-it": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", - "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", - "requires": { - "uc.micro": "^1.0.1" - } - }, - "longest-streak": { + "node_modules/longest-streak": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", - "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==" + "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "lru-cache": { + "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { + "dependencies": { "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "lunr": { + "node_modules/lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==" }, - "markdown-escapes": { + "node_modules/markdown-escapes": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", - "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==" - }, - "markdown-it": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", - "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", - "requires": { - "argparse": "^2.0.1", - "entities": "~3.0.1", - "linkify-it": "^4.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - } + "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "markdown-table": { + "node_modules/markdown-table": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==" }, - "markdownlint": { - "version": "0.28.2", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.28.2.tgz", - "integrity": "sha512-yYaQXoKKPV1zgrFsyAuZPEQoe+JrY9GDag9ObKpk09twx4OCU5lut+0/kZPrQ3W7w82SmgKhd7D8m34aG1unVw==", - "requires": { - "markdown-it": "13.0.1", - "markdownlint-micromark": "0.1.2" - } - }, - "markdownlint-cli": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.34.0.tgz", - "integrity": "sha512-4G9I++VBTZkaye6Yfc/7dU6HQHcyldZEVB+bYyQJLcpJOHKk/q5ZpGqK80oKMIdlxzsA3aWOJLZ4DkoaoUWXbQ==", - "requires": { - "commander": "~10.0.1", - "get-stdin": "~9.0.0", - "glob": "~10.2.2", - "ignore": "~5.2.4", - "js-yaml": "^4.1.0", - "jsonc-parser": "~3.2.0", - "markdownlint": "~0.28.2", - "minimatch": "~9.0.0", - "run-con": "~1.2.11" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==" - }, - "glob": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.5.tgz", - "integrity": "sha512-Gj+dFYPZ5hc5dazjXzB0iHg2jKWJZYMjITXYPBRQ/xc2Buw7H0BINknRTwURJ6IC6MEFpYbLvtgVb3qD+DwyuA==", - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.0", - "minipass": "^5.0.0 || ^6.0.2", - "path-scurry": "^1.7.0" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - } - } - }, - "markdownlint-micromark": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.2.tgz", - "integrity": "sha512-jRxlQg8KpOfM2IbCL9RXM8ZiYWz2rv6DlZAnGv8ASJQpUh6byTBnEsbuMZ6T2/uIgntyf7SKg/mEaEBo1164fQ==" - }, - "marked": { + "node_modules/marked": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==" + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } }, - "mdast": { + "node_modules/mdast": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mdast/-/mdast-3.0.0.tgz", - "integrity": "sha512-xySmf8g4fPKMeC07jXGz971EkLbWAJ83s4US2Tj9lEdnZ142UP5grN73H1Xd3HzrdbU5o9GYYP/y8F9ZSwLE9g==" + "integrity": "sha512-xySmf8g4fPKMeC07jXGz971EkLbWAJ83s4US2Tj9lEdnZ142UP5grN73H1Xd3HzrdbU5o9GYYP/y8F9ZSwLE9g==", + "deprecated": "`mdast` was renamed to `remark`" }, - "mdast-comment-marker": { + "node_modules/mdast-comment-marker": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-1.1.2.tgz", - "integrity": "sha512-vTFXtmbbF3rgnTh3Zl3irso4LtvwUq/jaDvT2D1JqTGAwaipcS7RpTxzi6KjoRqI9n2yuAhzLDAC8xVTF3XYVQ==" + "integrity": "sha512-vTFXtmbbF3rgnTh3Zl3irso4LtvwUq/jaDvT2D1JqTGAwaipcS7RpTxzi6KjoRqI9n2yuAhzLDAC8xVTF3XYVQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "mdast-util-compact": { + "node_modules/mdast-util-compact": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.3.tgz", "integrity": "sha512-nRiU5GpNy62rZppDKbLwhhtw5DXoFMqw9UNZFmlPsNaQCZ//WLjGKUwWMdJrUH+Se7UvtO2gXtAMe0g/N+eI5w==", - "requires": { + "dependencies": { "unist-util-visit": "^1.1.0" } }, - "mdast-util-heading-range": { + "node_modules/mdast-util-heading-range": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/mdast-util-heading-range/-/mdast-util-heading-range-2.1.3.tgz", "integrity": "sha512-ypaAuI6mWC37CQt3YsngWR/+y2LK3xx1+7SfgrG/URyVDgMu+i91O2ulyhNOzAXqB7kf9hGZY3twNK5eaEKX6A==", - "requires": { + "dependencies": { "mdast-util-to-string": "^1.0.0" } }, - "mdast-util-to-string": { + "node_modules/mdast-util-heading-range/node_modules/mdast-util-to-string": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", - "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==" + "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "mdast-util-toc": { + "node_modules/mdast-util-toc": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mdast-util-toc/-/mdast-util-toc-2.1.0.tgz", "integrity": "sha512-ove/QQWSrYOrf9G3xn2MTAjy7PKCtCmm261wpQwecoPAsUtkihkMVczxFqil7VihxgSz4ID9c8bBTsyXR30gQg==", - "requires": { + "dependencies": { "github-slugger": "^1.1.1", "mdast-util-to-string": "^1.0.2", "unist-util-visit": "^1.1.0" } }, - "mdast-zone": { + "node_modules/mdast-util-toc/node_modules/mdast-util-to-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", + "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-zone": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/mdast-zone/-/mdast-zone-3.0.4.tgz", "integrity": "sha512-pqUjjNLTqqDV19wwEw6s67dVtcnhokHW18Qtrj5WA0ABiRzfDfnEk7rgbAUjEG0ZzYUPboECgilewlXPSTP8aQ==", - "requires": { + "dependencies": { "mdast-comment-marker": "^1.0.1", "unist-util-visit": "^1.0.0" } }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" - }, - "methods": { + "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } }, - "mime": { + "node_modules/mime": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } }, - "mime-db": { + "node_modules/mime-db": { "version": "1.46.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", - "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==" + "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==", + "engines": { + "node": ">= 0.6" + } }, - "mime-types": { + "node_modules/mime-types": { "version": "2.1.29", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", - "requires": { + "dependencies": { "mime-db": "1.46.0" + }, + "engines": { + "node": ">= 0.6" } }, - "minimatch": { + "node_modules/minimatch": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", - "requires": { + "dependencies": { "brace-expansion": "^2.0.1" }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - } + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "minipass": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", - "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==" - }, - "moment": { - "version": "2.29.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz", - "integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==" + "node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } }, - "ms": { + "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "next-tick": { + "node_modules/next-tick": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" }, - "nth-check": { + "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "requires": { + "dependencies": { "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "object-inspect": { + "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "parse-entities": { + "node_modules/parse-entities": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", - "requires": { + "dependencies": { "character-entities": "^1.0.0", "character-entities-legacy": "^1.0.0", "character-reference-invalid": "^1.0.0", @@ -1011,93 +912,85 @@ "is-hexadecimal": "^1.0.0" } }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-scurry": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", - "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", - "requires": { - "lru-cache": "^9.1.1", - "minipass": "^5.0.0 || ^6.0.2" - }, - "dependencies": { - "lru-cache": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", - "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==" - } - } - }, - "qs": { + "node_modules/qs": { "version": "6.11.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "requires": { + "dependencies": { "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "readable-stream": { + "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "requires": { + "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "remark": { + "node_modules/remark": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/remark/-/remark-9.0.0.tgz", "integrity": "sha512-amw8rGdD5lHbMEakiEsllmkdBP+/KpjW/PRK6NSGPZKCQowh0BT4IWXDAkRMyG3SB9dKPXWMviFjNusXzXNn3A==", - "requires": { + "dependencies": { "remark-parse": "^5.0.0", "remark-stringify": "^5.0.0", "unified": "^6.0.0" - }, - "dependencies": { - "remark-parse": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz", - "integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==", - "requires": { - "collapse-white-space": "^1.0.2", - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "is-word-character": "^1.0.0", - "markdown-escapes": "^1.0.0", - "parse-entities": "^1.1.0", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "trim": "0.0.1", - "trim-trailing-lines": "^1.0.0", - "unherit": "^1.0.4", - "unist-util-remove-position": "^1.0.0", - "vfile-location": "^2.0.0", - "xtend": "^4.0.1" - } - } } }, - "remark-frontmatter": { + "node_modules/remark-frontmatter": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-1.3.3.tgz", "integrity": "sha512-fM5eZPBvu2pVNoq3ZPW22q+5Ativ1oLozq2qYt9I2oNyxiUd/tDl0iLLntEVAegpZIslPWg1brhcP1VsaSVUag==", - "requires": { + "dependencies": { "fault": "^1.0.1", "xtend": "^4.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-4.0.0.tgz", + "integrity": "sha512-XZgICP2gJ1MHU7+vQaRM+VA9HEL3X253uwUM/BGgx3iv6TH2B3bF3B8q00DKcyP9YrJV+/7WOWEWBFF/u8cIsw==", + "dev": true, + "peer": true, + "dependencies": { + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^1.0.2", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^1.0.0", + "vfile-location": "^2.0.0", + "xtend": "^4.0.1" } }, - "remark-stringify": { + "node_modules/remark-stringify": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-5.0.0.tgz", "integrity": "sha512-Ws5MdA69ftqQ/yhRF9XhVV29mhxbfGhbz0Rx5bQH+oJcNhhSM6nCu1EpLod+DjrFGrU0BMPs+czVmJZU7xiS7w==", - "requires": { + "dependencies": { "ccount": "^1.0.0", "is-alphanumeric": "^1.0.0", "is-decimal": "^1.0.0", @@ -1114,133 +1007,151 @@ "xtend": "^4.0.1" } }, - "repeat-string": { + "node_modules/remark/node_modules/remark-parse": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz", + "integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==", + "dependencies": { + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^1.1.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^1.0.0", + "vfile-location": "^2.0.0", + "xtend": "^4.0.1" + } + }, + "node_modules/repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "engines": { + "node": ">=0.10" + } }, - "replace-ext": { + "node_modules/replace-ext": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" - }, - "run-con": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.11.tgz", - "integrity": "sha512-NEMGsUT+cglWkzEr4IFK21P4Jca45HqiAbIIZIBdX5+UZTB24Mb/21iNGgz9xZa8tL6vbW7CXmq7MFN42+VjNQ==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~3.0.0", - "minimist": "^1.2.6", - "strip-json-comments": "~3.1.1" - }, - "dependencies": { - "ini": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz", - "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==" - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" - } + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "engines": { + "node": ">= 0.10" } }, - "rxjs": { + "node_modules/rxjs": { "version": "6.6.6", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.6.tgz", "integrity": "sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg==", - "requires": { + "dependencies": { "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" } }, - "safe-buffer": { + "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "semver": { + "node_modules/semver": { "version": "7.5.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", - "requires": { + "dependencies": { "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "shiki": { + "node_modules/shiki": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.2.tgz", "integrity": "sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A==", - "requires": { + "dependencies": { "ansi-sequence-parser": "^1.1.0", "jsonc-parser": "^3.2.0", "vscode-oniguruma": "^1.7.0", "vscode-textmate": "^8.0.0" } }, - "side-channel": { + "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { + "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "signal-exit": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", - "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==" - }, - "sprintf-js": { + "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, - "state-toggle": { + "node_modules/state-toggle": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", - "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==" + "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "string_decoder": { + "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { + "dependencies": { "safe-buffer": "~5.2.0" } }, - "stringify-entities": { + "node_modules/stringify-entities": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.2.tgz", "integrity": "sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==", - "requires": { + "dependencies": { "character-entities-html4": "^1.0.0", "character-entities-legacy": "^1.0.0", "is-alphanumerical": "^1.0.0", "is-hexadecimal": "^1.0.0" } }, - "superagent": { + "node_modules/superagent": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/superagent/-/superagent-6.1.0.tgz", "integrity": "sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg==", - "requires": { + "deprecated": "Please upgrade to v7.0.2+ of superagent. We have fixed numerous issues with streams, form-data, attach(), filesystem errors not bubbling up (ENOENT on attach()), and all tests are now passing. See the releases tab for more information at .", + "dependencies": { "component-emitter": "^1.3.0", "cookiejar": "^2.1.2", "debug": "^4.1.1", @@ -1252,81 +1163,106 @@ "qs": "^6.9.4", "readable-stream": "^3.6.0", "semver": "^7.3.2" + }, + "engines": { + "node": ">= 7.0.0" } }, - "supports-color": { + "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { + "dependencies": { "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "trim": { + "node_modules/trim": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", + "deprecated": "Use String.prototype.trim() instead" }, - "trim-trailing-lines": { + "node_modules/trim-trailing-lines": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", - "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==" + "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "trough": { + "node_modules/trough": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "tslib": { + "node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, - "type": { + "node_modules/type": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" }, - "typedoc": { + "node_modules/typedoc": { "version": "0.24.8", "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.24.8.tgz", "integrity": "sha512-ahJ6Cpcvxwaxfu4KtjA8qZNqS43wYt6JL27wYiIgl1vd38WW/KWX11YuAeZhuz9v+ttrutSsgK+XO1CjL1kA3w==", - "requires": { + "dependencies": { "lunr": "^2.3.9", "marked": "^4.3.0", "minimatch": "^9.0.0", "shiki": "^0.14.1" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 14.14" + }, + "peerDependencies": { + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x" } }, - "typescript": { + "node_modules/typescript": { "version": "3.9.8", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.8.tgz", - "integrity": "sha512-nDbnFkUZZjkQ92qwKX+C+jtk4OGfU8H9toSEs3uAsl8cxLjG2sqQm6leF/pLWvm9FAEJ6KHkYMAbHYaY2ITeVg==" - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + "integrity": "sha512-nDbnFkUZZjkQ92qwKX+C+jtk4OGfU8H9toSEs3uAsl8cxLjG2sqQm6leF/pLWvm9FAEJ6KHkYMAbHYaY2ITeVg==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } }, - "unherit": { + "node_modules/unherit": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", - "requires": { + "dependencies": { "inherits": "^2.0.0", "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "unified": { + "node_modules/unified": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz", "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==", - "requires": { + "dependencies": { "bail": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^1.1.0", @@ -1335,176 +1271,128 @@ "x-is-string": "^0.1.0" } }, - "unist-util-is": { + "node_modules/unist-util-is": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" }, - "unist-util-remove-position": { + "node_modules/unist-util-remove-position": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz", "integrity": "sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==", - "requires": { + "dependencies": { "unist-util-visit": "^1.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "unist-util-select": { + "node_modules/unist-util-select": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/unist-util-select/-/unist-util-select-4.0.3.tgz", "integrity": "sha512-1074+K9VyR3NyUz3lgNtHKm7ln+jSZXtLJM4E22uVuoFn88a/Go2pX8dusrt/W+KWH1ncn8jcd8uCQuvXb/fXA==", - "requires": { + "dependencies": { "@types/unist": "^2.0.0", "css-selector-parser": "^1.0.0", "nth-check": "^2.0.0", "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "unist-util-stringify-position": { + "node_modules/unist-util-stringify-position": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==" }, - "unist-util-visit": { + "node_modules/unist-util-visit": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", - "requires": { + "dependencies": { "unist-util-visit-parents": "^2.0.0" } }, - "unist-util-visit-parents": { + "node_modules/unist-util-visit-parents": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", - "requires": { + "dependencies": { "unist-util-is": "^3.0.0" } }, - "util-deprecate": { + "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, - "vfile": { + "node_modules/vfile": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz", "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==", - "requires": { + "dependencies": { "is-buffer": "^1.1.4", "replace-ext": "1.0.0", "unist-util-stringify-position": "^1.0.0", "vfile-message": "^1.0.0" } }, - "vfile-location": { + "node_modules/vfile-location": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz", - "integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==" + "integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "vfile-message": { + "node_modules/vfile-message": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz", "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", - "requires": { + "dependencies": { "unist-util-stringify-position": "^1.1.1" } }, - "vscode-oniguruma": { + "node_modules/vscode-oniguruma": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==" }, - "vscode-textmate": { + "node_modules/vscode-textmate": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==" }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "x-is-string": { + "node_modules/x-is-string": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=" }, - "xtend": { + "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } }, - "yallist": { + "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "zwitch": { + "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==" + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } } } } diff --git a/tools/doc/package.json b/tools/doc/package.json index 092c245b51e..f698dbb36f5 100644 --- a/tools/doc/package.json +++ b/tools/doc/package.json @@ -9,15 +9,13 @@ "ejs": "^3.1.6", "fast-levenshtein": "^3.0.0", "graphql": "^15.4.0", - "graphql-request": "^3.1.0", "js-yaml": "3.14.1", - "markdownlint-cli": "^0.34.0", "mdast": "3.0.0", "mdast-util-compact": "1.0.3", "mdast-util-heading-range": "2.1.3", + "mdast-util-to-string": "^4.0.0", "mdast-util-toc": "2.1.0", "mdast-zone": "3.0.4", - "moment": "2.29.2", "remark": "^9.0.0", "remark-frontmatter": "^1.2.0", "rxjs": "^6.6.6", diff --git a/tools/doc/remarkGraphQl.js b/tools/doc/remarkGraphQl.js deleted file mode 100644 index def5f96d79f..00000000000 --- a/tools/doc/remarkGraphQl.js +++ /dev/null @@ -1,23 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var fs = require("fs"); -var path = require("path"); -var graphql_1 = require("graphql"); -var remark = require("remark"); -var frontMatter = require("remark-frontmatter"); -var removePosInfo = require("unist-util-remove-position"); -var MQ = require("./mqDefs"); -var docFilePath = path.resolve('..', '..', 'docs', 'core', 'about.component.md'); -var docSrc = fs.readFileSync(docFilePath, 'utf8'); -var tree = remark() - .use(frontMatter, ['yaml']) - .parse(docSrc); -tree = removePosInfo(tree); -var schema = (0, graphql_1.buildSchema)(MQ.schema); -var root = { - document: function () { return new MQ.Root(tree); } -}; -var query = "\n {\n document {\n metadata(key: \"Status\")\n heading {\n link {\n text {\n value\n }\n }\n }\n paragraph {\n plaintext\n }\n }\n }\n"; -(0, graphql_1.graphql)(schema, query, root).then(function (response) { - console.log(JSON.stringify(response)); -}); diff --git a/tools/doc/remarkGraphQl.ts b/tools/doc/remarkGraphQl.ts deleted file mode 100644 index 9911a2df155..00000000000 --- a/tools/doc/remarkGraphQl.ts +++ /dev/null @@ -1,65 +0,0 @@ -/*! - * @license - * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved. - * - * 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. - */ - -import * as fs from 'fs'; -import * as path from 'path'; - -import { graphql, buildSchema } from 'graphql'; - -import * as remark from 'remark'; -import * as frontMatter from 'remark-frontmatter'; -import { MDAST } from 'mdast'; -import * as removePosInfo from 'unist-util-remove-position'; - -import * as MQ from './mqDefs'; - -const docFilePath = path.resolve('..', '..', 'docs', 'core', 'about.component.md'); -const docSrc = fs.readFileSync(docFilePath, 'utf8'); - -let tree: MDAST.Root = remark() - .use(frontMatter, ['yaml']) - .parse(docSrc); - -tree = removePosInfo(tree); - -const schema = buildSchema(MQ.schema); - -const root = { - document: () => new MQ.Root(tree) -}; - -const query = ` - { - document { - metadata(key: "Status") - heading { - link { - text { - value - } - } - } - paragraph { - plaintext - } - } - } -`; - -graphql(schema, query, root).then((response) => { - console.log(JSON.stringify(response)); -}); diff --git a/tools/doc/reviewChecker.js b/tools/doc/reviewChecker.js deleted file mode 100644 index 0c75e987b65..00000000000 --- a/tools/doc/reviewChecker.js +++ /dev/null @@ -1,109 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var path = require("path"); -var fs = require("fs"); -var process = require("process"); -var graphql_request_1 = require("graphql-request"); -var remark = require("remark"); -var frontMatter = require("remark-frontmatter"); -var yaml = require("js-yaml"); -var moment = require("moment"); -var rxjs_1 = require("rxjs"); -var libsearch = require("./libsearch"); -var stoplist_1 = require("./stoplist"); -var adf20StartDate = '2017-11-20'; -var commitWeight = 0.1; -var scoreTimeBase = 60; -var libFolder = 'lib'; -var stoplistFilePath = path.resolve('tools', 'doc', 'commitStoplist.json'); -var angFilePattern = /(component)|(directive)|(model)|(pipe)|(service)|(widget)/; -var srcData = {}; -var stoplist = new stoplist_1.Stoplist(stoplistFilePath); -var docsFolderPath = path.resolve('docs'); -var libFolders = ['core', 'content-services', 'extensions', 'insights', 'process-services', 'process-services-cloud']; -libsearch(srcData, path.resolve(libFolder)); -var authToken = process.env.graphAuthToken; -var client = new graphql_request_1.GraphQLClient('https://api.github.com/graphql', { - headers: { - Authorization: 'Bearer ' + authToken - } -}); -var query = "query commitHistory($path: String) {\n repository(name: \"alfresco-ng2-components\", owner: \"alfresco\") {\n ref(qualifiedName: \"development\") {\n target {\n ... on Commit {\n history(first: 15, path: $path) {\n nodes {\n pushedDate\n message\n }\n }\n }\n }\n }\n }\n}"; -var docFiles = getDocFilePaths(docsFolderPath); -var docNames = (0, rxjs_1.of)(docFiles); -console.log("'Name','Review date','Commits since review','Score'"); -docNames.subscribe(function (docs) { - docs.forEach(function (x) { - var key = path.basename(x, '.md'); - if (!srcData[key]) { - return; - } - var vars = { - 'path': 'lib/' + srcData[key].path - }; - client.request(query, vars).then(function (data) { - var nodes = data['repository'].ref.target.history.nodes; - var lastReviewDate = getDocReviewDate(x); // (key + ".md"); - var numUsefulCommits = extractCommitInfo(nodes, lastReviewDate, stoplist); - if (numUsefulCommits > 0) { - var dateString = lastReviewDate.format('YYYY-MM-DD'); - var score = priorityScore(lastReviewDate, numUsefulCommits).toPrecision(3); - console.log("'".concat(key, "','").concat(dateString, "','").concat(numUsefulCommits, "','").concat(score, "'")); - } - }); - }); -}); -function priorityScore(reviewDate, numCommits) { - var daysSinceReview = moment().diff(reviewDate, 'days'); - var commitScore = 2 + numCommits * commitWeight; - return Math.pow(commitScore, daysSinceReview / scoreTimeBase); -} -function getDocReviewDate(docFileName) { - var mdFilePath = path.resolve(docsFolderPath, docFileName); - var mdText = fs.readFileSync(mdFilePath); - var tree = remark().use(frontMatter, ['yaml']).parse(mdText); - var lastReviewDate = moment(adf20StartDate); - if (tree.children[0].type === 'yaml') { - var metadata = yaml.load(tree.children[0].value); - if (metadata['Last reviewed']) { - lastReviewDate = moment(metadata['Last reviewed']); - } - } - return lastReviewDate; -} -function extractCommitInfo(commitNodes, cutOffDate, stoplist) { - var numUsefulCommits = 0; - commitNodes.forEach(function (element) { - if (!stoplist.isRejected(element.message)) { - // const abbr = element.message.substr(0, 15); - var commitDate = moment(element.pushedDate); - if (commitDate.isAfter(cutOffDate)) { - numUsefulCommits++; - } - } - }); - return numUsefulCommits; -} -function getDocFilePaths(folderPath) { - var result = []; - libFolders.forEach(function (element) { - var libPath = path.resolve(folderPath, element); - addItemsRecursively(libPath, result); - }); - return result; - function addItemsRecursively(elementPath, resultList) { - var items = fs.readdirSync(elementPath); - items.forEach(function (item) { - var fullItemPath = path.resolve(elementPath, item); - var itemInfo = fs.statSync(fullItemPath); - if (itemInfo.isDirectory()) { - addItemsRecursively(fullItemPath, resultList); - } - else if ((path.extname(fullItemPath) === '.md') && - (item !== 'README.md') && - (item.match(angFilePattern))) { - resultList.push(fullItemPath); - } - }); - } -} diff --git a/tools/doc/reviewChecker.ts b/tools/doc/reviewChecker.ts deleted file mode 100644 index 3b8e03f6835..00000000000 --- a/tools/doc/reviewChecker.ts +++ /dev/null @@ -1,182 +0,0 @@ -/*! - * @license - * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved. - * - * 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. - */ - -import * as path from 'path'; -import * as fs from 'fs'; -import * as process from 'process'; - -import { GraphQLClient } from 'graphql-request'; -import * as remark from 'remark'; -import * as frontMatter from 'remark-frontmatter'; -import * as yaml from 'js-yaml'; -import * as moment from 'moment'; -import { of } from 'rxjs'; - -import * as libsearch from './libsearch'; -import { Stoplist } from './stoplist'; - -const adf20StartDate = '2017-11-20'; - -const commitWeight = 0.1; -const scoreTimeBase = 60; - -const libFolder = 'lib'; -const stoplistFilePath = path.resolve('tools', 'doc', 'commitStoplist.json'); - -const angFilePattern = /(component)|(directive)|(model)|(pipe)|(service)|(widget)/; - -const srcData = {}; -const stoplist = new Stoplist(stoplistFilePath); - -const docsFolderPath = path.resolve('docs'); - -const libFolders = ['core', 'content-services', 'extensions', 'insights', 'process-services', 'process-services-cloud']; - -libsearch(srcData, path.resolve(libFolder)); - -const authToken = process.env.graphAuthToken; - -const client = new GraphQLClient('https://api.github.com/graphql', { - headers: { - Authorization: 'Bearer ' + authToken - } -}); - -const query = `query commitHistory($path: String) { - repository(name: "alfresco-ng2-components", owner: "alfresco") { - ref(qualifiedName: "development") { - target { - ... on Commit { - history(first: 15, path: $path) { - nodes { - pushedDate - message - } - } - } - } - } - } -}`; - -const docFiles = getDocFilePaths(docsFolderPath); - -const docNames = of(docFiles); - -console.log('\'Name\',\'Review date\',\'Commits since review\',\'Score\''); - -docNames.subscribe(docs => { - - docs.forEach(x => { - const key = path.basename(x, '.md'); - - if (!srcData[key]) { - return; - } - - const vars = { - path: 'lib/' + srcData[key].path - }; - - client.request(query, vars).then(data => { - const nodes = data['repository'].ref.target.history.nodes; - - const lastReviewDate = getDocReviewDate(x); // (key + ".md"); - - const numUsefulCommits = extractCommitInfo(nodes, lastReviewDate, stoplist); - if (numUsefulCommits > 0) { - const dateString = lastReviewDate.format('YYYY-MM-DD'); - const score = priorityScore(lastReviewDate, numUsefulCommits).toPrecision(3); - - console.log(`'${key}','${dateString}','${numUsefulCommits}','${score}'`); - } - }); - }); -}); - -function priorityScore(reviewDate, numCommits) { - const daysSinceReview = moment().diff(reviewDate, 'days'); - const commitScore = 2 + numCommits * commitWeight; - return Math.pow(commitScore, daysSinceReview / scoreTimeBase); -} - -function getDocReviewDate(docFileName) { - const mdFilePath = path.resolve(docsFolderPath, docFileName); - - const mdText = fs.readFileSync(mdFilePath); - const tree = remark().use(frontMatter, ['yaml']).parse(mdText); - - let lastReviewDate = moment(adf20StartDate); - - if (tree.children[0].type === 'yaml') { - const metadata = yaml.load(tree.children[0].value); - - if (metadata['Last reviewed']) { - lastReviewDate = moment(metadata['Last reviewed']); - } - } - - return lastReviewDate; -} - -function extractCommitInfo(commitNodes, cutOffDate, stoplist) { - let numUsefulCommits = 0; - - commitNodes.forEach(element => { - if (!stoplist.isRejected(element.message)) { - // const abbr = element.message.substr(0, 15); - - const commitDate = moment(element.pushedDate); - - if (commitDate.isAfter(cutOffDate)) { - numUsefulCommits++; - } - } - }); - - return numUsefulCommits; -} - -function getDocFilePaths(folderPath) { - const result = []; - - libFolders.forEach(element => { - const libPath = path.resolve(folderPath, element); - addItemsRecursively(libPath, result); - }); - - return result; - - function addItemsRecursively(elementPath: string, resultList: string[]) { - const items = fs.readdirSync(elementPath); - - items.forEach(item => { - const fullItemPath = path.resolve(elementPath, item); - const itemInfo = fs.statSync(fullItemPath); - - if (itemInfo.isDirectory()) { - addItemsRecursively(fullItemPath, resultList); - } else if ( - (path.extname(fullItemPath) === '.md') && - (item !== 'README.md') && - (item.match(angFilePattern)) - ) { - resultList.push(fullItemPath); - } - }); - } -} diff --git a/tools/doc/stoplist.js b/tools/doc/stoplist.js deleted file mode 100644 index 1a117dc6ea0..00000000000 --- a/tools/doc/stoplist.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Stoplist = void 0; -var fs = require("fs"); -/* "Stoplist" of regular expressions to match against strings. */ -var Stoplist = /** @class */ (function () { - function Stoplist(slFilePath) { - var listExpressions = JSON.parse(fs.readFileSync(slFilePath, 'utf8')); - this.regexes = []; - if (listExpressions) { - for (var i = 0; i < listExpressions.length; i++) { - this.regexes.push(new RegExp(listExpressions[i])); - } - } - else { - this.regexes = []; - } - } - // Check if an item is covered by the stoplist and reject it if so. - Stoplist.prototype.isRejected = function (itemName) { - for (var i = 0; i < this.regexes.length; i++) { - if (this.regexes[i].test(itemName)) { - return true; - } - } - return false; - }; - return Stoplist; -}()); -exports.Stoplist = Stoplist; diff --git a/tools/doc/stoplist.ts b/tools/doc/stoplist.ts deleted file mode 100644 index 6aa4c1b8049..00000000000 --- a/tools/doc/stoplist.ts +++ /dev/null @@ -1,48 +0,0 @@ -/*! - * @license - * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved. - * - * 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. - */ - -import * as fs from 'fs'; - -/* "Stoplist" of regular expressions to match against strings. */ -export class Stoplist { - regexes: RegExp[]; - - constructor(slFilePath: string) { - const listExpressions = JSON.parse(fs.readFileSync(slFilePath, 'utf8')); - this.regexes = []; - - if (listExpressions) { - for (let i = 0; i < listExpressions.length; i++) { - this.regexes.push(new RegExp(listExpressions[i])); - } - } else { - this.regexes = []; - } - } - - // Check if an item is covered by the stoplist and reject it if so. - isRejected(itemName: string) { - for (let i = 0; i < this.regexes.length; i++) { - if (this.regexes[i].test(itemName)) { - return true; - } - } - - return false; - } - -} diff --git a/tools/doc/tools/seealso.js b/tools/doc/tools/seealso.js index d1ee7960b3c..17155cc6797 100644 --- a/tools/doc/tools/seealso.js +++ b/tools/doc/tools/seealso.js @@ -1,23 +1,19 @@ -var path = require("path"); - -var unist = require("../unistHelpers"); - -var seeAlsoHeading = "See Also"; +const path = require('path'); +const unist = require('../unistHelpers'); +const seeAlsoHeading = 'See Also'; module.exports = { - "initPhase": initPhase, - "readPhase": readPhase, - "aggPhase": aggPhase, - "updatePhase": updatePhase -} - + initPhase: initPhase, + readPhase: readPhase, + aggPhase: aggPhase, + updatePhase: updatePhase +}; function initPhase(aggData) { aggData.saGraph = {}; aggData.saUpdateGraph = {}; } - function readPhase(tree, pathname, aggData) { var saHeadingOffset = findSeeAlsoSection(tree); @@ -27,13 +23,9 @@ function readPhase(tree, pathname, aggData) { // Skip over non-list parts. var s; - for ( - s = saHeadingOffset; - (s < tree.children.length) && !unist.isListUnordered(tree.children[s]); - s++ - ); + for (s = saHeadingOffset; s < tree.children.length && !unist.isListUnordered(tree.children[s]); s++); - if ((s < tree.children.length) && unist.isListUnordered(tree.children[s])) { + if (s < tree.children.length && unist.isListUnordered(tree.children[s])) { var list = tree.children[s]; for (var i = 0; i < list.children.length; i++) { @@ -46,17 +38,15 @@ function readPhase(tree, pathname, aggData) { } } - aggData.saGraph[path.basename(pathname, ".md")] = saNode; + aggData.saGraph[path.basename(pathname, '.md')] = saNode; } - function aggPhase(aggData) { aggData.saUpdateGraph = tidyGraph(aggData.saGraph); } - function updatePhase(tree, pathname, aggData) { - var currNodeName = path.basename(pathname, ".md"); + var currNodeName = path.basename(pathname, '.md'); var currNodeArcs = aggData.saUpdateGraph[currNodeName]; if (currNodeArcs.length > 0) { @@ -64,7 +54,7 @@ function updatePhase(tree, pathname, aggData) { for (var i = 0; i < currNodeArcs.length; i++) { var linkText = graphKeyToLinkName(currNodeArcs[i]); - var linkTarget = currNodeArcs[i] + ".md"; + var linkTarget = currNodeArcs[i] + '.md'; var link = unist.makeLink(unist.makeText(linkText), linkTarget); saListItems.push(unist.makeListItem(link)); } @@ -75,11 +65,7 @@ function updatePhase(tree, pathname, aggData) { // Skip over non-list parts. var s; - for ( - s = saHeadingOffset; - (s < tree.children.length) && !unist.isListUnordered(tree.children[s]); - s++ - ); + for (s = saHeadingOffset; s < tree.children.length && !unist.isListUnordered(tree.children[s]); s++); // Push all elements of the items array as if they were separate elements. Array.prototype.push.apply(tree.children[s].children, saListItems); @@ -93,39 +79,30 @@ function updatePhase(tree, pathname, aggData) { return true; } - function graphKeyToLinkName(key) { - var mainSections = key.split("."); - mainSections[0] = tidyName(mainSections[0]); - return mainSections.join(" "); + var mainSections = key.split('.'); + mainSections[0] = tidyName(mainSections[0]); + return mainSections.join(' '); } // Convert an Angular-style name (eg, "card-view") into one with correct spaces and uppercase (eg, "Card view"). function tidyName(name) { - var result = name.replace(/-/g, " "); + var result = name.replace(/-/g, ' '); result = result.substr(0, 1).toUpperCase() + result.substr(1); return result; } - -function makeEmptySAList() { - var result = []; - - -} - - // Makes link symmetrical between items (ie, if A links to B but not the other way // around then it adds the missing link). function tidyGraph(graph) { var nodeNames = Object.keys(graph); var result = {}; - for (var n = 0; n < nodeNames.length; n++) { + for (let n = 0; n < nodeNames.length; n++) { result[nodeNames[n]] = []; } - for (var n = 0; n < nodeNames.length; n++) { + for (let n = 0; n < nodeNames.length; n++) { var currNodeName = nodeNames[n]; var currNodeArcs = graph[currNodeName]; @@ -146,29 +123,21 @@ function tidyGraph(graph) { return result; } - function findSeeAlsoSection(tree) { var i; for (i = 0; i < tree.children.length; i++) { var child = tree.children[i]; - if (unist.isHeading(child) && (child.children[0].value.toLowerCase() === seeAlsoHeading.toLowerCase())) - return i; + if (unist.isHeading(child) && child.children[0].value.toLowerCase() === seeAlsoHeading.toLowerCase()) return i; } return -1; } - function getItemLinkInfo(listItem) { var linkTarget = listItem.children[0].children[0].url; - if (linkTarget.startsWith("http:") || - linkTarget.startsWith("#") || - !linkTarget.endsWith(".md")) - return null; - else - return path.basename(linkTarget, ".md"); + if (linkTarget.startsWith('http:') || linkTarget.startsWith('#') || !linkTarget.endsWith('.md')) return null; + else return path.basename(linkTarget, '.md'); } - diff --git a/tools/doc/tools/toc.js b/tools/doc/tools/toc.js index dc5c6de08b0..aa891e47b0c 100644 --- a/tools/doc/tools/toc.js +++ b/tools/doc/tools/toc.js @@ -1,51 +1,43 @@ -var path = require("path"); -var fs = require("fs"); - -var remark = require("remark"); -//var tocGenerator = require("mdast-util-toc"); -var replaceSection = require("mdast-util-heading-range"); -var tostring = require("mdast-util-to-string"); - -var ejs = require("ejs"); - -var unist = require("../unistHelpers"); -var mdNav = require("../mdNav"); - -const contentsHeading = "Contents"; +const path = require('path'); +const fs = require('fs'); +const remark = require('remark'); +const replaceSection = require('mdast-util-heading-range'); +const { toString } = require('mdast-util-to-string'); +const ejs = require('ejs'); +const unist = require('../unistHelpers'); +const mdNav = require('../mdNav'); + +const contentsHeading = 'Contents'; const minHeadingsForToc = 8; const maxTocHeadingDepth = 3; -var templateFolder = path.resolve("tools", "doc", "templates"); +const templateFolder = path.resolve('tools', 'doc', 'templates'); module.exports = { - "processDocs": processDocs -} - + processDocs: processDocs +}; function processDocs(mdCache, aggData, errorMessages) { - var pathnames = Object.keys(mdCache); + const pathNames = Object.keys(mdCache); - pathnames.forEach(pathname => { + pathNames.forEach((pathname) => { updateFile(mdCache[pathname].mdOutTree, pathname, aggData, errorMessages); }); } - - // Find an existing Contents section or add a new empty one if needed. // Returns true if section is present/needed, false if not needed. function establishContentsSection(mdTree) { - var firstL2HeadingPos = -1; - var numTocHeadings = 0; - var foundContentsHeading = false; + let firstL2HeadingPos = -1; + let numTocHeadings = 0; + let foundContentsHeading = false; - for (var i = 0; i < mdTree.children.length; i++) { - var child = mdTree.children[i]; - - // Look through all headings. - if (child.type === "heading") { + for (let i = 0; i < mdTree.children.length; i++) { + const child = mdTree.children[i]; - if ((child.depth > 1) && (child.depth <= maxTocHeadingDepth)) { + // Look through all headings. + if (child.type === 'heading') { + if (child.depth > 1 && child.depth <= maxTocHeadingDepth) { numTocHeadings++; } @@ -57,7 +49,7 @@ function establishContentsSection(mdTree) { // If it is also a Contents heading then we're done. We don't include the // Contents heading itself within the ToC, so decrement the count for that. - if ((child.children[0].value === contentsHeading) && !foundContentsHeading) { + if (child.children[0].value === contentsHeading && !foundContentsHeading) { foundContentsHeading = true; numTocHeadings--; } @@ -69,42 +61,38 @@ function establishContentsSection(mdTree) { // If there are enough headings for a ToC to be necessary then // add one in the right place. if (!foundContentsHeading) { - var newContsHeading = unist.makeHeading(unist.makeText(contentsHeading), 2); + const newHeading = unist.makeHeading(unist.makeText(contentsHeading), 2); // If we found another L2 heading then add the Contents in just before it. - if (firstL2HeadingPos != -1) { - mdTree.children.splice(firstL2HeadingPos, 0, newContsHeading); + if (firstL2HeadingPos !== -1) { + mdTree.children.splice(firstL2HeadingPos, 0, newHeading); } else { // Otherwise, the unlikely situation where a ToC is required but there // are no L2 headings! Add it as the second element in the document. - mdTree.children.splice(1, 0, newContsHeading); + mdTree.children.splice(1, 0, newHeading); } } return numTocHeadings; } - - - - function updateFile(tree, pathname, _aggData, _errorMessages) { - if (path.basename(pathname, ".md").match(/README|versionIndex/)) { + if (path.basename(pathname, '.md').match(/README|versionIndex/)) { return false; } -// If we need a contents section then add one or update the existing one. - var numTocHeadings = establishContentsSection(tree); + // If we need a contents section then add one or update the existing one. + const numTocHeadings = establishContentsSection(tree); if (numTocHeadings >= minHeadingsForToc) { - var newToc = makeToc(tree); //tocGenerator(tree, {heading: contentsHeading, maxDepth: 3}); + const newToc = makeToc(tree); - replaceSection(tree, contentsHeading, function(before, oldSection, after) { + replaceSection(tree, contentsHeading, function (before, oldSection, after) { return [before, newToc, after]; }); } else { // Otherwise, we don't need one, so remove any existing one. - replaceSection(tree, contentsHeading, function(before, oldSection, after) { + replaceSection(tree, contentsHeading, function (before, oldSection, after) { return [after]; }); } @@ -112,44 +100,39 @@ function updateFile(tree, pathname, _aggData, _errorMessages) { return true; } - function makeToc(tree) { - var nav = new mdNav.MDNav(tree); + const nav = new mdNav.MDNav(tree); + const headings = nav.headings((h) => h.depth > 1 && h.depth <= maxTocHeadingDepth); + const context = { headings: [] }; - var headings = nav.headings(h => - (h.depth > 1) && - (h.depth <= maxTocHeadingDepth) //&& - //!((h.children[0].type === "text") && (h.children[0].value === "Contents")) - ); + headings.forEach((heading) => { + let linkTitle = ''; - var context = {headings: []}; - - headings.forEach(heading => { - var linkTitle = ""; - - if (!((heading.item.children.length > 0) && (heading.item.children[0].type === "text") && (heading.item.children[0].value === "Contents"))) { - linkTitle = tostring(heading.item).trim(); + if (!(heading.item.children.length > 0 && heading.item.children[0].type === 'text' && heading.item.children[0].value === 'Contents')) { + linkTitle = toString(heading.item).trim(); } - if (linkTitle !== "") { + if (linkTitle !== '') { context.headings.push({ - "level": heading.item.depth - 2, - "title": linkTitle, - //"anchor": "#" + linkTitle.toLowerCase().replace(/ /g, "-").replace(/[:;@\.,'"`$\(\)\/]/g ,"") - "anchor": "#" + linkTitle.toLowerCase() - .replace(/[^a-z0-9\s\-_]/g, '') - .replace(/\s/g ,"-") - .replace(/\-+$/, '') - }) - }; + level: heading.item.depth - 2, + title: linkTitle, + anchor: + '#' + + linkTitle + .toLowerCase() + .replace(/[^a-z0-9\s\-_]/g, '') + .replace(/\s/g, '-') + .replace(/-+$/, '') + }); + } }); - var templateName = path.resolve(templateFolder, "toc.ejs"); - var templateSource = fs.readFileSync(templateName, "utf8"); - var template = ejs.compile(templateSource); + const templateName = path.resolve(templateFolder, 'toc.ejs'); + const templateSource = fs.readFileSync(templateName, 'utf8'); + const template = ejs.compile(templateSource); - var mdText = template(context); - var newMD = remark().parse(mdText); + const mdText = template(context); + const newMD = remark().parse(mdText); return newMD.children[0]; -} \ No newline at end of file +} diff --git a/tools/doc/tools/tsInfo.ts b/tools/doc/tools/tsInfo.ts index 5bc697dfa89..395d9669536 100644 --- a/tools/doc/tools/tsInfo.ts +++ b/tools/doc/tools/tsInfo.ts @@ -31,10 +31,10 @@ let nameExceptions; export function processDocs(mdCache, aggData) { nameExceptions = aggData.config.typeNameExceptions; - const pathnames = Object.keys(mdCache); + const pathNames = Object.keys(mdCache); let internalErrors; - pathnames.forEach(pathname => { + pathNames.forEach((pathname) => { internalErrors = []; updateFile(mdCache[pathname].mdOutTree, pathname, aggData, internalErrors); @@ -47,7 +47,7 @@ export function processDocs(mdCache, aggData) { function showErrors(filename, errorMessages) { console.log(filename); - errorMessages.forEach(message => { + errorMessages.forEach((message) => { console.log(' ' + message); }); @@ -55,7 +55,6 @@ function showErrors(filename, errorMessages) { } function updateFile(tree, pathname, aggData, errorMessages) { - const className = ngNameToClassName(path.basename(pathname, '.md'), nameExceptions); const classTypeMatch = className.match(/component|directive|service/i); const compData = aggData.classInfo[className]; @@ -67,8 +66,6 @@ function updateFile(tree, pathname, aggData, errorMessages) { const inputMD = getPropDocsFromMD(tree, 'Properties', 3); const outputMD = getPropDocsFromMD(tree, 'Events', 2); - - updatePropDocsFromMD(compData, inputMD, outputMD, errorMessages); if (classType === 'service') { @@ -81,7 +78,7 @@ function updateFile(tree, pathname, aggData, errorMessages) { const template = ejs.compile(templateSource); let mdText = template(compData); - mdText = mdText.replace(/^ +\|/mg, '|'); + mdText = mdText.replace(/^ +\|/gm, '|'); const newSection = remark().parse(mdText.trim()).children; @@ -91,7 +88,7 @@ function updateFile(tree, pathname, aggData, errorMessages) { return newSection; }); - compData.errors.forEach(err => { + compData.errors.forEach((err) => { errorMessages.push(err); }); } @@ -104,37 +101,31 @@ function getPropDocsFromMD(tree, sectionHeading, docsColumn) { const nav = new MDNav(tree); - const classMemHeading = nav - .heading(h => { - return (h.children[0].type === 'text') && (h.children[0].value === 'Class members'); - }); + const classMemHeading = nav.heading((h) => { + return h.children[0].type === 'text' && h.children[0].value === 'Class members'; + }); const propsTable = classMemHeading - .heading(h => { - return (h.children[0].type === 'text') && (h.children[0].value === sectionHeading); - }).table(); + .heading((h) => { + return h.children[0].type === 'text' && h.children[0].value === sectionHeading; + }) + .table(); - let propTableRow = propsTable.childNav - .tableRow(() => true, 1).childNav; + let propTableRow = propsTable.childNav.tableRow(() => true, 1).childNav; let i = 1; while (!propTableRow.empty) { - const propName = propTableRow - .tableCell().childNav - .text().item.value; + const propName = propTableRow.tableCell().childNav.text().item.value; - const propDocText = propTableRow - .tableCell(() => true, docsColumn).childNav - .text().item; + const propDocText = propTableRow.tableCell(() => true, docsColumn).childNav.text().item; if (propDocText) { result[propName] = propDocText.value; } i++; - propTableRow = propsTable.childNav - .tableRow(() => true, i).childNav; + propTableRow = propsTable.childNav.tableRow(() => true, i).childNav; } return result; @@ -145,25 +136,22 @@ function getMethodDocsFromMD(tree) { const nav = new MDNav(tree); - const classMemHeading = nav - .heading(h => { - return (h.children[0].type === 'text') && (h.children[0].value === 'Class members'); - }); + const classMemHeading = nav.heading((h) => { + return h.children[0].type === 'text' && h.children[0].value === 'Class members'; + }); const methListItems = classMemHeading - .heading(h => { - return (h.children[0].type === 'text') && (h.children[0].value === 'Methods'); - }).list().childNav; + .heading((h) => { + return h.children[0].type === 'text' && h.children[0].value === 'Methods'; + }) + .list().childNav; - let methItem = methListItems - .listItem(); + let methItem = methListItems.listItem(); let i = 0; while (!methItem.empty) { - const methNameSection = methItem.childNav - .paragraph().childNav - .strong().childNav; + const methNameSection = methItem.childNav.paragraph().childNav.strong().childNav; let methName = ''; @@ -171,23 +159,19 @@ function getMethodDocsFromMD(tree) { if (!methNameSection.empty) { methName = methNameSection.text().item.value; - const methDoc = methItem.childNav - .paragraph().childNav - .html() - .text().value; + const methDoc = methItem.childNav.paragraph().childNav.html().text().value; const params = getMDMethodParams(methItem); result[methName] = { - 'docText': methDoc.replace(/^\n/, ''), - 'params': params + docText: methDoc.replace(/^\n/, ''), + params: params }; } i++; - methItem = methListItems - .listItem(l => true, i); + methItem = methListItems.listItem((l) => true, i); } return result; @@ -198,31 +182,24 @@ function getMDMethodParams(methItem: MDNav) { const paramList = methItem.childNav.list().childNav; - const paramListItems = paramList - .listItems(); + const paramListItems = paramList.listItems(); - paramListItems.forEach(paramListItem => { - const paramNameNode = paramListItem.childNav - .paragraph().childNav - .emph().childNav; + paramListItems.forEach((paramListItem) => { + const paramNameNode = paramListItem.childNav.paragraph().childNav.emph().childNav; let paramName; if (!paramNameNode.empty) { paramName = paramNameNode.text().item.value.replace(/:/, ''); } else { - let item = paramListItem.childNav.paragraph().childNav - .strong().childNav.text(); + let item = paramListItem.childNav.paragraph().childNav.strong().childNav.text(); if (paramName) { paramName = item.value; } - } - const paramDoc = paramListItem.childNav - .paragraph().childNav - .text(t => true, 1).value; // item.value; + const paramDoc = paramListItem.childNav.paragraph().childNav.text((t) => true, 1).value; // item.value; result[paramName] = paramDoc.replace(/^[ -]+/, ''); }); @@ -231,7 +208,7 @@ function getMDMethodParams(methItem: MDNav) { } function updatePropDocsFromMD(comp: ComponentInfo, inputDocs, outputDocs, errorMessages) { - comp.properties.forEach(prop => { + comp.properties.forEach((prop) => { let propMDDoc: string; if (prop.isInput) { @@ -249,7 +226,7 @@ function updatePropDocsFromMD(comp: ComponentInfo, inputDocs, outputDocs, errorM } function updateMethodDocsFromMD(comp: ComponentInfo, methodDocs, errorMessages) { - comp.methods.forEach(meth => { + comp.methods.forEach((meth) => { const currMethMD = methodDocs[meth.name]; // If JSDocs are empty but MD docs aren't then the Markdown is presumably more up-to-date. @@ -258,7 +235,7 @@ function updateMethodDocsFromMD(comp: ComponentInfo, methodDocs, errorMessages) errorMessages.push(`Warning: empty JSDocs for method sig "${meth.name}" may need sync with the .md file.`); } - meth.params.forEach(param => { + meth.params.forEach((param) => { if (!param.docText && currMethMD && currMethMD.params[param.name]) { param.docText = currMethMD.params[param.name]; errorMessages.push(`Warning: empty JSDocs for parameter "${param.name} (${meth.name})" may need sync with the .md file.`); diff --git a/tools/doc/tools/tutorialIndex.ts b/tools/doc/tools/tutorialIndex.ts index 3e2c710ddd3..ec40ecdc64b 100644 --- a/tools/doc/tools/tutorialIndex.ts +++ b/tools/doc/tools/tutorialIndex.ts @@ -40,13 +40,13 @@ function aggPhase() { const template = ejs.compile(templateSource); let mdText = template(indexDocData); - mdText = mdText.replace(/^ +\|/mg, '|'); + mdText = mdText.replace(/^ +\|/gm, '|'); - const newSection = remark().use(frontMatter, ['yaml']).data('settings', {paddedTable: false, gfm: false}).parse(mdText.trim()).children; + const newSection = remark().use(frontMatter, ['yaml']).data('settings', { paddedTable: false, gfm: false }).parse(mdText.trim()).children; const tutIndexFile = path.resolve(tutFolder, 'README.md'); const tutIndexText = fs.readFileSync(tutIndexFile, 'utf8'); - const tutIndexMD = remark().use(frontMatter, ['yaml']).data('settings', {paddedTable: false, gfm: false}).parse(tutIndexText); + const tutIndexMD = remark().use(frontMatter, ['yaml']).data('settings', { paddedTable: false, gfm: false }).parse(tutIndexText); replaceSection(tutIndexMD, 'Tutorials', (before, section, after) => { newSection.unshift(before); @@ -54,7 +54,10 @@ function aggPhase() { return newSection; }); - fs.writeFileSync(tutIndexFile, remark().use(frontMatter, {type: 'yaml', fence: '---'}).data('settings', {paddedTable: false, gfm: false}).stringify(tutIndexMD)); + fs.writeFileSync( + tutIndexFile, + remark().use(frontMatter, { type: 'yaml', fence: '---' }).data('settings', { paddedTable: false, gfm: false }).stringify(tutIndexMD) + ); } function getIndexDocData() { @@ -62,7 +65,7 @@ function getIndexDocData() { const summaryArray = JSON.parse(fs.readFileSync(indexFile, 'utf8')); let indexArray = []; - summaryArray.forEach(element => { + summaryArray.forEach((element) => { if (element['title'] === 'Tutorials') { indexArray = element['children']; } @@ -72,7 +75,7 @@ function getIndexDocData() { tuts: [] }; - indexArray.forEach(element => { + indexArray.forEach((element) => { const tutData = { link: element['file'] }; const tutFile = path.resolve(tutFolder, element['file']); @@ -89,21 +92,16 @@ function getIndexDocData() { const briefDesc = getFirstParagraph(tutMD); - const briefDescText = remark() - .use(frontMatter, {type: 'yaml', fence: '---'}) - .data('settings', {paddedTable: false, gfm: false}) - .stringify(briefDesc); - - tutData['briefDesc'] = briefDescText; + tutData['briefDesc'] = remark() + .use(frontMatter, { type: 'yaml', fence: '---' }) + .data('settings', { paddedTable: false, gfm: false }) + .stringify(briefDesc); const title = getFirstHeading(tutMD); - - const titleText = remark() - .use(frontMatter, {type: 'yaml', fence: '---'}) - .data('settings', {paddedTable: false, gfm: false}) - .stringify(title.children[0]); - - tutData['title'] = titleText; + tutData['title'] = remark() + .use(frontMatter, { type: 'yaml', fence: '---' }) + .data('settings', { paddedTable: false, gfm: false }) + .stringify(title.children[0]); result.tuts.push(tutData); }); @@ -122,11 +120,10 @@ function getDocMetadata(tree) { function getFirstParagraph(tree) { let s = 0; - for (; (s < tree.children.length) && !unist.isParagraph(tree.children[s]); s++) {} + for (; s < tree.children.length && !unist.isParagraph(tree.children[s]); s++) {} if (s < tree.children.length) { return tree.children[s]; - } else { return null; } @@ -135,11 +132,10 @@ function getFirstParagraph(tree) { function getFirstHeading(tree) { let s = 0; - for (; (s < tree.children.length) && !unist.isHeading(tree.children[s]); s++) {} + for (; s < tree.children.length && !unist.isHeading(tree.children[s]); s++) {} if (s < tree.children.length) { return tree.children[s]; - } else { return null; } diff --git a/tools/doc/tools/versionIndex.js b/tools/doc/tools/versionIndex.js index d838a7231b0..ce0d8979aa0 100644 --- a/tools/doc/tools/versionIndex.js +++ b/tools/doc/tools/versionIndex.js @@ -1,30 +1,20 @@ -var fs = require("fs"); -var path = require("path"); -var yaml = require("js-yaml"); - -var remark = require("remark"); -var stringify = require("remark-stringify"); -var zone = require("mdast-zone"); -var frontMatter = require("remark-frontmatter"); - -var ejs = require("ejs"); - -var unist = require("../unistHelpers"); -var ngHelpers = require("../ngHelpers"); - +const fs = require('fs'); +const path = require('path'); +const yaml = require('js-yaml'); +const remark = require('remark'); +const zone = require('mdast-zone'); +const frontMatter = require('remark-frontmatter'); +const ejs = require('ejs'); +const ngHelpers = require('../ngHelpers'); module.exports = { - "processDocs": processDocs + processDocs: processDocs }; - -var docsFolderPath = path.resolve("docs"); -var histFilePath = path.resolve(docsFolderPath, "versionIndex.md"); - -var initialVersion = "v2.0.0"; - -var templateFolder = path.resolve("tools", "doc", "templates"); - +const docsFolderPath = path.resolve('docs'); +const histFilePath = path.resolve(docsFolderPath, 'versionIndex.md'); +const initialVersion = 'v2.0.0'; +const templateFolder = path.resolve('tools', 'doc', 'templates'); function processDocs(mdCache, aggData) { initPhase(aggData); @@ -32,34 +22,29 @@ function processDocs(mdCache, aggData) { aggPhase(aggData); } - function initPhase(aggData) { - aggData.versions = { "v2.0.0":[] }; + aggData.versions = { 'v2.0.0': [] }; } - function readPhase(mdCache, aggData) { - var pathnames = Object.keys(mdCache); + const pathNames = Object.keys(mdCache); - pathnames.forEach(pathname => { + pathNames.forEach((pathname) => { getFileData(mdCache[pathname].mdInTree, pathname, aggData); }); } - function getFileData(tree, pathname, aggData) { - var compName = pathname; - var angNameRegex = /([a-zA-Z0-9\-]+)\.((component)|(directive)|(model)|(pipe)|(service)|(widget)|(dialog))/; + const compName = pathname; + const angNameRegex = /([a-zA-Z0-9\-]+)\.((component)|(directive)|(model)|(pipe)|(service)|(widget)|(dialog))/; - if (!compName.match(angNameRegex)) - return; + if (!compName.match(angNameRegex)) return; - if (compName.match(/boilerplate/)) - return; + if (compName.match(/boilerplate/)) return; - if (tree && tree.children[0] && tree.children[0].type == "yaml") { - var metadata = yaml.load(tree.children[0].value); - var version = metadata["Added"]; + if (tree && tree.children[0] && tree.children[0].type === 'yaml') { + const metadata = yaml.load(tree.children[0].value); + const version = metadata['Added']; if (version) { if (aggData.versions[version]) { @@ -76,40 +61,43 @@ function getFileData(tree, pathname, aggData) { } function aggPhase(aggData) { - var histFileText = fs.readFileSync(histFilePath, "utf8"); - var histFileTree = remark().use(frontMatter, ["yaml"]).data("settings", {paddedTable: false, gfm: false}).parse(histFileText); - - var keys = Object.keys(aggData.versions); + const histFileText = fs.readFileSync(histFilePath, 'utf8'); + const histFileTree = remark() + .use(frontMatter, ['yaml']) + .data('settings', { + paddedTable: false, + gfm: false + }) + .parse(histFileText); + + const keys = Object.keys(aggData.versions); keys.sort((a, b) => { - if (a > b) - return -1; - else if (b > a) - return 1; - else - return 0; + if (a > b) return -1; + else if (b > a) return 1; + else return 0; }); - var templateName = path.resolve(templateFolder, "versIndex.ejs"); - var templateSource = fs.readFileSync(templateName, "utf8"); - var template = ejs.compile(templateSource); + const templateName = path.resolve(templateFolder, 'versIndex.ejs'); + const templateSource = fs.readFileSync(templateName, 'utf8'); + const template = ejs.compile(templateSource); - for (var i = 0; i < keys.length; i++) { - var version = keys[i]; - var versionItems = aggData.versions[version]; + for (let i = 0; i < keys.length; i++) { + const version = keys[i]; + const versionItems = aggData.versions[version]; versionItems.sort((a, b) => { - var aa = path.basename(a, ".md"); - var bb = path.basename(b, ".md"); + const aa = path.basename(a, '.md'); + const bb = path.basename(b, '.md'); return aa.localeCompare(bb); }); - var versionTemplateData = {items: []}; + const versionTemplateData = { items: [] }; - for (var v = 0; v < versionItems.length; v++) { - var displayName = ngHelpers.ngNameToDisplayName(path.basename(versionItems[v], ".md")); - var pageLink = versionItems[v];// + ".md"; + for (let v = 0; v < versionItems.length; v++) { + const displayName = ngHelpers.ngNameToDisplayName(path.basename(versionItems[v], '.md')); + let pageLink = versionItems[v]; // + ".md"; pageLink = pageLink.replace(/\\/g, '/'); - pageLink = pageLink.substr(pageLink.indexOf("docs") + 5); + pageLink = pageLink.substr(pageLink.indexOf('docs') + 5); versionTemplateData.items.push({ title: displayName, @@ -117,12 +105,18 @@ function aggPhase(aggData) { }); } - var mdText = template(versionTemplateData); - mdText = mdText.replace(/^ +-/mg, "-"); + let mdText = template(versionTemplateData); + mdText = mdText.replace(/^ +-/gm, '-'); - var newSection = remark().use(frontMatter, ["yaml"]).data("settings", {paddedTable: false, gfm: false}).parse(mdText.trim()).children; + const newSection = remark() + .use(frontMatter, ['yaml']) + .data('settings', { + paddedTable: false, + gfm: false + }) + .parse(mdText.trim()).children; - var versSectionName = version.replace(/\./g, "");; + const versSectionName = version.replace(/\./g, ''); zone(histFileTree, versSectionName, (startComment, oldSection, endComment) => { newSection.unshift(startComment); @@ -131,5 +125,8 @@ function aggPhase(aggData) { }); } - fs.writeFileSync(histFilePath, remark().use(frontMatter, {type: 'yaml', fence: '---'}).data("settings", {paddedTable: false, gfm: false}).stringify(histFileTree)); + fs.writeFileSync( + histFilePath, + remark().use(frontMatter, { type: 'yaml', fence: '---' }).data('settings', { paddedTable: false, gfm: false }).stringify(histFileTree) + ); } diff --git a/tools/doc/tsconfig.json b/tools/doc/tsconfig.json index 3b9662b9a16..26a4d639810 100644 --- a/tools/doc/tsconfig.json +++ b/tools/doc/tsconfig.json @@ -11,7 +11,6 @@ "lib": ["es2018", "dom"] }, "files": [ - "remarkGraphQl.ts", "mqDefs.ts", "tools/fileChecker.ts", "tools/gqIndex.ts", @@ -19,7 +18,6 @@ "tools/sourceLinker.ts", "tools/tsInfo.ts", "tools/tutorialIndex.ts", - "tools/typeLinker.ts", - "reviewChecker.ts" + "tools/typeLinker.ts" ] } diff --git a/tools/doc/unistHelpers.js b/tools/doc/unistHelpers.js index 06b6a32406e..bfc75155a0d 100644 --- a/tools/doc/unistHelpers.js +++ b/tools/doc/unistHelpers.js @@ -1,141 +1,82 @@ module.exports = { - - makeRoot: function (children) { - return { - "type": "root", - "children": children - }; - }, - makeText: function (textVal) { return { - "type": "text", - "value": textVal + type: 'text', + value: textVal }; }, - makeEmphasis: function (content) { return { - "type": "emphasis", - "children": content + type: 'emphasis', + children: content }; }, - - makeStrong: function (content) { - return { - "type": "strong", - "children": content - }; - }, - makeHeading: function (caption, depth) { return { - "type": "heading", - "depth": depth, - "children": [caption] + type: 'heading', + depth: depth, + children: [caption] }; }, - makeLink: function (caption, url, title = null) { return { - "type": "link", - "title": title, - "url": url, - "children": [ caption ] + type: 'link', + title: title, + url: url, + children: [caption] }; }, - makeListItem: function (itemValue) { return { - "type": "listItem", - "loose": false, - "children": [ itemValue ] + type: 'listItem', + loose: false, + children: [itemValue] }; }, - makeListUnordered: function (itemsArray) { return { - "type": "list", - "ordered": false, - "children": itemsArray, - "loose": false + type: 'list', + ordered: false, + children: itemsArray, + loose: false }; }, - - makeParagraph: function (itemsArray) { - return { - "type": "paragraph", - "children": itemsArray - } - }, - makeTable: function (colAlignArray, rowArray) { return { - "type": "table", - "align": colAlignArray, - "children": rowArray + type: 'table', + align: colAlignArray, + children: rowArray }; }, - makeTableRow: function (cellArray) { return { - "type": "tableRow", - "children": cellArray + type: 'tableRow', + children: cellArray }; }, - makeTableCell: function (content) { return { - "type": "tableCell", - "children": content + type: 'tableCell', + children: content }; }, - - makeInlineCode: function (codeText) { - return { - "type": "inlineCode", - "value": codeText - } - }, - - makeHTML: function (htmlText) { - return { - "type": "html", - "value": htmlText - }; - }, - - makeBreak: function () { - return { - "type": "break" - } - }, - makeImage: function (url, alt) { return { - "type": "image", - "url": url, - "alt": alt - } + type: 'image', + url: url, + alt: alt + }; }, - isHeading: function (node) { - return node.type === "heading"; + return node.type === 'heading'; }, - isListUnordered: function (node) { - return (node.type === "list") && !node.ordered; + return node.type === 'list' && !node.ordered; }, - isParagraph: function (node) { - return node.type === "paragraph"; - }, - - isText: function (node) { - return node.type === "text"; + return node.type === 'paragraph'; }, - isLink: function (node) { - return node.type === "inlineCode"; + return node.type === 'inlineCode'; } -} \ No newline at end of file +};