mirror of
https://github.com/MeshEnvy/mesh-forge.git
synced 2026-03-28 17:42:55 +01:00
chore: lint fixes
This commit is contained in:
@@ -1,22 +1,22 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema.json",
|
||||
"style": "new-york",
|
||||
"rsc": false,
|
||||
"tsx": true,
|
||||
"tailwind": {
|
||||
"config": "tailwind.config.js",
|
||||
"css": "src/index.css",
|
||||
"baseColor": "neutral",
|
||||
"cssVariables": true,
|
||||
"prefix": ""
|
||||
},
|
||||
"iconLibrary": "lucide",
|
||||
"aliases": {
|
||||
"components": "@/components",
|
||||
"utils": "@/lib/utils",
|
||||
"ui": "@/components/ui",
|
||||
"lib": "@/lib",
|
||||
"hooks": "@/hooks"
|
||||
},
|
||||
"registries": {}
|
||||
"$schema": "https://ui.shadcn.com/schema.json",
|
||||
"style": "new-york",
|
||||
"rsc": false,
|
||||
"tsx": true,
|
||||
"tailwind": {
|
||||
"config": "tailwind.config.js",
|
||||
"css": "src/index.css",
|
||||
"baseColor": "neutral",
|
||||
"cssVariables": true,
|
||||
"prefix": ""
|
||||
},
|
||||
"iconLibrary": "lucide",
|
||||
"aliases": {
|
||||
"components": "@/components",
|
||||
"utils": "@/lib/utils",
|
||||
"ui": "@/components/ui",
|
||||
"lib": "@/lib",
|
||||
"hooks": "@/hooks"
|
||||
},
|
||||
"registries": {}
|
||||
}
|
||||
|
||||
@@ -1,159 +1,159 @@
|
||||
{
|
||||
"modules": [
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_ADMIN",
|
||||
"name": "Admin",
|
||||
"description": "Remote device configuration and management. Allows changing settings, reading device info, and rebooting nodes over the mesh network."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_ATAK",
|
||||
"name": "ATAK Plugin",
|
||||
"description": "Integration with ATAK (Android Team Awareness Kit) for tactical situational awareness. Enables military/emergency response coordination."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_AUDIO",
|
||||
"name": "Audio",
|
||||
"description": "Audio codec support for voice communication over the mesh."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_BLUETOOTH",
|
||||
"name": "Bluetooth",
|
||||
"description": "Bluetooth connectivity for pairing with phones and apps. Required for mobile app communication on most devices."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_CANNEDMESSAGES",
|
||||
"name": "Canned Messages",
|
||||
"description": "Pre-defined quick messages that can be sent with button presses. Useful for devices with limited input (no keyboard). Includes on-screen keyboard for some devices."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_DETECTIONSENSOR",
|
||||
"name": "Detection Sensor",
|
||||
"description": "Motion/presence detection sensor integration. Broadcasts detection events when sensors trigger (PIR, door switches, etc.)."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_ENVIRONMENTAL_SENSOR",
|
||||
"name": "Environmental Sensor",
|
||||
"description": "Environmental monitoring sensors including temperature, humidity, pressure, air quality, and light sensors. Broadcasts telemetry data to the mesh."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_EXTERNALNOTIFICATION",
|
||||
"name": "External Notification",
|
||||
"description": "Drive external LEDs, buzzers, and speakers for notifications. Plays RTTTL ringtones and can control GPIO outputs when messages arrive."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_GPS",
|
||||
"name": "GPS",
|
||||
"description": "GPS receiver support for position tracking and sharing. Disabling prevents position broadcasts but the device still relays position packets for other nodes."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_HEALTH_TELEMETRY",
|
||||
"name": "Health Telemetry",
|
||||
"description": "Heart rate and health monitoring sensors (like MAX30102 pulse oximeter). Broadcasts health metrics to the mesh."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_I2C",
|
||||
"name": "I2C",
|
||||
"description": "I2C bus support for external sensors and peripherals. Required for most sensor modules and OLED displays."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_INPUTBROKER",
|
||||
"name": "Input Broker",
|
||||
"description": "Input device handling (buttons, encoders, touchscreens). Routes button presses to appropriate modules like Canned Messages."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_MQTT",
|
||||
"name": "MQTT",
|
||||
"description": "MQTT client for cloud integration. Publishes mesh messages to MQTT brokers and subscribes to receive cloud messages. Enables IoT integration and remote monitoring."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_NEIGHBORINFO",
|
||||
"name": "Neighbor Info",
|
||||
"description": "Broadcasts information about directly-reachable neighbor nodes including signal strength (SNR). Helps build mesh topology maps and track network health."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_PAXCOUNTER",
|
||||
"name": "Pax Counter",
|
||||
"description": "Counts nearby WiFi and Bluetooth devices for crowd density estimation. Useful for people-counting in public spaces."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_PKI",
|
||||
"name": "PKI",
|
||||
"description": "Public Key Infrastructure for enhanced security and key verification between nodes."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_POWERMON",
|
||||
"name": "Power Monitor",
|
||||
"description": "Battery and power monitoring hardware support (INA260, INA219, etc.). Tracks voltage, current, and power consumption."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_POWER_FSM",
|
||||
"name": "Power FSM",
|
||||
"description": "Power management finite state machine. Handles sleep modes, power state transitions, and battery optimization."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_POWER_TELEMETRY",
|
||||
"name": "Power Telemetry",
|
||||
"description": "Broadcasts battery voltage, current, and power consumption data to the mesh. Different from Power Monitor which is the hardware interface."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_POWERSTRESS",
|
||||
"name": "Power Stress",
|
||||
"description": "Power consumption testing tool. Stresses the device to measure battery life under various transmission patterns. For development/testing only."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_RANGETEST",
|
||||
"name": "Range Test",
|
||||
"description": "Mesh range and signal quality testing. Sends periodic packets and logs signal strength (RSSI), SNR, and packet loss statistics to a file."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_REMOTEHARDWARE",
|
||||
"name": "Remote Hardware",
|
||||
"description": "Remote GPIO control over the mesh. Read/write digital pins, read ADC values, and control hardware on remote nodes."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_SCREEN",
|
||||
"name": "Screen",
|
||||
"description": "OLED/E-Ink display support. Shows messages, node info, and status on screen. Disabling saves power but removes visual feedback."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_SERIAL",
|
||||
"name": "Serial",
|
||||
"description": "Serial port communication for sensors and external devices. Can relay serial data over the mesh and supports NMEA GPS bridging."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_STOREFORWARD",
|
||||
"name": "Store & Forward",
|
||||
"description": "Message store-and-forward server for offline nodes. Router devices can cache messages and replay them when distant nodes reconnect. Requires PSRAM."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_TEXTMESSAGE",
|
||||
"name": "Text Messaging",
|
||||
"description": "Send and receive text messages between nodes. Displays messages on OLED screens and forwards to connected apps. **Important:** Disabling prevents sending/receiving but the node still relays messages for others."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_TRACEROUTE",
|
||||
"name": "Traceroute",
|
||||
"description": "Network path tracing tool. Shows the route packets take through the mesh, including all intermediate hops and hop limits."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_TZ",
|
||||
"name": "Timezone",
|
||||
"description": "Timezone database support for local time display. Allows devices to show correct local time based on GPS position."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_WAYPOINT",
|
||||
"name": "Waypoint",
|
||||
"description": "Share and display waypoints (points of interest) on the mesh. Shows waypoints on screen and in apps for navigation and location marking."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_WEBSERVER",
|
||||
"name": "Web Server",
|
||||
"description": "Built-in web interface for device configuration. Automatically excluded if WiFi is disabled."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_WIFI",
|
||||
"name": "WiFi",
|
||||
"description": "WiFi connectivity for network access, web server, and MQTT. Disabling saves power but removes WiFi features including the web interface."
|
||||
}
|
||||
]
|
||||
"modules": [
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_ADMIN",
|
||||
"name": "Admin",
|
||||
"description": "Remote device configuration and management. Allows changing settings, reading device info, and rebooting nodes over the mesh network."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_ATAK",
|
||||
"name": "ATAK Plugin",
|
||||
"description": "Integration with ATAK (Android Team Awareness Kit) for tactical situational awareness. Enables military/emergency response coordination."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_AUDIO",
|
||||
"name": "Audio",
|
||||
"description": "Audio codec support for voice communication over the mesh."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_BLUETOOTH",
|
||||
"name": "Bluetooth",
|
||||
"description": "Bluetooth connectivity for pairing with phones and apps. Required for mobile app communication on most devices."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_CANNEDMESSAGES",
|
||||
"name": "Canned Messages",
|
||||
"description": "Pre-defined quick messages that can be sent with button presses. Useful for devices with limited input (no keyboard). Includes on-screen keyboard for some devices."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_DETECTIONSENSOR",
|
||||
"name": "Detection Sensor",
|
||||
"description": "Motion/presence detection sensor integration. Broadcasts detection events when sensors trigger (PIR, door switches, etc.)."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_ENVIRONMENTAL_SENSOR",
|
||||
"name": "Environmental Sensor",
|
||||
"description": "Environmental monitoring sensors including temperature, humidity, pressure, air quality, and light sensors. Broadcasts telemetry data to the mesh."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_EXTERNALNOTIFICATION",
|
||||
"name": "External Notification",
|
||||
"description": "Drive external LEDs, buzzers, and speakers for notifications. Plays RTTTL ringtones and can control GPIO outputs when messages arrive."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_GPS",
|
||||
"name": "GPS",
|
||||
"description": "GPS receiver support for position tracking and sharing. Disabling prevents position broadcasts but the device still relays position packets for other nodes."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_HEALTH_TELEMETRY",
|
||||
"name": "Health Telemetry",
|
||||
"description": "Heart rate and health monitoring sensors (like MAX30102 pulse oximeter). Broadcasts health metrics to the mesh."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_I2C",
|
||||
"name": "I2C",
|
||||
"description": "I2C bus support for external sensors and peripherals. Required for most sensor modules and OLED displays."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_INPUTBROKER",
|
||||
"name": "Input Broker",
|
||||
"description": "Input device handling (buttons, encoders, touchscreens). Routes button presses to appropriate modules like Canned Messages."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_MQTT",
|
||||
"name": "MQTT",
|
||||
"description": "MQTT client for cloud integration. Publishes mesh messages to MQTT brokers and subscribes to receive cloud messages. Enables IoT integration and remote monitoring."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_NEIGHBORINFO",
|
||||
"name": "Neighbor Info",
|
||||
"description": "Broadcasts information about directly-reachable neighbor nodes including signal strength (SNR). Helps build mesh topology maps and track network health."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_PAXCOUNTER",
|
||||
"name": "Pax Counter",
|
||||
"description": "Counts nearby WiFi and Bluetooth devices for crowd density estimation. Useful for people-counting in public spaces."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_PKI",
|
||||
"name": "PKI",
|
||||
"description": "Public Key Infrastructure for enhanced security and key verification between nodes."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_POWERMON",
|
||||
"name": "Power Monitor",
|
||||
"description": "Battery and power monitoring hardware support (INA260, INA219, etc.). Tracks voltage, current, and power consumption."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_POWER_FSM",
|
||||
"name": "Power FSM",
|
||||
"description": "Power management finite state machine. Handles sleep modes, power state transitions, and battery optimization."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_POWER_TELEMETRY",
|
||||
"name": "Power Telemetry",
|
||||
"description": "Broadcasts battery voltage, current, and power consumption data to the mesh. Different from Power Monitor which is the hardware interface."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_POWERSTRESS",
|
||||
"name": "Power Stress",
|
||||
"description": "Power consumption testing tool. Stresses the device to measure battery life under various transmission patterns. For development/testing only."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_RANGETEST",
|
||||
"name": "Range Test",
|
||||
"description": "Mesh range and signal quality testing. Sends periodic packets and logs signal strength (RSSI), SNR, and packet loss statistics to a file."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_REMOTEHARDWARE",
|
||||
"name": "Remote Hardware",
|
||||
"description": "Remote GPIO control over the mesh. Read/write digital pins, read ADC values, and control hardware on remote nodes."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_SCREEN",
|
||||
"name": "Screen",
|
||||
"description": "OLED/E-Ink display support. Shows messages, node info, and status on screen. Disabling saves power but removes visual feedback."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_SERIAL",
|
||||
"name": "Serial",
|
||||
"description": "Serial port communication for sensors and external devices. Can relay serial data over the mesh and supports NMEA GPS bridging."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_STOREFORWARD",
|
||||
"name": "Store & Forward",
|
||||
"description": "Message store-and-forward server for offline nodes. Router devices can cache messages and replay them when distant nodes reconnect. Requires PSRAM."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_TEXTMESSAGE",
|
||||
"name": "Text Messaging",
|
||||
"description": "Send and receive text messages between nodes. Displays messages on OLED screens and forwards to connected apps. **Important:** Disabling prevents sending/receiving but the node still relays messages for others."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_TRACEROUTE",
|
||||
"name": "Traceroute",
|
||||
"description": "Network path tracing tool. Shows the route packets take through the mesh, including all intermediate hops and hop limits."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_TZ",
|
||||
"name": "Timezone",
|
||||
"description": "Timezone database support for local time display. Allows devices to show correct local time based on GPS position."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_WAYPOINT",
|
||||
"name": "Waypoint",
|
||||
"description": "Share and display waypoints (points of interest) on the mesh. Shows waypoints on screen and in apps for navigation and location marking."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_WEBSERVER",
|
||||
"name": "Web Server",
|
||||
"description": "Built-in web interface for device configuration. Automatically excluded if WiFi is disabled."
|
||||
},
|
||||
{
|
||||
"id": "MESHTASTIC_EXCLUDE_WIFI",
|
||||
"name": "WiFi",
|
||||
"description": "WiFi connectivity for network access, web server, and MQTT. Disabling saves power but removes WiFi features including the web interface."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,13 +1,6 @@
|
||||
import { getAuthUserId } from '@convex-dev/auth/server'
|
||||
import { v } from 'convex/values'
|
||||
import { api, internal } from './_generated/api'
|
||||
import type { Doc, Id } from './_generated/dataModel'
|
||||
import { action, internalMutation, mutation, query } from './_generated/server'
|
||||
import {
|
||||
computeBuildHashForProfile,
|
||||
computeFlagsFromProfile,
|
||||
getR2ArtifactUrl,
|
||||
} from './builds'
|
||||
import { internalMutation, mutation, query } from './_generated/server'
|
||||
|
||||
export const list = query({
|
||||
args: {},
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
{
|
||||
/* This TypeScript project config describes the environment that
|
||||
* Convex functions run in and is used to typecheck them.
|
||||
* You can modify it, but some settings are required to use Convex.
|
||||
*/
|
||||
"compilerOptions": {
|
||||
/* These settings are not required by Convex and can be modified. */
|
||||
"allowJs": true,
|
||||
"strict": true,
|
||||
"moduleResolution": "Bundler",
|
||||
"jsx": "react-jsx",
|
||||
"skipLibCheck": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
/* This TypeScript project config describes the environment that
|
||||
* Convex functions run in and is used to typecheck them.
|
||||
* You can modify it, but some settings are required to use Convex.
|
||||
*/
|
||||
"compilerOptions": {
|
||||
/* These settings are not required by Convex and can be modified. */
|
||||
"allowJs": true,
|
||||
"strict": true,
|
||||
"moduleResolution": "Bundler",
|
||||
"jsx": "react-jsx",
|
||||
"skipLibCheck": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
|
||||
/* These compiler options are required by Convex */
|
||||
"target": "ESNext",
|
||||
"lib": ["ES2021", "dom"],
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"module": "ESNext",
|
||||
"isolatedModules": true,
|
||||
"noEmit": true
|
||||
},
|
||||
"include": ["./**/*"],
|
||||
"exclude": ["./_generated"]
|
||||
/* These compiler options are required by Convex */
|
||||
"target": "ESNext",
|
||||
"lib": ["ES2021", "dom"],
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"module": "ESNext",
|
||||
"isolatedModules": true,
|
||||
"noEmit": true
|
||||
},
|
||||
"include": ["./**/*"],
|
||||
"exclude": ["./_generated"]
|
||||
}
|
||||
|
||||
94
package.json
94
package.json
@@ -1,49 +1,49 @@
|
||||
{
|
||||
"name": "react-web-flasher",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"generate:versions": "node scripts/generate-versions.js",
|
||||
"dev": "bun run generate:versions && vite",
|
||||
"build": "bun run generate:versions && tsc && vite build",
|
||||
"lint": "biome lint",
|
||||
"lint:fix": "biome lint --fix && biome format --write",
|
||||
"preview": "vite preview",
|
||||
"deploy": "npx convex deploy --cmd 'bun run build' && wrangler deploy"
|
||||
},
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-s3": "^3.937.0",
|
||||
"@aws-sdk/s3-request-presigner": "^3.937.0",
|
||||
"@convex-dev/auth": "^0.0.90",
|
||||
"@radix-ui/react-checkbox": "^1.3.3",
|
||||
"@radix-ui/react-slot": "^1.2.4",
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"convex": "^1.29.3",
|
||||
"convex-helpers": "^0.1.106",
|
||||
"lucide-react": "^0.554.0",
|
||||
"next-themes": "^0.4.6",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-hook-form": "^7.66.1",
|
||||
"react-router-dom": "^7.9.6",
|
||||
"sonner": "^2.0.7",
|
||||
"tailwind-merge": "^3.4.0",
|
||||
"tailwindcss-animate": "^1.0.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "^2.3.7",
|
||||
"@tailwindcss/postcss": "^4.1.17",
|
||||
"@types/node": "^24.10.1",
|
||||
"@types/react": "^18.0.37",
|
||||
"@types/react-dom": "^18.0.11",
|
||||
"@vitejs/plugin-react": "^4.0.0",
|
||||
"autoprefixer": "^10.4.22",
|
||||
"postcss": "^8.5.6",
|
||||
"tailwindcss": "^4.1.17",
|
||||
"typescript": "^5.0.2",
|
||||
"vite": "^4.3.9",
|
||||
"wrangler": "^4.50.0"
|
||||
}
|
||||
"name": "react-web-flasher",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"generate:versions": "node scripts/generate-versions.js",
|
||||
"dev": "bun run generate:versions && vite",
|
||||
"build": "bun run generate:versions && tsc && vite build",
|
||||
"lint": "biome lint",
|
||||
"lint:fix": "biome lint --fix && biome format --write",
|
||||
"preview": "vite preview",
|
||||
"deploy": "npx convex deploy --cmd 'bun run build' && wrangler deploy"
|
||||
},
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-s3": "^3.937.0",
|
||||
"@aws-sdk/s3-request-presigner": "^3.937.0",
|
||||
"@convex-dev/auth": "^0.0.90",
|
||||
"@radix-ui/react-checkbox": "^1.3.3",
|
||||
"@radix-ui/react-slot": "^1.2.4",
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"convex": "^1.29.3",
|
||||
"convex-helpers": "^0.1.106",
|
||||
"lucide-react": "^0.554.0",
|
||||
"next-themes": "^0.4.6",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-hook-form": "^7.66.1",
|
||||
"react-router-dom": "^7.9.6",
|
||||
"sonner": "^2.0.7",
|
||||
"tailwind-merge": "^3.4.0",
|
||||
"tailwindcss-animate": "^1.0.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "^2.3.7",
|
||||
"@tailwindcss/postcss": "^4.1.17",
|
||||
"@types/node": "^24.10.1",
|
||||
"@types/react": "^18.0.37",
|
||||
"@types/react-dom": "^18.0.11",
|
||||
"@vitejs/plugin-react": "^4.0.0",
|
||||
"autoprefixer": "^10.4.22",
|
||||
"postcss": "^8.5.6",
|
||||
"tailwindcss": "^4.1.17",
|
||||
"typescript": "^5.0.2",
|
||||
"vite": "^4.3.9",
|
||||
"wrangler": "^4.50.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,242 +1,242 @@
|
||||
// This file is auto-generated by scripts/generate-versions.js
|
||||
export const VERSIONS = [
|
||||
"v2.7.15.567b8ea",
|
||||
"v2.7.14.e959000",
|
||||
"v2.7.13.597fa0b",
|
||||
"v2.7.12.45f15b8",
|
||||
"v2.7.11.ee68575",
|
||||
"v2.7.10.94d4bdf",
|
||||
"v2.7.9.70724be",
|
||||
"v2.7.8.a0c0388",
|
||||
"v2.7.7.5ae4ff9",
|
||||
"v2.7.6.834c3c5",
|
||||
"v2.7.5.ddd1499",
|
||||
"v2.7.4.c1f4f79",
|
||||
"v2.7.3.cf574c7",
|
||||
"v2.7.2.f6d3782",
|
||||
"v2.7.1.f35ca81",
|
||||
"v2.7.0.705515a",
|
||||
"v2.7.0.195b7cc",
|
||||
"v2.6.13.0561f2c",
|
||||
"v2.6.12.9861e82",
|
||||
"v2.6.11.60ec05e",
|
||||
"v2.6.10.9ce4455",
|
||||
"v2.6.9.f223b8a",
|
||||
"v2.6.8.ef9d0d7",
|
||||
"v2.6.7.2d6181f",
|
||||
"v2.6.6.54c1423",
|
||||
"v2.6.5.fc3d9f2",
|
||||
"v2.6.4.b89355f",
|
||||
"v2.6.3.d28af68",
|
||||
"v2.6.3.640e731",
|
||||
"v2.6.2.31c0e8f",
|
||||
"v2.6.1.7c3edde",
|
||||
"v2.6.0.f7afa9a",
|
||||
"v2.5.23.bf958ed",
|
||||
"v2.5.22.d1fa27d",
|
||||
"v2.5.21.447533a",
|
||||
"v2.5.20.4c97351",
|
||||
"v2.5.19.f9876cf",
|
||||
"v2.5.19.d5cd6f8",
|
||||
"v2.5.18.89ebafc",
|
||||
"v2.5.17.b4b2fd6",
|
||||
"v2.5.16.f81d3b0",
|
||||
"v2.5.15.79da236",
|
||||
"v2.5.14.f2ee0df",
|
||||
"v2.5.13.295278b",
|
||||
"v2.5.13.1a06f88",
|
||||
"v2.5.12.aa184e6",
|
||||
"v2.5.11.8e2a3e5",
|
||||
"v2.5.10.0fc5c9b",
|
||||
"v2.5.9.936260f",
|
||||
"v2.5.8.6485f03",
|
||||
"v2.5.7.f77c87d",
|
||||
"v2.5.6.d55c08d",
|
||||
"v2.5.5.e182ae7",
|
||||
"v2.5.4.8d288d5",
|
||||
"v2.5.3.a70d5ee",
|
||||
"v2.5.2.771cb52",
|
||||
"v2.5.1.c13b44b",
|
||||
"v2.5.0.e470619",
|
||||
"v2.5.0.d6dac17",
|
||||
"v2.5.0.ab7de7f",
|
||||
"v2.5.0.33eb073",
|
||||
"v2.5.0.9e55e6b",
|
||||
"v2.5.0.9ac0e26",
|
||||
"v2.4.3.efc27f2",
|
||||
"v2.4.3.91d6612",
|
||||
"v2.4.2.5b45303",
|
||||
"v2.4.1.394e0e1",
|
||||
"v2.4.0.46d7b82",
|
||||
"v2.3.15.deb7c27",
|
||||
"v2.3.14.64531fa",
|
||||
"v2.3.13.83f5ba0",
|
||||
"v2.3.12.24458a7",
|
||||
"v2.3.11.2740a56",
|
||||
"v2.3.10.d19607b",
|
||||
"v2.3.9.f06c56a",
|
||||
"v2.3.8.d490a33",
|
||||
"v2.3.7.30fbcab",
|
||||
"v2.3.6.7a3570a",
|
||||
"v2.3.5.2f9b68e",
|
||||
"v2.3.4.ea61808",
|
||||
"v2.3.3.8187fa7",
|
||||
"v2.3.2.63df972",
|
||||
"v2.3.1.4fa7f5a",
|
||||
"v2.3.0.5f47ca1",
|
||||
"v2.2.24.e6a2c06",
|
||||
"v2.2.23.5672e68",
|
||||
"v2.2.22.404d0dd",
|
||||
"v2.2.21.7f7c5cb",
|
||||
"v2.2.20.af5ac32",
|
||||
"v2.2.19.8f6a283",
|
||||
"v2.2.18.e9bde80",
|
||||
"v2.2.17.dbac2b1",
|
||||
"v2.2.16.1c6acfd",
|
||||
"v2.2.15.31c4693",
|
||||
"v2.2.14.57542ce",
|
||||
"v2.2.13.f570204",
|
||||
"v2.2.12.092e6f2",
|
||||
"v2.2.11.10265aa",
|
||||
"v2.2.10.7cebd79",
|
||||
"v2.2.9.47301a5",
|
||||
"v2.2.8.61f6fb2",
|
||||
"v2.2.7.e8970ad",
|
||||
"v2.2.6.b53cb38",
|
||||
"v2.2.5.8255128",
|
||||
"v2.2.4.3bcab0e",
|
||||
"v2.2.3.282cc0b",
|
||||
"v2.2.2.f35c7be",
|
||||
"v2.2.1.fb5f2e4",
|
||||
"v2.2.0.9f6584b",
|
||||
"v2.1.23.04bbdc6",
|
||||
"v2.1.22.191a69d",
|
||||
"v2.1.21.97d7a89",
|
||||
"v2.1.20.470363d",
|
||||
"v2.1.19.eb7025f",
|
||||
"v2.1.18.de53280",
|
||||
"v2.1.17.7ca2e81",
|
||||
"v2.1.16.a2c5b92",
|
||||
"v2.1.15.cd78723",
|
||||
"v2.1.14.99a31c1",
|
||||
"v2.1.13.7475c86",
|
||||
"v2.1.12.7711b03",
|
||||
"v2.1.11.5ec624d",
|
||||
"v2.1.10.7ef12c7",
|
||||
"v2.1.9.d43ddc9",
|
||||
"v2.1.8.ee971e3",
|
||||
"v2.1.7.242f880",
|
||||
"v2.1.6.5679a82",
|
||||
"v2.1.5.23272da",
|
||||
"v2.1.4.958d2cf",
|
||||
"v2.1.3.8c68d88",
|
||||
"v2.1.2.6d20215",
|
||||
"v2.1.1.dc2ca9c",
|
||||
"v2.1.0.331a1af",
|
||||
"v2.0.23.7bb281d",
|
||||
"v2.0.22.fbfd0f1",
|
||||
"v2.0.21.83e6cea",
|
||||
"v2.0.20.7100416",
|
||||
"v2.0.19.3209aea",
|
||||
"v2.0.18.1a7991c",
|
||||
"v2.0.17.5d1c06b",
|
||||
"v2.0.16.2242b68",
|
||||
"v2.0.15.aafbde0",
|
||||
"v2.0.14.2baaad8",
|
||||
"v2.0.13.7e27729",
|
||||
"v2.0.12.2400dd4",
|
||||
"v2.0.11.8914d1a",
|
||||
"v2.0.10.e09b12c",
|
||||
"v2.0.9.6ea0963",
|
||||
"v2.0.8.090e166",
|
||||
"v2.0.7.91ff7b9",
|
||||
"v2.0.6.97fd5cf",
|
||||
"v2.0.5.65e8209",
|
||||
"v2.0.4.5417671",
|
||||
"v2.0.3.09fe616",
|
||||
"v2.0.2.8146e84",
|
||||
"v2.0.1.ad05b91",
|
||||
"v2.0.0.18ab874",
|
||||
"v1.3.48.82bcd39",
|
||||
"v1.3.47.05147c0",
|
||||
"v1.3.46.d4ea956",
|
||||
"v1.3.45.b0d0552",
|
||||
"v1.3.44.4fa8d02",
|
||||
"v1.3.43.aae9d2f",
|
||||
"v1.3.42.9bd9252",
|
||||
"v1.3.41.80ddb81",
|
||||
"v1.3.40.e87ecc2",
|
||||
"v1.3.39.ddc3727",
|
||||
"v1.3.38.1253abd",
|
||||
"v1.3.37.97712a9",
|
||||
"v1.3.36.dd720f2",
|
||||
"v1.3.36.64f852e",
|
||||
"v1.3.36.7e03019",
|
||||
"v1.3.35.3251cd5",
|
||||
"v1.3.34.401b5d9",
|
||||
"v1.3.33.ab0095c",
|
||||
"v1.3.32.7e6c22f",
|
||||
"v1.3.31.0084643",
|
||||
"v1.3.30.9fe2ddb",
|
||||
"v1.3.29.7afc149",
|
||||
"v1.3.28.41f9541",
|
||||
"v1.3.27.c88ba58",
|
||||
"v1.3.26.0010231",
|
||||
"v1.3.25.85f46d3",
|
||||
"v1.3.24.dff6915",
|
||||
"v1.3.23.5462d84",
|
||||
"v1.3.22.c725a6b",
|
||||
"v1.3.21.cf00ac5",
|
||||
"v1.3.20.9a5ff93",
|
||||
"v1.3.19.3c6a2f7",
|
||||
"v1.3.17.c9822de",
|
||||
"v1.3.16.97899ae",
|
||||
"v1.3.15.432d067",
|
||||
"v1.3.13.71a43a9",
|
||||
"v1.3.12.6306c53",
|
||||
"v1.3.11.0411401",
|
||||
"v1.3.10.cc2a84a",
|
||||
"v1.3.10.4df0e91",
|
||||
"v1.3.9.92185e7",
|
||||
"v1.3.8.90df7c2",
|
||||
"v1.3.7.bb22b6e",
|
||||
"v1.3.6.f511bab",
|
||||
"v1.3.5.e5b19fd",
|
||||
"v1.3.4.2b20bf3",
|
||||
"v1.3.3.2fe124e",
|
||||
"v1.2.testing1",
|
||||
"v1.2.65.0adc5ce",
|
||||
"v1.2.64.fc48fcd",
|
||||
"v1.2.63.9879494",
|
||||
"v1.2.62.3ddd74e",
|
||||
"v1.2.61.d551c17",
|
||||
"v1.2.60.ab959de",
|
||||
"v1.2.59.d81c1c0",
|
||||
"v1.2.58.6af1822",
|
||||
"v1.2.57.f7c6955",
|
||||
"v1.2.56.596a73c",
|
||||
"v1.2.55.9db7c62",
|
||||
"v1.2.54.288f2be",
|
||||
"v1.2.53.19c1f9f",
|
||||
"v1.2.52.b63802c",
|
||||
"v1.2.51.f9ff06b",
|
||||
"v1.2.50.41dcfdd",
|
||||
"v1.2.49.5354c49",
|
||||
"v1.2.48.371335e",
|
||||
"v1.2.47",
|
||||
"v1.2.46.dce2fe4",
|
||||
"v1.2.46.9d21e58",
|
||||
"v1.2.45.b674054",
|
||||
"v1.2.44.f2c9c55",
|
||||
"v1.2.43.a405d81",
|
||||
"v1.2.42.2759c8d",
|
||||
"v1.2.41.32f3682",
|
||||
"v1.2.39.06892c4",
|
||||
"v1.2.38.cf4e508",
|
||||
"v1.2.38.451b085",
|
||||
"v1.2.36",
|
||||
"v1.2.30.80e4bc6",
|
||||
"v1.2.29.6c95659"
|
||||
] as const;
|
||||
'v2.7.15.567b8ea',
|
||||
'v2.7.14.e959000',
|
||||
'v2.7.13.597fa0b',
|
||||
'v2.7.12.45f15b8',
|
||||
'v2.7.11.ee68575',
|
||||
'v2.7.10.94d4bdf',
|
||||
'v2.7.9.70724be',
|
||||
'v2.7.8.a0c0388',
|
||||
'v2.7.7.5ae4ff9',
|
||||
'v2.7.6.834c3c5',
|
||||
'v2.7.5.ddd1499',
|
||||
'v2.7.4.c1f4f79',
|
||||
'v2.7.3.cf574c7',
|
||||
'v2.7.2.f6d3782',
|
||||
'v2.7.1.f35ca81',
|
||||
'v2.7.0.705515a',
|
||||
'v2.7.0.195b7cc',
|
||||
'v2.6.13.0561f2c',
|
||||
'v2.6.12.9861e82',
|
||||
'v2.6.11.60ec05e',
|
||||
'v2.6.10.9ce4455',
|
||||
'v2.6.9.f223b8a',
|
||||
'v2.6.8.ef9d0d7',
|
||||
'v2.6.7.2d6181f',
|
||||
'v2.6.6.54c1423',
|
||||
'v2.6.5.fc3d9f2',
|
||||
'v2.6.4.b89355f',
|
||||
'v2.6.3.d28af68',
|
||||
'v2.6.3.640e731',
|
||||
'v2.6.2.31c0e8f',
|
||||
'v2.6.1.7c3edde',
|
||||
'v2.6.0.f7afa9a',
|
||||
'v2.5.23.bf958ed',
|
||||
'v2.5.22.d1fa27d',
|
||||
'v2.5.21.447533a',
|
||||
'v2.5.20.4c97351',
|
||||
'v2.5.19.f9876cf',
|
||||
'v2.5.19.d5cd6f8',
|
||||
'v2.5.18.89ebafc',
|
||||
'v2.5.17.b4b2fd6',
|
||||
'v2.5.16.f81d3b0',
|
||||
'v2.5.15.79da236',
|
||||
'v2.5.14.f2ee0df',
|
||||
'v2.5.13.295278b',
|
||||
'v2.5.13.1a06f88',
|
||||
'v2.5.12.aa184e6',
|
||||
'v2.5.11.8e2a3e5',
|
||||
'v2.5.10.0fc5c9b',
|
||||
'v2.5.9.936260f',
|
||||
'v2.5.8.6485f03',
|
||||
'v2.5.7.f77c87d',
|
||||
'v2.5.6.d55c08d',
|
||||
'v2.5.5.e182ae7',
|
||||
'v2.5.4.8d288d5',
|
||||
'v2.5.3.a70d5ee',
|
||||
'v2.5.2.771cb52',
|
||||
'v2.5.1.c13b44b',
|
||||
'v2.5.0.e470619',
|
||||
'v2.5.0.d6dac17',
|
||||
'v2.5.0.ab7de7f',
|
||||
'v2.5.0.33eb073',
|
||||
'v2.5.0.9e55e6b',
|
||||
'v2.5.0.9ac0e26',
|
||||
'v2.4.3.efc27f2',
|
||||
'v2.4.3.91d6612',
|
||||
'v2.4.2.5b45303',
|
||||
'v2.4.1.394e0e1',
|
||||
'v2.4.0.46d7b82',
|
||||
'v2.3.15.deb7c27',
|
||||
'v2.3.14.64531fa',
|
||||
'v2.3.13.83f5ba0',
|
||||
'v2.3.12.24458a7',
|
||||
'v2.3.11.2740a56',
|
||||
'v2.3.10.d19607b',
|
||||
'v2.3.9.f06c56a',
|
||||
'v2.3.8.d490a33',
|
||||
'v2.3.7.30fbcab',
|
||||
'v2.3.6.7a3570a',
|
||||
'v2.3.5.2f9b68e',
|
||||
'v2.3.4.ea61808',
|
||||
'v2.3.3.8187fa7',
|
||||
'v2.3.2.63df972',
|
||||
'v2.3.1.4fa7f5a',
|
||||
'v2.3.0.5f47ca1',
|
||||
'v2.2.24.e6a2c06',
|
||||
'v2.2.23.5672e68',
|
||||
'v2.2.22.404d0dd',
|
||||
'v2.2.21.7f7c5cb',
|
||||
'v2.2.20.af5ac32',
|
||||
'v2.2.19.8f6a283',
|
||||
'v2.2.18.e9bde80',
|
||||
'v2.2.17.dbac2b1',
|
||||
'v2.2.16.1c6acfd',
|
||||
'v2.2.15.31c4693',
|
||||
'v2.2.14.57542ce',
|
||||
'v2.2.13.f570204',
|
||||
'v2.2.12.092e6f2',
|
||||
'v2.2.11.10265aa',
|
||||
'v2.2.10.7cebd79',
|
||||
'v2.2.9.47301a5',
|
||||
'v2.2.8.61f6fb2',
|
||||
'v2.2.7.e8970ad',
|
||||
'v2.2.6.b53cb38',
|
||||
'v2.2.5.8255128',
|
||||
'v2.2.4.3bcab0e',
|
||||
'v2.2.3.282cc0b',
|
||||
'v2.2.2.f35c7be',
|
||||
'v2.2.1.fb5f2e4',
|
||||
'v2.2.0.9f6584b',
|
||||
'v2.1.23.04bbdc6',
|
||||
'v2.1.22.191a69d',
|
||||
'v2.1.21.97d7a89',
|
||||
'v2.1.20.470363d',
|
||||
'v2.1.19.eb7025f',
|
||||
'v2.1.18.de53280',
|
||||
'v2.1.17.7ca2e81',
|
||||
'v2.1.16.a2c5b92',
|
||||
'v2.1.15.cd78723',
|
||||
'v2.1.14.99a31c1',
|
||||
'v2.1.13.7475c86',
|
||||
'v2.1.12.7711b03',
|
||||
'v2.1.11.5ec624d',
|
||||
'v2.1.10.7ef12c7',
|
||||
'v2.1.9.d43ddc9',
|
||||
'v2.1.8.ee971e3',
|
||||
'v2.1.7.242f880',
|
||||
'v2.1.6.5679a82',
|
||||
'v2.1.5.23272da',
|
||||
'v2.1.4.958d2cf',
|
||||
'v2.1.3.8c68d88',
|
||||
'v2.1.2.6d20215',
|
||||
'v2.1.1.dc2ca9c',
|
||||
'v2.1.0.331a1af',
|
||||
'v2.0.23.7bb281d',
|
||||
'v2.0.22.fbfd0f1',
|
||||
'v2.0.21.83e6cea',
|
||||
'v2.0.20.7100416',
|
||||
'v2.0.19.3209aea',
|
||||
'v2.0.18.1a7991c',
|
||||
'v2.0.17.5d1c06b',
|
||||
'v2.0.16.2242b68',
|
||||
'v2.0.15.aafbde0',
|
||||
'v2.0.14.2baaad8',
|
||||
'v2.0.13.7e27729',
|
||||
'v2.0.12.2400dd4',
|
||||
'v2.0.11.8914d1a',
|
||||
'v2.0.10.e09b12c',
|
||||
'v2.0.9.6ea0963',
|
||||
'v2.0.8.090e166',
|
||||
'v2.0.7.91ff7b9',
|
||||
'v2.0.6.97fd5cf',
|
||||
'v2.0.5.65e8209',
|
||||
'v2.0.4.5417671',
|
||||
'v2.0.3.09fe616',
|
||||
'v2.0.2.8146e84',
|
||||
'v2.0.1.ad05b91',
|
||||
'v2.0.0.18ab874',
|
||||
'v1.3.48.82bcd39',
|
||||
'v1.3.47.05147c0',
|
||||
'v1.3.46.d4ea956',
|
||||
'v1.3.45.b0d0552',
|
||||
'v1.3.44.4fa8d02',
|
||||
'v1.3.43.aae9d2f',
|
||||
'v1.3.42.9bd9252',
|
||||
'v1.3.41.80ddb81',
|
||||
'v1.3.40.e87ecc2',
|
||||
'v1.3.39.ddc3727',
|
||||
'v1.3.38.1253abd',
|
||||
'v1.3.37.97712a9',
|
||||
'v1.3.36.dd720f2',
|
||||
'v1.3.36.64f852e',
|
||||
'v1.3.36.7e03019',
|
||||
'v1.3.35.3251cd5',
|
||||
'v1.3.34.401b5d9',
|
||||
'v1.3.33.ab0095c',
|
||||
'v1.3.32.7e6c22f',
|
||||
'v1.3.31.0084643',
|
||||
'v1.3.30.9fe2ddb',
|
||||
'v1.3.29.7afc149',
|
||||
'v1.3.28.41f9541',
|
||||
'v1.3.27.c88ba58',
|
||||
'v1.3.26.0010231',
|
||||
'v1.3.25.85f46d3',
|
||||
'v1.3.24.dff6915',
|
||||
'v1.3.23.5462d84',
|
||||
'v1.3.22.c725a6b',
|
||||
'v1.3.21.cf00ac5',
|
||||
'v1.3.20.9a5ff93',
|
||||
'v1.3.19.3c6a2f7',
|
||||
'v1.3.17.c9822de',
|
||||
'v1.3.16.97899ae',
|
||||
'v1.3.15.432d067',
|
||||
'v1.3.13.71a43a9',
|
||||
'v1.3.12.6306c53',
|
||||
'v1.3.11.0411401',
|
||||
'v1.3.10.cc2a84a',
|
||||
'v1.3.10.4df0e91',
|
||||
'v1.3.9.92185e7',
|
||||
'v1.3.8.90df7c2',
|
||||
'v1.3.7.bb22b6e',
|
||||
'v1.3.6.f511bab',
|
||||
'v1.3.5.e5b19fd',
|
||||
'v1.3.4.2b20bf3',
|
||||
'v1.3.3.2fe124e',
|
||||
'v1.2.testing1',
|
||||
'v1.2.65.0adc5ce',
|
||||
'v1.2.64.fc48fcd',
|
||||
'v1.2.63.9879494',
|
||||
'v1.2.62.3ddd74e',
|
||||
'v1.2.61.d551c17',
|
||||
'v1.2.60.ab959de',
|
||||
'v1.2.59.d81c1c0',
|
||||
'v1.2.58.6af1822',
|
||||
'v1.2.57.f7c6955',
|
||||
'v1.2.56.596a73c',
|
||||
'v1.2.55.9db7c62',
|
||||
'v1.2.54.288f2be',
|
||||
'v1.2.53.19c1f9f',
|
||||
'v1.2.52.b63802c',
|
||||
'v1.2.51.f9ff06b',
|
||||
'v1.2.50.41dcfdd',
|
||||
'v1.2.49.5354c49',
|
||||
'v1.2.48.371335e',
|
||||
'v1.2.47',
|
||||
'v1.2.46.dce2fe4',
|
||||
'v1.2.46.9d21e58',
|
||||
'v1.2.45.b674054',
|
||||
'v1.2.44.f2c9c55',
|
||||
'v1.2.43.a405d81',
|
||||
'v1.2.42.2759c8d',
|
||||
'v1.2.41.32f3682',
|
||||
'v1.2.39.06892c4',
|
||||
'v1.2.38.cf4e508',
|
||||
'v1.2.38.451b085',
|
||||
'v1.2.36',
|
||||
'v1.2.30.80e4bc6',
|
||||
'v1.2.29.6c95659',
|
||||
] as const
|
||||
|
||||
export type FirmwareVersion = typeof VERSIONS[number];
|
||||
export type FirmwareVersion = (typeof VERSIONS)[number]
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useAuthActions } from '@convex-dev/auth/react'
|
||||
import { useAction, useConvexAuth, useMutation, useQuery } from 'convex/react'
|
||||
import { useConvexAuth, useMutation, useQuery } from 'convex/react'
|
||||
import * as React from 'react'
|
||||
import { useState } from 'react'
|
||||
import { useNavigate, useParams } from 'react-router-dom'
|
||||
|
||||
@@ -1,29 +1,29 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "ES2020",
|
||||
"useDefineForClassFields": true,
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
||||
"module": "ESNext",
|
||||
"skipLibCheck": true,
|
||||
"compilerOptions": {
|
||||
"target": "ES2020",
|
||||
"useDefineForClassFields": true,
|
||||
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
||||
"module": "ESNext",
|
||||
"skipLibCheck": true,
|
||||
|
||||
/* Bundler mode */
|
||||
"moduleResolution": "bundler",
|
||||
"allowImportingTsExtensions": true,
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"noEmit": true,
|
||||
"jsx": "react-jsx",
|
||||
/* Bundler mode */
|
||||
"moduleResolution": "bundler",
|
||||
"allowImportingTsExtensions": true,
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"noEmit": true,
|
||||
"jsx": "react-jsx",
|
||||
|
||||
/* Linting */
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
"@/*": ["./src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["src", "vendor/web-flasher/public/data"],
|
||||
"references": [{ "path": "./tsconfig.node.json" }]
|
||||
/* Linting */
|
||||
"strict": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
"@/*": ["./src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["src", "vendor/web-flasher/public/data"],
|
||||
"references": [{ "path": "./tsconfig.node.json" }]
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"skipLibCheck": true,
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"allowSyntheticDefaultImports": true
|
||||
},
|
||||
"include": ["vite.config.ts"]
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"skipLibCheck": true,
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"allowSyntheticDefaultImports": true
|
||||
},
|
||||
"include": ["vite.config.ts"]
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"name": "react-web-flasher",
|
||||
"compatibility_date": "2024-09-23",
|
||||
"assets": {
|
||||
"directory": "./dist"
|
||||
},
|
||||
"observability": {
|
||||
"enabled": true
|
||||
}
|
||||
"name": "react-web-flasher",
|
||||
"compatibility_date": "2024-09-23",
|
||||
"assets": {
|
||||
"directory": "./dist"
|
||||
},
|
||||
"observability": {
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user