From 27141cd26ff169959a67db145bed28f28999c999 Mon Sep 17 00:00:00 2001 From: aidil-coder-bot Date: Fri, 3 Apr 2026 07:48:06 +0200 Subject: [PATCH 1/3] feat(docs): migrate to VitePress - Replace Vue 3 SPA with VitePress documentation site - Bilingual: Indonesian (default) + English (/en/) - Guide: memulai, autentikasi, error handling, glosarium - API reference: 11 endpoint pages (health-check, national, provinces, regencies, hospitals, task-forces, vaccination, statistics) - Update Dockerfile: build with pnpm docs:build, serve from docs/.vitepress/dist - Add docs:dev, docs:build, docs:preview scripts --- Dockerfile | 4 +- docs/.vitepress/config.mts | 93 ++ docs/api/health-check.md | 44 + docs/api/hospitals.md | 45 + docs/api/national-historical.md | 54 + docs/api/national-latest.md | 51 + docs/api/overview.md | 57 + docs/api/province-cases.md | 48 + docs/api/provinces.md | 47 + docs/api/regencies.md | 49 + docs/api/statistics.md | 46 + docs/api/task-forces.md | 35 + docs/api/vaccination.md | 56 + docs/en/api/health-check.md | 28 + docs/en/api/national-latest.md | 34 + docs/en/api/overview.md | 17 + docs/en/index.md | 32 + docs/en/panduan/memulai.md | 33 + docs/index.md | 77 ++ docs/panduan/autentikasi.md | 23 + docs/panduan/error-handling.md | 63 + docs/panduan/glosarium.md | 34 + docs/panduan/memulai.md | 78 ++ docs/public/banua-coder.webp | Bin 0 -> 41242 bytes docs/public/detexi.webp | Bin 0 -> 8972 bytes docs/public/dinkes-sulteng.webp | Bin 0 -> 22654 bytes docs/public/ethical-hacker-indonesia.webp | Bin 0 -> 27878 bytes docs/public/inacovid.webp | Bin 0 -> 7500 bytes docs/public/pico-api-logo.webp | Bin 0 -> 5186 bytes docs/public/pico-app-logo.webp | Bin 0 -> 3610 bytes docs/public/sulteng-lawan-covid.webp | Bin 0 -> 17476 bytes package.json | 6 +- pnpm-lock.yaml | 1445 ++++++++++++++++++++- 33 files changed, 2488 insertions(+), 11 deletions(-) create mode 100644 docs/.vitepress/config.mts create mode 100644 docs/api/health-check.md create mode 100644 docs/api/hospitals.md create mode 100644 docs/api/national-historical.md create mode 100644 docs/api/national-latest.md create mode 100644 docs/api/overview.md create mode 100644 docs/api/province-cases.md create mode 100644 docs/api/provinces.md create mode 100644 docs/api/regencies.md create mode 100644 docs/api/statistics.md create mode 100644 docs/api/task-forces.md create mode 100644 docs/api/vaccination.md create mode 100644 docs/en/api/health-check.md create mode 100644 docs/en/api/national-latest.md create mode 100644 docs/en/api/overview.md create mode 100644 docs/en/index.md create mode 100644 docs/en/panduan/memulai.md create mode 100644 docs/index.md create mode 100644 docs/panduan/autentikasi.md create mode 100644 docs/panduan/error-handling.md create mode 100644 docs/panduan/glosarium.md create mode 100644 docs/panduan/memulai.md create mode 100644 docs/public/banua-coder.webp create mode 100644 docs/public/detexi.webp create mode 100644 docs/public/dinkes-sulteng.webp create mode 100644 docs/public/ethical-hacker-indonesia.webp create mode 100644 docs/public/inacovid.webp create mode 100644 docs/public/pico-api-logo.webp create mode 100644 docs/public/pico-app-logo.webp create mode 100644 docs/public/sulteng-lawan-covid.webp diff --git a/Dockerfile b/Dockerfile index acc621a..3f9e66f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,13 +12,13 @@ RUN pnpm install --frozen-lockfile # Copy source and build COPY . . -RUN pnpm build +RUN pnpm docs:build # ---- Runtime image ---- FROM nginx:alpine # Copy built assets -COPY --from=builder /app/dist /usr/share/nginx/html +COPY --from=builder /app/docs/.vitepress/dist /usr/share/nginx/html # Copy nginx config COPY nginx.conf /etc/nginx/conf.d/default.conf diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts new file mode 100644 index 0000000..bb64139 --- /dev/null +++ b/docs/.vitepress/config.mts @@ -0,0 +1,93 @@ +import { defineConfig } from 'vitepress' + +export default defineConfig({ + title: 'PICO SulTeng API', + description: 'API data COVID-19 komprehensif untuk Sulawesi Tengah dengan update real-time.', + + head: [ + ['link', { rel: 'icon', href: '/pico-api-logo.webp' }], + ], + + locales: { + root: { + label: 'Indonesia', + lang: 'id', + themeConfig: { + nav: [ + { text: 'Panduan', link: '/panduan/memulai' }, + { text: 'Referensi API', link: '/api/overview' }, + { text: 'Live API', link: 'https://pico-api.banuacoder.com/api/v1/health' }, + { text: 'Swagger UI ↗', link: 'https://pico-api.banuacoder.com/swagger/index.html' }, + ], + sidebar: { + '/panduan/': [ + { + text: 'Panduan', + items: [ + { text: 'Memulai', link: '/panduan/memulai' }, + { text: 'Autentikasi', link: '/panduan/autentikasi' }, + { text: 'Penanganan Error', link: '/panduan/error-handling' }, + { text: 'Glosarium', link: '/panduan/glosarium' }, + ], + }, + ], + '/api/': [ + { + text: 'Referensi API', + items: [ + { text: 'Overview', link: '/api/overview' }, + { text: 'Health Check', link: '/api/health-check' }, + { text: 'Data Nasional (Terbaru)', link: '/api/national-latest' }, + { text: 'Data Nasional (Historis)', link: '/api/national-historical' }, + { text: 'Provinsi', link: '/api/provinces' }, + { text: 'Kasus Provinsi', link: '/api/province-cases' }, + { text: 'Kabupaten/Kota', link: '/api/regencies' }, + { text: 'Rumah Sakit', link: '/api/hospitals' }, + { text: 'Gugus Tugas', link: '/api/task-forces' }, + { text: 'Vaksinasi', link: '/api/vaccination' }, + { text: 'Statistik', link: '/api/statistics' }, + ], + }, + ], + }, + }, + }, + en: { + label: 'English', + lang: 'en', + link: '/en/', + themeConfig: { + nav: [ + { text: 'Guide', link: '/en/panduan/memulai' }, + { text: 'API Reference', link: '/en/api/overview' }, + ], + sidebar: { + '/en/api/': [ + { + text: 'API Reference', + items: [ + { text: 'Overview', link: '/en/api/overview' }, + { text: 'Health Check', link: '/en/api/health-check' }, + { text: 'National Data', link: '/en/api/national-latest' }, + ], + }, + ], + }, + }, + }, + }, + + themeConfig: { + logo: '/pico-api-logo.webp', + socialLinks: [ + { icon: 'github', link: 'https://github.com/banua-coder/pico-api-go' }, + ], + footer: { + message: 'Released under the MIT License.', + copyright: 'Copyright © 2024-present Banua Coder', + }, + search: { + provider: 'local', + }, + }, +}) diff --git a/docs/api/health-check.md b/docs/api/health-check.md new file mode 100644 index 0000000..97b8001 --- /dev/null +++ b/docs/api/health-check.md @@ -0,0 +1,44 @@ +# Health Check + +Cek status API dan konektivitas database. + +## Endpoint + +``` +GET /api/v1/health +``` + +## Contoh Request + +```bash +curl https://pico-api.banuacoder.com/api/v1/health +``` + +## Contoh Respons (Sehat) + +```json +{ + "data": { + "database": "connected", + "uptime": "72h30m15s" + }, + "message": "API is healthy", + "status": true +} +``` + +## Contoh Respons (Error) + +```json +{ + "message": "database connection failed", + "status": false +} +``` + +## Penggunaan + +Gunakan endpoint ini untuk: +- Memastikan API tersedia sebelum melakukan request lain +- Monitoring uptime aplikasi kamu +- Health check pada load balancer/proxy diff --git a/docs/api/hospitals.md b/docs/api/hospitals.md new file mode 100644 index 0000000..1384282 --- /dev/null +++ b/docs/api/hospitals.md @@ -0,0 +1,45 @@ +# Rumah Sakit Rujukan + +Daftar rumah sakit rujukan COVID-19 di Sulawesi Tengah. + +## Endpoint + +``` +GET /api/v1/covid/hospitals +``` + +## Parameter Query + +| Parameter | Tipe | Keterangan | +|-----------|------|------------| +| `page` | `number` | Halaman | +| `per_page` | `number` | Data per halaman | +| `regency_id` | `string` | Filter berdasarkan kabupaten/kota | + +## Contoh Request + +```bash +curl "https://pico-api.banuacoder.com/api/v1/covid/hospitals?regency_id=palu" +``` + +## Contoh Respons + +```json +{ + "data": [ + { + "id": "rsud-undata", + "name": "RSUD Undata Palu", + "address": "Jl. Undata, Palu", + "phone": "0451-421195", + "type": "Rumah Sakit Umum Daerah", + "regency_id": "palu", + "is_referral": true, + "bed_capacity": 200, + "available_beds": 45 + } + ], + "message": "success", + "status": true +} +``` diff --git a/docs/api/national-historical.md b/docs/api/national-historical.md new file mode 100644 index 0000000..727e2a3 --- /dev/null +++ b/docs/api/national-historical.md @@ -0,0 +1,54 @@ +# Data Nasional Historis + +Riwayat data COVID-19 nasional Indonesia. + +## Endpoint + +``` +GET /api/v1/covid/national/historical +``` + +## Parameter Query + +| Parameter | Tipe | Wajib | Keterangan | +|-----------|------|-------|------------| +| `page` | `number` | ❌ | Halaman (default: 1) | +| `per_page` | `number` | ❌ | Data per halaman (default: 10) | +| `start_date` | `string` | ❌ | Tanggal mulai (YYYY-MM-DD) | +| `end_date` | `string` | ❌ | Tanggal akhir (YYYY-MM-DD) | + +## Contoh Request + +```bash +# Data historis dengan pagination +curl "https://pico-api.banuacoder.com/api/v1/covid/national/historical?page=1&per_page=30" + +# Filter rentang tanggal +curl "https://pico-api.banuacoder.com/api/v1/covid/national/historical?start_date=2023-01-01&end_date=2023-01-31" +``` + +## Contoh Respons + +```json +{ + "data": [ + { + "confirmed": 6737000, + "recovered": 6591000, + "deaths": 161000, + "date": "2023-06-30", + "new_confirmed": 100, + "new_recovered": 150, + "new_deaths": 2 + } + ], + "pagination": { + "page": 1, + "per_page": 10, + "total": 1200, + "total_pages": 120 + }, + "message": "success", + "status": true +} +``` diff --git a/docs/api/national-latest.md b/docs/api/national-latest.md new file mode 100644 index 0000000..6bc54c9 --- /dev/null +++ b/docs/api/national-latest.md @@ -0,0 +1,51 @@ +# Data Nasional Terbaru + +Data COVID-19 nasional Indonesia paling terkini. + +## Endpoint + +``` +GET /api/v1/covid/national/latest +``` + +## Contoh Request + +```bash +curl https://pico-api.banuacoder.com/api/v1/covid/national/latest +``` + +## Contoh Respons + +```json +{ + "data": { + "confirmed": 6737downstream, + "recovered": 6591234, + "deaths": 161234, + "active": 12345, + "date": "2023-06-30", + "new_confirmed": 100, + "new_recovered": 150, + "new_deaths": 2, + "fatality_rate": 2.39, + "recovery_rate": 97.24 + }, + "message": "success", + "status": true +} +``` + +## Field Respons + +| Field | Tipe | Keterangan | +|-------|------|------------| +| `confirmed` | `number` | Total kasus terkonfirmasi | +| `recovered` | `number` | Total sembuh | +| `deaths` | `number` | Total meninggal | +| `active` | `number` | Kasus aktif | +| `date` | `string` | Tanggal data terakhir diperbarui | +| `new_confirmed` | `number` | Kasus baru hari ini | +| `new_recovered` | `number` | Sembuh baru hari ini | +| `new_deaths` | `number` | Meninggal baru hari ini | +| `fatality_rate` | `number` | Tingkat kematian (%) | +| `recovery_rate` | `number` | Tingkat kesembuhan (%) | diff --git a/docs/api/overview.md b/docs/api/overview.md new file mode 100644 index 0000000..ae869de --- /dev/null +++ b/docs/api/overview.md @@ -0,0 +1,57 @@ +# Overview API + +## Base URL + +``` +https://pico-api.banuacoder.com +``` + +## Versi API + +Semua endpoint berada di bawah prefix `/api/v1/`. + +## Endpoint yang Tersedia + +| Endpoint | Method | Keterangan | +|----------|--------|------------| +| `/api/v1/health` | GET | Status kesehatan API | +| `/api/v1/covid/national/latest` | GET | Data nasional terbaru | +| `/api/v1/covid/national/historical` | GET | Data nasional historis | +| `/api/v1/covid/provinces` | GET | Daftar semua provinsi | +| `/api/v1/covid/provinces/:id` | GET | Data kasus provinsi spesifik | +| `/api/v1/covid/regencies` | GET | Daftar kabupaten/kota | +| `/api/v1/covid/hospitals` | GET | Daftar rumah sakit rujukan | +| `/api/v1/covid/task-forces` | GET | Daftar gugus tugas | +| `/api/v1/covid/vaccination` | GET | Data vaksinasi | +| `/api/v1/covid/statistics` | GET | Statistik agregat | + +## Format Standar Respons + +```json +{ + "data": {}, + "message": "success", + "status": true +} +``` + +## Paginasi + +Endpoint list mendukung paginasi dengan parameter query: + +``` +?page=1&per_page=10 +``` + +Respons akan menyertakan objek `pagination`: + +```json +{ + "pagination": { + "page": 1, + "per_page": 10, + "total": 34, + "total_pages": 4 + } +} +``` diff --git a/docs/api/province-cases.md b/docs/api/province-cases.md new file mode 100644 index 0000000..4b706be --- /dev/null +++ b/docs/api/province-cases.md @@ -0,0 +1,48 @@ +# Kasus Provinsi Spesifik + +Data COVID-19 detail untuk provinsi tertentu. + +## Endpoint + +``` +GET /api/v1/covid/provinces/:id +``` + +## Parameter Path + +| Parameter | Keterangan | +|-----------|------------| +| `id` | ID provinsi (misal: `sulteng`, `sulsel`) | + +## Contoh Request + +```bash +# Data Sulawesi Tengah +curl https://pico-api.banuacoder.com/api/v1/covid/provinces/sulteng + +# Data DKI Jakarta +curl https://pico-api.banuacoder.com/api/v1/covid/provinces/dki-jakarta +``` + +## Contoh Respons + +```json +{ + "data": { + "id": "sulteng", + "name": "Sulawesi Tengah", + "confirmed": 15234, + "recovered": 14800, + "deaths": 312, + "active": 122, + "new_confirmed": 5, + "new_recovered": 8, + "new_deaths": 0, + "fatality_rate": 2.04, + "recovery_rate": 97.15, + "updated_at": "2023-06-30T00:00:00Z" + }, + "message": "success", + "status": true +} +``` diff --git a/docs/api/provinces.md b/docs/api/provinces.md new file mode 100644 index 0000000..4a57829 --- /dev/null +++ b/docs/api/provinces.md @@ -0,0 +1,47 @@ +# Provinsi + +Daftar semua provinsi Indonesia beserta data COVID-19. + +## Endpoint + +``` +GET /api/v1/covid/provinces +``` + +## Parameter Query + +| Parameter | Tipe | Wajib | Keterangan | +|-----------|------|-------|------------| +| `page` | `number` | ❌ | Halaman (default: 1) | +| `per_page` | `number` | ❌ | Data per halaman | + +## Contoh Request + +```bash +curl "https://pico-api.banuacoder.com/api/v1/covid/provinces?page=1&per_page=34" +``` + +## Contoh Respons + +```json +{ + "data": [ + { + "id": "sulteng", + "name": "Sulawesi Tengah", + "confirmed": 15000, + "recovered": 14500, + "deaths": 300, + "active": 200 + } + ], + "pagination": { + "page": 1, + "per_page": 10, + "total": 34, + "total_pages": 4 + }, + "message": "success", + "status": true +} +``` diff --git a/docs/api/regencies.md b/docs/api/regencies.md new file mode 100644 index 0000000..53a30e3 --- /dev/null +++ b/docs/api/regencies.md @@ -0,0 +1,49 @@ +# Kabupaten/Kota + +Data COVID-19 per kabupaten/kota di Sulawesi Tengah. + +## Endpoint + +``` +GET /api/v1/covid/regencies +``` + +## Parameter Query + +| Parameter | Tipe | Wajib | Keterangan | +|-----------|------|-------|------------| +| `page` | `number` | ❌ | Halaman | +| `per_page` | `number` | ❌ | Data per halaman | +| `province_id` | `string` | ❌ | Filter berdasarkan provinsi | + +## Contoh Request + +```bash +curl "https://pico-api.banuacoder.com/api/v1/covid/regencies?province_id=sulteng" +``` + +## Contoh Respons + +```json +{ + "data": [ + { + "id": "palu", + "name": "Kota Palu", + "province_id": "sulteng", + "confirmed": 5000, + "recovered": 4800, + "deaths": 120, + "active": 80 + } + ], + "pagination": { + "page": 1, + "per_page": 10, + "total": 13, + "total_pages": 2 + }, + "message": "success", + "status": true +} +``` diff --git a/docs/api/statistics.md b/docs/api/statistics.md new file mode 100644 index 0000000..42c6d5c --- /dev/null +++ b/docs/api/statistics.md @@ -0,0 +1,46 @@ +# Statistik + +Data statistik agregat COVID-19 — ringkasan dan tren. + +## Endpoint + +``` +GET /api/v1/covid/statistics +``` + +## Contoh Request + +```bash +curl https://pico-api.banuacoder.com/api/v1/covid/statistics +``` + +## Contoh Respons + +```json +{ + "data": { + "national": { + "confirmed": 6737000, + "recovered": 6591000, + "deaths": 161000, + "active": 12345, + "fatality_rate": 2.39, + "recovery_rate": 97.24 + }, + "sulteng": { + "confirmed": 15234, + "recovered": 14800, + "deaths": 312, + "active": 122, + "rank_confirmed": 25, + "rank_deaths": 28 + }, + "weekly_trend": { + "confirmed_growth": -12.5, + "deaths_growth": -8.3 + } + }, + "message": "success", + "status": true +} +``` diff --git a/docs/api/task-forces.md b/docs/api/task-forces.md new file mode 100644 index 0000000..3cdaa34 --- /dev/null +++ b/docs/api/task-forces.md @@ -0,0 +1,35 @@ +# Gugus Tugas + +Daftar gugus tugas penanganan COVID-19 di Sulawesi Tengah. + +## Endpoint + +``` +GET /api/v1/covid/task-forces +``` + +## Contoh Request + +```bash +curl https://pico-api.banuacoder.com/api/v1/covid/task-forces +``` + +## Contoh Respons + +```json +{ + "data": [ + { + "id": "satgas-sulteng", + "name": "Satgas COVID-19 Sulawesi Tengah", + "head": "Gubernur Sulawesi Tengah", + "phone": "0451-000000", + "email": "satgas@sultengprov.go.id", + "address": "Kantor Gubernur Sulawesi Tengah, Palu", + "regency_id": "sulteng" + } + ], + "message": "success", + "status": true +} +``` diff --git a/docs/api/vaccination.md b/docs/api/vaccination.md new file mode 100644 index 0000000..1ab01bb --- /dev/null +++ b/docs/api/vaccination.md @@ -0,0 +1,56 @@ +# Vaksinasi + +Data vaksinasi COVID-19 nasional dan per provinsi. + +## Endpoint + +``` +GET /api/v1/covid/vaccination +``` + +## Parameter Query + +| Parameter | Tipe | Keterangan | +|-----------|------|------------| +| `province_id` | `string` | Filter berdasarkan provinsi | +| `page` | `number` | Halaman | +| `per_page` | `number` | Data per halaman | + +## Contoh Request + +```bash +# Vaksinasi nasional +curl https://pico-api.banuacoder.com/api/v1/covid/vaccination + +# Vaksinasi Sulawesi Tengah +curl "https://pico-api.banuacoder.com/api/v1/covid/vaccination?province_id=sulteng" +``` + +## Contoh Respons + +```json +{ + "data": { + "total_target": 208000000, + "dose1": 170000000, + "dose2": 140000000, + "dose3": 50000000, + "dose1_percentage": 81.73, + "dose2_percentage": 67.31, + "dose3_percentage": 24.04, + "updated_at": "2023-06-30" + }, + "message": "success", + "status": true +} +``` + +## Field Respons + +| Field | Keterangan | +|-------|------------| +| `total_target` | Target sasaran vaksinasi | +| `dose1` | Total penerima dosis 1 | +| `dose2` | Total penerima dosis 2 | +| `dose3` | Total penerima dosis booster | +| `*_percentage` | Persentase capaian | diff --git a/docs/en/api/health-check.md b/docs/en/api/health-check.md new file mode 100644 index 0000000..0a35957 --- /dev/null +++ b/docs/en/api/health-check.md @@ -0,0 +1,28 @@ +# Health Check + +Check API status and database connectivity. + +## Endpoint + +``` +GET /api/v1/health +``` + +## Example + +```bash +curl https://pico-api.banuacoder.com/api/v1/health +``` + +## Response + +```json +{ + "data": { + "database": "connected", + "uptime": "72h30m15s" + }, + "message": "API is healthy", + "status": true +} +``` diff --git a/docs/en/api/national-latest.md b/docs/en/api/national-latest.md new file mode 100644 index 0000000..7789bad --- /dev/null +++ b/docs/en/api/national-latest.md @@ -0,0 +1,34 @@ +# Latest National Data + +Get the latest national COVID-19 data for Indonesia. + +## Endpoint + +``` +GET /api/v1/covid/national/latest +``` + +## Example + +```bash +curl https://pico-api.banuacoder.com/api/v1/covid/national/latest +``` + +## Response + +```json +{ + "data": { + "confirmed": 6737000, + "recovered": 6591000, + "deaths": 161000, + "active": 12345, + "date": "2023-06-30", + "new_confirmed": 100, + "fatality_rate": 2.39, + "recovery_rate": 97.24 + }, + "message": "success", + "status": true +} +``` diff --git a/docs/en/api/overview.md b/docs/en/api/overview.md new file mode 100644 index 0000000..7edbb07 --- /dev/null +++ b/docs/en/api/overview.md @@ -0,0 +1,17 @@ +# API Overview + +**Base URL:** `https://pico-api.banuacoder.com` + +## Available Endpoints + +| Endpoint | Method | Description | +|----------|--------|-------------| +| `/api/v1/health` | GET | API health check | +| `/api/v1/covid/national/latest` | GET | Latest national data | +| `/api/v1/covid/national/historical` | GET | Historical national data | +| `/api/v1/covid/provinces` | GET | All provinces list | +| `/api/v1/covid/provinces/:id` | GET | Specific province data | +| `/api/v1/covid/regencies` | GET | Regencies list | +| `/api/v1/covid/hospitals` | GET | Referral hospitals | +| `/api/v1/covid/vaccination` | GET | Vaccination data | +| `/api/v1/covid/statistics` | GET | Aggregate statistics | diff --git a/docs/en/index.md b/docs/en/index.md new file mode 100644 index 0000000..df5fcde --- /dev/null +++ b/docs/en/index.md @@ -0,0 +1,32 @@ +--- +layout: home + +hero: + name: "PICO SulTeng" + text: "COVID-19 API" + tagline: Comprehensive COVID-19 data API for Central Sulawesi, Indonesia — national, provincial, and regency data with real-time updates. + actions: + - theme: brand + text: Get Started + link: /en/panduan/memulai + - theme: alt + text: API Reference + link: /en/api/overview + - theme: alt + text: Swagger UI ↗ + link: https://pico-api.banuacoder.com/swagger/index.html + +features: + - icon: ⚡ + title: Real-time Data + details: Latest COVID-19 statistics for Central Sulawesi with daily updates and comprehensive metrics. + - icon: 🚀 + title: High Performance + details: Built with Go for blazing fast API responses. Average < 100ms response time. + - icon: 🛡️ + title: No Authentication Required + details: All public endpoints are open — no API key needed. + - icon: 📚 + title: Full Documentation + details: Interactive Swagger UI with complete examples and comprehensive endpoint documentation. +--- diff --git a/docs/en/panduan/memulai.md b/docs/en/panduan/memulai.md new file mode 100644 index 0000000..e1a9ec8 --- /dev/null +++ b/docs/en/panduan/memulai.md @@ -0,0 +1,33 @@ +# Getting Started + +## No Authentication Required + +All PICO SulTeng API endpoints are **public** — no API key or token needed. + +## Base URL + +``` +https://pico-api.banuacoder.com +``` + +## Quick Example + +```bash +curl https://pico-api.banuacoder.com/api/v1/covid/national/latest +``` + +```javascript +const response = await fetch('https://pico-api.banuacoder.com/api/v1/covid/national/latest'); +const data = await response.json(); +console.log(data); +``` + +## Response Format + +```json +{ + "data": {}, + "message": "success", + "status": true +} +``` diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..b6b968b --- /dev/null +++ b/docs/index.md @@ -0,0 +1,77 @@ +--- +layout: home + +hero: + name: "PICO SulTeng" + text: "COVID-19 API" + tagline: API data COVID-19 komprehensif untuk Sulawesi Tengah dengan data nasional, provinsi, dan kabupaten — update real-time. + image: + src: /pico-api-logo.webp + alt: PICO SulTeng API + actions: + - theme: brand + text: Mulai Sekarang + link: /panduan/memulai + - theme: alt + text: Dokumentasi API + link: /api/overview + - theme: alt + text: Swagger UI ↗ + link: https://pico-api.banuacoder.com/swagger/index.html + +features: + - icon: ⚡ + title: Data Real-time + details: Statistik COVID-19 terkini untuk Sulawesi Tengah dengan update harian dan metrik komprehensif. Update live setiap 24 jam. + + - icon: 🚀 + title: Performa Tinggi + details: Dibangun dengan Go untuk respons API yang sangat cepat dengan sistem paginasi hibrid yang cerdas. Rata-rata < 100ms. + + - icon: 🛡️ + title: Aman & Andal + details: Penanganan error yang robust dan akses data yang aman tanpa memerlukan autentikasi untuk endpoint publik. + + - icon: 📚 + title: Dokumentasi Lengkap + details: Swagger UI interaktif dengan contoh-contoh lengkap dan dokumentasi endpoint yang komprehensif. + + - icon: 🗺️ + title: Fokus Regional + details: Khusus didesain untuk data Sulawesi Tengah dengan dukungan data nasional dan semua provinsi Indonesia. + + - icon: 👨‍💻 + title: Ramah Developer + details: RESTful API dengan respons JSON, dukungan CORS, dan parameter query fleksibel. Tidak perlu autentikasi. +--- + +## Gambaran Cepat API + +**Base URL:** `https://pico-api.banuacoder.com` + +```bash +# Health Check +curl https://pico-api.banuacoder.com/api/v1/health + +# Data Nasional Terbaru +curl https://pico-api.banuacoder.com/api/v1/covid/national/latest + +# Data Provinsi +curl https://pico-api.banuacoder.com/api/v1/covid/provinces?page=1&per_page=10 + +# Data Sulawesi Tengah +curl "https://pico-api.banuacoder.com/api/v1/covid/provinces/sulteng" +``` + +## Sumber Data + +API ini mengagregasi data dari sumber terpercaya: + +| Sumber | Keterangan | +|--------|------------| +| INACOVID-19 | Gugus Tugas Nasional COVID-19 | +| Dinkes Sulawesi Tengah | Dinas Kesehatan Provinsi | +| Sulteng Lawan COVID-19 | Kampanye resmi provinsi | +| Detexi | Platform Teknologi Kesehatan | + +> **Status API:** [Live & Sehat ↗](https://pico-api.banuacoder.com/api/v1/health) diff --git a/docs/panduan/autentikasi.md b/docs/panduan/autentikasi.md new file mode 100644 index 0000000..4bbc7de --- /dev/null +++ b/docs/panduan/autentikasi.md @@ -0,0 +1,23 @@ +# Autentikasi + +## Endpoint Publik + +Semua endpoint API PICO SulTeng bersifat **publik** — tidak memerlukan API key, token, atau header autentikasi apapun. + +```bash +# Langsung request tanpa header autentikasi +curl https://pico-api.banuacoder.com/api/v1/covid/national/latest +``` + +## CORS + +API mendukung Cross-Origin Resource Sharing (CORS), sehingga bisa digunakan langsung dari browser/frontend aplikasi. + +```javascript +// Bisa langsung dipanggil dari browser +const response = await fetch('https://pico-api.banuacoder.com/api/v1/covid/national/latest'); +``` + +## Rate Limiting + +Saat ini tidak ada rate limiting yang ketat, namun mohon gunakan API secara wajar untuk menjaga ketersediaan layanan bagi semua pengguna. diff --git a/docs/panduan/error-handling.md b/docs/panduan/error-handling.md new file mode 100644 index 0000000..1e04159 --- /dev/null +++ b/docs/panduan/error-handling.md @@ -0,0 +1,63 @@ +# Penanganan Error + +## HTTP Status Codes + +| Status | Keterangan | +|--------|------------| +| `200 OK` | Request berhasil | +| `400 Bad Request` | Parameter tidak valid | +| `404 Not Found` | Data tidak ditemukan | +| `500 Internal Server Error` | Kesalahan server | + +## Format Error + +```json +{ + "message": "record not found", + "status": false +} +``` + +## Contoh Penanganan Error + +### JavaScript + +```javascript +try { + const response = await fetch('https://pico-api.banuacoder.com/api/v1/covid/provinces/invalid'); + const data = await response.json(); + + if (!response.ok || !data.status) { + console.error('Error:', data.message); + return; + } + + console.log(data.data); +} catch (error) { + console.error('Network error:', error); +} +``` + +### axios + +```javascript +import axios from 'axios'; + +try { + const { data } = await axios.get('/api/v1/covid/national/latest'); + console.log(data); +} catch (error) { + if (axios.isAxiosError(error)) { + console.error('API Error:', error.response?.data?.message); + } +} +``` + +## API Down + +Jika API sedang tidak tersedia, endpoint health check akan merespons dengan status error: + +```bash +curl https://pico-api.banuacoder.com/api/v1/health +# {"status": false, "message": "database connection failed"} +``` diff --git a/docs/panduan/glosarium.md b/docs/panduan/glosarium.md new file mode 100644 index 0000000..0846733 --- /dev/null +++ b/docs/panduan/glosarium.md @@ -0,0 +1,34 @@ +# Glosarium + +## Istilah Umum + +| Istilah | Keterangan | +|---------|------------| +| **Konfirmasi** | Kasus yang terkonfirmasi positif COVID-19 melalui tes PCR/antigen | +| **Sembuh** | Pasien yang dinyatakan sembuh dari COVID-19 | +| **Meninggal** | Kematian yang disebabkan atau berkaitan dengan COVID-19 | +| **Aktif** | Kasus yang masih dalam perawatan/isolasi | +| **ODP** | Orang Dalam Pemantauan | +| **PDP** | Pasien Dalam Pengawasan | +| **OTG** | Orang Tanpa Gejala | + +## Parameter API + +| Parameter | Keterangan | +|-----------|------------| +| `page` | Nomor halaman untuk paginasi (mulai dari 1) | +| `per_page` | Jumlah data per halaman | +| `province_id` | ID provinsi (misal: `sulteng` untuk Sulawesi Tengah) | +| `regency_id` | ID kabupaten/kota | +| `date` | Format tanggal: `YYYY-MM-DD` | + +## Kode Wilayah + +| Kode | Provinsi | +|------|---------| +| `sulteng` | Sulawesi Tengah | +| `sulsel` | Sulawesi Selatan | +| `sulut` | Sulawesi Utara | +| `sulbar` | Sulawesi Barat | +| `sultra` | Sulawesi Tenggara | +| `gorontalo` | Gorontalo | diff --git a/docs/panduan/memulai.md b/docs/panduan/memulai.md new file mode 100644 index 0000000..91c4588 --- /dev/null +++ b/docs/panduan/memulai.md @@ -0,0 +1,78 @@ +# Memulai + +## Tidak Perlu Autentikasi + +API PICO SulTeng tidak memerlukan autentikasi untuk semua endpoint publik. Langsung panggil saja! + +## Base URL + +``` +https://pico-api.banuacoder.com +``` + +## Content Type + +Semua respons menggunakan format JSON: + +``` +Content-Type: application/json +``` + +## Contoh Cepat + +### Menggunakan curl + +```bash +curl https://pico-api.banuacoder.com/api/v1/covid/national/latest +``` + +### Menggunakan JavaScript (fetch) + +```javascript +const response = await fetch('https://pico-api.banuacoder.com/api/v1/covid/national/latest'); +const data = await response.json(); +console.log(data); +``` + +### Menggunakan axios + +```javascript +import axios from 'axios'; + +const { data } = await axios.get('https://pico-api.banuacoder.com/api/v1/covid/national/latest'); +console.log(data); +``` + +## Format Respons + +Semua endpoint mengembalikan format standar: + +```json +{ + "data": { ... }, + "message": "success", + "status": true +} +``` + +Untuk endpoint list dengan paginasi: + +```json +{ + "data": [...], + "pagination": { + "page": 1, + "per_page": 10, + "total": 100, + "total_pages": 10 + }, + "message": "success", + "status": true +} +``` + +## Langkah Selanjutnya + +- [Penanganan Error →](./error-handling) +- [Referensi API lengkap →](../api/overview) +- [Swagger UI interaktif ↗](https://pico-api.banuacoder.com/swagger/index.html) diff --git a/docs/public/banua-coder.webp b/docs/public/banua-coder.webp new file mode 100644 index 0000000000000000000000000000000000000000..d7a964705d9b93030d035c8284d93f220b6bd270 GIT binary patch literal 41242 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 literal 0 HcmV?d00001 diff --git a/docs/public/detexi.webp b/docs/public/detexi.webp new file mode 100644 index 0000000000000000000000000000000000000000..79341265ee19c81c6a456276c070445d4c4787bd GIT binary patch literal 8972 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 literal 0 HcmV?d00001 diff --git a/docs/public/ethical-hacker-indonesia.webp b/docs/public/ethical-hacker-indonesia.webp new file mode 100644 index 0000000000000000000000000000000000000000..8597fdd650f2aa8428d391cc39657756e49bd6d1 GIT binary patch literal 27878 zcmZU4dpy(c|NbzU^J&gvGC3v5oKKs>jB-BY6qVED%vjD$QX)eohcV2dkV45h^(Mj$ zMLAZ^r^zX2`|k7m_xH#CdTo2$uls)9*L6Lw`?_t-kjR+;0N{p+p|zv6rV|?g0N|m2 z5*PuS0082;HLA)00AQfWLQ#Kd_xz1X)ZZCn@4aL416`W}4eAuB5+EB~E3^6I*49=* z>^06x>l(_h5y8q2uAx{Ix+on#)Bm18yx1aZ9$A8ZIPUHGZ=#P@Dr(-A9ICRkgp|Z09nbPq=JP zS*n*OJ4LA1yQ*d91UoT^o_)ChSwEKX8~%Bq(voS=a^C(d*YNGhpc2McafQ6vo?JpR zvnL7L^hqgnKdO3#nl^S|v&-UpWR6gH?JM8pr0L$;mPmVX5 zz677U0jLs`S^lsP-^zU-C8ZZRo#6fS{WKR#EjLOZGaW~B0La5B;i*iKRFcxS=t)D>@x4<*qh_S|TjRzHttzKUXSCoS} z1}oCkKU+o}%xzW-7U_Ae-l%hHxT%q4oqmgkjenuGQJ~lY4`YptO*mTLT0+YMt2=e$ z$WJ>XlID2=w$28$=9J~2;(L8o;T0JYKe?E%!OJ%hO`WHMnGK5rC!tfV*z*)w2dEwYaC9FX7Qn{ERpY_k>OzhONL-Hi@W(4`H8VhJl z0_vQhJlEEGv{DV%WR`b+UGOX+uRhyIjF^3VX+|qvr|Q<1Zc^x{Xi5NXE!}2jmS6O zKPWtoD6VG$C;lQ8U)X6Hp#9D}Z8a1_zWseqdnej+QA)aU6Hv<^BGDdl`3LC36ZfIs zTy3LyiToIL8s3PqrH9m*Lx2Flb`R39E;Si{5f?9Xh8nVTES|g$X$BizywcK|^TjC4 zK16%4?Q7*Ee6`|7tl(hvNdN?v^QTt^7W|vt0v~|ei?3*I4gDzvVg^k}9;*?2iYzBg zkDHQ78}HJQbDgceHkgjwAQ*X?g%M8K3(OaCTi`zr0XZdz4o*+owm-+b*KH9bA;3&C z6)Kel4N`h8T*xOkMOFn!cA05{M2Aua1&&(QPa#pa}}^piJ2jX^k1 z!BM}$fByF`F&?T;iyR(8&=(O4NKt>+0~cS^%u{b5s2I!awAlu^;!!)}_ZJXSm+s48Cj122$ERiYMax zxo6i`oiW)xZ~fI6|N4qHVwj0i=sqJ*V&l(ar54}Y^V8PypXI1{gjtAQe0KXP)c2ImijV>~vj$ zpUg3iDJ(O;FHEhv_r*BS&h?}~gb+HCy^6J*o3MM=2 zi(2BX1FPLj)U*BD)~vV(U;*OL>~l)J@KSJ!^#dJaqac%7xoqalapR6}LO5d^SoW=2 zEljrCJ#k})yAE%M?M3|xKS;rt=DA_or>`WJ(@#SFCa@tE1d-XQuZt`zcRtVL0rh4p zvtTpA5QTS$;mz4}(rBh(Ie^#gdU$r0>c3>rc1SQRbqXh*bHmgmCs~2)S-T}_vcmMb zQnjohI*R2XG0BATZ^~qsBj9%+gYCI*HrWDJ(Doma3h$}{A>Grk?4D`>;+1{K->cfw z_bx&$-kfM)M890#7bZ|olM$xx;;Q^h9JSFsxlK&2l(n zLWDi~g(c;{&ff6jAhYfuInDl8)+F|$LE^aXk9JJj!WW;grhY{p*atcC-P?{!ZSTaC z97fz%Sr9!vHZ`zkmdJP*09S)cMSHQ=C7~X~nboIg{JBy&dVpS{@q84)wCu1IepXnC ztrE$;u)NDA?dSG}nXz8MG82RBn38BVo-Y*CHe0%{L_`Hch=(~O*%%{p$F4rAb9%xi z$mBEoylC_}WKnYT8H@j?pO{Lqp=8LHiExqHlw3Ie5_%s>poS`Q5DcZYVqAL@9!Ly* z3+Vy{>`G^lCCBgk{8*F~6*&ahUuBJs|A_8Ccxo=eZ0Y(3S^u?8Be66By>Bv-JZ&Au z8+Sizg^p)ZL;?HVdwD9!JD)Gpql)nw8)2FA#yI=i5tEnBfYCgye*2leOkr|6cI?S z7&B49z&r=pHz3X0?s|Sy-(&iV;}loaZj^CG*3u!pRlBikG2lsJ`h~CvUc5gYWT3D) z%`(;P(+(70V+`J5L^J9NlqJ!#Gf#&qZgNLZT&>u0HgJe45`$UOeg)_jom+vOeUMUciocLSE>AVGd(hGE zw4)6?{QR|`7Wb_&BXl`H)NE;usYI?9YYGqQQ}ru{0&rxZ%jG#eW@67QD2wjM3T>hD zj~rERO*Zes=3)Y+BEsUsmu_m&;(tbahhHu{xcP6(?v>X~E}|CU+LIJW6A+Mw>H2+b z8P;)wm-WN_MOeo-_6Zc}RP(HLVD8J1OrGqogXi~;Cyl@~QjWvSxL|f;A5e6qjlTrI zOw67uc-B-r*n59`LONLV^!p^WL-9E9%RaJbQ)6YM3A;HHcf>t?D^t;+dc^GVT!dV~ zonEWm#$K!3USnpsVlVMmtPf_Xm}hnIu)0kZ{&nGb zt9!y7_LaiD0>dyi^*nQFtpo=UaHF_#G@}V-B-$Sq!&_iwCERck4F6KMLfYa+f!A+Z z{IyH#D}-NmNBU0uY3E7XoVkBMBFMHT`AzzHGQJt~T7FN9uPvu-Y0#GIYSP4uHlJ2_qW`%KGf zkr-z>4f+df`S3K#^;<|3^xOHPw1v_|frypk)Bn=5W@~YjXh1)$pvb52NDts^AK zhGm8T~9mRFnp*bz9?AXX5rx z*EjXvr$T&LpIa8I>+K9R)LJH(=fAa)ny`O~dZ2f~Y-vEi#>U~BsQ==_H03*g$STTM~BV8_D{U)0TXEL`!Yz~P$U z;Z%iK`VYCehY^v*$U38sel=qQKP&J9xJWD=;>83Q0XQb1k(I&*p~ld{orKoK9x-q6 zx4)zJhj$vI(vjMA$gq!Z(=C_Mc`5nl7cc&8Gvt%W%@Oi1kiENH*m4e9th0|OFkghA zEJDfc)HVb6dus)c(WLOL^T|ZHPT~-@@sa_Jtt4WFrr?>swZyp^sT212Y3kmA@fbH13JPUc8P)(*fm2~_4-xYrE1w<_ZiNqM6@#D3wu3qF*+zp zx&X&G1_HvdbJi**mot-BP0-)jM@al)>si(xR!7@l#Eqh#UCII>lP`G{tm|9!@PhVU+D#}q^8t-U&7v%2jRDn48OTx?5U2TJb=#-z6b`pA1uy_yaB^K*(NW41YQ?KL?w&g zr4cjH%3!9XJI5=qtJ`%|UUoG)bkc2#@d=G@xJ)|7kU-Qjn|qgr#Qkc?pD-#};B)&d zSRq!2tgimyEulAfh|=k$DS`b@jAf;Z*Uk-I7@_KEiyWGQfd1*_0&^rW+6>o-Idl38 zXY0}}Z2<0aaJ{)`FQYU1?Qd&6ffo;0Xfo)mPC7U3LDA#o%jehUdJIM zRV%cFHo5%*fpMLsU9V~pMoWuROC2EG8xqP8~B5BbtOOh)nLqX$eS@_Cu1plB?E#X#9 zH*}@&t&p(^;Gx35JR@mok2OYy=nl9nL0RFdV*DDE&<5(=HS>_Ge+;vvDf^Lj96|NP z7TRV-z!c(Ut{U|uj^7@bSaqj;NW^T(sv5zL`(=pChRsY$WP3`&{DR~yDgSsK%|v}S zKuWxyykQkLqOf*;#-vL;>+>SQht~Wg360XTTJFRG5i{)s?YFAHN7GhCX3~UfnK;9@ zOBb@q_n`Lm3XUf@OKpRV!i_S9lDNr%Kww7rFI(-t@>B?FEb&>zcg^B8)}&u@EjjZe zotL-~oDlE-|BW6yxTZFXrFk$(f+S1Q#o9A`oLHR zlqj}B?}Z?suqUNi^SI;^KXTrFdduGP0S%8f?=pB1DTj>BHH}0ZAEVWFBH;kaA_AFB zjir$?ayKdOC%@{@0@VqmtpWu86VIDHMp3$M982{2!+9(jVLW3L|DDSg%y?G#%dI}< z<$IV9jQoSy)@dhgL&^*%9W+zV4^b!w(A%nVt=#i0@}-`JCFJKzH(UQNK!R4PWi&p4$0g`gnQKYkvKvRIhsc+$Fxhxj<1G+qZRRyP9Jwq4&w) z^5s1l`fI%YCs%ip^7CRXw-So-8>>?xuYMFdmLvNb05_NVk+UdYvrT0qC01CmSGPBF zlEB3km|oRO3xEFS0Ni|WF-_WMgn+4N&2eA&Zx90i*wugcLx3-Ee&vkKb5NFv$WWG6 z8j6uc74hdR3V4a@alF!OO(BI&sN==cx+F(XbFTdehVGs@Kg$-??}Xi6<}V2RN$QKg z8xJp8?;heUN3?v@KwurRd^&ZC^#bm3TH+tb#i1!4TRue7a3e>SXXuSvbv(n(fp+ZV;15A11z;aWZM#^%~A5*g$oy5?4msH(;3rlSlsoNRK z+2s2WXJCvKX?$dGU}}X*9@0ou^SfPor z`D7(#r25FsTwB_}nM?HV4La&zD&0WBX5q;ArmKvA?xW3N|CJygDh9hWFKs+Rc6$D| z`&AxM^Ogz$DzuUJW^o9ntiA09NNdRM;pzwWN~f#ozJ{d*`i!b(h}g3<`>ibcr7iTR zj8wR_L?_;5-3<;f3qRsb`Sq|IBWOG`rT*m+tiijD4Ocj>;u7$C#o9}tF(zyHRfkt4 z5b-5dq;~aMBpj6l8jHOpL3lpgmxtvt0VF0S=c*v*URFWs?)()Bc-w3BJXv9^@Vc)Q z`9^_M)EJ@X)w{ohBK#%m^@haZ=UY-$a+cCcM}MTHdaIp$8Ot0FeLUm~#dn*s_P(25^^6D!S3cbqcgkh}GrEksaduov0Z~Oc$ zp?{9(rsX@?(Tw0aJk!UZot2)L2_pdf&6i6pJ7=%)u!p5lbu1mKK8>ujDOR4Byu0x) zsIgc8EEiVlu9~`zoe1W|J5%PETf%$BKs>u~Nj|Y} zSztooPH95JzXum=Ae}9T4c!Arqjsk6Q`knd_2H`IpWN9@Of#h6dmh{Xo|=>O0N=O& zcAjlWS!3evFBUc^0`mk|l!!XBVz#1~n8)8Q^=yvS7`3Kqg#w{wR{}1sQ0G}vn^MMt z4|3^@tb8M7o{?uv=MTw_P4DoRey_aKPO+z~ZnF%yxhcWt7mDyHo&<2;ETsjorY;<@xjKIp_2_#Mm_}R)%DT8qiFkEh4s8pqruMT%ewOq zzTG}1+%r#-mAC>h`S)SFzb{z4wpY<<>q#ho@lR&l#P716>#^uSP}=&{?FM;eYB@>> z^gt4`)lNHGpL{gedGC-K{+9>i!W3@q@GUQ52oJa$Au|GzOd~7H#!!ve54)43}gLxiph3g_;c)- zf{HT^^$@&D_L`uh6O%;#Vdh<+33Z#w^{zbsiIebGc zb&m%wAj162VQk|ZB8!pZW*s-w%;p0)>FeK!<1$Lc_c1C1qL#Sv)jz^$`1W#3d)7?> z_~hB=ai^HUXGabIoB8jz*Y2ypN#Q(9JHdFPvv0|^QZLr~8fZWqxYAz0a##Am2=` zgzza19xjBSdCQ;kfK$vtI7786NW(b+uwtpGA?QM{k|;36-x`Jnr5TzeLv9*cgC%gK za2rl3pa57DS86@X11uNhOfysiBBI{sSq%Nxn;Q*gF7$@!&v54B{Dt|KePUyIND@4{ z$f5cWjr-@0>$aNdPI2K|yU_iSbX9d@6#U~1%nITc>&c0Zd*X$}&QQ*6cLLgrE0%~` zE?`BcIF9M*A;jH}F0;cU!iT@}K@lRlI!w|A=K-gi#kX>_1~yJ2<50W|OF5*ih1Yl> zBG>n7)co=1l5U1TiOO;j-;I+_2H6J68kT&ZZ@ zYGIr2jKjSiqU>lbQ6J&24ac$*Na4f7sK8Htm?6WZ^HpWHGPHKV$d2i?&V;mxcm-Tf z-IxhJfFXLO9;h8`R(-4UaNu{mLL=9CNl&#wt+-0s(W75apBoAv{(L}5BcVX(m@`K0 z9CuE6hJu9R$4}P36|<$7gO} z^}Xif=1}22FW$+*yeUh~!iVnMC{g2jA}igzHr&2|mQtwte!gw6`WmjIe?2t7m-)lWp0jw_KhWlr6I`SlUKFIl)y|u}9PGd2zve3pq%T%%p z7VF~?>-NB*Q{m&G4|5;R=m`rn88k!m&TBt!sE^p^_c)4PpA@PE^+_*>{^0kB-RW!B zd6x{9T@Lxw@7WQ3I;G#6x~TuzQ9k70*Ftmz8-QrbW&_Z>F}+e#P<(H0PQ|nHY*JiS$k6>Pj9%DpC#**@Ccxqo?*4) zzIoOq=pL=T_0*4=+Y+;yi4AdumkW2{6=%eBjt==-jaGpix`%yMJ@I=p=XJ36VLdjx z(a@GwRobUATSnw{g~XaO(QKYKlLI+Y+2^{8Ukvx{lr#hT_3qNO^)yGe#hV^}`bpdl zZA8HKDRInRI9*jUCEoqj3*64d0v03VR3$9M{{* z+FWe965d~^9Q>n}8)5>A-_s&cW1|72%eeFURU>9$GaF1LoGO2*g2+0n67tVuuOHry zyks#VYubXoQ?#)C2yl(u51$KfCu#u$H;E2q-MvFBheg>StK^%gcECWk`XKGoc!|M&jlFUFeYPhr1#h2}>XFXj3p4}i z3q{hYH;}3L2>Ex~qS|zP4ci1d?-h!#5erbJ>KKEJkA9(Q`!g<}zm|!&5FE(v{!sdfZ3}Tj*Dq7pe4pPjg z3Rj1l*M(8}#Gx-R-!1oRJwusyndGknKL;0BVX=a%RB{UUYwoOA+_j&dz9|Iz4sZNnP&8F)3@c%rFW@b{Fr(-d*!SXW zfk57Xzk<{K|1`6iqYXTzbeWz#{am`U7mo*bM_*g^qjn0Ric-;j{KrNkV3sC|-TxMb z(pAKFcpOk*{G5{UIM{{D77vOPx4@2lPq%v#^kAMBb0k#lM}B^q#@m}C67R$!Wf3}J z`+O`a;fbfuRqatdt(Rjz!;EB6PZ%UsD)hK(KVMX$iY&)A=#Us73`}Q1jaRi?EiG+0 zPMd3b-$XC&QOPmNtKtWV%PvH4s_-wWhiYO+)cCRXb6E@%B|O8H)Ie*@^r zi!Z(Q8sTFtd6krOjrU1ju5*em*;}V+D4UPd7$1Kv@n=W?<3y1v!Dm4wUI(0Q-4)qC z^|)&L**`pqvuEVPy4?N73LBW!oq5HZ;STNt+jA3n`L8Q{#SDNhy^oyF3Yj%?ob`Ow z^S1~NB_{A8mw{KR)6*jZdKnTKO-;%3&U>mZ=S1rS!6S#=9IEOAd?8|bgS8!5?D5QI zHUVc$8GS*P**=!pi}J7~RF#)YOu%!ie4D9{D+7LQotz{o2=1nSWt8*Oy*v^qe#i+m z@0(0CGny$A>vR^8Vn|aJZit;yoMlf@qp68WZ$3cfk;zZTryD5J9_K;wf9{vVd@vXD zRfb1V8Z)+tBDF7G;pACP7vsu5)UUR_OKmv2Vw-`PQ)zmO!+BK8V%p3sS@YKTO>X_Q#mvPl zsvl-)Q!1ilYkHxCldm#XrQ&a0N9;yR?Ihfm(ei3^c56c9$z4L$RNSfJBE{Be!E*!R z&2K+bxuEjoJ`BV|i9Oke?eJ;lN<2z@8o2CE85kVZ)-|dO-?Ee!STEWrIOF`>TlWAi z`stu)u*qV|=U6XObFs{*eH+Lh#mofsS%;g;W;{R4 z<3;_j6{UR1YZok98I*=Mqby1wE5w9mw84xh5Q3S9LsTtSCBq?JALPO<>PwxF3y;JR zixg0tKW^KcYi(f_1@?(DMjj*;8P5syIu*H!;V-2z5-!gJnLJWdKnJxGPXjZvu+Y2JmLHI&GoV_gK|gox(?lBR%AGNx+$Fl<*hNH5{DB!plpGJN}(p#2MIEo9)8>m5aGTTf`{&z$gn38 z0KbQ$^tSPp@HSL$@WU-3^f|;3RwVCk;TtV`yd8Kg4tXt{JOj2B(pC{G zE-GvDrA=*6%gW;>%L5o>>sQT`Dm%MgZ123nUuAW4=Th*)L+ZPvuk{K)PU{h3k%DOb z(gZ5x@CHrg`p4ken_SM*4)X)2)$Tk&F1tN7!kBO)ek$1 z>YVRyS=}FFK!5tH(g>d0wWuc^28!lPSId^LrZ~RYXN+dk@>fFL6h6FbfUX`(5La55 zEJ?Xv;A9ciWU->Iwhx^1c)M`P1-Dc78gJYF-@f_-^K%aY&(2G{uynx;E&80CJ-rCB z73eIF3LTB-v{*f}ooM6*@dWto!g?C;t#0Wjx1vyrNf*UGyeOI{`{OVF@Z-|U$c(rT zmM%^3UfjXEhrFtVsM+4M1+}?D^Y^+l)^+!UQtjk?-*wbrNo`lvF)Mg)VTM zgx+N2tYx~y%N@i-EW z2JJ(U?&WAD$aaV*VKc&l{X+)XYbkvLBIoqxD>OQ7r%VEWNB2=raZ}=ZAG+qkw}~Ud z5TP#579|eN5>S0dmgTa>9q$-Jibnl~qm+%mO8?k6KT+>`Y^cW018zBaawGP`3z6wB z?kzU1K*THJmjc+>?;Hj{|4g&et=Z`krwEt#n~wfGEwWkck%^6>KfKlTHkQsqSaI=^ zzE|{}5L-9{%GH4h4i^r+M?FHVM76a&70>LQR3%>AJa1!b5h--H#rmmvh%lYF&M_2_ zQ7V>VN!Aj?FBUZ|ot+{uFGd{WGYNlj%wgw@h-&<&@lE}ZuIF(~##yf?FhUvKHx4(s z@TA%VROn?lc7Z7~-_?7@F|gzW|l{=ke7GTLf5dmwP;F zg@jB0H@WGn)$Cv8HMW+HS>l?JA{EsclwCeg!Phod|QlM<$>$<59y5a-&&;PLt|bu01yCN;OpLl zjcG@z7z5YR%Va4Ze4BSg^GDNXGuHvbx&Wv^9zEuj|4L`AtDHp|3VL1UE8ITP>Fiyh zV?qIu{X>}t`RRKx0p+iP=2HqBsQ>}MM*0=yA;bFC-@HdR{mgnKn;w8|ZpJlRq0NHg zxkv#qhULpV(40FTTN`05T1)NN@jmH^QpeS`E{4G1fb9~nq6qcYF_gL zt&oA4s~?Yi1vh$a_zuUgKT6m;j0!|&5GOrFdQCjh1G-o%*w={VQz<)io3OK3&2fRV zAT^mSG10<@l9N7L_sE(Xk=Z1YQ+O>?$>(Pe-65sVh@?j1Q~!TsJYeN)W(Ha0K7B9* zrJUK8h2HNiY7A9!Y)VOg_o|1_h3N)i$>3DRYhj#kruizgeS?_-WhQ2gcED%qCAga_A~TYJ+Q+|c zJK9}PzJzA_^&F;M9GDrV)UooAKi>84R%@Lt!Ur)_=_i81Vzb>&K2Ik6jJwAIHx`9c z&f*>OqAvl}6x+VMm~Rtwk&shAO0vwRlKX_}7?V)vjT7~ku9v+flUs>ZbZU%O_jQ~r zBuHhHeMnPzM9w`nbV>dCeHXmcdp~hb#IA53oAix|;l^mT)52gP_^tkxlWWm@E56cC zAMXCJJ*b!AKl`S~4-`u;^L`nDm0fxKWjg9$A`pOL3eZk1y6X8I+^j!%5U7lb0yJwr zf=Qctd{6+`WL+>eq4?}CNe`}>NaX#74n6-V9UMH064*V%t8_<6*}E{i{gQ{drvTug z4As{$+Y=Sq^5n4Si8u=rc`kQDt1x=R!!U0(P7TTqoV4=U4R{wcY}OMTG}FXFw7uH9 ziM|e-`7ZG&ZKGn8uP{>A@DY${rd$TUxT|s_cmxUHRLCBLJ6^E)s+T0S{C?^JxsWb)R#+qUt?E12;)gjMBx+ z0QsEphOfnAroD_^V;-ZWOHwO7mSJb?rr2cEOQ2$`nbo9Z_Q)w`576=OdJZZI^5eF; z(j%&+W&C{a?F|OFeYOJwaWIidvH;oAKqcQ0c$6kpJi-=sSs$E+%uW;=6+R48Mkx|C z6?~ejaiZ-~j|mJWgnur0!9&CSQscL)?)}|E zn?InouiNwPitFi`0HrhNc-G2k_y|yVZ3mhiMDF&aMSVM`*l09nzNxm~vbB?f@f6AM zz3@NkPYYZ6E`TyZ4AbbVO-Klk;Tqf>QfGZu(C{BW@9MjqwoA%;3LFfkmrG>n^W=gb zyW@8m)KdI6ioIRks# zcGn>tOzxoiPxPEeaOQCe z7Tkxk%q$oAQVW#l1?ovuM4cNcRe7tuRQb|??DokxlN^TBpB1r{UfveZFo}Lv$911L z445*!R=QPQWR3cKK5yl)Trl)Bas%`b)J=?q-D6AUL&ei6P zVK>uI9YVM~qfr^;AAv4=o6k?SL*#kHKkfFG^)n-8zxWlUkXm(ATU#4Q5>b3$vuX?Z zo{T!~q|z-Q(-%ti)G0R)BAM0l&84QhjIYUmmW;|RSuTIw4#?F890aoKZB)MFF*ouZ z4r+M4=?a7Z^2c;{doq`F%vxg9TegA_X5csjFR#)qQJ|M|6r*0>q4|xcu9P+RmZ%C0 zc0d2BSmoTh-S<%potiDbu z9L}l(^?(EkpX+z#=K_i4A(!L+VsqVX*SiyRBaL0bN(%5%{Geq!cDKeGIz6q5Crc9- zc*N@;7X2!0mWMG>FnUUlYJ$$m3ouT2G{5jMf!&!mfMk=bM)D>z`hzyknN&m2Ess?m zWhw8%lUWsRsPuc&iJ`J$ILb6to7v5HCu+om2Bt&5d%Va0B@s-O1TVs#ax?qYr(7$ ziYy67hLAS}VlI=))77)+Vs^QQBhUXIn~d+;97Q| ztiv=v`sDUICNb6zl=`-b^NeuDATN5=suH9kc-+1UUNr5PECaR|d8$3i!lwGV2#M?E zT3&92+f*rVxx=j<>AnWyBAbRA?j?!P!_-V9439|xf8}snQo8C`5)@doW$~ofS*S6I zNL{eQ#6Nv*Jf~;+1^McvfZW(xQdRrwUYV?jY@H2v*LIz1g)mJ55`nwZztRYuJCUY+ z&j&>onTCg7*5fDvfwc8MzxYoq?n#g&P)Vz~@v~IQ!UCJ(#s>%gjE{kEz;IFvS z>;PYo5j7Jv5Mxv_4)J+Lhu+6)vbfP#3ng1HSOsvm!$+h{<6-DnFpst3@}7Ri%b@x5 zr`EiUNNcx`hGInA+6!vowjzoVI8-@&_#1$_y?mf7nv-Ghnz2?4*gjh>Gfb#`c$ItI5DSbC|eN|-Whz;O@1FQ9n8jvBDvuq4~7Ih(sg+0PoWVDWL1A@wKlm z+BWH>DnF-@7j9m`T-E!0zzgb@JLriprbGIu)~P+qL}6y!I6 z)L&R!3!U2tRdiii==^=WGI8@b{d)RIv;&%usJc=V zDVuMYB~Sx<@LX^x1yu$I8*RS2`h4Ktd0WLF31+t64-Q`On5;dZ2Y^SfVWQP}Yk{}M z%`g?B2|qv#&I)D1cFR-^EE4q75I&jJKb0qX_z!?GGY)0<^uIs)Y8Secnrz)y_R$1m z^=e!G;kW8hRZPX@88)0D^No6$M_Ix957apzXzZWNboYyMO^OIUAi>=WYPPhyqk~|s zJrBI`bQNZASpNzD_x`)-JCe8BqbQZlz))>LET<5x>T0c@L2XhvI`rsIX2Kv~nWQ@@ zbt~ns?*DO6v$zt#r}T&%qYXh_6cAUW4ovHL+D z{u-~tyGvk;I1zU~mcS}ocXG~4;cPX?Y{8>n!(l)Xqo(hX?epv{s?!I*;c{15#3fhc z>3vVQBXY5%@=1lxsPrZWegytja%aq&JjV0w#>hNdex>H77$ZEJ0kLU7u2lVb5GaY7 zeoZfEH?R_V|7x{a&35r1{v1y3$fF5A+%G13OD(X-Dc#v9MKeDRjl9?X+C>|?Wj z%JPwrUhaJKUvb^bIgj`zS6?(EqvKJ&%A=sz&4&^^q<^{xhbYfiJGyeKWlj+=y*@2$ z1R7EG%dJJ0E`Uaz5=&Qp1*09gmP(m;@L>|tO54YCI)=N!tWd{D18uG8yeP6&8~Qfduo|$9``vwSgpky(w`e+FGp>B zO^$yz^0BKrF#f;2;DJgJJ86UEwB1q#O@#^($pCJ7^S6KOUHCGVN{3C}9C;4cLid}J zp&-Y6OYDBGMiR(;_KG#f$-}o2mA>1IdBf@B@8tn$4*FgL@c$i6_#)?~+97fR^lV0y z9+f=5SH43aqXc2oNUIW^zC*j7xV^omS!L)7*?w+)5E8+MX`|PMhQ$5EPXgQ{s=6)b zNN)j%arTPQws^9<7y=*0J=pwfRo@zsT${7;KpXLP-!S@pKLjNpp7-)KvbBUC$gD6H zn@aVgE1Q9V>AdgKzMJeOuj^K!p#3X81s#a@1*+dC38n~s$TCfQFb9>d`hALC$ug!0 z>&irjFQeJ%9vrEHvOn~%e%Cs~pv$B{?~gxDuP%^hjqpxgGuP1KaR4H^w-W6)TUYpU zWdgQsj%HwN*UmA0GVs1Vw`)*~_URuFSoF$C=!lY0Nf23OQW`S8>fzJKtP zYgXO)tE2?0vzqrmwWTXYpLCiFQz?2try+d$Eo)o%HGL9Gmmhr~$k?raZN*t%m}9Vhzs+_!k0DJ!;%a_5 zczLlf1Y(bWxm1vDMm8myxn8;+de#;Z2Q%#!<1sDFAw zrt9A#+j3dqVmycSdh=8H@W>P}Lzj=iu9C@7-2gVBs9py9=4V0kIpx{FdL zOu%^dpW&}3ci#GLrV&qJWmbIRex07=t8O!ZUj?ZbAS#6hTs(FMzpuSZCKmBgc9yY% zqbrZhics|nt^E%a=>_#9QbSg68w0+ye59P;oD<|$ufcd#QZv=v@d-6!;KIS4-43Cs zaQ+cgs59Z7tXvq|zrw*~l9+D|=p}DsbDoc-=+dUUtQ`5)_d;rq>+{q`HauI4n|gtd ziAbk7qeOc2Q=n0iUZu{MN6Ajh5dR6=@ zrxm4^JdsVCZ_dL@%q~i^ZoD{0Ti}nSYsj5DAJ874yUfvRHJ=N3ffyxK)9A_ z_?x3XY`aR3zUt-Uv(KrtMu!+UBby^f3`U;ted$I@DcU5{AR~N4YvV}2w|Y6|zyYiG z*Lr%h{p>}N^*osQ&BROEz3>x8-=q3XgL@(K7cCOyw%J=eG#*$^54K{kju=0_K*D&?{r@E-Qb&#%a_2@1?R3V<); zjQfCyQeygrDglI|7qMxbV|9=n6?PNf!t}p37(JJSI!k#hN+OP^Bsugh+ zOfxRm>yZ5zdVmpNvL=TsHL*tWb|s)*nnW>sgLxZQZ6DjF5#hXuDCXLF5M}Glm&Fm0 zLH>-*{nS4RXa`FCXqNI|xoXt#d!7@kT6^Gf{a5#d=)bjZ4F+Cx{1rdhthEQfbMd~t1l>*71*Pd{%<&Pw#0sUBD62W@H>kbMUe zB2T%gLZ?=%`ycAQ6@4@qHTbmq;B1(d{EcOYwq5+e{jcO2ElBT6f-5cIP-dIqRQl9_ zM)T)Bmgu5QcP`Ut`+&2XX9+a!MwZjrsk&1SXz^IWT>J)Y<&fhn`3y_jKj}Q_1W4}1 z!3}nfg%SX#w12ZZ+^Zflo#)$W2cM5<{T+RhkK*T!qYlc4vrXUA)=d)ymG<5S%-oLu zfi%UlJWJR;5$tHC+5KQT%=~9?LvpVT9hbY#c|tq!rOmV(w0O{HNB`H@ImPJ0L|wXV z>$Gj#K5g5!ZJf4ky=~jJZQHip{eP3mBy%wrQx}y=_H`w@)?Vu=AEciyzfTrUlUKCP zKbz+DY9GTd>sP8h^}a3M==N3mwmHMvm;ZkS$6BNL#;cK2U+2rrJ8bpKs+9atS&PhGRWi$-^$>my#aOAF2=V|eKnmydEiRs^`5 zMH1}`_sVbZyFrsHe=7y%kvVrXOG6G4T9ybw5`u{(H-{kTHeX?g+>VYkkezVw`RInOBu0u$7*op<&KX8Ilm8Vx`6F}DNM>AK z8@ad0VyO=bB(y@{Pq$Ri)reaeM4jZSEdN8be1S0rZr3GfsXcHR*D3-L_P?(|5}y|{ zL9G-w@t*j2o8PnT^BmGrGq4X|JLg?3-kUZ|qx4KGu~n8<_E&#F(UIv%n_yIzTOoT2 z&I_*(JU=(Rymj+(FoN_!gAjM~fDah7FCMhyVUq5ZVM+)KPjaC zfmVt+OVPk)l*PwO8WV1i$OTRE8zcVjU=8a@Tax9V+5RB5wuPuH)sIn{Ut@Hk;h zCks5qHhOzchtO=oMB>$EHy%@kKLVpEv6FIt{Gml=iFH!1D%uc_|9vf?O#M3=W(=c{ zJGPgSTLF^H|A>%tNpEDWF{q=;z5X>W_u0ybos!kZp(mBk8fw7ipCN_>xR zAQya?mZvO{41a}r8R+YxNR?jF{fJ!vzKo=qtUe=*=zkJ;<$6$aVa{Zd_GT@;Q=CE> zt6H|WriJ%ZdH0jS>v)!cmd9Oo2_|emI&zbs$4`7koRfDu#%kSo^G>LY4bw8tI@N` z_x~(N0RjEIko5frX8FGslY7@!FV0mQ7IhV!yoA~6QU`-^va}(KMOiW-F3q08pWBcT zNjCY9t;?S58&--tl2y_M0hILcVA>%4ov@hx~@QbdvyMY<;Im}5!)9`ibGRv=ufB-AW&Vv4Spsy(* zN_LSWRx`%i7)lNUm56LaP{8=nn`a;5$UJ-*!<}qYR zjns*ddxoy{?Bj~)2M9vR+t7nHuNS6%M!KGNz!fH0<|~VLMy%@q(iOuD;$l3Q(^U0{ z+nF4kp_yuTU5>?U`KLz*>Hb?ak(SHJ&-9d&wT{2vx+%kZ#&&kkL_;6*XAF5K0OdR? zt?Sv1g4t1 zaj{OCdm=Fk$@h-vih8rZd{`Esp+sCKdw`#^2%wA-=!k)5 zUDrrTXHslWug{hsg3&>RaEp1qKB_%8eEKwqpP&~ibx~TICG@sfn!h(yWL%(vb{TNA zq+v(3GwL)n5X);gI_u4`;P68*QbP-U{Ta=L%^7&B!uLX?6^b@^7h$618EOeCX5c+2 z24fpBqo~DS?f1xHwEX%a%X{#)-20n~topWie9SS!A|H(3xe{NueQmFYf}c%;TdQrMwxVz zm#ONT_zkAjDOv^VbD^orLO)5>1qFv2se<-bh%qswGhDa=~2>>gqdEqxAm&@&V-A7`zsL981P1K0fA&SL$uK zOFoIupZD#gdIQlS7Pc2S_+bcC3l`S}4VrQZ{$kt*nCLQ=1NdjFFswK5 zTL&0|_;#-PmQ*s+;Mkr2VDi^_S#6f<4I(!-Aiy>yQ19YU7SlFA2oxKfPm-a-p01em3b&}#_t1|1mfF8#4k?$g`* z88qlsH`eOI>EWIM{}$Q+v9?t@H{AC|2hE}McPFhT|8ly5um9XNIQzt}|Kfl)Wh=C; zi4nv3Hu~lth)H01&kY_F8=CN7$z61#S-f3kQnVR!QdB(eo}(+17Cbu!;v?IWl5 z&6|ip`C%;ug}01sp&BWUt9)L}tWnYzmk~N@+paslm1-{grJ<{__ix~~b+87f{7UpT z6rc)XNRcfIdY0-k1`oK_5GxP8pb&TYq3g)AdHpvejxYxq4w-am9$WfF$n>2i z2QpqDax!R_sf4gT@?v;*^3UQi1btq6PVD|i>R46r=h%KfS$m1I|U zSpE-taDI)YedV=M!20zw`pIZ9fxz1_xf=#;Rrd>~@n8z}>m<7H6GR8;%_S0)##pfn zI8BLsBf9{rF)1=+FG)xIU^-uYJ;;H9SN%T6?nD8V7q#!W&#D8R2oeoAQfrWkBBQED z@;hYa%?Fh+z-^4mvma%4=yKlfQIkcA&DZ?sQQl2Hx&giKf5V*pw!9bmE9+=jn?b0| zg@pVEHVjAFSLL`R%rK+2rqz6|HS@JFr&b)fZnvjah_A=LRahFC#>(&wIZCv~*YecK zF!5DOghSNbOWrCOUTx`L@ESPf1?xA>b#gBOan2)RS@D{;D}`}Fec4qfAf1)2eRF;@ zqK4p!8G=$cj*f}|ZD(*5!dbn09OX-VH>+U?J{V>2KzN)KG!ePRPwZvF;JbTh8}Erg zsDZ8!#D2Sj#rrh2?TP8QGBUf@Ie@~_3{BUn`jV|dL(7+S zR1@!bf)?l?W`>^>1+VGm(NP3(5|aGDQei5sxDBhsYHyhtGGPQ{QaXp*@fx>Vdova5?~fC0(kJ>XnruEQOw zGEy+2GJ*-5^B07|HlY+6mX2QyiFFSAY=s3DsDE5vrT3R+T~{TNu>`fkYyodfSdw{dULJRem=7PRbX%IA&^CLz zPg|V)$&f${d&#B>oG31OE-<4Xto|%6S4RsPzKy^yo&|Yt*R-=@%H-JvDut4U~kAy$cGxVvj#Q0CrEZ%2%Idu7I@Ne6dezYG{br0ur$0T%boPL?xE`J3Kl<;woH;Vz?M~?h#|6jI!64uUkCuqe z1RkS>J!VW>0xWYBcgJvtApJjJ7BeJ+5pa*PkeeHh7)ZHX6aS(oCvP3M>Ee8R~o z4f_Vjx%b(iPsDHHVlDcGTeSe~{BQyvokoFBejFoUqP$&`n?*6Ndo{3c_XyDa7J#h(BY%D7CF4R$OEi8SmpvtKTeUFlat!8>35~3OEUN0G%Ktj?}>u)~X zi9vzeR22MALW$6|s*x6wnuI3Ed(mMX7v87=yPt$Bf1J`LIRf-raZhz-j)`qCc{c=p z6Nx_DNJ6^F;N_N$nc{Ynd2|HZ)qEX08Vx;@23jl{q--m;{g!7d;2Th}$EfcNh7iDUn-k(KjVq%?5raxrR44yaVXtD z`E+ASuh5qw%9#IhIGiu$+@qZr3j}KyoJ%;4s#gba`CDQ9wgXYhZjq&JJZD%B9t(5j zvkFF1^q?4~HLzJx3fk!B(wchj$+G{d&^vW|S&7Rnlt#V$reiv?Oz zI`O36)Zj$A^h9_|qwFwJhBq%*VS?63KyfpJz$+B11rFuQR1asD&7R{MdD`L3ar*1s z(+wR2&!G%=$#jMPu|6qRcOe}Gu0YhllPMlt%?>%CxEh39R2nnPkyR5pAGHq2D=Iyn zK7N$_UvJps8RXQJ$f^teGJ~U z^d6%ZAW0C?)C<Ls6>9goo4|8Xj$S zsUUKmDcC__GlzU^q~3UyR;;naHS3X`b8>%*wU+TDKmILlHC0-2V4F+b*r|I_gt}i; zVOBoo`lawL#Jcv=jIKAIgX#$kvgj(uU)TAvWS<;Mq@fWd_efbNkZarrw(<5v^-$}= z;T~<=MqI(xHZTLajMQ4Ib(GcprXwwQ1R{oK>bzUg!x`qr_|!P#Ft46;ynHnEfoFez zL{m58;uZA~Uz1`GDVuF^B8#RpcCyU6rF$C#6qG-p@bm~%pRF7mmG4y58Hq=|*W6J- z64V|WIp>EJ!Y-z}Li;xlu$D0y8K2TFk-%KJu^Ou;aXz+- zP9jzf4exlU3ykf&ycBc(D@(9p=v2kYalSJFF7A_%*@=w+^{atNQ<*X9(=(4fEC3=; zd^A-E?ElsELQslS`uiyct29r^KbR)4fcJ=P1kzu#AnX)zgpBZSp3lzTOgh!Bnx_=Q zi>AMvBtt*|Pb3%#iVP;ma{#(mwGIq!x3$rebmeC_VhnQf&%Rw3qju^^Ol%Xrk1#*j z9^H}jq3-i~43{osRsx+OMXCrufj#Jmvc$Awnb z*Wl-b32Y~}WM~?O-R!2aR063W!4a3*#PsOWq-==1Q zx>-5;nYndtYzco6!OMV)H^*AW=e2&{9VX|-F@PWwoY=Oq{l)d81``AXGPwP&BLcq)h5cyoD~-Uv5p{0!Po^g0;! zq1-#25xRw@KmP!5|U3 z#X50Rk@INQV>a1d4CjIBE@J%J8eo~IR)OuFBmb#$uS~KoJpoh*(3fK(%UMOFns6ZU zT*Sg{pPJ_p4mAjTFmctQ>4wreaE_y}t#LWed6U&#!ach5yfBv$0tn4zd;TNBagX|jvX1wDHm|3HG5HDqD;h(Jh~<})KfJqjMtVQf#!2UA$b2D-ARBNm0Og^*Um@{p&lz+V5+sbMZTpaUC7sDJ)KX z2kvC8{mW`SX0P{JM=3Z&#?)rLb-l72aZSt)(=#GmQIW^@^*gfyW&>r=vb1X$n(pM( ztWfLnk}BZ%mZ40-2)wXkqSr{Q*@ARbBIEGJR;HU0Q2qHimoM93P+9j$_9Y5B4&4TE50f*tJEN=8S;?p1hjsA{yETXWB^EB|{W^m_j6{4x|wuA8&22zO2HTK;U zd=h)X=5>c&4^1FCC&tTXkdjH;TIV8ng6pT{v~I1z!ZfM{L2TV9?jyIYH^udpb16^p z!$Nxxyf;*KD$D@4$^!>a(E!M$a0JGs4aKV_V5!{p@tkfIH!wx>&v#a1=4uHIyeZG< zRjNzt5uA9{=hbB5E*V~l9cqjp>*;?`+O2KcJFMP8j;4;K#5dx#xAS-^csV{9t-luy zW`rDJp`~=*G6KI*r|^D1{#z(~zmGD6WTs90Zg0@94mUkUbYzhgOoHsGN5q(H$q%c# z%1qo<=TNU|aYiJYm?*IM6<`>0cdF9L6s`>Hx=~Wx`R?c*3a~clSA8Zt#7{5tYsNUH zhfvY(jcUu7#;smio2Cs5fhiS3l@{_FxW*<8KIe15DIdgH}Yz0}XcBL8xz zHW15Q1~YDA&Ba(%6*h>Dt{RA(I%nQ&#qbMG>aLhsqCAN}k~MMxjsNg_1VD5G1qj0dyuX6ES*@RvPDnS>K>|`>SE4~!?1kBR_cE#io>dMs=c)G zy0kbH)NS62r%`GMlo>#dj! zwUjwyE;SPl2NVZ(3aMLfxnhjW4h)Wxw}@`QQ*QXw<4_sDlp5n*K9eB&3?NPOL}+kt zI6M5bkn;g;rG+5p1fm15D7N|_&tXN$8gnTF+N8vem;^~>C3EBK_sxCS^fLI+9uuG{ ziUVS<)veTZdY~Wy=v+%n#JjUCcL4;)uE9^r&brvff*#?EkuJ^XaXQq5=t)5l25>Rf z3MJ?!G6CEt3=5%K4ojV#%kr>JHu=WQn@69g?v}A;HRg>L8h-HlnNj|2^Qj>qG%`0>MW*i~CLRU<=^KD#fEj<5MbW*Jt~n$TYK*%D??_)& zihd#4yD)7sT*uYy6UIOi=1)K&&s45L2I6Z0oJu|ZW|Ag}tCbHv@M;|{c}#-p;BsQA z1D+*nw5QXXR-AB7SdC21?UU#4STPf03xQodc7F7Tl)+?!YzB#W=XSsIcuY$P5`5$2 zgvI7sCb*^53ZlIsVYXP^01Y@#4=E3yJi!8cYnwo++RTV80l6&YA+bESqP){-a1FU6 z8>bw)xEb)op`+OKtx%9Q*B$TIxDumlI3J3LiePZrVvsz!(UbT~PSyg7r}ICih~?F? zgW>Ivb@O*S9T}DfxI8%S#5yPXR;thYEOTyfmIWZ7X;pl+&TRTY4|r#$#^T;ZC7;v8 zGm+SaY0+S%Klc^nSO+i3qv7L7Sox5q{$@nbD-iixhEl%7w9u+6Gq7TPAO$%|zW-fL zfiShbX8ahCc9IeO;Qt7790q>7m!H}u58j=GYz1XZ>EYwv@U#D(UCfeMlUE}pwxkFw zjZyl%Go*3uc-R8h=#kvfxSB6x)H-u@a1SF(CmSUKuQdIIBF!c>T~>gx&cgJnXbZGyl3v9?KGOYNl-z*@zGRuM?Zle5@65iO_%)o~9p7*5yh z6eiin;sXg_HYIPuy^4}V*jT!D^~W9PSuhXZr*K`NgdIV4Q|}^q+2(ZeZ%DV%8<6eC z_TkOu@Mo#S{GS+-EjJV{TCh~tpZ#&VB{G^G%F`rf|X{vr)_rvAP z1Bo+@M=6n{JyHPT0Q+msRAQ_Tf=A{w^392nCs8UY(phosETjSNJ!AL>(f&KIJ#zFk zh?iTpm&Gep9Y#@YTWW?JC@g|z$b%?DiPLU)(l6^#7?2oNUm)_yuOB%OZ?YmW^j*@N zVnRM=E^TCgCDPa9@8aIWHS_-_H>s68!&PU3?5JObaT_u~gs9HZ_-*D&y{^p2QGQQ! zcD`R8LP&Sh-!^be-!nDBJC0rh_kv#Gy`RD}ajLdz5rSsn#C!xy+^IjC@UHk>G~W#| zqF3V6AVVMK)qNvo>>cLFG;L_G5{&5TX}9Du9hVrFM9bCLEZfiZK|Vv9NJzzP|*!!em+e=B*s`e@E6mxA8U0W{2cuURCBlwvv&Ed zCBI>}=EF8+JDiG1kQmtw_|%1wqlcIX2I z90_XVM|Z=@i0)(!Q>gi{p(o6GXRg{ZiEjVKE@YU%`gcGAgRa zziTqw9zIDO*O28I0sah2m+hb$<#+^C_7ED zs|_TMlk>}t)4o4gir=~zIykx#WsHS@h+O~8kdDo?epsj|O{#g5NfR7b$Hu&|95W26 z2XMbIyHoNM-0Hg%hX!oHlC_NC83T@go&L~c(9ctCT{=F^OEdfRX3xn(= z3TCY3U(xU)svgK^e_9jO-Vqeut25jeu-XSj8vAS$l->qm&4Ui=5;fro<*$8AVxoq* z&5X23sabp~!4(4?y|XgaJ!=}Y8Uk{njpd<-AinxA7BKlaVX1(+aY25hBf?f{k}bt` z@zOqULpIP*1R1w=Li~(D!G_VTrt8T`F&+BnDE1T-kxsD&MzgFgjN$Gs7Fb|6jIK6H zMoZY}q=Xd)){38MS_y2>(*wFgI$;hiCLMroWH1*bY5AKMlrXs4WRl+=3Mg(N#_87X zGSW0{+-`d54O;>uY^Bt@iaN?FVlGoI0z_Uy5Za0uAoRTY3NAP!e>COPd1_%0i+-k| zU}AX+#b4JPhfKY1L;k)>ZHpttA%3*#?iBW&o^%6S5cb*@d$aY|8VP)nP@iS&iuiIa z=26i)lLIx0`yfa{p{A&PNb_P$-CPu5zO21=_W=22*BSG+PRKRv*jj=*FFEb9>cUYs z0#yycx6%mo=w6J%lH_7#|9O#q2=J`bI|pHN;eISEqcc38J9by0${%Sb21n{jixveD zqgIeCDM_aSS*Zk50TVHbE2{G=3z7!G6q9d7D?x3?OCbjp>+SnXa}2s8>n8podfWsB zf>iX#0it7){V5>2pPy{FK(wK2My=$bzISeS&3Bj-zl2_svIT<>OB-WGhIrI-M`D62 zZ^XboT0}wH{>FF)JsA$X^?li?7pFEl#Jb9>dzbn@~|^n%Km(X%s&`BL47CP zwdKu+U}-A&)T1sT_}}j?$Hjj=Po&Y9U5<~qK0UEf_Mu4OQT`3qh{PhDV`1gwP#D`w zWX4xc??;7S-7eiWEn0x0-Rd4Lsw2#>9AK+w%Eh2Cb8o}~<-HaGU_F*|7^B8nKRHWXlh#$%ZEdYC>$nK5dDe}Q-&0-G0! z_&(^FD$#6(_boQpeFsG zc6`}3YQFE5#0Zk`TP{<~J}sj(hYq@dqp74pEqo1R_-2zb-ayCCeSd!T3OMBx1<~aU z@@<-<=?1^X=wif>hj$>3-Z?&{{!n6FyjP)&&>i?aI73lePJI@&WpICJl>|^-{}ZUB6*+msD6vC}U`CCYjJC8L`nzwC&Vh z)7*Tm^=H~N>l<`{E-v zjtTgkwY4!{@t7H@8f;&=?r^aT7-xCAQJkaE10lZHUD zSY*iAYEJj&XH4&^&7CX*9ti3SO$RshZK1q@CM=+Xp=xUwV+4XqCBPAeGC+|G=%^}k zo|*`$zfzVz4Uq9;{HT)34lpG?wU3$2`~Ez|%*b{sfc3InY`LfG77zRz!Chtytv=EC?MNsh=$Xu4pQ#v;kEKn!s{9Wx>=kWs<%_d#*O^qDqqTT#eNoFTDk> zDzLTq=!^_VlQ6m$`1H}{Fj#%b#^7Xcc$b(vIt!Rz6Mspl&LLCZ_#_gU7D2LyECf3If!3A5no*J6pm_+hdj7@} zPlX`YK*<((ENX+e{-+~pIl>hCF}V-!D1PuJvY*~T&q9~CiBI}w{7u&E`x7z`KT_nN zBhm;1`@5EAmVs;AO9`ChmL2J(4+PoH-?wBq>2PW^64kjD#S>lS9F5#gI+Nz}_j{^= z6^QFZIF>SW)GH;LhW}+{gS7{CJw_U~wZ0=Hy-)^e(wDr!OtQ@^cQ49Sq(`e0D*9F% zBvH2hLzTgG)3l80)H^HnRtC%tzvb}XD|i4{y;meL1x(t7l8y{;or5n4OcMF?(hDNd zy#IidKh1q^oz@-Y9apphNGb3eJVq4`3-y%DzHO0m`p&-vHlx+2EqHC+FZl%z@9sAd zd4x<<16ZRU;y7d$C)j#F(#9}tcLyhXP&v)lAi3=f$37rsY5X>AUupgzatQeVxNeY7 zS4?sy!}DZoln$ny4_UJU1E+1c5Xf)!y4l}4?cdcf%%)2!NMGbj&r)08klb)O5W5cR z1GGCRw;8$=myGH@AhmrjTJ5bY)|g(K`Yd4Q#|hQl z53S0l3q)~J(0{O|>`gFXH(=%o@XmPbBZlt9$Y3B^F%`PQU9Vtuc^%Xb*mli!T# zDXK*6U>xAlDT}S9tE%7Nb@MIDUlj93Y$8`zh{}gT;u?XC>MK4LBZEox6B^x$5I#Wz z=;(LH%Ldv|D2)PcgB7NWiYc}<#^I#IRM)w_hs*+RV5vDX`vA|r|6`AnYx`fP|GfhN F{SSoJk!}D0 literal 0 HcmV?d00001 diff --git a/docs/public/inacovid.webp b/docs/public/inacovid.webp new file mode 100644 index 0000000000000000000000000000000000000000..0ef0f44f5a5f0b1f07eb21ae03824dbf6e23e761 GIT binary patch literal 7500 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 W?qlc*>>H<1fB*mh000000000;Q?MEU literal 0 HcmV?d00001 diff --git a/docs/public/pico-api-logo.webp b/docs/public/pico-api-logo.webp new file mode 100644 index 0000000000000000000000000000000000000000..37c14c8edacc4a6b798ade9f038e67ec21749dd8 GIT binary patch literal 5186 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 literal 0 HcmV?d00001 diff --git a/docs/public/pico-app-logo.webp b/docs/public/pico-app-logo.webp new file mode 100644 index 0000000000000000000000000000000000000000..649e26d7b426ff202ceb6bf57c82f50034df2245 GIT binary patch literal 3610 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 IAa~*d0CedA-~a#s literal 0 HcmV?d00001 diff --git a/package.json b/package.json index 57e8b6e..fc90955 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,10 @@ "lint": "eslint src", "typecheck": "vue-tsc --noEmit", "test": "vitest run", - "test:coverage": "vitest run --coverage" + "test:coverage": "vitest run --coverage", + "docs:dev": "vitepress dev docs", + "docs:build": "vitepress build docs", + "docs:preview": "vitepress preview docs" }, "keywords": [], "author": "", @@ -35,6 +38,7 @@ "terser": "^5.46.0", "typescript": "^5.9.2", "vite": "^7.1.4", + "vitepress": "^1.6.4", "vitest": "^4.1.0", "vue-eslint-parser": "^10.4.0", "vue-tsc": "^3.0.6" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 55cc8cd..8e3eb92 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -90,6 +90,9 @@ importers: vite: specifier: '>=7.1.5' version: 8.0.0(@types/node@25.5.0)(jiti@2.6.1)(terser@5.46.0)(yaml@2.8.2) + vitepress: + specifier: ^1.6.4 + version: 1.6.4(@algolia/client-search@5.50.1)(@types/node@25.5.0)(lightningcss@1.32.0)(postcss@8.5.8)(search-insights@2.17.3)(terser@5.46.0)(typescript@5.9.3) vitest: specifier: ^4.1.0 version: 4.1.0(@types/node@25.5.0)(happy-dom@20.8.4)(vite@8.0.0(@types/node@25.5.0)(jiti@2.6.1)(terser@5.46.0)(yaml@2.8.2)) @@ -102,6 +105,82 @@ importers: packages: + '@algolia/abtesting@1.16.1': + resolution: {integrity: sha512-Xxk4l00pYI+jE0PNw8y0MvsQWh5278WRtZQav8/BMMi3HKi2xmeuqe11WJ3y8/6nuBHdv39w76OpJb09TMfAVQ==} + engines: {node: '>= 14.0.0'} + + '@algolia/autocomplete-core@1.17.7': + resolution: {integrity: sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==} + + '@algolia/autocomplete-plugin-algolia-insights@1.17.7': + resolution: {integrity: sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==} + peerDependencies: + search-insights: '>= 1 < 3' + + '@algolia/autocomplete-preset-algolia@1.17.7': + resolution: {integrity: sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + + '@algolia/autocomplete-shared@1.17.7': + resolution: {integrity: sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + + '@algolia/client-abtesting@5.50.1': + resolution: {integrity: sha512-4peZlPXMwTOey9q1rQKMdCnwZb/E95/1e+7KujXpLLSh0FawJzg//U2NM+r4AiJy4+naT2MTBhj0K30yshnVTA==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-analytics@5.50.1': + resolution: {integrity: sha512-i+aWHHG8NZvGFHtPeMZkxL2Loc6Fm7iaRo15lYSMx8gFL+at9vgdWxhka7mD1fqxkrxXsQstUBCIsSY8FvkEOw==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-common@5.50.1': + resolution: {integrity: sha512-Hw52Fwapyk/7hMSV/fI4+s3H9MGZEUcRh4VphyXLAk2oLYdndVUkc6KBi0zwHSzwPAr+ZBwFPe2x6naUt9mZGw==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-insights@5.50.1': + resolution: {integrity: sha512-Bn/wtwhJ7p1OD/6pY+Zzn+zlu2N/SJnH46md/PAbvqIzmjVuwjNwD4y0vV5Ov8naeukXdd7UU9v550+v8+mtlg==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-personalization@5.50.1': + resolution: {integrity: sha512-0V4Tu0RWR8YxkgI9EPVOZHGE4K5pEIhkLNN0CTkP/rnPsqaaSQpNMYW3/mGWdiKOWbX0iVmwLB9QESk3H0jS5g==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-query-suggestions@5.50.1': + resolution: {integrity: sha512-jofcWNYMXJDDr87Z2eivlWY6o71Zn7F7aOvQCXSDAo9QTlyf7BhXEsZymLUvF0O1yU9Q9wvrjAWn8uVHYnAvgw==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-search@5.50.1': + resolution: {integrity: sha512-OteRb8WubcmEvU0YlMJwCXs3Q6xrdkb0v50/qZBJP1TF0CvujFZQM++9BjEkTER/Jr9wbPHvjSFKnbMta0b4dQ==} + engines: {node: '>= 14.0.0'} + + '@algolia/ingestion@1.50.1': + resolution: {integrity: sha512-0GmfSgDQK6oiIVXnJvGxtNFOfosBspRTR7csCOYCTL1P8QtxX2vDCIKwTM7xdSAEbJaZ43QlWg25q0Qdsndz8Q==} + engines: {node: '>= 14.0.0'} + + '@algolia/monitoring@1.50.1': + resolution: {integrity: sha512-ySuigKEe4YjYV3si8NVk9BHQpFj/1B+ON7DhhvTvbrZJseHQQloxzq0yHwKmznSdlO6C956fx4pcfOKkZClsyg==} + engines: {node: '>= 14.0.0'} + + '@algolia/recommend@5.50.1': + resolution: {integrity: sha512-Cp8T/B0gVmjFlzzp6eP47hwKh5FGyeqQp1N48/ANDdvdiQkPqLyFHQVDwLBH0LddfIPQE+yqmZIgmKc82haF4A==} + engines: {node: '>= 14.0.0'} + + '@algolia/requester-browser-xhr@5.50.1': + resolution: {integrity: sha512-XKdGGLikfrlK66ZSXh/vWcXZZ8Vg3byDFbJD8pwEvN1FoBRGxhxya476IY2ohoTymLa4qB5LBRlIa+2TLHx3Uw==} + engines: {node: '>= 14.0.0'} + + '@algolia/requester-fetch@5.50.1': + resolution: {integrity: sha512-mBAU6WyVsDwhHyGM+nodt1/oebHxgvuLlOAoMGbj/1i6LygDHZWDgL1t5JEs37x9Aywv7ZGhqbM1GsfZ54sU6g==} + engines: {node: '>= 14.0.0'} + + '@algolia/requester-node-http@5.50.1': + resolution: {integrity: sha512-qmo1LXrNKLHvJE6mdQbLnsZAoZvj7VyF2ft4xmbSGWI2WWm87fx/CjUX4kEExt4y0a6T6nEts6ofpUfH5TEE1A==} + engines: {node: '>= 14.0.0'} + '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} @@ -127,6 +206,29 @@ packages: resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} + '@docsearch/css@3.8.2': + resolution: {integrity: sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ==} + + '@docsearch/js@3.8.2': + resolution: {integrity: sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ==} + + '@docsearch/react@3.8.2': + resolution: {integrity: sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg==} + peerDependencies: + '@types/react': '>= 16.8.0 < 19.0.0' + react: '>= 16.8.0 < 19.0.0' + react-dom: '>= 16.8.0 < 19.0.0' + search-insights: '>= 1 < 3' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + react-dom: + optional: true + search-insights: + optional: true + '@emnapi/core@1.9.0': resolution: {integrity: sha512-0DQ98G9ZQZOxfUcQn1waV2yS8aWdZ6kJMbYCJB3oUBecjWYO1fqJ+a1DRfPF3O5JEkwqwP1A9QEN/9mYm2Yd0w==} @@ -136,6 +238,144 @@ packages: '@emnapi/wasi-threads@1.2.0': resolution: {integrity: sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==} + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.9.1': resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -191,6 +431,12 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} + '@iconify-json/simple-icons@1.2.76': + resolution: {integrity: sha512-lLRlA8yaf+1L5VCPRvR9lynoSklsddKHEylchmZJKdj/q2xVQ1ZAEJ8SCQlv9cbgtMefnlyM98U+8Si2aoFZPA==} + + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + '@intlify/core-base@9.14.5': resolution: {integrity: sha512-5ah5FqZG4pOoHjkvs8mjtv+gPKYU0zCISaYNjBNNqYiaITxW8ZtVih3GS/oTOqN8d9/mDLyrjD46GBApNxmlsA==} engines: {node: '>= 16'} @@ -290,36 +536,42 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [glibc] '@rolldown/binding-linux-arm64-musl@1.0.0-rc.9': resolution: {integrity: sha512-JA1QRW31ogheAIRhIg9tjMfsYbglXXYGNPLdPEYrwFxdbkQCAzvpSCSHCDWNl4hTtrol8WeboCSEpjdZK8qrCg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [musl] '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.9': resolution: {integrity: sha512-aOKU9dJheda8Kj8Y3w9gnt9QFOO+qKPAl8SWd7JPHP+Cu0EuDAE5wokQubLzIDQWg2myXq2XhTpOVS07qqvT+w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] + libc: [glibc] '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.9': resolution: {integrity: sha512-OalO94fqj7IWRn3VdXWty75jC5dk4C197AWEuMhIpvVv2lw9fiPhud0+bW2ctCxb3YoBZor71QHbY+9/WToadA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] + libc: [glibc] '@rolldown/binding-linux-x64-gnu@1.0.0-rc.9': resolution: {integrity: sha512-cVEl1vZtBsBZna3YMjGXNvnYYrOJ7RzuWvZU0ffvJUexWkukMaDuGhUXn0rjnV0ptzGVkvc+vW9Yqy6h8YX4pg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [glibc] '@rolldown/binding-linux-x64-musl@1.0.0-rc.9': resolution: {integrity: sha512-UzYnKCIIc4heAKgI4PZ3dfBGUZefGCJ1TPDuLHoCzgrMYPb5Rv6TLFuYtyM4rWyHM7hymNdsg5ik2C+UD9VDbA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [musl] '@rolldown/binding-openharmony-arm64@1.0.0-rc.9': resolution: {integrity: sha512-+6zoiF+RRyf5cdlFQP7nm58mq7+/2PFaY2DNQeD4B87N36JzfF/l9mdBkkmTvSYcYPE8tMh/o3cRlsx1ldLfog==} @@ -350,6 +602,168 @@ packages: '@rolldown/pluginutils@1.0.0-rc.9': resolution: {integrity: sha512-w6oiRWgEBl04QkFZgmW+jnU1EC9b57Oihi2ot3HNWIQRqgHp5PnYDia5iZ5FF7rpa4EQdiqMDXjlqKGXBhsoXw==} + '@rollup/rollup-android-arm-eabi@4.60.1': + resolution: {integrity: sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.60.1': + resolution: {integrity: sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.60.1': + resolution: {integrity: sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.60.1': + resolution: {integrity: sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.60.1': + resolution: {integrity: sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.60.1': + resolution: {integrity: sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.60.1': + resolution: {integrity: sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.60.1': + resolution: {integrity: sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.60.1': + resolution: {integrity: sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.60.1': + resolution: {integrity: sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loong64-gnu@4.60.1': + resolution: {integrity: sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-loong64-musl@4.60.1': + resolution: {integrity: sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-ppc64-gnu@4.60.1': + resolution: {integrity: sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-ppc64-musl@4.60.1': + resolution: {integrity: sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==} + cpu: [ppc64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-riscv64-gnu@4.60.1': + resolution: {integrity: sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.60.1': + resolution: {integrity: sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.60.1': + resolution: {integrity: sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.60.1': + resolution: {integrity: sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.60.1': + resolution: {integrity: sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-openbsd-x64@4.60.1': + resolution: {integrity: sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.60.1': + resolution: {integrity: sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.60.1': + resolution: {integrity: sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.60.1': + resolution: {integrity: sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.60.1': + resolution: {integrity: sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.60.1': + resolution: {integrity: sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==} + cpu: [x64] + os: [win32] + + '@shikijs/core@2.5.0': + resolution: {integrity: sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==} + + '@shikijs/engine-javascript@2.5.0': + resolution: {integrity: sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==} + + '@shikijs/engine-oniguruma@2.5.0': + resolution: {integrity: sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==} + + '@shikijs/langs@2.5.0': + resolution: {integrity: sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==} + + '@shikijs/themes@2.5.0': + resolution: {integrity: sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==} + + '@shikijs/transformers@2.5.0': + resolution: {integrity: sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg==} + + '@shikijs/types@2.5.0': + resolution: {integrity: sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} @@ -391,24 +805,28 @@ packages: engines: {node: '>= 20'} cpu: [arm64] os: [linux] + libc: [glibc] '@tailwindcss/oxide-linux-arm64-musl@4.2.1': resolution: {integrity: sha512-WZA0CHRL/SP1TRbA5mp9htsppSEkWuQ4KsSUumYQnyl8ZdT39ntwqmz4IUHGN6p4XdSlYfJwM4rRzZLShHsGAQ==} engines: {node: '>= 20'} cpu: [arm64] os: [linux] + libc: [musl] '@tailwindcss/oxide-linux-x64-gnu@4.2.1': resolution: {integrity: sha512-qMFzxI2YlBOLW5PhblzuSWlWfwLHaneBE0xHzLrBgNtqN6mWfs+qYbhryGSXQjFYB1Dzf5w+LN5qbUTPhW7Y5g==} engines: {node: '>= 20'} cpu: [x64] os: [linux] + libc: [glibc] '@tailwindcss/oxide-linux-x64-musl@4.2.1': resolution: {integrity: sha512-5r1X2FKnCMUPlXTWRYpHdPYUY6a1Ar/t7P24OuiEdEOmms5lyqjDRvVY1yy9Rmioh+AunQ0rWiOTPE8F9A3v5g==} engines: {node: '>= 20'} cpu: [x64] os: [linux] + libc: [musl] '@tailwindcss/oxide-wasm32-wasi@4.2.1': resolution: {integrity: sha512-MGFB5cVPvshR85MTJkEvqDUnuNoysrsRxd6vnk1Lf2tbiqNlXpHYZqkqOQalydienEWOHHFyyuTSYRsLfxFJ2Q==} @@ -464,15 +882,36 @@ packages: '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/linkify-it@5.0.0': + resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} + + '@types/markdown-it@14.1.2': + resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/mdurl@2.0.0': + resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + '@types/node@25.5.0': resolution: {integrity: sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==} '@types/prismjs@1.26.6': resolution: {integrity: sha512-vqlvI7qlMvcCBbVe0AKAb4f97//Hy0EBTaiW8AalRnG/xAN5zOiWWyrNqNXeq8+KAuvRewjCVY1+IPxk4RdNYw==} + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@types/web-bluetooth@0.0.21': + resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} + '@types/whatwg-mimetype@3.0.2': resolution: {integrity: sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==} @@ -538,6 +977,16 @@ packages: resolution: {integrity: sha512-zm6xx8UT/Xy2oSr2ZXD0pZo7Jx2XsCoID2IUh9YSTFRu7z+WdwYTRk6LhUftm1crwqbuoF6I8zAFeCMw0YjwDg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + '@vitejs/plugin-vue@5.2.4': + resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 + vue: ^3.2.25 + '@vitejs/plugin-vue@6.0.5': resolution: {integrity: sha512-bL3AxKuQySfk1iGcBsQnoRVexTPJq0Z/ixFVM8OhVJAP6ZXXXLtM7NFKWhLl30Kg7uTBqIaPXbh+nuQCuBDedg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -607,6 +1056,15 @@ packages: '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} + '@vue/devtools-api@7.7.9': + resolution: {integrity: sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==} + + '@vue/devtools-kit@7.7.9': + resolution: {integrity: sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA==} + + '@vue/devtools-shared@7.7.9': + resolution: {integrity: sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==} + '@vue/language-core@3.2.5': resolution: {integrity: sha512-d3OIxN/+KRedeM5wQ6H6NIpwS3P5gC9nmyaHgBk+rO6dIsjY+tOh4UlPpiZbAh3YtLdCGEX4M16RmsBqPmJV+g==} @@ -630,6 +1088,56 @@ packages: '@vue/test-utils@2.4.6': resolution: {integrity: sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==} + '@vueuse/core@12.8.2': + resolution: {integrity: sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==} + + '@vueuse/integrations@12.8.2': + resolution: {integrity: sha512-fbGYivgK5uBTRt7p5F3zy6VrETlV9RtZjBqd1/HxGdjdckBgBM4ugP8LHpjolqTj14TXTxSK1ZfgPbHYyGuH7g==} + peerDependencies: + async-validator: ^4 + axios: ^1 + change-case: ^5 + drauu: ^0.4 + focus-trap: ^7 + fuse.js: ^7 + idb-keyval: ^6 + jwt-decode: ^4 + nprogress: ^0.2 + qrcode: ^1.5 + sortablejs: ^1 + universal-cookie: ^7 + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true + + '@vueuse/metadata@12.8.2': + resolution: {integrity: sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A==} + + '@vueuse/shared@12.8.2': + resolution: {integrity: sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==} + abbrev@2.0.0: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -647,6 +1155,10 @@ packages: ajv@6.14.0: resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + algoliasearch@5.50.1: + resolution: {integrity: sha512-/bwdue1/8LWELn/DBalGRfuLsXBLXULJo/yOeavJtDu8rBwxIzC6/Rz9Jg19S21VkJvRuZO1k8CZXBMS73mYbA==} + engines: {node: '>= 14.0.0'} + alien-signals@3.1.2: resolution: {integrity: sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw==} @@ -709,6 +1221,9 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} + birpc@2.9.0: + resolution: {integrity: sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==} + boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -738,10 +1253,19 @@ packages: caniuse-lite@1.0.30001779: resolution: {integrity: sha512-U5og2PN7V4DMgF50YPNtnZJGWVLFjjsN3zb6uMT5VGYIewieDj1upwfuVNXf4Kor+89c3iCRJnSzMD5LmTvsfA==} + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + chai@6.2.2: resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -756,6 +1280,9 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + commander@10.0.1: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} @@ -777,6 +1304,10 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + copy-anything@4.0.5: + resolution: {integrity: sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==} + engines: {node: '>=18'} + cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -801,10 +1332,17 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + detect-libc@2.1.2: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} @@ -822,6 +1360,9 @@ packages: electron-to-chromium@1.5.313: resolution: {integrity: sha512-QBMrTWEf00GXZmJyx2lbYD45jpI3TUFnNIzJ5BBc8piGUDwMPa1GV6HJWTZVvY/eiN3fSopl7NRbgGp9sZ9LTA==} + emoji-regex-xs@1.0.0: + resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -839,6 +1380,11 @@ packages: es-module-lexer@2.0.0: resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==} + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -957,6 +1503,9 @@ packages: flatted@3.4.1: resolution: {integrity: sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==} + focus-trap@7.8.0: + resolution: {integrity: sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA==} + foreground-child@3.3.1: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} @@ -1000,9 +1549,21 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -1042,6 +1603,10 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-what@5.5.0: + resolution: {integrity: sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==} + engines: {node: '>=18'} + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -1165,48 +1730,56 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] lightningcss-linux-arm64-gnu@1.32.0: resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] lightningcss-linux-arm64-musl@1.31.1: resolution: {integrity: sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] lightningcss-linux-arm64-musl@1.32.0: resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] lightningcss-linux-x64-gnu@1.31.1: resolution: {integrity: sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] lightningcss-linux-x64-gnu@1.32.0: resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] lightningcss-linux-x64-musl@1.31.1: resolution: {integrity: sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] lightningcss-linux-x64-musl@1.32.0: resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] lightningcss-win32-arm64-msvc@1.31.1: resolution: {integrity: sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==} @@ -1274,10 +1847,31 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} + mark.js@8.11.1: + resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} + + mdast-util-to-hast@13.2.1: + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} + merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -1294,6 +1888,12 @@ packages: resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} engines: {node: '>=16 || 14 >=14.17'} + minisearch@7.2.0: + resolution: {integrity: sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg==} + + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -1337,6 +1937,9 @@ packages: obug@2.1.1: resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + oniguruma-to-es@3.1.1: + resolution: {integrity: sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==} + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -1373,6 +1976,9 @@ packages: pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -1441,6 +2047,9 @@ packages: resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} engines: {node: ^10 || ^12 || >=14} + preact@10.29.0: + resolution: {integrity: sha512-wSAGyk2bYR1c7t3SZ3jHcM6xy0lcBcDel6lODcs9ME6Th++Dx2KU+6D3HD8wMMKGA8Wpw7OMd3/4RGzYRpzwRg==} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -1449,6 +2058,9 @@ packages: resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} engines: {node: '>=6'} + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} @@ -1466,6 +2078,15 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@6.1.0: + resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} + resolve@1.22.11: resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} engines: {node: '>= 0.4'} @@ -1475,14 +2096,25 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + rolldown@1.0.0-rc.9: resolution: {integrity: sha512-9EbgWge7ZH+yqb4d2EnELAntgPTWbfL8ajiTW+SyhJEC4qhBbkCKbqFV4Ge4zmu5ziQuVbWxb/XwLZ+RIO7E8Q==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true + rollup@4.60.1: + resolution: {integrity: sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + search-insights@2.17.3: + resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==} + semver@7.7.4: resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} engines: {node: '>=10'} @@ -1496,6 +2128,9 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + shiki@2.5.0: + resolution: {integrity: sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==} + siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -1514,6 +2149,13 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + speakingurl@14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} + stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -1528,6 +2170,9 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -1541,6 +2186,10 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true + superjson@2.2.6: + resolution: {integrity: sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==} + engines: {node: '>=16'} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -1549,6 +2198,9 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + tabbable@6.4.0: + resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==} + tailwindcss@3.4.15: resolution: {integrity: sha512-r4MeXnfBmSOuKUWmXe6h2CcyfzJCEk4F0pptO5jlnYSIViUkVmsawj80N5h2lO3gwcmSb4n3PuN+e+GC1Guylw==} engines: {node: '>=14.0.0'} @@ -1592,6 +2244,9 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + ts-api-utils@2.4.0: resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} engines: {node: '>=18.12'} @@ -1616,6 +2271,21 @@ packages: undici-types@7.18.2: resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} + unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} + + unist-util-visit@5.1.0: + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} + update-browserslist-db@1.2.3: resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true @@ -1628,6 +2298,43 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + vite@5.4.21: + resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + vite@8.0.0: resolution: {integrity: sha512-fPGaRNj9Zytaf8LEiBhY7Z6ijnFKdzU/+mL8EFBaKr7Vw1/FWcTBAMW0wLPJAGMPX38ZPVCVgLceWiEqeoqL2Q==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1671,6 +2378,18 @@ packages: yaml: optional: true + vitepress@1.6.4: + resolution: {integrity: sha512-+2ym1/+0VVrbhNyRoFFesVvBvHAVMZMK0rw60E3X/5349M1GuVdKeazuksqopEdvkKwKGs21Q729jX81/bkBJg==} + hasBin: true + peerDependencies: + markdown-it-mathjax3: ^4 + postcss: ^8 + peerDependenciesMeta: + markdown-it-mathjax3: + optional: true + postcss: + optional: true + vitest@4.1.0: resolution: {integrity: sha512-YbDrMF9jM2Lqc++2530UourxZHmkKLxrs4+mYhEwqWS97WJ7wOYEkcr+QfRgJ3PW9wz3odRijLZjHEaRLTNbqw==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -1789,16 +2508,131 @@ packages: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} - yaml@2.8.2: - resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} - engines: {node: '>= 14.6'} - hasBin: true + yaml@2.8.2: + resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} + engines: {node: '>= 14.6'} + hasBin: true + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@algolia/abtesting@1.16.1': + dependencies: + '@algolia/client-common': 5.50.1 + '@algolia/requester-browser-xhr': 5.50.1 + '@algolia/requester-fetch': 5.50.1 + '@algolia/requester-node-http': 5.50.1 + + '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.50.1)(algoliasearch@5.50.1)(search-insights@2.17.3)': + dependencies: + '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.50.1)(algoliasearch@5.50.1)(search-insights@2.17.3) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.50.1)(algoliasearch@5.50.1) + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + - search-insights + + '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.50.1)(algoliasearch@5.50.1)(search-insights@2.17.3)': + dependencies: + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.50.1)(algoliasearch@5.50.1) + search-insights: 2.17.3 + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + + '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.50.1)(algoliasearch@5.50.1)': + dependencies: + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.50.1)(algoliasearch@5.50.1) + '@algolia/client-search': 5.50.1 + algoliasearch: 5.50.1 + + '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.50.1)(algoliasearch@5.50.1)': + dependencies: + '@algolia/client-search': 5.50.1 + algoliasearch: 5.50.1 + + '@algolia/client-abtesting@5.50.1': + dependencies: + '@algolia/client-common': 5.50.1 + '@algolia/requester-browser-xhr': 5.50.1 + '@algolia/requester-fetch': 5.50.1 + '@algolia/requester-node-http': 5.50.1 + + '@algolia/client-analytics@5.50.1': + dependencies: + '@algolia/client-common': 5.50.1 + '@algolia/requester-browser-xhr': 5.50.1 + '@algolia/requester-fetch': 5.50.1 + '@algolia/requester-node-http': 5.50.1 + + '@algolia/client-common@5.50.1': {} + + '@algolia/client-insights@5.50.1': + dependencies: + '@algolia/client-common': 5.50.1 + '@algolia/requester-browser-xhr': 5.50.1 + '@algolia/requester-fetch': 5.50.1 + '@algolia/requester-node-http': 5.50.1 + + '@algolia/client-personalization@5.50.1': + dependencies: + '@algolia/client-common': 5.50.1 + '@algolia/requester-browser-xhr': 5.50.1 + '@algolia/requester-fetch': 5.50.1 + '@algolia/requester-node-http': 5.50.1 + + '@algolia/client-query-suggestions@5.50.1': + dependencies: + '@algolia/client-common': 5.50.1 + '@algolia/requester-browser-xhr': 5.50.1 + '@algolia/requester-fetch': 5.50.1 + '@algolia/requester-node-http': 5.50.1 + + '@algolia/client-search@5.50.1': + dependencies: + '@algolia/client-common': 5.50.1 + '@algolia/requester-browser-xhr': 5.50.1 + '@algolia/requester-fetch': 5.50.1 + '@algolia/requester-node-http': 5.50.1 + + '@algolia/ingestion@1.50.1': + dependencies: + '@algolia/client-common': 5.50.1 + '@algolia/requester-browser-xhr': 5.50.1 + '@algolia/requester-fetch': 5.50.1 + '@algolia/requester-node-http': 5.50.1 + + '@algolia/monitoring@1.50.1': + dependencies: + '@algolia/client-common': 5.50.1 + '@algolia/requester-browser-xhr': 5.50.1 + '@algolia/requester-fetch': 5.50.1 + '@algolia/requester-node-http': 5.50.1 + + '@algolia/recommend@5.50.1': + dependencies: + '@algolia/client-common': 5.50.1 + '@algolia/requester-browser-xhr': 5.50.1 + '@algolia/requester-fetch': 5.50.1 + '@algolia/requester-node-http': 5.50.1 + + '@algolia/requester-browser-xhr@5.50.1': + dependencies: + '@algolia/client-common': 5.50.1 - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + '@algolia/requester-fetch@5.50.1': + dependencies: + '@algolia/client-common': 5.50.1 -snapshots: + '@algolia/requester-node-http@5.50.1': + dependencies: + '@algolia/client-common': 5.50.1 '@alloc/quick-lru@5.2.0': {} @@ -1817,6 +2651,30 @@ snapshots: '@bcoe/v8-coverage@1.0.2': {} + '@docsearch/css@3.8.2': {} + + '@docsearch/js@3.8.2(@algolia/client-search@5.50.1)(search-insights@2.17.3)': + dependencies: + '@docsearch/react': 3.8.2(@algolia/client-search@5.50.1)(search-insights@2.17.3) + preact: 10.29.0 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/react' + - react + - react-dom + - search-insights + + '@docsearch/react@3.8.2(@algolia/client-search@5.50.1)(search-insights@2.17.3)': + dependencies: + '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.50.1)(algoliasearch@5.50.1)(search-insights@2.17.3) + '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.50.1)(algoliasearch@5.50.1) + '@docsearch/css': 3.8.2 + algoliasearch: 5.50.1 + optionalDependencies: + search-insights: 2.17.3 + transitivePeerDependencies: + - '@algolia/client-search' + '@emnapi/core@1.9.0': dependencies: '@emnapi/wasi-threads': 1.2.0 @@ -1833,6 +2691,75 @@ snapshots: tslib: 2.8.1 optional: true + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + '@eslint-community/eslint-utils@4.9.1(eslint@10.0.3(jiti@2.6.1))': dependencies: eslint: 10.0.3(jiti@2.6.1) @@ -1878,6 +2805,12 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} + '@iconify-json/simple-icons@1.2.76': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify/types@2.0.0': {} + '@intlify/core-base@9.14.5': dependencies: '@intlify/message-compiler': 9.14.5 @@ -2002,6 +2935,121 @@ snapshots: '@rolldown/pluginutils@1.0.0-rc.9': {} + '@rollup/rollup-android-arm-eabi@4.60.1': + optional: true + + '@rollup/rollup-android-arm64@4.60.1': + optional: true + + '@rollup/rollup-darwin-arm64@4.60.1': + optional: true + + '@rollup/rollup-darwin-x64@4.60.1': + optional: true + + '@rollup/rollup-freebsd-arm64@4.60.1': + optional: true + + '@rollup/rollup-freebsd-x64@4.60.1': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.60.1': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.60.1': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.60.1': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.60.1': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.60.1': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.60.1': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.60.1': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.60.1': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.60.1': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.60.1': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.60.1': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.60.1': + optional: true + + '@rollup/rollup-linux-x64-musl@4.60.1': + optional: true + + '@rollup/rollup-openbsd-x64@4.60.1': + optional: true + + '@rollup/rollup-openharmony-arm64@4.60.1': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.60.1': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.60.1': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.60.1': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.60.1': + optional: true + + '@shikijs/core@2.5.0': + dependencies: + '@shikijs/engine-javascript': 2.5.0 + '@shikijs/engine-oniguruma': 2.5.0 + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + + '@shikijs/engine-javascript@2.5.0': + dependencies: + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 3.1.1 + + '@shikijs/engine-oniguruma@2.5.0': + dependencies: + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@2.5.0': + dependencies: + '@shikijs/types': 2.5.0 + + '@shikijs/themes@2.5.0': + dependencies: + '@shikijs/types': 2.5.0 + + '@shikijs/transformers@2.5.0': + dependencies: + '@shikijs/core': 2.5.0 + '@shikijs/types': 2.5.0 + + '@shikijs/types@2.5.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@10.0.2': {} + '@standard-schema/spec@1.1.0': {} '@tailwindcss/node@4.2.1': @@ -2096,14 +3144,35 @@ snapshots: '@types/estree@1.0.8': {} + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + '@types/json-schema@7.0.15': {} + '@types/linkify-it@5.0.0': {} + + '@types/markdown-it@14.1.2': + dependencies: + '@types/linkify-it': 5.0.0 + '@types/mdurl': 2.0.0 + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mdurl@2.0.0': {} + '@types/node@25.5.0': dependencies: undici-types: 7.18.2 '@types/prismjs@1.26.6': {} + '@types/unist@3.0.3': {} + + '@types/web-bluetooth@0.0.21': {} + '@types/whatwg-mimetype@3.0.2': {} '@types/ws@8.18.1': @@ -2201,6 +3270,13 @@ snapshots: '@typescript-eslint/types': 8.57.0 eslint-visitor-keys: 5.0.1 + '@ungap/structured-clone@1.3.0': {} + + '@vitejs/plugin-vue@5.2.4(vite@5.4.21(@types/node@25.5.0)(lightningcss@1.32.0)(terser@5.46.0))(vue@3.5.30(typescript@5.9.3))': + dependencies: + vite: 5.4.21(@types/node@25.5.0)(lightningcss@1.32.0)(terser@5.46.0) + vue: 3.5.30(typescript@5.9.3) + '@vitejs/plugin-vue@6.0.5(vite@8.0.0(@types/node@25.5.0)(jiti@2.6.1)(terser@5.46.0)(yaml@2.8.2))(vue@3.5.30(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.2 @@ -2306,6 +3382,24 @@ snapshots: '@vue/devtools-api@6.6.4': {} + '@vue/devtools-api@7.7.9': + dependencies: + '@vue/devtools-kit': 7.7.9 + + '@vue/devtools-kit@7.7.9': + dependencies: + '@vue/devtools-shared': 7.7.9 + birpc: 2.9.0 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + superjson: 2.2.6 + + '@vue/devtools-shared@7.7.9': + dependencies: + rfdc: 1.4.1 + '@vue/language-core@3.2.5': dependencies: '@volar/language-core': 2.4.28 @@ -2345,6 +3439,33 @@ snapshots: js-beautify: 1.15.4 vue-component-type-helpers: 2.2.12 + '@vueuse/core@12.8.2(typescript@5.9.3)': + dependencies: + '@types/web-bluetooth': 0.0.21 + '@vueuse/metadata': 12.8.2 + '@vueuse/shared': 12.8.2(typescript@5.9.3) + vue: 3.5.30(typescript@5.9.3) + transitivePeerDependencies: + - typescript + + '@vueuse/integrations@12.8.2(focus-trap@7.8.0)(typescript@5.9.3)': + dependencies: + '@vueuse/core': 12.8.2(typescript@5.9.3) + '@vueuse/shared': 12.8.2(typescript@5.9.3) + vue: 3.5.30(typescript@5.9.3) + optionalDependencies: + focus-trap: 7.8.0 + transitivePeerDependencies: + - typescript + + '@vueuse/metadata@12.8.2': {} + + '@vueuse/shared@12.8.2(typescript@5.9.3)': + dependencies: + vue: 3.5.30(typescript@5.9.3) + transitivePeerDependencies: + - typescript + abbrev@2.0.0: {} acorn-jsx@5.3.2(acorn@8.16.0): @@ -2360,6 +3481,23 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + algoliasearch@5.50.1: + dependencies: + '@algolia/abtesting': 1.16.1 + '@algolia/client-abtesting': 5.50.1 + '@algolia/client-analytics': 5.50.1 + '@algolia/client-common': 5.50.1 + '@algolia/client-insights': 5.50.1 + '@algolia/client-personalization': 5.50.1 + '@algolia/client-query-suggestions': 5.50.1 + '@algolia/client-search': 5.50.1 + '@algolia/ingestion': 1.50.1 + '@algolia/monitoring': 1.50.1 + '@algolia/recommend': 5.50.1 + '@algolia/requester-browser-xhr': 5.50.1 + '@algolia/requester-fetch': 5.50.1 + '@algolia/requester-node-http': 5.50.1 + alien-signals@3.1.2: {} ansi-regex@5.0.1: {} @@ -2412,6 +3550,8 @@ snapshots: binary-extensions@2.3.0: {} + birpc@2.9.0: {} + boolbase@1.0.0: {} brace-expansion@2.0.2: @@ -2440,8 +3580,14 @@ snapshots: caniuse-lite@1.0.30001779: {} + ccount@2.0.1: {} + chai@6.2.2: {} + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -2462,6 +3608,8 @@ snapshots: color-name@1.1.4: {} + comma-separated-tokens@2.0.3: {} + commander@10.0.1: {} commander@2.20.3: {} @@ -2477,6 +3625,10 @@ snapshots: convert-source-map@2.0.0: {} + copy-anything@4.0.5: + dependencies: + is-what: 5.5.0 + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -2493,8 +3645,14 @@ snapshots: deep-is@0.1.4: {} + dequal@2.0.3: {} + detect-libc@2.1.2: {} + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + didyoumean@1.2.2: {} dlv@1.1.3: {} @@ -2510,6 +3668,8 @@ snapshots: electron-to-chromium@1.5.313: {} + emoji-regex-xs@1.0.0: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -2523,6 +3683,32 @@ snapshots: es-module-lexer@2.0.0: {} + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + escalade@3.2.0: {} escape-string-regexp@4.0.0: {} @@ -2656,6 +3842,10 @@ snapshots: flatted@3.4.1: {} + focus-trap@7.8.0: + dependencies: + tabbable: 6.4.0 + foreground-child@3.3.1: dependencies: cross-spawn: 7.0.6 @@ -2705,8 +3895,30 @@ snapshots: dependencies: function-bind: 1.1.2 + hast-util-to-html@9.0.5: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hookable@5.5.3: {} + html-escaper@2.0.2: {} + html-void-elements@3.0.0: {} + ignore@5.3.2: {} ignore@7.0.5: {} @@ -2733,6 +3945,8 @@ snapshots: is-number@7.0.0: {} + is-what@5.5.0: {} + isexe@2.0.0: {} istanbul-lib-coverage@3.2.2: {} @@ -2917,8 +4131,39 @@ snapshots: dependencies: semver: 7.7.4 + mark.js@8.11.1: {} + + mdast-util-to-hast@13.2.1: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + merge2@1.4.1: {} + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-encode@2.0.1: {} + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.2: {} + micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -2934,6 +4179,10 @@ snapshots: minipass@7.1.3: {} + minisearch@7.2.0: {} + + mitt@3.0.1: {} + ms@2.1.3: {} muggle-string@0.4.1: {} @@ -2966,6 +4215,12 @@ snapshots: obug@2.1.1: {} + oniguruma-to-es@3.1.1: + dependencies: + emoji-regex-xs: 1.0.0 + regex: 6.1.0 + regex-recursion: 6.0.2 + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -3000,6 +4255,8 @@ snapshots: pathe@2.0.3: {} + perfect-debounce@1.0.0: {} + picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -3057,10 +4314,14 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + preact@10.29.0: {} + prelude-ls@1.2.1: {} prismjs@1.30.0: {} + property-information@7.1.0: {} + proto-list@1.2.4: {} punycode@2.3.1: {} @@ -3075,6 +4336,16 @@ snapshots: dependencies: picomatch: 2.3.1 + regex-recursion@6.0.2: + dependencies: + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@6.1.0: + dependencies: + regex-utilities: 2.3.0 + resolve@1.22.11: dependencies: is-core-module: 2.16.1 @@ -3083,6 +4354,8 @@ snapshots: reusify@1.1.0: {} + rfdc@1.4.1: {} + rolldown@1.0.0-rc.9: dependencies: '@oxc-project/types': 0.115.0 @@ -3104,10 +4377,43 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.9 '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.9 + rollup@4.60.1: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.60.1 + '@rollup/rollup-android-arm64': 4.60.1 + '@rollup/rollup-darwin-arm64': 4.60.1 + '@rollup/rollup-darwin-x64': 4.60.1 + '@rollup/rollup-freebsd-arm64': 4.60.1 + '@rollup/rollup-freebsd-x64': 4.60.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.60.1 + '@rollup/rollup-linux-arm-musleabihf': 4.60.1 + '@rollup/rollup-linux-arm64-gnu': 4.60.1 + '@rollup/rollup-linux-arm64-musl': 4.60.1 + '@rollup/rollup-linux-loong64-gnu': 4.60.1 + '@rollup/rollup-linux-loong64-musl': 4.60.1 + '@rollup/rollup-linux-ppc64-gnu': 4.60.1 + '@rollup/rollup-linux-ppc64-musl': 4.60.1 + '@rollup/rollup-linux-riscv64-gnu': 4.60.1 + '@rollup/rollup-linux-riscv64-musl': 4.60.1 + '@rollup/rollup-linux-s390x-gnu': 4.60.1 + '@rollup/rollup-linux-x64-gnu': 4.60.1 + '@rollup/rollup-linux-x64-musl': 4.60.1 + '@rollup/rollup-openbsd-x64': 4.60.1 + '@rollup/rollup-openharmony-arm64': 4.60.1 + '@rollup/rollup-win32-arm64-msvc': 4.60.1 + '@rollup/rollup-win32-ia32-msvc': 4.60.1 + '@rollup/rollup-win32-x64-gnu': 4.60.1 + '@rollup/rollup-win32-x64-msvc': 4.60.1 + fsevents: 2.3.3 + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 + search-insights@2.17.3: {} + semver@7.7.4: {} shebang-command@2.0.0: @@ -3116,6 +4422,17 @@ snapshots: shebang-regex@3.0.0: {} + shiki@2.5.0: + dependencies: + '@shikijs/core': 2.5.0 + '@shikijs/engine-javascript': 2.5.0 + '@shikijs/engine-oniguruma': 2.5.0 + '@shikijs/langs': 2.5.0 + '@shikijs/themes': 2.5.0 + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + siginfo@2.0.0: {} signal-exit@4.1.0: {} @@ -3129,6 +4446,10 @@ snapshots: source-map@0.6.1: {} + space-separated-tokens@2.0.2: {} + + speakingurl@14.0.1: {} + stackback@0.0.2: {} std-env@4.0.0: {} @@ -3145,6 +4466,11 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.2.0 + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -3163,12 +4489,18 @@ snapshots: tinyglobby: 0.2.15 ts-interface-checker: 0.1.13 + superjson@2.2.6: + dependencies: + copy-anything: 4.0.5 + supports-color@7.2.0: dependencies: has-flag: 4.0.0 supports-preserve-symlinks-flag@1.0.0: {} + tabbable@6.4.0: {} + tailwindcss@3.4.15: dependencies: '@alloc/quick-lru': 5.2.0 @@ -3230,6 +4562,8 @@ snapshots: dependencies: is-number: 7.0.0 + trim-lines@3.0.1: {} + ts-api-utils@2.4.0(typescript@5.9.3): dependencies: typescript: 5.9.3 @@ -3247,6 +4581,29 @@ snapshots: undici-types@7.18.2: {} + unist-util-is@6.0.1: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + + unist-util-visit@5.1.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + update-browserslist-db@1.2.3(browserslist@4.28.1): dependencies: browserslist: 4.28.1 @@ -3259,6 +4616,27 @@ snapshots: util-deprecate@1.0.2: {} + vfile-message@4.0.3: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.3 + + vite@5.4.21(@types/node@25.5.0)(lightningcss@1.32.0)(terser@5.46.0): + dependencies: + esbuild: 0.21.5 + postcss: 8.5.8 + rollup: 4.60.1 + optionalDependencies: + '@types/node': 25.5.0 + fsevents: 2.3.3 + lightningcss: 1.32.0 + terser: 5.46.0 + vite@8.0.0(@types/node@25.5.0)(jiti@2.6.1)(terser@5.46.0)(yaml@2.8.2): dependencies: '@oxc-project/runtime': 0.115.0 @@ -3274,6 +4652,55 @@ snapshots: terser: 5.46.0 yaml: 2.8.2 + vitepress@1.6.4(@algolia/client-search@5.50.1)(@types/node@25.5.0)(lightningcss@1.32.0)(postcss@8.5.8)(search-insights@2.17.3)(terser@5.46.0)(typescript@5.9.3): + dependencies: + '@docsearch/css': 3.8.2 + '@docsearch/js': 3.8.2(@algolia/client-search@5.50.1)(search-insights@2.17.3) + '@iconify-json/simple-icons': 1.2.76 + '@shikijs/core': 2.5.0 + '@shikijs/transformers': 2.5.0 + '@shikijs/types': 2.5.0 + '@types/markdown-it': 14.1.2 + '@vitejs/plugin-vue': 5.2.4(vite@5.4.21(@types/node@25.5.0)(lightningcss@1.32.0)(terser@5.46.0))(vue@3.5.30(typescript@5.9.3)) + '@vue/devtools-api': 7.7.9 + '@vue/shared': 3.5.30 + '@vueuse/core': 12.8.2(typescript@5.9.3) + '@vueuse/integrations': 12.8.2(focus-trap@7.8.0)(typescript@5.9.3) + focus-trap: 7.8.0 + mark.js: 8.11.1 + minisearch: 7.2.0 + shiki: 2.5.0 + vite: 5.4.21(@types/node@25.5.0)(lightningcss@1.32.0)(terser@5.46.0) + vue: 3.5.30(typescript@5.9.3) + optionalDependencies: + postcss: 8.5.8 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - less + - lightningcss + - nprogress + - qrcode + - react + - react-dom + - sass + - sass-embedded + - search-insights + - sortablejs + - stylus + - sugarss + - terser + - typescript + - universal-cookie + vitest@4.1.0(@types/node@25.5.0)(happy-dom@20.8.4)(vite@8.0.0(@types/node@25.5.0)(jiti@2.6.1)(terser@5.46.0)(yaml@2.8.2)): dependencies: '@vitest/expect': 4.1.0 @@ -3380,3 +4807,5 @@ snapshots: yaml@2.8.2: {} yocto-queue@0.1.0: {} + + zwitch@2.0.4: {} From b22679b8eea95731fc5c06dc3e737321deb3087d Mon Sep 17 00:00:00 2001 From: aidil-coder-bot Date: Fri, 3 Apr 2026 08:26:07 +0200 Subject: [PATCH 2/3] feat(playground): add interactive API playground to all endpoint docs - Add ApiPlayground Vue component with live request capability - Add SSR-safe wrapper (ApiPlaygroundWrapper) using onMounted - Add playground to: health-check, national-latest, national-historical, provinces, province-cases, regencies, hospitals, vaccination, statistics, task-forces endpoints - Supports path params, query params, response display with status code & timing --- .../theme/components/ApiPlayground.vue | 444 ++++++++++++++++++ .../theme/components/ApiPlaygroundWrapper.vue | 48 ++ docs/.vitepress/theme/index.ts | 10 + docs/api/health-check.md | 15 +- docs/api/hospitals.md | 35 +- docs/api/national-historical.md | 42 +- docs/api/national-latest.md | 35 +- docs/api/province-cases.md | 39 +- docs/api/provinces.md | 35 +- docs/api/regencies.md | 39 +- docs/api/statistics.md | 39 +- docs/api/task-forces.md | 6 + docs/api/vaccination.md | 44 +- 13 files changed, 600 insertions(+), 231 deletions(-) create mode 100644 docs/.vitepress/theme/components/ApiPlayground.vue create mode 100644 docs/.vitepress/theme/components/ApiPlaygroundWrapper.vue create mode 100644 docs/.vitepress/theme/index.ts diff --git a/docs/.vitepress/theme/components/ApiPlayground.vue b/docs/.vitepress/theme/components/ApiPlayground.vue new file mode 100644 index 0000000..8c07501 --- /dev/null +++ b/docs/.vitepress/theme/components/ApiPlayground.vue @@ -0,0 +1,444 @@ + + + + + diff --git a/docs/.vitepress/theme/components/ApiPlaygroundWrapper.vue b/docs/.vitepress/theme/components/ApiPlaygroundWrapper.vue new file mode 100644 index 0000000..ab2b8d6 --- /dev/null +++ b/docs/.vitepress/theme/components/ApiPlaygroundWrapper.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts new file mode 100644 index 0000000..cb00af9 --- /dev/null +++ b/docs/.vitepress/theme/index.ts @@ -0,0 +1,10 @@ +import DefaultTheme from 'vitepress/theme' +import ApiPlayground from './components/ApiPlaygroundWrapper.vue' +import type { Theme } from 'vitepress' + +export default { + extends: DefaultTheme, + enhanceApp({ app }) { + app.component('ApiPlayground', ApiPlayground) + }, +} satisfies Theme diff --git a/docs/api/health-check.md b/docs/api/health-check.md index 97b8001..fa2b693 100644 --- a/docs/api/health-check.md +++ b/docs/api/health-check.md @@ -8,6 +8,12 @@ Cek status API dan konektivitas database. GET /api/v1/health ``` +## Playground + + + ## Contoh Request ```bash @@ -27,15 +33,6 @@ curl https://pico-api.banuacoder.com/api/v1/health } ``` -## Contoh Respons (Error) - -```json -{ - "message": "database connection failed", - "status": false -} -``` - ## Penggunaan Gunakan endpoint ini untuk: diff --git a/docs/api/hospitals.md b/docs/api/hospitals.md index 1384282..172ce2d 100644 --- a/docs/api/hospitals.md +++ b/docs/api/hospitals.md @@ -1,6 +1,6 @@ # Rumah Sakit Rujukan -Daftar rumah sakit rujukan COVID-19 di Sulawesi Tengah. +Daftar rumah sakit rujukan COVID-19. ## Endpoint @@ -8,6 +8,17 @@ Daftar rumah sakit rujukan COVID-19 di Sulawesi Tengah. GET /api/v1/covid/hospitals ``` +## Playground + + + ## Parameter Query | Parameter | Tipe | Keterangan | @@ -21,25 +32,3 @@ GET /api/v1/covid/hospitals ```bash curl "https://pico-api.banuacoder.com/api/v1/covid/hospitals?regency_id=palu" ``` - -## Contoh Respons - -```json -{ - "data": [ - { - "id": "rsud-undata", - "name": "RSUD Undata Palu", - "address": "Jl. Undata, Palu", - "phone": "0451-421195", - "type": "Rumah Sakit Umum Daerah", - "regency_id": "palu", - "is_referral": true, - "bed_capacity": 200, - "available_beds": 45 - } - ], - "message": "success", - "status": true -} -``` diff --git a/docs/api/national-historical.md b/docs/api/national-historical.md index 727e2a3..9f8d30b 100644 --- a/docs/api/national-historical.md +++ b/docs/api/national-historical.md @@ -8,6 +8,18 @@ Riwayat data COVID-19 nasional Indonesia. GET /api/v1/covid/national/historical ``` +## Playground + + + ## Parameter Query | Parameter | Tipe | Wajib | Keterangan | @@ -20,35 +32,5 @@ GET /api/v1/covid/national/historical ## Contoh Request ```bash -# Data historis dengan pagination curl "https://pico-api.banuacoder.com/api/v1/covid/national/historical?page=1&per_page=30" - -# Filter rentang tanggal -curl "https://pico-api.banuacoder.com/api/v1/covid/national/historical?start_date=2023-01-01&end_date=2023-01-31" -``` - -## Contoh Respons - -```json -{ - "data": [ - { - "confirmed": 6737000, - "recovered": 6591000, - "deaths": 161000, - "date": "2023-06-30", - "new_confirmed": 100, - "new_recovered": 150, - "new_deaths": 2 - } - ], - "pagination": { - "page": 1, - "per_page": 10, - "total": 1200, - "total_pages": 120 - }, - "message": "success", - "status": true -} ``` diff --git a/docs/api/national-latest.md b/docs/api/national-latest.md index 6bc54c9..5052bf5 100644 --- a/docs/api/national-latest.md +++ b/docs/api/national-latest.md @@ -8,32 +8,11 @@ Data COVID-19 nasional Indonesia paling terkini. GET /api/v1/covid/national/latest ``` -## Contoh Request - -```bash -curl https://pico-api.banuacoder.com/api/v1/covid/national/latest -``` +## Playground -## Contoh Respons - -```json -{ - "data": { - "confirmed": 6737downstream, - "recovered": 6591234, - "deaths": 161234, - "active": 12345, - "date": "2023-06-30", - "new_confirmed": 100, - "new_recovered": 150, - "new_deaths": 2, - "fatality_rate": 2.39, - "recovery_rate": 97.24 - }, - "message": "success", - "status": true -} -``` + ## Field Respons @@ -49,3 +28,9 @@ curl https://pico-api.banuacoder.com/api/v1/covid/national/latest | `new_deaths` | `number` | Meninggal baru hari ini | | `fatality_rate` | `number` | Tingkat kematian (%) | | `recovery_rate` | `number` | Tingkat kesembuhan (%) | + +## Contoh Request + +```bash +curl https://pico-api.banuacoder.com/api/v1/covid/national/latest +``` diff --git a/docs/api/province-cases.md b/docs/api/province-cases.md index 4b706be..2167658 100644 --- a/docs/api/province-cases.md +++ b/docs/api/province-cases.md @@ -8,41 +8,24 @@ Data COVID-19 detail untuk provinsi tertentu. GET /api/v1/covid/provinces/:id ``` +## Playground + + + ## Parameter Path | Parameter | Keterangan | |-----------|------------| -| `id` | ID provinsi (misal: `sulteng`, `sulsel`) | +| `id` | ID provinsi (misal: `sulteng`, `sulsel`, `dki-jakarta`) | ## Contoh Request ```bash -# Data Sulawesi Tengah +# Sulawesi Tengah curl https://pico-api.banuacoder.com/api/v1/covid/provinces/sulteng - -# Data DKI Jakarta -curl https://pico-api.banuacoder.com/api/v1/covid/provinces/dki-jakarta -``` - -## Contoh Respons - -```json -{ - "data": { - "id": "sulteng", - "name": "Sulawesi Tengah", - "confirmed": 15234, - "recovered": 14800, - "deaths": 312, - "active": 122, - "new_confirmed": 5, - "new_recovered": 8, - "new_deaths": 0, - "fatality_rate": 2.04, - "recovery_rate": 97.15, - "updated_at": "2023-06-30T00:00:00Z" - }, - "message": "success", - "status": true -} ``` diff --git a/docs/api/provinces.md b/docs/api/provinces.md index 4a57829..0684ff3 100644 --- a/docs/api/provinces.md +++ b/docs/api/provinces.md @@ -8,6 +8,16 @@ Daftar semua provinsi Indonesia beserta data COVID-19. GET /api/v1/covid/provinces ``` +## Playground + + + ## Parameter Query | Parameter | Tipe | Wajib | Keterangan | @@ -20,28 +30,3 @@ GET /api/v1/covid/provinces ```bash curl "https://pico-api.banuacoder.com/api/v1/covid/provinces?page=1&per_page=34" ``` - -## Contoh Respons - -```json -{ - "data": [ - { - "id": "sulteng", - "name": "Sulawesi Tengah", - "confirmed": 15000, - "recovered": 14500, - "deaths": 300, - "active": 200 - } - ], - "pagination": { - "page": 1, - "per_page": 10, - "total": 34, - "total_pages": 4 - }, - "message": "success", - "status": true -} -``` diff --git a/docs/api/regencies.md b/docs/api/regencies.md index 53a30e3..e6383d6 100644 --- a/docs/api/regencies.md +++ b/docs/api/regencies.md @@ -1,6 +1,6 @@ # Kabupaten/Kota -Data COVID-19 per kabupaten/kota di Sulawesi Tengah. +Data COVID-19 per kabupaten/kota. ## Endpoint @@ -8,6 +8,17 @@ Data COVID-19 per kabupaten/kota di Sulawesi Tengah. GET /api/v1/covid/regencies ``` +## Playground + + + ## Parameter Query | Parameter | Tipe | Wajib | Keterangan | @@ -21,29 +32,3 @@ GET /api/v1/covid/regencies ```bash curl "https://pico-api.banuacoder.com/api/v1/covid/regencies?province_id=sulteng" ``` - -## Contoh Respons - -```json -{ - "data": [ - { - "id": "palu", - "name": "Kota Palu", - "province_id": "sulteng", - "confirmed": 5000, - "recovered": 4800, - "deaths": 120, - "active": 80 - } - ], - "pagination": { - "page": 1, - "per_page": 10, - "total": 13, - "total_pages": 2 - }, - "message": "success", - "status": true -} -``` diff --git a/docs/api/statistics.md b/docs/api/statistics.md index 42c6d5c..41b3c4f 100644 --- a/docs/api/statistics.md +++ b/docs/api/statistics.md @@ -1,6 +1,6 @@ # Statistik -Data statistik agregat COVID-19 — ringkasan dan tren. +Data statistik agregat COVID-19. ## Endpoint @@ -8,39 +8,14 @@ Data statistik agregat COVID-19 — ringkasan dan tren. GET /api/v1/covid/statistics ``` +## Playground + + + ## Contoh Request ```bash curl https://pico-api.banuacoder.com/api/v1/covid/statistics ``` - -## Contoh Respons - -```json -{ - "data": { - "national": { - "confirmed": 6737000, - "recovered": 6591000, - "deaths": 161000, - "active": 12345, - "fatality_rate": 2.39, - "recovery_rate": 97.24 - }, - "sulteng": { - "confirmed": 15234, - "recovered": 14800, - "deaths": 312, - "active": 122, - "rank_confirmed": 25, - "rank_deaths": 28 - }, - "weekly_trend": { - "confirmed_growth": -12.5, - "deaths_growth": -8.3 - } - }, - "message": "success", - "status": true -} -``` diff --git a/docs/api/task-forces.md b/docs/api/task-forces.md index 3cdaa34..a688b9b 100644 --- a/docs/api/task-forces.md +++ b/docs/api/task-forces.md @@ -8,6 +8,12 @@ Daftar gugus tugas penanganan COVID-19 di Sulawesi Tengah. GET /api/v1/covid/task-forces ``` +## Playground + + + ## Contoh Request ```bash diff --git a/docs/api/vaccination.md b/docs/api/vaccination.md index 1ab01bb..f21ba62 100644 --- a/docs/api/vaccination.md +++ b/docs/api/vaccination.md @@ -1,6 +1,6 @@ # Vaksinasi -Data vaksinasi COVID-19 nasional dan per provinsi. +Data vaksinasi COVID-19. ## Endpoint @@ -8,42 +8,22 @@ Data vaksinasi COVID-19 nasional dan per provinsi. GET /api/v1/covid/vaccination ``` +## Playground + + + ## Parameter Query | Parameter | Tipe | Keterangan | |-----------|------|------------| | `province_id` | `string` | Filter berdasarkan provinsi | -| `page` | `number` | Halaman | -| `per_page` | `number` | Data per halaman | - -## Contoh Request - -```bash -# Vaksinasi nasional -curl https://pico-api.banuacoder.com/api/v1/covid/vaccination - -# Vaksinasi Sulawesi Tengah -curl "https://pico-api.banuacoder.com/api/v1/covid/vaccination?province_id=sulteng" -``` - -## Contoh Respons - -```json -{ - "data": { - "total_target": 208000000, - "dose1": 170000000, - "dose2": 140000000, - "dose3": 50000000, - "dose1_percentage": 81.73, - "dose2_percentage": 67.31, - "dose3_percentage": 24.04, - "updated_at": "2023-06-30" - }, - "message": "success", - "status": true -} -``` ## Field Respons From 124de0cc810e01e99407d654b1a11204703fa6f4 Mon Sep 17 00:00:00 2001 From: aidil-coder-bot Date: Fri, 3 Apr 2026 08:38:15 +0200 Subject: [PATCH 3/3] revert(playground): remove API playground from pico-api-docs Swagger UI already provides interactive testing. Playground is more appropriate for stadata_js SDK docs where users need to explore the API. --- .../theme/components/ApiPlayground.vue | 444 ------------------ .../theme/components/ApiPlaygroundWrapper.vue | 48 -- docs/.vitepress/theme/index.ts | 4 - docs/api/health-check.md | 6 - docs/api/hospitals.md | 11 - docs/api/national-historical.md | 12 - docs/api/national-latest.md | 6 - docs/api/province-cases.md | 9 - docs/api/provinces.md | 10 - docs/api/regencies.md | 11 - docs/api/statistics.md | 6 - docs/api/task-forces.md | 6 - docs/api/vaccination.md | 11 - 13 files changed, 584 deletions(-) delete mode 100644 docs/.vitepress/theme/components/ApiPlayground.vue delete mode 100644 docs/.vitepress/theme/components/ApiPlaygroundWrapper.vue diff --git a/docs/.vitepress/theme/components/ApiPlayground.vue b/docs/.vitepress/theme/components/ApiPlayground.vue deleted file mode 100644 index 8c07501..0000000 --- a/docs/.vitepress/theme/components/ApiPlayground.vue +++ /dev/null @@ -1,444 +0,0 @@ - - - - - diff --git a/docs/.vitepress/theme/components/ApiPlaygroundWrapper.vue b/docs/.vitepress/theme/components/ApiPlaygroundWrapper.vue deleted file mode 100644 index ab2b8d6..0000000 --- a/docs/.vitepress/theme/components/ApiPlaygroundWrapper.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - - - diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts index cb00af9..e84ba90 100644 --- a/docs/.vitepress/theme/index.ts +++ b/docs/.vitepress/theme/index.ts @@ -1,10 +1,6 @@ import DefaultTheme from 'vitepress/theme' -import ApiPlayground from './components/ApiPlaygroundWrapper.vue' import type { Theme } from 'vitepress' export default { extends: DefaultTheme, - enhanceApp({ app }) { - app.component('ApiPlayground', ApiPlayground) - }, } satisfies Theme diff --git a/docs/api/health-check.md b/docs/api/health-check.md index fa2b693..4da3e04 100644 --- a/docs/api/health-check.md +++ b/docs/api/health-check.md @@ -8,12 +8,6 @@ Cek status API dan konektivitas database. GET /api/v1/health ``` -## Playground - - - ## Contoh Request ```bash diff --git a/docs/api/hospitals.md b/docs/api/hospitals.md index 172ce2d..2a07258 100644 --- a/docs/api/hospitals.md +++ b/docs/api/hospitals.md @@ -8,17 +8,6 @@ Daftar rumah sakit rujukan COVID-19. GET /api/v1/covid/hospitals ``` -## Playground - - - ## Parameter Query | Parameter | Tipe | Keterangan | diff --git a/docs/api/national-historical.md b/docs/api/national-historical.md index 9f8d30b..cc31b72 100644 --- a/docs/api/national-historical.md +++ b/docs/api/national-historical.md @@ -8,18 +8,6 @@ Riwayat data COVID-19 nasional Indonesia. GET /api/v1/covid/national/historical ``` -## Playground - - - ## Parameter Query | Parameter | Tipe | Wajib | Keterangan | diff --git a/docs/api/national-latest.md b/docs/api/national-latest.md index 5052bf5..a47b265 100644 --- a/docs/api/national-latest.md +++ b/docs/api/national-latest.md @@ -8,12 +8,6 @@ Data COVID-19 nasional Indonesia paling terkini. GET /api/v1/covid/national/latest ``` -## Playground - - - ## Field Respons | Field | Tipe | Keterangan | diff --git a/docs/api/province-cases.md b/docs/api/province-cases.md index 2167658..c063a26 100644 --- a/docs/api/province-cases.md +++ b/docs/api/province-cases.md @@ -8,15 +8,6 @@ Data COVID-19 detail untuk provinsi tertentu. GET /api/v1/covid/provinces/:id ``` -## Playground - - - ## Parameter Path | Parameter | Keterangan | diff --git a/docs/api/provinces.md b/docs/api/provinces.md index 0684ff3..b426149 100644 --- a/docs/api/provinces.md +++ b/docs/api/provinces.md @@ -8,16 +8,6 @@ Daftar semua provinsi Indonesia beserta data COVID-19. GET /api/v1/covid/provinces ``` -## Playground - - - ## Parameter Query | Parameter | Tipe | Wajib | Keterangan | diff --git a/docs/api/regencies.md b/docs/api/regencies.md index e6383d6..13c6e72 100644 --- a/docs/api/regencies.md +++ b/docs/api/regencies.md @@ -8,17 +8,6 @@ Data COVID-19 per kabupaten/kota. GET /api/v1/covid/regencies ``` -## Playground - - - ## Parameter Query | Parameter | Tipe | Wajib | Keterangan | diff --git a/docs/api/statistics.md b/docs/api/statistics.md index 41b3c4f..2f76e01 100644 --- a/docs/api/statistics.md +++ b/docs/api/statistics.md @@ -8,12 +8,6 @@ Data statistik agregat COVID-19. GET /api/v1/covid/statistics ``` -## Playground - - - ## Contoh Request ```bash diff --git a/docs/api/task-forces.md b/docs/api/task-forces.md index a688b9b..3cdaa34 100644 --- a/docs/api/task-forces.md +++ b/docs/api/task-forces.md @@ -8,12 +8,6 @@ Daftar gugus tugas penanganan COVID-19 di Sulawesi Tengah. GET /api/v1/covid/task-forces ``` -## Playground - - - ## Contoh Request ```bash diff --git a/docs/api/vaccination.md b/docs/api/vaccination.md index f21ba62..5c40844 100644 --- a/docs/api/vaccination.md +++ b/docs/api/vaccination.md @@ -8,17 +8,6 @@ Data vaksinasi COVID-19. GET /api/v1/covid/vaccination ``` -## Playground - - - ## Parameter Query | Parameter | Tipe | Keterangan |