diff --git a/.gitignore b/.gitignore index 3ef158f..109baeb 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,4 @@ package-lock.json todo.md .adonisjs playground/public/assets -docs/public/assets +public/assets diff --git a/package.json b/package.json index 19fba76..71096f6 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "@japa/snapshot": "^2.0.5", "@julr/tooling-configs": "^2.2.0", "@swc/core": "^1.4.17", + "@types/node": "^20.12.11", "c8": "^9.1.0", "copyfiles": "^2.4.1", "del-cli": "^5.1.0", @@ -33,7 +34,8 @@ "prettier": "^3.2.5", "ts-node": "^10.9.2", "tsup": "^8.0.2", - "typescript": "^5.4.5" + "typescript": "^5.4.5", + "vite": "^5.2.11" }, "pnpm": { "overrides": { diff --git a/playgrounds/inertia-react/.editorconfig b/playgrounds/inertia-react/.editorconfig deleted file mode 100644 index f830f40..0000000 --- a/playgrounds/inertia-react/.editorconfig +++ /dev/null @@ -1,22 +0,0 @@ -# http://editorconfig.org - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[*.json] -insert_final_newline = unset - -[**.min.js] -indent_style = unset -insert_final_newline = unset - -[MakeFile] -indent_style = space - -[*.md] -trim_trailing_whitespace = false diff --git a/playgrounds/inertia-react/.env b/playgrounds/inertia-react/.env index 7da3483..2f9a8ad 100644 --- a/playgrounds/inertia-react/.env +++ b/playgrounds/inertia-react/.env @@ -2,6 +2,6 @@ TZ=UTC PORT=3333 HOST=localhost LOG_LEVEL=info -APP_KEY=0Q0aaWK8qBOgnBaigvLlaqNJYPejCL5t +APP_KEY=_lnNOQKKmINM8q3Kvk1djR5BeN_PcQvs NODE_ENV=development SESSION_DRIVER=cookie \ No newline at end of file diff --git a/playgrounds/inertia-react/.env.example b/playgrounds/inertia-react/.env.example index 7da3483..2f9a8ad 100644 --- a/playgrounds/inertia-react/.env.example +++ b/playgrounds/inertia-react/.env.example @@ -2,6 +2,6 @@ TZ=UTC PORT=3333 HOST=localhost LOG_LEVEL=info -APP_KEY=0Q0aaWK8qBOgnBaigvLlaqNJYPejCL5t +APP_KEY=_lnNOQKKmINM8q3Kvk1djR5BeN_PcQvs NODE_ENV=development SESSION_DRIVER=cookie \ No newline at end of file diff --git a/playgrounds/inertia-react/ace.js b/playgrounds/inertia-react/ace.js index dbf9003..d47f53a 100644 --- a/playgrounds/inertia-react/ace.js +++ b/playgrounds/inertia-react/ace.js @@ -20,7 +20,6 @@ * Register hook to process TypeScript files using ts-node */ import { register } from 'node:module' - register('ts-node/esm', import.meta.url) /** diff --git a/playgrounds/inertia-react/adonisrc.ts b/playgrounds/inertia-react/adonisrc.ts index 12365de..a5c9e7f 100644 --- a/playgrounds/inertia-react/adonisrc.ts +++ b/playgrounds/inertia-react/adonisrc.ts @@ -1,4 +1,3 @@ -import { relative } from 'node:path' import { defineConfig } from '@adonisjs/core/app' export default defineConfig({ @@ -11,11 +10,7 @@ export default defineConfig({ | will be scanned automatically from the "./commands" directory. | */ - commands: [ - () => import('@adonisjs/core/commands'), - () => import('@adonisjs/lucid/commands'), - () => import('@tuyau/core/commands'), - ], + commands: [() => import('@adonisjs/core/commands'), () => import('@adonisjs/lucid/commands')], /* |-------------------------------------------------------------------------- @@ -42,8 +37,7 @@ export default defineConfig({ () => import('@adonisjs/cors/cors_provider'), () => import('@adonisjs/lucid/database_provider'), () => import('@adonisjs/auth/auth_provider'), - () => import('@adonisjs/inertia/inertia_provider'), - () => import('@tuyau/core/tuyau_provider'), + () => import('@adonisjs/inertia/inertia_provider') ], /* @@ -75,7 +69,7 @@ export default defineConfig({ { files: ['tests/functional/**/*.spec(.ts|.js)'], name: 'functional', - timeout: 30_000, + timeout: 30000, }, ], forceExit: false, @@ -104,27 +98,5 @@ export default defineConfig({ assetsBundler: false, unstable_assembler: { onBuildStarting: [() => import('@adonisjs/vite/build_hook')], - /** - * Temporary code to handle HotHook messages - * Will be moved to @adonisjs/core or @hot-hook/adonis later - */ - onHttpServerMessage: [ - async () => ({ - default: (ui, message, actions) => { - if (message.type === 'hot-hook:full-reload') { - const path = relative(import.meta.dirname, message.path || message.paths[0]) - - ui.logger.log(`${ui.colors.green('full-reload')} due to ${ui.colors.cyan(path)}`) - actions.restartServer() - } - - if (message.type === 'hot-hook:invalidated') { - const path = relative(import.meta.dirname, message.path || message.paths[0]) - - ui.logger.log(`${ui.colors.yellow('invalidated')} ${ui.colors.cyan(path)}`) - } - }, - }), - ], }, }) diff --git a/playgrounds/inertia-react/app/exceptions/handler.ts b/playgrounds/inertia-react/app/exceptions/handler.ts index 9e205cf..0ab9d3b 100644 --- a/playgrounds/inertia-react/app/exceptions/handler.ts +++ b/playgrounds/inertia-react/app/exceptions/handler.ts @@ -1,6 +1,5 @@ import app from '@adonisjs/core/services/app' -import type { HttpContext } from '@adonisjs/core/http' -import { ExceptionHandler } from '@adonisjs/core/http' +import { HttpContext, ExceptionHandler } from '@adonisjs/core/http' import type { StatusPageRange, StatusPageRenderer } from '@adonisjs/core/types/http' export default class HttpExceptionHandler extends ExceptionHandler { diff --git a/playgrounds/inertia-react/app/middleware/auth_middleware.ts b/playgrounds/inertia-react/app/middleware/auth_middleware.ts index 40f9bbb..6e07003 100644 --- a/playgrounds/inertia-react/app/middleware/auth_middleware.ts +++ b/playgrounds/inertia-react/app/middleware/auth_middleware.ts @@ -17,9 +17,9 @@ export default class AuthMiddleware { next: NextFn, options: { guards?: (keyof Authenticators)[] - } = {}, + } = {} ) { await ctx.auth.authenticateUsing(options.guards, { loginRoute: this.redirectTo }) return next() } -} +} \ No newline at end of file diff --git a/playgrounds/inertia-react/app/middleware/container_bindings_middleware.ts b/playgrounds/inertia-react/app/middleware/container_bindings_middleware.ts index 97abc83..48e6d09 100644 --- a/playgrounds/inertia-react/app/middleware/container_bindings_middleware.ts +++ b/playgrounds/inertia-react/app/middleware/container_bindings_middleware.ts @@ -1,6 +1,6 @@ import { Logger } from '@adonisjs/core/logger' import { HttpContext } from '@adonisjs/core/http' -import type { NextFn } from '@adonisjs/core/types/http' +import { NextFn } from '@adonisjs/core/types/http' /** * The container bindings middleware binds classes to their request diff --git a/playgrounds/inertia-react/app/middleware/guest_middleware.ts b/playgrounds/inertia-react/app/middleware/guest_middleware.ts new file mode 100644 index 0000000..e459796 --- /dev/null +++ b/playgrounds/inertia-react/app/middleware/guest_middleware.ts @@ -0,0 +1,31 @@ +import type { HttpContext } from '@adonisjs/core/http' +import type { NextFn } from '@adonisjs/core/types/http' +import type { Authenticators } from '@adonisjs/auth/types' + +/** + * Guest middleware is used to deny access to routes that should + * be accessed by unauthenticated users. + * + * For example, the login page should not be accessible if the user + * is already logged-in + */ +export default class GuestMiddleware { + /** + * The URL to redirect to when user is logged-in + */ + redirectTo = '/' + + async handle( + ctx: HttpContext, + next: NextFn, + options: { guards?: (keyof Authenticators)[] } = {} + ) { + for (let guard of options.guards || [ctx.auth.defaultGuard]) { + if (await ctx.auth.use(guard).check()) { + return ctx.response.redirect(this.redirectTo, true) + } + } + + return next() + } +} \ No newline at end of file diff --git a/playgrounds/inertia-react/app/models/user.ts b/playgrounds/inertia-react/app/models/user.ts index d87197f..c6cf01d 100644 --- a/playgrounds/inertia-react/app/models/user.ts +++ b/playgrounds/inertia-react/app/models/user.ts @@ -3,7 +3,6 @@ import hash from '@adonisjs/core/services/hash' import { compose } from '@adonisjs/core/helpers' import { BaseModel, column } from '@adonisjs/lucid/orm' import { withAuthFinder } from '@adonisjs/auth/mixins/lucid' -import { DbAccessTokensProvider } from '@adonisjs/auth/access_tokens' const AuthFinder = withAuthFinder(() => hash.use('scrypt'), { uids: ['email'], @@ -28,6 +27,4 @@ export default class User extends compose(BaseModel, AuthFinder) { @column.dateTime({ autoCreate: true, autoUpdate: true }) declare updatedAt: DateTime | null - - static accessTokens = DbAccessTokensProvider.forModel(User) -} +} \ No newline at end of file diff --git a/playgrounds/inertia-react/bin/console.ts b/playgrounds/inertia-react/bin/console.ts index 71c6b86..4b102ee 100644 --- a/playgrounds/inertia-react/bin/console.ts +++ b/playgrounds/inertia-react/bin/console.ts @@ -12,7 +12,6 @@ */ import 'reflect-metadata' - import { Ignitor, prettyPrintError } from '@adonisjs/core' /** diff --git a/playgrounds/inertia-react/bin/server.ts b/playgrounds/inertia-react/bin/server.ts index 60b62f5..fe0fefb 100644 --- a/playgrounds/inertia-react/bin/server.ts +++ b/playgrounds/inertia-react/bin/server.ts @@ -10,7 +10,6 @@ */ import 'reflect-metadata' - import { Ignitor, prettyPrintError } from '@adonisjs/core' /** diff --git a/playgrounds/inertia-react/bin/test.ts b/playgrounds/inertia-react/bin/test.ts index 5659ee7..d759efe 100644 --- a/playgrounds/inertia-react/bin/test.ts +++ b/playgrounds/inertia-react/bin/test.ts @@ -10,13 +10,12 @@ | */ -import 'reflect-metadata' +process.env.NODE_ENV = 'test' +import 'reflect-metadata' import { Ignitor, prettyPrintError } from '@adonisjs/core' import { configure, processCLIArgs, run } from '@japa/runner' -process.env.NODE_ENV = 'test' - /** * URL to the application root. AdonisJS need it to resolve * paths to file and directories for scaffolding commands @@ -50,9 +49,10 @@ new Ignitor(APP_ROOT, { importer: IMPORTER }) configure({ ...app.rcFile.tests, ...config, - - setup: runnerHooks.setup, - teardown: runnerHooks.teardown.concat([() => app.terminate()]), + ...{ + setup: runnerHooks.setup, + teardown: runnerHooks.teardown.concat([() => app.terminate()]), + }, }) }) .run(() => run()) diff --git a/playgrounds/inertia-react/config/app.ts b/playgrounds/inertia-react/config/app.ts index 797be00..1292af7 100644 --- a/playgrounds/inertia-react/config/app.ts +++ b/playgrounds/inertia-react/config/app.ts @@ -1,9 +1,8 @@ +import env from '#start/env' import app from '@adonisjs/core/services/app' import { Secret } from '@adonisjs/core/helpers' import { defineConfig } from '@adonisjs/core/http' -import env from '#start/env' - /** * The app key is used for encrypting cookies, generating signed URLs, * and by the "encryption" module. diff --git a/playgrounds/inertia-react/config/auth.ts b/playgrounds/inertia-react/config/auth.ts index 350dbc0..86a12d7 100644 --- a/playgrounds/inertia-react/config/auth.ts +++ b/playgrounds/inertia-react/config/auth.ts @@ -1,14 +1,14 @@ import { defineConfig } from '@adonisjs/auth' -import type { InferAuthEvents, Authenticators } from '@adonisjs/auth/types' -import { tokensGuard, tokensUserProvider } from '@adonisjs/auth/access_tokens' +import { InferAuthEvents, Authenticators } from '@adonisjs/auth/types' +import { sessionGuard, sessionUserProvider } from '@adonisjs/auth/session' const authConfig = defineConfig({ - default: 'api', + default: 'web', guards: { - api: tokensGuard({ - provider: tokensUserProvider({ - tokens: 'accessTokens', - model: () => import('#models/user'), + web: sessionGuard({ + useRememberMeTokens: false, + provider: sessionUserProvider({ + model: () => import('#models/user') }), }), }, @@ -25,4 +25,4 @@ declare module '@adonisjs/auth/types' { } declare module '@adonisjs/core/types' { interface EventsList extends InferAuthEvents {} -} +} \ No newline at end of file diff --git a/playgrounds/inertia-react/config/database.ts b/playgrounds/inertia-react/config/database.ts index 4281077..ed32052 100644 --- a/playgrounds/inertia-react/config/database.ts +++ b/playgrounds/inertia-react/config/database.ts @@ -7,7 +7,7 @@ const dbConfig = defineConfig({ sqlite: { client: 'better-sqlite3', connection: { - filename: app.tmpPath('db.sqlite3'), + filename: app.tmpPath('db.sqlite3') }, useNullAsDefault: true, migrations: { @@ -18,4 +18,4 @@ const dbConfig = defineConfig({ }, }) -export default dbConfig +export default dbConfig \ No newline at end of file diff --git a/playgrounds/inertia-react/config/hash.ts b/playgrounds/inertia-react/config/hash.ts index 1f2d57e..ab10300 100644 --- a/playgrounds/inertia-react/config/hash.ts +++ b/playgrounds/inertia-react/config/hash.ts @@ -5,10 +5,10 @@ const hashConfig = defineConfig({ list: { scrypt: drivers.scrypt({ - cost: 16_384, + cost: 16384, blockSize: 8, parallelization: 1, - maxMemory: 33_554_432, + maxMemory: 33554432, }), }, }) diff --git a/playgrounds/inertia-react/config/inertia.ts b/playgrounds/inertia-react/config/inertia.ts index c94e891..378e4bc 100644 --- a/playgrounds/inertia-react/config/inertia.ts +++ b/playgrounds/inertia-react/config/inertia.ts @@ -17,7 +17,7 @@ export default defineConfig({ * Options for the server-side rendering */ ssr: { - enabled: false, - entrypoint: 'inertia/app/ssr.tsx', - }, -}) + enabled: true, + entrypoint: 'inertia/app/ssr.tsx' + } +}) \ No newline at end of file diff --git a/playgrounds/inertia-react/config/logger.ts b/playgrounds/inertia-react/config/logger.ts index 3b88614..b961300 100644 --- a/playgrounds/inertia-react/config/logger.ts +++ b/playgrounds/inertia-react/config/logger.ts @@ -1,8 +1,7 @@ +import env from '#start/env' import app from '@adonisjs/core/services/app' import { defineConfig, targets } from '@adonisjs/core/logger' -import env from '#start/env' - const loggerConfig = defineConfig({ default: 'app', diff --git a/playgrounds/inertia-react/config/session.ts b/playgrounds/inertia-react/config/session.ts index 71ee3e6..6a143aa 100644 --- a/playgrounds/inertia-react/config/session.ts +++ b/playgrounds/inertia-react/config/session.ts @@ -1,8 +1,7 @@ +import env from '#start/env' import app from '@adonisjs/core/services/app' import { defineConfig, stores } from '@adonisjs/session' -import env from '#start/env' - const sessionConfig = defineConfig({ enabled: true, cookieName: 'adonis-session', diff --git a/playgrounds/inertia-react/config/shield.ts b/playgrounds/inertia-react/config/shield.ts index 6f465c1..d3aa290 100644 --- a/playgrounds/inertia-react/config/shield.ts +++ b/playgrounds/inertia-react/config/shield.ts @@ -16,7 +16,7 @@ const shieldConfig = defineConfig({ * to learn more */ csrf: { - enabled: false, + enabled: true, exceptRoutes: [], enableXsrfCookie: true, methods: ['POST', 'PUT', 'PATCH', 'DELETE'], diff --git a/playgrounds/inertia-react/database/migrations/1715412266076_create_users_table.ts b/playgrounds/inertia-react/database/migrations/1715412266076_create_users_table.ts new file mode 100644 index 0000000..d6a6798 --- /dev/null +++ b/playgrounds/inertia-react/database/migrations/1715412266076_create_users_table.ts @@ -0,0 +1,21 @@ +import { BaseSchema } from '@adonisjs/lucid/schema' + +export default class extends BaseSchema { + protected tableName = 'users' + + async up() { + this.schema.createTable(this.tableName, (table) => { + table.increments('id').notNullable() + table.string('full_name').nullable() + table.string('email', 254).notNullable().unique() + table.string('password').notNullable() + + table.timestamp('created_at').notNullable() + table.timestamp('updated_at').nullable() + }) + } + + async down() { + this.schema.dropTable(this.tableName) + } +} \ No newline at end of file diff --git a/playgrounds/inertia-react/inertia/app/app.tsx b/playgrounds/inertia-react/inertia/app/app.tsx index 3e747db..4f63e7a 100644 --- a/playgrounds/inertia-react/inertia/app/app.tsx +++ b/playgrounds/inertia-react/inertia/app/app.tsx @@ -1,16 +1,25 @@ -import '../css/app.css' - -import { render } from 'solid-js/web' -import { createInertiaApp } from 'inertia-adapter-solid' +import '../css/app.css'; +import { hydrateRoot } from 'react-dom/client' +import { createInertiaApp } from '@inertiajs/react'; import { resolvePageComponent } from '@adonisjs/inertia/helpers' +const appName = import.meta.env.VITE_APP_NAME || 'AdonisJS' + createInertiaApp({ progress: { color: '#5468FF' }, + + title: (title) => `${title} - ${appName}`, + resolve: (name) => { - return resolvePageComponent(`../pages/${name}.tsx`, import.meta.glob('../pages/**/*.tsx')) + return resolvePageComponent( + `../pages/${name}.tsx`, + import.meta.glob('../pages/**/*.tsx'), + ) }, setup({ el, App, props }) { - render(() => , el) + + hydrateRoot(el, ) + }, -}) +}); \ No newline at end of file diff --git a/playgrounds/inertia-react/inertia/app/ssr.tsx b/playgrounds/inertia-react/inertia/app/ssr.tsx new file mode 100644 index 0000000..56793e6 --- /dev/null +++ b/playgrounds/inertia-react/inertia/app/ssr.tsx @@ -0,0 +1,14 @@ +import ReactDOMServer from 'react-dom/server' +import { createInertiaApp } from '@inertiajs/react' + +export default function render(page: any) { + return createInertiaApp({ + page, + render: ReactDOMServer.renderToString, + resolve: (name) => { + const pages = import.meta.glob('../pages/**/*.tsx', { eager: true }) + return pages[`../pages/${name}.tsx`] + }, + setup: ({ App, props }) => , + }) +} \ No newline at end of file diff --git a/playgrounds/inertia-react/inertia/pages/errors/not_found.tsx b/playgrounds/inertia-react/inertia/pages/errors/not_found.tsx index b74feba..77ba552 100644 --- a/playgrounds/inertia-react/inertia/pages/errors/not_found.tsx +++ b/playgrounds/inertia-react/inertia/pages/errors/not_found.tsx @@ -1,11 +1,11 @@ export default function NotFound() { return ( <> -
-
Page not found
+
+
Page not found
This page does not exist.
) -} +} \ No newline at end of file diff --git a/playgrounds/inertia-react/inertia/pages/errors/server_error.tsx b/playgrounds/inertia-react/inertia/pages/errors/server_error.tsx index 49fbeae..4956d4c 100644 --- a/playgrounds/inertia-react/inertia/pages/errors/server_error.tsx +++ b/playgrounds/inertia-react/inertia/pages/errors/server_error.tsx @@ -1,11 +1,11 @@ export default function ServerError(props: { error: any }) { return ( <> -
-
Server Error
+
+
Server Error
{props.error.message}
) -} +} \ No newline at end of file diff --git a/playgrounds/inertia-react/inertia/pages/home.tsx b/playgrounds/inertia-react/inertia/pages/home.tsx index bac3389..8562811 100644 --- a/playgrounds/inertia-react/inertia/pages/home.tsx +++ b/playgrounds/inertia-react/inertia/pages/home.tsx @@ -1,67 +1,18 @@ -import { tuyau } from '~/app/tuyau' -import type { InferErrorType } from '@tuyau/client' -import type { InferPageProps } from '@adonisjs/inertia/types' -import { Match, Show, Switch, createResource, createSignal } from 'solid-js' - -import type InertiaController from '../../app/controllers/inertia_controller' - -export default function Home(props: InferPageProps) { - const [file, setFile] = createSignal(null) - const [data] = createResource(async () => { - const result = await tuyau.users.$get({ query: { limit: 10 } }) - if (result.error) throw result.error - - return result.data - }) - - const errorMessage = () => { - const error = data.error as InferErrorType - - /** - * We can narrow down the error.value type based on the status code - */ - if (error?.status === 400) return error.value.message - if (error?.status === 502) return error.value - - return 'Unknown error' - } +import { Head } from '@inertiajs/react' +export default function Home(props: { version: number }) { return ( <> -
-
AdonisJS {props.version} x Inertia x Solid.js
- - - Loading... - {errorMessage()} - - {(users) =>
    {users()?.users.map((user) =>
  • {user.name}
  • )}
} -
-
- - setFile(event.target.files?.[0] || null)} /> - -
-
File Name: {file()?.name}
-
File Size: {file()?.size}
-
-
- - + + Learn more about AdonisJS and Inertia.js by visiting the{' '} + AdonisJS documentation. +
) -} +} \ No newline at end of file diff --git a/playgrounds/inertia-react/inertia/tsconfig.json b/playgrounds/inertia-react/inertia/tsconfig.json index 4c48bf9..c04c853 100644 --- a/playgrounds/inertia-react/inertia/tsconfig.json +++ b/playgrounds/inertia-react/inertia/tsconfig.json @@ -1,13 +1,12 @@ { "extends": "@adonisjs/tsconfig/tsconfig.client.json", "compilerOptions": { - "jsx": "preserve", - "jsxImportSource": "solid-js", "baseUrl": ".", "module": "ESNext", + "jsx": "react-jsx", "paths": { - "~/*": ["./*"] - } + "~/*": ["./*"], + }, }, - "include": ["./**/*.ts", "./**/*.tsx"] -} + "include": ["./**/*.ts", "./**/*.tsx"], +} \ No newline at end of file diff --git a/playgrounds/inertia-react/package.json b/playgrounds/inertia-react/package.json index 7edde52..763ed4b 100644 --- a/playgrounds/inertia-react/package.json +++ b/playgrounds/inertia-react/package.json @@ -1,5 +1,5 @@ { - "name": "playground", + "name": "inertia-react", "type": "module", "version": "0.0.0", "private": true, @@ -7,7 +7,8 @@ "scripts": { "start": "node bin/server.js", "build": "node ace build", - "dev": "node ace --import=hot-hook/register serve", + "dev": "node ace serve --hmr", + "test": "node ace test", "lint": "eslint .", "format": "prettier --write .", "typecheck": "tsc --noEmit" @@ -32,40 +33,44 @@ }, "dependencies": { "@adonisjs/auth": "^9.2.1", - "@adonisjs/core": "^6.8.0", + "@adonisjs/core": "^6.9.0", "@adonisjs/cors": "^2.2.1", - "@adonisjs/inertia": "1.0.0-25", - "@adonisjs/lucid": "^20.5.1", + "@adonisjs/inertia": "1.0.0-27", + "@adonisjs/lucid": "^20.6.0", "@adonisjs/session": "^7.4.0", "@adonisjs/shield": "^8.1.1", "@adonisjs/static": "^1.1.1", "@adonisjs/vite": "^3.0.0-11", - "@solidjs/meta": "^0.29.3", - "@tuyau/client": "workspace:*", - "@tuyau/core": "workspace:*", + "@inertiajs/react": "^1.0.16", "@vinejs/vine": "^2.0.0", "better-sqlite3": "^9.6.0", "edge.js": "^6.0.2", - "inertia-adapter-solid": "^0.2.0", "luxon": "^3.4.4", - "reflect-metadata": "^0.2.2", - "solid-js": "^1.8.17" + "react": "^18.3.1", + "react-dom": "^18.3.1", + "reflect-metadata": "^0.2.2" }, "devDependencies": { - "@adonisjs/assembler": "^7.5.1", + "@adonisjs/assembler": "^7.5.2", + "@adonisjs/eslint-config": "^1.3.0", + "@adonisjs/prettier-config": "^1.3.0", + "@adonisjs/tsconfig": "^1.3.0", "@japa/plugin-adonisjs": "^3.0.1", - "@tuyau/utils": "workspace:*", "@types/luxon": "^3.4.2", - "@types/node": "^20.12.7", - "hot-hook": "^0.1.10", - "pino-pretty": "^11.0.0", - "vite": "^5.2.10", - "vite-plugin-solid": "^2.10.2" + "@types/react": "^18.3.1", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.2.1", + "hot-hook": "^0.2.5", + "pino-pretty": "^11.0.0" }, "hotHook": { "boundaries": [ - "../app/controllers/*.ts", - "../app/middleware/*.ts" + "./app/controllers/**/*.ts", + "./app/middleware/*.ts" ] - } + }, + "eslintConfig": { + "extends": "@adonisjs/eslint-config/app" + }, + "prettier": "@adonisjs/prettier-config" } diff --git a/playgrounds/inertia-react/public/assets/.vite/manifest.json b/playgrounds/inertia-react/public/assets/.vite/manifest.json deleted file mode 100644 index e5f7300..0000000 --- a/playgrounds/inertia-react/public/assets/.vite/manifest.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "inertia/app/app.tsx": { - "file": "app-DPRTKUiA.js", - "name": "app", - "src": "inertia/app/app.tsx", - "isEntry": true, - "dynamicImports": [ - "inertia/pages/errors/not_found.tsx", - "inertia/pages/errors/server_error.tsx", - "inertia/pages/home.tsx" - ], - "css": [ - "app-CmF2H2ns.css" - ] - }, - "inertia/pages/errors/not_found.tsx": { - "file": "not_found-C8L5ESD_.js", - "name": "not_found", - "src": "inertia/pages/errors/not_found.tsx", - "isDynamicEntry": true, - "imports": [ - "inertia/app/app.tsx" - ] - }, - "inertia/pages/errors/server_error.tsx": { - "file": "server_error-BD4xwSAI.js", - "name": "server_error", - "src": "inertia/pages/errors/server_error.tsx", - "isDynamicEntry": true, - "imports": [ - "inertia/app/app.tsx" - ] - }, - "inertia/pages/home.tsx": { - "file": "home-BsQwUvOW.js", - "name": "home", - "src": "inertia/pages/home.tsx", - "isDynamicEntry": true, - "imports": [ - "inertia/app/app.tsx" - ] - } -} \ No newline at end of file diff --git a/playgrounds/inertia-react/public/assets/app-CmF2H2ns.css b/playgrounds/inertia-react/public/assets/app-CmF2H2ns.css deleted file mode 100644 index 6f177eb..0000000 --- a/playgrounds/inertia-react/public/assets/app-CmF2H2ns.css +++ /dev/null @@ -1 +0,0 @@ -@import"https://fonts.googleapis.com/css2?family=Poppins:wght@400;500&display=swap";*{margin:0;padding:0}html,body,#app{background-color:#f7f8fa;font-family:Poppins,sans-serif;color:#46444c;height:100%;width:100%}.title{font-size:42px;font-weight:500;color:#5a45ff}.container{display:flex;justify-content:center;align-items:center;flex-direction:column;height:100%;width:100%}a{text-decoration:underline;color:#5a45ff} diff --git a/playgrounds/inertia-react/public/assets/app-DPRTKUiA.js b/playgrounds/inertia-react/public/assets/app-DPRTKUiA.js deleted file mode 100644 index c0aa9e4..0000000 --- a/playgrounds/inertia-react/public/assets/app-DPRTKUiA.js +++ /dev/null @@ -1,81 +0,0 @@ -const ba="modulepreload",wa=function(e){return"/assets/"+e},di={},po=function(t,r,n){let i=Promise.resolve();if(r&&r.length>0){const s=document.getElementsByTagName("link"),a=document.querySelector("meta[property=csp-nonce]"),c=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));i=Promise.all(r.map(u=>{if(u=wa(u),u in di)return;di[u]=!0;const h=u.endsWith(".css"),p=h?'[rel="stylesheet"]':"";if(!!n)for(let S=s.length-1;S>=0;S--){const y=s[S];if(y.href===u&&(!h||y.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${u}"]${p}`))return;const g=document.createElement("link");if(g.rel=h?"stylesheet":ba,h||(g.as="script",g.crossOrigin=""),g.href=u,c&&g.setAttribute("nonce",c),document.head.appendChild(g),h)return new Promise((S,y)=>{g.addEventListener("load",S),g.addEventListener("error",()=>y(new Error(`Unable to preload CSS for ${u}`)))})}))}return i.then(()=>t()).catch(s=>{const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=s,window.dispatchEvent(a),!a.defaultPrevented)throw s})},zr={context:void 0,registry:void 0},Sa=(e,t)=>e===t,xe=Symbol("solid-proxy"),hi=Symbol("solid-track"),Aa=Symbol("solid-dev-component"),rn={equals:Sa};let Ea=ys;const ze=1,nn=2,Oa={owned:null,cleanups:null,context:null,owner:null},ho={};var H=null;let yo=null,_a=null,k=null,re=null,nt=null,hn=0;const Pa={afterUpdate:null,afterCreateOwner:null,afterCreateSignal:null};function Ta(e,t){const r=k,n=H,i=e.length===0,s=t===void 0?n:t,a=i?{owned:null,cleanups:null,context:null,owner:null}:{owned:null,cleanups:null,context:s?s.context:null,owner:s},c=i?()=>e(()=>{throw new Error("Dispose method must be an explicit argument to createRoot function")}):()=>e(()=>de(()=>gn(a)));H=a,k=null;try{return Ve(c,!0)}finally{k=r,H=n}}function cr(e,t){t=t?Object.assign({},rn,t):rn;const r={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0};t.name&&(r.name=t.name),t.internal||us(r);const n=i=>(typeof i=="function"&&(i=i(r.value)),Yo(r,i));return[ds.bind(r),n]}function yi(e,t,r){const n=yn(e,t,!0,ze,r);Dt(n)}function ot(e,t,r){const n=yn(e,t,!1,ze,r);Dt(n)}function qe(e,t,r){r=r?Object.assign({},rn,r):rn;const n=yn(e,t,!0,0,r);return n.observers=null,n.observerSlots=null,n.comparator=r.equals||void 0,Dt(n),ds.bind(n)}function xa(e){return e&&typeof e=="object"&&"then"in e}function Dp(e,t,r){let n,i,s;arguments.length===2&&typeof t=="object"||arguments.length===1?(n=!0,i=e,s=t||{}):(n=e,i=t,s=r||{});let a=null,c=ho,u=!1,h="initialValue"in s,p=typeof n=="function"&&qe(n);const d=new Set,[g,S]=(s.storage||cr)(s.initialValue),[y,m]=cr(void 0),[w,E]=cr(void 0,{equals:!1}),[P,A]=cr(h?"ready":"unresolved");function T(C,I,N,J){return a===C&&(a=null,J!==void 0&&(h=!0),(C===c||I===c)&&s.onHydrated&&queueMicrotask(()=>s.onHydrated(J,{value:I})),c=ho,M(I,N)),I}function M(C,I){Ve(()=>{I===void 0&&S(()=>C),A(I!==void 0?"errored":h?"ready":"unresolved"),m(I);for(const N of d.keys())N.decrement();d.clear()},!1)}function O(){const C=Ia,I=g(),N=y();if(N!==void 0&&!a)throw N;return k&&!k.user&&C&&yi(()=>{w(),a&&(C.resolved||d.has(C)||(C.increment(),d.add(C)))}),I}function x(C=!0){if(C!==!1&&u)return;u=!1;const I=p?p():n;if(I==null||I===!1){T(a,de(g));return}const N=c!==ho?c:de(()=>i(I,{value:g(),refetching:C}));return xa(N)?(a=N,"value"in N?(N.status==="success"?T(a,N.value,void 0,I):T(a,void 0,void 0,I),N):(u=!0,queueMicrotask(()=>u=!1),Ve(()=>{A(h?"refreshing":"pending"),E()},!1),N.then(J=>T(N,J,void 0,I),J=>T(N,void 0,ms(J),I)))):(T(a,N,void 0,I),N)}return Object.defineProperties(O,{state:{get:()=>P()},error:{get:()=>y()},loading:{get(){const C=P();return C==="pending"||C==="refreshing"}},latest:{get(){if(!h)return O();const C=y();if(C&&!a)throw C;return g()}}}),p?yi(()=>x(!1)):x(!1),[O,{refetch:x,mutate:S}]}function Ca(e){return Ve(e,!1)}function de(e){if(k===null)return e();const t=k;k=null;try{return e()}finally{k=t}}function $o(){return k}function Ra(e,t){const r=yn(()=>de(()=>(Object.assign(e,{[Aa]:!0}),e(t))),void 0,!0,0);return r.props=t,r.observers=null,r.observerSlots=null,r.name=e.name,r.component=e,Dt(r),r.tValue!==void 0?r.tValue:r.value}function us(e){H&&(H.sourceMap?H.sourceMap.push(e):H.sourceMap=[e],e.graph=H)}function fs(e,t){const r=Symbol("context");return{id:r,Provider:Fa(r,t),defaultValue:e}}function ps(e){const t=qe(e),r=qe(()=>Fo(t()),void 0,{name:"children"});return r.toArray=()=>{const n=r();return Array.isArray(n)?n:n!=null?[n]:[]},r}let Ia;function ds(){if(this.sources&&this.state)if(this.state===ze)Dt(this);else{const e=re;re=null,Ve(()=>on(this),!1),re=e}if(k){const e=this.observers?this.observers.length:0;k.sources?(k.sources.push(this),k.sourceSlots.push(e)):(k.sources=[this],k.sourceSlots=[e]),this.observers?(this.observers.push(k),this.observerSlots.push(k.sources.length-1)):(this.observers=[k],this.observerSlots=[k.sources.length-1])}return this.value}function Yo(e,t,r){let n=e.value;return(!e.comparator||!e.comparator(n,t))&&(e.value=t,e.observers&&e.observers.length&&Ve(()=>{for(let i=0;i1e6){throw re=[],new Error("Potential Infinite Loop Detected.");throw new Error}},!1)),t}function Dt(e){if(!e.fn)return;gn(e);const t=hn;Na(e,e.value,t)}function Na(e,t,r){let n;const i=H,s=k;k=H=e;try{n=e.fn(t)}catch(a){return e.pure&&(e.state=ze,e.owned&&e.owned.forEach(gn),e.owned=null),e.updatedAt=r+1,vs(a)}finally{k=s,H=i}(!e.updatedAt||e.updatedAt<=r)&&(e.updatedAt!=null&&"observers"in e?Yo(e,n):e.value=n,e.updatedAt=r)}function yn(e,t,r,n=ze,i){const s={fn:e,state:n,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:H,context:H?H.context:null,pure:r};return H===null?console.warn("computations created outside a `createRoot` or `render` will never be disposed"):H!==Oa&&(H.owned?H.owned.push(s):H.owned=[s]),i&&i.name&&(s.name=i.name),s}function hs(e){if(e.state===0)return;if(e.state===nn)return on(e);if(e.suspense&&de(e.suspense.inFallback))return e.suspense.effects.push(e);const t=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt=0;r--)if(e=t[r],e.state===ze)Dt(e);else if(e.state===nn){const n=re;re=null,Ve(()=>on(e,t[0]),!1),re=n}}function Ve(e,t){if(re)return e();let r=!1;t||(re=[]),nt?r=!0:nt=[],hn++;try{const n=e();return $a(r),n}catch(n){r||(nt=null),re=null,vs(n)}}function $a(e){if(re&&(ys(re),re=null),e)return;const t=nt;nt=null,t.length&&Ve(()=>Ea(t),!1)}function ys(e){for(let t=0;t=0;t--)gn(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}e.state=0,delete e.sourceMap}function ms(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"Unknown error",{cause:e})}function vs(e,t=H){throw ms(e)}function Fo(e){if(typeof e=="function"&&!e.length)return Fo(e());if(Array.isArray(e)){const t=[];for(let r=0;ri=de(()=>(H.context={...H.context,[e]:n.value},ps(()=>n.children))),void 0,t),i}}let Da=!1;function _t(e,t){return Ra(e,t||{})}function Gr(){return!0}const La={get(e,t,r){return t===xe?r:e.get(t)},has(e,t){return t===xe?!0:e.has(t)},set:Gr,deleteProperty:Gr,getOwnPropertyDescriptor(e,t){return{configurable:!0,enumerable:!0,get(){return e.get(t)},set:Gr,deleteProperty:Gr}},ownKeys(e){return e.keys()}};function go(e){return(e=typeof e=="function"?e():e)?e:{}}function ja(){for(let e=0,t=this.length;e=0;c--){const u=go(e[c])[a];if(u!==void 0)return u}},has(a){for(let c=e.length-1;c>=0;c--)if(a in go(e[c]))return!0;return!1},keys(){const a=[];for(let c=0;c=0;a--){const c=e[a];if(!c)continue;const u=Object.getOwnPropertyNames(c);for(let h=u.length-1;h>=0;h--){const p=u[h];if(p==="__proto__"||p==="constructor")continue;const d=Object.getOwnPropertyDescriptor(c,p);if(!n[p])n[p]=d.get?{enumerable:!0,configurable:!0,get:ja.bind(r[p]=[d.get.bind(c)])}:d.value!==void 0?d:void 0;else{const g=r[p];g&&(d.get?g.push(d.get.bind(c)):d.value!==void 0&&g.push(()=>d.value))}}}const i={},s=Object.keys(n);for(let a=s.length-1;a>=0;a--){const c=s[a],u=n[c];u&&u.get?Object.defineProperty(i,c,u):i[c]=u?u.value:void 0}return i}const bs=e=>`Attempting to access a stale value from <${e}> that could possibly be undefined. This may occur because you are reading the accessor returned from the component at a time where it has already been unmounted. We recommend cleaning up any stale timers or async, or reading from the initial condition.`;function Lp(e){const t=e.keyed,r=qe(()=>e.when,void 0,{equals:(n,i)=>t?n===i:!n==!i,name:"condition"});return qe(()=>{const n=r();if(n){const i=e.children;return typeof i=="function"&&i.length>0?de(()=>i(t?n:()=>{if(!de(r))throw bs("Show");return e.when})):i}return e.fallback},void 0,{name:"value"})}function jp(e){let t=!1;const r=(s,a)=>(t?s[1]===a[1]:!s[1]==!a[1])&&s[2]===a[2],n=ps(()=>e.children),i=qe(()=>{let s=n();Array.isArray(s)||(s=[s]);for(let a=0;a{const[s,a,c]=i();if(s<0)return e.fallback;const u=c.children;return typeof u=="function"&&u.length>0?de(()=>u(t?a:()=>{if(de(i)[0]!==s)throw bs("Match");return c.when})):u},void 0,{name:"value"})}function Mp(e){return e}const Ma={hooks:Pa,writeSignal:Yo,registerGraph:us};globalThis&&(globalThis.Solid$$?console.warn("You appear to have multiple instances of Solid. This can lead to unexpected behavior."):globalThis.Solid$$=!0);const Ba=["allowfullscreen","async","autofocus","autoplay","checked","controls","default","disabled","formnovalidate","hidden","indeterminate","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","seamless","selected"],Ua=new Set(["className","value","readOnly","formNoValidate","isMap","noModule","playsInline",...Ba]),ka=new Set(["innerHTML","textContent","innerText","children"]),Ha=Object.assign(Object.create(null),{className:"class",htmlFor:"for"}),qa=Object.assign(Object.create(null),{class:"className",formnovalidate:{$:"formNoValidate",BUTTON:1,INPUT:1},ismap:{$:"isMap",IMG:1},nomodule:{$:"noModule",SCRIPT:1},playsinline:{$:"playsInline",VIDEO:1},readonly:{$:"readOnly",INPUT:1,TEXTAREA:1}});function Va(e,t){const r=qa[e];return typeof r=="object"?r[t]?r.$:void 0:r}const Wa=new Set(["beforeinput","click","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"]),za={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"};function Ga(e,t,r){let n=r.length,i=t.length,s=n,a=0,c=0,u=t[i-1].nextSibling,h=null;for(;ap-c){const y=t[a];for(;c{i=s,t===document?e():rl(t,e(),t.firstChild?null:void 0,r)},n.owner),()=>{i(),t.textContent=""}}function Bp(e,t,r){let n;const i=()=>{const a=document.createElement("template");return a.innerHTML=e,r?a.content.firstChild.firstChild:a.content.firstChild},s=t?()=>de(()=>document.importNode(n||(n=i()),!0)):()=>(n||(n=i())).cloneNode(!0);return s.cloneNode=s,s}function Ja(e,t=window.document){const r=t[mi]||(t[mi]=new Set);for(let n=0,i=e.length;ni.call(e,r[1],s))}else e.addEventListener(t,r)}function Za(e,t,r={}){const n=Object.keys(t||{}),i=Object.keys(r);let s,a;for(s=0,a=i.length;si.children=xt(e,t.children,i.children)),ot(()=>typeof t.ref=="function"?tl(t.ref,e):t.ref=e),ot(()=>nl(e,t,r,!0,i,!0)),i}function tl(e,t,r){return de(()=>e(t,r))}function rl(e,t,r,n){if(r!==void 0&&!n&&(n=[]),typeof t!="function")return xt(e,t,n,r);ot(i=>xt(e,t(),i,r),n)}function nl(e,t,r,n,i={},s=!1){t||(t={});for(const a in i)if(!(a in t)){if(a==="children")continue;i[a]=wi(e,a,null,i[a],r,s)}for(const a in t){if(a==="children"){n||xt(e,t.children);continue}const c=t[a];i[a]=wi(e,a,c,i[a],r,s)}}function Up(e){return e()}function kp(e){return[e,[]]}function Hp(){zr.events&&!zr.events.queued&&(queueMicrotask(()=>{const{completed:e,events:t}=zr;for(t.queued=!1;t.length;){const[r,n]=t[0];if(!e.has(r))return;ws(n),t.shift()}}),zr.events.queued=!0)}function ol(e){return e.toLowerCase().replace(/-([a-z])/g,(t,r)=>r.toUpperCase())}function bi(e,t,r){const n=t.trim().split(/\s+/);for(let i=0,s=n.length;i-1&&za[t.split(":")[0]];d?Xa(e,d,t,r):Do(e,Ha[t]||t,r)}return r}function ws(e){const t=`$$${e.type}`;let r=e.composedPath&&e.composedPath()[0]||e.target;for(e.target!==r&&Object.defineProperty(e,"target",{configurable:!0,value:r}),Object.defineProperty(e,"currentTarget",{configurable:!0,get(){return r||document}});r;){const n=r[t];if(n&&!r.disabled){const i=r[`${t}Data`];if(i!==void 0?n.call(r,i,e):n.call(r,e),e.cancelBubble)return}r=r._$host||r.parentNode||r.host}}function xt(e,t,r,n,i){for(;typeof r=="function";)r=r();if(t===r)return r;const s=typeof t,a=n!==void 0;if(e=a&&r[0]&&r[0].parentNode||e,s==="string"||s==="number")if(s==="number"&&(t=t.toString()),a){let c=r[0];c&&c.nodeType===3?c.data!==t&&(c.data=t):c=document.createTextNode(t),r=bt(e,r,n,c)}else r!==""&&typeof r=="string"?r=e.firstChild.data=t:r=e.textContent=t;else if(t==null||s==="boolean")r=bt(e,r,n);else{if(s==="function")return ot(()=>{let c=t();for(;typeof c=="function";)c=c();r=xt(e,c,r,n)}),()=>r;if(Array.isArray(t)){const c=[],u=r&&Array.isArray(r);if(Lo(c,t,r,i))return ot(()=>r=xt(e,c,r,n,!0)),()=>r;if(c.length===0){if(r=bt(e,r,n),a)return r}else u?r.length===0?Si(e,c,n):Ga(e,r,c):(r&&bt(e),Si(e,c));r=c}else if(t.nodeType){if(Array.isArray(r)){if(a)return r=bt(e,r,n,t);bt(e,r,null,t)}else r==null||r===""||!e.firstChild?e.appendChild(t):e.replaceChild(t,e.firstChild);r=t}else console.warn("Unrecognized value. Skipped inserting",t)}return r}function Lo(e,t,r,n){let i=!1;for(let s=0,a=t.length;s=0;a--){const c=t[a];if(i!==c){const u=c.parentNode===e;!s&&!a?u?e.replaceChild(i,c):e.insertBefore(i,r):u&&c.remove()}else s=!0}}else e.insertBefore(i,r);return[i]}function Ss(e,t){return function(){return e.apply(t,arguments)}}const{toString:il}=Object.prototype,{getPrototypeOf:Zo}=Object,mn=(e=>t=>{const r=il.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),Ce=e=>(e=e.toLowerCase(),t=>mn(t)===e),vn=e=>t=>typeof t===e,{isArray:Lt}=Array,hr=vn("undefined");function sl(e){return e!==null&&!hr(e)&&e.constructor!==null&&!hr(e.constructor)&&pe(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const As=Ce("ArrayBuffer");function al(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&As(e.buffer),t}const ll=vn("string"),pe=vn("function"),Es=vn("number"),bn=e=>e!==null&&typeof e=="object",cl=e=>e===!0||e===!1,Qr=e=>{if(mn(e)!=="object")return!1;const t=Zo(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},ul=Ce("Date"),fl=Ce("File"),pl=Ce("Blob"),dl=Ce("FileList"),hl=e=>bn(e)&&pe(e.pipe),yl=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||pe(e.append)&&((t=mn(e))==="formdata"||t==="object"&&pe(e.toString)&&e.toString()==="[object FormData]"))},gl=Ce("URLSearchParams"),ml=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function mr(e,t,{allOwnKeys:r=!1}={}){if(e===null||typeof e>"u")return;let n,i;if(typeof e!="object"&&(e=[e]),Lt(e))for(n=0,i=e.length;n0;)if(i=r[n],t===i.toLowerCase())return i;return null}const _s=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Ps=e=>!hr(e)&&e!==_s;function jo(){const{caseless:e}=Ps(this)&&this||{},t={},r=(n,i)=>{const s=e&&Os(t,i)||i;Qr(t[s])&&Qr(n)?t[s]=jo(t[s],n):Qr(n)?t[s]=jo({},n):Lt(n)?t[s]=n.slice():t[s]=n};for(let n=0,i=arguments.length;n(mr(t,(i,s)=>{r&&pe(i)?e[s]=Ss(i,r):e[s]=i},{allOwnKeys:n}),e),bl=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),wl=(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},Sl=(e,t,r,n)=>{let i,s,a;const c={};if(t=t||{},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),s=i.length;s-- >0;)a=i[s],(!n||n(a,e,t))&&!c[a]&&(t[a]=e[a],c[a]=!0);e=r!==!1&&Zo(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},Al=(e,t,r)=>{e=String(e),(r===void 0||r>e.length)&&(r=e.length),r-=t.length;const n=e.indexOf(t,r);return n!==-1&&n===r},El=e=>{if(!e)return null;if(Lt(e))return e;let t=e.length;if(!Es(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},Ol=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Zo(Uint8Array)),_l=(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let i;for(;(i=n.next())&&!i.done;){const s=i.value;t.call(e,s[0],s[1])}},Pl=(e,t)=>{let r;const n=[];for(;(r=e.exec(t))!==null;)n.push(r);return n},Tl=Ce("HTMLFormElement"),xl=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,n,i){return n.toUpperCase()+i}),Ai=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),Cl=Ce("RegExp"),Ts=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),n={};mr(r,(i,s)=>{let a;(a=t(i,s,e))!==!1&&(n[s]=a||i)}),Object.defineProperties(e,n)},Rl=e=>{Ts(e,(t,r)=>{if(pe(e)&&["arguments","caller","callee"].indexOf(r)!==-1)return!1;const n=e[r];if(pe(n)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},Il=(e,t)=>{const r={},n=i=>{i.forEach(s=>{r[s]=!0})};return Lt(e)?n(e):n(String(e).split(t)),r},Nl=()=>{},$l=(e,t)=>(e=+e,Number.isFinite(e)?e:t),mo="abcdefghijklmnopqrstuvwxyz",Ei="0123456789",xs={DIGIT:Ei,ALPHA:mo,ALPHA_DIGIT:mo+mo.toUpperCase()+Ei},Fl=(e=16,t=xs.ALPHA_DIGIT)=>{let r="";const{length:n}=t;for(;e--;)r+=t[Math.random()*n|0];return r};function Dl(e){return!!(e&&pe(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const Ll=e=>{const t=new Array(10),r=(n,i)=>{if(bn(n)){if(t.indexOf(n)>=0)return;if(!("toJSON"in n)){t[i]=n;const s=Lt(n)?[]:{};return mr(n,(a,c)=>{const u=r(a,i+1);!hr(u)&&(s[c]=u)}),t[i]=void 0,s}}return n};return r(e,0)},jl=Ce("AsyncFunction"),Ml=e=>e&&(bn(e)||pe(e))&&pe(e.then)&&pe(e.catch),b={isArray:Lt,isArrayBuffer:As,isBuffer:sl,isFormData:yl,isArrayBufferView:al,isString:ll,isNumber:Es,isBoolean:cl,isObject:bn,isPlainObject:Qr,isUndefined:hr,isDate:ul,isFile:fl,isBlob:pl,isRegExp:Cl,isFunction:pe,isStream:hl,isURLSearchParams:gl,isTypedArray:Ol,isFileList:dl,forEach:mr,merge:jo,extend:vl,trim:ml,stripBOM:bl,inherits:wl,toFlatObject:Sl,kindOf:mn,kindOfTest:Ce,endsWith:Al,toArray:El,forEachEntry:_l,matchAll:Pl,isHTMLForm:Tl,hasOwnProperty:Ai,hasOwnProp:Ai,reduceDescriptors:Ts,freezeMethods:Rl,toObjectSet:Il,toCamelCase:xl,noop:Nl,toFiniteNumber:$l,findKey:Os,global:_s,isContextDefined:Ps,ALPHABET:xs,generateString:Fl,isSpecCompliantForm:Dl,toJSONObject:Ll,isAsyncFn:jl,isThenable:Ml};function D(e,t,r,n,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),i&&(this.response=i)}b.inherits(D,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:b.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const Cs=D.prototype,Rs={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{Rs[e]={value:e}});Object.defineProperties(D,Rs);Object.defineProperty(Cs,"isAxiosError",{value:!0});D.from=(e,t,r,n,i,s)=>{const a=Object.create(Cs);return b.toFlatObject(e,a,function(u){return u!==Error.prototype},c=>c!=="isAxiosError"),D.call(a,e.message,t,r,n,i),a.cause=e,a.name=e.name,s&&Object.assign(a,s),a};const Bl=null;function Mo(e){return b.isPlainObject(e)||b.isArray(e)}function Is(e){return b.endsWith(e,"[]")?e.slice(0,-2):e}function Oi(e,t,r){return e?e.concat(t).map(function(i,s){return i=Is(i),!r&&s?"["+i+"]":i}).join(r?".":""):t}function Ul(e){return b.isArray(e)&&!e.some(Mo)}const kl=b.toFlatObject(b,{},null,function(t){return/^is[A-Z]/.test(t)});function wn(e,t,r){if(!b.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,r=b.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(m,w){return!b.isUndefined(w[m])});const n=r.metaTokens,i=r.visitor||p,s=r.dots,a=r.indexes,u=(r.Blob||typeof Blob<"u"&&Blob)&&b.isSpecCompliantForm(t);if(!b.isFunction(i))throw new TypeError("visitor must be a function");function h(y){if(y===null)return"";if(b.isDate(y))return y.toISOString();if(!u&&b.isBlob(y))throw new D("Blob is not supported. Use a Buffer instead.");return b.isArrayBuffer(y)||b.isTypedArray(y)?u&&typeof Blob=="function"?new Blob([y]):Buffer.from(y):y}function p(y,m,w){let E=y;if(y&&!w&&typeof y=="object"){if(b.endsWith(m,"{}"))m=n?m:m.slice(0,-2),y=JSON.stringify(y);else if(b.isArray(y)&&Ul(y)||(b.isFileList(y)||b.endsWith(m,"[]"))&&(E=b.toArray(y)))return m=Is(m),E.forEach(function(A,T){!(b.isUndefined(A)||A===null)&&t.append(a===!0?Oi([m],T,s):a===null?m:m+"[]",h(A))}),!1}return Mo(y)?!0:(t.append(Oi(w,m,s),h(y)),!1)}const d=[],g=Object.assign(kl,{defaultVisitor:p,convertValue:h,isVisitable:Mo});function S(y,m){if(!b.isUndefined(y)){if(d.indexOf(y)!==-1)throw Error("Circular reference detected in "+m.join("."));d.push(y),b.forEach(y,function(E,P){(!(b.isUndefined(E)||E===null)&&i.call(t,E,b.isString(P)?P.trim():P,m,g))===!0&&S(E,m?m.concat(P):[P])}),d.pop()}}if(!b.isObject(e))throw new TypeError("data must be an object");return S(e),t}function _i(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(n){return t[n]})}function ei(e,t){this._pairs=[],e&&wn(e,this,t)}const Ns=ei.prototype;Ns.append=function(t,r){this._pairs.push([t,r])};Ns.toString=function(t){const r=t?function(n){return t.call(this,n,_i)}:_i;return this._pairs.map(function(i){return r(i[0])+"="+r(i[1])},"").join("&")};function Hl(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function $s(e,t,r){if(!t)return e;const n=r&&r.encode||Hl,i=r&&r.serialize;let s;if(i?s=i(t,r):s=b.isURLSearchParams(t)?t.toString():new ei(t,r).toString(n),s){const a=e.indexOf("#");a!==-1&&(e=e.slice(0,a)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}class Pi{constructor(){this.handlers=[]}use(t,r,n){return this.handlers.push({fulfilled:t,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){b.forEach(this.handlers,function(n){n!==null&&t(n)})}}const Fs={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ql=typeof URLSearchParams<"u"?URLSearchParams:ei,Vl=typeof FormData<"u"?FormData:null,Wl=typeof Blob<"u"?Blob:null,zl={isBrowser:!0,classes:{URLSearchParams:ql,FormData:Vl,Blob:Wl},protocols:["http","https","file","blob","url","data"]},Ds=typeof window<"u"&&typeof document<"u",Gl=(e=>Ds&&["ReactNative","NativeScript","NS"].indexOf(e)<0)(typeof navigator<"u"&&navigator.product),Kl=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Jl=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Ds,hasStandardBrowserEnv:Gl,hasStandardBrowserWebWorkerEnv:Kl},Symbol.toStringTag,{value:"Module"})),Pe={...Jl,...zl};function Xl(e,t){return wn(e,new Pe.classes.URLSearchParams,Object.assign({visitor:function(r,n,i,s){return Pe.isNode&&b.isBuffer(r)?(this.append(n,r.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)}},t))}function Ql(e){return b.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Yl(e){const t={},r=Object.keys(e);let n;const i=r.length;let s;for(n=0;n=r.length;return a=!a&&b.isArray(i)?i.length:a,u?(b.hasOwnProp(i,a)?i[a]=[i[a],n]:i[a]=n,!c):((!i[a]||!b.isObject(i[a]))&&(i[a]=[]),t(r,n,i[a],s)&&b.isArray(i[a])&&(i[a]=Yl(i[a])),!c)}if(b.isFormData(e)&&b.isFunction(e.entries)){const r={};return b.forEachEntry(e,(n,i)=>{t(Ql(n),i,r,0)}),r}return null}function Zl(e,t,r){if(b.isString(e))try{return(t||JSON.parse)(e),b.trim(e)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(e)}const ti={transitional:Fs,adapter:["xhr","http"],transformRequest:[function(t,r){const n=r.getContentType()||"",i=n.indexOf("application/json")>-1,s=b.isObject(t);if(s&&b.isHTMLForm(t)&&(t=new FormData(t)),b.isFormData(t))return i?JSON.stringify(Ls(t)):t;if(b.isArrayBuffer(t)||b.isBuffer(t)||b.isStream(t)||b.isFile(t)||b.isBlob(t))return t;if(b.isArrayBufferView(t))return t.buffer;if(b.isURLSearchParams(t))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let c;if(s){if(n.indexOf("application/x-www-form-urlencoded")>-1)return Xl(t,this.formSerializer).toString();if((c=b.isFileList(t))||n.indexOf("multipart/form-data")>-1){const u=this.env&&this.env.FormData;return wn(c?{"files[]":t}:t,u&&new u,this.formSerializer)}}return s||i?(r.setContentType("application/json",!1),Zl(t)):t}],transformResponse:[function(t){const r=this.transitional||ti.transitional,n=r&&r.forcedJSONParsing,i=this.responseType==="json";if(t&&b.isString(t)&&(n&&!this.responseType||i)){const a=!(r&&r.silentJSONParsing)&&i;try{return JSON.parse(t)}catch(c){if(a)throw c.name==="SyntaxError"?D.from(c,D.ERR_BAD_RESPONSE,this,null,this.response):c}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Pe.classes.FormData,Blob:Pe.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};b.forEach(["delete","get","head","post","put","patch"],e=>{ti.headers[e]={}});const ri=ti,ec=b.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),tc=e=>{const t={};let r,n,i;return e&&e.split(` -`).forEach(function(a){i=a.indexOf(":"),r=a.substring(0,i).trim().toLowerCase(),n=a.substring(i+1).trim(),!(!r||t[r]&&ec[r])&&(r==="set-cookie"?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+", "+n:n)}),t},Ti=Symbol("internals");function ir(e){return e&&String(e).trim().toLowerCase()}function Yr(e){return e===!1||e==null?e:b.isArray(e)?e.map(Yr):String(e)}function rc(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(e);)t[n[1]]=n[2];return t}const nc=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function vo(e,t,r,n,i){if(b.isFunction(n))return n.call(this,t,r);if(i&&(t=r),!!b.isString(t)){if(b.isString(n))return t.indexOf(n)!==-1;if(b.isRegExp(n))return n.test(t)}}function oc(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,r,n)=>r.toUpperCase()+n)}function ic(e,t){const r=b.toCamelCase(" "+t);["get","set","has"].forEach(n=>{Object.defineProperty(e,n+r,{value:function(i,s,a){return this[n].call(this,t,i,s,a)},configurable:!0})})}class Sn{constructor(t){t&&this.set(t)}set(t,r,n){const i=this;function s(c,u,h){const p=ir(u);if(!p)throw new Error("header name must be a non-empty string");const d=b.findKey(i,p);(!d||i[d]===void 0||h===!0||h===void 0&&i[d]!==!1)&&(i[d||u]=Yr(c))}const a=(c,u)=>b.forEach(c,(h,p)=>s(h,p,u));return b.isPlainObject(t)||t instanceof this.constructor?a(t,r):b.isString(t)&&(t=t.trim())&&!nc(t)?a(tc(t),r):t!=null&&s(r,t,n),this}get(t,r){if(t=ir(t),t){const n=b.findKey(this,t);if(n){const i=this[n];if(!r)return i;if(r===!0)return rc(i);if(b.isFunction(r))return r.call(this,i,n);if(b.isRegExp(r))return r.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,r){if(t=ir(t),t){const n=b.findKey(this,t);return!!(n&&this[n]!==void 0&&(!r||vo(this,this[n],n,r)))}return!1}delete(t,r){const n=this;let i=!1;function s(a){if(a=ir(a),a){const c=b.findKey(n,a);c&&(!r||vo(n,n[c],c,r))&&(delete n[c],i=!0)}}return b.isArray(t)?t.forEach(s):s(t),i}clear(t){const r=Object.keys(this);let n=r.length,i=!1;for(;n--;){const s=r[n];(!t||vo(this,this[s],s,t,!0))&&(delete this[s],i=!0)}return i}normalize(t){const r=this,n={};return b.forEach(this,(i,s)=>{const a=b.findKey(n,s);if(a){r[a]=Yr(i),delete r[s];return}const c=t?oc(s):String(s).trim();c!==s&&delete r[s],r[c]=Yr(i),n[c]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const r=Object.create(null);return b.forEach(this,(n,i)=>{n!=null&&n!==!1&&(r[i]=t&&b.isArray(n)?n.join(", "):n)}),r}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,r])=>t+": "+r).join(` -`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...r){const n=new this(t);return r.forEach(i=>n.set(i)),n}static accessor(t){const n=(this[Ti]=this[Ti]={accessors:{}}).accessors,i=this.prototype;function s(a){const c=ir(a);n[c]||(ic(i,a),n[c]=!0)}return b.isArray(t)?t.forEach(s):s(t),this}}Sn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);b.reduceDescriptors(Sn.prototype,({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(n){this[r]=n}}});b.freezeMethods(Sn);const Le=Sn;function bo(e,t){const r=this||ri,n=t||r,i=Le.from(n.headers);let s=n.data;return b.forEach(e,function(c){s=c.call(r,s,i.normalize(),t?t.status:void 0)}),i.normalize(),s}function js(e){return!!(e&&e.__CANCEL__)}function vr(e,t,r){D.call(this,e??"canceled",D.ERR_CANCELED,t,r),this.name="CanceledError"}b.inherits(vr,D,{__CANCEL__:!0});function sc(e,t,r){const n=r.config.validateStatus;!r.status||!n||n(r.status)?e(r):t(new D("Request failed with status code "+r.status,[D.ERR_BAD_REQUEST,D.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r))}const ac=Pe.hasStandardBrowserEnv?{write(e,t,r,n,i,s){const a=[e+"="+encodeURIComponent(t)];b.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),b.isString(n)&&a.push("path="+n),b.isString(i)&&a.push("domain="+i),s===!0&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function lc(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function cc(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Ms(e,t){return e&&!lc(t)?cc(e,t):t}const uc=Pe.hasStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a");let n;function i(s){let a=s;return t&&(r.setAttribute("href",a),a=r.href),r.setAttribute("href",a),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:r.pathname.charAt(0)==="/"?r.pathname:"/"+r.pathname}}return n=i(window.location.href),function(a){const c=b.isString(a)?i(a):a;return c.protocol===n.protocol&&c.host===n.host}}():function(){return function(){return!0}}();function fc(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function pc(e,t){e=e||10;const r=new Array(e),n=new Array(e);let i=0,s=0,a;return t=t!==void 0?t:1e3,function(u){const h=Date.now(),p=n[s];a||(a=h),r[i]=u,n[i]=h;let d=s,g=0;for(;d!==i;)g+=r[d++],d=d%e;if(i=(i+1)%e,i===s&&(s=(s+1)%e),h-a{const s=i.loaded,a=i.lengthComputable?i.total:void 0,c=s-r,u=n(c),h=s<=a;r=s;const p={loaded:s,total:a,progress:a?s/a:void 0,bytes:c,rate:u||void 0,estimated:u&&a&&h?(a-s)/u:void 0,event:i};p[t?"download":"upload"]=!0,e(p)}}const dc=typeof XMLHttpRequest<"u",hc=dc&&function(e){return new Promise(function(r,n){let i=e.data;const s=Le.from(e.headers).normalize();let{responseType:a,withXSRFToken:c}=e,u;function h(){e.cancelToken&&e.cancelToken.unsubscribe(u),e.signal&&e.signal.removeEventListener("abort",u)}let p;if(b.isFormData(i)){if(Pe.hasStandardBrowserEnv||Pe.hasStandardBrowserWebWorkerEnv)s.setContentType(!1);else if((p=s.getContentType())!==!1){const[m,...w]=p?p.split(";").map(E=>E.trim()).filter(Boolean):[];s.setContentType([m||"multipart/form-data",...w].join("; "))}}let d=new XMLHttpRequest;if(e.auth){const m=e.auth.username||"",w=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";s.set("Authorization","Basic "+btoa(m+":"+w))}const g=Ms(e.baseURL,e.url);d.open(e.method.toUpperCase(),$s(g,e.params,e.paramsSerializer),!0),d.timeout=e.timeout;function S(){if(!d)return;const m=Le.from("getAllResponseHeaders"in d&&d.getAllResponseHeaders()),E={data:!a||a==="text"||a==="json"?d.responseText:d.response,status:d.status,statusText:d.statusText,headers:m,config:e,request:d};sc(function(A){r(A),h()},function(A){n(A),h()},E),d=null}if("onloadend"in d?d.onloadend=S:d.onreadystatechange=function(){!d||d.readyState!==4||d.status===0&&!(d.responseURL&&d.responseURL.indexOf("file:")===0)||setTimeout(S)},d.onabort=function(){d&&(n(new D("Request aborted",D.ECONNABORTED,e,d)),d=null)},d.onerror=function(){n(new D("Network Error",D.ERR_NETWORK,e,d)),d=null},d.ontimeout=function(){let w=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const E=e.transitional||Fs;e.timeoutErrorMessage&&(w=e.timeoutErrorMessage),n(new D(w,E.clarifyTimeoutError?D.ETIMEDOUT:D.ECONNABORTED,e,d)),d=null},Pe.hasStandardBrowserEnv&&(c&&b.isFunction(c)&&(c=c(e)),c||c!==!1&&uc(g))){const m=e.xsrfHeaderName&&e.xsrfCookieName&&ac.read(e.xsrfCookieName);m&&s.set(e.xsrfHeaderName,m)}i===void 0&&s.setContentType(null),"setRequestHeader"in d&&b.forEach(s.toJSON(),function(w,E){d.setRequestHeader(E,w)}),b.isUndefined(e.withCredentials)||(d.withCredentials=!!e.withCredentials),a&&a!=="json"&&(d.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&d.addEventListener("progress",xi(e.onDownloadProgress,!0)),typeof e.onUploadProgress=="function"&&d.upload&&d.upload.addEventListener("progress",xi(e.onUploadProgress)),(e.cancelToken||e.signal)&&(u=m=>{d&&(n(!m||m.type?new vr(null,e,d):m),d.abort(),d=null)},e.cancelToken&&e.cancelToken.subscribe(u),e.signal&&(e.signal.aborted?u():e.signal.addEventListener("abort",u)));const y=fc(g);if(y&&Pe.protocols.indexOf(y)===-1){n(new D("Unsupported protocol "+y+":",D.ERR_BAD_REQUEST,e));return}d.send(i||null)})},Bo={http:Bl,xhr:hc};b.forEach(Bo,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Ci=e=>`- ${e}`,yc=e=>b.isFunction(e)||e===null||e===!1,Bs={getAdapter:e=>{e=b.isArray(e)?e:[e];const{length:t}=e;let r,n;const i={};for(let s=0;s`adapter ${c} `+(u===!1?"is not supported by the environment":"is not available in the build"));let a=t?s.length>1?`since : -`+s.map(Ci).join(` -`):" "+Ci(s[0]):"as no adapter specified";throw new D("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return n},adapters:Bo};function wo(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new vr(null,e)}function Ri(e){return wo(e),e.headers=Le.from(e.headers),e.data=bo.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Bs.getAdapter(e.adapter||ri.adapter)(e).then(function(n){return wo(e),n.data=bo.call(e,e.transformResponse,n),n.headers=Le.from(n.headers),n},function(n){return js(n)||(wo(e),n&&n.response&&(n.response.data=bo.call(e,e.transformResponse,n.response),n.response.headers=Le.from(n.response.headers))),Promise.reject(n)})}const Ii=e=>e instanceof Le?{...e}:e;function Ct(e,t){t=t||{};const r={};function n(h,p,d){return b.isPlainObject(h)&&b.isPlainObject(p)?b.merge.call({caseless:d},h,p):b.isPlainObject(p)?b.merge({},p):b.isArray(p)?p.slice():p}function i(h,p,d){if(b.isUndefined(p)){if(!b.isUndefined(h))return n(void 0,h,d)}else return n(h,p,d)}function s(h,p){if(!b.isUndefined(p))return n(void 0,p)}function a(h,p){if(b.isUndefined(p)){if(!b.isUndefined(h))return n(void 0,h)}else return n(void 0,p)}function c(h,p,d){if(d in t)return n(h,p);if(d in e)return n(void 0,h)}const u={url:s,method:s,data:s,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:c,headers:(h,p)=>i(Ii(h),Ii(p),!0)};return b.forEach(Object.keys(Object.assign({},e,t)),function(p){const d=u[p]||i,g=d(e[p],t[p],p);b.isUndefined(g)&&d!==c||(r[p]=g)}),r}const Us="1.6.8",ni={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{ni[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});const Ni={};ni.transitional=function(t,r,n){function i(s,a){return"[Axios v"+Us+"] Transitional option '"+s+"'"+a+(n?". "+n:"")}return(s,a,c)=>{if(t===!1)throw new D(i(a," has been removed"+(r?" in "+r:"")),D.ERR_DEPRECATED);return r&&!Ni[a]&&(Ni[a]=!0,console.warn(i(a," has been deprecated since v"+r+" and will be removed in the near future"))),t?t(s,a,c):!0}};function gc(e,t,r){if(typeof e!="object")throw new D("options must be an object",D.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let i=n.length;for(;i-- >0;){const s=n[i],a=t[s];if(a){const c=e[s],u=c===void 0||a(c,s,e);if(u!==!0)throw new D("option "+s+" must be "+u,D.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new D("Unknown option "+s,D.ERR_BAD_OPTION)}}const Uo={assertOptions:gc,validators:ni},Ue=Uo.validators;class sn{constructor(t){this.defaults=t,this.interceptors={request:new Pi,response:new Pi}}async request(t,r){try{return await this._request(t,r)}catch(n){if(n instanceof Error){let i;Error.captureStackTrace?Error.captureStackTrace(i={}):i=new Error;const s=i.stack?i.stack.replace(/^.+\n/,""):"";n.stack?s&&!String(n.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(n.stack+=` -`+s):n.stack=s}throw n}}_request(t,r){typeof t=="string"?(r=r||{},r.url=t):r=t||{},r=Ct(this.defaults,r);const{transitional:n,paramsSerializer:i,headers:s}=r;n!==void 0&&Uo.assertOptions(n,{silentJSONParsing:Ue.transitional(Ue.boolean),forcedJSONParsing:Ue.transitional(Ue.boolean),clarifyTimeoutError:Ue.transitional(Ue.boolean)},!1),i!=null&&(b.isFunction(i)?r.paramsSerializer={serialize:i}:Uo.assertOptions(i,{encode:Ue.function,serialize:Ue.function},!0)),r.method=(r.method||this.defaults.method||"get").toLowerCase();let a=s&&b.merge(s.common,s[r.method]);s&&b.forEach(["delete","get","head","post","put","patch","common"],y=>{delete s[y]}),r.headers=Le.concat(a,s);const c=[];let u=!0;this.interceptors.request.forEach(function(m){typeof m.runWhen=="function"&&m.runWhen(r)===!1||(u=u&&m.synchronous,c.unshift(m.fulfilled,m.rejected))});const h=[];this.interceptors.response.forEach(function(m){h.push(m.fulfilled,m.rejected)});let p,d=0,g;if(!u){const y=[Ri.bind(this),void 0];for(y.unshift.apply(y,c),y.push.apply(y,h),g=y.length,p=Promise.resolve(r);d{if(!n._listeners)return;let s=n._listeners.length;for(;s-- >0;)n._listeners[s](i);n._listeners=null}),this.promise.then=i=>{let s;const a=new Promise(c=>{n.subscribe(c),s=c}).then(i);return a.cancel=function(){n.unsubscribe(s)},a},t(function(s,a,c){n.reason||(n.reason=new vr(s,a,c),r(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const r=this._listeners.indexOf(t);r!==-1&&this._listeners.splice(r,1)}static source(){let t;return{token:new oi(function(i){t=i}),cancel:t}}}const mc=oi;function vc(e){return function(r){return e.apply(null,r)}}function bc(e){return b.isObject(e)&&e.isAxiosError===!0}const ko={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(ko).forEach(([e,t])=>{ko[t]=e});const wc=ko;function ks(e){const t=new Zr(e),r=Ss(Zr.prototype.request,t);return b.extend(r,Zr.prototype,t,{allOwnKeys:!0}),b.extend(r,t,null,{allOwnKeys:!0}),r.create=function(i){return ks(Ct(e,i))},r}const V=ks(ri);V.Axios=Zr;V.CanceledError=vr;V.CancelToken=mc;V.isCancel=js;V.VERSION=Us;V.toFormData=wn;V.AxiosError=D;V.Cancel=V.CanceledError;V.all=function(t){return Promise.all(t)};V.spread=vc;V.isAxiosError=bc;V.mergeConfig=Ct;V.AxiosHeaders=Le;V.formToJSON=e=>Ls(b.isHTMLForm(e)?new FormData(e):e);V.getAdapter=Bs.getAdapter;V.HttpStatusCode=wc;V.default=V;var Te=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Hs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Sc(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var r=function n(){return this instanceof n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}),r}var Ac=function(t){return Ec(t)&&!Oc(t)};function Ec(e){return!!e&&typeof e=="object"}function Oc(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||Tc(e)}var _c=typeof Symbol=="function"&&Symbol.for,Pc=_c?Symbol.for("react.element"):60103;function Tc(e){return e.$$typeof===Pc}function xc(e){return Array.isArray(e)?[]:{}}function yr(e,t){return t.clone!==!1&&t.isMergeableObject(e)?Rt(xc(e),e,t):e}function Cc(e,t,r){return e.concat(t).map(function(n){return yr(n,r)})}function Rc(e,t){if(!t.customMerge)return Rt;var r=t.customMerge(e);return typeof r=="function"?r:Rt}function Ic(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function $i(e){return Object.keys(e).concat(Ic(e))}function qs(e,t){try{return t in e}catch{return!1}}function Nc(e,t){return qs(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function $c(e,t,r){var n={};return r.isMergeableObject(e)&&$i(e).forEach(function(i){n[i]=yr(e[i],r)}),$i(t).forEach(function(i){Nc(e,i)||(qs(e,i)&&r.isMergeableObject(t[i])?n[i]=Rc(i,r)(e[i],t[i],r):n[i]=yr(t[i],r))}),n}function Rt(e,t,r){r=r||{},r.arrayMerge=r.arrayMerge||Cc,r.isMergeableObject=r.isMergeableObject||Ac,r.cloneUnlessOtherwiseSpecified=yr;var n=Array.isArray(t),i=Array.isArray(e),s=n===i;return s?n?r.arrayMerge(e,t,r):$c(e,t,r):yr(t,r)}Rt.all=function(t,r){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(n,i){return Rt(n,i,r)},{})};var Fc=Rt,Dc=Fc;const Lc=Hs(Dc);var jc=Error,Mc=EvalError,Bc=RangeError,Uc=ReferenceError,Vs=SyntaxError,br=TypeError,kc=URIError,Hc=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var t={},r=Symbol("test"),n=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;var i=42;t[r]=i;for(r in t)return!1;if(typeof Object.keys=="function"&&Object.keys(t).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(t).length!==0)return!1;var s=Object.getOwnPropertySymbols(t);if(s.length!==1||s[0]!==r||!Object.prototype.propertyIsEnumerable.call(t,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var a=Object.getOwnPropertyDescriptor(t,r);if(a.value!==i||a.enumerable!==!0)return!1}return!0},Fi=typeof Symbol<"u"&&Symbol,qc=Hc,Vc=function(){return typeof Fi!="function"||typeof Symbol!="function"||typeof Fi("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:qc()},So={__proto__:null,foo:{}},Wc=Object,zc=function(){return{__proto__:So}.foo===So.foo&&!(So instanceof Wc)},Gc="Function.prototype.bind called on incompatible ",Kc=Object.prototype.toString,Jc=Math.max,Xc="[object Function]",Di=function(t,r){for(var n=[],i=0;i"u"||!K?$:K(Uint8Array),st={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?$:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?$:ArrayBuffer,"%ArrayIteratorPrototype%":wt&&K?K([][Symbol.iterator]()):$,"%AsyncFromSyncIteratorPrototype%":$,"%AsyncFunction%":Et,"%AsyncGenerator%":Et,"%AsyncGeneratorFunction%":Et,"%AsyncIteratorPrototype%":Et,"%Atomics%":typeof Atomics>"u"?$:Atomics,"%BigInt%":typeof BigInt>"u"?$:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?$:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?$:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?$:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":iu,"%eval%":eval,"%EvalError%":su,"%Float32Array%":typeof Float32Array>"u"?$:Float32Array,"%Float64Array%":typeof Float64Array>"u"?$:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?$:FinalizationRegistry,"%Function%":Ws,"%GeneratorFunction%":Et,"%Int8Array%":typeof Int8Array>"u"?$:Int8Array,"%Int16Array%":typeof Int16Array>"u"?$:Int16Array,"%Int32Array%":typeof Int32Array>"u"?$:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":wt&&K?K(K([][Symbol.iterator]())):$,"%JSON%":typeof JSON=="object"?JSON:$,"%Map%":typeof Map>"u"?$:Map,"%MapIteratorPrototype%":typeof Map>"u"||!wt||!K?$:K(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?$:Promise,"%Proxy%":typeof Proxy>"u"?$:Proxy,"%RangeError%":au,"%ReferenceError%":lu,"%Reflect%":typeof Reflect>"u"?$:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?$:Set,"%SetIteratorPrototype%":typeof Set>"u"||!wt||!K?$:K(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?$:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":wt&&K?K(""[Symbol.iterator]()):$,"%Symbol%":wt?Symbol:$,"%SyntaxError%":It,"%ThrowTypeError%":uu,"%TypedArray%":pu,"%TypeError%":Pt,"%Uint8Array%":typeof Uint8Array>"u"?$:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?$:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?$:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?$:Uint32Array,"%URIError%":cu,"%WeakMap%":typeof WeakMap>"u"?$:WeakMap,"%WeakRef%":typeof WeakRef>"u"?$:WeakRef,"%WeakSet%":typeof WeakSet>"u"?$:WeakSet};if(K)try{null.error}catch(e){var du=K(K(e));st["%Error.prototype%"]=du}var hu=function e(t){var r;if(t==="%AsyncFunction%")r=Ao("async function () {}");else if(t==="%GeneratorFunction%")r=Ao("function* () {}");else if(t==="%AsyncGeneratorFunction%")r=Ao("async function* () {}");else if(t==="%AsyncGenerator%"){var n=e("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if(t==="%AsyncIteratorPrototype%"){var i=e("%AsyncGenerator%");i&&K&&(r=K(i.prototype))}return st[t]=r,r},Li={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},wr=ii,an=ou,yu=wr.call(Function.call,Array.prototype.concat),gu=wr.call(Function.apply,Array.prototype.splice),ji=wr.call(Function.call,String.prototype.replace),ln=wr.call(Function.call,String.prototype.slice),mu=wr.call(Function.call,RegExp.prototype.exec),vu=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,bu=/\\(\\)?/g,wu=function(t){var r=ln(t,0,1),n=ln(t,-1);if(r==="%"&&n!=="%")throw new It("invalid intrinsic syntax, expected closing `%`");if(n==="%"&&r!=="%")throw new It("invalid intrinsic syntax, expected opening `%`");var i=[];return ji(t,vu,function(s,a,c,u){i[i.length]=c?ji(u,bu,"$1"):a||s}),i},Su=function(t,r){var n=t,i;if(an(Li,n)&&(i=Li[n],n="%"+i[0]+"%"),an(st,n)){var s=st[n];if(s===Et&&(s=hu(n)),typeof s>"u"&&!r)throw new Pt("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:i,name:n,value:s}}throw new It("intrinsic "+t+" does not exist!")},jt=function(t,r){if(typeof t!="string"||t.length===0)throw new Pt("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new Pt('"allowMissing" argument must be a boolean');if(mu(/^%?[^%]*%?$/,t)===null)throw new It("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=wu(t),i=n.length>0?n[0]:"",s=Su("%"+i+"%",r),a=s.name,c=s.value,u=!1,h=s.alias;h&&(i=h[0],gu(n,yu([0,1],h)));for(var p=1,d=!0;p=n.length){var m=it(c,g);d=!!m,d&&"get"in m&&!("originalValue"in m.get)?c=m.get:c=c[g]}else d=an(c,g),c=c[g];d&&!u&&(st[a]=c)}}return c},zs={exports:{}},Oo,Mi;function si(){if(Mi)return Oo;Mi=1;var e=jt,t=e("%Object.defineProperty%",!0)||!1;if(t)try{t({},"a",{value:1})}catch{t=!1}return Oo=t,Oo}var Au=jt,en=Au("%Object.getOwnPropertyDescriptor%",!0);if(en)try{en([],"length")}catch{en=null}var Gs=en,Bi=si(),Eu=Vs,St=br,Ui=Gs,Ou=function(t,r,n){if(!t||typeof t!="object"&&typeof t!="function")throw new St("`obj` must be an object or a function`");if(typeof r!="string"&&typeof r!="symbol")throw new St("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new St("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new St("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new St("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new St("`loose`, if provided, must be a boolean");var i=arguments.length>3?arguments[3]:null,s=arguments.length>4?arguments[4]:null,a=arguments.length>5?arguments[5]:null,c=arguments.length>6?arguments[6]:!1,u=!!Ui&&Ui(t,r);if(Bi)Bi(t,r,{configurable:a===null&&u?u.configurable:!a,enumerable:i===null&&u?u.enumerable:!i,value:n,writable:s===null&&u?u.writable:!s});else if(c||!i&&!s&&!a)t[r]=n;else throw new Eu("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},Ho=si(),Ks=function(){return!!Ho};Ks.hasArrayLengthDefineBug=function(){if(!Ho)return null;try{return Ho([],"length",{value:1}).length!==1}catch{return!0}};var _u=Ks,Pu=jt,ki=Ou,Tu=_u(),Hi=Gs,qi=br,xu=Pu("%Math.floor%"),Cu=function(t,r){if(typeof t!="function")throw new qi("`fn` is not a function");if(typeof r!="number"||r<0||r>4294967295||xu(r)!==r)throw new qi("`length` must be a positive 32-bit integer");var n=arguments.length>2&&!!arguments[2],i=!0,s=!0;if("length"in t&&Hi){var a=Hi(t,"length");a&&!a.configurable&&(i=!1),a&&!a.writable&&(s=!1)}return(i||s||!n)&&(Tu?ki(t,"length",r,!0,!0):ki(t,"length",r)),t};(function(e){var t=ii,r=jt,n=Cu,i=br,s=r("%Function.prototype.apply%"),a=r("%Function.prototype.call%"),c=r("%Reflect.apply%",!0)||t.call(a,s),u=si(),h=r("%Math.max%");e.exports=function(g){if(typeof g!="function")throw new i("a function is required");var S=c(t,a,arguments);return n(S,1+h(0,g.length-(arguments.length-1)),!0)};var p=function(){return c(t,s,arguments)};u?u(e.exports,"apply",{value:p}):e.exports.apply=p})(zs);var Ru=zs.exports,Js=jt,Xs=Ru,Iu=Xs(Js("String.prototype.indexOf")),Nu=function(t,r){var n=Js(t,!!r);return typeof n=="function"&&Iu(t,".prototype.")>-1?Xs(n):n};const $u=new Proxy({},{get(e,t){throw new Error(`Module "" has been externalized for browser compatibility. Cannot access ".${t}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)}}),Fu=Object.freeze(Object.defineProperty({__proto__:null,default:$u},Symbol.toStringTag,{value:"Module"})),Du=Sc(Fu);var ai=typeof Map=="function"&&Map.prototype,_o=Object.getOwnPropertyDescriptor&&ai?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,cn=ai&&_o&&typeof _o.get=="function"?_o.get:null,Vi=ai&&Map.prototype.forEach,li=typeof Set=="function"&&Set.prototype,Po=Object.getOwnPropertyDescriptor&&li?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,un=li&&Po&&typeof Po.get=="function"?Po.get:null,Wi=li&&Set.prototype.forEach,Lu=typeof WeakMap=="function"&&WeakMap.prototype,fr=Lu?WeakMap.prototype.has:null,ju=typeof WeakSet=="function"&&WeakSet.prototype,pr=ju?WeakSet.prototype.has:null,Mu=typeof WeakRef=="function"&&WeakRef.prototype,zi=Mu?WeakRef.prototype.deref:null,Bu=Boolean.prototype.valueOf,Uu=Object.prototype.toString,ku=Function.prototype.toString,Hu=String.prototype.match,ci=String.prototype.slice,He=String.prototype.replace,qu=String.prototype.toUpperCase,Gi=String.prototype.toLowerCase,Qs=RegExp.prototype.test,Ki=Array.prototype.concat,Oe=Array.prototype.join,Vu=Array.prototype.slice,Ji=Math.floor,qo=typeof BigInt=="function"?BigInt.prototype.valueOf:null,To=Object.getOwnPropertySymbols,Vo=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,Nt=typeof Symbol=="function"&&typeof Symbol.iterator=="object",ne=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===Nt||!0)?Symbol.toStringTag:null,Ys=Object.prototype.propertyIsEnumerable,Xi=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null);function Qi(e,t){if(e===1/0||e===-1/0||e!==e||e&&e>-1e3&&e<1e3||Qs.call(/e/,t))return t;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof e=="number"){var n=e<0?-Ji(-e):Ji(e);if(n!==e){var i=String(n),s=ci.call(t,i.length+1);return He.call(i,r,"$&_")+"."+He.call(He.call(s,/([0-9]{3})/g,"$&_"),/_$/,"")}}return He.call(t,r,"$&_")}var Wo=Du,Yi=Wo.custom,Zi=ea(Yi)?Yi:null,Wu=function e(t,r,n,i){var s=r||{};if(ke(s,"quoteStyle")&&s.quoteStyle!=="single"&&s.quoteStyle!=="double")throw new TypeError('option "quoteStyle" must be "single" or "double"');if(ke(s,"maxStringLength")&&(typeof s.maxStringLength=="number"?s.maxStringLength<0&&s.maxStringLength!==1/0:s.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var a=ke(s,"customInspect")?s.customInspect:!0;if(typeof a!="boolean"&&a!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(ke(s,"indent")&&s.indent!==null&&s.indent!==" "&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(ke(s,"numericSeparator")&&typeof s.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var c=s.numericSeparator;if(typeof t>"u")return"undefined";if(t===null)return"null";if(typeof t=="boolean")return t?"true":"false";if(typeof t=="string")return ra(t,s);if(typeof t=="number"){if(t===0)return 1/0/t>0?"0":"-0";var u=String(t);return c?Qi(t,u):u}if(typeof t=="bigint"){var h=String(t)+"n";return c?Qi(t,h):h}var p=typeof s.depth>"u"?5:s.depth;if(typeof n>"u"&&(n=0),n>=p&&p>0&&typeof t=="object")return zo(t)?"[Array]":"[Object]";var d=uf(s,n);if(typeof i>"u")i=[];else if(ta(i,t)>=0)return"[Circular]";function g(Y,le,ce){if(le&&(i=Vu.call(i),i.push(le)),ce){var Re={depth:s.depth};return ke(s,"quoteStyle")&&(Re.quoteStyle=s.quoteStyle),e(Y,Re,n+1,i)}return e(Y,s,n+1,i)}if(typeof t=="function"&&!es(t)){var S=ef(t),y=Kr(t,g);return"[Function"+(S?": "+S:" (anonymous)")+"]"+(y.length>0?" { "+Oe.call(y,", ")+" }":"")}if(ea(t)){var m=Nt?He.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):Vo.call(t);return typeof t=="object"&&!Nt?sr(m):m}if(af(t)){for(var w="<"+Gi.call(String(t.nodeName)),E=t.attributes||[],P=0;P",w}if(zo(t)){if(t.length===0)return"[]";var A=Kr(t,g);return d&&!cf(A)?"["+Go(A,d)+"]":"[ "+Oe.call(A,", ")+" ]"}if(Ku(t)){var T=Kr(t,g);return!("cause"in Error.prototype)&&"cause"in t&&!Ys.call(t,"cause")?"{ ["+String(t)+"] "+Oe.call(Ki.call("[cause]: "+g(t.cause),T),", ")+" }":T.length===0?"["+String(t)+"]":"{ ["+String(t)+"] "+Oe.call(T,", ")+" }"}if(typeof t=="object"&&a){if(Zi&&typeof t[Zi]=="function"&&Wo)return Wo(t,{depth:p-n});if(a!=="symbol"&&typeof t.inspect=="function")return t.inspect()}if(tf(t)){var M=[];return Vi&&Vi.call(t,function(Y,le){M.push(g(le,t,!0)+" => "+g(Y,t))}),ts("Map",cn.call(t),M,d)}if(of(t)){var O=[];return Wi&&Wi.call(t,function(Y){O.push(g(Y,t))}),ts("Set",un.call(t),O,d)}if(rf(t))return xo("WeakMap");if(sf(t))return xo("WeakSet");if(nf(t))return xo("WeakRef");if(Xu(t))return sr(g(Number(t)));if(Yu(t))return sr(g(qo.call(t)));if(Qu(t))return sr(Bu.call(t));if(Ju(t))return sr(g(String(t)));if(typeof window<"u"&&t===window)return"{ [object Window] }";if(t===Te)return"{ [object globalThis] }";if(!Gu(t)&&!es(t)){var x=Kr(t,g),C=Xi?Xi(t)===Object.prototype:t instanceof Object||t.constructor===Object,I=t instanceof Object?"":"null prototype",N=!C&&ne&&Object(t)===t&&ne in t?ci.call(Ge(t),8,-1):I?"Object":"",J=C||typeof t.constructor!="function"?"":t.constructor.name?t.constructor.name+" ":"",ie=J+(N||I?"["+Oe.call(Ki.call([],N||[],I||[]),": ")+"] ":"");return x.length===0?ie+"{}":d?ie+"{"+Go(x,d)+"}":ie+"{ "+Oe.call(x,", ")+" }"}return String(t)};function Zs(e,t,r){var n=(r.quoteStyle||t)==="double"?'"':"'";return n+e+n}function zu(e){return He.call(String(e),/"/g,""")}function zo(e){return Ge(e)==="[object Array]"&&(!ne||!(typeof e=="object"&&ne in e))}function Gu(e){return Ge(e)==="[object Date]"&&(!ne||!(typeof e=="object"&&ne in e))}function es(e){return Ge(e)==="[object RegExp]"&&(!ne||!(typeof e=="object"&&ne in e))}function Ku(e){return Ge(e)==="[object Error]"&&(!ne||!(typeof e=="object"&&ne in e))}function Ju(e){return Ge(e)==="[object String]"&&(!ne||!(typeof e=="object"&&ne in e))}function Xu(e){return Ge(e)==="[object Number]"&&(!ne||!(typeof e=="object"&&ne in e))}function Qu(e){return Ge(e)==="[object Boolean]"&&(!ne||!(typeof e=="object"&&ne in e))}function ea(e){if(Nt)return e&&typeof e=="object"&&e instanceof Symbol;if(typeof e=="symbol")return!0;if(!e||typeof e!="object"||!Vo)return!1;try{return Vo.call(e),!0}catch{}return!1}function Yu(e){if(!e||typeof e!="object"||!qo)return!1;try{return qo.call(e),!0}catch{}return!1}var Zu=Object.prototype.hasOwnProperty||function(e){return e in this};function ke(e,t){return Zu.call(e,t)}function Ge(e){return Uu.call(e)}function ef(e){if(e.name)return e.name;var t=Hu.call(ku.call(e),/^function\s*([\w$]+)/);return t?t[1]:null}function ta(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;rt.maxStringLength){var r=e.length-t.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return ra(ci.call(e,0,t.maxStringLength),t)+n}var i=He.call(He.call(e,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,lf);return Zs(i,"single",t)}function lf(e){var t=e.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return r?"\\"+r:"\\x"+(t<16?"0":"")+qu.call(t.toString(16))}function sr(e){return"Object("+e+")"}function xo(e){return e+" { ? }"}function ts(e,t,r,n){var i=n?Go(r,n):Oe.call(r,", ");return e+" ("+t+") {"+i+"}"}function cf(e){for(var t=0;t=0)return!1;return!0}function uf(e,t){var r;if(e.indent===" ")r=" ";else if(typeof e.indent=="number"&&e.indent>0)r=Oe.call(Array(e.indent+1)," ");else return null;return{base:r,prev:Oe.call(Array(t+1),r)}}function Go(e,t){if(e.length===0)return"";var r=` -`+t.prev+t.base;return r+Oe.call(e,","+r)+` -`+t.prev}function Kr(e,t){var r=zo(e),n=[];if(r){n.length=e.length;for(var i=0;i1;){var r=t.pop(),n=r.obj[r.prop];if(rt(n)){for(var i=[],s=0;s=Io?a.slice(u,u+Io):a,p=[],d=0;d=48&&g<=57||g>=65&&g<=90||g>=97&&g<=122||s===_f.RFC1738&&(g===40||g===41)){p[p.length]=h.charAt(d);continue}if(g<128){p[p.length]=Ae[g];continue}if(g<2048){p[p.length]=Ae[192|g>>6]+Ae[128|g&63];continue}if(g<55296||g>=57344){p[p.length]=Ae[224|g>>12]+Ae[128|g>>6&63]+Ae[128|g&63];continue}d+=1,g=65536+((g&1023)<<10|h.charCodeAt(d)&1023),p[p.length]=Ae[240|g>>18]+Ae[128|g>>12&63]+Ae[128|g>>6&63]+Ae[128|g&63]}c+=p.join("")}return c},If=function(t){for(var r=[{obj:{o:t},prop:"o"}],n=[],i=0;i"u"&&(M=0)}if(typeof p=="function"?A=p(r,A):A instanceof Date?A=S(A):n==="comma"&&Ee(A)&&(A=tn.maybeMap(A,function(j){return j instanceof Date?S(j):j})),A===null){if(a)return h&&!w?h(r,G.encoder,E,"key",y):r;A=""}if(Bf(A)||tn.isBuffer(A)){if(h){var C=w?r:h(r,G.encoder,E,"key",y);return[m(C)+"="+m(h(A,G.encoder,E,"value",y))]}return[m(r)+"="+m(String(A))]}var I=[];if(typeof A>"u")return I;var N;if(n==="comma"&&Ee(A))w&&h&&(A=tn.maybeMap(A,h)),N=[{value:A.length>0?A.join(",")||null:void 0}];else if(Ee(p))N=p;else{var J=Object.keys(A);N=d?J.sort(d):J}var ie=u?r.replace(/\./g,"%2E"):r,Y=i&&Ee(A)&&A.length===1?ie+"[]":ie;if(s&&Ee(A)&&A.length===0)return Y+"[]";for(var le=0;le"u"?t.encodeDotInKeys===!0?!0:G.allowDots:!!t.allowDots;return{addQueryPrefix:typeof t.addQueryPrefix=="boolean"?t.addQueryPrefix:G.addQueryPrefix,allowDots:c,allowEmptyArrays:typeof t.allowEmptyArrays=="boolean"?!!t.allowEmptyArrays:G.allowEmptyArrays,arrayFormat:a,charset:r,charsetSentinel:typeof t.charsetSentinel=="boolean"?t.charsetSentinel:G.charsetSentinel,commaRoundTrip:t.commaRoundTrip,delimiter:typeof t.delimiter>"u"?G.delimiter:t.delimiter,encode:typeof t.encode=="boolean"?t.encode:G.encode,encodeDotInKeys:typeof t.encodeDotInKeys=="boolean"?t.encodeDotInKeys:G.encodeDotInKeys,encoder:typeof t.encoder=="function"?t.encoder:G.encoder,encodeValuesOnly:typeof t.encodeValuesOnly=="boolean"?t.encodeValuesOnly:G.encodeValuesOnly,filter:s,format:n,formatter:i,serializeDate:typeof t.serializeDate=="function"?t.serializeDate:G.serializeDate,skipNulls:typeof t.skipNulls=="boolean"?t.skipNulls:G.skipNulls,sort:typeof t.sort=="function"?t.sort:null,strictNullHandling:typeof t.strictNullHandling=="boolean"?t.strictNullHandling:G.strictNullHandling}},Hf=function(e,t){var r=e,n=kf(t),i,s;typeof n.filter=="function"?(s=n.filter,r=s("",r)):Ee(n.filter)&&(s=n.filter,i=s);var a=[];if(typeof r!="object"||r===null)return"";var c=aa[n.arrayFormat],u=c==="comma"&&n.commaRoundTrip;i||(i=Object.keys(r)),n.sort&&i.sort(n.sort);for(var h=sa(),p=0;p0?S+g:""},$t=ia,Ko=Object.prototype.hasOwnProperty,qf=Array.isArray,q={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:$t.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},Vf=function(e){return e.replace(/&#(\d+);/g,function(t,r){return String.fromCharCode(parseInt(r,10))})},ca=function(e,t){return e&&typeof e=="string"&&t.comma&&e.indexOf(",")>-1?e.split(","):e},Wf="utf8=%26%2310003%3B",zf="utf8=%E2%9C%93",Gf=function(t,r){var n={__proto__:null},i=r.ignoreQueryPrefix?t.replace(/^\?/,""):t,s=r.parameterLimit===1/0?void 0:r.parameterLimit,a=i.split(r.delimiter,s),c=-1,u,h=r.charset;if(r.charsetSentinel)for(u=0;u-1&&(y=qf(y)?[y]:y);var m=Ko.call(n,S);m&&r.duplicates==="combine"?n[S]=$t.combine(n[S],y):(!m||r.duplicates==="last")&&(n[S]=y)}return n},Kf=function(e,t,r,n){for(var i=n?t:ca(t,r),s=e.length-1;s>=0;--s){var a,c=e[s];if(c==="[]"&&r.parseArrays)a=r.allowEmptyArrays&&i===""?[]:[].concat(i);else{a=r.plainObjects?Object.create(null):{};var u=c.charAt(0)==="["&&c.charAt(c.length-1)==="]"?c.slice(1,-1):c,h=r.decodeDotInKeys?u.replace(/%2E/g,"."):u,p=parseInt(h,10);!r.parseArrays&&h===""?a={0:i}:!isNaN(p)&&c!==h&&String(p)===h&&p>=0&&r.parseArrays&&p<=r.arrayLimit?(a=[],a[p]=i):h!=="__proto__"&&(a[h]=i)}i=a}return i},Jf=function(t,r,n,i){if(t){var s=n.allowDots?t.replace(/\.([^.[]+)/g,"[$1]"):t,a=/(\[[^[\]]*])/,c=/(\[[^[\]]*])/g,u=n.depth>0&&a.exec(s),h=u?s.slice(0,u.index):s,p=[];if(h){if(!n.plainObjects&&Ko.call(Object.prototype,h)&&!n.allowPrototypes)return;p.push(h)}for(var d=0;n.depth>0&&(u=c.exec(s))!==null&&d"u"?q.charset:t.charset,n=typeof t.duplicates>"u"?q.duplicates:t.duplicates;if(n!=="combine"&&n!=="first"&&n!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var i=typeof t.allowDots>"u"?t.decodeDotInKeys===!0?!0:q.allowDots:!!t.allowDots;return{allowDots:i,allowEmptyArrays:typeof t.allowEmptyArrays=="boolean"?!!t.allowEmptyArrays:q.allowEmptyArrays,allowPrototypes:typeof t.allowPrototypes=="boolean"?t.allowPrototypes:q.allowPrototypes,allowSparse:typeof t.allowSparse=="boolean"?t.allowSparse:q.allowSparse,arrayLimit:typeof t.arrayLimit=="number"?t.arrayLimit:q.arrayLimit,charset:r,charsetSentinel:typeof t.charsetSentinel=="boolean"?t.charsetSentinel:q.charsetSentinel,comma:typeof t.comma=="boolean"?t.comma:q.comma,decodeDotInKeys:typeof t.decodeDotInKeys=="boolean"?t.decodeDotInKeys:q.decodeDotInKeys,decoder:typeof t.decoder=="function"?t.decoder:q.decoder,delimiter:typeof t.delimiter=="string"||$t.isRegExp(t.delimiter)?t.delimiter:q.delimiter,depth:typeof t.depth=="number"||t.depth===!1?+t.depth:q.depth,duplicates:n,ignoreQueryPrefix:t.ignoreQueryPrefix===!0,interpretNumericEntities:typeof t.interpretNumericEntities=="boolean"?t.interpretNumericEntities:q.interpretNumericEntities,parameterLimit:typeof t.parameterLimit=="number"?t.parameterLimit:q.parameterLimit,parseArrays:t.parseArrays!==!1,plainObjects:typeof t.plainObjects=="boolean"?t.plainObjects:q.plainObjects,strictNullHandling:typeof t.strictNullHandling=="boolean"?t.strictNullHandling:q.strictNullHandling}},Qf=function(e,t){var r=Xf(t);if(e===""||e===null||typeof e>"u")return r.plainObjects?Object.create(null):{};for(var n=typeof e=="string"?Gf(e,r):e,i=r.plainObjects?Object.create(null):{},s=Object.keys(n),a=0;a
'};r.configure=function(y){var m,w;for(m in y)w=y[m],w!==void 0&&y.hasOwnProperty(m)&&(n[m]=w);return this},r.status=null,r.set=function(y){var m=r.isStarted();y=i(y,n.minimum,1),r.status=y===1?null:y;var w=r.render(!m),E=w.querySelector(n.barSelector),P=n.speed,A=n.easing;return w.offsetWidth,c(function(T){n.positionUsing===""&&(n.positionUsing=r.getPositioningCSS()),u(E,a(y,P,A)),y===1?(u(w,{transition:"none",opacity:1}),w.offsetWidth,setTimeout(function(){u(w,{transition:"all "+P+"ms linear",opacity:0}),setTimeout(function(){r.remove(),T()},P)},P)):setTimeout(T,P)}),this},r.isStarted=function(){return typeof r.status=="number"},r.start=function(){r.status||r.set(0);var y=function(){setTimeout(function(){r.status&&(r.trickle(),y())},n.trickleSpeed)};return n.trickle&&y(),this},r.done=function(y){return!y&&!r.status?this:r.inc(.3+.5*Math.random()).set(1)},r.inc=function(y){var m=r.status;return m?(typeof y!="number"&&(y=(1-m)*i(Math.random()*m,.1,.95)),m=i(m+y,0,.994),r.set(m)):r.start()},r.trickle=function(){return r.inc(Math.random()*n.trickleRate)},function(){var y=0,m=0;r.promise=function(w){return!w||w.state()==="resolved"?this:(m===0&&r.start(),y++,m++,w.always(function(){m--,m===0?(y=0,r.done()):r.set((y-m)/y)}),this)}}(),r.render=function(y){if(r.isRendered())return document.getElementById("nprogress");p(document.documentElement,"nprogress-busy");var m=document.createElement("div");m.id="nprogress",m.innerHTML=n.template;var w=m.querySelector(n.barSelector),E=y?"-100":s(r.status||0),P=document.querySelector(n.parent),A;return u(w,{transition:"all 0 linear",transform:"translate3d("+E+"%,0,0)"}),n.showSpinner||(A=m.querySelector(n.spinnerSelector),A&&S(A)),P!=document.body&&p(P,"nprogress-custom-parent"),P.appendChild(m),m},r.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(n.parent),"nprogress-custom-parent");var y=document.getElementById("nprogress");y&&S(y)},r.isRendered=function(){return!!document.getElementById("nprogress")},r.getPositioningCSS=function(){var y=document.body.style,m="WebkitTransform"in y?"Webkit":"MozTransform"in y?"Moz":"msTransform"in y?"ms":"OTransform"in y?"O":"";return m+"Perspective"in y?"translate3d":m+"Transform"in y?"translate":"margin"};function i(y,m,w){return yw?w:y}function s(y){return(-1+y)*100}function a(y,m,w){var E;return n.positionUsing==="translate3d"?E={transform:"translate3d("+s(y)+"%,0,0)"}:n.positionUsing==="translate"?E={transform:"translate("+s(y)+"%,0)"}:E={"margin-left":s(y)+"%"},E.transition="all "+m+"ms "+w,E}var c=function(){var y=[];function m(){var w=y.shift();w&&w(m)}return function(w){y.push(w),y.length==1&&m()}}(),u=function(){var y=["Webkit","O","Moz","ms"],m={};function w(T){return T.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(M,O){return O.toUpperCase()})}function E(T){var M=document.body.style;if(T in M)return T;for(var O=y.length,x=T.charAt(0).toUpperCase()+T.slice(1),C;O--;)if(C=y[O]+x,C in M)return C;return T}function P(T){return T=w(T),m[T]||(m[T]=E(T))}function A(T,M,O){M=P(M),T.style[M]=O}return function(T,M){var O=arguments,x,C;if(O.length==2)for(x in M)C=M[x],C!==void 0&&M.hasOwnProperty(x)&&A(T,x,C);else A(T,O[1],O[2])}}();function h(y,m){var w=typeof y=="string"?y:g(y);return w.indexOf(" "+m+" ")>=0}function p(y,m){var w=g(y),E=w+m;h(w,m)||(y.className=E.substring(1))}function d(y,m){var w=g(y),E;h(y,m)&&(E=w.replace(" "+m+" "," "),y.className=E.substring(1,E.length-1))}function g(y){return(" "+(y.className||"")+" ").replace(/\s+/gi," ")}function S(y){y&&y.parentNode&&y.parentNode.removeChild(y)}return r})})(ua);var tp=ua.exports;const _e=Hs(tp);function rp(e,t){let r;return function(...n){clearTimeout(r),r=setTimeout(()=>e.apply(this,n),t)}}function je(e,t){return document.dispatchEvent(new CustomEvent(`inertia:${e}`,t))}var np=e=>je("before",{cancelable:!0,detail:{visit:e}}),op=e=>je("error",{detail:{errors:e}}),ip=e=>je("exception",{cancelable:!0,detail:{exception:e}}),os=e=>je("finish",{detail:{visit:e}}),sp=e=>je("invalid",{cancelable:!0,detail:{response:e}}),ar=e=>je("navigate",{detail:{page:e}}),ap=e=>je("progress",{detail:{progress:e}}),lp=e=>je("start",{detail:{visit:e}}),cp=e=>je("success",{detail:{page:e}});function Jo(e){return e instanceof File||e instanceof Blob||e instanceof FileList&&e.length>0||e instanceof FormData&&Array.from(e.values()).some(t=>Jo(t))||typeof e=="object"&&e!==null&&Object.values(e).some(t=>Jo(t))}function fa(e,t=new FormData,r=null){e=e||{};for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&da(t,pa(r,n),e[n]);return t}function pa(e,t){return e?e+"["+t+"]":t}function da(e,t,r){if(Array.isArray(r))return Array.from(r.keys()).forEach(n=>da(e,pa(t,n.toString()),r[n]));if(r instanceof Date)return e.append(t,r.toISOString());if(r instanceof File)return e.append(t,r,r.name);if(r instanceof Blob)return e.append(t,r);if(typeof r=="boolean")return e.append(t,r?"1":"0");if(typeof r=="string")return e.append(t,r);if(typeof r=="number")return e.append(t,`${r}`);if(r==null)return e.append(t,"");fa(r,e,t)}var up={modal:null,listener:null,show(e){typeof e=="object"&&(e=`All Inertia requests must receive a valid Inertia response, however a plain JSON response was received.
${JSON.stringify(e)}`);let t=document.createElement("html");t.innerHTML=e,t.querySelectorAll("a").forEach(n=>n.setAttribute("target","_top")),this.modal=document.createElement("div"),this.modal.style.position="fixed",this.modal.style.width="100vw",this.modal.style.height="100vh",this.modal.style.padding="50px",this.modal.style.boxSizing="border-box",this.modal.style.backgroundColor="rgba(0, 0, 0, .6)",this.modal.style.zIndex=2e5,this.modal.addEventListener("click",()=>this.hide());let r=document.createElement("iframe");if(r.style.backgroundColor="white",r.style.borderRadius="5px",r.style.width="100%",r.style.height="100%",this.modal.appendChild(r),document.body.prepend(this.modal),document.body.style.overflow="hidden",!r.contentWindow)throw new Error("iframe not yet ready.");r.contentWindow.document.open(),r.contentWindow.document.write(t.outerHTML),r.contentWindow.document.close(),this.listener=this.hideOnEscape.bind(this),document.addEventListener("keydown",this.listener)},hide(){this.modal.outerHTML="",this.modal=null,document.body.style.overflow="visible",document.removeEventListener("keydown",this.listener)},hideOnEscape(e){e.keyCode===27&&this.hide()}};function At(e){return new URL(e.toString(),window.location.toString())}function fp(e,t,r,n="brackets"){let i=/^https?:\/\//.test(t.toString()),s=i||t.toString().startsWith("/"),a=!s&&!t.toString().startsWith("#")&&!t.toString().startsWith("?"),c=t.toString().includes("?")||e==="get"&&Object.keys(r).length,u=t.toString().includes("#"),h=new URL(t.toString(),"http://localhost");return e==="get"&&Object.keys(r).length&&(h.search=ns.stringify(Lc(ns.parse(h.search,{ignoreQueryPrefix:!0}),r),{encodeValuesOnly:!0,arrayFormat:n}),r={}),[[i?`${h.protocol}//${h.host}`:"",s?h.pathname:"",a?h.pathname.substring(1):"",c?h.search:"",u?h.hash:""].join(""),r]}function lr(e){return e=new URL(e.href),e.hash="",e}var is=typeof window>"u",pp=class{constructor(){this.visitId=null}init({initialPage:e,resolveComponent:t,swapComponent:r}){this.page=e,this.resolveComponent=t,this.swapComponent=r,this.setNavigationType(),this.clearRememberedStateOnReload(),this.isBackForwardVisit()?this.handleBackForwardVisit(this.page):this.isLocationVisit()?this.handleLocationVisit(this.page):this.handleInitialPageVisit(this.page),this.setupEventListeners()}setNavigationType(){this.navigationType=window.performance&&window.performance.getEntriesByType("navigation").length>0?window.performance.getEntriesByType("navigation")[0].type:"navigate"}clearRememberedStateOnReload(){var e;this.navigationType==="reload"&&((e=window.history.state)!=null&&e.rememberedState)&&delete window.history.state.rememberedState}handleInitialPageVisit(e){this.page.url+=window.location.hash,this.setPage(e,{preserveState:!0}).then(()=>ar(e))}setupEventListeners(){window.addEventListener("popstate",this.handlePopstateEvent.bind(this)),document.addEventListener("scroll",rp(this.handleScrollEvent.bind(this),100),!0)}scrollRegions(){return document.querySelectorAll("[scroll-region]")}handleScrollEvent(e){typeof e.target.hasAttribute=="function"&&e.target.hasAttribute("scroll-region")&&this.saveScrollPositions()}saveScrollPositions(){this.replaceState({...this.page,scrollRegions:Array.from(this.scrollRegions()).map(e=>({top:e.scrollTop,left:e.scrollLeft}))})}resetScrollPositions(){window.scrollTo(0,0),this.scrollRegions().forEach(e=>{typeof e.scrollTo=="function"?e.scrollTo(0,0):(e.scrollTop=0,e.scrollLeft=0)}),this.saveScrollPositions(),window.location.hash&&setTimeout(()=>{var e;return(e=document.getElementById(window.location.hash.slice(1)))==null?void 0:e.scrollIntoView()})}restoreScrollPositions(){this.page.scrollRegions&&this.scrollRegions().forEach((e,t)=>{let r=this.page.scrollRegions[t];if(r)typeof e.scrollTo=="function"?e.scrollTo(r.left,r.top):(e.scrollTop=r.top,e.scrollLeft=r.left);else return})}isBackForwardVisit(){return window.history.state&&this.navigationType==="back_forward"}handleBackForwardVisit(e){window.history.state.version=e.version,this.setPage(window.history.state,{preserveScroll:!0,preserveState:!0}).then(()=>{this.restoreScrollPositions(),ar(e)})}locationVisit(e,t){try{let r={preserveScroll:t};window.sessionStorage.setItem("inertiaLocationVisit",JSON.stringify(r)),window.location.href=e.href,lr(window.location).href===lr(e).href&&window.location.reload()}catch{return!1}}isLocationVisit(){try{return window.sessionStorage.getItem("inertiaLocationVisit")!==null}catch{return!1}}handleLocationVisit(e){var r,n;let t=JSON.parse(window.sessionStorage.getItem("inertiaLocationVisit")||"");window.sessionStorage.removeItem("inertiaLocationVisit"),e.url+=window.location.hash,e.rememberedState=((r=window.history.state)==null?void 0:r.rememberedState)??{},e.scrollRegions=((n=window.history.state)==null?void 0:n.scrollRegions)??[],this.setPage(e,{preserveScroll:t.preserveScroll,preserveState:!0}).then(()=>{t.preserveScroll&&this.restoreScrollPositions(),ar(e)})}isLocationVisitResponse(e){return!!(e&&e.status===409&&e.headers["x-inertia-location"])}isInertiaResponse(e){return!!(e!=null&&e.headers["x-inertia"])}createVisitId(){return this.visitId={},this.visitId}cancelVisit(e,{cancelled:t=!1,interrupted:r=!1}){e&&!e.completed&&!e.cancelled&&!e.interrupted&&(e.cancelToken.abort(),e.onCancel(),e.completed=!1,e.cancelled=t,e.interrupted=r,os(e),e.onFinish(e))}finishVisit(e){!e.cancelled&&!e.interrupted&&(e.completed=!0,e.cancelled=!1,e.interrupted=!1,os(e),e.onFinish(e))}resolvePreserveOption(e,t){return typeof e=="function"?e(t):e==="errors"?Object.keys(t.props.errors||{}).length>0:e}cancel(){this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}visit(e,{method:t="get",data:r={},replace:n=!1,preserveScroll:i=!1,preserveState:s=!1,only:a=[],headers:c={},errorBag:u="",forceFormData:h=!1,onCancelToken:p=()=>{},onBefore:d=()=>{},onStart:g=()=>{},onProgress:S=()=>{},onFinish:y=()=>{},onCancel:m=()=>{},onSuccess:w=()=>{},onError:E=()=>{},queryStringArrayFormat:P="brackets"}={}){let A=typeof e=="string"?At(e):e;if((Jo(r)||h)&&!(r instanceof FormData)&&(r=fa(r)),!(r instanceof FormData)){let[O,x]=fp(t,A,r,P);A=At(O),r=x}let T={url:A,method:t,data:r,replace:n,preserveScroll:i,preserveState:s,only:a,headers:c,errorBag:u,forceFormData:h,queryStringArrayFormat:P,cancelled:!1,completed:!1,interrupted:!1};if(d(T)===!1||!np(T))return;this.activeVisit&&this.cancelVisit(this.activeVisit,{interrupted:!0}),this.saveScrollPositions();let M=this.createVisitId();this.activeVisit={...T,onCancelToken:p,onBefore:d,onStart:g,onProgress:S,onFinish:y,onCancel:m,onSuccess:w,onError:E,queryStringArrayFormat:P,cancelToken:new AbortController},p({cancel:()=>{this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}}),lp(T),g(T),V({method:t,url:lr(A).href,data:t==="get"?{}:r,params:t==="get"?r:{},signal:this.activeVisit.cancelToken.signal,headers:{...c,Accept:"text/html, application/xhtml+xml","X-Requested-With":"XMLHttpRequest","X-Inertia":!0,...a.length?{"X-Inertia-Partial-Component":this.page.component,"X-Inertia-Partial-Data":a.join(",")}:{},...u&&u.length?{"X-Inertia-Error-Bag":u}:{},...this.page.version?{"X-Inertia-Version":this.page.version}:{}},onUploadProgress:O=>{r instanceof FormData&&(O.percentage=O.progress?Math.round(O.progress*100):0,ap(O),S(O))}}).then(O=>{var N;if(!this.isInertiaResponse(O))return Promise.reject({response:O});let x=O.data;a.length&&x.component===this.page.component&&(x.props={...this.page.props,...x.props}),i=this.resolvePreserveOption(i,x),s=this.resolvePreserveOption(s,x),s&&((N=window.history.state)!=null&&N.rememberedState)&&x.component===this.page.component&&(x.rememberedState=window.history.state.rememberedState);let C=A,I=At(x.url);return C.hash&&!I.hash&&lr(C).href===I.href&&(I.hash=C.hash,x.url=I.href),this.setPage(x,{visitId:M,replace:n,preserveScroll:i,preserveState:s})}).then(()=>{let O=this.page.props.errors||{};if(Object.keys(O).length>0){let x=u?O[u]?O[u]:{}:O;return op(x),E(x)}return cp(this.page),w(this.page)}).catch(O=>{if(this.isInertiaResponse(O.response))return this.setPage(O.response.data,{visitId:M});if(this.isLocationVisitResponse(O.response)){let x=At(O.response.headers["x-inertia-location"]),C=A;C.hash&&!x.hash&&lr(C).href===x.href&&(x.hash=C.hash),this.locationVisit(x,i===!0)}else if(O.response)sp(O.response)&&up.show(O.response.data);else return Promise.reject(O)}).then(()=>{this.activeVisit&&this.finishVisit(this.activeVisit)}).catch(O=>{if(!V.isCancel(O)){let x=ip(O);if(this.activeVisit&&this.finishVisit(this.activeVisit),x)return Promise.reject(O)}})}setPage(e,{visitId:t=this.createVisitId(),replace:r=!1,preserveScroll:n=!1,preserveState:i=!1}={}){return Promise.resolve(this.resolveComponent(e.component)).then(s=>{t===this.visitId&&(e.scrollRegions=e.scrollRegions||[],e.rememberedState=e.rememberedState||{},r=r||At(e.url).href===window.location.href,r?this.replaceState(e):this.pushState(e),this.swapComponent({component:s,page:e,preserveState:i}).then(()=>{n||this.resetScrollPositions(),r||ar(e)}))})}pushState(e){this.page=e,window.history.pushState(e,"",e.url)}replaceState(e){this.page=e,window.history.replaceState(e,"",e.url)}handlePopstateEvent(e){if(e.state!==null){let t=e.state,r=this.createVisitId();Promise.resolve(this.resolveComponent(t.component)).then(n=>{r===this.visitId&&(this.page=t,this.swapComponent({component:n,page:t,preserveState:!1}).then(()=>{this.restoreScrollPositions(),ar(t)}))})}else{let t=At(this.page.url);t.hash=window.location.hash,this.replaceState({...this.page,url:t.href}),this.resetScrollPositions()}}get(e,t={},r={}){return this.visit(e,{...r,method:"get",data:t})}reload(e={}){return this.visit(window.location.href,{...e,preserveScroll:!0,preserveState:!0})}replace(e,t={}){return console.warn(`Inertia.replace() has been deprecated and will be removed in a future release. Please use Inertia.${t.method??"get"}() instead.`),this.visit(e,{preserveState:!0,...t,replace:!0})}post(e,t={},r={}){return this.visit(e,{preserveState:!0,...r,method:"post",data:t})}put(e,t={},r={}){return this.visit(e,{preserveState:!0,...r,method:"put",data:t})}patch(e,t={},r={}){return this.visit(e,{preserveState:!0,...r,method:"patch",data:t})}delete(e,t={}){return this.visit(e,{preserveState:!0,...t,method:"delete"})}remember(e,t="default"){var r;is||this.replaceState({...this.page,rememberedState:{...(r=this.page)==null?void 0:r.rememberedState,[t]:e}})}restore(e="default"){var t,r;if(!is)return(r=(t=window.history.state)==null?void 0:t.rememberedState)==null?void 0:r[e]}on(e,t){let r=n=>{let i=t(n);n.cancelable&&!n.defaultPrevented&&i===!1&&n.preventDefault()};return document.addEventListener(`inertia:${e}`,r),()=>document.removeEventListener(`inertia:${e}`,r)}},ha=null;function dp(e){document.addEventListener("inertia:start",hp.bind(null,e)),document.addEventListener("inertia:progress",yp),document.addEventListener("inertia:finish",gp)}function hp(e){ha=setTimeout(()=>_e.start(),e)}function yp(e){var t;_e.isStarted()&&((t=e.detail.progress)!=null&&t.percentage)&&_e.set(Math.max(_e.status,e.detail.progress.percentage/100*.9))}function gp(e){if(clearTimeout(ha),_e.isStarted())e.detail.visit.completed?_e.done():e.detail.visit.interrupted?_e.set(0):e.detail.visit.cancelled&&(_e.done(),_e.remove());else return}function mp(e){let t=document.createElement("style");t.type="text/css",t.textContent=` - #nprogress { - pointer-events: none; - } - - #nprogress .bar { - background: ${e}; - - position: fixed; - z-index: 1031; - top: 0; - left: 0; - - width: 100%; - height: 2px; - } - - #nprogress .peg { - display: block; - position: absolute; - right: 0px; - width: 100px; - height: 100%; - box-shadow: 0 0 10px ${e}, 0 0 5px ${e}; - opacity: 1.0; - - -webkit-transform: rotate(3deg) translate(0px, -4px); - -ms-transform: rotate(3deg) translate(0px, -4px); - transform: rotate(3deg) translate(0px, -4px); - } - - #nprogress .spinner { - display: block; - position: fixed; - z-index: 1031; - top: 15px; - right: 15px; - } - - #nprogress .spinner-icon { - width: 18px; - height: 18px; - box-sizing: border-box; - - border: solid 2px transparent; - border-top-color: ${e}; - border-left-color: ${e}; - border-radius: 50%; - - -webkit-animation: nprogress-spinner 400ms linear infinite; - animation: nprogress-spinner 400ms linear infinite; - } - - .nprogress-custom-parent { - overflow: hidden; - position: relative; - } - - .nprogress-custom-parent #nprogress .spinner, - .nprogress-custom-parent #nprogress .bar { - position: absolute; - } - - @-webkit-keyframes nprogress-spinner { - 0% { -webkit-transform: rotate(0deg); } - 100% { -webkit-transform: rotate(360deg); } - } - @keyframes nprogress-spinner { - 0% { transform: rotate(0deg); } - 100% { transform: rotate(360deg); } - } - `,document.head.appendChild(t)}function vp({delay:e=250,color:t="#29d",includeCSS:r=!0,showSpinner:n=!1}={}){dp(e),_e.configure({showSpinner:n}),r&&mp(t)}var bp=new pp;const wp=fs(),Sp=["title","meta"],ss=[],as=["name","http-equiv","content","charset","media"].concat(["property"]),ls=(e,t)=>{const r=Object.fromEntries(Object.entries(e.props).filter(([n])=>t.includes(n)).sort());return(Object.hasOwn(r,"name")||Object.hasOwn(r,"property"))&&(r.name=r.name||r.property,delete r.property),e.tag+JSON.stringify(r)};function Ap(){{const r=document.head.querySelectorAll("[data-sm]");Array.prototype.forEach.call(r,n=>n.parentNode.removeChild(n))}const e=new Map;function t(r){if(r.ref)return r.ref;let n=document.querySelector(`[data-sm="${r.id}"]`);return n?(n.tagName.toLowerCase()!==r.tag&&(n.parentNode&&n.parentNode.removeChild(n),n=document.createElement(r.tag)),n.removeAttribute("data-sm")):n=document.createElement(r.tag),n}return{addTag(r){if(Sp.indexOf(r.tag)!==-1){const s=r.tag==="title"?ss:as,a=ls(r,s);e.has(a)||e.set(a,[]);let c=e.get(a),u=c.length;c=[...c,r],e.set(a,c);let h=t(r);r.ref=h,vi(h,r.props);let p=null;for(var n=u-1;n>=0;n--)if(c[n]!=null){p=c[n];break}return h.parentNode!=document.head&&document.head.appendChild(h),p&&p.ref&&document.head.removeChild(p.ref),u}let i=t(r);return r.ref=i,vi(i,r.props),i.parentNode!=document.head&&document.head.appendChild(i),-1},removeTag(r,n){const i=r.tag==="title"?ss:as,s=ls(r,i);if(r.ref){const a=e.get(s);if(a){if(r.ref.parentNode){r.ref.parentNode.removeChild(r.ref);for(let c=n-1;c>=0;c--)a[c]!=null&&document.head.appendChild(a[c].ref)}a[n]=null,e.set(s,a)}else r.ref.parentNode&&r.ref.parentNode.removeChild(r.ref)}}}}const Ep=e=>{const t=Ap();return _t(wp.Provider,{value:t,get children(){return e.children}})},Xo=Symbol("store-raw"),Tt=Symbol("store-node"),De=Symbol("store-has"),ya=Symbol("store-self");function ga(e){let t=e[xe];if(!t&&(Object.defineProperty(e,xe,{value:t=new Proxy(e,Pp)}),!Array.isArray(e))){const r=Object.keys(e),n=Object.getOwnPropertyDescriptors(e);for(let i=0,s=r.length;ie[xe][t]),r}function ma(e){$o()&&gr(fn(e,Tt),ya)()}function _p(e){return ma(e),Reflect.ownKeys(e)}const Pp={get(e,t,r){if(t===Xo)return e;if(t===xe)return r;if(t===hi)return ma(e),r;const n=fn(e,Tt),i=n[t];let s=i?i():e[t];if(t===Tt||t===De||t==="__proto__")return s;if(!i){const a=Object.getOwnPropertyDescriptor(e,t);$o()&&(typeof s!="function"||e.hasOwnProperty(t))&&!(a&&a.get)&&(s=gr(n,t,s)())}return We(s)?ga(s):s},has(e,t){return t===Xo||t===xe||t===hi||t===Tt||t===De||t==="__proto__"?!0:($o()&&gr(fn(e,De),t)(),t in e)},set(){return console.warn("Cannot mutate a Store directly"),!0},deleteProperty(){return console.warn("Cannot mutate a Store directly"),!0},ownKeys:_p,getOwnPropertyDescriptor:Op};function fe(e,t,r,n=!1){if(!n&&e[t]===r)return;const i=e[t],s=e.length;r===void 0?(delete e[t],e[De]&&e[De][t]&&i!==void 0&&e[De][t].$()):(e[t]=r,e[De]&&e[De][t]&&i===void 0&&e[De][t].$());let a=fn(e,Tt),c;if((c=gr(a,t,i))&&c.$(()=>r),Array.isArray(e)&&e.length!==s){for(let u=e.length;u1){n=t.shift();const a=typeof n,c=Array.isArray(e);if(Array.isArray(n)){for(let u=0;u1){ur(e[n],t,[n].concat(r));return}i=e[n],r=[n].concat(r)}let s=t[0];typeof s=="function"&&(s=s(i,r),s===i)||n===void 0&&s==null||(s=Ft(s),n===void 0||We(i)&&We(s)&&!Array.isArray(s)?va(i,s):fe(e,n,s))}function xp(...[e,t]){const r=Ft(e||{}),n=Array.isArray(r);if(typeof r!="object"&&typeof r!="function")throw new Error(`Unexpected type ${typeof r} received when initializing 'createStore'. Expected an object.`);const i=ga(r);Ma.registerGraph({value:r,name:t&&t.name});function s(...a){Ca(()=>{n&&a.length===1?Tp(r,a[0]):ur(r,a)})}return[i,s]}const Qo=Symbol("store-root");function Ot(e,t,r,n,i){const s=t[r];if(e===s)return;const a=Array.isArray(e);if(r!==Qo&&(!We(e)||!We(s)||a!==Array.isArray(s)||i&&e[i]!==s[i])){fe(t,r,e);return}if(a){if(e.length&&s.length&&(!n||i&&e[0]&&e[0][i]!=null)){let h,p,d,g,S,y,m,w;for(d=0,g=Math.min(s.length,e.length);d=d&&S>=d&&(s[g]===e[S]||i&&s[d]&&e[d]&&s[g][i]===e[S][i]);g--,S--)E[S]=s[g];if(d>S||d>g){for(p=d;p<=S;p++)fe(s,p,e[p]);for(;pe.length&&fe(s,"length",e.length);return}for(m=new Array(S+1),p=S;p>=d;p--)y=e[p],w=i&&y?y[i]:y,h=P.get(w),m[p]=h===void 0?-1:h,P.set(w,p);for(h=d;h<=g;h++)y=s[h],w=i&&y?y[i]:y,p=P.get(w),p!==void 0&&p!==-1&&(E[p]=s[h],p=m[p],P.set(w,p));for(p=d;pe.length&&fe(s,"length",e.length);return}const c=Object.keys(e);for(let h=0,p=c.length;h{if(!We(s)||!We(i))return i;const a=Ot(i,{[Qo]:s},Qo,r,n);return a===void 0?s:a}}var pn={exports:{}};pn.exports;(function(e,t){var r=200,n="__lodash_hash_undefined__",i=9007199254740991,s="[object Arguments]",a="[object Array]",c="[object Boolean]",u="[object Date]",h="[object Error]",p="[object Function]",d="[object GeneratorFunction]",g="[object Map]",S="[object Number]",y="[object Object]",m="[object Promise]",w="[object RegExp]",E="[object Set]",P="[object String]",A="[object Symbol]",T="[object WeakMap]",M="[object ArrayBuffer]",O="[object DataView]",x="[object Float32Array]",C="[object Float64Array]",I="[object Int8Array]",N="[object Int16Array]",J="[object Int32Array]",ie="[object Uint8Array]",Y="[object Uint8ClampedArray]",le="[object Uint16Array]",ce="[object Uint32Array]",Re=/[\\^$.*+?()[\]{}|]/g,Ke=/\w*$/,Bt=/^\[object .+?Constructor\]$/,at=/^(?:0|[1-9]\d*)$/,j={};j[s]=j[a]=j[M]=j[O]=j[c]=j[u]=j[x]=j[C]=j[I]=j[N]=j[J]=j[g]=j[S]=j[y]=j[w]=j[E]=j[P]=j[A]=j[ie]=j[Y]=j[le]=j[ce]=!0,j[h]=j[p]=j[T]=!1;var An=typeof Te=="object"&&Te&&Te.Object===Object&&Te,En=typeof self=="object"&&self&&self.Object===Object&&self,he=An||En||Function("return this")(),Sr=t&&!t.nodeType&&t,U=Sr&&!0&&e&&!e.nodeType&&e,Ar=U&&U.exports===Sr;function On(o,l){return o.set(l[0],l[1]),o}function ye(o,l){return o.add(l),o}function Er(o,l){for(var f=-1,v=o?o.length:0;++f-1}function Ln(o,l){var f=this.__data__,v=yt(f,o);return v<0?f.push([o,l]):f[v][1]=l,this}X.prototype.clear=Nn,X.prototype.delete=$n,X.prototype.get=Fn,X.prototype.has=Dn,X.prototype.set=Ln;function Z(o){var l=-1,f=o?o.length:0;for(this.clear();++l-1&&o%1==0&&o-1&&o%1==0&&o<=i}function Se(o){var l=typeof o;return!!o&&(l=="object"||l=="function")}function qr(o){return!!o&&typeof o=="object"}function or(o){return vt(o)?ht(o):Qn(o)}function uo(){return[]}function fo(){return!1}e.exports=Br})(pn,pn.exports);pn.exports;var dn={exports:{}};dn.exports;(function(e,t){var r=200,n="__lodash_hash_undefined__",i=1,s=2,a=9007199254740991,c="[object Arguments]",u="[object Array]",h="[object AsyncFunction]",p="[object Boolean]",d="[object Date]",g="[object Error]",S="[object Function]",y="[object GeneratorFunction]",m="[object Map]",w="[object Number]",E="[object Null]",P="[object Object]",A="[object Promise]",T="[object Proxy]",M="[object RegExp]",O="[object Set]",x="[object String]",C="[object Symbol]",I="[object Undefined]",N="[object WeakMap]",J="[object ArrayBuffer]",ie="[object DataView]",Y="[object Float32Array]",le="[object Float64Array]",ce="[object Int8Array]",Re="[object Int16Array]",Ke="[object Int32Array]",Bt="[object Uint8Array]",at="[object Uint8ClampedArray]",j="[object Uint16Array]",An="[object Uint32Array]",En=/[\\^$.*+?()[\]{}|]/g,he=/^\[object .+?Constructor\]$/,Sr=/^(?:0|[1-9]\d*)$/,U={};U[Y]=U[le]=U[ce]=U[Re]=U[Ke]=U[Bt]=U[at]=U[j]=U[An]=!0,U[c]=U[u]=U[J]=U[p]=U[ie]=U[d]=U[g]=U[S]=U[m]=U[w]=U[P]=U[M]=U[O]=U[x]=U[N]=!1;var Ar=typeof Te=="object"&&Te&&Te.Object===Object&&Te,On=typeof self=="object"&&self&&self.Object===Object&&self,ye=Ar||On||Function("return this")(),Er=t&&!t.nodeType&&t,Or=Er&&!0&&e&&!e.nodeType&&e,Ut=Or&&Or.exports===Er,kt=Ut&&Ar.process,_r=function(){try{return kt&&kt.binding&&kt.binding("util")}catch{}}(),Ht=_r&&_r.isTypedArray;function Pr(o,l){for(var f=-1,v=o==null?0:o.length,R=0,_=[];++f-1}function kn(o,l){var f=this.__data__,v=gt(f,o);return v<0?(++this.size,f.push([o,l])):f[v][1]=l,this}Z.prototype.clear=jn,Z.prototype.delete=Mn,Z.prototype.get=Bn,Z.prototype.has=Un,Z.prototype.set=kn;function se(o){var l=-1,f=o==null?0:o.length;for(this.clear();++lL))return!1;var B=_.get(o);if(B&&_.get(l))return B==l;var ee=-1,ae=!0,z=f&s?new ht:void 0;for(_.set(o,l),_.set(l,o);++ee-1&&o%1==0&&o-1&&o%1==0&&o<=a}function Hr(o){var l=typeof o;return o!=null&&(l=="object"||l=="function")}function Se(o){return o!=null&&typeof o=="object"}var qr=Ht?Pn(Ht):eo;function or(o){return rr(o)?Qn(o):to(o)}function uo(){return[]}function fo(){return!1}e.exports=co})(dn,dn.exports);dn.exports;var Rp=fs(),Ip=Rp;function cs(e){return e?typeof e.layout=="function"?[e.layout]:Array.isArray(e.layout)?e.layout:[]:[]}function Np(e){let[t,r]=xp({component:e.initialComponent||null,layouts:cs(e.initialComponent||null),page:e.initialPage,key:null});bp.init({initialPage:e.initialPage,resolveComponent:e.resolveComponent,async swapComponent({component:i,page:s,preserveState:a}){r(Cp({component:i,layouts:cs(i),page:s,key:a?t.key:Date.now()}))}});let n=(i=0)=>{let s=t.layouts[i];return s?_t(s,gi(()=>t.page.props,{get children(){return n(i+1)}})):_t(t.component,gi({key:t.key},()=>t.page.props))};return _t(Ep,{get children(){return _t(Ip.Provider,{get value(){return t.page},get children(){return n()}})}})}async function $p({id:e="app",page:t=void 0,resolve:r,setup:n,progress:i={}}){let s=document.getElementById(e),a=t||JSON.parse(s.dataset.page),c=h=>Promise.resolve(r(h)).then(p=>p.default||p),u={initialPage:a,initialComponent:await c(a.component),resolveComponent:c};i&&vp(i),n({el:s,App:Np,props:u})}async function Fp(e,t){for(const r of Array.isArray(e)?e:[e]){const n=t[r];if(!(typeof n>"u"))return typeof n=="function"?n():n}throw new Error(`Page not found: ${e}`)}$p({progress:{color:"#5468FF"},resolve:e=>Fp(`../pages/${e}.tsx`,Object.assign({"../pages/errors/not_found.tsx":()=>po(()=>import("./not_found-C8L5ESD_.js"),[]),"../pages/errors/server_error.tsx":()=>po(()=>import("./server_error-BD4xwSAI.js"),[]),"../pages/home.tsx":()=>po(()=>import("./home-BsQwUvOW.js"),[])})),setup({el:e,App:t,props:r}){Ka(()=>_t(t,r),e)}});export{Mp as M,jp as S,Dp as a,kp as b,cr as c,_t as d,Ja as e,Lp as f,Up as g,rl as i,Hp as r,Bp as t}; diff --git a/playgrounds/inertia-react/public/assets/home-BsQwUvOW.js b/playgrounds/inertia-react/public/assets/home-BsQwUvOW.js deleted file mode 100644 index da4b4e7..0000000 --- a/playgrounds/inertia-react/public/assets/home-BsQwUvOW.js +++ /dev/null @@ -1 +0,0 @@ -var j=(t,e,r)=>{if(!e.has(t))throw TypeError("Cannot "+r)};var p=(t,e,r)=>(j(t,e,"read from private field"),r?r.call(t):e.get(t)),g=(t,e,r)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,r)},Q=(t,e,r,s)=>(j(t,e,"write to private field"),s?s.call(t,r):e.set(t,r),r);var m=(t,e,r)=>(j(t,e,"access private method"),r);import{c as ge,a as Re,g as C,b as R,i as b,d as $,r as $e,e as Te,t as U,M as F,S as xe,f as Ae}from"./app-DPRTKUiA.js";class X extends Error{constructor(e,r,s){const n=e.status||e.status===0?e.status:"",i=e.statusText||"",o=`${n} ${i}`.trim(),a=o?`status code ${o}`:"an unknown error";super(`Request failed with ${a}`),Object.defineProperty(this,"response",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="HTTPError",this.response=e,this.request=r,this.options=s}}class ne extends Error{constructor(e){super("Request timed out"),Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="TimeoutError",this.request=e}}const k=t=>t!==null&&typeof t=="object",E=(...t)=>{for(const e of t)if((!k(e)||Array.isArray(e))&&e!==void 0)throw new TypeError("The `options` argument must be an object");return J({},...t)},ie=(t={},e={})=>{const r=new globalThis.Headers(t),s=e instanceof globalThis.Headers,n=new globalThis.Headers(e);for(const[i,o]of n.entries())s&&o==="undefined"||o===void 0?r.delete(i):r.set(i,o);return r},J=(...t)=>{let e={},r={};for(const s of t)if(Array.isArray(s))Array.isArray(e)||(e=[]),e=[...e,...s];else if(k(s)){for(let[n,i]of Object.entries(s))k(i)&&n in e&&(i=J(e[n],i)),e={...e,[n]:i};k(s.headers)&&(r=ie(r,s.headers),e.headers=r)}return e},Se=(()=>{let t=!1,e=!1;const r=typeof globalThis.ReadableStream=="function",s=typeof globalThis.Request=="function";return r&&s&&(e=new globalThis.Request("https://empty.invalid",{body:new globalThis.ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type")),t&&!e})(),qe=typeof globalThis.AbortController=="function",ve=typeof globalThis.ReadableStream=="function",Ce=typeof globalThis.FormData=="function",oe=["get","post","put","patch","head","delete"],Ee={json:"application/json",text:"text/*",formData:"multipart/form-data",arrayBuffer:"*/*",blob:"*/*"},I=2147483647,ae=Symbol("stop"),ke={json:!0,parseJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,fetch:!0},Oe={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,dispatcher:!0,duplex:!0,priority:!0},Pe=t=>oe.includes(t)?t.toUpperCase():t,Ue=["get","put","head","delete","options","trace"],Ne=[408,413,429,500,502,503,504],ue=[413,429,503],ee={limit:2,methods:Ue,statusCodes:Ne,afterStatusCodes:ue,maxRetryAfter:Number.POSITIVE_INFINITY,backoffLimit:Number.POSITIVE_INFINITY,delay:t=>.3*2**(t-1)*1e3},je=(t={})=>{if(typeof t=="number")return{...ee,limit:t};if(t.methods&&!Array.isArray(t.methods))throw new Error("retry.methods must be an array");if(t.statusCodes&&!Array.isArray(t.statusCodes))throw new Error("retry.statusCodes must be an array");return{...ee,...t,afterStatusCodes:ue}};async function Fe(t,e,r,s){return new Promise((n,i)=>{const o=setTimeout(()=>{r&&r.abort(),i(new ne(t))},s.timeout);s.fetch(t,e).then(n).catch(i).then(()=>{clearTimeout(o)})})}async function Ie(t,{signal:e}){return new Promise((r,s)=>{e&&(e.throwIfAborted(),e.addEventListener("abort",n,{once:!0}));function n(){clearTimeout(i),s(e.reason)}const i=setTimeout(()=>{e==null||e.removeEventListener("abort",n),r()},t)})}const Le=(t,e)=>{const r={};for(const s in e)!(s in Oe)&&!(s in ke)&&!(s in t)&&(r[s]=e[s]);return r};class O{static create(e,r){const s=new O(e,r),n=async()=>{if(typeof s._options.timeout=="number"&&s._options.timeout>I)throw new RangeError(`The \`timeout\` option cannot be greater than ${I}`);await Promise.resolve();let a=await s._fetch();for(const l of s._options.hooks.afterResponse){const u=await l(s.request,s._options,s._decorateResponse(a.clone()));u instanceof globalThis.Response&&(a=u)}if(s._decorateResponse(a),!a.ok&&s._options.throwHttpErrors){let l=new X(a,s.request,s._options);for(const u of s._options.hooks.beforeError)l=await u(l);throw l}if(s._options.onDownloadProgress){if(typeof s._options.onDownloadProgress!="function")throw new TypeError("The `onDownloadProgress` option must be a function");if(!ve)throw new Error("Streams are not supported in your environment. `ReadableStream` is missing.");return s._stream(a.clone(),s._options.onDownloadProgress)}return a},o=s._options.retry.methods.includes(s.request.method.toLowerCase())?s._retry(n):n();for(const[a,l]of Object.entries(Ee))o[a]=async()=>{s.request.headers.set("accept",s.request.headers.get("accept")||l);const c=(await o).clone();if(a==="json"){if(c.status===204||(await c.clone().arrayBuffer()).byteLength===0)return"";if(r.parseJson)return r.parseJson(await c.text())}return c[a]()};return o}constructor(e,r={}){Object.defineProperty(this,"request",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"abortController",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_retryCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_input",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._input=e;const s=this._input instanceof Request&&"credentials"in Request.prototype?this._input.credentials:void 0;if(this._options={...s&&{credentials:s},...r,headers:ie(this._input.headers,r.headers),hooks:J({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},r.hooks),method:Pe(r.method??this._input.method),prefixUrl:String(r.prefixUrl||""),retry:je(r.retry),throwHttpErrors:r.throwHttpErrors!==!1,timeout:r.timeout??1e4,fetch:r.fetch??globalThis.fetch.bind(globalThis)},typeof this._input!="string"&&!(this._input instanceof URL||this._input instanceof globalThis.Request))throw new TypeError("`input` must be a string, URL, or Request");if(this._options.prefixUrl&&typeof this._input=="string"){if(this._input.startsWith("/"))throw new Error("`input` must not begin with a slash when using `prefixUrl`");this._options.prefixUrl.endsWith("/")||(this._options.prefixUrl+="/"),this._input=this._options.prefixUrl+this._input}if(qe){if(this.abortController=new globalThis.AbortController,this._options.signal){const n=this._options.signal;this._options.signal.addEventListener("abort",()=>{this.abortController.abort(n.reason)})}this._options.signal=this.abortController.signal}if(Se&&(this._options.duplex="half"),this.request=new globalThis.Request(this._input,this._options),this._options.searchParams){const i="?"+(typeof this._options.searchParams=="string"?this._options.searchParams.replace(/^\?/,""):new URLSearchParams(this._options.searchParams).toString()),o=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,i);(Ce&&this._options.body instanceof globalThis.FormData||this._options.body instanceof URLSearchParams)&&!(this._options.headers&&this._options.headers["content-type"])&&this.request.headers.delete("content-type"),this.request=new globalThis.Request(new globalThis.Request(o,{...this.request}),this._options)}this._options.json!==void 0&&(this._options.body=JSON.stringify(this._options.json),this.request.headers.set("content-type",this._options.headers.get("content-type")??"application/json"),this.request=new globalThis.Request(this.request,{body:this._options.body}))}_calculateRetryDelay(e){if(this._retryCount++,this._retryCount<=this._options.retry.limit&&!(e instanceof ne)){if(e instanceof X){if(!this._options.retry.statusCodes.includes(e.response.status))return 0;const s=e.response.headers.get("Retry-After");if(s&&this._options.retry.afterStatusCodes.includes(e.response.status)){let n=Number(s);return Number.isNaN(n)?n=Date.parse(s)-Date.now():n*=1e3,this._options.retry.maxRetryAfter!==void 0&&n>this._options.retry.maxRetryAfter?0:n}if(e.response.status===413)return 0}const r=this._options.retry.delay(this._retryCount);return Math.min(this._options.retry.backoffLimit,r)}return 0}_decorateResponse(e){return this._options.parseJson&&(e.json=async()=>this._options.parseJson(await e.text())),e}async _retry(e){try{return await e()}catch(r){const s=Math.min(this._calculateRetryDelay(r),I);if(s!==0&&this._retryCount>0){await Ie(s,{signal:this._options.signal});for(const n of this._options.hooks.beforeRetry)if(await n({request:this.request,options:this._options,error:r,retryCount:this._retryCount})===ae)return;return this._retry(e)}throw r}}async _fetch(){for(const r of this._options.hooks.beforeRequest){const s=await r(this.request,this._options);if(s instanceof Request){this.request=s;break}if(s instanceof Response)return s}const e=Le(this.request,this._options);return this._options.timeout===!1?this._options.fetch(this.request.clone(),e):Fe(this.request.clone(),e,this.abortController,this._options)}_stream(e,r){const s=Number(e.headers.get("content-length"))||0;let n=0;return e.status===204?(r&&r({percent:1,totalBytes:s,transferredBytes:n},new Uint8Array),new globalThis.Response(null,{status:e.status,statusText:e.statusText,headers:e.headers})):new globalThis.Response(new globalThis.ReadableStream({async start(i){const o=e.body.getReader();r&&r({percent:0,transferredBytes:0,totalBytes:s},new Uint8Array);async function a(){const{done:l,value:u}=await o.read();if(l){i.close();return}if(r){n+=u.byteLength;const c=s===0?0:n/s;r({percent:c,transferredBytes:n,totalBytes:s},u)}i.enqueue(u),await a()}await a()}}),{status:e.status,statusText:e.statusText,headers:e.headers})}}/*! MIT License © Sindre Sorhus */const H=t=>{const e=(r,s)=>O.create(r,E(t,s));for(const r of oe)e[r]=(s,n)=>O.create(s,E(t,n,{method:r}));return e.create=r=>H(E(r)),e.extend=r=>H(E(t,r)),e.stop=ae,e},He=H(),Me=He;function V(t){return t===void 0}function De(t){return t===null}function Be(t){return typeof t=="boolean"}function P(t){return t===Object(t)}function te(t){return Array.isArray(t)}function ze(t){return t instanceof Date}function le(t,e){return e?P(t)&&!V(t.uri):P(t)&&typeof t.size=="number"&&typeof t.type=="string"&&typeof t.slice=="function"}function We(t,e){return le(t,e)&&typeof t.name=="string"&&(P(t.lastModifiedDate)||typeof t.lastModified=="number")}function _(t){return V(t)?!1:t}function M(t,e,r,s){e=e||{},r=r||new FormData,e.indices=_(e.indices),e.nullsAsUndefineds=_(e.nullsAsUndefineds),e.booleansAsIntegers=_(e.booleansAsIntegers),e.allowEmptyArrays=_(e.allowEmptyArrays),e.noAttributesWithArrayNotation=_(e.noAttributesWithArrayNotation),e.noFilesWithArrayNotation=_(e.noFilesWithArrayNotation),e.dotsForObjectNotation=_(e.dotsForObjectNotation);const n=typeof r.getParts=="function";return V(t)||(De(t)?e.nullsAsUndefineds||r.append(s,""):Be(t)?e.booleansAsIntegers?r.append(s,t?1:0):r.append(s,t):te(t)?t.length?t.forEach((i,o)=>{let a=s+"["+(e.indices?o:"")+"]";(e.noAttributesWithArrayNotation||e.noFilesWithArrayNotation&&We(i,n))&&(a=s),M(i,e,r,a)}):e.allowEmptyArrays&&r.append(e.noAttributesWithArrayNotation?s:s+"[]",""):ze(t)?r.append(s,t.toISOString()):P(t)&&!le(t,n)?Object.keys(t).forEach(i=>{const o=t[i];if(te(o))for(;i.length>2&&i.lastIndexOf("[]")===i.length-2;)i=i.substring(0,i.length-2);const a=s?e.dotsForObjectNotation?s+"."+i:s+"["+i+"]":i;M(o,e,r,a)}):r.append(s,t)),r}var Je={serialize:M},Ve=class extends Error{constructor(t,e){super(e+""),this.status=t,this.value=e,this.name="TuyauHTTPError",this.value=e}};function ce(t){if(!t)return"";let e="";const r=(s,n,i=!1)=>{if(n==null)return;const o=encodeURIComponent(s),a=encodeURIComponent(n),l=`${o}${i?"[]":""}=${a}`;e+=(e?"&":"?")+l};for(const[s,n]of Object.entries(t))if(n)if(Array.isArray(n))for(const i of n)r(s,i,!0);else r(s,`${n}`);return e}function Ke(t){return t.replace(/[A-Z]/g,e=>`_${e.toLowerCase()}`)}function Ye(t){return t.replace(/^\//,"")}function Ze(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null}var Ge=typeof FileList>"u",Qe=typeof navigator<"u"&&navigator.product==="ReactNative",f,T,D,re,he=(re=class{constructor(t){g(this,T);g(this,f,void 0);Q(this,f,t)}isFile(t){return Qe&&Ze(t)&&t.uri?!0:Ge?t instanceof Blob:t instanceof FileList||t instanceof File}hasFile(t){return t?Object.values(t).some(e=>Array.isArray(e)?e.some(this.isFile):this.isFile(e)):!1}then(t,e){return m(this,T,D).call(this).then(t,e)}async unwrap(){const t=await m(this,T,D).call(this);if(t.error)throw t.error;return t.data}},f=new WeakMap,T=new WeakSet,D=async function(){var u,c;let t="json",e=p(this,f).body;!(e instanceof FormData)&&this.hasFile(e)?(e=Je.serialize(e,{indices:!0}),t="body"):e instanceof FormData&&(t="body");const r=["get","head"].includes(p(this,f).method),s=r?e==null?void 0:e.query:(u=p(this,f).queryOptions)==null?void 0:u.query,n=await p(this,f).client[p(this,f).method](Ye(p(this,f).path),{searchParams:ce(s),[t]:r?void 0:e,...p(this,f).queryOptions});let i,o;const a=(c=n.headers.get("Content-Type"))==null?void 0:c.split(";")[0];a==="application/json"?i=await n.json():a==="application/octet-stream"?i=await n.arrayBuffer():i=await n.text();const l=n.status;return n.ok||(o=new Ve(n.status,i),i=void 0),{data:i,error:o,response:n,status:l}},re),x,B,A,z,se,Xe=(se=class{constructor(t,e,r){g(this,x);g(this,A);this.baseUrl=t,this.routes=e,this.client=r}$route(t,e){const r=m(this,x,B).call(this,t);return r.method.reduce((s,n)=>(s[`$${n.toLowerCase()}`]=(i,o={})=>{const a=m(this,A,z).call(this,r.path,e);return new he({body:i,path:a,method:n.toLowerCase(),client:this.client,queryOptions:o})},s),{})}$url(t,e){const r=m(this,x,B).call(this,t),s=(e==null?void 0:e.params)||{},n=m(this,A,z).call(this,r.path,s),i=new URL(n,this.baseUrl);return i.search=ce((e==null?void 0:e.query)||{}),i.toString()}$has(t){if(!t.includes("*"))return this.routes.some(r=>r.name===t);const e=new RegExp(`^${t.replace("*",".*")}$`);return this.routes.some(r=>e.test(r.name))}},x=new WeakSet,B=function(t){const e=this.routes.find(r=>r.name===t);if(!e)throw new Error(`Route ${t} not found`);return e},A=new WeakSet,z=function(t,e){let r={},s=[];if(Array.isArray(e))s=e;else{const i=Object.entries(e).map(([o,a])=>[Ke(o),a]);r=Object.fromEntries(i)}let n=0;return t.replace(/:([A-Z_a-z]+)/g,(i,o)=>{if(r[o])return r[o].toString();if(s[n])return s[n++];throw new Error(`Route ${t} is missing the ${o} parameter`)})},se),et=["get","post","put","delete","patch","head"],tt=et.map(t=>`$${t}`);function W(t){var o;const{client:e,baseUrl:r,config:s,paths:n=[]}=t,i=new Xe(r,(o=s.api)==null?void 0:o.routes,e);return new Proxy(()=>{},{get(a,l){return W({...t,paths:l==="index"?n:[...n,l]})},apply(a,l,[u,c]){const y=n.at(-1);return n.length===1&&["$has","$route","$url"].includes(y)?i[y](u,c):y==="$url"?new URL(n.join("/").replace("/$url",""),r).toString():!tt.includes(y)&&typeof u=="object"?W({...t,paths:[...n,Object.values(u)[0]]}):new he({body:u,client:e,queryOptions:c,path:n.slice(0,-1).join("/"),method:n[n.length-1].slice(1)})}})}function rt(t){const e=t.baseUrl,r=Me.create({prefixUrl:e,throwHttpErrors:!1,...t});return W({client:r,baseUrl:e,config:t})}const L=rt("http://localhost:3333");var st=U("
File Name:
File Size: "),nt=U("
AdonisJS x Inertia x Solid.js
+
+ + ) +} diff --git a/playgrounds/inertia-solid/inertia/tsconfig.json b/playgrounds/inertia-solid/inertia/tsconfig.json new file mode 100644 index 0000000..4c48bf9 --- /dev/null +++ b/playgrounds/inertia-solid/inertia/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "@adonisjs/tsconfig/tsconfig.client.json", + "compilerOptions": { + "jsx": "preserve", + "jsxImportSource": "solid-js", + "baseUrl": ".", + "module": "ESNext", + "paths": { + "~/*": ["./*"] + } + }, + "include": ["./**/*.ts", "./**/*.tsx"] +} diff --git a/playgrounds/inertia-solid/package.json b/playgrounds/inertia-solid/package.json new file mode 100644 index 0000000..ee8b32e --- /dev/null +++ b/playgrounds/inertia-solid/package.json @@ -0,0 +1,69 @@ +{ + "name": "playground", + "type": "module", + "version": "0.0.0", + "private": true, + "license": "UNLICENSED", + "scripts": { + "start": "node bin/server.js", + "build": "node ace build", + "dev": "node ace --import=hot-hook/register serve", + "lint": "eslint .", + "format": "prettier --write .", + "typecheck": "tsc --noEmit" + }, + "imports": { + "#controllers/*": "./app/controllers/*.js", + "#exceptions/*": "./app/exceptions/*.js", + "#models/*": "./app/models/*.js", + "#mails/*": "./app/mails/*.js", + "#services/*": "./app/services/*.js", + "#listeners/*": "./app/listeners/*.js", + "#events/*": "./app/events/*.js", + "#middleware/*": "./app/middleware/*.js", + "#validators/*": "./app/validators/*.js", + "#providers/*": "./providers/*.js", + "#policies/*": "./app/policies/*.js", + "#abilities/*": "./app/abilities/*.js", + "#database/*": "./database/*.js", + "#tests/*": "./tests/*.js", + "#start/*": "./start/*.js", + "#config/*": "./config/*.js" + }, + "dependencies": { + "@adonisjs/auth": "^9.2.1", + "@adonisjs/core": "^6.8.0", + "@adonisjs/cors": "^2.2.1", + "@adonisjs/inertia": "1.0.0-25", + "@adonisjs/lucid": "^20.5.1", + "@adonisjs/session": "^7.4.0", + "@adonisjs/shield": "^8.1.1", + "@adonisjs/static": "^1.1.1", + "@adonisjs/vite": "^3.0.0-11", + "@solidjs/meta": "^0.29.3", + "@tuyau/client": "workspace:*", + "@tuyau/core": "workspace:*", + "@vinejs/vine": "^2.0.0", + "better-sqlite3": "^9.6.0", + "edge.js": "^6.0.2", + "inertia-adapter-solid": "^0.2.0", + "luxon": "^3.4.4", + "reflect-metadata": "^0.2.2", + "solid-js": "^1.8.17" + }, + "devDependencies": { + "@adonisjs/assembler": "^7.5.1", + "@japa/plugin-adonisjs": "^3.0.1", + "@tuyau/utils": "workspace:*", + "@types/luxon": "^3.4.2", + "hot-hook": "^0.1.10", + "pino-pretty": "^11.0.0", + "vite-plugin-solid": "^2.10.2" + }, + "hotHook": { + "boundaries": [ + "../app/controllers/*.ts", + "../app/middleware/*.ts" + ] + } +} diff --git a/playgrounds/inertia-solid/resources/views/inertia_layout.edge b/playgrounds/inertia-solid/resources/views/inertia_layout.edge new file mode 100644 index 0000000..e562e81 --- /dev/null +++ b/playgrounds/inertia-solid/resources/views/inertia_layout.edge @@ -0,0 +1,18 @@ + + + + + + + + AdonisJS x Inertia x SolidJS + + @inertiaHead() + @vite(['inertia/app/app.tsx', `inertia/pages/${page.component}.tsx`]) + + + + @inertia() + + + \ No newline at end of file diff --git a/playgrounds/inertia-solid/start/env.ts b/playgrounds/inertia-solid/start/env.ts new file mode 100644 index 0000000..39e4874 --- /dev/null +++ b/playgrounds/inertia-solid/start/env.ts @@ -0,0 +1,27 @@ +/* +|-------------------------------------------------------------------------- +| Environment variables service +|-------------------------------------------------------------------------- +| +| The `Env.create` method creates an instance of the Env service. The +| service validates the environment variables and also cast values +| to JavaScript data types. +| +*/ + +import { Env } from '@adonisjs/core/env' + +export default await Env.create(new URL('../', import.meta.url), { + NODE_ENV: Env.schema.enum(['development', 'production', 'test'] as const), + PORT: Env.schema.number(), + APP_KEY: Env.schema.string(), + HOST: Env.schema.string({ format: 'host' }), + LOG_LEVEL: Env.schema.string(), + + /* + |---------------------------------------------------------- + | Variables for configuring session package + |---------------------------------------------------------- + */ + SESSION_DRIVER: Env.schema.enum(['cookie', 'memory'] as const), +}) diff --git a/playgrounds/inertia-solid/start/kernel.ts b/playgrounds/inertia-solid/start/kernel.ts new file mode 100644 index 0000000..fbe6762 --- /dev/null +++ b/playgrounds/inertia-solid/start/kernel.ts @@ -0,0 +1,50 @@ +/* +|-------------------------------------------------------------------------- +| HTTP kernel file +|-------------------------------------------------------------------------- +| +| The HTTP kernel file is used to register the middleware with the server +| or the router. +| +*/ + +import router from '@adonisjs/core/services/router' +import server from '@adonisjs/core/services/server' + +/** + * The error handler is used to convert an exception + * to a HTTP response. + */ +server.errorHandler(() => import('#exceptions/handler')) + +/** + * The server middleware stack runs middleware on all the HTTP + * requests, even if there is no route registered for + * the request URL. + */ +server.use([ + () => import('#middleware/container_bindings_middleware'), + () => import('@adonisjs/static/static_middleware'), + () => import('@adonisjs/cors/cors_middleware'), + () => import('@adonisjs/vite/vite_middleware'), + () => import('@adonisjs/inertia/inertia_middleware'), +]) + +/** + * The router middleware stack runs middleware on all the HTTP + * requests with a registered route. + */ +router.use([ + () => import('@adonisjs/core/bodyparser_middleware'), + () => import('@adonisjs/session/session_middleware'), + () => import('@adonisjs/shield/shield_middleware'), + () => import('@adonisjs/auth/initialize_auth_middleware'), +]) + +/** + * Named middleware collection must be explicitly assigned to + * the routes or the routes group. + */ +export const middleware = router.named({ + auth: () => import('#middleware/auth_middleware'), +}) diff --git a/playgrounds/inertia-solid/start/routes.ts b/playgrounds/inertia-solid/start/routes.ts new file mode 100644 index 0000000..9af985c --- /dev/null +++ b/playgrounds/inertia-solid/start/routes.ts @@ -0,0 +1,28 @@ +/* +|-------------------------------------------------------------------------- +| Routes file +|-------------------------------------------------------------------------- +| +| The routes file is used for defining the HTTP routes. +| +*/ + +import router from '@adonisjs/core/services/router' + +const PostsController = () => import('#controllers/posts_controller') +const UsersController = () => import('#controllers/users_controller') +const InertiaController = () => import('#controllers/inertia_controller') +const CommentsController = () => import('#controllers/comments_controller') + +router.get('/users', [UsersController, 'index']).as('users.index') +router.get('/simple-text', [UsersController, 'simpleText']).as('simpleText') +router.post('/file-upload', [UsersController, 'fileUpload']).as('fileUpload') + +router.get('/', [InertiaController, 'index']).as('home') +router.get('/backoffice', [InertiaController, 'backoffice']).as('backoffice') +router.resource('posts', PostsController).as('posts') +router.resource('posts.comments', CommentsController).as('posts.comments') + +router.get('/test', () => { + return 'foo' +}) diff --git a/playgrounds/inertia-solid/tests/bootstrap.ts b/playgrounds/inertia-solid/tests/bootstrap.ts new file mode 100644 index 0000000..e7b9766 --- /dev/null +++ b/playgrounds/inertia-solid/tests/bootstrap.ts @@ -0,0 +1,37 @@ +import { assert } from '@japa/assert' +import app from '@adonisjs/core/services/app' +import type { Config } from '@japa/runner/types' +import { pluginAdonisJS } from '@japa/plugin-adonisjs' +import testUtils from '@adonisjs/core/services/test_utils' + +/** + * This file is imported by the "bin/test.ts" entrypoint file + */ + +/** + * Configure Japa plugins in the plugins array. + * Learn more - https://japa.dev/docs/runner-config#plugins-optional + */ +export const plugins: Config['plugins'] = [assert(), pluginAdonisJS(app)] + +/** + * Configure lifecycle function to run before and after all the + * tests. + * + * The setup functions are executed before all the tests + * The teardown functions are executer after all the tests + */ +export const runnerHooks: Required> = { + setup: [], + teardown: [], +} + +/** + * Configure suites by tapping into the test suite instance. + * Learn more - https://japa.dev/docs/test-suites#lifecycle-hooks + */ +export const configureSuite: Config['configureSuite'] = (suite) => { + if (['browser', 'functional', 'e2e'].includes(suite.name)) { + return suite.setup(() => testUtils.httpServer().start()) + } +} diff --git a/playgrounds/inertia-solid/tsconfig.json b/playgrounds/inertia-solid/tsconfig.json new file mode 100644 index 0000000..bb4649e --- /dev/null +++ b/playgrounds/inertia-solid/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "@adonisjs/tsconfig/tsconfig.app.json", + "compilerOptions": { + "rootDir": "./", + "outDir": "./build" + }, + "exclude": ["./inertia/**/*", "node_modules", "build"] +} diff --git a/playgrounds/inertia-solid/vite.config.ts b/playgrounds/inertia-solid/vite.config.ts new file mode 100644 index 0000000..52a3d3b --- /dev/null +++ b/playgrounds/inertia-solid/vite.config.ts @@ -0,0 +1,23 @@ +import { defineConfig } from 'vite' +import solid from 'vite-plugin-solid' +import adonisjs from '@adonisjs/vite/client' +import inertia from '@adonisjs/inertia/client' +import { getDirname } from '@adonisjs/core/helpers' + +export default defineConfig({ + plugins: [ + inertia({ ssr: { enabled: false } }), + solid({ ssr: true }), + adonisjs({ entrypoints: ['inertia/app/app.tsx'], reload: ['resources/views/**/*.edge'] }), + ], + + /** + * Define aliases for importing modules from + * your frontend code + */ + resolve: { + alias: { + '~/': `${getDirname(import.meta.url)}/inertia/`, + }, + }, +}) diff --git a/playgrounds/inertia-vue/.env b/playgrounds/inertia-vue/.env new file mode 100644 index 0000000..9d39c5b --- /dev/null +++ b/playgrounds/inertia-vue/.env @@ -0,0 +1,7 @@ +TZ=UTC +PORT=3333 +HOST=localhost +LOG_LEVEL=info +APP_KEY=igisMXbj2UG8sqtf8ma6GOrmKNj0cFft +NODE_ENV=development +SESSION_DRIVER=cookie \ No newline at end of file diff --git a/playgrounds/inertia-vue/.env.example b/playgrounds/inertia-vue/.env.example new file mode 100644 index 0000000..9d39c5b --- /dev/null +++ b/playgrounds/inertia-vue/.env.example @@ -0,0 +1,7 @@ +TZ=UTC +PORT=3333 +HOST=localhost +LOG_LEVEL=info +APP_KEY=igisMXbj2UG8sqtf8ma6GOrmKNj0cFft +NODE_ENV=development +SESSION_DRIVER=cookie \ No newline at end of file diff --git a/playgrounds/inertia-vue/ace.js b/playgrounds/inertia-vue/ace.js new file mode 100644 index 0000000..d47f53a --- /dev/null +++ b/playgrounds/inertia-vue/ace.js @@ -0,0 +1,28 @@ +/* +|-------------------------------------------------------------------------- +| JavaScript entrypoint for running ace commands +|-------------------------------------------------------------------------- +| +| DO NOT MODIFY THIS FILE AS IT WILL BE OVERRIDDEN DURING THE BUILD +| PROCESS. +| +| See docs.adonisjs.com/guides/typescript-build-process#creating-production-build +| +| Since, we cannot run TypeScript source code using "node" binary, we need +| a JavaScript entrypoint to run ace commands. +| +| This file registers the "ts-node/esm" hook with the Node.js module system +| and then imports the "bin/console.ts" file. +| +*/ + +/** + * Register hook to process TypeScript files using ts-node + */ +import { register } from 'node:module' +register('ts-node/esm', import.meta.url) + +/** + * Import ace console entrypoint + */ +await import('./bin/console.js') diff --git a/playgrounds/inertia-vue/adonisrc.ts b/playgrounds/inertia-vue/adonisrc.ts new file mode 100644 index 0000000..a5c9e7f --- /dev/null +++ b/playgrounds/inertia-vue/adonisrc.ts @@ -0,0 +1,102 @@ +import { defineConfig } from '@adonisjs/core/app' + +export default defineConfig({ + /* + |-------------------------------------------------------------------------- + | Commands + |-------------------------------------------------------------------------- + | + | List of ace commands to register from packages. The application commands + | will be scanned automatically from the "./commands" directory. + | + */ + commands: [() => import('@adonisjs/core/commands'), () => import('@adonisjs/lucid/commands')], + + /* + |-------------------------------------------------------------------------- + | Service providers + |-------------------------------------------------------------------------- + | + | List of service providers to import and register when booting the + | application + | + */ + providers: [ + () => import('@adonisjs/core/providers/app_provider'), + () => import('@adonisjs/core/providers/hash_provider'), + { + file: () => import('@adonisjs/core/providers/repl_provider'), + environment: ['repl', 'test'], + }, + () => import('@adonisjs/core/providers/vinejs_provider'), + () => import('@adonisjs/core/providers/edge_provider'), + () => import('@adonisjs/session/session_provider'), + () => import('@adonisjs/vite/vite_provider'), + () => import('@adonisjs/shield/shield_provider'), + () => import('@adonisjs/static/static_provider'), + () => import('@adonisjs/cors/cors_provider'), + () => import('@adonisjs/lucid/database_provider'), + () => import('@adonisjs/auth/auth_provider'), + () => import('@adonisjs/inertia/inertia_provider') + ], + + /* + |-------------------------------------------------------------------------- + | Preloads + |-------------------------------------------------------------------------- + | + | List of modules to import before starting the application. + | + */ + preloads: [() => import('#start/routes'), () => import('#start/kernel')], + + /* + |-------------------------------------------------------------------------- + | Tests + |-------------------------------------------------------------------------- + | + | List of test suites to organize tests by their type. Feel free to remove + | and add additional suites. + | + */ + tests: { + suites: [ + { + files: ['tests/unit/**/*.spec(.ts|.js)'], + name: 'unit', + timeout: 2000, + }, + { + files: ['tests/functional/**/*.spec(.ts|.js)'], + name: 'functional', + timeout: 30000, + }, + ], + forceExit: false, + }, + + /* + |-------------------------------------------------------------------------- + | Metafiles + |-------------------------------------------------------------------------- + | + | A collection of files you want to copy to the build folder when creating + | the production build. + | + */ + metaFiles: [ + { + pattern: 'resources/views/**/*.edge', + reloadServer: false, + }, + { + pattern: 'public/**', + reloadServer: false, + }, + ], + + assetsBundler: false, + unstable_assembler: { + onBuildStarting: [() => import('@adonisjs/vite/build_hook')], + }, +}) diff --git a/playgrounds/inertia-vue/app/exceptions/handler.ts b/playgrounds/inertia-vue/app/exceptions/handler.ts new file mode 100644 index 0000000..0ab9d3b --- /dev/null +++ b/playgrounds/inertia-vue/app/exceptions/handler.ts @@ -0,0 +1,45 @@ +import app from '@adonisjs/core/services/app' +import { HttpContext, ExceptionHandler } from '@adonisjs/core/http' +import type { StatusPageRange, StatusPageRenderer } from '@adonisjs/core/types/http' + +export default class HttpExceptionHandler extends ExceptionHandler { + /** + * In debug mode, the exception handler will display verbose errors + * with pretty printed stack traces. + */ + protected debug = !app.inProduction + + /** + * Status pages are used to display a custom HTML pages for certain error + * codes. You might want to enable them in production only, but feel + * free to enable them in development as well. + */ + protected renderStatusPages = app.inProduction + + /** + * Status pages is a collection of error code range and a callback + * to return the HTML contents to send as a response. + */ + protected statusPages: Record = { + '404': (error, { inertia }) => inertia.render('errors/not_found', { error }), + '500..599': (error, { inertia }) => inertia.render('errors/server_error', { error }), + } + + /** + * The method is used for handling errors and returning + * response to the client + */ + async handle(error: unknown, ctx: HttpContext) { + return super.handle(error, ctx) + } + + /** + * The method is used to report error to the logging service or + * the a third party error monitoring service. + * + * @note You should not attempt to send a response from this method. + */ + async report(error: unknown, ctx: HttpContext) { + return super.report(error, ctx) + } +} diff --git a/playgrounds/inertia-vue/app/middleware/auth_middleware.ts b/playgrounds/inertia-vue/app/middleware/auth_middleware.ts new file mode 100644 index 0000000..6e07003 --- /dev/null +++ b/playgrounds/inertia-vue/app/middleware/auth_middleware.ts @@ -0,0 +1,25 @@ +import type { HttpContext } from '@adonisjs/core/http' +import type { NextFn } from '@adonisjs/core/types/http' +import type { Authenticators } from '@adonisjs/auth/types' + +/** + * Auth middleware is used authenticate HTTP requests and deny + * access to unauthenticated users. + */ +export default class AuthMiddleware { + /** + * The URL to redirect to, when authentication fails + */ + redirectTo = '/login' + + async handle( + ctx: HttpContext, + next: NextFn, + options: { + guards?: (keyof Authenticators)[] + } = {} + ) { + await ctx.auth.authenticateUsing(options.guards, { loginRoute: this.redirectTo }) + return next() + } +} \ No newline at end of file diff --git a/playgrounds/inertia-vue/app/middleware/container_bindings_middleware.ts b/playgrounds/inertia-vue/app/middleware/container_bindings_middleware.ts new file mode 100644 index 0000000..48e6d09 --- /dev/null +++ b/playgrounds/inertia-vue/app/middleware/container_bindings_middleware.ts @@ -0,0 +1,19 @@ +import { Logger } from '@adonisjs/core/logger' +import { HttpContext } from '@adonisjs/core/http' +import { NextFn } from '@adonisjs/core/types/http' + +/** + * The container bindings middleware binds classes to their request + * specific value using the container resolver. + * + * - We bind "HttpContext" class to the "ctx" object + * - And bind "Logger" class to the "ctx.logger" object + */ +export default class ContainerBindingsMiddleware { + handle(ctx: HttpContext, next: NextFn) { + ctx.containerResolver.bindValue(HttpContext, ctx) + ctx.containerResolver.bindValue(Logger, ctx.logger) + + return next() + } +} diff --git a/playgrounds/inertia-vue/app/middleware/guest_middleware.ts b/playgrounds/inertia-vue/app/middleware/guest_middleware.ts new file mode 100644 index 0000000..e459796 --- /dev/null +++ b/playgrounds/inertia-vue/app/middleware/guest_middleware.ts @@ -0,0 +1,31 @@ +import type { HttpContext } from '@adonisjs/core/http' +import type { NextFn } from '@adonisjs/core/types/http' +import type { Authenticators } from '@adonisjs/auth/types' + +/** + * Guest middleware is used to deny access to routes that should + * be accessed by unauthenticated users. + * + * For example, the login page should not be accessible if the user + * is already logged-in + */ +export default class GuestMiddleware { + /** + * The URL to redirect to when user is logged-in + */ + redirectTo = '/' + + async handle( + ctx: HttpContext, + next: NextFn, + options: { guards?: (keyof Authenticators)[] } = {} + ) { + for (let guard of options.guards || [ctx.auth.defaultGuard]) { + if (await ctx.auth.use(guard).check()) { + return ctx.response.redirect(this.redirectTo, true) + } + } + + return next() + } +} \ No newline at end of file diff --git a/playgrounds/inertia-vue/app/models/user.ts b/playgrounds/inertia-vue/app/models/user.ts new file mode 100644 index 0000000..c6cf01d --- /dev/null +++ b/playgrounds/inertia-vue/app/models/user.ts @@ -0,0 +1,30 @@ +import { DateTime } from 'luxon' +import hash from '@adonisjs/core/services/hash' +import { compose } from '@adonisjs/core/helpers' +import { BaseModel, column } from '@adonisjs/lucid/orm' +import { withAuthFinder } from '@adonisjs/auth/mixins/lucid' + +const AuthFinder = withAuthFinder(() => hash.use('scrypt'), { + uids: ['email'], + passwordColumnName: 'password', +}) + +export default class User extends compose(BaseModel, AuthFinder) { + @column({ isPrimary: true }) + declare id: number + + @column() + declare fullName: string | null + + @column() + declare email: string + + @column() + declare password: string + + @column.dateTime({ autoCreate: true }) + declare createdAt: DateTime + + @column.dateTime({ autoCreate: true, autoUpdate: true }) + declare updatedAt: DateTime | null +} \ No newline at end of file diff --git a/playgrounds/inertia-vue/bin/console.ts b/playgrounds/inertia-vue/bin/console.ts new file mode 100644 index 0000000..4b102ee --- /dev/null +++ b/playgrounds/inertia-vue/bin/console.ts @@ -0,0 +1,47 @@ +/* +|-------------------------------------------------------------------------- +| Ace entry point +|-------------------------------------------------------------------------- +| +| The "console.ts" file is the entrypoint for booting the AdonisJS +| command-line framework and executing commands. +| +| Commands do not boot the application, unless the currently running command +| has "options.startApp" flag set to true. +| +*/ + +import 'reflect-metadata' +import { Ignitor, prettyPrintError } from '@adonisjs/core' + +/** + * URL to the application root. AdonisJS need it to resolve + * paths to file and directories for scaffolding commands + */ +const APP_ROOT = new URL('../', import.meta.url) + +/** + * The importer is used to import files in context of the + * application. + */ +const IMPORTER = (filePath: string) => { + if (filePath.startsWith('./') || filePath.startsWith('../')) { + return import(new URL(filePath, APP_ROOT).href) + } + return import(filePath) +} + +new Ignitor(APP_ROOT, { importer: IMPORTER }) + .tap((app) => { + app.booting(async () => { + await import('#start/env') + }) + app.listen('SIGTERM', () => app.terminate()) + app.listenIf(app.managedByPm2, 'SIGINT', () => app.terminate()) + }) + .ace() + .handle(process.argv.splice(2)) + .catch((error) => { + process.exitCode = 1 + prettyPrintError(error) + }) diff --git a/playgrounds/inertia-vue/bin/server.ts b/playgrounds/inertia-vue/bin/server.ts new file mode 100644 index 0000000..fe0fefb --- /dev/null +++ b/playgrounds/inertia-vue/bin/server.ts @@ -0,0 +1,45 @@ +/* +|-------------------------------------------------------------------------- +| HTTP server entrypoint +|-------------------------------------------------------------------------- +| +| The "server.ts" file is the entrypoint for starting the AdonisJS HTTP +| server. Either you can run this file directly or use the "serve" +| command to run this file and monitor file changes +| +*/ + +import 'reflect-metadata' +import { Ignitor, prettyPrintError } from '@adonisjs/core' + +/** + * URL to the application root. AdonisJS need it to resolve + * paths to file and directories for scaffolding commands + */ +const APP_ROOT = new URL('../', import.meta.url) + +/** + * The importer is used to import files in context of the + * application. + */ +const IMPORTER = (filePath: string) => { + if (filePath.startsWith('./') || filePath.startsWith('../')) { + return import(new URL(filePath, APP_ROOT).href) + } + return import(filePath) +} + +new Ignitor(APP_ROOT, { importer: IMPORTER }) + .tap((app) => { + app.booting(async () => { + await import('#start/env') + }) + app.listen('SIGTERM', () => app.terminate()) + app.listenIf(app.managedByPm2, 'SIGINT', () => app.terminate()) + }) + .httpServer() + .start() + .catch((error) => { + process.exitCode = 1 + prettyPrintError(error) + }) diff --git a/playgrounds/inertia-vue/bin/test.ts b/playgrounds/inertia-vue/bin/test.ts new file mode 100644 index 0000000..d759efe --- /dev/null +++ b/playgrounds/inertia-vue/bin/test.ts @@ -0,0 +1,62 @@ +/* +|-------------------------------------------------------------------------- +| Test runner entrypoint +|-------------------------------------------------------------------------- +| +| The "test.ts" file is the entrypoint for running tests using Japa. +| +| Either you can run this file directly or use the "test" +| command to run this file and monitor file changes. +| +*/ + +process.env.NODE_ENV = 'test' + +import 'reflect-metadata' +import { Ignitor, prettyPrintError } from '@adonisjs/core' +import { configure, processCLIArgs, run } from '@japa/runner' + +/** + * URL to the application root. AdonisJS need it to resolve + * paths to file and directories for scaffolding commands + */ +const APP_ROOT = new URL('../', import.meta.url) + +/** + * The importer is used to import files in context of the + * application. + */ +const IMPORTER = (filePath: string) => { + if (filePath.startsWith('./') || filePath.startsWith('../')) { + return import(new URL(filePath, APP_ROOT).href) + } + return import(filePath) +} + +new Ignitor(APP_ROOT, { importer: IMPORTER }) + .tap((app) => { + app.booting(async () => { + await import('#start/env') + }) + app.listen('SIGTERM', () => app.terminate()) + app.listenIf(app.managedByPm2, 'SIGINT', () => app.terminate()) + }) + .testRunner() + .configure(async (app) => { + const { runnerHooks, ...config } = await import('../tests/bootstrap.js') + + processCLIArgs(process.argv.splice(2)) + configure({ + ...app.rcFile.tests, + ...config, + ...{ + setup: runnerHooks.setup, + teardown: runnerHooks.teardown.concat([() => app.terminate()]), + }, + }) + }) + .run(() => run()) + .catch((error) => { + process.exitCode = 1 + prettyPrintError(error) + }) diff --git a/playgrounds/inertia-vue/config/app.ts b/playgrounds/inertia-vue/config/app.ts new file mode 100644 index 0000000..1292af7 --- /dev/null +++ b/playgrounds/inertia-vue/config/app.ts @@ -0,0 +1,40 @@ +import env from '#start/env' +import app from '@adonisjs/core/services/app' +import { Secret } from '@adonisjs/core/helpers' +import { defineConfig } from '@adonisjs/core/http' + +/** + * The app key is used for encrypting cookies, generating signed URLs, + * and by the "encryption" module. + * + * The encryption module will fail to decrypt data if the key is lost or + * changed. Therefore it is recommended to keep the app key secure. + */ +export const appKey = new Secret(env.get('APP_KEY')) + +/** + * The configuration settings used by the HTTP server + */ +export const http = defineConfig({ + generateRequestId: true, + allowMethodSpoofing: false, + + /** + * Enabling async local storage will let you access HTTP context + * from anywhere inside your application. + */ + useAsyncLocalStorage: false, + + /** + * Manage cookies configuration. The settings for the session id cookie are + * defined inside the "config/session.ts" file. + */ + cookie: { + domain: '', + path: '/', + maxAge: '2h', + httpOnly: true, + secure: app.inProduction, + sameSite: 'lax', + }, +}) diff --git a/playgrounds/inertia-vue/config/auth.ts b/playgrounds/inertia-vue/config/auth.ts new file mode 100644 index 0000000..86a12d7 --- /dev/null +++ b/playgrounds/inertia-vue/config/auth.ts @@ -0,0 +1,28 @@ +import { defineConfig } from '@adonisjs/auth' +import { InferAuthEvents, Authenticators } from '@adonisjs/auth/types' +import { sessionGuard, sessionUserProvider } from '@adonisjs/auth/session' + +const authConfig = defineConfig({ + default: 'web', + guards: { + web: sessionGuard({ + useRememberMeTokens: false, + provider: sessionUserProvider({ + model: () => import('#models/user') + }), + }), + }, +}) + +export default authConfig + +/** + * Inferring types from the configured auth + * guards. + */ +declare module '@adonisjs/auth/types' { + interface Authenticators extends InferAuthenticators {} +} +declare module '@adonisjs/core/types' { + interface EventsList extends InferAuthEvents {} +} \ No newline at end of file diff --git a/playgrounds/inertia-vue/config/bodyparser.ts b/playgrounds/inertia-vue/config/bodyparser.ts new file mode 100644 index 0000000..f3d1ead --- /dev/null +++ b/playgrounds/inertia-vue/config/bodyparser.ts @@ -0,0 +1,55 @@ +import { defineConfig } from '@adonisjs/core/bodyparser' + +const bodyParserConfig = defineConfig({ + /** + * The bodyparser middleware will parse the request body + * for the following HTTP methods. + */ + allowedMethods: ['POST', 'PUT', 'PATCH', 'DELETE'], + + /** + * Config for the "application/x-www-form-urlencoded" + * content-type parser + */ + form: { + convertEmptyStringsToNull: true, + types: ['application/x-www-form-urlencoded'], + }, + + /** + * Config for the JSON parser + */ + json: { + convertEmptyStringsToNull: true, + types: [ + 'application/json', + 'application/json-patch+json', + 'application/vnd.api+json', + 'application/csp-report', + ], + }, + + /** + * Config for the "multipart/form-data" content-type parser. + * File uploads are handled by the multipart parser. + */ + multipart: { + /** + * Enabling auto process allows bodyparser middleware to + * move all uploaded files inside the tmp folder of your + * operating system + */ + autoProcess: true, + convertEmptyStringsToNull: true, + processManually: [], + + /** + * Maximum limit of data to parse including all files + * and fields + */ + limit: '20mb', + types: ['multipart/form-data'], + }, +}) + +export default bodyParserConfig diff --git a/playgrounds/inertia-vue/config/cors.ts b/playgrounds/inertia-vue/config/cors.ts new file mode 100644 index 0000000..dd79007 --- /dev/null +++ b/playgrounds/inertia-vue/config/cors.ts @@ -0,0 +1,19 @@ +import { defineConfig } from '@adonisjs/cors' + +/** + * Configuration options to tweak the CORS policy. The following + * options are documented on the official documentation website. + * + * https://docs.adonisjs.com/guides/security/cors + */ +const corsConfig = defineConfig({ + enabled: true, + origin: [], + methods: ['GET', 'HEAD', 'POST', 'PUT', 'DELETE'], + headers: true, + exposeHeaders: [], + credentials: true, + maxAge: 90, +}) + +export default corsConfig diff --git a/playgrounds/inertia-vue/config/database.ts b/playgrounds/inertia-vue/config/database.ts new file mode 100644 index 0000000..ed32052 --- /dev/null +++ b/playgrounds/inertia-vue/config/database.ts @@ -0,0 +1,21 @@ +import app from '@adonisjs/core/services/app' +import { defineConfig } from '@adonisjs/lucid' + +const dbConfig = defineConfig({ + connection: 'sqlite', + connections: { + sqlite: { + client: 'better-sqlite3', + connection: { + filename: app.tmpPath('db.sqlite3') + }, + useNullAsDefault: true, + migrations: { + naturalSort: true, + paths: ['database/migrations'], + }, + }, + }, +}) + +export default dbConfig \ No newline at end of file diff --git a/playgrounds/inertia-vue/config/hash.ts b/playgrounds/inertia-vue/config/hash.ts new file mode 100644 index 0000000..ab10300 --- /dev/null +++ b/playgrounds/inertia-vue/config/hash.ts @@ -0,0 +1,24 @@ +import { defineConfig, drivers } from '@adonisjs/core/hash' + +const hashConfig = defineConfig({ + default: 'scrypt', + + list: { + scrypt: drivers.scrypt({ + cost: 16384, + blockSize: 8, + parallelization: 1, + maxMemory: 33554432, + }), + }, +}) + +export default hashConfig + +/** + * Inferring types for the list of hashers you have configured + * in your application. + */ +declare module '@adonisjs/core/types' { + export interface HashersList extends InferHashers {} +} diff --git a/playgrounds/inertia-vue/config/inertia.ts b/playgrounds/inertia-vue/config/inertia.ts new file mode 100644 index 0000000..58b2399 --- /dev/null +++ b/playgrounds/inertia-vue/config/inertia.ts @@ -0,0 +1,23 @@ +import { defineConfig } from '@adonisjs/inertia' + +export default defineConfig({ + /** + * Path to the Edge view that will be used as the root view for Inertia responses + */ + rootView: 'inertia_layout', + + /** + * Data that should be shared with all rendered pages + */ + sharedData: { + errors: (ctx) => ctx.session?.flashMessages.get('errors'), + }, + + /** + * Options for the server-side rendering + */ + ssr: { + enabled: true, + entrypoint: 'inertia/app/ssr.ts' + } +}) \ No newline at end of file diff --git a/playgrounds/inertia-vue/config/logger.ts b/playgrounds/inertia-vue/config/logger.ts new file mode 100644 index 0000000..b961300 --- /dev/null +++ b/playgrounds/inertia-vue/config/logger.ts @@ -0,0 +1,35 @@ +import env from '#start/env' +import app from '@adonisjs/core/services/app' +import { defineConfig, targets } from '@adonisjs/core/logger' + +const loggerConfig = defineConfig({ + default: 'app', + + /** + * The loggers object can be used to define multiple loggers. + * By default, we configure only one logger (named "app"). + */ + loggers: { + app: { + enabled: true, + name: env.get('APP_NAME'), + level: env.get('LOG_LEVEL'), + transport: { + targets: targets() + .pushIf(!app.inProduction, targets.pretty()) + .pushIf(app.inProduction, targets.file({ destination: 1 })) + .toArray(), + }, + }, + }, +}) + +export default loggerConfig + +/** + * Inferring types for the list of loggers you have configured + * in your application. + */ +declare module '@adonisjs/core/types' { + export interface LoggersList extends InferLoggers {} +} diff --git a/playgrounds/inertia-vue/config/session.ts b/playgrounds/inertia-vue/config/session.ts new file mode 100644 index 0000000..6a143aa --- /dev/null +++ b/playgrounds/inertia-vue/config/session.ts @@ -0,0 +1,48 @@ +import env from '#start/env' +import app from '@adonisjs/core/services/app' +import { defineConfig, stores } from '@adonisjs/session' + +const sessionConfig = defineConfig({ + enabled: true, + cookieName: 'adonis-session', + + /** + * When set to true, the session id cookie will be deleted + * once the user closes the browser. + */ + clearWithBrowser: false, + + /** + * Define how long to keep the session data alive without + * any activity. + */ + age: '2h', + + /** + * Configuration for session cookie and the + * cookie store + */ + cookie: { + path: '/', + httpOnly: true, + secure: app.inProduction, + sameSite: 'lax', + }, + + /** + * The store to use. Make sure to validate the environment + * variable in order to infer the store name without any + * errors. + */ + store: env.get('SESSION_DRIVER'), + + /** + * List of configured stores. Refer documentation to see + * list of available stores and their config. + */ + stores: { + cookie: stores.cookie(), + }, +}) + +export default sessionConfig diff --git a/playgrounds/inertia-vue/config/shield.ts b/playgrounds/inertia-vue/config/shield.ts new file mode 100644 index 0000000..d3aa290 --- /dev/null +++ b/playgrounds/inertia-vue/config/shield.ts @@ -0,0 +1,51 @@ +import { defineConfig } from '@adonisjs/shield' + +const shieldConfig = defineConfig({ + /** + * Configure CSP policies for your app. Refer documentation + * to learn more + */ + csp: { + enabled: false, + directives: {}, + reportOnly: false, + }, + + /** + * Configure CSRF protection options. Refer documentation + * to learn more + */ + csrf: { + enabled: true, + exceptRoutes: [], + enableXsrfCookie: true, + methods: ['POST', 'PUT', 'PATCH', 'DELETE'], + }, + + /** + * Control how your website should be embedded inside + * iFrames + */ + xFrame: { + enabled: true, + action: 'DENY', + }, + + /** + * Force browser to always use HTTPS + */ + hsts: { + enabled: true, + maxAge: '180 days', + }, + + /** + * Disable browsers from sniffing the content type of a + * response and always rely on the "content-type" header. + */ + contentTypeSniffing: { + enabled: true, + }, +}) + +export default shieldConfig diff --git a/playgrounds/inertia-vue/config/static.ts b/playgrounds/inertia-vue/config/static.ts new file mode 100644 index 0000000..2e20fc0 --- /dev/null +++ b/playgrounds/inertia-vue/config/static.ts @@ -0,0 +1,17 @@ +import { defineConfig } from '@adonisjs/static' + +/** + * Configuration options to tweak the static files middleware. + * The complete set of options are documented on the + * official documentation website. + * + * https://docs.adonisjs.com/guides/static-assets + */ +const staticServerConfig = defineConfig({ + enabled: true, + etag: true, + lastModified: true, + dotFiles: 'ignore', +}) + +export default staticServerConfig diff --git a/playgrounds/inertia-vue/config/vite.ts b/playgrounds/inertia-vue/config/vite.ts new file mode 100644 index 0000000..e7d65bf --- /dev/null +++ b/playgrounds/inertia-vue/config/vite.ts @@ -0,0 +1,28 @@ +import { defineConfig } from '@adonisjs/vite' + +const viteBackendConfig = defineConfig({ + /** + * The output of vite will be written inside this + * directory. The path should be relative from + * the application root. + */ + buildDirectory: 'public/assets', + + /** + * The path to the manifest file generated by the + * "vite build" command. + */ + manifestFile: 'public/assets/.vite/manifest.json', + + /** + * Feel free to change the value of the "assetsUrl" to + * point to a CDN in production. + */ + assetsUrl: '/assets', + + scriptAttributes: { + defer: true, + }, +}) + +export default viteBackendConfig diff --git a/playgrounds/inertia-vue/database/migrations/1715412229639_create_users_table.ts b/playgrounds/inertia-vue/database/migrations/1715412229639_create_users_table.ts new file mode 100644 index 0000000..d6a6798 --- /dev/null +++ b/playgrounds/inertia-vue/database/migrations/1715412229639_create_users_table.ts @@ -0,0 +1,21 @@ +import { BaseSchema } from '@adonisjs/lucid/schema' + +export default class extends BaseSchema { + protected tableName = 'users' + + async up() { + this.schema.createTable(this.tableName, (table) => { + table.increments('id').notNullable() + table.string('full_name').nullable() + table.string('email', 254).notNullable().unique() + table.string('password').notNullable() + + table.timestamp('created_at').notNullable() + table.timestamp('updated_at').nullable() + }) + } + + async down() { + this.schema.dropTable(this.tableName) + } +} \ No newline at end of file diff --git a/playgrounds/inertia-vue/inertia/app/app.ts b/playgrounds/inertia-vue/inertia/app/app.ts new file mode 100644 index 0000000..3ec799d --- /dev/null +++ b/playgrounds/inertia-vue/inertia/app/app.ts @@ -0,0 +1,28 @@ +import '../css/app.css'; +import { createSSRApp, h } from 'vue' +import type { DefineComponent } from 'vue' +import { createInertiaApp } from '@inertiajs/vue3' +import { resolvePageComponent } from '@adonisjs/inertia/helpers' + +const appName = import.meta.env.VITE_APP_NAME || 'AdonisJS' + +createInertiaApp({ + progress: { color: '#5468FF' }, + + title: (title) => `${title} - ${appName}`, + + resolve: (name) => { + return resolvePageComponent( + `../pages/${name}.vue`, + import.meta.glob('../pages/**/*.vue'), + ) + }, + + setup({ el, App, props, plugin }) { + + createSSRApp({ render: () => h(App, props) }) + + .use(plugin) + .mount(el) + }, +}) \ No newline at end of file diff --git a/playgrounds/inertia-vue/inertia/app/ssr.ts b/playgrounds/inertia-vue/inertia/app/ssr.ts new file mode 100644 index 0000000..caffcff --- /dev/null +++ b/playgrounds/inertia-vue/inertia/app/ssr.ts @@ -0,0 +1,19 @@ + +import { createInertiaApp } from '@inertiajs/vue3' +import { renderToString } from '@vue/server-renderer' +import { createSSRApp, h, type DefineComponent } from 'vue' + +export default function render(page: any) { + return createInertiaApp({ + page, + render: renderToString, + resolve: (name) => { + const pages = import.meta.glob('../pages/**/*.vue', { eager: true }) + return pages[`../pages/${name}.vue`] + }, + + setup({ App, props, plugin }) { + return createSSRApp({ render: () => h(App, props) }).use(plugin) + }, + }) +} \ No newline at end of file diff --git a/playgrounds/inertia-vue/inertia/css/app.css b/playgrounds/inertia-vue/inertia/css/app.css new file mode 100644 index 0000000..4d1e98d --- /dev/null +++ b/playgrounds/inertia-vue/inertia/css/app.css @@ -0,0 +1,36 @@ +@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500&display=swap'); + +* { + margin: 0; + padding: 0; +} + +html, +body, +#app { + background-color: #F7F8FA; + font-family: 'Poppins', sans-serif; + color: #46444c; + height: 100%; + width: 100%; +} + +.title { + font-size: 42px; + font-weight: 500; + color: #5a45ff; +} + +.container { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + height: 100%; + width: 100%; +} + +a { + text-decoration: underline; + color: #5a45ff; +} \ No newline at end of file diff --git a/playgrounds/inertia-vue/inertia/pages/errors/not_found.vue b/playgrounds/inertia-vue/inertia/pages/errors/not_found.vue new file mode 100644 index 0000000..65248e1 --- /dev/null +++ b/playgrounds/inertia-vue/inertia/pages/errors/not_found.vue @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/playgrounds/inertia-vue/inertia/pages/errors/server_error.vue b/playgrounds/inertia-vue/inertia/pages/errors/server_error.vue new file mode 100644 index 0000000..a9942ff --- /dev/null +++ b/playgrounds/inertia-vue/inertia/pages/errors/server_error.vue @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/playgrounds/inertia-vue/inertia/pages/home.vue b/playgrounds/inertia-vue/inertia/pages/home.vue new file mode 100644 index 0000000..40ee6cc --- /dev/null +++ b/playgrounds/inertia-vue/inertia/pages/home.vue @@ -0,0 +1,18 @@ + + + \ No newline at end of file diff --git a/playgrounds/inertia-vue/inertia/tsconfig.json b/playgrounds/inertia-vue/inertia/tsconfig.json new file mode 100644 index 0000000..74e910a --- /dev/null +++ b/playgrounds/inertia-vue/inertia/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "@adonisjs/tsconfig/tsconfig.client.json", + "compilerOptions": { + "baseUrl": ".", + "jsx": "preserve", + "module": "ESNext", + "jsxImportSource": "vue", + "paths": { + "~/*": ["./*"], + }, + }, + "include": ["./**/*.ts", "./**/*.vue"], +} \ No newline at end of file diff --git a/playgrounds/inertia-vue/package.json b/playgrounds/inertia-vue/package.json new file mode 100644 index 0000000..4def333 --- /dev/null +++ b/playgrounds/inertia-vue/package.json @@ -0,0 +1,74 @@ +{ + "name": "inertia-vue", + "type": "module", + "version": "0.0.0", + "private": true, + "license": "UNLICENSED", + "scripts": { + "start": "node bin/server.js", + "build": "node ace build", + "dev": "node ace serve --hmr", + "test": "node ace test", + "lint": "eslint .", + "format": "prettier --write .", + "typecheck": "tsc --noEmit" + }, + "imports": { + "#controllers/*": "./app/controllers/*.js", + "#exceptions/*": "./app/exceptions/*.js", + "#models/*": "./app/models/*.js", + "#mails/*": "./app/mails/*.js", + "#services/*": "./app/services/*.js", + "#listeners/*": "./app/listeners/*.js", + "#events/*": "./app/events/*.js", + "#middleware/*": "./app/middleware/*.js", + "#validators/*": "./app/validators/*.js", + "#providers/*": "./providers/*.js", + "#policies/*": "./app/policies/*.js", + "#abilities/*": "./app/abilities/*.js", + "#database/*": "./database/*.js", + "#tests/*": "./tests/*.js", + "#start/*": "./start/*.js", + "#config/*": "./config/*.js" + }, + "dependencies": { + "@adonisjs/auth": "^9.2.1", + "@adonisjs/core": "^6.9.0", + "@adonisjs/cors": "^2.2.1", + "@adonisjs/inertia": "1.0.0-27", + "@adonisjs/lucid": "^20.6.0", + "@adonisjs/session": "^7.4.0", + "@adonisjs/shield": "^8.1.1", + "@adonisjs/static": "^1.1.1", + "@adonisjs/vite": "^3.0.0-11", + "@inertiajs/vue3": "^1.0.16", + "@vinejs/vine": "^2.0.0", + "@vue/server-renderer": "^3.4.27", + "better-sqlite3": "^9.6.0", + "edge.js": "^6.0.2", + "luxon": "^3.4.4", + "reflect-metadata": "^0.2.2", + "vue": "^3.4.27" + }, + "devDependencies": { + "@adonisjs/assembler": "^7.5.2", + "@adonisjs/eslint-config": "^1.3.0", + "@adonisjs/prettier-config": "^1.3.0", + "@adonisjs/tsconfig": "^1.3.0", + "@japa/plugin-adonisjs": "^3.0.1", + "@types/luxon": "^3.4.2", + "@vitejs/plugin-vue": "^5.0.4", + "hot-hook": "^0.2.5", + "pino-pretty": "^11.0.0" + }, + "hotHook": { + "boundaries": [ + "./app/controllers/**/*.ts", + "./app/middleware/*.ts" + ] + }, + "eslintConfig": { + "extends": "@adonisjs/eslint-config/app" + }, + "prettier": "@adonisjs/prettier-config" +} diff --git a/playgrounds/inertia-vue/resources/views/inertia_layout.edge b/playgrounds/inertia-vue/resources/views/inertia_layout.edge new file mode 100644 index 0000000..07f9fe9 --- /dev/null +++ b/playgrounds/inertia-vue/resources/views/inertia_layout.edge @@ -0,0 +1,18 @@ + + + + + + + + AdonisJS x Inertia x VueJS + + @vite(['inertia/app/app.ts', `inertia/pages/${page.component}.vue`]) + @inertiaHead() + + + + @inertia() + + + \ No newline at end of file diff --git a/playgrounds/inertia-vue/start/env.ts b/playgrounds/inertia-vue/start/env.ts new file mode 100644 index 0000000..39e4874 --- /dev/null +++ b/playgrounds/inertia-vue/start/env.ts @@ -0,0 +1,27 @@ +/* +|-------------------------------------------------------------------------- +| Environment variables service +|-------------------------------------------------------------------------- +| +| The `Env.create` method creates an instance of the Env service. The +| service validates the environment variables and also cast values +| to JavaScript data types. +| +*/ + +import { Env } from '@adonisjs/core/env' + +export default await Env.create(new URL('../', import.meta.url), { + NODE_ENV: Env.schema.enum(['development', 'production', 'test'] as const), + PORT: Env.schema.number(), + APP_KEY: Env.schema.string(), + HOST: Env.schema.string({ format: 'host' }), + LOG_LEVEL: Env.schema.string(), + + /* + |---------------------------------------------------------- + | Variables for configuring session package + |---------------------------------------------------------- + */ + SESSION_DRIVER: Env.schema.enum(['cookie', 'memory'] as const), +}) diff --git a/playgrounds/inertia-vue/start/kernel.ts b/playgrounds/inertia-vue/start/kernel.ts new file mode 100644 index 0000000..888233a --- /dev/null +++ b/playgrounds/inertia-vue/start/kernel.ts @@ -0,0 +1,51 @@ +/* +|-------------------------------------------------------------------------- +| HTTP kernel file +|-------------------------------------------------------------------------- +| +| The HTTP kernel file is used to register the middleware with the server +| or the router. +| +*/ + +import router from '@adonisjs/core/services/router' +import server from '@adonisjs/core/services/server' + +/** + * The error handler is used to convert an exception + * to a HTTP response. + */ +server.errorHandler(() => import('#exceptions/handler')) + +/** + * The server middleware stack runs middleware on all the HTTP + * requests, even if there is no route registered for + * the request URL. + */ +server.use([ + () => import('#middleware/container_bindings_middleware'), + () => import('@adonisjs/static/static_middleware'), + () => import('@adonisjs/cors/cors_middleware'), + () => import('@adonisjs/vite/vite_middleware'), + () => import('@adonisjs/inertia/inertia_middleware') +]) + +/** + * The router middleware stack runs middleware on all the HTTP + * requests with a registered route. + */ +router.use([ + () => import('@adonisjs/core/bodyparser_middleware'), + () => import('@adonisjs/session/session_middleware'), + () => import('@adonisjs/shield/shield_middleware'), + () => import('@adonisjs/auth/initialize_auth_middleware') +]) + +/** + * Named middleware collection must be explicitly assigned to + * the routes or the routes group. + */ +export const middleware = router.named({ + guest: () => import('#middleware/guest_middleware'), + auth: () => import('#middleware/auth_middleware') +}) diff --git a/playgrounds/inertia-vue/start/routes.ts b/playgrounds/inertia-vue/start/routes.ts new file mode 100644 index 0000000..f478278 --- /dev/null +++ b/playgrounds/inertia-vue/start/routes.ts @@ -0,0 +1,12 @@ +/* +|-------------------------------------------------------------------------- +| Routes file +|-------------------------------------------------------------------------- +| +| The routes file is used for defining the HTTP routes. +| +*/ + +import router from '@adonisjs/core/services/router' +router.on('/inertia').renderInertia('home', { version: 6 }) + diff --git a/playgrounds/inertia-vue/tests/bootstrap.ts b/playgrounds/inertia-vue/tests/bootstrap.ts new file mode 100644 index 0000000..e7b9766 --- /dev/null +++ b/playgrounds/inertia-vue/tests/bootstrap.ts @@ -0,0 +1,37 @@ +import { assert } from '@japa/assert' +import app from '@adonisjs/core/services/app' +import type { Config } from '@japa/runner/types' +import { pluginAdonisJS } from '@japa/plugin-adonisjs' +import testUtils from '@adonisjs/core/services/test_utils' + +/** + * This file is imported by the "bin/test.ts" entrypoint file + */ + +/** + * Configure Japa plugins in the plugins array. + * Learn more - https://japa.dev/docs/runner-config#plugins-optional + */ +export const plugins: Config['plugins'] = [assert(), pluginAdonisJS(app)] + +/** + * Configure lifecycle function to run before and after all the + * tests. + * + * The setup functions are executed before all the tests + * The teardown functions are executer after all the tests + */ +export const runnerHooks: Required> = { + setup: [], + teardown: [], +} + +/** + * Configure suites by tapping into the test suite instance. + * Learn more - https://japa.dev/docs/test-suites#lifecycle-hooks + */ +export const configureSuite: Config['configureSuite'] = (suite) => { + if (['browser', 'functional', 'e2e'].includes(suite.name)) { + return suite.setup(() => testUtils.httpServer().start()) + } +} diff --git a/playgrounds/inertia-vue/tsconfig.json b/playgrounds/inertia-vue/tsconfig.json new file mode 100644 index 0000000..bb4649e --- /dev/null +++ b/playgrounds/inertia-vue/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "@adonisjs/tsconfig/tsconfig.app.json", + "compilerOptions": { + "rootDir": "./", + "outDir": "./build" + }, + "exclude": ["./inertia/**/*", "node_modules", "build"] +} diff --git a/playgrounds/inertia-vue/vite.config.ts b/playgrounds/inertia-vue/vite.config.ts new file mode 100644 index 0000000..479eded --- /dev/null +++ b/playgrounds/inertia-vue/vite.config.ts @@ -0,0 +1,19 @@ +import { defineConfig } from 'vite' +import { getDirname } from '@adonisjs/core/helpers' +import inertia from '@adonisjs/inertia/client' +import vue from '@vitejs/plugin-vue' +import adonisjs from '@adonisjs/vite/client' + +export default defineConfig({ + plugins: [inertia({ ssr: { enabled: true, entrypoint: 'inertia/app/ssr.ts' } }), vue(), adonisjs({ entrypoints: ['inertia/app/app.ts'], reload: ['resources/views/**/*.edge'] })], + + /** + * Define aliases for importing modules from + * your frontend code + */ + resolve: { + alias: { + '~/': `${getDirname(import.meta.url)}/inertia/`, + }, + }, +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 24e14e1..3ac463a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,6 +38,9 @@ importers: '@swc/core': specifier: ^1.4.17 version: 1.4.17 + '@types/node': + specifier: ^20.12.11 + version: 20.12.11 c8: specifier: ^9.1.0 version: 9.1.0 @@ -58,13 +61,16 @@ importers: version: 3.2.5 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.4.17)(@types/node@20.12.7)(typescript@5.4.5) + version: 10.9.2(@swc/core@1.4.17)(@types/node@20.12.11)(typescript@5.4.5) tsup: specifier: ^8.0.2 - version: 8.0.2(@swc/core@1.4.17)(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.17)(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5) + version: 8.0.2(@swc/core@1.4.17)(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.17)(@types/node@20.12.11)(typescript@5.4.5))(typescript@5.4.5) typescript: specifier: ^5.4.5 version: 5.4.5 + vite: + specifier: ^5.2.11 + version: 5.2.11(@types/node@20.12.11) docs: dependencies: @@ -92,7 +98,7 @@ importers: version: 7.5.1(typescript@5.4.5) '@adonisjs/vite': specifier: ^2.0.2 - version: 2.0.2(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.10(@types/node@20.12.7)) + version: 2.0.2(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.10(@types/node@20.12.11)) '@alpinejs/persist': specifier: ^3.13.10 version: 3.13.10 @@ -113,7 +119,7 @@ importers: version: 3.6.0 '@docsearch/js': specifier: ^3.6.0 - version: 3.6.0(@algolia/client-search@4.23.3)(search-insights@2.13.0) + version: 3.6.0(@algolia/client-search@4.23.3)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0) alpinejs: specifier: ^3.13.10 version: 3.13.10 @@ -140,7 +146,7 @@ importers: version: 3.7.3 vite: specifier: ^5.2.10 - version: 5.2.10(@types/node@20.12.7) + version: 5.2.10(@types/node@20.12.11) packages/client: dependencies: @@ -156,7 +162,7 @@ importers: devDependencies: '@adonisjs/core': specifier: ^6.8.0 - version: 6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) + version: 6.8.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) '@tuyau/utils': specifier: workspace:* version: link:../utils @@ -204,6 +210,94 @@ importers: version: 10.0.2(@adonisjs/http-server@7.2.2(@adonisjs/application@8.2.2(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.2))(@adonisjs/encryption@6.0.2)(@adonisjs/events@9.0.2(@adonisjs/application@8.2.2(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.2))(@adonisjs/fold@10.1.2))(@adonisjs/fold@10.1.2)(@adonisjs/logger@6.0.3)) playgrounds/inertia-react: + dependencies: + '@adonisjs/auth': + specifier: ^9.2.1 + version: 9.2.1(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/lucid@20.6.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(better-sqlite3@9.6.0)(luxon@3.4.4))(@adonisjs/session@7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(@japa/plugin-adonisjs@3.0.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@japa/runner@3.1.4)) + '@adonisjs/core': + specifier: ^6.9.0 + version: 6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) + '@adonisjs/cors': + specifier: ^2.2.1 + version: 2.2.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2)) + '@adonisjs/inertia': + specifier: 1.0.0-27 + version: 1.0.0-27(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(@adonisjs/vite@3.0.0-11(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.11(@types/node@20.12.11)))(edge.js@6.0.2) + '@adonisjs/lucid': + specifier: ^20.6.0 + version: 20.6.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(better-sqlite3@9.6.0)(luxon@3.4.4) + '@adonisjs/session': + specifier: ^7.4.0 + version: 7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2) + '@adonisjs/shield': + specifier: ^8.1.1 + version: 8.1.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2) + '@adonisjs/static': + specifier: ^1.1.1 + version: 1.1.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2)) + '@adonisjs/vite': + specifier: ^3.0.0-11 + version: 3.0.0-11(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.11(@types/node@20.12.11)) + '@inertiajs/react': + specifier: ^1.0.16 + version: 1.0.16(react@18.3.1) + '@vinejs/vine': + specifier: ^2.0.0 + version: 2.0.0 + better-sqlite3: + specifier: ^9.6.0 + version: 9.6.0 + edge.js: + specifier: ^6.0.2 + version: 6.0.2 + luxon: + specifier: ^3.4.4 + version: 3.4.4 + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + reflect-metadata: + specifier: ^0.2.2 + version: 0.2.2 + devDependencies: + '@adonisjs/assembler': + specifier: ^7.5.2 + version: 7.5.2(typescript@5.4.5) + '@adonisjs/eslint-config': + specifier: ^1.3.0 + version: 1.3.0(eslint@8.57.0)(prettier@3.2.5)(typescript@5.4.5) + '@adonisjs/prettier-config': + specifier: ^1.3.0 + version: 1.3.0 + '@adonisjs/tsconfig': + specifier: ^1.3.0 + version: 1.3.0 + '@japa/plugin-adonisjs': + specifier: ^3.0.1 + version: 3.0.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@japa/runner@3.1.4) + '@types/luxon': + specifier: ^3.4.2 + version: 3.4.2 + '@types/react': + specifier: ^18.3.1 + version: 18.3.1 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.0 + '@vitejs/plugin-react': + specifier: ^4.2.1 + version: 4.2.1(vite@5.2.11(@types/node@20.12.11)) + hot-hook: + specifier: ^0.2.5 + version: 0.2.5 + pino-pretty: + specifier: ^11.0.0 + version: 11.0.0 + + playgrounds/inertia-solid: dependencies: '@adonisjs/auth': specifier: ^9.2.1 @@ -216,7 +310,7 @@ importers: version: 2.2.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2)) '@adonisjs/inertia': specifier: 1.0.0-25 - version: 1.0.0-25(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(@adonisjs/vite@3.0.0-11(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.10(@types/node@20.12.7)))(edge.js@6.0.2) + version: 1.0.0-25(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(@adonisjs/vite@3.0.0-11(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.11(@types/node@20.12.7)))(edge.js@6.0.2) '@adonisjs/lucid': specifier: ^20.5.1 version: 20.6.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(better-sqlite3@9.6.0)(luxon@3.4.4) @@ -231,7 +325,7 @@ importers: version: 1.1.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2)) '@adonisjs/vite': specifier: ^3.0.0-11 - version: 3.0.0-11(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.10(@types/node@20.12.7)) + version: 3.0.0-11(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.11(@types/node@20.12.7)) '@solidjs/meta': specifier: ^0.29.3 version: 0.29.3(solid-js@1.8.17) @@ -275,21 +369,97 @@ importers: '@types/luxon': specifier: ^3.4.2 version: 3.4.2 - '@types/node': - specifier: ^20.12.7 - version: 20.12.7 hot-hook: specifier: ^0.1.10 version: 0.1.10 pino-pretty: specifier: ^11.0.0 version: 11.0.0 - vite: - specifier: ^5.2.10 - version: 5.2.10(@types/node@20.12.7) vite-plugin-solid: specifier: ^2.10.2 - version: 2.10.2(solid-js@1.8.17)(vite@5.2.10(@types/node@20.12.7)) + version: 2.10.2(solid-js@1.8.17)(vite@5.2.11(@types/node@20.12.7)) + + playgrounds/inertia-vue: + dependencies: + '@adonisjs/auth': + specifier: ^9.2.1 + version: 9.2.1(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/lucid@20.6.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(better-sqlite3@9.6.0)(luxon@3.4.4))(@adonisjs/session@7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(@japa/plugin-adonisjs@3.0.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@japa/runner@3.1.4)) + '@adonisjs/core': + specifier: ^6.9.0 + version: 6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) + '@adonisjs/cors': + specifier: ^2.2.1 + version: 2.2.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2)) + '@adonisjs/inertia': + specifier: 1.0.0-27 + version: 1.0.0-27(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(@adonisjs/vite@3.0.0-11(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.11(@types/node@20.12.11)))(edge.js@6.0.2) + '@adonisjs/lucid': + specifier: ^20.6.0 + version: 20.6.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(better-sqlite3@9.6.0)(luxon@3.4.4) + '@adonisjs/session': + specifier: ^7.4.0 + version: 7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2) + '@adonisjs/shield': + specifier: ^8.1.1 + version: 8.1.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2) + '@adonisjs/static': + specifier: ^1.1.1 + version: 1.1.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2)) + '@adonisjs/vite': + specifier: ^3.0.0-11 + version: 3.0.0-11(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.11(@types/node@20.12.11)) + '@inertiajs/vue3': + specifier: ^1.0.16 + version: 1.0.16(vue@3.4.27(typescript@5.4.5)) + '@vinejs/vine': + specifier: ^2.0.0 + version: 2.0.0 + '@vue/server-renderer': + specifier: ^3.4.27 + version: 3.4.27(vue@3.4.27(typescript@5.4.5)) + better-sqlite3: + specifier: ^9.6.0 + version: 9.6.0 + edge.js: + specifier: ^6.0.2 + version: 6.0.2 + luxon: + specifier: ^3.4.4 + version: 3.4.4 + reflect-metadata: + specifier: ^0.2.2 + version: 0.2.2 + vue: + specifier: ^3.4.27 + version: 3.4.27(typescript@5.4.5) + devDependencies: + '@adonisjs/assembler': + specifier: ^7.5.2 + version: 7.5.2(typescript@5.4.5) + '@adonisjs/eslint-config': + specifier: ^1.3.0 + version: 1.3.0(eslint@8.57.0)(prettier@3.2.5)(typescript@5.4.5) + '@adonisjs/prettier-config': + specifier: ^1.3.0 + version: 1.3.0 + '@adonisjs/tsconfig': + specifier: ^1.3.0 + version: 1.3.0 + '@japa/plugin-adonisjs': + specifier: ^3.0.1 + version: 3.0.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@japa/runner@3.1.4) + '@types/luxon': + specifier: ^3.4.2 + version: 3.4.2 + '@vitejs/plugin-vue': + specifier: ^5.0.4 + version: 5.0.4(vite@5.2.11(@types/node@20.12.11))(vue@3.4.27(typescript@5.4.5)) + hot-hook: + specifier: ^0.2.5 + version: 0.2.5 + pino-pretty: + specifier: ^11.0.0 + version: 11.0.0 packages: @@ -314,6 +484,12 @@ packages: peerDependencies: typescript: ^4.0.0 || ^5.0.0 + '@adonisjs/assembler@7.5.2': + resolution: {integrity: sha512-wuyfcVaQfDlTlaowkbtL+wcUSb3PhI+NPtEmgFrhTsOmHL+OgP0wQu9K0JZcoTYLLJqfwyYPndTVHa1gHwFGXQ==} + engines: {node: '>=20.6.0'} + peerDependencies: + typescript: ^4.0.0 || ^5.0.0 + '@adonisjs/auth@9.2.1': resolution: {integrity: sha512-HS5LtVsc5X494cCcddZ7mNCF8py6PVv+nRtYPoSGkBkxFuQEomSL+t3IxH4OzcpA2+muy3fBMCpLadymDxXpTA==} engines: {node: '>=18.16.0'} @@ -368,6 +544,28 @@ packages: edge.js: optional: true + '@adonisjs/core@6.9.0': + resolution: {integrity: sha512-T9BtI2PzvoB/YJcYS02ok5K2NX9RO61L+QEoxBAvNlXb4ItP/ubdPqbFEH1KcxeWktFkFKdxfV50lj/+7IiwZw==} + engines: {node: '>=20.6.0'} + hasBin: true + peerDependencies: + '@adonisjs/assembler': ^7.5.0 + '@vinejs/vine': ^2.0.0 + argon2: ^0.31.2 || ^0.40.0 + bcrypt: ^5.1.1 + edge.js: ^6.0.1 + peerDependenciesMeta: + '@adonisjs/assembler': + optional: true + '@vinejs/vine': + optional: true + argon2: + optional: true + bcrypt: + optional: true + edge.js: + optional: true + '@adonisjs/cors@2.2.1': resolution: {integrity: sha512-qnrSG8ylpgTeZBOYEN3yXxY0PBUEg1KGDhgn9VKVFGxLKT+o9GGVOSZxUK3wG341B1zB9w5vuZN1z4M0Jitb6g==} engines: {node: '>=18.16.0'} @@ -386,6 +584,12 @@ packages: resolution: {integrity: sha512-CzK+njXTH3EK+d/UJPqckyqWocOItmLgHIUbvhpd6WvveBnfv1Dz5j9H3k+ogHqThDSJCXu1RkaRAC+HNym9gA==} engines: {node: '>=18.16.0'} + '@adonisjs/eslint-config@1.3.0': + resolution: {integrity: sha512-CBt/fl17+OCmaCd0rt79GvroDidaF/cBTc6iqjEh08IawAcanQE339kPRMgL1T43B6BDFmSahePvYU5es5j4yw==} + peerDependencies: + eslint: '>=7.4.0' + prettier: '>=2.0.0' + '@adonisjs/eslint-plugin@1.3.0': resolution: {integrity: sha512-LpN85yyuKkfo4t5PlE2Pij1GU3BcFh15cOH6BK7iDDcMkR6KduXB90hYiRu013EVIH+/sfxP5k2VjhBRc31Mqw==} @@ -435,6 +639,19 @@ packages: '@japa/api-client': optional: true + '@adonisjs/inertia@1.0.0-27': + resolution: {integrity: sha512-T3G4s8mzdPv1+JEGvq7AAgc62kBB8n0DmrQAQHy8M5vzYy0swNcKjdNwiSdG6ChJSys/yX91QwcUoyRltUAtZA==} + engines: {node: '>=20.6.0'} + peerDependencies: + '@adonisjs/core': ^6.2.0 + '@adonisjs/session': ^7.0.0 + '@adonisjs/vite': ^3.0.0-8 + '@japa/api-client': ^2.0.0 + edge.js: ^6.0.0 + peerDependenciesMeta: + '@japa/api-client': + optional: true + '@adonisjs/logger@6.0.3': resolution: {integrity: sha512-CKxIpWBEX/e6duRE6qq8GJ90NQC8q26Q0aSuj+bUO6X4mgcgawxhciJTfpxmJNj9KEUmNAeHOn0hSpTITdk8Lg==} engines: {node: '>=18.16.0'} @@ -461,6 +678,9 @@ packages: '@adonisjs/assembler': optional: true + '@adonisjs/prettier-config@1.3.0': + resolution: {integrity: sha512-StwX1dGsf8Yt5Vz48evSDGKMS5iOEgMHUYcDhkQJ79NUXopJ5PiAqb/GbjvA+XmEa+aZNPHqmafgFbfKlLAFZA==} + '@adonisjs/repl@4.0.1': resolution: {integrity: sha512-fgDRC5I8RBKHzsJPM4rRQF/OWI0K9cNihCIf4yHdqQt3mhFqWSOUjSi4sXWykdICLiddmyBO86au7i0d0dj5vQ==} engines: {node: '>=18.16.0'} @@ -730,6 +950,18 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-self@7.24.5': + resolution: {integrity: sha512-RtCJoUO2oYrYwFPtR1/jkoBEcFuI1ae9a9IMxeyAVa3a1Ap4AnxmyIKG2b2FaJKqkidw/0cxRbWN+HOs6ZWd1w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-source@7.24.1': + resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/runtime@7.24.4': resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==} engines: {node: '>=6.9.0'} @@ -1180,6 +1412,16 @@ packages: '@inertiajs/core@1.0.16': resolution: {integrity: sha512-j0nS1KwNv2aNSC10u3qfOswhSMcHSURypPlVSimyRrxKSdrLRmPidow06avunkLU6T7nI9oDXt71WOeO3wCLQg==} + '@inertiajs/react@1.0.16': + resolution: {integrity: sha512-+cWZ7yUbFHx7XcW8oSvitg7SYTAAS2WbgOrPe/18dPbWt1xNMdUgD/qh375FnO+PwLuM0fhmcze539B7LymOMw==} + peerDependencies: + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + + '@inertiajs/vue3@1.0.16': + resolution: {integrity: sha512-tHQYk9djAVRiXhJKv5T5uB15YmT/0w1iCKl0iiChRfmWtwNkUonezbtb1kHzmsLa3MJtKYaDKPEJh/X1Xfqmvg==} + peerDependencies: + vue: ^3.0.0 + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -1633,6 +1875,9 @@ packages: '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + '@types/node@20.12.11': + resolution: {integrity: sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==} + '@types/node@20.12.7': resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} @@ -1645,9 +1890,18 @@ packages: '@types/pluralize@0.0.33': resolution: {integrity: sha512-JOqsl+ZoCpP4e8TDke9W79FDcSgPAR0l6pixx2JHkhnRjvShyYiAYw2LVsnA7K08Y6DeOnaU6ujmENO4os/cYg==} + '@types/prop-types@15.7.12': + resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + '@types/qs@6.9.15': resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + '@types/react-dom@18.3.0': + resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} + + '@types/react@18.3.1': + resolution: {integrity: sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw==} + '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} @@ -1757,12 +2011,54 @@ packages: resolution: {integrity: sha512-NqgT4B2uo4mMsGI8LJdpuXNnan7F3xm10+kHaXpqI0PCYpn7+Xiic6av586mmj747/qZ3iR8o4C9cL54WU1fWw==} engines: {node: '>=18.16.0'} + '@vitejs/plugin-react@4.2.1': + resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 + + '@vitejs/plugin-vue@5.0.4': + resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + vue: ^3.2.25 + + '@vue/compiler-core@3.4.27': + resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==} + + '@vue/compiler-dom@3.4.27': + resolution: {integrity: sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==} + + '@vue/compiler-sfc@3.4.27': + resolution: {integrity: sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==} + + '@vue/compiler-ssr@3.4.27': + resolution: {integrity: sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==} + '@vue/reactivity@3.1.5': resolution: {integrity: sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==} + '@vue/reactivity@3.4.27': + resolution: {integrity: sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==} + + '@vue/runtime-core@3.4.27': + resolution: {integrity: sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==} + + '@vue/runtime-dom@3.4.27': + resolution: {integrity: sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==} + + '@vue/server-renderer@3.4.27': + resolution: {integrity: sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==} + peerDependencies: + vue: 3.4.27 + '@vue/shared@3.1.5': resolution: {integrity: sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==} + '@vue/shared@3.4.27': + resolution: {integrity: sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==} + abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} @@ -2519,6 +2815,10 @@ packages: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -2598,6 +2898,12 @@ packages: eslint-config-flat-gitignore@0.1.5: resolution: {integrity: sha512-hEZLwuZjDBGDERA49c2q7vxc8sCGv8EdBp6PQYzGOMcHIgrfG9YOM6s/4jx24zhD+wnK9AI8mgN5RxSss5nClQ==} + eslint-config-prettier@8.10.0: + resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + eslint-config-prettier@9.1.0: resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true @@ -2690,6 +2996,12 @@ packages: eslint-config-prettier: optional: true + eslint-plugin-unicorn@47.0.0: + resolution: {integrity: sha512-ivB3bKk7fDIeWOUmmMm9o3Ax9zbMz1Bsza/R2qm46ufw4T6VBFBaJIR1uN3pCKSmSXm8/9Nri8V+iUut1NhQGA==} + engines: {node: '>=16'} + peerDependencies: + eslint: '>=8.38.0' + eslint-plugin-unicorn@49.0.0: resolution: {integrity: sha512-0fHEa/8Pih5cmzFW5L7xMEfUTvI9WKeQtjmKpTUmY+BiFCDxkxrTdnURJOHKykhtwIeyYsxnecbGvDCml++z4Q==} engines: {node: '>=16'} @@ -2740,6 +3052,9 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -3125,6 +3440,9 @@ packages: hot-hook@0.1.10: resolution: {integrity: sha512-ilWzR35L2yGjk2N70lSq8/xG2vcafhu32TeDU0iY0mJZF9O6l/62ur866xzvPDNq6uC8PWLwCqAPswFMxvdRmQ==} + hot-hook@0.2.5: + resolution: {integrity: sha512-7yqflK1FMFZXOneZNSlwn6k0U1xoeeKSJNgP0B5WVPz91lp/G8RURJrHgAxDSKh/LgJZlxBBdiAFAKSQBBmpHQ==} + html-entities@2.3.3: resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} @@ -3646,6 +3964,10 @@ packages: longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + loupe@3.1.0: resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==} @@ -3667,6 +3989,9 @@ packages: resolution: {integrity: sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==} engines: {node: '>=12'} + magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + magic-string@0.30.9: resolution: {integrity: sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==} engines: {node: '>=12'} @@ -4407,12 +4732,25 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} + engines: {node: '>=0.10.0'} + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + read-package-up@11.0.0: resolution: {integrity: sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==} engines: {node: '>=18'} @@ -4597,6 +4935,9 @@ packages: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} + safe-regex@2.1.1: + resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} + safe-stable-stringify@2.4.3: resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} engines: {node: '>=10'} @@ -4604,6 +4945,9 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + search-insights@2.13.0: resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} @@ -5323,6 +5667,34 @@ packages: terser: optional: true + vite@5.2.11: + resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + vitefu@0.2.5: resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} peerDependencies: @@ -5343,6 +5715,14 @@ packages: peerDependencies: eslint: '>=6.0.0' + vue@3.4.27: + resolution: {integrity: sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} @@ -5529,6 +5909,28 @@ snapshots: transitivePeerDependencies: - babel-plugin-macros + '@adonisjs/assembler@7.5.2(typescript@5.4.5)': + dependencies: + '@adonisjs/env': 6.1.0 + '@antfu/install-pkg': 0.3.2 + '@poppinss/chokidar-ts': 4.1.4(typescript@5.4.5) + '@poppinss/cliui': 6.4.1 + '@poppinss/hooks': 7.2.3 + '@poppinss/utils': 6.7.3 + cpy: 11.0.1 + dedent: 1.5.3 + execa: 8.0.1 + fast-glob: 3.3.2 + get-port: 7.1.0 + junk: 4.0.1 + picomatch: 4.0.2 + pretty-hrtime: 1.0.3 + slash: 5.1.0 + ts-morph: 22.0.0 + typescript: 5.4.5 + transitivePeerDependencies: + - babel-plugin-macros + '@adonisjs/auth@9.2.1(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/lucid@20.6.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(better-sqlite3@9.6.0)(luxon@3.4.4))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(@japa/plugin-adonisjs@3.0.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@japa/runner@3.1.4))': dependencies: '@adonisjs/core': 6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) @@ -5541,26 +5943,100 @@ snapshots: transitivePeerDependencies: - '@adonisjs/assembler' + '@adonisjs/auth@9.2.1(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/lucid@20.6.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(better-sqlite3@9.6.0)(luxon@3.4.4))(@adonisjs/session@7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(@japa/plugin-adonisjs@3.0.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@japa/runner@3.1.4))': + dependencies: + '@adonisjs/core': 6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) + '@adonisjs/presets': 2.4.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2)) + basic-auth: 2.0.1 + optionalDependencies: + '@adonisjs/lucid': 20.6.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(better-sqlite3@9.6.0)(luxon@3.4.4) + '@adonisjs/session': 7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2) + '@japa/plugin-adonisjs': 3.0.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@japa/runner@3.1.4) + transitivePeerDependencies: + - '@adonisjs/assembler' + '@adonisjs/bodyparser@10.0.2(@adonisjs/http-server@7.2.2(@adonisjs/application@8.2.2(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.2))(@adonisjs/encryption@6.0.2)(@adonisjs/events@9.0.2(@adonisjs/application@8.2.2(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.2))(@adonisjs/fold@10.1.2))(@adonisjs/fold@10.1.2)(@adonisjs/logger@6.0.3))': dependencies: '@adonisjs/http-server': 7.2.2(@adonisjs/application@8.2.2(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.2))(@adonisjs/encryption@6.0.2)(@adonisjs/events@9.0.2(@adonisjs/application@8.2.2(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.2))(@adonisjs/fold@10.1.2))(@adonisjs/fold@10.1.2)(@adonisjs/logger@6.0.3) '@paralleldrive/cuid2': 2.2.2 '@poppinss/macroable': 1.0.2 - '@poppinss/multiparty': 2.0.1 - '@poppinss/utils': 6.7.3 - '@types/qs': 6.9.15 - bytes: 3.1.2 - file-type: 19.0.0 - inflation: 2.1.0 - media-typer: 1.1.0 - qs: 6.12.1 - raw-body: 2.5.2 - - '@adonisjs/config@5.0.2': - dependencies: + '@poppinss/multiparty': 2.0.1 + '@poppinss/utils': 6.7.3 + '@types/qs': 6.9.15 + bytes: 3.1.2 + file-type: 19.0.0 + inflation: 2.1.0 + media-typer: 1.1.0 + qs: 6.12.1 + raw-body: 2.5.2 + + '@adonisjs/config@5.0.2': + dependencies: + '@poppinss/utils': 6.7.3 + + '@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2)': + dependencies: + '@adonisjs/ace': 13.0.0 + '@adonisjs/application': 8.2.2(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.2) + '@adonisjs/bodyparser': 10.0.2(@adonisjs/http-server@7.2.2(@adonisjs/application@8.2.2(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.2))(@adonisjs/encryption@6.0.2)(@adonisjs/events@9.0.2(@adonisjs/application@8.2.2(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.2))(@adonisjs/fold@10.1.2))(@adonisjs/fold@10.1.2)(@adonisjs/logger@6.0.3)) + '@adonisjs/config': 5.0.2 + '@adonisjs/encryption': 6.0.2 + '@adonisjs/env': 6.1.0 + '@adonisjs/events': 9.0.2(@adonisjs/application@8.2.2(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.2))(@adonisjs/fold@10.1.2) + '@adonisjs/fold': 10.1.2 + '@adonisjs/hash': 9.0.3 + '@adonisjs/http-server': 7.2.2(@adonisjs/application@8.2.2(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.2))(@adonisjs/encryption@6.0.2)(@adonisjs/events@9.0.2(@adonisjs/application@8.2.2(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.2))(@adonisjs/fold@10.1.2))(@adonisjs/fold@10.1.2)(@adonisjs/logger@6.0.3) + '@adonisjs/logger': 6.0.3 + '@adonisjs/repl': 4.0.1 + '@antfu/install-pkg': 0.3.2 + '@paralleldrive/cuid2': 2.2.2 + '@poppinss/macroable': 1.0.2 + '@poppinss/utils': 6.7.3 + '@sindresorhus/is': 6.2.0 + '@types/he': 1.2.3 + he: 1.2.0 + parse-imports: 1.1.2 + pretty-hrtime: 1.0.3 + string-width: 7.1.0 + youch: 3.3.3 + youch-terminal: 2.2.3 + optionalDependencies: + '@adonisjs/assembler': 7.5.1(typescript@5.4.5) + '@vinejs/vine': 2.0.0 + edge.js: 6.0.2 + + '@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2)': + dependencies: + '@adonisjs/ace': 13.0.0 + '@adonisjs/application': 8.2.2(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.2) + '@adonisjs/bodyparser': 10.0.2(@adonisjs/http-server@7.2.2(@adonisjs/application@8.2.2(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.2))(@adonisjs/encryption@6.0.2)(@adonisjs/events@9.0.2(@adonisjs/application@8.2.2(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.2))(@adonisjs/fold@10.1.2))(@adonisjs/fold@10.1.2)(@adonisjs/logger@6.0.3)) + '@adonisjs/config': 5.0.2 + '@adonisjs/encryption': 6.0.2 + '@adonisjs/env': 6.1.0 + '@adonisjs/events': 9.0.2(@adonisjs/application@8.2.2(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.2))(@adonisjs/fold@10.1.2) + '@adonisjs/fold': 10.1.2 + '@adonisjs/hash': 9.0.3 + '@adonisjs/http-server': 7.2.2(@adonisjs/application@8.2.2(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.2))(@adonisjs/encryption@6.0.2)(@adonisjs/events@9.0.2(@adonisjs/application@8.2.2(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.2))(@adonisjs/fold@10.1.2))(@adonisjs/fold@10.1.2)(@adonisjs/logger@6.0.3) + '@adonisjs/logger': 6.0.3 + '@adonisjs/repl': 4.0.1 + '@antfu/install-pkg': 0.3.2 + '@paralleldrive/cuid2': 2.2.2 + '@poppinss/macroable': 1.0.2 '@poppinss/utils': 6.7.3 + '@sindresorhus/is': 6.2.0 + '@types/he': 1.2.3 + he: 1.2.0 + parse-imports: 1.1.2 + pretty-hrtime: 1.0.3 + string-width: 7.1.0 + youch: 3.3.3 + youch-terminal: 2.2.3 + optionalDependencies: + '@adonisjs/assembler': 7.5.2(typescript@5.4.5) + '@vinejs/vine': 2.0.0 + edge.js: 6.0.2 - '@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2)': + '@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2)': dependencies: '@adonisjs/ace': 13.0.0 '@adonisjs/application': 8.2.2(@adonisjs/config@5.0.2)(@adonisjs/fold@10.1.2) @@ -5587,7 +6063,7 @@ snapshots: youch: 3.3.3 youch-terminal: 2.2.3 optionalDependencies: - '@adonisjs/assembler': 7.5.1(typescript@5.4.5) + '@adonisjs/assembler': 7.5.2(typescript@5.4.5) '@vinejs/vine': 2.0.0 edge.js: 6.0.2 @@ -5595,6 +6071,10 @@ snapshots: dependencies: '@adonisjs/core': 6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) + '@adonisjs/cors@2.2.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))': + dependencies: + '@adonisjs/core': 6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) + '@adonisjs/encryption@6.0.2': dependencies: '@poppinss/utils': 6.7.3 @@ -5613,6 +6093,23 @@ snapshots: dotenv: 16.4.5 split-lines: 3.0.0 + '@adonisjs/eslint-config@1.3.0(eslint@8.57.0)(prettier@3.2.5)(typescript@5.4.5)': + dependencies: + '@adonisjs/eslint-plugin': 1.3.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.5) + eslint: 8.57.0 + eslint-config-prettier: 8.10.0(eslint@8.57.0) + eslint-plugin-jsonc: 2.15.1(eslint@8.57.0) + eslint-plugin-prettier: 5.1.3(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5) + eslint-plugin-unicorn: 47.0.0(eslint@8.57.0) + jsonc-eslint-parser: 2.4.0 + prettier: 3.2.5 + transitivePeerDependencies: + - '@types/eslint' + - supports-color + - typescript + '@adonisjs/eslint-plugin@1.3.0(eslint@8.57.0)(typescript@5.4.5)': dependencies: '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.5) @@ -5667,11 +6164,25 @@ snapshots: vary: 1.1.2 youch: 3.3.3 - '@adonisjs/inertia@1.0.0-25(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(@adonisjs/vite@3.0.0-11(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.10(@types/node@20.12.7)))(edge.js@6.0.2)': + '@adonisjs/inertia@1.0.0-25(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(@adonisjs/vite@3.0.0-11(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.11(@types/node@20.12.7)))(edge.js@6.0.2)': dependencies: '@adonisjs/core': 6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) '@adonisjs/session': 7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2) - '@adonisjs/vite': 3.0.0-11(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.10(@types/node@20.12.7)) + '@adonisjs/vite': 3.0.0-11(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.11(@types/node@20.12.7)) + '@poppinss/utils': 6.7.3 + '@tuyau/utils': link:packages/utils + crc-32: 1.2.2 + edge-error: 4.0.1 + edge.js: 6.0.2 + html-entities: 2.5.2 + locate-path: 7.2.0 + qs: 6.12.1 + + '@adonisjs/inertia@1.0.0-27(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(@adonisjs/vite@3.0.0-11(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.11(@types/node@20.12.11)))(edge.js@6.0.2)': + dependencies: + '@adonisjs/core': 6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) + '@adonisjs/session': 7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2) + '@adonisjs/vite': 3.0.0-11(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.11(@types/node@20.12.11)) '@poppinss/utils': 6.7.3 '@tuyau/utils': link:packages/utils crc-32: 1.2.2 @@ -5717,6 +6228,36 @@ snapshots: - supports-color - tedious + '@adonisjs/lucid@20.6.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(better-sqlite3@9.6.0)(luxon@3.4.4)': + dependencies: + '@adonisjs/core': 6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) + '@adonisjs/presets': 2.4.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2)) + '@faker-js/faker': 8.4.1 + '@poppinss/hooks': 7.2.3 + '@poppinss/macroable': 1.0.2 + '@poppinss/utils': 6.7.3 + fast-deep-equal: 3.1.3 + igniculus: 1.5.0 + kleur: 4.1.5 + knex: 3.1.0(better-sqlite3@9.6.0) + knex-dynamic-connection: 3.1.1(better-sqlite3@9.6.0) + pretty-hrtime: 1.0.3 + qs: 6.12.1 + slash: 5.1.0 + tarn: 3.0.2 + optionalDependencies: + '@adonisjs/assembler': 7.5.2(typescript@5.4.5) + luxon: 3.4.4 + transitivePeerDependencies: + - better-sqlite3 + - mysql + - mysql2 + - pg + - pg-native + - sqlite3 + - supports-color + - tedious + '@adonisjs/presets@2.4.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))': dependencies: '@adonisjs/core': 6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) @@ -5724,6 +6265,15 @@ snapshots: optionalDependencies: '@adonisjs/assembler': 7.5.1(typescript@5.4.5) + '@adonisjs/presets@2.4.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))': + dependencies: + '@adonisjs/core': 6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) + '@poppinss/utils': 6.7.3 + optionalDependencies: + '@adonisjs/assembler': 7.5.2(typescript@5.4.5) + + '@adonisjs/prettier-config@1.3.0': {} + '@adonisjs/repl@4.0.1': dependencies: '@poppinss/colors': 4.1.3 @@ -5737,6 +6287,14 @@ snapshots: optionalDependencies: edge.js: 6.0.2 + '@adonisjs/session@7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2)': + dependencies: + '@adonisjs/core': 6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) + '@poppinss/macroable': 1.0.2 + '@poppinss/utils': 6.7.3 + optionalDependencies: + edge.js: 6.0.2 + '@adonisjs/shield@8.1.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)': dependencies: '@adonisjs/core': 6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) @@ -5747,6 +6305,16 @@ snapshots: optionalDependencies: edge.js: 6.0.2 + '@adonisjs/shield@8.1.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)': + dependencies: + '@adonisjs/core': 6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) + '@adonisjs/session': 7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2) + '@poppinss/utils': 6.7.3 + csrf: 3.1.0 + helmet-csp: 3.4.0 + optionalDependencies: + edge.js: 6.0.2 + '@adonisjs/static@1.1.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))': dependencies: '@adonisjs/core': 6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) @@ -5754,31 +6322,50 @@ snapshots: transitivePeerDependencies: - supports-color + '@adonisjs/static@1.1.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))': + dependencies: + '@adonisjs/core': 6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) + serve-static: 1.15.0 + transitivePeerDependencies: + - supports-color + '@adonisjs/tsconfig@1.3.0': {} - '@adonisjs/vite@2.0.2(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.10(@types/node@20.12.7))': + '@adonisjs/vite@2.0.2(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.10(@types/node@20.12.11))': dependencies: '@adonisjs/core': 6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) defu: 6.1.4 edge-error: 4.0.1 - vite-plugin-restart: 0.4.0(vite@5.2.10(@types/node@20.12.7)) + vite-plugin-restart: 0.4.0(vite@5.2.10(@types/node@20.12.11)) optionalDependencies: '@adonisjs/shield': 8.1.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2) edge.js: 6.0.2 - vite: 5.2.10(@types/node@20.12.7) + vite: 5.2.10(@types/node@20.12.11) - '@adonisjs/vite@3.0.0-11(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.10(@types/node@20.12.7))': + '@adonisjs/vite@3.0.0-11(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.11(@types/node@20.12.7))': dependencies: '@adonisjs/core': 6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) '@poppinss/utils': 6.7.3 - '@vavite/multibuild': 4.1.1(vite@5.2.10(@types/node@20.12.7)) + '@vavite/multibuild': 4.1.1(vite@5.2.11(@types/node@20.12.7)) edge-error: 4.0.1 - vite: 5.2.10(@types/node@20.12.7) - vite-plugin-restart: 0.4.0(vite@5.2.10(@types/node@20.12.7)) + vite: 5.2.11(@types/node@20.12.7) + vite-plugin-restart: 0.4.0(vite@5.2.11(@types/node@20.12.7)) optionalDependencies: '@adonisjs/shield': 8.1.1(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2) edge.js: 6.0.2 + '@adonisjs/vite@3.0.0-11(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/shield@8.1.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2)(vite@5.2.11(@types/node@20.12.11))': + dependencies: + '@adonisjs/core': 6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) + '@poppinss/utils': 6.7.3 + '@vavite/multibuild': 4.1.1(vite@5.2.11(@types/node@20.12.11)) + edge-error: 4.0.1 + vite: 5.2.11(@types/node@20.12.11) + vite-plugin-restart: 0.4.0(vite@5.2.11(@types/node@20.12.11)) + optionalDependencies: + '@adonisjs/shield': 8.1.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@adonisjs/session@7.4.0(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(edge.js@6.0.2))(edge.js@6.0.2) + edge.js: 6.0.2 + '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0)': dependencies: '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0) @@ -6031,6 +6618,16 @@ snapshots: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-transform-react-jsx-self@7.24.5(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + '@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.5)': + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/runtime@7.24.4': dependencies: regenerator-runtime: 0.14.1 @@ -6276,9 +6873,9 @@ snapshots: '@docsearch/css@3.6.0': {} - '@docsearch/js@3.6.0(@algolia/client-search@4.23.3)(search-insights@2.13.0)': + '@docsearch/js@3.6.0(@algolia/client-search@4.23.3)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0)': dependencies: - '@docsearch/react': 3.6.0(@algolia/client-search@4.23.3)(search-insights@2.13.0) + '@docsearch/react': 3.6.0(@algolia/client-search@4.23.3)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0) preact: 10.20.2 transitivePeerDependencies: - '@algolia/client-search' @@ -6287,13 +6884,16 @@ snapshots: - react-dom - search-insights - '@docsearch/react@3.6.0(@algolia/client-search@4.23.3)(search-insights@2.13.0)': + '@docsearch/react@3.6.0(@algolia/client-search@4.23.3)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0)': dependencies: '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)(search-insights@2.13.0) '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) '@docsearch/css': 3.6.0 algoliasearch: 4.23.3 optionalDependencies: + '@types/react': 18.3.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) search-insights: 2.13.0 transitivePeerDependencies: - '@algolia/client-search' @@ -6488,6 +7088,23 @@ snapshots: transitivePeerDependencies: - debug + '@inertiajs/react@1.0.16(react@18.3.1)': + dependencies: + '@inertiajs/core': 1.0.16 + lodash.isequal: 4.5.0 + react: 18.3.1 + transitivePeerDependencies: + - debug + + '@inertiajs/vue3@1.0.16(vue@3.4.27(typescript@5.4.5))': + dependencies: + '@inertiajs/core': 1.0.16 + lodash.clonedeep: 4.5.0 + lodash.isequal: 4.5.0 + vue: 3.4.27(typescript@5.4.5) + transitivePeerDependencies: + - debug + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -6546,6 +7163,11 @@ snapshots: '@adonisjs/core': 6.8.0(@adonisjs/assembler@7.5.1(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) '@japa/runner': 3.1.4 + '@japa/plugin-adonisjs@3.0.1(@adonisjs/core@6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2))(@japa/runner@3.1.4)': + dependencies: + '@adonisjs/core': 6.9.0(@adonisjs/assembler@7.5.2(typescript@5.4.5))(@vinejs/vine@2.0.0)(edge.js@6.0.2) + '@japa/runner': 3.1.4 + '@japa/runner@3.1.4': dependencies: '@japa/core': 9.0.1 @@ -6589,7 +7211,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.12.7 + '@types/node': 20.12.11 '@types/yargs': 17.0.32 chalk: 4.1.2 @@ -6965,6 +7587,10 @@ snapshots: '@types/node@12.20.55': {} + '@types/node@20.12.11': + dependencies: + undici-types: 5.26.5 + '@types/node@20.12.7': dependencies: undici-types: 5.26.5 @@ -6975,8 +7601,19 @@ snapshots: '@types/pluralize@0.0.33': {} + '@types/prop-types@15.7.12': {} + '@types/qs@6.9.15': {} + '@types/react-dom@18.3.0': + dependencies: + '@types/react': 18.3.1 + + '@types/react@18.3.1': + dependencies: + '@types/prop-types': 15.7.12 + csstype: 3.1.3 + '@types/semver@7.5.8': {} '@types/stack-utils@2.0.3': {} @@ -7104,12 +7741,19 @@ snapshots: - supports-color - typescript - '@vavite/multibuild@4.1.1(vite@5.2.10(@types/node@20.12.7))': + '@vavite/multibuild@4.1.1(vite@5.2.11(@types/node@20.12.11))': dependencies: - '@types/node': 20.12.7 + '@types/node': 20.12.11 cac: 6.7.14 picocolors: 1.0.0 - vite: 5.2.10(@types/node@20.12.7) + vite: 5.2.11(@types/node@20.12.11) + + '@vavite/multibuild@4.1.1(vite@5.2.11(@types/node@20.12.7))': + dependencies: + '@types/node': 20.12.11 + cac: 6.7.14 + picocolors: 1.0.0 + vite: 5.2.11(@types/node@20.12.7) '@vinejs/compiler@2.5.0': {} @@ -7124,12 +7768,81 @@ snapshots: normalize-url: 8.0.1 validator: 13.11.0 + '@vitejs/plugin-react@4.2.1(vite@5.2.11(@types/node@20.12.11))': + dependencies: + '@babel/core': 7.24.5 + '@babel/plugin-transform-react-jsx-self': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.5) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.2 + vite: 5.2.11(@types/node@20.12.11) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-vue@5.0.4(vite@5.2.11(@types/node@20.12.11))(vue@3.4.27(typescript@5.4.5))': + dependencies: + vite: 5.2.11(@types/node@20.12.11) + vue: 3.4.27(typescript@5.4.5) + + '@vue/compiler-core@3.4.27': + dependencies: + '@babel/parser': 7.24.5 + '@vue/shared': 3.4.27 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + + '@vue/compiler-dom@3.4.27': + dependencies: + '@vue/compiler-core': 3.4.27 + '@vue/shared': 3.4.27 + + '@vue/compiler-sfc@3.4.27': + dependencies: + '@babel/parser': 7.24.5 + '@vue/compiler-core': 3.4.27 + '@vue/compiler-dom': 3.4.27 + '@vue/compiler-ssr': 3.4.27 + '@vue/shared': 3.4.27 + estree-walker: 2.0.2 + magic-string: 0.30.10 + postcss: 8.4.38 + source-map-js: 1.2.0 + + '@vue/compiler-ssr@3.4.27': + dependencies: + '@vue/compiler-dom': 3.4.27 + '@vue/shared': 3.4.27 + '@vue/reactivity@3.1.5': dependencies: '@vue/shared': 3.1.5 + '@vue/reactivity@3.4.27': + dependencies: + '@vue/shared': 3.4.27 + + '@vue/runtime-core@3.4.27': + dependencies: + '@vue/reactivity': 3.4.27 + '@vue/shared': 3.4.27 + + '@vue/runtime-dom@3.4.27': + dependencies: + '@vue/runtime-core': 3.4.27 + '@vue/shared': 3.4.27 + csstype: 3.1.3 + + '@vue/server-renderer@3.4.27(vue@3.4.27(typescript@5.4.5))': + dependencies: + '@vue/compiler-ssr': 3.4.27 + '@vue/shared': 3.4.27 + vue: 3.4.27(typescript@5.4.5) + '@vue/shared@3.1.5': {} + '@vue/shared@3.4.27': {} + abort-controller@3.0.0: dependencies: event-target-shim: 5.0.1 @@ -7893,6 +8606,8 @@ snapshots: ansi-colors: 4.1.3 strip-ansi: 6.0.1 + entities@4.5.0: {} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -8050,6 +8765,10 @@ snapshots: find-up: 7.0.0 parse-gitignore: 2.0.0 + eslint-config-prettier@8.10.0(eslint@8.57.0): + dependencies: + eslint: 8.57.0 + eslint-config-prettier@9.1.0(eslint@8.57.0): dependencies: eslint: 8.57.0 @@ -8149,6 +8868,15 @@ snapshots: - supports-color - typescript + eslint-plugin-prettier@5.1.3(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5): + dependencies: + eslint: 8.57.0 + prettier: 3.2.5 + prettier-linter-helpers: 1.0.0 + synckit: 0.8.8 + optionalDependencies: + eslint-config-prettier: 8.10.0(eslint@8.57.0) + eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5): dependencies: eslint: 8.57.0 @@ -8158,6 +8886,26 @@ snapshots: optionalDependencies: eslint-config-prettier: 9.1.0(eslint@8.57.0) + eslint-plugin-unicorn@47.0.0(eslint@8.57.0): + dependencies: + '@babel/helper-validator-identifier': 7.24.5 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + ci-info: 3.9.0 + clean-regexp: 1.0.0 + eslint: 8.57.0 + esquery: 1.5.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + jsesc: 3.0.2 + lodash: 4.17.21 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.27 + regjsparser: 0.10.0 + safe-regex: 2.1.1 + semver: 7.6.0 + strip-indent: 3.0.0 + eslint-plugin-unicorn@49.0.0(eslint@8.57.0): dependencies: '@babel/helper-validator-identifier': 7.22.20 @@ -8260,6 +9008,8 @@ snapshots: estraverse@5.3.0: {} + estree-walker@2.0.2: {} + esutils@2.0.3: {} etag@1.8.1: {} @@ -8683,6 +9433,13 @@ snapshots: picomatch: 4.0.2 read-package-up: 11.0.0 + hot-hook@0.2.5: + dependencies: + chokidar: 3.6.0 + fast-glob: 3.3.2 + picomatch: 4.0.2 + read-package-up: 11.0.0 + html-entities@2.3.3: {} html-entities@2.5.2: {} @@ -9140,6 +9897,10 @@ snapshots: longest-streak@3.1.0: {} + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + loupe@3.1.0: dependencies: get-func-name: 2.0.2 @@ -9161,6 +9922,10 @@ snapshots: luxon@3.4.4: {} + magic-string@0.30.10: + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + magic-string@0.30.9: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 @@ -9949,13 +10714,13 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.17)(@types/node@20.12.7)(typescript@5.4.5)): + postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.17)(@types/node@20.12.11)(typescript@5.4.5)): dependencies: lilconfig: 3.1.1 yaml: 2.4.1 optionalDependencies: postcss: 8.4.38 - ts-node: 10.9.2(@swc/core@1.4.17)(@types/node@20.12.7)(typescript@5.4.5) + ts-node: 10.9.2(@swc/core@1.4.17)(@types/node@20.12.11)(typescript@5.4.5) postcss-selector-parser@6.0.16: dependencies: @@ -10075,10 +10840,22 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + react-is@16.13.1: {} react-is@18.2.0: {} + react-refresh@0.14.2: {} + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + read-package-up@11.0.0: dependencies: find-up-simple: 1.0.0 @@ -10353,10 +11130,18 @@ snapshots: es-errors: 1.3.0 is-regex: 1.1.4 + safe-regex@2.1.1: + dependencies: + regexp-tree: 0.1.27 + safe-stable-stringify@2.4.3: {} safer-buffer@2.1.2: {} + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + search-insights@2.13.0: {} secure-json-parse@2.7.0: {} @@ -10813,14 +11598,14 @@ snapshots: '@ts-morph/common': 0.23.0 code-block-writer: 13.0.1 - ts-node@10.9.2(@swc/core@1.4.17)(@types/node@20.12.7)(typescript@5.4.5): + ts-node@10.9.2(@swc/core@1.4.17)(@types/node@20.12.11)(typescript@5.4.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.12.7 + '@types/node': 20.12.11 acorn: 8.11.3 acorn-walk: 8.3.2 arg: 4.1.3 @@ -10837,7 +11622,7 @@ snapshots: tsscmp@1.0.6: {} - tsup@8.0.2(@swc/core@1.4.17)(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.17)(@types/node@20.12.7)(typescript@5.4.5))(typescript@5.4.5): + tsup@8.0.2(@swc/core@1.4.17)(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.17)(@types/node@20.12.11)(typescript@5.4.5))(typescript@5.4.5): dependencies: bundle-require: 4.0.2(esbuild@0.19.12) cac: 6.7.14 @@ -10847,7 +11632,7 @@ snapshots: execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.17)(@types/node@20.12.7)(typescript@5.4.5)) + postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.4.17)(@types/node@20.12.11)(typescript@5.4.5)) resolve-from: 5.0.0 rollup: 4.14.2 source-map: 0.8.0-beta.0 @@ -11094,12 +11879,22 @@ snapshots: unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 - vite-plugin-restart@0.4.0(vite@5.2.10(@types/node@20.12.7)): + vite-plugin-restart@0.4.0(vite@5.2.10(@types/node@20.12.11)): dependencies: micromatch: 4.0.5 - vite: 5.2.10(@types/node@20.12.7) + vite: 5.2.10(@types/node@20.12.11) - vite-plugin-solid@2.10.2(solid-js@1.8.17)(vite@5.2.10(@types/node@20.12.7)): + vite-plugin-restart@0.4.0(vite@5.2.11(@types/node@20.12.11)): + dependencies: + micromatch: 4.0.5 + vite: 5.2.11(@types/node@20.12.11) + + vite-plugin-restart@0.4.0(vite@5.2.11(@types/node@20.12.7)): + dependencies: + micromatch: 4.0.5 + vite: 5.2.11(@types/node@20.12.7) + + vite-plugin-solid@2.10.2(solid-js@1.8.17)(vite@5.2.11(@types/node@20.12.7)): dependencies: '@babel/core': 7.24.5 '@types/babel__core': 7.20.5 @@ -11107,12 +11902,30 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.8.17 solid-refresh: 0.6.3(solid-js@1.8.17) - vite: 5.2.10(@types/node@20.12.7) - vitefu: 0.2.5(vite@5.2.10(@types/node@20.12.7)) + vite: 5.2.11(@types/node@20.12.7) + vitefu: 0.2.5(vite@5.2.11(@types/node@20.12.7)) transitivePeerDependencies: - supports-color - vite@5.2.10(@types/node@20.12.7): + vite@5.2.10(@types/node@20.12.11): + dependencies: + esbuild: 0.20.2 + postcss: 8.4.38 + rollup: 4.14.2 + optionalDependencies: + '@types/node': 20.12.11 + fsevents: 2.3.3 + + vite@5.2.11(@types/node@20.12.11): + dependencies: + esbuild: 0.20.2 + postcss: 8.4.38 + rollup: 4.14.2 + optionalDependencies: + '@types/node': 20.12.11 + fsevents: 2.3.3 + + vite@5.2.11(@types/node@20.12.7): dependencies: esbuild: 0.20.2 postcss: 8.4.38 @@ -11121,9 +11934,9 @@ snapshots: '@types/node': 20.12.7 fsevents: 2.3.3 - vitefu@0.2.5(vite@5.2.10(@types/node@20.12.7)): + vitefu@0.2.5(vite@5.2.11(@types/node@20.12.7)): optionalDependencies: - vite: 5.2.10(@types/node@20.12.7) + vite: 5.2.11(@types/node@20.12.7) vscode-oniguruma@1.7.0: {} @@ -11142,6 +11955,16 @@ snapshots: transitivePeerDependencies: - supports-color + vue@3.4.27(typescript@5.4.5): + dependencies: + '@vue/compiler-dom': 3.4.27 + '@vue/compiler-sfc': 3.4.27 + '@vue/runtime-dom': 3.4.27 + '@vue/server-renderer': 3.4.27(vue@3.4.27(typescript@5.4.5)) + '@vue/shared': 3.4.27 + optionalDependencies: + typescript: 5.4.5 + wcwidth@1.0.1: dependencies: defaults: 1.0.4