fix(frontend/pizzax): オブジェクトにnullがある場合に正しくマージされないのを修正 (#13073)

* fix(frontend/pizzax): オブジェクトにnullがある場合に正しくマージされない

* fix types

* マージを内製
This commit is contained in:
かっこかり 2024-01-24 14:45:27 +09:00 committed by GitHub
parent ca9be872a8
commit 177c35e321
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 106 additions and 70 deletions

View file

@ -43,7 +43,6 @@
"compare-versions": "6.1.0", "compare-versions": "6.1.0",
"cropperjs": "2.0.0-beta.4", "cropperjs": "2.0.0-beta.4",
"date-fns": "2.30.0", "date-fns": "2.30.0",
"defu": "^6.1.4",
"escape-regexp": "0.0.1", "escape-regexp": "0.0.1",
"estree-walker": "3.0.3", "estree-walker": "3.0.3",
"eventemitter3": "5.0.1", "eventemitter3": "5.0.1",

View file

@ -7,7 +7,6 @@
import { onUnmounted, Ref, ref, watch } from 'vue'; import { onUnmounted, Ref, ref, watch } from 'vue';
import { BroadcastChannel } from 'broadcast-channel'; import { BroadcastChannel } from 'broadcast-channel';
import { defu } from 'defu';
import { $i } from '@/account.js'; import { $i } from '@/account.js';
import { misskeyApi } from '@/scripts/misskey-api.js'; import { misskeyApi } from '@/scripts/misskey-api.js';
import { get, set } from '@/scripts/idb-proxy.js'; import { get, set } from '@/scripts/idb-proxy.js';
@ -81,14 +80,37 @@ export class Storage<T extends StateDef> {
this.loaded = this.ready.then(() => this.load()); this.loaded = this.ready.then(() => this.load());
} }
private isPureObject(value: unknown): value is Record<string, unknown> { private isPureObject(value: unknown): value is Record<string | number | symbol, unknown> {
return typeof value === 'object' && value !== null && !Array.isArray(value); return typeof value === 'object' && value !== null && !Array.isArray(value);
} }
private mergeState<T>(value: T, def: T): T { /**
* valueにないキーをdefからもらう\
* nullはそのままundefinedはdefの値
**/
private mergeObject<X>(value: X, def: X): X {
if (this.isPureObject(value) && this.isPureObject(def)) { if (this.isPureObject(value) && this.isPureObject(def)) {
if (_DEV_) console.log('Merging state. Incoming: ', value, ' Default: ', def); const result = structuredClone(value) as X;
return defu(value, def) as T; for (const [k, v] of Object.entries(def) as [keyof X, X[keyof X]][]) {
if (!Object.prototype.hasOwnProperty.call(value, k) || value[k] === undefined) {
result[k] = v;
} else if (this.isPureObject(v) && this.isPureObject(result[k])) {
const child = structuredClone(result[k]) as X[keyof X] & Record<string | number | symbol, unknown>;
result[k] = this.mergeObject<typeof v>(child, v);
}
}
return result;
}
return value;
}
private mergeState<X>(value: X, def: X): X {
if (this.isPureObject(value) && this.isPureObject(def)) {
const merged = this.mergeObject(value, def);
if (_DEV_) console.log('Merging state. Incoming: ', value, ' Default: ', def, ' Result: ', merged);
return merged as X;
} }
return value; return value;
} }

View file

@ -745,9 +745,6 @@ importers:
date-fns: date-fns:
specifier: 2.30.0 specifier: 2.30.0
version: 2.30.0 version: 2.30.0
defu:
specifier: ^6.1.4
version: 6.1.4
escape-regexp: escape-regexp:
specifier: 0.0.1 specifier: 0.0.1
version: 0.0.1 version: 0.0.1
@ -834,7 +831,7 @@ importers:
version: 1.7.2(vue@3.4.15) version: 1.7.2(vue@3.4.15)
vite: vite:
specifier: 5.0.12 specifier: 5.0.12
version: 5.0.12(@types/node@20.11.5)(sass@1.70.0)(terser@5.27.0) version: 5.0.12(@types/node@20.11.5)(sass@1.70.0)
vue: vue:
specifier: 3.4.15 specifier: 3.4.15
version: 3.4.15(typescript@5.3.3) version: 3.4.15(typescript@5.3.3)
@ -1012,7 +1009,7 @@ importers:
version: 1.0.3 version: 1.0.3
vitest: vitest:
specifier: 0.34.6 specifier: 0.34.6
version: 0.34.6(happy-dom@10.0.3)(sass@1.70.0)(terser@5.27.0) version: 0.34.6(happy-dom@10.0.3)(sass@1.70.0)
vitest-fetch-mock: vitest-fetch-mock:
specifier: 0.2.2 specifier: 0.2.2
version: 0.2.2(vitest@0.34.6) version: 0.2.2(vitest@0.34.6)
@ -1909,7 +1906,7 @@ packages:
'@babel/traverse': 7.22.11 '@babel/traverse': 7.22.11
'@babel/types': 7.22.17 '@babel/types': 7.22.17
convert-source-map: 1.9.0 convert-source-map: 1.9.0
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
gensync: 1.0.0-beta.2 gensync: 1.0.0-beta.2
json5: 2.2.3 json5: 2.2.3
semver: 6.3.1 semver: 6.3.1
@ -1932,7 +1929,7 @@ packages:
'@babel/traverse': 7.23.5 '@babel/traverse': 7.23.5
'@babel/types': 7.23.5 '@babel/types': 7.23.5
convert-source-map: 2.0.0 convert-source-map: 2.0.0
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
gensync: 1.0.0-beta.2 gensync: 1.0.0-beta.2
json5: 2.2.3 json5: 2.2.3
semver: 6.3.1 semver: 6.3.1
@ -2034,7 +2031,7 @@ packages:
'@babel/core': 7.23.5 '@babel/core': 7.23.5
'@babel/helper-compilation-targets': 7.22.15 '@babel/helper-compilation-targets': 7.22.15
'@babel/helper-plugin-utils': 7.22.5 '@babel/helper-plugin-utils': 7.22.5
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
lodash.debounce: 4.0.8 lodash.debounce: 4.0.8
resolve: 1.22.8 resolve: 1.22.8
transitivePeerDependencies: transitivePeerDependencies:
@ -3433,7 +3430,7 @@ packages:
'@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-split-export-declaration': 7.22.6
'@babel/parser': 7.23.5 '@babel/parser': 7.23.5
'@babel/types': 7.22.17 '@babel/types': 7.22.17
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
globals: 11.12.0 globals: 11.12.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -3451,7 +3448,7 @@ packages:
'@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-split-export-declaration': 7.22.6
'@babel/parser': 7.23.6 '@babel/parser': 7.23.6
'@babel/types': 7.23.5 '@babel/types': 7.23.5
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
globals: 11.12.0 globals: 11.12.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -4158,7 +4155,7 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies: dependencies:
ajv: 6.12.6 ajv: 6.12.6
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
espree: 9.6.1 espree: 9.6.1
globals: 13.19.0 globals: 13.19.0
ignore: 5.2.4 ignore: 5.2.4
@ -4175,7 +4172,7 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies: dependencies:
ajv: 6.12.6 ajv: 6.12.6
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
espree: 9.6.1 espree: 9.6.1
globals: 13.19.0 globals: 13.19.0
ignore: 5.2.4 ignore: 5.2.4
@ -4410,7 +4407,7 @@ packages:
engines: {node: '>=10.10.0'} engines: {node: '>=10.10.0'}
dependencies: dependencies:
'@humanwhocodes/object-schema': 2.0.1 '@humanwhocodes/object-schema': 2.0.1
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
minimatch: 3.1.2 minimatch: 3.1.2
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -4714,7 +4711,7 @@ packages:
magic-string: 0.27.0 magic-string: 0.27.0
react-docgen-typescript: 2.2.2(typescript@5.3.3) react-docgen-typescript: 2.2.2(typescript@5.3.3)
typescript: 5.3.3 typescript: 5.3.3
vite: 5.0.12(@types/node@20.11.5)(sass@1.70.0)(terser@5.27.0) vite: 5.0.12(@types/node@20.11.5)(sass@1.70.0)
dev: true dev: true
/@jridgewell/gen-mapping@0.3.2: /@jridgewell/gen-mapping@0.3.2:
@ -4738,6 +4735,7 @@ packages:
dependencies: dependencies:
'@jridgewell/gen-mapping': 0.3.2 '@jridgewell/gen-mapping': 0.3.2
'@jridgewell/trace-mapping': 0.3.18 '@jridgewell/trace-mapping': 0.3.18
dev: false
/@jridgewell/sourcemap-codec@1.4.14: /@jridgewell/sourcemap-codec@1.4.14:
resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
@ -6774,7 +6772,7 @@ packages:
magic-string: 0.30.5 magic-string: 0.30.5
rollup: 3.29.4 rollup: 3.29.4
typescript: 5.3.3 typescript: 5.3.3
vite: 5.0.12(@types/node@20.11.5)(sass@1.70.0)(terser@5.27.0) vite: 5.0.12(@types/node@20.11.5)(sass@1.70.0)
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
- supports-color - supports-color
@ -6979,7 +6977,7 @@ packages:
util: 0.12.5 util: 0.12.5
util-deprecate: 1.0.2 util-deprecate: 1.0.2
watchpack: 2.4.0 watchpack: 2.4.0
ws: 8.16.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) ws: 8.16.0
transitivePeerDependencies: transitivePeerDependencies:
- bufferutil - bufferutil
- encoding - encoding
@ -7148,7 +7146,7 @@ packages:
react: 18.2.0 react: 18.2.0
react-docgen: 7.0.1 react-docgen: 7.0.1
react-dom: 18.2.0(react@18.2.0) react-dom: 18.2.0(react@18.2.0)
vite: 5.0.12(@types/node@20.11.5)(sass@1.70.0)(terser@5.27.0) vite: 5.0.12(@types/node@20.11.5)(sass@1.70.0)
transitivePeerDependencies: transitivePeerDependencies:
- '@preact/preset-vite' - '@preact/preset-vite'
- encoding - encoding
@ -7274,7 +7272,7 @@ packages:
'@storybook/vue3': 7.6.10(vue@3.4.15) '@storybook/vue3': 7.6.10(vue@3.4.15)
'@vitejs/plugin-vue': 4.5.2(vite@5.0.12)(vue@3.4.15) '@vitejs/plugin-vue': 4.5.2(vite@5.0.12)(vue@3.4.15)
magic-string: 0.30.5 magic-string: 0.30.5
vite: 5.0.12(@types/node@20.11.5)(sass@1.70.0)(terser@5.27.0) vite: 5.0.12(@types/node@20.11.5)(sass@1.70.0)
vue-docgen-api: 4.64.1(vue@3.4.15) vue-docgen-api: 4.64.1(vue@3.4.15)
transitivePeerDependencies: transitivePeerDependencies:
- '@preact/preset-vite' - '@preact/preset-vite'
@ -7774,7 +7772,7 @@ packages:
dom-accessibility-api: 0.5.16 dom-accessibility-api: 0.5.16
lodash: 4.17.21 lodash: 4.17.21
redent: 3.0.0 redent: 3.0.0
vitest: 0.34.6(happy-dom@10.0.3)(sass@1.70.0)(terser@5.27.0) vitest: 0.34.6(happy-dom@10.0.3)(sass@1.70.0)
dev: true dev: true
/@testing-library/user-event@14.4.3(@testing-library/dom@9.2.0): /@testing-library/user-event@14.4.3(@testing-library/dom@9.2.0):
@ -8448,7 +8446,7 @@ packages:
'@typescript-eslint/type-utils': 6.11.0(eslint@8.53.0)(typescript@5.3.3) '@typescript-eslint/type-utils': 6.11.0(eslint@8.53.0)(typescript@5.3.3)
'@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.3.3)
'@typescript-eslint/visitor-keys': 6.11.0 '@typescript-eslint/visitor-keys': 6.11.0
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
eslint: 8.53.0 eslint: 8.53.0
graphemer: 1.4.0 graphemer: 1.4.0
ignore: 5.2.4 ignore: 5.2.4
@ -8477,7 +8475,7 @@ packages:
'@typescript-eslint/type-utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/type-utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3)
'@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3)
'@typescript-eslint/visitor-keys': 6.18.1 '@typescript-eslint/visitor-keys': 6.18.1
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
eslint: 8.56.0 eslint: 8.56.0
graphemer: 1.4.0 graphemer: 1.4.0
ignore: 5.2.4 ignore: 5.2.4
@ -8503,7 +8501,7 @@ packages:
'@typescript-eslint/types': 6.11.0 '@typescript-eslint/types': 6.11.0
'@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.3) '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.3)
'@typescript-eslint/visitor-keys': 6.11.0 '@typescript-eslint/visitor-keys': 6.11.0
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
eslint: 8.53.0 eslint: 8.53.0
typescript: 5.3.3 typescript: 5.3.3
transitivePeerDependencies: transitivePeerDependencies:
@ -8524,7 +8522,7 @@ packages:
'@typescript-eslint/types': 6.18.1 '@typescript-eslint/types': 6.18.1
'@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3)
'@typescript-eslint/visitor-keys': 6.18.1 '@typescript-eslint/visitor-keys': 6.18.1
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
eslint: 8.56.0 eslint: 8.56.0
typescript: 5.3.3 typescript: 5.3.3
transitivePeerDependencies: transitivePeerDependencies:
@ -8559,7 +8557,7 @@ packages:
dependencies: dependencies:
'@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.3) '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.3)
'@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.3.3)
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
eslint: 8.53.0 eslint: 8.53.0
ts-api-utils: 1.0.1(typescript@5.3.3) ts-api-utils: 1.0.1(typescript@5.3.3)
typescript: 5.3.3 typescript: 5.3.3
@ -8579,7 +8577,7 @@ packages:
dependencies: dependencies:
'@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3)
'@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3)
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
eslint: 8.56.0 eslint: 8.56.0
ts-api-utils: 1.0.1(typescript@5.3.3) ts-api-utils: 1.0.1(typescript@5.3.3)
typescript: 5.3.3 typescript: 5.3.3
@ -8608,7 +8606,7 @@ packages:
dependencies: dependencies:
'@typescript-eslint/types': 6.11.0 '@typescript-eslint/types': 6.11.0
'@typescript-eslint/visitor-keys': 6.11.0 '@typescript-eslint/visitor-keys': 6.11.0
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
globby: 11.1.0 globby: 11.1.0
is-glob: 4.0.3 is-glob: 4.0.3
semver: 7.5.4 semver: 7.5.4
@ -8629,7 +8627,7 @@ packages:
dependencies: dependencies:
'@typescript-eslint/types': 6.18.1 '@typescript-eslint/types': 6.18.1
'@typescript-eslint/visitor-keys': 6.18.1 '@typescript-eslint/visitor-keys': 6.18.1
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
globby: 11.1.0 globby: 11.1.0
is-glob: 4.0.3 is-glob: 4.0.3
minimatch: 9.0.3 minimatch: 9.0.3
@ -8709,7 +8707,7 @@ packages:
'@babel/plugin-transform-react-jsx-source': 7.19.6(@babel/core@7.23.5) '@babel/plugin-transform-react-jsx-source': 7.19.6(@babel/core@7.23.5)
magic-string: 0.27.0 magic-string: 0.27.0
react-refresh: 0.14.0 react-refresh: 0.14.0
vite: 5.0.12(@types/node@20.11.5)(sass@1.70.0)(terser@5.27.0) vite: 5.0.12(@types/node@20.11.5)(sass@1.70.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
@ -8721,7 +8719,7 @@ packages:
vite: ^4.0.0 || ^5.0.0 vite: ^4.0.0 || ^5.0.0
vue: ^3.2.25 vue: ^3.2.25
dependencies: dependencies:
vite: 5.0.12(@types/node@20.11.5)(sass@1.70.0)(terser@5.27.0) vite: 5.0.12(@types/node@20.11.5)(sass@1.70.0)
vue: 3.4.15(typescript@5.3.3) vue: 3.4.15(typescript@5.3.3)
dev: true dev: true
@ -8732,7 +8730,7 @@ packages:
vite: ^5.0.0 vite: ^5.0.0
vue: ^3.2.25 vue: ^3.2.25
dependencies: dependencies:
vite: 5.0.12(@types/node@20.11.5)(sass@1.70.0)(terser@5.27.0) vite: 5.0.12(@types/node@20.11.5)(sass@1.70.0)
vue: 3.4.15(typescript@5.3.3) vue: 3.4.15(typescript@5.3.3)
dev: false dev: false
@ -8752,7 +8750,7 @@ packages:
std-env: 3.7.0 std-env: 3.7.0
test-exclude: 6.0.0 test-exclude: 6.0.0
v8-to-istanbul: 9.2.0 v8-to-istanbul: 9.2.0
vitest: 0.34.6(happy-dom@10.0.3)(sass@1.70.0)(terser@5.27.0) vitest: 0.34.6(happy-dom@10.0.3)(sass@1.70.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
@ -9093,7 +9091,7 @@ packages:
engines: {node: '>= 6.0.0'} engines: {node: '>= 6.0.0'}
requiresBuild: true requiresBuild: true
dependencies: dependencies:
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -9101,7 +9099,7 @@ packages:
resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==}
engines: {node: '>= 14'} engines: {node: '>= 14'}
dependencies: dependencies:
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: false dev: false
@ -9487,7 +9485,7 @@ packages:
resolution: {integrity: sha512-TAlMYvOuwGyLK3PfBb5WKBXZmXz2fVCgv23d6zZFdle/q3gPjmxBaeuC0pY0Dzs5PWMSgfqqEZkrye19GlDTgw==} resolution: {integrity: sha512-TAlMYvOuwGyLK3PfBb5WKBXZmXz2fVCgv23d6zZFdle/q3gPjmxBaeuC0pY0Dzs5PWMSgfqqEZkrye19GlDTgw==}
dependencies: dependencies:
archy: 1.0.0 archy: 1.0.0
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
fastq: 1.15.0 fastq: 1.15.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -9891,6 +9889,7 @@ packages:
requiresBuild: true requiresBuild: true
dependencies: dependencies:
node-gyp-build: 4.6.0 node-gyp-build: 4.6.0
dev: false
/bullmq@5.1.4: /bullmq@5.1.4:
resolution: {integrity: sha512-j/AjaPc8BhyrH7b2MyZpi4cUtGH8TJTxonZUmXEefmKU8z5DcldzmlXPief0P4+qvN0A7qwWZH3n0F+GsWgQkg==} resolution: {integrity: sha512-j/AjaPc8BhyrH7b2MyZpi4cUtGH8TJTxonZUmXEefmKU8z5DcldzmlXPief0P4+qvN0A7qwWZH3n0F+GsWgQkg==}
@ -10435,6 +10434,7 @@ packages:
/commander@2.20.3: /commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
dev: false
/commander@6.2.1: /commander@6.2.1:
resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==}
@ -10931,7 +10931,6 @@ packages:
dependencies: dependencies:
ms: 2.1.2 ms: 2.1.2
supports-color: 5.5.0 supports-color: 5.5.0
dev: true
/debug@4.3.4(supports-color@8.1.1): /debug@4.3.4(supports-color@8.1.1):
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
@ -10944,6 +10943,7 @@ packages:
dependencies: dependencies:
ms: 2.1.2 ms: 2.1.2
supports-color: 8.1.1 supports-color: 8.1.1
dev: true
/decamelize-keys@1.1.1: /decamelize-keys@1.1.1:
resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
@ -11086,6 +11086,7 @@ packages:
/defu@6.1.4: /defu@6.1.4:
resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
dev: true
/del@6.1.1: /del@6.1.1:
resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==}
@ -11159,7 +11160,7 @@ packages:
hasBin: true hasBin: true
dependencies: dependencies:
address: 1.2.2 address: 1.2.2
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
@ -11483,7 +11484,7 @@ packages:
peerDependencies: peerDependencies:
esbuild: '>=0.12 <1' esbuild: '>=0.12 <1'
dependencies: dependencies:
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
esbuild: 0.18.20 esbuild: 0.18.20
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -11792,7 +11793,7 @@ packages:
ajv: 6.12.6 ajv: 6.12.6
chalk: 4.1.2 chalk: 4.1.2
cross-spawn: 7.0.3 cross-spawn: 7.0.3
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
doctrine: 3.0.0 doctrine: 3.0.0
escape-string-regexp: 4.0.0 escape-string-regexp: 4.0.0
eslint-scope: 7.2.2 eslint-scope: 7.2.2
@ -11839,7 +11840,7 @@ packages:
ajv: 6.12.6 ajv: 6.12.6
chalk: 4.1.2 chalk: 4.1.2
cross-spawn: 7.0.3 cross-spawn: 7.0.3
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
doctrine: 3.0.0 doctrine: 3.0.0
escape-string-regexp: 4.0.0 escape-string-regexp: 4.0.0
eslint-scope: 7.2.2 eslint-scope: 7.2.2
@ -12470,7 +12471,7 @@ packages:
debug: debug:
optional: true optional: true
dependencies: dependencies:
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
/for-each@0.3.3: /for-each@0.3.3:
resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
@ -13026,7 +13027,6 @@ packages:
/has-flag@3.0.0: /has-flag@3.0.0:
resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
engines: {node: '>=4'} engines: {node: '>=4'}
dev: true
/has-flag@4.0.0: /has-flag@4.0.0:
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
@ -13164,7 +13164,7 @@ packages:
engines: {node: '>= 14'} engines: {node: '>= 14'}
dependencies: dependencies:
agent-base: 7.1.0 agent-base: 7.1.0
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: false dev: false
@ -13224,7 +13224,7 @@ packages:
engines: {node: '>= 6.0.0'} engines: {node: '>= 6.0.0'}
dependencies: dependencies:
agent-base: 5.1.1 agent-base: 5.1.1
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
@ -13234,7 +13234,7 @@ packages:
engines: {node: '>= 6'} engines: {node: '>= 6'}
dependencies: dependencies:
agent-base: 6.0.2 agent-base: 6.0.2
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -13243,7 +13243,7 @@ packages:
engines: {node: '>= 14'} engines: {node: '>= 14'}
dependencies: dependencies:
agent-base: 7.1.0 agent-base: 7.1.0
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: false dev: false
@ -13403,7 +13403,7 @@ packages:
dependencies: dependencies:
'@ioredis/commands': 1.2.0 '@ioredis/commands': 1.2.0
cluster-key-slot: 1.1.2 cluster-key-slot: 1.1.2
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
denque: 2.1.0 denque: 2.1.0
lodash.defaults: 4.2.0 lodash.defaults: 4.2.0
lodash.isarguments: 3.1.0 lodash.isarguments: 3.1.0
@ -13849,7 +13849,7 @@ packages:
resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
engines: {node: '>=10'} engines: {node: '>=10'}
dependencies: dependencies:
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
istanbul-lib-coverage: 3.2.2 istanbul-lib-coverage: 3.2.2
source-map: 0.6.1 source-map: 0.6.1
transitivePeerDependencies: transitivePeerDependencies:
@ -15624,6 +15624,7 @@ packages:
resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==} resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==}
hasBin: true hasBin: true
requiresBuild: true requiresBuild: true
dev: false
/node-gyp@10.0.1: /node-gyp@10.0.1:
resolution: {integrity: sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==} resolution: {integrity: sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==}
@ -17158,7 +17159,7 @@ packages:
engines: {node: '>=8.16.0'} engines: {node: '>=8.16.0'}
dependencies: dependencies:
'@types/mime-types': 2.1.4 '@types/mime-types': 2.1.4
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
extract-zip: 1.7.0 extract-zip: 1.7.0
https-proxy-agent: 4.0.0 https-proxy-agent: 4.0.0
mime: 2.6.0 mime: 2.6.0
@ -18158,7 +18159,7 @@ packages:
dependencies: dependencies:
'@hapi/hoek': 10.0.1 '@hapi/hoek': 10.0.1
'@hapi/wreck': 18.0.1 '@hapi/wreck': 18.0.1
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
joi: 17.7.0 joi: 17.7.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -18358,7 +18359,7 @@ packages:
engines: {node: '>= 14'} engines: {node: '>= 14'}
dependencies: dependencies:
agent-base: 7.1.0 agent-base: 7.1.0
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
socks: 2.7.1 socks: 2.7.1
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -18511,7 +18512,7 @@ packages:
arg: 5.0.2 arg: 5.0.2
bluebird: 3.7.2 bluebird: 3.7.2
check-more-types: 2.24.0 check-more-types: 2.24.0
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
execa: 5.1.1 execa: 5.1.1
lazy-ass: 1.6.0 lazy-ass: 1.6.0
ps-tree: 1.2.0 ps-tree: 1.2.0
@ -18769,7 +18770,6 @@ packages:
engines: {node: '>=4'} engines: {node: '>=4'}
dependencies: dependencies:
has-flag: 3.0.0 has-flag: 3.0.0
dev: true
/supports-color@7.2.0: /supports-color@7.2.0:
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
@ -18932,6 +18932,7 @@ packages:
acorn: 8.11.3 acorn: 8.11.3
commander: 2.20.3 commander: 2.20.3
source-map-support: 0.5.21 source-map-support: 0.5.21
dev: false
/test-exclude@6.0.0: /test-exclude@6.0.0:
resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
@ -19390,7 +19391,7 @@ packages:
chalk: 4.1.2 chalk: 4.1.2
cli-highlight: 2.1.11 cli-highlight: 2.1.11
dayjs: 1.11.10 dayjs: 1.11.10
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
dotenv: 16.0.3 dotenv: 16.0.3
glob: 10.3.10 glob: 10.3.10
ioredis: 5.3.2 ioredis: 5.3.2
@ -19653,6 +19654,7 @@ packages:
requiresBuild: true requiresBuild: true
dependencies: dependencies:
node-gyp-build: 4.6.0 node-gyp-build: 4.6.0
dev: false
/util-deprecate@1.0.2: /util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
@ -19744,17 +19746,17 @@ packages:
core-util-is: 1.0.2 core-util-is: 1.0.2
extsprintf: 1.3.0 extsprintf: 1.3.0
/vite-node@0.34.6(@types/node@20.11.5)(sass@1.70.0)(terser@5.27.0): /vite-node@0.34.6(@types/node@20.11.5)(sass@1.70.0):
resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==}
engines: {node: '>=v14.18.0'} engines: {node: '>=v14.18.0'}
hasBin: true hasBin: true
dependencies: dependencies:
cac: 6.7.14 cac: 6.7.14
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
mlly: 1.5.0 mlly: 1.5.0
pathe: 1.1.2 pathe: 1.1.2
picocolors: 1.0.0 picocolors: 1.0.0
vite: 5.0.12(@types/node@20.11.5)(sass@1.70.0)(terser@5.27.0) vite: 5.0.12(@types/node@20.11.5)(sass@1.70.0)
transitivePeerDependencies: transitivePeerDependencies:
- '@types/node' - '@types/node'
- less - less
@ -19770,7 +19772,7 @@ packages:
resolution: {integrity: sha512-p4D8CFVhZS412SyQX125qxyzOgIFouwOcvjZWk6bQbNPR1wtaEzFT6jZxAjf1dejlGqa6fqHcuCvQea6EWUkUA==} resolution: {integrity: sha512-p4D8CFVhZS412SyQX125qxyzOgIFouwOcvjZWk6bQbNPR1wtaEzFT6jZxAjf1dejlGqa6fqHcuCvQea6EWUkUA==}
dev: true dev: true
/vite@5.0.12(@types/node@20.11.5)(sass@1.70.0)(terser@5.27.0): /vite@5.0.12(@types/node@20.11.5)(sass@1.70.0):
resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==} resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==}
engines: {node: ^18.0.0 || >=20.0.0} engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true hasBin: true
@ -19803,7 +19805,6 @@ packages:
postcss: 8.4.33 postcss: 8.4.33
rollup: 4.9.6 rollup: 4.9.6
sass: 1.70.0 sass: 1.70.0
terser: 5.27.0
optionalDependencies: optionalDependencies:
fsevents: 2.3.3 fsevents: 2.3.3
@ -19814,12 +19815,12 @@ packages:
vitest: '>=0.16.0' vitest: '>=0.16.0'
dependencies: dependencies:
cross-fetch: 3.1.5 cross-fetch: 3.1.5
vitest: 0.34.6(happy-dom@10.0.3)(sass@1.70.0)(terser@5.27.0) vitest: 0.34.6(happy-dom@10.0.3)(sass@1.70.0)
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
dev: true dev: true
/vitest@0.34.6(happy-dom@10.0.3)(sass@1.70.0)(terser@5.27.0): /vitest@0.34.6(happy-dom@10.0.3)(sass@1.70.0):
resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==}
engines: {node: '>=v14.18.0'} engines: {node: '>=v14.18.0'}
hasBin: true hasBin: true
@ -19862,7 +19863,7 @@ packages:
acorn-walk: 8.3.2 acorn-walk: 8.3.2
cac: 6.7.14 cac: 6.7.14
chai: 4.3.10 chai: 4.3.10
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
happy-dom: 10.0.3 happy-dom: 10.0.3
local-pkg: 0.4.3 local-pkg: 0.4.3
magic-string: 0.30.5 magic-string: 0.30.5
@ -19872,8 +19873,8 @@ packages:
strip-literal: 1.3.0 strip-literal: 1.3.0
tinybench: 2.6.0 tinybench: 2.6.0
tinypool: 0.7.0 tinypool: 0.7.0
vite: 5.0.12(@types/node@20.11.5)(sass@1.70.0)(terser@5.27.0) vite: 5.0.12(@types/node@20.11.5)(sass@1.70.0)
vite-node: 0.34.6(@types/node@20.11.5)(sass@1.70.0)(terser@5.27.0) vite-node: 0.34.6(@types/node@20.11.5)(sass@1.70.0)
why-is-node-running: 2.2.2 why-is-node-running: 2.2.2
transitivePeerDependencies: transitivePeerDependencies:
- less - less
@ -19944,7 +19945,7 @@ packages:
peerDependencies: peerDependencies:
eslint: '>=6.0.0' eslint: '>=6.0.0'
dependencies: dependencies:
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@5.5.0)
eslint: 8.56.0 eslint: 8.56.0
eslint-scope: 7.2.2 eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3 eslint-visitor-keys: 3.4.3
@ -20274,6 +20275,19 @@ packages:
async-limiter: 1.0.1 async-limiter: 1.0.1
dev: true dev: true
/ws@8.16.0:
resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
engines: {node: '>=10.0.0'}
peerDependencies:
bufferutil: ^4.0.1
utf-8-validate: '>=5.0.2'
peerDependenciesMeta:
bufferutil:
optional: true
utf-8-validate:
optional: true
dev: true
/ws@8.16.0(bufferutil@4.0.7)(utf-8-validate@6.0.3): /ws@8.16.0(bufferutil@4.0.7)(utf-8-validate@6.0.3):
resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==}
engines: {node: '>=10.0.0'} engines: {node: '>=10.0.0'}
@ -20288,6 +20302,7 @@ packages:
dependencies: dependencies:
bufferutil: 4.0.7 bufferutil: 4.0.7
utf-8-validate: 6.0.3 utf-8-validate: 6.0.3
dev: false
/xev@3.0.2: /xev@3.0.2:
resolution: {integrity: sha512-8kxuH95iMXzHZj+fwqfA4UrPcYOy6bGIgfWzo9Ji23JoEc30ge/Z++Ubkiuy8c0+M64nXmmxrmJ7C8wnuBhluw==} resolution: {integrity: sha512-8kxuH95iMXzHZj+fwqfA4UrPcYOy6bGIgfWzo9Ji23JoEc30ge/Z++Ubkiuy8c0+M64nXmmxrmJ7C8wnuBhluw==}