diff --git a/.changeset/nine-brooms-nail.md b/.changeset/nine-brooms-nail.md
new file mode 100644
index 00000000..253e33fa
--- /dev/null
+++ b/.changeset/nine-brooms-nail.md
@@ -0,0 +1,7 @@
+---
+'@cobalt-ui/plugin-css': patch
+'@cobalt-ui/core': patch
+'@cobalt-ui/cli': patch
+---
+
+Replace better-color-tools with culori for faster, more accurate color operations
diff --git a/docs/package.json b/docs/package.json
index 2ca70d37..c62691ad 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -22,7 +22,7 @@
"@cobalt-ui/core": "workspace:*",
"@cobalt-ui/plugin-css": "workspace:*",
"@cobalt-ui/plugin-sass": "workspace:*",
- "astro": "^2.9.3",
+ "astro": "^2.9.4",
"npm-run-all": "^4.1.5",
"sass": "^1.64.1",
"shiki": "^0.14.3",
diff --git a/docs/src/pages/docs/tokens/index.astro b/docs/src/pages/docs/tokens/index.astro
index 23e2290e..fbb41e87 100644
--- a/docs/src/pages/docs/tokens/index.astro
+++ b/docs/src/pages/docs/tokens/index.astro
@@ -59,7 +59,7 @@ const tokenDef = {
$value |
string |
- Though the spec limits valid colors to hex, Cobalt allows any valid CSS color, including OKLAB and OKLCH (parsed by better-color-tools) |
+ Though the spec limits valid colors to hex, Cobalt allows any color (parsed by culori, a fast and accurate color library) |
diff --git a/examples/salesforce/package.json b/examples/salesforce/package.json
index c67be4c3..4d39f297 100644
--- a/examples/salesforce/package.json
+++ b/examples/salesforce/package.json
@@ -13,7 +13,7 @@
"@cobalt-ui/plugin-js": "workspace:*",
"@cobalt-ui/plugin-sass": "workspace:*",
"@salesforce-ux/design-system": "^2.21.3",
- "better-color-tools": "^0.12.3",
+ "culori": "^3.2.0",
"postcss": "^8.4.26"
}
}
diff --git a/examples/salesforce/scripts/update.js b/examples/salesforce/scripts/update.js
index eb696102..96ba3da1 100644
--- a/examples/salesforce/scripts/update.js
+++ b/examples/salesforce/scripts/update.js
@@ -1,5 +1,5 @@
-import color from 'better-color-tools';
import themeOne from '@salesforce-ux/design-system/design-tokens/dist/theme-one-salesforce.common.js';
+import {formatHex, useMode, modeRgb} from 'culori/fn';
import fs from 'node:fs';
import {URL} from 'node:url';
@@ -9,6 +9,7 @@ const schema = JSON.parse(fs.readFileSync(tokensPath));
// color
const palette = Object.entries(themeOne).filter(([k]) => k.startsWith('palette'));
palette.sort((a, b) => a[0].localeCompare(b[0], 'en-us', {numeric: true}));
+const rgb = useMode(modeRgb);
for (const [colorName, value] of palette) {
schema.tokens.palette[
colorName
@@ -18,7 +19,7 @@ for (const [colorName, value] of palette) {
.toLocaleLowerCase()
] = {
type: 'color',
- value: color.from(value).hex,
+ value: formatHex(rgb(value)),
};
}
diff --git a/packages/cli/package.json b/packages/cli/package.json
index 0dc0e6a3..3a6bb922 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -42,8 +42,9 @@
"dependencies": {
"@cobalt-ui/core": "^1.3.0",
"@cobalt-ui/utils": "^1.1.1",
- "better-color-tools": "^0.12.3",
+ "@types/culori": "^2.0.0",
"chokidar": "^3.5.3",
+ "culori": "^3.2.0",
"dotenv": "^16.3.1",
"js-yaml": "^4.1.0",
"piscina": "^3.2.0",
@@ -51,8 +52,8 @@
"yargs-parser": "^21.1.1"
},
"devDependencies": {
- "@types/node": "^20.4.2",
- "execa": "^7.1.1",
+ "@types/node": "^20.4.5",
+ "execa": "^7.2.0",
"figma-api": "^1.11.0",
"npm-run-all": "^4.1.5",
"vitest": "^0.33.0"
diff --git a/packages/core/package.json b/packages/core/package.json
index 6d56057f..1da52bd0 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -38,11 +38,12 @@
},
"dependencies": {
"@cobalt-ui/utils": "^1.1.1",
- "better-color-tools": "^0.12.3"
+ "@types/culori": "^2.0.0",
+ "culori": "^3.2.0"
},
"devDependencies": {
- "@types/node": "^20.4.2",
- "esbuild": "^0.18.12",
+ "@types/node": "^20.4.5",
+ "esbuild": "^0.18.17",
"npm-run-all": "^4.1.5",
"vitest": "^0.33.0"
}
diff --git a/packages/core/src/parse/tokens/color.ts b/packages/core/src/parse/tokens/color.ts
index 48cceefc..dbba70a8 100644
--- a/packages/core/src/parse/tokens/color.ts
+++ b/packages/core/src/parse/tokens/color.ts
@@ -1,4 +1,4 @@
-import color from 'better-color-tools';
+import {formatHex, formatHex8, parse} from 'culori';
import type {ParsedColorToken} from '../../token.js';
export interface ParseColorOptions {
@@ -17,15 +17,13 @@ export interface ParseColorOptions {
*/
export function normalizeColorValue(value: unknown, options: ParseColorOptions): ParsedColorToken['$value'] {
if (!value) throw new Error('missing value');
- if (typeof value === 'string' || typeof value === 'number') {
- try {
- if (options.convertToHex === false && typeof value === 'string') {
- return value;
- }
- return color.from(value).hex;
- } catch (err) {
- throw new Error(`invalid color "${value}"`);
+ if (typeof value === 'string') {
+ if (options.convertToHex === false) {
+ return value;
}
+ const parsed = parse(value);
+ if (!parsed) throw new Error(`invalid color "${value}"`);
+ return typeof parsed.alpha === 'number' && parsed.alpha < 1 ? formatHex8(parsed) : formatHex(parsed);
}
throw new Error(`expected string, received ${typeof value}`);
}
diff --git a/packages/core/test/tokens-studio.test.ts b/packages/core/test/tokens-studio.test.ts
index dd5adaec..00e923a1 100644
--- a/packages/core/test/tokens-studio.test.ts
+++ b/packages/core/test/tokens-studio.test.ts
@@ -84,7 +84,6 @@ describe('Spacing', () => {
describe('Color', () => {
test('CSS color', () => {
- // note: better-color-tools will parse any CSS-valid color so we don’t need to be exhaustive here
const json = {
global: {
color: {
diff --git a/packages/plugin-css/package.json b/packages/plugin-css/package.json
index 8089f743..3c0d17eb 100644
--- a/packages/plugin-css/package.json
+++ b/packages/plugin-css/package.json
@@ -31,15 +31,16 @@
},
"dependencies": {
"@cobalt-ui/utils": "^1.1.1",
- "better-color-tools": "^0.12.3",
+ "@types/culori": "^2.0.0",
+ "@types/mime": "^3.0.1",
+ "culori": "^3.2.0",
"mime": "^3.0.0",
"svgo": "^3.0.2"
},
"devDependencies": {
"@cobalt-ui/cli": "^1.3.0",
"@cobalt-ui/core": "^1.3.0",
- "@types/mime": "^2.0.3",
- "@types/node": "^20.4.2",
+ "@types/node": "^20.4.5",
"npm-run-all": "^4.1.5",
"vitest": "^0.33.0"
}
diff --git a/packages/plugin-css/src/index.ts b/packages/plugin-css/src/index.ts
index e36bcf75..2c105c70 100644
--- a/packages/plugin-css/src/index.ts
+++ b/packages/plugin-css/src/index.ts
@@ -19,7 +19,7 @@ import type {
Plugin,
ResolvedConfig,
} from '@cobalt-ui/core';
-import color from 'better-color-tools';
+import {converter, formatCss} from 'culori';
import {indent, isAlias, kebabinate, FG_YELLOW, RESET} from '@cobalt-ui/utils';
import {encode, formatFontNames} from './util.js';
@@ -44,6 +44,9 @@ export interface Options {
p3?: boolean;
}
+/** ⚠️ Important! We do NOT want to parse as P3. We want to parse as sRGB, then expand 1:1 to P3. @see https://webkit.org/blog/10042/wide-gamut-color-in-css-with-display-p3/ */
+const rgb = converter('rgb');
+
export default function pluginCSS(options?: Options): Plugin {
let config: ResolvedConfig;
let filename = options?.filename || './tokens.css';
@@ -70,7 +73,9 @@ export default function pluginCSS(options?: Options): Plugin {
if (!matches || !matches.length) continue;
let newVal = line;
for (const c of matches) {
- newVal = newVal.replace(c, color.from(c).p3);
+ const parsed = rgb(c);
+ if (!parsed) throw new Error(`invalid color "${c}"`);
+ newVal = newVal.replace(c, formatCss({...parsed, mode: 'p3'}));
}
output.push(newVal);
}
diff --git a/packages/plugin-css/test/border/want.css b/packages/plugin-css/test/border/want.css
index 0e073193..a63b4172 100644
--- a/packages/plugin-css/test/border/want.css
+++ b/packages/plugin-css/test/border/want.css
@@ -22,17 +22,17 @@
@supports (color: color(display-p3 1 1 1)) {
:root {
- --ds-color-gray: color(display-p3 0.329412 0.278431 0.254902);
- --ds-border: 1px solid color(display-p3 0.05098 0.011765 0);
+ --ds-color-gray: color(display-p3 0.32941176470588235 0.2784313725490196 0.2549019607843137);
+ --ds-border: 1px solid color(display-p3 0.050980392156862744 0.011764705882352941 0);
}
[data-color-theme="light"] {
- --ds-color-gray: color(display-p3 0.329412 0.278431 0.254902);
- --ds-border: 1px solid color(display-p3 0.05098 0.011765 0);
+ --ds-color-gray: color(display-p3 0.32941176470588235 0.2784313725490196 0.2549019607843137);
+ --ds-border: 1px solid color(display-p3 0.050980392156862744 0.011764705882352941 0);
}
[data-color-theme="dark"] {
- --ds-color-gray: color(display-p3 0.733333 0.713725 0.701961);
+ --ds-color-gray: color(display-p3 0.7333333333333333 0.7137254901960784 0.7019607843137254);
--ds-border: 1px solid color(display-p3 1 1 1);
}
}
diff --git a/packages/plugin-css/test/color/want.css b/packages/plugin-css/test/color/want.css
index 178af654..ab383cb3 100644
--- a/packages/plugin-css/test/color/want.css
+++ b/packages/plugin-css/test/color/want.css
@@ -47,35 +47,35 @@
@supports (color: color(display-p3 1 1 1)) {
:root {
- --ds-color-blue: color(display-p3 0.129412 0.545098 1);
- --ds-gradient: color(display-p3 0.129412 0.545098 1) 0%, color(display-p3 0.909804 0.352941 0.678431) 100%;
+ --ds-color-blue: color(display-p3 0.12941176470588237 0.5450980392156862 1);
+ --ds-gradient: color(display-p3 0.12941176470588237 0.5450980392156862 1) 0%, color(display-p3 0.9098039215686274 0.35294117647058826 0.6784313725490196) 100%;
}
[data-color-theme="light"] {
- --ds-color-blue: color(display-p3 0.129412 0.545098 1);
+ --ds-color-blue: color(display-p3 0.12941176470588237 0.5450980392156862 1);
}
[data-color-theme="dark"] {
- --ds-color-blue: color(display-p3 0.219608 0.545098 0.992157);
+ --ds-color-blue: color(display-p3 0.2196078431372549 0.5450980392156862 0.9921568627450981);
}
[data-color-theme="light-colorblind"] {
- --ds-color-blue: color(display-p3 0.129412 0.545098 1);
+ --ds-color-blue: color(display-p3 0.12941176470588237 0.5450980392156862 1);
}
[data-color-theme="light-high-contrast"] {
- --ds-color-blue: color(display-p3 0.066667 0.407843 0.890196);
+ --ds-color-blue: color(display-p3 0.06666666666666667 0.40784313725490196 0.8901960784313725);
}
[data-color-theme="dark-dimmed"] {
- --ds-color-blue: color(display-p3 0.254902 0.517647 0.894118);
+ --ds-color-blue: color(display-p3 0.2549019607843137 0.5176470588235295 0.8941176470588236);
}
[data-color-theme="high-contrast"] {
- --ds-color-blue: color(display-p3 0.25098 0.619608 1);
+ --ds-color-blue: color(display-p3 0.25098039215686274 0.6196078431372549 1);
}
[data-color-theme="dark-colorblind"] {
- --ds-color-blue: color(display-p3 0.219608 0.545098 0.992157);
+ --ds-color-blue: color(display-p3 0.2196078431372549 0.5450980392156862 0.9921568627450981);
}
}
diff --git a/packages/plugin-js/package.json b/packages/plugin-js/package.json
index 7bb3ee0c..4bd931a0 100644
--- a/packages/plugin-js/package.json
+++ b/packages/plugin-js/package.json
@@ -36,7 +36,7 @@
"devDependencies": {
"@cobalt-ui/cli": "^1.3.0",
"@cobalt-ui/core": "^1.3.0",
- "fast-glob": "^3.3.0",
+ "fast-glob": "^3.3.1",
"npm-run-all": "^4.1.5",
"vitest": "^0.33.0"
}
diff --git a/packages/plugin-sass/package.json b/packages/plugin-sass/package.json
index 40eb727d..c4fa3027 100644
--- a/packages/plugin-sass/package.json
+++ b/packages/plugin-sass/package.json
@@ -30,7 +30,8 @@
"@cobalt-ui/cli": "^1.3.0"
},
"dependencies": {
- "@cobalt-ui/utils": "^1.1.1",
+ "@cobalt-ui/utils": "^1.1.0",
+ "@types/mime": "^3.0.1",
"mime": "^3.0.0",
"svgo": "^3.0.2"
},
@@ -38,8 +39,7 @@
"@cobalt-ui/cli": "^1.3.0",
"@cobalt-ui/core": "^1.3.0",
"@cobalt-ui/plugin-css": "^1.3.0",
- "@types/mime": "^3.0.1",
- "@types/node": "^20.4.2",
+ "@types/node": "^20.4.5",
"npm-run-all": "^4.1.5",
"vitest": "^0.33.0"
}
diff --git a/packages/plugin-sass/test/plugin-css/tokens.css b/packages/plugin-sass/test/plugin-css/tokens.css
index 471747cf..de622eec 100644
--- a/packages/plugin-sass/test/plugin-css/tokens.css
+++ b/packages/plugin-sass/test/plugin-css/tokens.css
@@ -36,9 +36,9 @@
@supports (color: color(display-p3 1 1 1)) {
:root {
- --ds-border-std: 1px solid color(display-p3 0.05098 0.011765 0);
+ --ds-border-std: 1px solid color(display-p3 0.050980392156862744 0.011764705882352941 0);
--ds-color-green: color(display-p3 0 1 0);
--ds-gradient-g-b: color(display-p3 0 1 0) 0%, color(display-p3 0 0 1) 100%;
- --ds-shadow: 0 4px 8px 0 color(display-p3 0 0 0/0.10196);
+ --ds-shadow: 0 4px 8px 0 color(display-p3 0 0 0 / 0.10196078431372549);
}
}
diff --git a/packages/utils/package.json b/packages/utils/package.json
index 53bb1124..88791b3c 100644
--- a/packages/utils/package.json
+++ b/packages/utils/package.json
@@ -14,6 +14,6 @@
"dev": "tsc -w"
},
"devDependencies": {
- "@types/node": "^20.4.2"
+ "@types/node": "^20.4.5"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1c49626e..914e6f6b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -64,8 +64,8 @@ importers:
specifier: workspace:*
version: link:../packages/plugin-sass
astro:
- specifier: ^2.9.3
- version: 2.9.3(sass@1.64.1)
+ specifier: ^2.9.4
+ version: 2.9.4(sass@1.64.1)
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
@@ -171,9 +171,9 @@ importers:
'@salesforce-ux/design-system':
specifier: ^2.21.3
version: 2.21.3(postcss@8.4.26)
- better-color-tools:
- specifier: ^0.12.3
- version: 0.12.3
+ culori:
+ specifier: ^3.2.0
+ version: 3.2.0
postcss:
specifier: ^8.4.26
version: 8.4.26
@@ -201,12 +201,15 @@ importers:
'@cobalt-ui/utils':
specifier: ^1.1.1
version: link:../utils
- better-color-tools:
- specifier: ^0.12.3
- version: 0.12.3
+ '@types/culori':
+ specifier: ^2.0.0
+ version: 2.0.0
chokidar:
specifier: ^3.5.3
version: 3.5.3
+ culori:
+ specifier: ^3.2.0
+ version: 3.2.0
dotenv:
specifier: ^16.3.1
version: 16.3.1
@@ -224,11 +227,11 @@ importers:
version: 21.1.1
devDependencies:
'@types/node':
- specifier: ^20.4.2
- version: 20.4.2
+ specifier: ^20.4.5
+ version: 20.4.5
execa:
- specifier: ^7.1.1
- version: 7.1.1
+ specifier: ^7.2.0
+ version: 7.2.0
figma-api:
specifier: ^1.11.0
version: 1.11.0
@@ -244,16 +247,19 @@ importers:
'@cobalt-ui/utils':
specifier: ^1.1.1
version: link:../utils
- better-color-tools:
- specifier: ^0.12.3
- version: 0.12.3
+ '@types/culori':
+ specifier: ^2.0.0
+ version: 2.0.0
+ culori:
+ specifier: ^3.2.0
+ version: 3.2.0
devDependencies:
'@types/node':
- specifier: ^20.4.2
- version: 20.4.2
+ specifier: ^20.4.5
+ version: 20.4.5
esbuild:
- specifier: ^0.18.12
- version: 0.18.12
+ specifier: ^0.18.17
+ version: 0.18.17
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
@@ -266,9 +272,15 @@ importers:
'@cobalt-ui/utils':
specifier: ^1.1.1
version: link:../utils
- better-color-tools:
- specifier: ^0.12.3
- version: 0.12.3
+ '@types/culori':
+ specifier: ^2.0.0
+ version: 2.0.0
+ '@types/mime':
+ specifier: ^3.0.1
+ version: 3.0.1
+ culori:
+ specifier: ^3.2.0
+ version: 3.2.0
mime:
specifier: ^3.0.0
version: 3.0.0
@@ -282,12 +294,9 @@ importers:
'@cobalt-ui/core':
specifier: ^1.3.0
version: link:../core
- '@types/mime':
- specifier: ^2.0.3
- version: 2.0.3
'@types/node':
- specifier: ^20.4.2
- version: 20.4.2
+ specifier: ^20.4.5
+ version: 20.4.5
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
@@ -308,8 +317,8 @@ importers:
specifier: ^1.3.0
version: link:../core
fast-glob:
- specifier: ^3.3.0
- version: 3.3.0
+ specifier: ^3.3.1
+ version: 3.3.1
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
@@ -320,8 +329,11 @@ importers:
packages/plugin-sass:
dependencies:
'@cobalt-ui/utils':
- specifier: ^1.1.1
+ specifier: ^1.1.0
version: link:../utils
+ '@types/mime':
+ specifier: ^3.0.1
+ version: 3.0.1
mime:
specifier: ^3.0.0
version: 3.0.0
@@ -338,12 +350,9 @@ importers:
'@cobalt-ui/plugin-css':
specifier: ^1.3.0
version: link:../plugin-css
- '@types/mime':
- specifier: ^3.0.1
- version: 3.0.1
'@types/node':
- specifier: ^20.4.2
- version: 20.4.2
+ specifier: ^20.4.5
+ version: 20.4.5
npm-run-all:
specifier: ^4.1.5
version: 4.1.5
@@ -354,8 +363,8 @@ importers:
packages/utils:
devDependencies:
'@types/node':
- specifier: ^20.4.2
- version: 20.4.2
+ specifier: ^20.4.5
+ version: 20.4.5
packages:
@@ -376,8 +385,8 @@ packages:
resolution: {integrity: sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==}
dev: false
- /@astrojs/compiler@1.6.2:
- resolution: {integrity: sha512-2grH0lSm/Su88ZUd1kF0OdR/CT4ClWKvCwVz4yDdpgLgpzXhs1LdO2V58YfSqnx/z+G5EBWv6yEkp3tDG3GQYQ==}
+ /@astrojs/compiler@1.6.3:
+ resolution: {integrity: sha512-n0xTuBznKspc0plk6RHBOlSv/EwQGyMNSxEOPj7HMeiRNnXX4woeSopN9hQsLkqraDds1eRvB4u99buWgVNJig==}
dev: true
/@astrojs/internal-helpers@0.1.1:
@@ -388,7 +397,7 @@ packages:
resolution: {integrity: sha512-gssRxLGb8XnvKpqSzrDW5jdzdFnXD7eBXVkPCkkt2hv7Qzb+SAzv6hVgMok3jDCxpR1aeB+XNd9Qszj2h29iog==}
hasBin: true
dependencies:
- '@astrojs/compiler': 1.6.2
+ '@astrojs/compiler': 1.6.3
'@jridgewell/trace-mapping': 0.3.18
'@vscode/emmet-helper': 2.9.2
events: 3.3.0
@@ -403,13 +412,13 @@ packages:
vscode-uri: 3.0.7
dev: true
- /@astrojs/markdown-remark@2.2.1(astro@2.9.3):
+ /@astrojs/markdown-remark@2.2.1(astro@2.9.4):
resolution: {integrity: sha512-VF0HRv4GpC1XEMLnsKf6jth7JSmlt9qpqP0josQgA2eSpCIAC/Et+y94mgdBIZVBYH/yFnMoIxgKVe93xfO2GA==}
peerDependencies:
astro: ^2.5.0
dependencies:
'@astrojs/prism': 2.1.2
- astro: 2.9.3(sass@1.64.1)
+ astro: 2.9.4(sass@1.64.1)
github-slugger: 1.5.0
import-meta-resolve: 2.2.2
rehype-raw: 6.1.1
@@ -944,15 +953,6 @@ packages:
dev: true
optional: true
- /@esbuild/android-arm64@0.18.12:
- resolution: {integrity: sha512-BMAlczRqC/LUt2P97E4apTBbkvS9JTJnp2DKFbCwpZ8vBvXVbNdqmvzW/OsdtI/+mGr+apkkpqGM8WecLkPgrA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/android-arm64@0.18.17:
resolution: {integrity: sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==}
engines: {node: '>=12'}
@@ -971,15 +971,6 @@ packages:
dev: true
optional: true
- /@esbuild/android-arm@0.18.12:
- resolution: {integrity: sha512-LIxaNIQfkFZbTLb4+cX7dozHlAbAshhFE5PKdro0l+FnCpx1GDJaQ2WMcqm+ToXKMt8p8Uojk/MFRuGyz3V5Sw==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/android-arm@0.18.17:
resolution: {integrity: sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==}
engines: {node: '>=12'}
@@ -998,15 +989,6 @@ packages:
dev: true
optional: true
- /@esbuild/android-x64@0.18.12:
- resolution: {integrity: sha512-zU5MyluNsykf5cOJ0LZZZjgAHbhPJ1cWfdH1ZXVMXxVMhEV0VZiZXQdwBBVvmvbF28EizeK7obG9fs+fpmS0eQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/android-x64@0.18.17:
resolution: {integrity: sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==}
engines: {node: '>=12'}
@@ -1025,15 +1007,6 @@ packages:
dev: true
optional: true
- /@esbuild/darwin-arm64@0.18.12:
- resolution: {integrity: sha512-zUZMep7YONnp6954QOOwEBwFX9svlKd3ov6PkxKd53LGTHsp/gy7vHaPGhhjBmEpqXEXShi6dddjIkmd+NgMsA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/darwin-arm64@0.18.17:
resolution: {integrity: sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==}
engines: {node: '>=12'}
@@ -1052,15 +1025,6 @@ packages:
dev: true
optional: true
- /@esbuild/darwin-x64@0.18.12:
- resolution: {integrity: sha512-ohqLPc7i67yunArPj1+/FeeJ7AgwAjHqKZ512ADk3WsE3FHU9l+m5aa7NdxXr0HmN1bjDlUslBjWNbFlD9y12Q==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/darwin-x64@0.18.17:
resolution: {integrity: sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==}
engines: {node: '>=12'}
@@ -1079,15 +1043,6 @@ packages:
dev: true
optional: true
- /@esbuild/freebsd-arm64@0.18.12:
- resolution: {integrity: sha512-GIIHtQXqgeOOqdG16a/A9N28GpkvjJnjYMhOnXVbn3EDJcoItdR58v/pGN31CHjyXDc8uCcRnFWmqaJt24AYJg==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/freebsd-arm64@0.18.17:
resolution: {integrity: sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==}
engines: {node: '>=12'}
@@ -1106,15 +1061,6 @@ packages:
dev: true
optional: true
- /@esbuild/freebsd-x64@0.18.12:
- resolution: {integrity: sha512-zK0b9a1/0wZY+6FdOS3BpZcPc1kcx2G5yxxfEJtEUzVxI6n/FrC2Phsxj/YblPuBchhBZ/1wwn7AyEBUyNSa6g==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/freebsd-x64@0.18.17:
resolution: {integrity: sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==}
engines: {node: '>=12'}
@@ -1133,15 +1079,6 @@ packages:
dev: true
optional: true
- /@esbuild/linux-arm64@0.18.12:
- resolution: {integrity: sha512-JKgG8Q/LL/9sw/iHHxQyVMoQYu3rU3+a5Z87DxC+wAu3engz+EmctIrV+FGOgI6gWG1z1+5nDDbXiRMGQZXqiw==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/linux-arm64@0.18.17:
resolution: {integrity: sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==}
engines: {node: '>=12'}
@@ -1160,15 +1097,6 @@ packages:
dev: true
optional: true
- /@esbuild/linux-arm@0.18.12:
- resolution: {integrity: sha512-y75OijvrBE/1XRrXq1jtrJfG26eHeMoqLJ2dwQNwviwTuTtHGCojsDO6BJNF8gU+3jTn1KzJEMETytwsFSvc+Q==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/linux-arm@0.18.17:
resolution: {integrity: sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==}
engines: {node: '>=12'}
@@ -1187,15 +1115,6 @@ packages:
dev: true
optional: true
- /@esbuild/linux-ia32@0.18.12:
- resolution: {integrity: sha512-yoRIAqc0B4lDIAAEFEIu9ttTRFV84iuAl0KNCN6MhKLxNPfzwCBvEMgwco2f71GxmpBcTtn7KdErueZaM2rEvw==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/linux-ia32@0.18.17:
resolution: {integrity: sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==}
engines: {node: '>=12'}
@@ -1214,15 +1133,6 @@ packages:
dev: true
optional: true
- /@esbuild/linux-loong64@0.18.12:
- resolution: {integrity: sha512-qYgt3dHPVvf/MgbIBpJ4Sup/yb9DAopZ3a2JgMpNKIHUpOdnJ2eHBo/aQdnd8dJ21X/+sS58wxHtA9lEazYtXQ==}
- engines: {node: '>=12'}
- cpu: [loong64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/linux-loong64@0.18.17:
resolution: {integrity: sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==}
engines: {node: '>=12'}
@@ -1241,15 +1151,6 @@ packages:
dev: true
optional: true
- /@esbuild/linux-mips64el@0.18.12:
- resolution: {integrity: sha512-wHphlMLK4ufNOONqukELfVIbnGQJrHJ/mxZMMrP2jYrPgCRZhOtf0kC4yAXBwnfmULimV1qt5UJJOw4Kh13Yfg==}
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/linux-mips64el@0.18.17:
resolution: {integrity: sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==}
engines: {node: '>=12'}
@@ -1268,15 +1169,6 @@ packages:
dev: true
optional: true
- /@esbuild/linux-ppc64@0.18.12:
- resolution: {integrity: sha512-TeN//1Ft20ZZW41+zDSdOI/Os1bEq5dbvBvYkberB7PHABbRcsteeoNVZFlI0YLpGdlBqohEpjrn06kv8heCJg==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/linux-ppc64@0.18.17:
resolution: {integrity: sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==}
engines: {node: '>=12'}
@@ -1295,15 +1187,6 @@ packages:
dev: true
optional: true
- /@esbuild/linux-riscv64@0.18.12:
- resolution: {integrity: sha512-AgUebVS4DoAblBgiB2ACQ/8l4eGE5aWBb8ZXtkXHiET9mbj7GuWt3OnsIW/zX+XHJt2RYJZctbQ2S/mDjbp0UA==}
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/linux-riscv64@0.18.17:
resolution: {integrity: sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==}
engines: {node: '>=12'}
@@ -1322,15 +1205,6 @@ packages:
dev: true
optional: true
- /@esbuild/linux-s390x@0.18.12:
- resolution: {integrity: sha512-dJ3Rb3Ei2u/ysSXd6pzleGtfDdc2MuzKt8qc6ls8vreP1G3B7HInX3i7gXS4BGeVd24pp0yqyS7bJ5NHaI9ing==}
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/linux-s390x@0.18.17:
resolution: {integrity: sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==}
engines: {node: '>=12'}
@@ -1349,15 +1223,6 @@ packages:
dev: true
optional: true
- /@esbuild/linux-x64@0.18.12:
- resolution: {integrity: sha512-OrNJMGQbPaVyHHcDF8ybNSwu7TDOfX8NGpXCbetwOSP6txOJiWlgQnRymfC9ocR1S0Y5PW0Wb1mV6pUddqmvmQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/linux-x64@0.18.17:
resolution: {integrity: sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==}
engines: {node: '>=12'}
@@ -1376,15 +1241,6 @@ packages:
dev: true
optional: true
- /@esbuild/netbsd-x64@0.18.12:
- resolution: {integrity: sha512-55FzVCAiwE9FK8wWeCRuvjazNRJ1QqLCYGZVB6E8RuQuTeStSwotpSW4xoRGwp3a1wUsaVCdYcj5LGCASVJmMg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/netbsd-x64@0.18.17:
resolution: {integrity: sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==}
engines: {node: '>=12'}
@@ -1403,15 +1259,6 @@ packages:
dev: true
optional: true
- /@esbuild/openbsd-x64@0.18.12:
- resolution: {integrity: sha512-qnluf8rfb6Y5Lw2tirfK2quZOBbVqmwxut7GPCIJsM8lc4AEUj9L8y0YPdLaPK0TECt4IdyBdBD/KRFKorlK3g==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/openbsd-x64@0.18.17:
resolution: {integrity: sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==}
engines: {node: '>=12'}
@@ -1430,15 +1277,6 @@ packages:
dev: true
optional: true
- /@esbuild/sunos-x64@0.18.12:
- resolution: {integrity: sha512-+RkKpVQR7bICjTOPUpkTBTaJ4TFqQBX5Ywyd/HSdDkQGn65VPkTsR/pL4AMvuMWy+wnXgIl4EY6q4mVpJal8Kg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/sunos-x64@0.18.17:
resolution: {integrity: sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==}
engines: {node: '>=12'}
@@ -1457,15 +1295,6 @@ packages:
dev: true
optional: true
- /@esbuild/win32-arm64@0.18.12:
- resolution: {integrity: sha512-GNHuciv0mFM7ouzsU0+AwY+7eV4Mgo5WnbhfDCQGtpvOtD1vbOiRjPYG6dhmMoFyBjj+pNqQu2X+7DKn0KQ/Gw==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/win32-arm64@0.18.17:
resolution: {integrity: sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==}
engines: {node: '>=12'}
@@ -1484,15 +1313,6 @@ packages:
dev: true
optional: true
- /@esbuild/win32-ia32@0.18.12:
- resolution: {integrity: sha512-kR8cezhYipbbypGkaqCTWIeu4zID17gamC8YTPXYtcN3E5BhhtTnwKBn9I0PJur/T6UVwIEGYzkffNL0lFvxEw==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/win32-ia32@0.18.17:
resolution: {integrity: sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==}
engines: {node: '>=12'}
@@ -1511,15 +1331,6 @@ packages:
dev: true
optional: true
- /@esbuild/win32-x64@0.18.12:
- resolution: {integrity: sha512-O0UYQVkvfM/jO8a4OwoV0mAKSJw+mjWTAd1MJd/1FCX6uiMdLmMRPK/w6e9OQ0ob2WGxzIm9va/KG0Ja4zIOgg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/win32-x64@0.18.17:
resolution: {integrity: sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==}
engines: {node: '>=12'}
@@ -1746,6 +1557,10 @@ packages:
resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==}
dev: true
+ /@types/culori@2.0.0:
+ resolution: {integrity: sha512-bKpEra39sQS9UZ+1JoWhuGJEzwKS0dUkNCohVYmn6CAEBkqyIXimKiPDRZWtiOB7sKgkWMaTUpHFimygRoGIlg==}
+ dev: false
+
/@types/debug@4.1.8:
resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==}
dependencies:
@@ -1782,13 +1597,9 @@ packages:
'@types/unist': 2.0.7
dev: true
- /@types/mime@2.0.3:
- resolution: {integrity: sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==}
- dev: true
-
/@types/mime@3.0.1:
resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==}
- dev: true
+ dev: false
/@types/minimist@1.2.2:
resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==}
@@ -1812,8 +1623,8 @@ packages:
resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
dev: true
- /@types/node@20.4.2:
- resolution: {integrity: sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==}
+ /@types/node@20.4.5:
+ resolution: {integrity: sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==}
dev: true
/@types/normalize-package-data@2.4.1:
@@ -1991,9 +1802,9 @@ packages:
/@vitest/snapshot@0.33.0:
resolution: {integrity: sha512-tJjrl//qAHbyHajpFvr8Wsk8DIOODEebTu7pgBrP07iOepR5jYkLFiqLq2Ltxv+r0uptUb4izv1J8XBOwKkVYA==}
dependencies:
- magic-string: 0.30.1
+ magic-string: 0.30.2
pathe: 1.1.1
- pretty-format: 29.6.1
+ pretty-format: 29.6.2
dev: true
/@vitest/spy@0.33.0:
@@ -2007,7 +1818,7 @@ packages:
dependencies:
diff-sequences: 29.4.3
loupe: 2.3.6
- pretty-format: 29.6.1
+ pretty-format: 29.6.2
dev: true
/@vscode/emmet-helper@2.9.2:
@@ -2081,8 +1892,8 @@ packages:
engines: {node: '>=12'}
dev: true
- /ansi-sequence-parser@1.1.0:
- resolution: {integrity: sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==}
+ /ansi-sequence-parser@1.1.1:
+ resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==}
dev: true
/ansi-styles@3.2.1:
@@ -2172,8 +1983,8 @@ packages:
resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
dev: true
- /astro@2.9.3(sass@1.64.1):
- resolution: {integrity: sha512-EcFYnJytMgDhBf1MxWIG1GNwfDL2yRvVt+4aguYbcFDNz8EjLKgpLYbbTzR2VlIQu1vpxImZZ0bmPy8Hd+tAfw==}
+ /astro@2.9.4(sass@1.64.1):
+ resolution: {integrity: sha512-6mIAFTkfrLn1aAOVO7clTz3NqJNyPdJXLZEkAFTl+s5iuaIdoYnuqItkcjWP1qoEeGPF+0w9rTr0388pkTK+lg==}
engines: {node: '>=16.12.0', npm: '>=6.14.0'}
hasBin: true
peerDependencies:
@@ -2182,10 +1993,10 @@ packages:
sharp:
optional: true
dependencies:
- '@astrojs/compiler': 1.6.2
+ '@astrojs/compiler': 1.6.3
'@astrojs/internal-helpers': 0.1.1
'@astrojs/language-server': 1.0.8
- '@astrojs/markdown-remark': 2.2.1(astro@2.9.3)
+ '@astrojs/markdown-remark': 2.2.1(astro@2.9.4)
'@astrojs/telemetry': 2.1.1
'@astrojs/webapi': 2.2.0
'@babel/core': 7.22.9
@@ -2275,9 +2086,6 @@ packages:
/base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- /better-color-tools@0.12.3:
- resolution: {integrity: sha512-0XEdDUO1JpAM1++x7dYJA6ggRypAkGbGHWsD/eirddkC8p+5qNU1nbfOwraqMDsJr6ttktpeqEI0VH3VS+ZkPw==}
-
/better-path-resolve@1.0.0:
resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
engines: {node: '>=4'}
@@ -2352,7 +2160,7 @@ packages:
hasBin: true
dependencies:
caniuse-lite: 1.0.30001517
- electron-to-chromium: 1.4.471
+ electron-to-chromium: 1.4.475
node-releases: 2.0.13
update-browserslist-db: 1.0.11(browserslist@4.21.9)
dev: true
@@ -2685,6 +2493,10 @@ packages:
stream-transform: 2.1.3
dev: true
+ /culori@3.2.0:
+ resolution: {integrity: sha512-HIEbTSP7vs1mPq/2P9In6QyFE0Tkpevh0k9a+FkjhD+cwsYm9WRSbn4uMdW9O0yXlNYC3ppxL3gWWPOcvEl57w==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
/dataloader@1.4.0:
resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==}
dev: true
@@ -2755,7 +2567,7 @@ packages:
dependencies:
bundle-name: 3.0.0
default-browser-id: 3.0.0
- execa: 7.1.1
+ execa: 7.2.0
titleize: 3.0.0
dev: true
@@ -2889,8 +2701,8 @@ packages:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
dev: true
- /electron-to-chromium@1.4.471:
- resolution: {integrity: sha512-GpmGRC1vTl60w/k6YpQ18pSiqnmr0j3un//5TV1idPi6aheNfkT1Ye71tMEabWyNDO6sBMgAR+95Eb0eUUr1tA==}
+ /electron-to-chromium@1.4.475:
+ resolution: {integrity: sha512-mTye5u5P98kSJO2n7zYALhpJDmoSQejIGya0iR01GpoRady8eK3bw7YHHnjA1Rfi4ZSLdpuzlAC7Zw+1Zu7Z6A==}
dev: true
/emmet@2.4.5:
@@ -2926,87 +2738,6 @@ packages:
is-arrayish: 0.2.1
dev: true
- /es-abstract@1.21.2:
- resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==}
- engines: {node: '>= 0.4'}
- dependencies:
- array-buffer-byte-length: 1.0.0
- available-typed-arrays: 1.0.5
- call-bind: 1.0.2
- es-set-tostringtag: 2.0.1
- es-to-primitive: 1.2.1
- function.prototype.name: 1.1.5
- get-intrinsic: 1.2.1
- get-symbol-description: 1.0.0
- globalthis: 1.0.3
- gopd: 1.0.1
- has: 1.0.3
- has-property-descriptors: 1.0.0
- has-proto: 1.0.1
- has-symbols: 1.0.3
- internal-slot: 1.0.5
- is-array-buffer: 3.0.2
- is-callable: 1.2.7
- is-negative-zero: 2.0.2
- is-regex: 1.1.4
- is-shared-array-buffer: 1.0.2
- is-string: 1.0.7
- is-typed-array: 1.1.10
- is-weakref: 1.0.2
- object-inspect: 1.12.3
- object-keys: 1.1.1
- object.assign: 4.1.4
- regexp.prototype.flags: 1.5.0
- safe-regex-test: 1.0.0
- string.prototype.trim: 1.2.7
- string.prototype.trimend: 1.0.6
- string.prototype.trimstart: 1.0.6
- typed-array-length: 1.0.4
- unbox-primitive: 1.0.2
- which-typed-array: 1.1.9
- dev: true
-
- /es-abstract@1.21.3:
- resolution: {integrity: sha512-ZU4miiY1j3sGPFLJ34VJXEqhpmL+HGByCinGHv4HC+Fxl2fI2Z4yR6tl0mORnDr6PA8eihWo4LmSWDbvhALckg==}
- engines: {node: '>= 0.4'}
- dependencies:
- array-buffer-byte-length: 1.0.0
- available-typed-arrays: 1.0.5
- call-bind: 1.0.2
- es-set-tostringtag: 2.0.1
- es-to-primitive: 1.2.1
- function.prototype.name: 1.1.5
- get-intrinsic: 1.2.1
- get-symbol-description: 1.0.0
- globalthis: 1.0.3
- gopd: 1.0.1
- has: 1.0.3
- has-property-descriptors: 1.0.0
- has-proto: 1.0.1
- has-symbols: 1.0.3
- internal-slot: 1.0.5
- is-array-buffer: 3.0.2
- is-callable: 1.2.7
- is-negative-zero: 2.0.2
- is-regex: 1.1.4
- is-shared-array-buffer: 1.0.2
- is-string: 1.0.7
- is-typed-array: 1.1.10
- is-weakref: 1.0.2
- object-inspect: 1.12.3
- object-keys: 1.1.1
- object.assign: 4.1.4
- regexp.prototype.flags: 1.5.0
- safe-regex-test: 1.0.0
- string.prototype.trim: 1.2.7
- string.prototype.trimend: 1.0.6
- string.prototype.trimstart: 1.0.6
- typed-array-byte-offset: 1.0.0
- typed-array-length: 1.0.4
- unbox-primitive: 1.0.2
- which-typed-array: 1.1.10
- dev: true
-
/es-abstract@1.22.1:
resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==}
engines: {node: '>= 0.4'}
@@ -3110,36 +2841,6 @@ packages:
'@esbuild/win32-x64': 0.17.19
dev: true
- /esbuild@0.18.12:
- resolution: {integrity: sha512-XuOVLDdtsDslXStStduT41op21Ytmf4/BDS46aa3xPJ7X5h2eMWBF1oAe3QjUH3bDksocNXgzGUZ7XHIBya6Tg==}
- engines: {node: '>=12'}
- hasBin: true
- requiresBuild: true
- optionalDependencies:
- '@esbuild/android-arm': 0.18.12
- '@esbuild/android-arm64': 0.18.12
- '@esbuild/android-x64': 0.18.12
- '@esbuild/darwin-arm64': 0.18.12
- '@esbuild/darwin-x64': 0.18.12
- '@esbuild/freebsd-arm64': 0.18.12
- '@esbuild/freebsd-x64': 0.18.12
- '@esbuild/linux-arm': 0.18.12
- '@esbuild/linux-arm64': 0.18.12
- '@esbuild/linux-ia32': 0.18.12
- '@esbuild/linux-loong64': 0.18.12
- '@esbuild/linux-mips64el': 0.18.12
- '@esbuild/linux-ppc64': 0.18.12
- '@esbuild/linux-riscv64': 0.18.12
- '@esbuild/linux-s390x': 0.18.12
- '@esbuild/linux-x64': 0.18.12
- '@esbuild/netbsd-x64': 0.18.12
- '@esbuild/openbsd-x64': 0.18.12
- '@esbuild/sunos-x64': 0.18.12
- '@esbuild/win32-arm64': 0.18.12
- '@esbuild/win32-ia32': 0.18.12
- '@esbuild/win32-x64': 0.18.12
- dev: true
-
/esbuild@0.18.17:
resolution: {integrity: sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==}
engines: {node: '>=12'}
@@ -3357,8 +3058,8 @@ packages:
strip-final-newline: 3.0.0
dev: true
- /execa@7.1.1:
- resolution: {integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==}
+ /execa@7.2.0:
+ resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==}
engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0}
dependencies:
cross-spawn: 7.0.3
@@ -3404,17 +3105,6 @@ packages:
resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
dev: true
- /fast-glob@3.3.0:
- resolution: {integrity: sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==}
- engines: {node: '>=8.6.0'}
- dependencies:
- '@nodelib/fs.stat': 2.0.5
- '@nodelib/fs.walk': 1.2.8
- glob-parent: 5.1.2
- merge2: 1.4.1
- micromatch: 4.0.5
- dev: true
-
/fast-glob@3.3.1:
resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
engines: {node: '>=8.6.0'}
@@ -3552,7 +3242,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
- es-abstract: 1.21.3
+ es-abstract: 1.22.1
functions-have-names: 1.2.3
dev: true
@@ -3933,7 +3623,7 @@ packages:
dependencies:
call-bind: 1.0.2
get-intrinsic: 1.2.1
- is-typed-array: 1.1.10
+ is-typed-array: 1.1.12
dev: true
/is-arrayish@0.2.1:
@@ -4344,8 +4034,8 @@ packages:
'@jridgewell/sourcemap-codec': 1.4.15
dev: true
- /magic-string@0.30.1:
- resolution: {integrity: sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==}
+ /magic-string@0.30.2:
+ resolution: {integrity: sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==}
engines: {node: '>=12'}
dependencies:
'@jridgewell/sourcemap-codec': 1.4.15
@@ -4848,15 +4538,6 @@ packages:
engines: {node: '>= 8.0.0'}
dev: true
- /mlly@1.3.0:
- resolution: {integrity: sha512-HT5mcgIQKkOrZecOjOX3DJorTikWXwsBfpcr/MGBkhfWcjiqvnaL/9ppxvIUXfjT6xt4DVIAsN9fMUz1ev4bIw==}
- dependencies:
- acorn: 8.10.0
- pathe: 1.1.1
- pkg-types: 1.0.3
- ufo: 1.1.2
- dev: true
-
/mlly@1.4.0:
resolution: {integrity: sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==}
dependencies:
@@ -5298,7 +4979,7 @@ packages:
resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==}
dependencies:
jsonc-parser: 3.2.0
- mlly: 1.3.0
+ mlly: 1.4.0
pathe: 1.1.1
dev: true
@@ -5346,7 +5027,7 @@ packages:
resolution: {integrity: sha512-pYZXSbdq0eElvzoIMArzv1SBn1NUXzopjlcnt6Ql8VW32PjC12NovwBjXJ6rh8qQLi7vF8jNqAbraKW03UPfag==}
engines: {node: ^14.15.0 || >=16.0.0, pnpm: '>=7.14.0'}
dependencies:
- '@astrojs/compiler': 1.6.2
+ '@astrojs/compiler': 1.6.3
prettier: 2.8.8
sass-formatter: 0.7.6
synckit: 0.8.5
@@ -5358,8 +5039,8 @@ packages:
hasBin: true
dev: true
- /pretty-format@29.6.1:
- resolution: {integrity: sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==}
+ /pretty-format@29.6.2:
+ resolution: {integrity: sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/schemas': 29.6.0
@@ -5807,7 +5488,7 @@ packages:
/shiki@0.14.3:
resolution: {integrity: sha512-U3S/a+b0KS+UkTyMjoNojvTgrBHjgp7L6ovhFVZsXmBGnVdQ4K4U9oK0z63w538S91ATngv1vXigHCSWOwnr+g==}
dependencies:
- ansi-sequence-parser: 1.1.0
+ ansi-sequence-parser: 1.1.1
jsonc-parser: 3.2.0
vscode-oniguruma: 1.7.0
vscode-textmate: 8.0.0
@@ -5942,7 +5623,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
- es-abstract: 1.21.3
+ es-abstract: 1.22.1
dev: true
/string.prototype.trim@1.2.7:
@@ -5951,7 +5632,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
- es-abstract: 1.21.2
+ es-abstract: 1.22.1
dev: true
/string.prototype.trimend@1.0.6:
@@ -5959,7 +5640,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
- es-abstract: 1.21.2
+ es-abstract: 1.22.1
dev: true
/string.prototype.trimstart@1.0.6:
@@ -5967,7 +5648,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
- es-abstract: 1.21.2
+ es-abstract: 1.22.1
dev: true
/string_decoder@1.3.0:
@@ -6443,7 +6124,7 @@ packages:
vfile-message: 3.1.4
dev: true
- /vite-node@0.33.0(@types/node@20.4.2):
+ /vite-node@0.33.0(@types/node@20.4.5):
resolution: {integrity: sha512-19FpHYbwWWxDr73ruNahC+vtEdza52kA90Qb3La98yZ0xULqV8A5JLNPUff0f5zID4984tW7l3DH2przTJUZSw==}
engines: {node: '>=v14.18.0'}
hasBin: true
@@ -6453,7 +6134,7 @@ packages:
mlly: 1.4.0
pathe: 1.1.1
picocolors: 1.0.0
- vite: 4.4.7(@types/node@20.4.2)
+ vite: 4.4.7(@types/node@20.4.5)
transitivePeerDependencies:
- '@types/node'
- less
@@ -6465,7 +6146,7 @@ packages:
- terser
dev: true
- /vite@4.4.7(@types/node@20.4.2):
+ /vite@4.4.7(@types/node@20.4.5):
resolution: {integrity: sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
@@ -6493,7 +6174,7 @@ packages:
terser:
optional: true
dependencies:
- '@types/node': 20.4.2
+ '@types/node': 20.4.5
esbuild: 0.18.17
postcss: 8.4.27
rollup: 3.26.3
@@ -6581,7 +6262,7 @@ packages:
dependencies:
'@types/chai': 4.3.5
'@types/chai-subset': 1.3.3
- '@types/node': 20.4.2
+ '@types/node': 20.4.5
'@vitest/expect': 0.33.0
'@vitest/runner': 0.33.0
'@vitest/snapshot': 0.33.0
@@ -6593,15 +6274,15 @@ packages:
chai: 4.3.7
debug: 4.3.4
local-pkg: 0.4.3
- magic-string: 0.30.1
+ magic-string: 0.30.2
pathe: 1.1.1
picocolors: 1.0.0
std-env: 3.3.3
strip-literal: 1.0.1
tinybench: 2.5.0
tinypool: 0.6.0
- vite: 4.4.7(@types/node@20.4.2)
- vite-node: 0.33.0(@types/node@20.4.2)
+ vite: 4.4.7(@types/node@20.4.5)
+ vite-node: 0.33.0(@types/node@20.4.5)
why-is-node-running: 2.2.2
transitivePeerDependencies:
- less
@@ -6722,18 +6403,6 @@ packages:
path-exists: 4.0.0
dev: true
- /which-typed-array@1.1.10:
- resolution: {integrity: sha512-uxoA5vLUfRPdjCuJ1h5LlYdmTLbYfums398v3WLkM+i/Wltl2/XyZpQWKbN++ck5L64SR/grOHqtXCUKmlZPNA==}
- engines: {node: '>= 0.4'}
- dependencies:
- available-typed-arrays: 1.0.5
- call-bind: 1.0.2
- for-each: 0.3.3
- gopd: 1.0.1
- has-tostringtag: 1.0.0
- is-typed-array: 1.1.10
- dev: true
-
/which-typed-array@1.1.11:
resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==}
engines: {node: '>= 0.4'}
@@ -6745,18 +6414,6 @@ packages:
has-tostringtag: 1.0.0
dev: true
- /which-typed-array@1.1.9:
- resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==}
- engines: {node: '>= 0.4'}
- dependencies:
- available-typed-arrays: 1.0.5
- call-bind: 1.0.2
- for-each: 0.3.3
- gopd: 1.0.1
- has-tostringtag: 1.0.0
- is-typed-array: 1.1.10
- dev: true
-
/which@1.3.1:
resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
hasBin: true