Add workaround for Chrome/Edge css import escaping bug (#1287)

* Upgrade to typescript 4.9.5

* Apply formatting changes

* Add workaround for chrome incorrect escaping bug

More info: https://bugs.chromium.org/p/chromium/issues/detail?id=1472259

* Apply formatting changes

* Create itchy-dryers-double.md

* Create rich-jars-remember.md

* Apply formatting changes

* Update packages/rrweb-snapshot/src/css.ts

* Apply formatting changes

* Update packages/rrweb-snapshot/test/__snapshots__/integration.test.ts.snap

* Apply formatting changes

* Update snapshot

* Apply formatting changes

* Rename and refactor fixBrowserCompatibilityIssuesInCSSImports, getCssRulesString and getCssRuleString based on @eoghanmurray feedback

* Apply formatting changes

* Apply formatting changes
This commit is contained in:
Justin Halsall
2026-04-01 12:00:00 +08:00
committed by GitHub
parent 6de70cbf21
commit a6812827e0
18 changed files with 343 additions and 156 deletions

View File

@@ -0,0 +1,8 @@
---
'rrweb-player': patch
'rrweb-snapshot': patch
'rrweb': patch
'@rrweb/types': patch
---
Upgrade all projects to typescript 4.9.5

View File

@@ -0,0 +1,5 @@
---
'rrweb-snapshot': patch
---
Add workaround for Chrome/Edge CSS `@import` escaping bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1472259

View File

@@ -33,7 +33,7 @@
"markdownlint-cli": "^0.31.1", "markdownlint-cli": "^0.31.1",
"prettier": "2.8.4", "prettier": "2.8.4",
"turbo": "^1.2.4", "turbo": "^1.2.4",
"typescript": "^4.7.3" "typescript": "^4.9.5"
}, },
"scripts": { "scripts": {
"build:all": "NODE_OPTIONS='--max-old-space-size=4096' yarn run concurrently --success=all -r -m=1 'yarn workspaces-to-typescript-project-references' 'yarn turbo run prepublish'", "build:all": "NODE_OPTIONS='--max-old-space-size=4096' yarn run concurrently --success=all -r -m=1 'yarn workspaces-to-typescript-project-references' 'yarn turbo run prepublish'",
@@ -49,7 +49,8 @@
"release": "yarn build:all && changeset publish" "release": "yarn build:all && changeset publish"
}, },
"resolutions": { "resolutions": {
"**/jsdom/cssom": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz" "**/jsdom/cssom": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz",
"**/@types/dom-webcodecs": "0.1.5"
}, },
"browserslist": [ "browserslist": [
"defaults", "defaults",

View File

@@ -17,9 +17,9 @@
"rollup-plugin-typescript2": "^0.31.2", "rollup-plugin-typescript2": "^0.31.2",
"rollup-plugin-web-worker-loader": "^1.6.1", "rollup-plugin-web-worker-loader": "^1.6.1",
"sirv-cli": "^0.4.4", "sirv-cli": "^0.4.4",
"svelte": "^3.2.0", "svelte": "^3.59.2",
"svelte-check": "^1.4.0", "svelte-check": "^3.0.1",
"svelte-preprocess": "^4.0.0", "svelte-preprocess": "^5.0.0",
"tslib": "^2.0.0" "tslib": "^2.0.0"
}, },
"dependencies": { "dependencies": {

View File

@@ -345,7 +345,7 @@ export function parse(css: string, options: ParserOptions = {}) {
whitespace(); whitespace();
comments(rules); comments(rules);
while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) { while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {
if (node !== false) { if (node) {
rules.push(node); rules.push(node);
comments(rules); comments(rules);
} }
@@ -383,7 +383,7 @@ export function parse(css: string, options: ParserOptions = {}) {
function comments(rules: Rule[] = []) { function comments(rules: Rule[] = []) {
let c: Comment | void; let c: Comment | void;
while ((c = comment())) { while ((c = comment())) {
if (c !== false) { if (c) {
rules.push(c); rules.push(c);
} }
c = comment(); c = comment();

View File

@@ -19,7 +19,7 @@ import {
isShadowRoot, isShadowRoot,
maskInputValue, maskInputValue,
isNativeShadowDom, isNativeShadowDom,
getCssRulesString, stringifyStylesheet,
getInputType, getInputType,
toLowerCase, toLowerCase,
validateStringifiedCssRule, validateStringifiedCssRule,
@@ -554,7 +554,7 @@ function serializeTextNode(
// to _only_ include the current rule(s) added by the text node. // to _only_ include the current rule(s) added by the text node.
// So we'll be conservative and keep textContent as-is. // So we'll be conservative and keep textContent as-is.
} else if ((n.parentNode as HTMLStyleElement).sheet?.cssRules) { } else if ((n.parentNode as HTMLStyleElement).sheet?.cssRules) {
textContent = getCssRulesString( textContent = stringifyStylesheet(
(n.parentNode as HTMLStyleElement).sheet!, (n.parentNode as HTMLStyleElement).sheet!,
); );
} }
@@ -644,7 +644,7 @@ function serializeElementNode(
}); });
let cssText: string | null = null; let cssText: string | null = null;
if (stylesheet) { if (stylesheet) {
cssText = getCssRulesString(stylesheet); cssText = stringifyStylesheet(stylesheet);
} }
if (cssText) { if (cssText) {
delete attributes.rel; delete attributes.rel;
@@ -659,7 +659,7 @@ function serializeElementNode(
// TODO: Currently we only try to get dynamic stylesheet when it is an empty style element // TODO: Currently we only try to get dynamic stylesheet when it is an empty style element
!(n.innerText || n.textContent || '').trim().length !(n.innerText || n.textContent || '').trim().length
) { ) {
const cssText = getCssRulesString( const cssText = stringifyStylesheet(
(n as HTMLStyleElement).sheet as CSSStyleSheet, (n as HTMLStyleElement).sheet as CSSStyleSheet,
); );
if (cssText) { if (cssText) {

View File

@@ -54,12 +54,51 @@ function fixBrowserCompatibilityIssuesInCSS(cssText: string): string {
return cssText; return cssText;
} }
export function getCssRulesString(s: CSSStyleSheet): string | null { // Remove this declaration once typescript has added `CSSImportRule.supportsText` to the lib.
declare interface CSSImportRule extends CSSRule {
readonly href: string;
readonly layerName: string | null;
readonly media: MediaList;
readonly styleSheet: CSSStyleSheet;
/**
* experimental API, currently only supported in firefox
* https://developer.mozilla.org/en-US/docs/Web/API/CSSImportRule/supportsText
*/
readonly supportsText?: string | null;
}
/**
* Browsers sometimes incorrectly escape `@import` on `.cssText` statements.
* This function tries to correct the escaping.
* more info: https://bugs.chromium.org/p/chromium/issues/detail?id=1472259
* @param cssImportRule
* @returns `cssText` with browser inconsistencies fixed, or null if not applicable.
*/
export function escapeImportStatement(rule: CSSImportRule): string {
const { cssText } = rule;
if (cssText.split('"').length < 3) return cssText;
const statement = ['@import', `url(${JSON.stringify(rule.href)})`];
if (rule.layerName === '') {
statement.push(`layer`);
} else if (rule.layerName) {
statement.push(`layer(${rule.layerName})`);
}
if (rule.supportsText) {
statement.push(`supports(${rule.supportsText})`);
}
if (rule.media.length) {
statement.push(rule.media.mediaText);
}
return statement.join(' ') + ';';
}
export function stringifyStylesheet(s: CSSStyleSheet): string | null {
try { try {
const rules = s.rules || s.cssRules; const rules = s.rules || s.cssRules;
return rules return rules
? fixBrowserCompatibilityIssuesInCSS( ? fixBrowserCompatibilityIssuesInCSS(
Array.from(rules).map(getCssRuleString).join(''), Array.from(rules).map(stringifyRule).join(''),
) )
: null; : null;
} catch (error) { } catch (error) {
@@ -67,16 +106,22 @@ export function getCssRulesString(s: CSSStyleSheet): string | null {
} }
} }
export function getCssRuleString(rule: CSSRule): string { export function stringifyRule(rule: CSSRule): string {
let cssStringified = rule.cssText; let importStringified;
if (isCSSImportRule(rule)) { if (isCSSImportRule(rule)) {
try { try {
cssStringified = getCssRulesString(rule.styleSheet) || cssStringified; importStringified =
} catch { // for same-origin stylesheets,
// we can access the imported stylesheet rules directly
stringifyStylesheet(rule.styleSheet) ||
// work around browser issues with the raw string `@import url(...)` statement
escapeImportStatement(rule);
} catch (error) {
// ignore // ignore
} }
} }
return validateStringifiedCssRule(cssStringified);
return validateStringifiedCssRule(importStringified || rule.cssText);
} }
export function validateStringifiedCssRule(cssStringified: string): string { export function validateStringifiedCssRule(cssStringified: string): string {

View File

@@ -490,7 +490,7 @@ exports[`integration tests [html file]: with-style-sheet-with-import.html 1`] =
<meta name=\\"viewport\\" content=\\"width=device-width, initial-scale=1.0\\" /> <meta name=\\"viewport\\" content=\\"width=device-width, initial-scale=1.0\\" />
<meta http-equiv=\\"X-UA-Compatible\\" content=\\"ie=edge\\" /> <meta http-equiv=\\"X-UA-Compatible\\" content=\\"ie=edge\\" />
<title>with style sheet with import</title> <title>with style sheet with import</title>
<style>body { margin: 0px; background: url(\\"http://localhost:3030/a.jpg\\"); border-image: url(\\"data:image/svg+xml;utf8,&lt;svg xmlns=\\\\\\"http://www.w3.org/2000/svg\\\\\\" x=\\\\\\"0px\\\\\\" y=\\\\\\"0px\\\\\\" viewBox=\\\\\\"0 0 256 256\\\\\\"&gt;&lt;g&gt;&lt;g&gt;&lt;polygon points=\\\\\\"79.093,0 48.907,30.187 146.72,128 48.907,225.813 79.093,256 207.093,128\\\\\\"/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;\\") 100% / 1 / 0 stretch; }p { color: red; background: url(\\"http://localhost:3030/css/b.jpg\\"); }body &gt; p { color: yellow; }</style> <style>@import url(\\"//fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&amp;family=Roboto:wght@100;300;400;500;700&amp;display=swap\\\\\\"\\");body { margin: 0px; background: url(\\"http://localhost:3030/a.jpg\\"); border-image: url(\\"data:image/svg+xml;utf8,&lt;svg xmlns=\\\\\\"http://www.w3.org/2000/svg\\\\\\" x=\\\\\\"0px\\\\\\" y=\\\\\\"0px\\\\\\" viewBox=\\\\\\"0 0 256 256\\\\\\"&gt;&lt;g&gt;&lt;g&gt;&lt;polygon points=\\\\\\"79.093,0 48.907,30.187 146.72,128 48.907,225.813 79.093,256 207.093,128\\\\\\"/&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;\\") 100% / 1 / 0 stretch; }p { color: red; background: url(\\"http://localhost:3030/css/b.jpg\\"); }body &gt; p { color: yellow; }</style>
</head><body> </head><body>
</body></html>" </body></html>"
`; `;

View File

@@ -1,5 +1,8 @@
import { parse, Rule, Media } from '../src/css'; import { parse, Rule, Media } from '../src/css';
import { validateStringifiedCssRule } from './../src/utils'; import {
validateStringifiedCssRule,
escapeImportStatement,
} from './../src/utils';
describe('css parser', () => { describe('css parser', () => {
it('should save the filename and source', () => { it('should save the filename and source', () => {
@@ -120,4 +123,64 @@ describe('css parser', () => {
); );
expect(out3).toEqual('[data-aa\\:other] { color: red; }'); expect(out3).toEqual('[data-aa\\:other] { color: red; }');
}); });
it('parses imports with quotes correctly', () => {
const out1 = escapeImportStatement({
cssText: `@import url("/foo.css;900;800"");`,
href: '/foo.css;900;800"',
media: {
length: 0,
},
layerName: null,
supportsText: null,
} as unknown as CSSImportRule);
expect(out1).toEqual(`@import url("/foo.css;900;800\\"");`);
const out2 = escapeImportStatement({
cssText: `@import url("/foo.css;900;800"") supports(display: flex);`,
href: '/foo.css;900;800"',
media: {
length: 0,
},
layerName: null,
supportsText: 'display: flex',
} as unknown as CSSImportRule);
expect(out2).toEqual(
`@import url("/foo.css;900;800\\"") supports(display: flex);`,
);
const out3 = escapeImportStatement({
cssText: `@import url("/foo.css;900;800"");`,
href: '/foo.css;900;800"',
media: {
length: 1,
mediaText: 'print, screen',
},
layerName: null,
supportsText: null,
} as unknown as CSSImportRule);
expect(out3).toEqual(`@import url("/foo.css;900;800\\"") print, screen;`);
const out4 = escapeImportStatement({
cssText: `@import url("/foo.css;900;800"") layer(layer-1);`,
href: '/foo.css;900;800"',
media: {
length: 0,
},
layerName: 'layer-1',
supportsText: null,
} as unknown as CSSImportRule);
expect(out4).toEqual(`@import url("/foo.css;900;800\\"") layer(layer-1);`);
const out5 = escapeImportStatement({
cssText: `@import url("/foo.css;900;800"") layer;`,
href: '/foo.css;900;800"',
media: {
length: 0,
},
layerName: '',
supportsText: null,
} as unknown as CSSImportRule);
expect(out5).toEqual(`@import url("/foo.css;900;800\\"") layer;`);
});
}); });

View File

@@ -1 +1,2 @@
@import "./style.css"; @import '//fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&family=Roboto:wght@100;300;400;500;700&display=swap"';
@import './style.css';

View File

@@ -51,7 +51,7 @@
"devDependencies": { "devDependencies": {
"@rollup/plugin-node-resolve": "^13.1.3", "@rollup/plugin-node-resolve": "^13.1.3",
"@types/chai": "^4.1.6", "@types/chai": "^4.1.6",
"@types/dom-mediacapture-transform": "^0.1.3", "@types/dom-mediacapture-transform": "0.1.4",
"@types/inquirer": "^8.2.1", "@types/inquirer": "^8.2.1",
"@types/jest": "^29.5.0", "@types/jest": "^29.5.0",
"@types/jest-image-snapshot": "^6.1.0", "@types/jest-image-snapshot": "^6.1.0",

View File

@@ -1,10 +0,0 @@
// This informs the TS compiler about constructed stylesheets.
// It can be removed when this is fixed: https://github.com/Microsoft/TypeScript/issues/30022
declare interface DocumentOrShadowRoot {
adoptedStyleSheets?: CSSStyleSheet[];
}
declare interface CSSStyleSheet {
replace?(text: string): Promise<CSSStyleSheet>;
replaceSync?(text: string): void;
}

View File

@@ -19,19 +19,19 @@ export default function initCanvasContextObserver(
'getContext', 'getContext',
function ( function (
original: ( original: (
this: ICanvas, this: ICanvas | HTMLCanvasElement,
contextType: string, contextType: string,
...args: Array<unknown> ...args: Array<unknown>
) => void, ) => void,
) { ) {
return function ( return function (
this: ICanvas, this: ICanvas | HTMLCanvasElement,
contextType: string, contextType: string,
...args: Array<unknown> ...args: Array<unknown>
) { ) {
if (!isBlocked(this, blockClass, blockSelector, true)) { if (!isBlocked(this, blockClass, blockSelector, true)) {
const ctxName = getNormalizedContextName(contextType); const ctxName = getNormalizedContextName(contextType);
if (!('__context' in this)) this.__context = ctxName; if (!('__context' in this)) (this as ICanvas).__context = ctxName;
if ( if (
setPreserveDrawingBufferToTrue && setPreserveDrawingBufferToTrue &&

View File

@@ -125,7 +125,7 @@ export function serializeArg(
}; };
} }
return value as CanvasArg; return value as unknown as CanvasArg;
} }
export const serializeArgs = ( export const serializeArgs = (

View File

@@ -49,7 +49,10 @@ function patchGLPrototype(
return function (this: typeof prototype, ...args: Array<unknown>) { return function (this: typeof prototype, ...args: Array<unknown>) {
const result = original.apply(this, args); const result = original.apply(this, args);
saveWebGLVar(result, win, this); saveWebGLVar(result, win, this);
if (!isBlocked(this.canvas, blockClass, blockSelector, true)) { if (
'tagName' in this.canvas &&
!isBlocked(this.canvas, blockClass, blockSelector, true)
) {
const recordArgs = serializeArgs([...args], win, this); const recordArgs = serializeArgs([...args], win, this);
const mutation: canvasMutationWithType = { const mutation: canvasMutationWithType = {
type, type,

View File

@@ -1,5 +1,5 @@
import type { elementNode, serializedNodeWithId } from 'rrweb-snapshot'; import type { elementNode, serializedNodeWithId } from 'rrweb-snapshot';
import { getCssRuleString } from 'rrweb-snapshot'; import { stringifyRule } from 'rrweb-snapshot';
import type { import type {
adoptedStyleSheetCallback, adoptedStyleSheetCallback,
adoptedStyleSheetParam, adoptedStyleSheetParam,
@@ -66,7 +66,7 @@ export class StylesheetManager {
styleId, styleId,
rules: rules.map((r, index) => { rules: rules.map((r, index) => {
return { return {
rule: getCssRuleString(r), rule: stringifyRule(r),
index, index,
}; };
}), }),

View File

@@ -40,7 +40,7 @@
], ],
"devDependencies": { "devDependencies": {
"vite": "^3.2.0-beta.2", "vite": "^3.2.0-beta.2",
"vite-plugin-dts": "^1.6.6" "vite-plugin-dts": "^1.7.3"
}, },
"dependencies": { "dependencies": {
"rrweb-snapshot": "^2.0.0-alpha.10" "rrweb-snapshot": "^2.0.0-alpha.10"

303
yarn.lock
View File

@@ -2703,6 +2703,11 @@
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
"@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14":
version "1.4.15"
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
"@jridgewell/trace-mapping@0.3.9": "@jridgewell/trace-mapping@0.3.9":
version "0.3.9" version "0.3.9"
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9"
@@ -2764,29 +2769,29 @@
resolved "https://registry.yarnpkg.com/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz#1fead437f3957ceebe2e8c3f46beccdb9bc575b8" resolved "https://registry.yarnpkg.com/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz#1fead437f3957ceebe2e8c3f46beccdb9bc575b8"
integrity sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA== integrity sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==
"@microsoft/api-extractor-model@7.25.2": "@microsoft/api-extractor-model@7.26.9":
version "7.25.2" version "7.26.9"
resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.25.2.tgz#a3e69e952122bbe3f0fc339a8ce0d9d20dd06406" resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.26.9.tgz#22b4e86ab654488b06c9fb240ec440a446846828"
integrity sha512-+h1uCrLQXFAKMUdghhdDcnniDB+6UA/lS9ArlB4QZQ34UbLuXNy2oQ6fafFK8cKXU4mUPTF/yGRjv7JKD5L7eg== integrity sha512-1AowqcRy5qMH/OB7UNkdXa4qLoJp58WFdJ026IMFS8skA0OOAOcvBV/Fi4L7fO1R/8uCMz5KHi3NsqVH4Li8xg==
dependencies: dependencies:
"@microsoft/tsdoc" "0.14.2" "@microsoft/tsdoc" "0.14.2"
"@microsoft/tsdoc-config" "~0.16.1" "@microsoft/tsdoc-config" "~0.16.1"
"@rushstack/node-core-library" "3.53.2" "@rushstack/node-core-library" "3.59.0"
"@microsoft/api-extractor@^7.33.1": "@microsoft/api-extractor@^7.33.5":
version "7.33.5" version "7.34.9"
resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.33.5.tgz#6f6791aa0b30fe1581002912ebd4565ef8313323" resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.34.9.tgz#ff92cd6939aa5c1674085494c101e0b614512bfd"
integrity sha512-ENoWpTWarKNuodpRFDQr3jyBigHuv98KuJ8H5qXc1LZ1aP5Mk77lCo88HbPisTmSnGevJJHTScfd/DPznOb4CQ== integrity sha512-dasBIbqgHgxvfRfEOX4+ynNYQPnTYc6k7jkL3V4f/MoaS2xFUoIj/D71crrsDxf5MNMybjzeyZPdRNZdzvKBVw==
dependencies: dependencies:
"@microsoft/api-extractor-model" "7.25.2" "@microsoft/api-extractor-model" "7.26.9"
"@microsoft/tsdoc" "0.14.2" "@microsoft/tsdoc" "0.14.2"
"@microsoft/tsdoc-config" "~0.16.1" "@microsoft/tsdoc-config" "~0.16.1"
"@rushstack/node-core-library" "3.53.2" "@rushstack/node-core-library" "3.59.0"
"@rushstack/rig-package" "0.3.17" "@rushstack/rig-package" "0.3.18"
"@rushstack/ts-command-line" "4.13.0" "@rushstack/ts-command-line" "4.13.2"
colors "~1.2.1" colors "~1.2.1"
lodash "~4.17.15" lodash "~4.17.15"
resolve "~1.17.0" resolve "~1.22.1"
semver "~7.3.0" semver "~7.3.0"
source-map "~0.6.1" source-map "~0.6.1"
typescript "~4.8.4" typescript "~4.8.4"
@@ -3044,32 +3049,53 @@
estree-walker "^2.0.1" estree-walker "^2.0.1"
picomatch "^2.2.2" picomatch "^2.2.2"
"@rushstack/node-core-library@3.53.2", "@rushstack/node-core-library@^3.53.2": "@rollup/pluginutils@^5.0.2":
version "3.53.2" version "5.0.2"
resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.53.2.tgz#f442e121f9e6c8bef9a23b7337e6399ab5c0c579" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz#012b8f53c71e4f6f9cb317e311df1404f56e7a33"
integrity sha512-FggLe5DQs0X9MNFeJN3/EXwb+8hyZUTEp2i+V1e8r4Va4JgkjBNY0BuEaQI+3DW6S4apV3UtXU3im17MSY00DA== integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==
dependencies:
"@types/estree" "^1.0.0"
estree-walker "^2.0.2"
picomatch "^2.3.1"
"@rushstack/node-core-library@3.59.0":
version "3.59.0"
resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.59.0.tgz#f04db22575a242c30114b4723ba0580b6f2d8c85"
integrity sha512-f8ilzooAu8vj60dDe7weqHvR1NujOaKfe3TaNgAoT22rk+daUTmDtY3TlVGJ3HayVPmw3ffWToDatITi7Ic4ag==
dependencies: dependencies:
"@types/node" "12.20.24"
colors "~1.2.1" colors "~1.2.1"
fs-extra "~7.0.1" fs-extra "~7.0.1"
import-lazy "~4.0.0" import-lazy "~4.0.0"
jju "~1.4.0" jju "~1.4.0"
resolve "~1.17.0" resolve "~1.22.1"
semver "~7.3.0" semver "~7.3.0"
z-schema "~5.0.2" z-schema "~5.0.2"
"@rushstack/rig-package@0.3.17": "@rushstack/node-core-library@^3.53.2":
version "0.3.17" version "3.59.7"
resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.3.17.tgz#687bd55603f2902447f3be246d93afac97095a1f" resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.59.7.tgz#9dcd62b79263e8a5b68465d4bf9124ec86e14b6c"
integrity sha512-nxvAGeIMnHl1LlZSQmacgcRV4y1EYtgcDIrw6KkeVjudOMonlxO482PhDj3LVZEp6L7emSf6YSO2s5JkHlwfZA== integrity sha512-ln1Drq0h+Hwa1JVA65x5mlSgUrBa1uHL+V89FqVWQgXd1vVIMhrtqtWGQrhTnFHxru5ppX+FY39VWELF/FjQCw==
dependencies: dependencies:
resolve "~1.17.0" colors "~1.2.1"
fs-extra "~7.0.1"
import-lazy "~4.0.0"
jju "~1.4.0"
resolve "~1.22.1"
semver "~7.5.4"
z-schema "~5.0.2"
"@rushstack/rig-package@0.3.18":
version "0.3.18"
resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.3.18.tgz#2b59eb8ed482e8cd6ad8d396414bf3200efdd682"
integrity sha512-SGEwNTwNq9bI3pkdd01yCaH+gAsHqs0uxfGvtw9b0LJXH52qooWXnrFTRRLG1aL9pf+M2CARdrA9HLHJys3jiQ==
dependencies:
resolve "~1.22.1"
strip-json-comments "~3.1.1" strip-json-comments "~3.1.1"
"@rushstack/ts-command-line@4.13.0": "@rushstack/ts-command-line@4.13.2":
version "4.13.0" version "4.13.2"
resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.13.0.tgz#a56aa90e5742c25d330cdb0cda1da19225d7bfcf" resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.13.2.tgz#2dfdcf418d58256671433b1da4a3b67e1814cc7a"
integrity sha512-crLT31kl+qilz0eBRjqqYO06CqwbElc0EvzS6jI69B9Ikt1SkkSzIZ2iDP7zt/rd1ZYipKIS9hf9CQR9swDIKg== integrity sha512-bCU8qoL9HyWiciltfzg7GqdfODUeda/JpI0602kbN5YH22rzTxyqYvv7aRLENCM7XCQ1VRs7nMkEqgJUOU8Sag==
dependencies: dependencies:
"@types/argparse" "1.0.38" "@types/argparse" "1.0.38"
argparse "~1.0.9" argparse "~1.0.9"
@@ -3148,12 +3174,12 @@
resolved "https://registry.yarnpkg.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz#db4ecfd499a9765ab24002c3b696d02e6d32a12c" resolved "https://registry.yarnpkg.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz#db4ecfd499a9765ab24002c3b696d02e6d32a12c"
integrity sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA== integrity sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==
"@ts-morph/common@~0.17.0": "@ts-morph/common@~0.18.0":
version "0.17.0" version "0.18.1"
resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.17.0.tgz#de0d405df10857907469fef8d9363893b4163fd1" resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.18.1.tgz#ca40c3a62c3f9e17142e0af42633ad63efbae0ec"
integrity sha512-RMSSvSfs9kb0VzkvQ2NWobwnj7TxCA9vI/IjR9bDHqgAyVbu2T0DN4wiKVqomyDWqO7dPr/tErSfq7urQ1Q37g== integrity sha512-RVE+zSRICWRsfrkAw5qCAK+4ZH9kwEFv5h0+/YeHTLieWP7F4wWq4JsKFuNWG+fYh/KF+8rAtgdj5zb2mm+DVA==
dependencies: dependencies:
fast-glob "^3.2.11" fast-glob "^3.2.12"
minimatch "^5.1.0" minimatch "^5.1.0"
mkdirp "^1.0.4" mkdirp "^1.0.4"
path-browserify "^1.0.1" path-browserify "^1.0.1"
@@ -3241,17 +3267,17 @@
resolved "https://registry.npmjs.org/@types/cssstyle/-/cssstyle-2.2.1.tgz#fa010824006ff47af94a6b9baf9759e031815347" resolved "https://registry.npmjs.org/@types/cssstyle/-/cssstyle-2.2.1.tgz#fa010824006ff47af94a6b9baf9759e031815347"
integrity sha512-CSQFKdZc3dmWoZXLAM0pPL6XiYLG8hMGzImM2MwQ9kavB5LnbeMGan94CCj4oxY65xMl5mRMwrFUfKPOWO4WpQ== integrity sha512-CSQFKdZc3dmWoZXLAM0pPL6XiYLG8hMGzImM2MwQ9kavB5LnbeMGan94CCj4oxY65xMl5mRMwrFUfKPOWO4WpQ==
"@types/dom-mediacapture-transform@^0.1.3": "@types/dom-mediacapture-transform@0.1.4":
version "0.1.3" version "0.1.4"
resolved "https://registry.yarnpkg.com/@types/dom-mediacapture-transform/-/dom-mediacapture-transform-0.1.3.tgz#ef0b5c7a3aeb0af7e35fe7f57b5700c9a479bfef" resolved "https://registry.yarnpkg.com/@types/dom-mediacapture-transform/-/dom-mediacapture-transform-0.1.4.tgz#f77c1b469f4c33513219dbca46201cf5bf0d082f"
integrity sha512-Zi2IOA+NFqPmqFojaOskEzUOABMHEouZg8vtwMt0MbppgTu1pOVg2zWQVvfjnCIgOj//CleXHhryvRKaykSVJw== integrity sha512-G4DI51gU3zp/nCFVP7O5dv3sZ7nVXy3Dqooup8tDhvdzUNeAMiC0XIFGiwH3UHPh/t6L5odMOHwB3BYlY86WKw==
dependencies: dependencies:
"@types/dom-webcodecs" "*" "@types/dom-webcodecs" "*"
"@types/dom-webcodecs@*": "@types/dom-webcodecs@*", "@types/dom-webcodecs@0.1.5":
version "0.1.4" version "0.1.5"
resolved "https://registry.yarnpkg.com/@types/dom-webcodecs/-/dom-webcodecs-0.1.4.tgz#90a3dd80e5baf72baa79a74cf410e63863992516" resolved "https://registry.yarnpkg.com/@types/dom-webcodecs/-/dom-webcodecs-0.1.5.tgz#2252fdb4a3229924d27f054242cc614e2cd5b83b"
integrity sha512-dc+xSUnCaCdi/hExZArnLhiavS3E1Rdpp2+zCI6TcmJvz4qgDPBbpvCM7DsQhwRXIIpVMHO6c3s+t+JyCSqYBA== integrity sha512-dsAE+4ws75W5mmNmIZ7IKZwv4bcz5GgPuA87u+Mk1CeVWB6g7ZwBfizRwBZDeyO12RSxoU3NlRa8jgLYQeSZGg==
"@types/estree@*": "@types/estree@*":
version "0.0.50" version "0.0.50"
@@ -3263,6 +3289,11 @@
resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz" resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz"
integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
"@types/estree@^1.0.0":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194"
integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==
"@types/fs-extra@11.0.1": "@types/fs-extra@11.0.1":
version "11.0.1" version "11.0.1"
resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-11.0.1.tgz#f542ec47810532a8a252127e6e105f487e0a6ea5" resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-11.0.1.tgz#f542ec47810532a8a252127e6e105f487e0a6ea5"
@@ -3400,11 +3431,6 @@
resolved "https://registry.npmjs.org/@types/node/-/node-16.4.0.tgz" resolved "https://registry.npmjs.org/@types/node/-/node-16.4.0.tgz"
integrity sha512-HrJuE7Mlqcjj+00JqMWpZ3tY8w7EUd+S0U3L1+PQSWiXZbOgyQDvi+ogoUxaHApPJq5diKxYBQwA3iIlNcPqOg== integrity sha512-HrJuE7Mlqcjj+00JqMWpZ3tY8w7EUd+S0U3L1+PQSWiXZbOgyQDvi+ogoUxaHApPJq5diKxYBQwA3iIlNcPqOg==
"@types/node@12.20.24":
version "12.20.24"
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.24.tgz#c37ac69cb2948afb4cef95f424fa0037971a9a5c"
integrity sha512-yxDeaQIAJlMav7fH5AQqPH1u8YIuhYJXYBzxaQ4PifsU0GDO38MSdmEDeRlIxrKbC6NbEaaEHDanWb+y30U8SQ==
"@types/node@^12.7.1": "@types/node@^12.7.1":
version "12.20.55" version "12.20.55"
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240"
@@ -3452,10 +3478,10 @@
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
"@types/pug@^2.0.4": "@types/pug@^2.0.6":
version "2.0.5" version "2.0.6"
resolved "https://registry.npmjs.org/@types/pug/-/pug-2.0.5.tgz" resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.6.tgz#f830323c88172e66826d0bde413498b61054b5a6"
integrity sha512-LOnASQoeNZMkzexRuyqcBBDZ6rS+rQxUMkmj5A0PkhhiSZivLIuz6Hxyr1mkGoEZEkk66faROmpMi4fFkrKsBA== integrity sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==
"@types/puppeteer@^1.12.4": "@types/puppeteer@^1.12.4":
version "1.20.8" version "1.20.8"
@@ -3499,13 +3525,6 @@
dependencies: dependencies:
"@types/node" "*" "@types/node" "*"
"@types/sass@^1.16.0":
version "1.16.1"
resolved "https://registry.npmjs.org/@types/sass/-/sass-1.16.1.tgz"
integrity sha512-iZUcRrGuz/Tbg3loODpW7vrQJkUtpY2fFSf4ELqqkApcS2TkZ1msk7ie8iZPB86lDOP8QOTTmuvWjc5S0R9OjQ==
dependencies:
"@types/node" "*"
"@types/scheduler@*": "@types/scheduler@*":
version "0.16.2" version "0.16.2"
resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
@@ -4615,7 +4634,7 @@ bser@2.1.1:
dependencies: dependencies:
node-int64 "^0.4.0" node-int64 "^0.4.0"
buffer-crc32@~0.2.3: buffer-crc32@^0.2.5, buffer-crc32@~0.2.3:
version "0.2.13" version "0.2.13"
resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz"
integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
@@ -5750,7 +5769,7 @@ destroy@~1.0.4:
resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"
integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
detect-indent@^6.0.0: detect-indent@^6.0.0, detect-indent@^6.1.0:
version "6.1.0" version "6.1.0"
resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz" resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz"
integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==
@@ -6161,6 +6180,11 @@ es6-error@4.1.1:
resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d"
integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==
es6-promise@^3.1.2:
version "3.3.1"
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613"
integrity sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==
es6-promisify@7.0.0: es6-promisify@7.0.0:
version "7.0.0" version "7.0.0"
resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-7.0.0.tgz#9a710008dd6a4ab75a89e280bad787bfb749927b" resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-7.0.0.tgz#9a710008dd6a4ab75a89e280bad787bfb749927b"
@@ -6744,7 +6768,7 @@ estree-walker@^1.0.1:
resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz" resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz"
integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==
estree-walker@^2.0.1: estree-walker@^2.0.1, estree-walker@^2.0.2:
version "2.0.2" version "2.0.2"
resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz"
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
@@ -6956,10 +6980,10 @@ fast-glob@^3.1.1:
merge2 "^1.3.0" merge2 "^1.3.0"
micromatch "^4.0.4" micromatch "^4.0.4"
fast-glob@^3.2.11, fast-glob@^3.2.12: fast-glob@^3.2.12, fast-glob@^3.2.7:
version "3.2.12" version "3.3.1"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4"
integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==
dependencies: dependencies:
"@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.stat" "^2.0.2"
"@nodelib/fs.walk" "^1.2.3" "@nodelib/fs.walk" "^1.2.3"
@@ -7686,6 +7710,11 @@ graceful-fs@^4.1.2:
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz"
integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
graceful-fs@^4.1.3:
version "4.2.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
graceful-fs@^4.1.5: graceful-fs@^4.1.5:
version "4.2.10" version "4.2.10"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
@@ -8326,6 +8355,13 @@ is-core-module@^2.1.0:
dependencies: dependencies:
has "^1.0.3" has "^1.0.3"
is-core-module@^2.13.0:
version "2.13.0"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db"
integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==
dependencies:
has "^1.0.3"
is-core-module@^2.2.0: is-core-module@^2.2.0:
version "2.5.0" version "2.5.0"
resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz"
@@ -10300,9 +10336,9 @@ kleur@^4.1.4:
integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==
kolorist@^1.6.0: kolorist@^1.6.0:
version "1.6.0" version "1.8.0"
resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.6.0.tgz#f43ac794305b30032a5bedcae7799d0f91d2ff36" resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.8.0.tgz#edddbbbc7894bc13302cdf740af6374d4a04743c"
integrity sha512-dLkz37Ab97HWMx9KTes3Tbi3D1ln9fCAy2zr2YVExJasDRPGRaKcoE4fycWNtnCAJfjFqe0cnY+f8KT2JePEXQ== integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==
latest-version@^5.1.0: latest-version@^5.1.0:
version "5.1.0" version "5.1.0"
@@ -10575,6 +10611,13 @@ magic-string@^0.26.2:
dependencies: dependencies:
sourcemap-codec "^1.4.8" sourcemap-codec "^1.4.8"
magic-string@^0.27.0:
version "0.27.0"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3"
integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==
dependencies:
"@jridgewell/sourcemap-codec" "^1.4.13"
make-dir@^3.0.0, make-dir@^3.0.2: make-dir@^3.0.0, make-dir@^3.0.2:
version "3.1.0" version "3.1.0"
resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz"
@@ -10851,9 +10894,9 @@ min-indent@^1.0.0:
brace-expansion "^1.1.7" brace-expansion "^1.1.7"
minimatch@^5.1.0: minimatch@^5.1.0:
version "5.1.0" version "5.1.6"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96"
integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==
dependencies: dependencies:
brace-expansion "^2.0.1" brace-expansion "^2.0.1"
@@ -12817,13 +12860,6 @@ resolve@^1.22.1:
path-parse "^1.0.7" path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0" supports-preserve-symlinks-flag "^1.0.0"
resolve@~1.17.0:
version "1.17.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
dependencies:
path-parse "^1.0.6"
resolve@~1.19.0: resolve@~1.19.0:
version "1.19.0" version "1.19.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c"
@@ -12832,6 +12868,15 @@ resolve@~1.19.0:
is-core-module "^2.1.0" is-core-module "^2.1.0"
path-parse "^1.0.6" path-parse "^1.0.6"
resolve@~1.22.1:
version "1.22.4"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34"
integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==
dependencies:
is-core-module "^2.13.0"
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
responselike@^1.0.2: responselike@^1.0.2:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7"
@@ -12869,7 +12914,7 @@ rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2:
dependencies: dependencies:
glob "^7.1.3" glob "^7.1.3"
rimraf@^2.6.2: rimraf@^2.5.2, rimraf@^2.6.2:
version "2.7.1" version "2.7.1"
resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz"
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
@@ -13102,6 +13147,16 @@ safe-stable-stringify@^2.1.0:
resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
sander@^0.5.0:
version "0.5.1"
resolved "https://registry.yarnpkg.com/sander/-/sander-0.5.1.tgz#741e245e231f07cafb6fdf0f133adfa216a502ad"
integrity sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==
dependencies:
es6-promise "^3.1.2"
graceful-fs "^4.1.3"
mkdirp "^0.5.1"
rimraf "^2.5.2"
sax@>=0.6.0, sax@~1.2.4: sax@>=0.6.0, sax@~1.2.4:
version "1.2.4" version "1.2.4"
resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz"
@@ -13171,7 +13226,7 @@ semver@^7.3.7:
dependencies: dependencies:
lru-cache "^6.0.0" lru-cache "^6.0.0"
semver@^7.5.3: semver@^7.5.3, semver@~7.5.4:
version "7.5.4" version "7.5.4"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
@@ -13402,6 +13457,16 @@ sonic-boom@^2.2.1:
dependencies: dependencies:
atomic-sleep "^1.0.0" atomic-sleep "^1.0.0"
sorcery@^0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/sorcery/-/sorcery-0.11.0.tgz#310c80ee993433854bb55bb9aa4003acd147fca8"
integrity sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==
dependencies:
"@jridgewell/sourcemap-codec" "^1.4.14"
buffer-crc32 "^0.2.5"
minimist "^1.2.0"
sander "^0.5.0"
source-map-js@^1.0.2: source-map-js@^1.0.2:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
@@ -13836,35 +13901,35 @@ supports-preserve-symlinks-flag@^1.0.0:
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
svelte-check@^1.4.0: svelte-check@^3.0.1:
version "1.6.0" version "3.4.6"
resolved "https://registry.npmjs.org/svelte-check/-/svelte-check-1.6.0.tgz" resolved "https://registry.yarnpkg.com/svelte-check/-/svelte-check-3.4.6.tgz#d43de724ad89d1198c96770e9d23965d3379ad44"
integrity sha512-nQTlbFJWhwoeLY5rkhgbjzGQSwk5F1pRdEXait0EFaQSrE/iJF+PIjrQlk0BjL/ogk9HaR9ZI0DQSYrl7jl3IQ== integrity sha512-OBlY8866Zh1zHQTkBMPS6psPi7o2umTUyj6JWm4SacnIHXpWFm658pG32m3dKvKFL49V4ntAkfFHKo4ztH07og==
dependencies: dependencies:
chalk "^4.0.0" "@jridgewell/trace-mapping" "^0.3.17"
chokidar "^3.4.1" chokidar "^3.4.1"
glob "^7.1.6" fast-glob "^3.2.7"
import-fresh "^3.2.1" import-fresh "^3.2.1"
minimist "^1.2.5" picocolors "^1.0.0"
sade "^1.7.4" sade "^1.7.4"
source-map "^0.7.3" svelte-preprocess "^5.0.4"
svelte-preprocess "^4.0.0" typescript "^5.0.3"
typescript "*"
svelte-preprocess@^4.0.0: svelte-preprocess@^5.0.0, svelte-preprocess@^5.0.4:
version "4.7.4" version "5.0.4"
resolved "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.7.4.tgz" resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-5.0.4.tgz#2123898e079a074f7f4ef1799e10e037f5bcc55b"
integrity sha512-mDAmaltQl6e5zU2VEtoWEf7eLTfuOTGr9zt+BpA3AGHo8MIhKiNSPE9OLTCTOMgj0vj/uL9QBbaNmpG4G1CgIA== integrity sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==
dependencies: dependencies:
"@types/pug" "^2.0.4" "@types/pug" "^2.0.6"
"@types/sass" "^1.16.0" detect-indent "^6.1.0"
detect-indent "^6.0.0" magic-string "^0.27.0"
sorcery "^0.11.0"
strip-indent "^3.0.0" strip-indent "^3.0.0"
svelte@^3.2.0: svelte@^3.59.2:
version "3.49.0" version "3.59.2"
resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.49.0.tgz#5baee3c672306de1070c3b7888fc2204e36a4029" resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.59.2.tgz#a137b28e025a181292b2ae2e3dca90bf8ec73aec"
integrity sha512-+lmjic1pApJWDfPCpUUTc1m8azDqYCG1JN9YEngrx/hUyIcFJo6VZhj0A1Ai0wqoHcEIuQy+e9tk+4uDgdtsFA== integrity sha512-vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA==
svgo@^1.0.0: svgo@^1.0.0:
version "1.3.2" version "1.3.2"
@@ -14173,12 +14238,12 @@ ts-jest@^29.1.1:
semver "^7.5.3" semver "^7.5.3"
yargs-parser "^21.0.1" yargs-parser "^21.0.1"
ts-morph@^16.0.0: ts-morph@17.0.1:
version "16.0.0" version "17.0.1"
resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-16.0.0.tgz#35caca7c286dd70e09e5f72af47536bf3b6a27af" resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-17.0.1.tgz#d85df4fcf9a1fcda1b331d52c00655f381c932d1"
integrity sha512-jGNF0GVpFj0orFw55LTsQxVYEUOCWBAbR5Ls7fTYE5pQsbW18ssTb/6UXx/GYAEjS+DQTp8VoTw0vqYMiaaQuw== integrity sha512-10PkHyXmrtsTvZSL+cqtJLTgFXkU43Gd0JCc0Rw6GchWbqKe0Rwgt1v3ouobTZwQzF1mGhDeAlWYBMGRV7y+3g==
dependencies: dependencies:
"@ts-morph/common" "~0.17.0" "@ts-morph/common" "~0.18.0"
code-block-writer "^11.0.3" code-block-writer "^11.0.3"
ts-node@^10.9.1: ts-node@^10.9.1:
@@ -14438,10 +14503,15 @@ typedarray@^0.0.6:
resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
typescript@*, typescript@^4.7.3: typescript@^4.9.5:
version "4.7.4" version "4.9.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
typescript@^5.0.3:
version "5.1.6"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274"
integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==
typescript@~4.8.4: typescript@~4.8.4:
version "4.8.4" version "4.8.4"
@@ -14716,18 +14786,19 @@ verror@1.10.0:
core-util-is "1.0.2" core-util-is "1.0.2"
extsprintf "^1.2.0" extsprintf "^1.2.0"
vite-plugin-dts@^1.6.6: vite-plugin-dts@^1.7.3:
version "1.6.6" version "1.7.3"
resolved "https://registry.yarnpkg.com/vite-plugin-dts/-/vite-plugin-dts-1.6.6.tgz#aa572d40cb371f91470b37300ab632cf83734ab7" resolved "https://registry.yarnpkg.com/vite-plugin-dts/-/vite-plugin-dts-1.7.3.tgz#cf0c243fff9ae3fc1f103987b97439b3bf813f15"
integrity sha512-XEZQlcAN5Bi1PWL0l/E08cI3VpjTCWY5x7C4/bVyC7lpS+/q9CDBCV8gGsqV97/g34N7gNNRNhqs8r0m6JAmIQ== integrity sha512-u3t45p6fTbzUPMkwYe0ESwuUeiRMlwdPfD3dRyDKUwLe2WmEYcFyVp2o9/ke2EMrM51lQcmNWdV9eLcgjD1/ng==
dependencies: dependencies:
"@microsoft/api-extractor" "^7.33.1" "@microsoft/api-extractor" "^7.33.5"
"@rollup/pluginutils" "^5.0.2"
"@rushstack/node-core-library" "^3.53.2" "@rushstack/node-core-library" "^3.53.2"
debug "^4.3.4" debug "^4.3.4"
fast-glob "^3.2.12" fast-glob "^3.2.12"
fs-extra "^10.1.0" fs-extra "^10.1.0"
kolorist "^1.6.0" kolorist "^1.6.0"
ts-morph "^16.0.0" ts-morph "17.0.1"
vite-plugin-web-extension@^1.4.5: vite-plugin-web-extension@^1.4.5:
version "1.4.5" version "1.4.5"