MVP, working sentry scraper
This commit is contained in:
19
.dockerignore
Normal file
19
.dockerignore
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# Adonis default .gitignore ignores
|
||||||
|
node_modules
|
||||||
|
build
|
||||||
|
coverage
|
||||||
|
.vscode
|
||||||
|
.DS_STORE
|
||||||
|
.env
|
||||||
|
tmp
|
||||||
|
|
||||||
|
# Additional .gitignore ignores (any custom file you wish)
|
||||||
|
.idea
|
||||||
|
|
||||||
|
# Additional good to have ignores for dockerignore
|
||||||
|
Dockerfile*
|
||||||
|
docker-compose*
|
||||||
|
.dockerignore
|
||||||
|
*.md
|
||||||
|
.git
|
||||||
|
.gitignore
|
@ -5,3 +5,7 @@ LOG_LEVEL=info
|
|||||||
APP_KEY=
|
APP_KEY=
|
||||||
NODE_ENV=development
|
NODE_ENV=development
|
||||||
SESSION_DRIVER=cookie
|
SESSION_DRIVER=cookie
|
||||||
|
PG_HOST=localhost
|
||||||
|
PG_PASSWORD=password
|
||||||
|
SENTRY_TOKEN=
|
||||||
|
SENTRY_ORG=
|
35
Dockerfile
Normal file
35
Dockerfile
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
FROM node:20.12.2-alpine3.18 AS base
|
||||||
|
|
||||||
|
|
||||||
|
# All deps stage
|
||||||
|
FROM base AS deps
|
||||||
|
WORKDIR /app
|
||||||
|
ADD package.json package-lock.json ./
|
||||||
|
RUN npm ci
|
||||||
|
|
||||||
|
FROM base AS dev-deps
|
||||||
|
WORKDIR /app
|
||||||
|
ADD package.json package-lock.json ./
|
||||||
|
RUN npm ci
|
||||||
|
|
||||||
|
# Production only deps stage
|
||||||
|
FROM base AS production-deps
|
||||||
|
WORKDIR /app
|
||||||
|
ADD package.json package-lock.json ./
|
||||||
|
RUN npm ci --omit=dev
|
||||||
|
|
||||||
|
# Build stage
|
||||||
|
FROM base AS build
|
||||||
|
WORKDIR /app
|
||||||
|
COPY --from=deps /app/node_modules /app/node_modules
|
||||||
|
ADD . .
|
||||||
|
RUN node ace build --ignore-ts-errors
|
||||||
|
|
||||||
|
# Production stage
|
||||||
|
FROM base
|
||||||
|
ENV NODE_ENV=production
|
||||||
|
WORKDIR /app
|
||||||
|
COPY --from=production-deps /app/node_modules /app/node_modules
|
||||||
|
COPY --from=build /app/build /app
|
||||||
|
EXPOSE 8080
|
||||||
|
CMD ["node", "./bin/server.js"]
|
@ -52,7 +52,7 @@ export default defineConfig({
|
|||||||
() => import('@adonisjs/cors/cors_provider'),
|
() => import('@adonisjs/cors/cors_provider'),
|
||||||
() => import('@adonisjs/lucid/database_provider'),
|
() => import('@adonisjs/lucid/database_provider'),
|
||||||
() => import('@adonisjs/auth/auth_provider'),
|
() => import('@adonisjs/auth/auth_provider'),
|
||||||
() => import('@adonisjs/inertia/inertia_provider')
|
() => import('@adonisjs/inertia/inertia_provider'),
|
||||||
],
|
],
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
80
app/controllers/replays_controller.ts
Normal file
80
app/controllers/replays_controller.ts
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
import Replay from '#models/replay'
|
||||||
|
import env from '#start/env'
|
||||||
|
import type { HttpContext } from '@adonisjs/core/http'
|
||||||
|
const SENTRY_TOKEN = env.get('SENTRY_TOKEN')
|
||||||
|
const SENTRY_ORG = env.get('SENTRY_ORG')
|
||||||
|
let recordsUpdated = 0
|
||||||
|
export default class ReplaysController {
|
||||||
|
|
||||||
|
|
||||||
|
async index({ request, response }: HttpContext) {
|
||||||
|
const {statsPeriod, start, end} = request.qs()
|
||||||
|
recordsUpdated = 0
|
||||||
|
|
||||||
|
let queryString: string = '?statsPeriod=24h'// Default in case none is provided
|
||||||
|
if (statsPeriod) {
|
||||||
|
queryString = `?statsPeriod=${statsPeriod}`
|
||||||
|
} else if (start && end) {
|
||||||
|
queryString = `?start=${start}&end=${end}`
|
||||||
|
}
|
||||||
|
const replays = await fetchBatch(`https://sentry.io/api/0/organizations/${SENTRY_ORG}/replays/${queryString}`)
|
||||||
|
return response.json(replays)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
async function fetchBatch(url: string) {
|
||||||
|
const options: RequestInit = {
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${SENTRY_TOKEN}`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const req = await fetch(url, options)
|
||||||
|
const resp = await req.json() as unknown
|
||||||
|
const replays = await resp.data as unknown
|
||||||
|
const headers = await req.headers
|
||||||
|
|
||||||
|
const cleanedData = replays.map(record => sanitizeInput(record, Replay.allowedFields))
|
||||||
|
|
||||||
|
let updated = await Replay.updateOrCreateMany('id', cleanedData )
|
||||||
|
recordsUpdated = recordsUpdated + updated.length
|
||||||
|
const pagination = parseSentryLinkHeader(headers.get('link'))
|
||||||
|
|
||||||
|
if (pagination.hasNextResults == true) {
|
||||||
|
console.log('fetching', pagination.next)
|
||||||
|
await fetchBatch(pagination.next)
|
||||||
|
}
|
||||||
|
console.log('no more results')
|
||||||
|
return {recordsUpdated}
|
||||||
|
|
||||||
|
}
|
||||||
|
function parseSentryLinkHeader(header:string) {
|
||||||
|
const links = header.split(',').map(part => part.trim())
|
||||||
|
|
||||||
|
const result = {}
|
||||||
|
|
||||||
|
for (const link of links) {
|
||||||
|
const match = link.match(/<([^>]+)>;\s*rel="([^"]+)";\s*results="([^"]+)";\s*cursor="([^"]+)"/)
|
||||||
|
if (!match) continue
|
||||||
|
|
||||||
|
const [, url, rel, results] = match
|
||||||
|
|
||||||
|
if (rel === 'previous') {
|
||||||
|
result.previous = url
|
||||||
|
result.hasPreviousResults = results === 'true'
|
||||||
|
} else if (rel === 'next') {
|
||||||
|
result.next = url
|
||||||
|
result.hasNextResults = results === 'true'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
function sanitizeInput(data: Record<string, any>, allowedFields: string[]) {
|
||||||
|
return allowedFields.reduce((acc, key) => {
|
||||||
|
if (key in data) acc[key] = data[key]
|
||||||
|
return acc
|
||||||
|
}, {} as Record<string, any>)
|
||||||
|
}
|
@ -8,10 +8,7 @@ import type { NextFn } from '@adonisjs/core/types/http'
|
|||||||
* The request continues as usual, even when the user is not logged-in.
|
* The request continues as usual, even when the user is not logged-in.
|
||||||
*/
|
*/
|
||||||
export default class SilentAuthMiddleware {
|
export default class SilentAuthMiddleware {
|
||||||
async handle(
|
async handle(ctx: HttpContext, next: NextFn) {
|
||||||
ctx: HttpContext,
|
|
||||||
next: NextFn,
|
|
||||||
) {
|
|
||||||
await ctx.auth.check()
|
await ctx.auth.check()
|
||||||
|
|
||||||
return next()
|
return next()
|
||||||
|
172
app/models/replay.ts
Normal file
172
app/models/replay.ts
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
import { DateTime } from 'luxon'
|
||||||
|
import { BaseModel, column } from '@adonisjs/lucid/orm'
|
||||||
|
|
||||||
|
export default class Replay extends BaseModel {
|
||||||
|
@column({ isPrimary: true })
|
||||||
|
declare id: string
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare project_id: string
|
||||||
|
|
||||||
|
@column({
|
||||||
|
prepare: (value) => {
|
||||||
|
// The values from sentry are just arrays so convert them to json
|
||||||
|
return JSON.stringify(value)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
declare trace_ids: string[]
|
||||||
|
|
||||||
|
@column({
|
||||||
|
prepare: (value) => {
|
||||||
|
return JSON.stringify(value)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
declare error_ids: string[]
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare environment: string | null
|
||||||
|
|
||||||
|
@column({
|
||||||
|
prepare: (value) => {
|
||||||
|
// The values from sentry are just arrays so convert them to json
|
||||||
|
return JSON.stringify(value)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
declare tags: any
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare user: any
|
||||||
|
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare sdk: any
|
||||||
|
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare os: any
|
||||||
|
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare browser: any
|
||||||
|
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare device: any
|
||||||
|
@column()
|
||||||
|
declare ota_updates: any
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare is_archived: boolean | null
|
||||||
|
|
||||||
|
|
||||||
|
@column({
|
||||||
|
prepare: (value) => {
|
||||||
|
// The values from sentry are just arrays so convert them to json
|
||||||
|
return JSON.stringify(value)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
declare urls: any
|
||||||
|
|
||||||
|
|
||||||
|
@column({
|
||||||
|
prepare: (value) => {
|
||||||
|
// The values from sentry are just arrays so convert them to json
|
||||||
|
return JSON.stringify(value)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
declare clicks: any
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare count_dead_clicks: number | null
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare count_rage_clicks: number | null
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare count_errors: number | null
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare duration: number | null
|
||||||
|
|
||||||
|
@column.dateTime()
|
||||||
|
declare finished_at: DateTime | null
|
||||||
|
|
||||||
|
@column.dateTime({serializeAs: 'started_at'})
|
||||||
|
declare started_at: DateTime | null
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare activity: number | null
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare count_urls: number | null
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare replay_type: string
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare count_segments: number | null
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare platform: string | null
|
||||||
|
|
||||||
|
|
||||||
|
@column({
|
||||||
|
prepare: (value) => {
|
||||||
|
// The values from sentry are just arrays so convert them to json
|
||||||
|
return JSON.stringify(value)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
declare releases: any
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare dist: string | null
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare count_warnings: number | null
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare count_infos: number | null
|
||||||
|
|
||||||
|
@column()
|
||||||
|
declare has_viewed: boolean
|
||||||
|
|
||||||
|
@column.dateTime({ autoCreate: true })
|
||||||
|
declare created_at: DateTime
|
||||||
|
|
||||||
|
@column.dateTime({ autoCreate: true, autoUpdate: true })
|
||||||
|
declare updated_at: DateTime
|
||||||
|
|
||||||
|
public static allowedFields = [
|
||||||
|
'id',
|
||||||
|
'project_id',
|
||||||
|
'trace_ids',
|
||||||
|
'error_ids',
|
||||||
|
'environment',
|
||||||
|
'tags',
|
||||||
|
'user',
|
||||||
|
'sdk',
|
||||||
|
'os',
|
||||||
|
'browser',
|
||||||
|
'device',
|
||||||
|
'ota_updates',
|
||||||
|
'is_archived',
|
||||||
|
'urls',
|
||||||
|
'clicks',
|
||||||
|
'count_dead_clicks',
|
||||||
|
'count_rage_clicks',
|
||||||
|
'count_errors',
|
||||||
|
'duration',
|
||||||
|
'finished_at',
|
||||||
|
'started_at',
|
||||||
|
'activity',
|
||||||
|
'count_urls',
|
||||||
|
'replay_type',
|
||||||
|
'count_segments',
|
||||||
|
'platform',
|
||||||
|
'releases',
|
||||||
|
'dist',
|
||||||
|
'count_warnings',
|
||||||
|
'count_infos',
|
||||||
|
'has_viewed',
|
||||||
|
]
|
||||||
|
}
|
@ -8,7 +8,7 @@ const authConfig = defineConfig({
|
|||||||
web: sessionGuard({
|
web: sessionGuard({
|
||||||
useRememberMeTokens: false,
|
useRememberMeTokens: false,
|
||||||
provider: sessionUserProvider({
|
provider: sessionUserProvider({
|
||||||
model: () => import('#models/user')
|
model: () => import('#models/user'),
|
||||||
}),
|
}),
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
|
@ -1,13 +1,18 @@
|
|||||||
import app from '@adonisjs/core/services/app'
|
import app from '@adonisjs/core/services/app'
|
||||||
import { defineConfig } from '@adonisjs/lucid'
|
import { defineConfig } from '@adonisjs/lucid'
|
||||||
|
import env from '#start/env'
|
||||||
|
|
||||||
const dbConfig = defineConfig({
|
const dbConfig = defineConfig({
|
||||||
connection: 'sqlite',
|
connection: 'postgres',
|
||||||
connections: {
|
connections: {
|
||||||
sqlite: {
|
postgres: {
|
||||||
client: 'better-sqlite3',
|
client: 'pg',
|
||||||
connection: {
|
connection: {
|
||||||
filename: app.tmpPath('db.sqlite3')
|
host: env.get('PG_HOST'),
|
||||||
|
port: env.get('PG_PORT', 5432),
|
||||||
|
user: env.get('PG_USER', 'postgres'),
|
||||||
|
password: env.get('PG_PASSWORD', 'postgres'),
|
||||||
|
database: env.get('PG_DB_NAME', 'postgres'),
|
||||||
},
|
},
|
||||||
useNullAsDefault: true,
|
useNullAsDefault: true,
|
||||||
migrations: {
|
migrations: {
|
||||||
|
@ -19,8 +19,8 @@ const inertiaConfig = defineConfig({
|
|||||||
*/
|
*/
|
||||||
ssr: {
|
ssr: {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
entrypoint: 'inertia/app/ssr.ts'
|
entrypoint: 'inertia/app/ssr.ts',
|
||||||
}
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
export default inertiaConfig
|
export default inertiaConfig
|
||||||
|
47
database/migrations/1747444420483_create_replays_table.ts
Normal file
47
database/migrations/1747444420483_create_replays_table.ts
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
import { BaseSchema } from '@adonisjs/lucid/schema'
|
||||||
|
|
||||||
|
export default class extends BaseSchema {
|
||||||
|
protected tableName = 'replays'
|
||||||
|
|
||||||
|
async up() {
|
||||||
|
this.schema.createTable(this.tableName, (table) => {
|
||||||
|
table.string('id').primary()
|
||||||
|
table.string('project_id')
|
||||||
|
table.jsonb('trace_ids')
|
||||||
|
table.jsonb('error_ids')
|
||||||
|
table.string('environment').nullable()
|
||||||
|
table.jsonb('tags')
|
||||||
|
table.jsonb('user')
|
||||||
|
table.jsonb('sdk')
|
||||||
|
table.jsonb('os')
|
||||||
|
table.jsonb('browser')
|
||||||
|
table.jsonb('device')
|
||||||
|
table.jsonb('ota_updates')
|
||||||
|
table.boolean('is_archived').nullable()
|
||||||
|
table.jsonb('urls')
|
||||||
|
table.jsonb('clicks')
|
||||||
|
table.integer('count_dead_clicks').nullable()
|
||||||
|
table.integer('count_rage_clicks').nullable()
|
||||||
|
table.integer('count_errors').nullable()
|
||||||
|
table.bigInteger('duration').nullable()
|
||||||
|
table.timestamp('finished_at', { useTz: true }).nullable()
|
||||||
|
table.timestamp('started_at', { useTz: true }).nullable()
|
||||||
|
table.integer('activity').nullable()
|
||||||
|
table.integer('count_urls').nullable()
|
||||||
|
table.string('replay_type')
|
||||||
|
table.integer('count_segments').nullable()
|
||||||
|
table.string('platform').nullable()
|
||||||
|
table.jsonb('releases')
|
||||||
|
table.string('dist').nullable()
|
||||||
|
table.integer('count_warnings').nullable()
|
||||||
|
table.integer('count_infos').nullable()
|
||||||
|
table.boolean('has_viewed')
|
||||||
|
table.timestamp('created_at', { useTz: true }).defaultTo(this.now())
|
||||||
|
table.timestamp('updated_at', { useTz: true }).defaultTo(this.now())
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
async down() {
|
||||||
|
this.schema.dropTable(this.tableName)
|
||||||
|
}
|
||||||
|
}
|
36
docker-compose.yml
Normal file
36
docker-compose.yml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
name: sentry
|
||||||
|
services:
|
||||||
|
reverse-proxy:
|
||||||
|
image: traefik:latest
|
||||||
|
command: --api.insecure=true --providers.docker
|
||||||
|
ports:
|
||||||
|
- 80:80
|
||||||
|
- 8080:8080
|
||||||
|
volumes:
|
||||||
|
# So that Traefik can listen to the Docker events
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
|
||||||
|
scraper:
|
||||||
|
# image: paragontruss.azurecr.io/sentry-scraper
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
target: dev-deps
|
||||||
|
ports:
|
||||||
|
- 3333:3333
|
||||||
|
env_file: .env
|
||||||
|
volumes:
|
||||||
|
- backend_node_modules:/app/node_modules
|
||||||
|
- ./:/app
|
||||||
|
command: node ace serve --watch
|
||||||
|
labels:
|
||||||
|
- "traefik.http.routers.backend.rule=Host(`sentry.docker.localhost`)"
|
||||||
|
db:
|
||||||
|
image: postgres:16
|
||||||
|
environment:
|
||||||
|
- POSTGRES_PASSWORD=password
|
||||||
|
grafana:
|
||||||
|
image: grafana/grafana:latest
|
||||||
|
labels:
|
||||||
|
- "traefik.http.routers.grafana.rule=Host(`grafana.docker.localhost`)"
|
||||||
|
volumes:
|
||||||
|
backend_node_modules: {}
|
@ -1,7 +1,7 @@
|
|||||||
/// <reference path="../../adonisrc.ts" />
|
/// <reference path="../../adonisrc.ts" />
|
||||||
/// <reference path="../../config/inertia.ts" />
|
/// <reference path="../../config/inertia.ts" />
|
||||||
|
|
||||||
import '../css/app.css';
|
import '../css/app.css'
|
||||||
import { createSSRApp, h } from 'vue'
|
import { createSSRApp, h } from 'vue'
|
||||||
import type { DefineComponent } from 'vue'
|
import type { DefineComponent } from 'vue'
|
||||||
import { createInertiaApp } from '@inertiajs/vue3'
|
import { createInertiaApp } from '@inertiajs/vue3'
|
||||||
@ -17,14 +17,12 @@ createInertiaApp({
|
|||||||
resolve: (name) => {
|
resolve: (name) => {
|
||||||
return resolvePageComponent(
|
return resolvePageComponent(
|
||||||
`../pages/${name}.vue`,
|
`../pages/${name}.vue`,
|
||||||
import.meta.glob<DefineComponent>('../pages/**/*.vue'),
|
import.meta.glob<DefineComponent>('../pages/**/*.vue')
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|
||||||
setup({ el, App, props, plugin }) {
|
setup({ el, App, props, plugin }) {
|
||||||
|
|
||||||
createSSRApp({ render: () => h(App, props) })
|
createSSRApp({ render: () => h(App, props) })
|
||||||
|
|
||||||
.use(plugin)
|
.use(plugin)
|
||||||
.mount(el)
|
.mount(el)
|
||||||
},
|
},
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
import { createInertiaApp } from '@inertiajs/vue3'
|
import { createInertiaApp } from '@inertiajs/vue3'
|
||||||
import { renderToString } from '@vue/server-renderer'
|
import { renderToString } from '@vue/server-renderer'
|
||||||
import { createSSRApp, h, type DefineComponent } from 'vue'
|
import { createSSRApp, h, type DefineComponent } from 'vue'
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
defineProps<{ error: any }>();
|
defineProps<{ error: any }>()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -5,7 +5,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<Head title="Homepage" />
|
<Head title="Homepage" />
|
||||||
|
|
||||||
<div class="fixed xl:absolute left-8 right-8 top-0 bottom-0 xl:inset-0 max-w-screen-xl mx-auto before:content-[''] before:[background:repeating-linear-gradient(0deg,var(--sand-5)_0_4px,transparent_0_8px)] before:absolute before:top-0 before:left-0 before:h-full before:w-px after:content-[''] after:[background:repeating-linear-gradient(0deg,var(--sand-5)_0_4px,transparent_0_8px)] after:absolute after:top-0 after:right-0 after:h-full after:w-px"></div>
|
<div
|
||||||
|
class="fixed xl:absolute left-8 right-8 top-0 bottom-0 xl:inset-0 max-w-screen-xl mx-auto before:content-[''] before:[background:repeating-linear-gradient(0deg,var(--sand-5)_0_4px,transparent_0_8px)] before:absolute before:top-0 before:left-0 before:h-full before:w-px after:content-[''] after:[background:repeating-linear-gradient(0deg,var(--sand-5)_0_4px,transparent_0_8px)] after:absolute after:top-0 after:right-0 after:h-full after:w-px"
|
||||||
|
></div>
|
||||||
|
|
||||||
<div class="pt-4 h-full flex flex-col">
|
<div class="pt-4 h-full flex flex-col">
|
||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
@ -22,13 +24,19 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Bento with documentation, Adocasts, packages and Discord -->
|
<!-- Bento with documentation, Adocasts, packages and Discord -->
|
||||||
<div class="isolate mt-10 max-w-screen-xl mx-auto px-16 xl:px-8 grid grid-cols-1 xl:grid-cols-2 xl:grid-rows-3 gap-8">
|
<div
|
||||||
<article class="row-span-3 relative p-6 shadow-sm hover:shadow border border-sand-7 hover:border-sand-8 rounded-2xl transition ease-in-out duration-700 group flex flex-col gap-8">
|
class="isolate mt-10 max-w-screen-xl mx-auto px-16 xl:px-8 grid grid-cols-1 xl:grid-cols-2 xl:grid-rows-3 gap-8"
|
||||||
|
>
|
||||||
|
<article
|
||||||
|
class="row-span-3 relative p-6 shadow-sm hover:shadow border border-sand-7 hover:border-sand-8 rounded-2xl transition ease-in-out duration-700 group flex flex-col gap-8"
|
||||||
|
>
|
||||||
<div class="relative opacity-80">
|
<div class="relative opacity-80">
|
||||||
<svg fill="none" viewBox="0 0 240 105">
|
<svg fill="none" viewBox="0 0 240 105">
|
||||||
<path fill="#F9F9F8" d="M0 4a4 4 0 0 1 4-4h232a4 4 0 0 1 4 4v101H0V4Z" />
|
<path fill="#F9F9F8" d="M0 4a4 4 0 0 1 4-4h232a4 4 0 0 1 4 4v101H0V4Z" />
|
||||||
<g fill="#000" fill-rule="evenodd" clip-path="url(#a)" clip-rule="evenodd">
|
<g fill="#000" fill-rule="evenodd" clip-path="url(#a)" clip-rule="evenodd">
|
||||||
<path d="M24 11.444c0 4.391 1.053 5.445 5.444 5.445s5.445-1.054 5.445-5.445c0-4.39-1.054-5.444-5.445-5.444C25.054 6 24 7.053 24 11.444Zm2.195 1.131 1.708-3.88c.288-.655.843-1.01 1.541-1.01.699 0 1.253.355 1.542 1.01l1.707 3.88c.078.189.144.433.144.644 0 .964-.676 1.64-1.64 1.64-.33 0-.59-.083-.854-.168-.271-.087-.545-.175-.899-.175-.35 0-.63.089-.906.176-.267.085-.53.168-.846.168-.964 0-1.64-.677-1.64-1.641 0-.211.066-.455.143-.644Zm3.25-3.204-1.686 3.814c.499-.233 1.075-.344 1.685-.344.588 0 1.187.111 1.664.344l-1.664-3.814Zm26.473-.678c-.378 0-.65.268-.65.64 0 .374.272.641.65.641s.651-.267.651-.64-.273-.64-.65-.64Zm-11.907 5.502c-1.009 0-1.738-.745-1.738-1.91 0-1.187.73-1.933 1.737-1.933.468 0 .814.158 1.019.468V8.86h1.05v5.25h-1.05v-.372c-.2.304-.546.456-1.019.456Zm-.667-1.91c0-.652.352-1.077.887-1.077.54 0 .887.42.887 1.071 0 .64-.346 1.056-.887 1.056-.535 0-.887-.415-.887-1.05Zm4.384-.011c0-.646.351-1.06.877-1.06.53 0 .882.414.882 1.06 0 .646-.352 1.06-.883 1.06-.525 0-.876-.414-.876-1.06Zm11.571.835c0 .194-.147.31-.52.31-.42 0-.682-.221-.682-.489h-1.05c.026.725.714 1.265 1.711 1.265.946 0 1.55-.42 1.55-1.165 0-.557-.358-.945-1.066-1.087l-.762-.152c-.23-.047-.367-.163-.367-.315 0-.226.23-.347.525-.347.42 0 .583.195.583.426h.997c-.026-.683-.562-1.203-1.56-1.203-.929 0-1.559.468-1.559 1.176 0 .64.415.93 1.035 1.06l.756.164c.247.052.41.157.41.357Zm-2.85 1.002h-1.05v-3.675h1.05v3.675Zm-4.264-3.675v.384c.268-.31.625-.468 1.066-.468.824 0 1.36.536 1.36 1.365v2.394h-1.05v-2.173c0-.446-.252-.714-.688-.714-.436 0-.688.268-.688.714v2.173h-1.05v-3.675h1.05Zm-3.58-.084c-1.119 0-1.948.809-1.948 1.922s.83 1.921 1.948 1.921c1.123 0 1.953-.808 1.953-1.921s-.83-1.922-1.953-1.922Zm-8.758.856c-.535 0-.887.425-.887 1.076 0 .636.352 1.05.887 1.05.54 0 .887-.414.887-1.055 0-.65-.346-1.07-.887-1.07Zm-1.958 1.076c0 1.166.73 1.911 1.732 1.911.478 0 .82-.152 1.024-.456v.372h1.05v-3.675h-1.05v.384c-.21-.31-.556-.468-1.024-.468-1.003 0-1.732.746-1.732 1.932Z" />
|
<path
|
||||||
|
d="M24 11.444c0 4.391 1.053 5.445 5.444 5.445s5.445-1.054 5.445-5.445c0-4.39-1.054-5.444-5.445-5.444C25.054 6 24 7.053 24 11.444Zm2.195 1.131 1.708-3.88c.288-.655.843-1.01 1.541-1.01.699 0 1.253.355 1.542 1.01l1.707 3.88c.078.189.144.433.144.644 0 .964-.676 1.64-1.64 1.64-.33 0-.59-.083-.854-.168-.271-.087-.545-.175-.899-.175-.35 0-.63.089-.906.176-.267.085-.53.168-.846.168-.964 0-1.64-.677-1.64-1.641 0-.211.066-.455.143-.644Zm3.25-3.204-1.686 3.814c.499-.233 1.075-.344 1.685-.344.588 0 1.187.111 1.664.344l-1.664-3.814Zm26.473-.678c-.378 0-.65.268-.65.64 0 .374.272.641.65.641s.651-.267.651-.64-.273-.64-.65-.64Zm-11.907 5.502c-1.009 0-1.738-.745-1.738-1.91 0-1.187.73-1.933 1.737-1.933.468 0 .814.158 1.019.468V8.86h1.05v5.25h-1.05v-.372c-.2.304-.546.456-1.019.456Zm-.667-1.91c0-.652.352-1.077.887-1.077.54 0 .887.42.887 1.071 0 .64-.346 1.056-.887 1.056-.535 0-.887-.415-.887-1.05Zm4.384-.011c0-.646.351-1.06.877-1.06.53 0 .882.414.882 1.06 0 .646-.352 1.06-.883 1.06-.525 0-.876-.414-.876-1.06Zm11.571.835c0 .194-.147.31-.52.31-.42 0-.682-.221-.682-.489h-1.05c.026.725.714 1.265 1.711 1.265.946 0 1.55-.42 1.55-1.165 0-.557-.358-.945-1.066-1.087l-.762-.152c-.23-.047-.367-.163-.367-.315 0-.226.23-.347.525-.347.42 0 .583.195.583.426h.997c-.026-.683-.562-1.203-1.56-1.203-.929 0-1.559.468-1.559 1.176 0 .64.415.93 1.035 1.06l.756.164c.247.052.41.157.41.357Zm-2.85 1.002h-1.05v-3.675h1.05v3.675Zm-4.264-3.675v.384c.268-.31.625-.468 1.066-.468.824 0 1.36.536 1.36 1.365v2.394h-1.05v-2.173c0-.446-.252-.714-.688-.714-.436 0-.688.268-.688.714v2.173h-1.05v-3.675h1.05Zm-3.58-.084c-1.119 0-1.948.809-1.948 1.922s.83 1.921 1.948 1.921c1.123 0 1.953-.808 1.953-1.921s-.83-1.922-1.953-1.922Zm-8.758.856c-.535 0-.887.425-.887 1.076 0 .636.352 1.05.887 1.05.54 0 .887-.414.887-1.055 0-.65-.346-1.07-.887-1.07Zm-1.958 1.076c0 1.166.73 1.911 1.732 1.911.478 0 .82-.152 1.024-.456v.372h1.05v-3.675h-1.05v.384c-.21-.31-.556-.468-1.024-.468-1.003 0-1.732.746-1.732 1.932Z"
|
||||||
|
/>
|
||||||
</g>
|
</g>
|
||||||
<rect width="8" height="3" x="162" y="9.944" fill="#DAD9D6" rx="1" />
|
<rect width="8" height="3" x="162" y="9.944" fill="#DAD9D6" rx="1" />
|
||||||
<rect width="14" height="3" x="174" y="9.944" fill="#DAD9D6" rx="1" />
|
<rect width="14" height="3" x="174" y="9.944" fill="#DAD9D6" rx="1" />
|
||||||
@ -61,7 +69,9 @@
|
|||||||
</defs>
|
</defs>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
||||||
<div class="absolute left-0 right-0 bottom-0 h-16 bg-gradient-to-b from-white/0 to-white"></div>
|
<div
|
||||||
|
class="absolute left-0 right-0 bottom-0 h-16 bg-gradient-to-b from-white/0 to-white"
|
||||||
|
></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-row gap-4">
|
<div class="flex flex-row gap-4">
|
||||||
@ -82,17 +92,21 @@
|
|||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<p class="text-sm text-sand-11 group-hover:text-sand-12 transition ease-in-out duration-700">
|
<p
|
||||||
Dive into the official documentation to learn AdonisJS. Read carefully to discover
|
class="text-sm text-sand-11 group-hover:text-sand-12 transition ease-in-out duration-700"
|
||||||
an unmatched set of features, best practices and developer experience. Through
|
>
|
||||||
examples, guides and API references, you'll find everything you need to build your
|
Dive into the official documentation to learn AdonisJS. Read carefully to discover an
|
||||||
next project. From installation to deployment, we've got you covered.
|
unmatched set of features, best practices and developer experience. Through examples,
|
||||||
|
guides and API references, you'll find everything you need to build your next project.
|
||||||
|
From installation to deployment, we've got you covered.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
<article class="relative p-6 shadow-sm hover:shadow border border-sand-7 hover:border-sand-8 rounded-2xl transition ease-in-out duration-700 group flex flex-row gap-4">
|
<article
|
||||||
|
class="relative p-6 shadow-sm hover:shadow border border-sand-7 hover:border-sand-8 rounded-2xl transition ease-in-out duration-700 group flex flex-row gap-4"
|
||||||
|
>
|
||||||
<div class="shrink-0 w-10 h-10 bg-primary/20 rounded-md flex justify-center items-center">
|
<div class="shrink-0 w-10 h-10 bg-primary/20 rounded-md flex justify-center items-center">
|
||||||
<svg class="h-6 w-6 fill-primary" viewBox="0 0 256 256">
|
<svg class="h-6 w-6 fill-primary" viewBox="0 0 256 256">
|
||||||
<path
|
<path
|
||||||
@ -110,14 +124,18 @@
|
|||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<p class="text-sm text-sand-11 group-hover:text-sand-12 transition ease-in-out duration-700">
|
<p
|
||||||
Level up your development and Adonis skills with hours of video content, from
|
class="text-sm text-sand-11 group-hover:text-sand-12 transition ease-in-out duration-700"
|
||||||
beginner to advanced, through databases, testing, and more.
|
>
|
||||||
|
Level up your development and Adonis skills with hours of video content, from beginner
|
||||||
|
to advanced, through databases, testing, and more.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
<article class="relative p-6 shadow-sm hover:shadow border border-sand-7 hover:border-sand-8 rounded-2xl transition ease-in-out duration-700 group flex flex-row gap-4">
|
<article
|
||||||
|
class="relative p-6 shadow-sm hover:shadow border border-sand-7 hover:border-sand-8 rounded-2xl transition ease-in-out duration-700 group flex flex-row gap-4"
|
||||||
|
>
|
||||||
<div class="shrink-0 w-10 h-10 bg-primary/20 rounded-md flex justify-center items-center">
|
<div class="shrink-0 w-10 h-10 bg-primary/20 rounded-md flex justify-center items-center">
|
||||||
<svg class="h-6 w-6 fill-primary" viewBox="0 0 256 256">
|
<svg class="h-6 w-6 fill-primary" viewBox="0 0 256 256">
|
||||||
<path
|
<path
|
||||||
@ -135,14 +153,18 @@
|
|||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<p class="text-sm text-sand-11 group-hover:text-sand-12 transition ease-in-out duration-700">
|
<p
|
||||||
|
class="text-sm text-sand-11 group-hover:text-sand-12 transition ease-in-out duration-700"
|
||||||
|
>
|
||||||
Supercharge your AdonisJS application with packages built and maintained by both the
|
Supercharge your AdonisJS application with packages built and maintained by both the
|
||||||
core team and the community.
|
core team and the community.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
<article class="relative p-6 shadow-sm hover:shadow border border-sand-7 hover:border-sand-8 rounded-2xl transition ease-in-out duration-700 group flex flex-row gap-4">
|
<article
|
||||||
|
class="relative p-6 shadow-sm hover:shadow border border-sand-7 hover:border-sand-8 rounded-2xl transition ease-in-out duration-700 group flex flex-row gap-4"
|
||||||
|
>
|
||||||
<div class="shrink-0 w-10 h-10 bg-primary/20 rounded-md flex justify-center items-center">
|
<div class="shrink-0 w-10 h-10 bg-primary/20 rounded-md flex justify-center items-center">
|
||||||
<svg class="h-6 w-6 fill-primary" viewBox="0 0 256 256">
|
<svg class="h-6 w-6 fill-primary" viewBox="0 0 256 256">
|
||||||
<path
|
<path
|
||||||
@ -160,9 +182,11 @@
|
|||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<p class="text-sm text-sand-11 group-hover:text-sand-12 transition ease-in-out duration-700">
|
<p
|
||||||
Never get lost again, ask questions, and share your knowledge or projects with a
|
class="text-sm text-sand-11 group-hover:text-sand-12 transition ease-in-out duration-700"
|
||||||
growing and supportive community. Join us.
|
>
|
||||||
|
Never get lost again, ask questions, and share your knowledge or projects with a growing
|
||||||
|
and supportive community. Join us.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
@ -171,7 +195,9 @@
|
|||||||
<!-- Features -->
|
<!-- Features -->
|
||||||
<div class="grow mt-10 mb-8 px-16 xl:px-8 max-w-screen-xl mx-auto">
|
<div class="grow mt-10 mb-8 px-16 xl:px-8 max-w-screen-xl mx-auto">
|
||||||
<div class="grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-4 gap-4">
|
<div class="grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-4 gap-4">
|
||||||
<article class="relative py-4 px-5 bg-white border border-transparent rounded-lg hover:border-sand-8 hover:shadow-sm transition duration-100 ease-in-out group">
|
<article
|
||||||
|
class="relative py-4 px-5 bg-white border border-transparent rounded-lg hover:border-sand-8 hover:shadow-sm transition duration-100 ease-in-out group"
|
||||||
|
>
|
||||||
<h2 class="font-semibold text-sand-12">
|
<h2 class="font-semibold text-sand-12">
|
||||||
<a href="https://lucid.adonisjs.com" target="_blank" class="flex flex-row gap-2">
|
<a href="https://lucid.adonisjs.com" target="_blank" class="flex flex-row gap-2">
|
||||||
<span class="bg-[#D5EAE7] h-6 w-6 flex justify-center items-center rounded">
|
<span class="bg-[#D5EAE7] h-6 w-6 flex justify-center items-center rounded">
|
||||||
@ -194,9 +220,11 @@
|
|||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<p class="mt-4 text-sm text-sand-11 group-hover:text-sand-12 transition ease-in-out duration-100">
|
<p
|
||||||
A SQL ORM with a powerful query builder, active record, migrations, and model
|
class="mt-4 text-sm text-sand-11 group-hover:text-sand-12 transition ease-in-out duration-100"
|
||||||
factories. Everything you need to work with databases.
|
>
|
||||||
|
A SQL ORM with a powerful query builder, active record, migrations, and model factories.
|
||||||
|
Everything you need to work with databases.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<svg
|
<svg
|
||||||
@ -214,7 +242,9 @@
|
|||||||
</svg>
|
</svg>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
<article class="relative py-4 px-5 bg-white border border-transparent rounded-lg hover:border-sand-8 hover:shadow-sm transition duration-100 ease-in-out group">
|
<article
|
||||||
|
class="relative py-4 px-5 bg-white border border-transparent rounded-lg hover:border-sand-8 hover:shadow-sm transition duration-100 ease-in-out group"
|
||||||
|
>
|
||||||
<h2 class="font-semibold text-sand-12">
|
<h2 class="font-semibold text-sand-12">
|
||||||
<a href="https://vinejs.dev/" target="_blank" class="flex flex-row gap-2">
|
<a href="https://vinejs.dev/" target="_blank" class="flex flex-row gap-2">
|
||||||
<span class="bg-[#F3DBFC] h-6 w-6 flex justify-center items-center rounded">
|
<span class="bg-[#F3DBFC] h-6 w-6 flex justify-center items-center rounded">
|
||||||
@ -234,7 +264,9 @@
|
|||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<p class="mt-4 text-sm text-sand-11 group-hover:text-sand-12 transition ease-in-out duration-100">
|
<p
|
||||||
|
class="mt-4 text-sm text-sand-11 group-hover:text-sand-12 transition ease-in-out duration-100"
|
||||||
|
>
|
||||||
A yet simple but feature rich and type-safe form data validation. It comes with 50+
|
A yet simple but feature rich and type-safe form data validation. It comes with 50+
|
||||||
built-in rules and an expressive API to define custom rules.
|
built-in rules and an expressive API to define custom rules.
|
||||||
</p>
|
</p>
|
||||||
@ -254,7 +286,9 @@
|
|||||||
</svg>
|
</svg>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
<article class="relative py-4 px-5 bg-white border border-transparent rounded-lg hover:border-sand-8 hover:shadow-sm transition duration-100 ease-in-out group">
|
<article
|
||||||
|
class="relative py-4 px-5 bg-white border border-transparent rounded-lg hover:border-sand-8 hover:shadow-sm transition duration-100 ease-in-out group"
|
||||||
|
>
|
||||||
<h2 class="font-semibold text-sand-12">
|
<h2 class="font-semibold text-sand-12">
|
||||||
<a href="https://inertiajs.com/" target="_blank" class="flex flex-row gap-2">
|
<a href="https://inertiajs.com/" target="_blank" class="flex flex-row gap-2">
|
||||||
<span class="bg-[#B8EAE0] h-6 w-6 flex justify-center items-center rounded">
|
<span class="bg-[#B8EAE0] h-6 w-6 flex justify-center items-center rounded">
|
||||||
@ -274,7 +308,9 @@
|
|||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<p class="mt-4 text-sm text-sand-11 group-hover:text-sand-12 transition ease-in-out duration-100">
|
<p
|
||||||
|
class="mt-4 text-sm text-sand-11 group-hover:text-sand-12 transition ease-in-out duration-100"
|
||||||
|
>
|
||||||
The modern monolithic application architecture. It allows you to build single-page
|
The modern monolithic application architecture. It allows you to build single-page
|
||||||
applications without building an API.
|
applications without building an API.
|
||||||
</p>
|
</p>
|
||||||
@ -294,7 +330,9 @@
|
|||||||
</svg>
|
</svg>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
<article class="relative py-4 px-5 bg-white border border-transparent rounded-lg hover:border-sand-8 hover:shadow-sm transition duration-100 ease-in-out group">
|
<article
|
||||||
|
class="relative py-4 px-5 bg-white border border-transparent rounded-lg hover:border-sand-8 hover:shadow-sm transition duration-100 ease-in-out group"
|
||||||
|
>
|
||||||
<h2 class="font-semibold text-sand-12">
|
<h2 class="font-semibold text-sand-12">
|
||||||
<a href="https://japa.dev" target="_blank" class="flex flex-row gap-2">
|
<a href="https://japa.dev" target="_blank" class="flex flex-row gap-2">
|
||||||
<span class="bg-[#FACDDC] h-6 w-6 flex justify-center items-center rounded">
|
<span class="bg-[#FACDDC] h-6 w-6 flex justify-center items-center rounded">
|
||||||
@ -310,9 +348,11 @@
|
|||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<p class="mt-4 text-sm text-sand-11 group-hover:text-sand-12 transition ease-in-out duration-100">
|
<p
|
||||||
From JSON API tests using Open API schema to browser tests with Playwrighht, it
|
class="mt-4 text-sm text-sand-11 group-hover:text-sand-12 transition ease-in-out duration-100"
|
||||||
comes with everything you need to test your application.
|
>
|
||||||
|
From JSON API tests using Open API schema to browser tests with Playwrighht, it comes
|
||||||
|
with everything you need to test your application.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<svg
|
<svg
|
||||||
@ -332,7 +372,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="text-sm text-center [&>code]:font-medium [&>code]:text-[#a599ff] bg-sand-12 text-sand-1 fixed bottom-0 left-0 right-0 py-2">
|
<div
|
||||||
|
class="text-sm text-center [&>code]:font-medium [&>code]:text-[#a599ff] bg-sand-12 text-sand-1 fixed bottom-0 left-0 right-0 py-2"
|
||||||
|
>
|
||||||
Route for this page is registered in <code>start/routes.ts</code> file, rendering
|
Route for this page is registered in <code>start/routes.ts</code> file, rendering
|
||||||
<code>inertia/pages/home.vue</code> template
|
<code>inertia/pages/home.vue</code> template
|
||||||
</div>
|
</div>
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
"module": "ESNext",
|
"module": "ESNext",
|
||||||
"jsxImportSource": "vue",
|
"jsxImportSource": "vue",
|
||||||
"paths": {
|
"paths": {
|
||||||
"~/*": ["./*"],
|
"~/*": ["./*"]
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
"include": ["./**/*.ts", "./**/*.vue"],
|
"include": ["./**/*.ts", "./**/*.vue"]
|
||||||
}
|
}
|
480
package-lock.json
generated
480
package-lock.json
generated
@ -21,9 +21,9 @@
|
|||||||
"@inertiajs/vue3": "^2.0.11",
|
"@inertiajs/vue3": "^2.0.11",
|
||||||
"@vinejs/vine": "^3.0.1",
|
"@vinejs/vine": "^3.0.1",
|
||||||
"@vue/server-renderer": "^3.5.14",
|
"@vue/server-renderer": "^3.5.14",
|
||||||
"better-sqlite3": "^11.10.0",
|
|
||||||
"edge.js": "^6.2.1",
|
"edge.js": "^6.2.1",
|
||||||
"luxon": "^3.6.1",
|
"luxon": "^3.6.1",
|
||||||
|
"pg": "^8.16.0",
|
||||||
"reflect-metadata": "^0.2.2",
|
"reflect-metadata": "^0.2.2",
|
||||||
"vue": "^3.5.14"
|
"vue": "^3.5.14"
|
||||||
},
|
},
|
||||||
@ -3329,26 +3329,6 @@
|
|||||||
"devOptional": true,
|
"devOptional": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/base64-js": {
|
|
||||||
"version": "1.5.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
|
||||||
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"type": "github",
|
|
||||||
"url": "https://github.com/sponsors/feross"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "patreon",
|
|
||||||
"url": "https://www.patreon.com/feross"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "consulting",
|
|
||||||
"url": "https://feross.org/support"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/basic-auth": {
|
"node_modules/basic-auth": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
|
||||||
@ -3367,37 +3347,6 @@
|
|||||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
|
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/better-sqlite3": {
|
|
||||||
"version": "11.10.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-11.10.0.tgz",
|
|
||||||
"integrity": "sha512-EwhOpyXiOEL/lKzHz9AW1msWFNzGc/z+LzeB3/jnFJpxu+th2yqvzsSWas1v9jgs9+xiXJcD5A8CJxAG2TaghQ==",
|
|
||||||
"hasInstallScript": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"bindings": "^1.5.0",
|
|
||||||
"prebuild-install": "^7.1.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/bindings": {
|
|
||||||
"version": "1.5.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
|
|
||||||
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"file-uri-to-path": "1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/bl": {
|
|
||||||
"version": "4.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
|
|
||||||
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"buffer": "^5.5.0",
|
|
||||||
"inherits": "^2.0.4",
|
|
||||||
"readable-stream": "^3.4.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/brace-expansion": {
|
"node_modules/brace-expansion": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
||||||
@ -3453,30 +3402,6 @@
|
|||||||
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/buffer": {
|
|
||||||
"version": "5.7.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
|
||||||
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"type": "github",
|
|
||||||
"url": "https://github.com/sponsors/feross"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "patreon",
|
|
||||||
"url": "https://www.patreon.com/feross"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "consulting",
|
|
||||||
"url": "https://feross.org/support"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"base64-js": "^1.3.1",
|
|
||||||
"ieee754": "^1.1.13"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/builtin-modules": {
|
"node_modules/builtin-modules": {
|
||||||
"version": "3.3.0",
|
"version": "3.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
|
||||||
@ -3689,12 +3614,6 @@
|
|||||||
"url": "https://paulmillr.com/funding/"
|
"url": "https://paulmillr.com/funding/"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/chownr": {
|
|
||||||
"version": "1.1.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
|
|
||||||
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
|
|
||||||
"license": "ISC"
|
|
||||||
},
|
|
||||||
"node_modules/ci-info": {
|
"node_modules/ci-info": {
|
||||||
"version": "4.2.0",
|
"version": "4.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.2.0.tgz",
|
||||||
@ -4093,21 +4012,6 @@
|
|||||||
"node": ">=0.10"
|
"node": ">=0.10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/decompress-response": {
|
|
||||||
"version": "6.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
|
|
||||||
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"mimic-response": "^3.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/dedent": {
|
"node_modules/dedent": {
|
||||||
"version": "1.6.0",
|
"version": "1.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz",
|
||||||
@ -4133,15 +4037,6 @@
|
|||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/deep-extend": {
|
|
||||||
"version": "0.6.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
|
|
||||||
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=4.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/deep-is": {
|
"node_modules/deep-is": {
|
||||||
"version": "0.1.4",
|
"version": "0.1.4",
|
||||||
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
|
||||||
@ -4177,15 +4072,6 @@
|
|||||||
"npm": "1.2.8000 || >= 1.4.16"
|
"npm": "1.2.8000 || >= 1.4.16"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/detect-libc": {
|
|
||||||
"version": "2.0.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz",
|
|
||||||
"integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/diff": {
|
"node_modules/diff": {
|
||||||
"version": "4.0.2",
|
"version": "4.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
|
||||||
@ -4352,6 +4238,7 @@
|
|||||||
"version": "1.4.4",
|
"version": "1.4.4",
|
||||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
|
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
|
||||||
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
|
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"once": "^1.4.0"
|
"once": "^1.4.0"
|
||||||
@ -4875,15 +4762,6 @@
|
|||||||
"url": "https://github.com/sindresorhus/execa?sponsor=1"
|
"url": "https://github.com/sindresorhus/execa?sponsor=1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/expand-template": {
|
|
||||||
"version": "2.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
|
|
||||||
"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
|
|
||||||
"license": "(MIT OR WTFPL)",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/fast-copy": {
|
"node_modules/fast-copy": {
|
||||||
"version": "3.0.2",
|
"version": "3.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz",
|
||||||
@ -5050,12 +4928,6 @@
|
|||||||
"url": "https://github.com/sindresorhus/file-type?sponsor=1"
|
"url": "https://github.com/sindresorhus/file-type?sponsor=1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/file-uri-to-path": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
|
|
||||||
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/fill-range": {
|
"node_modules/fill-range": {
|
||||||
"version": "7.1.1",
|
"version": "7.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
||||||
@ -5280,12 +5152,6 @@
|
|||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/fs-constants": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
|
||||||
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/fs-readdir-recursive": {
|
"node_modules/fs-readdir-recursive": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz",
|
||||||
@ -5419,12 +5285,6 @@
|
|||||||
"integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==",
|
"integrity": "sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/github-from-package": {
|
|
||||||
"version": "0.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
|
|
||||||
"integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/glob-parent": {
|
"node_modules/glob-parent": {
|
||||||
"version": "6.0.2",
|
"version": "6.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
|
||||||
@ -5779,12 +5639,6 @@
|
|||||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
"node_modules/ini": {
|
|
||||||
"version": "1.3.8",
|
|
||||||
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
|
|
||||||
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
|
|
||||||
"license": "ISC"
|
|
||||||
},
|
|
||||||
"node_modules/interpret": {
|
"node_modules/interpret": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz",
|
||||||
@ -6467,18 +6321,6 @@
|
|||||||
"url": "https://github.com/sponsors/sindresorhus"
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/mimic-response": {
|
|
||||||
"version": "3.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
|
|
||||||
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/min-indent": {
|
"node_modules/min-indent": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
|
||||||
@ -6509,6 +6351,7 @@
|
|||||||
"version": "1.2.8",
|
"version": "1.2.8",
|
||||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
|
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
|
||||||
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
|
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"funding": {
|
"funding": {
|
||||||
"url": "https://github.com/sponsors/ljharb"
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
@ -6530,12 +6373,6 @@
|
|||||||
"url": "https://github.com/sponsors/isaacs"
|
"url": "https://github.com/sponsors/isaacs"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/mkdirp-classic": {
|
|
||||||
"version": "0.5.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
|
|
||||||
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/ms": {
|
"node_modules/ms": {
|
||||||
"version": "2.1.3",
|
"version": "2.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||||
@ -6569,12 +6406,6 @@
|
|||||||
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/napi-build-utils": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/natural-compare": {
|
"node_modules/natural-compare": {
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
|
||||||
@ -6591,18 +6422,6 @@
|
|||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/node-abi": {
|
|
||||||
"version": "3.75.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.75.0.tgz",
|
|
||||||
"integrity": "sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"semver": "^7.3.5"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/node-releases": {
|
"node_modules/node-releases": {
|
||||||
"version": "2.0.19",
|
"version": "2.0.19",
|
||||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
|
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
|
||||||
@ -6704,6 +6523,7 @@
|
|||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||||
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
|
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
|
||||||
|
"dev": true,
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"wrappy": "1"
|
"wrappy": "1"
|
||||||
@ -6985,12 +6805,101 @@
|
|||||||
"url": "https://github.com/sponsors/Borewit"
|
"url": "https://github.com/sponsors/Borewit"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/pg": {
|
||||||
|
"version": "8.16.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pg/-/pg-8.16.0.tgz",
|
||||||
|
"integrity": "sha512-7SKfdvP8CTNXjMUzfcVTaI+TDzBEeaUnVwiVGZQD1Hh33Kpev7liQba9uLd4CfN8r9mCVsD0JIpq03+Unpz+kg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"pg-connection-string": "^2.9.0",
|
||||||
|
"pg-pool": "^3.10.0",
|
||||||
|
"pg-protocol": "^1.10.0",
|
||||||
|
"pg-types": "2.2.0",
|
||||||
|
"pgpass": "1.0.5"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 8.0.0"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"pg-cloudflare": "^1.2.5"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"pg-native": ">=3.0.1"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"pg-native": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/pg-cloudflare": {
|
||||||
|
"version": "1.2.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.2.5.tgz",
|
||||||
|
"integrity": "sha512-OOX22Vt0vOSRrdoUPKJ8Wi2OpE/o/h9T8X1s4qSkCedbNah9ei2W2765be8iMVxQUsvgT7zIAT2eIa9fs5+vtg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
"node_modules/pg-connection-string": {
|
"node_modules/pg-connection-string": {
|
||||||
"version": "2.6.2",
|
"version": "2.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz",
|
||||||
"integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==",
|
"integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/pg-int8": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==",
|
||||||
|
"license": "ISC",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/pg-pool": {
|
||||||
|
"version": "3.10.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.10.0.tgz",
|
||||||
|
"integrity": "sha512-DzZ26On4sQ0KmqnO34muPcmKbhrjmyiO4lCCR0VwEd7MjmiKf5NTg/6+apUEu0NF7ESa37CGzFxH513CoUmWnA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"peerDependencies": {
|
||||||
|
"pg": ">=8.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/pg-protocol": {
|
||||||
|
"version": "1.10.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.10.0.tgz",
|
||||||
|
"integrity": "sha512-IpdytjudNuLv8nhlHs/UrVBhU0e78J0oIS/0AVdTbWxSOkFUVdsHC/NrorO6nXsQNDTT1kzDSOMJubBQviX18Q==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/pg-types": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
|
||||||
|
"integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"pg-int8": "1.0.1",
|
||||||
|
"postgres-array": "~2.0.0",
|
||||||
|
"postgres-bytea": "~1.0.0",
|
||||||
|
"postgres-date": "~1.0.4",
|
||||||
|
"postgres-interval": "^1.1.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/pg/node_modules/pg-connection-string": {
|
||||||
|
"version": "2.9.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.9.0.tgz",
|
||||||
|
"integrity": "sha512-P2DEBKuvh5RClafLngkAuGe9OUlFV7ebu8w1kmaaOgPcpJd1RIFh7otETfI6hAR8YupOLFTY7nuvvIn7PLciUQ==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/pgpass": {
|
||||||
|
"version": "1.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz",
|
||||||
|
"integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"split2": "^4.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/picocolors": {
|
"node_modules/picocolors": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
|
||||||
@ -7158,30 +7067,43 @@
|
|||||||
"node": "^10 || ^12 || >=14"
|
"node": "^10 || ^12 || >=14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/prebuild-install": {
|
"node_modules/postgres-array": {
|
||||||
"version": "7.1.3",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
|
||||||
"integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==",
|
"integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/postgres-bytea": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/postgres-date": {
|
||||||
|
"version": "1.0.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
|
||||||
|
"integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/postgres-interval": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"detect-libc": "^2.0.0",
|
"xtend": "^4.0.0"
|
||||||
"expand-template": "^2.0.3",
|
|
||||||
"github-from-package": "0.0.0",
|
|
||||||
"minimist": "^1.2.3",
|
|
||||||
"mkdirp-classic": "^0.5.3",
|
|
||||||
"napi-build-utils": "^2.0.0",
|
|
||||||
"node-abi": "^3.3.0",
|
|
||||||
"pump": "^3.0.0",
|
|
||||||
"rc": "^1.2.7",
|
|
||||||
"simple-get": "^4.0.0",
|
|
||||||
"tar-fs": "^2.0.0",
|
|
||||||
"tunnel-agent": "^0.6.0"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"prebuild-install": "bin.js"
|
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/prelude-ls": {
|
"node_modules/prelude-ls": {
|
||||||
@ -7344,6 +7266,7 @@
|
|||||||
"version": "3.0.2",
|
"version": "3.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
|
||||||
"integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
|
"integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"end-of-stream": "^1.1.0",
|
"end-of-stream": "^1.1.0",
|
||||||
@ -7452,30 +7375,6 @@
|
|||||||
"node": ">= 0.8"
|
"node": ">= 0.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rc": {
|
|
||||||
"version": "1.2.8",
|
|
||||||
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
|
|
||||||
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
|
|
||||||
"license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
|
|
||||||
"dependencies": {
|
|
||||||
"deep-extend": "^0.6.0",
|
|
||||||
"ini": "~1.3.0",
|
|
||||||
"minimist": "^1.2.0",
|
|
||||||
"strip-json-comments": "~2.0.1"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"rc": "cli.js"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/rc/node_modules/strip-json-comments": {
|
|
||||||
"version": "2.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
|
|
||||||
"integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/react-is": {
|
"node_modules/react-is": {
|
||||||
"version": "18.3.1",
|
"version": "18.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
|
||||||
@ -7693,20 +7592,6 @@
|
|||||||
"url": "https://github.com/sponsors/sindresorhus"
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/readable-stream": {
|
|
||||||
"version": "3.6.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
|
|
||||||
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"inherits": "^2.0.3",
|
|
||||||
"string_decoder": "^1.1.1",
|
|
||||||
"util-deprecate": "^1.0.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/readdirp": {
|
"node_modules/readdirp": {
|
||||||
"version": "4.1.2",
|
"version": "4.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
|
||||||
@ -7971,6 +7856,7 @@
|
|||||||
"version": "7.7.2",
|
"version": "7.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
|
||||||
"integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
|
"integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
|
||||||
|
"dev": true,
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"bin": {
|
"bin": {
|
||||||
"semver": "bin/semver.js"
|
"semver": "bin/semver.js"
|
||||||
@ -8171,51 +8057,6 @@
|
|||||||
"url": "https://github.com/sponsors/isaacs"
|
"url": "https://github.com/sponsors/isaacs"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/simple-concat": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
|
|
||||||
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"type": "github",
|
|
||||||
"url": "https://github.com/sponsors/feross"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "patreon",
|
|
||||||
"url": "https://www.patreon.com/feross"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "consulting",
|
|
||||||
"url": "https://feross.org/support"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/simple-get": {
|
|
||||||
"version": "4.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
|
|
||||||
"integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"type": "github",
|
|
||||||
"url": "https://github.com/sponsors/feross"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "patreon",
|
|
||||||
"url": "https://www.patreon.com/feross"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "consulting",
|
|
||||||
"url": "https://feross.org/support"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"decompress-response": "^6.0.0",
|
|
||||||
"once": "^1.3.1",
|
|
||||||
"simple-concat": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/slash": {
|
"node_modules/slash": {
|
||||||
"version": "5.1.0",
|
"version": "5.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
|
||||||
@ -8386,15 +8227,6 @@
|
|||||||
"node": ">= 0.8"
|
"node": ">= 0.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/string_decoder": {
|
|
||||||
"version": "1.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
|
|
||||||
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"safe-buffer": "~5.2.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/string-width": {
|
"node_modules/string-width": {
|
||||||
"version": "7.2.0",
|
"version": "7.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
|
||||||
@ -8563,34 +8395,6 @@
|
|||||||
"url": "https://opencollective.com/synckit"
|
"url": "https://opencollective.com/synckit"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/tar-fs": {
|
|
||||||
"version": "2.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz",
|
|
||||||
"integrity": "sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"chownr": "^1.1.1",
|
|
||||||
"mkdirp-classic": "^0.5.2",
|
|
||||||
"pump": "^3.0.0",
|
|
||||||
"tar-stream": "^2.1.4"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tar-stream": {
|
|
||||||
"version": "2.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
|
|
||||||
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"bl": "^4.0.3",
|
|
||||||
"end-of-stream": "^1.4.1",
|
|
||||||
"fs-constants": "^1.0.0",
|
|
||||||
"inherits": "^2.0.3",
|
|
||||||
"readable-stream": "^3.1.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tarn": {
|
"node_modules/tarn": {
|
||||||
"version": "3.0.2",
|
"version": "3.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/tarn/-/tarn-3.0.2.tgz",
|
||||||
@ -8815,18 +8619,6 @@
|
|||||||
"node": ">=0.6.x"
|
"node": ">=0.6.x"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/tunnel-agent": {
|
|
||||||
"version": "0.6.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
|
||||||
"integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"safe-buffer": "^5.0.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": "*"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/type-check": {
|
"node_modules/type-check": {
|
||||||
"version": "0.4.0",
|
"version": "0.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
|
||||||
@ -9011,12 +8803,6 @@
|
|||||||
"punycode": "^2.1.0"
|
"punycode": "^2.1.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==",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/v8-compile-cache-lib": {
|
"node_modules/v8-compile-cache-lib": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
|
||||||
@ -9255,8 +9041,18 @@
|
|||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||||
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
|
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
|
||||||
|
"dev": true,
|
||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
|
"node_modules/xtend": {
|
||||||
|
"version": "4.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
|
||||||
|
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/yargs-parser": {
|
"node_modules/yargs-parser": {
|
||||||
"version": "21.1.1",
|
"version": "21.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
|
||||||
|
@ -45,7 +45,6 @@
|
|||||||
"@vitejs/plugin-vue": "^5.2.4",
|
"@vitejs/plugin-vue": "^5.2.4",
|
||||||
"eslint": "^9.26.0",
|
"eslint": "^9.26.0",
|
||||||
"hot-hook": "^0.4.0",
|
"hot-hook": "^0.4.0",
|
||||||
"pino-pretty": "^13.0.0",
|
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.5.3",
|
||||||
"ts-node-maintained": "^10.9.5",
|
"ts-node-maintained": "^10.9.5",
|
||||||
"typescript": "~5.8.3",
|
"typescript": "~5.8.3",
|
||||||
@ -64,11 +63,13 @@
|
|||||||
"@inertiajs/vue3": "^2.0.11",
|
"@inertiajs/vue3": "^2.0.11",
|
||||||
"@vinejs/vine": "^3.0.1",
|
"@vinejs/vine": "^3.0.1",
|
||||||
"@vue/server-renderer": "^3.5.14",
|
"@vue/server-renderer": "^3.5.14",
|
||||||
"better-sqlite3": "^11.10.0",
|
|
||||||
"edge.js": "^6.2.1",
|
"edge.js": "^6.2.1",
|
||||||
"luxon": "^3.6.1",
|
"luxon": "^3.6.1",
|
||||||
|
"pg": "^8.16.0",
|
||||||
"reflect-metadata": "^0.2.2",
|
"reflect-metadata": "^0.2.2",
|
||||||
"vue": "^3.5.14"
|
"vue": "^3.5.14",
|
||||||
|
"pino-pretty": "^13.0.0"
|
||||||
|
|
||||||
},
|
},
|
||||||
"hotHook": {
|
"hotHook": {
|
||||||
"boundaries": [
|
"boundaries": [
|
||||||
|
@ -2,13 +2,18 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
|
||||||
<title inertia>AdonisJS x Inertia x VueJS</title>
|
<title inertia>
|
||||||
|
AdonisJS x Inertia x VueJS
|
||||||
|
</title>
|
||||||
|
|
||||||
<link rel="preconnect" href="https://fonts.bunny.net">
|
<link rel="preconnect" href="https://fonts.bunny.net" />
|
||||||
<link href="https://fonts.bunny.net/css?family=instrument-sans:400,400i,500,500i,600,600i,700,700i" rel="stylesheet" />
|
<link
|
||||||
|
href="https://fonts.bunny.net/css?family=instrument-sans:400,400i,500,500i,600,600i,700,700i"
|
||||||
|
rel="stylesheet"
|
||||||
|
/>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
:root {
|
:root {
|
||||||
@ -27,37 +32,39 @@
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<script src="https://cdn.tailwindcss.com"></script>
|
<script src="https://cdn.tailwindcss.com">
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
tailwind.config = {
|
tailwind.config = {
|
||||||
theme: {
|
theme: {
|
||||||
extend: {
|
extend: {
|
||||||
fontFamily: {
|
fontFamily: {
|
||||||
sans: ['Instrument Sans', 'sans-serif'],
|
sans: [ "Instrument Sans", "sans-serif" ]
|
||||||
},
|
},
|
||||||
colors: {
|
colors: {
|
||||||
primary: {
|
primary: {
|
||||||
DEFAULT: '#5A45FF',
|
DEFAULT: "#5A45FF"
|
||||||
},
|
},
|
||||||
sand: {
|
sand: {
|
||||||
1: 'var(--sand-1)',
|
1: "var(--sand-1)",
|
||||||
2: 'var(--sand-2)',
|
2: "var(--sand-2)",
|
||||||
3: 'var(--sand-3)',
|
3: "var(--sand-3)",
|
||||||
4: 'var(--sand-4)',
|
4: "var(--sand-4)",
|
||||||
5: 'var(--sand-5)',
|
5: "var(--sand-5)",
|
||||||
6: 'var(--sand-6)',
|
6: "var(--sand-6)",
|
||||||
7: 'var(--sand-7)',
|
7: "var(--sand-7)",
|
||||||
8: 'var(--sand-8)',
|
8: "var(--sand-8)",
|
||||||
9: 'var(--sand-9)',
|
9: "var(--sand-9)",
|
||||||
10: 'var(--sand-10)',
|
10: "var(--sand-10)",
|
||||||
11: 'var(--sand-11)',
|
11: "var(--sand-11)",
|
||||||
12: 'var(--sand-12)',
|
12: "var(--sand-12)"
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@vite(['inertia/app/app.ts', `inertia/pages/${page.component}.vue`])
|
@vite(['inertia/app/app.ts', `inertia/pages/${page.component}.vue`])
|
||||||
|
@ -27,7 +27,7 @@ server.use([
|
|||||||
() => import('@adonisjs/static/static_middleware'),
|
() => import('@adonisjs/static/static_middleware'),
|
||||||
() => import('@adonisjs/cors/cors_middleware'),
|
() => import('@adonisjs/cors/cors_middleware'),
|
||||||
() => import('@adonisjs/vite/vite_middleware'),
|
() => import('@adonisjs/vite/vite_middleware'),
|
||||||
() => import('@adonisjs/inertia/inertia_middleware')
|
() => import('@adonisjs/inertia/inertia_middleware'),
|
||||||
])
|
])
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -38,7 +38,7 @@ router.use([
|
|||||||
() => import('@adonisjs/core/bodyparser_middleware'),
|
() => import('@adonisjs/core/bodyparser_middleware'),
|
||||||
() => import('@adonisjs/session/session_middleware'),
|
() => import('@adonisjs/session/session_middleware'),
|
||||||
() => import('@adonisjs/shield/shield_middleware'),
|
() => import('@adonisjs/shield/shield_middleware'),
|
||||||
() => import('@adonisjs/auth/initialize_auth_middleware')
|
() => import('@adonisjs/auth/initialize_auth_middleware'),
|
||||||
])
|
])
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -47,5 +47,5 @@ router.use([
|
|||||||
*/
|
*/
|
||||||
export const middleware = router.named({
|
export const middleware = router.named({
|
||||||
guest: () => import('#middleware/guest_middleware'),
|
guest: () => import('#middleware/guest_middleware'),
|
||||||
auth: () => import('#middleware/auth_middleware')
|
auth: () => import('#middleware/auth_middleware'),
|
||||||
})
|
})
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import ReplaysController from '#controllers/replays_controller'
|
||||||
import router from '@adonisjs/core/services/router'
|
import router from '@adonisjs/core/services/router'
|
||||||
router.on('/').renderInertia('home')
|
router.on('/').renderInertia('home')
|
||||||
|
router.get('/replays', [ReplaysController, 'index'])
|
||||||
|
@ -5,7 +5,11 @@ import vue from '@vitejs/plugin-vue'
|
|||||||
import adonisjs from '@adonisjs/vite/client'
|
import adonisjs from '@adonisjs/vite/client'
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [inertia({ ssr: { enabled: true, entrypoint: 'inertia/app/ssr.ts' } }), vue(), adonisjs({ entrypoints: ['inertia/app/app.ts'], reload: ['resources/views/**/*.edge'] })],
|
plugins: [
|
||||||
|
inertia({ ssr: { enabled: true, entrypoint: 'inertia/app/ssr.ts' } }),
|
||||||
|
vue(),
|
||||||
|
adonisjs({ entrypoints: ['inertia/app/app.ts'], reload: ['resources/views/**/*.edge'] }),
|
||||||
|
],
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Define aliases for importing modules from
|
* Define aliases for importing modules from
|
||||||
|
Reference in New Issue
Block a user