fix: add admin

This commit is contained in:
2026-02-14 10:14:49 +01:00
parent 2e02d6d763
commit f2b690f3f5
86 changed files with 1057 additions and 1939 deletions

3
.nuxt/imports.d.ts vendored
View File

@@ -31,4 +31,5 @@ export { setInterval } from '#app/compat/interval';
export { definePageMeta } from '../node_modules/nuxt/dist/pages/runtime/composables';
export { defineLazyHydrationComponent } from '#app/composables/lazy-hydration';
export { useScrollAnimation } from '../app/composables/useScrollAnimation';
export { useVatRates, VatRate } from '../app/composables/useVatRates';
export { useVatRates, VatRate } from '../app/composables/useVatRates';
export { useNuxtDevTools } from '../node_modules/@nuxt/devtools/dist/runtime/use-nuxt-devtools';

View File

@@ -1,4 +1,4 @@
// generated by the @nuxtjs/tailwindcss <https://github.com/nuxt-modules/tailwindcss> module at 2/13/2026, 10:13:46 PM
// generated by the @nuxtjs/tailwindcss <https://github.com/nuxt-modules/tailwindcss> module at 2/14/2026, 10:13:39 AM
import "@nuxtjs/tailwindcss/config-ctx"
import configMerger from "@nuxtjs/tailwindcss/merger";

View File

@@ -104,7 +104,7 @@
"./imports"
],
"#app-manifest": [
"./manifest/meta/28eed3f6-8bb7-4ce5-bd5e-c2f1ff73389b"
"./manifest/meta/dev"
],
"#components": [
"./components"
@@ -181,7 +181,7 @@
"../node_modules/dist/runtime/server",
"../node_modules/*.*",
"../node_modules/dist/*.*",
"../.output",
"dev",
"../server"
]
}

View File

@@ -104,7 +104,7 @@
"./imports"
],
"#app-manifest": [
"./manifest/meta/28eed3f6-8bb7-4ce5-bd5e-c2f1ff73389b"
"./manifest/meta/dev"
],
"#components": [
"./components"

View File

@@ -104,7 +104,7 @@
"./imports"
],
"#app-manifest": [
"./manifest/meta/28eed3f6-8bb7-4ce5-bd5e-c2f1ff73389b"
"./manifest/meta/dev"
],
"#build": [
"."

View File

@@ -12,6 +12,8 @@ declare module "#build/paths.mjs";
declare module "#build/root-component.mjs";
declare module "#build/plugins.server.mjs";
declare module "#build/test-component-wrapper.mjs";
declare module "#build/devtools/settings.mjs";
declare module "#build/runtime.vue-devtools-client.nCg_nTMck4Vjq9J_TXBbUMCbducTRhoEa7hkWr4xMsk.js";
declare module "#build/routes.mjs";
declare module "#build/pages.mjs";
declare module "#build/router.options.mjs";

View File

@@ -113,6 +113,7 @@ declare global {
const useModel: typeof import('vue').useModel
const useNuxtApp: typeof import('../../node_modules/nuxt/dist/app/nuxt').useNuxtApp
const useNuxtData: typeof import('../../node_modules/nuxt/dist/app/composables/asyncData').useNuxtData
const useNuxtDevTools: typeof import('../../node_modules/@nuxt/devtools/dist/runtime/use-nuxt-devtools').useNuxtDevTools
const usePreviewMode: typeof import('../../node_modules/nuxt/dist/app/composables/preview').usePreviewMode
const useRequestEvent: typeof import('../../node_modules/nuxt/dist/app/composables/ssr').useRequestEvent
const useRequestFetch: typeof import('../../node_modules/nuxt/dist/app/composables/ssr').useRequestFetch
@@ -302,6 +303,7 @@ declare module 'vue' {
readonly useModel: UnwrapRef<typeof import('vue')['useModel']>
readonly useNuxtApp: UnwrapRef<typeof import('../../node_modules/nuxt/dist/app/nuxt')['useNuxtApp']>
readonly useNuxtData: UnwrapRef<typeof import('../../node_modules/nuxt/dist/app/composables/asyncData')['useNuxtData']>
readonly useNuxtDevTools: UnwrapRef<typeof import('../../node_modules/@nuxt/devtools/dist/runtime/use-nuxt-devtools')['useNuxtDevTools']>
readonly usePreviewMode: UnwrapRef<typeof import('../../node_modules/nuxt/dist/app/composables/preview')['usePreviewMode']>
readonly useRequestEvent: UnwrapRef<typeof import('../../node_modules/nuxt/dist/app/composables/ssr')['useRequestEvent']>
readonly useRequestFetch: UnwrapRef<typeof import('../../node_modules/nuxt/dist/app/composables/ssr')['useRequestFetch']>

View File

@@ -15,11 +15,14 @@ declare global {
const callNodeListener: typeof import('../../node_modules/h3').callNodeListener
const clearResponseHeaders: typeof import('../../node_modules/h3').clearResponseHeaders
const clearSession: typeof import('../../node_modules/h3').clearSession
const closeDb: typeof import('../../server/utils/mongodb').closeDb
const closeRedis: typeof import('../../server/utils/redis').closeRedis
const createApp: typeof import('../../node_modules/h3').createApp
const createAppEventHandler: typeof import('../../node_modules/h3').createAppEventHandler
const createError: typeof import('../../node_modules/h3').createError
const createEvent: typeof import('../../node_modules/h3').createEvent
const createEventStream: typeof import('../../node_modules/h3').createEventStream
const createRedisClient: typeof import('../../server/utils/redis').createRedisClient
const createRouter: typeof import('../../node_modules/h3').createRouter
const defaultContentType: typeof import('../../node_modules/h3').defaultContentType
const defineAppConfig: typeof import('../../node_modules/@nuxt/nitro-server/dist/runtime/utils/config').defineAppConfig
@@ -47,12 +50,14 @@ declare global {
const fromWebHandler: typeof import('../../node_modules/h3').fromWebHandler
const getAllRates: typeof import('../../server/utils/vatRates').getAllRates
const getCookie: typeof import('../../node_modules/h3').getCookie
const getDb: typeof import('../../server/utils/mongodb').getDb
const getHeader: typeof import('../../node_modules/h3').getHeader
const getHeaders: typeof import('../../node_modules/h3').getHeaders
const getMethod: typeof import('../../node_modules/h3').getMethod
const getProxyRequestHeaders: typeof import('../../node_modules/h3').getProxyRequestHeaders
const getQuery: typeof import('../../node_modules/h3').getQuery
const getRateByCode: typeof import('../../server/utils/vatRates').getRateByCode
const getRedis: typeof import('../../server/utils/redis').getRedis
const getRequestFingerprint: typeof import('../../node_modules/h3').getRequestFingerprint
const getRequestHeader: typeof import('../../node_modules/h3').getRequestHeader
const getRequestHeaders: typeof import('../../node_modules/h3').getRequestHeaders
@@ -83,6 +88,7 @@ declare global {
const isStream: typeof import('../../node_modules/h3').isStream
const isWebResponse: typeof import('../../node_modules/h3').isWebResponse
const lazyEventHandler: typeof import('../../node_modules/h3').lazyEventHandler
const logRequest: typeof import('../../server/utils/requestLogger').logRequest
const nitroPlugin: typeof import('../../node_modules/nitropack/dist/runtime/internal/plugin').nitroPlugin
const parseCookies: typeof import('../../node_modules/h3').parseCookies
const promisifyNodeListener: typeof import('../../node_modules/h3').promisifyNodeListener
@@ -135,6 +141,9 @@ declare global {
export type { EventHandler, EventHandlerRequest, EventHandlerResponse, EventHandlerObject, H3EventContext } from '../../node_modules/h3'
import('../../node_modules/h3')
// @ts-ignore
export type { RequestLogEntry } from '../../server/utils/requestLogger'
import('../../server/utils/requestLogger')
// @ts-ignore
export type { VatRateResponse } from '../../server/utils/vatRates'
import('../../server/utils/vatRates')
}
@@ -152,4 +161,7 @@ export { defineTask, runTask } from 'nitropack/runtime/internal/task';
export { defineNitroErrorHandler } from 'nitropack/runtime/internal/error/utils';
export { buildAssetsURL as __buildAssetsURL, publicAssetsURL as __publicAssetsURL } from '/home/bennet/source/vat-api/node_modules/@nuxt/nitro-server/dist/runtime/utils/paths';
export { defineAppConfig } from '/home/bennet/source/vat-api/node_modules/@nuxt/nitro-server/dist/runtime/utils/config';
export { getDb, closeDb } from '/home/bennet/source/vat-api/server/utils/mongodb';
export { getRedis, createRedisClient, closeRedis } from '/home/bennet/source/vat-api/server/utils/redis';
export { logRequest } from '/home/bennet/source/vat-api/server/utils/requestLogger';
export { getAllRates, getRateByCode } from '/home/bennet/source/vat-api/server/utils/vatRates';

View File

@@ -3,6 +3,15 @@ import type { Serialize, Simplify } from "nitropack/types";
declare module "nitropack/types" {
type Awaited<T> = T extends PromiseLike<infer U> ? Awaited<U> : T
interface InternalApi {
'/api/admin/login': {
'post': Simplify<Serialize<Awaited<ReturnType<typeof import('../../server/api/admin/login.post').default>>>>
}
'/api/admin/requests': {
'get': Simplify<Serialize<Awaited<ReturnType<typeof import('../../server/api/admin/requests.get').default>>>>
}
'/api/admin/stats': {
'get': Simplify<Serialize<Awaited<ReturnType<typeof import('../../server/api/admin/stats.get').default>>>>
}
'/api/v1/rates/:code': {
'get': Simplify<Serialize<Awaited<ReturnType<typeof import('../../server/api/v1/rates/[code].get').default>>>>
}

View File

@@ -9,18 +9,25 @@ type NuxtAppInjections =
InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/revive-payload.client.js")> &
InjectionType<typeof import("../../node_modules/nuxt/dist/head/runtime/plugins/unhead.js")> &
InjectionType<typeof import("../../node_modules/nuxt/dist/pages/runtime/plugins/router.js")> &
InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/browser-devtools-timing.client.js")> &
InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/payload.client.js")> &
InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/dev-server-logs.js")> &
InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/navigation-repaint.client.js")> &
InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/check-outdated-build.client.js")> &
InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/revive-payload.server.js")> &
InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/chunk-reload.client.js")> &
InjectionType<typeof import("../../node_modules/nuxt/dist/pages/runtime/plugins/prefetch.client.js")>
InjectionType<typeof import("../../node_modules/nuxt/dist/pages/runtime/plugins/prefetch.client.js")> &
InjectionType<typeof import("../../node_modules/nuxt/dist/pages/runtime/plugins/check-if-page-unused.js")> &
InjectionType<typeof import("../../node_modules/@nuxt/devtools/dist/runtime/plugins/devtools.server.js")> &
InjectionType<typeof import("../../node_modules/@nuxt/devtools/dist/runtime/plugins/devtools.client.js")> &
InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/warn.dev.server.js")> &
InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/check-if-layout-used.js")>
declare module '#app' {
interface NuxtApp extends NuxtAppInjections { }
interface NuxtAppLiterals {
pluginName: 'nuxt:revive-payload:client' | 'nuxt:head' | 'nuxt:router' | 'nuxt:payload' | 'nuxt:revive-payload:server' | 'nuxt:chunk-reload' | 'nuxt:global-components' | 'nuxt:prefetch'
pluginName: 'vue-devtools-client' | 'nuxt:revive-payload:client' | 'nuxt:head' | 'nuxt:router' | 'nuxt:browser-devtools-timing' | 'nuxt:payload' | 'nuxt:revive-payload:server' | 'nuxt:chunk-reload' | 'nuxt:global-components' | 'nuxt:prefetch' | 'nuxt:checkIfPageUnused' | 'nuxt:checkIfLayoutUsed'
}
}

View File

@@ -12,6 +12,12 @@ import { RuntimeConfig as UserRuntimeConfig, PublicRuntimeConfig as UserPublicRu
vatstackApiKey: string,
db: string,
redisUrl: string,
adminPassword: string,
nitro: {
envPrefix: string,
},