Website Structure

This commit is contained in:
supalerk-ar66 2026-01-13 10:46:40 +07:00
parent 62812f2090
commit 71f0676a62
22365 changed files with 4265753 additions and 791 deletions

21
Frontend-Learner/node_modules/@nuxt/schema/LICENSE generated vendored Normal file
View file

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2016-present - Nuxt Team
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

117
Frontend-Learner/node_modules/@nuxt/schema/README.md generated vendored Normal file
View file

@ -0,0 +1,117 @@
[![Nuxt banner](https://github.com/nuxt/nuxt/blob/main/.github/assets/banner.svg)](https://nuxt.com)
# Nuxt
<p>
<a href="https://www.npmjs.com/package/nuxt"><img src="https://img.shields.io/npm/v/nuxt.svg?style=flat&colorA=18181B&colorB=28CF8D" alt="Version"></a>
<a href="https://www.npmjs.com/package/nuxt"><img src="https://img.shields.io/npm/dm/nuxt.svg?style=flat&colorA=18181B&colorB=28CF8D" alt="Downloads"></a>
<a href="https://github.com/nuxt/nuxt/blob/main/LICENSE"><img src="https://img.shields.io/github/license/nuxt/nuxt.svg?style=flat&colorA=18181B&colorB=28CF8D" alt="License"></a>
<a href="https://nuxt.com"><img src="https://img.shields.io/badge/Nuxt%20Docs-18181B?logo=nuxt" alt="Website"></a>
<a href="https://chat.nuxt.dev"><img src="https://img.shields.io/badge/Nuxt%20Discord-18181B?logo=discord" alt="Discord"></a>
<a href="https://securityscorecards.dev/"><img src="https://api.securityscorecards.dev/projects/github.com/nuxt/nuxt/badge" alt="Nuxt openssf scorecard score"></a>
</p>
Nuxt is a free and open-source framework with an intuitive and extendable way to create type-safe, performant and production-grade full-stack web applications and websites with Vue.js.
It provides a number of features that make it easy to build fast, SEO-friendly, and scalable web applications, including:
- Server-side rendering, static site generation, hybrid rendering and edge-side rendering
- Automatic routing with code-splitting and pre-fetching
- Data fetching and state management
- Search engine optimization and defining meta tags
- Auto imports of components, composables and utils
- TypeScript with zero configuration
- Go full-stack with our server/ directory
- Extensible with [200+ modules](https://nuxt.com/modules)
- Deployment to a variety of [hosting platforms](https://nuxt.com/deploy)
- ...[and much more](https://nuxt.com) 🚀
### Table of Contents
- 🚀 [Getting Started](#getting-started)
- 💻 [ Vue Development](#vue-development)
- 📖 [Documentation](#documentation)
- 🧩 [Modules](#modules)
- ❤️ [Contribute](#contribute)
- 🏠 [Local Development](#local-development)
- 🛟 [Professional Support](#professional-support)
- 🔗 [Follow Us](#follow-us)
- ⚖️ [License](#license)
---
## <a name="getting-started">🚀 Getting Started</a>
Use the following command to create a new starter project. This will create a starter project with all the necessary files and dependencies:
```bash
npm create nuxt@latest <my-project>
```
> [!TIP]
> Discover also [nuxt.new](https://nuxt.new): Open a Nuxt starter on CodeSandbox, StackBlitz or locally to get up and running in a few seconds.
## <a name="vue-development">💻 Vue Development</a>
Simple, intuitive and powerful, Nuxt lets you write Vue components in a way that makes sense. Every repetitive task is automated, so you can focus on writing your full-stack Vue application with confidence.
Example of an `app.vue`:
```vue
<script setup lang="ts">
useSeoMeta({
title: 'Meet Nuxt',
description: 'The Intuitive Vue Framework.',
})
</script>
<template>
<div id="app">
<AppHeader />
<NuxtPage />
<AppFooter />
</div>
</template>
<style scoped>
#app {
background-color: #020420;
color: #00DC82;
}
</style>
```
## <a name="documentation">📖 Documentation</a>
We highly recommend you take a look at the [Nuxt documentation](https://nuxt.com/docs) to level up. Its a great resource for learning more about the framework. It covers everything from getting started to advanced topics.
## <a name="modules">🧩 Modules</a>
Discover our [list of modules](https://nuxt.com/modules) to supercharge your Nuxt project, created by the Nuxt team and community.
## <a name="contribute">❤️ Contribute</a>
We invite you to contribute and help improve Nuxt 💚
Here are a few ways you can get involved:
- **Reporting Bugs:** If you come across any bugs or issues, please check out the [reporting bugs guide](https://nuxt.com/docs/community/reporting-bugs) to learn how to submit a bug report.
- **Suggestions:** Have ideas to enhance Nuxt? We'd love to hear them! Check out the [contribution guide](https://nuxt.com/docs/community/contribution) to share your suggestions.
- **Questions:** If you have questions or need assistance, the [getting help guide](https://nuxt.com/docs/community/getting-help) provides resources to help you out.
## <a name="local-development">🏠 Local Development</a>
Follow the docs to [Set Up Your Local Development Environment](https://nuxt.com/docs/community/framework-contribution#setup) to contribute to the framework and documentation.
## <a name="professional-support">🛟 Professional Support</a>
- Technical audit & consulting: [Nuxt Experts](https://nuxt.com/enterprise/support)
- Custom development & more: [Nuxt Agencies Partners](https://nuxt.com/enterprise/agencies)
## <a name="follow-us">🔗 Follow Us</a>
<p valign="center">
<a href="https://go.nuxt.com/discord"><img width="20px" src="https://github.com/nuxt/nuxt/blob/main/.github/assets/discord.svg" alt="Discord"></a>&nbsp;&nbsp;<a href="https://go.nuxt.com/x"><img width="20px" src="https://github.com/nuxt/nuxt/blob/main/.github/assets/twitter.svg" alt="Twitter"></a>&nbsp;&nbsp;<a href="https://go.nuxt.com/github"><img width="20px" src="https://github.com/nuxt/nuxt/blob/main/.github/assets/github.svg" alt="GitHub"></a>&nbsp;&nbsp;<a href="https://go.nuxt.com/bluesky"><img width="20px" src="https://github.com/nuxt/nuxt/blob/main/.github/assets/bluesky.svg" alt="Bluesky"></a>
</p>
## <a name="license">⚖️ License</a>
[MIT](https://github.com/nuxt/nuxt/blob/main/LICENSE)

View file

@ -0,0 +1 @@
export * from './dist/builder-env'

View file

@ -0,0 +1,299 @@
/**
* Reference: https://github.com/vitejs/vite/blob/main/packages/vite/types/importMeta.d.ts
*/
type ModuleNamespace = Record<string, any> & {
[Symbol.toStringTag]: 'Module';
};
interface ViteHot {
readonly data: any;
accept(): void;
accept(cb: (mod: ModuleNamespace | undefined) => void): void;
accept(dep: string, cb: (mod: ModuleNamespace | undefined) => void): void;
accept(deps: readonly string[], cb: (mods: Array<ModuleNamespace | undefined>) => void): void;
acceptExports(exportNames: string | readonly string[], cb?: (mod: ModuleNamespace | undefined) => void): void;
dispose(cb: (data: any) => void): void;
prune(cb: (data: any) => void): void;
invalidate(message?: string): void;
on(event: any, cb: (payload: any) => void): void;
send(event: any, data?: any): void;
}
interface KnownAsTypeMap {
raw: string;
url: string;
worker: Worker;
}
interface ImportGlobOptions<Eager extends boolean, AsType extends string> {
/**
* Import type for the import url.
*/
as?: AsType;
/**
* Import as static or dynamic
* @default false
*/
eager?: Eager;
/**
* Import only the specific named export. Set to `default` to import the default export.
*/
import?: string;
/**
* Custom queries
*/
query?: string | Record<string, string | number | boolean>;
/**
* Search files also inside `node_modules/` and hidden directories (e.g. `.git/`). This might have impact on performance.
* @default false
*/
exhaustive?: boolean;
}
interface ImportGlobFunction {
/**
* Import a list of files with a glob pattern.
*
* Overload 1: No generic provided, infer the type from `eager` and `as`
*/
<Eager extends boolean, As extends string, T = As extends keyof KnownAsTypeMap ? KnownAsTypeMap[As] : unknown>(glob: string | string[], options?: ImportGlobOptions<Eager, As>): (Eager extends true ? true : false) extends true ? Record<string, T> : Record<string, () => Promise<T>>;
/**
* Import a list of files with a glob pattern.
*
* Overload 2: Module generic provided, infer the type from `eager: false`
*/
<M>(glob: string | string[], options?: ImportGlobOptions<false, string>): Record<string, () => Promise<M>>;
/**
* Import a list of files with a glob pattern.
*
* Overload 3: Module generic provided, infer the type from `eager: true`
*/
<M>(glob: string | string[], options: ImportGlobOptions<true, string>): Record<string, M>;
}
interface ImportGlobEagerFunction {
/**
* Eagerly import a list of files with a glob pattern.
*
* Overload 1: No generic provided, infer the type from `as`
*/
<As extends string, T = As extends keyof KnownAsTypeMap ? KnownAsTypeMap[As] : unknown>(glob: string | string[], options?: Omit<ImportGlobOptions<boolean, As>, 'eager'>): Record<string, T>;
/**
* Eagerly import a list of files with a glob pattern.
*
* Overload 2: Module generic provided
*/
<M>(glob: string | string[], options?: Omit<ImportGlobOptions<boolean, string>, 'eager'>): Record<string, M>;
}
interface ViteImportMeta {
/** Vite client HMR API - see https://vite.dev/guide/api-hmr.html */
readonly hot?: ViteHot;
/** vite glob import utility - https://vite.dev/guide/features.html#glob-import */
glob: ImportGlobFunction;
/**
* @deprecated Use `import.meta.glob('*', { eager: true })` instead
*/
globEager: ImportGlobEagerFunction;
}
/**
* Reference: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/webpack-env/index.d.ts
*/
type WebpackModuleId = string | number;
interface HotNotifierInfo {
type: 'self-declined' | 'declined' | 'unaccepted' | 'accepted' | 'disposed' | 'accept-errored' | 'self-accept-errored' | 'self-accept-error-handler-errored';
/**
* The module in question.
*/
moduleId: number;
/**
* For errors: the module id owning the accept handler.
*/
dependencyId?: number | undefined;
/**
* For declined/accepted/unaccepted: the chain from where the update was propagated.
*/
chain?: number[] | undefined;
/**
* For declined: the module id of the declining parent
*/
parentId?: number | undefined;
/**
* For accepted: the modules that are outdated and will be disposed
*/
outdatedModules?: number[] | undefined;
/**
* For accepted: The location of accept handlers that will handle the update
*/
outdatedDependencies?: {
[dependencyId: number]: number[];
} | undefined;
/**
* For errors: the thrown error
*/
error?: Error | undefined;
/**
* For self-accept-error-handler-errored: the error thrown by the module
* before the error handler tried to handle it.
*/
originalError?: Error | undefined;
}
interface AcceptOptions {
/**
* If true the update process continues even if some modules are not accepted (and would bubble to the entry point).
*/
ignoreUnaccepted?: boolean | undefined;
/**
* Ignore changes made to declined modules.
*/
ignoreDeclined?: boolean | undefined;
/**
* Ignore errors throw in accept handlers, error handlers and while reevaluating module.
*/
ignoreErrored?: boolean | undefined;
/**
* Notifier for declined modules.
*/
onDeclined?: ((info: HotNotifierInfo) => void) | undefined;
/**
* Notifier for unaccepted modules.
*/
onUnaccepted?: ((info: HotNotifierInfo) => void) | undefined;
/**
* Notifier for accepted modules.
*/
onAccepted?: ((info: HotNotifierInfo) => void) | undefined;
/**
* Notifier for disposed modules.
*/
onDisposed?: ((info: HotNotifierInfo) => void) | undefined;
/**
* Notifier for errors.
*/
onErrored?: ((info: HotNotifierInfo) => void) | undefined;
/**
* Indicates that apply() is automatically called by check function
*/
autoApply?: boolean | undefined;
}
interface WebpackHot {
/**
* Accept code updates for the specified dependencies. The callback is called when dependencies were replaced.
* @param dependencies
* @param callback
* @param errorHandler
*/
accept(dependencies: string[], callback?: (updatedDependencies: WebpackModuleId[]) => void, errorHandler?: (err: Error) => void): void;
/**
* Accept code updates for the specified dependencies. The callback is called when dependencies were replaced.
* @param dependency
* @param callback
* @param errorHandler
*/
accept(dependency: string, callback?: () => void, errorHandler?: (err: Error) => void): void;
/**
* Accept code updates for this module without notification of parents.
* This should only be used if the module doesnt export anything.
* The errHandler can be used to handle errors that occur while loading the updated module.
* @param errHandler
*/
accept(errHandler?: (err: Error) => void): void;
/**
* Do not accept updates for the specified dependencies. If any dependencies is updated, the code update fails with code "decline".
*/
decline(dependencies: string[]): void;
/**
* Do not accept updates for the specified dependencies. If any dependencies is updated, the code update fails with code "decline".
*/
decline(dependency: string): void;
/**
* Flag the current module as not update-able. If updated the update code would fail with code "decline".
*/
decline(): void;
/**
* Add a one time handler, which is executed when the current module code is replaced.
* Here you should destroy/remove any persistent resource you have claimed/created.
* If you want to transfer state to the new module, add it to data object.
* The data will be available at module.hot.data on the new module.
* @param callback
*/
dispose(callback: (data: any) => void): void;
dispose(callback: <T>(data: T) => void): void;
/**
* Add a one time handler, which is executed when the current module code is replaced.
* Here you should destroy/remove any persistent resource you have claimed/created.
* If you want to transfer state to the new module, add it to data object.
* The data will be available at module.hot.data on the new module.
* @param callback
*/
addDisposeHandler(callback: (data: any) => void): void;
addDisposeHandler<T>(callback: (data: T) => void): void;
/**
* Remove a handler.
* This can useful to add a temporary dispose handler. You could i. e. replace code while in the middle of a multi-step async function.
* @param callback
*/
removeDisposeHandler(callback: (data: any) => void): void;
removeDisposeHandler<T>(callback: (data: T) => void): void;
/**
* Throws an exceptions if status() is not idle.
* Check all currently loaded modules for updates and apply updates if found.
* If no update was found, the callback is called with null.
* If autoApply is truthy the callback will be called with all modules that were disposed.
* apply() is automatically called with autoApply as options parameter.
* If autoApply is not set the callback will be called with all modules that will be disposed on apply().
* @param autoApply
* @param callback
*/
check(autoApply: boolean, callback: (err: Error, outdatedModules: WebpackModuleId[]) => void): void;
/**
* Throws an exceptions if status() is not idle.
* Check all currently loaded modules for updates and apply updates if found.
* If no update was found, the callback is called with null.
* The callback will be called with all modules that will be disposed on apply().
* @param callback
*/
check(callback: (err: Error, outdatedModules: WebpackModuleId[]) => void): void;
/**
* If status() != "ready" it throws an error.
* Continue the update process.
* @param options
* @param callback
*/
apply(options: AcceptOptions, callback: (err: Error, outdatedModules: WebpackModuleId[]) => void): void;
/**
* If status() != "ready" it throws an error.
* Continue the update process.
* @param callback
*/
apply(callback: (err: Error, outdatedModules: WebpackModuleId[]) => void): void;
/**
* Return one of idle, check, watch, watch-delay, prepare, ready, dispose, apply, abort or fail.
*/
status(): string;
/** Register a callback on status change. */
status(callback: (status: string) => void): void;
/** Register a callback on status change. */
addStatusHandler(callback: (status: string) => void): void;
/**
* Remove a registered status change handler.
* @param callback
*/
removeStatusHandler(callback: (status: string) => void): void;
active: boolean;
data: any;
}
interface WebpackImportMeta {
/** an alias for `module.hot` - see https://webpack.js.org/api/hot-module-replacement/ */
webpackHot?: WebpackHot | undefined;
/** the webpack major version as number */
webpack?: number;
}
type BundlerImportMeta = ViteImportMeta & WebpackImportMeta;
declare global {
interface ImportMeta extends BundlerImportMeta {
/** the `file:` url of the current file (similar to `__filename` but as file url) */
url: string;
readonly env: Record<string, string | boolean | undefined>;
}
}
declare const builders: string[];
export { builders };

View file

@ -0,0 +1,299 @@
/**
* Reference: https://github.com/vitejs/vite/blob/main/packages/vite/types/importMeta.d.ts
*/
type ModuleNamespace = Record<string, any> & {
[Symbol.toStringTag]: 'Module';
};
interface ViteHot {
readonly data: any;
accept(): void;
accept(cb: (mod: ModuleNamespace | undefined) => void): void;
accept(dep: string, cb: (mod: ModuleNamespace | undefined) => void): void;
accept(deps: readonly string[], cb: (mods: Array<ModuleNamespace | undefined>) => void): void;
acceptExports(exportNames: string | readonly string[], cb?: (mod: ModuleNamespace | undefined) => void): void;
dispose(cb: (data: any) => void): void;
prune(cb: (data: any) => void): void;
invalidate(message?: string): void;
on(event: any, cb: (payload: any) => void): void;
send(event: any, data?: any): void;
}
interface KnownAsTypeMap {
raw: string;
url: string;
worker: Worker;
}
interface ImportGlobOptions<Eager extends boolean, AsType extends string> {
/**
* Import type for the import url.
*/
as?: AsType;
/**
* Import as static or dynamic
* @default false
*/
eager?: Eager;
/**
* Import only the specific named export. Set to `default` to import the default export.
*/
import?: string;
/**
* Custom queries
*/
query?: string | Record<string, string | number | boolean>;
/**
* Search files also inside `node_modules/` and hidden directories (e.g. `.git/`). This might have impact on performance.
* @default false
*/
exhaustive?: boolean;
}
interface ImportGlobFunction {
/**
* Import a list of files with a glob pattern.
*
* Overload 1: No generic provided, infer the type from `eager` and `as`
*/
<Eager extends boolean, As extends string, T = As extends keyof KnownAsTypeMap ? KnownAsTypeMap[As] : unknown>(glob: string | string[], options?: ImportGlobOptions<Eager, As>): (Eager extends true ? true : false) extends true ? Record<string, T> : Record<string, () => Promise<T>>;
/**
* Import a list of files with a glob pattern.
*
* Overload 2: Module generic provided, infer the type from `eager: false`
*/
<M>(glob: string | string[], options?: ImportGlobOptions<false, string>): Record<string, () => Promise<M>>;
/**
* Import a list of files with a glob pattern.
*
* Overload 3: Module generic provided, infer the type from `eager: true`
*/
<M>(glob: string | string[], options: ImportGlobOptions<true, string>): Record<string, M>;
}
interface ImportGlobEagerFunction {
/**
* Eagerly import a list of files with a glob pattern.
*
* Overload 1: No generic provided, infer the type from `as`
*/
<As extends string, T = As extends keyof KnownAsTypeMap ? KnownAsTypeMap[As] : unknown>(glob: string | string[], options?: Omit<ImportGlobOptions<boolean, As>, 'eager'>): Record<string, T>;
/**
* Eagerly import a list of files with a glob pattern.
*
* Overload 2: Module generic provided
*/
<M>(glob: string | string[], options?: Omit<ImportGlobOptions<boolean, string>, 'eager'>): Record<string, M>;
}
interface ViteImportMeta {
/** Vite client HMR API - see https://vite.dev/guide/api-hmr.html */
readonly hot?: ViteHot;
/** vite glob import utility - https://vite.dev/guide/features.html#glob-import */
glob: ImportGlobFunction;
/**
* @deprecated Use `import.meta.glob('*', { eager: true })` instead
*/
globEager: ImportGlobEagerFunction;
}
/**
* Reference: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/webpack-env/index.d.ts
*/
type WebpackModuleId = string | number;
interface HotNotifierInfo {
type: 'self-declined' | 'declined' | 'unaccepted' | 'accepted' | 'disposed' | 'accept-errored' | 'self-accept-errored' | 'self-accept-error-handler-errored';
/**
* The module in question.
*/
moduleId: number;
/**
* For errors: the module id owning the accept handler.
*/
dependencyId?: number | undefined;
/**
* For declined/accepted/unaccepted: the chain from where the update was propagated.
*/
chain?: number[] | undefined;
/**
* For declined: the module id of the declining parent
*/
parentId?: number | undefined;
/**
* For accepted: the modules that are outdated and will be disposed
*/
outdatedModules?: number[] | undefined;
/**
* For accepted: The location of accept handlers that will handle the update
*/
outdatedDependencies?: {
[dependencyId: number]: number[];
} | undefined;
/**
* For errors: the thrown error
*/
error?: Error | undefined;
/**
* For self-accept-error-handler-errored: the error thrown by the module
* before the error handler tried to handle it.
*/
originalError?: Error | undefined;
}
interface AcceptOptions {
/**
* If true the update process continues even if some modules are not accepted (and would bubble to the entry point).
*/
ignoreUnaccepted?: boolean | undefined;
/**
* Ignore changes made to declined modules.
*/
ignoreDeclined?: boolean | undefined;
/**
* Ignore errors throw in accept handlers, error handlers and while reevaluating module.
*/
ignoreErrored?: boolean | undefined;
/**
* Notifier for declined modules.
*/
onDeclined?: ((info: HotNotifierInfo) => void) | undefined;
/**
* Notifier for unaccepted modules.
*/
onUnaccepted?: ((info: HotNotifierInfo) => void) | undefined;
/**
* Notifier for accepted modules.
*/
onAccepted?: ((info: HotNotifierInfo) => void) | undefined;
/**
* Notifier for disposed modules.
*/
onDisposed?: ((info: HotNotifierInfo) => void) | undefined;
/**
* Notifier for errors.
*/
onErrored?: ((info: HotNotifierInfo) => void) | undefined;
/**
* Indicates that apply() is automatically called by check function
*/
autoApply?: boolean | undefined;
}
interface WebpackHot {
/**
* Accept code updates for the specified dependencies. The callback is called when dependencies were replaced.
* @param dependencies
* @param callback
* @param errorHandler
*/
accept(dependencies: string[], callback?: (updatedDependencies: WebpackModuleId[]) => void, errorHandler?: (err: Error) => void): void;
/**
* Accept code updates for the specified dependencies. The callback is called when dependencies were replaced.
* @param dependency
* @param callback
* @param errorHandler
*/
accept(dependency: string, callback?: () => void, errorHandler?: (err: Error) => void): void;
/**
* Accept code updates for this module without notification of parents.
* This should only be used if the module doesnt export anything.
* The errHandler can be used to handle errors that occur while loading the updated module.
* @param errHandler
*/
accept(errHandler?: (err: Error) => void): void;
/**
* Do not accept updates for the specified dependencies. If any dependencies is updated, the code update fails with code "decline".
*/
decline(dependencies: string[]): void;
/**
* Do not accept updates for the specified dependencies. If any dependencies is updated, the code update fails with code "decline".
*/
decline(dependency: string): void;
/**
* Flag the current module as not update-able. If updated the update code would fail with code "decline".
*/
decline(): void;
/**
* Add a one time handler, which is executed when the current module code is replaced.
* Here you should destroy/remove any persistent resource you have claimed/created.
* If you want to transfer state to the new module, add it to data object.
* The data will be available at module.hot.data on the new module.
* @param callback
*/
dispose(callback: (data: any) => void): void;
dispose(callback: <T>(data: T) => void): void;
/**
* Add a one time handler, which is executed when the current module code is replaced.
* Here you should destroy/remove any persistent resource you have claimed/created.
* If you want to transfer state to the new module, add it to data object.
* The data will be available at module.hot.data on the new module.
* @param callback
*/
addDisposeHandler(callback: (data: any) => void): void;
addDisposeHandler<T>(callback: (data: T) => void): void;
/**
* Remove a handler.
* This can useful to add a temporary dispose handler. You could i. e. replace code while in the middle of a multi-step async function.
* @param callback
*/
removeDisposeHandler(callback: (data: any) => void): void;
removeDisposeHandler<T>(callback: (data: T) => void): void;
/**
* Throws an exceptions if status() is not idle.
* Check all currently loaded modules for updates and apply updates if found.
* If no update was found, the callback is called with null.
* If autoApply is truthy the callback will be called with all modules that were disposed.
* apply() is automatically called with autoApply as options parameter.
* If autoApply is not set the callback will be called with all modules that will be disposed on apply().
* @param autoApply
* @param callback
*/
check(autoApply: boolean, callback: (err: Error, outdatedModules: WebpackModuleId[]) => void): void;
/**
* Throws an exceptions if status() is not idle.
* Check all currently loaded modules for updates and apply updates if found.
* If no update was found, the callback is called with null.
* The callback will be called with all modules that will be disposed on apply().
* @param callback
*/
check(callback: (err: Error, outdatedModules: WebpackModuleId[]) => void): void;
/**
* If status() != "ready" it throws an error.
* Continue the update process.
* @param options
* @param callback
*/
apply(options: AcceptOptions, callback: (err: Error, outdatedModules: WebpackModuleId[]) => void): void;
/**
* If status() != "ready" it throws an error.
* Continue the update process.
* @param callback
*/
apply(callback: (err: Error, outdatedModules: WebpackModuleId[]) => void): void;
/**
* Return one of idle, check, watch, watch-delay, prepare, ready, dispose, apply, abort or fail.
*/
status(): string;
/** Register a callback on status change. */
status(callback: (status: string) => void): void;
/** Register a callback on status change. */
addStatusHandler(callback: (status: string) => void): void;
/**
* Remove a registered status change handler.
* @param callback
*/
removeStatusHandler(callback: (status: string) => void): void;
active: boolean;
data: any;
}
interface WebpackImportMeta {
/** an alias for `module.hot` - see https://webpack.js.org/api/hot-module-replacement/ */
webpackHot?: WebpackHot | undefined;
/** the webpack major version as number */
webpack?: number;
}
type BundlerImportMeta = ViteImportMeta & WebpackImportMeta;
declare global {
interface ImportMeta extends BundlerImportMeta {
/** the `file:` url of the current file (similar to `__filename` but as file url) */
url: string;
readonly env: Record<string, string | boolean | undefined>;
}
}
declare const builders: string[];
export { builders };

View file

@ -0,0 +1,3 @@
const builders = ["vite", "webpack"];
export { builders };

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

3142
Frontend-Learner/node_modules/@nuxt/schema/dist/index.mjs generated vendored Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,87 @@
{
"name": "@nuxt/schema",
"version": "3.20.2",
"repository": {
"type": "git",
"url": "git+https://github.com/nuxt/nuxt.git",
"directory": "packages/schema"
},
"description": "Nuxt types and default configuration",
"homepage": "https://nuxt.com",
"license": "MIT",
"type": "module",
"types": "./dist/index.d.ts",
"sideEffects": false,
"exports": {
".": {
"types": "./dist/index.d.ts",
"import": "./dist/index.mjs",
"require": "./dist/index.mjs"
},
"./builder-env": {
"types": "./dist/builder-env.d.ts",
"import": "./dist/builder-env.mjs"
},
"./schema/config.schema.json": "./schema/config.schema.json",
"./package.json": "./package.json"
},
"files": [
"dist",
"schema",
"builder-env.d.ts",
"env.d.ts"
],
"devDependencies": {
"@types/pug": "2.0.10",
"@types/webpack-bundle-analyzer": "4.7.0",
"@types/webpack-hot-middleware": "2.25.12",
"@unhead/vue": "2.0.19",
"@vitejs/plugin-vue": "6.0.2",
"@vitejs/plugin-vue-jsx": "5.1.2",
"@vue/compiler-core": "3.5.25",
"@vue/compiler-sfc": "3.5.25",
"@vue/language-core": "3.1.8",
"c12": "3.3.2",
"chokidar": "5.0.0",
"compatx": "0.2.0",
"css-minimizer-webpack-plugin": "7.0.3",
"esbuild": "0.27.1",
"esbuild-loader": "4.4.0",
"file-loader": "6.2.0",
"h3": "1.15.4",
"hookable": "5.5.3",
"ignore": "7.0.5",
"mini-css-extract-plugin": "2.9.4",
"nitropack": "2.12.9",
"ofetch": "1.5.1",
"oxc-transform": "0.102.0",
"postcss": "8.5.6",
"rollup-plugin-visualizer": "6.0.5",
"sass-loader": "16.0.6",
"scule": "1.3.0",
"unbuild": "3.6.1",
"unctx": "2.4.1",
"unimport": "5.5.0",
"untyped": "2.0.0",
"vite": "7.2.7",
"vue": "3.5.25",
"vue-bundle-renderer": "2.2.0",
"vue-loader": "17.4.2",
"vue-router": "4.6.3",
"webpack": "5.103.0",
"webpack-dev-middleware": "7.4.5"
},
"dependencies": {
"@vue/shared": "^3.5.25",
"defu": "^6.1.4",
"pathe": "^2.0.3",
"pkg-types": "^2.3.0",
"std-env": "^3.10.0"
},
"engines": {
"node": "^14.18.0 || >=16.10.0"
},
"scripts": {
"test:attw": "attw --pack"
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,680 @@
{
"srcDir": "/<srcDir>",
"workspaceDir": "/<workspaceDir>",
"rootDir": "/<rootDir>",
"vite": {
"base": "/",
"root": "/<srcDir>",
"mode": "production",
"define": {
"__VUE_PROD_HYDRATION_MISMATCH_DETAILS__": false,
"process.dev": false,
"import.meta.dev": false,
"process.test": false,
"import.meta.test": false
},
"resolve": {
"extensions": [
".mjs",
".js",
".ts",
".jsx",
".tsx",
".json",
".vue"
]
},
"publicDir": false,
"vue": {
"isProduction": true,
"template": {
"compilerOptions": {},
"transformAssetUrls": {
"video": [
"src",
"poster"
],
"source": [
"src"
],
"img": [
"src"
],
"image": [
"xlink:href",
"href"
],
"use": [
"xlink:href",
"href"
]
}
},
"script": {
"hoistStatic": {}
},
"features": {
"propsDestructure": true
}
},
"vueJsx": {
"isCustomElement": {
"$schema": {
"title": "",
"description": "",
"tags": []
}
}
},
"optimizeDeps": {
"esbuildOptions": {
"target": "esnext",
"jsxFactory": "h",
"jsxFragment": "Fragment",
"tsconfigRaw": {}
},
"exclude": [
"vue-demi"
]
},
"esbuild": {
"target": "esnext",
"jsxFactory": "h",
"jsxFragment": "Fragment",
"tsconfigRaw": {}
},
"clearScreen": true,
"build": {
"assetsDir": "_nuxt/",
"emptyOutDir": false
},
"server": {
"fs": {
"allow": [
"/<rootDir>/.nuxt",
"/<srcDir>",
"/<rootDir>",
"/<workspaceDir>"
]
}
},
"cacheDir": "/<rootDir>/node_modules/.cache/vite"
},
"components": {
"dirs": [
{
"path": "~/components/global",
"global": true
},
"~/components"
]
},
"imports": {
"global": false,
"scan": true,
"dirs": []
},
"pages": {},
"telemetry": {},
"devtools": {},
"vue": {
"transformAssetUrls": {
"video": [
"src",
"poster"
],
"source": [
"src"
],
"img": [
"src"
],
"image": [
"xlink:href",
"href"
],
"use": [
"xlink:href",
"href"
]
},
"compilerOptions": {},
"runtimeCompiler": false,
"propsDestructure": true,
"config": {}
},
"experimental": {
"decorators": false,
"asyncEntry": false,
"externalVue": true,
"treeshakeClientOnly": true,
"emitRouteChunkError": "automatic",
"templateRouteInjection": true,
"restoreState": false,
"renderJsonPayloads": true,
"noVueServer": false,
"payloadExtraction": true,
"clientFallback": false,
"crossOriginPrefetch": false,
"viewTransition": false,
"writeEarlyHints": false,
"componentIslands": "auto",
"configSchema": true,
"polyfillVueUseHead": false,
"respectNoSSRHeader": false,
"localLayerAliases": true,
"typedPages": false,
"appManifest": true,
"checkOutdatedBuildInterval": 3600000,
"watcher": "chokidar",
"asyncContext": false,
"headNext": true,
"inlineRouteRules": false,
"scanPageMeta": true,
"extraPageMetaExtractionKeys": [],
"sharedPrerenderData": false,
"cookieStore": true,
"defaults": {
"nuxtLink": {
"componentName": "NuxtLink",
"prefetch": true,
"prefetchOn": {
"visibility": true
}
},
"useAsyncData": {
"value": "null",
"errorValue": "null",
"deep": true
},
"useFetch": {}
},
"clientNodeCompat": false,
"compileTemplate": true,
"templateUtils": true,
"relativeWatchPaths": true,
"resetAsyncDataToUndefined": true,
"navigationRepaint": true,
"buildCache": false,
"normalizeComponentNames": false,
"spaLoadingTemplateLocation": "within",
"browserDevtoolsTiming": false,
"chromeDevtoolsProjectSettings": true,
"debugModuleMutation": false,
"lazyHydration": true,
"templateImportResolution": true,
"purgeCachedData": true,
"granularCachedData": false,
"alwaysRunFetchOnKeyChange": true,
"parseErrorData": false,
"enforceModuleCompatibility": false,
"pendingWhenIdle": true,
"entryImportMap": true,
"extractAsyncDataHandlers": false,
"viteEnvironmentApi": false
},
"app": {
"baseURL": "/",
"buildAssetsDir": "/_nuxt/",
"cdnURL": "",
"head": {
"meta": [
{
"name": "viewport",
"content": "width=device-width, initial-scale=1"
},
{
"charset": "utf-8"
}
],
"link": [],
"style": [],
"script": [],
"noscript": []
},
"layoutTransition": false,
"pageTransition": false,
"viewTransition": false,
"keepalive": false,
"rootId": "__nuxt",
"rootTag": "div",
"rootAttrs": {
"id": "__nuxt"
},
"teleportTag": "div",
"teleportId": "teleports",
"teleportAttrs": {
"id": "teleports"
},
"spaLoaderTag": "div",
"spaLoaderAttrs": {
"id": "__nuxt-loader"
}
},
"dev": false,
"future": {
"compatibilityVersion": 3,
"multiApp": false,
"typescriptBundlerResolution": true
},
"typescript": {
"tsConfig": {},
"strict": true,
"builder": null,
"hoist": [
"nitropack/types",
"nitropack/runtime",
"nitropack",
"defu",
"h3",
"consola",
"ofetch",
"@unhead/vue",
"@nuxt/devtools",
"vue",
"@vue/runtime-core",
"@vue/compiler-sfc",
"vue-router",
"vue-router/auto-routes",
"unplugin-vue-router/client",
"@nuxt/schema",
"nuxt"
],
"includeWorkspace": false,
"typeCheck": false,
"shim": false
},
"debug": false,
"spaLoadingTemplate": null,
"plugins": [],
"css": [],
"unhead": {
"legacy": false,
"renderSSRHeadOptions": {
"omitLineBreaks": false
}
},
"esbuild": {
"options": {
"target": "esnext",
"jsxFactory": "h",
"jsxFragment": "Fragment",
"tsconfigRaw": {}
}
},
"build": {
"transpile": [],
"templates": [],
"analyze": {
"template": "treemap",
"projectRoot": "/<rootDir>",
"filename": "/<rootDir>/.nuxt/analyze/{name}.html"
}
},
"buildDir": "/<rootDir>/.nuxt",
"builder": "@nuxt/vite-builder",
"sourcemap": {
"server": true,
"client": false
},
"logLevel": "info",
"analyzeDir": "/<rootDir>/.nuxt/analyze",
"optimization": {
"keyedComposables": [
{
"name": "callOnce",
"argumentLength": 3
},
{
"name": "defineNuxtComponent",
"argumentLength": 2
},
{
"name": "useState",
"argumentLength": 2
},
{
"name": "useFetch",
"argumentLength": 3
},
{
"name": "useAsyncData",
"argumentLength": 3
},
{
"name": "useLazyAsyncData",
"argumentLength": 3
},
{
"name": "useLazyFetch",
"argumentLength": 3
}
],
"treeShake": {
"composables": {
"server": {
"vue": [
"onMounted",
"onUpdated",
"onUnmounted",
"onBeforeMount",
"onBeforeUpdate",
"onBeforeUnmount",
"onRenderTracked",
"onRenderTriggered",
"onActivated",
"onDeactivated"
],
"#app": [
"definePayloadReviver",
"definePageMeta"
]
},
"client": {
"vue": [
"onRenderTracked",
"onRenderTriggered",
"onServerPrefetch"
],
"#app": [
"definePayloadReducer",
"definePageMeta",
"onPrehydrate"
]
}
}
},
"asyncTransforms": {
"asyncFunctions": [
"defineNuxtPlugin",
"defineNuxtRouteMiddleware"
],
"objectDefinitions": {
"defineNuxtComponent": [
"asyncData",
"setup"
],
"defineNuxtPlugin": [
"setup"
],
"definePageMeta": [
"middleware",
"validate"
]
}
}
},
"extends": {},
"compatibilityDate": {},
"serverDir": "/<srcDir>/server",
"appId": "nuxt-app",
"test": false,
"buildId": "ed5ba1c4-7621-4192-ac5f-922344017283",
"modulesDir": [
"/<rootDir>/node_modules"
],
"ssr": true,
"modules": [],
"dir": {
"app": "app",
"assets": "assets",
"layouts": "layouts",
"middleware": "middleware",
"modules": "modules",
"pages": "pages",
"plugins": "plugins",
"shared": "shared",
"static": "public",
"public": "public"
},
"extensions": [
".js",
".jsx",
".mjs",
".ts",
".tsx",
".vue"
],
"alias": {
"~": "/<srcDir>/",
"@": "/<srcDir>/",
"~~": "/<rootDir>/",
"@@": "/<rootDir>/",
"#shared": "/<rootDir>/shared/",
"assets": "/<srcDir>/assets/",
"public": "/<srcDir>/public/",
"#build": "/<rootDir>/.nuxt/",
"#internal/nuxt/paths": "/<rootDir>/.nuxt/paths.mjs"
},
"ignoreOptions": {},
"ignorePrefix": "-",
"ignore": [
"**/*.stories.{js,cts,mts,ts,jsx,tsx}",
"**/*.{spec,test}.{js,cts,mts,ts,jsx,tsx}",
"**/*.d.{cts,mts,ts}",
"**/*.d.vue.{cts,mts,ts}",
"**/.{pnpm-store,vercel,netlify,output,git,cache,data}",
"**/*.sock",
".nuxt/analyze",
".nuxt",
"**/-*.*"
],
"watch": [],
"watchers": {
"rewatchOnRawEvents": {},
"webpack": {
"aggregateTimeout": 1000
},
"chokidar": {
"ignoreInitial": true,
"ignorePermissionErrors": true
}
},
"hooks": {},
"runtimeConfig": {
"public": {},
"app": {
"buildId": "ed5ba1c4-7621-4192-ac5f-922344017283",
"baseURL": "/",
"buildAssetsDir": "/_nuxt/",
"cdnURL": ""
}
},
"appConfig": {
"nuxt": {}
},
"devServer": {
"https": false,
"port": 3000,
"host": {},
"url": "http://localhost:3000",
"cors": {
"origin": [
{}
]
}
},
"features": {
"inlineStyles": true,
"devLogs": false,
"noScripts": false
},
"generate": {
"routes": [],
"exclude": []
},
"_majorVersion": 3,
"_legacyGenerate": false,
"_start": false,
"_build": false,
"_generate": false,
"_prepare": false,
"_cli": false,
"_requiredModules": {},
"_loadOptions": {},
"_nuxtConfigFile": {},
"_nuxtConfigFiles": [],
"appDir": "",
"_installedModules": [],
"_modules": [],
"server": {
"builder": "@nuxt/nitro-server"
},
"nitro": {
"runtimeConfig": {
"public": {},
"app": {
"buildId": "ed5ba1c4-7621-4192-ac5f-922344017283",
"baseURL": "/",
"buildAssetsDir": "/_nuxt/",
"cdnURL": ""
},
"nitro": {
"envPrefix": "NUXT_"
}
},
"routeRules": {}
},
"routeRules": {},
"serverHandlers": [],
"devServerHandlers": [],
"postcss": {
"plugins": {
"autoprefixer": {},
"cssnano": {}
}
},
"router": {
"options": {
"hashMode": false,
"scrollBehaviorType": "auto"
}
},
"oxc": {
"transform": {
"options": {
"target": "esnext",
"jsxFactory": "h",
"jsxFragment": "Fragment"
}
}
},
"webpack": {
"analyze": {
"template": "treemap",
"projectRoot": "/<rootDir>",
"filename": "/<rootDir>/.nuxt/analyze/{name}.html"
},
"profile": false,
"extractCSS": true,
"cssSourceMap": false,
"serverURLPolyfill": "url",
"filenames": {},
"loaders": {
"esbuild": {
"target": "esnext",
"jsxFactory": "h",
"jsxFragment": "Fragment",
"tsconfigRaw": {}
},
"file": {
"esModule": false,
"limit": 1000
},
"fontUrl": {
"esModule": false,
"limit": 1000
},
"imgUrl": {
"esModule": false,
"limit": 1000
},
"pugPlain": {},
"vue": {
"transformAssetUrls": {
"video": [
"src",
"poster"
],
"source": [
"src"
],
"img": [
"src"
],
"image": [
"xlink:href",
"href"
],
"use": [
"xlink:href",
"href"
]
},
"compilerOptions": {},
"propsDestructure": true
},
"css": {
"importLoaders": 0,
"url": {},
"esModule": false,
"sourceMap": false
},
"cssModules": {
"importLoaders": 0,
"url": {},
"esModule": false,
"modules": {
"localIdentName": "[local]_[hash:base64:5]"
},
"sourceMap": false
},
"less": {
"sourceMap": false
},
"sass": {
"sassOptions": {
"indentedSyntax": true
},
"sourceMap": false
},
"scss": {
"sourceMap": false
},
"stylus": {
"sourceMap": false
},
"vueStyle": {
"sourceMap": false
}
},
"plugins": [],
"aggressiveCodeRemoval": false,
"optimizeCSS": false,
"optimization": {
"runtimeChunk": "single",
"minimize": true,
"minimizer": {},
"splitChunks": {
"chunks": "all",
"automaticNameDelimiter": "/",
"cacheGroups": {}
}
},
"postcss": {
"postcssOptions": {
"plugins": {
"autoprefixer": {},
"cssnano": {}
}
}
},
"devMiddleware": {
"stats": "none"
},
"hotMiddleware": {},
"friendlyErrors": true,
"warningIgnoreFilters": [],
"experiments": {}
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff