mirror of
https://github.com/withastro/astro.git
synced 2024-12-16 21:46:22 -05:00
wip
This commit is contained in:
parent
137b08efc2
commit
2c0a1ca9f0
2 changed files with 173 additions and 131 deletions
|
@ -1,20 +1,51 @@
|
|||
/** @file Runs all smoke tests and may add extra smoke-test dependencies to `yarn.lock`. */
|
||||
/** @todo migrate these to use the independent docs repository at https://github.com/withastro/docs */
|
||||
|
||||
// @ts-check
|
||||
|
||||
import Zip from 'adm-zip';
|
||||
import fs from 'fs';
|
||||
import { execa } from 'execa';
|
||||
import { polyfill } from '@astropub/webapi';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
import { promises as fs } from 'node:fs';
|
||||
import { fileURLToPath } from 'url';
|
||||
import path from 'path';
|
||||
|
||||
polyfill(globalThis, { exclude: 'window document' });
|
||||
// NOTE: Only needed for Windows, due to a Turbo bug.
|
||||
// Once Turbo works on Windows, we can remove this script
|
||||
// and update our CI to run through Turbo.
|
||||
|
||||
/* Configuration
|
||||
/* -------------------------------------------------------------------------- */
|
||||
const astroBinLocation = new URL('../../node_modules/.bin/astro', import.meta.url);
|
||||
|
||||
/** URL directory containing this current script. */
|
||||
const scriptDir = new URL('./', import.meta.url);
|
||||
/** Returns the parsed package.json of the given directory. */
|
||||
const readDirectoryPackage = async (/** @type {URL} */ dir) => JSON.parse(await fs.readFileSync(new URL('package.json', dir + '/'), 'utf-8'));
|
||||
|
||||
/** Returns upon completion of writing a package.json to the given directory. */
|
||||
const writeDirectoryPackage = async (/** @type {URL} */ dir, /** @type {any} */ data) =>
|
||||
await fs.writeFileSync(new URL('package.json', dir + '/'), JSON.stringify(data, null, ' ') + '\n');
|
||||
|
||||
|
||||
export default async function run() {
|
||||
const examplesUrl = new URL('../../examples/', import.meta.url);
|
||||
const examplesToTest = fs
|
||||
.readdirSync(examplesUrl)
|
||||
.map((filename) => new URL(filename, examplesUrl))
|
||||
.filter((fileUrl) => fs.statSync(fileUrl).isDirectory());
|
||||
const allProjectsToTest = [/*...examplesToTest,*/ await gitCloneExample('www', `git@github.com:withastro/astro.build.git`), await gitCloneExample('docs', `git@github.com:withastro/docs.git`), ];
|
||||
|
||||
console.log('');
|
||||
for (const projectToTest of allProjectsToTest) {
|
||||
const filePath = fileURLToPath(projectToTest);
|
||||
console.log(' 🤖 Testing', filePath, '\n');
|
||||
try {
|
||||
if (filePath.includes('examples-smoke')) {
|
||||
await execa('node', [fileURLToPath(astroBinLocation), 'build'], { cwd: fileURLToPath(projectToTest), stdout: 'inherit', stderr: 'inherit' });
|
||||
} else {
|
||||
await execa('yarn', ['build'], { cwd: fileURLToPath(projectToTest), stdout: 'inherit', stderr: 'inherit' });
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
process.exit(1);
|
||||
}
|
||||
console.log('\n 🤖 Test complete.');
|
||||
}
|
||||
}
|
||||
|
||||
run();
|
||||
|
||||
/** URL directory containing the entire project. */
|
||||
const rootDir = new URL('../../', import.meta.url);
|
||||
|
@ -25,123 +56,32 @@ const exampleDir = new URL('examples/', rootDir);
|
|||
/** URL directory containing the Astro package. */
|
||||
const astroDir = new URL('packages/astro/', rootDir);
|
||||
|
||||
/** GitHub configuration for the external "docs" Astro project. */
|
||||
const docGithubConfig = { org: 'withastro', name: 'docs', branch: 'main' };
|
||||
async function gitCloneExample(id, cloneUrl) {
|
||||
const smokeExamplesUrl = new URL('../../examples-smoke/', import.meta.url);
|
||||
const clonedRepoUrl = new URL(`../../examples-smoke/${id}`, import.meta.url);
|
||||
console.log('link:'+fileURLToPath(new URL('../../packages/astro', import.meta.url)));
|
||||
// try {
|
||||
// fs.statSync(clonedRepoUrl);
|
||||
// } catch (err) {
|
||||
// await execa('git', ['clone', cloneUrl, id], { cwd: fileURLToPath(smokeExamplesUrl), stdout: 'inherit', stderr: 'inherit' });
|
||||
// }
|
||||
// await execa('git', ['fetch', 'origin'], { cwd: fileURLToPath(smokeExamplesUrl), stdout: 'inherit', stderr: 'inherit' });
|
||||
// await execa('git', ['checkout', 'main'], { cwd: fileURLToPath(smokeExamplesUrl), stdout: 'inherit', stderr: 'inherit' });
|
||||
// await execa('git', ['reset', 'origin/main', '--hard'], { cwd: fileURLToPath(smokeExamplesUrl), stdout: 'inherit', stderr: 'inherit' });
|
||||
|
||||
/** GitHub configuration for the external "astro.build" Astro project. */
|
||||
const wwwGithubConfig = { org: 'withastro', name: 'astro.build', branch: 'main' };
|
||||
// const astroPackage = await readDirectoryPackage(astroDir);
|
||||
// const githubPackage = await readDirectoryPackage(clonedRepoUrl);
|
||||
// if ('astro' in Object(githubPackage.dependencies)) {
|
||||
// githubPackage.dependencies['astro'] = astroPackage.version;
|
||||
// }
|
||||
// if ('astro' in Object(githubPackage.devDependencies)) {
|
||||
// githubPackage.devDependencies['astro'] = astroPackage.version;
|
||||
// }
|
||||
// if ('astro' in Object(githubPackage.peerDependencies)) {
|
||||
// githubPackage.peerDependencies['astro'] = astroPackage.version;
|
||||
// }
|
||||
// await writeDirectoryPackage(clonedRepoUrl, githubPackage);
|
||||
|
||||
/* Application
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
/** Runs all smoke tests. */
|
||||
async function run() {
|
||||
console.log('');
|
||||
|
||||
const directories = await getChildDirectories(exampleDir);
|
||||
|
||||
// TODO Skipped the docs-main test since it is failing at the moment.
|
||||
directories.push(/*await downloadGithubZip(docGithubConfig), */ await downloadGithubZip(wwwGithubConfig));
|
||||
|
||||
console.log('🤖', 'Preparing', 'yarn');
|
||||
|
||||
await execa('yarn', [], { cwd: fileURLToPath(rootDir), stdout: 'inherit', stderr: 'inherit' });
|
||||
|
||||
for (const directory of directories) {
|
||||
console.log('🤖', 'Testing', directory.pathname.split('/').at(-1));
|
||||
|
||||
try {
|
||||
await execa('yarn', ['build'], { cwd: fileURLToPath(directory), stdout: 'inherit', stderr: 'inherit' });
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log();
|
||||
}
|
||||
}
|
||||
|
||||
/* Functionality
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
/** Returns the URL to the ZIP of the given GitHub project. */
|
||||
const getGithubZipURL = (/** @type {GithubOpts} */ opts) => `https://github.com/${opts.org}/${opts.name}/archive/refs/heads/${opts.branch}.zip`;
|
||||
|
||||
/** Returns the awaited ZIP Buffer from the given GitHub project. */
|
||||
const fetchGithubZip = (/** @type {GithubOpts} */ opts) =>
|
||||
fetch(getGithubZipURL(opts))
|
||||
.then((response) => response.arrayBuffer())
|
||||
.then((arrayBuffer) => Buffer.from(arrayBuffer));
|
||||
|
||||
/** Downloads a ZIP from the given GitHub project. */
|
||||
const downloadGithubZip = async (/** @type {GithubOpts} */ opts) => {
|
||||
/** Expected directory when the zip is downloaded. */
|
||||
const githubDir = new URL(`${opts.name}-${opts.branch}`, scriptDir);
|
||||
|
||||
/** Whether the expected directory is already available */
|
||||
const hasGithubDir = await fs.stat(githubDir).then(
|
||||
(stats) => stats.isDirectory(),
|
||||
() => false
|
||||
);
|
||||
|
||||
if (!hasGithubDir) {
|
||||
console.log('🤖', 'Downloading', `${opts.org}/${opts.name}#${opts.branch}`);
|
||||
|
||||
const buffer = await fetchGithubZip(opts);
|
||||
|
||||
console.log('🤖', 'Extracting', `${opts.org}/${opts.name}#${opts.branch}`);
|
||||
|
||||
new Zip(buffer).extractAllTo(fileURLToPath(scriptDir), true);
|
||||
|
||||
console.log('🤖', 'Preparing', `${opts.org}/${opts.name}#${opts.branch}`);
|
||||
|
||||
const astroPackage = await readDirectoryPackage(astroDir);
|
||||
|
||||
const githubPackage = await readDirectoryPackage(githubDir);
|
||||
|
||||
if ('astro' in Object(githubPackage.dependencies)) {
|
||||
githubPackage.dependencies['astro'] = astroPackage.version;
|
||||
}
|
||||
|
||||
if ('astro' in Object(githubPackage.devDependencies)) {
|
||||
githubPackage.devDependencies['astro'] = astroPackage.version;
|
||||
}
|
||||
|
||||
if ('astro' in Object(githubPackage.peerDependencies)) {
|
||||
githubPackage.peerDependencies['astro'] = astroPackage.version;
|
||||
}
|
||||
|
||||
await writeDirectoryPackage(githubDir, githubPackage);
|
||||
}
|
||||
|
||||
return githubDir;
|
||||
};
|
||||
|
||||
/** Returns the parsed package.json of the given directory. */
|
||||
const readDirectoryPackage = async (/** @type {URL} */ dir) => JSON.parse(await fs.readFile(new URL('package.json', dir + '/'), 'utf-8'));
|
||||
|
||||
/** Returns upon completion of writing a package.json to the given directory. */
|
||||
const writeDirectoryPackage = async (/** @type {URL} */ dir, /** @type {any} */ data) =>
|
||||
await fs.writeFile(new URL('package.json', dir + '/'), JSON.stringify(data, null, ' ') + '\n');
|
||||
|
||||
/** Returns all child directories of the given directory. */
|
||||
const getChildDirectories = async (/** @type {URL} */ dir) => {
|
||||
/** @type {URL[]} */
|
||||
const dirs = [];
|
||||
|
||||
for await (const dirent of await fs.opendir(dir)) {
|
||||
if (dirent.isDirectory()) {
|
||||
dirs.push(new URL(dirent.name, dir));
|
||||
}
|
||||
}
|
||||
|
||||
return dirs;
|
||||
};
|
||||
|
||||
/* Execution
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
run();
|
||||
|
||||
/** @typedef {{ org: string, name: string, branch: string }} GithubOpts */
|
||||
// await execa('yarn', [], { cwd: fileURLToPath(clonedRepoUrl), stdout: 'inherit', stderr: 'inherit' });
|
||||
return clonedRepoUrl;
|
||||
}
|
104
yarn.lock
104
yarn.lock
|
@ -1666,6 +1666,11 @@
|
|||
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
|
||||
integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
|
||||
|
||||
"@trysound/sax@0.2.0":
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
|
||||
integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
|
||||
|
||||
"@ts-morph/common@~0.11.1":
|
||||
version "0.11.1"
|
||||
resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.11.1.tgz#281af2a0642b19354d8aa07a0d50dfdb4aa8164e"
|
||||
|
@ -2460,6 +2465,14 @@ ast-types@^0.13.2:
|
|||
dependencies:
|
||||
tslib "^2.0.1"
|
||||
|
||||
astro-icon@^0.5.3:
|
||||
version "0.5.3"
|
||||
resolved "https://registry.yarnpkg.com/astro-icon/-/astro-icon-0.5.3.tgz#095b6be506a2a021ef7e6ce0cce83e2699d46862"
|
||||
integrity sha512-Tt+w6OyuE4NlvP1LjT09L8JD23+j9U2LYqEOtPDr7gDJXAZxa4mwz7pOJo9RNhdRx1SXh2aS8KK9v7D2N5d0aw==
|
||||
dependencies:
|
||||
node-fetch "^3.1.0"
|
||||
svgo "^2.8.0"
|
||||
|
||||
async@0.9.x:
|
||||
version "0.9.2"
|
||||
resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
|
||||
|
@ -2919,6 +2932,11 @@ commander@^2.20.0:
|
|||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
|
||||
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
|
||||
|
||||
commander@^7.2.0:
|
||||
version "7.2.0"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
|
||||
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
|
||||
|
||||
common-ancestor-path@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7"
|
||||
|
@ -3014,6 +3032,14 @@ css-selector-parser@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/css-selector-parser/-/css-selector-parser-1.4.1.tgz#03f9cb8a81c3e5ab2c51684557d5aaf6d2569759"
|
||||
integrity sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==
|
||||
|
||||
css-tree@^1.1.2, css-tree@^1.1.3:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
|
||||
integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
|
||||
dependencies:
|
||||
mdn-data "2.0.14"
|
||||
source-map "^0.6.1"
|
||||
|
||||
css-what@^5.0.1, css-what@^5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe"
|
||||
|
@ -3024,6 +3050,13 @@ cssesc@^3.0.0:
|
|||
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
|
||||
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
|
||||
|
||||
csso@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
|
||||
integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
|
||||
dependencies:
|
||||
css-tree "^1.1.2"
|
||||
|
||||
csstype@^2.6.8:
|
||||
version "2.6.19"
|
||||
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.19.tgz#feeb5aae89020bb389e1f63669a5ed490e391caa"
|
||||
|
@ -3069,6 +3102,11 @@ dataloader@^1.4.0:
|
|||
resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-1.4.0.tgz#bca11d867f5d3f1b9ed9f737bd15970c65dff5c8"
|
||||
integrity sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==
|
||||
|
||||
date-fns@^2.28.0:
|
||||
version "2.28.0"
|
||||
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.28.0.tgz#9570d656f5fc13143e50c975a3b6bbeb46cd08b2"
|
||||
integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==
|
||||
|
||||
debug@2.6.9:
|
||||
version "2.6.9"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
||||
|
@ -5572,6 +5610,11 @@ mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0:
|
|||
resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz#56c506d065fbf769515235e577b5a261552d56e9"
|
||||
integrity sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==
|
||||
|
||||
mdn-data@2.0.14:
|
||||
version "2.0.14"
|
||||
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
|
||||
integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
|
||||
|
||||
mdurl@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
|
||||
|
@ -6149,7 +6192,7 @@ node-domexception@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5"
|
||||
integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==
|
||||
|
||||
node-fetch@*, node-fetch@^3.0.0:
|
||||
node-fetch@*, node-fetch@^3.0.0, node-fetch@^3.1.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.0.tgz#59390db4e489184fa35d4b74caf5510e8dfbaf3b"
|
||||
integrity sha512-8xeimMwMItMw8hRrOl3C9/xzU49HV/yE6ORew/l+dxWimO5A4Ra8ld2rerlJvc/O7et5Z1zrWsPX43v1QBjCxw==
|
||||
|
@ -6728,6 +6771,14 @@ quick-lru@^5.1.1:
|
|||
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
|
||||
integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
|
||||
|
||||
quicklink@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/quicklink/-/quicklink-2.2.0.tgz#011f47d4e5f67622d9d49f02c74c913852b01f8b"
|
||||
integrity sha512-tfleXCZvxDppyZFqSDsbkS5aKemtA0ealvguxjp3tzXHMo+pzxrWtOh+6dnYK/mXzEYM1QiNhGttcS/W/T3JXA==
|
||||
dependencies:
|
||||
route-manifest "^1.0.0"
|
||||
throttles "^1.0.0"
|
||||
|
||||
randombytes@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
|
||||
|
@ -6885,6 +6936,11 @@ regexp.prototype.flags@^1.3.1:
|
|||
call-bind "^1.0.2"
|
||||
define-properties "^1.1.3"
|
||||
|
||||
regexparam@^1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/regexparam/-/regexparam-1.3.0.tgz#2fe42c93e32a40eff6235d635e0ffa344b92965f"
|
||||
integrity sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g==
|
||||
|
||||
regexpp@^3.2.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
|
||||
|
@ -6965,6 +7021,17 @@ rehype-toc@^3.0.2:
|
|||
dependencies:
|
||||
"@jsdevtools/rehype-toc" "3.0.2"
|
||||
|
||||
remark-autolink-headings@^7.0.1:
|
||||
version "7.0.1"
|
||||
resolved "https://registry.yarnpkg.com/remark-autolink-headings/-/remark-autolink-headings-7.0.1.tgz#1d8528ea8783b828200d13c055ec2d5f2cae5060"
|
||||
integrity sha512-a1BIwoJ0cSnX+sPp5u3AFULBFWHGYBt57Fo4a+7IlGiJOQxs8b7uYAE5Iu26Ocl7Y5cvinZy3FaGVruLCKg6vA==
|
||||
dependencies:
|
||||
"@types/hast" "^2.0.0"
|
||||
"@types/mdast" "^3.0.0"
|
||||
extend "^3.0.0"
|
||||
unified "^10.0.0"
|
||||
unist-util-visit "^4.0.0"
|
||||
|
||||
remark-code-titles@^0.1.2:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/remark-code-titles/-/remark-code-titles-0.1.2.tgz#ae41b47c517eae4084c761a59a60df5f0bd54aa8"
|
||||
|
@ -7128,6 +7195,13 @@ rollup@^2.43.1, rollup@^2.59.0, rollup@^2.60.0, rollup@^2.64.0:
|
|||
optionalDependencies:
|
||||
fsevents "~2.3.2"
|
||||
|
||||
route-manifest@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/route-manifest/-/route-manifest-1.0.0.tgz#0155513f3cd158c18827413845ab1a8ec2ad15e1"
|
||||
integrity sha512-qn0xJr4nnF4caj0erOLLAHYiNyzqhzpUbgDQcEHrmBoG4sWCDLnIXLH7VccNSxe9cWgbP2Kw/OjME+eH3CeRSA==
|
||||
dependencies:
|
||||
regexparam "^1.3.0"
|
||||
|
||||
run-parallel@^1.1.9:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
|
||||
|
@ -7384,6 +7458,11 @@ smartwrap@^1.2.3:
|
|||
wcwidth "^1.0.1"
|
||||
yargs "^15.1.0"
|
||||
|
||||
smartypants@^0.1.6:
|
||||
version "0.1.6"
|
||||
resolved "https://registry.yarnpkg.com/smartypants/-/smartypants-0.1.6.tgz#976d23dcccae83d56da93d59db1ba76838c976f7"
|
||||
integrity sha512-zGXh+Q6Y3OPTLM5x2HxAIkEAj4ZcePftmIOdIYozv2T+m03Sp5R4YppczKuo6IdnSMc99U+Wgvy8Mil0eeep7g==
|
||||
|
||||
socks-proxy-agent@5, socks-proxy-agent@^5.0.0:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz#032fb583048a29ebffec2e6a73fca0761f48177e"
|
||||
|
@ -7523,6 +7602,11 @@ srcset-parse@^1.1.0:
|
|||
resolved "https://registry.yarnpkg.com/srcset-parse/-/srcset-parse-1.1.0.tgz#73f787f38b73ede2c5af775e0a3465579488122b"
|
||||
integrity sha512-JWp4cG2eybkvKA1QUHGoNK6JDEYcOnSuhzNGjZuYUPqXreDl/VkkvP2sZW7Rmh+icuCttrR9ccb2WPIazyM/Cw==
|
||||
|
||||
stable@^0.1.8:
|
||||
version "0.1.8"
|
||||
resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
|
||||
integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
|
||||
|
||||
"statuses@>= 1.5.0 < 2", statuses@~1.5.0:
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
|
||||
|
@ -7763,6 +7847,19 @@ svelte@^3.46.4:
|
|||
resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.46.4.tgz#0c46bc4a3e20a2617a1b7dc43a722f9d6c084a38"
|
||||
integrity sha512-qKJzw6DpA33CIa+C/rGp4AUdSfii0DOTCzj/2YpSKKayw5WGSS624Et9L1nU1k2OVRS9vaENQXp2CVZNU+xvIg==
|
||||
|
||||
svgo@^2.8.0:
|
||||
version "2.8.0"
|
||||
resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24"
|
||||
integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==
|
||||
dependencies:
|
||||
"@trysound/sax" "0.2.0"
|
||||
commander "^7.2.0"
|
||||
css-select "^4.1.3"
|
||||
css-tree "^1.1.3"
|
||||
csso "^4.2.0"
|
||||
picocolors "^1.0.0"
|
||||
stable "^0.1.8"
|
||||
|
||||
tailwindcss@^3.0.5:
|
||||
version "3.0.18"
|
||||
resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.0.18.tgz#ea4825e6496d77dc21877b6b61c7cc56cda3add5"
|
||||
|
@ -7856,6 +7953,11 @@ text-table@^0.2.0:
|
|||
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
|
||||
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
|
||||
|
||||
throttles@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/throttles/-/throttles-1.0.1.tgz#3abdcde28df88d5eddf7e57cad8da35bd403ddd0"
|
||||
integrity sha512-fab7Xg+zELr9KOv4fkaBoe/b3L0GMGLd0IBSCn16GoE/Qx6/OfCr1eGNyEcDU2pUA79qQfZ8kPQWlRuok4YwTw==
|
||||
|
||||
tiny-glob@^0.2.8:
|
||||
version "0.2.9"
|
||||
resolved "https://registry.yarnpkg.com/tiny-glob/-/tiny-glob-0.2.9.tgz#2212d441ac17928033b110f8b3640683129d31e2"
|
||||
|
|
Loading…
Reference in a new issue