Migrace na OpenAPI - TypeScript typy
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { FeatureRequest, LocationKey, PizzaOrder } from "./Types";
|
||||
import { FeatureRequest, LunchChoice, PizzaVariant } from "../types";
|
||||
|
||||
export type ILocationKey = {
|
||||
locationKey: LocationKey,
|
||||
locationKey: keyof typeof LunchChoice,
|
||||
}
|
||||
|
||||
export type IDayIndex = {
|
||||
@@ -37,7 +37,7 @@ export type AddPizzaRequest = {
|
||||
}
|
||||
|
||||
export type RemovePizzaRequest = {
|
||||
pizzaOrder: PizzaOrder,
|
||||
pizzaOrder: PizzaVariant,
|
||||
}
|
||||
|
||||
export type UpdatePizzaDayNoteRequest = {
|
||||
|
||||
232
types/Types.ts
232
types/Types.ts
@@ -1,232 +0,0 @@
|
||||
/** Výčtový typ pro restaurace, pro které umíme získat a parsovat obědové menu. */
|
||||
export enum Restaurants {
|
||||
SLADOVNICKA = 'sladovnicka',
|
||||
// UMOTLIKU = 'uMotliku',
|
||||
TECHTOWER = 'techTower',
|
||||
ZASTAVKAUMICHALA = 'zastavkaUmichala',
|
||||
SENKSERIKOVA = 'senkSerikova',
|
||||
}
|
||||
|
||||
export type FoodChoices = {
|
||||
trusted: boolean,
|
||||
options: number[],
|
||||
departureTime?: string,
|
||||
note?: string,
|
||||
}
|
||||
|
||||
// TODO okomentovat / rozdělit
|
||||
export type Choices = {
|
||||
[location in LocationKey]?: {
|
||||
[login: string]: FoodChoices
|
||||
}
|
||||
}
|
||||
|
||||
/** Velikost konkrétní pizzy */
|
||||
export type PizzaSize = {
|
||||
varId: number, // unikátní ID varianty pizzy
|
||||
size: string, // velikost pizzy, např. "30cm"
|
||||
pizzaPrice: number, // cena samotné pizzy
|
||||
boxPrice: number, // cena krabice
|
||||
price: number, // celková cena (pizza + krabice)
|
||||
}
|
||||
|
||||
/** Jedna konkrétní pizza */
|
||||
export type Pizza = {
|
||||
name: string, // název pizzy
|
||||
ingredients: string[], // seznam ingrediencí
|
||||
sizes: PizzaSize[], // dostupné velikosti pizzy
|
||||
}
|
||||
|
||||
/** Objednávka jedné konkrétní pizzy */
|
||||
export type PizzaOrder = {
|
||||
varId: number, // unikátní ID varianty pizzy
|
||||
name: string, // název pizzy
|
||||
size: string, // velikost pizzy jako string (30cm)
|
||||
price: number, // cena pizzy v Kč, včetně krabice
|
||||
}
|
||||
|
||||
/** Celková objednávka jednoho člověka */
|
||||
export type Order = {
|
||||
customer: string, // jméno objednatele
|
||||
pizzaList: PizzaOrder[], // seznam objednaných pizz
|
||||
fee?: { text?: string, price: number }, // příplatek (např. za extra ingredience)
|
||||
totalPrice: number, // celková cena všech objednaných pizz, krabic a příplatků
|
||||
hasQr?: boolean, // true, pokud je k objednávce vygenerován QR kód pro platbu
|
||||
note?: string, // volitelná uživatelská poznámka k objednávce
|
||||
}
|
||||
|
||||
/** Stav pizza dne */
|
||||
export enum PizzaDayState {
|
||||
NOT_CREATED, // Pizza day nebyl založen
|
||||
CREATED, // Pizza day je založen
|
||||
LOCKED, // Objednávky uzamčeny
|
||||
ORDERED, // Pizzy objednány
|
||||
DELIVERED // Pizzy doručeny
|
||||
}
|
||||
|
||||
/** Informace o pizza day pro dnešní den */
|
||||
interface PizzaDay {
|
||||
state: PizzaDayState, // stav pizza dne
|
||||
creator: string, // jméno zakladatele
|
||||
orders: Order[], // seznam objednávek jednotlivých lidí
|
||||
}
|
||||
|
||||
/** Týdenní menu jednotlivých restaurací. */
|
||||
export type WeekMenu = {
|
||||
[dayIndex: number]: {
|
||||
[restaurant in Restaurants]?: DayMenu
|
||||
}
|
||||
}
|
||||
|
||||
/** Data vztahující se k jednomu konkrétnímu dni. */
|
||||
export type DayData = {
|
||||
date: string, // datum dne
|
||||
isWeekend: boolean, // příznak, zda je datum víkend
|
||||
weekIndex: number, // index dne v týdnu (0-6)
|
||||
choices: Choices, // seznam voleb uživatelů
|
||||
menus?: { [restaurant in Restaurants]?: DayMenu }, // menu jednotlivých restaurací
|
||||
pizzaDay?: PizzaDay, // pizza day pro dnešní den, pokud existuje
|
||||
pizzaList?: Pizza[], // seznam dostupných pizz pro dnešní den
|
||||
pizzaListLastUpdate?: Date, // datum a čas poslední aktualizace pizz
|
||||
}
|
||||
|
||||
/** Veškerá data pro zobrazení na klientovi. */
|
||||
export type ClientData = DayData & {
|
||||
todayWeekIndex?: number, // index dnešního dne v týdnu (0-6)
|
||||
}
|
||||
|
||||
/** Nabídka jídel jednoho podniku pro jeden konkrétní den. */
|
||||
export type DayMenu = {
|
||||
lastUpdate: number, // UNIX timestamp poslední aktualizace menu
|
||||
closed: boolean, // příznak, zda je daný podnik v tento den zavřený
|
||||
food: Food[], // seznam jídel v menu
|
||||
}
|
||||
|
||||
/** Jídlo z obědového menu restaurace. */
|
||||
export type Food = {
|
||||
amount?: string, // množství standardní porce, např. 0,33l nebo 150g
|
||||
name: string, // název/popis jídla
|
||||
price: string, // cena ve formátu '135 Kč'
|
||||
isSoup: boolean, // příznak, zda se jedná o polévku
|
||||
}
|
||||
|
||||
// TODO tohle je dost špatné pojmenování, vzhledem k tomu co to obsahuje
|
||||
// TODO pokud by se použilo ovládáni výběru obědu kliknutím, pak bych restaurace z tohoto výčtu vyhodil
|
||||
export enum Locations {
|
||||
SLADOVNICKA = 'Sladovnická',
|
||||
// UMOTLIKU = 'U Motlíků',
|
||||
TECHTOWER = 'TechTower',
|
||||
ZASTAVKAUMICHALA = 'Zastávka u Michala',
|
||||
SENKSERIKOVA = 'Pivovarský šenk Šeříková',
|
||||
SPSE = 'SPŠE',
|
||||
PIZZA = 'Pizza day',
|
||||
OBJEDNAVAM = 'Budu objednávat',
|
||||
NEOBEDVAM = 'Mám vlastní/neobědvám',
|
||||
ROZHODUJI = 'Rozhoduji se',
|
||||
}
|
||||
|
||||
// TODO totéž
|
||||
export type LocationKey = keyof typeof Locations;
|
||||
|
||||
export enum UdalostEnum {
|
||||
ZAHAJENA_PIZZA = "Zahájen pizza day",
|
||||
OBJEDNANA_PIZZA = "Objednána pizza",
|
||||
JDEME_NA_OBED = "Jdeme na oběd",
|
||||
}
|
||||
|
||||
export type NotififaceInput = {
|
||||
udalost: UdalostEnum,
|
||||
user: string,
|
||||
}
|
||||
|
||||
export type NotifikaceData = {
|
||||
input: NotififaceInput,
|
||||
gotify?: boolean,
|
||||
teams?: boolean,
|
||||
ntfy?: boolean,
|
||||
}
|
||||
|
||||
export type GotifyServer = {
|
||||
server: string;
|
||||
api_keys: string[];
|
||||
}
|
||||
|
||||
/** Čas preferovaného odchodu na oběd. */
|
||||
export enum DepartureTime {
|
||||
T10_00 = "10:00",
|
||||
T10_15 = "10:15",
|
||||
T10_30 = "10:30",
|
||||
T10_45 = "10:45",
|
||||
T11_00 = "11:00",
|
||||
T11_15 = "11:15",
|
||||
T11_30 = "11:30",
|
||||
T11_45 = "11:45",
|
||||
T12_00 = "12:00",
|
||||
T12_15 = "12:15",
|
||||
T12_30 = "12:30",
|
||||
T12_45 = "12:45",
|
||||
T13_00 = "13:00",
|
||||
}
|
||||
|
||||
export enum FeatureRequest {
|
||||
CUSTOM_QR = "Ruční generování QR kódů mimo Pizza day (např. při objednávání)",
|
||||
FAVORITES = "Možnost označovat si jídla jako oblíbená (taková jídla by se uživateli následně zvýrazňovala)",
|
||||
SINGLE_PAYMENT = "Možnost úhrady v podniku za všechny jednou osobou a následné generování QR ostatním",
|
||||
NO_WEEKENDS = "Zrušení \"užívejte víkend\", místo toho umožnit zpětně náhled na uplynulý týden",
|
||||
QR_FOREVER = "Umožnění zobrazení vygenerovaného QR kódu i po následující dny (dokud ho uživatel ručně \"nezavře\", např. tlačítkem \"Zaplatil jsem\")",
|
||||
PIZZA_PICTURES = "Zobrazování náhledů (fotografií) pizz v rámci Pizza day",
|
||||
STATISTICS = "Statistiky (nejoblíbenější podnik, nejpopulárnější jídla, nejobjednávanější pizzy, nejčastější uživatelé, ...)",
|
||||
RESPONSIVITY = "Vylepšení responzivního designu",
|
||||
SECURITY = "Zvýšení zabezpečení aplikace",
|
||||
SAFETY = "Zvýšená ochrana proti chybám uživatele (potvrzovací dialogy, překliky, ...)",
|
||||
UI = "Celkové vylepšení UI/UX",
|
||||
DEVELOPMENT = "Zlepšení dokumentace/postupů pro ostatní vývojáře"
|
||||
}
|
||||
|
||||
export type EasterEgg = {
|
||||
path: string;
|
||||
url: string;
|
||||
startOffset: number;
|
||||
endOffset: number;
|
||||
duration: number;
|
||||
width?: string;
|
||||
zIndex?: number;
|
||||
position?: "absolute";
|
||||
animationName?: string;
|
||||
animationDuration?: string;
|
||||
animationTimingFunction?: string;
|
||||
}
|
||||
|
||||
// TODO aktuálně se k ničemu nepoužívá
|
||||
export type AnimationPosition = {
|
||||
left?: string,
|
||||
startLeft?: string,
|
||||
"--start-left"?: string,
|
||||
right?: string,
|
||||
startRight?: string,
|
||||
"--start-right"?: string,
|
||||
top?: string,
|
||||
startTop?: string,
|
||||
"--start-top"?: string,
|
||||
bottom?: string,
|
||||
startBottom?: string,
|
||||
"--start-bottom"?: string,
|
||||
endLeft?: string,
|
||||
"--end-left"?: string,
|
||||
endRight?: string,
|
||||
"--end-right"?: string,
|
||||
endTop?: string,
|
||||
"--end-top"?: string,
|
||||
endBottom?: string,
|
||||
"--end-bottom"?: string,
|
||||
rotate?: string,
|
||||
}
|
||||
|
||||
/** Statistiky pro jeden konkrétní den. */
|
||||
export type DailyStats = {
|
||||
date: string, // zkrácené datum v human-readable formátu (např. 24.02.)
|
||||
locations: { [location in LocationKey]?: number }
|
||||
}
|
||||
|
||||
/** Statistiky pro jeden konkrétní týden (pondělí-pátek) */
|
||||
export type WeeklyStats = [DailyStats, DailyStats, DailyStats, DailyStats, DailyStats];
|
||||
650
types/api.yml
Normal file
650
types/api.yml
Normal file
@@ -0,0 +1,650 @@
|
||||
openapi: 3.0.4
|
||||
info:
|
||||
title: Luncher API
|
||||
version: 1.0.0
|
||||
servers:
|
||||
- url: /api
|
||||
paths:
|
||||
/login:
|
||||
post:
|
||||
summary: Přihlášení uživatele
|
||||
security: [] # Nevyžaduje autentizaci
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
login:
|
||||
type: string
|
||||
description: Přihlašovací jméno uživatele. Vyžadováno pouze pokud není předáno pomocí hlaviček.
|
||||
responses:
|
||||
"200":
|
||||
description: Přihlášení bylo úspěšné
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/JWTToken"
|
||||
/qr:
|
||||
get:
|
||||
summary: Získání QR kódu pro platbu za Pizza day
|
||||
security: [] # Nevyžaduje autentizaci
|
||||
parameters:
|
||||
- in: query
|
||||
name: login
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
description: Přihlašovací jméno uživatele, pro kterého bude vrácen QR kód
|
||||
responses:
|
||||
"200":
|
||||
description: Vygenerovaný QR kód pro platbu
|
||||
content:
|
||||
image/png:
|
||||
schema:
|
||||
type: string
|
||||
format: binary
|
||||
/data:
|
||||
get:
|
||||
summary: Načtení klientských dat pro aktuální nebo předaný den
|
||||
parameters:
|
||||
- in: query
|
||||
name: dayIndex
|
||||
description: Index dne v týdnu. Pokud není předán, je použit aktuální den.
|
||||
schema:
|
||||
type: integer
|
||||
minimum: 0
|
||||
maximum: 4
|
||||
responses:
|
||||
"200":
|
||||
$ref: "#/components/responses/ClientDataResponse"
|
||||
/addChoice:
|
||||
post:
|
||||
summary: Přidání či nahrazení volby uživatele pro zvolený den/podnik
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
required:
|
||||
- locationKey
|
||||
allOf:
|
||||
- locationKey:
|
||||
$ref: "#/components/schemas/LunchChoice"
|
||||
- dayIndex:
|
||||
$ref: "#/components/schemas/DayIndex"
|
||||
- foodIndex:
|
||||
$ref: "#/components/schemas/FoodIndex"
|
||||
responses:
|
||||
"200":
|
||||
$ref: "#/components/responses/ClientDataResponse"
|
||||
/removeChoices:
|
||||
post:
|
||||
summary: Odstranění volby uživatele pro zvolený den/podnik, včetně případných jídel
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
required:
|
||||
- locationKey
|
||||
allOf:
|
||||
- locationKey:
|
||||
$ref: "#/components/schemas/LunchChoice"
|
||||
- dayIndex:
|
||||
$ref: "#/components/schemas/DayIndex"
|
||||
responses:
|
||||
"200":
|
||||
$ref: "#/components/responses/ClientDataResponse"
|
||||
components:
|
||||
schemas:
|
||||
# --- OBECNÉ ---
|
||||
JWTToken:
|
||||
type: object
|
||||
description: Klientský JWT token pro autentizaci a autorizaci
|
||||
required:
|
||||
- login
|
||||
- trusted
|
||||
- iat
|
||||
properties:
|
||||
login:
|
||||
type: string
|
||||
description: Přihlašovací jméno uživatele
|
||||
trusted:
|
||||
type: boolean
|
||||
description: Příznak, zda se jedná o uživatele ověřeného doménovým přihlášením
|
||||
iat:
|
||||
type: number
|
||||
description: Časové razítko vydání tokenu
|
||||
ClientData:
|
||||
description: Klientská data pro jeden konkrétní den. Obsahuje menu všech načtených podniků a volby jednotlivých uživatelů.
|
||||
type: object
|
||||
additionalProperties: false
|
||||
required:
|
||||
- todayDayIndex
|
||||
- date
|
||||
- isWeekend
|
||||
- choices
|
||||
properties:
|
||||
todayDayIndex:
|
||||
description: Index dnešního dne v týdnu
|
||||
$ref: "#/components/schemas/DayIndex"
|
||||
date:
|
||||
description: Human-readable datum dne
|
||||
type: string
|
||||
isWeekend:
|
||||
description: Příznak, zda je tento den víkend
|
||||
type: boolean
|
||||
dayIndex:
|
||||
description: Index dne v týdnu, ke kterému se vztahují tato data
|
||||
$ref: "#/components/schemas/DayIndex"
|
||||
choices:
|
||||
$ref: "#/components/schemas/LunchChoices"
|
||||
menus:
|
||||
$ref: "#/components/schemas/RestaurantDayMenuMap"
|
||||
pizzaDay:
|
||||
$ref: "#/components/schemas/PizzaDay"
|
||||
pizzaList:
|
||||
description: Seznam dostupných pizz pro předaný den
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/components/schemas/Pizza"
|
||||
pizzaListLastUpdate:
|
||||
description: Datum a čas poslední aktualizace pizz
|
||||
type: string
|
||||
format: date-time
|
||||
|
||||
# --- OBĚDY ---
|
||||
UserLunchChoice:
|
||||
description: Konkrétní volba stravování jednoho uživatele v konkrétní den. Může se jednat jak o stravovací podnik, tak možnosti "budu objednávat", "neobědvám" apod.
|
||||
additionalProperties: false
|
||||
properties:
|
||||
# TODO toto je tu z dost špatného důvodu, viz použití - mělo by se místo toho z loginu zjišťovat zda je uživatel trusted
|
||||
trusted:
|
||||
description: Příznak, zda byla tato volba provedena uživatelem ověřeným doménovým přihlášením
|
||||
type: boolean
|
||||
selectedFoods:
|
||||
description: Pole indexů vybraných jídel v rámci dané restaurace. Index představuje pořadí jídla v menu dané restaurace.
|
||||
type: array
|
||||
items:
|
||||
type: integer
|
||||
departureTime:
|
||||
description: Čas preferovaného odchodu do dané restaurace v human-readable formátu (např. 12:00)
|
||||
type: string
|
||||
note:
|
||||
description: Volitelná, veřejně viditelná uživatelská poznámka k vybrané volbě
|
||||
type: string
|
||||
LocationLunchChoicesMap:
|
||||
description: Objekt, kde klíčem je možnost stravování ((#/components/schemas/LunchChoice)) a hodnotou množina uživatelů s touto volbou ((#/components/schemas/LunchChoices)).
|
||||
type: object
|
||||
additionalProperties:
|
||||
$ref: "#/components/schemas/UserLunchChoice"
|
||||
LunchChoices:
|
||||
description: Objekt, představující volby všech uživatelů pro konkrétní den. Klíčem je (#/components/schemas/LunchChoice).
|
||||
type: object
|
||||
properties:
|
||||
SLADOVNICKA:
|
||||
$ref: "#/components/schemas/LocationLunchChoicesMap"
|
||||
TECHTOWER:
|
||||
$ref: "#/components/schemas/LocationLunchChoicesMap"
|
||||
ZASTAVKAUMICHALA:
|
||||
$ref: "#/components/schemas/LocationLunchChoicesMap"
|
||||
SENKSERIKOVA:
|
||||
$ref: "#/components/schemas/LocationLunchChoicesMap"
|
||||
SPSE:
|
||||
$ref: "#/components/schemas/LocationLunchChoicesMap"
|
||||
PIZZA:
|
||||
$ref: "#/components/schemas/LocationLunchChoicesMap"
|
||||
OBJEDNAVAM:
|
||||
$ref: "#/components/schemas/LocationLunchChoicesMap"
|
||||
NEOBEDVAM:
|
||||
$ref: "#/components/schemas/LocationLunchChoicesMap"
|
||||
ROZHODUJI:
|
||||
$ref: "#/components/schemas/LocationLunchChoicesMap"
|
||||
Restaurant:
|
||||
description: Stravovací zařízení (restaurace, jídelna, hospoda, ...)
|
||||
type: string
|
||||
enum:
|
||||
- Sladovnická
|
||||
- TechTower
|
||||
- Zastávka u Michala
|
||||
- Šenk Šeříková
|
||||
x-enum-varnames:
|
||||
- SLADOVNICKA
|
||||
- TECHTOWER
|
||||
- ZASTAVKAUMICHALA
|
||||
- SENKSERIKOVA
|
||||
LunchChoice:
|
||||
description: Konkrétní možnost stravování (konkrétní restaurace, pizza day, objednání, neobědvání, rozhodování se, ...)
|
||||
type: string
|
||||
enum:
|
||||
- Sladovnická
|
||||
- TechTower
|
||||
- Zastávka u Michala
|
||||
- Šenk Šeříková
|
||||
- SPŠE
|
||||
- Pizza day
|
||||
- Budu objednávat
|
||||
- Neobědvám
|
||||
- Rozhoduji se
|
||||
x-enum-varnames:
|
||||
- SLADOVNICKA
|
||||
- TECHTOWER
|
||||
- ZASTAVKAUMICHALA
|
||||
- SENKSERIKOVA
|
||||
- SPSE
|
||||
- PIZZA
|
||||
- OBJEDNAVAM
|
||||
- NEOBEDVAM
|
||||
- ROZHODUJI
|
||||
DayIndex:
|
||||
description: Index dne v týdnu (0 = pondělí, 4 = pátek)
|
||||
type: integer
|
||||
minimum: 0
|
||||
maximum: 4
|
||||
FoodIndex:
|
||||
description: Pořadový index jídla v menu konkrétní restaurace
|
||||
type: integer
|
||||
minimum: 0
|
||||
Food:
|
||||
description: Konkrétní jídlo z menu restaurace
|
||||
type: object
|
||||
additionalProperties: false
|
||||
required:
|
||||
- name
|
||||
- isSoup
|
||||
properties:
|
||||
amount:
|
||||
description: Množství standardní porce, např. 0,33l nebo 150g
|
||||
type: string
|
||||
name:
|
||||
description: Název/popis jídla
|
||||
type: string
|
||||
price:
|
||||
description: Cena ve formátu '135 Kč'
|
||||
type: string
|
||||
isSoup:
|
||||
description: Příznak, zda se jedná o polévku
|
||||
type: boolean
|
||||
RestaurantDayMenu:
|
||||
description: Menu restaurace na konkrétní den
|
||||
type: object
|
||||
additionalProperties: false
|
||||
properties:
|
||||
lastUpdate:
|
||||
description: UNIX timestamp poslední aktualizace menu
|
||||
type: integer
|
||||
closed:
|
||||
description: Příznak, zda je daný podnik v daný den zavřený
|
||||
type: boolean
|
||||
food:
|
||||
description: Seznam jídel pro daný den
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/components/schemas/Food"
|
||||
RestaurantDayMenuMap:
|
||||
description: Objekt, kde klíčem je podnik ((#/components/schemas/Restaurant)) a hodnotou denní menu daného podniku ((#/components/schemas/RestaurantDayMenu))
|
||||
type: object
|
||||
additionalProperties: false
|
||||
properties:
|
||||
SLADOVNICKA:
|
||||
$ref: "#/components/schemas/RestaurantDayMenu"
|
||||
TECHTOWER:
|
||||
$ref: "#/components/schemas/RestaurantDayMenu"
|
||||
ZASTAVKAUMICHALA:
|
||||
$ref: "#/components/schemas/RestaurantDayMenu"
|
||||
SENKSERIKOVA:
|
||||
$ref: "#/components/schemas/RestaurantDayMenu"
|
||||
WeekMenu:
|
||||
description: Pole týdenních menu jednotlivých podniků. Indexem je den v týdnu (0 = pondělí, 4 = pátek), hodnotou denní menu daného podniku.
|
||||
type: array
|
||||
minItems: 5
|
||||
maxItems: 5
|
||||
items:
|
||||
$ref: "#/components/schemas/RestaurantDayMenuMap"
|
||||
DepartureTime:
|
||||
description: Preferovaný čas odchodu na oběd
|
||||
type: string
|
||||
enum:
|
||||
- "10:00"
|
||||
- "10:15"
|
||||
- "10:30"
|
||||
- "10:45"
|
||||
- "11:00"
|
||||
- "11:15"
|
||||
- "11:30"
|
||||
- "11:45"
|
||||
- "12:00"
|
||||
- "12:15"
|
||||
- "12:30"
|
||||
- "12:45"
|
||||
- "13:00"
|
||||
x-enum-varnames:
|
||||
- T10_00
|
||||
- T10_15
|
||||
- T10_30
|
||||
- T10_45
|
||||
- T11_00
|
||||
- T11_15
|
||||
- T11_30
|
||||
- T11_45
|
||||
- T12_00
|
||||
- T12_15
|
||||
- T12_30
|
||||
- T12_45
|
||||
- T13_00
|
||||
|
||||
# --- HLASOVÁNÍ ---
|
||||
FeatureRequest:
|
||||
type: string
|
||||
enum:
|
||||
- Ruční generování QR kódů mimo Pizza day (např. při objednávání)
|
||||
- Možnost označovat si jídla jako oblíbená (taková jídla by se uživateli následně zvýrazňovala)
|
||||
- Možnost úhrady v podniku za všechny jednou osobou a následné generování QR ostatním
|
||||
- Zrušení \"užívejte víkend\", místo toho umožnit zpětně náhled na uplynulý týden
|
||||
- Umožnění zobrazení vygenerovaného QR kódu i po následující dny (dokud ho uživatel ručně \"nezavře\", např. tlačítkem \"Zaplatil jsem\")
|
||||
- Zobrazování náhledů (fotografií) pizz v rámci Pizza day
|
||||
- Statistiky (nejoblíbenější podnik, nejpopulárnější jídla, nejobjednávanější pizzy, nejčastější uživatelé, ...)
|
||||
- Vylepšení responzivního designu
|
||||
- Zvýšení zabezpečení aplikace
|
||||
- Zvýšená ochrana proti chybám uživatele (potvrzovací dialogy, překliky, ...)
|
||||
- Celkové vylepšení UI/UX
|
||||
- Zlepšení dokumentace/postupů pro ostatní vývojáře
|
||||
x-enum-varnames:
|
||||
- CUSTOM_QR
|
||||
- FAVORITES
|
||||
- SINGLE_PAYMENT
|
||||
- NO_WEEKENDS
|
||||
- QR_FOREVER
|
||||
- PIZZA_PICTURES
|
||||
- STATISTICS
|
||||
- RESPONSIVITY
|
||||
- SECURITY
|
||||
- SAFETY
|
||||
- UI
|
||||
- DEVELOPMENT
|
||||
|
||||
# --- EASTER EGGS ---
|
||||
EasterEgg:
|
||||
description: Data pro zobrazení easter eggů
|
||||
type: object
|
||||
additionalProperties: false
|
||||
required:
|
||||
- path
|
||||
- url
|
||||
- startOffset
|
||||
- endOffset
|
||||
- duration
|
||||
properties:
|
||||
path:
|
||||
type: string
|
||||
url:
|
||||
type: string
|
||||
startOffset:
|
||||
type: number
|
||||
endOffset:
|
||||
type: number
|
||||
duration:
|
||||
type: number
|
||||
width:
|
||||
type: string
|
||||
zIndex:
|
||||
type: integer
|
||||
position:
|
||||
type: string
|
||||
enum:
|
||||
- absolute
|
||||
animationName:
|
||||
type: string
|
||||
animationDuration:
|
||||
type: string
|
||||
animationTimingFunction:
|
||||
type: string
|
||||
|
||||
# --- STATISTIKY ---
|
||||
LocationStats:
|
||||
description: Objekt, kde klíčem je zvolená možnost a hodnotou počet uživatelů, kteří tuto možnosti zvolili
|
||||
type: object
|
||||
additionalProperties: false
|
||||
properties:
|
||||
# Bohužel OpenAPI neumí nadefinovat objekt, kde klíčem může být pouze hodnota existujícího enumu :(
|
||||
SLADOVNICKA:
|
||||
type: number
|
||||
TECHTOWER:
|
||||
type: number
|
||||
ZASTAVKAUMICHALA:
|
||||
type: number
|
||||
SENKSERIKOVA:
|
||||
type: number
|
||||
SPSE:
|
||||
type: number
|
||||
PIZZA:
|
||||
type: number
|
||||
OBJEDNAVAM:
|
||||
type: number
|
||||
NEOBEDVAM:
|
||||
type: number
|
||||
ROZHODUJI:
|
||||
type: number
|
||||
DailyStats:
|
||||
description: Statistika vybraných možností pro jeden konkrétní den
|
||||
type: object
|
||||
additionalProperties: false
|
||||
required:
|
||||
- date
|
||||
- locations
|
||||
properties:
|
||||
date:
|
||||
description: Datum v human-readable formátu
|
||||
type: string
|
||||
locations:
|
||||
$ref: "#/components/schemas/LocationStats"
|
||||
WeeklyStats:
|
||||
description: Pole statistik vybraných možností pro jeden konkrétní týden. Index představuje den v týdnu (0 = pondělí, 4 = pátek)
|
||||
type: array
|
||||
minItems: 5
|
||||
maxItems: 5
|
||||
items:
|
||||
$ref: "#/components/schemas/DailyStats"
|
||||
|
||||
# --- PIZZA DAY ---
|
||||
PizzaDayState:
|
||||
description: Stav pizza day
|
||||
type: string
|
||||
enum:
|
||||
- Pizza day nebyl založen
|
||||
- Pizza day je založen
|
||||
- Objednávky uzamčeny
|
||||
- Pizzy objednány
|
||||
- Pizzy doručeny
|
||||
x-enum-varnames:
|
||||
- NOT_CREATED
|
||||
- CREATED
|
||||
- LOCKED
|
||||
- ORDERED
|
||||
- DELIVERED
|
||||
# TODO toto je jen rozšířená varianta PizzaVariant - sloučit do jednoho objektu
|
||||
PizzaSize:
|
||||
description: Údaje o konkrétní variantě pizzy
|
||||
type: object
|
||||
additionalProperties: false
|
||||
required:
|
||||
- varId
|
||||
- size
|
||||
- pizzaPrice
|
||||
- boxPrice
|
||||
- price
|
||||
properties:
|
||||
varId:
|
||||
description: Unikátní identifikátor varianty pizzy
|
||||
type: integer
|
||||
size:
|
||||
description: Velikost pizzy, např. "30cm"
|
||||
type: string
|
||||
pizzaPrice:
|
||||
description: Cena samotné pizzy v Kč
|
||||
type: number
|
||||
boxPrice:
|
||||
description: Cena krabice pizzy v Kč
|
||||
type: number
|
||||
price:
|
||||
description: Celková cena (pizza + krabice)
|
||||
type: number
|
||||
Pizza:
|
||||
description: Údaje o konkrétní pizze.
|
||||
type: object
|
||||
additionalProperties: false
|
||||
required:
|
||||
- name
|
||||
- ingredients
|
||||
- sizes
|
||||
properties:
|
||||
name:
|
||||
description: Název pizzy
|
||||
type: string
|
||||
ingredients:
|
||||
description: Seznam obsažených ingrediencí
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
sizes:
|
||||
description: Dostupné velikosti pizzy
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/components/schemas/PizzaSize"
|
||||
PizzaVariant:
|
||||
description: Konkrétní varianta (velikost) jedné pizzy.
|
||||
type: object
|
||||
additionalProperties: false
|
||||
required:
|
||||
- varId
|
||||
- name
|
||||
- size
|
||||
- price
|
||||
properties:
|
||||
varId:
|
||||
description: Unikátní identifikátor varianty pizzy
|
||||
type: integer
|
||||
name:
|
||||
description: Název pizzy
|
||||
type: string
|
||||
size:
|
||||
description: Velikost pizzy (např. "30cm")
|
||||
type: string
|
||||
price:
|
||||
description: Cena pizzy v Kč, včetně krabice
|
||||
type: number
|
||||
PizzaOrder:
|
||||
description: Údaje o objednávce pizzy jednoho uživatele.
|
||||
type: object
|
||||
additionalProperties: false
|
||||
required:
|
||||
- customer
|
||||
- totalPrice
|
||||
- hasQr
|
||||
properties:
|
||||
customer:
|
||||
description: Jméno objednávajícího uživatele
|
||||
type: string
|
||||
pizzaList:
|
||||
description: Seznam variant pizz k objednání (typicky bývá jen jedna)
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/components/schemas/PizzaVariant"
|
||||
fee:
|
||||
description: Příplatek (např. za extra ingredience)
|
||||
type: object
|
||||
properties:
|
||||
text:
|
||||
description: Popis příplatku (např. "kuřecí maso navíc")
|
||||
type: string
|
||||
price:
|
||||
description: Cena příplatku v Kč
|
||||
type: number
|
||||
totalPrice:
|
||||
description: Celková cena všech objednaných pizz daného uživatele, včetně krabic a příplatků
|
||||
type: number
|
||||
hasQr:
|
||||
description: |
|
||||
Příznak, pokud je k této objednávce vygenerován QR kód pro platbu. To je typicky pravda, pokud:
|
||||
- objednávající má v nastavení vyplněno číslo účtu
|
||||
- pizza day je ve stavu DELIVERED (Pizzy byly doručeny)
|
||||
note:
|
||||
description: Volitelná uživatelská poznámka pro objednávajícího (např. "bez oliv")
|
||||
type: string
|
||||
PizzaDay:
|
||||
description: Data o Pizza day pro konkrétní den
|
||||
type: object
|
||||
additionalProperties: false
|
||||
properties:
|
||||
state:
|
||||
$ref: "#/components/schemas/PizzaDayState"
|
||||
creator:
|
||||
description: "Jméno zakladatele pizza day"
|
||||
type: string
|
||||
orders:
|
||||
description: Pole objednávek jednotlivých uživatelů
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/components/schemas/PizzaOrder"
|
||||
|
||||
# --- NOTIFIKACE ---
|
||||
UdalostEnum:
|
||||
type: string
|
||||
enum:
|
||||
- Zahájen pizza day
|
||||
- Objednána pizza
|
||||
- Jdeme na oběd
|
||||
x-enum-varnames:
|
||||
- ZAHAJENA_PIZZA
|
||||
- OBJEDNANA_PIZZA
|
||||
- JDEME_NA_OBED
|
||||
NotifikaceInput:
|
||||
type: object
|
||||
required:
|
||||
- udalost
|
||||
- user
|
||||
properties:
|
||||
udalost:
|
||||
$ref: "#/components/schemas/UdalostEnum"
|
||||
user:
|
||||
type: string
|
||||
NotifikaceData:
|
||||
type: object
|
||||
required:
|
||||
- input
|
||||
properties:
|
||||
input:
|
||||
$ref: "#/components/schemas/NotifikaceInput"
|
||||
gotify:
|
||||
type: boolean
|
||||
teams:
|
||||
type: boolean
|
||||
ntfy:
|
||||
type: boolean
|
||||
GotifyServer:
|
||||
type: object
|
||||
required:
|
||||
- server
|
||||
- api_keys
|
||||
properties:
|
||||
server:
|
||||
type: string
|
||||
api_keys:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
responses:
|
||||
ClientDataResponse:
|
||||
description: Aktuální data pro klienta
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/ClientData"
|
||||
securitySchemes:
|
||||
bearerAuth:
|
||||
type: http
|
||||
scheme: bearer
|
||||
bearerFormat: JWT
|
||||
security:
|
||||
- bearerAuth: []
|
||||
@@ -1,2 +1,2 @@
|
||||
export * from './Types';
|
||||
export * from './RequestTypes';
|
||||
export * from './RequestTypes';
|
||||
export * from './gen';
|
||||
14
types/openapi-ts.config.ts
Normal file
14
types/openapi-ts.config.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import { defaultPlugins } from '@hey-api/openapi-ts';
|
||||
|
||||
export default {
|
||||
input: 'api.yml',
|
||||
output: 'gen',
|
||||
plugins: [
|
||||
...defaultPlugins,
|
||||
'@hey-api/client-fetch',
|
||||
{
|
||||
enums: 'javascript',
|
||||
name: '@hey-api/typescript',
|
||||
},
|
||||
],
|
||||
};
|
||||
11
types/package.json
Normal file
11
types/package.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "@luncher/types",
|
||||
"version": "1.0.0",
|
||||
"license": "MIT",
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"@hey-api/client-fetch": "^0.8.2",
|
||||
"@hey-api/openapi-ts": "^0.64.7",
|
||||
"typescript": "^5.0.2"
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,6 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"declaration": true,
|
||||
// "emitDeclarationOnly": true,
|
||||
// "outDir": "./dist",
|
||||
"noEmit": true
|
||||
},
|
||||
"include": [
|
||||
|
||||
309
types/yarn.lock
Normal file
309
types/yarn.lock
Normal file
@@ -0,0 +1,309 @@
|
||||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@hey-api/client-fetch@^0.8.2":
|
||||
version "0.8.2"
|
||||
resolved "https://registry.yarnpkg.com/@hey-api/client-fetch/-/client-fetch-0.8.2.tgz#675aadfbc9478bb8eef5679f11a9334258dff4c8"
|
||||
integrity sha512-61T4UGfAzY5345vMxWDX8qnSTNRJcOpWuZyvNu3vNebCTLPwMQAM85mhEuBoACdWeRtLhNoUjU0UR5liRyD1bA==
|
||||
|
||||
"@hey-api/json-schema-ref-parser@1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@hey-api/json-schema-ref-parser/-/json-schema-ref-parser-1.0.2.tgz#c3824c5d9d531eeb5c2b2557857a8ad20b5c75a7"
|
||||
integrity sha512-F6LSkttZcT/XiX3ydeDqTY3uRN3BLJMwyMTk4kg/ichZlKUp3+3Odv0WokSmXGSoZGTW/N66FROMYAm5NPdJlA==
|
||||
dependencies:
|
||||
"@jsdevtools/ono" "^7.1.3"
|
||||
"@types/json-schema" "^7.0.15"
|
||||
js-yaml "^4.1.0"
|
||||
|
||||
"@hey-api/openapi-ts@^0.64.7":
|
||||
version "0.64.7"
|
||||
resolved "https://registry.yarnpkg.com/@hey-api/openapi-ts/-/openapi-ts-0.64.7.tgz#f239d268b4a35b91f5ff25479d15578feb01f365"
|
||||
integrity sha512-xpaBzdGAKz7cPuGah1GZWl3zTZquOXRnwmpVCQKEUpvDtSYWBLjSxtAYIqDBjwJkuNHcakZBIWLcappx7slc2g==
|
||||
dependencies:
|
||||
"@hey-api/json-schema-ref-parser" "1.0.2"
|
||||
c12 "2.0.1"
|
||||
commander "13.0.0"
|
||||
handlebars "4.7.8"
|
||||
|
||||
"@jsdevtools/ono@^7.1.3":
|
||||
version "7.1.3"
|
||||
resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796"
|
||||
integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==
|
||||
|
||||
"@types/json-schema@^7.0.15":
|
||||
version "7.0.15"
|
||||
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
|
||||
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
|
||||
|
||||
acorn@^8.14.0:
|
||||
version "8.14.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0"
|
||||
integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==
|
||||
|
||||
argparse@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
|
||||
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
|
||||
|
||||
c12@2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/c12/-/c12-2.0.1.tgz#5702d280b31a08abba39833494c9b1202f0f5aec"
|
||||
integrity sha512-Z4JgsKXHG37C6PYUtIxCfLJZvo6FyhHJoClwwb9ftUkLpPSkuYqn6Tr+vnaN8hymm0kIbcg6Ey3kv/Q71k5w/A==
|
||||
dependencies:
|
||||
chokidar "^4.0.1"
|
||||
confbox "^0.1.7"
|
||||
defu "^6.1.4"
|
||||
dotenv "^16.4.5"
|
||||
giget "^1.2.3"
|
||||
jiti "^2.3.0"
|
||||
mlly "^1.7.1"
|
||||
ohash "^1.1.4"
|
||||
pathe "^1.1.2"
|
||||
perfect-debounce "^1.0.0"
|
||||
pkg-types "^1.2.0"
|
||||
rc9 "^2.1.2"
|
||||
|
||||
chokidar@^4.0.1:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30"
|
||||
integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==
|
||||
dependencies:
|
||||
readdirp "^4.0.1"
|
||||
|
||||
chownr@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
|
||||
integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
|
||||
|
||||
citty@^0.1.6:
|
||||
version "0.1.6"
|
||||
resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.6.tgz#0f7904da1ed4625e1a9ea7e0fa780981aab7c5e4"
|
||||
integrity sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==
|
||||
dependencies:
|
||||
consola "^3.2.3"
|
||||
|
||||
commander@13.0.0:
|
||||
version "13.0.0"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-13.0.0.tgz#1b161f60ee3ceb8074583a0f95359a4f8701845c"
|
||||
integrity sha512-oPYleIY8wmTVzkvQq10AEok6YcTC4sRUBl8F9gVuwchGVUCTbl/vhLTaQqutuuySYOsu8YTgV+OxKc/8Yvx+mQ==
|
||||
|
||||
confbox@^0.1.7, confbox@^0.1.8:
|
||||
version "0.1.8"
|
||||
resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.8.tgz#820d73d3b3c82d9bd910652c5d4d599ef8ff8b06"
|
||||
integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==
|
||||
|
||||
consola@^3.2.3, consola@^3.4.0:
|
||||
version "3.4.0"
|
||||
resolved "https://registry.yarnpkg.com/consola/-/consola-3.4.0.tgz#4cfc9348fd85ed16a17940b3032765e31061ab88"
|
||||
integrity sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==
|
||||
|
||||
defu@^6.1.4:
|
||||
version "6.1.4"
|
||||
resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479"
|
||||
integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==
|
||||
|
||||
destr@^2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/destr/-/destr-2.0.3.tgz#7f9e97cb3d16dbdca7be52aca1644ce402cfe449"
|
||||
integrity sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==
|
||||
|
||||
dotenv@^16.4.5:
|
||||
version "16.4.7"
|
||||
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.7.tgz#0e20c5b82950140aa99be360a8a5f52335f53c26"
|
||||
integrity sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==
|
||||
|
||||
fs-minipass@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
|
||||
integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
|
||||
dependencies:
|
||||
minipass "^3.0.0"
|
||||
|
||||
giget@^1.2.3:
|
||||
version "1.2.5"
|
||||
resolved "https://registry.yarnpkg.com/giget/-/giget-1.2.5.tgz#0bd4909356a0da75cc1f2b33538f93adec0d202f"
|
||||
integrity sha512-r1ekGw/Bgpi3HLV3h1MRBIlSAdHoIMklpaQ3OQLFcRw9PwAj2rqigvIbg+dBUI51OxVI2jsEtDywDBjSiuf7Ug==
|
||||
dependencies:
|
||||
citty "^0.1.6"
|
||||
consola "^3.4.0"
|
||||
defu "^6.1.4"
|
||||
node-fetch-native "^1.6.6"
|
||||
nypm "^0.5.4"
|
||||
pathe "^2.0.3"
|
||||
tar "^6.2.1"
|
||||
|
||||
handlebars@4.7.8:
|
||||
version "4.7.8"
|
||||
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9"
|
||||
integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==
|
||||
dependencies:
|
||||
minimist "^1.2.5"
|
||||
neo-async "^2.6.2"
|
||||
source-map "^0.6.1"
|
||||
wordwrap "^1.0.0"
|
||||
optionalDependencies:
|
||||
uglify-js "^3.1.4"
|
||||
|
||||
jiti@^2.3.0:
|
||||
version "2.4.2"
|
||||
resolved "https://registry.yarnpkg.com/jiti/-/jiti-2.4.2.tgz#d19b7732ebb6116b06e2038da74a55366faef560"
|
||||
integrity sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==
|
||||
|
||||
js-yaml@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
|
||||
integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
|
||||
dependencies:
|
||||
argparse "^2.0.1"
|
||||
|
||||
minimist@^1.2.5:
|
||||
version "1.2.8"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
|
||||
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
|
||||
|
||||
minipass@^3.0.0:
|
||||
version "3.3.6"
|
||||
resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a"
|
||||
integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==
|
||||
dependencies:
|
||||
yallist "^4.0.0"
|
||||
|
||||
minipass@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d"
|
||||
integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==
|
||||
|
||||
minizlib@^2.1.1:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931"
|
||||
integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==
|
||||
dependencies:
|
||||
minipass "^3.0.0"
|
||||
yallist "^4.0.0"
|
||||
|
||||
mkdirp@^1.0.3:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
|
||||
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
|
||||
|
||||
mlly@^1.7.1, mlly@^1.7.4:
|
||||
version "1.7.4"
|
||||
resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.7.4.tgz#3d7295ea2358ec7a271eaa5d000a0f84febe100f"
|
||||
integrity sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==
|
||||
dependencies:
|
||||
acorn "^8.14.0"
|
||||
pathe "^2.0.1"
|
||||
pkg-types "^1.3.0"
|
||||
ufo "^1.5.4"
|
||||
|
||||
neo-async@^2.6.2:
|
||||
version "2.6.2"
|
||||
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
|
||||
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
|
||||
|
||||
node-fetch-native@^1.6.6:
|
||||
version "1.6.6"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.6.tgz#ae1d0e537af35c2c0b0de81cbff37eedd410aa37"
|
||||
integrity sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==
|
||||
|
||||
nypm@^0.5.4:
|
||||
version "0.5.4"
|
||||
resolved "https://registry.yarnpkg.com/nypm/-/nypm-0.5.4.tgz#a5ab0d8d37f96342328479f88ef58699f29b3051"
|
||||
integrity sha512-X0SNNrZiGU8/e/zAB7sCTtdxWTMSIO73q+xuKgglm2Yvzwlo8UoC5FNySQFCvl84uPaeADkqHUZUkWy4aH4xOA==
|
||||
dependencies:
|
||||
citty "^0.1.6"
|
||||
consola "^3.4.0"
|
||||
pathe "^2.0.3"
|
||||
pkg-types "^1.3.1"
|
||||
tinyexec "^0.3.2"
|
||||
ufo "^1.5.4"
|
||||
|
||||
ohash@^1.1.4:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/ohash/-/ohash-1.1.4.tgz#ae8d83014ab81157d2c285abf7792e2995fadd72"
|
||||
integrity sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==
|
||||
|
||||
pathe@^1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec"
|
||||
integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==
|
||||
|
||||
pathe@^2.0.1, pathe@^2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716"
|
||||
integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==
|
||||
|
||||
perfect-debounce@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a"
|
||||
integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==
|
||||
|
||||
pkg-types@^1.2.0, pkg-types@^1.3.0, pkg-types@^1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.3.1.tgz#bd7cc70881192777eef5326c19deb46e890917df"
|
||||
integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==
|
||||
dependencies:
|
||||
confbox "^0.1.8"
|
||||
mlly "^1.7.4"
|
||||
pathe "^2.0.1"
|
||||
|
||||
rc9@^2.1.2:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/rc9/-/rc9-2.1.2.tgz#6282ff638a50caa0a91a31d76af4a0b9cbd1080d"
|
||||
integrity sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==
|
||||
dependencies:
|
||||
defu "^6.1.4"
|
||||
destr "^2.0.3"
|
||||
|
||||
readdirp@^4.0.1:
|
||||
version "4.1.2"
|
||||
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d"
|
||||
integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==
|
||||
|
||||
source-map@^0.6.1:
|
||||
version "0.6.1"
|
||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
||||
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
||||
|
||||
tar@^6.2.1:
|
||||
version "6.2.1"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a"
|
||||
integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==
|
||||
dependencies:
|
||||
chownr "^2.0.0"
|
||||
fs-minipass "^2.0.0"
|
||||
minipass "^5.0.0"
|
||||
minizlib "^2.1.1"
|
||||
mkdirp "^1.0.3"
|
||||
yallist "^4.0.0"
|
||||
|
||||
tinyexec@^0.3.2:
|
||||
version "0.3.2"
|
||||
resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2"
|
||||
integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==
|
||||
|
||||
typescript@^5.0.2:
|
||||
version "5.8.2"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.2.tgz#8170b3702f74b79db2e5a96207c15e65807999e4"
|
||||
integrity sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==
|
||||
|
||||
ufo@^1.5.4:
|
||||
version "1.5.4"
|
||||
resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.4.tgz#16d6949674ca0c9e0fbbae1fa20a71d7b1ded754"
|
||||
integrity sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==
|
||||
|
||||
uglify-js@^3.1.4:
|
||||
version "3.19.3"
|
||||
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.3.tgz#82315e9bbc6f2b25888858acd1fff8441035b77f"
|
||||
integrity sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==
|
||||
|
||||
wordwrap@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
|
||||
integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==
|
||||
|
||||
yallist@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
|
||||
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
|
||||
Reference in New Issue
Block a user