diff --git a/package.json b/package.json index 07d8fcd..cdff35c 100644 --- a/package.json +++ b/package.json @@ -43,14 +43,14 @@ "publish": "pnpm run -r publish" }, "devDependencies": { - "@antfu/eslint-config": "2.7.0", + "@antfu/eslint-config": "2.8.0", "eslint": "^8.57.0", "playwright": "^1.42.1", "typescript": "^5.3.3", - "vite": "^5.1.4", + "vite": "^5.1.5", "vitepress": "1.0.0-rc.44", "vitest": "^1.3.1", "vue": "^3.4.21", - "vue-tsc": "^2.0.3" + "vue-tsc": "^2.0.5" } } diff --git a/packages/core/package.json b/packages/core/package.json index 1581871..7da411e 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -70,7 +70,7 @@ "fast-glob": "^3.3.2", "lightningcss": "^1.24.0", "typescript": "^5.3.3", - "vite": "^5.1.4", + "vite": "^5.1.5", "vite-plugin-dts": "^3.7.3" } } diff --git a/packages/core/src/components/_parent.ts b/packages/core/src/components/_parent.ts index d12ce97..56a9dab 100644 --- a/packages/core/src/components/_parent.ts +++ b/packages/core/src/components/_parent.ts @@ -1,6 +1,6 @@ import ErrorCompotes from '../utils/error' -export interface ParentOptions { +export interface ParentOptions { /** * Init the component on creation. * @default true @@ -22,6 +22,11 @@ export interface ParentOptions { * @default true */ initEvents?: boolean + /** + * An Object of with events listener + * @default undefined + */ + on?: Record) => void> } export interface ParentEvent { @@ -31,13 +36,13 @@ export interface ParentEvent { el: Element | Window } -export default abstract class Parent { +export default abstract class Parent { protected name = '' public el: HTMLElement - public opts: ParentOptions + public opts: ParentOptions protected events: ParentEvent[] = [] - constructor(el: HTMLElement | string, options: ParentOptions = {}) { + constructor(el: HTMLElement | string, options: ParentOptions = {}) { const checkEl = typeof el === 'string' ? document.querySelector(el) : el @@ -47,6 +52,18 @@ export default abstract class Parent { this.el = checkEl + if (options.on) { + for (const key in options.on) { + if (Object.prototype.hasOwnProperty.call(options.on, key)) { + const element = options.on[key] + this.el.addEventListener( + `c.${this.name}.${key}`, + e => element(e as CustomEvent), + ) + } + } + } + this.opts = options } @@ -142,7 +159,7 @@ export default abstract class Parent { /** * Options of the component */ - public get options(): ParentOptions { + public get options() { return this.opts } diff --git a/packages/core/src/components/collapse.ts b/packages/core/src/components/collapse.ts index 20f0cd5..33a6b71 100644 --- a/packages/core/src/components/collapse.ts +++ b/packages/core/src/components/collapse.ts @@ -2,18 +2,13 @@ import type { ParentOptions } from './_parent' import Parent from './_parent' import { getTransitionDuration } from './../utils/animation' +type Events = 'init' | 'destroy' | 'show' | 'shown' | 'hide' | 'hidden' | 'destroy' + declare global { - interface HTMLElementEventMap { - 'c.collapse.init': CustomEvent - 'c.collapse.show': CustomEvent - 'c.collapse.shown': CustomEvent - 'c.collapse.hide': CustomEvent - 'c.collapse.hidden': CustomEvent - 'c.collapse.destroy': CustomEvent - } + interface HTMLElementEventMap extends Record<`c.collapse.${Events}`, CustomEvent> {} } -export interface CollapseOptions extends ParentOptions {} +export interface CollapseOptions extends ParentOptions {} export default class Collapse extends Parent { declare public opts: CollapseOptions diff --git a/packages/core/src/components/drag.ts b/packages/core/src/components/drag.ts index 097072d..25bd92d 100644 --- a/packages/core/src/components/drag.ts +++ b/packages/core/src/components/drag.ts @@ -1,15 +1,12 @@ import Parent, { type ParentOptions } from './_parent' +type Events = 'init' | 'start' | 'end' | 'destroy' + declare global { - interface HTMLElementEventMap { - 'c.drag.init': CustomEvent - 'c.drag.start': CustomEvent - 'c.drag.end': CustomEvent - 'c.drag.destroy': CustomEvent - } + interface HTMLElementEventMap extends Record<`c.drag.${Events}`, CustomEvent> {} } -export interface DragOptions extends ParentOptions {} +export interface DragOptions extends ParentOptions {} export default class Drag extends Parent { declare public opts: DragOptions diff --git a/packages/core/src/components/drilldown.ts b/packages/core/src/components/drilldown.ts index 6e350b7..56acfb8 100644 --- a/packages/core/src/components/drilldown.ts +++ b/packages/core/src/components/drilldown.ts @@ -3,18 +3,13 @@ import { focusChar, focusFirst, focusLast, focusSibling, generateId } from '../u import Parent, { type ParentOptions } from './_parent' import { getTransitionDuration } from './../utils/animation' +type Events = 'init' | 'destroy' | 'update' | 'next' | 'back' | 'reset' + declare global { - interface HTMLElementEventMap { - 'c.drilldown.init': CustomEvent - 'c.drilldown.destroy': CustomEvent - 'c.drilldown.update': CustomEvent - 'c.drilldown.next': CustomEvent - 'c.drilldown.back': CustomEvent - 'c.drilldown.reset': CustomEvent - } + interface HTMLElementEventMap extends Record<`c.drilldown.${Events}`, CustomEvent> {} } -export interface DrilldownOptions extends ParentOptions { +export interface DrilldownOptions extends ParentOptions { /** * Adjust height dynamically with the current menu height * @default false diff --git a/packages/core/src/components/dropdown.ts b/packages/core/src/components/dropdown.ts index 90826bb..fa5f580 100644 --- a/packages/core/src/components/dropdown.ts +++ b/packages/core/src/components/dropdown.ts @@ -1,16 +1,13 @@ import { focusFirst, focusLast, focusSibling, generateId } from '../utils/accessibility' import Parent, { type ParentOptions } from './_parent' +type Events = 'init' | 'opened' | 'closed' | 'destroy' + declare global { - interface HTMLElementEventMap { - 'c.dropdown.init': CustomEvent - 'c.dropdown.destroy': CustomEvent - 'c.dropdown.opened': CustomEvent - 'c.dropdown.closed': CustomEvent - } + interface HTMLElementEventMap extends Record<`c.dropdown.${Events}`, CustomEvent> {} } -export interface DropdownOptions extends ParentOptions { +export interface DropdownOptions extends ParentOptions { /** * Define open mode, by default you need to `click` on the trigger element * but you can configure it to display the dropdown on `hover`. diff --git a/packages/core/src/components/marquee.ts b/packages/core/src/components/marquee.ts index 8d298b1..318b8b2 100644 --- a/packages/core/src/components/marquee.ts +++ b/packages/core/src/components/marquee.ts @@ -1,17 +1,13 @@ import { tabbable } from 'tabbable' import Parent, { type ParentOptions } from './_parent' +type Events = 'init' | 'play' | 'pause' | 'loop' | 'destroy' + declare global { - interface HTMLElementEventMap { - 'c.marquee.init': CustomEvent - 'c.marquee.destroy': CustomEvent - 'c.marquee.play': CustomEvent - 'c.marquee.pause': CustomEvent - 'c.marquee.loop': CustomEvent - } + interface HTMLElementEventMap extends Record<`c.marquee.${Events}`, CustomEvent> {} } -export interface MarqueeOptions extends ParentOptions { +export interface MarqueeOptions extends ParentOptions { /** * Clone elements to fill the Marquee. Useful for infinite loop * @default false diff --git a/packages/vue/demo/package.json b/packages/vue/demo/package.json index 40b73d5..75d4d5a 100644 --- a/packages/vue/demo/package.json +++ b/packages/vue/demo/package.json @@ -15,7 +15,7 @@ "@compotes/vue": "workspace:*", "@vitejs/plugin-vue": "^5.0.4", "typescript": "^5.3.3", - "vite": "^5.1.4", - "vue-tsc": "^2.0.3" + "vite": "^5.1.5", + "vue-tsc": "^2.0.5" } } diff --git a/packages/vue/demo/tsconfig.json b/packages/vue/demo/tsconfig.json index 9e03e60..37c4821 100644 --- a/packages/vue/demo/tsconfig.json +++ b/packages/vue/demo/tsconfig.json @@ -1,25 +1,25 @@ { "compilerOptions": { "target": "ES2020", + "jsx": "preserve", + "lib": ["ES2020", "DOM", "DOM.Iterable"], "useDefineForClassFields": true, "module": "ESNext", - "lib": ["ES2020", "DOM", "DOM.Iterable"], - "skipLibCheck": true, /* Bundler mode */ "moduleResolution": "bundler", - "allowImportingTsExtensions": true, "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "preserve", + "allowImportingTsExtensions": true, /* Linting */ "strict": true, + "noFallthroughCasesInSwitch": true, "noUnusedLocals": true, "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true + "noEmit": true, + "isolatedModules": true, + "skipLibCheck": true }, - "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"], - "references": [{ "path": "./tsconfig.node.json" }] + "references": [{ "path": "./tsconfig.node.json" }], + "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"] } diff --git a/packages/vue/demo/tsconfig.node.json b/packages/vue/demo/tsconfig.node.json index 97ede7e..38a9d93 100644 --- a/packages/vue/demo/tsconfig.node.json +++ b/packages/vue/demo/tsconfig.node.json @@ -1,11 +1,11 @@ { "compilerOptions": { "composite": true, - "skipLibCheck": true, "module": "ESNext", "moduleResolution": "bundler", + "strict": true, "allowSyntheticDefaultImports": true, - "strict": true + "skipLibCheck": true }, "include": ["vite.config.ts"] } diff --git a/packages/vue/package.json b/packages/vue/package.json index 4a1e282..e7c93f8 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -59,9 +59,9 @@ "devDependencies": { "@vitejs/plugin-vue": "^5.0.4", "typescript": "^5.3.3", - "vite": "^5.1.4", + "vite": "^5.1.5", "vue": "^3.4.21", - "vue-tsc": "^2.0.3" + "vue-tsc": "^2.0.5" }, "publishConfig": { "access": "public" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 66e5497..463acbc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: devDependencies: '@antfu/eslint-config': - specifier: 2.7.0 - version: 2.7.0(@vue/compiler-sfc@3.4.21)(eslint@8.57.0)(typescript@5.3.3)(vitest@1.3.1) + specifier: 2.8.0 + version: 2.8.0(@vue/compiler-sfc@3.4.21)(eslint@8.57.0)(typescript@5.3.3)(vitest@1.3.1) eslint: specifier: ^8.57.0 version: 8.57.0 @@ -21,8 +21,8 @@ importers: specifier: ^5.3.3 version: 5.3.3 vite: - specifier: ^5.1.4 - version: 5.1.4(@types/node@20.11.24)(lightningcss@1.24.0) + specifier: ^5.1.5 + version: 5.1.5(@types/node@20.11.24)(lightningcss@1.24.0) vitepress: specifier: 1.0.0-rc.44 version: 1.0.0-rc.44(@algolia/client-search@4.22.1)(search-insights@2.13.0)(typescript@5.3.3) @@ -33,8 +33,8 @@ importers: specifier: ^3.4.21 version: 3.4.21(typescript@5.3.3) vue-tsc: - specifier: ^2.0.3 - version: 2.0.3(typescript@5.3.3) + specifier: ^2.0.5 + version: 2.0.5(typescript@5.3.3) packages/core: dependencies: @@ -55,11 +55,11 @@ importers: specifier: ^5.3.3 version: 5.3.3 vite: - specifier: ^5.1.4 - version: 5.1.4(@types/node@20.11.24)(lightningcss@1.24.0) + specifier: ^5.1.5 + version: 5.1.5(@types/node@20.11.24)(lightningcss@1.24.0) vite-plugin-dts: specifier: ^3.7.3 - version: 3.7.3(@types/node@20.11.24)(typescript@5.3.3)(vite@5.1.4) + version: 3.7.3(@types/node@20.11.24)(typescript@5.3.3)(vite@5.1.5) packages/vue: dependencies: @@ -69,19 +69,19 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.1.4)(vue@3.4.21) + version: 5.0.4(vite@5.1.5)(vue@3.4.21) typescript: specifier: ^5.3.3 version: 5.3.3 vite: - specifier: ^5.1.4 - version: 5.1.4(@types/node@20.11.24)(lightningcss@1.24.0) + specifier: ^5.1.5 + version: 5.1.5(@types/node@20.11.24)(lightningcss@1.24.0) vue: specifier: ^3.4.21 version: 3.4.21(typescript@5.3.3) vue-tsc: - specifier: ^2.0.3 - version: 2.0.3(typescript@5.3.3) + specifier: ^2.0.5 + version: 2.0.5(typescript@5.3.3) packages/vue/demo: dependencies: @@ -94,16 +94,16 @@ importers: version: link:.. '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.1.4)(vue@3.4.21) + version: 5.0.4(vite@5.1.5)(vue@3.4.21) typescript: specifier: ^5.3.3 version: 5.3.3 vite: - specifier: ^5.1.4 - version: 5.1.4(@types/node@20.11.24)(lightningcss@1.24.0) + specifier: ^5.1.5 + version: 5.1.5(@types/node@20.11.24)(lightningcss@1.24.0) vue-tsc: - specifier: ^2.0.3 - version: 2.0.3(typescript@5.3.3) + specifier: ^2.0.5 + version: 2.0.5(typescript@5.3.3) packages: @@ -246,8 +246,8 @@ packages: '@algolia/requester-common': 4.22.1 dev: true - /@antfu/eslint-config@2.7.0(@vue/compiler-sfc@3.4.21)(eslint@8.57.0)(typescript@5.3.3)(vitest@1.3.1): - resolution: {integrity: sha512-CMILR+ZeiahWk8LhDlsHij/LPygX6QvQxl5AknTXm2QcFpMR6CZ14JHxTgkQJnRLM78D/CYZXwV38rU3us3PlQ==} + /@antfu/eslint-config@2.8.0(@vue/compiler-sfc@3.4.21)(eslint@8.57.0)(typescript@5.3.3)(vitest@1.3.1): + resolution: {integrity: sha512-5qdNKqJ6qWev17ulCikrYs6/AvLFKaOOdUAfuKPwpv0XFwzJWMnjOqoVpoExpMr9G5iIKjzU168gO30Jab/uNA==} hasBin: true peerDependencies: '@unocss/eslint-plugin': '>=0.50.0' @@ -259,6 +259,7 @@ packages: eslint-plugin-react-hooks: ^4.6.0 eslint-plugin-react-refresh: ^0.4.4 eslint-plugin-svelte: ^2.34.1 + prettier-plugin-astro: ^0.13.0 prettier-plugin-slidev: ^1.0.5 svelte-eslint-parser: ^0.33.1 peerDependenciesMeta: @@ -278,6 +279,8 @@ packages: optional: true eslint-plugin-svelte: optional: true + prettier-plugin-astro: + optional: true prettier-plugin-slidev: optional: true svelte-eslint-parser: @@ -289,24 +292,24 @@ packages: '@eslint-types/typescript-eslint': 7.0.2 '@eslint-types/unicorn': 51.0.1 '@stylistic/eslint-plugin': 1.6.3(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/eslint-plugin': 7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.3.3) eslint: 8.57.0 eslint-config-flat-gitignore: 0.1.3 eslint-merge-processors: 0.1.0(eslint@8.57.0) eslint-plugin-antfu: 2.1.2(eslint@8.57.0) eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.0) - eslint-plugin-i: 2.29.1(@typescript-eslint/parser@7.1.0)(eslint@8.57.0) + eslint-plugin-i: 2.29.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0) eslint-plugin-jsdoc: 48.2.0(eslint@8.57.0) eslint-plugin-jsonc: 2.13.0(eslint@8.57.0) eslint-plugin-markdown: 3.0.1(eslint@8.57.0) eslint-plugin-n: 16.6.2(eslint@8.57.0) eslint-plugin-no-only-tests: 3.1.0 - eslint-plugin-perfectionist: 2.5.0(eslint@8.57.0)(typescript@5.3.3)(vue-eslint-parser@9.4.2) + eslint-plugin-perfectionist: 2.6.0(eslint@8.57.0)(typescript@5.3.3)(vue-eslint-parser@9.4.2) eslint-plugin-toml: 0.9.2(eslint@8.57.0) eslint-plugin-unicorn: 51.0.1(eslint@8.57.0) - eslint-plugin-unused-imports: 3.1.0(@typescript-eslint/eslint-plugin@7.1.0)(eslint@8.57.0) - eslint-plugin-vitest: 0.3.22(@typescript-eslint/eslint-plugin@7.1.0)(eslint@8.57.0)(typescript@5.3.3)(vitest@1.3.1) + eslint-plugin-unused-imports: 3.1.0(@typescript-eslint/eslint-plugin@7.1.1)(eslint@8.57.0) + eslint-plugin-vitest: 0.3.22(@typescript-eslint/eslint-plugin@7.1.1)(eslint@8.57.0)(typescript@5.3.3)(vitest@1.3.1) eslint-plugin-vue: 9.22.0(eslint@8.57.0) eslint-plugin-yml: 1.12.2(eslint@8.57.0) eslint-processor-vue-blocks: 0.1.1(@vue/compiler-sfc@3.4.21)(eslint@8.57.0) @@ -1083,8 +1086,8 @@ packages: resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} dev: true - /@typescript-eslint/eslint-plugin@7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-j6vT/kCulhG5wBmGtstKeiVr1rdXE4nk+DT1k6trYkwlrvW9eOF5ZbgKnd/YR6PcM4uTEXa0h6Fcvf6X7Dxl0w==} + /@typescript-eslint/eslint-plugin@7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-zioDz623d0RHNhvx0eesUmGfIjzrk18nSBC8xewepKXbBvN/7c1qImV7Hg8TI1URTxKax7/zxfxj3Uph8Chcuw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -1095,11 +1098,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 7.1.0 - '@typescript-eslint/type-utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.1.0 + '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.1.1 + '@typescript-eslint/type-utils': 7.1.1(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/utils': 7.1.1(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.1.1 debug: 4.3.4 eslint: 8.57.0 graphemer: 1.4.0 @@ -1112,8 +1115,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@7.1.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-V1EknKUubZ1gWFjiOZhDSNToOjs63/9O0puCgGS8aDOgpZY326fzFu15QAUjwaXzRZjf/qdsdBrckYdv9YxB8w==} + /@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-ZWUFyL0z04R1nAEgr9e79YtV5LbafdOtN7yapNbn1ansMyaegl2D4bL7vHoJ4HPSc4CaLwuCVas8CVuneKzplQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^8.56.0 @@ -1122,10 +1125,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.1.0 - '@typescript-eslint/types': 7.1.0 - '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 7.1.0 + '@typescript-eslint/scope-manager': 7.1.1 + '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 7.1.1 debug: 4.3.4 eslint: 8.57.0 typescript: 5.3.3 @@ -1141,16 +1144,16 @@ packages: '@typescript-eslint/visitor-keys': 6.21.0 dev: true - /@typescript-eslint/scope-manager@7.1.0: - resolution: {integrity: sha512-6TmN4OJiohHfoOdGZ3huuLhpiUgOGTpgXNUPJgeZOZR3DnIpdSgtt83RS35OYNNXxM4TScVlpVKC9jyQSETR1A==} + /@typescript-eslint/scope-manager@7.1.1: + resolution: {integrity: sha512-cirZpA8bJMRb4WZ+rO6+mnOJrGFDd38WoXCEI57+CYBqta8Yc8aJym2i7vyqLL1vVYljgw0X27axkUXz32T8TA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 7.1.0 - '@typescript-eslint/visitor-keys': 7.1.0 + '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/visitor-keys': 7.1.1 dev: true - /@typescript-eslint/type-utils@7.1.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-UZIhv8G+5b5skkcuhgvxYWHjk7FW7/JP5lPASMEUoliAPwIH/rxoUSQPia2cuOj9AmDZmwUl1usKm85t5VUMew==} + /@typescript-eslint/type-utils@7.1.1(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-5r4RKze6XHEEhlZnJtR3GYeCh1IueUHdbrukV2KSlLXaTjuSfeVF8mZUVPLovidCuZfbVjfhi4c0DNSa/Rdg5g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^8.56.0 @@ -1159,8 +1162,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) - '@typescript-eslint/utils': 7.1.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.3.3) + '@typescript-eslint/utils': 7.1.1(eslint@8.57.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.57.0 ts-api-utils: 1.2.1(typescript@5.3.3) @@ -1174,8 +1177,8 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@7.1.0: - resolution: {integrity: sha512-qTWjWieJ1tRJkxgZYXx6WUYtWlBc48YRxgY2JN1aGeVpkhmnopq+SUC8UEVGNXIvWH7XyuTjwALfG6bFEgCkQA==} + /@typescript-eslint/types@7.1.1: + resolution: {integrity: sha512-KhewzrlRMrgeKm1U9bh2z5aoL4s7K3tK5DwHDn8MHv0yQfWFz/0ZR6trrIHHa5CsF83j/GgHqzdbzCXJ3crx0Q==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -1201,8 +1204,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@7.1.0(typescript@5.3.3): - resolution: {integrity: sha512-k7MyrbD6E463CBbSpcOnwa8oXRdHzH1WiVzOipK3L5KSML92ZKgUBrTlehdi7PEIMT8k0bQixHUGXggPAlKnOQ==} + /@typescript-eslint/typescript-estree@7.1.1(typescript@5.3.3): + resolution: {integrity: sha512-9ZOncVSfr+sMXVxxca2OJOPagRwT0u/UHikM2Rd6L/aB+kL/QAuTnsv6MeXtjzCJYb8PzrXarypSGIPx3Jemxw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -1210,8 +1213,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.1.0 - '@typescript-eslint/visitor-keys': 7.1.0 + '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/visitor-keys': 7.1.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -1242,8 +1245,8 @@ packages: - typescript dev: true - /@typescript-eslint/utils@7.1.0(eslint@8.57.0)(typescript@5.3.3): - resolution: {integrity: sha512-WUFba6PZC5OCGEmbweGpnNJytJiLG7ZvDBJJoUcX4qZYf1mGZ97mO2Mps6O2efxJcJdRNpqweCistDbZMwIVHw==} + /@typescript-eslint/utils@7.1.1(eslint@8.57.0)(typescript@5.3.3): + resolution: {integrity: sha512-thOXM89xA03xAE0lW7alstvnyoBUbBX38YtY+zAUcpRPcq9EIhXPuJ0YTv948MbzmKh6e1AUszn5cBFK49Umqg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^8.56.0 @@ -1251,9 +1254,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 7.1.0 - '@typescript-eslint/types': 7.1.0 - '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3) + '@typescript-eslint/scope-manager': 7.1.1 + '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.3.3) eslint: 8.57.0 semver: 7.6.0 transitivePeerDependencies: @@ -1269,11 +1272,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@7.1.0: - resolution: {integrity: sha512-FhUqNWluiGNzlvnDZiXad4mZRhtghdoKW6e98GoEOYSu5cND+E39rG5KwJMUzeENwm1ztYBRqof8wMLP+wNPIA==} + /@typescript-eslint/visitor-keys@7.1.1: + resolution: {integrity: sha512-yTdHDQxY7cSoCcAtiBzVzxleJhkGB9NncSIyMYe2+OGON1ZsP9zOPws/Pqgopa65jvknOjlk/w7ulPlZ78PiLQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 7.1.0 + '@typescript-eslint/types': 7.1.1 eslint-visitor-keys: 3.4.3 dev: true @@ -1281,14 +1284,14 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@vitejs/plugin-vue@5.0.4(vite@5.1.4)(vue@3.4.21): + /@vitejs/plugin-vue@5.0.4(vite@5.1.5)(vue@3.4.21): resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 vue: ^3.2.25 dependencies: - vite: 5.1.4(@types/node@20.11.24)(lightningcss@1.24.0) + vite: 5.1.5(@types/node@20.11.24)(lightningcss@1.24.0) vue: 3.4.21(typescript@5.3.3) dev: true @@ -1311,7 +1314,7 @@ packages: /@vitest/snapshot@1.3.1: resolution: {integrity: sha512-EF++BZbt6RZmOlE3SuTPu/NfwBF6q4ABS37HHXzs2LUVPBLx2QoY/K0fKpRChSo8eLiuxcbCVfqKgx/dplCDuQ==} dependencies: - magic-string: 0.30.7 + magic-string: 0.30.8 pathe: 1.1.2 pretty-format: 29.7.0 dev: true @@ -1337,10 +1340,10 @@ packages: '@volar/source-map': 1.11.1 dev: true - /@volar/language-core@2.1.0: - resolution: {integrity: sha512-BrYEgYHx92ocpt1OUxJs2x3TAXEjpPLxsQoARb96g2GdF62xnfRQUqCNBwiU7Z3MQ/0tOAdqdHNYNmrFtx6q4A==} + /@volar/language-core@2.1.1: + resolution: {integrity: sha512-oVbZcj97+5zlowkHMSJMt3aaAFuFyhXeXoOEHcqGECxFvw1TPCNnMM9vxhqNpoiNeWKHvggoq9WCk/HzJHtP8A==} dependencies: - '@volar/source-map': 2.1.0 + '@volar/source-map': 2.1.1 dev: true /@volar/source-map@1.11.1: @@ -1349,8 +1352,8 @@ packages: muggle-string: 0.3.1 dev: true - /@volar/source-map@2.1.0: - resolution: {integrity: sha512-VPyi+DTv67cvUOkUewzsOQJY3VUhjOjQxigT487z/H7tEI8ZFd5RksC5afk3JelOK+a/3Y8LRDbKmYKu1dz87g==} + /@volar/source-map@2.1.1: + resolution: {integrity: sha512-OOtxrEWB2eZ+tnCy5JwDkcCPGlN3+ioNNzkywXE9k4XA7p4cN36frR7QPAOksvd7RXKUGHzSjq6XrYnTPa4z4Q==} dependencies: muggle-string: 0.4.1 dev: true @@ -1362,10 +1365,10 @@ packages: path-browserify: 1.0.1 dev: true - /@volar/typescript@2.1.0: - resolution: {integrity: sha512-2cicVoW4q6eU/omqfOBv+6r9JdrF5bBelujbJhayPNKiOj/xwotSJ/DM8IeMvTZvtkOZkm6suyOCLEokLY0w2w==} + /@volar/typescript@2.1.1: + resolution: {integrity: sha512-5K41AWvFZCMMKZCx8bbFvbkyiKHr0s9k8P0M1FVXLX/9HYHzK5C9B8cX4uhATSehAytFIRnR4fTXVQtWp/Yzag==} dependencies: - '@volar/language-core': 2.1.0 + '@volar/language-core': 2.1.1 path-browserify: 1.0.1 dev: true @@ -1393,7 +1396,7 @@ packages: '@vue/compiler-ssr': 3.4.21 '@vue/shared': 3.4.21 estree-walker: 2.0.2 - magic-string: 0.30.7 + magic-string: 0.30.8 postcss: 8.4.35 source-map-js: 1.0.2 @@ -1450,15 +1453,15 @@ packages: vue-template-compiler: 2.7.16 dev: true - /@vue/language-core@2.0.3(typescript@5.3.3): - resolution: {integrity: sha512-hnVF/Q3cD2v+EFD4pD1YdITGBcdM38P18SYqilVQDezKw5RobWny4BwIckWGS1fJmUstsO9mTX30ZOyzyR2Q+Q==} + /@vue/language-core@2.0.5(typescript@5.3.3): + resolution: {integrity: sha512-knGXuQqhDSO7QJr8LFklsiWa23N2ikehkdVxtc9UKgnyqsnusughS2Tkg7VN8Hqed35X0B52Z+OGI5OrT/8uxQ==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@volar/language-core': 2.1.0 + '@volar/language-core': 2.1.1 '@vue/compiler-dom': 3.4.21 '@vue/shared': 3.4.21 computeds: 0.0.1 @@ -1701,8 +1704,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001593 - electron-to-chromium: 1.4.690 + caniuse-lite: 1.0.30001594 + electron-to-chromium: 1.4.693 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) dev: true @@ -1728,8 +1731,8 @@ packages: engines: {node: '>=6'} dev: true - /caniuse-lite@1.0.30001593: - resolution: {integrity: sha512-UWM1zlo3cZfkpBysd7AS+z+v007q9G1+fLTUU42rQnY6t2axoogPW/xol6T7juU5EUoOhML4WgBIdG+9yYqAjQ==} + /caniuse-lite@1.0.30001594: + resolution: {integrity: sha512-VblSX6nYqyJVs8DKFMldE2IVCJjZ225LW00ydtUWwh5hk9IfkTOffO6r8gJNsH0qqqeAF8KrbMYA2VEwTlGW5g==} dev: true /chai@4.4.1: @@ -1934,8 +1937,8 @@ packages: esutils: 2.0.3 dev: true - /electron-to-chromium@1.4.690: - resolution: {integrity: sha512-+2OAGjUx68xElQhydpcbqH50hE8Vs2K6TkAeLhICYfndb67CVH0UsZaijmRUE3rHlIxU1u0jxwhgVe6fK3YANA==} + /electron-to-chromium@1.4.693: + resolution: {integrity: sha512-/if4Ueg0GUQlhCrW2ZlXwDAm40ipuKo+OgeHInlL8sbjt+hzISxZK949fZeJaVsheamrzANXvw1zQTvbxTvSHw==} dev: true /emoji-regex@8.0.0: @@ -2042,7 +2045,7 @@ packages: eslint: 8.57.0 dev: true - /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.1.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.1.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} engines: {node: '>=4'} peerDependencies: @@ -2063,7 +2066,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.1.0(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 @@ -2102,7 +2105,7 @@ packages: ignore: 5.3.1 dev: true - /eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.1.0)(eslint@8.57.0): + /eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0): resolution: {integrity: sha512-ORizX37MelIWLbMyqI7hi8VJMf7A0CskMmYkB+lkCX3aF4pkGV7kwx5bSEb4qx7Yce2rAf9s34HqDRPjGRZPNQ==} engines: {node: '>=12'} peerDependencies: @@ -2112,7 +2115,7 @@ packages: doctrine: 3.0.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.1.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.1.1)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) get-tsconfig: 4.7.2 is-glob: 4.0.3 minimatch: 3.1.2 @@ -2197,8 +2200,8 @@ packages: engines: {node: '>=5.0.0'} dev: true - /eslint-plugin-perfectionist@2.5.0(eslint@8.57.0)(typescript@5.3.3)(vue-eslint-parser@9.4.2): - resolution: {integrity: sha512-F6XXcq4mKKUe/SREoMGQqzgw6cgCgf3pFzkFfQVIGtqD1yXVpQjnhTepzhBeZfxZwgMzR9HO4yH4CUhIQ2WBcQ==} + /eslint-plugin-perfectionist@2.6.0(eslint@8.57.0)(typescript@5.3.3)(vue-eslint-parser@9.4.2): + resolution: {integrity: sha512-hee0Fu5825v+WTIhrRIJdWO8biUgm9O+c4Q1AEXIIGsXDHrLv5cdXfVUdnQcYgGtI/4X+tdFu69iVofHCIkvtw==} peerDependencies: astro-eslint-parser: ^0.16.0 eslint: '>=8.0.0' @@ -2267,7 +2270,7 @@ packages: - supports-color dev: true - /eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.1.0)(eslint@8.57.0): + /eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.1.1)(eslint@8.57.0): resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2277,12 +2280,12 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.3.3) eslint: 8.57.0 eslint-rule-composer: 0.3.0 dev: true - /eslint-plugin-vitest@0.3.22(@typescript-eslint/eslint-plugin@7.1.0)(eslint@8.57.0)(typescript@5.3.3)(vitest@1.3.1): + /eslint-plugin-vitest@0.3.22(@typescript-eslint/eslint-plugin@7.1.1)(eslint@8.57.0)(typescript@5.3.3)(vitest@1.3.1): resolution: {integrity: sha512-atkFGQ7aVgcuSeSMDqnyevIyUpfBPMnosksgEPrKE7Y8xQlqG/5z2IQ6UDau05zXaaFv7Iz8uzqvIuKshjZ0Zw==} engines: {node: ^18.0.0 || >= 20.0.0} peerDependencies: @@ -2295,7 +2298,7 @@ packages: vitest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.3.3) '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3) eslint: 8.57.0 vitest: 1.3.1 @@ -3067,8 +3070,8 @@ packages: yallist: 4.0.0 dev: true - /magic-string@0.30.7: - resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} + /magic-string@0.30.8: + resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 @@ -3915,7 +3918,7 @@ packages: debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.1.4(@types/node@20.11.24)(lightningcss@1.24.0) + vite: 5.1.5(@types/node@20.11.24)(lightningcss@1.24.0) transitivePeerDependencies: - '@types/node' - less @@ -3927,7 +3930,7 @@ packages: - terser dev: true - /vite-plugin-dts@3.7.3(@types/node@20.11.24)(typescript@5.3.3)(vite@5.1.4): + /vite-plugin-dts@3.7.3(@types/node@20.11.24)(typescript@5.3.3)(vite@5.1.5): resolution: {integrity: sha512-26eTlBYdpjRLWCsTJebM8vkCieE+p9gP3raf+ecDnzzK5E3FG6VE1wcy55OkRpfWWVlVvKkYFe6uvRHYWx7Nog==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -3943,7 +3946,7 @@ packages: debug: 4.3.4 kolorist: 1.8.0 typescript: 5.3.3 - vite: 5.1.4(@types/node@20.11.24)(lightningcss@1.24.0) + vite: 5.1.5(@types/node@20.11.24)(lightningcss@1.24.0) vue-tsc: 1.8.27(typescript@5.3.3) transitivePeerDependencies: - '@types/node' @@ -3951,8 +3954,8 @@ packages: - supports-color dev: true - /vite@5.1.4(@types/node@20.11.24)(lightningcss@1.24.0): - resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==} + /vite@5.1.5(@types/node@20.11.24)(lightningcss@1.24.0): + resolution: {integrity: sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -4005,7 +4008,7 @@ packages: '@shikijs/core': 1.1.7 '@shikijs/transformers': 1.1.7 '@types/markdown-it': 13.0.7 - '@vitejs/plugin-vue': 5.0.4(vite@5.1.4)(vue@3.4.21) + '@vitejs/plugin-vue': 5.0.4(vite@5.1.5)(vue@3.4.21) '@vue/devtools-api': 7.0.16(vue@3.4.21) '@vueuse/core': 10.9.0(vue@3.4.21) '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.21) @@ -4013,7 +4016,7 @@ packages: mark.js: 8.11.1 minisearch: 6.3.0 shiki: 1.1.7 - vite: 5.1.4(@types/node@20.11.24)(lightningcss@1.24.0) + vite: 5.1.5(@types/node@20.11.24)(lightningcss@1.24.0) vue: 3.4.21(typescript@5.3.3) transitivePeerDependencies: - '@algolia/client-search' @@ -4078,14 +4081,14 @@ packages: debug: 4.3.4 execa: 8.0.1 local-pkg: 0.5.0 - magic-string: 0.30.7 + magic-string: 0.30.8 pathe: 1.1.2 picocolors: 1.0.0 std-env: 3.7.0 strip-literal: 2.0.0 tinybench: 2.6.0 tinypool: 0.8.2 - vite: 5.1.4(@types/node@20.11.24)(lightningcss@1.24.0) + vite: 5.1.5(@types/node@20.11.24)(lightningcss@1.24.0) vite-node: 1.3.1 why-is-node-running: 2.2.2 transitivePeerDependencies: @@ -4150,14 +4153,14 @@ packages: typescript: 5.3.3 dev: true - /vue-tsc@2.0.3(typescript@5.3.3): - resolution: {integrity: sha512-aMJqbgLiKDAwAglWqMoGf1Ez6Wwqhlk2MDxEjFGziiLW0A+tHOWE1+YQJZQ1Vm6zaENPA2KJAubFhaR988UvGg==} + /vue-tsc@2.0.5(typescript@5.3.3): + resolution: {integrity: sha512-e8WCgOVTrbmC04XPnI+IpaMTFYKaTm5s/MXFcvxO1l9kxzn+9FpGNVrBSlQE8VpTJaJg4kaBK1nj3NC20VJzjw==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@volar/typescript': 2.1.0 - '@vue/language-core': 2.0.3(typescript@5.3.3) + '@volar/typescript': 2.1.1 + '@vue/language-core': 2.0.5(typescript@5.3.3) semver: 7.6.0 typescript: 5.3.3 dev: true