From bdc7628f493ef1185d3b2546f23e57786e6e3c09 Mon Sep 17 00:00:00 2001 From: ImAlpha Date: Fri, 1 Dec 2023 19:59:38 -0800 Subject: [PATCH] added menu items to the db schema and pushed to planetscale --- Websites/jefes-nextjs/.env | 8 +- Websites/jefes-nextjs/db/db.ts | 13 +- Websites/jefes-nextjs/db/index.ts | 9 +- Websites/jefes-nextjs/db/migrate.ts | 14 +- Websites/jefes-nextjs/db/schema.ts | 14 +- Websites/jefes-nextjs/drizzle.config.ts | 10 +- .../migrations/0000_charming_blindfold.sql | 27 - .../migrations/0000_tranquil_arachne.sql | 8 + .../migrations/0001_left_serpent_society.sql | 6 + .../migrations/meta/0000_snapshot.json | 60 +-- .../migrations/meta/0001_snapshot.json | 96 ++++ .../drizzle/migrations/meta/_journal.json | 11 +- Websites/jefes-nextjs/package-lock.json | 488 +++++++++++++++++- Websites/jefes-nextjs/package.json | 5 +- Websites/jefes-nextjs/tsconfig.json | 4 +- 15 files changed, 658 insertions(+), 115 deletions(-) delete mode 100644 Websites/jefes-nextjs/drizzle/migrations/0000_charming_blindfold.sql create mode 100644 Websites/jefes-nextjs/drizzle/migrations/0000_tranquil_arachne.sql create mode 100644 Websites/jefes-nextjs/drizzle/migrations/0001_left_serpent_society.sql create mode 100644 Websites/jefes-nextjs/drizzle/migrations/meta/0001_snapshot.json diff --git a/Websites/jefes-nextjs/.env b/Websites/jefes-nextjs/.env index 7b3aa8c..04286d9 100644 --- a/Websites/jefes-nextjs/.env +++ b/Websites/jefes-nextjs/.env @@ -8,6 +8,8 @@ # DATABASE_URL="mysql://root:%21Plop2099341723@192.168.50.190:3306/db" MAPS_API_KEY="https://www.google.com/maps/embed/v1/place?q=place_id:ChIJQ-7Uc0BitocRQZASTWUyN04&key=AIzaSyBS4qOnpT4llaFa_UKMpeWike3lzDvFZ1U" -DATABASE_HOST="aws.connect.psdb.cloud" -DATABASE_USERNAME="11lq0wcjbxyku4zmubji" -DATABASE_PASSWORD="pscale_pw_AyxGMWCMpaZOsaeeXXem8mrxXPRNJEG0uPUrW2zo1f8" \ No newline at end of file +DB_HOST="aws.connect.psdb.cloud" +DB_USER="11lq0wcjbxyku4zmubji" +DB_PASSWORD="pscale_pw_AyxGMWCMpaZOsaeeXXem8mrxXPRNJEG0uPUrW2zo1f8" +DB_NAME="dev_db" +DB_URI="mysql://11lq0wcjbxyku4zmubji:pscale_pw_AyxGMWCMpaZOsaeeXXem8mrxXPRNJEG0uPUrW2zo1f8@aws.connect.psdb.cloud/dev_db?ssl={"rejectUnauthorized":true}" \ No newline at end of file diff --git a/Websites/jefes-nextjs/db/db.ts b/Websites/jefes-nextjs/db/db.ts index 30023c9..c4f839e 100644 --- a/Websites/jefes-nextjs/db/db.ts +++ b/Websites/jefes-nextjs/db/db.ts @@ -1,13 +1,14 @@ +import * as schema from "./schema"; import { drizzle } from 'drizzle-orm/mysql2'; import mysql from 'mysql2/promise'; -import * as schema from './schema'; - -export const connection = mysql.createConnection({ - host: process.env.DB_HOST, +import "dotenv/config"; + +export const connection = await mysql.createConnection({ + // host: process.env.DB_HOST, user: process.env.DB_USER, password: process.env.DB_PASSWORD, database: process.env.DB_NAME, + uri: process.env.DB_URI, multipleStatements: true, }); - -export const db = drizzle(connection, { schema }); \ No newline at end of file +export const db = drizzle(connection, { schema, mode: 'planetscale' }); diff --git a/Websites/jefes-nextjs/db/index.ts b/Websites/jefes-nextjs/db/index.ts index 289b6f0..922de10 100644 --- a/Websites/jefes-nextjs/db/index.ts +++ b/Websites/jefes-nextjs/db/index.ts @@ -1,12 +1,13 @@ // db/index.ts import { drizzle } from "drizzle-orm/planetscale-serverless"; import { connect } from "@planetscale/database"; +import 'dotenv/config'; -// create the connection const connection = connect({ - host: process.env["DATABASE_HOST"], - username: process.env["DATABASE_USERNAME"], - password: process.env["DATABASE_PASSWORD"], + host: process.env["DATABASE_HOST"], + username: process.env["DATABASE_USERNAME"], + password: process.env["DATABASE_PASSWORD"], + }); const db = drizzle(connection); diff --git a/Websites/jefes-nextjs/db/migrate.ts b/Websites/jefes-nextjs/db/migrate.ts index 65a6794..66b949c 100644 --- a/Websites/jefes-nextjs/db/migrate.ts +++ b/Websites/jefes-nextjs/db/migrate.ts @@ -1,9 +1,9 @@ -import "dotenv/config"; -import { migrate } from "drizzle-orm/mysql2/migrator"; -import { db, connection } from "./db"; - +import 'dotenv/config'; +import { migrate } from 'drizzle-orm/mysql2/migrator'; +import { db, connection } from './db'; + // This will run migrations on the database, skipping the ones already applied -await migrate(db, { migrationsFolder: "./drizzle" }); - +await migrate(db, { migrationsFolder: './drizzle/migrations' }); + // Don't forget to close the connection, otherwise the script will hang -await connection.end(); +await connection.end(); \ No newline at end of file diff --git a/Websites/jefes-nextjs/db/schema.ts b/Websites/jefes-nextjs/db/schema.ts index ffa8dc8..3442afd 100644 --- a/Websites/jefes-nextjs/db/schema.ts +++ b/Websites/jefes-nextjs/db/schema.ts @@ -1,26 +1,32 @@ // db/schema.ts - +// pnpm drizzle-kit generate:mysql +// pnpm tsx db/migrate.ts import { index, int, mysqlTable, bigint, varchar, + timestamp, + mysqlSchema, } from "drizzle-orm/mysql-core"; +// export const mySchema = mysqlSchema("drizzle_jefes") for creating a new db + export const users = mysqlTable( "users", { id: bigint("id", { mode: "number" }).primaryKey().autoincrement(), fullName: varchar("full_name", { length: 256 }), + email: varchar("email", { length: 256 }).notNull(), }, (users) => ({ nameIdx: index("name_idx").on(users.fullName), }) ); -export const emails = mysqlTable("email", { +export const menuItems = mysqlTable("menu_item", { id: bigint("id", { mode: "number" }).primaryKey().autoincrement(), - phone: varchar("phone", { length: 256 }), - userId: int("user_id").references(() => users.id), + itemName: varchar("item_name", { length: 256 }), + itemDescription: varchar("item_description", { length: 256 }), }); diff --git a/Websites/jefes-nextjs/drizzle.config.ts b/Websites/jefes-nextjs/drizzle.config.ts index 4d2622d..09af760 100644 --- a/Websites/jefes-nextjs/drizzle.config.ts +++ b/Websites/jefes-nextjs/drizzle.config.ts @@ -1,16 +1,16 @@ // drizzle.config.ts - -import "dotenv/config"; import type { Config } from "drizzle-kit"; +import "dotenv/config"; export default { schema: "./db/schema.ts", out: "./drizzle/migrations", - driver: "mysql2", // 'pg' | 'mysql2' | 'better-sqlite' | 'libsql' | 'turso' + driver: "mysql2", dbCredentials: { - host: process.env.DB_HOST!, + host: process.env.DB_HOST as string, user: process.env.DB_USER, password: process.env.DB_PASSWORD, - database: process.env.DB_NAME!, + database: process.env.DB_NAME as string, + uri: process.env.DB_URI, }, } satisfies Config; diff --git a/Websites/jefes-nextjs/drizzle/migrations/0000_charming_blindfold.sql b/Websites/jefes-nextjs/drizzle/migrations/0000_charming_blindfold.sql deleted file mode 100644 index 5a2313f..0000000 --- a/Websites/jefes-nextjs/drizzle/migrations/0000_charming_blindfold.sql +++ /dev/null @@ -1,27 +0,0 @@ -CREATE TABLE `email` -( - `id` bigint AUTO_INCREMENT NOT NULL, - `phone` varchar -(256), - `user_id` int, - CONSTRAINT `email_id` PRIMARY KEY -(`id`) -); ---> statement-breakpoint -CREATE TABLE `users` -( - `id` bigint AUTO_INCREMENT NOT NULL, - `full_name` varchar -(256), - CONSTRAINT `users_id` PRIMARY KEY -(`id`) -); ---> statement-breakpoint -CREATE INDEX `name_idx` ON `users` -(`full_name`);--> statement-breakpoint -ALTER TABLE `email` -ADD CONSTRAINT `email_user_id_users_id_fk` FOREIGN KEY -(`user_id`) REFERENCES `users` -(`id`) ON -DELETE no action ON -UPDATE no action; \ No newline at end of file diff --git a/Websites/jefes-nextjs/drizzle/migrations/0000_tranquil_arachne.sql b/Websites/jefes-nextjs/drizzle/migrations/0000_tranquil_arachne.sql new file mode 100644 index 0000000..c698e5c --- /dev/null +++ b/Websites/jefes-nextjs/drizzle/migrations/0000_tranquil_arachne.sql @@ -0,0 +1,8 @@ +CREATE TABLE `users` ( + `id` bigint AUTO_INCREMENT NOT NULL, + `full_name` varchar(256), + `email` varchar(256) NOT NULL, + CONSTRAINT `users_id` PRIMARY KEY(`id`) +); +--> statement-breakpoint +CREATE INDEX `name_idx` ON `users` (`full_name`); \ No newline at end of file diff --git a/Websites/jefes-nextjs/drizzle/migrations/0001_left_serpent_society.sql b/Websites/jefes-nextjs/drizzle/migrations/0001_left_serpent_society.sql new file mode 100644 index 0000000..cc4c749 --- /dev/null +++ b/Websites/jefes-nextjs/drizzle/migrations/0001_left_serpent_society.sql @@ -0,0 +1,6 @@ +CREATE TABLE `menu_item` ( + `id` bigint AUTO_INCREMENT NOT NULL, + `item_name` varchar(256), + `item_description` varchar(256), + CONSTRAINT `menu_item_id` PRIMARY KEY(`id`) +); diff --git a/Websites/jefes-nextjs/drizzle/migrations/meta/0000_snapshot.json b/Websites/jefes-nextjs/drizzle/migrations/meta/0000_snapshot.json index c780b4f..5f8f8f9 100644 --- a/Websites/jefes-nextjs/drizzle/migrations/meta/0000_snapshot.json +++ b/Websites/jefes-nextjs/drizzle/migrations/meta/0000_snapshot.json @@ -1,60 +1,9 @@ { "version": "5", "dialect": "mysql", - "id": "9edb1131-47b9-43e7-9252-e68e1e3dc66f", + "id": "63da23e1-fb32-4cea-a4dd-2c83dfc4580e", "prevId": "00000000-0000-0000-0000-000000000000", "tables": { - "email": { - "name": "email", - "columns": { - "id": { - "name": "id", - "type": "bigint", - "primaryKey": false, - "notNull": true, - "autoincrement": true - }, - "phone": { - "name": "phone", - "type": "varchar(256)", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "user_id": { - "name": "user_id", - "type": "int", - "primaryKey": false, - "notNull": false, - "autoincrement": false - } - }, - "indexes": {}, - "foreignKeys": { - "email_user_id_users_id_fk": { - "name": "email_user_id_users_id_fk", - "tableFrom": "email", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": { - "email_id": { - "name": "email_id", - "columns": [ - "id" - ] - } - }, - "uniqueConstraints": {} - }, "users": { "name": "users", "columns": { @@ -71,6 +20,13 @@ "primaryKey": false, "notNull": false, "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(256)", + "primaryKey": false, + "notNull": true, + "autoincrement": false } }, "indexes": { diff --git a/Websites/jefes-nextjs/drizzle/migrations/meta/0001_snapshot.json b/Websites/jefes-nextjs/drizzle/migrations/meta/0001_snapshot.json new file mode 100644 index 0000000..df96d7a --- /dev/null +++ b/Websites/jefes-nextjs/drizzle/migrations/meta/0001_snapshot.json @@ -0,0 +1,96 @@ +{ + "version": "5", + "dialect": "mysql", + "id": "ac7e1541-2a03-44a9-8a9a-f11a30a5cbcd", + "prevId": "63da23e1-fb32-4cea-a4dd-2c83dfc4580e", + "tables": { + "menu_item": { + "name": "menu_item", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": true + }, + "item_name": { + "name": "item_name", + "type": "varchar(256)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "item_description": { + "name": "item_description", + "type": "varchar(256)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "menu_item_id": { + "name": "menu_item_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {} + }, + "users": { + "name": "users", + "columns": { + "id": { + "name": "id", + "type": "bigint", + "primaryKey": false, + "notNull": true, + "autoincrement": true + }, + "full_name": { + "name": "full_name", + "type": "varchar(256)", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "varchar(256)", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "name_idx": { + "name": "name_idx", + "columns": [ + "full_name" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": { + "users_id": { + "name": "users_id", + "columns": [ + "id" + ] + } + }, + "uniqueConstraints": {} + } + }, + "schemas": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + } +} \ No newline at end of file diff --git a/Websites/jefes-nextjs/drizzle/migrations/meta/_journal.json b/Websites/jefes-nextjs/drizzle/migrations/meta/_journal.json index b4607b7..ff081ab 100644 --- a/Websites/jefes-nextjs/drizzle/migrations/meta/_journal.json +++ b/Websites/jefes-nextjs/drizzle/migrations/meta/_journal.json @@ -5,8 +5,15 @@ { "idx": 0, "version": "5", - "when": 1701338981518, - "tag": "0000_charming_blindfold", + "when": 1701347909251, + "tag": "0000_tranquil_arachne", + "breakpoints": true + }, + { + "idx": 1, + "version": "5", + "when": 1701400364948, + "tag": "0001_left_serpent_society", "breakpoints": true } ] diff --git a/Websites/jefes-nextjs/package-lock.json b/Websites/jefes-nextjs/package-lock.json index bc92307..41505db 100644 --- a/Websites/jefes-nextjs/package-lock.json +++ b/Websites/jefes-nextjs/package-lock.json @@ -22,6 +22,7 @@ "embla-carousel-autoplay": "^8.0.0-rc14", "embla-carousel-react": "^8.0.0-rc14", "lucide-react": "^0.292.0", + "mysql2": "^3.6.5", "next": "14.0.3", "next-auth": "5.0.0-beta.4", "react": "^18.2.0", @@ -33,6 +34,7 @@ "sharp": "^0.32.6", "tailwind-merge": "^2.0.0", "tailwindcss-animate": "^1.0.7", + "tsx": "^4.6.1", "zod": "^3.22.4" }, "devDependencies": { @@ -2522,6 +2524,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "engines": { + "node": ">=0.10" + } + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -3775,6 +3785,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dependencies": { + "is-property": "^1.0.2" + } + }, "node_modules/get-intrinsic": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", @@ -3820,7 +3838,6 @@ "version": "4.7.2", "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", - "dev": true, "dependencies": { "resolve-pkg-maps": "^1.0.0" }, @@ -4038,6 +4055,17 @@ "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", "dev": true }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -4348,6 +4376,11 @@ "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", "dev": true }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" + }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -4681,6 +4714,11 @@ "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", "dev": true }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -4864,6 +4902,32 @@ "mustache": "bin/mustache" } }, + "node_modules/mysql2": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.6.5.tgz", + "integrity": "sha512-pS/KqIb0xlXmtmqEuTvBXTmLoQ5LmAz5NW/r8UyQ1ldvnprNEj3P9GbmuQQ2J0A4LO+ynotGi6TbscPa8OUb+w==", + "dependencies": { + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru-cache": "^8.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/mysql2/node_modules/lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", + "engines": { + "node": ">=16.14" + } + }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -4874,6 +4938,25 @@ "thenify-all": "^1.0.0" } }, + "node_modules/named-placeholders": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", + "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", + "dependencies": { + "lru-cache": "^7.14.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/named-placeholders/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", @@ -5768,7 +5851,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true, "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } @@ -5909,6 +5991,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, "node_modules/scheduler": { "version": "0.23.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", @@ -5944,6 +6031,11 @@ "node": ">=10" } }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" + }, "node_modules/set-function-length": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", @@ -6130,6 +6222,14 @@ "deprecated": "Please use @jridgewell/sourcemap-codec instead", "dev": true }, + "node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/stacktracey": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", @@ -6543,6 +6643,390 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "node_modules/tsx": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.6.1.tgz", + "integrity": "sha512-OQ4TAPHXAPUo/NZAmmIybl0o8LFOTlycQxFepLBAp6EV87U88fOKYGCQI2viGAEOVU9UW/cgQcxcOMnfEKVY3Q==", + "dependencies": { + "esbuild": "~0.18.20", + "get-tsconfig": "^4.7.2" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", diff --git a/Websites/jefes-nextjs/package.json b/Websites/jefes-nextjs/package.json index 32676c3..678b474 100644 --- a/Websites/jefes-nextjs/package.json +++ b/Websites/jefes-nextjs/package.json @@ -23,6 +23,7 @@ "embla-carousel-autoplay": "^8.0.0-rc14", "embla-carousel-react": "^8.0.0-rc14", "lucide-react": "^0.292.0", + "mysql2": "^3.6.5", "next": "14.0.3", "next-auth": "5.0.0-beta.4", "react": "^18.2.0", @@ -34,6 +35,7 @@ "sharp": "^0.32.6", "tailwind-merge": "^2.0.0", "tailwindcss-animate": "^1.0.7", + "tsx": "^4.6.1", "zod": "^3.22.4" }, "devDependencies": { @@ -48,5 +50,6 @@ "postcss": "^8", "tailwindcss": "^3", "typescript": "^5" - } + }, + "type": "module" } diff --git a/Websites/jefes-nextjs/tsconfig.json b/Websites/jefes-nextjs/tsconfig.json index fa34ae0..878b662 100644 --- a/Websites/jefes-nextjs/tsconfig.json +++ b/Websites/jefes-nextjs/tsconfig.json @@ -1,13 +1,13 @@ { "compilerOptions": { "target": "es2022", - "lib": ["dom", "dom.iterable", "esnext"], + "lib": ["dom", "dom.iterable", "es2020"], "allowJs": true, "skipLibCheck": true, "strict": true, "noEmit": true, "esModuleInterop": true, - "module": "esnext", + "module": "es2022", "moduleResolution": "bundler", "noImplicitAny": true, "resolveJsonModule": true,