Move nuxt-primevue to showcase and change plugin names

pull/4683/head
mertsincan 2023-10-24 11:09:12 +01:00
parent 466ff52431
commit 5440d3d6ea
14 changed files with 583 additions and 303 deletions

View File

@ -0,0 +1,103 @@
import { addPlugin, addPluginTemplate, addTemplate, createResolver, defineNuxtModule } from '@nuxt/kit';
import { register } from './register';
export default defineNuxtModule({
meta: {
name: 'nuxt-primevue',
configKey: 'primevue',
compatibility: {
nuxt: '^3.0.0'
}
},
defaults: {
usePrimeVue: true,
resolvePath: undefined,
layerOrder: 'tailwind-base, primevue, tailwind-utilities',
importPT: undefined,
options: {},
components: {
prefix: '',
name: undefined,
include: undefined,
exclude: undefined
},
directives: {
prefix: '',
name: undefined,
include: undefined,
exclude: undefined
},
composables: {
prefix: '',
name: undefined,
include: undefined,
exclude: undefined
}
},
hooks: {},
setup(moduleOptions, nuxt) {
const resolver = createResolver(import.meta.url);
const registered = register(moduleOptions);
const { importPT } = moduleOptions;
nuxt.options.runtimeConfig.public.primevue = {
...moduleOptions,
...registered
};
//nuxt.options.build.transpile.push('nuxt');
nuxt.options.build.transpile.push('primevue');
const styleContent = () => `
${registered.styles.map((style) => `import ${style.as} from '${style.from}';`).join('\n')}
const styles = [
${registered.injectStylesAsString.join('')},
${registered.styles.map((item) => `${item.as} && ${item.as}.getStyleSheet ? ${item.as}.getStyleSheet() : ''`).join(',')}
].join('');
export { styles };
`;
nuxt.options.alias['#primevue-style'] = addTemplate({
filename: 'primevue-style.mjs',
getContents: styleContent
}).dst;
addPlugin(resolver.resolve('./runtime/plugin.client'));
addPluginTemplate({
filename: 'primevue-plugin.mjs',
getContents() {
return `
import { defineNuxtPlugin, useRuntimeConfig } from '#imports';
${registered.config.map((config) => `import ${config.as} from '${config.from}';`).join('\n')}
${registered.services.map((service) => `import ${service.as} from '${service.from}';`).join('\n')}
${registered.directives.map((directive) => `import ${directive.as} from '${directive.from}';`).join('\n')}
${importPT ? `import ${importPT.as} from '${importPT.from}';\n` : ''}
export default defineNuxtPlugin(({ vueApp }) => {
const runtimeConfig = useRuntimeConfig();
const config = runtimeConfig?.public?.primevue ?? {};
const { usePrimeVue = true, options = {} } = config;
const pt = ${importPT ? `{ pt: ${importPT.as} }` : `{}`};
usePrimeVue && vueApp.use(PrimeVue, { ...options, ...pt });
${registered.services.map((service) => `vueApp.use(${service.as});`).join('\n')}
${registered.directives.map((directive) => `vueApp.directive('${directive.name}', ${directive.as});`).join('\n')}
});
`;
}
});
nuxt.hook('nitro:config', async (config) => {
config.externals = config.externals || {};
config.externals.inline = config.externals.inline || [];
config.externals.inline.push(resolver.resolve('./runtime/plugin.server'));
config.virtual = config.virtual || {};
config.virtual['#primevue-style'] = styleContent;
config.plugins = config.plugins || [];
config.plugins.push(resolver.resolve('./runtime/plugin.server'));
});
}
});

View File

@ -0,0 +1,157 @@
import { addComponent, addImports } from '@nuxt/kit';
import { components } from './runtime/core/components';
import { composables } from './runtime/core/composables';
import { directives } from './runtime/core/directives';
import { Utils } from './utils';
function registerItems(items = [], options = {}, params) {
const included = Utils.object.getValue(options.include, params);
const excluded = Utils.object.getValue(options.exclude, params);
return items.filter((item) => {
const name = item?.name;
const matchedIn = included === '*' || included === undefined ? true : Utils.object.isNotEmpty(included) ? included.some((inc) => name?.toLowerCase() === inc.toLowerCase()) : false;
const matchedEx = excluded === '*' ? true : Utils.object.isNotEmpty(excluded) ? excluded.some((exc) => name?.toLowerCase() === exc.toLowerCase()) : false;
return matchedIn && !matchedEx;
});
}
function registerConfig(resolvePath) {
return [
{
name: 'PrimeVue',
as: 'PrimeVue',
from: resolvePath({ name: 'PrimeVue', as: 'PrimeVue', from: `primevue/config`, type: 'config' })
}
];
}
function registerComponents(resolvePath, options = {}) {
const items = registerItems(components, options, { components });
return items.map((item) => {
const _item = { ...item, name: item.name, as: item.name, from: `primevue/${item.name.toLowerCase()}` };
const name = Utils.object.getName(_item, options);
const from = resolvePath({ name, as: _item.as, from: _item.from, type: 'component' });
const opt = {
export: 'default',
name,
filePath: from,
global: true
};
addComponent(opt);
return {
..._item,
...opt
};
});
}
function registerDirectives(resolvePath, options = {}) {
const items = registerItems(directives, options, { directives });
return items.map((item) => {
const name = Utils.object.getName(item, options);
const opt = {
...item,
name,
from: resolvePath({ name, as: item.as, from: item.from, type: 'directive' })
};
return opt;
});
}
function registerComposables(resolvePath, options = {}) {
const items = registerItems(composables, options, { composables });
return items.map((item) => {
const name = Utils.object.getName(item, options);
const opt = {
...item,
name,
from: resolvePath({ name, as: item.as, from: item.from, type: 'composable' })
};
addImports(opt);
return opt;
});
}
function registerServices(resolvePath, registered) {
const services = new Set();
registered?.components?.forEach((component) => component?.use && services.add(component.use.as));
return [...services].map((service) => ({
name: service,
as: service,
from: resolvePath({ name: service, as: service, from: `primevue/${service.toLowerCase()}`, type: 'service' })
}));
}
function registerStyles(resolvePath, registered, options) {
const styles = [
{
name: 'BaseStyle',
as: 'BaseStyle',
from: resolvePath({ name: 'BaseStyle', as: 'BaseStyle', from: 'primevue/base/style', type: 'style' })
}
];
if (!options?.unstyled) {
if (Utils.object.isNotEmpty(registered?.components)) {
styles.push({
name: 'BaseComponentStyle',
as: 'BaseComponentStyle',
from: resolvePath({ name: 'BaseComponentStyle', as: 'BaseComponentStyle', from: 'primevue/basecomponent/style', type: 'style' })
});
}
[registered.components, registered.directives]
.flat()
.reduce((acc, citem) => (acc.some((item) => item.as.toLowerCase() === citem.as.toLowerCase()) ? acc : [...acc, citem]), [])
.forEach((item) =>
styles.push({
name: `${item.as}Style`,
as: `${item.as}Style`,
from: resolvePath({ name: `${item.as}Style`, as: `${item.as}Style`, from: `primevue/${item.as.toLowerCase()}/style`, type: 'style' })
})
);
}
return styles;
}
function registerInjectStylesAsString(options) {
return [Utils.object.createStyleAsString(options.layerOrder ? `@layer ${options.layerOrder}` : undefined, { name: 'layer-order' })];
}
export function register(moduleOptions) {
const resolvePath = (resolveOptions) => Utils.object.getPath(moduleOptions.resolvePath, resolveOptions);
const config = registerConfig(resolvePath);
const components = registerComponents(resolvePath, moduleOptions.components);
const directives = registerDirectives(resolvePath, moduleOptions.directives);
const composables = registerComposables(resolvePath, moduleOptions.composables);
const registered = {
components,
directives,
composables
};
const services = registerServices(resolvePath, registered);
const styles = registerStyles(resolvePath, registered, moduleOptions.options);
const injectStylesAsString = registerInjectStylesAsString(moduleOptions);
return {
config,
...registered,
services,
styles,
injectStylesAsString
};
}

View File

@ -0,0 +1,48 @@
const form = [
'AutoComplete',
'Calendar',
'CascadeSelect',
'Checkbox',
'Chips',
'ColorPicker',
'Dropdown',
'Editor',
'InputMask',
'InputNumber',
'InputSwitch',
'InputText',
'Knob',
'Listbox',
'MultiSelect',
'Password',
'RadioButton',
'Rating',
'SelectButton',
'Slider',
'Textarea',
'ToggleButton',
'TreeSelect',
'TriStateCheckbox'
];
const button = ['Button', 'SpeedDial', 'SplitButton'];
const data = ['Column', 'Row', 'ColumnGroup', 'DataTable', 'DataView', 'DataViewLayoutOptions', 'OrderList', 'OrganizationChart', 'Paginator', 'PickList', 'Tree', 'TreeTable', 'Timeline', 'VirtualScroller'];
const panel = ['Accordion', 'AccordionTab', 'Card', 'DeferredContent', 'Divider', 'Fieldset', 'Panel', 'ScrollPanel', 'Splitter', 'SplitterPanel', 'TabView', 'TabPanel', 'Toolbar'];
const overlay = [{ name: 'ConfirmDialog', use: { as: 'ConfirmationService' } }, { name: 'ConfirmPopup', use: { as: 'ConfirmationService' } }, 'Dialog', { name: 'DynamicDialog', use: { as: 'DialogService' } }, 'OverlayPanel', 'Sidebar'];
const file = ['FileUpload'];
const menu = ['Breadcrumb', 'ContextMenu', 'Dock', 'Menu', 'Menubar', 'MegaMenu', 'PanelMenu', 'Steps', 'TabMenu', 'TieredMenu'];
const chart = ['Chart'];
const messages = ['Message', 'InlineMessage', { name: 'Toast', use: { as: 'ToastService' } }];
const media = ['Carousel', 'Galleria', 'Image'];
const misc = ['Avatar', 'AvatarGroup', 'Badge', 'BlockUI', 'Chip', 'Inplace', 'ScrollTop', 'Skeleton', 'ProgressBar', 'ProgressSpinner', 'Tag', 'Terminal'];
export const components = [...form, ...button, ...data, ...panel, ...overlay, ...file, ...menu, ...chart, ...messages, ...media, ...misc].map((c) => (typeof c === 'string' ? { name: c } : c));

View File

@ -0,0 +1 @@
export const composables = [{ name: 'useStyle', as: 'useStyle', from: 'primevue/usestyle' }];

View File

@ -0,0 +1,8 @@
export const directives = [
{ name: 'badge', as: 'BadgeDirective', from: 'primevue/badgedirective' },
{ name: 'tooltip', as: 'Tooltip', from: 'primevue/tooltip' },
{ name: 'ripple', as: 'Ripple', from: 'primevue/ripple' },
{ name: 'styleclass', as: 'StyleClass', from: 'primevue/styleclass' },
{ name: 'focustrap', as: 'FocusTrap', from: 'primevue/focustrap' },
{ name: 'animate', as: 'Animate', from: 'primevue/animate' }
];

View File

@ -0,0 +1,3 @@
import { defineNuxtPlugin } from 'nuxt/app';
export default defineNuxtPlugin(({ vueApp }) => {});

View File

@ -0,0 +1,11 @@
// @ts-expect-error
import { styles } from '#primevue-style';
//import { useRuntimeConfig } from '#imports';
const defineNitroPlugin = (def) => def;
export default defineNitroPlugin(async (nitroApp) => {
nitroApp.hooks.hook('render:html', (html) => {
html.head.push(styles);
});
});

View File

@ -0,0 +1,34 @@
export const Utils = {
object: {
isEmpty(value) {
return value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0) || (!(value instanceof Date) && typeof value === 'object' && Object.keys(value).length === 0);
},
isNotEmpty(value) {
return !this.isEmpty(value);
},
isFunction(value) {
return !!(value && value.constructor && value.call && value.apply);
},
isString(value, empty = true) {
return typeof value === 'string' && (empty || value !== '');
},
getValue(obj, ...params) {
return this.isFunction(obj) ? obj(...params) : obj;
},
getName(item, options) {
return this.isFunction(options?.name) ? options.name(item) : `${options.prefix}${item.name}`;
},
getPath(fn, options) {
return this.isFunction(fn) ? fn(options) : options.from;
},
createStyleAsString(css, options = { name: '' }) {
if (css) {
const { name, ...rest } = options;
return `'<style type="text/css" data-primevue-style-id="${name}"${Object.entries(rest).reduce((s, [k, v]) => s + `${k}="${v}"`, ' ')}>${css}</style>'`;
}
return '';
}
}
};

View File

@ -5,7 +5,7 @@ const baseUrl = '/';
// https://nuxt.com/docs/api/configuration/nuxt-config // https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({ export default defineNuxtConfig({
typescript: false, typescript: false,
modules: ['nuxt-gtag', 'nuxt-primevue'], modules: ['nuxt-gtag', '~/modules/nuxt-primevue/module'],
components: [ components: [
'~/components', '~/components',
{ {
@ -17,7 +17,10 @@ export default defineNuxtConfig({
alias: viteConfig.resolve.alias alias: viteConfig.resolve.alias
}, },
primevue: { primevue: {
usePrimeVue: false, options: {
ripple: true
},
layerOrder: 'primevue',
resolvePath: function ({ as, from, type }) { resolvePath: function ({ as, from, type }) {
const resolvedPath = from.replace('primevue', '@/components/lib'); const resolvedPath = from.replace('primevue', '@/components/lib');

493
package-lock.json generated
View File

@ -36,7 +36,6 @@
"gulp-uglifycss": "^1.0.6", "gulp-uglifycss": "^1.0.6",
"jsdom": "^19.0.0", "jsdom": "^19.0.0",
"nuxt": "3.3.2", "nuxt": "3.3.2",
"nuxt-primevue": "^0.0.3",
"prettier": "2.7.1", "prettier": "2.7.1",
"primeflex": "^3.3.1", "primeflex": "^3.3.1",
"primeicons": "^6.0.1", "primeicons": "^6.0.1",
@ -2412,21 +2411,21 @@
} }
}, },
"node_modules/@eslint/js": { "node_modules/@eslint/js": {
"version": "8.51.0", "version": "8.52.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz",
"integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0" "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
} }
}, },
"node_modules/@humanwhocodes/config-array": { "node_modules/@humanwhocodes/config-array": {
"version": "0.11.11", "version": "0.11.13",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
"integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@humanwhocodes/object-schema": "^1.2.1", "@humanwhocodes/object-schema": "^2.0.1",
"debug": "^4.1.1", "debug": "^4.1.1",
"minimatch": "^3.0.5" "minimatch": "^3.0.5"
}, },
@ -2448,9 +2447,9 @@
} }
}, },
"node_modules/@humanwhocodes/object-schema": { "node_modules/@humanwhocodes/object-schema": {
"version": "1.2.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz",
"integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==",
"dev": true "dev": true
}, },
"node_modules/@ioredis/commands": { "node_modules/@ioredis/commands": {
@ -2787,13 +2786,13 @@
} }
}, },
"node_modules/@nuxt/telemetry/node_modules/@nuxt/kit": { "node_modules/@nuxt/telemetry/node_modules/@nuxt/kit": {
"version": "3.7.4", "version": "3.8.0",
"resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.7.4.tgz", "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.8.0.tgz",
"integrity": "sha512-/S5abZL62BITCvC/TY3KWA6N721U1Osln3cQdBb56XHIeafZCBVqTi92Xb0o7ovl72mMRhrKwRu7elzvz9oT/g==", "integrity": "sha512-oIthQxeMIVs4ESVP5FqLYn8tj0S1sLd+eYreh+dNYgnJ2pTi7+THR12ONBNHjk668jqEe7ErUJ8UlGwqBzgezg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@nuxt/schema": "3.7.4", "@nuxt/schema": "3.8.0",
"c12": "^1.4.2", "c12": "^1.5.1",
"consola": "^3.2.3", "consola": "^3.2.3",
"defu": "^6.1.2", "defu": "^6.1.2",
"globby": "^13.2.2", "globby": "^13.2.2",
@ -2806,9 +2805,9 @@
"pkg-types": "^1.0.3", "pkg-types": "^1.0.3",
"scule": "^1.0.0", "scule": "^1.0.0",
"semver": "^7.5.4", "semver": "^7.5.4",
"ufo": "^1.3.0", "ufo": "^1.3.1",
"unctx": "^2.3.1", "unctx": "^2.3.1",
"unimport": "^3.3.0", "unimport": "^3.4.0",
"untyped": "^1.4.0" "untyped": "^1.4.0"
}, },
"engines": { "engines": {
@ -2816,9 +2815,9 @@
} }
}, },
"node_modules/@nuxt/telemetry/node_modules/@nuxt/schema": { "node_modules/@nuxt/telemetry/node_modules/@nuxt/schema": {
"version": "3.7.4", "version": "3.8.0",
"resolved": "https://registry.npmjs.org/@nuxt/schema/-/schema-3.7.4.tgz", "resolved": "https://registry.npmjs.org/@nuxt/schema/-/schema-3.8.0.tgz",
"integrity": "sha512-q6js+97vDha4Fa2x2kDVEuokJr+CGIh1TY2wZp2PLZ7NhG3XEeib7x9Hq8XE8B6pD0GKBRy3eRPPOY69gekBCw==", "integrity": "sha512-VEDVeCjdVowhoY5vIBSz94+SSwmM204jN6TNe/ShBJ2d/vZiy9EtLbhOwqaPNFHwnN1fl/XFHThwJiexdB9D1w==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@nuxt/ui-templates": "^1.3.1", "@nuxt/ui-templates": "^1.3.1",
@ -2829,8 +2828,8 @@
"pkg-types": "^1.0.3", "pkg-types": "^1.0.3",
"postcss-import-resolver": "^2.0.0", "postcss-import-resolver": "^2.0.0",
"std-env": "^3.4.3", "std-env": "^3.4.3",
"ufo": "^1.3.0", "ufo": "^1.3.1",
"unimport": "^3.3.0", "unimport": "^3.4.0",
"untyped": "^1.4.0" "untyped": "^1.4.0"
}, },
"engines": { "engines": {
@ -3879,9 +3878,9 @@
} }
}, },
"node_modules/@types/eslint": { "node_modules/@types/eslint": {
"version": "8.44.5", "version": "8.44.6",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.5.tgz", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.6.tgz",
"integrity": "sha512-Ol2eio8LtD/tGM4Ga7Jb83NuFwEv3NqvssSlifXL9xuFpSyQZw0ecmm2Kux6iU0KxQmp95hlPmGCzGJ0TCFeRA==", "integrity": "sha512-P6bY56TVmX8y9J87jHNgQh43h6VVU+6H7oN7hgvivV81K2XY8qJZ5vqPy/HdUoVIelii2kChYVzQanlswPWVFw==",
"dev": true, "dev": true,
"peer": true, "peer": true,
"dependencies": { "dependencies": {
@ -3912,9 +3911,9 @@
"dev": true "dev": true
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "20.8.7", "version": "20.8.8",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.7.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.8.tgz",
"integrity": "sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ==", "integrity": "sha512-YRsdVxq6OaLfmR9Hy816IMp33xOBjfyOgUd77ehqg96CFywxAPbDbXvAsuN2KVg2HOT8Eh6uAfU+l4WffwPVrQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"undici-types": "~5.25.1" "undici-types": "~5.25.1"
@ -3926,6 +3925,12 @@
"integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
"dev": true "dev": true
}, },
"node_modules/@ungap/structured-clone": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
"integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
"dev": true
},
"node_modules/@unhead/dom": { "node_modules/@unhead/dom": {
"version": "1.7.4", "version": "1.7.4",
"resolved": "https://registry.npmjs.org/@unhead/dom/-/dom-1.7.4.tgz", "resolved": "https://registry.npmjs.org/@unhead/dom/-/dom-1.7.4.tgz",
@ -4268,49 +4273,49 @@
} }
}, },
"node_modules/@vue/compiler-core": { "node_modules/@vue/compiler-core": {
"version": "3.3.4", "version": "3.3.6",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.6.tgz",
"integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", "integrity": "sha512-2JNjemwaNwf+MkkatATVZi7oAH1Hx0B04DdPH3ZoZ8vKC1xZVP7nl4HIsk8XYd3r+/52sqqoz9TWzYc3yE9dqA==",
"dependencies": { "dependencies": {
"@babel/parser": "^7.21.3", "@babel/parser": "^7.23.0",
"@vue/shared": "3.3.4", "@vue/shared": "3.3.6",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"source-map-js": "^1.0.2" "source-map-js": "^1.0.2"
} }
}, },
"node_modules/@vue/compiler-dom": { "node_modules/@vue/compiler-dom": {
"version": "3.3.4", "version": "3.3.6",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.6.tgz",
"integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", "integrity": "sha512-1MxXcJYMHiTPexjLAJUkNs/Tw2eDf2tY3a0rL+LfuWyiKN2s6jvSwywH3PWD8bKICjfebX3GWx2Os8jkRDq3Ng==",
"dependencies": { "dependencies": {
"@vue/compiler-core": "3.3.4", "@vue/compiler-core": "3.3.6",
"@vue/shared": "3.3.4" "@vue/shared": "3.3.6"
} }
}, },
"node_modules/@vue/compiler-sfc": { "node_modules/@vue/compiler-sfc": {
"version": "3.3.4", "version": "3.3.6",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.6.tgz",
"integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", "integrity": "sha512-/Kms6du2h1VrXFreuZmlvQej8B1zenBqIohP0690IUBkJjsFvJxY0crcvVRJ0UhMgSR9dewB+khdR1DfbpArJA==",
"dependencies": { "dependencies": {
"@babel/parser": "^7.20.15", "@babel/parser": "^7.23.0",
"@vue/compiler-core": "3.3.4", "@vue/compiler-core": "3.3.6",
"@vue/compiler-dom": "3.3.4", "@vue/compiler-dom": "3.3.6",
"@vue/compiler-ssr": "3.3.4", "@vue/compiler-ssr": "3.3.6",
"@vue/reactivity-transform": "3.3.4", "@vue/reactivity-transform": "3.3.6",
"@vue/shared": "3.3.4", "@vue/shared": "3.3.6",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"magic-string": "^0.30.0", "magic-string": "^0.30.5",
"postcss": "^8.1.10", "postcss": "^8.4.31",
"source-map-js": "^1.0.2" "source-map-js": "^1.0.2"
} }
}, },
"node_modules/@vue/compiler-ssr": { "node_modules/@vue/compiler-ssr": {
"version": "3.3.4", "version": "3.3.6",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.6.tgz",
"integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", "integrity": "sha512-QTIHAfDCHhjXlYGkUg5KH7YwYtdUM1vcFl/FxFDlD6d0nXAmnjizka3HITp8DGudzHndv2PjKVS44vqqy0vP4w==",
"dependencies": { "dependencies": {
"@vue/compiler-dom": "3.3.4", "@vue/compiler-dom": "3.3.6",
"@vue/shared": "3.3.4" "@vue/shared": "3.3.6"
} }
}, },
"node_modules/@vue/devtools-api": { "node_modules/@vue/devtools-api": {
@ -4319,60 +4324,60 @@
"integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==" "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA=="
}, },
"node_modules/@vue/reactivity": { "node_modules/@vue/reactivity": {
"version": "3.3.4", "version": "3.3.6",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.6.tgz",
"integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", "integrity": "sha512-gtChAumfQz5lSy5jZXfyXbKrIYPf9XEOrIr6rxwVyeWVjFhJwmwPLtV6Yis+M9onzX++I5AVE9j+iPH60U+B8Q==",
"dependencies": { "dependencies": {
"@vue/shared": "3.3.4" "@vue/shared": "3.3.6"
} }
}, },
"node_modules/@vue/reactivity-transform": { "node_modules/@vue/reactivity-transform": {
"version": "3.3.4", "version": "3.3.6",
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.6.tgz",
"integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", "integrity": "sha512-RlJl4dHfeO7EuzU1iJOsrlqWyJfHTkJbvYz/IOJWqu8dlCNWtxWX377WI0VsbAgBizjwD+3ZjdnvSyyFW1YVng==",
"dependencies": { "dependencies": {
"@babel/parser": "^7.20.15", "@babel/parser": "^7.23.0",
"@vue/compiler-core": "3.3.4", "@vue/compiler-core": "3.3.6",
"@vue/shared": "3.3.4", "@vue/shared": "3.3.6",
"estree-walker": "^2.0.2", "estree-walker": "^2.0.2",
"magic-string": "^0.30.0" "magic-string": "^0.30.5"
} }
}, },
"node_modules/@vue/runtime-core": { "node_modules/@vue/runtime-core": {
"version": "3.3.4", "version": "3.3.6",
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.6.tgz",
"integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", "integrity": "sha512-qp7HTP1iw1UW2ZGJ8L3zpqlngrBKvLsDAcq5lA6JvEXHmpoEmjKju7ahM9W2p/h51h0OT5F2fGlP/gMhHOmbUA==",
"dependencies": { "dependencies": {
"@vue/reactivity": "3.3.4", "@vue/reactivity": "3.3.6",
"@vue/shared": "3.3.4" "@vue/shared": "3.3.6"
} }
}, },
"node_modules/@vue/runtime-dom": { "node_modules/@vue/runtime-dom": {
"version": "3.3.4", "version": "3.3.6",
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.6.tgz",
"integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", "integrity": "sha512-AoX3Cp8NqMXjLbIG9YR6n/pPLWE9TiDdk6wTJHFnl2GpHzDFH1HLBC9wlqqQ7RlnvN3bVLpzPGAAH00SAtOxHg==",
"dependencies": { "dependencies": {
"@vue/runtime-core": "3.3.4", "@vue/runtime-core": "3.3.6",
"@vue/shared": "3.3.4", "@vue/shared": "3.3.6",
"csstype": "^3.1.1" "csstype": "^3.1.2"
} }
}, },
"node_modules/@vue/server-renderer": { "node_modules/@vue/server-renderer": {
"version": "3.3.4", "version": "3.3.6",
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.6.tgz",
"integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", "integrity": "sha512-kgLoN43W4ERdZ6dpyy+gnk2ZHtcOaIr5Uc/WUP5DRwutgvluzu2pudsZGoD2b7AEJHByUVMa9k6Sho5lLRCykw==",
"dependencies": { "dependencies": {
"@vue/compiler-ssr": "3.3.4", "@vue/compiler-ssr": "3.3.6",
"@vue/shared": "3.3.4" "@vue/shared": "3.3.6"
}, },
"peerDependencies": { "peerDependencies": {
"vue": "3.3.4" "vue": "3.3.6"
} }
}, },
"node_modules/@vue/shared": { "node_modules/@vue/shared": {
"version": "3.3.4", "version": "3.3.6",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.6.tgz",
"integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" "integrity": "sha512-Xno5pEqg8SVhomD0kTSmfh30ZEmV/+jZtyh39q6QflrjdJCXah5lrnOLi9KB6a5k5aAHXMXjoMnxlzUkCNfWLQ=="
}, },
"node_modules/@vue/test-utils": { "node_modules/@vue/test-utils": {
"version": "2.4.1", "version": "2.4.1",
@ -5249,13 +5254,13 @@
} }
}, },
"node_modules/babel-plugin-polyfill-corejs3": { "node_modules/babel-plugin-polyfill-corejs3": {
"version": "0.8.5", "version": "0.8.6",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.5.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz",
"integrity": "sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA==", "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/helper-define-polyfill-provider": "^0.4.3", "@babel/helper-define-polyfill-provider": "^0.4.3",
"core-js-compat": "^3.32.2" "core-js-compat": "^3.33.1"
}, },
"peerDependencies": { "peerDependencies": {
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
@ -5539,17 +5544,17 @@
} }
}, },
"node_modules/c12": { "node_modules/c12": {
"version": "1.4.2", "version": "1.5.1",
"resolved": "https://registry.npmjs.org/c12/-/c12-1.4.2.tgz", "resolved": "https://registry.npmjs.org/c12/-/c12-1.5.1.tgz",
"integrity": "sha512-3IP/MuamSVRVw8W8+CHWAz9gKN4gd+voF2zm/Ln6D25C2RhytEZ1ABbC8MjKr4BR9rhoV1JQ7jJA158LDiTkLg==", "integrity": "sha512-BWZRJgDEveT8uI+cliCwvYSSSSvb4xKoiiu5S0jaDbKBopQLQF7E+bq9xKk1pTcG+mUa3yXuFO7bD9d8Lr9Xxg==",
"dependencies": { "dependencies": {
"chokidar": "^3.5.3", "chokidar": "^3.5.3",
"defu": "^6.1.2", "defu": "^6.1.2",
"dotenv": "^16.3.1", "dotenv": "^16.3.1",
"giget": "^1.1.2", "giget": "^1.1.3",
"jiti": "^1.18.2", "jiti": "^1.20.0",
"mlly": "^1.4.0", "mlly": "^1.4.2",
"ohash": "^1.1.2", "ohash": "^1.1.3",
"pathe": "^1.1.1", "pathe": "^1.1.1",
"perfect-debounce": "^1.0.0", "perfect-debounce": "^1.0.0",
"pkg-types": "^1.0.3", "pkg-types": "^1.0.3",
@ -5724,13 +5729,14 @@
} }
}, },
"node_modules/call-bind": { "node_modules/call-bind": {
"version": "1.0.2", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"function-bind": "^1.1.1", "function-bind": "^1.1.2",
"get-intrinsic": "^1.0.2" "get-intrinsic": "^1.2.1",
"set-function-length": "^1.1.1"
}, },
"funding": { "funding": {
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
@ -5770,9 +5776,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001550", "version": "1.0.30001553",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001550.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001553.tgz",
"integrity": "sha512-p82WjBYIypO0ukTsd/FG3Xxs+4tFeaY9pfT4amQL8KWtYH7H9nYwReGAbMTJ0hsmRO8IfDtsS6p3ZWj8+1c2RQ==", "integrity": "sha512-N0ttd6TrFfuqKNi+pMgWJTb9qrdJu4JSpgPFLe/lrD19ugC6fZgF0pUewRowDwzdDnb9V41mFcdlYgl/PyKf4A==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
@ -6474,9 +6480,9 @@
} }
}, },
"node_modules/core-js-compat": { "node_modules/core-js-compat": {
"version": "3.33.0", "version": "3.33.1",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.0.tgz", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.1.tgz",
"integrity": "sha512-0w4LcLXsVEuNkIqwjjf9rjCoPhK8uqA4tMRh4Ge26vfLtUutshn+aRJU21I9LCJlh2QQHfisNToLjw1XEJLTWw==", "integrity": "sha512-6pYKNOgD/j/bkC5xS5IIg6bncid3rfrI42oBH1SQJbsmYPKF7rhzcFzYCcxYMmNQQ0rCEB8WqpW7QHndOggaeQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"browserslist": "^4.22.1" "browserslist": "^4.22.1"
@ -7258,9 +7264,9 @@
"dev": true "dev": true
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.4.557", "version": "1.4.565",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.557.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.565.tgz",
"integrity": "sha512-6x0zsxyMXpnMJnHrondrD3SuAeKcwij9S+83j2qHAQPXbGTDDfgImzzwgGlzrIcXbHQ42tkG4qA6U860cImNhw==" "integrity": "sha512-XbMoT6yIvg2xzcbs5hCADi0dXBh4//En3oFXmtPX+jiyyiCTiM9DGFT2SLottjpEs9Z8Mh8SqahbR96MaHfuSg=="
}, },
"node_modules/emoji-regex": { "node_modules/emoji-regex": {
"version": "8.0.0", "version": "8.0.0",
@ -7482,18 +7488,19 @@
} }
}, },
"node_modules/eslint": { "node_modules/eslint": {
"version": "8.51.0", "version": "8.52.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz",
"integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1", "@eslint-community/regexpp": "^4.6.1",
"@eslint/eslintrc": "^2.1.2", "@eslint/eslintrc": "^2.1.2",
"@eslint/js": "8.51.0", "@eslint/js": "8.52.0",
"@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/config-array": "^0.11.13",
"@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8", "@nodelib/fs.walk": "^1.2.8",
"@ungap/structured-clone": "^1.2.0",
"ajv": "^6.12.4", "ajv": "^6.12.4",
"chalk": "^4.0.0", "chalk": "^4.0.0",
"cross-spawn": "^7.0.2", "cross-spawn": "^7.0.2",
@ -7613,9 +7620,9 @@
} }
}, },
"node_modules/eslint-plugin-vue": { "node_modules/eslint-plugin-vue": {
"version": "9.17.0", "version": "9.18.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.17.0.tgz", "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.18.0.tgz",
"integrity": "sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ==", "integrity": "sha512-yUM8a2OD/7Qs0PiugkRaxgz5KBRvzMvWShity2UvVFAN0yk8029mGpTdg/TNARPiYzp335mEwDHwcAR8tQNe4g==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.4.0", "@eslint-community/eslint-utils": "^4.4.0",
@ -8694,15 +8701,15 @@
} }
}, },
"node_modules/get-intrinsic": { "node_modules/get-intrinsic": {
"version": "1.2.1", "version": "1.2.2",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
"integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"function-bind": "^1.1.1", "function-bind": "^1.1.2",
"has": "^1.0.3",
"has-proto": "^1.0.1", "has-proto": "^1.0.1",
"has-symbols": "^1.0.3" "has-symbols": "^1.0.3",
"hasown": "^2.0.0"
}, },
"funding": { "funding": {
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
@ -8795,9 +8802,9 @@
} }
}, },
"node_modules/git-url-parse": { "node_modules/git-url-parse": {
"version": "13.1.0", "version": "13.1.1",
"resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-13.1.0.tgz", "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-13.1.1.tgz",
"integrity": "sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==", "integrity": "sha512-PCFJyeSSdtnbfhSNRw9Wk96dDCNx+sogTe4YNXeXSJxt7xz5hvXekuRn9JX7m+Mf4OscCu8h+mtAl3+h5Fo8lQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"git-up": "^7.0.0" "git-up": "^7.0.0"
@ -9315,15 +9322,6 @@
"integrity": "sha512-M1Ob1zPSIvlARiJUkKqvAZ3VAqQY6Jcuth/pBKQ2b1dX/Qx0OnJ8Vux6J2H5PTMQeRzWrrbTu70VxBfv/OPDJA==", "integrity": "sha512-M1Ob1zPSIvlARiJUkKqvAZ3VAqQY6Jcuth/pBKQ2b1dX/Qx0OnJ8Vux6J2H5PTMQeRzWrrbTu70VxBfv/OPDJA==",
"dev": true "dev": true
}, },
"node_modules/has": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz",
"integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==",
"dev": true,
"engines": {
"node": ">= 0.4.0"
}
},
"node_modules/has-flag": { "node_modules/has-flag": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
@ -9345,12 +9343,12 @@
} }
}, },
"node_modules/has-property-descriptors": { "node_modules/has-property-descriptors": {
"version": "1.0.0", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
"integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"get-intrinsic": "^1.1.1" "get-intrinsic": "^1.2.2"
}, },
"funding": { "funding": {
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
@ -9445,6 +9443,18 @@
"resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz",
"integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==" "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg=="
}, },
"node_modules/hasown": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
"integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
"dev": true,
"dependencies": {
"function-bind": "^1.1.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/homedir-polyfill": { "node_modules/homedir-polyfill": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
@ -9858,12 +9868,12 @@
} }
}, },
"node_modules/is-core-module": { "node_modules/is-core-module": {
"version": "2.13.0", "version": "2.13.1",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
"integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"has": "^1.0.3" "hasown": "^2.0.0"
}, },
"funding": { "funding": {
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
@ -12001,12 +12011,12 @@
} }
}, },
"node_modules/nuxt-gtag/node_modules/@nuxt/kit": { "node_modules/nuxt-gtag/node_modules/@nuxt/kit": {
"version": "3.7.4", "version": "3.8.0",
"resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.7.4.tgz", "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.8.0.tgz",
"integrity": "sha512-/S5abZL62BITCvC/TY3KWA6N721U1Osln3cQdBb56XHIeafZCBVqTi92Xb0o7ovl72mMRhrKwRu7elzvz9oT/g==", "integrity": "sha512-oIthQxeMIVs4ESVP5FqLYn8tj0S1sLd+eYreh+dNYgnJ2pTi7+THR12ONBNHjk668jqEe7ErUJ8UlGwqBzgezg==",
"dependencies": { "dependencies": {
"@nuxt/schema": "3.7.4", "@nuxt/schema": "3.8.0",
"c12": "^1.4.2", "c12": "^1.5.1",
"consola": "^3.2.3", "consola": "^3.2.3",
"defu": "^6.1.2", "defu": "^6.1.2",
"globby": "^13.2.2", "globby": "^13.2.2",
@ -12019,9 +12029,9 @@
"pkg-types": "^1.0.3", "pkg-types": "^1.0.3",
"scule": "^1.0.0", "scule": "^1.0.0",
"semver": "^7.5.4", "semver": "^7.5.4",
"ufo": "^1.3.0", "ufo": "^1.3.1",
"unctx": "^2.3.1", "unctx": "^2.3.1",
"unimport": "^3.3.0", "unimport": "^3.4.0",
"untyped": "^1.4.0" "untyped": "^1.4.0"
}, },
"engines": { "engines": {
@ -12029,9 +12039,9 @@
} }
}, },
"node_modules/nuxt-gtag/node_modules/@nuxt/schema": { "node_modules/nuxt-gtag/node_modules/@nuxt/schema": {
"version": "3.7.4", "version": "3.8.0",
"resolved": "https://registry.npmjs.org/@nuxt/schema/-/schema-3.7.4.tgz", "resolved": "https://registry.npmjs.org/@nuxt/schema/-/schema-3.8.0.tgz",
"integrity": "sha512-q6js+97vDha4Fa2x2kDVEuokJr+CGIh1TY2wZp2PLZ7NhG3XEeib7x9Hq8XE8B6pD0GKBRy3eRPPOY69gekBCw==", "integrity": "sha512-VEDVeCjdVowhoY5vIBSz94+SSwmM204jN6TNe/ShBJ2d/vZiy9EtLbhOwqaPNFHwnN1fl/XFHThwJiexdB9D1w==",
"dependencies": { "dependencies": {
"@nuxt/ui-templates": "^1.3.1", "@nuxt/ui-templates": "^1.3.1",
"consola": "^3.2.3", "consola": "^3.2.3",
@ -12041,8 +12051,8 @@
"pkg-types": "^1.0.3", "pkg-types": "^1.0.3",
"postcss-import-resolver": "^2.0.0", "postcss-import-resolver": "^2.0.0",
"std-env": "^3.4.3", "std-env": "^3.4.3",
"ufo": "^1.3.0", "ufo": "^1.3.1",
"unimport": "^3.3.0", "unimport": "^3.4.0",
"untyped": "^1.4.0" "untyped": "^1.4.0"
}, },
"engines": { "engines": {
@ -12087,111 +12097,6 @@
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
}, },
"node_modules/nuxt-primevue": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/nuxt-primevue/-/nuxt-primevue-0.0.3.tgz",
"integrity": "sha512-0k9i+whs+gNNua6WOc75QTfgRaG0MUP4WHX8QjUaWHFxjUzEUiuzQlbeCmiPRnf/LG2YnxsqyPzz+mNCrOa7/A==",
"dev": true,
"dependencies": {
"@nuxt/kit": "^3.7.3"
},
"peerDependencies": {
"primevue": "^3.36.0"
}
},
"node_modules/nuxt-primevue/node_modules/@nuxt/kit": {
"version": "3.7.4",
"resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.7.4.tgz",
"integrity": "sha512-/S5abZL62BITCvC/TY3KWA6N721U1Osln3cQdBb56XHIeafZCBVqTi92Xb0o7ovl72mMRhrKwRu7elzvz9oT/g==",
"dev": true,
"dependencies": {
"@nuxt/schema": "3.7.4",
"c12": "^1.4.2",
"consola": "^3.2.3",
"defu": "^6.1.2",
"globby": "^13.2.2",
"hash-sum": "^2.0.0",
"ignore": "^5.2.4",
"jiti": "^1.20.0",
"knitwork": "^1.0.0",
"mlly": "^1.4.2",
"pathe": "^1.1.1",
"pkg-types": "^1.0.3",
"scule": "^1.0.0",
"semver": "^7.5.4",
"ufo": "^1.3.0",
"unctx": "^2.3.1",
"unimport": "^3.3.0",
"untyped": "^1.4.0"
},
"engines": {
"node": "^14.18.0 || >=16.10.0"
}
},
"node_modules/nuxt-primevue/node_modules/@nuxt/schema": {
"version": "3.7.4",
"resolved": "https://registry.npmjs.org/@nuxt/schema/-/schema-3.7.4.tgz",
"integrity": "sha512-q6js+97vDha4Fa2x2kDVEuokJr+CGIh1TY2wZp2PLZ7NhG3XEeib7x9Hq8XE8B6pD0GKBRy3eRPPOY69gekBCw==",
"dev": true,
"dependencies": {
"@nuxt/ui-templates": "^1.3.1",
"consola": "^3.2.3",
"defu": "^6.1.2",
"hookable": "^5.5.3",
"pathe": "^1.1.1",
"pkg-types": "^1.0.3",
"postcss-import-resolver": "^2.0.0",
"std-env": "^3.4.3",
"ufo": "^1.3.0",
"unimport": "^3.3.0",
"untyped": "^1.4.0"
},
"engines": {
"node": "^14.18.0 || >=16.10.0"
}
},
"node_modules/nuxt-primevue/node_modules/consola": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz",
"integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==",
"dev": true,
"engines": {
"node": "^14.18.0 || >=16.10.0"
}
},
"node_modules/nuxt-primevue/node_modules/lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
"dependencies": {
"yallist": "^4.0.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/nuxt-primevue/node_modules/semver": {
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
},
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/nuxt-primevue/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
"node_modules/nuxt/node_modules/anymatch": { "node_modules/nuxt/node_modules/anymatch": {
"version": "3.1.3", "version": "3.1.3",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
@ -13871,16 +13776,6 @@
"integrity": "sha512-KDeO94CbWI4pKsPnYpA1FPjo79EsY9I+M8ywoPBSf9XMXoe/0crjbUK7jcQEDHuc0ZMRIZsxH3TYLv4TUtHmAA==", "integrity": "sha512-KDeO94CbWI4pKsPnYpA1FPjo79EsY9I+M8ywoPBSf9XMXoe/0crjbUK7jcQEDHuc0ZMRIZsxH3TYLv4TUtHmAA==",
"dev": true "dev": true
}, },
"node_modules/primevue": {
"version": "3.36.0",
"resolved": "https://registry.npmjs.org/primevue/-/primevue-3.36.0.tgz",
"integrity": "sha512-si+pcbh+Y2by8cn4UrPFkC+ncS5fcv3ShKbTGINOsloKParRbSiqgBsqI8QmVkmutSLyABe6v5Kutjdenw2JFw==",
"dev": true,
"peer": true,
"peerDependencies": {
"vue": "^3.0.0"
}
},
"node_modules/process-nextick-args": { "node_modules/process-nextick-args": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@ -14900,6 +14795,7 @@
"version": "2.3.3", "version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
"hasInstallScript": true, "hasInstallScript": true,
"optional": true, "optional": true,
"os": [ "os": [
@ -15354,6 +15250,21 @@
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
"dev": true "dev": true
}, },
"node_modules/set-function-length": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz",
"integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==",
"dev": true,
"dependencies": {
"define-data-property": "^1.1.1",
"get-intrinsic": "^1.2.1",
"gopd": "^1.0.1",
"has-property-descriptors": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/set-function-name": { "node_modules/set-function-name": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz",
@ -16691,7 +16602,7 @@
"version": "4.9.5", "version": "4.9.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
"dev": true, "devOptional": true,
"bin": { "bin": {
"tsc": "bin/tsc", "tsc": "bin/tsc",
"tsserver": "bin/tsserver" "tsserver": "bin/tsserver"
@ -17538,9 +17449,9 @@
} }
}, },
"node_modules/vee-validate/node_modules/type-fest": { "node_modules/vee-validate/node_modules/type-fest": {
"version": "4.4.0", "version": "4.5.0",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.4.0.tgz", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.5.0.tgz",
"integrity": "sha512-HT3RRs7sTfY22KuPQJkD/XjbTbxgP2Je5HPt6H6JEGvcjHd5Lqru75EbrP3tb4FYjNJ+DjLp+MNQTFQU0mhXNw==", "integrity": "sha512-diLQivFzddJl4ylL3jxSkEc39Tpw7o1QeEHIPxVwryDK2lpB7Nqhzhuo6v5/Ls08Z0yPSAhsyAWlv1/H0ciNmw==",
"engines": { "engines": {
"node": ">=16" "node": ">=16"
}, },
@ -18626,15 +18537,23 @@
"dev": true "dev": true
}, },
"node_modules/vue": { "node_modules/vue": {
"version": "3.3.4", "version": "3.3.6",
"resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.6.tgz",
"integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", "integrity": "sha512-jJIDETeWJnoY+gfn4ZtMPMS5KtbP4ax+CT4dcQFhTnWEk8xMupFyQ0JxL28nvT/M4+p4a0ptxaV2WY0LiIxvRg==",
"dependencies": { "dependencies": {
"@vue/compiler-dom": "3.3.4", "@vue/compiler-dom": "3.3.6",
"@vue/compiler-sfc": "3.3.4", "@vue/compiler-sfc": "3.3.6",
"@vue/runtime-dom": "3.3.4", "@vue/runtime-dom": "3.3.6",
"@vue/server-renderer": "3.3.4", "@vue/server-renderer": "3.3.6",
"@vue/shared": "3.3.4" "@vue/shared": "3.3.6"
},
"peerDependencies": {
"typescript": "*"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
} }
}, },
"node_modules/vue-bundle-renderer": { "node_modules/vue-bundle-renderer": {
@ -19221,9 +19140,9 @@
} }
}, },
"node_modules/zhead": { "node_modules/zhead": {
"version": "2.1.3", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/zhead/-/zhead-2.1.3.tgz", "resolved": "https://registry.npmjs.org/zhead/-/zhead-2.2.0.tgz",
"integrity": "sha512-T6kZx8TYdLhuy2vURjPUj9EK9Dobnctu12CYw9ibu6Xj/UAqh2q2bQaA3vFrL4Rna5+CXYHYN3uJrUu6VulYzw==", "integrity": "sha512-NzynJDdbRD5CIMZEoWd6esLlUwm4PzjbHVEu7qpLNpi32DY0wd1a83XZP86hkW8HPqjjaYBuMfapx1iahMF46g==",
"dev": true, "dev": true,
"funding": { "funding": {
"url": "https://github.com/sponsors/harlan-zw" "url": "https://github.com/sponsors/harlan-zw"

View File

@ -75,8 +75,7 @@
"sass-loader": "^8.0.2", "sass-loader": "^8.0.2",
"typedoc": "0.23.23", "typedoc": "0.23.23",
"typescript": "^4.9.4", "typescript": "^4.9.4",
"vitest": "^0.29.8", "vitest": "^0.29.8"
"nuxt-primevue": "^0.0.3"
}, },
"dependencies": { "dependencies": {
"@docsearch/js": "^3.3.3", "@docsearch/js": "^3.3.3",

5
plugins/app.js Normal file
View File

@ -0,0 +1,5 @@
import CodeHighlight from '@/directives/CodeHighlight';
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.directive('code', CodeHighlight);
});

View File

@ -1,11 +0,0 @@
import PrimeVue from '@/components/lib/config/PrimeVue';
import Animate from '@/components/lib/animate/Animate';
import CodeHighlight from '@/directives/CodeHighlight';
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.use(PrimeVue, { ripple: true });
nuxtApp.vueApp.directive('animate', Animate);
nuxtApp.vueApp.directive('code', CodeHighlight);
});