Compare commits
1 commit
main
...
sqlite-tes
Author | SHA1 | Date | |
---|---|---|---|
|
89d90f60e8 |
5 changed files with 448 additions and 232 deletions
5
.changeset/wise-carrots-invite.md
Normal file
5
.changeset/wise-carrots-invite.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
'astro': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Reduce memory usage in build
|
|
@ -99,6 +99,8 @@
|
||||||
"shorthash": "^0.0.2",
|
"shorthash": "^0.0.2",
|
||||||
"slash": "^4.0.0",
|
"slash": "^4.0.0",
|
||||||
"sourcemap-codec": "^1.4.8",
|
"sourcemap-codec": "^1.4.8",
|
||||||
|
"sqlite": "^4.0.23",
|
||||||
|
"sqlite3": "^5.0.2",
|
||||||
"srcset-parse": "^1.1.0",
|
"srcset-parse": "^1.1.0",
|
||||||
"string-width": "^5.0.0",
|
"string-width": "^5.0.0",
|
||||||
"strip-ansi": "^7.0.1",
|
"strip-ansi": "^7.0.1",
|
||||||
|
|
65
packages/astro/src/vite-plugin-build-html/html-cache.ts
Normal file
65
packages/astro/src/vite-plugin-build-html/html-cache.ts
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
import fs from 'fs';
|
||||||
|
import { open, Database } from 'sqlite';
|
||||||
|
import sqlite3 from 'sqlite3';
|
||||||
|
import { fileURLToPath } from 'url';
|
||||||
|
|
||||||
|
export class HTMLCache {
|
||||||
|
db: Database | undefined;
|
||||||
|
idMap = new Map<string, number>();
|
||||||
|
filename: string;
|
||||||
|
table = 'html_cache';
|
||||||
|
|
||||||
|
constructor({ projectRoot, dist }: { projectRoot: URL; dist: URL }) {
|
||||||
|
const cacheDir = new URL('./node_modules/.astro/', projectRoot);
|
||||||
|
fs.mkdirSync(cacheDir, { recursive: true });
|
||||||
|
|
||||||
|
// note: the ext is needed so multiple builds can run in parallel for the same source
|
||||||
|
// the only chance of conflict would be if multiple builds are building to the same dist
|
||||||
|
// dir, which would have problems anyway
|
||||||
|
const ext = dist.href.replace(projectRoot.href, '').replace(/\/$/, '').replace(/\//g, '-');
|
||||||
|
const filePath = new URL(`html-cache-${ext}.sqlite`, cacheDir);
|
||||||
|
this.filename = fileURLToPath(filePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
async set(pathname: string, html: string): Promise<void> {
|
||||||
|
if (!this.db) await this.init();
|
||||||
|
const db = this.db as Database;
|
||||||
|
|
||||||
|
try {
|
||||||
|
// update
|
||||||
|
if (this.idMap.has(pathname)) {
|
||||||
|
const id = this.idMap.get(pathname) as number;
|
||||||
|
await db.run(`UPDATE ${this.table} SET html = $html WHERE id = $id LIMIT 1`, { $id: id, $html: html });
|
||||||
|
}
|
||||||
|
// create
|
||||||
|
else {
|
||||||
|
const result = await db.run(`INSERT INTO ${this.table} (html) VALUES ($html)`, { $html: html });
|
||||||
|
this.idMap.set(pathname, result.lastID as number);
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
throw new Error(`[@astrojs/vite-plugin-build-html] trouble caching HTML for ${pathname}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async get(pathname: string): Promise<string | undefined> {
|
||||||
|
if (!this.db) await this.init();
|
||||||
|
const db = this.db as Database;
|
||||||
|
const id = this.idMap.get(pathname);
|
||||||
|
if (!id) return undefined;
|
||||||
|
|
||||||
|
const result = await db.get(`SELECT html FROM ${this.table} WHERE id = ${id} LIMIT 1`);
|
||||||
|
return result ? result.html : undefined; // note: unescaping double quotes not necessary on retrieval
|
||||||
|
}
|
||||||
|
|
||||||
|
async teardown() {
|
||||||
|
if (this.db) await this.db.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private async init() {
|
||||||
|
if (!this.db) {
|
||||||
|
this.db = await open({ filename: this.filename, driver: sqlite3.Database });
|
||||||
|
await this.db.exec(`CREATE TABLE IF NOT EXISTS ${this.table} (id INTEGER PRIMARY KEY AUTOINCREMENT, html TEXT)`);
|
||||||
|
await this.db.exec(`DELETE FROM ${this.table}`); // if db exists from previous run, we can re-use it but must clear it out first
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,6 +10,7 @@ import { promises as fs } from 'fs';
|
||||||
import { getAttribute, hasAttribute, insertBefore, remove, createScript, createElement, setAttribute } from '@web/parse5-utils';
|
import { getAttribute, hasAttribute, insertBefore, remove, createScript, createElement, setAttribute } from '@web/parse5-utils';
|
||||||
import { addRollupInput } from './add-rollup-input.js';
|
import { addRollupInput } from './add-rollup-input.js';
|
||||||
import { findAssets, findExternalScripts, findInlineScripts, findInlineStyles, getTextContent, getAttributes } from './extract-assets.js';
|
import { findAssets, findExternalScripts, findInlineScripts, findInlineStyles, getTextContent, getAttributes } from './extract-assets.js';
|
||||||
|
import { HTMLCache } from './html-cache.js';
|
||||||
import { isBuildableImage, isBuildableLink, isHoistedScript, isInSrcDirectory, hasSrcSet } from './util.js';
|
import { isBuildableImage, isBuildableLink, isHoistedScript, isInSrcDirectory, hasSrcSet } from './util.js';
|
||||||
import { render as ssrRender } from '../core/ssr/index.js';
|
import { render as ssrRender } from '../core/ssr/index.js';
|
||||||
import { getAstroStyleId, getAstroPageStyleId } from '../vite-plugin-build-css/index.js';
|
import { getAstroStyleId, getAstroPageStyleId } from '../vite-plugin-build-css/index.js';
|
||||||
|
@ -46,9 +47,6 @@ export function rollupPluginAstroBuildHTML(options: PluginOptions): VitePlugin {
|
||||||
// The web path of the src folter
|
// The web path of the src folter
|
||||||
const srcRootWeb = srcRoot.substr(astroConfig.projectRoot.pathname.length - 1);
|
const srcRootWeb = srcRoot.substr(astroConfig.projectRoot.pathname.length - 1);
|
||||||
|
|
||||||
// A map of pages to rendered HTML
|
|
||||||
const renderedPageMap = new Map<string, string>();
|
|
||||||
|
|
||||||
//
|
//
|
||||||
const astroScriptMap = new Map<string, string>();
|
const astroScriptMap = new Map<string, string>();
|
||||||
const astroPageMap = new Map<string, string>();
|
const astroPageMap = new Map<string, string>();
|
||||||
|
@ -56,6 +54,11 @@ export function rollupPluginAstroBuildHTML(options: PluginOptions): VitePlugin {
|
||||||
|
|
||||||
const cssChunkMap = new Map<string, string[]>();
|
const cssChunkMap = new Map<string, string[]>();
|
||||||
|
|
||||||
|
const htmlCache = new HTMLCache({
|
||||||
|
projectRoot: astroConfig.projectRoot,
|
||||||
|
dist: astroConfig.dist,
|
||||||
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
name: PLUGIN_NAME,
|
name: PLUGIN_NAME,
|
||||||
|
|
||||||
|
@ -73,104 +76,106 @@ export function rollupPluginAstroBuildHTML(options: PluginOptions): VitePlugin {
|
||||||
jsInput.add(path);
|
jsInput.add(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const pathname of pageData.paths) {
|
await Promise.all(
|
||||||
pageNames.push(pathname.replace(/\/?$/, '/index.html').replace(/^\//, ''));
|
pageData.paths.map(async (pathname) => {
|
||||||
const id = ASTRO_PAGE_PREFIX + pathname;
|
pageNames.push(pathname.replace(/\/?$/, '/index.html').replace(/^\//, ''));
|
||||||
const html = await ssrRender(renderers, mod, {
|
const id = ASTRO_PAGE_PREFIX + pathname;
|
||||||
astroConfig,
|
const html = await ssrRender(renderers, mod, {
|
||||||
filePath: new URL(`./${component}`, astroConfig.projectRoot),
|
astroConfig,
|
||||||
logging,
|
filePath: new URL(`./${component}`, astroConfig.projectRoot),
|
||||||
mode: 'production',
|
logging,
|
||||||
origin,
|
mode: 'production',
|
||||||
pathname,
|
origin,
|
||||||
route: pageData.route,
|
pathname,
|
||||||
routeCache,
|
route: pageData.route,
|
||||||
viteServer,
|
routeCache,
|
||||||
});
|
viteServer,
|
||||||
renderedPageMap.set(id, html);
|
});
|
||||||
|
await htmlCache.set(id, html);
|
||||||
|
|
||||||
const document = parse5.parse(html, {
|
const document = parse5.parse(html, {
|
||||||
sourceCodeLocationInfo: true,
|
sourceCodeLocationInfo: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
const frontEndImports = [];
|
const frontEndImports = [];
|
||||||
for (const script of findInlineScripts(document)) {
|
for (const script of findInlineScripts(document)) {
|
||||||
const astroScript = getAttribute(script, 'astro-script');
|
|
||||||
if (astroScript) {
|
|
||||||
const js = getTextContent(script);
|
|
||||||
const scriptId = ASTRO_SCRIPT_PREFIX + astroScript;
|
|
||||||
frontEndImports.push(scriptId);
|
|
||||||
astroScriptMap.set(scriptId, js);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (const script of findExternalScripts(document)) {
|
|
||||||
if (isHoistedScript(script)) {
|
|
||||||
const astroScript = getAttribute(script, 'astro-script');
|
const astroScript = getAttribute(script, 'astro-script');
|
||||||
const src = getAttribute(script, 'src');
|
|
||||||
if (astroScript) {
|
if (astroScript) {
|
||||||
const js = `import '${src}';`;
|
const js = getTextContent(script);
|
||||||
const scriptId = ASTRO_SCRIPT_PREFIX + astroScript;
|
const scriptId = ASTRO_SCRIPT_PREFIX + astroScript;
|
||||||
frontEndImports.push(scriptId);
|
frontEndImports.push(scriptId);
|
||||||
astroScriptMap.set(scriptId, js);
|
astroScriptMap.set(scriptId, js);
|
||||||
}
|
}
|
||||||
} else if (isInSrcDirectory(script, 'src', srcRoot, srcRootWeb)) {
|
|
||||||
const src = getAttribute(script, 'src');
|
|
||||||
if (src) jsInput.add(src);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let styles = '';
|
|
||||||
for (const node of findInlineStyles(document)) {
|
|
||||||
if (hasAttribute(node, 'astro-style')) {
|
|
||||||
styles += getTextContent(node);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const assetImports = [];
|
|
||||||
for (let node of findAssets(document)) {
|
|
||||||
if (isBuildableLink(node, srcRoot, srcRootWeb)) {
|
|
||||||
const href = getAttribute(node, 'href')!;
|
|
||||||
assetImports.push(href);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isBuildableImage(node, srcRoot, srcRootWeb)) {
|
for (const script of findExternalScripts(document)) {
|
||||||
const src = getAttribute(node, 'src');
|
if (isHoistedScript(script)) {
|
||||||
if (src?.startsWith(srcRoot) && !astroAssetMap.has(src)) {
|
const astroScript = getAttribute(script, 'astro-script');
|
||||||
astroAssetMap.set(src, fs.readFile(new URL(`file://${src}`)));
|
const src = getAttribute(script, 'src');
|
||||||
|
if (astroScript) {
|
||||||
|
const js = `import '${src}';`;
|
||||||
|
const scriptId = ASTRO_SCRIPT_PREFIX + astroScript;
|
||||||
|
frontEndImports.push(scriptId);
|
||||||
|
astroScriptMap.set(scriptId, js);
|
||||||
|
}
|
||||||
|
} else if (isInSrcDirectory(script, 'src', srcRoot, srcRootWeb)) {
|
||||||
|
const src = getAttribute(script, 'src');
|
||||||
|
if (src) jsInput.add(src);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hasSrcSet(node)) {
|
let styles = '';
|
||||||
const candidates = matchSrcset(getAttribute(node, 'srcset')!);
|
for (const node of findInlineStyles(document)) {
|
||||||
for (const { url } of candidates) {
|
if (hasAttribute(node, 'astro-style')) {
|
||||||
if (url.startsWith(srcRoot) && !astroAssetMap.has(url)) {
|
styles += getTextContent(node);
|
||||||
astroAssetMap.set(url, fs.readFile(new URL(`file://${url}`)));
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const assetImports = [];
|
||||||
|
for (let node of findAssets(document)) {
|
||||||
|
if (isBuildableLink(node, srcRoot, srcRootWeb)) {
|
||||||
|
const href = getAttribute(node, 'href')!;
|
||||||
|
assetImports.push(href);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isBuildableImage(node, srcRoot, srcRootWeb)) {
|
||||||
|
const src = getAttribute(node, 'src');
|
||||||
|
if (src?.startsWith(srcRoot) && !astroAssetMap.has(src)) {
|
||||||
|
astroAssetMap.set(src, fs.readFile(new URL(`file://${src}`)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hasSrcSet(node)) {
|
||||||
|
const candidates = matchSrcset(getAttribute(node, 'srcset')!);
|
||||||
|
for (const { url } of candidates) {
|
||||||
|
if (url.startsWith(srcRoot) && !astroAssetMap.has(url)) {
|
||||||
|
astroAssetMap.set(url, fs.readFile(new URL(`file://${url}`)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (styles) {
|
if (styles) {
|
||||||
const styleId = getAstroStyleId(pathname);
|
const styleId = getAstroStyleId(pathname);
|
||||||
astroStyleMap.set(styleId, styles);
|
astroStyleMap.set(styleId, styles);
|
||||||
// Put this at the front of imports
|
// Put this at the front of imports
|
||||||
assetImports.unshift(styleId);
|
assetImports.unshift(styleId);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (frontEndImports.length) {
|
if (frontEndImports.length) {
|
||||||
htmlInput.add(id);
|
htmlInput.add(id);
|
||||||
const jsSource = frontEndImports.map((sid) => `import '${sid}';`).join('\n');
|
const jsSource = frontEndImports.map((sid) => `import '${sid}';`).join('\n');
|
||||||
astroPageMap.set(id, jsSource);
|
astroPageMap.set(id, jsSource);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (assetImports.length) {
|
if (assetImports.length) {
|
||||||
const pageStyleId = getAstroPageStyleId(pathname);
|
const pageStyleId = getAstroPageStyleId(pathname);
|
||||||
const jsSource = assetImports.map((sid) => `import '${sid}';`).join('\n');
|
const jsSource = assetImports.map((sid) => `import '${sid}';`).join('\n');
|
||||||
astroPageStyleMap.set(pageStyleId, jsSource);
|
astroPageStyleMap.set(pageStyleId, jsSource);
|
||||||
assetInput.add(pageStyleId);
|
assetInput.add(pageStyleId);
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const allInputs = new Set([...jsInput, ...htmlInput, ...assetInput]);
|
const allInputs = new Set([...jsInput, ...htmlInput, ...assetInput]);
|
||||||
|
@ -298,159 +303,165 @@ export function rollupPluginAstroBuildHTML(options: PluginOptions): VitePlugin {
|
||||||
return added;
|
return added;
|
||||||
};
|
};
|
||||||
|
|
||||||
for (const [id, html] of renderedPageMap) {
|
await Promise.all(
|
||||||
const pathname = id.substr(ASTRO_PAGE_PREFIX.length);
|
[...htmlCache.idMap.keys()].map(async (id) => {
|
||||||
const document = parse5.parse(html, {
|
const html = await htmlCache.get(id);
|
||||||
sourceCodeLocationInfo: true,
|
if (!html) throw new Error(`Could not get HTML for ${id}`);
|
||||||
});
|
const pathname = id.substr(ASTRO_PAGE_PREFIX.length);
|
||||||
|
const document = parse5.parse(html, {
|
||||||
|
sourceCodeLocationInfo: true,
|
||||||
|
});
|
||||||
|
|
||||||
// This is the module for the page-level bundle which includes
|
// This is the module for the page-level bundle which includes
|
||||||
// hoisted scripts and hydrated components.
|
// hoisted scripts and hydrated components.
|
||||||
const pageAssetId = facadeIdMap.get(id);
|
const pageAssetId = facadeIdMap.get(id);
|
||||||
const bundlePath = '/' + pageAssetId;
|
const bundlePath = '/' + pageAssetId;
|
||||||
|
|
||||||
// Update scripts
|
// Update scripts
|
||||||
let pageBundleAdded = false;
|
let pageBundleAdded = false;
|
||||||
|
|
||||||
// Update inline scripts. These could be hydrated component scripts or hoisted inline scripts
|
// Update inline scripts. These could be hydrated component scripts or hoisted inline scripts
|
||||||
for (let script of findInlineScripts(document)) {
|
for (let script of findInlineScripts(document)) {
|
||||||
if (getAttribute(script, 'astro-script') && typeof pageAssetId === 'string') {
|
if (getAttribute(script, 'astro-script') && typeof pageAssetId === 'string') {
|
||||||
if (!pageBundleAdded) {
|
if (!pageBundleAdded) {
|
||||||
pageBundleAdded = true;
|
pageBundleAdded = true;
|
||||||
const relPath = npath.posix.relative(pathname, bundlePath);
|
const relPath = npath.posix.relative(pathname, bundlePath);
|
||||||
insertBefore(
|
insertBefore(
|
||||||
script.parentNode,
|
script.parentNode,
|
||||||
createScript({
|
createScript({
|
||||||
type: 'module',
|
type: 'module',
|
||||||
src: relPath,
|
src: relPath,
|
||||||
}),
|
}),
|
||||||
script
|
script
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
remove(script);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update external scripts. These could be hoisted or in the src folder.
|
|
||||||
for (let script of findExternalScripts(document)) {
|
|
||||||
if (getAttribute(script, 'astro-script') && typeof pageAssetId === 'string') {
|
|
||||||
if (!pageBundleAdded) {
|
|
||||||
pageBundleAdded = true;
|
|
||||||
const relPath = npath.posix.relative(pathname, bundlePath);
|
|
||||||
insertBefore(
|
|
||||||
script.parentNode,
|
|
||||||
createScript({
|
|
||||||
type: 'module',
|
|
||||||
src: relPath,
|
|
||||||
}),
|
|
||||||
script
|
|
||||||
);
|
|
||||||
}
|
|
||||||
remove(script);
|
|
||||||
} else if (isInSrcDirectory(script, 'src', srcRoot, srcRootWeb)) {
|
|
||||||
const src = getAttribute(script, 'src');
|
|
||||||
// On windows the facadeId doesn't start with / but does not Unix :/
|
|
||||||
if (src && (facadeIdMap.has(src) || facadeIdMap.has(src.substr(1)))) {
|
|
||||||
const assetRootPath = '/' + (facadeIdMap.get(src) || facadeIdMap.get(src.substr(1)));
|
|
||||||
const relPath = npath.posix.relative(pathname, assetRootPath);
|
|
||||||
const attrs = getAttributes(script);
|
|
||||||
insertBefore(
|
|
||||||
script.parentNode,
|
|
||||||
createScript({
|
|
||||||
...attrs,
|
|
||||||
src: relPath,
|
|
||||||
}),
|
|
||||||
script
|
|
||||||
);
|
|
||||||
remove(script);
|
remove(script);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
const styleId = getAstroPageStyleId(pathname);
|
// Update external scripts. These could be hoisted or in the src folder.
|
||||||
let pageCSSAdded = false;
|
for (let script of findExternalScripts(document)) {
|
||||||
for (const node of findAssets(document)) {
|
if (getAttribute(script, 'astro-script') && typeof pageAssetId === 'string') {
|
||||||
if (isBuildableLink(node, srcRoot, srcRootWeb)) {
|
if (!pageBundleAdded) {
|
||||||
const rel = getAttribute(node, 'rel');
|
pageBundleAdded = true;
|
||||||
switch (rel) {
|
const relPath = npath.posix.relative(pathname, bundlePath);
|
||||||
case 'stylesheet': {
|
insertBefore(
|
||||||
if (!pageCSSAdded) {
|
script.parentNode,
|
||||||
const attrs = getAttributes(node);
|
createScript({
|
||||||
delete attrs['data-astro-injected'];
|
type: 'module',
|
||||||
pageCSSAdded = appendStyleChunksBefore(node, pathname, cssChunkMap.get(styleId), attrs);
|
src: relPath,
|
||||||
}
|
}),
|
||||||
remove(node);
|
script
|
||||||
break;
|
);
|
||||||
}
|
}
|
||||||
case 'preload': {
|
remove(script);
|
||||||
if (getAttribute(node, 'as') === 'style') {
|
} else if (isInSrcDirectory(script, 'src', srcRoot, srcRootWeb)) {
|
||||||
const attrs = getAttributes(node);
|
const src = getAttribute(script, 'src');
|
||||||
appendStyleChunksBefore(node, pathname, cssChunkMap.get(styleId), attrs);
|
// On windows the facadeId doesn't start with / but does not Unix :/
|
||||||
|
if (src && (facadeIdMap.has(src) || facadeIdMap.has(src.substr(1)))) {
|
||||||
|
const assetRootPath = '/' + (facadeIdMap.get(src) || facadeIdMap.get(src.substr(1)));
|
||||||
|
const relPath = npath.posix.relative(pathname, assetRootPath);
|
||||||
|
const attrs = getAttributes(script);
|
||||||
|
insertBefore(
|
||||||
|
script.parentNode,
|
||||||
|
createScript({
|
||||||
|
...attrs,
|
||||||
|
src: relPath,
|
||||||
|
}),
|
||||||
|
script
|
||||||
|
);
|
||||||
|
remove(script);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const styleId = getAstroPageStyleId(pathname);
|
||||||
|
let pageCSSAdded = false;
|
||||||
|
for (const node of findAssets(document)) {
|
||||||
|
if (isBuildableLink(node, srcRoot, srcRootWeb)) {
|
||||||
|
const rel = getAttribute(node, 'rel');
|
||||||
|
switch (rel) {
|
||||||
|
case 'stylesheet': {
|
||||||
|
if (!pageCSSAdded) {
|
||||||
|
const attrs = getAttributes(node);
|
||||||
|
delete attrs['data-astro-injected'];
|
||||||
|
pageCSSAdded = appendStyleChunksBefore(node, pathname, cssChunkMap.get(styleId), attrs);
|
||||||
|
}
|
||||||
remove(node);
|
remove(node);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'preload': {
|
||||||
|
if (getAttribute(node, 'as') === 'style') {
|
||||||
|
const attrs = getAttributes(node);
|
||||||
|
appendStyleChunksBefore(node, pathname, cssChunkMap.get(styleId), attrs);
|
||||||
|
remove(node);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (isBuildableImage(node, srcRoot, srcRootWeb)) {
|
if (isBuildableImage(node, srcRoot, srcRootWeb)) {
|
||||||
const src = getAttribute(node, 'src')!;
|
const src = getAttribute(node, 'src')!;
|
||||||
const referenceId = assetIdMap.get(src);
|
const referenceId = assetIdMap.get(src);
|
||||||
if (referenceId) {
|
if (referenceId) {
|
||||||
const fileName = this.getFileName(referenceId);
|
|
||||||
const relPath = npath.posix.relative(pathname, '/' + fileName);
|
|
||||||
setAttribute(node, 'src', relPath);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Could be a `source` or an `img`.
|
|
||||||
if (hasSrcSet(node)) {
|
|
||||||
const srcset = getAttribute(node, 'srcset')!;
|
|
||||||
let changedSrcset = srcset;
|
|
||||||
const urls = matchSrcset(srcset).map((c) => c.url);
|
|
||||||
for (const url of urls) {
|
|
||||||
if (assetIdMap.has(url)) {
|
|
||||||
const referenceId = assetIdMap.get(url)!;
|
|
||||||
const fileName = this.getFileName(referenceId);
|
const fileName = this.getFileName(referenceId);
|
||||||
const relPath = npath.posix.relative(pathname, '/' + fileName);
|
const relPath = npath.posix.relative(pathname, '/' + fileName);
|
||||||
changedSrcset = changedSrcset.replace(url, relPath);
|
setAttribute(node, 'src', relPath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// If anything changed, update it
|
|
||||||
if (changedSrcset !== srcset) {
|
// Could be a `source` or an `img`.
|
||||||
setAttribute(node, 'srcset', changedSrcset);
|
if (hasSrcSet(node)) {
|
||||||
|
const srcset = getAttribute(node, 'srcset')!;
|
||||||
|
let changedSrcset = srcset;
|
||||||
|
const urls = matchSrcset(srcset).map((c) => c.url);
|
||||||
|
for (const url of urls) {
|
||||||
|
if (assetIdMap.has(url)) {
|
||||||
|
const referenceId = assetIdMap.get(url)!;
|
||||||
|
const fileName = this.getFileName(referenceId);
|
||||||
|
const relPath = npath.posix.relative(pathname, '/' + fileName);
|
||||||
|
changedSrcset = changedSrcset.replace(url, relPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// If anything changed, update it
|
||||||
|
if (changedSrcset !== srcset) {
|
||||||
|
setAttribute(node, 'srcset', changedSrcset);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Page styles for <style> usage, if not already appended via links.
|
// Page styles for <style> usage, if not already appended via links.
|
||||||
for (const style of findInlineStyles(document)) {
|
for (const style of findInlineStyles(document)) {
|
||||||
if (hasAttribute(style, 'astro-style')) {
|
if (hasAttribute(style, 'astro-style')) {
|
||||||
if (!pageCSSAdded) {
|
if (!pageCSSAdded) {
|
||||||
pageCSSAdded = appendStyleChunksBefore(style, pathname, cssChunkMap.get(styleId));
|
pageCSSAdded = appendStyleChunksBefore(style, pathname, cssChunkMap.get(styleId));
|
||||||
|
}
|
||||||
|
|
||||||
|
remove(style);
|
||||||
}
|
}
|
||||||
|
|
||||||
remove(style);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
const outHTML = parse5.serialize(document);
|
const outHTML = parse5.serialize(document);
|
||||||
const name = pathname.substr(1);
|
const name = pathname.substr(1);
|
||||||
let outPath: string;
|
let outPath: string;
|
||||||
|
|
||||||
// Output directly to 404.html rather than 400/index.html
|
// Output directly to 404.html rather than 400/index.html
|
||||||
// Supports any other status codes, too
|
// Supports any other status codes, too
|
||||||
if (name.match(STATUS_CODE_RE)) {
|
if (name.match(STATUS_CODE_RE)) {
|
||||||
outPath = npath.posix.join(`${name}.html`);
|
outPath = npath.posix.join(`${name}.html`);
|
||||||
} else {
|
} else {
|
||||||
outPath = npath.posix.join(name, 'index.html');
|
outPath = npath.posix.join(name, 'index.html');
|
||||||
}
|
}
|
||||||
|
|
||||||
this.emitFile({
|
this.emitFile({
|
||||||
fileName: outPath,
|
fileName: outPath,
|
||||||
source: outHTML,
|
source: outHTML,
|
||||||
type: 'asset',
|
type: 'asset',
|
||||||
});
|
});
|
||||||
}
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
await htmlCache.teardown();
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
177
yarn.lock
177
yarn.lock
|
@ -3392,6 +3392,13 @@ binary-extensions@^2.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
|
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
|
||||||
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
|
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
|
||||||
|
|
||||||
|
block-stream@*:
|
||||||
|
version "0.0.9"
|
||||||
|
resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
|
||||||
|
integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=
|
||||||
|
dependencies:
|
||||||
|
inherits "~2.0.0"
|
||||||
|
|
||||||
bluebird@3.7.2:
|
bluebird@3.7.2:
|
||||||
version "3.7.2"
|
version "3.7.2"
|
||||||
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
|
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
|
||||||
|
@ -4329,7 +4336,7 @@ debug@4, debug@4.3.2, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, de
|
||||||
dependencies:
|
dependencies:
|
||||||
ms "2.1.2"
|
ms "2.1.2"
|
||||||
|
|
||||||
debug@^3.1.0:
|
debug@^3.1.0, debug@^3.2.6:
|
||||||
version "3.2.7"
|
version "3.2.7"
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
|
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
|
||||||
integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
|
integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
|
||||||
|
@ -4381,6 +4388,11 @@ deep-equal@~1.0.1:
|
||||||
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
|
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
|
||||||
integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
|
integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
|
||||||
|
|
||||||
|
deep-extend@^0.6.0:
|
||||||
|
version "0.6.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
|
||||||
|
integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
|
||||||
|
|
||||||
deep-is@^0.1.3, deep-is@~0.1.3:
|
deep-is@^0.1.3, deep-is@~0.1.3:
|
||||||
version "0.1.4"
|
version "0.1.4"
|
||||||
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
|
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
|
||||||
|
@ -4491,6 +4503,11 @@ detect-indent@^6.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6"
|
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6"
|
||||||
integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==
|
integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==
|
||||||
|
|
||||||
|
detect-libc@^1.0.2:
|
||||||
|
version "1.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
|
||||||
|
integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
|
||||||
|
|
||||||
detective@^5.2.0:
|
detective@^5.2.0:
|
||||||
version "5.2.0"
|
version "5.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b"
|
resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b"
|
||||||
|
@ -5571,6 +5588,16 @@ fsevents@~2.3.2:
|
||||||
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
|
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
|
||||||
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
|
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
|
||||||
|
|
||||||
|
fstream@^1.0.0, fstream@^1.0.12:
|
||||||
|
version "1.0.12"
|
||||||
|
resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045"
|
||||||
|
integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==
|
||||||
|
dependencies:
|
||||||
|
graceful-fs "^4.1.2"
|
||||||
|
inherits "~2.0.0"
|
||||||
|
mkdirp ">=0.5 0"
|
||||||
|
rimraf "2"
|
||||||
|
|
||||||
ftp@^0.3.10:
|
ftp@^0.3.10:
|
||||||
version "0.3.10"
|
version "0.3.10"
|
||||||
resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d"
|
resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d"
|
||||||
|
@ -5771,7 +5798,7 @@ glob@7.1.7:
|
||||||
once "^1.3.0"
|
once "^1.3.0"
|
||||||
path-is-absolute "^1.0.0"
|
path-is-absolute "^1.0.0"
|
||||||
|
|
||||||
glob@^7.0.0, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
|
glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
|
||||||
version "7.2.0"
|
version "7.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
|
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
|
||||||
integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
|
integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
|
||||||
|
@ -6251,7 +6278,7 @@ humanize-ms@^1.2.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
ms "^2.0.0"
|
ms "^2.0.0"
|
||||||
|
|
||||||
iconv-lite@0.4.24, iconv-lite@^0.4.24:
|
iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
|
||||||
version "0.4.24"
|
version "0.4.24"
|
||||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
|
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
|
||||||
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
|
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
|
||||||
|
@ -6270,7 +6297,7 @@ idb@^6.1.4:
|
||||||
resolved "https://registry.yarnpkg.com/idb/-/idb-6.1.5.tgz#dbc53e7adf1ac7c59f9b2bf56e00b4ea4fce8c7b"
|
resolved "https://registry.yarnpkg.com/idb/-/idb-6.1.5.tgz#dbc53e7adf1ac7c59f9b2bf56e00b4ea4fce8c7b"
|
||||||
integrity sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==
|
integrity sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==
|
||||||
|
|
||||||
ignore-walk@^3.0.3:
|
ignore-walk@^3.0.1, ignore-walk@^3.0.3:
|
||||||
version "3.0.4"
|
version "3.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335"
|
resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335"
|
||||||
integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==
|
integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==
|
||||||
|
@ -6340,7 +6367,7 @@ inflight@^1.0.4:
|
||||||
once "^1.3.0"
|
once "^1.3.0"
|
||||||
wrappy "1"
|
wrappy "1"
|
||||||
|
|
||||||
inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
|
inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
|
||||||
version "2.0.4"
|
version "2.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
||||||
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
||||||
|
@ -6350,7 +6377,7 @@ inherits@2.0.3:
|
||||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
||||||
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
|
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
|
||||||
|
|
||||||
ini@^1.3.2, ini@^1.3.4:
|
ini@^1.3.2, ini@^1.3.4, ini@~1.3.0:
|
||||||
version "1.3.8"
|
version "1.3.8"
|
||||||
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
|
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
|
||||||
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
|
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
|
||||||
|
@ -8099,7 +8126,7 @@ mkdirp-infer-owner@^2.0.0:
|
||||||
infer-owner "^1.0.4"
|
infer-owner "^1.0.4"
|
||||||
mkdirp "^1.0.3"
|
mkdirp "^1.0.3"
|
||||||
|
|
||||||
mkdirp@^0.5.1, mkdirp@^0.5.5:
|
"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.5:
|
||||||
version "0.5.5"
|
version "0.5.5"
|
||||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
|
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
|
||||||
integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
|
integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
|
||||||
|
@ -8217,6 +8244,15 @@ natural-compare@^1.4.0:
|
||||||
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
|
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
|
||||||
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
|
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
|
||||||
|
|
||||||
|
needle@^2.2.1:
|
||||||
|
version "2.9.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz#22d1dffbe3490c2b83e301f7709b6736cd8f2684"
|
||||||
|
integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==
|
||||||
|
dependencies:
|
||||||
|
debug "^3.2.6"
|
||||||
|
iconv-lite "^0.4.4"
|
||||||
|
sax "^1.2.4"
|
||||||
|
|
||||||
negotiator@0.6.2, negotiator@^0.6.2:
|
negotiator@0.6.2, negotiator@^0.6.2:
|
||||||
version "0.6.2"
|
version "0.6.2"
|
||||||
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
|
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
|
||||||
|
@ -8249,6 +8285,11 @@ nlcst-to-string@^3.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/nlcst" "^1.0.0"
|
"@types/nlcst" "^1.0.0"
|
||||||
|
|
||||||
|
node-addon-api@^3.0.0:
|
||||||
|
version "3.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161"
|
||||||
|
integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==
|
||||||
|
|
||||||
node-emoji@^1.11.0:
|
node-emoji@^1.11.0:
|
||||||
version "1.11.0"
|
version "1.11.0"
|
||||||
resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c"
|
resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c"
|
||||||
|
@ -8272,6 +8313,24 @@ node-fetch@^2.6.0, node-fetch@^2.6.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
whatwg-url "^5.0.0"
|
whatwg-url "^5.0.0"
|
||||||
|
|
||||||
|
node-gyp@3.x:
|
||||||
|
version "3.8.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c"
|
||||||
|
integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==
|
||||||
|
dependencies:
|
||||||
|
fstream "^1.0.0"
|
||||||
|
glob "^7.0.3"
|
||||||
|
graceful-fs "^4.1.2"
|
||||||
|
mkdirp "^0.5.0"
|
||||||
|
nopt "2 || 3"
|
||||||
|
npmlog "0 || 1 || 2 || 3 || 4"
|
||||||
|
osenv "0"
|
||||||
|
request "^2.87.0"
|
||||||
|
rimraf "2"
|
||||||
|
semver "~5.3.0"
|
||||||
|
tar "^2.0.0"
|
||||||
|
which "1"
|
||||||
|
|
||||||
node-gyp@^5.0.2:
|
node-gyp@^5.0.2:
|
||||||
version "5.1.1"
|
version "5.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e"
|
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e"
|
||||||
|
@ -8305,12 +8364,28 @@ node-gyp@^7.1.0:
|
||||||
tar "^6.0.2"
|
tar "^6.0.2"
|
||||||
which "^2.0.2"
|
which "^2.0.2"
|
||||||
|
|
||||||
|
node-pre-gyp@^0.11.0:
|
||||||
|
version "0.11.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz#db1f33215272f692cd38f03238e3e9b47c5dd054"
|
||||||
|
integrity sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==
|
||||||
|
dependencies:
|
||||||
|
detect-libc "^1.0.2"
|
||||||
|
mkdirp "^0.5.1"
|
||||||
|
needle "^2.2.1"
|
||||||
|
nopt "^4.0.1"
|
||||||
|
npm-packlist "^1.1.6"
|
||||||
|
npmlog "^4.0.2"
|
||||||
|
rc "^1.2.7"
|
||||||
|
rimraf "^2.6.1"
|
||||||
|
semver "^5.3.0"
|
||||||
|
tar "^4"
|
||||||
|
|
||||||
node-releases@^2.0.1:
|
node-releases@^2.0.1:
|
||||||
version "2.0.1"
|
version "2.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5"
|
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5"
|
||||||
integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==
|
integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==
|
||||||
|
|
||||||
nopt@^3.0.1:
|
"nopt@2 || 3", nopt@^3.0.1:
|
||||||
version "3.0.6"
|
version "3.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
|
resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
|
||||||
integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k=
|
integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k=
|
||||||
|
@ -8386,7 +8461,7 @@ not@^0.1.0:
|
||||||
resolved "https://registry.yarnpkg.com/not/-/not-0.1.0.tgz#c9691c1746c55dcfbe54cbd8bd4ff041bc2b519d"
|
resolved "https://registry.yarnpkg.com/not/-/not-0.1.0.tgz#c9691c1746c55dcfbe54cbd8bd4ff041bc2b519d"
|
||||||
integrity sha1-yWkcF0bFXc++VMvYvU/wQbwrUZ0=
|
integrity sha1-yWkcF0bFXc++VMvYvU/wQbwrUZ0=
|
||||||
|
|
||||||
npm-bundled@^1.1.1:
|
npm-bundled@^1.0.1, npm-bundled@^1.1.1:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1"
|
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1"
|
||||||
integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==
|
integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==
|
||||||
|
@ -8428,6 +8503,15 @@ npm-package-arg@^8.0.0, npm-package-arg@^8.0.1, npm-package-arg@^8.1.0, npm-pack
|
||||||
semver "^7.3.4"
|
semver "^7.3.4"
|
||||||
validate-npm-package-name "^3.0.0"
|
validate-npm-package-name "^3.0.0"
|
||||||
|
|
||||||
|
npm-packlist@^1.1.6:
|
||||||
|
version "1.4.8"
|
||||||
|
resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e"
|
||||||
|
integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==
|
||||||
|
dependencies:
|
||||||
|
ignore-walk "^3.0.1"
|
||||||
|
npm-bundled "^1.0.1"
|
||||||
|
npm-normalize-package-bin "^1.0.1"
|
||||||
|
|
||||||
npm-packlist@^2.1.4:
|
npm-packlist@^2.1.4:
|
||||||
version "2.2.2"
|
version "2.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-2.2.2.tgz#076b97293fa620f632833186a7a8f65aaa6148c8"
|
resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-2.2.2.tgz#076b97293fa620f632833186a7a8f65aaa6148c8"
|
||||||
|
@ -8503,7 +8587,7 @@ npm-run-path@^4.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
path-key "^3.0.0"
|
path-key "^3.0.0"
|
||||||
|
|
||||||
npmlog@^4.1.2:
|
"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.2, npmlog@^4.1.2:
|
||||||
version "4.1.2"
|
version "4.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
|
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
|
||||||
integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
|
integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
|
||||||
|
@ -8664,7 +8748,7 @@ os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
|
||||||
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
|
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
|
||||||
integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
|
integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
|
||||||
|
|
||||||
osenv@^0.1.4:
|
osenv@0, osenv@^0.1.4:
|
||||||
version "0.1.5"
|
version "0.1.5"
|
||||||
resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
|
resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
|
||||||
integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
|
integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
|
||||||
|
@ -9378,6 +9462,16 @@ raw-body@^2.2.0:
|
||||||
iconv-lite "0.4.24"
|
iconv-lite "0.4.24"
|
||||||
unpipe "1.0.0"
|
unpipe "1.0.0"
|
||||||
|
|
||||||
|
rc@^1.2.7:
|
||||||
|
version "1.2.8"
|
||||||
|
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
|
||||||
|
integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
|
||||||
|
dependencies:
|
||||||
|
deep-extend "^0.6.0"
|
||||||
|
ini "~1.3.0"
|
||||||
|
minimist "^1.2.0"
|
||||||
|
strip-json-comments "~2.0.1"
|
||||||
|
|
||||||
react-dom@^17.0.2:
|
react-dom@^17.0.2:
|
||||||
version "17.0.2"
|
version "17.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23"
|
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23"
|
||||||
|
@ -9739,7 +9833,7 @@ remark-smartypants@^2.0.0:
|
||||||
retext-smartypants "^5.1.0"
|
retext-smartypants "^5.1.0"
|
||||||
unist-util-visit "^4.1.0"
|
unist-util-visit "^4.1.0"
|
||||||
|
|
||||||
request@^2.88.0, request@^2.88.2:
|
request@^2.87.0, request@^2.88.0, request@^2.88.2:
|
||||||
version "2.88.2"
|
version "2.88.2"
|
||||||
resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
|
resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
|
||||||
integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
|
integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
|
||||||
|
@ -9890,7 +9984,7 @@ rgba-regex@^1.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
|
resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
|
||||||
integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
|
integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
|
||||||
|
|
||||||
rimraf@^2.5.2, rimraf@^2.6.3:
|
rimraf@2, rimraf@^2.5.2, rimraf@^2.6.1, rimraf@^2.6.3:
|
||||||
version "2.7.1"
|
version "2.7.1"
|
||||||
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
|
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
|
||||||
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
|
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
|
||||||
|
@ -10009,6 +10103,11 @@ sass@^1.43.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
chokidar ">=3.0.0 <4.0.0"
|
chokidar ">=3.0.0 <4.0.0"
|
||||||
|
|
||||||
|
sax@^1.2.4:
|
||||||
|
version "1.2.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
|
||||||
|
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
|
||||||
|
|
||||||
scheduler@^0.20.2:
|
scheduler@^0.20.2:
|
||||||
version "0.20.2"
|
version "0.20.2"
|
||||||
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
|
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
|
||||||
|
@ -10025,7 +10124,7 @@ section-matter@^1.0.0:
|
||||||
extend-shallow "^2.0.1"
|
extend-shallow "^2.0.1"
|
||||||
kind-of "^6.0.0"
|
kind-of "^6.0.0"
|
||||||
|
|
||||||
"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1:
|
"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1:
|
||||||
version "5.7.1"
|
version "5.7.1"
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
|
||||||
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
|
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
|
||||||
|
@ -10047,6 +10146,11 @@ semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semve
|
||||||
dependencies:
|
dependencies:
|
||||||
lru-cache "^6.0.0"
|
lru-cache "^6.0.0"
|
||||||
|
|
||||||
|
semver@~5.3.0:
|
||||||
|
version "5.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
|
||||||
|
integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8=
|
||||||
|
|
||||||
send@^0.17.1:
|
send@^0.17.1:
|
||||||
version "0.17.1"
|
version "0.17.1"
|
||||||
resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
|
resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
|
||||||
|
@ -10387,6 +10491,21 @@ sprintf-js@~1.0.2:
|
||||||
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
|
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
|
||||||
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
|
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
|
||||||
|
|
||||||
|
sqlite3@^5.0.2:
|
||||||
|
version "5.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-5.0.2.tgz#00924adcc001c17686e0a6643b6cbbc2d3965083"
|
||||||
|
integrity sha512-1SdTNo+BVU211Xj1csWa8lV6KM0CtucDwRyA0VHl91wEH1Mgh7RxUpI4rVvG7OhHrzCSGaVyW5g8vKvlrk9DJA==
|
||||||
|
dependencies:
|
||||||
|
node-addon-api "^3.0.0"
|
||||||
|
node-pre-gyp "^0.11.0"
|
||||||
|
optionalDependencies:
|
||||||
|
node-gyp "3.x"
|
||||||
|
|
||||||
|
sqlite@^4.0.23:
|
||||||
|
version "4.0.23"
|
||||||
|
resolved "https://registry.yarnpkg.com/sqlite/-/sqlite-4.0.23.tgz#ada09028b38e91883db08ac465d841e814d1bb00"
|
||||||
|
integrity sha512-dSdmSkrdIhUL7xP/fiEMfFuAo4dxb0afag3rK8T4Y9lYxE3g3fXT0J8H9qSFvmcKxnM0zEA8yvLbpdWQ8mom3g==
|
||||||
|
|
||||||
srcset-parse@^1.1.0:
|
srcset-parse@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/srcset-parse/-/srcset-parse-1.1.0.tgz#73f787f38b73ede2c5af775e0a3465579488122b"
|
resolved "https://registry.yarnpkg.com/srcset-parse/-/srcset-parse-1.1.0.tgz#73f787f38b73ede2c5af775e0a3465579488122b"
|
||||||
|
@ -10653,6 +10772,11 @@ strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.
|
||||||
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
|
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
|
||||||
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
|
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
|
||||||
|
|
||||||
|
strip-json-comments@~2.0.1:
|
||||||
|
version "2.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
|
||||||
|
integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
|
||||||
|
|
||||||
strnum@^1.0.4:
|
strnum@^1.0.4:
|
||||||
version "1.0.4"
|
version "1.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.4.tgz#e97e36a7d6ba9f93d0d6b496b2ed0678d422832b"
|
resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.4.tgz#e97e36a7d6ba9f93d0d6b496b2ed0678d422832b"
|
||||||
|
@ -10772,7 +10896,16 @@ tailwindcss@^2.2.19:
|
||||||
resolve "^1.20.0"
|
resolve "^1.20.0"
|
||||||
tmp "^0.2.1"
|
tmp "^0.2.1"
|
||||||
|
|
||||||
tar@^4.4.12:
|
tar@^2.0.0:
|
||||||
|
version "2.2.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40"
|
||||||
|
integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==
|
||||||
|
dependencies:
|
||||||
|
block-stream "*"
|
||||||
|
fstream "^1.0.12"
|
||||||
|
inherits "2"
|
||||||
|
|
||||||
|
tar@^4, tar@^4.4.12:
|
||||||
version "4.4.19"
|
version "4.4.19"
|
||||||
resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3"
|
resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3"
|
||||||
integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==
|
integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==
|
||||||
|
@ -11763,6 +11896,13 @@ which-typed-array@^1.1.2:
|
||||||
has-tostringtag "^1.0.0"
|
has-tostringtag "^1.0.0"
|
||||||
is-typed-array "^1.1.7"
|
is-typed-array "^1.1.7"
|
||||||
|
|
||||||
|
which@1, which@^1.2.9, which@^1.3.1:
|
||||||
|
version "1.3.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
|
||||||
|
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
|
||||||
|
dependencies:
|
||||||
|
isexe "^2.0.0"
|
||||||
|
|
||||||
which@2.0.2, which@^2.0.1, which@^2.0.2:
|
which@2.0.2, which@^2.0.1, which@^2.0.2:
|
||||||
version "2.0.2"
|
version "2.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
|
resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
|
||||||
|
@ -11770,13 +11910,6 @@ which@2.0.2, which@^2.0.1, which@^2.0.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
isexe "^2.0.0"
|
isexe "^2.0.0"
|
||||||
|
|
||||||
which@^1.2.9, which@^1.3.1:
|
|
||||||
version "1.3.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
|
|
||||||
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
|
|
||||||
dependencies:
|
|
||||||
isexe "^2.0.0"
|
|
||||||
|
|
||||||
wide-align@^1.1.0:
|
wide-align@^1.1.0:
|
||||||
version "1.1.5"
|
version "1.1.5"
|
||||||
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3"
|
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3"
|
||||||
|
|
Loading…
Add table
Reference in a new issue