From 966286064c2ca61384287bc0b6b0df1ddb7001b8 Mon Sep 17 00:00:00 2001
From: Naoya Miyagawa <38244632+NaoyaMiyagawa@users.noreply.github.com>
Date: Mon, 16 Sep 2024 13:28:55 +0800
Subject: [PATCH] style: Add formatter rule & apply (#41)
---
biome.json | 45 +-
.../.laravel-typegen-tmp/History.json | 112 +-
.../.laravel-typegen-tmp/Job.json | 184 +-
.../.laravel-typegen-tmp/Post.json | 188 +-
.../.laravel-typegen-tmp/User.json | 290 +-
.../.laravel-typegen-tmp/UserContact.json | 140 +-
.../.laravel-typegen-tmp/route.json | 474 +-
examples/laravel10-app/jsconfig.json | 14 +-
examples/laravel10-app/package-lock.json | 4480 ++++++++---------
examples/laravel10-app/package.json | 52 +-
examples/laravel10-app/postcss.config.js | 8 +-
.../resources/js/Components/Checkbox.vue | 26 +-
.../resources/js/Components/DangerButton.vue | 2 +-
.../resources/js/Components/Dropdown.vue | 44 +-
.../resources/js/Components/Modal.vue | 70 +-
.../resources/js/Components/NavLink.vue | 6 +-
.../resources/js/Components/PrimaryButton.vue | 2 +-
.../js/Components/ResponsiveNavLink.vue | 6 +-
.../js/Components/SecondaryButton.vue | 2 +-
.../resources/js/Components/TextInput.vue | 6 +-
.../js/Layouts/AuthenticatedLayout.vue | 6 +-
.../js/Pages/Auth/ConfirmPassword.vue | 8 +-
.../js/Pages/Auth/ForgotPassword.vue | 6 +-
.../resources/js/Pages/Auth/Login.vue | 16 +-
.../resources/js/Pages/Auth/Register.vue | 16 +-
.../resources/js/Pages/Auth/ResetPassword.vue | 18 +-
.../resources/js/Pages/Auth/VerifyEmail.vue | 6 +-
.../resources/js/Pages/Profile/Edit.vue | 4 +-
.../Pages/Profile/Partials/DeleteUserForm.vue | 22 +-
.../Profile/Partials/UpdatePasswordForm.vue | 34 +-
.../Partials/UpdateProfileInformationForm.vue | 14 +-
.../resources/js/Pages/Welcome.vue | 14 +-
examples/laravel10-app/resources/js/app.ts | 30 +-
.../resources/js/types/route.d.ts | 44 +-
examples/laravel10-app/tailwind.config.js | 28 +-
examples/laravel10-app/tsconfig.json | 40 +-
examples/laravel10-app/vite.config.ts | 28 +-
package.json | 76 +-
src/cli.ts | 84 +-
src/formRequests/createFormRequestTypes.ts | 154 +-
src/generate.ts | 420 +-
src/models/createEnumTypes.ts | 90 +-
src/models/createLarvelEnumTypes.ts | 92 +-
src/models/createSource.ts | 62 +-
src/models/createTypes.ts | 258 +-
src/print.ts | 16 +-
src/routes/createSource.ts | 48 +-
src/routes/createTypes.ts | 92 +-
src/types/index.ts | 118 +-
src/types/inertia.ts | 32 +-
src/utils.ts | 34 +-
templates/route.d.ts | 44 +-
tsconfig.json | 30 +-
53 files changed, 4071 insertions(+), 4064 deletions(-)
diff --git a/biome.json b/biome.json
index 809b527..30fc7fb 100644
--- a/biome.json
+++ b/biome.json
@@ -1,22 +1,27 @@
{
- "$schema": "https://biomejs.dev/schemas/1.7.3/schema.json",
- "organizeImports": {
- "enabled": true
- },
- "files": {
- "ignore": [
- "dist",
- "examples/laravel10-app/resources/js/types",
- "examples/laravel10-app/resources/js/ziggy.js",
- "examples/laravel10-app/public",
- "examples/laravel10-app/composer.json",
- "vendor"
- ]
- },
- "linter": {
- "enabled": true,
- "rules": {
- "recommended": true
- }
- }
+ "$schema": "https://biomejs.dev/schemas/1.7.3/schema.json",
+ "organizeImports": {
+ "enabled": true
+ },
+ "files": {
+ "ignore": [
+ "dist",
+ "examples/laravel10-app/resources/js/types",
+ "examples/laravel10-app/resources/js/ziggy.js",
+ "examples/laravel10-app/public",
+ "examples/laravel10-app/composer.json",
+ "vendor"
+ ]
+ },
+ "linter": {
+ "enabled": true,
+ "rules": {
+ "recommended": true
+ }
+ },
+ "formatter": {
+ "enabled": true,
+ "indentStyle": "space",
+ "indentWidth": 2
+ }
}
diff --git a/examples/laravel10-app/.laravel-typegen-tmp/History.json b/examples/laravel10-app/.laravel-typegen-tmp/History.json
index fc328a6..b9d9e16 100644
--- a/examples/laravel10-app/.laravel-typegen-tmp/History.json
+++ b/examples/laravel10-app/.laravel-typegen-tmp/History.json
@@ -1,58 +1,58 @@
{
- "class": "App\\Models\\Common\\History",
- "database": "mysql",
- "table": "histories",
- "policy": null,
- "attributes": [
- {
- "name": "id",
- "type": "bigint unsigned",
- "increments": true,
- "nullable": false,
- "default": null,
- "unique": true,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": "int"
- },
- {
- "name": "log",
- "type": "string(255)",
- "increments": false,
- "nullable": false,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": null
- },
- {
- "name": "created_at",
- "type": "datetime",
- "increments": false,
- "nullable": true,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": "datetime"
- },
- {
- "name": "updated_at",
- "type": "datetime",
- "increments": false,
- "nullable": true,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": "datetime"
- }
- ],
- "relations": [],
- "observers": []
+ "class": "App\\Models\\Common\\History",
+ "database": "mysql",
+ "table": "histories",
+ "policy": null,
+ "attributes": [
+ {
+ "name": "id",
+ "type": "bigint unsigned",
+ "increments": true,
+ "nullable": false,
+ "default": null,
+ "unique": true,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": "int"
+ },
+ {
+ "name": "log",
+ "type": "string(255)",
+ "increments": false,
+ "nullable": false,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": null
+ },
+ {
+ "name": "created_at",
+ "type": "datetime",
+ "increments": false,
+ "nullable": true,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": "datetime"
+ },
+ {
+ "name": "updated_at",
+ "type": "datetime",
+ "increments": false,
+ "nullable": true,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": "datetime"
+ }
+ ],
+ "relations": [],
+ "observers": []
}
diff --git a/examples/laravel10-app/.laravel-typegen-tmp/Job.json b/examples/laravel10-app/.laravel-typegen-tmp/Job.json
index 022152e..bfcc84f 100644
--- a/examples/laravel10-app/.laravel-typegen-tmp/Job.json
+++ b/examples/laravel10-app/.laravel-typegen-tmp/Job.json
@@ -1,94 +1,94 @@
{
- "class": "App\\Models\\Job",
- "database": "mysql",
- "table": "jobs",
- "policy": null,
- "attributes": [
- {
- "name": "id",
- "type": "bigint unsigned",
- "increments": true,
- "nullable": false,
- "default": null,
- "unique": true,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": "int"
- },
- {
- "name": "queue",
- "type": "string(255)",
- "increments": false,
- "nullable": false,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": null
- },
- {
- "name": "payload",
- "type": "text",
- "increments": false,
- "nullable": false,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": null
- },
- {
- "name": "attempts",
- "type": "boolean unsigned",
- "increments": false,
- "nullable": false,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": null
- },
- {
- "name": "reserved_at",
- "type": "integer unsigned",
- "increments": false,
- "nullable": true,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": null
- },
- {
- "name": "available_at",
- "type": "integer unsigned",
- "increments": false,
- "nullable": false,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": null
- },
- {
- "name": "created_at",
- "type": "integer unsigned",
- "increments": false,
- "nullable": false,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": "datetime"
- }
- ],
- "relations": [],
- "observers": []
+ "class": "App\\Models\\Job",
+ "database": "mysql",
+ "table": "jobs",
+ "policy": null,
+ "attributes": [
+ {
+ "name": "id",
+ "type": "bigint unsigned",
+ "increments": true,
+ "nullable": false,
+ "default": null,
+ "unique": true,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": "int"
+ },
+ {
+ "name": "queue",
+ "type": "string(255)",
+ "increments": false,
+ "nullable": false,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": null
+ },
+ {
+ "name": "payload",
+ "type": "text",
+ "increments": false,
+ "nullable": false,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": null
+ },
+ {
+ "name": "attempts",
+ "type": "boolean unsigned",
+ "increments": false,
+ "nullable": false,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": null
+ },
+ {
+ "name": "reserved_at",
+ "type": "integer unsigned",
+ "increments": false,
+ "nullable": true,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": null
+ },
+ {
+ "name": "available_at",
+ "type": "integer unsigned",
+ "increments": false,
+ "nullable": false,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": null
+ },
+ {
+ "name": "created_at",
+ "type": "integer unsigned",
+ "increments": false,
+ "nullable": false,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": "datetime"
+ }
+ ],
+ "relations": [],
+ "observers": []
}
diff --git a/examples/laravel10-app/.laravel-typegen-tmp/Post.json b/examples/laravel10-app/.laravel-typegen-tmp/Post.json
index 7cff79d..239d2d1 100644
--- a/examples/laravel10-app/.laravel-typegen-tmp/Post.json
+++ b/examples/laravel10-app/.laravel-typegen-tmp/Post.json
@@ -1,96 +1,96 @@
{
- "class": "App\\Models\\Post",
- "database": "mysql",
- "table": "posts",
- "policy": null,
- "attributes": [
- {
- "name": "id",
- "type": "bigint unsigned",
- "increments": true,
- "nullable": false,
- "default": null,
- "unique": true,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": "int"
- },
- {
- "name": "title",
- "type": "string(255)",
- "increments": false,
- "nullable": false,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": null
- },
- {
- "name": "body",
- "type": "string(255)",
- "increments": false,
- "nullable": false,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": null
- },
- {
- "name": "type",
- "type": "string",
- "increments": false,
- "nullable": false,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": "App\\Enums\\PostType"
- },
- {
- "name": "user_id",
- "type": "bigint unsigned",
- "increments": false,
- "nullable": false,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": null
- },
- {
- "name": "created_at",
- "type": "datetime",
- "increments": false,
- "nullable": true,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": "datetime"
- },
- {
- "name": "updated_at",
- "type": "datetime",
- "increments": false,
- "nullable": true,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": "datetime"
- }
- ],
- "relations": [
- { "name": "author", "type": "BelongsTo", "related": "App\\Models\\User" }
- ],
- "observers": []
+ "class": "App\\Models\\Post",
+ "database": "mysql",
+ "table": "posts",
+ "policy": null,
+ "attributes": [
+ {
+ "name": "id",
+ "type": "bigint unsigned",
+ "increments": true,
+ "nullable": false,
+ "default": null,
+ "unique": true,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": "int"
+ },
+ {
+ "name": "title",
+ "type": "string(255)",
+ "increments": false,
+ "nullable": false,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": null
+ },
+ {
+ "name": "body",
+ "type": "string(255)",
+ "increments": false,
+ "nullable": false,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": null
+ },
+ {
+ "name": "type",
+ "type": "string",
+ "increments": false,
+ "nullable": false,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": "App\\Enums\\PostType"
+ },
+ {
+ "name": "user_id",
+ "type": "bigint unsigned",
+ "increments": false,
+ "nullable": false,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": null
+ },
+ {
+ "name": "created_at",
+ "type": "datetime",
+ "increments": false,
+ "nullable": true,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": "datetime"
+ },
+ {
+ "name": "updated_at",
+ "type": "datetime",
+ "increments": false,
+ "nullable": true,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": "datetime"
+ }
+ ],
+ "relations": [
+ { "name": "author", "type": "BelongsTo", "related": "App\\Models\\User" }
+ ],
+ "observers": []
}
diff --git a/examples/laravel10-app/.laravel-typegen-tmp/User.json b/examples/laravel10-app/.laravel-typegen-tmp/User.json
index 8fee873..fac0f32 100644
--- a/examples/laravel10-app/.laravel-typegen-tmp/User.json
+++ b/examples/laravel10-app/.laravel-typegen-tmp/User.json
@@ -1,147 +1,147 @@
{
- "class": "App\\Models\\User",
- "database": "mysql",
- "table": "users",
- "policy": null,
- "attributes": [
- {
- "name": "id",
- "type": "bigint unsigned",
- "increments": true,
- "nullable": false,
- "default": null,
- "unique": true,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": "int"
- },
- {
- "name": "name",
- "type": "string(255)",
- "increments": false,
- "nullable": false,
- "default": null,
- "unique": false,
- "fillable": true,
- "hidden": false,
- "appended": null,
- "cast": null
- },
- {
- "name": "email",
- "type": "string(255)",
- "increments": false,
- "nullable": false,
- "default": null,
- "unique": true,
- "fillable": true,
- "hidden": false,
- "appended": null,
- "cast": null
- },
- {
- "name": "gender",
- "type": "string",
- "increments": false,
- "nullable": false,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": "App\\Enums\\GenderType"
- },
- {
- "name": "email_verified_at",
- "type": "datetime",
- "increments": false,
- "nullable": true,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": "datetime"
- },
- {
- "name": "password",
- "type": "string(255)",
- "increments": false,
- "nullable": false,
- "default": null,
- "unique": false,
- "fillable": true,
- "hidden": true,
- "appended": null,
- "cast": null
- },
- {
- "name": "bio",
- "type": "text(65535)",
- "increments": false,
- "nullable": true,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": null
- },
- {
- "name": "remember_token",
- "type": "string(100)",
- "increments": false,
- "nullable": true,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": true,
- "appended": null,
- "cast": null
- },
- {
- "name": "created_at",
- "type": "datetime",
- "increments": false,
- "nullable": true,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": "datetime"
- },
- {
- "name": "updated_at",
- "type": "datetime",
- "increments": false,
- "nullable": true,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": "datetime"
- }
- ],
- "relations": [
- { "name": "posts", "type": "HasMany", "related": "App\\Models\\Post" },
- {
- "name": "userContacts",
- "type": "HasMany",
- "related": "App\\Models\\UserContact"
- },
- {
- "name": "tokens",
- "type": "MorphMany",
- "related": "Laravel\\Sanctum\\PersonalAccessToken"
- },
- {
- "name": "notifications",
- "type": "MorphMany",
- "related": "Illuminate\\Notifications\\DatabaseNotification"
- }
- ],
- "observers": []
+ "class": "App\\Models\\User",
+ "database": "mysql",
+ "table": "users",
+ "policy": null,
+ "attributes": [
+ {
+ "name": "id",
+ "type": "bigint unsigned",
+ "increments": true,
+ "nullable": false,
+ "default": null,
+ "unique": true,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": "int"
+ },
+ {
+ "name": "name",
+ "type": "string(255)",
+ "increments": false,
+ "nullable": false,
+ "default": null,
+ "unique": false,
+ "fillable": true,
+ "hidden": false,
+ "appended": null,
+ "cast": null
+ },
+ {
+ "name": "email",
+ "type": "string(255)",
+ "increments": false,
+ "nullable": false,
+ "default": null,
+ "unique": true,
+ "fillable": true,
+ "hidden": false,
+ "appended": null,
+ "cast": null
+ },
+ {
+ "name": "gender",
+ "type": "string",
+ "increments": false,
+ "nullable": false,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": "App\\Enums\\GenderType"
+ },
+ {
+ "name": "email_verified_at",
+ "type": "datetime",
+ "increments": false,
+ "nullable": true,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": "datetime"
+ },
+ {
+ "name": "password",
+ "type": "string(255)",
+ "increments": false,
+ "nullable": false,
+ "default": null,
+ "unique": false,
+ "fillable": true,
+ "hidden": true,
+ "appended": null,
+ "cast": null
+ },
+ {
+ "name": "bio",
+ "type": "text(65535)",
+ "increments": false,
+ "nullable": true,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": null
+ },
+ {
+ "name": "remember_token",
+ "type": "string(100)",
+ "increments": false,
+ "nullable": true,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": true,
+ "appended": null,
+ "cast": null
+ },
+ {
+ "name": "created_at",
+ "type": "datetime",
+ "increments": false,
+ "nullable": true,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": "datetime"
+ },
+ {
+ "name": "updated_at",
+ "type": "datetime",
+ "increments": false,
+ "nullable": true,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": "datetime"
+ }
+ ],
+ "relations": [
+ { "name": "posts", "type": "HasMany", "related": "App\\Models\\Post" },
+ {
+ "name": "userContacts",
+ "type": "HasMany",
+ "related": "App\\Models\\UserContact"
+ },
+ {
+ "name": "tokens",
+ "type": "MorphMany",
+ "related": "Laravel\\Sanctum\\PersonalAccessToken"
+ },
+ {
+ "name": "notifications",
+ "type": "MorphMany",
+ "related": "Illuminate\\Notifications\\DatabaseNotification"
+ }
+ ],
+ "observers": []
}
diff --git a/examples/laravel10-app/.laravel-typegen-tmp/UserContact.json b/examples/laravel10-app/.laravel-typegen-tmp/UserContact.json
index 34d60d3..1814bf8 100644
--- a/examples/laravel10-app/.laravel-typegen-tmp/UserContact.json
+++ b/examples/laravel10-app/.laravel-typegen-tmp/UserContact.json
@@ -1,72 +1,72 @@
{
- "class": "App\\Models\\UserContact",
- "database": "mysql",
- "table": "user_contacts",
- "policy": null,
- "attributes": [
- {
- "name": "id",
- "type": "bigint unsigned",
- "increments": true,
- "nullable": false,
- "default": null,
- "unique": true,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": "int"
- },
- {
- "name": "phone_number",
- "type": "string(255)",
- "increments": false,
- "nullable": false,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": null
- },
- {
- "name": "user_id",
- "type": "bigint unsigned",
- "increments": false,
- "nullable": false,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": null
- },
- {
- "name": "created_at",
- "type": "datetime",
- "increments": false,
- "nullable": true,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": "datetime"
- },
- {
- "name": "updated_at",
- "type": "datetime",
- "increments": false,
- "nullable": true,
- "default": null,
- "unique": false,
- "fillable": false,
- "hidden": false,
- "appended": null,
- "cast": "datetime"
- }
- ],
- "relations": [
- { "name": "user", "type": "BelongsTo", "related": "App\\Models\\User" }
- ],
- "observers": []
+ "class": "App\\Models\\UserContact",
+ "database": "mysql",
+ "table": "user_contacts",
+ "policy": null,
+ "attributes": [
+ {
+ "name": "id",
+ "type": "bigint unsigned",
+ "increments": true,
+ "nullable": false,
+ "default": null,
+ "unique": true,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": "int"
+ },
+ {
+ "name": "phone_number",
+ "type": "string(255)",
+ "increments": false,
+ "nullable": false,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": null
+ },
+ {
+ "name": "user_id",
+ "type": "bigint unsigned",
+ "increments": false,
+ "nullable": false,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": null
+ },
+ {
+ "name": "created_at",
+ "type": "datetime",
+ "increments": false,
+ "nullable": true,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": "datetime"
+ },
+ {
+ "name": "updated_at",
+ "type": "datetime",
+ "increments": false,
+ "nullable": true,
+ "default": null,
+ "unique": false,
+ "fillable": false,
+ "hidden": false,
+ "appended": null,
+ "cast": "datetime"
+ }
+ ],
+ "relations": [
+ { "name": "user", "type": "BelongsTo", "related": "App\\Models\\User" }
+ ],
+ "observers": []
}
diff --git a/examples/laravel10-app/.laravel-typegen-tmp/route.json b/examples/laravel10-app/.laravel-typegen-tmp/route.json
index 0ebc672..6327b23 100644
--- a/examples/laravel10-app/.laravel-typegen-tmp/route.json
+++ b/examples/laravel10-app/.laravel-typegen-tmp/route.json
@@ -1,239 +1,239 @@
[
- {
- "domain": null,
- "method": "GET|HEAD",
- "uri": "/",
- "name": null,
- "action": "Closure",
- "middleware": ["web"]
- },
- {
- "domain": null,
- "method": "GET|HEAD",
- "uri": "api/user",
- "name": null,
- "action": "Closure",
- "middleware": ["api", "App\\Http\\Middleware\\Authenticate:sanctum"]
- },
- {
- "domain": null,
- "method": "GET|HEAD",
- "uri": "confirm-password",
- "name": "password.confirm",
- "action": "App\\Http\\Controllers\\Auth\\ConfirmablePasswordController@show",
- "middleware": ["web", "App\\Http\\Middleware\\Authenticate"]
- },
- {
- "domain": null,
- "method": "POST",
- "uri": "confirm-password",
- "name": null,
- "action": "App\\Http\\Controllers\\Auth\\ConfirmablePasswordController@store",
- "middleware": ["web", "App\\Http\\Middleware\\Authenticate"]
- },
- {
- "domain": null,
- "method": "GET|HEAD",
- "uri": "dashboard",
- "name": "dashboard",
- "action": "App\\Http\\Controllers\\DashboardController",
- "middleware": [
- "web",
- "App\\Http\\Middleware\\Authenticate",
- "Illuminate\\Auth\\Middleware\\EnsureEmailIsVerified"
- ]
- },
- {
- "domain": null,
- "method": "POST",
- "uri": "email/verification-notification",
- "name": "verification.send",
- "action": "App\\Http\\Controllers\\Auth\\EmailVerificationNotificationController@store",
- "middleware": [
- "web",
- "App\\Http\\Middleware\\Authenticate",
- "Illuminate\\Routing\\Middleware\\ThrottleRequests:6,1"
- ]
- },
- {
- "domain": null,
- "method": "GET|HEAD",
- "uri": "forgot-password",
- "name": "password.request",
- "action": "App\\Http\\Controllers\\Auth\\PasswordResetLinkController@create",
- "middleware": ["web", "App\\Http\\Middleware\\RedirectIfAuthenticated"]
- },
- {
- "domain": null,
- "method": "POST",
- "uri": "forgot-password",
- "name": "password.email",
- "action": "App\\Http\\Controllers\\Auth\\PasswordResetLinkController@store",
- "middleware": ["web", "App\\Http\\Middleware\\RedirectIfAuthenticated"]
- },
- {
- "domain": null,
- "method": "GET|HEAD",
- "uri": "login",
- "name": "login",
- "action": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@create",
- "middleware": ["web", "App\\Http\\Middleware\\RedirectIfAuthenticated"]
- },
- {
- "domain": null,
- "method": "POST",
- "uri": "login",
- "name": null,
- "action": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@store",
- "middleware": ["web", "App\\Http\\Middleware\\RedirectIfAuthenticated"]
- },
- {
- "domain": null,
- "method": "POST",
- "uri": "logout",
- "name": "logout",
- "action": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@destroy",
- "middleware": ["web", "App\\Http\\Middleware\\Authenticate"]
- },
- {
- "domain": null,
- "method": "PUT",
- "uri": "password",
- "name": "password.update",
- "action": "App\\Http\\Controllers\\Auth\\PasswordController@update",
- "middleware": ["web", "App\\Http\\Middleware\\Authenticate"]
- },
- {
- "domain": null,
- "method": "GET|HEAD",
- "uri": "posts",
- "name": "posts.index",
- "action": "App\\Http\\Controllers\\PostsController@index",
- "middleware": ["web"]
- },
- {
- "domain": null,
- "method": "POST",
- "uri": "posts",
- "name": "posts.store",
- "action": "App\\Http\\Controllers\\PostsController@store",
- "middleware": ["web"]
- },
- {
- "domain": null,
- "method": "GET|HEAD",
- "uri": "posts/create",
- "name": "posts.create",
- "action": "App\\Http\\Controllers\\PostsController@create",
- "middleware": ["web"]
- },
- {
- "domain": null,
- "method": "GET|HEAD",
- "uri": "posts/{post}",
- "name": "posts.show",
- "action": "App\\Http\\Controllers\\PostsController@show",
- "middleware": ["web"]
- },
- {
- "domain": null,
- "method": "PUT|PATCH",
- "uri": "posts/{post}",
- "name": "posts.update",
- "action": "App\\Http\\Controllers\\PostsController@update",
- "middleware": ["web"]
- },
- {
- "domain": null,
- "method": "DELETE",
- "uri": "posts/{post}",
- "name": "posts.destroy",
- "action": "App\\Http\\Controllers\\PostsController@destroy",
- "middleware": ["web"]
- },
- {
- "domain": null,
- "method": "GET|HEAD",
- "uri": "posts/{post}/edit",
- "name": "posts.edit",
- "action": "App\\Http\\Controllers\\PostsController@edit",
- "middleware": ["web"]
- },
- {
- "domain": null,
- "method": "GET|HEAD",
- "uri": "profile",
- "name": "profile.edit",
- "action": "App\\Http\\Controllers\\ProfileController@edit",
- "middleware": ["web", "App\\Http\\Middleware\\Authenticate"]
- },
- {
- "domain": null,
- "method": "PATCH",
- "uri": "profile",
- "name": "profile.update",
- "action": "App\\Http\\Controllers\\ProfileController@update",
- "middleware": ["web", "App\\Http\\Middleware\\Authenticate"]
- },
- {
- "domain": null,
- "method": "DELETE",
- "uri": "profile",
- "name": "profile.destroy",
- "action": "App\\Http\\Controllers\\ProfileController@destroy",
- "middleware": ["web", "App\\Http\\Middleware\\Authenticate"]
- },
- {
- "domain": null,
- "method": "GET|HEAD",
- "uri": "register",
- "name": "register",
- "action": "App\\Http\\Controllers\\Auth\\RegisteredUserController@create",
- "middleware": ["web", "App\\Http\\Middleware\\RedirectIfAuthenticated"]
- },
- {
- "domain": null,
- "method": "POST",
- "uri": "register",
- "name": null,
- "action": "App\\Http\\Controllers\\Auth\\RegisteredUserController@store",
- "middleware": ["web", "App\\Http\\Middleware\\RedirectIfAuthenticated"]
- },
- {
- "domain": null,
- "method": "POST",
- "uri": "reset-password",
- "name": "password.store",
- "action": "App\\Http\\Controllers\\Auth\\NewPasswordController@store",
- "middleware": ["web", "App\\Http\\Middleware\\RedirectIfAuthenticated"]
- },
- {
- "domain": null,
- "method": "GET|HEAD",
- "uri": "reset-password/{token}",
- "name": "password.reset",
- "action": "App\\Http\\Controllers\\Auth\\NewPasswordController@create",
- "middleware": ["web", "App\\Http\\Middleware\\RedirectIfAuthenticated"]
- },
- {
- "domain": null,
- "method": "GET|HEAD",
- "uri": "verify-email",
- "name": "verification.notice",
- "action": "App\\Http\\Controllers\\Auth\\EmailVerificationPromptController@__invoke",
- "middleware": ["web", "App\\Http\\Middleware\\Authenticate"]
- },
- {
- "domain": null,
- "method": "GET|HEAD",
- "uri": "verify-email/{id}/{hash}",
- "name": "verification.verify",
- "action": "App\\Http\\Controllers\\Auth\\VerifyEmailController@__invoke",
- "middleware": [
- "web",
- "App\\Http\\Middleware\\Authenticate",
- "App\\Http\\Middleware\\ValidateSignature",
- "Illuminate\\Routing\\Middleware\\ThrottleRequests:6,1"
- ]
- }
+ {
+ "domain": null,
+ "method": "GET|HEAD",
+ "uri": "/",
+ "name": null,
+ "action": "Closure",
+ "middleware": ["web"]
+ },
+ {
+ "domain": null,
+ "method": "GET|HEAD",
+ "uri": "api/user",
+ "name": null,
+ "action": "Closure",
+ "middleware": ["api", "App\\Http\\Middleware\\Authenticate:sanctum"]
+ },
+ {
+ "domain": null,
+ "method": "GET|HEAD",
+ "uri": "confirm-password",
+ "name": "password.confirm",
+ "action": "App\\Http\\Controllers\\Auth\\ConfirmablePasswordController@show",
+ "middleware": ["web", "App\\Http\\Middleware\\Authenticate"]
+ },
+ {
+ "domain": null,
+ "method": "POST",
+ "uri": "confirm-password",
+ "name": null,
+ "action": "App\\Http\\Controllers\\Auth\\ConfirmablePasswordController@store",
+ "middleware": ["web", "App\\Http\\Middleware\\Authenticate"]
+ },
+ {
+ "domain": null,
+ "method": "GET|HEAD",
+ "uri": "dashboard",
+ "name": "dashboard",
+ "action": "App\\Http\\Controllers\\DashboardController",
+ "middleware": [
+ "web",
+ "App\\Http\\Middleware\\Authenticate",
+ "Illuminate\\Auth\\Middleware\\EnsureEmailIsVerified"
+ ]
+ },
+ {
+ "domain": null,
+ "method": "POST",
+ "uri": "email/verification-notification",
+ "name": "verification.send",
+ "action": "App\\Http\\Controllers\\Auth\\EmailVerificationNotificationController@store",
+ "middleware": [
+ "web",
+ "App\\Http\\Middleware\\Authenticate",
+ "Illuminate\\Routing\\Middleware\\ThrottleRequests:6,1"
+ ]
+ },
+ {
+ "domain": null,
+ "method": "GET|HEAD",
+ "uri": "forgot-password",
+ "name": "password.request",
+ "action": "App\\Http\\Controllers\\Auth\\PasswordResetLinkController@create",
+ "middleware": ["web", "App\\Http\\Middleware\\RedirectIfAuthenticated"]
+ },
+ {
+ "domain": null,
+ "method": "POST",
+ "uri": "forgot-password",
+ "name": "password.email",
+ "action": "App\\Http\\Controllers\\Auth\\PasswordResetLinkController@store",
+ "middleware": ["web", "App\\Http\\Middleware\\RedirectIfAuthenticated"]
+ },
+ {
+ "domain": null,
+ "method": "GET|HEAD",
+ "uri": "login",
+ "name": "login",
+ "action": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@create",
+ "middleware": ["web", "App\\Http\\Middleware\\RedirectIfAuthenticated"]
+ },
+ {
+ "domain": null,
+ "method": "POST",
+ "uri": "login",
+ "name": null,
+ "action": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@store",
+ "middleware": ["web", "App\\Http\\Middleware\\RedirectIfAuthenticated"]
+ },
+ {
+ "domain": null,
+ "method": "POST",
+ "uri": "logout",
+ "name": "logout",
+ "action": "App\\Http\\Controllers\\Auth\\AuthenticatedSessionController@destroy",
+ "middleware": ["web", "App\\Http\\Middleware\\Authenticate"]
+ },
+ {
+ "domain": null,
+ "method": "PUT",
+ "uri": "password",
+ "name": "password.update",
+ "action": "App\\Http\\Controllers\\Auth\\PasswordController@update",
+ "middleware": ["web", "App\\Http\\Middleware\\Authenticate"]
+ },
+ {
+ "domain": null,
+ "method": "GET|HEAD",
+ "uri": "posts",
+ "name": "posts.index",
+ "action": "App\\Http\\Controllers\\PostsController@index",
+ "middleware": ["web"]
+ },
+ {
+ "domain": null,
+ "method": "POST",
+ "uri": "posts",
+ "name": "posts.store",
+ "action": "App\\Http\\Controllers\\PostsController@store",
+ "middleware": ["web"]
+ },
+ {
+ "domain": null,
+ "method": "GET|HEAD",
+ "uri": "posts/create",
+ "name": "posts.create",
+ "action": "App\\Http\\Controllers\\PostsController@create",
+ "middleware": ["web"]
+ },
+ {
+ "domain": null,
+ "method": "GET|HEAD",
+ "uri": "posts/{post}",
+ "name": "posts.show",
+ "action": "App\\Http\\Controllers\\PostsController@show",
+ "middleware": ["web"]
+ },
+ {
+ "domain": null,
+ "method": "PUT|PATCH",
+ "uri": "posts/{post}",
+ "name": "posts.update",
+ "action": "App\\Http\\Controllers\\PostsController@update",
+ "middleware": ["web"]
+ },
+ {
+ "domain": null,
+ "method": "DELETE",
+ "uri": "posts/{post}",
+ "name": "posts.destroy",
+ "action": "App\\Http\\Controllers\\PostsController@destroy",
+ "middleware": ["web"]
+ },
+ {
+ "domain": null,
+ "method": "GET|HEAD",
+ "uri": "posts/{post}/edit",
+ "name": "posts.edit",
+ "action": "App\\Http\\Controllers\\PostsController@edit",
+ "middleware": ["web"]
+ },
+ {
+ "domain": null,
+ "method": "GET|HEAD",
+ "uri": "profile",
+ "name": "profile.edit",
+ "action": "App\\Http\\Controllers\\ProfileController@edit",
+ "middleware": ["web", "App\\Http\\Middleware\\Authenticate"]
+ },
+ {
+ "domain": null,
+ "method": "PATCH",
+ "uri": "profile",
+ "name": "profile.update",
+ "action": "App\\Http\\Controllers\\ProfileController@update",
+ "middleware": ["web", "App\\Http\\Middleware\\Authenticate"]
+ },
+ {
+ "domain": null,
+ "method": "DELETE",
+ "uri": "profile",
+ "name": "profile.destroy",
+ "action": "App\\Http\\Controllers\\ProfileController@destroy",
+ "middleware": ["web", "App\\Http\\Middleware\\Authenticate"]
+ },
+ {
+ "domain": null,
+ "method": "GET|HEAD",
+ "uri": "register",
+ "name": "register",
+ "action": "App\\Http\\Controllers\\Auth\\RegisteredUserController@create",
+ "middleware": ["web", "App\\Http\\Middleware\\RedirectIfAuthenticated"]
+ },
+ {
+ "domain": null,
+ "method": "POST",
+ "uri": "register",
+ "name": null,
+ "action": "App\\Http\\Controllers\\Auth\\RegisteredUserController@store",
+ "middleware": ["web", "App\\Http\\Middleware\\RedirectIfAuthenticated"]
+ },
+ {
+ "domain": null,
+ "method": "POST",
+ "uri": "reset-password",
+ "name": "password.store",
+ "action": "App\\Http\\Controllers\\Auth\\NewPasswordController@store",
+ "middleware": ["web", "App\\Http\\Middleware\\RedirectIfAuthenticated"]
+ },
+ {
+ "domain": null,
+ "method": "GET|HEAD",
+ "uri": "reset-password/{token}",
+ "name": "password.reset",
+ "action": "App\\Http\\Controllers\\Auth\\NewPasswordController@create",
+ "middleware": ["web", "App\\Http\\Middleware\\RedirectIfAuthenticated"]
+ },
+ {
+ "domain": null,
+ "method": "GET|HEAD",
+ "uri": "verify-email",
+ "name": "verification.notice",
+ "action": "App\\Http\\Controllers\\Auth\\EmailVerificationPromptController@__invoke",
+ "middleware": ["web", "App\\Http\\Middleware\\Authenticate"]
+ },
+ {
+ "domain": null,
+ "method": "GET|HEAD",
+ "uri": "verify-email/{id}/{hash}",
+ "name": "verification.verify",
+ "action": "App\\Http\\Controllers\\Auth\\VerifyEmailController@__invoke",
+ "middleware": [
+ "web",
+ "App\\Http\\Middleware\\Authenticate",
+ "App\\Http\\Middleware\\ValidateSignature",
+ "Illuminate\\Routing\\Middleware\\ThrottleRequests:6,1"
+ ]
+ }
]
diff --git a/examples/laravel10-app/jsconfig.json b/examples/laravel10-app/jsconfig.json
index d08a1ac..766de86 100644
--- a/examples/laravel10-app/jsconfig.json
+++ b/examples/laravel10-app/jsconfig.json
@@ -1,9 +1,9 @@
{
- "compilerOptions": {
- "baseUrl": ".",
- "paths": {
- "@/*": ["resources/js/*"]
- }
- },
- "exclude": ["node_modules", "public"]
+ "compilerOptions": {
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["resources/js/*"]
+ }
+ },
+ "exclude": ["node_modules", "public"]
}
diff --git a/examples/laravel10-app/package-lock.json b/examples/laravel10-app/package-lock.json
index 65f1243..de2fa84 100644
--- a/examples/laravel10-app/package-lock.json
+++ b/examples/laravel10-app/package-lock.json
@@ -1,2242 +1,2242 @@
{
- "name": "html",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "devDependencies": {
- "@7nohe/laravel-typegen": "file:../../../laravel-typegen",
- "@7nohe/laravel-zodgen": "^0.1.5",
- "@inertiajs/vue3": "^1.0.8",
- "@tailwindcss/forms": "^0.5.3",
- "@types/ziggy-js": "^1.3.2",
- "@vitejs/plugin-vue": "^4.1.0",
- "autoprefixer": "^10.4.14",
- "axios": "^1.3.4",
- "laravel-vite-plugin": "^0.7.4",
- "lodash": "^4.17.21",
- "postcss": "^8.4.21",
- "tailwindcss": "^3.2.7",
- "vite": "^4.2.1",
- "vue": "^3.2.47",
- "vue-tsc": "^1.2.0",
- "ziggy-js": "^1.5.0"
- }
- },
- "../../../laravel-typegen": {
- "version": "0.6.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@7nohe/laravel-zodgen": "^0.1.6",
- "commander": "^12.0.0",
- "consola": "^3.2.3",
- "glob": "^10.3.12",
- "php-parser": "^3.1.5",
- "typescript": "^5.4.5"
- },
- "bin": {
- "laravel-typegen": "dist/src/cli.js"
- },
- "devDependencies": {
- "@biomejs/biome": "1.7.3",
- "@types/node": "^20.11.16",
- "lefthook": "^1.6.12"
- }
- },
- "node_modules/@7nohe/laravel-typegen": {
- "resolved": "../../../laravel-typegen",
- "link": true
- },
- "node_modules/@7nohe/laravel-zodgen": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/@7nohe/laravel-zodgen/-/laravel-zodgen-0.1.5.tgz",
- "integrity": "sha512-DqayU8j0g4u7O+gHLiKaeoJNXg1cz2AVaV6mGgvpIZJfzcIQbCc2JIc39BU1GcZsJ4eyddbzbKBxLcKCO2bxhw==",
- "dev": true,
- "dependencies": {
- "commander": "^10.0.0",
- "glob": "^9.3.2",
- "php-parser": "^3.1.4",
- "typescript": "^5.0.2",
- "zod": "^3.21.4"
- },
- "bin": {
- "laravel-zodgen": "dist/cli.js"
- }
- },
- "node_modules/@7nohe/laravel-zodgen/node_modules/glob": {
- "version": "9.3.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz",
- "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "minimatch": "^8.0.2",
- "minipass": "^4.2.4",
- "path-scurry": "^1.6.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@7nohe/laravel-zodgen/node_modules/minimatch": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz",
- "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@7nohe/laravel-zodgen/node_modules/typescript": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
- "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
- "dev": true,
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=12.20"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.20.13",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz",
- "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==",
- "dev": true,
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@esbuild/android-arm": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.12.tgz",
- "integrity": "sha512-E/sgkvwoIfj4aMAPL2e35VnUJspzVYl7+M1B2cqeubdBhADV4uPon0KCc8p2G+LqSJ6i8ocYPCqY3A4GGq0zkQ==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-arm64": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.12.tgz",
- "integrity": "sha512-WQ9p5oiXXYJ33F2EkE3r0FRDFVpEdcDiwNX3u7Xaibxfx6vQE0Sb8ytrfQsA5WO6kDn6mDfKLh6KrPBjvkk7xA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-x64": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.12.tgz",
- "integrity": "sha512-m4OsaCr5gT+se25rFPHKQXARMyAehHTQAz4XX1Vk3d27VtqiX0ALMBPoXZsGaB6JYryCLfgGwUslMqTfqeLU0w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/darwin-arm64": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.12.tgz",
- "integrity": "sha512-O3GCZghRIx+RAN0NDPhyyhRgwa19MoKlzGonIb5hgTj78krqp9XZbYCvFr9N1eUxg0ZQEpiiZ4QvsOQwBpP+lg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/darwin-x64": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.12.tgz",
- "integrity": "sha512-5D48jM3tW27h1qjaD9UNRuN+4v0zvksqZSPZqeSWggfMlsVdAhH3pwSfQIFJwcs9QJ9BRibPS4ViZgs3d2wsCA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/freebsd-arm64": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.12.tgz",
- "integrity": "sha512-OWvHzmLNTdF1erSvrfoEBGlN94IE6vCEaGEkEH29uo/VoONqPnoDFfShi41Ew+yKimx4vrmmAJEGNoyyP+OgOQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/freebsd-x64": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.12.tgz",
- "integrity": "sha512-A0Xg5CZv8MU9xh4a+7NUpi5VHBKh1RaGJKqjxe4KG87X+mTjDE6ZvlJqpWoeJxgfXHT7IMP9tDFu7IZ03OtJAw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-arm": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.12.tgz",
- "integrity": "sha512-WsHyJ7b7vzHdJ1fv67Yf++2dz3D726oO3QCu8iNYik4fb5YuuReOI9OtA+n7Mk0xyQivNTPbl181s+5oZ38gyA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-arm64": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.12.tgz",
- "integrity": "sha512-cK3AjkEc+8v8YG02hYLQIQlOznW+v9N+OI9BAFuyqkfQFR+DnDLhEM5N8QRxAUz99cJTo1rLNXqRrvY15gbQUg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-ia32": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.12.tgz",
- "integrity": "sha512-jdOBXJqcgHlah/nYHnj3Hrnl9l63RjtQ4vn9+bohjQPI2QafASB5MtHAoEv0JQHVb/xYQTFOeuHnNYE1zF7tYw==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-loong64": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.12.tgz",
- "integrity": "sha512-GTOEtj8h9qPKXCyiBBnHconSCV9LwFyx/gv3Phw0pa25qPYjVuuGZ4Dk14bGCfGX3qKF0+ceeQvwmtI+aYBbVA==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-mips64el": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.12.tgz",
- "integrity": "sha512-o8CIhfBwKcxmEENOH9RwmUejs5jFiNoDw7YgS0EJTF6kgPgcqLFjgoc5kDey5cMHRVCIWc6kK2ShUePOcc7RbA==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-ppc64": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.12.tgz",
- "integrity": "sha512-biMLH6NR/GR4z+ap0oJYb877LdBpGac8KfZoEnDiBKd7MD/xt8eaw1SFfYRUeMVx519kVkAOL2GExdFmYnZx3A==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-riscv64": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.12.tgz",
- "integrity": "sha512-jkphYUiO38wZGeWlfIBMB72auOllNA2sLfiZPGDtOBb1ELN8lmqBrlMiucgL8awBw1zBXN69PmZM6g4yTX84TA==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-s390x": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.12.tgz",
- "integrity": "sha512-j3ucLdeY9HBcvODhCY4b+Ds3hWGO8t+SAidtmWu/ukfLLG/oYDMaA+dnugTVAg5fnUOGNbIYL9TOjhWgQB8W5g==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-x64": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.12.tgz",
- "integrity": "sha512-uo5JL3cgaEGotaqSaJdRfFNSCUJOIliKLnDGWaVCgIKkHxwhYMm95pfMbWZ9l7GeW9kDg0tSxcy9NYdEtjwwmA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/netbsd-x64": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.12.tgz",
- "integrity": "sha512-DNdoRg8JX+gGsbqt2gPgkgb00mqOgOO27KnrWZtdABl6yWTST30aibGJ6geBq3WM2TIeW6COs5AScnC7GwtGPg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/openbsd-x64": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.12.tgz",
- "integrity": "sha512-aVsENlr7B64w8I1lhHShND5o8cW6sB9n9MUtLumFlPhG3elhNWtE7M1TFpj3m7lT3sKQUMkGFjTQBrvDDO1YWA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/sunos-x64": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.12.tgz",
- "integrity": "sha512-qbHGVQdKSwi0JQJuZznS4SyY27tYXYF0mrgthbxXrZI3AHKuRvU+Eqbg/F0rmLDpW/jkIZBlCO1XfHUBMNJ1pg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-arm64": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.12.tgz",
- "integrity": "sha512-zsCp8Ql+96xXTVTmm6ffvoTSZSV2B/LzzkUXAY33F/76EajNw1m+jZ9zPfNJlJ3Rh4EzOszNDHsmG/fZOhtqDg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-ia32": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.12.tgz",
- "integrity": "sha512-FfrFjR4id7wcFYOdqbDfDET3tjxCozUgbqdkOABsSFzoZGFC92UK7mg4JKRc/B3NNEf1s2WHxJ7VfTdVDPN3ng==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-x64": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.12.tgz",
- "integrity": "sha512-JOOxw49BVZx2/5tW3FqkdjSD/5gXYeVGPDcB0lvap0gLQshkh1Nyel1QazC+wNxus3xPlsYAgqU1BUmrmCvWtw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@inertiajs/core": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/@inertiajs/core/-/core-1.0.8.tgz",
- "integrity": "sha512-8nr1C76bE9Pfb5OwDGtjtSsiy2g6EG5J7w/w4dWHmoQdY9g01F+VnN3+QYtf/fsFkd8l7A6HoCBgUEZHkwdhXg==",
- "dev": true,
- "dependencies": {
- "axios": "^1.2.0",
- "deepmerge": "^4.0.0",
- "nprogress": "^0.2.0",
- "qs": "^6.9.0"
- }
- },
- "node_modules/@inertiajs/vue3": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/@inertiajs/vue3/-/vue3-1.0.8.tgz",
- "integrity": "sha512-vWCMCCUFGYGtqHKTbwsg4cV0hbbZXoKGcDLxGtnV+OGD4sULmXvRzlc5ZuZrjn5gmhpGKWHnW6yY8ifNPLdoMg==",
- "dev": true,
- "dependencies": {
- "@inertiajs/core": "1.0.8",
- "lodash.clonedeep": "^4.5.0",
- "lodash.isequal": "^4.5.0"
- },
- "peerDependencies": {
- "vue": "^3.0.0"
- }
- },
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@tailwindcss/forms": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.3.tgz",
- "integrity": "sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q==",
- "dev": true,
- "dependencies": {
- "mini-svg-data-uri": "^1.2.3"
- },
- "peerDependencies": {
- "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1"
- }
- },
- "node_modules/@types/history": {
- "version": "4.7.11",
- "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz",
- "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==",
- "dev": true
- },
- "node_modules/@types/ziggy-js": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@types/ziggy-js/-/ziggy-js-1.3.2.tgz",
- "integrity": "sha512-hwnsR3tEy3jyW+akw5kwfyZ9+/MZ+jN659G6LoGKBL9LvOUv07fiMsZL3vaK8IfTo2OXVMa4elsX8r/nU/x9hw==",
- "dev": true,
- "dependencies": {
- "@types/history": "^4.7.11"
- }
- },
- "node_modules/@vitejs/plugin-vue": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.1.0.tgz",
- "integrity": "sha512-++9JOAFdcXI3lyer9UKUV4rfoQ3T1RN8yDqoCLar86s0xQct5yblxAE+yWgRnU5/0FOlVCpTZpYSBV/bGWrSrQ==",
- "dev": true,
- "engines": {
- "node": "^14.18.0 || >=16.0.0"
- },
- "peerDependencies": {
- "vite": "^4.0.0",
- "vue": "^3.2.25"
- }
- },
- "node_modules/@volar/language-core": {
- "version": "1.3.0-alpha.0",
- "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.3.0-alpha.0.tgz",
- "integrity": "sha512-W3uMzecHPcbwddPu4SJpUcPakRBK/y/BP+U0U6NiPpUX1tONLC4yCawt+QBJqtgJ+sfD6ztf5PyvPL3hQRqfOA==",
- "dev": true,
- "dependencies": {
- "@volar/source-map": "1.3.0-alpha.0"
- }
- },
- "node_modules/@volar/source-map": {
- "version": "1.3.0-alpha.0",
- "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.3.0-alpha.0.tgz",
- "integrity": "sha512-jSdizxWFvDTvkPYZnO6ew3sBZUnS0abKCbuopkc0JrIlFbznWC/fPH3iPFIMS8/IIkRxq1Jh9VVG60SmtsdaMQ==",
- "dev": true,
- "dependencies": {
- "muggle-string": "^0.2.2"
- }
- },
- "node_modules/@volar/typescript": {
- "version": "1.3.0-alpha.0",
- "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.3.0-alpha.0.tgz",
- "integrity": "sha512-5UItyW2cdH2mBLu4RrECRNJRgtvvzKrSCn2y3v/D61QwIDkGx4aeil6x8RFuUL5TFtV6QvVHXnsOHxNgd+sCow==",
- "dev": true,
- "dependencies": {
- "@volar/language-core": "1.3.0-alpha.0"
- }
- },
- "node_modules/@volar/vue-language-core": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.2.0.tgz",
- "integrity": "sha512-w7yEiaITh2WzKe6u8ZdeLKCUz43wdmY/OqAmsB/PGDvvhTcVhCJ6f0W/RprZL1IhqH8wALoWiwEh/Wer7ZviMQ==",
- "dev": true,
- "dependencies": {
- "@volar/language-core": "1.3.0-alpha.0",
- "@volar/source-map": "1.3.0-alpha.0",
- "@vue/compiler-dom": "^3.2.47",
- "@vue/compiler-sfc": "^3.2.47",
- "@vue/reactivity": "^3.2.47",
- "@vue/shared": "^3.2.47",
- "minimatch": "^6.1.6",
- "muggle-string": "^0.2.2",
- "vue-template-compiler": "^2.7.14"
- }
- },
- "node_modules/@volar/vue-language-core/node_modules/minimatch": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz",
- "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@volar/vue-typescript": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.2.0.tgz",
- "integrity": "sha512-zjmRi9y3J1EkG+pfuHp8IbHmibihrKK485cfzsHjiuvJMGrpkWvlO5WVEk8oslMxxeGC5XwBFE9AOlvh378EPA==",
- "dev": true,
- "dependencies": {
- "@volar/typescript": "1.3.0-alpha.0",
- "@volar/vue-language-core": "1.2.0"
- }
- },
- "node_modules/@vue/compiler-core": {
- "version": "3.2.47",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz",
- "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==",
- "dev": true,
- "dependencies": {
- "@babel/parser": "^7.16.4",
- "@vue/shared": "3.2.47",
- "estree-walker": "^2.0.2",
- "source-map": "^0.6.1"
- }
- },
- "node_modules/@vue/compiler-dom": {
- "version": "3.2.47",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz",
- "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==",
- "dev": true,
- "dependencies": {
- "@vue/compiler-core": "3.2.47",
- "@vue/shared": "3.2.47"
- }
- },
- "node_modules/@vue/compiler-sfc": {
- "version": "3.2.47",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz",
- "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==",
- "dev": true,
- "dependencies": {
- "@babel/parser": "^7.16.4",
- "@vue/compiler-core": "3.2.47",
- "@vue/compiler-dom": "3.2.47",
- "@vue/compiler-ssr": "3.2.47",
- "@vue/reactivity-transform": "3.2.47",
- "@vue/shared": "3.2.47",
- "estree-walker": "^2.0.2",
- "magic-string": "^0.25.7",
- "postcss": "^8.1.10",
- "source-map": "^0.6.1"
- }
- },
- "node_modules/@vue/compiler-ssr": {
- "version": "3.2.47",
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz",
- "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==",
- "dev": true,
- "dependencies": {
- "@vue/compiler-dom": "3.2.47",
- "@vue/shared": "3.2.47"
- }
- },
- "node_modules/@vue/reactivity": {
- "version": "3.2.47",
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz",
- "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==",
- "dev": true,
- "dependencies": {
- "@vue/shared": "3.2.47"
- }
- },
- "node_modules/@vue/reactivity-transform": {
- "version": "3.2.47",
- "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz",
- "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==",
- "dev": true,
- "dependencies": {
- "@babel/parser": "^7.16.4",
- "@vue/compiler-core": "3.2.47",
- "@vue/shared": "3.2.47",
- "estree-walker": "^2.0.2",
- "magic-string": "^0.25.7"
- }
- },
- "node_modules/@vue/runtime-core": {
- "version": "3.2.47",
- "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz",
- "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==",
- "dev": true,
- "dependencies": {
- "@vue/reactivity": "3.2.47",
- "@vue/shared": "3.2.47"
- }
- },
- "node_modules/@vue/runtime-dom": {
- "version": "3.2.47",
- "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz",
- "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==",
- "dev": true,
- "dependencies": {
- "@vue/runtime-core": "3.2.47",
- "@vue/shared": "3.2.47",
- "csstype": "^2.6.8"
- }
- },
- "node_modules/@vue/server-renderer": {
- "version": "3.2.47",
- "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz",
- "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==",
- "dev": true,
- "dependencies": {
- "@vue/compiler-ssr": "3.2.47",
- "@vue/shared": "3.2.47"
- },
- "peerDependencies": {
- "vue": "3.2.47"
- }
- },
- "node_modules/@vue/shared": {
- "version": "3.2.47",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz",
- "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==",
- "dev": true
- },
- "node_modules/acorn": {
- "version": "7.4.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
- "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
- "dev": true,
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-node": {
- "version": "1.8.2",
- "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz",
- "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==",
- "dev": true,
- "dependencies": {
- "acorn": "^7.0.0",
- "acorn-walk": "^7.0.0",
- "xtend": "^4.0.2"
- }
- },
- "node_modules/acorn-walk": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
- "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
- "dev": true,
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/arg": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
- "dev": true
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true
- },
- "node_modules/autoprefixer": {
- "version": "10.4.14",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz",
- "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/autoprefixer"
- }
- ],
- "dependencies": {
- "browserslist": "^4.21.5",
- "caniuse-lite": "^1.0.30001464",
- "fraction.js": "^4.2.0",
- "normalize-range": "^0.1.2",
- "picocolors": "^1.0.0",
- "postcss-value-parser": "^4.2.0"
- },
- "bin": {
- "autoprefixer": "bin/autoprefixer"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/axios": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.4.tgz",
- "integrity": "sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==",
- "dev": true,
- "dependencies": {
- "follow-redirects": "^1.15.0",
- "form-data": "^4.0.0",
- "proxy-from-env": "^1.1.0"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
- },
- "node_modules/binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "dependencies": {
- "fill-range": "^7.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/browserslist": {
- "version": "4.21.5",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
- "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- }
- ],
- "dependencies": {
- "caniuse-lite": "^1.0.30001449",
- "electron-to-chromium": "^1.4.284",
- "node-releases": "^2.0.8",
- "update-browserslist-db": "^1.0.10"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dev": true,
- "dependencies": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/camelcase-css": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
- "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001468",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001468.tgz",
- "integrity": "sha512-zgAo8D5kbOyUcRAgSmgyuvBkjrGk5CGYG5TYgFdpQv+ywcyEpo1LOWoG8YmoflGnh+V+UsNuKYedsoYs0hzV5A==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- }
- ]
- },
- "node_modules/chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ],
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/chokidar/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/commander": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz",
- "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==",
- "dev": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/cssesc": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
- "dev": true,
- "bin": {
- "cssesc": "bin/cssesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/csstype": {
- "version": "2.6.21",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz",
- "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==",
- "dev": true
- },
- "node_modules/de-indent": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
- "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==",
- "dev": true
- },
- "node_modules/deepmerge": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
- "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/defined": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz",
- "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "dev": true,
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/detective": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz",
- "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==",
- "dev": true,
- "dependencies": {
- "acorn-node": "^1.8.2",
- "defined": "^1.0.0",
- "minimist": "^1.2.6"
- },
- "bin": {
- "detective": "bin/detective.js"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/didyoumean": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
- "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
- "dev": true
- },
- "node_modules/dlv": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
- "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
- "dev": true
- },
- "node_modules/electron-to-chromium": {
- "version": "1.4.334",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.334.tgz",
- "integrity": "sha512-laZ1odk+TRen6q0GeyQx/JEkpD3iSZT7ewopCpKqg9bTjP1l8XRfU3Bg20CFjNPZkp5+NDBl3iqd4o/kPO+Vew==",
- "dev": true
- },
- "node_modules/esbuild": {
- "version": "0.17.12",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.12.tgz",
- "integrity": "sha512-bX/zHl7Gn2CpQwcMtRogTTBf9l1nl+H6R8nUbjk+RuKqAE3+8FDulLA+pHvX7aA7Xe07Iwa+CWvy9I8Y2qqPKQ==",
- "dev": true,
- "hasInstallScript": true,
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=12"
- },
- "optionalDependencies": {
- "@esbuild/android-arm": "0.17.12",
- "@esbuild/android-arm64": "0.17.12",
- "@esbuild/android-x64": "0.17.12",
- "@esbuild/darwin-arm64": "0.17.12",
- "@esbuild/darwin-x64": "0.17.12",
- "@esbuild/freebsd-arm64": "0.17.12",
- "@esbuild/freebsd-x64": "0.17.12",
- "@esbuild/linux-arm": "0.17.12",
- "@esbuild/linux-arm64": "0.17.12",
- "@esbuild/linux-ia32": "0.17.12",
- "@esbuild/linux-loong64": "0.17.12",
- "@esbuild/linux-mips64el": "0.17.12",
- "@esbuild/linux-ppc64": "0.17.12",
- "@esbuild/linux-riscv64": "0.17.12",
- "@esbuild/linux-s390x": "0.17.12",
- "@esbuild/linux-x64": "0.17.12",
- "@esbuild/netbsd-x64": "0.17.12",
- "@esbuild/openbsd-x64": "0.17.12",
- "@esbuild/sunos-x64": "0.17.12",
- "@esbuild/win32-arm64": "0.17.12",
- "@esbuild/win32-ia32": "0.17.12",
- "@esbuild/win32-x64": "0.17.12"
- }
- },
- "node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
- "dev": true
- },
- "node_modules/fast-glob": {
- "version": "3.2.12",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
- "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.4"
- },
- "engines": {
- "node": ">=8.6.0"
- }
- },
- "node_modules/fast-glob/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fastq": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
- "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
- "dev": true,
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/follow-redirects": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
- "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
- "engines": {
- "node": ">=4.0"
- },
- "peerDependenciesMeta": {
- "debug": {
- "optional": true
- }
- }
- },
- "node_modules/form-data": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
- "dev": true,
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fraction.js": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
- "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==",
- "dev": true,
- "engines": {
- "node": "*"
- },
- "funding": {
- "type": "patreon",
- "url": "https://www.patreon.com/infusion"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true
- },
- "node_modules/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
- },
- "node_modules/get-intrinsic": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
- "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
- "dev": true,
- "dependencies": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
- "dependencies": {
- "function-bind": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/has-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/he": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "dev": true,
- "bin": {
- "he": "bin/he"
- }
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
- "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
- "dev": true,
- "dependencies": {
- "has": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/laravel-vite-plugin": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-0.7.4.tgz",
- "integrity": "sha512-NlIuXbeuI+4NZzRpWNpGHRVTwuFWessvD7QoD+o2MlyAi7qyUS4J8r4/yTlu1dl9lxcR7iKoYUmHQqZDcrw2KA==",
- "dev": true,
- "dependencies": {
- "picocolors": "^1.0.0",
- "vite-plugin-full-reload": "^1.0.5"
- },
- "engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "vite": "^3.0.0 || ^4.0.0"
- }
- },
- "node_modules/lilconfig": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz",
- "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
- },
- "node_modules/lodash.clonedeep": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
- "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==",
- "dev": true
- },
- "node_modules/lodash.isequal": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
- "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
- "dev": true
- },
- "node_modules/lru-cache": {
- "version": "9.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz",
- "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==",
- "dev": true,
- "engines": {
- "node": "14 || >=16.14"
- }
- },
- "node_modules/magic-string": {
- "version": "0.25.9",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
- "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
- "dev": true,
- "dependencies": {
- "sourcemap-codec": "^1.4.8"
- }
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
- "dev": true,
- "dependencies": {
- "braces": "^3.0.2",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dev": true,
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mini-svg-data-uri": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz",
- "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==",
- "dev": true,
- "bin": {
- "mini-svg-data-uri": "cli.js"
- }
- },
- "node_modules/minimist": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
- "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/minipass": {
- "version": "4.2.8",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz",
- "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/muggle-string": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.2.2.tgz",
- "integrity": "sha512-YVE1mIJ4VpUMqZObFndk9CJu6DBJR/GB13p3tXuNbwD4XExaI5EOuRl6BHeIDxIqXZVxSfAC+y6U1Z/IxCfKUg==",
- "dev": true
- },
- "node_modules/nanoid": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
- "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
- "dev": true,
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/node-releases": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz",
- "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==",
- "dev": true
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/normalize-range": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nprogress": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz",
- "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==",
- "dev": true
- },
- "node_modules/object-hash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
- "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/object-inspect": {
- "version": "1.12.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
- "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "node_modules/path-scurry": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.7.0.tgz",
- "integrity": "sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^9.0.0",
- "minipass": "^5.0.0"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/path-scurry/node_modules/minipass": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
- "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/php-parser": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/php-parser/-/php-parser-3.1.4.tgz",
- "integrity": "sha512-WUEfH4FWsVItqgOknM67msDdcUAfgPJsHhPNl6EPXzWtX+PfdY282m4i8YIJ9ALUEhf+qGDajdmW+VYqSd7Deg==",
- "dev": true
- },
- "node_modules/picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
- "dev": true
- },
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/postcss": {
- "version": "8.4.21",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
- "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- }
- ],
- "dependencies": {
- "nanoid": "^3.3.4",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/postcss-import": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz",
- "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==",
- "dev": true,
- "dependencies": {
- "postcss-value-parser": "^4.0.0",
- "read-cache": "^1.0.0",
- "resolve": "^1.1.7"
- },
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "postcss": "^8.0.0"
- }
- },
- "node_modules/postcss-js": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz",
- "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==",
- "dev": true,
- "dependencies": {
- "camelcase-css": "^2.0.1"
- },
- "engines": {
- "node": "^12 || ^14 || >= 16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- "peerDependencies": {
- "postcss": "^8.3.3"
- }
- },
- "node_modules/postcss-load-config": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz",
- "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==",
- "dev": true,
- "dependencies": {
- "lilconfig": "^2.0.5",
- "yaml": "^1.10.2"
- },
- "engines": {
- "node": ">= 10"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- "peerDependencies": {
- "postcss": ">=8.0.9",
- "ts-node": ">=9.0.0"
- },
- "peerDependenciesMeta": {
- "postcss": {
- "optional": true
- },
- "ts-node": {
- "optional": true
- }
- }
- },
- "node_modules/postcss-nested": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz",
- "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==",
- "dev": true,
- "dependencies": {
- "postcss-selector-parser": "^6.0.10"
- },
- "engines": {
- "node": ">=12.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- "peerDependencies": {
- "postcss": "^8.2.14"
- }
- },
- "node_modules/postcss-selector-parser": {
- "version": "6.0.11",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
- "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==",
- "dev": true,
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-value-parser": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
- "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
- "dev": true
- },
- "node_modules/proxy-from-env": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
- "dev": true
- },
- "node_modules/qs": {
- "version": "6.11.2",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
- "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==",
- "dev": true,
- "dependencies": {
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/quick-lru": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
- "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/read-cache": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
- "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
- "dev": true,
- "dependencies": {
- "pify": "^2.3.0"
- }
- },
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
- "dev": true,
- "dependencies": {
- "is-core-module": "^2.9.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true,
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/rollup": {
- "version": "3.20.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.20.0.tgz",
- "integrity": "sha512-YsIfrk80NqUDrxrjWPXUa7PWvAfegZEXHuPsEZg58fGCdjL1I9C1i/NaG+L+27kxxwkrG/QEDEQc8s/ynXWWGQ==",
- "dev": true,
- "bin": {
- "rollup": "dist/bin/rollup"
- },
- "engines": {
- "node": ">=14.18.0",
- "npm": ">=8.0.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
- "node_modules/side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/sourcemap-codec": {
- "version": "1.4.8",
- "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
- "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
- "deprecated": "Please use @jridgewell/sourcemap-codec instead",
- "dev": true
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/tailwindcss": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.7.tgz",
- "integrity": "sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==",
- "dev": true,
- "dependencies": {
- "arg": "^5.0.2",
- "chokidar": "^3.5.3",
- "color-name": "^1.1.4",
- "detective": "^5.2.1",
- "didyoumean": "^1.2.2",
- "dlv": "^1.1.3",
- "fast-glob": "^3.2.12",
- "glob-parent": "^6.0.2",
- "is-glob": "^4.0.3",
- "lilconfig": "^2.0.6",
- "micromatch": "^4.0.5",
- "normalize-path": "^3.0.0",
- "object-hash": "^3.0.0",
- "picocolors": "^1.0.0",
- "postcss": "^8.0.9",
- "postcss-import": "^14.1.0",
- "postcss-js": "^4.0.0",
- "postcss-load-config": "^3.1.4",
- "postcss-nested": "6.0.0",
- "postcss-selector-parser": "^6.0.11",
- "postcss-value-parser": "^4.2.0",
- "quick-lru": "^5.1.1",
- "resolve": "^1.22.1"
- },
- "bin": {
- "tailwind": "lib/cli.js",
- "tailwindcss": "lib/cli.js"
- },
- "engines": {
- "node": ">=12.13.0"
- },
- "peerDependencies": {
- "postcss": "^8.0.9"
- }
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/typescript": {
- "version": "4.9.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
- "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
- "dev": true,
- "peer": true,
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=4.2.0"
- }
- },
- "node_modules/update-browserslist-db": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
- "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- }
- ],
- "dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
- },
- "bin": {
- "browserslist-lint": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true
- },
- "node_modules/vite": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/vite/-/vite-4.2.1.tgz",
- "integrity": "sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==",
- "dev": true,
- "dependencies": {
- "esbuild": "^0.17.5",
- "postcss": "^8.4.21",
- "resolve": "^1.22.1",
- "rollup": "^3.18.0"
- },
- "bin": {
- "vite": "bin/vite.js"
- },
- "engines": {
- "node": "^14.18.0 || >=16.0.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- },
- "peerDependencies": {
- "@types/node": ">= 14",
- "less": "*",
- "sass": "*",
- "stylus": "*",
- "sugarss": "*",
- "terser": "^5.4.0"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "stylus": {
- "optional": true
- },
- "sugarss": {
- "optional": true
- },
- "terser": {
- "optional": true
- }
- }
- },
- "node_modules/vite-plugin-full-reload": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.0.5.tgz",
- "integrity": "sha512-kVZFDFWr0DxiHn6MuDVTQf7gnWIdETGlZh0hvTiMXzRN80vgF4PKbONSq8U1d0WtHsKaFODTQgJeakLacoPZEQ==",
- "dev": true,
- "dependencies": {
- "picocolors": "^1.0.0",
- "picomatch": "^2.3.1"
- },
- "peerDependencies": {
- "vite": "^2 || ^3 || ^4"
- }
- },
- "node_modules/vue": {
- "version": "3.2.47",
- "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz",
- "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==",
- "dev": true,
- "dependencies": {
- "@vue/compiler-dom": "3.2.47",
- "@vue/compiler-sfc": "3.2.47",
- "@vue/runtime-dom": "3.2.47",
- "@vue/server-renderer": "3.2.47",
- "@vue/shared": "3.2.47"
- }
- },
- "node_modules/vue-template-compiler": {
- "version": "2.7.14",
- "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz",
- "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==",
- "dev": true,
- "dependencies": {
- "de-indent": "^1.0.2",
- "he": "^1.2.0"
- }
- },
- "node_modules/vue-tsc": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.2.0.tgz",
- "integrity": "sha512-rIlzqdrhyPYyLG9zxsVRa+JEseeS9s8F2BbVVVWRRsTZvJO2BbhLEb2HW3MY+DFma0378tnIqs+vfTzbcQtRFw==",
- "dev": true,
- "dependencies": {
- "@volar/vue-language-core": "1.2.0",
- "@volar/vue-typescript": "1.2.0"
- },
- "bin": {
- "vue-tsc": "bin/vue-tsc.js"
- },
- "peerDependencies": {
- "typescript": "*"
- }
- },
- "node_modules/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "dev": true,
- "engines": {
- "node": ">=0.4"
- }
- },
- "node_modules/yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/ziggy-js": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/ziggy-js/-/ziggy-js-1.5.0.tgz",
- "integrity": "sha512-whzY4H/EMEKrXbbqQbncrSy9WN8N6sjzbVPdBjhQMauvODWtNUTDMq6Po55hPDx43GRFtIF22zrs/m2Z3qOi4g==",
- "dev": true,
- "dependencies": {
- "qs": "~6.9.7"
- }
- },
- "node_modules/ziggy-js/node_modules/qs": {
- "version": "6.9.7",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
- "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==",
- "dev": true,
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/zod": {
- "version": "3.21.4",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz",
- "integrity": "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/colinhacks"
- }
- }
- }
+ "name": "html",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "devDependencies": {
+ "@7nohe/laravel-typegen": "file:../../../laravel-typegen",
+ "@7nohe/laravel-zodgen": "^0.1.5",
+ "@inertiajs/vue3": "^1.0.8",
+ "@tailwindcss/forms": "^0.5.3",
+ "@types/ziggy-js": "^1.3.2",
+ "@vitejs/plugin-vue": "^4.1.0",
+ "autoprefixer": "^10.4.14",
+ "axios": "^1.3.4",
+ "laravel-vite-plugin": "^0.7.4",
+ "lodash": "^4.17.21",
+ "postcss": "^8.4.21",
+ "tailwindcss": "^3.2.7",
+ "vite": "^4.2.1",
+ "vue": "^3.2.47",
+ "vue-tsc": "^1.2.0",
+ "ziggy-js": "^1.5.0"
+ }
+ },
+ "../../../laravel-typegen": {
+ "version": "0.6.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@7nohe/laravel-zodgen": "^0.1.6",
+ "commander": "^12.0.0",
+ "consola": "^3.2.3",
+ "glob": "^10.3.12",
+ "php-parser": "^3.1.5",
+ "typescript": "^5.4.5"
+ },
+ "bin": {
+ "laravel-typegen": "dist/src/cli.js"
+ },
+ "devDependencies": {
+ "@biomejs/biome": "1.7.3",
+ "@types/node": "^20.11.16",
+ "lefthook": "^1.6.12"
+ }
+ },
+ "node_modules/@7nohe/laravel-typegen": {
+ "resolved": "../../../laravel-typegen",
+ "link": true
+ },
+ "node_modules/@7nohe/laravel-zodgen": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/@7nohe/laravel-zodgen/-/laravel-zodgen-0.1.5.tgz",
+ "integrity": "sha512-DqayU8j0g4u7O+gHLiKaeoJNXg1cz2AVaV6mGgvpIZJfzcIQbCc2JIc39BU1GcZsJ4eyddbzbKBxLcKCO2bxhw==",
+ "dev": true,
+ "dependencies": {
+ "commander": "^10.0.0",
+ "glob": "^9.3.2",
+ "php-parser": "^3.1.4",
+ "typescript": "^5.0.2",
+ "zod": "^3.21.4"
+ },
+ "bin": {
+ "laravel-zodgen": "dist/cli.js"
+ }
+ },
+ "node_modules/@7nohe/laravel-zodgen/node_modules/glob": {
+ "version": "9.3.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz",
+ "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "minimatch": "^8.0.2",
+ "minipass": "^4.2.4",
+ "path-scurry": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@7nohe/laravel-zodgen/node_modules/minimatch": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz",
+ "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@7nohe/laravel-zodgen/node_modules/typescript": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
+ "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
+ "dev": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=12.20"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.20.13",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz",
+ "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==",
+ "dev": true,
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.12.tgz",
+ "integrity": "sha512-E/sgkvwoIfj4aMAPL2e35VnUJspzVYl7+M1B2cqeubdBhADV4uPon0KCc8p2G+LqSJ6i8ocYPCqY3A4GGq0zkQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.12.tgz",
+ "integrity": "sha512-WQ9p5oiXXYJ33F2EkE3r0FRDFVpEdcDiwNX3u7Xaibxfx6vQE0Sb8ytrfQsA5WO6kDn6mDfKLh6KrPBjvkk7xA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.12.tgz",
+ "integrity": "sha512-m4OsaCr5gT+se25rFPHKQXARMyAehHTQAz4XX1Vk3d27VtqiX0ALMBPoXZsGaB6JYryCLfgGwUslMqTfqeLU0w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.12.tgz",
+ "integrity": "sha512-O3GCZghRIx+RAN0NDPhyyhRgwa19MoKlzGonIb5hgTj78krqp9XZbYCvFr9N1eUxg0ZQEpiiZ4QvsOQwBpP+lg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.12.tgz",
+ "integrity": "sha512-5D48jM3tW27h1qjaD9UNRuN+4v0zvksqZSPZqeSWggfMlsVdAhH3pwSfQIFJwcs9QJ9BRibPS4ViZgs3d2wsCA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.12.tgz",
+ "integrity": "sha512-OWvHzmLNTdF1erSvrfoEBGlN94IE6vCEaGEkEH29uo/VoONqPnoDFfShi41Ew+yKimx4vrmmAJEGNoyyP+OgOQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.12.tgz",
+ "integrity": "sha512-A0Xg5CZv8MU9xh4a+7NUpi5VHBKh1RaGJKqjxe4KG87X+mTjDE6ZvlJqpWoeJxgfXHT7IMP9tDFu7IZ03OtJAw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.12.tgz",
+ "integrity": "sha512-WsHyJ7b7vzHdJ1fv67Yf++2dz3D726oO3QCu8iNYik4fb5YuuReOI9OtA+n7Mk0xyQivNTPbl181s+5oZ38gyA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.12.tgz",
+ "integrity": "sha512-cK3AjkEc+8v8YG02hYLQIQlOznW+v9N+OI9BAFuyqkfQFR+DnDLhEM5N8QRxAUz99cJTo1rLNXqRrvY15gbQUg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.12.tgz",
+ "integrity": "sha512-jdOBXJqcgHlah/nYHnj3Hrnl9l63RjtQ4vn9+bohjQPI2QafASB5MtHAoEv0JQHVb/xYQTFOeuHnNYE1zF7tYw==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.12.tgz",
+ "integrity": "sha512-GTOEtj8h9qPKXCyiBBnHconSCV9LwFyx/gv3Phw0pa25qPYjVuuGZ4Dk14bGCfGX3qKF0+ceeQvwmtI+aYBbVA==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.12.tgz",
+ "integrity": "sha512-o8CIhfBwKcxmEENOH9RwmUejs5jFiNoDw7YgS0EJTF6kgPgcqLFjgoc5kDey5cMHRVCIWc6kK2ShUePOcc7RbA==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.12.tgz",
+ "integrity": "sha512-biMLH6NR/GR4z+ap0oJYb877LdBpGac8KfZoEnDiBKd7MD/xt8eaw1SFfYRUeMVx519kVkAOL2GExdFmYnZx3A==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.12.tgz",
+ "integrity": "sha512-jkphYUiO38wZGeWlfIBMB72auOllNA2sLfiZPGDtOBb1ELN8lmqBrlMiucgL8awBw1zBXN69PmZM6g4yTX84TA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.12.tgz",
+ "integrity": "sha512-j3ucLdeY9HBcvODhCY4b+Ds3hWGO8t+SAidtmWu/ukfLLG/oYDMaA+dnugTVAg5fnUOGNbIYL9TOjhWgQB8W5g==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.12.tgz",
+ "integrity": "sha512-uo5JL3cgaEGotaqSaJdRfFNSCUJOIliKLnDGWaVCgIKkHxwhYMm95pfMbWZ9l7GeW9kDg0tSxcy9NYdEtjwwmA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.12.tgz",
+ "integrity": "sha512-DNdoRg8JX+gGsbqt2gPgkgb00mqOgOO27KnrWZtdABl6yWTST30aibGJ6geBq3WM2TIeW6COs5AScnC7GwtGPg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.12.tgz",
+ "integrity": "sha512-aVsENlr7B64w8I1lhHShND5o8cW6sB9n9MUtLumFlPhG3elhNWtE7M1TFpj3m7lT3sKQUMkGFjTQBrvDDO1YWA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.12.tgz",
+ "integrity": "sha512-qbHGVQdKSwi0JQJuZznS4SyY27tYXYF0mrgthbxXrZI3AHKuRvU+Eqbg/F0rmLDpW/jkIZBlCO1XfHUBMNJ1pg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.12.tgz",
+ "integrity": "sha512-zsCp8Ql+96xXTVTmm6ffvoTSZSV2B/LzzkUXAY33F/76EajNw1m+jZ9zPfNJlJ3Rh4EzOszNDHsmG/fZOhtqDg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.12.tgz",
+ "integrity": "sha512-FfrFjR4id7wcFYOdqbDfDET3tjxCozUgbqdkOABsSFzoZGFC92UK7mg4JKRc/B3NNEf1s2WHxJ7VfTdVDPN3ng==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.12.tgz",
+ "integrity": "sha512-JOOxw49BVZx2/5tW3FqkdjSD/5gXYeVGPDcB0lvap0gLQshkh1Nyel1QazC+wNxus3xPlsYAgqU1BUmrmCvWtw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@inertiajs/core": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@inertiajs/core/-/core-1.0.8.tgz",
+ "integrity": "sha512-8nr1C76bE9Pfb5OwDGtjtSsiy2g6EG5J7w/w4dWHmoQdY9g01F+VnN3+QYtf/fsFkd8l7A6HoCBgUEZHkwdhXg==",
+ "dev": true,
+ "dependencies": {
+ "axios": "^1.2.0",
+ "deepmerge": "^4.0.0",
+ "nprogress": "^0.2.0",
+ "qs": "^6.9.0"
+ }
+ },
+ "node_modules/@inertiajs/vue3": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@inertiajs/vue3/-/vue3-1.0.8.tgz",
+ "integrity": "sha512-vWCMCCUFGYGtqHKTbwsg4cV0hbbZXoKGcDLxGtnV+OGD4sULmXvRzlc5ZuZrjn5gmhpGKWHnW6yY8ifNPLdoMg==",
+ "dev": true,
+ "dependencies": {
+ "@inertiajs/core": "1.0.8",
+ "lodash.clonedeep": "^4.5.0",
+ "lodash.isequal": "^4.5.0"
+ },
+ "peerDependencies": {
+ "vue": "^3.0.0"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@tailwindcss/forms": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.3.tgz",
+ "integrity": "sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q==",
+ "dev": true,
+ "dependencies": {
+ "mini-svg-data-uri": "^1.2.3"
+ },
+ "peerDependencies": {
+ "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1"
+ }
+ },
+ "node_modules/@types/history": {
+ "version": "4.7.11",
+ "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz",
+ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==",
+ "dev": true
+ },
+ "node_modules/@types/ziggy-js": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@types/ziggy-js/-/ziggy-js-1.3.2.tgz",
+ "integrity": "sha512-hwnsR3tEy3jyW+akw5kwfyZ9+/MZ+jN659G6LoGKBL9LvOUv07fiMsZL3vaK8IfTo2OXVMa4elsX8r/nU/x9hw==",
+ "dev": true,
+ "dependencies": {
+ "@types/history": "^4.7.11"
+ }
+ },
+ "node_modules/@vitejs/plugin-vue": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.1.0.tgz",
+ "integrity": "sha512-++9JOAFdcXI3lyer9UKUV4rfoQ3T1RN8yDqoCLar86s0xQct5yblxAE+yWgRnU5/0FOlVCpTZpYSBV/bGWrSrQ==",
+ "dev": true,
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^4.0.0",
+ "vue": "^3.2.25"
+ }
+ },
+ "node_modules/@volar/language-core": {
+ "version": "1.3.0-alpha.0",
+ "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.3.0-alpha.0.tgz",
+ "integrity": "sha512-W3uMzecHPcbwddPu4SJpUcPakRBK/y/BP+U0U6NiPpUX1tONLC4yCawt+QBJqtgJ+sfD6ztf5PyvPL3hQRqfOA==",
+ "dev": true,
+ "dependencies": {
+ "@volar/source-map": "1.3.0-alpha.0"
+ }
+ },
+ "node_modules/@volar/source-map": {
+ "version": "1.3.0-alpha.0",
+ "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.3.0-alpha.0.tgz",
+ "integrity": "sha512-jSdizxWFvDTvkPYZnO6ew3sBZUnS0abKCbuopkc0JrIlFbznWC/fPH3iPFIMS8/IIkRxq1Jh9VVG60SmtsdaMQ==",
+ "dev": true,
+ "dependencies": {
+ "muggle-string": "^0.2.2"
+ }
+ },
+ "node_modules/@volar/typescript": {
+ "version": "1.3.0-alpha.0",
+ "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.3.0-alpha.0.tgz",
+ "integrity": "sha512-5UItyW2cdH2mBLu4RrECRNJRgtvvzKrSCn2y3v/D61QwIDkGx4aeil6x8RFuUL5TFtV6QvVHXnsOHxNgd+sCow==",
+ "dev": true,
+ "dependencies": {
+ "@volar/language-core": "1.3.0-alpha.0"
+ }
+ },
+ "node_modules/@volar/vue-language-core": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.2.0.tgz",
+ "integrity": "sha512-w7yEiaITh2WzKe6u8ZdeLKCUz43wdmY/OqAmsB/PGDvvhTcVhCJ6f0W/RprZL1IhqH8wALoWiwEh/Wer7ZviMQ==",
+ "dev": true,
+ "dependencies": {
+ "@volar/language-core": "1.3.0-alpha.0",
+ "@volar/source-map": "1.3.0-alpha.0",
+ "@vue/compiler-dom": "^3.2.47",
+ "@vue/compiler-sfc": "^3.2.47",
+ "@vue/reactivity": "^3.2.47",
+ "@vue/shared": "^3.2.47",
+ "minimatch": "^6.1.6",
+ "muggle-string": "^0.2.2",
+ "vue-template-compiler": "^2.7.14"
+ }
+ },
+ "node_modules/@volar/vue-language-core/node_modules/minimatch": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz",
+ "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@volar/vue-typescript": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.2.0.tgz",
+ "integrity": "sha512-zjmRi9y3J1EkG+pfuHp8IbHmibihrKK485cfzsHjiuvJMGrpkWvlO5WVEk8oslMxxeGC5XwBFE9AOlvh378EPA==",
+ "dev": true,
+ "dependencies": {
+ "@volar/typescript": "1.3.0-alpha.0",
+ "@volar/vue-language-core": "1.2.0"
+ }
+ },
+ "node_modules/@vue/compiler-core": {
+ "version": "3.2.47",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz",
+ "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==",
+ "dev": true,
+ "dependencies": {
+ "@babel/parser": "^7.16.4",
+ "@vue/shared": "3.2.47",
+ "estree-walker": "^2.0.2",
+ "source-map": "^0.6.1"
+ }
+ },
+ "node_modules/@vue/compiler-dom": {
+ "version": "3.2.47",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz",
+ "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==",
+ "dev": true,
+ "dependencies": {
+ "@vue/compiler-core": "3.2.47",
+ "@vue/shared": "3.2.47"
+ }
+ },
+ "node_modules/@vue/compiler-sfc": {
+ "version": "3.2.47",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz",
+ "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/parser": "^7.16.4",
+ "@vue/compiler-core": "3.2.47",
+ "@vue/compiler-dom": "3.2.47",
+ "@vue/compiler-ssr": "3.2.47",
+ "@vue/reactivity-transform": "3.2.47",
+ "@vue/shared": "3.2.47",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.25.7",
+ "postcss": "^8.1.10",
+ "source-map": "^0.6.1"
+ }
+ },
+ "node_modules/@vue/compiler-ssr": {
+ "version": "3.2.47",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz",
+ "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==",
+ "dev": true,
+ "dependencies": {
+ "@vue/compiler-dom": "3.2.47",
+ "@vue/shared": "3.2.47"
+ }
+ },
+ "node_modules/@vue/reactivity": {
+ "version": "3.2.47",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz",
+ "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==",
+ "dev": true,
+ "dependencies": {
+ "@vue/shared": "3.2.47"
+ }
+ },
+ "node_modules/@vue/reactivity-transform": {
+ "version": "3.2.47",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz",
+ "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/parser": "^7.16.4",
+ "@vue/compiler-core": "3.2.47",
+ "@vue/shared": "3.2.47",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.25.7"
+ }
+ },
+ "node_modules/@vue/runtime-core": {
+ "version": "3.2.47",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz",
+ "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==",
+ "dev": true,
+ "dependencies": {
+ "@vue/reactivity": "3.2.47",
+ "@vue/shared": "3.2.47"
+ }
+ },
+ "node_modules/@vue/runtime-dom": {
+ "version": "3.2.47",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz",
+ "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==",
+ "dev": true,
+ "dependencies": {
+ "@vue/runtime-core": "3.2.47",
+ "@vue/shared": "3.2.47",
+ "csstype": "^2.6.8"
+ }
+ },
+ "node_modules/@vue/server-renderer": {
+ "version": "3.2.47",
+ "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz",
+ "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==",
+ "dev": true,
+ "dependencies": {
+ "@vue/compiler-ssr": "3.2.47",
+ "@vue/shared": "3.2.47"
+ },
+ "peerDependencies": {
+ "vue": "3.2.47"
+ }
+ },
+ "node_modules/@vue/shared": {
+ "version": "3.2.47",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz",
+ "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==",
+ "dev": true
+ },
+ "node_modules/acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-node": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz",
+ "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^7.0.0",
+ "acorn-walk": "^7.0.0",
+ "xtend": "^4.0.2"
+ }
+ },
+ "node_modules/acorn-walk": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
+ "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/arg": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
+ "dev": true
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "dev": true
+ },
+ "node_modules/autoprefixer": {
+ "version": "10.4.14",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz",
+ "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ }
+ ],
+ "dependencies": {
+ "browserslist": "^4.21.5",
+ "caniuse-lite": "^1.0.30001464",
+ "fraction.js": "^4.2.0",
+ "normalize-range": "^0.1.2",
+ "picocolors": "^1.0.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/axios": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.4.tgz",
+ "integrity": "sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==",
+ "dev": true,
+ "dependencies": {
+ "follow-redirects": "^1.15.0",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.21.5",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
+ "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ }
+ ],
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001449",
+ "electron-to-chromium": "^1.4.284",
+ "node-releases": "^2.0.8",
+ "update-browserslist-db": "^1.0.10"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/camelcase-css": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
+ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001468",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001468.tgz",
+ "integrity": "sha512-zgAo8D5kbOyUcRAgSmgyuvBkjrGk5CGYG5TYgFdpQv+ywcyEpo1LOWoG8YmoflGnh+V+UsNuKYedsoYs0hzV5A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ }
+ ]
+ },
+ "node_modules/chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/chokidar/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dev": true,
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/commander": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz",
+ "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true,
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "2.6.21",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz",
+ "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==",
+ "dev": true
+ },
+ "node_modules/de-indent": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
+ "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==",
+ "dev": true
+ },
+ "node_modules/deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/defined": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz",
+ "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/detective": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz",
+ "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==",
+ "dev": true,
+ "dependencies": {
+ "acorn-node": "^1.8.2",
+ "defined": "^1.0.0",
+ "minimist": "^1.2.6"
+ },
+ "bin": {
+ "detective": "bin/detective.js"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/didyoumean": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
+ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
+ "dev": true
+ },
+ "node_modules/dlv": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
+ "dev": true
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.334",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.334.tgz",
+ "integrity": "sha512-laZ1odk+TRen6q0GeyQx/JEkpD3iSZT7ewopCpKqg9bTjP1l8XRfU3Bg20CFjNPZkp5+NDBl3iqd4o/kPO+Vew==",
+ "dev": true
+ },
+ "node_modules/esbuild": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.12.tgz",
+ "integrity": "sha512-bX/zHl7Gn2CpQwcMtRogTTBf9l1nl+H6R8nUbjk+RuKqAE3+8FDulLA+pHvX7aA7Xe07Iwa+CWvy9I8Y2qqPKQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/android-arm": "0.17.12",
+ "@esbuild/android-arm64": "0.17.12",
+ "@esbuild/android-x64": "0.17.12",
+ "@esbuild/darwin-arm64": "0.17.12",
+ "@esbuild/darwin-x64": "0.17.12",
+ "@esbuild/freebsd-arm64": "0.17.12",
+ "@esbuild/freebsd-x64": "0.17.12",
+ "@esbuild/linux-arm": "0.17.12",
+ "@esbuild/linux-arm64": "0.17.12",
+ "@esbuild/linux-ia32": "0.17.12",
+ "@esbuild/linux-loong64": "0.17.12",
+ "@esbuild/linux-mips64el": "0.17.12",
+ "@esbuild/linux-ppc64": "0.17.12",
+ "@esbuild/linux-riscv64": "0.17.12",
+ "@esbuild/linux-s390x": "0.17.12",
+ "@esbuild/linux-x64": "0.17.12",
+ "@esbuild/netbsd-x64": "0.17.12",
+ "@esbuild/openbsd-x64": "0.17.12",
+ "@esbuild/sunos-x64": "0.17.12",
+ "@esbuild/win32-arm64": "0.17.12",
+ "@esbuild/win32-ia32": "0.17.12",
+ "@esbuild/win32-x64": "0.17.12"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
+ "dev": true
+ },
+ "node_modules/fast-glob": {
+ "version": "3.2.12",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
+ "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
+ "dev": true,
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
+ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dev": true,
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fraction.js": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
+ "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "type": "patreon",
+ "url": "https://www.patreon.com/infusion"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
+ "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true,
+ "bin": {
+ "he": "bin/he"
+ }
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "dev": true,
+ "dependencies": {
+ "has": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/laravel-vite-plugin": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-0.7.4.tgz",
+ "integrity": "sha512-NlIuXbeuI+4NZzRpWNpGHRVTwuFWessvD7QoD+o2MlyAi7qyUS4J8r4/yTlu1dl9lxcR7iKoYUmHQqZDcrw2KA==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^1.0.0",
+ "vite-plugin-full-reload": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "vite": "^3.0.0 || ^4.0.0"
+ }
+ },
+ "node_modules/lilconfig": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz",
+ "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true
+ },
+ "node_modules/lodash.clonedeep": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+ "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==",
+ "dev": true
+ },
+ "node_modules/lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
+ "dev": true
+ },
+ "node_modules/lru-cache": {
+ "version": "9.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz",
+ "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==",
+ "dev": true,
+ "engines": {
+ "node": "14 || >=16.14"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
+ "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
+ "dev": true,
+ "dependencies": {
+ "sourcemap-codec": "^1.4.8"
+ }
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mini-svg-data-uri": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz",
+ "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==",
+ "dev": true,
+ "bin": {
+ "mini-svg-data-uri": "cli.js"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
+ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz",
+ "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/muggle-string": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.2.2.tgz",
+ "integrity": "sha512-YVE1mIJ4VpUMqZObFndk9CJu6DBJR/GB13p3tXuNbwD4XExaI5EOuRl6BHeIDxIqXZVxSfAC+y6U1Z/IxCfKUg==",
+ "dev": true
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "dev": true,
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz",
+ "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==",
+ "dev": true
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/nprogress": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz",
+ "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==",
+ "dev": true
+ },
+ "node_modules/object-hash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.12.3",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
+ "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "node_modules/path-scurry": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.7.0.tgz",
+ "integrity": "sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^9.0.0",
+ "minipass": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/path-scurry/node_modules/minipass": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/php-parser": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/php-parser/-/php-parser-3.1.4.tgz",
+ "integrity": "sha512-WUEfH4FWsVItqgOknM67msDdcUAfgPJsHhPNl6EPXzWtX+PfdY282m4i8YIJ9ALUEhf+qGDajdmW+VYqSd7Deg==",
+ "dev": true
+ },
+ "node_modules/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "dev": true
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.4.21",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
+ "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.4",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postcss-import": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz",
+ "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==",
+ "dev": true,
+ "dependencies": {
+ "postcss-value-parser": "^4.0.0",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.0"
+ }
+ },
+ "node_modules/postcss-js": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz",
+ "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==",
+ "dev": true,
+ "dependencies": {
+ "camelcase-css": "^2.0.1"
+ },
+ "engines": {
+ "node": "^12 || ^14 || >= 16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ "peerDependencies": {
+ "postcss": "^8.3.3"
+ }
+ },
+ "node_modules/postcss-load-config": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz",
+ "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==",
+ "dev": true,
+ "dependencies": {
+ "lilconfig": "^2.0.5",
+ "yaml": "^1.10.2"
+ },
+ "engines": {
+ "node": ">= 10"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ "peerDependencies": {
+ "postcss": ">=8.0.9",
+ "ts-node": ">=9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "postcss": {
+ "optional": true
+ },
+ "ts-node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/postcss-nested": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz",
+ "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==",
+ "dev": true,
+ "dependencies": {
+ "postcss-selector-parser": "^6.0.10"
+ },
+ "engines": {
+ "node": ">=12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.14"
+ }
+ },
+ "node_modules/postcss-selector-parser": {
+ "version": "6.0.11",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
+ "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==",
+ "dev": true,
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "dev": true
+ },
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "dev": true
+ },
+ "node_modules/qs": {
+ "version": "6.11.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
+ "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==",
+ "dev": true,
+ "dependencies": {
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/quick-lru": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
+ "dev": true,
+ "dependencies": {
+ "pify": "^2.3.0"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true,
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "3.20.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.20.0.tgz",
+ "integrity": "sha512-YsIfrk80NqUDrxrjWPXUa7PWvAfegZEXHuPsEZg58fGCdjL1I9C1i/NaG+L+27kxxwkrG/QEDEQc8s/ynXWWGQ==",
+ "dev": true,
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=14.18.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sourcemap-codec": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
+ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
+ "deprecated": "Please use @jridgewell/sourcemap-codec instead",
+ "dev": true
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/tailwindcss": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.7.tgz",
+ "integrity": "sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==",
+ "dev": true,
+ "dependencies": {
+ "arg": "^5.0.2",
+ "chokidar": "^3.5.3",
+ "color-name": "^1.1.4",
+ "detective": "^5.2.1",
+ "didyoumean": "^1.2.2",
+ "dlv": "^1.1.3",
+ "fast-glob": "^3.2.12",
+ "glob-parent": "^6.0.2",
+ "is-glob": "^4.0.3",
+ "lilconfig": "^2.0.6",
+ "micromatch": "^4.0.5",
+ "normalize-path": "^3.0.0",
+ "object-hash": "^3.0.0",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.0.9",
+ "postcss-import": "^14.1.0",
+ "postcss-js": "^4.0.0",
+ "postcss-load-config": "^3.1.4",
+ "postcss-nested": "6.0.0",
+ "postcss-selector-parser": "^6.0.11",
+ "postcss-value-parser": "^4.2.0",
+ "quick-lru": "^5.1.1",
+ "resolve": "^1.22.1"
+ },
+ "bin": {
+ "tailwind": "lib/cli.js",
+ "tailwindcss": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=12.13.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.9"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "4.9.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
+ "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
+ "dev": true,
+ "peer": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
+ "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ }
+ ],
+ "dependencies": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "browserslist-lint": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true
+ },
+ "node_modules/vite": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-4.2.1.tgz",
+ "integrity": "sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==",
+ "dev": true,
+ "dependencies": {
+ "esbuild": "^0.17.5",
+ "postcss": "^8.4.21",
+ "resolve": "^1.22.1",
+ "rollup": "^3.18.0"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ },
+ "peerDependencies": {
+ "@types/node": ">= 14",
+ "less": "*",
+ "sass": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-plugin-full-reload": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.0.5.tgz",
+ "integrity": "sha512-kVZFDFWr0DxiHn6MuDVTQf7gnWIdETGlZh0hvTiMXzRN80vgF4PKbONSq8U1d0WtHsKaFODTQgJeakLacoPZEQ==",
+ "dev": true,
+ "dependencies": {
+ "picocolors": "^1.0.0",
+ "picomatch": "^2.3.1"
+ },
+ "peerDependencies": {
+ "vite": "^2 || ^3 || ^4"
+ }
+ },
+ "node_modules/vue": {
+ "version": "3.2.47",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz",
+ "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==",
+ "dev": true,
+ "dependencies": {
+ "@vue/compiler-dom": "3.2.47",
+ "@vue/compiler-sfc": "3.2.47",
+ "@vue/runtime-dom": "3.2.47",
+ "@vue/server-renderer": "3.2.47",
+ "@vue/shared": "3.2.47"
+ }
+ },
+ "node_modules/vue-template-compiler": {
+ "version": "2.7.14",
+ "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz",
+ "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==",
+ "dev": true,
+ "dependencies": {
+ "de-indent": "^1.0.2",
+ "he": "^1.2.0"
+ }
+ },
+ "node_modules/vue-tsc": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.2.0.tgz",
+ "integrity": "sha512-rIlzqdrhyPYyLG9zxsVRa+JEseeS9s8F2BbVVVWRRsTZvJO2BbhLEb2HW3MY+DFma0378tnIqs+vfTzbcQtRFw==",
+ "dev": true,
+ "dependencies": {
+ "@volar/vue-language-core": "1.2.0",
+ "@volar/vue-typescript": "1.2.0"
+ },
+ "bin": {
+ "vue-tsc": "bin/vue-tsc.js"
+ },
+ "peerDependencies": {
+ "typescript": "*"
+ }
+ },
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
+ "node_modules/yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/ziggy-js": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/ziggy-js/-/ziggy-js-1.5.0.tgz",
+ "integrity": "sha512-whzY4H/EMEKrXbbqQbncrSy9WN8N6sjzbVPdBjhQMauvODWtNUTDMq6Po55hPDx43GRFtIF22zrs/m2Z3qOi4g==",
+ "dev": true,
+ "dependencies": {
+ "qs": "~6.9.7"
+ }
+ },
+ "node_modules/ziggy-js/node_modules/qs": {
+ "version": "6.9.7",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
+ "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/zod": {
+ "version": "3.21.4",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz",
+ "integrity": "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/colinhacks"
+ }
+ }
+ }
}
diff --git a/examples/laravel10-app/package.json b/examples/laravel10-app/package.json
index 781e698..f9b6847 100644
--- a/examples/laravel10-app/package.json
+++ b/examples/laravel10-app/package.json
@@ -1,28 +1,28 @@
{
- "private": true,
- "scripts": {
- "dev": "vite",
- "build": "vite build",
- "type:check": "vue-tsc --noEmit",
- "typegen": "KEEP_LARAVEL_JSON=true node node_modules/@7nohe/laravel-typegen/dist/src/cli.js --ziggy --form-request",
- "typegen:laravel-enum": "node node_modules/@7nohe/laravel-typegen/dist/src/cli.js --enum-path 'app/LaravelEnums' --laravel-enum"
- },
- "devDependencies": {
- "@7nohe/laravel-typegen": "file:../../../laravel-typegen",
- "@7nohe/laravel-zodgen": "^0.1.5",
- "@inertiajs/vue3": "^1.0.8",
- "@tailwindcss/forms": "^0.5.3",
- "@types/ziggy-js": "^1.3.2",
- "@vitejs/plugin-vue": "^4.1.0",
- "autoprefixer": "^10.4.14",
- "axios": "^1.3.4",
- "laravel-vite-plugin": "^0.7.4",
- "lodash": "^4.17.21",
- "postcss": "^8.4.21",
- "tailwindcss": "^3.2.7",
- "vite": "^4.2.1",
- "vue": "^3.2.47",
- "vue-tsc": "^1.2.0",
- "ziggy-js": "^1.5.0"
- }
+ "private": true,
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "type:check": "vue-tsc --noEmit",
+ "typegen": "KEEP_LARAVEL_JSON=true node node_modules/@7nohe/laravel-typegen/dist/src/cli.js --ziggy --form-request",
+ "typegen:laravel-enum": "node node_modules/@7nohe/laravel-typegen/dist/src/cli.js --enum-path 'app/LaravelEnums' --laravel-enum"
+ },
+ "devDependencies": {
+ "@7nohe/laravel-typegen": "file:../../../laravel-typegen",
+ "@7nohe/laravel-zodgen": "^0.1.5",
+ "@inertiajs/vue3": "^1.0.8",
+ "@tailwindcss/forms": "^0.5.3",
+ "@types/ziggy-js": "^1.3.2",
+ "@vitejs/plugin-vue": "^4.1.0",
+ "autoprefixer": "^10.4.14",
+ "axios": "^1.3.4",
+ "laravel-vite-plugin": "^0.7.4",
+ "lodash": "^4.17.21",
+ "postcss": "^8.4.21",
+ "tailwindcss": "^3.2.7",
+ "vite": "^4.2.1",
+ "vue": "^3.2.47",
+ "vue-tsc": "^1.2.0",
+ "ziggy-js": "^1.5.0"
+ }
}
diff --git a/examples/laravel10-app/postcss.config.js b/examples/laravel10-app/postcss.config.js
index e873f1a..12a703d 100644
--- a/examples/laravel10-app/postcss.config.js
+++ b/examples/laravel10-app/postcss.config.js
@@ -1,6 +1,6 @@
module.exports = {
- plugins: {
- tailwindcss: {},
- autoprefixer: {},
- },
+ plugins: {
+ tailwindcss: {},
+ autoprefixer: {},
+ },
};
diff --git a/examples/laravel10-app/resources/js/Components/Checkbox.vue b/examples/laravel10-app/resources/js/Components/Checkbox.vue
index 92211a5..5caf23f 100644
--- a/examples/laravel10-app/resources/js/Components/Checkbox.vue
+++ b/examples/laravel10-app/resources/js/Components/Checkbox.vue
@@ -4,23 +4,23 @@ import { computed } from "vue";
const emit = defineEmits(["update:checked"]);
const props = defineProps({
- checked: {
- type: [Array, Boolean],
- default: false,
- },
- value: {
- default: null,
- },
+ checked: {
+ type: [Array, Boolean],
+ default: false,
+ },
+ value: {
+ default: null,
+ },
});
const proxyChecked = computed({
- get() {
- return props.checked;
- },
+ get() {
+ return props.checked;
+ },
- set(val) {
- emit("update:checked", val);
- },
+ set(val) {
+ emit("update:checked", val);
+ },
});
diff --git a/examples/laravel10-app/resources/js/Components/DangerButton.vue b/examples/laravel10-app/resources/js/Components/DangerButton.vue
index 290555c..f0260f1 100644
--- a/examples/laravel10-app/resources/js/Components/DangerButton.vue
+++ b/examples/laravel10-app/resources/js/Components/DangerButton.vue
@@ -1,6 +1,6 @@
diff --git a/examples/laravel10-app/resources/js/Components/Dropdown.vue b/examples/laravel10-app/resources/js/Components/Dropdown.vue
index b12a3bf..40b01f5 100644
--- a/examples/laravel10-app/resources/js/Components/Dropdown.vue
+++ b/examples/laravel10-app/resources/js/Components/Dropdown.vue
@@ -2,40 +2,40 @@
import { computed, onMounted, onUnmounted, ref } from "vue";
const props = defineProps({
- align: {
- default: "right",
- },
- width: {
- default: "48",
- },
- contentClasses: {
- default: () => ["py-1", "bg-white"],
- },
+ align: {
+ default: "right",
+ },
+ width: {
+ default: "48",
+ },
+ contentClasses: {
+ default: () => ["py-1", "bg-white"],
+ },
});
const closeOnEscape = (e: KeyboardEvent) => {
- if (open.value && e.key === "Escape") {
- open.value = false;
- }
+ if (open.value && e.key === "Escape") {
+ open.value = false;
+ }
};
onMounted(() => document.addEventListener("keydown", closeOnEscape));
onUnmounted(() => document.removeEventListener("keydown", closeOnEscape));
const widthClass = computed(() => {
- return {
- 48: "w-48",
- }[props.width.toString()];
+ return {
+ 48: "w-48",
+ }[props.width.toString()];
});
const alignmentClasses = computed(() => {
- if (props.align === "left") {
- return "origin-top-left left-0";
- }
- if (props.align === "right") {
- return "origin-top-right right-0";
- }
- return "origin-top";
+ if (props.align === "left") {
+ return "origin-top-left left-0";
+ }
+ if (props.align === "right") {
+ return "origin-top-right right-0";
+ }
+ return "origin-top";
});
const open = ref(false);
diff --git a/examples/laravel10-app/resources/js/Components/Modal.vue b/examples/laravel10-app/resources/js/Components/Modal.vue
index 9a7103c..5918b6b 100644
--- a/examples/laravel10-app/resources/js/Components/Modal.vue
+++ b/examples/laravel10-app/resources/js/Components/Modal.vue
@@ -2,60 +2,60 @@
import { computed, onMounted, onUnmounted, watch } from "vue";
const props = defineProps({
- show: {
- type: Boolean,
- default: false,
- },
- maxWidth: {
- type: String,
- default: "2xl",
- },
- closeable: {
- type: Boolean,
- default: true,
- },
+ show: {
+ type: Boolean,
+ default: false,
+ },
+ maxWidth: {
+ type: String,
+ default: "2xl",
+ },
+ closeable: {
+ type: Boolean,
+ default: true,
+ },
});
const emit = defineEmits(["close"]);
watch(
- () => props.show,
- () => {
- if (props.show) {
- document.body.style.overflow = "hidden";
- } else {
- document.body.style.overflow = "";
- }
- },
+ () => props.show,
+ () => {
+ if (props.show) {
+ document.body.style.overflow = "hidden";
+ } else {
+ document.body.style.overflow = "";
+ }
+ },
);
const close = () => {
- if (props.closeable) {
- emit("close");
- }
+ if (props.closeable) {
+ emit("close");
+ }
};
const closeOnEscape = (e: KeyboardEvent) => {
- if (e.key === "Escape" && props.show) {
- close();
- }
+ if (e.key === "Escape" && props.show) {
+ close();
+ }
};
onMounted(() => document.addEventListener("keydown", closeOnEscape));
onUnmounted(() => {
- document.removeEventListener("keydown", closeOnEscape);
- document.body.style.overflow = "";
+ document.removeEventListener("keydown", closeOnEscape);
+ document.body.style.overflow = "";
});
const maxWidthClass = computed(() => {
- return {
- sm: "sm:max-w-sm",
- md: "sm:max-w-md",
- lg: "sm:max-w-lg",
- xl: "sm:max-w-xl",
- "2xl": "sm:max-w-2xl",
- }[props.maxWidth];
+ return {
+ sm: "sm:max-w-sm",
+ md: "sm:max-w-md",
+ lg: "sm:max-w-lg",
+ xl: "sm:max-w-xl",
+ "2xl": "sm:max-w-2xl",
+ }[props.maxWidth];
});
diff --git a/examples/laravel10-app/resources/js/Components/NavLink.vue b/examples/laravel10-app/resources/js/Components/NavLink.vue
index b344ef7..88d975d 100644
--- a/examples/laravel10-app/resources/js/Components/NavLink.vue
+++ b/examples/laravel10-app/resources/js/Components/NavLink.vue
@@ -5,9 +5,9 @@ import { computed } from "vue";
const props = defineProps(["href", "active"]);
const classes = computed(() =>
- props.active
- ? "inline-flex items-center px-1 pt-1 border-b-2 border-indigo-400 text-sm font-medium leading-5 text-gray-900 focus:outline-none focus:border-indigo-700 transition duration-150 ease-in-out"
- : "inline-flex items-center px-1 pt-1 border-b-2 border-transparent text-sm font-medium leading-5 text-gray-500 hover:text-gray-700 hover:border-gray-300 focus:outline-none focus:text-gray-700 focus:border-gray-300 transition duration-150 ease-in-out",
+ props.active
+ ? "inline-flex items-center px-1 pt-1 border-b-2 border-indigo-400 text-sm font-medium leading-5 text-gray-900 focus:outline-none focus:border-indigo-700 transition duration-150 ease-in-out"
+ : "inline-flex items-center px-1 pt-1 border-b-2 border-transparent text-sm font-medium leading-5 text-gray-500 hover:text-gray-700 hover:border-gray-300 focus:outline-none focus:text-gray-700 focus:border-gray-300 transition duration-150 ease-in-out",
);
diff --git a/examples/laravel10-app/resources/js/Components/PrimaryButton.vue b/examples/laravel10-app/resources/js/Components/PrimaryButton.vue
index 5311385..4567bbd 100644
--- a/examples/laravel10-app/resources/js/Components/PrimaryButton.vue
+++ b/examples/laravel10-app/resources/js/Components/PrimaryButton.vue
@@ -1,6 +1,6 @@
diff --git a/examples/laravel10-app/resources/js/Components/ResponsiveNavLink.vue b/examples/laravel10-app/resources/js/Components/ResponsiveNavLink.vue
index 24d7f48..2c75ee8 100644
--- a/examples/laravel10-app/resources/js/Components/ResponsiveNavLink.vue
+++ b/examples/laravel10-app/resources/js/Components/ResponsiveNavLink.vue
@@ -5,9 +5,9 @@ import { computed } from "vue";
const props = defineProps(["href", "active"]);
const classes = computed(() =>
- props.active
- ? "block w-full pl-3 pr-4 py-2 border-l-4 border-indigo-400 text-left text-base font-medium text-indigo-700 bg-indigo-50 focus:outline-none focus:text-indigo-800 focus:bg-indigo-100 focus:border-indigo-700 transition duration-150 ease-in-out"
- : "block w-full pl-3 pr-4 py-2 border-l-4 border-transparent text-left text-base font-medium text-gray-600 hover:text-gray-800 hover:bg-gray-50 hover:border-gray-300 focus:outline-none focus:text-gray-800 focus:bg-gray-50 focus:border-gray-300 transition duration-150 ease-in-out",
+ props.active
+ ? "block w-full pl-3 pr-4 py-2 border-l-4 border-indigo-400 text-left text-base font-medium text-indigo-700 bg-indigo-50 focus:outline-none focus:text-indigo-800 focus:bg-indigo-100 focus:border-indigo-700 transition duration-150 ease-in-out"
+ : "block w-full pl-3 pr-4 py-2 border-l-4 border-transparent text-left text-base font-medium text-gray-600 hover:text-gray-800 hover:bg-gray-50 hover:border-gray-300 focus:outline-none focus:text-gray-800 focus:bg-gray-50 focus:border-gray-300 transition duration-150 ease-in-out",
);
diff --git a/examples/laravel10-app/resources/js/Components/SecondaryButton.vue b/examples/laravel10-app/resources/js/Components/SecondaryButton.vue
index 6af8368..95859ad 100644
--- a/examples/laravel10-app/resources/js/Components/SecondaryButton.vue
+++ b/examples/laravel10-app/resources/js/Components/SecondaryButton.vue
@@ -1,6 +1,6 @@
diff --git a/examples/laravel10-app/resources/js/Components/TextInput.vue b/examples/laravel10-app/resources/js/Components/TextInput.vue
index 919948b..5a6350a 100644
--- a/examples/laravel10-app/resources/js/Components/TextInput.vue
+++ b/examples/laravel10-app/resources/js/Components/TextInput.vue
@@ -8,9 +8,9 @@ defineEmits(["update:modelValue"]);
const input = ref(null);
onMounted(() => {
- if (input?.value?.hasAttribute("autofocus")) {
- input.value.focus();
- }
+ if (input?.value?.hasAttribute("autofocus")) {
+ input.value.focus();
+ }
});
defineExpose({ focus: () => input?.value?.focus() });
diff --git a/examples/laravel10-app/resources/js/Layouts/AuthenticatedLayout.vue b/examples/laravel10-app/resources/js/Layouts/AuthenticatedLayout.vue
index d3ab34e..1a7f453 100644
--- a/examples/laravel10-app/resources/js/Layouts/AuthenticatedLayout.vue
+++ b/examples/laravel10-app/resources/js/Layouts/AuthenticatedLayout.vue
@@ -11,9 +11,9 @@ import { ref } from "vue";
const showingNavigationDropdown = ref(false);
const page = usePage<{
- auth: {
- user: User;
- };
+ auth: {
+ user: User;
+ };
}>();
diff --git a/examples/laravel10-app/resources/js/Pages/Auth/ConfirmPassword.vue b/examples/laravel10-app/resources/js/Pages/Auth/ConfirmPassword.vue
index 4ae1461..3cb6878 100644
--- a/examples/laravel10-app/resources/js/Pages/Auth/ConfirmPassword.vue
+++ b/examples/laravel10-app/resources/js/Pages/Auth/ConfirmPassword.vue
@@ -7,13 +7,13 @@ import GuestLayout from "@/Layouts/GuestLayout.vue";
import { Head, useForm } from "@inertiajs/vue3";
const form = useForm({
- password: "",
+ password: "",
});
const submit = () => {
- form.post(route("password.confirm"), {
- onFinish: () => form.reset(),
- });
+ form.post(route("password.confirm"), {
+ onFinish: () => form.reset(),
+ });
};
diff --git a/examples/laravel10-app/resources/js/Pages/Auth/ForgotPassword.vue b/examples/laravel10-app/resources/js/Pages/Auth/ForgotPassword.vue
index 4f29c5b..f851d31 100644
--- a/examples/laravel10-app/resources/js/Pages/Auth/ForgotPassword.vue
+++ b/examples/laravel10-app/resources/js/Pages/Auth/ForgotPassword.vue
@@ -7,15 +7,15 @@ import GuestLayout from "@/Layouts/GuestLayout.vue";
import { Head, useForm } from "@inertiajs/vue3";
defineProps({
- status: String,
+ status: String,
});
const form = useForm({
- email: "",
+ email: "",
});
const submit = () => {
- form.post(route("password.email"));
+ form.post(route("password.email"));
};
diff --git a/examples/laravel10-app/resources/js/Pages/Auth/Login.vue b/examples/laravel10-app/resources/js/Pages/Auth/Login.vue
index a790031..c8c6628 100644
--- a/examples/laravel10-app/resources/js/Pages/Auth/Login.vue
+++ b/examples/laravel10-app/resources/js/Pages/Auth/Login.vue
@@ -8,20 +8,20 @@ import GuestLayout from "@/Layouts/GuestLayout.vue";
import { Head, Link, useForm } from "@inertiajs/vue3";
defineProps({
- canResetPassword: Boolean,
- status: String,
+ canResetPassword: Boolean,
+ status: String,
});
const form = useForm({
- email: "",
- password: "",
- remember: false,
+ email: "",
+ password: "",
+ remember: false,
});
const submit = () => {
- form.post(route("login"), {
- onFinish: () => form.reset("password"),
- });
+ form.post(route("login"), {
+ onFinish: () => form.reset("password"),
+ });
};
diff --git a/examples/laravel10-app/resources/js/Pages/Auth/Register.vue b/examples/laravel10-app/resources/js/Pages/Auth/Register.vue
index 59d36f4..dc04fed 100644
--- a/examples/laravel10-app/resources/js/Pages/Auth/Register.vue
+++ b/examples/laravel10-app/resources/js/Pages/Auth/Register.vue
@@ -7,17 +7,17 @@ import GuestLayout from "@/Layouts/GuestLayout.vue";
import { Head, Link, useForm } from "@inertiajs/vue3";
const form = useForm({
- name: "",
- email: "",
- password: "",
- password_confirmation: "",
- terms: false,
+ name: "",
+ email: "",
+ password: "",
+ password_confirmation: "",
+ terms: false,
});
const submit = () => {
- form.post(route("register"), {
- onFinish: () => form.reset("password", "password_confirmation"),
- });
+ form.post(route("register"), {
+ onFinish: () => form.reset("password", "password_confirmation"),
+ });
};
diff --git a/examples/laravel10-app/resources/js/Pages/Auth/ResetPassword.vue b/examples/laravel10-app/resources/js/Pages/Auth/ResetPassword.vue
index ec057d9..b2ad123 100644
--- a/examples/laravel10-app/resources/js/Pages/Auth/ResetPassword.vue
+++ b/examples/laravel10-app/resources/js/Pages/Auth/ResetPassword.vue
@@ -7,21 +7,21 @@ import GuestLayout from "@/Layouts/GuestLayout.vue";
import { Head, useForm } from "@inertiajs/vue3";
const props = defineProps({
- email: String,
- token: String,
+ email: String,
+ token: String,
});
const form = useForm({
- token: props.token,
- email: props.email,
- password: "",
- password_confirmation: "",
+ token: props.token,
+ email: props.email,
+ password: "",
+ password_confirmation: "",
});
const submit = () => {
- form.post(route("password.store"), {
- onFinish: () => form.reset("password", "password_confirmation"),
- });
+ form.post(route("password.store"), {
+ onFinish: () => form.reset("password", "password_confirmation"),
+ });
};
diff --git a/examples/laravel10-app/resources/js/Pages/Auth/VerifyEmail.vue b/examples/laravel10-app/resources/js/Pages/Auth/VerifyEmail.vue
index 025a09c..6aa624c 100644
--- a/examples/laravel10-app/resources/js/Pages/Auth/VerifyEmail.vue
+++ b/examples/laravel10-app/resources/js/Pages/Auth/VerifyEmail.vue
@@ -5,17 +5,17 @@ import { Head, Link, useForm } from "@inertiajs/vue3";
import { computed } from "vue";
const props = defineProps({
- status: String,
+ status: String,
});
const form = useForm({});
const submit = () => {
- form.post(route("verification.send"));
+ form.post(route("verification.send"));
};
const verificationLinkSent = computed(
- () => props.status === "verification-link-sent",
+ () => props.status === "verification-link-sent",
);
diff --git a/examples/laravel10-app/resources/js/Pages/Profile/Edit.vue b/examples/laravel10-app/resources/js/Pages/Profile/Edit.vue
index 9fd0db1..62ec031 100644
--- a/examples/laravel10-app/resources/js/Pages/Profile/Edit.vue
+++ b/examples/laravel10-app/resources/js/Pages/Profile/Edit.vue
@@ -6,8 +6,8 @@ import UpdatePasswordForm from "./Partials/UpdatePasswordForm.vue";
import UpdateProfileInformationForm from "./Partials/UpdateProfileInformationForm.vue";
defineProps({
- mustVerifyEmail: Boolean,
- status: String,
+ mustVerifyEmail: Boolean,
+ status: String,
});
diff --git a/examples/laravel10-app/resources/js/Pages/Profile/Partials/DeleteUserForm.vue b/examples/laravel10-app/resources/js/Pages/Profile/Partials/DeleteUserForm.vue
index f18d9a3..9767e31 100644
--- a/examples/laravel10-app/resources/js/Pages/Profile/Partials/DeleteUserForm.vue
+++ b/examples/laravel10-app/resources/js/Pages/Profile/Partials/DeleteUserForm.vue
@@ -12,28 +12,28 @@ const confirmingUserDeletion = ref(false);
const passwordInput = ref(null);
const form = useForm({
- password: "",
+ password: "",
});
const confirmUserDeletion = () => {
- confirmingUserDeletion.value = true;
+ confirmingUserDeletion.value = true;
- nextTick(() => passwordInput?.value?.focus());
+ nextTick(() => passwordInput?.value?.focus());
};
const deleteUser = () => {
- form.delete(route("profile.destroy"), {
- preserveScroll: true,
- onSuccess: () => closeModal(),
- onError: () => passwordInput?.value?.focus(),
- onFinish: () => form.reset(),
- });
+ form.delete(route("profile.destroy"), {
+ preserveScroll: true,
+ onSuccess: () => closeModal(),
+ onError: () => passwordInput?.value?.focus(),
+ onFinish: () => form.reset(),
+ });
};
const closeModal = () => {
- confirmingUserDeletion.value = false;
+ confirmingUserDeletion.value = false;
- form.reset();
+ form.reset();
};
diff --git a/examples/laravel10-app/resources/js/Pages/Profile/Partials/UpdatePasswordForm.vue b/examples/laravel10-app/resources/js/Pages/Profile/Partials/UpdatePasswordForm.vue
index ee7d2b9..5352046 100644
--- a/examples/laravel10-app/resources/js/Pages/Profile/Partials/UpdatePasswordForm.vue
+++ b/examples/laravel10-app/resources/js/Pages/Profile/Partials/UpdatePasswordForm.vue
@@ -10,26 +10,26 @@ const passwordInput = ref(null);
const currentPasswordInput = ref(null);
const form = useForm({
- current_password: "",
- password: "",
- password_confirmation: "",
+ current_password: "",
+ password: "",
+ password_confirmation: "",
});
const updatePassword = () => {
- form.put(route("password.update"), {
- preserveScroll: true,
- onSuccess: () => form.reset(),
- onError: () => {
- if (form.errors.password) {
- form.reset("password", "password_confirmation");
- passwordInput?.value?.focus();
- }
- if (form.errors.current_password) {
- form.reset("current_password");
- currentPasswordInput?.value?.focus();
- }
- },
- });
+ form.put(route("password.update"), {
+ preserveScroll: true,
+ onSuccess: () => form.reset(),
+ onError: () => {
+ if (form.errors.password) {
+ form.reset("password", "password_confirmation");
+ passwordInput?.value?.focus();
+ }
+ if (form.errors.current_password) {
+ form.reset("current_password");
+ currentPasswordInput?.value?.focus();
+ }
+ },
+ });
};
diff --git a/examples/laravel10-app/resources/js/Pages/Profile/Partials/UpdateProfileInformationForm.vue b/examples/laravel10-app/resources/js/Pages/Profile/Partials/UpdateProfileInformationForm.vue
index 613af45..bfee1c2 100644
--- a/examples/laravel10-app/resources/js/Pages/Profile/Partials/UpdateProfileInformationForm.vue
+++ b/examples/laravel10-app/resources/js/Pages/Profile/Partials/UpdateProfileInformationForm.vue
@@ -7,19 +7,19 @@ import type { User } from "@/types/model";
import { Link, useForm, usePage } from "@inertiajs/vue3";
const props = defineProps({
- mustVerifyEmail: Boolean,
- status: String,
+ mustVerifyEmail: Boolean,
+ status: String,
});
const user = usePage<{
- auth: {
- user: User;
- };
+ auth: {
+ user: User;
+ };
}>().props.auth.user;
const form = useForm({
- name: user.name,
- email: user.email,
+ name: user.name,
+ email: user.email,
});
diff --git a/examples/laravel10-app/resources/js/Pages/Welcome.vue b/examples/laravel10-app/resources/js/Pages/Welcome.vue
index 1bf5de3..350d9a4 100644
--- a/examples/laravel10-app/resources/js/Pages/Welcome.vue
+++ b/examples/laravel10-app/resources/js/Pages/Welcome.vue
@@ -3,16 +3,16 @@ import type { User } from "@/types/model";
import { Head, Link, usePage } from "@inertiajs/vue3";
defineProps({
- canLogin: Boolean,
- canRegister: Boolean,
- laravelVersion: String,
- phpVersion: String,
+ canLogin: Boolean,
+ canRegister: Boolean,
+ laravelVersion: String,
+ phpVersion: String,
});
const page = usePage<{
- auth: {
- user: User;
- };
+ auth: {
+ user: User;
+ };
}>();
diff --git a/examples/laravel10-app/resources/js/app.ts b/examples/laravel10-app/resources/js/app.ts
index 26dff06..8d0e661 100644
--- a/examples/laravel10-app/resources/js/app.ts
+++ b/examples/laravel10-app/resources/js/app.ts
@@ -8,21 +8,21 @@ import { ZiggyVue } from "../../vendor/tightenco/ziggy/dist/vue.m";
import { Ziggy } from "./ziggy";
const appName =
- window.document.getElementsByTagName("title")[0]?.innerText || "Laravel";
+ window.document.getElementsByTagName("title")[0]?.innerText || "Laravel";
createInertiaApp({
- progress: { color: "#4B5563" },
- title: (title) => `${title} - ${appName}`,
- resolve: (name) =>
- resolvePageComponent(
- `./Pages/${name}.vue`,
- // biome-ignore lint/suspicious/noExplicitAny: for example purposes
- import.meta.glob("../js/Pages/**/*.vue") as any,
- ),
- setup({ el, App, props, plugin }) {
- createApp({ render: () => h(App, props) })
- .use(plugin)
- .use(ZiggyVue, Ziggy)
- .mount(el);
- },
+ progress: { color: "#4B5563" },
+ title: (title) => `${title} - ${appName}`,
+ resolve: (name) =>
+ resolvePageComponent(
+ `./Pages/${name}.vue`,
+ // biome-ignore lint/suspicious/noExplicitAny: for example purposes
+ import.meta.glob("../js/Pages/**/*.vue") as any,
+ ),
+ setup({ el, App, props, plugin }) {
+ createApp({ render: () => h(App, props) })
+ .use(plugin)
+ .use(ZiggyVue, Ziggy)
+ .mount(el);
+ },
});
diff --git a/examples/laravel10-app/resources/js/types/route.d.ts b/examples/laravel10-app/resources/js/types/route.d.ts
index b38817e..4e3fac1 100644
--- a/examples/laravel10-app/resources/js/types/route.d.ts
+++ b/examples/laravel10-app/resources/js/types/route.d.ts
@@ -1,30 +1,30 @@
import type { Config, Router } from "ziggy-js";
import type { RouteParams } from "./param";
type CustomRouter = {
- get params(): RouteParams[T];
- current(): Extract | undefined;
- current(
- name: Extract,
- params?: RouteParams[T],
- ): boolean;
+ get params(): RouteParams[T];
+ current(): Extract | undefined;
+ current(
+ name: Extract,
+ params?: RouteParams[T],
+ ): boolean;
} & Router;
declare global {
- declare function route(): CustomRouter;
- declare function route(
- name: T,
- params?: RouteParams[T],
- absolute?: boolean,
- config?: Config,
- ): string;
+ declare function route(): CustomRouter;
+ declare function route(
+ name: T,
+ params?: RouteParams[T],
+ absolute?: boolean,
+ config?: Config,
+ ): string;
}
declare module "vue" {
- interface ComponentCustomProperties {
- route: (() => CustomRouter) &
- ((
- name: T,
- params?: RouteParams[T],
- absolute?: boolean,
- config?: Config,
- ) => string);
- }
+ interface ComponentCustomProperties {
+ route: (() => CustomRouter) &
+ ((
+ name: T,
+ params?: RouteParams[T],
+ absolute?: boolean,
+ config?: Config,
+ ) => string);
+ }
}
diff --git a/examples/laravel10-app/tailwind.config.js b/examples/laravel10-app/tailwind.config.js
index 28181a0..cfc1f58 100644
--- a/examples/laravel10-app/tailwind.config.js
+++ b/examples/laravel10-app/tailwind.config.js
@@ -2,20 +2,20 @@ const defaultTheme = require("tailwindcss/defaultTheme");
/** @type {import('tailwindcss').Config} */
module.exports = {
- content: [
- "./vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php",
- "./storage/framework/views/*.php",
- "./resources/views/**/*.blade.php",
- "./resources/js/**/*.vue",
- ],
+ content: [
+ "./vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php",
+ "./storage/framework/views/*.php",
+ "./resources/views/**/*.blade.php",
+ "./resources/js/**/*.vue",
+ ],
- theme: {
- extend: {
- fontFamily: {
- sans: ["Nunito", ...defaultTheme.fontFamily.sans],
- },
- },
- },
+ theme: {
+ extend: {
+ fontFamily: {
+ sans: ["Nunito", ...defaultTheme.fontFamily.sans],
+ },
+ },
+ },
- plugins: [require("@tailwindcss/forms")],
+ plugins: [require("@tailwindcss/forms")],
};
diff --git a/examples/laravel10-app/tsconfig.json b/examples/laravel10-app/tsconfig.json
index a7f12e3..f92330d 100644
--- a/examples/laravel10-app/tsconfig.json
+++ b/examples/laravel10-app/tsconfig.json
@@ -1,22 +1,22 @@
{
- "compilerOptions": {
- "target": "esnext",
- "module": "esnext",
- "strict": true,
- "jsx": "preserve",
- "moduleResolution": "node",
- "baseUrl": "./",
- "skipLibCheck": true,
- "paths": {
- "@/*": ["resources/js/*"],
- "@/types/*": ["resources/js/types/*"],
- "ziggy": ["vendor/tightenco/ziggy/dist/vue.es.js"]
- },
- "types": ["vite/client"],
- "lib": ["esnext", "dom"],
- "allowJs": true,
- "strictFunctionTypes": false
- },
- "include": ["resources/js/**/*"],
- "exclude": ["node_modules", "public"]
+ "compilerOptions": {
+ "target": "esnext",
+ "module": "esnext",
+ "strict": true,
+ "jsx": "preserve",
+ "moduleResolution": "node",
+ "baseUrl": "./",
+ "skipLibCheck": true,
+ "paths": {
+ "@/*": ["resources/js/*"],
+ "@/types/*": ["resources/js/types/*"],
+ "ziggy": ["vendor/tightenco/ziggy/dist/vue.es.js"]
+ },
+ "types": ["vite/client"],
+ "lib": ["esnext", "dom"],
+ "allowJs": true,
+ "strictFunctionTypes": false
+ },
+ "include": ["resources/js/**/*"],
+ "exclude": ["node_modules", "public"]
}
diff --git a/examples/laravel10-app/vite.config.ts b/examples/laravel10-app/vite.config.ts
index 8ac1b77..83653f1 100644
--- a/examples/laravel10-app/vite.config.ts
+++ b/examples/laravel10-app/vite.config.ts
@@ -3,18 +3,18 @@ import laravel from "laravel-vite-plugin";
import { defineConfig } from "vite";
export default defineConfig({
- plugins: [
- laravel({
- input: "resources/js/app.ts",
- refresh: true,
- }),
- vue({
- template: {
- transformAssetUrls: {
- base: null,
- includeAbsolute: false,
- },
- },
- }),
- ],
+ plugins: [
+ laravel({
+ input: "resources/js/app.ts",
+ refresh: true,
+ }),
+ vue({
+ template: {
+ transformAssetUrls: {
+ base: null,
+ includeAbsolute: false,
+ },
+ },
+ }),
+ ],
});
diff --git a/package.json b/package.json
index 23a664b..a5fb691 100644
--- a/package.json
+++ b/package.json
@@ -1,39 +1,41 @@
{
- "name": "@7nohe/laravel-typegen",
- "version": "0.6.1",
- "description": "The library lets you generate TypeScript types from your Laravel code.",
- "bin": {
- "laravel-typegen": "dist/src/cli.js"
- },
- "exports": "./dist/src/index.js",
- "types": "./dist/src/index.d.ts",
- "scripts": {
- "build": "rm -rf dist && tsc -p tsconfig.json && cp -R templates ./dist",
- "prepublishOnly": "pnpm run build",
- "release": "npx git-ensure -a && npx bumpp --commit --tag --push",
- "typecheck": "tsc --noEmit"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/7nohe/laravel-typegen.git"
- },
- "homepage": "https://github.com/7nohe/laravel-typegen",
- "bugs": "https://github.com/7nohe/laravel-typegen/issues",
- "files": ["dist"],
- "keywords": ["laravel", "typegen", "typescript"],
- "author": "Daiki Urata (@7nohe)",
- "license": "MIT",
- "devDependencies": {
- "@biomejs/biome": "1.7.3",
- "@types/node": "^20.11.16",
- "lefthook": "^1.6.12"
- },
- "dependencies": {
- "@7nohe/laravel-zodgen": "^0.1.6",
- "commander": "^12.0.0",
- "consola": "^3.2.3",
- "glob": "^10.3.12",
- "php-parser": "^3.1.5",
- "typescript": "^5.4.5"
- }
+ "name": "@7nohe/laravel-typegen",
+ "version": "0.6.1",
+ "description": "The library lets you generate TypeScript types from your Laravel code.",
+ "bin": {
+ "laravel-typegen": "dist/src/cli.js"
+ },
+ "exports": "./dist/src/index.js",
+ "types": "./dist/src/index.d.ts",
+ "scripts": {
+ "build": "rm -rf dist && tsc -p tsconfig.json && cp -R templates ./dist",
+ "lint": "biome check .",
+ "lint:fix": "biome check --apply .",
+ "prepublishOnly": "pnpm run build",
+ "release": "npx git-ensure -a && npx bumpp --commit --tag --push",
+ "typecheck": "tsc --noEmit"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/7nohe/laravel-typegen.git"
+ },
+ "homepage": "https://github.com/7nohe/laravel-typegen",
+ "bugs": "https://github.com/7nohe/laravel-typegen/issues",
+ "files": ["dist"],
+ "keywords": ["laravel", "typegen", "typescript"],
+ "author": "Daiki Urata (@7nohe)",
+ "license": "MIT",
+ "devDependencies": {
+ "@biomejs/biome": "1.7.3",
+ "@types/node": "^20.11.16",
+ "lefthook": "^1.6.12"
+ },
+ "dependencies": {
+ "@7nohe/laravel-zodgen": "^0.1.6",
+ "commander": "^12.0.0",
+ "consola": "^3.2.3",
+ "glob": "^10.3.12",
+ "php-parser": "^3.1.5",
+ "typescript": "^5.4.5"
+ }
}
diff --git a/src/cli.ts b/src/cli.ts
index 50e57fd..99897a3 100644
--- a/src/cli.ts
+++ b/src/cli.ts
@@ -7,45 +7,45 @@ import { consola } from "consola";
import { colors } from "consola/utils";
import packageJson from "../package.json";
import {
- defaultEnumPath,
- defaultModelPath,
- defaultOutputPath,
- tmpDir,
+ defaultEnumPath,
+ defaultModelPath,
+ defaultOutputPath,
+ tmpDir,
} from "./constants";
import { generate } from "./generate";
export type CLIOptions = {
- output: string;
- laravelEnum: boolean;
- enumPath: string;
- modelPath: string;
- ziggy: boolean;
- vendorRoutes: boolean;
- ignoreRouteDts: boolean;
- formRequest: boolean;
- formRequestPath: string;
+ output: string;
+ laravelEnum: boolean;
+ enumPath: string;
+ modelPath: string;
+ ziggy: boolean;
+ vendorRoutes: boolean;
+ ignoreRouteDts: boolean;
+ formRequest: boolean;
+ formRequestPath: string;
};
const program = new Command();
program
- .name("laravel-typegen")
- .version(packageJson.version)
- .description("Generate TypeScript types from your Laravel code")
- .option("-o, --output ", "Output directory", defaultOutputPath)
- .option("--laravel-enum", "Use Laravel Enum", false)
- .option("--enum-path ", "Path to enum files", defaultEnumPath)
- .option("--model-path ", "Path to model files", defaultModelPath)
- .option("-z, --ziggy", "Generate types for ziggy", false)
- .option("--vendor-routes", "Include routes defined by vendor packages", false)
- .option("--ignore-route-dts", "Ignore generating route.d.ts", false)
- .option("--form-request", "Generate types for FormRequests", false)
- .option(
- "--form-request-path ",
- "Path to FormRequest files",
- defaultFormRequestPath,
- )
- .parse();
+ .name("laravel-typegen")
+ .version(packageJson.version)
+ .description("Generate TypeScript types from your Laravel code")
+ .option("-o, --output ", "Output directory", defaultOutputPath)
+ .option("--laravel-enum", "Use Laravel Enum", false)
+ .option("--enum-path ", "Path to enum files", defaultEnumPath)
+ .option("--model-path ", "Path to model files", defaultModelPath)
+ .option("-z, --ziggy", "Generate types for ziggy", false)
+ .option("--vendor-routes", "Include routes defined by vendor packages", false)
+ .option("--ignore-route-dts", "Ignore generating route.d.ts", false)
+ .option("--form-request", "Generate types for FormRequests", false)
+ .option(
+ "--form-request-path ",
+ "Path to FormRequest files",
+ defaultFormRequestPath,
+ )
+ .parse();
const options = program.opts();
@@ -53,20 +53,20 @@ consola.box(`${colors.bgBlueBright(`Laravel Typegen v${packageJson.version}`)}
[Options]
${Object.entries(options)
- .map(([key, value]) => `${key}: ${value}`)
- .join("\n")}
+ .map(([key, value]) => `${key}: ${value}`)
+ .join("\n")}
`);
try {
- generate(options).then(() => {
- consola.success(
- `Done! Generated types are available in ${path.resolve(options.output)}`,
- );
- });
+ generate(options).then(() => {
+ consola.success(
+ `Done! Generated types are available in ${path.resolve(options.output)}`,
+ );
+ });
} catch {
- consola.error("Failed to generate types.");
- if (fs.existsSync(tmpDir) && process.env.KEEP_LARAVEL_JSON !== "true") {
- // Clean up
- fs.rmSync(tmpDir, { recursive: true });
- }
+ consola.error("Failed to generate types.");
+ if (fs.existsSync(tmpDir) && process.env.KEEP_LARAVEL_JSON !== "true") {
+ // Clean up
+ fs.rmSync(tmpDir, { recursive: true });
+ }
}
diff --git a/src/formRequests/createFormRequestTypes.ts b/src/formRequests/createFormRequestTypes.ts
index 7e9ad90..f112294 100644
--- a/src/formRequests/createFormRequestTypes.ts
+++ b/src/formRequests/createFormRequestTypes.ts
@@ -1,110 +1,110 @@
import ts from "typescript";
type FieldValue =
- | { name: string; isRequired: boolean; "*"?: FieldValue }
- | object;
+ | { name: string; isRequired: boolean; "*"?: FieldValue }
+ | object;
type Fields =
- | {
- [key: string]: FieldValue;
- }
- | FieldValue;
+ | {
+ [key: string]: FieldValue;
+ }
+ | FieldValue;
function getKeyword(name: string): ts.KeywordTypeSyntaxKind {
- switch (name) {
- case "string":
- return ts.SyntaxKind.StringKeyword;
- case "number":
- return ts.SyntaxKind.NumberKeyword;
- case "boolean":
- return ts.SyntaxKind.BooleanKeyword;
- case "undefined":
- return ts.SyntaxKind.UndefinedKeyword;
- default:
- return ts.SyntaxKind.AnyKeyword;
- }
+ switch (name) {
+ case "string":
+ return ts.SyntaxKind.StringKeyword;
+ case "number":
+ return ts.SyntaxKind.NumberKeyword;
+ case "boolean":
+ return ts.SyntaxKind.BooleanKeyword;
+ case "undefined":
+ return ts.SyntaxKind.UndefinedKeyword;
+ default:
+ return ts.SyntaxKind.AnyKeyword;
+ }
}
function isArrayOfPrimitives(arrayValue: FieldValue) {
- return (
- typeof arrayValue === "object" &&
- "name" in arrayValue &&
- typeof arrayValue.name === "string"
- );
+ return (
+ typeof arrayValue === "object" &&
+ "name" in arrayValue &&
+ typeof arrayValue.name === "string"
+ );
}
function createArrayTypeNode(arrayValue: FieldValue): ts.TypeNode {
- if (isArrayOfPrimitives(arrayValue)) {
- const arrayPrimitiveType = ts.factory.createKeywordTypeNode(
- getKeyword((arrayValue as { name: string; isRequired: boolean }).name),
- );
- return ts.factory.createArrayTypeNode(arrayPrimitiveType);
- }
- const arrayElementType = createTypeNodeFromFields(arrayValue);
- return ts.factory.createArrayTypeNode(arrayElementType);
+ if (isArrayOfPrimitives(arrayValue)) {
+ const arrayPrimitiveType = ts.factory.createKeywordTypeNode(
+ getKeyword((arrayValue as { name: string; isRequired: boolean }).name),
+ );
+ return ts.factory.createArrayTypeNode(arrayPrimitiveType);
+ }
+ const arrayElementType = createTypeNodeFromFields(arrayValue);
+ return ts.factory.createArrayTypeNode(arrayElementType);
}
function createTypeNodeForValue(value: FieldValue): ts.TypeNode {
- if (typeof value === "object" && !("name" in value)) {
- return createTypeNodeFromFields(value);
- }
+ if (typeof value === "object" && !("name" in value)) {
+ return createTypeNodeFromFields(value);
+ }
- if (typeof value === "object" && "*" in value && value["*"]) {
- return createArrayTypeNode(value["*"]);
- }
+ if (typeof value === "object" && "*" in value && value["*"]) {
+ return createArrayTypeNode(value["*"]);
+ }
- return ts.factory.createKeywordTypeNode(getKeyword(value.name as string));
+ return ts.factory.createKeywordTypeNode(getKeyword(value.name as string));
}
function createTypeNodeFromFields(fields: Fields): ts.TypeNode {
- if ("*" in fields && fields["*"]) {
- return createArrayTypeNode(fields["*"]);
- }
- const members = Object.entries(fields).flatMap<
- ts.PropertySignature | ts.TypeNode
- >(([name, value]) => {
- const typeNode = createTypeNodeForValue(value);
+ if ("*" in fields && fields["*"]) {
+ return createArrayTypeNode(fields["*"]);
+ }
+ const members = Object.entries(fields).flatMap<
+ ts.PropertySignature | ts.TypeNode
+ >(([name, value]) => {
+ const typeNode = createTypeNodeForValue(value);
- const isRequired = !("name" in value) || value.isRequired;
+ const isRequired = !("name" in value) || value.isRequired;
- return [
- ts.factory.createPropertySignature(
- undefined,
- name,
- isRequired
- ? undefined
- : ts.factory.createToken(ts.SyntaxKind.QuestionToken),
- typeNode,
- ),
- ];
- });
+ return [
+ ts.factory.createPropertySignature(
+ undefined,
+ name,
+ isRequired
+ ? undefined
+ : ts.factory.createToken(ts.SyntaxKind.QuestionToken),
+ typeNode,
+ ),
+ ];
+ });
- return ts.factory.createTypeLiteralNode(
- members.filter(Boolean) as ts.TypeElement[],
- );
+ return ts.factory.createTypeLiteralNode(
+ members.filter(Boolean) as ts.TypeElement[],
+ );
}
function createTypeAliasDeclaration(
- typeName: string,
- fields: Fields,
+ typeName: string,
+ fields: Fields,
): ts.TypeAliasDeclaration {
- return ts.factory.createTypeAliasDeclaration(
- [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
- typeName,
- undefined,
- createTypeNodeFromFields(fields),
- );
+ return ts.factory.createTypeAliasDeclaration(
+ [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
+ typeName,
+ undefined,
+ createTypeNodeFromFields(fields),
+ );
}
export function createFormRequestTypes(rules: Fields) {
- const sourceFile = ts.factory.createSourceFile(
- Object.entries(rules).map(([key, value]) =>
- createTypeAliasDeclaration(key, value),
- ),
- ts.factory.createToken(ts.SyntaxKind.EndOfFileToken),
- ts.NodeFlags.None,
- );
+ const sourceFile = ts.factory.createSourceFile(
+ Object.entries(rules).map(([key, value]) =>
+ createTypeAliasDeclaration(key, value),
+ ),
+ ts.factory.createToken(ts.SyntaxKind.EndOfFileToken),
+ ts.NodeFlags.None,
+ );
- const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed });
- return printer.printNode(ts.EmitHint.Unspecified, sourceFile, sourceFile);
+ const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed });
+ return printer.printNode(ts.EmitHint.Unspecified, sourceFile, sourceFile);
}
diff --git a/src/generate.ts b/src/generate.ts
index 2288519..a926ea7 100644
--- a/src/generate.ts
+++ b/src/generate.ts
@@ -7,12 +7,12 @@ import { colors } from "consola/utils";
import { sync } from "glob";
import type { CLIOptions } from "./cli";
import {
- defaultOutputPath,
- formRequestsFileName,
- indexDeclarationFileName,
- modelFileName,
- routeParamsFileName,
- tmpDir,
+ defaultOutputPath,
+ formRequestsFileName,
+ indexDeclarationFileName,
+ modelFileName,
+ routeParamsFileName,
+ tmpDir,
} from "./constants";
import { createFormRequestTypes } from "./formRequests/createFormRequestTypes";
import { createSource as createModelSource } from "./models/createSource";
@@ -26,204 +26,204 @@ const routeLogPrefix = colors.bgGreenBright("[Route]");
const formRequestLogPrefix = colors.bgYellowBright("[FormRequest]");
export async function generate(options: CLIOptions) {
- consola.info(
- modelLogPrefix,
- colors.blueBright("Start generating model types..."),
- );
-
- const parsedModelPath = path
- .join(options.modelPath, "**", "*.php")
- .replace(/\\/g, "/");
- const modelPaths = sync(parsedModelPath).sort();
-
- const modelData: LaravelModelType[] = [];
- const parsedEnumPath = path
- .join(options.enumPath, "**", "*.php")
- .replace(/\\/g, "/");
- const enums = sync(parsedEnumPath).sort();
- if (!fs.existsSync(tmpDir)) {
- fs.mkdirSync(tmpDir);
- }
- // Generate models
- for (const modelPath of modelPaths) {
- const modelName =
- modelPath
- .replace(/\\/g, "/")
- .replace(`${options.modelPath.replace(/\\/g, "/")}/`, "")
- .replace(path.extname(modelPath), "") // remove .php extension
- .split("/")
- .at(-1) ?? ""; // get only model name without directory
-
- createModelDirectory(modelName);
-
- const namespacedModel = `${getNamespaceForCommand(modelPath)}/${modelName}`;
- const outputPath = path.join(tmpDir, `${modelName}.json`);
-
- const modelShowCommand = `php artisan model:show ${namespacedModel} --json`;
-
- // Run artisan command to get model data
- try {
- if (process.env.SKIP_ARTISAN_COMMAND !== "true") {
- consola.start(
- modelLogPrefix,
- `Running '${colors.blueBright(modelShowCommand)}'`,
- );
- const json = execSync(modelShowCommand).toString();
- const dir = path.dirname(outputPath);
- if (!fs.existsSync(dir)) {
- fs.mkdirSync(dir, { recursive: true });
- }
- fs.writeFileSync(outputPath, json);
- consola.success(modelLogPrefix, `Saved ${modelName} to ${outputPath}`);
- } else {
- consola.info(modelLogPrefix, `Skipping ${modelShowCommand}`);
- }
- } catch (e) {
- consola.info(
- modelLogPrefix,
- `Failed to get model data for ${modelName}'. You still can generate types by running ${modelShowCommand} manually and then run 'laravel-typegen' with SKIP_ARTISAN_COMMAND=true environment variable.`,
- );
- consola.error(modelLogPrefix, e);
- }
-
- // Read model data from JSON file
- try {
- const jsonPath = path.resolve(tmpDir, `${modelName}.json`);
- consola.start(modelLogPrefix, `Reading ${jsonPath}`);
- const modelJson = JSON.parse(
- fs.readFileSync(jsonPath, "utf8"),
- ) as LaravelModelType;
- modelData.push(modelJson);
- } catch {
- consola.warn(
- modelLogPrefix,
- `Failed to generate ${modelName}. Skipping...`,
- );
- }
- }
-
- const modelSource = createModelSource(
- modelFileName,
- modelData,
- enums,
- options,
- );
- print(modelFileName, modelSource, options.output ?? defaultOutputPath);
-
- consola.success(
- modelLogPrefix,
- colors.blueBright("Model types generated successfully."),
- );
-
- // Generate types for ziggy
- if (options.ziggy) {
- consola.info(
- routeLogPrefix,
- colors.greenBright("Start generating route types..."),
- );
-
- const vendorOption = options.vendorRoutes ? "" : "--except-vendor";
- const routeListCommand = `php artisan route:list ${vendorOption} --json`;
-
- if (process.env.SKIP_ARTISAN_COMMAND !== "true") {
- consola.start(
- routeLogPrefix,
- `Running '${colors.greenBright(routeListCommand)}'`,
- );
- const json = execSync(routeListCommand).toString();
- const dir = path.dirname(path.resolve(tmpDir, "route.json"));
- if (!fs.existsSync(dir)) {
- fs.mkdirSync(dir, {
- recursive: true,
- });
- }
- fs.writeFileSync(path.resolve(tmpDir, "route.json"), json);
- consola.success(
- routeLogPrefix,
- `Saved route.json to ${path.resolve(tmpDir, "route.json")}`,
- );
- } else {
- consola.warn(routeLogPrefix, "Failed to get route data. Skipping...");
- }
-
- consola.start(routeLogPrefix, "Reading route.json");
- const routeJson = JSON.parse(
- fs.readFileSync(path.resolve(tmpDir, "route.json"), "utf8"),
- ) as LaravelRouteListType[];
-
- const routeSource = createRouteParamsSource(
- routeParamsFileName,
- routeJson,
- options,
- );
-
- print(
- routeParamsFileName,
- routeSource,
- options.output ?? defaultOutputPath,
- );
-
- consola.start(routeLogPrefix, "Copying route.d.ts...");
-
- // Copy route.d.ts
- if (!options.ignoreRouteDts) {
- fs.copyFileSync(
- path.resolve(__dirname, "..", "templates", indexDeclarationFileName),
- path.resolve(
- options.output ?? defaultOutputPath,
- indexDeclarationFileName,
- ),
- );
- }
-
- consola.success(
- routeLogPrefix,
- colors.greenBright("Route types generated successfully."),
- );
- }
-
- if (options.formRequest) {
- consola.start(
- formRequestLogPrefix,
- colors.yellowBright("Start generating form request types..."),
- );
- consola.start(
- formRequestLogPrefix,
- `Parsing form requests from ${options.formRequestPath}...`,
- );
- // Generate types for form requests
- const rules = parseFormRequests(options.formRequestPath, true);
- consola.success(formRequestLogPrefix, "Form requests parsed successfully.");
-
- const formRequestSource = createFormRequestTypes(rules);
- print(
- formRequestsFileName,
- formRequestSource,
- options.output ?? defaultOutputPath,
- );
-
- consola.success(
- formRequestLogPrefix,
- colors.yellowBright("Form request types generated successfully."),
- );
- }
-
- if (fs.existsSync(tmpDir) && process.env.KEEP_LARAVEL_JSON !== "true") {
- consola.start("Removing temporary files...");
- fs.rmSync(tmpDir, { recursive: true });
- consola.success("Temporary files removed.");
- }
+ consola.info(
+ modelLogPrefix,
+ colors.blueBright("Start generating model types..."),
+ );
+
+ const parsedModelPath = path
+ .join(options.modelPath, "**", "*.php")
+ .replace(/\\/g, "/");
+ const modelPaths = sync(parsedModelPath).sort();
+
+ const modelData: LaravelModelType[] = [];
+ const parsedEnumPath = path
+ .join(options.enumPath, "**", "*.php")
+ .replace(/\\/g, "/");
+ const enums = sync(parsedEnumPath).sort();
+ if (!fs.existsSync(tmpDir)) {
+ fs.mkdirSync(tmpDir);
+ }
+ // Generate models
+ for (const modelPath of modelPaths) {
+ const modelName =
+ modelPath
+ .replace(/\\/g, "/")
+ .replace(`${options.modelPath.replace(/\\/g, "/")}/`, "")
+ .replace(path.extname(modelPath), "") // remove .php extension
+ .split("/")
+ .at(-1) ?? ""; // get only model name without directory
+
+ createModelDirectory(modelName);
+
+ const namespacedModel = `${getNamespaceForCommand(modelPath)}/${modelName}`;
+ const outputPath = path.join(tmpDir, `${modelName}.json`);
+
+ const modelShowCommand = `php artisan model:show ${namespacedModel} --json`;
+
+ // Run artisan command to get model data
+ try {
+ if (process.env.SKIP_ARTISAN_COMMAND !== "true") {
+ consola.start(
+ modelLogPrefix,
+ `Running '${colors.blueBright(modelShowCommand)}'`,
+ );
+ const json = execSync(modelShowCommand).toString();
+ const dir = path.dirname(outputPath);
+ if (!fs.existsSync(dir)) {
+ fs.mkdirSync(dir, { recursive: true });
+ }
+ fs.writeFileSync(outputPath, json);
+ consola.success(modelLogPrefix, `Saved ${modelName} to ${outputPath}`);
+ } else {
+ consola.info(modelLogPrefix, `Skipping ${modelShowCommand}`);
+ }
+ } catch (e) {
+ consola.info(
+ modelLogPrefix,
+ `Failed to get model data for ${modelName}'. You still can generate types by running ${modelShowCommand} manually and then run 'laravel-typegen' with SKIP_ARTISAN_COMMAND=true environment variable.`,
+ );
+ consola.error(modelLogPrefix, e);
+ }
+
+ // Read model data from JSON file
+ try {
+ const jsonPath = path.resolve(tmpDir, `${modelName}.json`);
+ consola.start(modelLogPrefix, `Reading ${jsonPath}`);
+ const modelJson = JSON.parse(
+ fs.readFileSync(jsonPath, "utf8"),
+ ) as LaravelModelType;
+ modelData.push(modelJson);
+ } catch {
+ consola.warn(
+ modelLogPrefix,
+ `Failed to generate ${modelName}. Skipping...`,
+ );
+ }
+ }
+
+ const modelSource = createModelSource(
+ modelFileName,
+ modelData,
+ enums,
+ options,
+ );
+ print(modelFileName, modelSource, options.output ?? defaultOutputPath);
+
+ consola.success(
+ modelLogPrefix,
+ colors.blueBright("Model types generated successfully."),
+ );
+
+ // Generate types for ziggy
+ if (options.ziggy) {
+ consola.info(
+ routeLogPrefix,
+ colors.greenBright("Start generating route types..."),
+ );
+
+ const vendorOption = options.vendorRoutes ? "" : "--except-vendor";
+ const routeListCommand = `php artisan route:list ${vendorOption} --json`;
+
+ if (process.env.SKIP_ARTISAN_COMMAND !== "true") {
+ consola.start(
+ routeLogPrefix,
+ `Running '${colors.greenBright(routeListCommand)}'`,
+ );
+ const json = execSync(routeListCommand).toString();
+ const dir = path.dirname(path.resolve(tmpDir, "route.json"));
+ if (!fs.existsSync(dir)) {
+ fs.mkdirSync(dir, {
+ recursive: true,
+ });
+ }
+ fs.writeFileSync(path.resolve(tmpDir, "route.json"), json);
+ consola.success(
+ routeLogPrefix,
+ `Saved route.json to ${path.resolve(tmpDir, "route.json")}`,
+ );
+ } else {
+ consola.warn(routeLogPrefix, "Failed to get route data. Skipping...");
+ }
+
+ consola.start(routeLogPrefix, "Reading route.json");
+ const routeJson = JSON.parse(
+ fs.readFileSync(path.resolve(tmpDir, "route.json"), "utf8"),
+ ) as LaravelRouteListType[];
+
+ const routeSource = createRouteParamsSource(
+ routeParamsFileName,
+ routeJson,
+ options,
+ );
+
+ print(
+ routeParamsFileName,
+ routeSource,
+ options.output ?? defaultOutputPath,
+ );
+
+ consola.start(routeLogPrefix, "Copying route.d.ts...");
+
+ // Copy route.d.ts
+ if (!options.ignoreRouteDts) {
+ fs.copyFileSync(
+ path.resolve(__dirname, "..", "templates", indexDeclarationFileName),
+ path.resolve(
+ options.output ?? defaultOutputPath,
+ indexDeclarationFileName,
+ ),
+ );
+ }
+
+ consola.success(
+ routeLogPrefix,
+ colors.greenBright("Route types generated successfully."),
+ );
+ }
+
+ if (options.formRequest) {
+ consola.start(
+ formRequestLogPrefix,
+ colors.yellowBright("Start generating form request types..."),
+ );
+ consola.start(
+ formRequestLogPrefix,
+ `Parsing form requests from ${options.formRequestPath}...`,
+ );
+ // Generate types for form requests
+ const rules = parseFormRequests(options.formRequestPath, true);
+ consola.success(formRequestLogPrefix, "Form requests parsed successfully.");
+
+ const formRequestSource = createFormRequestTypes(rules);
+ print(
+ formRequestsFileName,
+ formRequestSource,
+ options.output ?? defaultOutputPath,
+ );
+
+ consola.success(
+ formRequestLogPrefix,
+ colors.yellowBright("Form request types generated successfully."),
+ );
+ }
+
+ if (fs.existsSync(tmpDir) && process.env.KEEP_LARAVEL_JSON !== "true") {
+ consola.start("Removing temporary files...");
+ fs.rmSync(tmpDir, { recursive: true });
+ consola.success("Temporary files removed.");
+ }
}
const createModelDirectory = (modelName: string) => {
- const modelNameArray = modelName.split("/");
- modelNameArray.pop();
- if (
- modelNameArray.length > 0 &&
- !fs.existsSync(path.join(tmpDir, ...modelNameArray))
- ) {
- fs.mkdirSync(path.join(tmpDir, ...modelNameArray));
- }
+ const modelNameArray = modelName.split("/");
+ modelNameArray.pop();
+ if (
+ modelNameArray.length > 0 &&
+ !fs.existsSync(path.join(tmpDir, ...modelNameArray))
+ ) {
+ fs.mkdirSync(path.join(tmpDir, ...modelNameArray));
+ }
};
/**
@@ -233,16 +233,16 @@ const createModelDirectory = (modelName: string) => {
const namespaceDictByDir: { [key: string]: string } = {};
export const getNamespaceForCommand = (phpFilepath: string) => {
- const dir = path.dirname(phpFilepath);
+ const dir = path.dirname(phpFilepath);
- if (namespaceDictByDir[dir]) {
- return namespaceDictByDir[dir];
- }
+ if (namespaceDictByDir[dir]) {
+ return namespaceDictByDir[dir];
+ }
- const ast = getPhpAst(phpFilepath);
- const namespace = getPhpNamespace(ast).name;
- const namespaceForCommand = formatNamespaceForCommand(namespace);
- namespaceDictByDir[dir] = namespaceForCommand;
+ const ast = getPhpAst(phpFilepath);
+ const namespace = getPhpNamespace(ast).name;
+ const namespaceForCommand = formatNamespaceForCommand(namespace);
+ namespaceDictByDir[dir] = namespaceForCommand;
- return namespaceForCommand;
+ return namespaceForCommand;
};
diff --git a/src/models/createEnumTypes.ts b/src/models/createEnumTypes.ts
index 7bbc983..7dfcc03 100644
--- a/src/models/createEnumTypes.ts
+++ b/src/models/createEnumTypes.ts
@@ -1,66 +1,66 @@
import fs from "node:fs";
import {
- type Class,
- Engine,
- type EnumCase,
- type Identifier,
- type Namespace,
- type Number as NumberType,
- type String as StringType,
+ type Class,
+ Engine,
+ type EnumCase,
+ type Identifier,
+ type Namespace,
+ type Number as NumberType,
+ type String as StringType,
} from "php-parser";
import ts from "typescript";
const parser = new Engine({});
const getInitializer = (enumcase: EnumCase) => {
- const numberValue = enumcase.value as unknown as NumberType;
- if (numberValue.kind === "number") {
- return ts.factory.createNumericLiteral(numberValue.value);
- }
+ const numberValue = enumcase.value as unknown as NumberType;
+ if (numberValue.kind === "number") {
+ return ts.factory.createNumericLiteral(numberValue.value);
+ }
- return ts.factory.createStringLiteral(
- (enumcase.value as unknown as StringType).value,
- );
+ return ts.factory.createStringLiteral(
+ (enumcase.value as unknown as StringType).value,
+ );
};
export const createEnumType = (enumFilePath: string) => {
- const phpFile = fs.readFileSync(enumFilePath);
- const ast = parser.parseCode(
- phpFile.toString(),
- enumFilePath.split("/").at(-1) ?? "",
- );
+ const phpFile = fs.readFileSync(enumFilePath);
+ const ast = parser.parseCode(
+ phpFile.toString(),
+ enumFilePath.split("/").at(-1) ?? "",
+ );
- // find Namespace
- const namespace = ast.children.find(
- (child) => child.kind === "namespace",
- ) as Namespace;
+ // find Namespace
+ const namespace = ast.children.find(
+ (child) => child.kind === "namespace",
+ ) as Namespace;
- // find enum Block
- const enumBlock = namespace.children.find(
- (child) => child.kind === "enum",
- ) as Class;
+ // find enum Block
+ const enumBlock = namespace.children.find(
+ (child) => child.kind === "enum",
+ ) as Class;
- const enumName = (enumBlock.name as Identifier).name;
+ const enumName = (enumBlock.name as Identifier).name;
- // get EnumCases
- const enumcases = enumBlock.body.filter(
- (declaration) => declaration.kind === "enumcase",
- ) as unknown as EnumCase[];
+ // get EnumCases
+ const enumcases = enumBlock.body.filter(
+ (declaration) => declaration.kind === "enumcase",
+ ) as unknown as EnumCase[];
- return ts.factory.createEnumDeclaration(
- [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
- ts.factory.createIdentifier(enumName),
- enumcases.map((enumcase) =>
- ts.factory.createEnumMember(
- ts.factory.createIdentifier(
- (enumcase.name as unknown as Identifier).name,
- ),
- getInitializer(enumcase),
- ),
- ),
- );
+ return ts.factory.createEnumDeclaration(
+ [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
+ ts.factory.createIdentifier(enumName),
+ enumcases.map((enumcase) =>
+ ts.factory.createEnumMember(
+ ts.factory.createIdentifier(
+ (enumcase.name as unknown as Identifier).name,
+ ),
+ getInitializer(enumcase),
+ ),
+ ),
+ );
};
export const createEnumTypes = (enumFilePaths: string[]) => {
- return enumFilePaths.map((path) => createEnumType(path));
+ return enumFilePaths.map((path) => createEnumType(path));
};
diff --git a/src/models/createLarvelEnumTypes.ts b/src/models/createLarvelEnumTypes.ts
index c331033..bf7856d 100644
--- a/src/models/createLarvelEnumTypes.ts
+++ b/src/models/createLarvelEnumTypes.ts
@@ -1,67 +1,67 @@
import fs from "node:fs";
import {
- type Class,
- type ClassConstant,
- type Constant,
- Engine,
- type Identifier,
- type Namespace,
- type Number as NumberType,
- type String as StringType,
+ type Class,
+ type ClassConstant,
+ type Constant,
+ Engine,
+ type Identifier,
+ type Namespace,
+ type Number as NumberType,
+ type String as StringType,
} from "php-parser";
import ts from "typescript";
const parser = new Engine({});
const getInitializer = (constant: Constant) => {
- const numberValue = constant.value as NumberType;
- if (numberValue.kind === "number") {
- return ts.factory.createNumericLiteral(numberValue.value);
- }
+ const numberValue = constant.value as NumberType;
+ if (numberValue.kind === "number") {
+ return ts.factory.createNumericLiteral(numberValue.value);
+ }
- return ts.factory.createStringLiteral((constant.value as StringType).value);
+ return ts.factory.createStringLiteral((constant.value as StringType).value);
};
export const createEnumType = (enumFilePath: string) => {
- const phpFile = fs.readFileSync(enumFilePath);
- const ast = parser.parseCode(
- phpFile.toString(),
- enumFilePath.split("/").at(-1) ?? "",
- );
+ const phpFile = fs.readFileSync(enumFilePath);
+ const ast = parser.parseCode(
+ phpFile.toString(),
+ enumFilePath.split("/").at(-1) ?? "",
+ );
- // find Namespace
- const namespace = ast.children.find(
- (child) => child.kind === "namespace",
- ) as Namespace;
+ // find Namespace
+ const namespace = ast.children.find(
+ (child) => child.kind === "namespace",
+ ) as Namespace;
- // find Class Block
- const classBlock = namespace.children.find(
- (child) => child.kind === "class",
- ) as Class;
+ // find Class Block
+ const classBlock = namespace.children.find(
+ (child) => child.kind === "class",
+ ) as Class;
- const className = (classBlock.name as Identifier).name;
+ const className = (classBlock.name as Identifier).name;
- // get Constants
- const constants = (
- classBlock.body.filter(
- (declaration) => declaration.kind === "classconstant",
- ) as unknown as ClassConstant[]
- ).map((declaration) => declaration.constants.at(0)) as Constant[];
+ // get Constants
+ const constants = (
+ classBlock.body.filter(
+ (declaration) => declaration.kind === "classconstant",
+ ) as unknown as ClassConstant[]
+ ).map((declaration) => declaration.constants.at(0)) as Constant[];
- return ts.factory.createEnumDeclaration(
- undefined,
- ts.factory.createIdentifier(className),
- constants.map((constant) =>
- ts.factory.createEnumMember(
- ts.factory.createIdentifier(
- (constant.name as unknown as Identifier).name,
- ),
- getInitializer(constant),
- ),
- ),
- );
+ return ts.factory.createEnumDeclaration(
+ undefined,
+ ts.factory.createIdentifier(className),
+ constants.map((constant) =>
+ ts.factory.createEnumMember(
+ ts.factory.createIdentifier(
+ (constant.name as unknown as Identifier).name,
+ ),
+ getInitializer(constant),
+ ),
+ ),
+ );
};
export const createLaravelEnumTypes = (enumFilePaths: string[]) => {
- return enumFilePaths.map((path) => createEnumType(path));
+ return enumFilePaths.map((path) => createEnumType(path));
};
diff --git a/src/models/createSource.ts b/src/models/createSource.ts
index d5f980c..d0c193e 100644
--- a/src/models/createSource.ts
+++ b/src/models/createSource.ts
@@ -5,42 +5,42 @@ import { createEnumTypes } from "./createEnumTypes";
import { createLaravelEnumTypes } from "./createLarvelEnumTypes";
import { createTypes } from "./createTypes";
const createSourceFile = (
- modelData: LaravelModelType[],
- enums: string[],
- options: CLIOptions,
+ modelData: LaravelModelType[],
+ enums: string[],
+ options: CLIOptions,
) => {
- return ts.factory.createSourceFile(
- [
- ...createTypes(modelData),
- ...(options.laravelEnum
- ? createLaravelEnumTypes(enums)
- : createEnumTypes(enums)),
- ],
- ts.factory.createToken(ts.SyntaxKind.EndOfFileToken),
- ts.NodeFlags.None,
- );
+ return ts.factory.createSourceFile(
+ [
+ ...createTypes(modelData),
+ ...(options.laravelEnum
+ ? createLaravelEnumTypes(enums)
+ : createEnumTypes(enums)),
+ ],
+ ts.factory.createToken(ts.SyntaxKind.EndOfFileToken),
+ ts.NodeFlags.None,
+ );
};
export const createSource = (
- filename: string,
- modelData: LaravelModelType[],
- enums: string[],
- options: CLIOptions,
+ filename: string,
+ modelData: LaravelModelType[],
+ enums: string[],
+ options: CLIOptions,
) => {
- const resultFile = ts.createSourceFile(
- filename,
- "",
- ts.ScriptTarget.Latest,
- false,
- ts.ScriptKind.TS,
- );
- const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed });
+ const resultFile = ts.createSourceFile(
+ filename,
+ "",
+ ts.ScriptTarget.Latest,
+ false,
+ ts.ScriptKind.TS,
+ );
+ const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed });
- const result = printer.printNode(
- ts.EmitHint.Unspecified,
- createSourceFile(modelData, enums, options),
- resultFile,
- );
+ const result = printer.printNode(
+ ts.EmitHint.Unspecified,
+ createSourceFile(modelData, enums, options),
+ resultFile,
+ );
- return result;
+ return result;
};
diff --git a/src/models/createTypes.ts b/src/models/createTypes.ts
index d7d84de..cbb7b6e 100644
--- a/src/models/createTypes.ts
+++ b/src/models/createTypes.ts
@@ -1,160 +1,160 @@
import ts, { type TypeNode } from "typescript";
import type {
- Attribute,
- ColumnType,
- LaravelModelType,
- Relation,
+ Attribute,
+ ColumnType,
+ LaravelModelType,
+ Relation,
} from "../types";
import { convertCamelToSnake, isEnum } from "../utils";
type TSModelKeyword =
- | ts.SyntaxKind.NumberKeyword
- | ts.SyntaxKind.StringKeyword
- | ts.SyntaxKind.BooleanKeyword;
+ | ts.SyntaxKind.NumberKeyword
+ | ts.SyntaxKind.StringKeyword
+ | ts.SyntaxKind.BooleanKeyword;
const keywordTypeDictionary: Record = {
- "bigint unsigned": ts.SyntaxKind.NumberKeyword,
- "integer unsigned": ts.SyntaxKind.NumberKeyword,
- bigint: ts.SyntaxKind.NumberKeyword,
- integer: ts.SyntaxKind.NumberKeyword,
- smallint: ts.SyntaxKind.NumberKeyword,
- boolean: ts.SyntaxKind.BooleanKeyword,
- datetime: ts.SyntaxKind.StringKeyword,
- date: ts.SyntaxKind.StringKeyword,
- text: ts.SyntaxKind.StringKeyword,
- string: ts.SyntaxKind.StringKeyword,
- char: ts.SyntaxKind.StringKeyword,
- varchar: ts.SyntaxKind.StringKeyword,
+ "bigint unsigned": ts.SyntaxKind.NumberKeyword,
+ "integer unsigned": ts.SyntaxKind.NumberKeyword,
+ bigint: ts.SyntaxKind.NumberKeyword,
+ integer: ts.SyntaxKind.NumberKeyword,
+ smallint: ts.SyntaxKind.NumberKeyword,
+ boolean: ts.SyntaxKind.BooleanKeyword,
+ datetime: ts.SyntaxKind.StringKeyword,
+ date: ts.SyntaxKind.StringKeyword,
+ text: ts.SyntaxKind.StringKeyword,
+ string: ts.SyntaxKind.StringKeyword,
+ char: ts.SyntaxKind.StringKeyword,
+ varchar: ts.SyntaxKind.StringKeyword,
};
const getKeywordType = (columnType: ColumnType | null) => {
- if (!columnType) {
- return ts.SyntaxKind.AnyKeyword;
- }
- const keywordType = keywordTypeDictionary[columnType];
- if (keywordType) return keywordType;
+ if (!columnType) {
+ return ts.SyntaxKind.AnyKeyword;
+ }
+ const keywordType = keywordTypeDictionary[columnType];
+ if (keywordType) return keywordType;
- if (columnType.match(/string|text|char.*|varchar.*/)) {
- return ts.SyntaxKind.StringKeyword;
- }
+ if (columnType.match(/string|text|char.*|varchar.*/)) {
+ return ts.SyntaxKind.StringKeyword;
+ }
- return ts.SyntaxKind.AnyKeyword;
+ return ts.SyntaxKind.AnyKeyword;
};
const manyRelations: Relation["type"][] = [
- "HasMany",
- "MorphMany",
- "HasManyThrough",
- "BelongsToMany",
+ "HasMany",
+ "MorphMany",
+ "HasManyThrough",
+ "BelongsToMany",
];
const oneRlations: Relation["type"][] = [
- "HasOne",
- "MorphOne",
- "HasOneThrough",
- "BelongsTo",
+ "HasOne",
+ "MorphOne",
+ "HasOneThrough",
+ "BelongsTo",
];
const getRelationNode = (relation: Relation) => {
- // many relation
- if (manyRelations.includes(relation.type)) {
- return ts.factory.createArrayTypeNode(
- ts.factory.createTypeReferenceNode(
- ts.factory.createIdentifier(getClassName(relation.related) ?? ""),
- undefined,
- ),
- );
- }
-
- // one relation
- if (oneRlations.includes(relation.type)) {
- return ts.factory.createTypeReferenceNode(
- ts.factory.createIdentifier(getClassName(relation.related) ?? ""),
- undefined,
- );
- }
-
- return ts.factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword);
+ // many relation
+ if (manyRelations.includes(relation.type)) {
+ return ts.factory.createArrayTypeNode(
+ ts.factory.createTypeReferenceNode(
+ ts.factory.createIdentifier(getClassName(relation.related) ?? ""),
+ undefined,
+ ),
+ );
+ }
+
+ // one relation
+ if (oneRlations.includes(relation.type)) {
+ return ts.factory.createTypeReferenceNode(
+ ts.factory.createIdentifier(getClassName(relation.related) ?? ""),
+ undefined,
+ );
+ }
+
+ return ts.factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword);
};
const getClassName = (namespace: string) => {
- return namespace.split("\\").at(-1);
+ return namespace.split("\\").at(-1);
};
const createAttributeType = (attribute: Attribute) => {
- let node: TypeNode = ts.factory.createKeywordTypeNode(
- getKeywordType(attribute.type),
- );
-
- // Blob type
- if (attribute.type === "blob") {
- node = ts.factory.createTypeReferenceNode(
- ts.factory.createIdentifier("Blob"),
- undefined,
- );
- }
-
- // Date, DateTime cast
- if (attribute.cast && ["date", "datetime"].includes(attribute.cast)) {
- node = ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword);
- }
-
- // Json type
- if (attribute.type === "json") {
- if (attribute.cast === "array") {
- node = ts.factory.createArrayTypeNode(
- ts.factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),
- );
- }
-
- if (attribute.cast === "object") {
- node = ts.factory.createTypeReferenceNode("Record", [
- ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
- ts.factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),
- ]);
- }
- }
-
- // Enum type
- if (attribute.cast && isEnum(attribute)) {
- // Create enum type node
- node = ts.factory.createTypeReferenceNode(
- ts.factory.createIdentifier(attribute.cast.split("\\").at(-1) ?? ""),
- undefined,
- );
- }
-
- return ts.factory.createPropertySignature(
- undefined,
- ts.factory.createIdentifier(attribute.name),
- attribute.nullable
- ? ts.factory.createToken(ts.SyntaxKind.QuestionToken)
- : undefined,
- node,
- );
+ let node: TypeNode = ts.factory.createKeywordTypeNode(
+ getKeywordType(attribute.type),
+ );
+
+ // Blob type
+ if (attribute.type === "blob") {
+ node = ts.factory.createTypeReferenceNode(
+ ts.factory.createIdentifier("Blob"),
+ undefined,
+ );
+ }
+
+ // Date, DateTime cast
+ if (attribute.cast && ["date", "datetime"].includes(attribute.cast)) {
+ node = ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword);
+ }
+
+ // Json type
+ if (attribute.type === "json") {
+ if (attribute.cast === "array") {
+ node = ts.factory.createArrayTypeNode(
+ ts.factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),
+ );
+ }
+
+ if (attribute.cast === "object") {
+ node = ts.factory.createTypeReferenceNode("Record", [
+ ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
+ ts.factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),
+ ]);
+ }
+ }
+
+ // Enum type
+ if (attribute.cast && isEnum(attribute)) {
+ // Create enum type node
+ node = ts.factory.createTypeReferenceNode(
+ ts.factory.createIdentifier(attribute.cast.split("\\").at(-1) ?? ""),
+ undefined,
+ );
+ }
+
+ return ts.factory.createPropertySignature(
+ undefined,
+ ts.factory.createIdentifier(attribute.name),
+ attribute.nullable
+ ? ts.factory.createToken(ts.SyntaxKind.QuestionToken)
+ : undefined,
+ node,
+ );
};
export const createTypes = (modelData: LaravelModelType[]) => {
- const modelNames = modelData.map((data) => data.class);
- return modelData.map((model) =>
- ts.factory.createTypeAliasDeclaration(
- [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
- ts.factory.createIdentifier(getClassName(model.class) ?? ""),
- undefined,
- ts.factory.createTypeLiteralNode([
- ...model.attributes
- .filter((attribute) => !attribute.hidden)
- .map((attribute) => createAttributeType(attribute)),
- ...model.relations
- .filter((relation) => modelNames.includes(relation.related))
- .map((relation) =>
- ts.factory.createPropertySignature(
- undefined,
- ts.factory.createIdentifier(convertCamelToSnake(relation.name)),
- ts.factory.createToken(ts.SyntaxKind.QuestionToken),
- getRelationNode(relation),
- ),
- ),
- ]),
- ),
- );
+ const modelNames = modelData.map((data) => data.class);
+ return modelData.map((model) =>
+ ts.factory.createTypeAliasDeclaration(
+ [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
+ ts.factory.createIdentifier(getClassName(model.class) ?? ""),
+ undefined,
+ ts.factory.createTypeLiteralNode([
+ ...model.attributes
+ .filter((attribute) => !attribute.hidden)
+ .map((attribute) => createAttributeType(attribute)),
+ ...model.relations
+ .filter((relation) => modelNames.includes(relation.related))
+ .map((relation) =>
+ ts.factory.createPropertySignature(
+ undefined,
+ ts.factory.createIdentifier(convertCamelToSnake(relation.name)),
+ ts.factory.createToken(ts.SyntaxKind.QuestionToken),
+ getRelationNode(relation),
+ ),
+ ),
+ ]),
+ ),
+ );
};
diff --git a/src/print.ts b/src/print.ts
index 70232e3..94520ef 100644
--- a/src/print.ts
+++ b/src/print.ts
@@ -2,17 +2,17 @@ import fs from "node:fs";
import path from "node:path";
function printGeneratedTS(
- filename: string,
- result: string,
- outputPath: string,
+ filename: string,
+ result: string,
+ outputPath: string,
) {
- fs.writeFileSync(path.join(outputPath, filename), result);
+ fs.writeFileSync(path.join(outputPath, filename), result);
}
export function print(filename: string, result: string, outputPath: string) {
- if (!fs.existsSync(outputPath)) {
- fs.mkdirSync(outputPath, { recursive: true });
- }
+ if (!fs.existsSync(outputPath)) {
+ fs.mkdirSync(outputPath, { recursive: true });
+ }
- printGeneratedTS(filename, result, outputPath);
+ printGeneratedTS(filename, result, outputPath);
}
diff --git a/src/routes/createSource.ts b/src/routes/createSource.ts
index 67e52d5..cd9436c 100644
--- a/src/routes/createSource.ts
+++ b/src/routes/createSource.ts
@@ -4,35 +4,35 @@ import type { LaravelRouteListType } from "../types";
import { createTypes } from "./createTypes";
const createSourceFile = (
- routeListData: LaravelRouteListType[],
- options: CLIOptions,
+ routeListData: LaravelRouteListType[],
+ options: CLIOptions,
) => {
- return ts.factory.createSourceFile(
- [...createTypes(routeListData)],
- ts.factory.createToken(ts.SyntaxKind.EndOfFileToken),
- ts.NodeFlags.None,
- );
+ return ts.factory.createSourceFile(
+ [...createTypes(routeListData)],
+ ts.factory.createToken(ts.SyntaxKind.EndOfFileToken),
+ ts.NodeFlags.None,
+ );
};
export const createRouteParamsSource = (
- filename: string,
- routeListData: LaravelRouteListType[],
- options: CLIOptions,
+ filename: string,
+ routeListData: LaravelRouteListType[],
+ options: CLIOptions,
) => {
- const resultFile = ts.createSourceFile(
- filename,
- "",
- ts.ScriptTarget.Latest,
- false,
- ts.ScriptKind.TS,
- );
- const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed });
+ const resultFile = ts.createSourceFile(
+ filename,
+ "",
+ ts.ScriptTarget.Latest,
+ false,
+ ts.ScriptKind.TS,
+ );
+ const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed });
- const result = printer.printNode(
- ts.EmitHint.Unspecified,
- createSourceFile(routeListData, options),
- resultFile,
- );
+ const result = printer.printNode(
+ ts.EmitHint.Unspecified,
+ createSourceFile(routeListData, options),
+ resultFile,
+ );
- return result;
+ return result;
};
diff --git a/src/routes/createTypes.ts b/src/routes/createTypes.ts
index e74f2a9..e388187 100644
--- a/src/routes/createTypes.ts
+++ b/src/routes/createTypes.ts
@@ -3,59 +3,59 @@ import ts from "typescript";
import type { LaravelRouteListType } from "../types";
export const createTypes = (routeListData: LaravelRouteListType[]) => {
- const keys: string[] = [];
- return [
- ts.factory.createTypeAliasDeclaration(
- [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
- ts.factory.createIdentifier("RouteParams"),
- undefined,
- ts.factory.createTypeLiteralNode(
- routeListData
- .filter((route) => {
- if (!route.name) {
- consola.warn(`Route definitions must have a name for type generation.
+ const keys: string[] = [];
+ return [
+ ts.factory.createTypeAliasDeclaration(
+ [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
+ ts.factory.createIdentifier("RouteParams"),
+ undefined,
+ ts.factory.createTypeLiteralNode(
+ routeListData
+ .filter((route) => {
+ if (!route.name) {
+ consola.warn(`Route definitions must have a name for type generation.
Skipping the following route:
Method: ${route.method}
Uri: ${route.uri}
Action: ${route.action}`);
- return false;
- }
- if (keys.includes(route.name)) {
- consola.warn(`Duplicate route name found in route definitions.
+ return false;
+ }
+ if (keys.includes(route.name)) {
+ consola.warn(`Duplicate route name found in route definitions.
Skipping the following route:
Name: ${route.name}
Method: ${route.method}
Uri: ${route.uri}
Action: ${route.action}`);
- return false;
- }
- keys.push(route.name);
- return true;
- })
- .map((route) => {
- const params = Array.from(
- route.uri.matchAll(/\{(.*?)\}/g),
- (param) => param[1],
- );
- return ts.factory.createPropertySignature(
- undefined,
- ts.factory.createStringLiteral(route.name ?? ""),
- undefined,
- ts.factory.createTypeLiteralNode(
- params?.map((param) =>
- ts.factory.createPropertySignature(
- undefined,
- ts.factory.createIdentifier(param),
- undefined,
- ts.factory.createKeywordTypeNode(
- ts.SyntaxKind.StringKeyword,
- ),
- ),
- ),
- ),
- );
- }),
- ),
- ),
- ];
+ return false;
+ }
+ keys.push(route.name);
+ return true;
+ })
+ .map((route) => {
+ const params = Array.from(
+ route.uri.matchAll(/\{(.*?)\}/g),
+ (param) => param[1],
+ );
+ return ts.factory.createPropertySignature(
+ undefined,
+ ts.factory.createStringLiteral(route.name ?? ""),
+ undefined,
+ ts.factory.createTypeLiteralNode(
+ params?.map((param) =>
+ ts.factory.createPropertySignature(
+ undefined,
+ ts.factory.createIdentifier(param),
+ undefined,
+ ts.factory.createKeywordTypeNode(
+ ts.SyntaxKind.StringKeyword,
+ ),
+ ),
+ ),
+ ),
+ );
+ }),
+ ),
+ ),
+ ];
};
diff --git a/src/types/index.ts b/src/types/index.ts
index b5baedf..b76f098 100644
--- a/src/types/index.ts
+++ b/src/types/index.ts
@@ -1,74 +1,74 @@
export type Relation = {
- name: string;
- type:
- | "MorphMany"
- | "HasMany"
- | "BelongsToMany"
- | "HasManyThrough"
- | "BelongsTo"
- | "HasOne"
- | "MorphOne"
- | "HasOneThrough";
- related: string;
+ name: string;
+ type:
+ | "MorphMany"
+ | "HasMany"
+ | "BelongsToMany"
+ | "HasManyThrough"
+ | "BelongsTo"
+ | "HasOne"
+ | "MorphOne"
+ | "HasOneThrough";
+ related: string;
};
export type ColumnType =
- | "bigint unsigned"
- | "bigint"
- | "datetime"
- | "date"
- | string; // "string(n)"
+ | "bigint unsigned"
+ | "bigint"
+ | "datetime"
+ | "date"
+ | string; // "string(n)"
type CastType =
- | "array"
- | "AsStringable::class"
- | "boolean"
- | "collection"
- | "date"
- | "datetime"
- | "immutable_date"
- | "immutable_datetime"
- | "double"
- | "encrypted"
- | "encrypted:array"
- | "encrypted:collection"
- | "encrypted:object"
- | "float"
- | "integer"
- | "object"
- | "real"
- | "string"
- | "timestamp"
- | null
- | string; // "decimal:"
+ | "array"
+ | "AsStringable::class"
+ | "boolean"
+ | "collection"
+ | "date"
+ | "datetime"
+ | "immutable_date"
+ | "immutable_datetime"
+ | "double"
+ | "encrypted"
+ | "encrypted:array"
+ | "encrypted:collection"
+ | "encrypted:object"
+ | "float"
+ | "integer"
+ | "object"
+ | "real"
+ | "string"
+ | "timestamp"
+ | null
+ | string; // "decimal:"
export type Attribute = {
- name: string;
- type: ColumnType;
- increments: boolean;
- nullable: boolean;
- default: null;
- unique: boolean;
- fillable: boolean;
- hidden: boolean;
- appended: null;
- cast: CastType;
+ name: string;
+ type: ColumnType;
+ increments: boolean;
+ nullable: boolean;
+ default: null;
+ unique: boolean;
+ fillable: boolean;
+ hidden: boolean;
+ appended: null;
+ cast: CastType;
};
export type LaravelModelType = {
- class: string;
- database: "mysql" | "sqlite" | "pgsql";
- table: string;
- attributes: Attribute[];
- relations: Relation[];
- observers: unknown[];
+ class: string;
+ database: "mysql" | "sqlite" | "pgsql";
+ table: string;
+ attributes: Attribute[];
+ relations: Relation[];
+ observers: unknown[];
};
export type LaravelRouteListType = {
- domain: string | null;
- method: "GET|HEAD" | "POST" | "PUT|PATCH" | "DELETE";
- uri: string;
- name: string | null;
- action: string;
- middleware: string[];
+ domain: string | null;
+ method: "GET|HEAD" | "POST" | "PUT|PATCH" | "DELETE";
+ uri: string;
+ name: string | null;
+ action: string;
+ middleware: string[];
};
diff --git a/src/types/inertia.ts b/src/types/inertia.ts
index cbec567..9b74068 100644
--- a/src/types/inertia.ts
+++ b/src/types/inertia.ts
@@ -1,21 +1,21 @@
export type PaginationLink = {
- active: boolean;
- label: string;
- url: string | null;
+ active: boolean;
+ label: string;
+ url: string | null;
};
export type Paginate = {
- current_page: number;
- data: T[];
- first_page_url: string;
- from: number;
- last_page: number;
- last_page_url: string;
- links: PaginationLink[];
- next_page_url: string | null;
- path: string;
- per_page: number;
- prev_page_url: string | null;
- to: number;
- total: number;
+ current_page: number;
+ data: T[];
+ first_page_url: string;
+ from: number;
+ last_page: number;
+ last_page_url: string;
+ links: PaginationLink[];
+ next_page_url: string | null;
+ path: string;
+ per_page: number;
+ prev_page_url: string | null;
+ to: number;
+ total: number;
};
diff --git a/src/utils.ts b/src/utils.ts
index 8a13e7f..35a664c 100644
--- a/src/utils.ts
+++ b/src/utils.ts
@@ -5,38 +5,38 @@ import type { Attribute } from "./types";
// "app/Enums" -> "App-Enums"
const enumPath = defaultEnumPath
- .split("/")
- .map((name) => name.charAt(0).toUpperCase() + name.substring(1).toLowerCase())
- .join("-");
+ .split("/")
+ .map((name) => name.charAt(0).toUpperCase() + name.substring(1).toLowerCase())
+ .join("-");
export const isEnum = (attribute: Attribute, customEnumPath?: string) => {
- return attribute.cast
- ?.replaceAll("\\", "-")
- .match(new RegExp(customEnumPath ?? enumPath));
+ return attribute.cast
+ ?.replaceAll("\\", "-")
+ .match(new RegExp(customEnumPath ?? enumPath));
};
export const convertCamelToSnake = (camelCaseString: string): string => {
- return camelCaseString.replace(/[A-Z]/g, (str) => `_${str.toLowerCase()}`);
+ return camelCaseString.replace(/[A-Z]/g, (str) => `_${str.toLowerCase()}`);
};
export const formatNamespaceForCommand = (namespace: string): string => {
- return namespace.replaceAll(/\\/g, "/");
+ return namespace.replaceAll(/\\/g, "/");
};
export const getPhpAst = (phpFilePath: string): Program => {
- const parser = new Engine({});
+ const parser = new Engine({});
- const file = fs.readFileSync(phpFilePath);
- const fileName = phpFilePath.split("/").at(-1) ?? "";
- const ast = parser.parseCode(file.toString(), fileName);
+ const file = fs.readFileSync(phpFilePath);
+ const fileName = phpFilePath.split("/").at(-1) ?? "";
+ const ast = parser.parseCode(file.toString(), fileName);
- return ast;
+ return ast;
};
export const getPhpNamespace = (phpAst: Program): Namespace => {
- const namespaceObj = phpAst.children.find(
- (child) => child.kind === "namespace",
- ) as Namespace;
+ const namespaceObj = phpAst.children.find(
+ (child) => child.kind === "namespace",
+ ) as Namespace;
- return namespaceObj;
+ return namespaceObj;
};
diff --git a/templates/route.d.ts b/templates/route.d.ts
index b38817e..4e3fac1 100644
--- a/templates/route.d.ts
+++ b/templates/route.d.ts
@@ -1,30 +1,30 @@
import type { Config, Router } from "ziggy-js";
import type { RouteParams } from "./param";
type CustomRouter = {
- get params(): RouteParams[T];
- current(): Extract | undefined;
- current(
- name: Extract,
- params?: RouteParams[T],
- ): boolean;
+ get params(): RouteParams[T];
+ current(): Extract | undefined;
+ current(
+ name: Extract,
+ params?: RouteParams[T],
+ ): boolean;
} & Router;
declare global {
- declare function route(): CustomRouter;
- declare function route(
- name: T,
- params?: RouteParams[T],
- absolute?: boolean,
- config?: Config,
- ): string;
+ declare function route(): CustomRouter;
+ declare function route(
+ name: T,
+ params?: RouteParams[T],
+ absolute?: boolean,
+ config?: Config,
+ ): string;
}
declare module "vue" {
- interface ComponentCustomProperties {
- route: (() => CustomRouter) &
- ((
- name: T,
- params?: RouteParams[T],
- absolute?: boolean,
- config?: Config,
- ) => string);
- }
+ interface ComponentCustomProperties {
+ route: (() => CustomRouter) &
+ ((
+ name: T,
+ params?: RouteParams[T],
+ absolute?: boolean,
+ config?: Config,
+ ) => string);
+ }
}
diff --git a/tsconfig.json b/tsconfig.json
index a58c0d8..36ef417 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,17 +1,17 @@
{
- "compilerOptions": {
- "module": "commonjs",
- "moduleResolution": "node",
- "allowSyntheticDefaultImports": true,
- "strict": true,
- "esModuleInterop": true,
- "noImplicitAny": true,
- "downlevelIteration": true,
- "resolveJsonModule": true,
- "outDir": "dist",
- "lib": ["ESNext", "DOM"],
- "declaration": true,
- "target": "ESNext"
- },
- "include": ["src"]
+ "compilerOptions": {
+ "module": "commonjs",
+ "moduleResolution": "node",
+ "allowSyntheticDefaultImports": true,
+ "strict": true,
+ "esModuleInterop": true,
+ "noImplicitAny": true,
+ "downlevelIteration": true,
+ "resolveJsonModule": true,
+ "outDir": "dist",
+ "lib": ["ESNext", "DOM"],
+ "declaration": true,
+ "target": "ESNext"
+ },
+ "include": ["src"]
}