diff --git a/.env.example b/.env.example index f45ddd7..379f7c8 100644 --- a/.env.example +++ b/.env.example @@ -12,13 +12,19 @@ APP_URL=http://${HOST}:${PORT} # Session SESSION_DRIVER=cookie +# Database +DB_HOST=127.0.0.1 +DB_PORT=3306 +DB_USER=root +DB_PASSWORD=root +DB_DATABASE=app + # AtProto PUBLIC_URL=http://$HOST:$PORT/ # ATPROTO_OAUTH_CLIENT_ID= # Jetstream & Internal JETSTREAM_URL=wss://jetstream2.us-east.bsky.network/subscribe -# INTERNAL_APP_URL=http://app:3333 # Cloudflare Tunnel # CLOUDFLARE_TUNNEL_TOKEN= diff --git a/config/database.ts b/config/database.ts index a0bd5ed..bbc313f 100644 --- a/config/database.ts +++ b/config/database.ts @@ -1,3 +1,4 @@ +import env from '#start/env' import app from '@adonisjs/core/services/app' import { defineConfig } from '@adonisjs/lucid' @@ -5,53 +6,53 @@ const dbConfig = defineConfig({ /** * Default connection used for all queries. */ - connection: 'sqlite', + connection: 'mysql', connections: { /** * SQLite connection (default). */ - sqlite: { - client: 'better-sqlite3', - - connection: { - /** - * Database file location. - */ - filename: app.tmpPath('db.sqlite3'), - }, - - pool: { - afterCreate: (conn: any, done: any) => { - conn.pragma('journal_mode = WAL') - conn.pragma('synchronous = NORMAL') - conn.pragma('busy_timeout = 5000') - done(null, conn) - }, - }, - - /** - * Required by Knex for SQLite defaults. - */ - useNullAsDefault: true, - - migrations: { - /** - * Sort migration files naturally by filename. - */ - naturalSort: true, - - /** - * Paths containing migration files. - */ - paths: ['database/migrations'], - }, - - schemaGeneration: { - enabled: true, - rulesPaths: ['./database/schema_rules.js'], - }, - }, + // sqlite: { + // client: 'better-sqlite3', + // + // connection: { + // /** + // * Database file location. + // */ + // filename: app.tmpPath('db.sqlite3'), + // }, + // + // pool: { + // afterCreate: (conn: any, done: any) => { + // conn.pragma('journal_mode = WAL') + // conn.pragma('synchronous = NORMAL') + // conn.pragma('busy_timeout = 5000') + // done(null, conn) + // }, + // }, + // + // /** + // * Required by Knex for SQLite defaults. + // */ + // useNullAsDefault: true, + // + // migrations: { + // /** + // * Sort migration files naturally by filename. + // */ + // naturalSort: true, + // + // /** + // * Paths containing migration files. + // */ + // paths: ['database/migrations'], + // }, + // + // schemaGeneration: { + // enabled: true, + // rulesPaths: ['./database/schema_rules.js'], + // }, + // }, /** * PostgreSQL connection. @@ -77,21 +78,21 @@ const dbConfig = defineConfig({ * MySQL / MariaDB connection. * Install package to switch: npm install mysql2 */ - // mysql: { - // client: 'mysql2', - // connection: { - // host: env.get('DB_HOST'), - // port: env.get('DB_PORT'), - // user: env.get('DB_USER'), - // password: env.get('DB_PASSWORD'), - // database: env.get('DB_DATABASE'), - // }, - // migrations: { - // naturalSort: true, - // paths: ['database/migrations'], - // }, - // debug: app.inDev, - // }, + mysql: { + client: 'mysql2', + connection: { + host: env.get('DB_HOST'), + port: env.get('DB_PORT'), + user: env.get('DB_USER'), + password: env.get('DB_PASSWORD'), + database: env.get('DB_DATABASE'), + }, + migrations: { + naturalSort: true, + paths: ['database/migrations'], + }, + debug: app.inDev, + }, /** * Microsoft SQL Server connection. diff --git a/package.json b/package.json index e8b98f4..b82ae53 100644 --- a/package.json +++ b/package.json @@ -118,9 +118,9 @@ "@thisismissem/adonisjs-atproto-oauth": "^3.0.4", "@tuyau/core": "^1.2.2", "@vinejs/vine": "^4.4.0", - "better-sqlite3": "^13.0.3", "edge.js": "^6.5.1", "luxon": "^3.7.2", + "mysql2": "^3.24.5", "reflect-metadata": "^0.2.2", "ws": "^8.22.0" }, @@ -132,7 +132,6 @@ }, "allowScripts": { "@swc/core": true, - "better-sqlite3": true, "esbuild": true, "fsevents": true, "core-js": true diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 10656c1..d3bc965 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,7 +2,6 @@ lockfileVersion: '9.0' importers: - .: configDependencies: {} packageManagerDependencies: @@ -11,91 +10,134 @@ importers: version: 12.10.1 packages: - '@pnpm/exe.android-arm64@12.10.1': - resolution: {integrity: sha512-CVTlHPwNvadQCJD9bGSMzWIhFX8QpjtqC2c27dhdnn/9iKzEjZ3qL62o3gHpKbIuo6qn4WxTKRoaokgNdReBig==} + resolution: + { + integrity: sha512-CVTlHPwNvadQCJD9bGSMzWIhFX8QpjtqC2c27dhdnn/9iKzEjZ3qL62o3gHpKbIuo6qn4WxTKRoaokgNdReBig==, + } cpu: [arm64] os: [android] '@pnpm/exe.android-x64@12.10.1': - resolution: {integrity: sha512-NFiYLIaodY7da0XIebwcU3JoP7IK/lzF7zgKSSP+9H+QcFnQ1GDfBkuBKCYJzZ+Xu0WH54neIPLBBCaOjaaauA==} + resolution: + { + integrity: sha512-NFiYLIaodY7da0XIebwcU3JoP7IK/lzF7zgKSSP+9H+QcFnQ1GDfBkuBKCYJzZ+Xu0WH54neIPLBBCaOjaaauA==, + } cpu: [x64] os: [android] '@pnpm/exe.darwin-arm64@12.10.1': - resolution: {integrity: sha512-0O8tdQ8ijlPJudXspLMTcitMkdBEz6uUflazL5uQE0WMs85oQIp0U+5hfEktMFB64QqEhjqlvvujTwbzdr9oMg==} + resolution: + { + integrity: sha512-0O8tdQ8ijlPJudXspLMTcitMkdBEz6uUflazL5uQE0WMs85oQIp0U+5hfEktMFB64QqEhjqlvvujTwbzdr9oMg==, + } cpu: [arm64] os: [darwin] '@pnpm/exe.darwin-x64@12.10.1': - resolution: {integrity: sha512-ud+1/uZOKEo8P/AsPynOJc/LNwfI0j6WwCElibj71rU9l4nIBnsSn+wWTIPZPkZ4BBSH5+82azSnAARMyJ1lNA==} + resolution: + { + integrity: sha512-ud+1/uZOKEo8P/AsPynOJc/LNwfI0j6WwCElibj71rU9l4nIBnsSn+wWTIPZPkZ4BBSH5+82azSnAARMyJ1lNA==, + } cpu: [x64] os: [darwin] '@pnpm/exe.freebsd-x64@12.10.1': - resolution: {integrity: sha512-mj9PE5rf8uAfQQ2K66HSATMSut+lNiB4eSqFd5+azFVCMnxNSy/32xpZQJT21PhnN3Y4qbK+iKHe5nWAxSuRhw==} + resolution: + { + integrity: sha512-mj9PE5rf8uAfQQ2K66HSATMSut+lNiB4eSqFd5+azFVCMnxNSy/32xpZQJT21PhnN3Y4qbK+iKHe5nWAxSuRhw==, + } cpu: [x64] os: [freebsd] '@pnpm/exe.linux-arm64-musl@12.10.1': - resolution: {integrity: sha512-xba+00wZJ8Um6rBJJjWl88uJj0tydB8dtomvjlCLvi0uL32vpa9CRP8Vv26FIXvbiZ1bo2RCzYt/eChxJVV52w==} + resolution: + { + integrity: sha512-xba+00wZJ8Um6rBJJjWl88uJj0tydB8dtomvjlCLvi0uL32vpa9CRP8Vv26FIXvbiZ1bo2RCzYt/eChxJVV52w==, + } cpu: [arm64] os: [linux] libc: [musl] '@pnpm/exe.linux-arm64@12.10.1': - resolution: {integrity: sha512-oBdMp69ScC9UnniG4qZAQVr2fBDSXjm4yk/72vkEVyrlwS23yMxcRQl7Qdo3sgXPAygY6TWnPRKm4rXzjoyW7w==} + resolution: + { + integrity: sha512-oBdMp69ScC9UnniG4qZAQVr2fBDSXjm4yk/72vkEVyrlwS23yMxcRQl7Qdo3sgXPAygY6TWnPRKm4rXzjoyW7w==, + } cpu: [arm64] os: [linux] libc: [glibc] '@pnpm/exe.linux-ppc64@12.10.1': - resolution: {integrity: sha512-Yyb3wu09h3c7mLme270uHFiVaAIUHC411Ru9LIU2BKUIstrGlXa9OqqVWoXaRgYRdFdOFknkwG7GNn6ygwLbnw==} + resolution: + { + integrity: sha512-Yyb3wu09h3c7mLme270uHFiVaAIUHC411Ru9LIU2BKUIstrGlXa9OqqVWoXaRgYRdFdOFknkwG7GNn6ygwLbnw==, + } cpu: [ppc64] os: [linux] libc: [glibc] '@pnpm/exe.linux-riscv64@12.10.1': - resolution: {integrity: sha512-PdkeUFFkybknnGkWP0H22eMpIiS4OZXL5BcQzF4lh+vmrW3IaC2HOkbANKgot/PKO0Kl77pzA/6PKFxgbgfXIQ==} + resolution: + { + integrity: sha512-PdkeUFFkybknnGkWP0H22eMpIiS4OZXL5BcQzF4lh+vmrW3IaC2HOkbANKgot/PKO0Kl77pzA/6PKFxgbgfXIQ==, + } cpu: [riscv64] os: [linux] libc: [glibc] '@pnpm/exe.linux-s390x@12.10.1': - resolution: {integrity: sha512-1okKuHKJwJPAbofDxfhZWAUxEWtee4ZSf7Pah8kcvocaJkf2WxFJ5KVTiNIvDml5GLidDQsgf7Pcf/WHbCak7Q==} + resolution: + { + integrity: sha512-1okKuHKJwJPAbofDxfhZWAUxEWtee4ZSf7Pah8kcvocaJkf2WxFJ5KVTiNIvDml5GLidDQsgf7Pcf/WHbCak7Q==, + } cpu: [s390x] os: [linux] libc: [glibc] '@pnpm/exe.linux-x64-musl@12.10.1': - resolution: {integrity: sha512-e6IqzVNkPa7srFKJKnY23uWJ+qz0LaRWiTUo/sHfFXRRMRzB5uNOr6qWWip/jqhdGwU91n9J7LrEYZ6e0tRczw==} + resolution: + { + integrity: sha512-e6IqzVNkPa7srFKJKnY23uWJ+qz0LaRWiTUo/sHfFXRRMRzB5uNOr6qWWip/jqhdGwU91n9J7LrEYZ6e0tRczw==, + } cpu: [x64] os: [linux] libc: [musl] '@pnpm/exe.linux-x64@12.10.1': - resolution: {integrity: sha512-ZByV0DRgWzGaDSjT5ddRBASdwz+r/qPMYh7o6RGmPQjtRGNFbSl94xY2DcAM8mqCOZJUUDtAXQ+wpBXcdpKlkg==} + resolution: + { + integrity: sha512-ZByV0DRgWzGaDSjT5ddRBASdwz+r/qPMYh7o6RGmPQjtRGNFbSl94xY2DcAM8mqCOZJUUDtAXQ+wpBXcdpKlkg==, + } cpu: [x64] os: [linux] libc: [glibc] '@pnpm/exe.win32-arm64@12.10.1': - resolution: {integrity: sha512-I7QZHcjioG7orFeCRUFUHByJ1G0zFPnAlaGGyrUvb6MGkv5oeNwNPl7t+Gp+7zHfnMcgLGJ1a+Wfim0IDw3lOw==} + resolution: + { + integrity: sha512-I7QZHcjioG7orFeCRUFUHByJ1G0zFPnAlaGGyrUvb6MGkv5oeNwNPl7t+Gp+7zHfnMcgLGJ1a+Wfim0IDw3lOw==, + } cpu: [arm64] os: [win32] '@pnpm/exe.win32-x64@12.10.1': - resolution: {integrity: sha512-4WJFdp58EKlCj0zLobrXU0vpszSZIr4X/3y/uNbAQqGW0zE+VdruZB0gFc3L2kzsUzVwTYbaCn+XEhnCYSAlTg==} + resolution: + { + integrity: sha512-4WJFdp58EKlCj0zLobrXU0vpszSZIr4X/3y/uNbAQqGW0zE+VdruZB0gFc3L2kzsUzVwTYbaCn+XEhnCYSAlTg==, + } cpu: [x64] os: [win32] pnpm@12.10.1: - resolution: {integrity: sha512-ukCjfrGjcNYP6oxM8dNkwTvMzvUY6YrSvO6VT1OdONo3RY5YJho/pV4GUjRQ6g//+fSXsTW+QfLBXBZCusrObA==} - engines: {node: '>=18.*'} + resolution: + { + integrity: sha512-ukCjfrGjcNYP6oxM8dNkwTvMzvUY6YrSvO6VT1OdONo3RY5YJho/pV4GUjRQ6g//+fSXsTW+QfLBXBZCusrObA==, + } + engines: { node: '>=18.*' } hasBin: true snapshots: - '@pnpm/exe.android-arm64@12.10.1': optional: true @@ -171,10 +213,10 @@ importers: dependencies: '@adonisjs-atproto/oauth': specifier: github:adonisjs-atproto/oauth - version: https://codeload.github.com/adonisjs-atproto/oauth/tar.gz/ee9bb7e9ddf64b824ae485dc2b6e958fe86a9609(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/auth@10.1.0(d8014ed3b62f6a915f4597c17a304999))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@adonisjs/lucid@22.4.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@vinejs/vine@4.4.0)(better-sqlite3@13.0.3)(luxon@3.7.2)(supports-color@10.2.2))(@atproto-labs/simple-store@0.5.1)(@atproto/jwk-jose@0.2.4)(@atproto/lex@0.3.14)(@atproto/oauth-client-node@0.5.9)(@vinejs/vine@4.4.0)(luxon@3.7.2) + version: https://codeload.github.com/adonisjs-atproto/oauth/tar.gz/ee9bb7e9ddf64b824ae485dc2b6e958fe86a9609(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/auth@10.1.0(4cb4abb9dcea69f18c0b76bc9adefbe6))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@adonisjs/lucid@22.4.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@vinejs/vine@4.4.0)(better-sqlite3@13.0.3)(luxon@3.7.2)(mysql2@3.24.5(@types/node@26.6.4))(supports-color@10.2.2))(@atproto-labs/simple-store@0.5.1)(@atproto/jwk-jose@0.2.4)(@atproto/lex@0.3.14)(@atproto/oauth-client-node@0.5.9)(@vinejs/vine@4.4.0)(luxon@3.7.2) '@adonisjs/auth': specifier: ^10.1.0 - version: 10.1.0(d8014ed3b62f6a915f4597c17a304999) + version: 10.1.0(4cb4abb9dcea69f18c0b76bc9adefbe6) '@adonisjs/core': specifier: ^7.5.2 version: 7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1) @@ -186,16 +228,16 @@ importers: version: 2.3.1(@adonisjs/fold@11.1.0) '@adonisjs/inertia': specifier: ^5.0.1 - version: 5.0.1(61b7b2cf1a51d0ab8c060d08879fd00d) + version: 5.0.1(c5c91d27e0b6080ac07addee148bca04) '@adonisjs/lucid': specifier: ^22.4.2 - version: 22.4.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@vinejs/vine@4.4.0)(better-sqlite3@13.0.3)(luxon@3.7.2)(supports-color@10.2.2) + version: 22.4.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@vinejs/vine@4.4.0)(better-sqlite3@13.0.3)(luxon@3.7.2)(mysql2@3.24.5(@types/node@26.6.4))(supports-color@10.2.2) '@adonisjs/session': specifier: ^8.1.0 - version: 8.1.0(96d203a7ad3c3756d212d4f86ecd8213) + version: 8.1.0(e60d00c305ba30d9d79233483ddcfbfc) '@adonisjs/shield': specifier: ^9.0.0 - version: 9.0.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@adonisjs/session@8.1.0(96d203a7ad3c3756d212d4f86ecd8213))(@japa/api-client@3.2.1(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(supports-color@10.2.2))(@japa/plugin-adonisjs@5.2.0(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@japa/api-client@3.2.1(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(supports-color@10.2.2))(@japa/browser-client@2.3.0(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(playwright@1.64.0))(@japa/runner@5.3.0)(playwright@1.64.0))(edge.js@6.5.1) + version: 9.0.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@adonisjs/session@8.1.0(e60d00c305ba30d9d79233483ddcfbfc))(@japa/api-client@3.2.1(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(supports-color@10.2.2))(@japa/plugin-adonisjs@5.2.0(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@japa/api-client@3.2.1(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(supports-color@10.2.2))(@japa/browser-client@2.3.0(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(playwright@1.64.0))(@japa/runner@5.3.0)(playwright@1.64.0))(edge.js@6.5.1) '@adonisjs/static': specifier: ^2.0.1 version: 2.0.1(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(supports-color@10.2.2) @@ -204,7 +246,7 @@ importers: version: 3.0.2(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1)) '@adonisjs/vite': specifier: ^6.0.2 - version: 6.0.3(e19430091553ce594b240ccb5ac9ceb2) + version: 6.0.3(c215489c9c0a963f11086967ce86c65c) '@atproto-labs/simple-store': specifier: ^0.5.1 version: 0.5.1 @@ -222,22 +264,22 @@ importers: version: 0.7.6 '@thisismissem/adonisjs-atproto-oauth': specifier: ^3.0.4 - version: 3.0.4(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/auth@10.1.0(d8014ed3b62f6a915f4597c17a304999))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@adonisjs/lucid@22.4.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@vinejs/vine@4.4.0)(better-sqlite3@13.0.3)(luxon@3.7.2)(supports-color@10.2.2))(@atproto-labs/simple-store@0.5.1)(@atproto/jwk-jose@0.2.4)(@atproto/lex@0.3.14)(@atproto/oauth-client-node@0.5.9)(@vinejs/vine@4.4.0)(luxon@3.7.2) + version: 3.0.4(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/auth@10.1.0(4cb4abb9dcea69f18c0b76bc9adefbe6))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@adonisjs/lucid@22.4.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@vinejs/vine@4.4.0)(better-sqlite3@13.0.3)(luxon@3.7.2)(mysql2@3.24.5(@types/node@26.6.4))(supports-color@10.2.2))(@atproto-labs/simple-store@0.5.1)(@atproto/jwk-jose@0.2.4)(@atproto/lex@0.3.14)(@atproto/oauth-client-node@0.5.9)(@vinejs/vine@4.4.0)(luxon@3.7.2) '@tuyau/core': specifier: ^1.2.2 version: 1.2.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1)) '@vinejs/vine': specifier: ^4.4.0 version: 4.4.0 - better-sqlite3: - specifier: ^13.0.3 - version: 13.0.3 edge.js: specifier: ^6.5.1 version: 6.5.1 luxon: specifier: ^3.7.2 version: 3.7.2 + mysql2: + specifier: ^3.24.5 + version: 3.24.5(@types/node@26.6.4) reflect-metadata: specifier: ^0.2.2 version: 0.2.2 @@ -304,7 +346,7 @@ importers: version: 1.5.0 '@tailwindcss/vite': specifier: ^4.3.3 - version: 4.3.3(vite@8.3.3(@types/node@26.6.4)(jiti@2.7.0)) + version: 4.3.3(vite@8.3.3(@types/node@26.6.4)(jiti@2.7.0)(yaml@2.9.1)) '@types/luxon': specifier: ^3.7.5 version: 3.7.6 @@ -322,7 +364,7 @@ importers: version: 8.18.2 '@vitejs/plugin-react': specifier: ^6.1.1 - version: 6.1.2(vite@8.3.3(@types/node@26.6.4)(jiti@2.7.0)) + version: 6.1.2(vite@8.3.3(@types/node@26.6.4)(jiti@2.7.0)(yaml@2.9.1)) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -388,7 +430,7 @@ importers: version: 6.0.3 vite: specifier: ^8.3.0 - version: 8.3.3(@types/node@26.6.4)(jiti@2.7.0) + version: 8.3.3(@types/node@26.6.4)(jiti@2.7.0)(yaml@2.9.1) youch: specifier: ^4.1.1 version: 4.1.1 @@ -2827,6 +2869,10 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} + aws-ssl-profiles@1.1.2: + resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==} + engines: {node: '>= 6.0.0'} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -3609,6 +3655,9 @@ packages: fuzzysort@3.1.0: resolution: {integrity: sha512-sR9BNCjBg6LNgwvxlBd0sBABvQitkLzoVY9MYYROQVX/FvfJ4Mai9LsGhDgd8qYdds0bY77VzYd5iuB+v5rwQQ==} + generate-function@2.3.1: + resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} + generator-function@2.0.1: resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} engines: {node: '>= 0.4'} @@ -3945,6 +3994,9 @@ packages: is-promise@4.0.0: resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + is-property@1.0.2: + resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} + is-regex@1.2.1: resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} @@ -4321,6 +4373,9 @@ packages: resolution: {integrity: sha512-iLs7dGSyjZiUgvrUvuD3FndAxVJk+TywBkkkwUSm9HdYoskJalWg5qVsEiXeufPvRVPbCUmNQewg798rx+sPXg==} engines: {node: '>=20'} + long@5.3.2: + resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} + loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -4335,6 +4390,10 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lru.min@1.1.5: + resolution: {integrity: sha512-5J9ysMYUpYIg9RF2vJpy9SinEmSviFSe0GyPpCQ4L5QSkLAgeLXlTAOu2ZwWUU5m+0SBl6gUU1R1ZQB3aKypfA==} + engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'} + lucide-react@1.53.0: resolution: {integrity: sha512-OxJ7elNku+iqVzOolk5caxq2LM8Mck6lhA6uZx3g2PlZ53+FvBnT6PlJxGCukCa6oF5wQwgSatn9cH1b4olWmQ==} peerDependencies: @@ -4434,6 +4493,16 @@ packages: multiformats@13.4.2: resolution: {integrity: sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==} + mysql2@3.24.5: + resolution: {integrity: sha512-X6Ujsr2QSkkLpkQGjxzpKRAPn9nu4axpR63ntBzquFVEvPOArgbUQ1sJjFKI7hnaYtiVZxa17Z7q18KSubW0IQ==} + engines: {node: '>= 8.0'} + peerDependencies: + '@types/node': '>= 8' + + named-placeholders@1.1.6: + resolution: {integrity: sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==} + engines: {node: '>=8.0.0'} + nanoid@3.3.20: resolution: {integrity: sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -5110,6 +5179,10 @@ packages: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} + sql-escaper@1.5.2: + resolution: {integrity: sha512-6CKD38c31SENivxOADeMNLdukOnUxUcflKtzVWzace7Riv1v7cAEym5Cx9Q7gYZ3ezIJI7ZpqecQq8cqNeSSFg==} + engines: {bun: '>=1.0.0', deno: '>=2.0.0', node: '>=12.0.0'} + statuses@2.0.2: resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} @@ -5564,6 +5637,11 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yaml@2.9.1: + resolution: {integrity: sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==} + engines: {node: '>= 14.6'} + hasBin: true + yargs-parser@22.0.0: resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} engines: {node: ^20.19.0 || ^22.12.0 || >=23} @@ -5609,11 +5687,11 @@ packages: snapshots: - '@adonisjs-atproto/oauth@https://codeload.github.com/adonisjs-atproto/oauth/tar.gz/ee9bb7e9ddf64b824ae485dc2b6e958fe86a9609(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/auth@10.1.0(d8014ed3b62f6a915f4597c17a304999))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@adonisjs/lucid@22.4.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@vinejs/vine@4.4.0)(better-sqlite3@13.0.3)(luxon@3.7.2)(supports-color@10.2.2))(@atproto-labs/simple-store@0.5.1)(@atproto/jwk-jose@0.2.4)(@atproto/lex@0.3.14)(@atproto/oauth-client-node@0.5.9)(@vinejs/vine@4.4.0)(luxon@3.7.2)': + '@adonisjs-atproto/oauth@https://codeload.github.com/adonisjs-atproto/oauth/tar.gz/ee9bb7e9ddf64b824ae485dc2b6e958fe86a9609(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/auth@10.1.0(4cb4abb9dcea69f18c0b76bc9adefbe6))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@adonisjs/lucid@22.4.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@vinejs/vine@4.4.0)(better-sqlite3@13.0.3)(luxon@3.7.2)(mysql2@3.24.5(@types/node@26.6.4))(supports-color@10.2.2))(@atproto-labs/simple-store@0.5.1)(@atproto/jwk-jose@0.2.4)(@atproto/lex@0.3.14)(@atproto/oauth-client-node@0.5.9)(@vinejs/vine@4.4.0)(luxon@3.7.2)': dependencies: - '@adonisjs/auth': 10.1.0(d8014ed3b62f6a915f4597c17a304999) + '@adonisjs/auth': 10.1.0(4cb4abb9dcea69f18c0b76bc9adefbe6) '@adonisjs/core': 7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1) - '@adonisjs/lucid': 22.4.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@vinejs/vine@4.4.0)(better-sqlite3@13.0.3)(luxon@3.7.2)(supports-color@10.2.2) + '@adonisjs/lucid': 22.4.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@vinejs/vine@4.4.0)(better-sqlite3@13.0.3)(luxon@3.7.2)(mysql2@3.24.5(@types/node@26.6.4))(supports-color@10.2.2) '@atproto-labs/simple-store': 0.5.1 '@atproto/jwk-jose': 0.2.4 '@atproto/lex': 0.3.14 @@ -5677,15 +5755,15 @@ snapshots: transitivePeerDependencies: - babel-plugin-macros - '@adonisjs/auth@10.1.0(d8014ed3b62f6a915f4597c17a304999)': + '@adonisjs/auth@10.1.0(4cb4abb9dcea69f18c0b76bc9adefbe6)': dependencies: '@adonisjs/core': 7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1) '@adonisjs/presets': 3.0.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1)) basic-auth: 2.0.1 optionalDependencies: '@adonisjs/assembler': 8.5.2(typescript@6.0.3) - '@adonisjs/lucid': 22.4.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@vinejs/vine@4.4.0)(better-sqlite3@13.0.3)(luxon@3.7.2)(supports-color@10.2.2) - '@adonisjs/session': 8.1.0(96d203a7ad3c3756d212d4f86ecd8213) + '@adonisjs/lucid': 22.4.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@vinejs/vine@4.4.0)(better-sqlite3@13.0.3)(luxon@3.7.2)(mysql2@3.24.5(@types/node@26.6.4))(supports-color@10.2.2) + '@adonisjs/session': 8.1.0(e60d00c305ba30d9d79233483ddcfbfc) '@japa/api-client': 3.2.1(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(supports-color@10.2.2) '@japa/browser-client': 2.3.0(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(playwright@1.64.0) '@japa/plugin-adonisjs': 5.2.0(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@japa/api-client@3.2.1(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(supports-color@10.2.2))(@japa/browser-client@2.3.0(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(playwright@1.64.0))(@japa/runner@5.3.0)(playwright@1.64.0) @@ -5843,11 +5921,11 @@ snapshots: '@poppinss/exception': 1.2.3 '@poppinss/types': 1.2.1 - '@adonisjs/inertia@5.0.1(61b7b2cf1a51d0ab8c060d08879fd00d)': + '@adonisjs/inertia@5.0.1(c5c91d27e0b6080ac07addee148bca04)': dependencies: '@adonisjs/core': 7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1) - '@adonisjs/session': 8.1.0(96d203a7ad3c3756d212d4f86ecd8213) - '@adonisjs/vite': 6.0.3(e19430091553ce594b240ccb5ac9ceb2) + '@adonisjs/session': 8.1.0(e60d00c305ba30d9d79233483ddcfbfc) + '@adonisjs/vite': 6.0.3(c215489c9c0a963f11086967ce86c65c) '@poppinss/macroable': 1.1.2 '@poppinss/utils': 7.1.1 edge-error: 4.0.2 @@ -5870,7 +5948,7 @@ snapshots: optionalDependencies: pino-pretty: 13.2.0 - '@adonisjs/lucid@22.4.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@vinejs/vine@4.4.0)(better-sqlite3@13.0.3)(luxon@3.7.2)(supports-color@10.2.2)': + '@adonisjs/lucid@22.4.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@vinejs/vine@4.4.0)(better-sqlite3@13.0.3)(luxon@3.7.2)(mysql2@3.24.5(@types/node@26.6.4))(supports-color@10.2.2)': dependencies: '@adonisjs/core': 7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1) '@adonisjs/presets': 3.0.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1)) @@ -5883,8 +5961,8 @@ snapshots: fast-deep-equal: 3.1.3 igniculus: 1.5.0 kleur: 4.1.5 - knex: 3.3.0(better-sqlite3@13.0.3)(supports-color@10.2.2) - knex-dynamic-connection: 5.1.1(better-sqlite3@13.0.3)(supports-color@10.2.2) + knex: 3.3.0(better-sqlite3@13.0.3)(mysql2@3.24.5(@types/node@26.6.4))(supports-color@10.2.2) + knex-dynamic-connection: 5.1.1(better-sqlite3@13.0.3)(mysql2@3.24.5(@types/node@26.6.4))(supports-color@10.2.2) pretty-hrtime: 1.0.3 slash: 5.1.0 tarn: 3.1.2 @@ -5921,23 +5999,23 @@ snapshots: '@poppinss/colors': 4.1.6 string-width: 8.3.0 - '@adonisjs/session@8.1.0(96d203a7ad3c3756d212d4f86ecd8213)': + '@adonisjs/session@8.1.0(e60d00c305ba30d9d79233483ddcfbfc)': dependencies: '@adonisjs/core': 7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1) '@poppinss/macroable': 1.1.2 '@poppinss/utils': 7.1.1 optionalDependencies: '@adonisjs/assembler': 8.5.2(typescript@6.0.3) - '@adonisjs/lucid': 22.4.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@vinejs/vine@4.4.0)(better-sqlite3@13.0.3)(luxon@3.7.2)(supports-color@10.2.2) + '@adonisjs/lucid': 22.4.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@vinejs/vine@4.4.0)(better-sqlite3@13.0.3)(luxon@3.7.2)(mysql2@3.24.5(@types/node@26.6.4))(supports-color@10.2.2) '@japa/api-client': 3.2.1(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(supports-color@10.2.2) '@japa/browser-client': 2.3.0(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(playwright@1.64.0) '@japa/plugin-adonisjs': 5.2.0(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@japa/api-client@3.2.1(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(supports-color@10.2.2))(@japa/browser-client@2.3.0(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(playwright@1.64.0))(@japa/runner@5.3.0)(playwright@1.64.0) edge.js: 6.5.1 - '@adonisjs/shield@9.0.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@adonisjs/session@8.1.0(96d203a7ad3c3756d212d4f86ecd8213))(@japa/api-client@3.2.1(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(supports-color@10.2.2))(@japa/plugin-adonisjs@5.2.0(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@japa/api-client@3.2.1(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(supports-color@10.2.2))(@japa/browser-client@2.3.0(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(playwright@1.64.0))(@japa/runner@5.3.0)(playwright@1.64.0))(edge.js@6.5.1)': + '@adonisjs/shield@9.0.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@adonisjs/session@8.1.0(e60d00c305ba30d9d79233483ddcfbfc))(@japa/api-client@3.2.1(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(supports-color@10.2.2))(@japa/plugin-adonisjs@5.2.0(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@japa/api-client@3.2.1(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(supports-color@10.2.2))(@japa/browser-client@2.3.0(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(playwright@1.64.0))(@japa/runner@5.3.0)(playwright@1.64.0))(edge.js@6.5.1)': dependencies: '@adonisjs/core': 7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1) - '@adonisjs/session': 8.1.0(96d203a7ad3c3756d212d4f86ecd8213) + '@adonisjs/session': 8.1.0(e60d00c305ba30d9d79233483ddcfbfc) csrf: 3.1.0 optionalDependencies: '@adonisjs/assembler': 8.5.2(typescript@6.0.3) @@ -5965,16 +6043,16 @@ snapshots: '@adonisjs/tsconfig@2.0.0': {} - '@adonisjs/vite@6.0.3(e19430091553ce594b240ccb5ac9ceb2)': + '@adonisjs/vite@6.0.3(c215489c9c0a963f11086967ce86c65c)': dependencies: '@adonisjs/core': 7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1) '@poppinss/utils': 7.1.1 edge-error: 4.0.2 picomatch: 4.0.7 - vite: 8.3.3(@types/node@26.6.4)(jiti@2.7.0) + vite: 8.3.3(@types/node@26.6.4)(jiti@2.7.0)(yaml@2.9.1) optionalDependencies: '@adonisjs/assembler': 8.5.2(typescript@6.0.3) - '@adonisjs/shield': 9.0.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@adonisjs/session@8.1.0(96d203a7ad3c3756d212d4f86ecd8213))(@japa/api-client@3.2.1(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(supports-color@10.2.2))(@japa/plugin-adonisjs@5.2.0(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@japa/api-client@3.2.1(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(supports-color@10.2.2))(@japa/browser-client@2.3.0(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(playwright@1.64.0))(@japa/runner@5.3.0)(playwright@1.64.0))(edge.js@6.5.1) + '@adonisjs/shield': 9.0.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@adonisjs/session@8.1.0(e60d00c305ba30d9d79233483ddcfbfc))(@japa/api-client@3.2.1(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(supports-color@10.2.2))(@japa/plugin-adonisjs@5.2.0(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@japa/api-client@3.2.1(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(supports-color@10.2.2))(@japa/browser-client@2.3.0(@japa/assert@4.2.0(@japa/runner@5.3.0))(@japa/runner@5.3.0)(playwright@1.64.0))(@japa/runner@5.3.0)(playwright@1.64.0))(edge.js@6.5.1) edge.js: 6.5.1 '@antfu/install-pkg@2.1.0': @@ -7871,18 +7949,18 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.3.3 '@tailwindcss/oxide-win32-x64-msvc': 4.3.3 - '@tailwindcss/vite@4.3.3(vite@8.3.3(@types/node@26.6.4)(jiti@2.7.0))': + '@tailwindcss/vite@4.3.3(vite@8.3.3(@types/node@26.6.4)(jiti@2.7.0)(yaml@2.9.1))': dependencies: '@tailwindcss/node': 4.3.3 '@tailwindcss/oxide': 4.3.3 tailwindcss: 4.3.3 - vite: 8.3.3(@types/node@26.6.4)(jiti@2.7.0) + vite: 8.3.3(@types/node@26.6.4)(jiti@2.7.0)(yaml@2.9.1) - '@thisismissem/adonisjs-atproto-oauth@3.0.4(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/auth@10.1.0(d8014ed3b62f6a915f4597c17a304999))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@adonisjs/lucid@22.4.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@vinejs/vine@4.4.0)(better-sqlite3@13.0.3)(luxon@3.7.2)(supports-color@10.2.2))(@atproto-labs/simple-store@0.5.1)(@atproto/jwk-jose@0.2.4)(@atproto/lex@0.3.14)(@atproto/oauth-client-node@0.5.9)(@vinejs/vine@4.4.0)(luxon@3.7.2)': + '@thisismissem/adonisjs-atproto-oauth@3.0.4(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/auth@10.1.0(4cb4abb9dcea69f18c0b76bc9adefbe6))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@adonisjs/lucid@22.4.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@vinejs/vine@4.4.0)(better-sqlite3@13.0.3)(luxon@3.7.2)(mysql2@3.24.5(@types/node@26.6.4))(supports-color@10.2.2))(@atproto-labs/simple-store@0.5.1)(@atproto/jwk-jose@0.2.4)(@atproto/lex@0.3.14)(@atproto/oauth-client-node@0.5.9)(@vinejs/vine@4.4.0)(luxon@3.7.2)': dependencies: - '@adonisjs/auth': 10.1.0(d8014ed3b62f6a915f4597c17a304999) + '@adonisjs/auth': 10.1.0(4cb4abb9dcea69f18c0b76bc9adefbe6) '@adonisjs/core': 7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1) - '@adonisjs/lucid': 22.4.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@vinejs/vine@4.4.0)(better-sqlite3@13.0.3)(luxon@3.7.2)(supports-color@10.2.2) + '@adonisjs/lucid': 22.4.2(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@adonisjs/core@7.6.0(@adonisjs/assembler@8.5.2(typescript@6.0.3))(@vinejs/vine@4.4.0)(edge.js@6.5.1)(pino-pretty@13.2.0)(supports-color@10.2.2)(youch@4.1.1))(@vinejs/vine@4.4.0)(better-sqlite3@13.0.3)(luxon@3.7.2)(mysql2@3.24.5(@types/node@26.6.4))(supports-color@10.2.2) '@atproto-labs/simple-store': 0.5.1 '@atproto/jwk-jose': 0.2.4 '@atproto/lex': 0.3.14 @@ -8087,10 +8165,10 @@ snapshots: normalize-url: 8.1.1 validator: 13.15.35 - '@vitejs/plugin-react@6.1.2(vite@8.3.3(@types/node@26.6.4)(jiti@2.7.0))': + '@vitejs/plugin-react@6.1.2(vite@8.3.3(@types/node@26.6.4)(jiti@2.7.0)(yaml@2.9.1))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.3.3(@types/node@26.6.4)(jiti@2.7.0) + vite: 8.3.3(@types/node@26.6.4)(jiti@2.7.0)(yaml@2.9.1) abstract-logging@2.0.1: {} @@ -8234,6 +8312,8 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 + aws-ssl-profiles@1.1.2: {} + balanced-match@1.0.2: {} balanced-match@4.0.4: {} @@ -8247,6 +8327,7 @@ snapshots: better-sqlite3@13.0.3: dependencies: node-addon-api: 8.9.2 + optional: true bignumber.js@9.3.1: {} @@ -9136,6 +9217,10 @@ snapshots: fuzzysort@3.1.0: {} + generate-function@2.3.1: + dependencies: + is-property: 1.0.2 + generator-function@2.0.1: {} gensync@1.0.0-beta.2: {} @@ -9417,6 +9502,8 @@ snapshots: is-promise@4.0.0: {} + is-property@1.0.2: {} + is-regex@1.2.1: dependencies: call-bound: 1.0.4 @@ -9549,10 +9636,10 @@ snapshots: kleur@4.1.5: {} - knex-dynamic-connection@5.1.1(better-sqlite3@13.0.3)(supports-color@10.2.2): + knex-dynamic-connection@5.1.1(better-sqlite3@13.0.3)(mysql2@3.24.5(@types/node@26.6.4))(supports-color@10.2.2): dependencies: debug: 4.4.3(supports-color@10.2.2) - knex: 3.3.0(better-sqlite3@13.0.3)(supports-color@10.2.2) + knex: 3.3.0(better-sqlite3@13.0.3)(mysql2@3.24.5(@types/node@26.6.4))(supports-color@10.2.2) transitivePeerDependencies: - better-sqlite3 - mariadb @@ -9565,7 +9652,7 @@ snapshots: - supports-color - tedious - knex@3.3.0(better-sqlite3@13.0.3)(supports-color@10.2.2): + knex@3.3.0(better-sqlite3@13.0.3)(mysql2@3.24.5(@types/node@26.6.4))(supports-color@10.2.2): dependencies: colorette: 2.0.19 commander: 10.0.1 @@ -9583,6 +9670,7 @@ snapshots: tildify: 2.0.0 optionalDependencies: better-sqlite3: 13.0.3 + mysql2: 3.24.5(@types/node@26.6.4) transitivePeerDependencies: - supports-color @@ -9719,6 +9807,8 @@ snapshots: strip-ansi: 7.2.0 wrap-ansi: 10.0.2 + long@5.3.2: {} + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 @@ -9731,6 +9821,8 @@ snapshots: dependencies: yallist: 3.1.1 + lru.min@1.1.5: {} + lucide-react@1.53.0(@types/react@19.3.0)(react@19.3.0): dependencies: react: 19.3.0 @@ -9800,6 +9892,21 @@ snapshots: multiformats@13.4.2: {} + mysql2@3.24.5(@types/node@26.6.4): + dependencies: + '@types/node': 26.6.4 + aws-ssl-profiles: 1.1.2 + generate-function: 2.3.1 + iconv-lite: 0.7.3 + long: 5.3.2 + lru.min: 1.1.5 + named-placeholders: 1.1.6 + sql-escaper: 1.5.2 + + named-placeholders@1.1.6: + dependencies: + lru.min: 1.1.5 + nanoid@3.3.20: {} natural-compare@1.4.0: {} @@ -9813,7 +9920,8 @@ snapshots: react: 19.3.0 react-dom: 19.3.0(react@19.3.0) - node-addon-api@8.9.2: {} + node-addon-api@8.9.2: + optional: true node-exports-info@1.6.2: dependencies: @@ -10608,6 +10716,8 @@ snapshots: split2@4.2.0: {} + sql-escaper@1.5.2: {} + statuses@2.0.2: {} stdin-discarder@0.2.2: {} @@ -10953,7 +11063,7 @@ snapshots: vary@1.1.2: {} - vite@8.3.3(@types/node@26.6.4)(jiti@2.7.0): + vite@8.3.3(@types/node@26.6.4)(jiti@2.7.0)(yaml@2.9.1): dependencies: lightningcss: 1.33.0 picomatch: 4.0.7 @@ -10964,6 +11074,7 @@ snapshots: '@types/node': 26.6.4 fsevents: 2.3.3 jiti: 2.7.0 + yaml: 2.9.1 which-boxed-primitive@1.1.1: dependencies: @@ -11040,6 +11151,9 @@ snapshots: yallist@3.1.1: {} + yaml@2.9.1: + optional: true + yargs-parser@22.0.0: {} yargs@18.2.0: diff --git a/start/env.ts b/start/env.ts index 67eb246..981ff9f 100644 --- a/start/env.ts +++ b/start/env.ts @@ -25,6 +25,17 @@ export default await Env.create(new URL('../', import.meta.url), { // Session SESSION_DRIVER: Env.schema.enum(['cookie', 'memory', 'database'] as const), + /* + |---------------------------------------------------------- + | Variables for configuring the database + |---------------------------------------------------------- + */ + DB_HOST: Env.schema.string(), + DB_PORT: Env.schema.number(), + DB_USER: Env.schema.string(), + DB_PASSWORD: Env.schema.string(), + DB_DATABASE: Env.schema.string(), + /* |---------------------------------------------------------- | Variables for configuring the AT Protocol OAuth @@ -41,13 +52,6 @@ export default await Env.create(new URL('../', import.meta.url), { */ JETSTREAM_URL: Env.schema.string(), - /* - |---------------------------------------------------------- - | Internal App URL for worker to notify web container - |---------------------------------------------------------- - */ - INTERNAL_APP_URL: Env.schema.string.optional({ format: 'url', tld: false }), - /* |---------------------------------------------------------- | Optional user handle/DID for syncing records on migration